diff options
author | Ryan Kavanagh <ryanakca@kubuntu.org> | 2011-08-14 17:16:55 -0400 |
---|---|---|
committer | Ryan Kavanagh <ryanakca@kubuntu.org> | 2011-08-25 07:42:57 -0400 |
commit | 1c019761dfaf6be82de9284fa5e2b9dbfbdec27d (patch) | |
tree | 7ed6bd2f437d3a334bd7a81f62e6dfa63689272b |
Initial import
Diffstat (limited to '')
439 files changed, 89394 insertions, 0 deletions
diff --git a/.Xdefaults b/.Xdefaults new file mode 100644 index 0000000..db6f337 --- /dev/null +++ b/.Xdefaults @@ -0,0 +1,36 @@ +XTerm*metaSendsEscape: true +XTerm*eightBitInput: false +URxvt.background: #000000 +URxvt.foreground: #ffffff +URxvt.colorBD: #ffffff +URxvt.cursorColo: #e0e080 +URxvt.hilightColor: #f0f0f0 +URxvt.scrollBar: false +URxvt.scrollstyle: xterm +URxvt.transparent: true +URxvt.tint: black +URxvt.shading: 25 +URxvt*color4: #0055FF +URxvt*color12: #0088FF +URxvt.underlineColor: yellow +URxvt.saveLines: 8192 +URxvt.mapAlert: true +URxvt.font: xft:Inconsolata:size=7 +URxvt.perl-ext-common: default,matcher,mark-and-yank +//URxvt*bellCommand: zenity --info --text="Bell in URxvt" +URxvt*urlLauncher: firefox +URxvt.matcher.button: 1 +URxvt.visualBell: false +URxvt.urgentOnBell: true +URxvt.keysym.M-C-1: command:\033]50;xft:Inconsolata:size=7\007 +URxvt.keysym.M-C-2: command:\033]50;xft:Inconsolata:size=11\007 +URxvt.keysym.M-y: perl:mark-and-yank:activate_mark_mode +URxvt.keysym.M-u: perl:mark-and-yank:activate_mark_url_mode +XLock*logoutButton: -1 +Xft.antialias: 1 +Xft.dpi: 97 +Xft.hinting: 1 +Xft.hintstyle: hintfull +Xft.rgba: bgr +Xpdf*fileFilterStyle: filter_hidden_files +xlock.bg: #000000 diff --git a/.config/nitrogen/bg-saved.cfg b/.config/nitrogen/bg-saved.cfg new file mode 100644 index 0000000..853fb50 --- /dev/null +++ b/.config/nitrogen/bg-saved.cfg @@ -0,0 +1,15 @@ + +[:0.0] +file=/home/ryan/.local/share/wallpapers/ny2.jpg +mode=5 +bgcolor=#000000 + +[xin_1] +file=/home/ryan/.local/share/wallpapers/ny1.jpg +mode=3 +bgcolor=#000000 + +[xin_0] +file=/home/ryan/.local/share/wallpapers/ny2.jpg +mode=3 +bgcolor=#000000 diff --git a/.config/nitrogen/nitrogen.cfg b/.config/nitrogen/nitrogen.cfg new file mode 100644 index 0000000..b7a99a1 --- /dev/null +++ b/.config/nitrogen/nitrogen.cfg @@ -0,0 +1,11 @@ + +[geometry] +posx=960 +posy=18 +sizex=958 +sizey=589 + +[nitrogen] +view=icon +icon_caps=false +dirs=/home/ryan/.local/share/wallpapers; diff --git a/.dzen/battery.sh b/.dzen/battery.sh new file mode 100755 index 0000000..9e67834 --- /dev/null +++ b/.dzen/battery.sh @@ -0,0 +1,60 @@ +#!/bin/sh +# +# original script by lyon8 <lyon8@gmx.net> +# modifications from original by <sean.escriva@gmail.com> +# show your laptop battery state in dzen +# Taken from http://www.webframp.com/2008/08/17/switchdzen/ and modified by Ryan +# Kavanagh <ryanakca@kubuntu.org> to add support for a missing battery and use +# /sys instead of /proc/acpi/battery + +BG='#171717' # dzen backgrounad +FG='#008dd5' # dzen foreground +W=114 # width of the dzen bar +GW=50 # width of the gauge +GFG='#33ccff' # color of the gauge +GH=7 # height of the gauge +GBG='#333' # color of gauge background +X=0 # x position +Y=0 # y position +FN='snap' # font + +STATEFILE='/sys/bus/acpi/drivers/battery/PNP0C0A:00/power_supply/BAT1/uevent' # battery's state file + +LOWBAT=10 # percentage of battery life marked as low +LOWCOL='#ff4747' # color when battery is low +CHGCOL='#60da11' # color when battery is charging +TIME_INT=30 # time intervall in seconds + +PREBAR='^i(/home/ryan/.dzen/icons/power-bat.xbm) ' # caption (also icons are possible) + +while true; do + # look up battery's data + PRESENT=`cat $STATEFILE|grep POWER_SUPPLY_PRESENT|cut -d '=' -f 2`; + if [ $PRESENT = '1' ]; then + BAT_FULL=`cat $STATEFILE|grep POWER_SUPPLY_CHARGE_FULL_DESIGN | cut -d '=' -f 2 `; + STATUS=`cat $STATEFILE|grep POWER_SUPPLY_STATUS |cut -d '=' -f 2`; + RCAP=`cat $STATEFILE|grep POWER_SUPPLY_CHARGE_NOW|cut -d '=' -f 2`; + + echo $BAT_FULL " " $STATUS " " $RCAP > /dev/stdout + + # calculate remaining power + RPERCT=`expr $RCAP \* 100`; + RPERC=`expr $RPERCT / $BAT_FULL`; + + # draw the bar and pipe everything into dzen + if [ $RPERC -le $LOWBAT ]; then + GFG=$LOWCOL; + fi + if [ $STATUS = 'Charging' ]; then + GFG=$CHGCOL; + else + GFG='#33ccff'; + fi + echo -n $PREBAR #uncomment for an icon + eval echo $RPERC | dzen2-gdbar -h $GH -w $GW -fg $GFG -bg $GBG + else + echo -n $PREBAR #uncomment for an icon + eval echo 'Missing' + fi + sleep $TIME_INT; +done | dzen2 -ta c -tw $W -y $Y -x $X -fg $FG -bg $BG #-fn $FN diff --git a/.dzen/dzen.sh b/.dzen/dzen.sh new file mode 100755 index 0000000..59c4700 --- /dev/null +++ b/.dzen/dzen.sh @@ -0,0 +1,156 @@ +#!/bin/zsh + +typeset -A DISKS +### +# Config +### +DATE_FORMAT="%a %d %b, %Y" +TIME_ZONES=("America/Toronto" "UTC") +DISKS=(home /home root /) +SEPERATOR=' ^fg(#86AA3F)^c(3)^fg() ' +BAR_BG='#7DA926' +BAR_FG='#B9D56E' +BAR_HH=6 +BAR_HW=40 +BAR_VH=12 +BAR_VW=3 +BAR_ARGS="-bg $BAR_BG -fg $BAR_FG -w $BAR_HW -h $BAR_HH" +ICON_DIR="$HOME/.dzen/icons/" +NETWORK_INTERFACE=eth0 +NET_DOWN_MAX=55 +NET_UP_MAX=14 +MAILDIR=~/.maildb/GMAIL/ + +GLOBALIVAL=1m +DATEIVAL=60 +TIMEIVAL=1 +DISKIVAL=1 +#CPUTEMPIVAL=5 +#CPUIVAL=1 +#NPIVAL=3 +NETIVAL=1 + + +### +# Functions +### +_date() +{ + date +${DATE_FORMAT} +} + +_time() +{ + local zone + print_space=0 + for zone in $TIME_ZONES; do + [[ $print_space -eq 1 ]] && print -n " " + print -n "${zone:t}: $(TZ=$zone date '+%H:%M')" + print_space=1 + done +} + +# +# Format: label1 mountpoint1 label2 mountpoint2 ... labelN mountpointN +# Copied and modified from Rob +get_disk_usage() { + local rstr; local tstr; local i; local sep + for i in ${(k)DISKS}; do + tstr=$(print `df -h $DISKS[$i]|sed -ne 's/^.* \([0-9]*\)% .*/\1/p'` 100 | \ + dzen2-gdbar -h $BAR_HH -w $BAR_HW -fg $BAR_FG -bg $BAR_BG -l "${i}" -nonl | \ + sed 's/[0-9]\+%//g;s/ / /g') + if [ ! -z "$rstr" ]; then + sep=${SEPERATOR} + fi + rstr="${rstr}${sep}${tstr}" + done + print -n $rstr +} + +# Requires mesure +get_net_rates() { + local up; local down + up=`mesure -K -l -c 3 -t -o $NETWORK_INTERFACE` + down=`mesure -K -l -c 3 -t -i $NETWORK_INTERFACE` + echo "$down $up" +} + +#cpu_temp() +#{ +# print -n ${(@)$(</proc/acpi/thermal_zone/THRM/temperature)[2,3]} +#} +# +#np() +#{ +# #MAXPOS="100" +# CAPTION="^i(${ICON_DIR}/musicS.xbm)" +# #POS=`mpc | sed -ne 's/^.*(\([0-9]*\)%).*$/\1/p'` +# #POSM="$POS $MAXPOS" +# print -n "$CAPTION " +# mpc | head -n1 | tr -d '\n' +# #echo "$POSM" | gdbar -h 7 -w 50 -fg $BAR_FG -bg $BAR_BG +#} +# +#cpu() +#{ +# gcpubar -c 2 -bg $BAR_BG -fg $BAR_FG -w $BAR_HW -h $BAR_HH | tail -n1 | tr -d '\n' +#} + +has_new_mail() { + find ${MAILDIR}/*/new -not -type d | wc -l +} + +DATEI=0 +TIMEI=0 +DISKI=0 +#NPI=0 +#CPUTEMPI=0 +#CPUI=0 +NETI=0 + +date=$(_date) +times=$(_time) +disk_usage=$(get_disk_usage) +#now_playing=$(np) +#temp=$(cpu_temp) +#cpumeter=$(cpu) +net_rates=( `get_net_rates` ) + +while true; do + [[ $DATEI -ge $DATEIVAL ]] && date=$(_date) && DATEI=0 + [[ $TIMEI -ge $TIMEIVAL ]] && times=$(_time) && TIMEI=0 + [[ $DISKI -ge $DISKIVAL ]] && disk_usage=$(get_disk_usage) && DISKI=0 + #[[ $NPI -ge $NPIVAL ]] && now_playing=$(np) && NPI=0 + #[[ $CPUI -ge $CPUIVAL ]] && cpumeter=$(cpu) && CPUI=0 + #[[ $CPUTEMPI -ge $CPUTEMPIVAL ]] && temp=$(cpu_temp) && CPUTEMPI=0 + [[ $NETI -ge $NETIVAL ]] && net_rates=( `get_net_rates` ) && NETI=0 + + # Disk usage + echo -n "${disk_usage}${SEPERATOR}" + # Network + echo $net_rates[1] | dzen2-gdbar -nonl -s v -w $BAR_VW -h $BAR_VH -min 0 \ + -max $NET_DOWN_MAX -fg $BAR_FG -bg $BAR_BG + echo -n " " + echo $net_rates[2] | dzen2-gdbar -nonl -s v -w $BAR_VW -h $BAR_VH -min 0 \ + -max $NET_UP_MAX -fg $BAR_FG -bg $BAR_BG + echo -n "${SEPERATOR}" + # Mail notification + if [ `has_new_mail` -gt 0 ]; then + echo -n "^fg(#73d216)" + fi + echo -n "^i(${ICON_DIR}/mail.xbm)^fg()${SEPERATOR}" + # Time and date + echo -n "${times}${SEPERATOR}" + echo -n "${date}" + echo + + DATEI=$(($DATEI+1)) + TIMEI=$(($TIMEI+1)) + DISKI=$(($DISKI+1)) + #NPI=$(($NPI+1)) + #CPUI=$(($CPUI+1)) + #CPUTEMPI=$(($CPUTEMPI+1)) + NETI=$(($NETI+1)) + + sleep $GLOBALIVAL +done diff --git a/.dzen/icons/arrow_down.xbm b/.dzen/icons/arrow_down.xbm new file mode 100644 index 0000000..0502235 --- /dev/null +++ b/.dzen/icons/arrow_down.xbm @@ -0,0 +1,4 @@ +#define net_down_03_width 8 +#define net_down_03_height 8 +static unsigned char net_down_03_bits[] = { + 0x38, 0x38, 0x38, 0x38, 0xFE, 0x7C, 0x38, 0x10 }; diff --git a/.dzen/icons/arrow_up.xbm b/.dzen/icons/arrow_up.xbm new file mode 100644 index 0000000..b21c007 --- /dev/null +++ b/.dzen/icons/arrow_up.xbm @@ -0,0 +1,4 @@ +#define net_up_03_width 8 +#define net_up_03_height 8 +static unsigned char net_up_03_bits[] = { + 0x10, 0x38, 0x7C, 0xFE, 0x38, 0x38, 0x38, 0x38 }; diff --git a/.dzen/icons/bluetooth.xbm b/.dzen/icons/bluetooth.xbm new file mode 100644 index 0000000..3cc42d5 --- /dev/null +++ b/.dzen/icons/bluetooth.xbm @@ -0,0 +1,4 @@ +#define bluetooth_width 8 +#define bluetooth_height 8 +static unsigned char bluetooth_bits[] = { + 0x18, 0x2A, 0x6C, 0x38, 0x38, 0x6C, 0x2A, 0x18 }; diff --git a/.dzen/icons/corner.xbm b/.dzen/icons/corner.xbm new file mode 100644 index 0000000..0851adf --- /dev/null +++ b/.dzen/icons/corner.xbm @@ -0,0 +1,5 @@ +#define corner_width 8 +#define corner_height 16 +static unsigned char corner_bits[] = { + 0x00, 0x00, 0x1e, 0x0e, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/cpu.xbm b/.dzen/icons/cpu.xbm new file mode 100644 index 0000000..2c7d0e8 --- /dev/null +++ b/.dzen/icons/cpu.xbm @@ -0,0 +1,6 @@ +#define cpu2_width 16 +#define cpu2_height 16 +static unsigned char cpu2_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x12, 0xfc, 0x3f, + 0xfc, 0x3f, 0x1c, 0x38, 0x1c, 0x38, 0x1e, 0x78, 0xfc, 0x3f, 0xfe, 0x7f, + 0xfc, 0x3f, 0x48, 0x12, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/down.xbm b/.dzen/icons/down.xbm new file mode 100644 index 0000000..bc350dd --- /dev/null +++ b/.dzen/icons/down.xbm @@ -0,0 +1,6 @@ +#define down_width 16 +#define down_height 16 +static unsigned char down_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x03, 0xc0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/fwd.xbm b/.dzen/icons/fwd.xbm new file mode 100644 index 0000000..3f52ea9 --- /dev/null +++ b/.dzen/icons/fwd.xbm @@ -0,0 +1,4 @@ +#define fwd_width 8 +#define fwd_height 8 +static unsigned char fwd_bits[] = { + 0x00, 0x12, 0x36, 0x7E, 0x7E, 0x36, 0x12, 0x00 }; diff --git a/.dzen/icons/layout-full-black.xbm b/.dzen/icons/layout-full-black.xbm new file mode 100644 index 0000000..1c97fde --- /dev/null +++ b/.dzen/icons/layout-full-black.xbm @@ -0,0 +1,5 @@ +#define full_width 12 +#define full_height 12 +static unsigned char full_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0xfc, 0x03, 0x04, 0x02, 0x04, 0x02, + 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0xfc, 0x03, 0x00, 0x00}; diff --git a/.dzen/icons/layout-full.xbm b/.dzen/icons/layout-full.xbm new file mode 100644 index 0000000..f0492b6 --- /dev/null +++ b/.dzen/icons/layout-full.xbm @@ -0,0 +1,8 @@ +#define max_width 18 +#define max_height 18 +static unsigned char max_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFC, 0xFF, 0x00, 0xFC, 0xFF, 0x00, 0x04, 0x80, 0x00, 0x04, 0x80, 0x00, + 0x04, 0x80, 0x00, 0x04, 0x80, 0x00, 0x04, 0x80, 0x00, 0x04, 0x80, 0x00, + 0x04, 0x80, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/layout-gimp.xbm b/.dzen/icons/layout-gimp.xbm new file mode 100644 index 0000000..4711c31 --- /dev/null +++ b/.dzen/icons/layout-gimp.xbm @@ -0,0 +1,8 @@ +#define layout_gimp_width 18 +#define layout_gimp_height 18 +static unsigned char layout_gimp_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7c, 0xfd, 0x01, 0x00, 0x00, 0x00, 0x7c, 0xfd, 0x01, 0x44, 0x25, 0x01, + 0x44, 0x25, 0x01, 0x44, 0x25, 0x01, 0x7c, 0x01, 0x00, 0x40, 0xfd, 0x01, + 0x7c, 0x05, 0x01, 0x00, 0x04, 0x01, 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/layout-im-full.xbm b/.dzen/icons/layout-im-full.xbm new file mode 100644 index 0000000..ba75847 --- /dev/null +++ b/.dzen/icons/layout-im-full.xbm @@ -0,0 +1,8 @@ +#define layout_im_full_width 18 +#define layout_im_full_height 18 +static unsigned char layout_im_full_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0x00, 0x44, 0x80, 0x00, 0x44, 0x80, 0x00, 0x44, 0x80, 0x00, + 0x44, 0x80, 0x00, 0x44, 0x80, 0x00, 0x44, 0x80, 0x00, 0x44, 0x80, 0x00, + 0x44, 0x80, 0x00, 0xfc, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/layout-im-mirror.xbm b/.dzen/icons/layout-im-mirror.xbm new file mode 100644 index 0000000..6cb3ed1 --- /dev/null +++ b/.dzen/icons/layout-im-mirror.xbm @@ -0,0 +1,8 @@ +#define layout_im_mirror_width 18 +#define layout_im_mirror_height 18 +static unsigned char layout_im_mirror_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0x00, 0x44, 0x80, 0x00, 0x44, 0x80, 0x00, 0x44, 0x80, 0x00, + 0x44, 0x80, 0x00, 0x44, 0x80, 0x00, 0xc4, 0xff, 0x00, 0x44, 0x80, 0x00, + 0x44, 0x80, 0x00, 0xfc, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/layout-im-tall.xbm b/.dzen/icons/layout-im-tall.xbm new file mode 100644 index 0000000..704f503 --- /dev/null +++ b/.dzen/icons/layout-im-tall.xbm @@ -0,0 +1,8 @@ +#define layout_im_tall_width 18 +#define layout_im_tall_height 18 +static unsigned char layout_im_tall_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0x00, 0x44, 0x90, 0x00, 0x44, 0x90, 0x00, 0x44, 0x90, 0x00, + 0x44, 0x90, 0x00, 0x44, 0x90, 0x00, 0x44, 0x90, 0x00, 0x44, 0x90, 0x00, + 0x44, 0x90, 0x00, 0xfc, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/layout-im.xbm b/.dzen/icons/layout-im.xbm new file mode 100644 index 0000000..e5e296a --- /dev/null +++ b/.dzen/icons/layout-im.xbm @@ -0,0 +1,8 @@ +#define layout_im_grid_width 18 +#define layout_im_grid_height 18 +static unsigned char layout_im_grid_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0x00, 0x04, 0x80, 0x00, 0xa4, 0xbf, 0x00, 0x84, 0xa4, 0x00, + 0xa4, 0xa4, 0x00, 0xa4, 0xa4, 0x00, 0xa4, 0xa4, 0x00, 0xa4, 0xa4, 0x00, + 0x04, 0x80, 0x00, 0xfc, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/layout-mirror-black.xbm b/.dzen/icons/layout-mirror-black.xbm new file mode 100644 index 0000000..246fd37 --- /dev/null +++ b/.dzen/icons/layout-mirror-black.xbm @@ -0,0 +1,5 @@ +#define mtall_width 12 +#define mtall_height 12 +static unsigned char mtall_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0xfc, 0x03, 0xfc, 0x03, 0xfc, 0x03, + 0xfc, 0x03, 0x00, 0x00, 0x6c, 0x03, 0x6c, 0x03, 0x6c, 0x03, 0x00, 0x00}; diff --git a/.dzen/icons/layout-mirror-bottom.xbm b/.dzen/icons/layout-mirror-bottom.xbm new file mode 100644 index 0000000..e1d8679 --- /dev/null +++ b/.dzen/icons/layout-mirror-bottom.xbm @@ -0,0 +1,8 @@ +#define tilebottom_width 18 +#define tilebottom_height 18 +static unsigned char tilebottom_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFC, 0xFF, 0x00, 0x04, 0x80, 0x00, 0x04, 0x80, 0x00, 0x04, 0x80, 0x00, + 0x04, 0x80, 0x00, 0x04, 0x80, 0x00, 0xFC, 0xFF, 0x00, 0x44, 0x88, 0x00, + 0x44, 0x88, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/layout-mirror-top.xbm b/.dzen/icons/layout-mirror-top.xbm new file mode 100644 index 0000000..10e8ca2 --- /dev/null +++ b/.dzen/icons/layout-mirror-top.xbm @@ -0,0 +1,8 @@ +#define tiletop_width 18 +#define tiletop_height 18 +static unsigned char tiletop_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFC, 0xFF, 0x00, 0x44, 0x88, 0x00, 0x44, 0x88, 0x00, 0xFC, 0xFF, 0x00, + 0x04, 0x80, 0x00, 0x04, 0x80, 0x00, 0x04, 0x80, 0x00, 0x04, 0x80, 0x00, + 0x04, 0x80, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/layout-tall-black.xbm b/.dzen/icons/layout-tall-black.xbm new file mode 100644 index 0000000..1a67757 --- /dev/null +++ b/.dzen/icons/layout-tall-black.xbm @@ -0,0 +1,5 @@ +#define tall_width 12 +#define tall_height 12 +static unsigned char tall_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x7e, 0x07, 0x7e, 0x07, 0x7e, 0x00, 0x7e, 0x07, + 0x7e, 0x07, 0x7e, 0x00, 0x7e, 0x07, 0x7e, 0x07, 0x00, 0x00, 0x00, 0x00}; diff --git a/.dzen/icons/layout-tall-left.xbm b/.dzen/icons/layout-tall-left.xbm new file mode 100644 index 0000000..91e9b75 --- /dev/null +++ b/.dzen/icons/layout-tall-left.xbm @@ -0,0 +1,8 @@ +#define tileleft_width 18 +#define tileleft_height 18 +static unsigned char tileleft_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFC, 0xFF, 0x00, 0x44, 0x80, 0x00, 0x44, 0x80, 0x00, 0x7C, 0x80, 0x00, + 0x44, 0x80, 0x00, 0x44, 0x80, 0x00, 0x7C, 0x80, 0x00, 0x44, 0x80, 0x00, + 0x44, 0x80, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/layout-tall-right.xbm b/.dzen/icons/layout-tall-right.xbm new file mode 100644 index 0000000..f3c44ba --- /dev/null +++ b/.dzen/icons/layout-tall-right.xbm @@ -0,0 +1,8 @@ +#define tileright_width 18 +#define tileright_height 18 +static unsigned char tileright_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFC, 0xFF, 0x00, 0x04, 0x88, 0x00, 0x04, 0x88, 0x00, 0x04, 0xF8, 0x00, + 0x04, 0x88, 0x00, 0x04, 0x88, 0x00, 0x04, 0xF8, 0x00, 0x04, 0x88, 0x00, + 0x04, 0x88, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/layout-threecol.xbm b/.dzen/icons/layout-threecol.xbm new file mode 100644 index 0000000..3009ecc --- /dev/null +++ b/.dzen/icons/layout-threecol.xbm @@ -0,0 +1,8 @@ +#define threecol_width 18 +#define threecol_height 18 +static unsigned char threecol_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFC, 0xFF, 0x00, 0x44, 0x88, 0x00, 0x44, 0x88, 0x00, 0x44, 0x88, 0x00, + 0x44, 0x88, 0x00, 0x44, 0x88, 0x00, 0x44, 0x88, 0x00, 0x44, 0x88, 0x00, + 0x44, 0x88, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/load.xbm b/.dzen/icons/load.xbm new file mode 100644 index 0000000..b9a1061 --- /dev/null +++ b/.dzen/icons/load.xbm @@ -0,0 +1,6 @@ +#define load_width 16 +#define load_height 16 +static unsigned char load_bits[] = { + 0x00, 0x00, 0xfe, 0x7f, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, + 0x02, 0x44, 0x02, 0x4a, 0x02, 0x71, 0x8e, 0x40, 0x52, 0x40, 0x22, 0x40, + 0x02, 0x40, 0x02, 0x40, 0xfe, 0x7f, 0x00, 0x00 }; diff --git a/.dzen/icons/mail.xbm b/.dzen/icons/mail.xbm new file mode 100644 index 0000000..295eb73 --- /dev/null +++ b/.dzen/icons/mail.xbm @@ -0,0 +1,4 @@ +#define mail_width 8 +#define mail_height 8 +static unsigned char mail_bits[] = { + 0x00, 0xFF, 0x7E, 0xBD, 0xDB, 0xE7, 0xFF, 0x00 }; diff --git a/.dzen/icons/mem.xbm b/.dzen/icons/mem.xbm new file mode 100644 index 0000000..5c5bc8e --- /dev/null +++ b/.dzen/icons/mem.xbm @@ -0,0 +1,6 @@ +#define load_mem_width 16 +#define load_mem_height 16 +static unsigned char load_mem_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x12, 0x48, 0x12, 0xfc, 0x3f, + 0xfc, 0x3f, 0xfc, 0x3f, 0xfc, 0x3f, 0xfc, 0x3f, 0xfc, 0x3f, 0x48, 0x12, + 0x48, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/mpd.xbm b/.dzen/icons/mpd.xbm new file mode 100644 index 0000000..8211667 --- /dev/null +++ b/.dzen/icons/mpd.xbm @@ -0,0 +1,6 @@ +#define mpd_width 16 +#define mpd_height 16 +static unsigned char mpd_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x40, 0x10, + 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x40, 0x10, 0x70, 0x1c, 0x78, 0x1e, + 0x30, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/net-wifi.xbm b/.dzen/icons/net-wifi.xbm new file mode 100644 index 0000000..0b3a4a1 --- /dev/null +++ b/.dzen/icons/net-wifi.xbm @@ -0,0 +1,6 @@ +#define net_wifi4_width 16 +#define net_wifi4_height 16 +static unsigned char net_wifi4_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x08, 0x10, 0xe4, 0x27, 0x10, 0x08, + 0xc0, 0x03, 0x20, 0x04, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, + 0xc0, 0x03, 0xc0, 0x03, 0x80, 0x01, 0x00, 0x00 }; diff --git a/.dzen/icons/net-wifi3.xbm b/.dzen/icons/net-wifi3.xbm new file mode 100644 index 0000000..7ebb55d --- /dev/null +++ b/.dzen/icons/net-wifi3.xbm @@ -0,0 +1,6 @@ +#define wireless3_full_width 16 +#define wireless3_full_height 16 +static unsigned char wireless3_full_bits[] = { + 0x00, 0x00, 0xf0, 0x0f, 0x08, 0x10, 0xe4, 0x27, 0x10, 0x08, 0x00, 0x00, + 0xc0, 0x03, 0xc0, 0x03, 0xf0, 0x0f, 0xf0, 0x0f, 0xf0, 0x0f, 0xf0, 0x0f, + 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/net-wifi4.xbm b/.dzen/icons/net-wifi4.xbm new file mode 100644 index 0000000..8179eb4 --- /dev/null +++ b/.dzen/icons/net-wifi4.xbm @@ -0,0 +1,6 @@ +#define net_wifi4_width 16 +#define net_wifi4_height 16 +static unsigned char net_wifi4_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0xfe, 0x7f, 0x00, 0x00, + 0xfc, 0x3f, 0xfc, 0x3f, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, + 0xe0, 0x07, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/net-wifi5.xbm b/.dzen/icons/net-wifi5.xbm new file mode 100644 index 0000000..8a097ef --- /dev/null +++ b/.dzen/icons/net-wifi5.xbm @@ -0,0 +1,6 @@ +#define wireless_full_width 16 +#define wireless_full_height 16 +static unsigned char wireless_full_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0xfe, 0x7f, 0x00, 0x00, + 0xfc, 0x3f, 0xf8, 0x1f, 0x00, 0x00, 0xf0, 0x0f, 0xe0, 0x07, 0x00, 0x00, + 0xc0, 0x03, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/net-wired.xbm b/.dzen/icons/net-wired.xbm new file mode 100644 index 0000000..d9655d7 --- /dev/null +++ b/.dzen/icons/net-wired.xbm @@ -0,0 +1,6 @@ +#define network_eth2_width 16 +#define network_eth2_height 16 +static unsigned char network_eth2_bits[] = { + 0x00, 0x00, 0xfe, 0x7f, 0x02, 0x40, 0x02, 0x40, 0xc2, 0x43, 0xc2, 0x43, + 0xc2, 0x43, 0xf2, 0x4f, 0xf2, 0x4f, 0xf2, 0x4f, 0xf2, 0x4f, 0xf2, 0x4f, + 0x02, 0x40, 0x02, 0x40, 0xfe, 0x7f, 0x00, 0x00 }; diff --git a/.dzen/icons/net-wired2.xbm b/.dzen/icons/net-wired2.xbm new file mode 100644 index 0000000..fb7276a --- /dev/null +++ b/.dzen/icons/net-wired2.xbm @@ -0,0 +1,6 @@ +#define network_eth1_width 16 +#define network_eth1_height 16 +static unsigned char network_eth1_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x60, 0x03, 0x70, 0x07, + 0x78, 0x0f, 0x7f, 0x7f, 0x7f, 0x7f, 0x78, 0x0f, 0x70, 0x07, 0x60, 0x03, + 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/next.xbm b/.dzen/icons/next.xbm new file mode 100644 index 0000000..3937532 --- /dev/null +++ b/.dzen/icons/next.xbm @@ -0,0 +1,4 @@ +#define next_width 8 +#define next_height 8 +static unsigned char next_bits[] = { + 0x00, 0x42, 0x4E, 0x7E, 0x7E, 0x4E, 0x42, 0x00 }; diff --git a/.dzen/icons/pause.xbm b/.dzen/icons/pause.xbm new file mode 100644 index 0000000..6bb2251 --- /dev/null +++ b/.dzen/icons/pause.xbm @@ -0,0 +1,4 @@ +#define pause_width 8 +#define pause_height 8 +static unsigned char pause_bits[] = { + 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00 }; diff --git a/.dzen/icons/phones.xbm b/.dzen/icons/phones.xbm new file mode 100644 index 0000000..cab8c58 --- /dev/null +++ b/.dzen/icons/phones.xbm @@ -0,0 +1,4 @@ +#define phones_width 8 +#define phones_height 8 +static unsigned char phones_bits[] = { + 0x3C, 0x42, 0x81, 0x81, 0xA5, 0xE7, 0xE7, 0x66 }; diff --git a/.dzen/icons/play.xbm b/.dzen/icons/play.xbm new file mode 100644 index 0000000..d42ad52 --- /dev/null +++ b/.dzen/icons/play.xbm @@ -0,0 +1,4 @@ +#define play_width 8 +#define play_height 8 +static unsigned char play_bits[] = { + 0x00, 0x06, 0x1E, 0x7E, 0x7E, 0x1E, 0x06, 0x00 }; diff --git a/.dzen/icons/plus.xbm b/.dzen/icons/plus.xbm new file mode 100644 index 0000000..f8e5f8a --- /dev/null +++ b/.dzen/icons/plus.xbm @@ -0,0 +1,5 @@ +#define occupied_width 8 +#define occupied_height 16 +static unsigned char occupied_bits[] = { + 0x00, 0x00, 0x08, 0x08, 0x3e, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/power-ac.xbm b/.dzen/icons/power-ac.xbm new file mode 100644 index 0000000..45ed243 --- /dev/null +++ b/.dzen/icons/power-ac.xbm @@ -0,0 +1,6 @@ +#define power_ac_width 16 +#define power_ac_height 16 +static unsigned char power_ac_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x07, 0xc0, 0x3f, + 0xe0, 0x07, 0xfc, 0x07, 0xfc, 0x07, 0xe0, 0x07, 0xc0, 0x3f, 0x80, 0x07, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/power-bat.xbm b/.dzen/icons/power-bat.xbm new file mode 100644 index 0000000..c450bbc --- /dev/null +++ b/.dzen/icons/power-bat.xbm @@ -0,0 +1,6 @@ +#define battery_width 16 +#define battery_height 16 +static unsigned char battery_bits[] = { + 0x00, 0x00, 0xc0, 0x03, 0xc0, 0x03, 0xf0, 0x0f, 0xf0, 0x0f, 0x10, 0x08, + 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0xf0, 0x0f, 0xf0, 0x0f, 0xf0, 0x0f, + 0xf0, 0x0f, 0xf0, 0x0f, 0xf0, 0x0f, 0x00, 0x00 }; diff --git a/.dzen/icons/power-bat2.xbm b/.dzen/icons/power-bat2.xbm new file mode 100644 index 0000000..e7be632 --- /dev/null +++ b/.dzen/icons/power-bat2.xbm @@ -0,0 +1,6 @@ +#define power_bat2_width 16 +#define power_bat2_height 16 +static unsigned char power_bat2_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x1f, 0x7e, 0x18, + 0x7e, 0x78, 0x7e, 0x78, 0x7e, 0x78, 0x7e, 0x78, 0x7e, 0x18, 0xfe, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/prev.xbm b/.dzen/icons/prev.xbm new file mode 100644 index 0000000..8774315 --- /dev/null +++ b/.dzen/icons/prev.xbm @@ -0,0 +1,4 @@ +#define prev_width 8 +#define prev_height 8 +static unsigned char prev_bits[] = { + 0x00, 0x42, 0x72, 0x7E, 0x7E, 0x72, 0x42, 0x00 }; diff --git a/.dzen/icons/rwd.xbm b/.dzen/icons/rwd.xbm new file mode 100644 index 0000000..5170b21 --- /dev/null +++ b/.dzen/icons/rwd.xbm @@ -0,0 +1,4 @@ +#define rwd_width 8 +#define rwd_height 8 +static unsigned char rwd_bits[] = { + 0x00, 0x48, 0x6C, 0x7E, 0x7E, 0x6C, 0x48, 0x00 }; diff --git a/.dzen/icons/spkr_hi.xbm b/.dzen/icons/spkr_hi.xbm new file mode 100644 index 0000000..7c2ffc4 --- /dev/null +++ b/.dzen/icons/spkr_hi.xbm @@ -0,0 +1,4 @@ +#define spkr_01_width 8 +#define spkr_01_height 8 +static unsigned char spkr_01_bits[] = { + 0x08, 0x4C, 0x8F, 0xAF, 0xAF, 0x8F, 0x4C, 0x08 }; diff --git a/.dzen/icons/spkr_mute.xbm b/.dzen/icons/spkr_mute.xbm new file mode 100644 index 0000000..8265bf8 --- /dev/null +++ b/.dzen/icons/spkr_mute.xbm @@ -0,0 +1,4 @@ +#define spkr_02_width 8 +#define spkr_02_height 8 +static unsigned char spkr_02_bits[] = { + 0x08, 0x0C, 0x0F, 0x1F, 0x1F, 0x0F, 0x0C, 0x08 }; diff --git a/.dzen/icons/square.xbm b/.dzen/icons/square.xbm new file mode 100644 index 0000000..4bc66cd --- /dev/null +++ b/.dzen/icons/square.xbm @@ -0,0 +1,5 @@ +#define square_width 8 +#define square_height 16 +static unsigned char square_bits[] = { + 0x00, 0x00, 0x1e, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/stop.xbm b/.dzen/icons/stop.xbm new file mode 100644 index 0000000..f92b64d --- /dev/null +++ b/.dzen/icons/stop.xbm @@ -0,0 +1,4 @@ +#define stop_width 8 +#define stop_height 8 +static unsigned char stop_bits[] = { + 0x00, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x00 }; diff --git a/.dzen/icons/temp.xbm b/.dzen/icons/temp.xbm new file mode 100644 index 0000000..f37932b --- /dev/null +++ b/.dzen/icons/temp.xbm @@ -0,0 +1,6 @@ +#define temp_width 16 +#define temp_height 16 +static unsigned char temp_bits[] = { + 0x00, 0x00, 0x80, 0x01, 0xc0, 0x0b, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x0b, + 0x40, 0x02, 0x40, 0x02, 0x40, 0x0a, 0x40, 0x02, 0x40, 0x02, 0x60, 0x06, + 0x20, 0x04, 0x60, 0x06, 0xc0, 0x03, 0x00, 0x00 }; diff --git a/.dzen/icons/up.xbm b/.dzen/icons/up.xbm new file mode 100644 index 0000000..2fb6f25 --- /dev/null +++ b/.dzen/icons/up.xbm @@ -0,0 +1,6 @@ +#define up_width 16 +#define up_height 16 +static unsigned char up_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x00, 0xc0, 0x01, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/vol-hi.xbm b/.dzen/icons/vol-hi.xbm new file mode 100644 index 0000000..7c4a849 --- /dev/null +++ b/.dzen/icons/vol-hi.xbm @@ -0,0 +1,6 @@ +#define vol_hi2_width 16 +#define vol_hi2_height 16 +static unsigned char vol_hi2_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x80, 0x21, 0xc0, 0x49, 0xfc, 0x51, + 0xfc, 0x55, 0xfc, 0x55, 0xfc, 0x55, 0xfc, 0x55, 0xfc, 0x51, 0xc0, 0x49, + 0x80, 0x21, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/vol-mute.xbm b/.dzen/icons/vol-mute.xbm new file mode 100644 index 0000000..2d01f7b --- /dev/null +++ b/.dzen/icons/vol-mute.xbm @@ -0,0 +1,6 @@ +#define vol_mute2_width 16 +#define vol_mute2_height 16 +static unsigned char vol_mute2_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0xc0, 0x01, 0xfc, 0x01, + 0xfc, 0x01, 0xfc, 0x29, 0xfc, 0x11, 0xfc, 0x29, 0xfc, 0x01, 0xc0, 0x01, + 0x80, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 }; diff --git a/.dzen/icons/wifi_01.xbm b/.dzen/icons/wifi_01.xbm new file mode 100644 index 0000000..315d0f7 --- /dev/null +++ b/.dzen/icons/wifi_01.xbm @@ -0,0 +1,4 @@ +#define wifi_01_width 8 +#define wifi_01_height 8 +static unsigned char wifi_01_bits[] = { + 0x80, 0xA0, 0xA8, 0xAB, 0xAB, 0xA8, 0xA0, 0x80 }; diff --git a/.dzen/icons/wifi_02.xbm b/.dzen/icons/wifi_02.xbm new file mode 100644 index 0000000..bd2b3ee --- /dev/null +++ b/.dzen/icons/wifi_02.xbm @@ -0,0 +1,4 @@ +#define wifi_02_width 8 +#define wifi_02_height 8 +static unsigned char wifi_02_bits[] = { + 0x40, 0x90, 0xA4, 0xA9, 0xA9, 0xA4, 0x90, 0x40 }; diff --git a/.dzen/temperature.sh b/.dzen/temperature.sh new file mode 100755 index 0000000..4badbc5 --- /dev/null +++ b/.dzen/temperature.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# +# original script by lyon8 <lyon8@gmx.net> +# modifications from original by <sean.escriva@gmail.com> +# show your laptop battery state in dzen +# Taken from http://www.webframp.com/2008/08/17/switchdzen/ and modified by Ryan +# Kavanagh <ryanakca@kubuntu.org> to add support for a missing battery and use +# /sys instead of /proc/acpi/battery + +BG='#171717' # dzen backgrounad +FG='#11DD11' # dzen foreground +W=130 # width of the dzen bar +GW=50 # width of the gauge +GFG='#33ccff' # color of the gauge +GH=7 # height of the gauge +GBG='#333' # color of gauge background +X=922 # x position +Y=0 # y position +FN='snap' # font +TIME_INT=10 + +TEMPERATURE=`acpi -t` + +while true; do + echo $TEMPERATURE | sed -e 's/.*ok, //g' && sleep $TIME_INT +done | dzen2 -ta c -tw $W -y $Y -x $X -fg $FG -bg $BG #-fn $FN diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..798757d --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.*.swo +.*.swp +build +SUBSTS.local +.mutt/alias.rc diff --git a/.imapfilter/config.lua b/.imapfilter/config.lua new file mode 100644 index 0000000..5d4e50f --- /dev/null +++ b/.imapfilter/config.lua @@ -0,0 +1,235 @@ +-- +-- Options +-- + +options.timeout = 120 +options.subscribe = true + + + +-- Accounts + + +GMAIL = IMAP { +-- server = 'imap.gmail.com', +-- port = 993, +-- username = 'ryanakca@gmail.com', + server = 'localhost', + username = 'ryan', + password = 'LOCAL_PASS', +} + +-- Another account which connects to the mail server using the SSLv3 + +-- Get a list of the available mailboxes and folders +mailboxes, folders = GMAIL:list_all() + +-- Get a list of the subscribed mailboxes and folders +mailboxes, folders = GMAIL:list_subscribed() + +-- +-- Filters +-- For +-- GMAIL +-- + +-- Ubuntu stuff +kubuntu = GMAIL.INBOX:contain_field('List-ID', 'kubuntu-devel.lists.ubuntu.com') +GMAIL.INBOX:move_messages(GMAIL['Ubuntu.kuDevel'], kubuntu) + +ubuntuWeb = GMAIL.INBOX:contain_field('List-ID', 'ubuntu-website.lists.canonical.com') +GMAIL.INBOX:move_messages(GMAIL['Ubuntu.uWebML'], ubuntuWeb) + +UbuntuDevelAnnounce = GMAIL.INBOX:contain_field('List-ID', 'ubuntu-devel-announce.lists.ubuntu.com') +GMAIL.INBOX:move_messages(GMAIL['Ubuntu.uDevelAnnounce'], UbuntuDevelAnnounce) + + +ubuntuCanada = GMAIL.INBOX:contain_field('List-ID', 'ubuntu-ca.lists.ubuntu.com') +GMAIL.INBOX:move_messages(GMAIL['Ubuntu.uCanada'], ubuntuCanada) + +uDoc = GMAIL.INBOX:contain_field('List-ID', 'ubuntu-doc.lists.ubuntu.com') +GMAIL.INBOX:move_messages(GMAIL['Ubuntu.uDoc'], uDoc) + +uClassroom = GMAIL.INBOX:contain_field('List-Id', 'ubuntu-classroom.lists.ubuntu.com') +GMAIL.INBOX:move_messages(GMAIL['Ubuntu.uClassroom'], uClassroom) + +uClassroomOwner = GMAIL.INBOX:match_from('ubuntu-classroom-owner@lists.ubuntu.com') +GMAIL.INBOX:move_messages(GMAIL['[Google Mail].Bin'], uClassroomOwner) + +launchpadUsers = GMAIL.INBOX:contain_field('List-ID', 'launchpad-users.lists.launchpad.net') + + GMAIL.INBOX:contain_field('List-ID', 'launchpad-users.lists.canonical.com') + + GMAIL.INBOX:match_to('launchpad-users@lists.launchpad.net') + + GMAIL.INBOX:match_cc('launchpad-users@lists.launchpad.net') +GMAIL.INBOX:move_messages(GMAIL['Ubuntu.launchpadUsers'], launchpadUsers) + +kubuntuBugs = GMAIL.INBOX:contain_field('List-ID', 'kubuntu-bugs.lists.ubuntu.com') + + GMAIL.INBOX:contain_header('X-Launchpad-Message-Rationale: .*@kubuntu-bugs') + + GMAIL.INBOX:match_header('X-BeenThere: kubuntu-bugs@lists.ubuntu.com') +GMAIL.INBOX:move_messages(GMAIL['Ubuntu.kuBugs'], kubuntuBugs) + +ubuntuirc = GMAIL.INBOX:contain_field('List-ID', 'ubuntu-irc.lists.ubuntu.com') +GMAIL.INBOX:move_messages(GMAIL['Ubuntu.ubuntu-irc'], ubuntuirc) + +ubuntuinstaller = GMAIL.INBOX:contain_field('List-ID', 'ubuntu-installer.lists.ubuntu.com') +GMAIL.INBOX:move_messages(GMAIL['Ubuntu.ubuntu-installer'], ubuntuinstaller) + +ubuntu = GMAIL.INBOX:contain_field('List-ID', '.*.lists.ubuntu.com') +GMAIL.INBOX:move_messages(GMAIL['Ubuntu'], ubuntu) + +uWebBugs = GMAIL.INBOX:match_header('X-Launchpad-Bug.*product=ubuntu-website.*') +GMAIL.INBOX:move_messages(GMAIL['Ubuntu.uWebBugs'], uWebBugs) + +kuWebBugs = GMAIL.INBOX:match_header('X-Launchpad-Bug:.*product=kubuntu-website.*') +GMAIL.INBOX:move_messages(GMAIL['Ubuntu.kuWebBugs'], kuWebBugs) + +ubugs = GMAIL.INBOX:match_header('X-Launchpad-Bug:.*distribution=ubuntu;.*') + + GMAIL.INBOX:contain_field('List-Id', 'ubuntu-bugcontrol.lists.launchpad.net') +GMAIL.INBOX:move_messages(GMAIL['Ubuntu.uBugs'], ubugs) + +kubuntuninjas = GMAIL.INBOX:match_header('X-Launchpad-PPA: kubuntu-ninjas') +GMAIL.INBOX:move_messages(GMAIL['Ubuntu.kubuntu-ninjas'], kubuntuninjas) + +--answers = GMAIL.INBOX:match_header('X-Launchpad-Question: distribution=ubuntu.*') +--GMAIL.INBOX:mark_seen(answers) +--GMAIL.INBOX:move_messages(GMAIL['Ubuntu.uAnswers'], answers) + +kubuntuWebmaster = GMAIL.INBOX:contain_to('webmaster@kubuntu.org') +GMAIL.INBOX:move_messages(GMAIL['Ubuntu.kuWebmaster'], kubuntuWebmaster) + +-- Debian stuff + +debianmentorslist = GMAIL.INBOX:contain_field('List-ID', 'debian-mentors.lists.debian.org') +GMAIL.INBOX:move_messages(GMAIL['Debian.debian-mentors'], debianmentorslist) + +debiandevel = GMAIL.INBOX:contain_field('List-ID', 'debian-devel.lists.debian.org') +GMAIL.INBOX:move_messages(GMAIL['Debian.debian-devel'], debiandevel) + +debiandevelann = GMAIL.INBOX:contain_field('List-ID', 'debian-devel-announce.lists.debian.org') +GMAIL.INBOX:move_messages(GMAIL['Debian.debian-devel-announce'], debiandevelann) + +debiannewmaint = GMAIL.INBOX:contain_field('List-ID', 'debian-newmaint.lists.debian.org') +GMAIL.INBOX:move_messages(GMAIL['Debian.debian-newmaint'], debiannewmaint) + +debianpythonapps = GMAIL.INBOX:contain_field('List-ID', 'python-apps-team.lists.alioth.debian.org') +GMAIL.INBOX:move_messages(GMAIL['Debian.python-apps-team'], debianpythonapps) + +debianqtkde = GMAIL.INBOX:contain_field('List-ID', 'debian-qt-kde.lists.debian.org') +GMAIL.INBOX:move_messages(GMAIL['Debian.debian-qt-kde'], debianqtkde) + +debianpkgkdetalk = GMAIL.INBOX:contain_field('List-ID', 'pkg-kde-talk.lists.alioth.debian.org') +GMAIL.INBOX:move_messages(GMAIL['Debian.pkg-kde-talk'], debianpkgkdetalk) + +debianpkgkdeextras = GMAIL.INBOX:contain_field('List-ID', 'pkg-kde-extras.lists.alioth.debian.org') +GMAIL.INBOX:move_messages(GMAIL['Debian.pkg-kde-extras'], debianpkgkdeextras) + +debianpkgkdecommits = GMAIL.INBOX:contain_field('List-ID', 'pkg-kde-commits.lists.alioth.debian.org') +GMAIL.INBOX:move_messages(GMAIL['Debian.pkg-kde-commits'], debianpkgkdecommits) + +debianpython = GMAIL.INBOX:contain_field('List-ID', 'debian-python.lists.debian.org') +GMAIL.INBOX:move_messages(GMAIL['Debian.debian-python'], debianpython) + +debiandevelfrench = GMAIL.INBOX:contain_field('List-ID', 'debian-devel-french.lists.debian.org') +GMAIL.INBOX:move_messages(GMAIL['Debian.debian-devel-french'], debiandevelfrench) + +debianpkgmultimediacommits = GMAIL.INBOX:contain_field('List-ID', 'pkg-multimedia-commits.lists.alioth.debian.org') +GMAIL.INBOX:move_messages(GMAIL['Debian.pkg-multimedia-commits'], debianpkgmultimediacommits) + +debianpkgmultimediamaintainers = GMAIL.INBOX:contain_field('List-ID', 'pkg-multimedia-maintainers.lists.alioth.debian.org') +GMAIL.INBOX:move_messages(GMAIL['Debian.pkg-multimedia-maintainers'], debianpkgmultimediamaintainers) + +debianjava = GMAIL.INBOX:contain_field('List-ID', 'debian-java.lists.debian.org') +GMAIL.INBOX:move_messages(GMAIL['Debian.debian-java'], debianjava) + +debiannews = GMAIL.INBOX:contain_field('List-ID', 'debian-news.lists.debian.org') +GMAIL.INBOX:move_messages(GMAIL['Debian.debian-news'], debiannews) + +debiandak = GMAIL.INBOX:contain_field('List-ID', 'debian-dak.lists.debian.org') +GMAIL.INBOX:move_messages(GMAIL['Debian.debian-dak'], debiandak) + +debianproject = GMAIL.INBOX:contain_field('List-ID', 'debian-project.lists.debian.org') +GMAIL.INBOX:move_messages(GMAIL['Debian.debian-project'], debianproject) + +debianqa = GMAIL.INBOX:contain_field('List-ID', 'debian-qa.lists.debian.org') +GMAIL.INBOX:move_messages(GMAIL['Debian.debian-qa'], debianqa) + +dbugs = GMAIL.INBOX:match_from('.*@bugs.debian.org') +GMAIL.INBOX:move_messages(GMAIL['Debian.dBugs'], dbugs) + +-- KDE Stuff + +kdefrancophone = GMAIL.INBOX:contain_field('List-ID', 'kde-francophone.kde.org') +GMAIL.INBOX:move_messages(GMAIL['KDE.kde-francophone'], kdefrancophone) + + +-- Other computer stuff +-- +slashdot = ( GMAIL.INBOX:is_seen() * + GMAIL.INBOX:match_from('slashdot@slashdot.org') ) +GMAIL.INBOX:move_messages(GMAIL['Slashdot'], slashdot) +-- +lwn = ( GMAIL.INBOX:is_seen() * + GMAIL.INBOX:match_from('lwn@lwn.net') ) +GMAIL.INBOX:move_messages(GMAIL['lwn'], lwn) + +sbuild = GMAIL.INBOX:match_from('sbuild@.*.ryanak.ca') + + GMAIL.INBOX:match_from('sbuild@lambda') +GMAIL.INBOX:move_messages(GMAIL['sbuild'], sbuild) + +freebsdstable = GMAIL.INBOX:contain_field('List-Id', 'freebsd-stable.freebsd.org') +GMAIL.INBOX:move_messages(GMAIL['FreeBSD.freebsd-stable'], freebsdstable) + +freebsdcurrent = GMAIL.INBOX:contain_field('List-Id', 'freebsd-current.freebsd.org') +GMAIL.INBOX:move_messages(GMAIL['FreeBSD.freebsd-current'], freebsdcurrent) + +-- O'ists + +oactivists = GMAIL.INBOX:contain_field('List-Id', 'oactivists.googlegroups.com') * + GMAIL.INBOX:is_seen() +GMAIL.INBOX:move_messages(GMAIL['OActivists'], oactivists) + +oevolve = GMAIL.INBOX:contain_field('List-Id', 'oevolve.googlegroups.com') * + GMAIL.INBOX:is_seen() +GMAIL.INBOX:move_messages(GMAIL['OEvolve'], oevolve) + +oproducers = GMAIL.INBOX:contain_field('List-Id', 'oproducers.googlegroups.com') * + GMAIL.INBOX:is_seen() +GMAIL.INBOX:move_messages(GMAIL['OProducers'], oproducers) + +ogrownups = GMAIL.INBOX:contain_field('List-Id', 'ogrownups.googlegroups.com') * + GMAIL.INBOX:is_seen() +GMAIL.INBOX:move_messages(GMAIL['OGrownups'], ogrownups) + +ogeeks = GMAIL.INBOX:contain_field('List-ID', 'ogeeks.googlegroups.com') * + GMAIL.INBOX:is_seen() +GMAIL.INBOX:move_messages(GMAIL['OGeeks'], ogeeks) + +opeople = GMAIL.INBOX:contain_field('List-ID', 'opeople.googlegroups.com') * + GMAIL.INBOX:is_seen() +GMAIL.INBOX:move_messages(GMAIL['OPeople'], opeople) + +paleobloggers = GMAIL.INBOX:contain_field('List-Id', 'paleobloggers.googlegroups.com') * + GMAIL.INBOX:is_seen() +GMAIL.INBOX:move_messages(GMAIL['PaleoBloggers'], paleobloggers) + +-- Queen's + +qsocial = ( GMAIL.INBOX:is_seen() * + ( GMAIL.INBOX:match_to('social@cs.queensu.ca') + + GMAIL.INBOX:match_cc('social@cs.queensu.ca') ) ) +GMAIL.INBOX:move_messages(GMAIL['Queens.social'], qsocial) + +-- People + +bagpipes = GMAIL.INBOX:match_from('PM_EMAIL') + + GMAIL.INBOX:match_cc('PM_EMAIL') +GMAIL.INBOX:move_messages(GMAIL['Bagpipes'], bagpipes) + +-- Misc + +pjm = GMAIL.INBOX:match_from('webmaster@pajamasmedia.com') * + GMAIL.INBOX:is_seen() +GMAIL.INBOX:move_messages(GMAIL['PJM'], pjm) + +rubinreports = GMAIL.INBOX:match_from('profbarryrubin@yahoo.com') * + GMAIL.INBOX:is_seen() +GMAIL.INBOX:move_messages(GMAIL['RubinReports'], rubinreports) diff --git a/.inputrc b/.inputrc new file mode 100644 index 0000000..4fd5901 --- /dev/null +++ b/.inputrc @@ -0,0 +1,4 @@ +set meta-flag on +set convert-meta off +set output-meta on +set bell-style audible diff --git a/.local/share/wallpapers/atlas.jpg b/.local/share/wallpapers/atlas.jpg Binary files differnew file mode 100644 index 0000000..e102374 --- /dev/null +++ b/.local/share/wallpapers/atlas.jpg diff --git a/.local/share/wallpapers/feh-slideshow.py b/.local/share/wallpapers/feh-slideshow.py new file mode 100644 index 0000000..2e33a37 --- /dev/null +++ b/.local/share/wallpapers/feh-slideshow.py @@ -0,0 +1,10 @@ +#!/usr/bin/python + +import os +import random + +WALLPAPER_DIR="/home/ryan/.local/share/wallpapers" + +wallpapers = os.listdir(WALLPAPER_DIR) + +os.system('feh --bg-center %s' % random.choice(wallpapers)) diff --git a/.local/share/wallpapers/ny1.jpg b/.local/share/wallpapers/ny1.jpg Binary files differnew file mode 100644 index 0000000..08c4099 --- /dev/null +++ b/.local/share/wallpapers/ny1.jpg diff --git a/.local/share/wallpapers/ny2.jpg b/.local/share/wallpapers/ny2.jpg Binary files differnew file mode 100644 index 0000000..202f4ea --- /dev/null +++ b/.local/share/wallpapers/ny2.jpg diff --git a/.local/share/wallpapers/skyscraper.bmp b/.local/share/wallpapers/skyscraper.bmp Binary files differnew file mode 100644 index 0000000..a81f04e --- /dev/null +++ b/.local/share/wallpapers/skyscraper.bmp diff --git a/.local/share/wallpapers/skyscraper_at_sunset.bmp b/.local/share/wallpapers/skyscraper_at_sunset.bmp Binary files differnew file mode 100644 index 0000000..80bf40e --- /dev/null +++ b/.local/share/wallpapers/skyscraper_at_sunset.bmp diff --git a/.local/share/wallpapers/torre_agba1_2333x1560.jpg b/.local/share/wallpapers/torre_agba1_2333x1560.jpg Binary files differnew file mode 100644 index 0000000..ee451eb --- /dev/null +++ b/.local/share/wallpapers/torre_agba1_2333x1560.jpg diff --git a/.local/share/wallpapers/totheglory.jpg b/.local/share/wallpapers/totheglory.jpg Binary files differnew file mode 100644 index 0000000..e4c6a05 --- /dev/null +++ b/.local/share/wallpapers/totheglory.jpg diff --git a/.mailcheckrc b/.mailcheckrc new file mode 100644 index 0000000..ba2eade --- /dev/null +++ b/.mailcheckrc @@ -0,0 +1,45 @@ +# mailcheckrc Default configuration for Mailcheck program +# +# This is a sample mailcheckrc file. It provies a good starting point, +# but it probably isn't exactly what you want. See mailcheck(1) for +# more information. + +# If you edit /etc/login.defs to turn off mailbox checking, you'll +# probably want to enable this next line: +#/var/spool/mail/$(USER) + +# If you're using qmail's Maildir feature, you'll probably want to +# enable this line: +#$(HOME)/Maildir/ + +# For qmail's mbox file in user's home directory: +#$(HOME)/Mailbox + +# Mailcheck also supports remote POP3 and IMAP mailboxes. Most users +# will want to set these up in a .mailcheckrc file in their home +# directory, not here. + +# If you have a remote POP3 mailbox, use a line like the following +# if your username is the same there as here. +#pop3://servername +# +# If your POP3 username is different there than here: +#pop3://username@servernameint +# +# In either case, you need to put an entry in $HOME/.netrc for the password. +# .netrc is in the form: +# +# machine mail.example.com login rmf1 password MyPasWrd +# +# where mail.example.com, rmf1, and MyPasWrd are the values for your account, +# and machine, login, and password are literal text in the file. + +# An IMAP account is similar to a POP account, but you can specify a +# mailbox path: +#imap://servername/inbox + +# For both POP3 and IMAP, you can specify a nonstandard port: +#pop3://servername:1110 +#imap://servername:1143/inbox +imap://ryan@localhost/ +imap://ryan@localhost/QueensU.INBOX diff --git a/.mutt/accounts.rc b/.mutt/accounts.rc new file mode 100644 index 0000000..22ea16c --- /dev/null +++ b/.mutt/accounts.rc @@ -0,0 +1,97 @@ +# vim: syntax=muttrc + +account-hook imaps://imap.gmail.com \ +"set imap_user = 'ryanakca@gmail.com';\ +set imap_pass = 'GMAIL_PASS';\ +set imap_passive = 'no';\ +set folder = 'imaps://imap.gmail.com:933';\ +set spoolfile = '=INBOX'" + +account-hook imap://localhost \ +"set imap_user = 'ryan';\ +set imap_pass = 'LOCAL_PASS';\ +set imap_passive = 'no';\ +set folder = 'imap://localhost';\ +set spoolfile = '=INBOX'" + +account-hook imaps://mail.queensu.ca \ +"set imap_user = '9rak';\ +set imap_pass = 'QUEENSU_PASS';\ +set folder = 'imaps://9rak@mail.queensu.ca:993';\ +set record = 'imaps://9rak@mail.queensu.ca/Sent';\ +set postponed = 'imaps://9rak@mail.queensu.ca/Drafts';\ +set spoolfile = 'imaps://9rak@mail.queensu.ca/Inbox';\ +set imap_passive = 'no'" + +send-hook . \ +"set from = 'Ryan Kavanagh <ryanakca@kubuntu.org>';\ +set envelope_from_address = 'Ryan Kavanagh <ryanakca@kubuntu.org>';\ +set use_from = yes;\ +set use_envelope_from = 'yes';\ +my_hdr From: ryanakca@kubuntu.org;\ +my_hdr Reply-To: ryanakca@kubuntu.org;\ +my_hdr Return-Path: ryanakca@kubuntu.org;\ +set sendmail='/usr/bin/msmtp';\ +unset smtp_url;\ +unset smtp_pass;\ +unset record;\ +set spoolfile = '=INBOX';\ +set postponed = '=[Google Mail]/Drafts'" + +folder-hook . \ +"set from = 'Ryan Kavanagh <ryanakca@kubuntu.org>';\ +set envelope_from_address = 'Ryan Kavanagh <ryanakca@kubuntu.org>';\ +set use_from = yes;\ +set use_envelope_from = 'yes';\ +my_hdr From: ryanakca@kubuntu.org;\ +my_hdr Reply-To: ryanakca@kubuntu.org;\ +my_hdr Return-Path: ryanakca@kubuntu.org;\ +set sendmail='/usr/bin/msmtp';\ +unset smtp_url;\ +unset smtp_pass;\ +unset record;\ +set spoolfile = '=INBOX';\ +set postponed = '=[Google Mail]/Drafts';\ +macro index,pager <ESC>a '<save-message>=[Google Mail]/All Mail<enter><enter>' 'Archive';\ +macro index,pager S '<save-message>=[Google Mail].Spam<enter><enter>' 'Spam';\ +macro index .s '<tag-prefix><copy-message>=Debian.archive<enter>' 'Saves Deb packaging email to Debian.archive';\ +set pager_format = '-%Z-MAIN: %C/%m: %-20.20n %s';\ +set compose_format = '-- MAIN: Compose [Approx. msg size: %l Atts: %a]%>-';\ +set status_format = '-%r-MAIN: %f [Msgs:%?M?%M/?%m%?n? New:%n?%?o? Old:%o?%?d? Del:%d?%?F? Flag:%F?%?t? Tag:%t?%?p? Post:%p?%?b? Inc:%b?%?l? %l?]---(%s/%S)-%>-(%P)---'" + +folder-hook .*[Qq]ueens[uU].* \ +"unhook send-hook;\ +set envelope_from_address = 'ryan.kavanagh@queensu.ca';\ +set from = 'ryan.kavanagh@queensu.ca';\ +my_hdr From: ryan.kavanagh@queensu.ca;\ +my_hdr Reply-To: ryan.kavanagh@queensu.ca;\ +my_hdr Return-Path: ryan.kavanagh@queensu.ca;\ +set use_envelope_from = 'yes';\ +unset sendmail; +set smtp_url="smtps://9rak@mail.queensu.ca:465/";\ +set smtp_pass = 'QUEENSU_PASS';\ +set record='=QueensU.Sent';\ +set postponed='=QueensU.Drafts';\ +set pager_format = '-%Z-QUEENS: %C/%m: %-20.20n %s';\ +set compose_format = '-- QUEENS: Compose [Approx. msg size: %l Atts: %a]%>-';\ +set status_format = '-%r-QUEENS: %f [Msgs:%?M?%M/?%m%?n? New:%n?%?o? Old:%o?%?d? Del:%d?%?F? Flag:%F?%?t? Tag:%t?%?p? Post:%p?%?b? Inc:%b?%?l? %l?]---(%s/%S)-%>-(%P)---'" + +folder-hook /var/mail/ryan \ +"set mbox_type = Maildir;\ +set folder = /var/mail/ryan;\ +set spoolfile = /var/mail/ryan;\ +set postponed = $HOME/.maildb/GMAIL/Drafts;\ +macro index,pager <ESC>a '<save-message>$HOME/.maildb/GMAIL/[Google Mail]/All Mail<enter><enter>' 'Archive';\ +set pager_format = '-%Z-LOCAL: %C/%m: %-20.20n %s';\ +set compose_format = '-- LOCAL: Compose [Approx. msg size: %l Atts: %a]%>-';\ +set status_format = '-%r-LOCAL: %f [Msgs:%?M?%M/?%m%?n? New:%n?%?o? Old:%o?%?d? Del:%d?%?F? Flag:%F?%?t? Tag:%t?%?p? Post:%p?%?b? Inc:%b?%?l? %l?]---(%s/%S)-%>-(%P)---'" + +macro index <F12> "cimaps://imap.gmail.com/INBOX<enter>" +macro index <F11> "cimap://localhost/INBOX<enter>" +macro index <F10> "cimaps://mail.queensu.ca/Inbox<enter>" + +macro compose <F2> '<enter-command>set sendmail="/usr/bin/msmtp -a ubuntu"<enter><enter-command>unset smtp_url<enter><enter-command>unset smtp_pass<enter><edit-from>Ryan Kavanagh <ryanakca@ubuntu.com><enter><edit-reply-to>ryanakca@ubuntu.com<enter><edit-fcc><enter><enter-command>set postponed="=[Google Mail]/Drafts"<enter>' "Sent mail from Ubuntu account" +macro compose <F3> '<enter-command>set sendmail="/usr/bin/msmtp"<enter><enter-command>unset smtp_url<enter><enter-command>unset smtp_pass<enter><edit-from>Ryan Kavanagh <ryanakca@kubuntu.org><enter><edit-reply-to>ryanakca@kubuntu.org<enter><edit-fcc><enter><enter-command>set postponed="=[Google Mail]/Drafts"<enter>' "Sent mail from Kubuntu account" +macro compose <F4> '<enter-command>unset sendmail<enter><edit-from>Ryan Kavanagh <ryan.kavanagh@queensu.ca><enter><edit-reply-to>ryan.kavanagh@queensu.ca<enter><edit-fcc>=QueensU.Sent<enter><enter-command>set postponed="=QueensU.Drafts"<enter><enter-command>set smtp_url="smtps://9rak@mail.queensu.ca:465/"<enter><enter-command>set smtp_pass="QUEENSU_PASS"<enter><enter-command>set record="=QueensU.Sent"<enter>' "Sent mail from Queen's account" + +set certificate_file = '~/.mutt/certs/certificates' diff --git a/.mutt/certs/594f1775.0 b/.mutt/certs/594f1775.0 new file mode 120000 index 0000000..4ba54a1 --- /dev/null +++ b/.mutt/certs/594f1775.0 @@ -0,0 +1 @@ +Equifax_Secure_CA.pem
\ No newline at end of file diff --git a/.mutt/certs/Equifax_Secure_CA.pem b/.mutt/certs/Equifax_Secure_CA.pem new file mode 100644 index 0000000..e352e83 --- /dev/null +++ b/.mutt/certs/Equifax_Secure_CA.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE +ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 +MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT +B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB +nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR +fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW +8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG +A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE +CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG +A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS +spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB +Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961 +zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB +BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95 +70+sB3c4 +-----END CERTIFICATE----- diff --git a/.mutt/certs/SMTP.pem b/.mutt/certs/SMTP.pem new file mode 100644 index 0000000..1158375 --- /dev/null +++ b/.mutt/certs/SMTP.pem @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDWzCCAsSgAwIBAgIKFMs0nQADAAASjjANBgkqhkiG9w0BAQUFADBGMQswCQYD +VQQGEwJVUzETMBEGA1UEChMKR29vZ2xlIEluYzEiMCAGA1UEAxMZR29vZ2xlIElu +dGVybmV0IEF1dGhvcml0eTAeFw0xMDA0MjIyMDAyNDVaFw0xMTA0MjIyMDEyNDVa +MGgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1N +b3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRcwFQYDVQQDEw5zbXRw +LmdtYWlsLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAz4B46NG2l4Bk +DdccddAuuOssQ4ZxCHoyj+ErdlEqZurVCoGQzAkhZTkzHrmIgYmM6roTbkF/zEaa +2ROe9s4VoL4OgUnoyB0u1KbwrG5PHBbsMdk0r6jMmhh+MORFVYgQrFxJnu8GnHiG +W4QhmKVytu0FclYE+F1gOOx5qIgTVCMCAwEAAaOCASwwggEoMB0GA1UdDgQWBBS1 ++KKmwdxtkpKkJgvwhZztqe0uszAfBgNVHSMEGDAWgBS/wDDr9UMRPme6npH7/Gra +42sSJDBbBgNVHR8EVDBSMFCgTqBMhkpodHRwOi8vd3d3LmdzdGF0aWMuY29tL0dv +b2dsZUludGVybmV0QXV0aG9yaXR5L0dvb2dsZUludGVybmV0QXV0aG9yaXR5LmNy +bDBmBggrBgEFBQcBAQRaMFgwVgYIKwYBBQUHMAKGSmh0dHA6Ly93d3cuZ3N0YXRp +Yy5jb20vR29vZ2xlSW50ZXJuZXRBdXRob3JpdHkvR29vZ2xlSW50ZXJuZXRBdXRo +b3JpdHkuY3J0MCEGCSsGAQQBgjcUAgQUHhIAVwBlAGIAUwBlAHIAdgBlAHIwDQYJ +KoZIhvcNAQEFBQADgYEAUc39Y22ucA2N4mmDdPMC8DKbrRGlGMpC294mfh3yCkJa +YRWjodFQSgCtFyKhTZ9roFpSEL0D4QxAtLSwtC0bSaSVusfAW3/CFgG/Cya724ic +9UoEosoG8CK+eGoGQuEsZ0xR86J5jOs2H+4QPHFCn594V7ZySzdeQi93YV31RBE= +-----END CERTIFICATE----- diff --git a/.mutt/certs/Thawte_Premium_Server_CA.pem b/.mutt/certs/Thawte_Premium_Server_CA.pem new file mode 100644 index 0000000..dc78c05 --- /dev/null +++ b/.mutt/certs/Thawte_Premium_Server_CA.pem @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIDIjCCAougAwIBAgIQHxn23jXdY6FCkYrVLMCrEjANBgkqhkiG9w0BAQUFADBM +MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg +THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wOTEyMTgwMDAwMDBaFw0x +MTEyMTgyMzU5NTlaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh +MRYwFAYDVQQHFA1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKFApHb29nbGUgSW5jMRgw +FgYDVQQDFA9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ +AoGBANknyBHye+RFyUa2Y3WDsXd+F0GJgDjxRSegPNnoqABL2QfQut7t9CymrNwn +E+wMwaaZF0LmjSfSgRSwS4L6ssXQuyBZYiijlrVh9nbBbUbS/brGDz3RyXeaWDP2 +BnYyrVFfKV9u+BKLrebFCDmzQ0OpW5Ed1+PPUd91WY6NgKtTAgMBAAGjgecwgeQw +DAYDVR0TAQH/BAIwADA2BgNVHR8ELzAtMCugKaAnhiVodHRwOi8vY3JsLnRoYXd0 +ZS5jb20vVGhhd3RlU0dDQ0EuY3JsMCgGA1UdJQQhMB8GCCsGAQUFBwMBBggrBgEF +BQcDAgYJYIZIAYb4QgQBMHIGCCsGAQUFBwEBBGYwZDAiBggrBgEFBQcwAYYWaHR0 +cDovL29jc3AudGhhd3RlLmNvbTA+BggrBgEFBQcwAoYyaHR0cDovL3d3dy50aGF3 +dGUuY29tL3JlcG9zaXRvcnkvVGhhd3RlX1NHQ19DQS5jcnQwDQYJKoZIhvcNAQEF +BQADgYEAicju7fexy+yRP2drx57Tcqo+BElR1CiHNZ1nhPmS9QSZaudDA8jy25IP +VWvjEgaq13Hro0Hg32ZNVK53qcXwjWtnCAReojvNwj6/x1Ciq5B6D7E6eiYDSfXJ +8/a2vR5IbgY89nq+wuHaA6vspH6vNR848xO3z1PQ7BrIjnYQ1A0= +-----END CERTIFICATE----- diff --git a/.mutt/certs/c33a80d4.0 b/.mutt/certs/c33a80d4.0 new file mode 120000 index 0000000..96360b2 --- /dev/null +++ b/.mutt/certs/c33a80d4.0 @@ -0,0 +1 @@ +Thawte_Premium_Server_CA.pem
\ No newline at end of file diff --git a/.mutt/certs/ca-bundle.crt b/.mutt/certs/ca-bundle.crt new file mode 100644 index 0000000..219c374 --- /dev/null +++ b/.mutt/certs/ca-bundle.crt @@ -0,0 +1,3509 @@ +## +## ca-bundle.crt -- Bundle of CA Root Certificates +## +## Converted at: Thu Aug 27 16:45:20 2009 UTC +## +## This is a bundle of X.509 certificates of public Certificate Authorities +## (CA). These were automatically extracted from Mozilla's root certificates +## file (certdata.txt). This file can be found in the mozilla source tree: +## '/mozilla/security/nss/lib/ckfw/builtins/certdata.txt' +## +## It contains the certificates in PEM format and therefore +## can be directly used with curl / libcurl / php_curl, or with +## an Apache+mod_ssl webserver for SSL client authentication. +## Just configure this file as the SSLCACertificateFile. +## + +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Netscape security libraries. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1994-2000 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 2 or later (the "GPL"), or +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** +# @(#) $RCSfile: certdata.txt,v $ $Revision: 1.53 $ $Date: 2009/05/21 19:50:28 $ + +Verisign/RSA Secure Server CA +============================= +-----BEGIN CERTIFICATE----- +MIICNDCCAaECEAKtZn5ORf5eV288mBle3cAwDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx +IDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2VydmVy +IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk0MTEwOTAwMDAwMFoXDTEwMDEwNzIzNTk1OVow +XzELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQL +EyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGbMA0GCSqGSIb3DQEBAQUA +A4GJADCBhQJ+AJLOesGugz5aqomDV6wlAXYMra6OLDfO6zV4ZFQD5YRAUcm/jwjiioII0haGN1Xp +sSECrXZogZoFokvJSyVmIlZsiAeP94FZbYQHZXATcXY+m3dM41CJVphIuR2nKRoTLkoRWZweFdVJ +VCxzOmmCsZc5nG1wZ0jl3S3WyB57AgMBAAEwDQYJKoZIhvcNAQECBQADfgBl3X7hsuyw4jrg7HFG +mhkRuNPHoLQDQCYCPgmc4RKz0Vr2N6W3YQO2WxZpO8ZECAyIUwxrl0nHPjXcbLm7qt9cuzovk2C2 +qUtN8iD3zV9/ZHuO3ABc1/p3yjkWWW8O6tO1g39NTUJWdrTJXwT4OPjr0l91X817/OWOgHz8UA== +-----END CERTIFICATE----- + +GTE CyberTrust Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIB+jCCAWMCAgGjMA0GCSqGSIb3DQEBBAUAMEUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg +Q29ycG9yYXRpb24xHDAaBgNVBAMTE0dURSBDeWJlclRydXN0IFJvb3QwHhcNOTYwMjIzMjMwMTAw +WhcNMDYwMjIzMjM1OTAwWjBFMQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9u +MRwwGgYDVQQDExNHVEUgQ3liZXJUcnVzdCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB +gQC45k+625h8cXyvRLfTD0bZZOWTwUKOx7pJjTUteueLveUFMVnGsS8KDPufpz+iCWaEVh43KRuH +6X4MypqfpX/1FZSj1aJGgthoTNE3FQZor734sLPwKfWVWgkWYXcKIiXUT0Wqx73llt/51KiOQswk +wB6RJ0q1bQaAYznEol44AwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABKzdcZfHeFhVYAA1IFLezEP +I2PnPfMD+fQ2qLvZ46WXTeorKeDWanOB5sCJo9Px4KWlIjeaY8JIILTbcuPI9tl8vrGvU9oUtCG4 +1tWW4/5ODFlitppK+ULdjG+BqXH/9ApybW1EDp3zdHSo1TRJ6V6e6bR64eVaH4QwnNOfpSXY +-----END CERTIFICATE----- + +GTE CyberTrust Global Root +========================== +-----BEGIN CERTIFICATE----- +MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg +Q29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEG +A1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJvb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEz +MjM1OTAwWjB1MQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQL +Ex5HVEUgQ3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0 +IEdsb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrHiM3dFw4u +sJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTSr41tiGeA5u2ylc9yMcql +HHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X404Wqk2kmhXBIgD8SFcd5tB8FLztimQID +AQABMA0GCSqGSIb3DQEBBAUAA4GBAG3rGwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMW +M4ETCJ57NE7fQMh017l93PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OF +NMQkpw0PlZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/ +-----END CERTIFICATE----- + +Thawte Personal Basic CA +======================== +-----BEGIN CERTIFICATE----- +MIIDITCCAoqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3dGUgQ29uc3Vs +dGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMY +VGhhd3RlIFBlcnNvbmFsIEJhc2ljIENBMSgwJgYJKoZIhvcNAQkBFhlwZXJzb25hbC1iYXNpY0B0 +aGF3dGUuY29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgcsxCzAJBgNVBAYTAlpB +MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhh +d3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24x +ITAfBgNVBAMTGFRoYXd0ZSBQZXJzb25hbCBCYXNpYyBDQTEoMCYGCSqGSIb3DQEJARYZcGVyc29u +YWwtYmFzaWNAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvLyTU23AUE+C +FeZIlDWmWr5vQvoPR+53dXLdjUmbllegeNTKP1GzaQuRdhciB5dqxFGTS+CN7zeVoQxN2jSQHReJ +l+A1OFdKwPQIcOk8RHtQfmGakOMj04gRRif1CwcOu93RfyAKiLlWCy4cgNrx454p7xS9CkT7G1sY +0b8jkyECAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAt4plrsD16 +iddZopQBHyvdEktTwq1/qqcAXJFAVyVKOKqEcLnZgA+le1z7c8a914phXAPjLSeoF+CEhULcXpvG +t7Jtu3Sv5D/Lp7ew4F2+eIMllNLbgQ95B21P9DkVWlIBe94y1k049hJcBlDfBVu9FEuh3ym6O0GN +92NWod8isQ== +-----END CERTIFICATE----- + +Thawte Personal Premium CA +========================== +-----BEGIN CERTIFICATE----- +MIIDKTCCApKgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBzzELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3dGUgQ29uc3Vs +dGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEjMCEGA1UEAxMa +VGhhd3RlIFBlcnNvbmFsIFByZW1pdW0gQ0ExKjAoBgkqhkiG9w0BCQEWG3BlcnNvbmFsLXByZW1p +dW1AdGhhd3RlLmNvbTAeFw05NjAxMDEwMDAwMDBaFw0yMDEyMzEyMzU5NTlaMIHPMQswCQYDVQQG +EwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAYBgNVBAoT +EVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlz +aW9uMSMwIQYDVQQDExpUaGF3dGUgUGVyc29uYWwgUHJlbWl1bSBDQTEqMCgGCSqGSIb3DQEJARYb +cGVyc29uYWwtcHJlbWl1bUB0aGF3dGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJ +Ztn4B0TPuYwu8KHvE0VsBd/eJxZRNkERbGw77f4QfRKe5ZtCmv5gMcNmt3M6SK5O0DI3lIi1DbbZ +8/JE2dWIEt12TfIa/G8jHnrx2JhFTgcQ7xZC0EN1bUre4qrJMf8fAHB8Zs8QJQi6+u4A6UYDZicR +FTuqW/KY3TZCstqIdQIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBAUAA4GB +AGk2ifc0KjNyL2071CKyuG+axTZmDhs8obF1Wub9NdP4qPIHb4Vnjt4rueIXsDqg8A6iAJrf8xQV +brvIhVqYgPn/vnQdPfP+MCXRNzRn+qVxeTBhKXLA4CxM+1bkOqhv5TJZUtt1KFBZDPgLGeSs2a+W +jS9Q2wfD6h+rM+D1KzGJ +-----END CERTIFICATE----- + +Thawte Personal Freemail CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDLTCCApagAwIBAgIBADANBgkqhkiG9w0BAQQFADCB0TELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3dGUgQ29uc3Vs +dGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMb +VGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1mcmVl +bWFpbEB0aGF3dGUuY29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgdExCzAJBgNV +BAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UE +ChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2 +aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJ +ARYccGVyc29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC +gYEA1GnX1LCUZFtx6UfYDFG26nKRsIRefS0Nj3sS34UldSh0OkIsYyeflXtL734Zhx2G6qPduc6W +ZBrCFG5ErHzmj+hND3EfQDimAKOHePb5lIZererAXnbr2RSjXW56fAylS1V/Bhkpf56aJtVquzgk +CGqYx7Hao5iR/Xnb5VrEHLkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQF +AAOBgQDH7JJ+Tvj1lqVnYiqk8E0RYNBvjWBYYawmu1I1XAjPMPuoSpaKH2JCI4wXD/S6ZJwXrEcp +352YXtJsYHFcoqzceePnbgBHH7UNKOgCneSa/RP0ptl8sfjcXyMmCZGAc9AUG95DqYMl8uacLxXK +/qarigd1iwzdUYRr5PjRzneigQ== +-----END CERTIFICATE----- + +Thawte Server CA +================ +-----BEGIN CERTIFICATE----- +MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs +dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UE +AxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5j +b20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNV +BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29u +c3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcG +A1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0 +ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl +/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg7 +1CcEJRCXL+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzAR +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWDTSEwjsrZqG9J +GubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6eQNuozDJ0uW8NxuOzRAvZim+aKZuZ +GCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc= +-----END CERTIFICATE----- + +Thawte Premium Server CA +======================== +-----BEGIN CERTIFICATE----- +MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs +dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE +AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl +ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT +AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU +VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2 +aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ +cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2 +aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh +Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/ +qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm +SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf +8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t +UCemDaYj+bvLpgcUQg== +-----END CERTIFICATE----- + +Equifax Secure CA +================= +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE +ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 +MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT +B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB +nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR +fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW +8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG +A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE +CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG +A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS +spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB +Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961 +zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB +BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95 +70+sB3c4 +-----END CERTIFICATE----- + +ABAecom (sub., Am. Bankers Assn.) Root CA +========================================= +-----BEGIN CERTIFICATE----- +MIIDtTCCAp2gAwIBAgIRANAeQJAAAEZSAAAAAQAAAAQwDQYJKoZIhvcNAQEFBQAwgYkxCzAJBgNV +BAYTAlVTMQswCQYDVQQIEwJEQzETMBEGA1UEBxMKV2FzaGluZ3RvbjEXMBUGA1UEChMOQUJBLkVD +T00sIElOQy4xGTAXBgNVBAMTEEFCQS5FQ09NIFJvb3QgQ0ExJDAiBgkqhkiG9w0BCQEWFWFkbWlu +QGRpZ3NpZ3RydXN0LmNvbTAeFw05OTA3MTIxNzMzNTNaFw0wOTA3MDkxNzMzNTNaMIGJMQswCQYD +VQQGEwJVUzELMAkGA1UECBMCREMxEzARBgNVBAcTCldhc2hpbmd0b24xFzAVBgNVBAoTDkFCQS5F +Q09NLCBJTkMuMRkwFwYDVQQDExBBQkEuRUNPTSBSb290IENBMSQwIgYJKoZIhvcNAQkBFhVhZG1p +bkBkaWdzaWd0cnVzdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx0xHgeVVD +BwhMywVCAOINg0Y95JO6tgbTDVm9PsHOQ2cBiiGo77zM0KLMsFWWU4RmBQDaREmA2FQKpSWGlO1j +Vv9wbKOhGdJ4vmgqRF4vz8wYXke8OrFGPR7wuSw0X4x8TAgpnUBV6zx9g9618PeKgw6hTLQ6pbNf +WiKX7BmbwQVo/ea3qZGULOR4SCQaJRk665WcOQqKz0Ky8BzVX/tr7WhWezkscjiw7pOp03t3POtx +A6k4ShZsiSrK2jMTecJVjO2cu/LLWxD4LmE1xilMKtAqY9FlWbT4zfn0AIS2V0KFnTKo+SpU+/94 +Qby9cSj0u5C8/5Y0BONFnqFGKECBAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQgwDQYJKoZI +hvcNAQEFBQADggEBAARvJYbk5pYntNlCwNDJALF/VD6Hsm0kqS8Kfv2kRLD4VAe9G52dyntQJHsR +W0mjpr8SdNWJt7cvmGQlFLdh6X9ggGvTZOirvRrWUfrAtF13Gn9kCF55xgVM8XrdTX3O5kh7VNJh +koHWG9YA8A6eKHegTYjHInYZw8eeG6Z3ePhfm1bR8PIXrI6dWeYf/le22V7hXZ9F7GFoGUHhsiAm +/lowdiT/QHI8eZ98IkirRs3bs4Ysj78FQdPB4xTjQRcm0HyncUwZ6EoPclgxfexgeqMiKL0ZJGA/ +O4dzwGvky663qyVDslUte6sGDnVdNOVdc22esnVApVnJTzFxiNmIf1Q= +-----END CERTIFICATE----- + +Digital Signature Trust Co. Global CA 1 +======================================= +-----BEGIN CERTIFICATE----- +MIIDKTCCApKgAwIBAgIENnAVljANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE +ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMTAeFw05ODEy +MTAxODEwMjNaFw0xODEyMTAxODQwMjNaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs +IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUxMIGdMA0GCSqGSIb3DQEBAQUA +A4GLADCBhwKBgQCgbIGpzzQeJN3+hijM3oMv+V7UQtLodGBmE5gGHKlREmlvMVW5SXIACH7TpWJE +NySZj9mDSI+ZbZUTu0M7LklOiDfBu1h//uG9+LthzfNHwJmm8fOR6Hh8AMthyUQncWlVSn5JTe2i +o74CTADKAqjuAQIxZA9SLRN0dja1erQtcQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo +BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0 +dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTExDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw +IoAPMTk5ODEyMTAxODEwMjNagQ8yMDE4MTIxMDE4MTAyM1owCwYDVR0PBAQDAgEGMB8GA1UdIwQY +MBaAFGp5fpFpRhgTCgJ3pVlbYJglDqL4MB0GA1UdDgQWBBRqeX6RaUYYEwoCd6VZW2CYJQ6i+DAM +BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB +ACIS2Hod3IEGtgllsofIH160L+nEHvI8wbsEkBFKg05+k7lNQseSJqBcNJo4cvj9axY+IO6CizEq +kzaFI4iKPANo08kJD038bKTaKHKTDomAsH3+gG9lbRgzl4vCa4nuYD3Im+9/KzJic5PLPON74nZ4 +RbyhkwS7hp86W0N6w4pl +-----END CERTIFICATE----- + +Digital Signature Trust Co. Global CA 3 +======================================= +-----BEGIN CERTIFICATE----- +MIIDKTCCApKgAwIBAgIENm7TzjANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE +ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMjAeFw05ODEy +MDkxOTE3MjZaFw0xODEyMDkxOTQ3MjZaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs +IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUyMIGdMA0GCSqGSIb3DQEBAQUA +A4GLADCBhwKBgQC/k48Xku8zExjrEH9OFr//Bo8qhbxe+SSmJIi2A7fBw18DW9Fvrn5C6mYjuGOD +VvsoLeE4i7TuqAHhzhy2iCoiRoX7n6dwqUcUP87eZfCocfdPJmyMvMa1795JJ/9IKn3oTQPMx7JS +xhcxEzu1TdvIxPbDDyQq2gyd55FbgM2UnQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo +BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0 +dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTIxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw +IoAPMTk5ODEyMDkxOTE3MjZagQ8yMDE4MTIwOTE5MTcyNlowCwYDVR0PBAQDAgEGMB8GA1UdIwQY +MBaAFB6CTShlgDzJQW6sNS5ay97u+DlbMB0GA1UdDgQWBBQegk0oZYA8yUFurDUuWsve7vg5WzAM +BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB +AEeNg61i8tuwnkUiBbmi1gMOOHLnnvx75pO2mqWilMg0HZHRxdf0CiUPPXiBng+xZ8SQTGPdXqfi +up/1902lMXucKS1M/mQ+7LZT/uqb7YLbdHVLB3luHtgZg3Pe9T7Qtd7nS2h9Qy4qIOF+oHhEngj1 +mPnHfxsb1gYgAlihw6ID +-----END CERTIFICATE----- + +Digital Signature Trust Co. Global CA 2 +======================================= +-----BEGIN CERTIFICATE----- +MIID2DCCAsACEQDQHkCLAAACfAAAAAIAAAABMA0GCSqGSIb3DQEBBQUAMIGpMQswCQYDVQQGEwJ1 +czENMAsGA1UECBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0 +YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgWDExFjAUBgNVBAMTDURTVCBS +b290Q0EgWDExITAfBgkqhkiG9w0BCQEWEmNhQGRpZ3NpZ3RydXN0LmNvbTAeFw05ODEyMDExODE4 +NTVaFw0wODExMjgxODE4NTVaMIGpMQswCQYDVQQGEwJ1czENMAsGA1UECBMEVXRhaDEXMBUGA1UE +BxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjER +MA8GA1UECxMIRFNUQ0EgWDExFjAUBgNVBAMTDURTVCBSb290Q0EgWDExITAfBgkqhkiG9w0BCQEW +EmNhQGRpZ3NpZ3RydXN0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANLGJrbn +pT3BxGjVUG9TxW9JEwm4ryxIjRRqoxdfWvnTLnUv2Chi0ZMv/E3Uq4flCMeZ55I/db3rJbQVwZsZ +PdJEjdd0IG03Ao9pk1uKxBmd9LIO/BZsubEFkoPRhSxglD5FVaDZqwgh5mDoO3TymVBRaNADLbGA +vqPYUrBEzUNKcI5YhZXhTizWLUFv1oTnyJhEykfbLCSlaSbPa7gnYsP0yXqSI+0TZ4KuRS5F5X5y +P4WdlGIQ5jyRoa13AOAV7POEgHJ6jm5gl8ckWRA0g1vhpaRptlc1HHhZxtMvOnNn7pTKBBMFYgZw +I7P0fO5F2WQLW0mqpEPOJsREEmy43XkCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAojeyP2n714Z5 +VEkxlTMr89EJFEliYIalsBHiUMIdBlc+LegzZL6bqq1fG03UmZWii5rJYnK1aerZWKs17RWiQ9a2 +vAd5ZWRzfdd5ynvVWlHG4VMElo04z6MXrDlxawHDi1M8Y+nuecDkvpIyZHqzH5eUYr3qsiAVlfuX +8ngvYzZAOONGDx3drJXK50uQe7FLqdTF65raqtWjlBRGjS0f8zrWkzr2Pnn86Oawde3uPclwx12q +gUtGJRzHbBXjlU4PqjI3lAoXJJIThFjSY28r9+ZbYgsTF7ANUkz+/m9c4pFuHf2kYtdo+o56T9II +2pPc8JIRetDccpMMc5NihWjQ9A== +-----END CERTIFICATE----- + +Digital Signature Trust Co. Global CA 4 +======================================= +-----BEGIN CERTIFICATE----- +MIID2DCCAsACEQDQHkCLAAB3bQAAAAEAAAAEMA0GCSqGSIb3DQEBBQUAMIGpMQswCQYDVQQGEwJ1 +czENMAsGA1UECBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0 +YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgWDIxFjAUBgNVBAMTDURTVCBS +b290Q0EgWDIxITAfBgkqhkiG9w0BCQEWEmNhQGRpZ3NpZ3RydXN0LmNvbTAeFw05ODExMzAyMjQ2 +MTZaFw0wODExMjcyMjQ2MTZaMIGpMQswCQYDVQQGEwJ1czENMAsGA1UECBMEVXRhaDEXMBUGA1UE +BxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjER +MA8GA1UECxMIRFNUQ0EgWDIxFjAUBgNVBAMTDURTVCBSb290Q0EgWDIxITAfBgkqhkiG9w0BCQEW +EmNhQGRpZ3NpZ3RydXN0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANx18IzA +dZaawGIfJvfE4Zrq4FZzW5nNAUSoCLbVp9oaBBg5kkp4o4HC9Xd6ULRw/5qrxsfKboNPQpj7Jgva +3G3WqZlVUmfpKAOS3OWwBZoPFflrWXJW8vo5/Kpo7g8fEIMv/J36F5bdguPmRX3AS4BEH+0s4IT9 +kVySVGkl5WJp3OXuAFK9MwutdQKFp2RQLcUZGTDAJtvJ0/0uma1ZtQtN1EGuhUhDWdy3qOKi3sOP +17ihYqZoUFLkzzGnlIXan0YyF1bl8utmPRL/Q9uY73fPy4GNNLHGUEom0eQ+QVCvbK4iNC7Va26D +unm4dmVI2gkpZGMiuftHdoWMhkTLCdsCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAtTYOXeFhKFoR +ZcA/gwN5Tb4opgsHAlKFzfiR0BBstWogWxyQ2TA8xkieil5k+aFxd+8EJx8H6+Qm93N0yUQYGmbT +4EOvkTvRyyzYdFQ6HE3K1GjNI3wdEJ5F6fYAbqbNGf9PLCmPV03Ed5K+4EwJ+11EhmYhqLkyolbV +6YyDfFk/xPEL553snr2cGA4+wjl5KLcDDQjLxufZATdQEOzMYRZA1K8xdHv8PzGn0EdzMzkbzE5q +10mDEQb+64JYMzJM8FasHpwvVpp7wUocpf1VNs78lk30sPDst2yC7S8xmUJMqbINuBVd8d+6ybVK +1GSYsyapMMj9puyrliGtf8J4tg== +-----END CERTIFICATE----- + +Verisign Class 1 Public Primary Certification Authority +======================================================= +-----BEGIN CERTIFICATE----- +MIICPTCCAaYCEQDNun9W8N/kvFT+IqyzcqpVMA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NjAxMjkwMDAwMDBaFw0yODA4MDEyMzU5NTla +MF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3Mg +MSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEF +AAOBjQAwgYkCgYEA5Rm/baNWYS2ZSHH2Z965jeu3noaACpEO+jglr0aIguVzqKCbJF0NH8xlbgyw +0FaEGIeaBpsQoXPftFg5a27B9hXVqKg/qhIGjTGsf7A01480Z4gJzRQR4k5FVmkfeAKA2txHkSm7 +NsljXMXg1y2He6G3MrB7MLoqLzGq7qNn2tsCAwEAATANBgkqhkiG9w0BAQIFAAOBgQBMP7iLxmjf +7kMzDl3ppssHhE16M/+SG/Q2rdiVIjZoEWx8QszznC7EBz8UsA9P/5CSdvnivErpj82ggAr3xSnx +giJduLHdgSOjeyUVRjB5FvjqBUuUfx3CHMjjt/QQQDwTw18fU+hI5Ia0e6E1sHslurjTjqs/OJ0A +NACY89FxlA== +-----END CERTIFICATE----- + +Verisign Class 2 Public Primary Certification Authority +======================================================= +-----BEGIN CERTIFICATE----- +MIICPDCCAaUCEC0b/EoXjaOR6+f/9YtFvgswDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAyIFB1YmxpYyBQcmltYXJ5 +IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow +XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAy +IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQC2WoujDWojg4BrzzmH9CETMwZMJaLtVRKXxaeAufqDwSCg+i8VDXyhYGt+eSz6 +Bg86rvYbb7HS/y8oUl+DfUvEerf4Zh+AVPy3wo5ZShRXRtGak75BkQO7FYCTXOvnzAhsPz6zSvz/ +S2wj1VCCJkQZjiPDceoZJEcEnnW/yKYAHwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBAIobK/o5wXTX +XtgZZKJYSi034DNHD6zt96rbHuSLBlxgJ8pFUs4W7z8GZOeUaHxgMxURaa+dYo2jA1Rrpr7l7gUY +YAS/QoD90KioHgE796Ncr6Pc5iaAIzy4RHT3Cq5Ji2F4zCS/iIqnDupzGUH9TQPwiNHleI2lKk/2 +lw0Xd8rY +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority +======================================================= +-----BEGIN CERTIFICATE----- +MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5 +IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow +XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz +IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94 +f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol +hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtMEivPLCYA +TxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59Ah +WM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2Omuf +Tqj/ZA1k +-----END CERTIFICATE----- + +Verisign Class 1 Public Primary Certification Authority - G2 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDAjCCAmsCEEzH6qqYPnHTkxD4PTqJkZIwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq0Lq+Fi24g9TK0g+8djHKlNgd +k4xWArzZbxpvUjZudVYKVdPfQ4chEWWKfo+9Id5rMj8bhDSVBZ1BNeuS65bdqlk/AVNtmU/t5eIq +WpDBucSmFc/IReumXY6cPvBkJHalzasab7bYe1FhbqZ/h8jit+U03EGI6glAvnOSPWvndQIDAQAB +MA0GCSqGSIb3DQEBBQUAA4GBAKlPww3HZ74sy9mozS11534Vnjty637rXC0Jh9ZrbWB85a7FkCMM +XErQr7Fd88e2CtvgFZMN3QO8x3aKtd1Pw5sTdbgBwObJW2uluIncrKTdcu1OofdPvAbT6shkdHvC +lUGcZXNY8ZCaPGqxmMnEh7zPRW1F4m4iP/68DzFc6PLZ +-----END CERTIFICATE----- + +Verisign Class 2 Public Primary Certification Authority - G2 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHBMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGljIFByaW1h +cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNp +Z24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1 +c3QgTmV0d29yazAeFw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTlaMIHBMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGljIFByaW1h +cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNp +Z24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1 +c3QgTmV0d29yazCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAp4gBIXQs5xoD8JjhlzwPIQjx +nNuX6Zr8wgQGE75fUsjMHiwSViy4AWkszJkfrbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRC +wiNPStjwDqL7MWzJ5m+ZJwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cCAwEA +ATANBgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9jinb3/7aHmZuovCfTK +1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAXrXfMSTWqz9iP0b63GJZHc2pUIjRk +LbYWm1lbtFFZOrMLFPQS32eg9K0yZF6xRnInjBJ7xUS0rg== +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority - G2 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCO +FoUgRm1HP9SFIIThbbP4pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71 +lSk8UOg013gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwIDAQAB +MA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01UbSuvDV1Ai2TT +1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7iF6YM40AIOw7n60RzKprxaZLvcRTD +Oaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpYoJ2daZH9 +-----END CERTIFICATE----- + +Verisign Class 4 Public Primary Certification Authority - G2 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDAjCCAmsCEDKIjprS9esTR/h/xCA3JfgwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgNCBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgNCBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC68OTP+cSuhVS5B1f5j8V/aBH4 +xBewRNzjMHPVKmIquNDMHO0oW369atyzkSTKQWI8/AIBvxwWMZQFl3Zuoq29YRdsTjCG8FE3KlDH +qGKB3FtKqsGgtG7rL+VXxbErQHDbWk2hjh+9Ax/YA9SPTJlxvOKCzFjomDqG04Y48wApHwIDAQAB +MA0GCSqGSIb3DQEBBQUAA4GBAIWMEsGnuVAVess+rLhDityq3RS6iYF+ATwjcSGIL4LcY/oCRaxF +WdcqWERbt5+BO5JoPeI3JPV7bI92NZYJqFmduc4jq3TWg/0ycyfYaT5DdPauxYma51N86Xv2S/PB +ZYPejYqcPIiNOVn8qj8ijaHBZlCBckztImRPT8qAkbYp +-----END CERTIFICATE----- + +GlobalSign Root CA +================== +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx +GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds +b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD +VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa +DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc +THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb +Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP +c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX +gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF +AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj +Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG +j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH +hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC +X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== +-----END CERTIFICATE----- + +GlobalSign Root CA - R2 +======================= +-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv +YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh +bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT +aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln +bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6 +ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp +s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN +S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL +TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C +ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i +YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN +BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp +9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu +01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7 +9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 +TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== +-----END CERTIFICATE----- + +ValiCert Class 1 VA +=================== +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp +b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh +bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIy +MjM0OFoXDTE5MDYyNTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 +d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEg +UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 +LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9YLqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIi +GQj4/xEjm84H9b9pGib+TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCm +DuJWBQ8YTfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0LBwG +lN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLWI8sogTLDAHkY7FkX +icnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPwnXS3qT6gpf+2SQMT2iLM7XGCK5nP +Orf1LXLI +-----END CERTIFICATE----- + +ValiCert Class 2 VA +=================== +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp +b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh +bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw +MTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 +d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIg +UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 +LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVC +CSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7Rf +ZHM047QSv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZ +SWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZoDJJKPTEjlbV +UjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwCW/POuZ6lcg5Ktz885hZo+L7tdEy8 +W9ViH0Pd +-----END CERTIFICATE----- + +RSA Root Certificate 1 +====================== +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp +b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh +bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw +MjIzM1oXDTE5MDYyNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 +d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMg +UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 +LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDjmFGWHOjVsQaBalfDcnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td +3zZxFJmP3MKS8edgkpfs2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89H +BFx1cQqYJJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliEZwgs +3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJn0WuPIqpsHEzXcjF +V9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/APhmcGcwTTYJBtYze4D1gCCAPRX5r +on+jjBXu +-----END CERTIFICATE----- + +Verisign Class 1 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQCLW3VWhFSFCwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy +dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAN2E1Lm0+afY8wR4nN493GwTFtl63SRRZsDHJlkNrAYIwpTRMx/wgzUfbhvI3qpuFU5UJ+/E +bRrsC+MO8ESlV8dAWB6jRx9x7GD2bZTIGDnt/kIYVt/kTEkQeE4BdjVjEjbdZrwBBDajVWjVojYJ +rKshJlQGrT/KFOCsyq0GHZXi+J3x4GD/wn91K0zM2v6HmSHquv4+VNfSWXjbPG7PoBMAGrgnoeS+ +Z5bKoMWznN3JdZ7rMJpfo83ZrngZPyPpXNspva1VyBtUjGP26KbqxzcSXKMpHgLZ2x87tNcPVkeB +FQRKr4Mn0cVYiMHd9qqnoxjaaKptEVHhv2Vrn5Z20T0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA +q2aN17O6x5q25lXQBfGfMY1aqtmqRiYPce2lrVNWYgFHKkTp/j90CxObufRNG7LRX7K20ohcs5/N +y9Sn2WCVhDr4wTcdYcrnsMXlkdpUpqwxga6X3s0IrLjAl4B/bnKk52kTlWUfxJM8/XmPBNQ+T+r3 +ns7NZ3xPZQL/kYVUc8f/NveGLezQXk//EZ9yBta4GvFMDSZl4kSAHsef493oCtrspSCAaWihT37h +a88HQfqDjrw43bAuEbFrskLMmrz5SCJ5ShkPshw+IHTZasO+8ih4E1Z5T21Q6huwtVexN2ZYI/Pc +D98Kh8TvhgXVOBRgmaNL3gaWcSzy27YfpO8/7g== +-----END CERTIFICATE----- + +Verisign Class 2 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcoxCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29y +azE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ug +b25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0 +aW9uIEF1dGhvcml0eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcxNjIzNTk1OVowgcoxCzAJ +BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1 +c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9y +aXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEArwoNwtUs22e5LeWUJ92lvuCwTY+zYVY81nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6 +tW8UvxDOJxOeBUebMXoT2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUYwZF7 +C9UTAJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9okoqQHgiBVrKtaaNS +0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjNqWm6o+sdDZykIKbBoMXRRkwXbdKs +Zj+WjOCE1Db/IlnF+RFgqF8EffIa9iVCYQ/ESrg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0 +JhU8wI1NQ0kdvekhktdmnLfexbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf +0xwLRtxyID+u7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydEp85EXdQbkJgNHkKU +sQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377BMnMiIYtYgXsVkXq642RIsH/7NiXaldDx +JBQX3RiAa0YjOVT1jmIJBB2UkKab5iXiQkWquJCtvgiPqQtCGJTPcjnhsUPgKM+351psE2tJs//j +GHyJizNdrDPXp/naOlXJWBD5qu9ats9LS98q +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy +dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1 +EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc +cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw +EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj +055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA +ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f +j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC +/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0 +xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa +t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== +-----END CERTIFICATE----- + +Verisign Class 4 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy +dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS +tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM +8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW +Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX +Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA +j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt +mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm +fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd +RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG +UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg== +-----END CERTIFICATE----- + +Entrust.net Secure Server CA +============================ +-----BEGIN CERTIFICATE----- +MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMCVVMxFDASBgNV +BAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5uZXQvQ1BTIGluY29ycC4gYnkg +cmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRl +ZDE6MDgGA1UEAxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eTAeFw05OTA1MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIG +A1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBi +eSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1p +dGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQ +aO2f55M28Qpku0f1BBc/I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5 +gXpa0zf3wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OCAdcw +ggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHboIHYpIHVMIHSMQsw +CQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5l +dC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF +bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu +dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0MFqBDzIwMTkw +NTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7UISX8+1i0Bow +HQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAaMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EA +BAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyN +Ewr75Ji174z4xRAN95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9 +n9cd2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI= +-----END CERTIFICATE----- + +Entrust.net Secure Personal CA +============================== +-----BEGIN CERTIFICATE----- +MIIE7TCCBFagAwIBAgIEOAOR7jANBgkqhkiG9w0BAQQFADCByTELMAkGA1UEBhMCVVMxFDASBgNV +BAoTC0VudHJ1c3QubmV0MUgwRgYDVQQLFD93d3cuZW50cnVzdC5uZXQvQ2xpZW50X0NBX0luZm8v +Q1BTIGluY29ycC4gYnkgcmVmLiBsaW1pdHMgbGlhYi4xJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1 +c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENsaWVudCBDZXJ0aWZpY2F0aW9u +IEF1dGhvcml0eTAeFw05OTEwMTIxOTI0MzBaFw0xOTEwMTIxOTU0MzBaMIHJMQswCQYDVQQGEwJV +UzEUMBIGA1UEChMLRW50cnVzdC5uZXQxSDBGBgNVBAsUP3d3dy5lbnRydXN0Lm5ldC9DbGllbnRf +Q0FfSW5mby9DUFMgaW5jb3JwLiBieSByZWYuIGxpbWl0cyBsaWFiLjElMCMGA1UECxMcKGMpIDE5 +OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5uZXQgQ2xpZW50IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDIOpleMRffrCdv +kHvkGf9FozTC28GoT/Bo6oT9n3V5z8GKUZSvx1cDR2SerYIbWtp/N3hHuzeYEpbOxhN979IMMFGp +OZ5V+Pux5zDeg7K6PvHViTs7hbqqdCz+PzFur5GVbgbUB01LLFZHGARS2g4Qk79jkJvh34zmAqTm +T173iwIBA6OCAeAwggHcMBEGCWCGSAGG+EIBAQQEAwIABzCCASIGA1UdHwSCARkwggEVMIHkoIHh +oIHepIHbMIHYMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxSDBGBgNVBAsUP3d3 +dy5lbnRydXN0Lm5ldC9DbGllbnRfQ0FfSW5mby9DUFMgaW5jb3JwLiBieSByZWYuIGxpbWl0cyBs +aWFiLjElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50 +cnVzdC5uZXQgQ2xpZW50IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCyg +KqAohiZodHRwOi8vd3d3LmVudHJ1c3QubmV0L0NSTC9DbGllbnQxLmNybDArBgNVHRAEJDAigA8x +OTk5MTAxMjE5MjQzMFqBDzIwMTkxMDEyMTkyNDMwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU +xPucKXuXzUyW/O5bs8qZdIuV6kwwHQYDVR0OBBYEFMT7nCl7l81MlvzuW7PKmXSLlepMMAwGA1Ud +EwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEEBQADgYEAP66K +8ddmAwWePvrqHEa7pFuPeJoSSJn59DXeDDYHAmsQOokUgZwxpnyyQbJq5wcBoUv5nyU7lsqZwz6h +URzzwy5E97BnRqqS5TvaHBkUODDV4qIxJS7x7EU47fgGWANzYrAQMY9Av2TgXD7FTx/aEkP/TOYG +JqibGapEPHayXOw= +-----END CERTIFICATE----- + +Entrust.net Premium 2048 Secure Server CA +========================================= +-----BEGIN CERTIFICATE----- +MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u +ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp +bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV +BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx +NzUwNTFaFw0xOTEyMjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 +d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl +MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u +ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL +Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr +hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW +nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi +VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo3QwcjARBglghkgBhvhC +AQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB0RGAvtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdER +gL7YibkIozH5oSQJFrlwMB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0B +AQUFAAOCAQEAWUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFhfGPjK50xA3B20qMo +oPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVUKcgF7bISKo30Axv/55IQh7A6tcOdBTcS +o8f0FbnVpDkWm1M6I5HxqIKiaohowXkCIryqptau37AUX7iH0N18f3v/rxzP5tsHrV7bhZ3QKw0z +2wTR5klAEyt2+z7pnIkPFc4YsIV4IU9rTw76NmfNB/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjX +OP/swNlQ8C5LWK5Gb9Auw2DaclVyvUxFnmG6v4SBkgPR0ml8xQ== +-----END CERTIFICATE----- + +Baltimore CyberTrust Root +========================= +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE +ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li +ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC +SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs +dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME +uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB +UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C +G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 +XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr +l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI +VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB +BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh +cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 +hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa +Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H +RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp +-----END CERTIFICATE----- + +Equifax Secure Global eBusiness CA +================================== +-----BEGIN CERTIFICATE----- +MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp +bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx +HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds +b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV +PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN +qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn +hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j +BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs +MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN +I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY +NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV +-----END CERTIFICATE----- + +Equifax Secure eBusiness CA 1 +============================= +-----BEGIN CERTIFICATE----- +MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +RXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENB +LTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQwMDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UE +ChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNz +IENBLTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ +1MRoRvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBuWqDZQu4a +IZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKwEnv+j6YDAgMBAAGjZjBk +MBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEp4MlIR21kW +Nl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRKeDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQF +AAOBgQB1W6ibAxHm6VZMzfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5 +lSE/9dR+WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN/Bf+ +KpYrtWKmpj29f5JZzVoqgrI3eQ== +-----END CERTIFICATE----- + +Equifax Secure eBusiness CA 2 +============================= +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEXMBUGA1UE +ChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0y +MB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoT +DkVxdWlmYXggU2VjdXJlMSYwJAYDVQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCB +nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn +2Z0GvxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/BPO3QSQ5 +BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0CAwEAAaOCAQkwggEFMHAG +A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUx +JjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoG +A1UdEAQTMBGBDzIwMTkwNjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9e +uSBIplBqy/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQFMAMB +Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAAyGgq3oThr1 +jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia +78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUm +V+GRMOrN +-----END CERTIFICATE----- + +Visa International Global Root 2 +================================ +-----BEGIN CERTIFICATE----- +MIIDgDCCAmigAwIBAgICAx4wDQYJKoZIhvcNAQEFBQAwYTELMAkGA1UEBhMCVVMxDTALBgNVBAoT +BFZJU0ExLzAtBgNVBAsTJlZpc2EgSW50ZXJuYXRpb25hbCBTZXJ2aWNlIEFzc29jaWF0aW9uMRIw +EAYDVQQDEwlHUCBSb290IDIwHhcNMDAwODE2MjI1MTAwWhcNMjAwODE1MjM1OTAwWjBhMQswCQYD +VQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZp +Y2UgQXNzb2NpYXRpb24xEjAQBgNVBAMTCUdQIFJvb3QgMjCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAKkBcLWqxEDwq2omYXkZAPy/mzdZDK9vZBv42pWUJGkzEXDK41Z0ohdXZFwgBuHW +73G3O/erwWnQSaSxBNf0V2KJXLB1LRckaeNCYOTudNargFbYiCjh+20i/SN8RnNPflRzHqgsVVh1 +t0zzWkWlAhr62p3DRcMiXvOL8WAp0sdftAw6UYPvMPjU58fy+pmjIlC++QU3o63tmsPm7Igbthkn +GziLgE3sucfFicv8GjLtI/C1AVj59o/ghalMCXI5Etuz9c9OYmTaxhkVOmMd6RdVoUwiPDQyRvhl +V7or7zaMavrZ2UT0qt2E1w0cslSsMoW0ZA3eQbuxNMYBhjJk1Z8CAwEAAaNCMEAwHQYDVR0OBBYE +FJ59SzS/ca3CBfYDdYDOqU8axCRMMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0G +CSqGSIb3DQEBBQUAA4IBAQAhpXYUVfmtJ3CPPPTVbMjMCqujmAuKBiPFyWHbmQdpNSYx/scuhMKZ +YdQN6X0uEyt8joW2hcdLzzW2LEc9zikv2G+fiRxkk78IvXbQkIqUs38oW26sTTMs7WXcFsziza6k +PWKSBpUmv9+55CCmc2rBvveURNZNbyoLaxhNdBA2aGpawWqn3TYpjLgwi08hPwAuVDAHOrqK5MOe +yti12HvOdUVmB/RtLdh6yumJivIj2C/LbgA2T/vwLwHMD8AiZfSr4k5hLQOCfZEWtTDVFN5ex5D8 +ofyrEK9ca3CnB+8phuiyJccg/ybdd+95RBTEvd07xQObdyPsoOy7Wjm1zK0G +-----END CERTIFICATE----- + +beTRUSTed Root CA +================= +-----BEGIN CERTIFICATE----- +MIIFLDCCBBSgAwIBAgIEOU99hzANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJXVzESMBAGA1UE +ChMJYmVUUlVTVGVkMRswGQYDVQQDExJiZVRSVVNUZWQgUm9vdCBDQXMxGjAYBgNVBAMTEWJlVFJV +U1RlZCBSb290IENBMB4XDTAwMDYyMDE0MjEwNFoXDTEwMDYyMDEzMjEwNFowWjELMAkGA1UEBhMC +V1cxEjAQBgNVBAoTCWJlVFJVU1RlZDEbMBkGA1UEAxMSYmVUUlVTVGVkIFJvb3QgQ0FzMRowGAYD +VQQDExFiZVRSVVNUZWQgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANS0 +c3oTCjhVAb6JVuGUntS+WutKNHUbYSnE4a0IYCF4SP+00PpeQY1hRIfo7clY+vyTmt9P6j41ffgz +eubx181vSUs9Ty1uDoM6GHh3o8/n9E1z2Jo7Gh2+lVPPIJfCzz4kUmwMjmVZxXH/YgmPqsWPzGCg +c0rXOD8Vcr+il7dw6K/ifhYGTPWqZCZyByWtNfwYsSbX2P8ZDoMbjNx4RWc0PfSvHI3kbWvtILNn +mrRhyxdviTX/507AMhLn7uzf/5cwdO2NR47rtMNE5qdMf1ZD6Li8tr76g5fmu/vEtpO+GRg+jIG5 +c4gW9JZDnGdzF5DYCW5jrEq2I8QBoa2k5MUCAwEAAaOCAfgwggH0MA8GA1UdEwEB/wQFMAMBAf8w +ggFZBgNVHSAEggFQMIIBTDCCAUgGCisGAQQBsT4BAAAwggE4MIIBAQYIKwYBBQUHAgIwgfQagfFS +ZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFu +Y2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBv +ZiB1c2UsIGFuZCBjZXJ0aWZpY2F0aW9uIHByYWN0aWNlIHN0YXRlbWVudCwgd2hpY2ggY2FuIGJl +IGZvdW5kIGF0IGJlVFJVU1RlZCdzIHdlYiBzaXRlLCBodHRwczovL3d3dy5iZVRSVVNUZWQuY29t +L3ZhdWx0L3Rlcm1zMDEGCCsGAQUFBwIBFiVodHRwczovL3d3dy5iZVRSVVNUZWQuY29tL3ZhdWx0 +L3Rlcm1zMDQGA1UdHwQtMCswKaAnoCWkIzAhMRIwEAYDVQQKEwliZVRSVVNUZWQxCzAJBgNVBAYT +AldXMB0GA1UdDgQWBBQquZtpLjub2M3eKjEENGvKBxirZzAfBgNVHSMEGDAWgBQquZtpLjub2M3e +KjEENGvKBxirZzAOBgNVHQ8BAf8EBAMCAf4wDQYJKoZIhvcNAQEFBQADggEBAHlh26Nebhax6nZR ++csVm8tpvuaBa58oH2U+3RGFktToQb9+M70j5/Egv6S0phkBxoyNNXxlpE8JpNbYIxUFE6dDea/b +ow6be3ga8wSGWsb2jCBHOElQBp1yZzrwmAOtlmdE/D8QDYZN5AA7KXvOOzuZhmElQITcE2K3+spZ +1gMe1lMBzW1MaFVA4e5rxyoAAEiCswoBw2AqDPeCNe5IhpbkdNQ96gFxugR1QKepfzk5mlWXKWWu +GVUlBXJH0+gY3Ljpr0NzARJ0o+FcXxVdJPP55PS2Z2cS52QiivalQaYctmBjRYoQtLpGEK5BV2Vs +PyMQPyEQWbfkQN0mDCP2qq4= +-----END CERTIFICATE----- + +AddTrust Low-Value Services Root +================================ +-----BEGIN CERTIFICATE----- +MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU +cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw +CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO +ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6 +54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr +oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1 +Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui +GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w +HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD +AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT +RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw +HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt +ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph +iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY +eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr +mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj +ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk= +-----END CERTIFICATE----- + +AddTrust External Root +====================== +-----BEGIN CERTIFICATE----- +MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD +VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw +NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU +cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg +Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821 ++iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw +Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo +aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy +2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7 +7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P +BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL +VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk +VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB +IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl +j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 +6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355 +e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u +G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= +-----END CERTIFICATE----- + +AddTrust Public Services Root +============================= +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU +cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ +BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l +dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu +nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i +d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG +Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw +HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G +A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux +FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G +A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4 +JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL ++YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao +GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9 +Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H +EufOX1362KqxMy3ZdvJOOjMMK7MtkAY= +-----END CERTIFICATE----- + +AddTrust Qualified Certificates Root +==================================== +-----BEGIN CERTIFICATE----- +MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU +cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx +CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ +IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx +64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3 +KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o +L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR +wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU +MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE +BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y +azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD +ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG +GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X +dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze +RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB +iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE= +-----END CERTIFICATE----- + +Verisign Time Stamping Authority CA +=================================== +-----BEGIN CERTIFICATE----- +MIIDzTCCAzagAwIBAgIQU2GyYK7bcY6nlLMTM/QHCTANBgkqhkiG9w0BAQUFADCBwTELMAkGA1UE +BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTwwOgYDVQQLEzNDbGFzcyAzIFB1YmxpYyBQ +cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIxOjA4BgNVBAsTMShjKSAxOTk4IFZl +cmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAsTFlZlcmlTaWdu +IFRydXN0IE5ldHdvcmswHhcNMDAwOTI2MDAwMDAwWhcNMTAwOTI1MjM1OTU5WjCBpTEXMBUGA1UE +ChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNV +BAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTAwMSww +KgYDVQQDEyNWZXJpU2lnbiBUaW1lIFN0YW1waW5nIEF1dGhvcml0eSBDQTCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEA0hmdZ8IAIVlizrQJIkRpivglWtvtDbc2fk7gu5Q+kCWHwmFHKdm9VLhj +zCx9abQzNvQ3B5rB3UBU/OB4naCTuQk9I1F/RMIUdNsKvsvJMDRAmD7Q1yUQgZS9B0+c1lQn3y6o +v8uQjI11S7zi6ESHzeZBCiVu6PQkAsVSD27smHUCAwEAAaOB3zCB3DAPBgNVHRMECDAGAQH/AgEA +MEUGA1UdIAQ+MDwwOgYMYIZIAYb4RQEHFwEDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZl +cmlzaWduLmNvbS9ycGEwMQYDVR0fBCowKDAmoCSgIoYgaHR0cDovL2NybC52ZXJpc2lnbi5jb20v +cGNhMy5jcmwwCwYDVR0PBAQDAgEGMEIGCCsGAQUFBwEBBDYwNDAyBggrBgEFBQcwAaYmFiRodHRw +Oi8vb2NzcC52ZXJpc2lnbi5jb20vb2NzcC9zdGF0dXMwDQYJKoZIhvcNAQEFBQADgYEAgnBold+2 +DcIBcBlK0lRWHqzyRUyHuPU163hLBanInTsZIS5wNEqi9YngFXVF5yg3ADQnKeg3S/LvRJdrF1Ea +w1adPBqK9kpGRjeM+sv1ZFo4aC4cw+9wzrhGBha/937ntag+RaypJXUie28/sJyU58dzq6wf7iWb +wBbtt8pb8BQ= +-----END CERTIFICATE----- + +Thawte Time Stamping CA +======================= +-----BEGIN CERTIFICATE----- +MIICoTCCAgqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBizELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsG +A1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcg +Q0EwHhcNOTcwMTAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBizELMAkGA1UEBhMCWkExFTATBgNV +BAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEd +MBsGA1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBp +bmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANYrWHhhRYZT6jR7UZztsOYuGA7+4F+o +J9O0yeB8WU4WDnNUYMF/9p8u6TqFJBU820cEY8OexJQaWt9MevPZQx08EHp5JduQ/vBR5zDWQQD9 +nyjfeb6Uu522FOMjhdepQeBMpHmwKxqL8vg7ij5FrHGSALSQQZj7X+36ty6K+Ig3AgMBAAGjEzAR +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAZ9viwuaHPUCDhjc1fR/OmsMMZiCo +uqoEiYbC9RAIDb/LogWK0E02PvTX72nGXuSwlG9KuefeW4i2e9vjJ+V2w/A1wcu1J5szedyQpgCe +d/r8zSeUQhac0xxo7L9c3eWpexAKMnRUEzGLhQOEkbdYATAUOK8oyvyxUBkZCayJSdM= +-----END CERTIFICATE----- + +Entrust.net Global Secure Server CA +=================================== +-----BEGIN CERTIFICATE----- +MIIElTCCA/6gAwIBAgIEOJsRPDANBgkqhkiG9w0BAQQFADCBujEUMBIGA1UEChMLRW50cnVzdC5u +ZXQxPzA9BgNVBAsUNnd3dy5lbnRydXN0Lm5ldC9TU0xfQ1BTIGluY29ycC4gYnkgcmVmLiAobGlt +aXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDIwMDAgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UE +AxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0w +MDAyMDQxNzIwMDBaFw0yMDAyMDQxNzUwMDBaMIG6MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDE/MD0G +A1UECxQ2d3d3LmVudHJ1c3QubmV0L1NTTF9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlh +Yi4pMSUwIwYDVQQLExwoYykgMjAwMCBFbnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRy +dXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3 +DQEBAQUAA4GNADCBiQKBgQDHwV9OcfHO8GCGD9JYf9Mzly0XonUwtZZkJi9ow0SrqHXmAGc0V55l +xyKbc+bT3QgON1WqJUaBbL3+qPZ1V1eMkGxKwz6LS0MKyRFWmponIpnPVZ5h2QLifLZ8OAfc439P +mrkDQYC2dWcTC5/oVzbIXQA23mYU2m52H083jIITiQIDAQABo4IBpDCCAaAwEQYJYIZIAYb4QgEB +BAQDAgAHMIHjBgNVHR8EgdswgdgwgdWggdKggc+kgcwwgckxFDASBgNVBAoTC0VudHJ1c3QubmV0 +MT8wPQYDVQQLFDZ3d3cuZW50cnVzdC5uZXQvU1NMX0NQUyBpbmNvcnAuIGJ5IHJlZi4gKGxpbWl0 +cyBsaWFiLikxJTAjBgNVBAsTHChjKSAyMDAwIEVudHJ1c3QubmV0IExpbWl0ZWQxOjA4BgNVBAMT +MUVudHJ1c3QubmV0IFNlY3VyZSBTZXJ2ZXIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxDTALBgNV +BAMTBENSTDEwKwYDVR0QBCQwIoAPMjAwMDAyMDQxNzIwMDBagQ8yMDIwMDIwNDE3NTAwMFowCwYD +VR0PBAQDAgEGMB8GA1UdIwQYMBaAFMtswGvjuz7L/CKc/vuLkpyw8m4iMB0GA1UdDgQWBBTLbMBr +47s+y/winP77i5KcsPJuIjAMBgNVHRMEBTADAQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4w +AwIEkDANBgkqhkiG9w0BAQQFAAOBgQBi24GRzsiad0Iv7L0no1MPUBvqTpLwqa+poLpIYcvvyQbv +H9X07t9WLebKahlzqlO+krNQAraFJnJj2HVQYnUUt7NQGj/KEQALhUVpbbalrlHhStyCP2yMNLJ3 +a9kC9n8O6mUE8c1UyrrJzOCE98g+EZfTYAkYvAX/bIkz8OwVDw== +-----END CERTIFICATE----- + +Entrust.net Global Secure Personal CA +===================================== +-----BEGIN CERTIFICATE----- +MIIEgzCCA+ygAwIBAgIEOJ725DANBgkqhkiG9w0BAQQFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u +ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9HQ0NBX0NQUyBpbmNvcnAuIGJ5IHJlZi4gKGxp +bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAyMDAwIEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV +BAMTKkVudHJ1c3QubmV0IENsaWVudCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMDAyMDcx +NjE2NDBaFw0yMDAyMDcxNjQ2NDBaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 +d3d3LmVudHJ1c3QubmV0L0dDQ0FfQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl +MCMGA1UECxMcKGMpIDIwMDAgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u +ZXQgQ2xpZW50IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB +iQKBgQCTdLS25MVL1qFof2LV7PdRV7NySpj10InJrWPNTTVRaoTUrcloeW+46xHbh65cJFET8VQl +hK8pK5/jgOLZy93GRUk0iJBeAZfv6lOm3fzB3ksqJeTpNfpVBQbliXrqpBFXO/x8PTbNZzVtpKkl +Wb1m9fkn5JVn1j+SgF7yNH0rhQIDAQABo4IBnjCCAZowEQYJYIZIAYb4QgEBBAQDAgAHMIHdBgNV +HR8EgdUwgdIwgc+ggcyggcmkgcYwgcMxFDASBgNVBAoTC0VudHJ1c3QubmV0MUAwPgYDVQQLFDd3 +d3cuZW50cnVzdC5uZXQvR0NDQV9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUw +IwYDVQQLExwoYykgMjAwMCBFbnRydXN0Lm5ldCBMaW1pdGVkMTMwMQYDVQQDEypFbnRydXN0Lm5l +dCBDbGllbnQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw +IoAPMjAwMDAyMDcxNjE2NDBagQ8yMDIwMDIwNzE2NDY0MFowCwYDVR0PBAQDAgEGMB8GA1UdIwQY +MBaAFISLdP3FjcD/J20gN0V8/i3OutN9MB0GA1UdDgQWBBSEi3T9xY3A/ydtIDdFfP4tzrrTfTAM +BgNVHRMEBTADAQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0BAQQF +AAOBgQBObzWAO9GK9Q6nIMstZVXQkvTnhLUGJoMShAusO7JE7r3PQNsgDrpuFOow4DtifH+La3xK +p9U1PL6oXOpLu5OOgGarDyn9TS2/GpsKkMWr2tGzhtQvJFJcem3G8v7lTRowjJDyutdKPkN+1MhQ +Gof4T4HHdguEOnKdzmVml64mXg== +-----END CERTIFICATE----- + +Entrust Root Certification Authority +==================================== +-----BEGIN CERTIFICATE----- +MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw +b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG +A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0 +MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu +MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu +Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v +dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz +A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww +Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68 +j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN +rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1 +MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH +hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA +A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM +Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa +v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS +W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 +tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 +-----END CERTIFICATE----- + +AOL Time Warner Root Certification Authority 1 +============================================== +-----BEGIN CERTIFICATE----- +MIID5jCCAs6gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMCVVMxHTAbBgNVBAoT +FEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNBbWVyaWNhIE9ubGluZSBJbmMuMTcwNQYD +VQQDEy5BT0wgVGltZSBXYXJuZXIgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAy +MDUyOTA2MDAwMFoXDTM3MTEyMDE1MDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRBT0wg +VGltZSBXYXJuZXIgSW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUgSW5jLjE3MDUGA1UEAxMu +QU9MIFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAJnej8Mlo2k06AX3dLm/WpcZuS+U0pPlLYnKhHw/EEMbjIt8 +hFj4JHxIzyr9wBXZGH6EGhfT257XyuTZ16pYUYfw8ItITuLCxFlpMGK2MKKMCxGZYTVtfu/FsRkG +IBKOQuHfD5YQUqjPnF+VFNivO3ULMSAfRC+iYkGzuxgh28pxPIzstrkNn+9R7017EvILDOGsQI93 +f7DKeHEMXRZxcKLXwjqFzQ6axOAAsNUl6twr5JQtOJyJQVdkKGUZHLZEtMgxa44Be3ZZJX8VHIQI +fHNlIAqhBC4aMqiaILGcLCFZ5/vP7nAtCMpjPiybkxlqpMKX/7eGV4iFbJ4VFitNLLMCAwEAAaNj +MGEwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUoTYwFsuGkABFgFOxj8jYPXy+XxIwHwYDVR0j +BBgwFoAUoTYwFsuGkABFgFOxj8jYPXy+XxIwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUA +A4IBAQCKIBilvrMvtKaEAEAwKfq0FHNMeUWn9nDg6H5kHgqVfGphwu9OH77/yZkfB2FK4V1Mza3u +0FIy2VkyvNp5ctZ7CegCgTXTCt8RHcl5oIBN/lrXVtbtDyqvpxh1MwzqwWEFT2qaifKNuZ8u77Bf +WgDrvq2g+EQFZ7zLBO+eZMXpyD8Fv8YvBxzDNnGGyjhmSs3WuEvGbKeXO/oTLW4jYYehY0KswsuX +n2Fozy1MBJ3XJU8KDk2QixhWqJNIV9xvrr2eZ1d3iVCzvhGbRWeDhhmH05i9CBoWH1iCC+GWaQVL +juyDUTEH1dSf/1l7qG6Fz9NLqUmwX7A5KGgOc90lmt4S +-----END CERTIFICATE----- + +AOL Time Warner Root Certification Authority 2 +============================================== +-----BEGIN CERTIFICATE----- +MIIF5jCCA86gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMCVVMxHTAbBgNVBAoT +FEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNBbWVyaWNhIE9ubGluZSBJbmMuMTcwNQYD +VQQDEy5BT0wgVGltZSBXYXJuZXIgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAy +MDUyOTA2MDAwMFoXDTM3MDkyODIzNDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRBT0wg +VGltZSBXYXJuZXIgSW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUgSW5jLjE3MDUGA1UEAxMu +QU9MIFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBALQ3WggWmRToVbEbJGv8x4vmh6mJ7ouZzU9AhqS2TcnZsdw8 +TQ2FTBVsRotSeJ/4I/1n9SQ6aF3Q92RhQVSji6UI0ilbm2BPJoPRYxJWSXakFsKlnUWsi4SVqBax +7J/qJBrvuVdcmiQhLE0OcR+mrF1FdAOYxFSMFkpBd4aVdQxHAWZg/BXxD+r1FHjHDtdugRxev17n +OirYlxcwfACtCJ0zr7iZYYCLqJV+FNwSbKTQ2O9ASQI2+W6p1h2WVgSysy0WVoaP2SBXgM1nEG2w +TPDaRrbqJS5Gr42whTg0ixQmgiusrpkLjhTXUr2eacOGAgvqdnUxCc4zGSGFQ+aJLZ8lN2fxI2rS +AG2X+Z/nKcrdH9cG6rjJuQkhn8g/BsXS6RJGAE57COtCPStIbp1n3UsC5ETzkxmlJ85per5n0/xQ +pCyrw2u544BMzwVhSyvcG7mm0tCq9Stz+86QNZ8MUhy/XCFhEVsVS6kkUfykXPcXnbDS+gfpj1bk +GoxoigTTfFrjnqKhynFbotSg5ymFXQNoKk/SBtc9+cMDLz9l+WceR0DTYw/j1Y75hauXTLPXJuuW +CpTehTacyH+BCQJJKg71ZDIMgtG6aoIbs0t0EfOMd9afv9w3pKdVBC/UMejTRrkDfNoSTllkt1Ex +MVCgyhwn2RAurda9EGYrw7AiShJbAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FE9pbQN+nZ8HGEO8txBO1b+pxCAoMB8GA1UdIwQYMBaAFE9pbQN+nZ8HGEO8txBO1b+pxCAoMA4G +A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAO/Ouyuguh4X7ZVnnrREUpVe8WJ8kEle7 ++z802u6teio0cnAxa8cZmIDJgt43d15Ui47y6mdPyXSEkVYJ1eV6moG2gcKtNuTxVBFT8zRFASbI +5Rq8NEQh3q0l/HYWdyGQgJhXnU7q7C+qPBR7V8F+GBRn7iTGvboVsNIYvbdVgaxTwOjdaRITQrcC +tQVBynlQboIOcXKTRuidDV29rs4prWPVVRaAMCf/drr3uNZK49m1+VLQTkCpx+XCMseqdiThawVQ +68W/ClTluUI8JPu3B5wwn3la5uBAUhX0/Kr0VvlEl4ftDmVyXr4m+02kLQgH3thcoNyBM5kYJRF3 +p+v9WAksmWsbivNSPxpNSGDxoPYzAlOL7SUJuA0t7Zdz7NeWH45gDtoQmy8YJPamTQr5O8t1wswv +ziRpyQoijlmn94IM19drNZxDAGrElWe6nEXLuA4399xOAU++CrYD062KRffaJ00psUjf5BHklka9 +bAI+1lHIlRcBFanyqqryvy9lG2/QuRqT9Y41xICHPpQvZuTpqP9BnHAqTyo5GJUefvthATxRCC4o +GKQWDzH9OmwjkyB24f0HhdFbP9IcczLd+rn4jM8Ch3qaluTtT4mNU0OrDhPAARW0eTjb/G49nlG2 +uBOLZ8/5fNkiHfZdxRwBL5joeiQYvITX+txyW/fBOmg= +-----END CERTIFICATE----- + +beTRUSTed Root CA-Baltimore Implementation +========================================== +-----BEGIN CERTIFICATE----- +MIIFajCCBFKgAwIBAgIEPLU9RjANBgkqhkiG9w0BAQUFADBmMRIwEAYDVQQKEwliZVRSVVNUZWQx +GzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEzMDEGA1UEAxMqYmVUUlVTVGVkIFJvb3QgQ0Et +QmFsdGltb3JlIEltcGxlbWVudGF0aW9uMB4XDTAyMDQxMTA3Mzg1MVoXDTIyMDQxMTA3Mzg1MVow +ZjESMBAGA1UEChMJYmVUUlVTVGVkMRswGQYDVQQLExJiZVRSVVNUZWQgUm9vdCBDQXMxMzAxBgNV +BAMTKmJlVFJVU1RlZCBSb290IENBLUJhbHRpbW9yZSBJbXBsZW1lbnRhdGlvbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBALx+xDmcjOPWHIb/ymKt4H8wRXqOGrO4x/nRNv8i805qX4QQ ++2aBw5R5MdKR4XeOGCrDFN5R9U+jK7wYFuK13XneIviCfsuBH/0nLI/6l2Qijvj/YaOcGx6Sj8Co +Cd8JEey3fTGaGuqDIQY8n7pc/5TqarjDa1U0Tz0yH92BFODEPM2dMPgwqZfT7syj0B9fHBOB1Bir +lNFjw55/NZKeX0Tq7PQiXLfoPX2k+YmpkbIq2eszh+6l/ePazIjmiSZuxyuC0F6dWdsU7JGDBcNe +DsYq0ATdcT0gTlgn/FP7eHgZFLL8kFKJOGJgB7Sg7KxrUNb9uShr71ItOrL/8QFArDcCAwEAAaOC +Ah4wggIaMA8GA1UdEwEB/wQFMAMBAf8wggG1BgNVHSAEggGsMIIBqDCCAaQGDysGAQQBsT4AAAEJ +KIORMTCCAY8wggFIBggrBgEFBQcCAjCCAToaggE2UmVsaWFuY2Ugb24gb3IgdXNlIG9mIHRoaXMg +Q2VydGlmaWNhdGUgY3JlYXRlcyBhbiBhY2tub3dsZWRnbWVudCBhbmQgYWNjZXB0YW5jZSBvZiB0 +aGUgdGhlbiBhcHBsaWNhYmxlIHN0YW5kYXJkIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHVzZSwg +dGhlIENlcnRpZmljYXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IGFuZCB0aGUgUmVseWluZyBQYXJ0 +eSBBZ3JlZW1lbnQsIHdoaWNoIGNhbiBiZSBmb3VuZCBhdCB0aGUgYmVUUlVTVGVkIHdlYiBzaXRl +LCBodHRwOi8vd3d3LmJldHJ1c3RlZC5jb20vcHJvZHVjdHNfc2VydmljZXMvaW5kZXguaHRtbDBB +BggrBgEFBQcCARY1aHR0cDovL3d3dy5iZXRydXN0ZWQuY29tL3Byb2R1Y3RzX3NlcnZpY2VzL2lu +ZGV4Lmh0bWwwHQYDVR0OBBYEFEU9w6nR3D8kVpgccxiIav+DR+22MB8GA1UdIwQYMBaAFEU9w6nR +3D8kVpgccxiIav+DR+22MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEASZK8o+6s +vfoNyYt5hhwjdrCAWXf82n+0S9/DZEtqTg6t8n1ZdwWtColzsPq8y9yNAIiPpqCy6qxSJ7+hSHyX +EHu67RMdmgduyzFiEuhjA6p9beP4G3YheBufS0OM00mG9htc9i5gFdPp43t1P9ACg9AYgkHNZTfq +jjJ+vWuZXTARyNtIVBw74acT02pIk/c9jH8F6M7ziCpjBLjqflh8AXtb4cV97yHgjQ5dUX2xZ/2j +vTg2xvI4hocalmhgRvsoFEdV4aeADGvi6t9NfJBIoDa9CReJf8Py05yc493EG931t3GzUwWJBtDL +SoDByFOQtTwxiBdQn8nEDovYqAJjDQ== +-----END CERTIFICATE----- + +beTRUSTed Root CA - Entrust Implementation +========================================== +-----BEGIN CERTIFICATE----- +MIIGUTCCBTmgAwIBAgIEPLVPQDANBgkqhkiG9w0BAQUFADBmMRIwEAYDVQQKEwliZVRSVVNUZWQx +GzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEzMDEGA1UEAxMqYmVUUlVTVGVkIFJvb3QgQ0Eg +LSBFbnRydXN0IEltcGxlbWVudGF0aW9uMB4XDTAyMDQxMTA4MjQyN1oXDTIyMDQxMTA4NTQyN1ow +ZjESMBAGA1UEChMJYmVUUlVTVGVkMRswGQYDVQQLExJiZVRSVVNUZWQgUm9vdCBDQXMxMzAxBgNV +BAMTKmJlVFJVU1RlZCBSb290IENBIC0gRW50cnVzdCBJbXBsZW1lbnRhdGlvbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBALr0RAOqEmq1Q+xVkrYwfTVXDNvzDSduTPdQqJtOK2/b9a0c +S12zqcH+e0TrW6MFDR/FNCswACnxeECypP869AGIF37m1CbTukzqMvtDd5eHI8XbQ6P1KqNRXuE7 +0mVpflUVm3rnafdE4Fe1FehmYA8NA/uCjqPoEXtsvsdjDheT389Lrm5zdeDzqrmkwAkbhepxKYhB +MvnwKg5sCfJ0a2ZsUhMfGLzUPvfYbiCeyv78IZTuEyhL11xeDGbu6bsPwTSxfwh28z0mcMmLJR1i +JAzqHHVOwBLkuhMdMCktVjMFu5dZfsZJT4nXLySotohAtWSSU1Yk5KKghbNekLQSM80CAwEAAaOC +AwUwggMBMIIBtwYDVR0gBIIBrjCCAaowggGmBg8rBgEEAbE+AAACCSiDkTEwggGRMIIBSQYIKwYB +BQUHAgIwggE7GoIBN1JlbGlhbmNlIG9uIG9yIHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNyZWF0 +ZXMgYW4gYWNrbm93bGVkZ21lbnQgYW5kIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs +ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIHRoZSBDZXJ0aWZpY2F0aW9u +IFByYWN0aWNlIFN0YXRlbWVudCBhbmQgdGhlIFJlbHlpbmcgUGFydHkgQWdyZWVtZW50LCB3aGlj +aCBjYW4gYmUgZm91bmQgYXQgdGhlIGJlVFJVU1RlZCB3ZWIgc2l0ZSwgaHR0cHM6Ly93d3cuYmV0 +cnVzdGVkLmNvbS9wcm9kdWN0c19zZXJ2aWNlcy9pbmRleC5odG1sMEIGCCsGAQUFBwIBFjZodHRw +czovL3d3dy5iZXRydXN0ZWQuY29tL3Byb2R1Y3RzX3NlcnZpY2VzL2luZGV4Lmh0bWwwEQYJYIZI +AYb4QgEBBAQDAgAHMIGJBgNVHR8EgYEwfzB9oHugeaR3MHUxEjAQBgNVBAoTCWJlVFJVU1RlZDEb +MBkGA1UECxMSYmVUUlVTVGVkIFJvb3QgQ0FzMTMwMQYDVQQDEypiZVRSVVNUZWQgUm9vdCBDQSAt +IEVudHJ1c3QgSW1wbGVtZW50YXRpb24xDTALBgNVBAMTBENSTDEwKwYDVR0QBCQwIoAPMjAwMjA0 +MTEwODI0MjdagQ8yMDIyMDQxMTA4NTQyN1owCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaAFH1w5a44 +iwY/qhwaj/nPJDCqhIQWMB0GA1UdDgQWBBR9cOWuOIsGP6ocGo/5zyQwqoSEFjAMBgNVHRMEBTAD +AQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEAKrgX +zh8QlOu4mre5X+za95IkrNySO8cgjfKZ5V04ocI07cUTWVwFtStPYZuR+0H8/NU8TZh2BvWBfevd +kObRVlTa4y0MnxEylCIBevZsLHRnBMylj44ss0O1lKLQfelifwa+JwGDnjr9iu6YQ0pr17WXOzq/ +T220Y/ozADQuLW2WyXvKmWO6vvT2MKAtmJbpVkQFqUSjYRDrgqFnXbxdJ3Wqiig2KjiS2d2kXgCl +zMx8KSreKJCrt+G2/30lC0DYqjSjLd4H61/OCt3Kfjp9JsFiaDrmLzfzgYYhxKlkqu9FNtEaZnz4 +6TfW1mG+oq1I59/mdP7TbX3SJdysYlep9w== +-----END CERTIFICATE----- + +beTRUSTed Root CA - RSA Implementation +====================================== +-----BEGIN CERTIFICATE----- +MIIFaDCCBFCgAwIBAgIQO1nHe81bV569N1KsdrSqGjANBgkqhkiG9w0BAQUFADBiMRIwEAYDVQQK +EwliZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEvMC0GA1UEAxMmYmVUUlVT +VGVkIFJvb3QgQ0EgLSBSU0EgSW1wbGVtZW50YXRpb24wHhcNMDIwNDExMTExODEzWhcNMjIwNDEy +MTEwNzI1WjBiMRIwEAYDVQQKEwliZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENB +czEvMC0GA1UEAxMmYmVUUlVTVGVkIFJvb3QgQ0EgLSBSU0EgSW1wbGVtZW50YXRpb24wggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkujQwCY5X0LkGLG9uJIAiv11DpvpPrILnHGhwhRuj +brWqeNluB0s/6d/16uhUoWGKDi9pdRi3DOUUjXFumLhV/AyV0Jtu4S2I1DpAa5LxmZZk3tv/ePTu +lh1HiXzUvrmIdyM6CeYEnm2qXtLIvZpOGd+J6lsOfsPktPDgaTuID0GQ+NRxQyTBjyZLO1bp/4xs +N+lFrYWMU8NghpBKlsmzVLC7F/AcRdnUGxlkVgoZ98zh/4avflherHqQH8koOUV7orbHnB/ahdQh +hlkwk75TMzf270HPM8ercmsl9fNTGwxMLvF1S++gh/f+ihXQbNXL+WhTuXAVE8L1LvtDNXUtAgMB +AAGjggIYMIICFDAMBgNVHRMEBTADAQH/MIIBtQYDVR0gBIIBrDCCAagwggGkBg8rBgEEAbE+AAAD +CSiDkTEwggGPMEEGCCsGAQUFBwIBFjVodHRwOi8vd3d3LmJldHJ1c3RlZC5jb20vcHJvZHVjdHNf +c2VydmljZXMvaW5kZXguaHRtbDCCAUgGCCsGAQUFBwICMIIBOhqCATZSZWxpYW5jZSBvbiBvciB1 +c2Ugb2YgdGhpcyBDZXJ0aWZpY2F0ZSBjcmVhdGVzIGFuIGFja25vd2xlZGdtZW50IGFuZCBhY2Nl +cHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlv +bnMgb2YgdXNlLCB0aGUgQ2VydGlmaWNhdGlvbiBQcmFjdGljZSBTdGF0ZW1lbnQgYW5kIHRoZSBS +ZWx5aW5nIFBhcnR5IEFncmVlbWVudCwgd2hpY2ggY2FuIGJlIGZvdW5kIGF0IHRoZSBiZVRSVVNU +ZWQgd2ViIHNpdGUsIGh0dHA6Ly93d3cuYmV0cnVzdGVkLmNvbS9wcm9kdWN0c19zZXJ2aWNlcy9p +bmRleC5odG1sMAsGA1UdDwQEAwIBBjAfBgNVHSMEGDAWgBSp7BR++dlDzFMrFK3P9/BZiUHNGTAd +BgNVHQ4EFgQUqewUfvnZQ8xTKxStz/fwWYlBzRkwDQYJKoZIhvcNAQEFBQADggEBANuXsHXqDMTB +mMpWBcCorSZIry0g6IHHtt9DwSwddUvUQo3neqh03GZCWYez9Wlt2ames30cMcH1VOJZJEnl7r05 +pmuKmET7m9cqg5c0Lcd9NUwtNLg+DcTsiCevnpL9UGGCqGAHFFPMZRPB9kdEadIxyKbdLrML3kqN +Wz2rDcI1UqJWN8wyiyiFQpyRQHpwKzg21eFzGh/l+n5f3NacOzDq28BbJ1zTcwfBwvNMm2+fG8oe +qqg4MwlYsq78B+g23FW6L09A/nq9BqaBwZMifIYRCgZ3SK41ty8ymmFei74pnykkiFY5LKjSq5YD +WtRIn7lAhAuYaPsBQ9Yb4gmxlxw= +-----END CERTIFICATE----- + +RSA Security 2048 v3 +==================== +-----BEGIN CERTIFICATE----- +MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK +ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy +MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb +BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7 +Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb +WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH +KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP ++Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/ +MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E +FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY +v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj +0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj +VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395 +nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA +pKnXwiJPZ9d37CAFYd4= +-----END CERTIFICATE----- + +RSA Security 1024 v3 +==================== +-----BEGIN CERTIFICATE----- +MIICXDCCAcWgAwIBAgIQCgEBAQAAAnwAAAALAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK +ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMTAyNCBWMzAeFw0wMTAy +MjIyMTAxNDlaFw0yNjAyMjIyMDAxNDlaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb +BgNVBAsTFFJTQSBTZWN1cml0eSAxMDI0IFYzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDV +3f5mCc8kPD6ugU5OisRpgFtZO9+5TUzKtS3DJy08rwBCbbwoppbPf9dYrIMKo1W1exeQFYRMiu4m +mdxY78c4pqqv0I5CyGLXq6yp+0p9v+r+Ek3d/yYtbzZUaMjShFbuklNhCbM/OZuoyZu9zp9+1Blq +FikYvtc6adwlWzMaUQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAf +BgNVHSMEGDAWgBTEwBykB5T9zU0B1FTapQxf3q4FWjAdBgNVHQ4EFgQUxMAcpAeU/c1NAdRU2qUM +X96uBVowDQYJKoZIhvcNAQEFBQADgYEAPy1q4yZDlX2Jl2X7deRyHUZXxGFraZ8SmyzVWujAovBD +leMf6XbN3Ou8k6BlCsdNT1+nr6JGFLkM88y9am63nd4lQtBU/55oc2PcJOsiv6hy8l4A4Q1OOkNu +mU4/iXgDmMrzVcydro7BqkWY+o8aoI2II/EVQQ2lRj6RP4vr93E= +-----END CERTIFICATE----- + +GeoTrust Global CA +================== +-----BEGIN CERTIFICATE----- +MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK +Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw +MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j +LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo +BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet +8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc +T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU +vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk +DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q +zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4 +d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2 +mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p +XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm +Mw== +-----END CERTIFICATE----- + +GeoTrust Global CA 2 +==================== +-----BEGIN CERTIFICATE----- +MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw +MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j +LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/ +NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k +LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA +Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b +HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH +K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7 +srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh +ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL +OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC +x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF +H4z1Ir+rzoPz4iIprn2DQKi6bA== +-----END CERTIFICATE----- + +GeoTrust Universal CA +===================== +-----BEGIN CERTIFICATE----- +MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1 +MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu +Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t +JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e +RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs +7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d +8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V +qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga +Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB +Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu +KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08 +ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0 +XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB +hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc +aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2 +qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL +oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK +xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF +KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2 +DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK +xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU +p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI +P/rmMuGNG2+k5o7Y+SlIis5z/iw= +-----END CERTIFICATE----- + +GeoTrust Universal CA 2 +======================= +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0 +MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg +SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0 +DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17 +j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q +JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a +QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2 +WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP +20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn +ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC +SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG +8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2 ++/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E +BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z +dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ +4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+ +mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq +A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg +Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP +pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d +FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp +gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm +X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS +-----END CERTIFICATE----- + +UTN-USER First-Network Applications +=================================== +-----BEGIN CERTIFICATE----- +MIIEZDCCA0ygAwIBAgIQRL4Mi1AAJLQR0zYwS8AzdzANBgkqhkiG9w0BAQUFADCBozELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzAp +BgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBBcHBsaWNhdGlvbnMwHhcNOTkwNzA5MTg0ODM5 +WhcNMTkwNzA5MTg1NzQ5WjCBozELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5T +YWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho +dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzApBgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBB +cHBsaWNhdGlvbnMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz+5Gh5DZVhawGNFug +mliy+LUPBXeDrjKxdpJo7CNKyXY/45y2N3kDuatpjQclthln5LAbGHNhSuh+zdMvZOOmfAz6F4Cj +DUeJT1FxL+78P/m4FoCHiZMlIJpDgmkkdihZNaEdwH+DBmQWICzTSaSFtMBhf1EI+GgVkYDLpdXu +Ozr0hAReYFmnjDRy7rh4xdE7EkpvfmUnuaRVxblvQ6TFHSyZwFKkeEwVs0CYCGtDxgGwenv1axwi +P8vv/6jQOkt2FZ7S0cYu49tXGzKiuG/ohqY/cKvlcJKrRB5AUPuco2LkbG6gyN7igEL66S/ozjIE +j3yNtxyjNTwV3Z7DrpelAgMBAAGjgZEwgY4wCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8w +HQYDVR0OBBYEFPqGydvguul49Uuo1hXf8NPhahQ8ME8GA1UdHwRIMEYwRKBCoECGPmh0dHA6Ly9j +cmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LU5ldHdvcmtBcHBsaWNhdGlvbnMuY3JsMA0G +CSqGSIb3DQEBBQUAA4IBAQCk8yXM0dSRgyLQzDKrm5ZONJFUICU0YV8qAhXhi6r/fWRRzwr/vH3Y +IWp4yy9Rb/hCHTO967V7lMPDqaAt39EpHx3+jz+7qEUqf9FuVSTiuwL7MT++6LzsQCv4AdRWOOTK +RIK1YSAhZ2X28AvnNPilwpyjXEAfhZOVBt5P1CeptqX8Fs1zMT+4ZSfP1FMa8Kxun08FDAOBp4Qp +xFq9ZFdyrTvPNximmMatBrTcCKME1SmklpoSZ0qMYEWd8SOasACcaLWYUNPvji6SZbFIPiG+FTAq +DbUMo2s/rn9X9R+WfN9v3YIwLGUbQErNaLly7HF27FSOH4UMAWr6pjisH8SE +-----END CERTIFICATE----- + +America Online Root Certification Authority 1 +============================================= +-----BEGIN CERTIFICATE----- +MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkG +A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg +T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lkhsmj76CG +v2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym1BW32J/X3HGrfpq/m44z +DyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsWOqMFf6Dch9Wc/HKpoH145LcxVR5lu9Rh +sCFg7RAycsWSJR74kEoYeEfffjA3PlAb2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP +8c9GsEsPPt2IYriMqQkoO3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAUAK3Z +o/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQB8itEf +GDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkFZu90821fnZmv9ov761KyBZiibyrF +VL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAbLjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft +3OJvx8Fi8eNy1gTIdGcL+oiroQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43g +Kd8hdIaC2y+CMMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds +sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7 +-----END CERTIFICATE----- + +America Online Root Certification Authority 2 +============================================= +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkG +A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg +T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC206B89en +fHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFciKtZHgVdEglZTvYYUAQv8 +f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2JxhP7JsowtS013wMPgwr38oE18aO6lhO +qKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JN +RvCAOVIyD+OEsnpD8l7eXz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0 +gBe4lL8BPeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67Xnfn +6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEqZ8A9W6Wa6897Gqid +FEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZo2C7HK2JNDJiuEMhBnIMoVxtRsX6 +Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnj +B453cMor9H124HhnAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3Op +aaEg5+31IqEjFNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmnxPBUlgtk87FY +T15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2LHo1YGwRgJfMqZJS5ivmae2p ++DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzcccobGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXg +JXUjhx5c3LqdsKyzadsXg8n33gy8CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//Zoy +zH1kUQ7rVyZ2OuMeIjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgO +ZtMADjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2FAjgQ5ANh +1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUXOm/9riW99XJZZLF0Kjhf +GEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPbAZO1XB4Y3WRayhgoPmMEEf0cjQAPuDff +Z4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQlZvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuP +cX/9XhmgD0uRuMRUvAawRY8mkaKO/qk= +-----END CERTIFICATE----- + +Visa eCommerce Root +=================== +-----BEGIN CERTIFICATE----- +MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG +EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug +QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2 +WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm +VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv +bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL +F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b +RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0 +TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI +/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs +GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG +MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc +CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW +YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz +zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu +YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt +398znM/jra6O1I7mT1GvFpLgXPYHDw== +-----END CERTIFICATE----- + +TC TrustCenter, Germany, Class 2 CA +=================================== +-----BEGIN CERTIFICATE----- +MIIDXDCCAsWgAwIBAgICA+owDQYJKoZIhvcNAQEEBQAwgbwxCzAJBgNVBAYTAkRFMRAwDgYDVQQI +EwdIYW1idXJnMRAwDgYDVQQHEwdIYW1idXJnMTowOAYDVQQKEzFUQyBUcnVzdENlbnRlciBmb3Ig +U2VjdXJpdHkgaW4gRGF0YSBOZXR3b3JrcyBHbWJIMSIwIAYDVQQLExlUQyBUcnVzdENlbnRlciBD +bGFzcyAyIENBMSkwJwYJKoZIhvcNAQkBFhpjZXJ0aWZpY2F0ZUB0cnVzdGNlbnRlci5kZTAeFw05 +ODAzMDkxMTU5NTlaFw0xMTAxMDExMTU5NTlaMIG8MQswCQYDVQQGEwJERTEQMA4GA1UECBMHSGFt +YnVyZzEQMA4GA1UEBxMHSGFtYnVyZzE6MDgGA1UEChMxVEMgVHJ1c3RDZW50ZXIgZm9yIFNlY3Vy +aXR5IGluIERhdGEgTmV0d29ya3MgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3Mg +MiBDQTEpMCcGCSqGSIb3DQEJARYaY2VydGlmaWNhdGVAdHJ1c3RjZW50ZXIuZGUwgZ8wDQYJKoZI +hvcNAQEBBQADgY0AMIGJAoGBANo46O0yAClxgwENv4wB3NrGrTmkqYov1YtcaF9QxmL1Zr3KkSLs +qh1R1z2zUbKDTl3LSbDwTFXlay3HhQswHJJOgtTKAu33b77c4OMUuAVT8pr0VotanoWT0bSCVq5N +u6hLVxa8/vhYnvgpjbB7zXjJT6yLZwzxnPv8V5tXXE8NAgMBAAGjazBpMA8GA1UdEwEB/wQFMAMB +Af8wDgYDVR0PAQH/BAQDAgGGMDMGCWCGSAGG+EIBCAQmFiRodHRwOi8vd3d3LnRydXN0Y2VudGVy +LmRlL2d1aWRlbGluZXMwEQYJYIZIAYb4QgEBBAQDAgAHMA0GCSqGSIb3DQEBBAUAA4GBAIRS+yjf +/x91AbwBvgRWl2p0QiQxg/lGsQaKic+WLDO/jLVfenKhhQbOhvgFjuj5Jcrag4wGrOs2bYWRNAQ2 +9ELw+HkuCkhcq8xRT3h2oNmsGb0q0WkEKJHKNhAngFdb0lz1wlurZIFjdFH0l7/NEij3TWZ/p/Ac +ASZ4smZHcFFk +-----END CERTIFICATE----- + +TC TrustCenter, Germany, Class 3 CA +=================================== +-----BEGIN CERTIFICATE----- +MIIDXDCCAsWgAwIBAgICA+swDQYJKoZIhvcNAQEEBQAwgbwxCzAJBgNVBAYTAkRFMRAwDgYDVQQI +EwdIYW1idXJnMRAwDgYDVQQHEwdIYW1idXJnMTowOAYDVQQKEzFUQyBUcnVzdENlbnRlciBmb3Ig +U2VjdXJpdHkgaW4gRGF0YSBOZXR3b3JrcyBHbWJIMSIwIAYDVQQLExlUQyBUcnVzdENlbnRlciBD +bGFzcyAzIENBMSkwJwYJKoZIhvcNAQkBFhpjZXJ0aWZpY2F0ZUB0cnVzdGNlbnRlci5kZTAeFw05 +ODAzMDkxMTU5NTlaFw0xMTAxMDExMTU5NTlaMIG8MQswCQYDVQQGEwJERTEQMA4GA1UECBMHSGFt +YnVyZzEQMA4GA1UEBxMHSGFtYnVyZzE6MDgGA1UEChMxVEMgVHJ1c3RDZW50ZXIgZm9yIFNlY3Vy +aXR5IGluIERhdGEgTmV0d29ya3MgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3Mg +MyBDQTEpMCcGCSqGSIb3DQEJARYaY2VydGlmaWNhdGVAdHJ1c3RjZW50ZXIuZGUwgZ8wDQYJKoZI +hvcNAQEBBQADgY0AMIGJAoGBALa0wTUFLg2N7KBAahwOJ6ZQkmtQGwfeLud2zODa/ISoXoxjaitN +2U4CdhHBC/KNecoAtvGwDtf7pBc9r6tpepYnv68zoZoqWarEtTcI8hKlMbZD9TKWcSgoq40oht+7 +7uMMfTDWw1Krj10nnGvAo+cFa1dJRLNu6mTP0o56UHd3AgMBAAGjazBpMA8GA1UdEwEB/wQFMAMB +Af8wDgYDVR0PAQH/BAQDAgGGMDMGCWCGSAGG+EIBCAQmFiRodHRwOi8vd3d3LnRydXN0Y2VudGVy +LmRlL2d1aWRlbGluZXMwEQYJYIZIAYb4QgEBBAQDAgAHMA0GCSqGSIb3DQEBBAUAA4GBABY9xs3B +u4VxhUafPiCPUSiZ7C1FIWMjWwS7TJC4iJIETb19AaM/9uzO8d7+feXhPrvGq14L3T2WxMup1Pkm +5gZOngylerpuw3yCGdHHsbHD2w2Om0B8NwvxXej9H5CIpQ5ON2QhqE6NtJ/x3kit1VYYUimLRzQS +CdS7kjXvD9s0 +-----END CERTIFICATE----- + +Certum Root CA +============== +-----BEGIN CERTIFICATE----- +MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK +ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla +Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u +by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x +wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL +kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ +89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K +Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P +NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq +hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+ +GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg +GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/ +0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS +qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw== +-----END CERTIFICATE----- + +Comodo AAA Services root +======================== +-----BEGIN CERTIFICATE----- +MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw +MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl +c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV +BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG +C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs +i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW +Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH +Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK +Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f +BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl +cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz +LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm +7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz +Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z +8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C +12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== +-----END CERTIFICATE----- + +Comodo Secure Services root +=========================== +-----BEGIN CERTIFICATE----- +MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw +MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu +Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi +BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP +9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc +rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC +oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V +p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E +FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w +gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj +YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm +aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm +4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj +Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL +DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw +pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H +RR3B7Hzs/Sk= +-----END CERTIFICATE----- + +Comodo Trusted Services root +============================ +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw +MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h +bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw +IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7 +3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y +/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6 +juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS +ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud +DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp +ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl +cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw +uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32 +pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA +BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l +R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O +9y5Xt5hwXsjEeLBi +-----END CERTIFICATE----- + +IPS Chained CAs root +==================== +-----BEGIN CERTIFICATE----- +MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARwxCzAJBgNVBAYTAkVTMRIwEAYDVQQI +EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1 +Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg +Qi02MDkyOTQ1MjEzMDEGA1UECxMqSVBTIENBIENoYWluZWQgQ0FzIENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MTMwMQYDVQQDEypJUFMgQ0EgQ2hhaW5lZCBDQXMgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlwcy5lczAeFw0wMTEyMjkwMDUzNThaFw0yNTEy +MjcwMDUzNThaMIIBHDELMAkGA1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UEBxMJ +QmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJuZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBzLmwu +MSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5JLkYuICBCLTYwOTI5NDUyMTMwMQYDVQQLEypJ +UFMgQ0EgQ2hhaW5lZCBDQXMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxMzAxBgNVBAMTKklQUyBD +QSBDaGFpbmVkIENBcyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEeMBwGCSqGSIb3DQEJARYPaXBz +QG1haWwuaXBzLmVzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcVpJJspQgvJhPUOtopKdJ +C7/SMejHT8KGC/po/UNaivNgkjWZOLtNA1IhW/A3mTXhQSCBhYEFcYGdtJUZqV92NC5jNzVXjrQf +Qj8VXOF6wV8TGDIxya2+o8eDZh65nAQTy2nBBt4wBrszo7Uf8I9vzv+W6FS+ZoCua9tBhDaiPQID +AQABo4IEQzCCBD8wHQYDVR0OBBYEFKGtMbH5PuEXpsirNPxShwkeYlJBMIIBTgYDVR0jBIIBRTCC +AUGAFKGtMbH5PuEXpsirNPxShwkeYlJBoYIBJKSCASAwggEcMQswCQYDVQQGEwJFUzESMBAGA1UE +CBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmExLjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBw +dWJsaXNoaW5nIFNlcnZpY2VzIHMubC4xKzApBgNVBAoUImlwc0BtYWlsLmlwcy5lcyBDLkkuRi4g +IEItNjA5Mjk0NTIxMzAxBgNVBAsTKklQUyBDQSBDaGFpbmVkIENBcyBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTEzMDEGA1UEAxMqSVBTIENBIENoYWluZWQgQ0FzIENlcnRpZmljYXRpb24gQXV0aG9y +aXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNV +HQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUF +BwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGC +NwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1Ud +EgQTMBGBD2lwc0BtYWlsLmlwcy5lczBCBglghkgBhvhCAQ0ENRYzQ2hhaW5lZCBDQSBDZXJ0aWZp +Y2F0ZSBpc3N1ZWQgYnkgaHR0cDovL3d3dy5pcHMuZXMvMCkGCWCGSAGG+EIBAgQcFhpodHRwOi8v +d3d3Lmlwcy5lcy9pcHMyMDAyLzA3BglghkgBhvhCAQQEKhYoaHR0cDovL3d3dy5pcHMuZXMvaXBz +MjAwMi9pcHMyMDAyQ0FDLmNybDA8BglghkgBhvhCAQMELxYtaHR0cDovL3d3dy5pcHMuZXMvaXBz +MjAwMi9yZXZvY2F0aW9uQ0FDLmh0bWw/MDkGCWCGSAGG+EIBBwQsFipodHRwOi8vd3d3Lmlwcy5l +cy9pcHMyMDAyL3JlbmV3YWxDQUMuaHRtbD8wNwYJYIZIAYb4QgEIBCoWKGh0dHA6Ly93d3cuaXBz +LmVzL2lwczIwMDIvcG9saWN5Q0FDLmh0bWwwbQYDVR0fBGYwZDAuoCygKoYoaHR0cDovL3d3dy5p +cHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0FDLmNybDAyoDCgLoYsaHR0cDovL3d3d2JhY2suaXBzLmVz +L2lwczIwMDIvaXBzMjAwMkNBQy5jcmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRw +Oi8vb2NzcC5pcHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAERyMJ1WWKJBGyi3leGmGpVfp3hAK+/b +lkr8THFj2XOVvQLiogbHvpcqk4A0hgP63Ng9HgfNHnNDJGD1HWHc3JagvPsd4+cSACczAsDAK1M9 +2GsDgaPb1pOVIO/Tln4mkImcJpvNb2ar7QMiRDjMWb2f2/YHogF/JsRj9SVCXmK9 +-----END CERTIFICATE----- + +IPS CLASE1 root +=============== +-----BEGIN CERTIFICATE----- +MIIH6jCCB1OgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARIxCzAJBgNVBAYTAkVTMRIwEAYDVQQI +EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1 +Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg +Qi02MDkyOTQ1MjEuMCwGA1UECxMlSVBTIENBIENMQVNFMSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 +eTEuMCwGA1UEAxMlSVBTIENBIENMQVNFMSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEeMBwGCSqG +SIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTAxMTIyOTAwNTkzOFoXDTI1MTIyNzAwNTkzOFow +ggESMQswCQYDVQQGEwJFUzESMBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmEx +LjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMubC4xKzApBgNVBAoU +Imlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0NTIxLjAsBgNVBAsTJUlQUyBDQSBDTEFT +RTEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLjAsBgNVBAMTJUlQUyBDQSBDTEFTRTEgQ2VydGlm +aWNhdGlvbiBBdXRob3JpdHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlwcy5lczCBnzANBgkq +hkiG9w0BAQEFAAOBjQAwgYkCgYEA4FEnpwvdr9G5Q1uCN0VWcu+atsIS7ywSzHb5BlmvXSHU0lq4 +oNTzav3KaY1mSPd05u42veiWkXWmcSjK5yISMmmwPh5r9FBSYmL9Yzt9fuzuOOpi9GyocY3h6YvJ +P8a1zZRCb92CRTzo3wno7wpVqVZHYUxJZHMQKD/Kvwn/xi8CAwEAAaOCBEowggRGMB0GA1UdDgQW +BBTrsxl588GlHKzcuh9morKbadB4CDCCAUQGA1UdIwSCATswggE3gBTrsxl588GlHKzcuh9morKb +adB4CKGCARqkggEWMIIBEjELMAkGA1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UE +BxMJQmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJuZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBz +LmwuMSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5JLkYuICBCLTYwOTI5NDUyMS4wLAYDVQQL +EyVJUFMgQ0EgQ0xBU0UxIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVJUFMgQ0Eg +Q0xBU0UxIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5p +cHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMB +BggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYB +BAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0R +BBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBBBglghkgB +hvhCAQ0ENBYyQ0xBU0UxIENBIENlcnRpZmljYXRlIGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5l +cy8wKQYJYIZIAYb4QgECBBwWGmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMDoGCWCGSAGG+EIB +BAQtFitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJDTEFTRTEuY3JsMD8GCWCGSAGG ++EIBAwQyFjBodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jldm9jYXRpb25DTEFTRTEuaHRtbD8w +PAYJYIZIAYb4QgEHBC8WLWh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbENMQVNFMS5o +dG1sPzA6BglghkgBhvhCAQgELRYraHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9wb2xpY3lDTEFT +RTEuaHRtbDBzBgNVHR8EbDBqMDGgL6AthitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIw +MDJDTEFTRTEuY3JsMDWgM6Axhi9odHRwOi8vd3d3YmFjay5pcHMuZXMvaXBzMjAwMi9pcHMyMDAy +Q0xBU0UxLmNybDAvBggrBgEFBQcBAQQjMCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9vY3NwLmlwcy5l +cy8wDQYJKoZIhvcNAQEFBQADgYEAK9Dr/drIyllq2tPMMi7JVBuKYn4VLenZMdMu9Ccj/1urxUq2 +ckCuU3T0vAW0xtnIyXf7t/k0f3gA+Nak5FI/LEpjV4F1Wo7ojPsCwJTGKbqz3Bzosq/SLmJbGqmO +DszFV0VRFOlOHIilkfSj945RyKm+hjM+5i9Ibq9UkE6tsSU= +-----END CERTIFICATE----- + +IPS CLASE3 root +=============== +-----BEGIN CERTIFICATE----- +MIIH6jCCB1OgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARIxCzAJBgNVBAYTAkVTMRIwEAYDVQQI +EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1 +Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg +Qi02MDkyOTQ1MjEuMCwGA1UECxMlSVBTIENBIENMQVNFMyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 +eTEuMCwGA1UEAxMlSVBTIENBIENMQVNFMyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEeMBwGCSqG +SIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTAxMTIyOTAxMDE0NFoXDTI1MTIyNzAxMDE0NFow +ggESMQswCQYDVQQGEwJFUzESMBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmEx +LjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMubC4xKzApBgNVBAoU +Imlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0NTIxLjAsBgNVBAsTJUlQUyBDQSBDTEFT +RTMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLjAsBgNVBAMTJUlQUyBDQSBDTEFTRTMgQ2VydGlm +aWNhdGlvbiBBdXRob3JpdHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlwcy5lczCBnzANBgkq +hkiG9w0BAQEFAAOBjQAwgYkCgYEAqxf+DrDGaBtT8FK+n/ra+osTBLsBjzLZH49NzjaY2uQARIwo +2BNEKqRrThckQpzTiKRBgtYj+4vJhuW5qYIF3PHeH+AMmVWY8jjsbJ0gA8DvqqPGZARRLXgNo9Ko +OtYkTOmWehisEyMiG3zoMRGzXwmqMHBxRiVrSXGAK5UBsh8CAwEAAaOCBEowggRGMB0GA1UdDgQW +BBS4k/8uy9wsjqLnev42USGjmFsMNDCCAUQGA1UdIwSCATswggE3gBS4k/8uy9wsjqLnev42USGj +mFsMNKGCARqkggEWMIIBEjELMAkGA1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UE +BxMJQmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJuZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBz +LmwuMSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5JLkYuICBCLTYwOTI5NDUyMS4wLAYDVQQL +EyVJUFMgQ0EgQ0xBU0UzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVJUFMgQ0Eg +Q0xBU0UzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5p +cHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMB +BggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYB +BAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0R +BBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBBBglghkgB +hvhCAQ0ENBYyQ0xBU0UzIENBIENlcnRpZmljYXRlIGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5l +cy8wKQYJYIZIAYb4QgECBBwWGmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMDoGCWCGSAGG+EIB +BAQtFitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJDTEFTRTMuY3JsMD8GCWCGSAGG ++EIBAwQyFjBodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jldm9jYXRpb25DTEFTRTMuaHRtbD8w +PAYJYIZIAYb4QgEHBC8WLWh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbENMQVNFMy5o +dG1sPzA6BglghkgBhvhCAQgELRYraHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9wb2xpY3lDTEFT +RTMuaHRtbDBzBgNVHR8EbDBqMDGgL6AthitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIw +MDJDTEFTRTMuY3JsMDWgM6Axhi9odHRwOi8vd3d3YmFjay5pcHMuZXMvaXBzMjAwMi9pcHMyMDAy +Q0xBU0UzLmNybDAvBggrBgEFBQcBAQQjMCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9vY3NwLmlwcy5l +cy8wDQYJKoZIhvcNAQEFBQADgYEAF2VcmZVDAyevJuXr0LMXI/dDqsfwfewPxqmurpYPdikc4gYt +fibFPPqhwYHOU7BC0ZdXGhd+pFFhxu7pXu8Fuuu9D6eSb9ijBmgpjnn1/7/5p6/ksc7C0YBCJwUE +NPjDfxZ4IwwHJPJGR607VNCv1TGyr33I6unUVtkOE7LFRVA= +-----END CERTIFICATE----- + +IPS CLASEA1 root +================ +-----BEGIN CERTIFICATE----- +MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQI +EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1 +Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg +Qi02MDkyOTQ1MjEvMC0GA1UECxMmSVBTIENBIENMQVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUExIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJ +KoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwHhcNMDExMjI5MDEwNTMyWhcNMjUxMjI3MDEwNTMy +WjCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9u +YTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UE +ChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0GA1UECxMmSVBTIENBIENM +QVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUExIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwgZ8w +DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALsw19zQVL01Tp/FTILq0VA8R5j8m2mdd81u4D/u6zJf +X5/S0HnllXNEITLgCtud186Nq1KLK3jgm1t99P1tCeWu4WwdByOgF9H5fahGRpEiqLJpxq339fWU +oTCUvQDMRH/uxJ7JweaPCjbB/SQ9AaD1e+J8eGZDi09Z8pvZ+kmzAgMBAAGjggRTMIIETzAdBgNV +HQ4EFgQUZyaW56G/2LUDnf473P7yiuYV3TAwggFGBgNVHSMEggE9MIIBOYAUZyaW56G/2LUDnf47 +3P7yiuYV3TChggEcpIIBGDCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQ +BgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2Vydmlj +ZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0G +A1UECxMmSVBTIENBIENMQVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMTJklQ +UyBDQSBDTEFTRUExIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNA +bWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsG +AQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIB +FQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcw +GgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBC +BglghkgBhvhCAQ0ENRYzQ0xBU0VBMSBDQSBDZXJ0aWZpY2F0ZSBpc3N1ZWQgYnkgaHR0cDovL3d3 +dy5pcHMuZXMvMCkGCWCGSAGG+EIBAgQcFhpodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyLzA7Bglg +hkgBhvhCAQQELhYsaHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xBU0VBMS5jcmww +QAYJYIZIAYb4QgEDBDMWMWh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmV2b2NhdGlvbkNMQVNF +QTEuaHRtbD8wPQYJYIZIAYb4QgEHBDAWLmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdh +bENMQVNFQTEuaHRtbD8wOwYJYIZIAYb4QgEIBC4WLGh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIv +cG9saWN5Q0xBU0VBMS5odG1sMHUGA1UdHwRuMGwwMqAwoC6GLGh0dHA6Ly93d3cuaXBzLmVzL2lw +czIwMDIvaXBzMjAwMkNMQVNFQTEuY3JsMDagNKAyhjBodHRwOi8vd3d3YmFjay5pcHMuZXMvaXBz +MjAwMi9pcHMyMDAyQ0xBU0VBMS5jcmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRw +Oi8vb2NzcC5pcHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAH66iqyAAIQVCtWYUQxkxZwCWINmyq0e +B81+atqAB98DNEock8RLWCA1NnHtogo1EqWmZaeFaQoO42Hu6r4okzPV7Oi+xNtff6j5YzHIa5bi +KcJboOeXNp13XjFr/tOn2yrb25aLH2betgPAK7N41lUH5Y85UN4HI3LmvSAUS7SG +-----END CERTIFICATE----- + +IPS CLASEA3 root +================ +-----BEGIN CERTIFICATE----- +MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQI +EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1 +Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg +Qi02MDkyOTQ1MjEvMC0GA1UECxMmSVBTIENBIENMQVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUEzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJ +KoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwHhcNMDExMjI5MDEwNzUwWhcNMjUxMjI3MDEwNzUw +WjCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9u +YTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UE +ChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0GA1UECxMmSVBTIENBIENM +QVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUEzIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwgZ8w +DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAO6AAPYaZC6tasiDsYun7o/ZttvNG7uGBiJ2MwwSbUhW +YdLcgiViL5/SaTBlA0IjWLxH3GvWdV0XPOH/8lhneaDBgbHUVqLyjRGZ/fZ98cfEXgIqmuJKtROK +AP2Md4bm15T1IHUuDky/dMQ/gT6DtKM4Ninn6Cr1jIhBqoCm42zvAgMBAAGjggRTMIIETzAdBgNV +HQ4EFgQUHp9XUEe2YZM50yz82l09BXW3mQIwggFGBgNVHSMEggE9MIIBOYAUHp9XUEe2YZM50yz8 +2l09BXW3mQKhggEcpIIBGDCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQ +BgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2Vydmlj +ZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0G +A1UECxMmSVBTIENBIENMQVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMTJklQ +UyBDQSBDTEFTRUEzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNA +bWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsG +AQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIB +FQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcw +GgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBC +BglghkgBhvhCAQ0ENRYzQ0xBU0VBMyBDQSBDZXJ0aWZpY2F0ZSBpc3N1ZWQgYnkgaHR0cDovL3d3 +dy5pcHMuZXMvMCkGCWCGSAGG+EIBAgQcFhpodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyLzA7Bglg +hkgBhvhCAQQELhYsaHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xBU0VBMy5jcmww +QAYJYIZIAYb4QgEDBDMWMWh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmV2b2NhdGlvbkNMQVNF +QTMuaHRtbD8wPQYJYIZIAYb4QgEHBDAWLmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdh +bENMQVNFQTMuaHRtbD8wOwYJYIZIAYb4QgEIBC4WLGh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIv +cG9saWN5Q0xBU0VBMy5odG1sMHUGA1UdHwRuMGwwMqAwoC6GLGh0dHA6Ly93d3cuaXBzLmVzL2lw +czIwMDIvaXBzMjAwMkNMQVNFQTMuY3JsMDagNKAyhjBodHRwOi8vd3d3YmFjay5pcHMuZXMvaXBz +MjAwMi9pcHMyMDAyQ0xBU0VBMy5jcmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRw +Oi8vb2NzcC5pcHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAEo9IEca2on0eisxeewBwMwB9dbB/MjD +81ACUZBYKp/nNQlbMAqBACVHr9QPDp5gJqiVp4MI3y2s6Q73nMify5NF8bpqxmdRSmlPa/59Cy9S +KcJQrSRE7SOzSMtEQMEDlQwKeAYSAfWRMS1Jjbs/RU4s4OjNtckUFQzjB4ObJnXv +-----END CERTIFICATE----- + +IPS Servidores root +=================== +-----BEGIN CERTIFICATE----- +MIICtzCCAiACAQAwDQYJKoZIhvcNAQEEBQAwgaMxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCQVJD +RUxPTkExEjAQBgNVBAcTCUJBUkNFTE9OQTEZMBcGA1UEChMQSVBTIFNlZ3VyaWRhZCBDQTEYMBYG +A1UECxMPQ2VydGlmaWNhY2lvbmVzMRcwFQYDVQQDEw5JUFMgU0VSVklET1JFUzEeMBwGCSqGSIb3 +DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTk4MDEwMTIzMjEwN1oXDTA5MTIyOTIzMjEwN1owgaMx +CzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCQVJDRUxPTkExEjAQBgNVBAcTCUJBUkNFTE9OQTEZMBcG +A1UEChMQSVBTIFNlZ3VyaWRhZCBDQTEYMBYGA1UECxMPQ2VydGlmaWNhY2lvbmVzMRcwFQYDVQQD +Ew5JUFMgU0VSVklET1JFUzEeMBwGCSqGSIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMIGfMA0GCSqG +SIb3DQEBAQUAA4GNADCBiQKBgQCsT1J0nznqjtwlxLyYXZhkJAk8IbPMGbWOlI6H0fg3PqHILVik +gDVboXVsHUUMH2Fjal5vmwpMwci4YSM1gf/+rHhwLWjhOgeYlQJU3c0jt4BT18g3RXIGJBK6E2Eh +im51KODFDzT9NthFf+G4Nu+z4cYgjui0OLzhPvYR3oydAQIDAQABMA0GCSqGSIb3DQEBBAUAA4GB +ACzzw3lYJN7GO9HgQmm47mSzPWIBubOE3yN93ZjPEKn+ANgilgUTB1RXxafey9m4iEL2mdsUdx+2 +/iU94aI+A6mB0i1sR/WWRowiq8jMDQ6XXotBtDvECgZAHd1G9AHduoIuPD14cJ58GNCr+Lh3B0Zx +8coLY1xq+XKU1QFPoNtC +-----END CERTIFICATE----- + +IPS Timestamping root +===================== +-----BEGIN CERTIFICATE----- +MIIIODCCB6GgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCAR4xCzAJBgNVBAYTAkVTMRIwEAYDVQQI +EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1 +Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg +Qi02MDkyOTQ1MjE0MDIGA1UECxMrSVBTIENBIFRpbWVzdGFtcGluZyBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTE0MDIGA1UEAxMrSVBTIENBIFRpbWVzdGFtcGluZyBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eTEeMBwGCSqGSIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTAxMTIyOTAxMTAxOFoXDTI1 +MTIyNzAxMTAxOFowggEeMQswCQYDVQQGEwJFUzESMBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQH +EwlCYXJjZWxvbmExLjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMu +bC4xKzApBgNVBAoUImlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0NTIxNDAyBgNVBAsT +K0lQUyBDQSBUaW1lc3RhbXBpbmcgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxNDAyBgNVBAMTK0lQ +UyBDQSBUaW1lc3RhbXBpbmcgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHjAcBgkqhkiG9w0BCQEW +D2lwc0BtYWlsLmlwcy5lczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvLjuVqWajOY2ycJi +oGaBjRrVetJznw6EZLqVtJCneK/K/lRhW86yIFcBrkSSQxA4Efdo/BdApWgnMjvEp+ZCccWZ73b/ +K5Uk9UmSGGjKALWkWi9uy9YbLA1UZ2t6KaFYq6JaANZbuxjC3/YeE1Z2m6Vo4pjOxgOKNNtMg0Gm +qaMCAwEAAaOCBIAwggR8MB0GA1UdDgQWBBSL0BBQCYHynQnVDmB4AyKiP8jKZjCCAVAGA1UdIwSC +AUcwggFDgBSL0BBQCYHynQnVDmB4AyKiP8jKZqGCASakggEiMIIBHjELMAkGA1UEBhMCRVMxEjAQ +BgNVBAgTCUJhcmNlbG9uYTESMBAGA1UEBxMJQmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJu +ZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBzLmwuMSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5J +LkYuICBCLTYwOTI5NDUyMTQwMgYDVQQLEytJUFMgQ0EgVGltZXN0YW1waW5nIENlcnRpZmljYXRp +b24gQXV0aG9yaXR5MTQwMgYDVQQDEytJUFMgQ0EgVGltZXN0YW1waW5nIENlcnRpZmljYXRpb24g +QXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB +/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMG +CCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYK +KwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVz +MBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBHBglghkgBhvhCAQ0EOhY4VGltZXN0YW1waW5n +IENBIENlcnRpZmljYXRlIGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5lcy8wKQYJYIZIAYb4QgEC +BBwWGmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMEAGCWCGSAGG+EIBBAQzFjFodHRwOi8vd3d3 +Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJUaW1lc3RhbXBpbmcuY3JsMEUGCWCGSAGG+EIBAwQ4FjZo +dHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jldm9jYXRpb25UaW1lc3RhbXBpbmcuaHRtbD8wQgYJ +YIZIAYb4QgEHBDUWM2h0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbFRpbWVzdGFtcGlu +Zy5odG1sPzBABglghkgBhvhCAQgEMxYxaHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9wb2xpY3lU +aW1lc3RhbXBpbmcuaHRtbDB/BgNVHR8EeDB2MDegNaAzhjFodHRwOi8vd3d3Lmlwcy5lcy9pcHMy +MDAyL2lwczIwMDJUaW1lc3RhbXBpbmcuY3JsMDugOaA3hjVodHRwOi8vd3d3YmFjay5pcHMuZXMv +aXBzMjAwMi9pcHMyMDAyVGltZXN0YW1waW5nLmNybDAvBggrBgEFBQcBAQQjMCEwHwYIKwYBBQUH +MAGGE2h0dHA6Ly9vY3NwLmlwcy5lcy8wDQYJKoZIhvcNAQEFBQADgYEAZbrBzAAalZHK6Ww6vzoe +FAh8+4Pua2JR0zORtWB5fgTYXXk36MNbsMRnLWhasl8OCvrNPzpFoeo2zyYepxEoxZSPhExTCMWT +s/zif/WN87GphV+I3pGW7hdbrqXqcGV4LCFkAZXOzkw+UPS2Wctjjba9GNSHSl/c7+lW8AoM6HU= +-----END CERTIFICATE----- + +QuoVadis Root CA +================ +-----BEGIN CERTIFICATE----- +MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE +ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 +eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz +MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp +cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD +EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk +J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL +F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL +YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen +AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w +PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y +ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7 +MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj +YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs +ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh +Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW +Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu +BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw +FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6 +tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo +fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul +LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x +gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi +5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi +5nrQNiOKSnQ2+Q== +-----END CERTIFICATE----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT +EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx +ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6 +XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk +lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB +lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy +lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt +66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn +wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh +D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy +BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie +J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud +DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU +a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT +ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv +Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3 +UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm +VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK ++JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW +IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1 +WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X +f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II +4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8 +VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT +EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx +OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg +DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij +KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K +DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv +BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp +p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8 +nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX +MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM +Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz +uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT +BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj +YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 +aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB +BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD +VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4 +ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE +AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV +qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s +hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z +POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2 +Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp +8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC +bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu +g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p +vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr +qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto= +-----END CERTIFICATE----- + +Security Communication Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw +8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM +DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX +5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd +DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2 +JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g +0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a +mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ +s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ +6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi +FL39vmwLAw== +-----END CERTIFICATE----- + +Sonera Class 1 Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIDIDCCAgigAwIBAgIBJDANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG +U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MxIENBMB4XDTAxMDQwNjEwNDkxM1oXDTIxMDQw +NjEwNDkxM1owOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh +IENsYXNzMSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALWJHytPZwp5/8Ue+H88 +7dF+2rDNbS82rDTG29lkFwhjMDMiikzujrsPDUJVyZ0upe/3p4zDq7mXy47vPxVnqIJyY1MPQYx9 +EJUkoVqlBvqSV536pQHydekfvFYmUk54GWVYVQNYwBSujHxVX3BbdyMGNpfzJLWaRpXk3w0LBUXl +0fIdgrvGE+D+qnr9aTCU89JFhfzyMlsy3uhsXR/LpCJ0sICOXZT3BgBLqdReLjVQCfOAl/QMF645 +2F/NM8EcyonCIvdFEu1eEpOdY6uCLrnrQkFEy0oaAIINnvmLVz5MxxftLItyM19yejhW1ebZrgUa +HXVFsculJRwSVzb9IjcCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQIR+IMi/ZT +iFIwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQCLGrLJXWG04bkruVPRsoWdd44W7hE9 +28Jj2VuXZfsSZ9gqXLar5V7DtxYvyOirHYr9qxp81V9jz9yw3Xe5qObSIjiHBxTZ/75Wtf0HDjxV +yhbMp6Z3N/vbXB9OWQaHowND9Rart4S9Tu+fMTfwRvFAttEMpWT4Y14h21VOTzF2nBBhjrZTOqMR +vq9tfB69ri3iDGnHhVNoomG6xT60eVR4ngrHAr5i0RGCS2UvkVrCqIexVmiUefkl98HVrhq4uz2P +qYo4Ffdz0Fpg0YCw8NzVUM1O7pJIae2yIx4wzMiUyLb1O4Z/P6Yun/Y+LLWSlj7fLJOK/4GMDw9Z +IRlXvVWa +-----END CERTIFICATE----- + +Sonera Class 2 Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG +U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw +NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh +IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3 +/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT +dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG +f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P +tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH +nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT +XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt +0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI +cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph +Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx +EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH +llpwrN9M +-----END CERTIFICATE----- + +Staat der Nederlanden Root CA +============================= +-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE +ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g +Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w +HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh +bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt +vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P +jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca +C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth +vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6 +22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV +HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v +dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN +BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR +EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw +MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y +nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR +iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw== +-----END CERTIFICATE----- + +TDC Internet Root CA +==================== +-----BEGIN CERTIFICATE----- +MIIEKzCCAxOgAwIBAgIEOsylTDANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJESzEVMBMGA1UE +ChMMVERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTAeFw0wMTA0MDUx +NjMzMTdaFw0yMTA0MDUxNzAzMTdaMEMxCzAJBgNVBAYTAkRLMRUwEwYDVQQKEwxUREMgSW50ZXJu +ZXQxHTAbBgNVBAsTFFREQyBJbnRlcm5ldCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAxLhAvJHVYx/XmaCLDEAedLdInUaMArLgJF/wGROnN4NrXceO+YQwzho7+vvOi20j +xsNuZp+Jpd/gQlBn+h9sHvTQBda/ytZO5GhgbEaqHF1j4QeGDmUApy6mcca8uYGoOn0a0vnRrEvL +znWv3Hv6gXPU/Lq9QYjUdLP5Xjg6PEOo0pVOd20TDJ2PeAG3WiAfAzc14izbSysseLlJ28TQx5yc +5IogCSEWVmb/Bexb4/DPqyQkXsN/cHoSxNK1EKC2IeGNeGlVRGn1ypYcNIUXJXfi9i8nmHj9eQY6 +otZaQ8H/7AQ77hPv01ha/5Lr7K7a8jcDR0G2l8ktCkEiu7vmpwIDAQABo4IBJTCCASEwEQYJYIZI +AYb4QgEBBAQDAgAHMGUGA1UdHwReMFwwWqBYoFakVDBSMQswCQYDVQQGEwJESzEVMBMGA1UEChMM +VERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTENMAsGA1UEAxMEQ1JM +MTArBgNVHRAEJDAigA8yMDAxMDQwNTE2MzMxN1qBDzIwMjEwNDA1MTcwMzE3WjALBgNVHQ8EBAMC +AQYwHwYDVR0jBBgwFoAUbGQBx/2FbazI2p5QCIUItTxWqFAwHQYDVR0OBBYEFGxkAcf9hW2syNqe +UAiFCLU8VqhQMAwGA1UdEwQFMAMBAf8wHQYJKoZIhvZ9B0EABBAwDhsIVjUuMDo0LjADAgSQMA0G +CSqGSIb3DQEBBQUAA4IBAQBOQ8zR3R0QGwZ/t6T609lN+yOfI1Rb5osvBCiLtSdtiaHsmGnc540m +gwV5dOy0uaOXwTUA/RXaOYE6lTGQ3pfphqiZdwzlWqCE/xIWrG64jcN7ksKsLtB9KOy282A4aW8+ +2ARVPp7MVdK6/rtHBNcK2RYKNCn1WBPVT8+PVkuzHu7TmHnaCB4Mb7j4Fifvwm899qNLPg7kbWzb +O0ESm70NRyN/PErQr8Cv9u8btRXE64PECV90i9kR+8JWsTz4cMo0jUNAE4z9mQNUecYu6oah9jrU +Cbz0vGbMPVjQV0kK7iXiQe4T+Zs4NNEA9X7nlB38aQNiuJkFBT1reBK9sG9l +-----END CERTIFICATE----- + +TDC OCES Root CA +================ +-----BEGIN CERTIFICATE----- +MIIFGTCCBAGgAwIBAgIEPki9xDANBgkqhkiG9w0BAQUFADAxMQswCQYDVQQGEwJESzEMMAoGA1UE +ChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTAeFw0wMzAyMTEwODM5MzBaFw0zNzAyMTEwOTA5 +MzBaMDExCzAJBgNVBAYTAkRLMQwwCgYDVQQKEwNUREMxFDASBgNVBAMTC1REQyBPQ0VTIENBMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArGL2YSCyz8DGhdfjeebM7fI5kqSXLmSjhFuH +nEz9pPPEXyG9VhDr2y5h7JNp46PMvZnDBfwGuMo2HP6QjklMxFaaL1a8z3sM8W9Hpg1DTeLpHTk0 +zY0s2RKY+ePhwUp8hjjEqcRhiNJerxomTdXkoCJHhNlktxmW/OwZ5LKXJk5KTMuPJItUGBxIYXvV +iGjaXbXqzRowwYCDdlCqT9HU3Tjw7xb04QxQBr/q+3pJoSgrHPb8FTKjdGqPqcNiKXEx5TukYBde +dObaE+3pHx8b0bJoc8YQNHVGEBDjkAB2QMuLt0MJIf+rTpPGWOmlgtt3xDqZsXKVSQTwtyv6e1mO +3QIDAQABo4ICNzCCAjMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwgewGA1UdIASB +5DCB4TCB3gYIKoFQgSkBAQEwgdEwLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2VydGlmaWthdC5k +ay9yZXBvc2l0b3J5MIGdBggrBgEFBQcCAjCBkDAKFgNUREMwAwIBARqBgUNlcnRpZmlrYXRlciBm +cmEgZGVubmUgQ0EgdWRzdGVkZXMgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEuMS4xLiBDZXJ0aWZp +Y2F0ZXMgZnJvbSB0aGlzIENBIGFyZSBpc3N1ZWQgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEuMS4x +LjARBglghkgBhvhCAQEEBAMCAAcwgYEGA1UdHwR6MHgwSKBGoESkQjBAMQswCQYDVQQGEwJESzEM +MAoGA1UEChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTENMAsGA1UEAxMEQ1JMMTAsoCqgKIYm +aHR0cDovL2NybC5vY2VzLmNlcnRpZmlrYXQuZGsvb2Nlcy5jcmwwKwYDVR0QBCQwIoAPMjAwMzAy +MTEwODM5MzBagQ8yMDM3MDIxMTA5MDkzMFowHwYDVR0jBBgwFoAUYLWF7FZkfhIZJ2cdUBVLc647 ++RIwHQYDVR0OBBYEFGC1hexWZH4SGSdnHVAVS3OuO/kSMB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6 +NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEACromJkbTc6gJ82sLMJn9iuFXehHTuJTXCRBuo7E4 +A9G28kNBKWKnctj7fAXmMXAnVBhOinxO5dHKjHiIzxvTkIvmI/gLDjNDfZziChmPyQE+dF10yYsc +A+UYyAFMP8uXBV2YcaaYb7Z8vTd/vuGTJW1v8AqtFxjhA7wHKcitJuj4YfD9IQl+mo6paH1IYnK9 +AOoBmbgGglGBTvH1tJFUuSN6AJqfXY3gPGS5GhKSKseCRHI53OI8xthV9RVOyAUO28bQYqbsFbS1 +AoLbrIyigfCbmTH1ICCoiGEKB5+U/NDXG8wuF/MEJ3Zn61SD/aSQfgY9BKNDLdr8C2LqL19iUw== +-----END CERTIFICATE----- + +UTN DATACorp SGC Root CA +======================== +-----BEGIN CERTIFICATE----- +MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ +BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa +MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w +HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy +dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys +raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo +wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA +9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv +33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud +DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9 +BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD +LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3 +DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft +Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0 +I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx +EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP +DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI +-----END CERTIFICATE----- + +UTN USERFirst Email Root CA +=========================== +-----BEGIN CERTIFICATE----- +MIIEojCCA4qgAwIBAgIQRL4Mi1AAJLQR0zYlJWfJiTANBgkqhkiG9w0BAQUFADCBrjELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xNjA0 +BgNVBAMTLVVUTi1VU0VSRmlyc3QtQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBFbWFpbDAeFw05 +OTA3MDkxNzI4NTBaFw0xOTA3MDkxNzM2NThaMIGuMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQx +FzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsx +ITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTE2MDQGA1UEAxMtVVROLVVTRVJGaXJz +dC1DbGllbnQgQXV0aGVudGljYXRpb24gYW5kIEVtYWlsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAsjmFpPJ9q0E7YkY3rs3BYHW8OWX5ShpHornMSMxqmNVNNRm5pELlzkniii8efNIx +B8dOtINknS4p1aJkxIW9hVE1eaROaJB7HHqkkqgX8pgV8pPMyaQylbsMTzC9mKALi+VuG6JG+ni8 +om+rWV6lL8/K2m2qL+usobNqqrcuZzWLeeEeaYji5kbNoKXqvgvOdjp6Dpvq/NonWz1zHyLmSGHG +TPNpsaguG7bUMSAsvIKKjqQOpdeJQ/wWWq8dcdcRWdq6hw2v+vPhwvCkxWeM1tZUOt4KpLoDd7Nl +yP0e03RiqhjKaJMeoYV+9Udly/hNVyh00jT/MLbu9mIwFIws6wIDAQABo4G5MIG2MAsGA1UdDwQE +AwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSJgmd9xJ0mcABLtFBIfN49rgRufTBYBgNV +HR8EUTBPME2gS6BJhkdodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLVVTRVJGaXJzdC1DbGll +bnRBdXRoZW50aWNhdGlvbmFuZEVtYWlsLmNybDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH +AwQwDQYJKoZIhvcNAQEFBQADggEBALFtYV2mGn98q0rkMPxTbyUkxsrt4jFcKw7u7mFVbwQ+zzne +xRtJlOTrIEy05p5QLnLZjfWqo7NK2lYcYJeA3IKirUq9iiv/Cwm0xtcgBEXkzYABurorbs6q15L+ +5K/r9CYdFip/bDCVNy8zEqx/3cfREYxRmLLQo5HQrfafnoOTHh1CuEava2bwm3/q4wMC5QJRwarV +NZ1yQAOJujEdxRBoUp7fooXFXAimeOZTT7Hot9MUnpOmw2TjrH5xzbyf6QMbzPvprDHBr3wVdAKZ +w7JHpsIyYdfHb0gkUSeh1YdV8nuPmD0Wnu51tvjQjvLzxq4oW6fw8zYX/MMF08oDSlQ= +-----END CERTIFICATE----- + +UTN USERFirst Hardware Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd +BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx +OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0 +eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz +ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI +wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd +tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8 +i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf +Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw +gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF +lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF +UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF +BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM +//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW +XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2 +lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn +iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67 +nfhmqA== +-----END CERTIFICATE----- + +UTN USERFirst Object Root CA +============================ +-----BEGIN CERTIFICATE----- +MIIEZjCCA06gAwIBAgIQRL4Mi1AAJLQR0zYt4LNfGzANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHTAb +BgNVBAMTFFVUTi1VU0VSRmlyc3QtT2JqZWN0MB4XDTk5MDcwOTE4MzEyMFoXDTE5MDcwOTE4NDAz +NlowgZUxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkx +HjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEhMB8GA1UECxMYaHR0cDovL3d3dy51c2Vy +dHJ1c3QuY29tMR0wGwYDVQQDExRVVE4tVVNFUkZpcnN0LU9iamVjdDCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAM6qgT+jo2F4qjEAVZURnicPHxzfOpuCaDDASmEd8S8O+r5596Uj71VR +loTN2+O5bj4x2AogZ8f02b+U60cEPgLOKqJdhwQJ9jCdGIqXsqoc/EHSoTbL+z2RuufZcDX65OeQ +w5ujm9M89RKZd7G3CeBo5hy485RjiGpq/gt2yb70IuRnuasaXnfBhQfdDWy/7gbHd2pBnqcP1/vu +lBe3/IW+pKvEHDHd17bR5PDv3xaPslKT16HUiaEHLr/hARJCHhrh2JU022R5KP+6LhHC5ehbkkj7 +RwvCbNqtMoNB86XlQXD9ZZBt+vpRxPm9lisZBCzTbafc8H9vg2XiaquHhnUCAwEAAaOBrzCBrDAL +BgNVHQ8EBAMCAcYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU2u1kdBScFDyr3ZmpvVsoTYs8 +ydgwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybC51c2VydHJ1c3QuY29tL1VUTi1VU0VSRmly +c3QtT2JqZWN0LmNybDApBgNVHSUEIjAgBggrBgEFBQcDAwYIKwYBBQUHAwgGCisGAQQBgjcKAwQw +DQYJKoZIhvcNAQEFBQADggEBAAgfUrE3RHjb/c652pWWmKpVZIC1WkDdIaXFwfNfLEzIR1pp6ujw +NTX00CXzyKakh0q9G7FzCL3Uw8q2NbtZhncxzaeAFK4T7/yxSPlrJSUtUbYsbUXBmMiKVl0+7kNO +PmsnjtA6S4ULX9Ptaqd1y9Fahy85dRNacrACgZ++8A+EVCBibGnU4U3GDZlDAQ0Slox4nb9QorFE +qmrPF3rPbw/U+CRVX/A0FklmPlBGyWNxODFiuGK581OtbLUrohKqGU8J2l7nk8aOFAj+8DCAGKCG +hU3IfdeLA/5u1fedFqySLKAj5ZyRUh+U3xeUc8OzwcFxBSAAeL0TUh2oPs0AH8g= +-----END CERTIFICATE----- + +Camerfirma Chambers of Commerce Root +==================================== +-----BEGIN CERTIFICATE----- +MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe +QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i +ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx +NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp +cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn +MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC +AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU +xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH +NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW +DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV +d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud +EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v +cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P +AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh +bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD +VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz +aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi +fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD +L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN +UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n +ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1 +erfutGWaIZDgqtCYvDi1czyL+Nw= +-----END CERTIFICATE----- + +Camerfirma Global Chambersign Root +================================== +-----BEGIN CERTIFICATE----- +MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe +QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i +ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx +NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt +YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg +MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw +ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J +1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O +by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl +6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c +8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/ +BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j +aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B +Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj +aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y +ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh +bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA +PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y +gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ +PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4 +IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes +t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A== +-----END CERTIFICATE----- + +NetLock Qualified (Class QA) Root +================================= +-----BEGIN CERTIFICATE----- +MIIG0TCCBbmgAwIBAgIBezANBgkqhkiG9w0BAQUFADCByTELMAkGA1UEBhMCSFUxETAPBgNVBAcT +CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV +BAsTEVRhbnVzaXR2YW55a2lhZG9rMUIwQAYDVQQDEzlOZXRMb2NrIE1pbm9zaXRldHQgS296amVn +eXpvaSAoQ2xhc3MgUUEpIFRhbnVzaXR2YW55a2lhZG8xHjAcBgkqhkiG9w0BCQEWD2luZm9AbmV0 +bG9jay5odTAeFw0wMzAzMzAwMTQ3MTFaFw0yMjEyMTUwMTQ3MTFaMIHJMQswCQYDVQQGEwJIVTER +MA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRvbnNhZ2kgS2Z0 +LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxQjBABgNVBAMTOU5ldExvY2sgTWlub3NpdGV0 +dCBLb3pqZWd5em9pIChDbGFzcyBRQSkgVGFudXNpdHZhbnlraWFkbzEeMBwGCSqGSIb3DQEJARYP +aW5mb0BuZXRsb2NrLmh1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx1Ilstg91IRV +CacbvWy5FPSKAtt2/GoqeKvld/Bu4IwjZ9ulZJm53QE+b+8tmjwi8F3JV6BVQX/yQ15YglMxZc4e +8ia6AFQer7C8HORSjKAyr7c3sVNnaHRnUPYtLmTeriZ539+Zhqurf4XsoPuAzPS4DB6TRWO53Lhb +m+1bOdRfYrCnjnxmOCyqsQhjF2d9zL2z8cM/z1A57dEZgxXbhxInlrfa6uWdvLrqOU+L73Sa58XQ +0uqGURzk/mQIKAR5BevKxXEOC++r6uwSEaEYBTJp0QwsGj0lmT+1fMptsK6ZmfoIYOcZwvK9UdPM +0wKswREMgM6r3JSda6M5UzrWhQIDAMV9o4ICwDCCArwwEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV +HQ8BAf8EBAMCAQYwggJ1BglghkgBhvhCAQ0EggJmFoICYkZJR1lFTEVNISBFemVuIHRhbnVzaXR2 +YW55IGEgTmV0TG9jayBLZnQuIE1pbm9zaXRldHQgU3pvbGdhbHRhdGFzaSBTemFiYWx5emF0YWJh +biBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBBIG1pbm9zaXRldHQgZWxla3Ryb25p +a3VzIGFsYWlyYXMgam9naGF0YXMgZXJ2ZW55ZXN1bGVzZW5laywgdmFsYW1pbnQgZWxmb2dhZGFz +YW5hayBmZWx0ZXRlbGUgYSBNaW5vc2l0ZXR0IFN6b2xnYWx0YXRhc2kgU3phYmFseXphdGJhbiwg +YXogQWx0YWxhbm9zIFN6ZXJ6b2Rlc2kgRmVsdGV0ZWxla2JlbiBlbG9pcnQgZWxsZW5vcnplc2kg +ZWxqYXJhcyBtZWd0ZXRlbGUuIEEgZG9rdW1lbnR1bW9rIG1lZ3RhbGFsaGF0b2sgYSBodHRwczov +L3d3dy5uZXRsb2NrLmh1L2RvY3MvIGNpbWVuIHZhZ3kga2VyaGV0b2sgYXogaW5mb0BuZXRsb2Nr +Lm5ldCBlLW1haWwgY2ltZW4uIFdBUk5JTkchIFRoZSBpc3N1YW5jZSBhbmQgdGhlIHVzZSBvZiB0 +aGlzIGNlcnRpZmljYXRlIGFyZSBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIFF1YWxpZmllZCBDUFMg +YXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3Lm5ldGxvY2suaHUvZG9jcy8gb3IgYnkgZS1tYWlsIGF0 +IGluZm9AbmV0bG9jay5uZXQwHQYDVR0OBBYEFAlqYhaSsFq7VQ7LdTI6MuWyIckoMA0GCSqGSIb3 +DQEBBQUAA4IBAQCRalCc23iBmz+LQuM7/KbD7kPgz/PigDVJRXYC4uMvBcXxKufAQTPGtpvQMznN +wNuhrWw3AkxYQTvyl5LGSKjN5Yo5iWH5Upfpvfb5lHTocQ68d4bDBsxafEp+NFAwLvt/MpqNPfMg +W/hqyobzMUwsWYACff44yTB1HLdV47yfuqhthCgFdbOLDcCRVCHnpgu0mfVRQdzNo0ci2ccBgcTc +R08m6h/t280NmPSjnLRzMkqWmf68f8glWPhY83ZmiVSkpj7EUFy6iRiCdUgh0k8T6GB+B3bbELVR +5qq5aKrN9p2QdRLqOBrKROi3macqaJVmlaut74nLYKkGEsaUR+ko +-----END CERTIFICATE----- + +NetLock Notary (Class A) Root +============================= +-----BEGIN CERTIFICATE----- +MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI +EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6 +dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j +ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX +DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH +EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD +VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz +cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM +D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ +z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC +/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7 +tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6 +4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG +A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC +Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv +bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu +IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn +LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0 +ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz +IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh +IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu +b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh +bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg +Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp +bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5 +ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP +ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB +CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr +KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM +8CgHrTwXZoi1/baI +-----END CERTIFICATE----- + +NetLock Business (Class B) Root +=============================== +-----BEGIN CERTIFICATE----- +MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMCSFUxETAPBgNVBAcT +CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV +BAsTEVRhbnVzaXR2YW55a2lhZG9rMTIwMAYDVQQDEylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikg +VGFudXNpdHZhbnlraWFkbzAeFw05OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQswCQYD +VQQGEwJIVTERMA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRv +bnNhZ2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxMjAwBgNVBAMTKU5ldExvY2sg +VXpsZXRpIChDbGFzcyBCKSBUYW51c2l0dmFueWtpYWRvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB +iQKBgQCx6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xKgZjupNTKihe5In+DCnVMm8Bp2GQ5o+2S +o/1bXHQawEfKOml2mrriRBf8TKPV/riXiK+IA4kfpPIEPsgHC+b5sy96YhQJRhTKZPWLgLViqNhr +1nGTLbO/CVRY7QbrqHvcQ7GhaQIDAQABo4ICnzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV +HQ8BAf8EBAMCAAYwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZ +RUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRh +dGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQuIEEgaGl0 +ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRv +c2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUg +YXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJh +c2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBz +Oi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6ZXNA +bmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhl +IHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sgQ1BTIGF2 +YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBj +cHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06sPgzTEdM +43WIEJessDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXan3BukxowOR0w2y7jfLKR +stE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKSNitjrFgBazMpUIaD8QFI +-----END CERTIFICATE----- + +NetLock Express (Class C) Root +============================== +-----BEGIN CERTIFICATE----- +MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCSFUxETAPBgNVBAcT +CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV +BAsTEVRhbnVzaXR2YW55a2lhZG9rMTQwMgYDVQQDEytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBD +KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsxCzAJ +BgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6 +dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE0MDIGA1UEAxMrTmV0TG9j +ayBFeHByZXNzeiAoQ2xhc3MgQykgVGFudXNpdHZhbnlraWFkbzCBnzANBgkqhkiG9w0BAQEFAAOB +jQAwgYkCgYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNAOoLO/XXgeDIDhlqGlZHtU/qdQPzm6N3Z +W3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC2VImESLH0iDMgqSaqf64gXadarfSNnU+sYYJ9m5tfk63 +euyucYT2BDMIJTLrdKwWRMbkQJMdf60CAwEAAaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQw +DgYDVR0PAQH/BAQDAgAGMBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEWggJN +RklHWUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0YWxhbm9zIFN6b2xn +YWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBB +IGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQgYSBOZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1i +aXp0b3NpdGFzYSB2ZWRpLiBBIGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0 +ZWxlIGF6IGVsb2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4gQXogZWxqYXJhcyBs +ZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0LiBJbnRlcm5ldCBob25sYXBqYW4gYSBo +dHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIGNpbWVuIHZhZ3kga2VyaGV0byBheiBlbGxlbm9y +emVzQG5ldGxvY2submV0IGUtbWFpbCBjaW1lbi4gSU1QT1JUQU5UISBUaGUgaXNzdWFuY2UgYW5k +IHRoZSB1c2Ugb2YgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIENQ +UyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cubmV0bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwg +YXQgY3BzQG5ldGxvY2submV0LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmYta3UzbM2 +xJZIwVzNmtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2gpO0u9f38vf5NNwgMvOOW +gyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4Fp1hBWeAyNDYpQcCNJgEjTME1A== +-----END CERTIFICATE----- + +XRamp Global CA Root +==================== +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE +BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj +dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx +HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg +U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu +IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx +foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE +zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs +AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry +xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap +oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC +AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc +/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt +qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n +nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz +8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= +-----END CERTIFICATE----- + +Go Daddy Class 2 CA +=================== +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY +VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG +A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g +RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD +ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv +2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 +qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j +YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY +vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O +BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o +atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu +MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG +A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim +PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt +I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ +HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI +Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b +vZ8= +-----END CERTIFICATE----- + +Starfield Class 2 CA +==================== +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc +U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo +MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG +A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG +SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY +bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ +JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm +epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN +F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF +MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f +hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo +bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g +QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs +afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM +PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl +xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD +KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 +QBFGmh95DmK/D5fs4C8fF5Q= +-----END CERTIFICATE----- + +StartCom Ltd. +============= +-----BEGIN CERTIFICATE----- +MIIFFjCCBH+gAwIBAgIBADANBgkqhkiG9w0BAQQFADCBsDELMAkGA1UEBhMCSUwxDzANBgNVBAgT +BklzcmFlbDEOMAwGA1UEBxMFRWlsYXQxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xGjAYBgNVBAsT +EUNBIEF1dGhvcml0eSBEZXAuMSkwJwYDVQQDEyBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eTEhMB8GCSqGSIb3DQEJARYSYWRtaW5Ac3RhcnRjb20ub3JnMB4XDTA1MDMxNzE3Mzc0OFoX +DTM1MDMxMDE3Mzc0OFowgbAxCzAJBgNVBAYTAklMMQ8wDQYDVQQIEwZJc3JhZWwxDjAMBgNVBAcT +BUVpbGF0MRYwFAYDVQQKEw1TdGFydENvbSBMdGQuMRowGAYDVQQLExFDQSBBdXRob3JpdHkgRGVw +LjEpMCcGA1UEAxMgRnJlZSBTU0wgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxITAfBgkqhkiG9w0B +CQEWEmFkbWluQHN0YXJ0Y29tLm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA7YRgACOe +yEpRKSfeOqE5tWmrCbIvNP1h3D3TsM+x18LEwrHkllbEvqoUDufMOlDIOmKdw6OsWXuO7lUaHEe+ +o5c5s7XvIywI6Nivcy+5yYPo7QAPyHWlLzRMGOh2iCNJitu27Wjaw7ViKUylS7eYtAkUEKD4/mJ2 +IhULpNYILzUCAwEAAaOCAjwwggI4MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgHmMB0GA1Ud +DgQWBBQcicOWzL3+MtUNjIExtpidjShkjTCB3QYDVR0jBIHVMIHSgBQcicOWzL3+MtUNjIExtpid +jShkjaGBtqSBszCBsDELMAkGA1UEBhMCSUwxDzANBgNVBAgTBklzcmFlbDEOMAwGA1UEBxMFRWls +YXQxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xGjAYBgNVBAsTEUNBIEF1dGhvcml0eSBEZXAuMSkw +JwYDVQQDEyBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYS +YWRtaW5Ac3RhcnRjb20ub3JnggEAMB0GA1UdEQQWMBSBEmFkbWluQHN0YXJ0Y29tLm9yZzAdBgNV +HRIEFjAUgRJhZG1pbkBzdGFydGNvbS5vcmcwEQYJYIZIAYb4QgEBBAQDAgAHMC8GCWCGSAGG+EIB +DQQiFiBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAyBglghkgBhvhCAQQEJRYjaHR0 +cDovL2NlcnQuc3RhcnRjb20ub3JnL2NhLWNybC5jcmwwKAYJYIZIAYb4QgECBBsWGWh0dHA6Ly9j +ZXJ0LnN0YXJ0Y29tLm9yZy8wOQYJYIZIAYb4QgEIBCwWKmh0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9y +Zy9pbmRleC5waHA/YXBwPTExMTANBgkqhkiG9w0BAQQFAAOBgQBscSXhnjSRIe/bbL0BCFaPiNhB +OlP1ct8nV0t2hPdopP7rPwl+KLhX6h/BquL/lp9JmeaylXOWxkjHXo0Hclb4g4+fd68p00UOpO6w +NnQt8M2YI3s3S9r+UZjEHjQ8iP2ZO1CnwYszx8JSFhKVU2Ui77qLzmLbcCOxgN8aIDjnfg== +-----END CERTIFICATE----- + +StartCom Certification Authority +================================ +-----BEGIN CERTIFICATE----- +MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN +U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu +ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0 +NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk +LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg +U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw +ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y +o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/ +Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d +eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt +2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z +6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ +osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/ +untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc +UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT +37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE +FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0 +Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj +YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH +AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw +Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg +U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5 +LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh +cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT +dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC +AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh +3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm +vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk +fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3 +fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ +EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq +yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl +1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/ +lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro +g14= +-----END CERTIFICATE----- + +Taiwan GRCA +=========== +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG +EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X +DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv +dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN +w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5 +BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O +1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO +htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov +J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7 +Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t +B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB +O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8 +lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV +HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2 +09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ +TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj +Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2 +Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU +D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz +DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk +Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk +7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ +CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy ++fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS +-----END CERTIFICATE----- + +Firmaprofesional Root CA +======================== +-----BEGIN CERTIFICATE----- +MIIEVzCCAz+gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBnTELMAkGA1UEBhMCRVMxIjAgBgNVBAcT +GUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMTOUF1dG9yaWRhZCBkZSBDZXJ0aWZp +Y2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODEmMCQGCSqGSIb3DQEJARYXY2FA +ZmlybWFwcm9mZXNpb25hbC5jb20wHhcNMDExMDI0MjIwMDAwWhcNMTMxMDI0MjIwMDAwWjCBnTEL +MAkGA1UEBhMCRVMxIjAgBgNVBAcTGUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMT +OUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2 +ODEmMCQGCSqGSIb3DQEJARYXY2FAZmlybWFwcm9mZXNpb25hbC5jb20wggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQDnIwNvbyOlXnjOlSztlB5uCp4Bx+ow0Syd3Tfom5h5VtP8c9/Qit5V +j1H5WuretXDE7aTt/6MNbg9kUDGvASdYrv5sp0ovFy3Tc9UTHI9ZpTQsHVQERc1ouKDAA6XPhUJH +lShbz++AbOCQl4oBPB3zhxAwJkh91/zpnZFx/0GaqUC1N5wpIE8fUuOgfRNtVLcK3ulqTgesrBlf +3H5idPayBQC6haD9HThuy1q7hryUZzM1gywfI834yJFxzJeL764P3CkDG8A563DtwW4O2GcLiam8 +NeTvtjS0pbbELaW+0MOUJEjb35bTALVmGotmBQ/dPz/LP6pemkr4tErvlTcbAgMBAAGjgZ8wgZww +KgYDVR0RBCMwIYYfaHR0cDovL3d3dy5maXJtYXByb2Zlc2lvbmFsLmNvbTASBgNVHRMBAf8ECDAG +AQH/AgEBMCsGA1UdEAQkMCKADzIwMDExMDI0MjIwMDAwWoEPMjAxMzEwMjQyMjAwMDBaMA4GA1Ud +DwEB/wQEAwIBBjAdBgNVHQ4EFgQUMwugZtHq2s7eYpMEKFK1FH84aLcwDQYJKoZIhvcNAQEFBQAD +ggEBAEdz/o0nVPD11HecJ3lXV7cVVuzH2Fi3AQL0M+2TUIiefEaxvT8Ub/GzR0iLjJcG1+p+o1wq +u00vR+L4OQbJnC4xGgN49Lw4xiKLMzHwFgQEffl25EvXwOaD7FnMP97/T2u3Z36mhoEyIwOdyPdf +wUpgpZKpsaSgYMN4h7Mi8yrrW6ntBas3D7Hi05V2Y1Z0jFhyGzflZKG+TQyTmAyX9odtsz/ny4Cm +7YjHX1BiAuiZdBbQ5rQ58SfLyEDW44YQqSMSkuBpQWOnryULwMWSyx6Yo1q6xTMPoJcB3X/ge9YG +VM+h4k0460tQtcsm9MracEpqoeJ5quGnM/b9Sh/22WA= +-----END CERTIFICATE----- + +Wells Fargo Root CA +=================== +-----BEGIN CERTIFICATE----- +MIID5TCCAs2gAwIBAgIEOeSXnjANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UEBhMCVVMxFDASBgNV +BAoTC1dlbGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eTEvMC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN +MDAxMDExMTY0MTI4WhcNMjEwMTE0MTY0MTI4WjCBgjELMAkGA1UEBhMCVVMxFDASBgNVBAoTC1dl +bGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEv +MC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVqDM7Jvk0/82bfuUER84A4n135zHCLielTWi5MbqNQ1mX +x3Oqfz1cQJ4F5aHiidlMuD+b+Qy0yGIZLEWukR5zcUHESxP9cMIlrCL1dQu3U+SlK93OvRw6esP3 +E48mVJwWa2uv+9iWsWCaSOAlIiR5NM4OJgALTqv9i86C1y8IcGjBqAr5dE8Hq6T54oN+J3N0Prj5 +OEL8pahbSCOz6+MlsoCultQKnMJ4msZoGK43YjdeUXWoWGPAUe5AeH6orxqg4bB4nVCMe+ez/I4j +sNtlAHCEAQgAFG5Uhpq6zPk3EPbg3oQtnaSFN9OH4xXQwReQfhkhahKpdv0SAulPIV4XAgMBAAGj +YTBfMA8GA1UdEwEB/wQFMAMBAf8wTAYDVR0gBEUwQzBBBgtghkgBhvt7hwcBCzAyMDAGCCsGAQUF +BwIBFiRodHRwOi8vd3d3LndlbGxzZmFyZ28uY29tL2NlcnRwb2xpY3kwDQYJKoZIhvcNAQEFBQAD +ggEBANIn3ZwKdyu7IvICtUpKkfnRLb7kuxpo7w6kAOnu5+/u9vnldKTC2FJYxHT7zmu1Oyl5GFrv +m+0fazbuSCUlFLZWohDo7qd/0D+j0MNdJu4HzMPBJCGHHt8qElNvQRbn7a6U+oxy+hNH8Dx+rn0R +OhPs7fpvcmR7nX1/Jv16+yWt6j4pf0zjAFcysLPp7VMX2YuyFA4w6OXVE8Zkr8QA1dhYJPz1j+zx +x32l2w8n0cbyQIjmH/ZhqPRCyLk306m+LFZ4wnKbWV01QIroTmMatukgalHizqSQ33ZwmVxwQ023 +tqcZZE6St8WRPH9IFmV7Fv3L/PvZ1dZPIWU7Sn9Ho/s= +-----END CERTIFICATE----- + +Swisscom Root CA 1 +================== +-----BEGIN CERTIFICATE----- +MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG +EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy +dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4 +MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln +aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC +IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM +MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF +NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe +AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC +b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn +7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN +cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp +WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5 +haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY +MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw +HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j +BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9 +MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn +jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ +MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H +VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl +vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl +OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3 +1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq +nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy +x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW +NY6E0F/6MBr1mmz0DlP5OlvRHA== +-----END CERTIFICATE----- + +DigiCert Assured ID Root CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx +MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO +9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy +UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW +/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy +oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf +GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF +66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq +hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc +EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn +SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i +8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe ++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== +-----END CERTIFICATE----- + +DigiCert Global Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw +MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn +TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5 +BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H +4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y +7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB +o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm +8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF +BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr +EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt +tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886 +UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + +DigiCert High Assurance EV Root CA +================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw +KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw +MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ +MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu +Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t +Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS +OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 +MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ +NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe +h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB +Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY +JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ +V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp +myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK +mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K +-----END CERTIFICATE----- + +Certplus Class 2 Primary CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE +BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN +OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy +dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR +5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ +Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO +YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e +e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME +CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ +YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t +L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD +P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R +TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+ +7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW +//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7 +l7+ijrRU +-----END CERTIFICATE----- + +DST Root CA X3 +============== +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK +ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X +DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1 +cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT +rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9 +UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy +xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d +utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ +MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug +dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE +GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw +RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS +fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ +-----END CERTIFICATE----- + +DST ACES CA X6 +============== +-----BEGIN CERTIFICATE----- +MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT +MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha +MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE +CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI +DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa +pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow +GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy +MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud +EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu +Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy +dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU +CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2 +5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t +Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq +nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs +vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3 +oKfN5XozNmr6mis= +-----END CERTIFICATE----- + +TURKTRUST Certificate Services Provider Root 1 +============================================== +-----BEGIN CERTIFICATE----- +MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF +bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP +MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0 +acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx +MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg +U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB +TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC +aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX +yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i +Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ +8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4 +W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME +BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46 +sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE +q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy +B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY +nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H +-----END CERTIFICATE----- + +TURKTRUST Certificate Services Provider Root 2 +============================================== +-----BEGIN CERTIFICATE----- +MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF +bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP +MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg +QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN +MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr +dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G +A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls +acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe +LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI +x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g +QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr +5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB +AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G +A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt +Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4 +Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+ +hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P +9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5 +UrbnBEI= +-----END CERTIFICATE----- + +SwissSign Platinum CA - G2 +========================== +-----BEGIN CERTIFICATE----- +MIIFwTCCA6mgAwIBAgIITrIAZwwDXU8wDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCQ0gxFTAT +BgNVBAoTDFN3aXNzU2lnbiBBRzEjMCEGA1UEAxMaU3dpc3NTaWduIFBsYXRpbnVtIENBIC0gRzIw +HhcNMDYxMDI1MDgzNjAwWhcNMzYxMDI1MDgzNjAwWjBJMQswCQYDVQQGEwJDSDEVMBMGA1UEChMM +U3dpc3NTaWduIEFHMSMwIQYDVQQDExpTd2lzc1NpZ24gUGxhdGludW0gQ0EgLSBHMjCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMrfogLi2vj8Bxax3mCq3pZcZB/HL37PZ/pEQtZ2Y5Wu +669yIIpFR4ZieIbWIDkm9K6j/SPnpZy1IiEZtzeTIsBQnIJ71NUERFzLtMKfkr4k2HtnIuJpX+UF +eNSH2XFwMyVTtIc7KZAoNppVRDBopIOXfw0enHb/FZ1glwCNioUD7IC+6ixuEFGSzH7VozPY1kne +WCqv9hbrS3uQMpe5up1Y8fhXSQQeol0GcN1x2/ndi5objM89o03Oy3z2u5yg+gnOI2Ky6Q0f4nIo +j5+saCB9bzuohTEJfwvH6GXp43gOCWcwizSC+13gzJ2BbWLuCB4ELE6b7P6pT1/9aXjvCR+htL/6 +8++QHkwFix7qepF6w9fl+zC8bBsQWJj3Gl/QKTIDE0ZNYWqFTFJ0LwYfexHihJfGmfNtf9dng34T +aNhxKFrYzt3oEBSa/m0jh26OWnA81Y0JAKeqvLAxN23IhBQeW71FYyBrS3SMvds6DsHPWhaPpZjy +domyExI7C3d3rLvlPClKknLKYRorXkzig3R3+jVIeoVNjZpTxN94ypeRSCtFKwH3HBqi7Ri6Cr2D ++m+8jVeTO9TUps4e8aCxzqv9KyiaTxvXw3LbpMS/XUz13XuWae5ogObnmLo2t/5u7Su9IPhlGdpV +CX4l3P5hYnL5fhgC72O00Puv5TtjjGePAgMBAAGjgawwgakwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFFCvzAeHFUdvOMW0ZdHelarp35zMMB8GA1UdIwQYMBaAFFCv +zAeHFUdvOMW0ZdHelarp35zMMEYGA1UdIAQ/MD0wOwYJYIV0AVkBAQEBMC4wLAYIKwYBBQUHAgEW +IGh0dHA6Ly9yZXBvc2l0b3J5LnN3aXNzc2lnbi5jb20vMA0GCSqGSIb3DQEBBQUAA4ICAQAIhab1 +Fgz8RBrBY+D5VUYI/HAcQiiWjrfFwUF1TglxeeVtlspLpYhg0DB0uMoI3LQwnkAHFmtllXcBrqS3 +NQuB2nEVqXQXOHtYyvkv+8Bldo1bAbl93oI9ZLi+FHSjClTTLJUYFzX1UWs/j6KWYTl4a0vlpqD4 +U99REJNi54Av4tHgvI42Rncz7Lj7jposiU0xEQ8mngS7twSNC/K5/FqdOxa3L8iYq/6KUFkuozv8 +KV2LwUvJ4ooTHbG/u0IdUt1O2BReEMYxB+9xJ/cbOQncguqLs5WGXv312l0xpuAxtpTmREl0xRbl +9x8DYSjFyMsSoEJL+WuICI20MhjzdZ/EfwBPBZWcoxcCw7NTm6ogOSkrZvqdr16zktK1puEa+S1B +aYEUtLS17Yk9zvupnTVCRLEcFHOBzyoBNZox1S2PbYTfgE1X4z/FhHXaicYwu+uPyyIIoK6q8QNs +OktNCaUOcsZWayFCTiMlFGiudgp8DAdwZPmaL/YFOSbGDI8Zf0NebvRbFS/bYV3mZy8/CJT5YLSY +Mdp08YSTcU1f+2BY0fvEwW2JorsgH51xkcsymxM9Pn2SUjWskpSi0xjCfMfqr3YFFt1nJ8J+HAci +IfNAChs0B0QTwoRqjt8ZWr9/6x3iGjjRXK9HkmuAtTClyY3YqzGBH9/CZjfTk6mFhnll0g== +-----END CERTIFICATE----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw +EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN +MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp +c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq +t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C +jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg +vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF +ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR +AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend +jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO +peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR +7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi +GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64 +OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov +L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm +5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr +44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf +Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m +Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp +mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk +vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf +KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br +NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj +viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ +-----END CERTIFICATE----- + +SwissSign Silver CA - G2 +======================== +-----BEGIN CERTIFICATE----- +MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT +BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X +DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3 +aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG +9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644 +N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm ++/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH +6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu +MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h +qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5 +FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs +ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc +celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X +CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB +tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0 +cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P +4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F +kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L +3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx +/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa +DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP +e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu +WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ +DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub +DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG +EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx +CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ +cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN +b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9 +nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge +RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt +tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI +hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K +Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN +NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa +Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG +1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= +-----END CERTIFICATE----- + +thawte Primary Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE +BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 +aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3 +MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg +SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv +KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT +FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs +oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ +1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc +q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K +aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p +afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF +AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE +uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX +xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89 +jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH +z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA== +-----END CERTIFICATE----- + +VeriSign Class 3 Public Primary Certification Authority - G5 +============================================================ +-----BEGIN CERTIFICATE----- +MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE +BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO +ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk +IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB +yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln +biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh +dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt +YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz +j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD +Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/ +Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r +fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/ +BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv +Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy +aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG +SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+ +X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE +KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC +Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE +ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq +-----END CERTIFICATE----- + +SecureTrust CA +============== +-----BEGIN CERTIFICATE----- +MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy +dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe +BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX +OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t +DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH +GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b +01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH +ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj +aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ +KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu +SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf +mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ +nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR +3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= +-----END CERTIFICATE----- + +Secure Global CA +================ +-----BEGIN CERTIFICATE----- +MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH +bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg +MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg +Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx +YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ +bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g +8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV +HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi +0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn +oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA +MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+ +OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn +CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5 +3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc +f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW +-----END CERTIFICATE----- + +COMODO Certification Authority +============================== +-----BEGIN CERTIFICATE----- +MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb +MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD +T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH ++7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww +xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV +4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA +1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI +rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k +b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC +AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP +OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ +RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc +IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN ++8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== +-----END CERTIFICATE----- + +DigiNotar Root CA +================= +-----BEGIN CERTIFICATE----- +MIIFijCCA3KgAwIBAgIQDHbanJEMTiye/hXQWJM8TDANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQG +EwJOTDESMBAGA1UEChMJRGlnaU5vdGFyMRowGAYDVQQDExFEaWdpTm90YXIgUm9vdCBDQTEgMB4G +CSqGSIb3DQEJARYRaW5mb0BkaWdpbm90YXIubmwwHhcNMDcwNTE2MTcxOTM2WhcNMjUwMzMxMTgx +OTIxWjBfMQswCQYDVQQGEwJOTDESMBAGA1UEChMJRGlnaU5vdGFyMRowGAYDVQQDExFEaWdpTm90 +YXIgUm9vdCBDQTEgMB4GCSqGSIb3DQEJARYRaW5mb0BkaWdpbm90YXIubmwwggIiMA0GCSqGSIb3 +DQEBAQUAA4ICDwAwggIKAoICAQCssFjBAL3YIQgLK5r+blYwBZ8bd5AQQVzDDYcRd46B8cp86Yxq +7Th0Nbva3/m7wAk3tJZzgX0zGpg595NvlX89ubF1h7pRSOiLcD6VBMXYtsMW2YiwsYcdcNqGtA8U +i3rPENF0NqISe3eGSnnme98CEWilToauNFibJBN4ViIlHgGLS1Fx+4LMWZZpiFpoU8W5DQI3y0u8 +ZkqQfioLBQftFl9VkHXYRskbg+IIvvEjzJkd1ioPgyAVWCeCLvriIsJJsbkBgWqdbZ1Ad2h2TiEq +bYRAhU52mXyC8/O3AlnUJgEbjt+tUwbRrhjd4rI6y9eIOI6sWym5GdOY+RgDz0iChmYLG2kPyes4 +iHomGgVMktck1JbyrFIto0fVUvY//s6EBnCmqj6i8rZWNBhXouSBbefK8GrTx5FrAoNBfBXva5pk +XuPQPOWx63tdhvvL5ndJzaNl3Pe5nLjkC1+Tz8wwGjIczhxjlaX56uF0i57pK6kwe6AYHw4YC+Vb +qdPRbB4HZ4+RS6mKvNJmqpMBiLKR+jFc1abBUggJzQpjotMipuih2TkGl/VujQKQjBR7P4DNG5y6 +xFhyI6+2Vp/GekIzKQc/gsnmHwUNzUwoNovTyD4cxojvXu6JZOkd69qJfjKmadHdzIif0dDJZiHc +BmfFlHqabWJMfczgZICynkeOowIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE +AwIBBjAdBgNVHQ4EFgQUiGi/4I41xDs4a2L3KDuEgcgM100wDQYJKoZIhvcNAQEFBQADggIBADsC +jcs8MOhuoK3yc7NfniUTBAXT9uOLuwt5zlPe5JbF0a9zvNXD0EBVfEB/zRtfCdXyfJ9oHbtdzno5 +wozWmHvFg1Wo1X1AyuAe94leY12hE8JdiraKfADzI8PthV9xdvBoY6pFITlIYXg23PFDk9Qlx/KA +ZeFTAnVR/Ho67zerhChXDNjU1JlWbOOi/lmEtDHoM/hklJRRl6s5xUvt2t2AC298KQ3EjopyDedT +FLJgQT2EkTFoPSdE2+Xe9PpjRchMPpj1P0G6Tss3DbpmmPHdy59c91Q2gmssvBNhl0L4eLvMyKKf +yvBovWsdst+Nbwed2o5nx0ceyrm/KkKRt2NTZvFCo+H0Wk1Ya7XkpDOtXHAd3ODy63MUkZoDweoA +ZbwH/M8SESIsrqC9OuCiKthZ6SnTGDWkrBFfGbW1G/8iSlzGeuQX7yCpp/Q/rYqnmgQlnQ7KN+ZQ +/YxCKQSa7LnPS3K94gg2ryMvYuXKAdNw23yCIywWMQzGNgeQerEfZ1jEO1hZibCMjFCz2IbLaKPE +CudpSyDOwR5WS5WpI2jYMNjD67BVUc3l/Su49bsRn1NU9jQZjHkJNsphFyUXC4KYcwx3dMPVDceo +EkzHp1RxRy4sGn3J4ys7SN4nhKdjNrN9j6BkOSQNPXuHr2ZcdBtLc7LljPCGmbjlxd+Ewbfr +-----END CERTIFICATE----- + +Network Solutions Certificate Authority +======================================= +-----BEGIN CERTIFICATE----- +MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG +EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr +IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx +MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu +MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx +jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT +aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT +crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc +/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB +AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv +bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA +A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q +4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/ +GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv +wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD +ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey +-----END CERTIFICATE----- + +WellsSecure Public Root Certificate Authority +============================================= +-----BEGIN CERTIFICATE----- +MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM +F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw +NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN +MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl +bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD +VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1 +iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13 +i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8 +bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB +K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB +AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu +cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm +lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB +i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww +GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg +Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI +K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0 +bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj +qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es +E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ +tylv2G0xffX8oRAHh84vWdw+WNs= +-----END CERTIFICATE----- + +COMODO ECC Certification Authority +================================== +-----BEGIN CERTIFICATE----- +MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC +R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE +ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix +GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR +Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo +b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X +4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni +wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG +FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA +U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= +-----END CERTIFICATE----- + +MD5 Collisions Forged Rogue CA 25c3 +=================================== +-----BEGIN CERTIFICATE----- +MIIEMjCCA5ugAwIBAgIBQjANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp +bmVzcyBDQS0xMB4XDTA0MDczMTAwMDAwMVoXDTA0MDkwMjAwMDAwMVowPDE6MDgGA1UEAxMxTUQ1 +IENvbGxpc2lvbnMgSW5jLiAoaHR0cDovL3d3dy5waHJlZWRvbS5vcmcvbWQ1KTCBnzANBgkqhkiG +9w0BAQEFAAOBjQAwgYkCgYEAuqZZySwo1iqw+O2fRqSkN+4OGWhZ0bMDmVHWFppeN2sV4A5L9YRk ++KPbQW811ZsVH9vEOFJwgZdej6C193458DKsHq1E0rP6SMPOkZvs9Jx84Vr1yDdrmoPe58oglzFC +cxWRaPSIr/koKMXpD3OwF0sTTJl10ETmfghsGvJPG0ECAwEAAaOCAiQwggIgMAsGA1UdDwQEAwIB +xjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSnBGAfq3JDCMV/CJBVVhzWzuY46zAfBgNVHSME +GDAWgBS+qKB0clBrRLfJI9j7qP+zV2tobDCCAb4GCWCGSAGG+EIBDQSCAa8WggGrMwAAACdeOeCJ +YQ9Oo8VFCza7AdFTqsMIj2/4Tz6Hh0QR3GDg35JV+bhzG1STxZ/QRsRgtjVizbmvHKhpGslbPJY3 +wO1n77v+wIucUC8pvYMino4I+qwTcKJYf2JiihH3ifbftmdZcxb7YxaKtJE4zi71tr5MpJRJ5GUR +CkIVycEw4mnVRX2lJru5YexiZPA54ee8aNhQUZ4dYNPRo6cK+AMgoXABF5E2TwJwMYaD3fcP2Acd +EbMTBKXc8K5QsSgOY2kqDIJvj0cz32yiBpLxT0W+2TA2oyuM1neuNWN/Tkyak0g22Z8CAwEAAaOB +vTCBujAOBgNVHQ8BAf8EBAMCBPAwHQYDVR0OBBYEFM2mg/qlYDf3ljcXKd5BePGHiVXnMDsGA1Ud +HwQ0MDIwMKAuoCyGKmh0dHA6Ly9jcmwuZ2VvdHJ1c3QuY29tL2NybHMvZ2xvYmFsY2ExLmNybDAf +BgNVHSMEGDAWgBS+qKB0clBrRLfJI9j7qP+zV2tobDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB +BQUHAwIwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQQFAAOBgQCnIQKN0Q6igHcl/UNgFY/s75BH +1IRCFSYRHM3CPBApqbbfq1d1kdrlK7OQRRwwY1Y/itlQ+u1YbMBlrGZX3hzGdjv1AA6ORc5/TJDs +K8bNs7SPYtD+t8UmckTt9phbrsvRlfXaCL5oRrF1yOwdjx56lPGqU3iiRa5U6tGedMh2Zw== +-----END CERTIFICATE----- + +IGC/A +===== +-----BEGIN CERTIFICATE----- +MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD +VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE +Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy +MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI +EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT +STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2 +TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW +So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy +HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd +frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ +tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB +egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC +iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK +q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q +MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg +Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI +lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF +0mBWWg== +-----END CERTIFICATE----- + +Security Communication EV RootCA1 +================================= +-----BEGIN CERTIFICATE----- +MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc +U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh +dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE +BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl +Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO +/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX +WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z +ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4 +bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK +9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG +SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm +iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG +Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW +mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW +T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490 +-----END CERTIFICATE----- + +OISTE WISeKey Global Root GA CA +=============================== +-----BEGIN CERTIFICATE----- +MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE +BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG +A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH +bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD +VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw +IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5 +IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9 +Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg +Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD +d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ +/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R +LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ +KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm +MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4 ++vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa +hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY +okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0= +-----END CERTIFICATE----- + +S-TRUST Authentication and Encryption Root CA 2005 PN +===================================================== +-----BEGIN CERTIFICATE----- +MIIEezCCA2OgAwIBAgIQNxkY5lNUfBq1uMtZWts1tzANBgkqhkiG9w0BAQUFADCBrjELMAkGA1UE +BhMCREUxIDAeBgNVBAgTF0JhZGVuLVd1ZXJ0dGVtYmVyZyAoQlcpMRIwEAYDVQQHEwlTdHV0dGdh +cnQxKTAnBgNVBAoTIERldXRzY2hlciBTcGFya2Fzc2VuIFZlcmxhZyBHbWJIMT4wPAYDVQQDEzVT +LVRSVVNUIEF1dGhlbnRpY2F0aW9uIGFuZCBFbmNyeXB0aW9uIFJvb3QgQ0EgMjAwNTpQTjAeFw0w +NTA2MjIwMDAwMDBaFw0zMDA2MjEyMzU5NTlaMIGuMQswCQYDVQQGEwJERTEgMB4GA1UECBMXQmFk +ZW4tV3VlcnR0ZW1iZXJnIChCVykxEjAQBgNVBAcTCVN0dXR0Z2FydDEpMCcGA1UEChMgRGV1dHNj +aGVyIFNwYXJrYXNzZW4gVmVybGFnIEdtYkgxPjA8BgNVBAMTNVMtVFJVU1QgQXV0aGVudGljYXRp +b24gYW5kIEVuY3J5cHRpb24gUm9vdCBDQSAyMDA1OlBOMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEA2bVKwdMz6tNGs9HiTNL1toPQb9UY6ZOvJ44TzbUlNlA0EmQpoVXhOmCTnijJ4/Ob +4QSwI7+Vio5bG0F/WsPoTUzVJBY+h0jUJ67m91MduwwA7z5hca2/OnpYH5Q9XIHV1W/fuJvS9eXL +g3KSwlOyggLrra1fFi2SU3bxibYs9cEv4KdKb6AwajLrmnQDaHgTncovmwsdvs91DSaXm8f1Xgqf +eN+zvOyauu9VjxuapgdjKRdZYgkqeQd3peDRF2npW932kKvimAoA0SVtnteFhy+S8dF2g08LOlk3 +KC8zpxdQ1iALCvQm+Z845y2kuJuJja2tyWp9iRe79n+Ag3rm7QIDAQABo4GSMIGPMBIGA1UdEwEB +/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFTVFJv +bmxpbmUxLTIwNDgtNTAdBgNVHQ4EFgQUD8oeXHngovMpttKFswtKtWXsa1IwHwYDVR0jBBgwFoAU +D8oeXHngovMpttKFswtKtWXsa1IwDQYJKoZIhvcNAQEFBQADggEBAK8B8O0ZPCjoTVy7pWMciDMD +pwCHpB8gq9Yc4wYfl35UvbfRssnV2oDsF9eK9XvCAPbpEW+EoFolMeKJ+aQAPzFoLtU96G7m1R08 +P7K9n3frndOMusDXtk3sU5wPBG7qNWdX4wple5A64U8+wwCSersFiXOMy6ZNwPv2AtawB6MDwidA +nwzkhYItr5pCHdDHjfhA7p0GVxzZotiAFP7hYy0yh9WUUpY6RsZxlj33mA6ykaqP2vROJAA5Veit +F7nTNCtKqUDMFypVZUF0Qn71wK/Ik63yGFs9iQzbRzkk+OBM8h+wPQrKBU6JIRrjKpms/H+h8Q8b +Hz2eBIPdltkdOpQ= +-----END CERTIFICATE----- + +Microsec e-Szigno Root CA +========================= +-----BEGIN CERTIFICATE----- +MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE +BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL +EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0 +MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz +dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT +GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG +d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N +oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc +QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ +PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb +MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG +IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD +VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3 +LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A +dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn +AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA +4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg +AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA +egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6 +Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO +PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv +c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h +cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw +IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT +WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV +MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER +MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp +Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal +HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT +nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE +aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a +86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK +yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB +S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU= +-----END CERTIFICATE----- + +Certigna +======== +-----BEGIN CERTIFICATE----- +MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw +EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3 +MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI +Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q +XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH +GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p +ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg +DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf +Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ +tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ +BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J +SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA +hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+ +ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu +PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY +1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw +WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== +-----END CERTIFICATE----- + +AC Ra+¡z Certic+ímara S.A. +========================== +-----BEGIN CERTIFICATE----- +MIIGZjCCBE6gAwIBAgIPB35Sk3vgFeNX8GmMy+wMMA0GCSqGSIb3DQEBBQUAMHsxCzAJBgNVBAYT +AkNPMUcwRQYDVQQKDD5Tb2NpZWRhZCBDYW1lcmFsIGRlIENlcnRpZmljYWNpw7NuIERpZ2l0YWwg +LSBDZXJ0aWPDoW1hcmEgUy5BLjEjMCEGA1UEAwwaQUMgUmHDrXogQ2VydGljw6FtYXJhIFMuQS4w +HhcNMDYxMTI3MjA0NjI5WhcNMzAwNDAyMjE0MjAyWjB7MQswCQYDVQQGEwJDTzFHMEUGA1UECgw+ +U29jaWVkYWQgQ2FtZXJhbCBkZSBDZXJ0aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJh +IFMuQS4xIzAhBgNVBAMMGkFDIFJhw616IENlcnRpY8OhbWFyYSBTLkEuMIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEAq2uJo1PMSCMI+8PPUZYILrgIem08kBeGqentLhM0R7LQcNzJPNCN +yu5LF6vQhbCnIwTLqKL85XXbQMpiiY9QngE9JlsYhBzLfDe3fezTf3MZsGqy2IiKLUV0qPezuMDU +2s0iiXRNWhU5cxh0T7XrmafBHoi0wpOQY5fzp6cSsgkiBzPZkc0OnB8OIMfuuzONj8LSWKdf/WU3 +4ojC2I+GdV75LaeHM/J4Ny+LvB2GNzmxlPLYvEqcgxhaBvzz1NS6jBUJJfD5to0EfhcSM2tXSExP +2yYe68yQ54v5aHxwD6Mq0Do43zeX4lvegGHTgNiRg0JaTASJaBE8rF9ogEHMYELODVoqDA+bMMCm +8Ibbq0nXl21Ii/kDwFJnmxL3wvIumGVC2daa49AZMQyth9VXAnow6IYm+48jilSH5L887uvDdUhf +HjlvgWJsxS3EF1QZtzeNnDeRyPYL1epjb4OsOMLzP96a++EjYfDIJss2yKHzMI+ko6Kh3VOz3vCa +Mh+DkXkwwakfU5tTohVTP92dsxA7SH2JD/ztA/X7JWR1DhcZDY8AFmd5ekD8LVkH2ZD6mq093ICK +5lw1omdMEWux+IBkAC1vImHFrEsm5VoQgpukg3s0956JkSCXjrdCx2bD0Omk1vUgjcTDlaxECp1b +czwmPS9KvqfJpxAe+59QafMCAwEAAaOB5jCB4zAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE +AwIBBjAdBgNVHQ4EFgQU0QnQ6dfOeXRU+Tows/RtLAMDG2gwgaAGA1UdIASBmDCBlTCBkgYEVR0g +ADCBiTArBggrBgEFBQcCARYfaHR0cDovL3d3dy5jZXJ0aWNhbWFyYS5jb20vZHBjLzBaBggrBgEF +BQcCAjBOGkxMaW1pdGFjaW9uZXMgZGUgZ2FyYW507WFzIGRlIGVzdGUgY2VydGlmaWNhZG8gc2Ug +cHVlZGVuIGVuY29udHJhciBlbiBsYSBEUEMuMA0GCSqGSIb3DQEBBQUAA4ICAQBclLW4RZFNjmEf +AygPU3zmpFmps4p6xbD/CHwso3EcIRNnoZUSQDWDg4902zNc8El2CoFS3UnUmjIz75uny3XlesuX +EpBcunvFm9+7OSPI/5jOCk0iAUgHforA1SBClETvv3eiiWdIG0ADBaGJ7M9i4z0ldma/Jre7Ir5v +/zlXdLp6yQGVwZVR6Kss+LGGIOk/yzVb0hfpKv6DExdA7ohiZVvVO2Dpezy4ydV/NgIlqmjCMRW3 +MGXrfx1IebHPOeJCgBbT9ZMj/EyXyVo3bHwi2ErN0o42gzmRkBDI8ck1fj+404HGIGQatlDCIaR4 +3NAvO2STdPCWkPHv+wlaNECW8DYSwaN0jJN+Qd53i+yG2dIPPy3RzECiiWZIHiCznCNZc6lEc7wk +eZBWN7PGKX6jD/EpOe9+XCgycDWs2rjIdWb8m0w5R44bb5tNAlQiM+9hup4phO9OSzNHdpdqy35f +/RWmnkJDW2ZaiogN9xa5P1FlK2Zqi9E4UqLWRhH6/JocdJ6PlwsCT2TG9WjTSy3/pDceiz+/RL5h +RqGEPQgnTIEgd4kI6mdAXmwIUV80WoyWaM3X94nCHNMyAK9Sy9NgWyo6R35rMDOhYil/SrnhLecU +Iw4OGEfhefwVVdCx/CVxY3UzHCMrr1zZ7Ud3YA47Dx7SwNxkBYn8eNZcLCZDqQ== +-----END CERTIFICATE----- + +TC TrustCenter Class 2 CA II +============================ +-----BEGIN CERTIFICATE----- +MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC +REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy +IENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYw +MTEyMTQzODQzWhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1 +c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UE +AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jftMjWQ+nEdVl//OEd+DFw +IxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKguNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2 +xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2JXjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQ +Xa7pIXSSTYtZgo+U4+lK8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7u +SNQZu+995OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3kUrL84J6E1wIqzCB +7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90 +Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU +cnVzdENlbnRlciUyMENsYXNzJTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i +SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u +TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iSGNn3Bzn1LL4G +dXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprtZjluS5TmVfwLG4t3wVMTZonZ +KNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8au0WOB9/WIFaGusyiC2y8zl3gK9etmF1Kdsj +TYjKUCjLhdLTEKJZbtOTVAB6okaVhgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kP +JOzHdiEoZa5X6AeIdUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfk +vQ== +-----END CERTIFICATE----- + +TC TrustCenter Class 3 CA II +============================ +-----BEGIN CERTIFICATE----- +MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC +REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy +IENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYw +MTEyMTQ0MTU3WhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1 +c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UE +AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJWHt4bNwcwIi9v8Qbxq63W +yKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+QVl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo +6SI7dYnWRBpl8huXJh0obazovVkdKyT21oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZ +uV3bOx4a+9P/FRQI2AlqukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk +2ZyqBwi1Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NXXAek0CSnwPIA1DCB +7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90 +Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU +cnVzdENlbnRlciUyMENsYXNzJTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i +SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u +TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlNirTzwppVMXzE +O2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8TtXqluJucsG7Kv5sbviRmEb8 +yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9 +IJqDnxrcOfHFcqMRA/07QlIp2+gB95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal +092Y+tTmBvTwtiBjS+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc +5A== +-----END CERTIFICATE----- + +TC TrustCenter Universal CA I +============================= +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTELMAkGA1UEBhMC +REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy +IFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcN +MDYwMzIyMTU1NDI4WhcNMjUxMjMxMjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMg +VHJ1c3RDZW50ZXIgR21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYw +JAYDVQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSRJJZ4Hgmgm5qVSkr1YnwC +qMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3TfCZdzHd55yx4Oagmcw6iXSVphU9VDprv +xrlE4Vc93x9UIuVvZaozhDrzznq+VZeujRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtw +ag+1m7Z3W0hZneTvWq3zwZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9O +gdwZu5GQfezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYDVR0j +BBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0GCSqGSIb3DQEBBQUAA4IBAQAo0uCG +1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X17caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/Cy +vwbZ71q+s2IhtNerNXxTPqYn8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3 +ghUJGooWMNjsydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT +ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/2TYcuiUaUj0a +7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY +-----END CERTIFICATE----- + +Deutsche Telekom Root CA 2 +========================== +-----BEGIN CERTIFICATE----- +MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT +RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG +A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5 +MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G +A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS +b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5 +bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI +KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY +AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK +Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV +jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV +HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr +E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy +zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8 +rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G +dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU +Cm26OWMohpLzGITY+9HPBVZkVw== +-----END CERTIFICATE----- + +ComSign CA +========== +-----BEGIN CERTIFICATE----- +MIIDkzCCAnugAwIBAgIQFBOWgxRVjOp7Y+X8NId3RDANBgkqhkiG9w0BAQUFADA0MRMwEQYDVQQD +EwpDb21TaWduIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0wNDAzMjQxMTMy +MThaFw0yOTAzMTkxNTAyMThaMDQxEzARBgNVBAMTCkNvbVNpZ24gQ0ExEDAOBgNVBAoTB0NvbVNp +Z24xCzAJBgNVBAYTAklMMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8ORUaSvTx49q +ROR+WCf4C9DklBKK8Rs4OC8fMZwG1Cyn3gsqrhqg455qv588x26i+YtkbDqthVVRVKU4VbirgwTy +P2Q298CNQ0NqZtH3FyrV7zb6MBBC11PN+fozc0yz6YQgitZBJzXkOPqUm7h65HkfM/sb2CEJKHxN +GGleZIp6GZPKfuzzcuc3B1hZKKxC+cX/zT/npfo4sdAMx9lSGlPWgcxCejVb7Us6eva1jsz/D3zk +YDaHL63woSV9/9JLEYhwVKZBqGdTUkJe5DSe5L6j7KpiXd3DTKaCQeQzC6zJMw9kglcq/QytNuEM +rkvF7zuZ2SOzW120V+x0cAwqTwIDAQABo4GgMIGdMAwGA1UdEwQFMAMBAf8wPQYDVR0fBDYwNDAy +oDCgLoYsaHR0cDovL2ZlZGlyLmNvbXNpZ24uY28uaWwvY3JsL0NvbVNpZ25DQS5jcmwwDgYDVR0P +AQH/BAQDAgGGMB8GA1UdIwQYMBaAFEsBmz5WGmU2dst7l6qSBe4y5ygxMB0GA1UdDgQWBBRLAZs+ +VhplNnbLe5eqkgXuMucoMTANBgkqhkiG9w0BAQUFAAOCAQEA0Nmlfv4pYEWdfoPPbrxHbvUanlR2 +QnG0PFg/LUAlQvaBnPGJEMgOqnhPOAlXsDzACPw1jvFIUY0McXS6hMTXcpuEfDhOZAYnKuGntewI +mbQKDdSFc8gS4TXt8QUxHXOZDOuWyt3T5oWq8Ir7dcHyCTxlZWTzTNity4hp8+SDtwy9F1qWF8pb +/627HOkthIDYIb6FUtnUdLlphbpN7Sgy6/lhSuTENh4Z3G+EER+V9YMoGKgzkkMn3V0TBEVPh9VG +zT2ouvDzuFYkRes3x+F2T3I5GN9+dHLHcy056mDmrRGiVod7w2ia/viMcKjfZTL0pECMocJEAw6U +AGegcQCCSA== +-----END CERTIFICATE----- + +ComSign Secured CA +================== +-----BEGIN CERTIFICATE----- +MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAwPDEbMBkGA1UE +AxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0w +NDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwxGzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBD +QTEQMA4GA1UEChMHQ29tU2lnbjELMAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQDGtWhfHZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs +49ohgHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sWv+bznkqH +7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ueMv5WJDmyVIRD9YTC2LxB +kMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d1 +9guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUw +AwEB/zBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29t +U2lnblNlY3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58ADsA +j8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkqhkiG9w0BAQUFAAOC +AQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7piL1DRYHjZiM/EoZNGeQFsOY3wo3a +BijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtCdsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtp +FhpFfTMDZflScZAmlaxMDPWLkz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP +51qJThRv4zdLhfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz +OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw== +-----END CERTIFICATE----- + +Cybertrust Global Root +====================== +-----BEGIN CERTIFICATE----- +MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li +ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4 +MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD +ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA ++Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW +0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL +AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin +89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT +8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2 +MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G +A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO +lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi +5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2 +hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T +X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW +WL1WMRJOEcgh4LMRkWXbtKaIOM5V +-----END CERTIFICATE----- diff --git a/.mutt/certs/certdata.txt b/.mutt/certs/certdata.txt new file mode 100644 index 0000000..c75d876 --- /dev/null +++ b/.mutt/certs/certdata.txt @@ -0,0 +1,19539 @@ +# +# ***** 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.53 $ $Date: 2009/05/21 19:50:28 $" + +# +# 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_NETSCAPE_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_NETSCAPE_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 "Verisign/RSA 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 "Verisign/RSA Secure Server 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\125\123\061 +\040\060\036\006\003\125\004\012\023\027\122\123\101\040\104\141 +\164\141\040\123\145\143\165\162\151\164\171\054\040\111\156\143 +\056\061\056\060\054\006\003\125\004\013\023\045\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\137\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\023\027\122\123\101\040\104\141 +\164\141\040\123\145\143\165\162\151\164\171\054\040\111\156\143 +\056\061\056\060\054\006\003\125\004\013\023\045\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\020\002\255\146\176\116\105\376\136\127\157\074\230\031\136 +\335\300 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\064\060\202\001\241\002\020\002\255\146\176\116\105 +\376\136\127\157\074\230\031\136\335\300\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\040\060\036\006\003\125\004 +\012\023\027\122\123\101\040\104\141\164\141\040\123\145\143\165 +\162\151\164\171\054\040\111\156\143\056\061\056\060\054\006\003 +\125\004\013\023\045\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\064 +\061\061\060\071\060\060\060\060\060\060\132\027\015\061\060\060 +\061\060\067\062\063\065\071\065\071\132\060\137\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\040\060\036\006\003\125 +\004\012\023\027\122\123\101\040\104\141\164\141\040\123\145\143 +\165\162\151\164\171\054\040\111\156\143\056\061\056\060\054\006 +\003\125\004\013\023\045\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\233\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\201\211 +\000\060\201\205\002\176\000\222\316\172\301\256\203\076\132\252 +\211\203\127\254\045\001\166\014\255\256\216\054\067\316\353\065 +\170\144\124\003\345\204\100\121\311\277\217\010\342\212\202\010 +\322\026\206\067\125\351\261\041\002\255\166\150\201\232\005\242 +\113\311\113\045\146\042\126\154\210\007\217\367\201\131\155\204 +\007\145\160\023\161\166\076\233\167\114\343\120\211\126\230\110 +\271\035\247\051\032\023\056\112\021\131\234\036\025\325\111\124 +\054\163\072\151\202\261\227\071\234\155\160\147\110\345\335\055 +\326\310\036\173\002\003\001\000\001\060\015\006\011\052\206\110 +\206\367\015\001\001\002\005\000\003\176\000\145\335\176\341\262 +\354\260\342\072\340\354\161\106\232\031\021\270\323\307\240\264 +\003\100\046\002\076\011\234\341\022\263\321\132\366\067\245\267 +\141\003\266\133\026\151\073\306\104\010\014\210\123\014\153\227 +\111\307\076\065\334\154\271\273\252\337\134\273\072\057\223\140 +\266\251\113\115\362\040\367\315\137\177\144\173\216\334\000\134 +\327\372\167\312\071\026\131\157\016\352\323\265\203\177\115\115 +\102\126\166\264\311\137\004\370\070\370\353\322\137\165\137\315 +\173\374\345\216\200\174\374\120 +END + +# Trust for Certificate "Verisign/RSA Secure Server CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign/RSA Secure Server CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\104\143\305\061\327\314\301\000\147\224\141\053\266\126\323\277 +\202\127\204\157 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\164\173\202\003\103\360\000\236\153\263\354\107\277\205\245\223 +END +CKA_ISSUER MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\023\027\122\123\101\040\104\141 +\164\141\040\123\145\143\165\162\151\164\171\054\040\111\156\143 +\056\061\056\060\054\006\003\125\004\013\023\045\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\020\002\255\146\176\116\105\376\136\127\157\074\230\031\136 +\335\300 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_TRUE + +# +# Certificate "GTE CyberTrust 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 "GTE CyberTrust Root 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 +\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\034\060\032\006\003\125 +\004\003\023\023\107\124\105\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\105\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\034\060\032\006\003\125 +\004\003\023\023\107\124\105\040\103\171\142\145\162\124\162\165 +\163\164\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\001\243 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\001\372\060\202\001\143\002\002\001\243\060\015\006\011 +\052\206\110\206\367\015\001\001\004\005\000\060\105\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\034\060\032\006\003\125\004\003\023\023\107 +\124\105\040\103\171\142\145\162\124\162\165\163\164\040\122\157 +\157\164\060\036\027\015\071\066\060\062\062\063\062\063\060\061 +\060\060\132\027\015\060\066\060\062\062\063\062\063\065\071\060 +\060\132\060\105\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\034\060\032\006 +\003\125\004\003\023\023\107\124\105\040\103\171\142\145\162\124 +\162\165\163\164\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\270\346\117\272\333\230\174\161\174\257 +\104\267\323\017\106\331\144\345\223\301\102\216\307\272\111\215 +\065\055\172\347\213\275\345\005\061\131\306\261\057\012\014\373 +\237\247\077\242\011\146\204\126\036\067\051\033\207\351\176\014 +\312\232\237\245\177\365\025\224\243\325\242\106\202\330\150\114 +\321\067\025\006\150\257\275\370\260\263\360\051\365\225\132\011 +\026\141\167\012\042\045\324\117\105\252\307\275\345\226\337\371 +\324\250\216\102\314\044\300\036\221\047\112\265\155\006\200\143 +\071\304\242\136\070\003\002\003\001\000\001\060\015\006\011\052 +\206\110\206\367\015\001\001\004\005\000\003\201\201\000\022\263 +\165\306\137\035\341\141\125\200\000\324\201\113\173\061\017\043 +\143\347\075\363\003\371\364\066\250\273\331\343\245\227\115\352 +\053\051\340\326\152\163\201\346\300\211\243\323\361\340\245\245 +\042\067\232\143\302\110\040\264\333\162\343\310\366\331\174\276 +\261\257\123\332\024\264\041\270\326\325\226\343\376\116\014\131 +\142\266\232\112\371\102\335\214\157\201\251\161\377\364\012\162 +\155\155\104\016\235\363\164\164\250\325\064\111\351\136\236\351 +\264\172\341\345\132\037\204\060\234\323\237\245\045\330 +END + +# Trust for Certificate "GTE CyberTrust Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GTE CyberTrust Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\220\336\336\236\114\116\237\157\330\206\027\127\235\323\221\274 +\145\246\211\144 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\304\327\360\262\243\305\175\141\147\360\004\315\103\323\272\130 +END +CKA_ISSUER MULTILINE_OCTAL +\060\105\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\034\060\032\006\003\125 +\004\003\023\023\107\124\105\040\103\171\142\145\162\124\162\165 +\163\164\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\001\243 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_TRUE + +# +# 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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_TRUE + +# +# Certificate "Thawte Personal Basic 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 Personal Basic CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\313\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\032\060\030\006 +\003\125\004\012\023\021\124\150\141\167\164\145\040\103\157\156 +\163\165\154\164\151\156\147\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\145\162\163\157\156\141\154\040\102\141\163\151 +\143\040\103\101\061\050\060\046\006\011\052\206\110\206\367\015 +\001\011\001\026\031\160\145\162\163\157\156\141\154\055\142\141 +\163\151\143\100\164\150\141\167\164\145\056\143\157\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\313\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\032\060\030\006 +\003\125\004\012\023\021\124\150\141\167\164\145\040\103\157\156 +\163\165\154\164\151\156\147\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\145\162\163\157\156\141\154\040\102\141\163\151 +\143\040\103\101\061\050\060\046\006\011\052\206\110\206\367\015 +\001\011\001\026\031\160\145\162\163\157\156\141\154\055\142\141 +\163\151\143\100\164\150\141\167\164\145\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\041\060\202\002\212\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060 +\201\313\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\032\060\030\006\003 +\125\004\012\023\021\124\150\141\167\164\145\040\103\157\156\163 +\165\154\164\151\156\147\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\145\162\163\157\156\141\154\040\102\141\163\151\143 +\040\103\101\061\050\060\046\006\011\052\206\110\206\367\015\001 +\011\001\026\031\160\145\162\163\157\156\141\154\055\142\141\163 +\151\143\100\164\150\141\167\164\145\056\143\157\155\060\036\027 +\015\071\066\060\061\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\313 +\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\032\060\030\006\003\125\004 +\012\023\021\124\150\141\167\164\145\040\103\157\156\163\165\154 +\164\151\156\147\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\145\162\163\157\156\141\154\040\102\141\163\151\143\040\103 +\101\061\050\060\046\006\011\052\206\110\206\367\015\001\011\001 +\026\031\160\145\162\163\157\156\141\154\055\142\141\163\151\143 +\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\274\274\223\123\155\300\120\117 +\202\025\346\110\224\065\246\132\276\157\102\372\017\107\356\167 +\165\162\335\215\111\233\226\127\240\170\324\312\077\121\263\151 +\013\221\166\027\042\007\227\152\304\121\223\113\340\215\357\067 +\225\241\014\115\332\064\220\035\027\211\227\340\065\070\127\112 +\300\364\010\160\351\074\104\173\120\176\141\232\220\343\043\323 +\210\021\106\047\365\013\007\016\273\335\321\177\040\012\210\271 +\126\013\056\034\200\332\361\343\236\051\357\024\275\012\104\373 +\033\133\030\321\277\043\223\041\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\055\342\231\153\260\075\172\211\327\131\242 +\224\001\037\053\335\022\113\123\302\255\177\252\247\000\134\221 +\100\127\045\112\070\252\204\160\271\331\200\017\245\173\134\373 +\163\306\275\327\212\141\134\003\343\055\047\250\027\340\204\205 +\102\334\136\233\306\267\262\155\273\164\257\344\077\313\247\267 +\260\340\135\276\170\203\045\224\322\333\201\017\171\007\155\117 +\364\071\025\132\122\001\173\336\062\326\115\070\366\022\134\006 +\120\337\005\133\275\024\113\241\337\051\272\073\101\215\367\143 +\126\241\337\042\261 +END + +# Trust for Certificate "Thawte Personal Basic CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Thawte Personal Basic CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\100\347\214\035\122\075\034\331\225\117\254\032\032\263\275\074 +\272\241\133\374 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\346\013\322\311\312\055\210\333\032\161\016\113\170\353\002\101 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\313\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\032\060\030\006 +\003\125\004\012\023\021\124\150\141\167\164\145\040\103\157\156 +\163\165\154\164\151\156\147\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\145\162\163\157\156\141\154\040\102\141\163\151 +\143\040\103\101\061\050\060\046\006\011\052\206\110\206\367\015 +\001\011\001\026\031\160\145\162\163\157\156\141\154\055\142\141 +\163\151\143\100\164\150\141\167\164\145\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Thawte Personal Premium 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 Personal Premium CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\317\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\032\060\030\006 +\003\125\004\012\023\021\124\150\141\167\164\145\040\103\157\156 +\163\165\154\164\151\156\147\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\043\060\041\006\003\125\004\003\023\032\124\150\141\167 +\164\145\040\120\145\162\163\157\156\141\154\040\120\162\145\155 +\151\165\155\040\103\101\061\052\060\050\006\011\052\206\110\206 +\367\015\001\011\001\026\033\160\145\162\163\157\156\141\154\055 +\160\162\145\155\151\165\155\100\164\150\141\167\164\145\056\143 +\157\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\317\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\032\060\030\006 +\003\125\004\012\023\021\124\150\141\167\164\145\040\103\157\156 +\163\165\154\164\151\156\147\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\043\060\041\006\003\125\004\003\023\032\124\150\141\167 +\164\145\040\120\145\162\163\157\156\141\154\040\120\162\145\155 +\151\165\155\040\103\101\061\052\060\050\006\011\052\206\110\206 +\367\015\001\011\001\026\033\160\145\162\163\157\156\141\154\055 +\160\162\145\155\151\165\155\100\164\150\141\167\164\145\056\143 +\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\051\060\202\002\222\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060 +\201\317\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\032\060\030\006\003 +\125\004\012\023\021\124\150\141\167\164\145\040\103\157\156\163 +\165\154\164\151\156\147\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\043\060\041\006\003\125\004\003\023\032\124\150\141\167\164 +\145\040\120\145\162\163\157\156\141\154\040\120\162\145\155\151 +\165\155\040\103\101\061\052\060\050\006\011\052\206\110\206\367 +\015\001\011\001\026\033\160\145\162\163\157\156\141\154\055\160 +\162\145\155\151\165\155\100\164\150\141\167\164\145\056\143\157 +\155\060\036\027\015\071\066\060\061\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\317\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\032\060\030 +\006\003\125\004\012\023\021\124\150\141\167\164\145\040\103\157 +\156\163\165\154\164\151\156\147\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\043\060\041\006\003\125\004\003\023\032\124\150\141 +\167\164\145\040\120\145\162\163\157\156\141\154\040\120\162\145 +\155\151\165\155\040\103\101\061\052\060\050\006\011\052\206\110 +\206\367\015\001\011\001\026\033\160\145\162\163\157\156\141\154 +\055\160\162\145\155\151\165\155\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 +\311\146\331\370\007\104\317\271\214\056\360\241\357\023\105\154 +\005\337\336\047\026\121\066\101\021\154\154\073\355\376\020\175 +\022\236\345\233\102\232\376\140\061\303\146\267\163\072\110\256 +\116\320\062\067\224\210\265\015\266\331\363\362\104\331\325\210 +\022\335\166\115\362\032\374\157\043\036\172\361\330\230\105\116 +\007\020\357\026\102\320\103\165\155\112\336\342\252\311\061\377 +\037\000\160\174\146\317\020\045\010\272\372\356\000\351\106\003 +\146\047\021\025\073\252\133\362\230\335\066\102\262\332\210\165 +\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\151\066\211 +\367\064\052\063\162\057\155\073\324\042\262\270\157\232\305\066 +\146\016\033\074\241\261\165\132\346\375\065\323\370\250\362\007 +\157\205\147\216\336\053\271\342\027\260\072\240\360\016\242\000 +\232\337\363\024\025\156\273\310\205\132\230\200\371\377\276\164 +\035\075\363\376\060\045\321\067\064\147\372\245\161\171\060\141 +\051\162\300\340\054\114\373\126\344\072\250\157\345\062\131\122 +\333\165\050\120\131\014\370\013\031\344\254\331\257\226\215\057 +\120\333\007\303\352\037\253\063\340\365\053\061\211 +END + +# Trust for Certificate "Thawte Personal Premium CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Thawte Personal Premium CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\066\206\065\143\375\121\050\307\276\246\360\005\317\351\264\066 +\150\010\154\316 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\072\262\336\042\232\040\223\111\371\355\310\322\212\347\150\015 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\317\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\032\060\030\006 +\003\125\004\012\023\021\124\150\141\167\164\145\040\103\157\156 +\163\165\154\164\151\156\147\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\043\060\041\006\003\125\004\003\023\032\124\150\141\167 +\164\145\040\120\145\162\163\157\156\141\154\040\120\162\145\155 +\151\165\155\040\103\101\061\052\060\050\006\011\052\206\110\206 +\367\015\001\011\001\026\033\160\145\162\163\157\156\141\154\055 +\160\162\145\155\151\165\155\100\164\150\141\167\164\145\056\143 +\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Thawte Personal Freemail 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 Personal Freemail CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\321\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\032\060\030\006 +\003\125\004\012\023\021\124\150\141\167\164\145\040\103\157\156 +\163\165\154\164\151\156\147\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\044\060\042\006\003\125\004\003\023\033\124\150\141\167 +\164\145\040\120\145\162\163\157\156\141\154\040\106\162\145\145 +\155\141\151\154\040\103\101\061\053\060\051\006\011\052\206\110 +\206\367\015\001\011\001\026\034\160\145\162\163\157\156\141\154 +\055\146\162\145\145\155\141\151\154\100\164\150\141\167\164\145 +\056\143\157\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\321\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\032\060\030\006 +\003\125\004\012\023\021\124\150\141\167\164\145\040\103\157\156 +\163\165\154\164\151\156\147\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\044\060\042\006\003\125\004\003\023\033\124\150\141\167 +\164\145\040\120\145\162\163\157\156\141\154\040\106\162\145\145 +\155\141\151\154\040\103\101\061\053\060\051\006\011\052\206\110 +\206\367\015\001\011\001\026\034\160\145\162\163\157\156\141\154 +\055\146\162\145\145\155\141\151\154\100\164\150\141\167\164\145 +\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\055\060\202\002\226\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060 +\201\321\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\032\060\030\006\003 +\125\004\012\023\021\124\150\141\167\164\145\040\103\157\156\163 +\165\154\164\151\156\147\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\044\060\042\006\003\125\004\003\023\033\124\150\141\167\164 +\145\040\120\145\162\163\157\156\141\154\040\106\162\145\145\155 +\141\151\154\040\103\101\061\053\060\051\006\011\052\206\110\206 +\367\015\001\011\001\026\034\160\145\162\163\157\156\141\154\055 +\146\162\145\145\155\141\151\154\100\164\150\141\167\164\145\056 +\143\157\155\060\036\027\015\071\066\060\061\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\321\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\032 +\060\030\006\003\125\004\012\023\021\124\150\141\167\164\145\040 +\103\157\156\163\165\154\164\151\156\147\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\044\060\042\006\003\125\004\003\023\033\124 +\150\141\167\164\145\040\120\145\162\163\157\156\141\154\040\106 +\162\145\145\155\141\151\154\040\103\101\061\053\060\051\006\011 +\052\206\110\206\367\015\001\011\001\026\034\160\145\162\163\157 +\156\141\154\055\146\162\145\145\155\141\151\154\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\324\151\327\324\260\224\144\133\161\351\107\330 +\014\121\266\352\162\221\260\204\136\175\055\015\217\173\022\337 +\205\045\165\050\164\072\102\054\143\047\237\225\173\113\357\176 +\031\207\035\206\352\243\335\271\316\226\144\032\302\024\156\104 +\254\174\346\217\350\115\017\161\037\100\070\246\000\243\207\170 +\366\371\224\206\136\255\352\300\136\166\353\331\024\243\135\156 +\172\174\014\245\113\125\177\006\031\051\177\236\232\046\325\152 +\273\070\044\010\152\230\307\261\332\243\230\221\375\171\333\345 +\132\304\034\271\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\307\354\222\176\116\370\365\226\245\147\142\052\244\360\115 +\021\140\320\157\215\140\130\141\254\046\273\122\065\134\010\317 +\060\373\250\112\226\212\037\142\102\043\214\027\017\364\272\144 +\234\027\254\107\051\337\235\230\136\322\154\140\161\134\242\254 +\334\171\343\347\156\000\107\037\265\015\050\350\002\235\344\232 +\375\023\364\246\331\174\261\370\334\137\043\046\011\221\200\163 +\320\024\033\336\103\251\203\045\362\346\234\057\025\312\376\246 +\253\212\007\165\213\014\335\121\204\153\344\370\321\316\167\242 +\201 +END + +# Trust for Certificate "Thawte Personal Freemail CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Thawte Personal Freemail CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\040\231\000\266\075\225\127\050\024\014\321\066\042\330\306\207 +\244\353\000\205 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\036\164\303\206\074\014\065\305\076\302\177\357\074\252\074\331 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\321\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\032\060\030\006 +\003\125\004\012\023\021\124\150\141\167\164\145\040\103\157\156 +\163\165\154\164\151\156\147\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\044\060\042\006\003\125\004\003\023\033\124\150\141\167 +\164\145\040\120\145\162\163\157\156\141\154\040\106\162\145\145 +\155\141\151\154\040\103\101\061\053\060\051\006\011\052\206\110 +\206\367\015\001\011\001\026\034\160\145\162\163\157\156\141\154 +\055\146\162\145\145\155\141\151\154\100\164\150\141\167\164\145 +\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_TRUE + +# +# 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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_TRUE + +# +# 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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "ABAecom (sub., Am. Bankers Assn.) 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 "ABAecom (sub., Am. Bankers Assn.) Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\211\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\104\103\061\023\060 +\021\006\003\125\004\007\023\012\127\141\163\150\151\156\147\164 +\157\156\061\027\060\025\006\003\125\004\012\023\016\101\102\101 +\056\105\103\117\115\054\040\111\116\103\056\061\031\060\027\006 +\003\125\004\003\023\020\101\102\101\056\105\103\117\115\040\122 +\157\157\164\040\103\101\061\044\060\042\006\011\052\206\110\206 +\367\015\001\011\001\026\025\141\144\155\151\156\100\144\151\147 +\163\151\147\164\162\165\163\164\056\143\157\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\211\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\104\103\061\023\060 +\021\006\003\125\004\007\023\012\127\141\163\150\151\156\147\164 +\157\156\061\027\060\025\006\003\125\004\012\023\016\101\102\101 +\056\105\103\117\115\054\040\111\116\103\056\061\031\060\027\006 +\003\125\004\003\023\020\101\102\101\056\105\103\117\115\040\122 +\157\157\164\040\103\101\061\044\060\042\006\011\052\206\110\206 +\367\015\001\011\001\026\025\141\144\155\151\156\100\144\151\147 +\163\151\147\164\162\165\163\164\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\320\036\100\220\000\000\106\122\000\000\000\001\000 +\000\000\004 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\265\060\202\002\235\240\003\002\001\002\002\021\000 +\320\036\100\220\000\000\106\122\000\000\000\001\000\000\000\004 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\201\211\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\013\060\011\006\003\125\004\010\023\002\104\103\061\023\060\021 +\006\003\125\004\007\023\012\127\141\163\150\151\156\147\164\157 +\156\061\027\060\025\006\003\125\004\012\023\016\101\102\101\056 +\105\103\117\115\054\040\111\116\103\056\061\031\060\027\006\003 +\125\004\003\023\020\101\102\101\056\105\103\117\115\040\122\157 +\157\164\040\103\101\061\044\060\042\006\011\052\206\110\206\367 +\015\001\011\001\026\025\141\144\155\151\156\100\144\151\147\163 +\151\147\164\162\165\163\164\056\143\157\155\060\036\027\015\071 +\071\060\067\061\062\061\067\063\063\065\063\132\027\015\060\071 +\060\067\060\071\061\067\063\063\065\063\132\060\201\211\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\013\060\011\006 +\003\125\004\010\023\002\104\103\061\023\060\021\006\003\125\004 +\007\023\012\127\141\163\150\151\156\147\164\157\156\061\027\060 +\025\006\003\125\004\012\023\016\101\102\101\056\105\103\117\115 +\054\040\111\116\103\056\061\031\060\027\006\003\125\004\003\023 +\020\101\102\101\056\105\103\117\115\040\122\157\157\164\040\103 +\101\061\044\060\042\006\011\052\206\110\206\367\015\001\011\001 +\026\025\141\144\155\151\156\100\144\151\147\163\151\147\164\162 +\165\163\164\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\261\323\021\340\171\125\103\007 +\010\114\313\005\102\000\342\015\203\106\075\344\223\272\266\006 +\323\015\131\275\076\301\316\103\147\001\212\041\250\357\274\314 +\320\242\314\260\125\226\123\204\146\005\000\332\104\111\200\330 +\124\012\245\045\206\224\355\143\126\377\160\154\243\241\031\322 +\170\276\150\052\104\136\057\317\314\030\136\107\274\072\261\106 +\075\036\360\271\054\064\137\214\174\114\010\051\235\100\125\353 +\074\175\203\336\265\360\367\212\203\016\241\114\264\072\245\263 +\137\132\042\227\354\031\233\301\005\150\375\346\267\251\221\224 +\054\344\170\110\044\032\045\031\072\353\225\234\071\012\212\317 +\102\262\360\034\325\137\373\153\355\150\126\173\071\054\162\070 +\260\356\223\251\323\173\167\074\353\161\003\251\070\112\026\154 +\211\052\312\332\063\023\171\302\125\214\355\234\273\362\313\133 +\020\370\056\141\065\306\051\114\052\320\052\143\321\145\131\264 +\370\315\371\364\000\204\266\127\102\205\235\062\250\371\052\124 +\373\377\170\101\274\275\161\050\364\273\220\274\377\226\064\004 +\343\105\236\241\106\050\100\201\002\003\001\000\001\243\026\060 +\024\060\022\006\003\125\035\023\001\001\377\004\010\060\006\001 +\001\377\002\001\010\060\015\006\011\052\206\110\206\367\015\001 +\001\005\005\000\003\202\001\001\000\004\157\045\206\344\346\226 +\047\264\331\102\300\320\311\000\261\177\124\076\207\262\155\044 +\251\057\012\176\375\244\104\260\370\124\007\275\033\235\235\312 +\173\120\044\173\021\133\111\243\246\277\022\164\325\211\267\267 +\057\230\144\045\024\267\141\351\177\140\200\153\323\144\350\253 +\275\032\326\121\372\300\264\135\167\032\177\144\010\136\171\306 +\005\114\361\172\335\115\175\316\346\110\173\124\322\141\222\201 +\326\033\326\000\360\016\236\050\167\240\115\210\307\042\166\031 +\303\307\236\033\246\167\170\370\137\233\126\321\360\362\027\254 +\216\235\131\346\037\376\127\266\331\136\341\135\237\105\354\141 +\150\031\101\341\262\040\046\376\132\060\166\044\377\100\162\074 +\171\237\174\042\110\253\106\315\333\263\206\054\217\277\005\101 +\323\301\343\024\343\101\027\046\320\174\247\161\114\031\350\112 +\017\162\130\061\175\354\140\172\243\042\050\275\031\044\140\077 +\073\207\163\300\153\344\313\256\267\253\045\103\262\125\055\173 +\253\006\016\165\135\064\345\135\163\155\236\262\165\100\245\131 +\311\117\061\161\210\331\210\177\124 +END + +# Trust for Certificate "ABAecom (sub., Am. Bankers Assn.) Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ABAecom (sub., Am. Bankers Assn.) Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\172\164\101\017\260\315\134\227\052\066\113\161\277\003\035\210 +\246\121\016\236 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\101\270\007\367\250\321\011\356\264\232\216\160\115\374\033\170 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\211\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\013\060\011\006\003\125\004\010\023\002\104\103\061\023\060 +\021\006\003\125\004\007\023\012\127\141\163\150\151\156\147\164 +\157\156\061\027\060\025\006\003\125\004\012\023\016\101\102\101 +\056\105\103\117\115\054\040\111\116\103\056\061\031\060\027\006 +\003\125\004\003\023\020\101\102\101\056\105\103\117\115\040\122 +\157\157\164\040\103\101\061\044\060\042\006\011\052\206\110\206 +\367\015\001\011\001\026\025\141\144\155\151\156\100\144\151\147 +\163\151\147\164\162\165\163\164\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\320\036\100\220\000\000\106\122\000\000\000\001\000 +\000\000\004 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_TRUE + +# +# 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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_TRUE + +# +# 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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_TRUE + +# +# Certificate "Digital Signature Trust Co. 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 "Digital Signature Trust Co. Global CA 2" +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\165\163 +\061\015\060\013\006\003\125\004\010\023\004\125\164\141\150\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\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\130 +\061\061\026\060\024\006\003\125\004\003\023\015\104\123\124\040 +\122\157\157\164\103\101\040\130\061\061\041\060\037\006\011\052 +\206\110\206\367\015\001\011\001\026\022\143\141\100\144\151\147 +\163\151\147\164\162\165\163\164\056\143\157\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\251\061\013\060\011\006\003\125\004\006\023\002\165\163 +\061\015\060\013\006\003\125\004\010\023\004\125\164\141\150\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\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\130 +\061\061\026\060\024\006\003\125\004\003\023\015\104\123\124\040 +\122\157\157\164\103\101\040\130\061\061\041\060\037\006\011\052 +\206\110\206\367\015\001\011\001\026\022\143\141\100\144\151\147 +\163\151\147\164\162\165\163\164\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\320\036\100\213\000\000\002\174\000\000\000\002\000 +\000\000\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\330\060\202\002\300\002\021\000\320\036\100\213\000 +\000\002\174\000\000\000\002\000\000\000\001\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\165\163\061\015\060\013\006\003 +\125\004\010\023\004\125\164\141\150\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\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\130\061\061\026\060\024\006 +\003\125\004\003\023\015\104\123\124\040\122\157\157\164\103\101 +\040\130\061\061\041\060\037\006\011\052\206\110\206\367\015\001 +\011\001\026\022\143\141\100\144\151\147\163\151\147\164\162\165 +\163\164\056\143\157\155\060\036\027\015\071\070\061\062\060\061 +\061\070\061\070\065\065\132\027\015\060\070\061\061\062\070\061 +\070\061\070\065\065\132\060\201\251\061\013\060\011\006\003\125 +\004\006\023\002\165\163\061\015\060\013\006\003\125\004\010\023 +\004\125\164\141\150\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\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\130\061\061\026\060\024\006\003\125\004\003 +\023\015\104\123\124\040\122\157\157\164\103\101\040\130\061\061 +\041\060\037\006\011\052\206\110\206\367\015\001\011\001\026\022 +\143\141\100\144\151\147\163\151\147\164\162\165\163\164\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\322\306\046\266\347\245\075\301\304\150\325\120\157 +\123\305\157\111\023\011\270\257\054\110\215\024\152\243\027\137 +\132\371\323\056\165\057\330\050\142\321\223\057\374\115\324\253 +\207\345\010\307\231\347\222\077\165\275\353\045\264\025\301\233 +\031\075\322\104\215\327\164\040\155\067\002\217\151\223\133\212 +\304\031\235\364\262\016\374\026\154\271\261\005\222\203\321\205 +\054\140\224\076\105\125\240\331\253\010\041\346\140\350\073\164 +\362\231\120\121\150\320\003\055\261\200\276\243\330\122\260\104 +\315\103\112\160\216\130\205\225\341\116\054\326\055\101\157\326 +\204\347\310\230\104\312\107\333\054\044\245\151\046\317\153\270 +\047\142\303\364\311\172\222\043\355\023\147\202\256\105\056\105 +\345\176\162\077\205\235\224\142\020\346\074\221\241\255\167\000 +\340\025\354\363\204\200\162\172\216\156\140\227\307\044\131\020 +\064\203\133\341\245\244\151\266\127\065\034\170\131\306\323\057 +\072\163\147\356\224\312\004\023\005\142\006\160\043\263\364\174 +\356\105\331\144\013\133\111\252\244\103\316\046\304\104\022\154 +\270\335\171\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\242\067\262\077 +\151\373\327\206\171\124\111\061\225\063\053\363\321\011\024\111 +\142\140\206\245\260\021\342\120\302\035\006\127\076\055\350\063 +\144\276\233\252\255\137\033\115\324\231\225\242\213\232\311\142 +\162\265\151\352\331\130\253\065\355\025\242\103\326\266\274\007 +\171\145\144\163\175\327\171\312\173\325\132\121\306\341\123\004 +\226\215\070\317\243\027\254\071\161\153\001\303\213\123\074\143 +\351\356\171\300\344\276\222\062\144\172\263\037\227\224\142\275 +\352\262\040\025\225\373\227\362\170\057\143\066\100\070\343\106 +\017\035\335\254\225\312\347\113\220\173\261\113\251\324\305\353 +\232\332\252\325\243\224\024\106\215\055\037\363\072\326\223\072 +\366\076\171\374\350\346\260\165\355\356\075\311\160\307\135\252 +\201\113\106\045\034\307\154\025\343\225\116\017\252\062\067\224 +\012\027\044\222\023\204\130\322\143\157\053\367\346\133\142\013 +\023\027\260\015\122\114\376\376\157\134\342\221\156\035\375\244 +\142\327\150\372\216\172\117\322\010\332\223\334\360\222\021\172 +\320\334\162\223\014\163\223\142\205\150\320\364 +END + +# Trust for Certificate "Digital Signature Trust Co. Global CA 2" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_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 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\267\057\377\222\322\316\103\336\012\215\114\124\214\120\067\046 +\250\036\053\223 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\154\311\247\156\107\361\014\343\123\073\170\114\115\302\152\305 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\251\061\013\060\011\006\003\125\004\006\023\002\165\163 +\061\015\060\013\006\003\125\004\010\023\004\125\164\141\150\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\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\130 +\061\061\026\060\024\006\003\125\004\003\023\015\104\123\124\040 +\122\157\157\164\103\101\040\130\061\061\041\060\037\006\011\052 +\206\110\206\367\015\001\011\001\026\022\143\141\100\144\151\147 +\163\151\147\164\162\165\163\164\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\320\036\100\213\000\000\002\174\000\000\000\002\000 +\000\000\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_TRUE + +# +# Certificate "Digital Signature Trust Co. Global CA 4" +# +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 4" +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\165\163 +\061\015\060\013\006\003\125\004\010\023\004\125\164\141\150\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\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\130 +\062\061\026\060\024\006\003\125\004\003\023\015\104\123\124\040 +\122\157\157\164\103\101\040\130\062\061\041\060\037\006\011\052 +\206\110\206\367\015\001\011\001\026\022\143\141\100\144\151\147 +\163\151\147\164\162\165\163\164\056\143\157\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\251\061\013\060\011\006\003\125\004\006\023\002\165\163 +\061\015\060\013\006\003\125\004\010\023\004\125\164\141\150\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\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\130 +\062\061\026\060\024\006\003\125\004\003\023\015\104\123\124\040 +\122\157\157\164\103\101\040\130\062\061\041\060\037\006\011\052 +\206\110\206\367\015\001\011\001\026\022\143\141\100\144\151\147 +\163\151\147\164\162\165\163\164\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\320\036\100\213\000\000\167\155\000\000\000\001\000 +\000\000\004 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\330\060\202\002\300\002\021\000\320\036\100\213\000 +\000\167\155\000\000\000\001\000\000\000\004\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\165\163\061\015\060\013\006\003 +\125\004\010\023\004\125\164\141\150\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\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\130\062\061\026\060\024\006 +\003\125\004\003\023\015\104\123\124\040\122\157\157\164\103\101 +\040\130\062\061\041\060\037\006\011\052\206\110\206\367\015\001 +\011\001\026\022\143\141\100\144\151\147\163\151\147\164\162\165 +\163\164\056\143\157\155\060\036\027\015\071\070\061\061\063\060 +\062\062\064\066\061\066\132\027\015\060\070\061\061\062\067\062 +\062\064\066\061\066\132\060\201\251\061\013\060\011\006\003\125 +\004\006\023\002\165\163\061\015\060\013\006\003\125\004\010\023 +\004\125\164\141\150\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\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\130\062\061\026\060\024\006\003\125\004\003 +\023\015\104\123\124\040\122\157\157\164\103\101\040\130\062\061 +\041\060\037\006\011\052\206\110\206\367\015\001\011\001\026\022 +\143\141\100\144\151\147\163\151\147\164\162\165\163\164\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\334\165\360\214\300\165\226\232\300\142\037\046\367 +\304\341\232\352\340\126\163\133\231\315\001\104\250\010\266\325 +\247\332\032\004\030\071\222\112\170\243\201\302\365\167\172\120 +\264\160\377\232\253\306\307\312\156\203\117\102\230\373\046\013 +\332\334\155\326\251\231\125\122\147\351\050\003\222\334\345\260 +\005\232\017\025\371\153\131\162\126\362\372\071\374\252\150\356 +\017\037\020\203\057\374\235\372\027\226\335\202\343\346\105\175 +\300\113\200\104\037\355\054\340\204\375\221\134\222\124\151\045 +\345\142\151\334\345\356\000\122\275\063\013\255\165\002\205\247 +\144\120\055\305\031\031\060\300\046\333\311\323\375\056\231\255 +\131\265\013\115\324\101\256\205\110\103\131\334\267\250\342\242 +\336\303\217\327\270\241\142\246\150\120\122\344\317\061\247\224 +\205\332\237\106\062\027\126\345\362\353\146\075\022\377\103\333 +\230\357\167\317\313\201\215\064\261\306\120\112\046\321\344\076 +\101\120\257\154\256\042\064\056\325\153\156\203\272\171\270\166 +\145\110\332\011\051\144\143\042\271\373\107\166\205\214\206\104 +\313\011\333\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\265\066\016\135 +\341\141\050\132\021\145\300\077\203\003\171\115\276\050\246\013 +\007\002\122\205\315\370\221\320\020\154\265\152\040\133\034\220 +\331\060\074\306\110\236\212\136\144\371\241\161\167\357\004\047 +\037\007\353\344\046\367\163\164\311\104\030\032\146\323\340\103 +\257\221\073\321\313\054\330\164\124\072\034\115\312\324\150\315 +\043\174\035\020\236\105\351\366\000\156\246\315\031\377\117\054 +\051\217\127\115\304\167\222\276\340\114\011\373\135\104\206\146 +\041\250\271\062\242\126\325\351\214\203\174\131\077\304\361\013 +\347\235\354\236\275\234\030\016\076\302\071\171\050\267\003\015 +\010\313\306\347\331\001\067\120\020\354\314\141\026\100\324\257 +\061\164\173\374\077\061\247\320\107\163\063\071\033\314\116\152 +\327\111\203\021\006\376\353\202\130\063\062\114\360\126\254\036 +\234\057\126\232\173\301\112\034\245\375\125\066\316\374\226\115 +\364\260\360\354\267\154\202\355\057\061\231\102\114\251\262\015 +\270\025\135\361\337\272\311\265\112\324\144\230\263\046\251\060 +\310\375\246\354\253\226\041\255\177\302\170\266 +END + +# Trust for Certificate "Digital Signature Trust Co. Global CA 4" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_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 4" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\147\353\063\173\150\114\353\016\302\260\166\012\264\210\047\214 +\335\225\227\335 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\315\073\075\142\133\011\270\011\066\207\236\022\057\161\144\272 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\251\061\013\060\011\006\003\125\004\006\023\002\165\163 +\061\015\060\013\006\003\125\004\010\023\004\125\164\141\150\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\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\130 +\062\061\026\060\024\006\003\125\004\003\023\015\104\123\124\040 +\122\157\157\164\103\101\040\130\062\061\041\060\037\006\011\052 +\206\110\206\367\015\001\011\001\026\022\143\141\100\144\151\147 +\163\151\147\164\162\165\163\164\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\320\036\100\213\000\000\167\155\000\000\000\001\000 +\000\000\004 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_TRUE + +# +# 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\021\000\315\272\177\126\360\337\344\274\124\376\042\254\263 +\162\252\125 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\075\060\202\001\246\002\021\000\315\272\177\126\360 +\337\344\274\124\376\042\254\263\162\252\125\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\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\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\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\002\005\000\003\201\201 +\000\114\077\270\213\306\150\337\356\103\063\016\135\351\246\313 +\007\204\115\172\063\377\222\033\364\066\255\330\225\042\066\150 +\021\154\174\102\314\363\234\056\304\007\077\024\260\017\117\377 +\220\222\166\371\342\274\112\351\217\315\240\200\012\367\305\051 +\361\202\042\135\270\261\335\201\043\243\173\045\025\106\060\171 +\026\370\352\005\113\224\177\035\302\034\310\343\267\364\020\100 +\074\023\303\137\037\123\350\110\344\206\264\173\241\065\260\173 +\045\272\270\323\216\253\077\070\235\000\064\000\230\363\321\161 +\224 +END + +# Trust for Certificate "Verisign Class 1 Public Primary Certification Authority" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_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 +\220\256\242\151\205\377\024\200\114\103\111\122\354\351\140\204 +\167\257\125\157 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\227\140\350\127\137\323\120\107\345\103\014\224\066\212\260\142 +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\021\000\315\272\177\126\360\337\344\274\124\376\042\254\263 +\162\252\125 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Verisign Class 2 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 2 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\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 +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\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 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\055\033\374\112\027\215\243\221\353\347\377\365\213\105 +\276\013 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\074\060\202\001\245\002\020\055\033\374\112\027\215 +\243\221\353\347\377\365\213\105\276\013\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\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\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\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\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\266\132\213\243\015\152\043\203 +\200\153\317\071\207\364\041\023\063\006\114\045\242\355\125\022 +\227\305\247\200\271\372\203\301\040\240\372\057\025\015\174\241 +\140\153\176\171\054\372\006\017\072\256\366\033\157\261\322\377 +\057\050\122\137\203\175\113\304\172\267\370\146\037\200\124\374 +\267\302\216\131\112\024\127\106\321\232\223\276\101\221\003\273 +\025\200\223\134\353\347\314\010\154\077\076\263\112\374\377\113 +\154\043\325\120\202\046\104\031\216\043\303\161\352\031\044\107 +\004\236\165\277\310\246\000\037\002\003\001\000\001\060\015\006 +\011\052\206\110\206\367\015\001\001\002\005\000\003\201\201\000 +\212\033\053\372\071\301\164\327\136\330\031\144\242\130\112\055 +\067\340\063\107\017\254\355\367\252\333\036\344\213\006\134\140 +\047\312\105\122\316\026\357\077\006\144\347\224\150\174\140\063 +\025\021\151\257\235\142\215\243\003\124\153\246\276\345\356\005 +\030\140\004\277\102\200\375\320\250\250\036\001\073\367\243\134 +\257\243\334\346\046\200\043\074\270\104\164\367\012\256\111\213 +\141\170\314\044\277\210\212\247\016\352\163\031\101\375\115\003 +\360\210\321\345\170\215\245\052\117\366\227\015\027\167\312\330 +END + +# Trust for Certificate "Verisign Class 2 Public Primary Certification Authority" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_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" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\147\202\252\340\355\356\342\032\130\071\323\300\315\024\150\012 +\117\140\024\052 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\263\234\045\261\303\056\062\123\200\025\060\235\115\002\167\076 +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\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 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\055\033\374\112\027\215\243\221\353\347\377\365\213\105 +\276\013 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_TRUE + +# +# 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_NETSCAPE_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_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Verisign Class 4 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 4 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\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\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\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\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\062\210\216\232\322\365\353\023\107\370\177\304\040\067 +\045\370 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\002\060\202\002\153\002\020\062\210\216\232\322\365 +\353\023\107\370\177\304\040\067\045\370\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\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\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\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\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\272\360 +\344\317\371\304\256\205\124\271\007\127\371\217\305\177\150\021 +\370\304\027\260\104\334\343\060\163\325\052\142\052\270\320\314 +\034\355\050\133\176\275\152\334\263\221\044\312\101\142\074\374 +\002\001\277\034\026\061\224\005\227\166\156\242\255\275\141\027 +\154\116\060\206\360\121\067\052\120\307\250\142\201\334\133\112 +\252\301\240\264\156\353\057\345\127\305\261\053\100\160\333\132 +\115\241\216\037\275\003\037\330\003\324\217\114\231\161\274\342 +\202\314\130\350\230\072\206\323\206\070\363\000\051\037\002\003 +\001\000\001\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\003\201\201\000\205\214\022\301\247\271\120\025\172\313 +\076\254\270\103\212\334\252\335\024\272\211\201\176\001\074\043 +\161\041\210\057\202\334\143\372\002\105\254\105\131\327\052\130 +\104\133\267\237\201\073\222\150\075\342\067\044\365\173\154\217 +\166\065\226\011\250\131\235\271\316\043\253\164\326\203\375\062 +\163\047\330\151\076\103\164\366\256\305\211\232\347\123\174\351 +\173\366\113\363\301\145\203\336\215\212\234\074\210\215\071\131 +\374\252\077\042\215\241\301\146\120\201\162\114\355\042\144\117 +\117\312\200\221\266\051 +END + +# Trust for Certificate "Verisign Class 4 Public Primary Certification Authority - G2" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_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 - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\013\167\276\273\313\172\242\107\005\336\314\017\275\152\002\374 +\172\275\233\122 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\046\155\054\031\230\266\160\150\070\120\124\031\354\220\064\140 +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\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\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\062\210\216\232\322\365\353\023\107\370\177\304\040\067 +\045\370 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_TRUE + +# +# 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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_TRUE + +# +# 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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Entrust.net Secure Personal 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 Personal CA" +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\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\110\060\106\006\003\125\004\013\024 +\077\167\167\167\056\145\156\164\162\165\163\164\056\156\145\164 +\057\103\154\151\145\156\164\137\103\101\137\111\156\146\157\057 +\103\120\123\040\151\156\143\157\162\160\056\040\142\171\040\162 +\145\146\056\040\154\151\155\151\164\163\040\154\151\141\142\056 +\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\154 +\151\145\156\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\311\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\110\060\106\006\003\125\004\013\024 +\077\167\167\167\056\145\156\164\162\165\163\164\056\156\145\164 +\057\103\154\151\145\156\164\137\103\101\137\111\156\146\157\057 +\103\120\123\040\151\156\143\157\162\160\056\040\142\171\040\162 +\145\146\056\040\154\151\155\151\164\163\040\154\151\141\142\056 +\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\154 +\151\145\156\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\070\003\221\356 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\355\060\202\004\126\240\003\002\001\002\002\004\070 +\003\221\356\060\015\006\011\052\206\110\206\367\015\001\001\004 +\005\000\060\201\311\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\110\060\106\006\003\125\004 +\013\024\077\167\167\167\056\145\156\164\162\165\163\164\056\156 +\145\164\057\103\154\151\145\156\164\137\103\101\137\111\156\146 +\157\057\103\120\123\040\151\156\143\157\162\160\056\040\142\171 +\040\162\145\146\056\040\154\151\155\151\164\163\040\154\151\141 +\142\056\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\154\151\145\156\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\071\071\061\060\061\062\061\071\062\064\063\060\132\027 +\015\061\071\061\060\061\062\061\071\065\064\063\060\132\060\201 +\311\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\110\060\106\006\003\125\004\013\024\077\167 +\167\167\056\145\156\164\162\165\163\164\056\156\145\164\057\103 +\154\151\145\156\164\137\103\101\137\111\156\146\157\057\103\120 +\123\040\151\156\143\157\162\160\056\040\142\171\040\162\145\146 +\056\040\154\151\155\151\164\163\040\154\151\141\142\056\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\154\151\145 +\156\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\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\310\072\231\136\061\027\337\254\047 +\157\220\173\344\031\377\105\243\064\302\333\301\250\117\360\150 +\352\204\375\237\165\171\317\301\212\121\224\257\307\127\003\107 +\144\236\255\202\033\132\332\177\067\170\107\273\067\230\022\226 +\316\306\023\175\357\322\014\060\121\251\071\236\125\370\373\261 +\347\060\336\203\262\272\076\361\325\211\073\073\205\272\252\164 +\054\376\077\061\156\257\221\225\156\006\324\007\115\113\054\126 +\107\030\004\122\332\016\020\223\277\143\220\233\341\337\214\346 +\002\244\346\117\136\367\213\002\001\003\243\202\001\340\060\202 +\001\334\060\021\006\011\140\206\110\001\206\370\102\001\001\004 +\004\003\002\000\007\060\202\001\042\006\003\125\035\037\004\202 +\001\031\060\202\001\025\060\201\344\240\201\341\240\201\336\244 +\201\333\060\201\330\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\110\060\106\006\003\125\004 +\013\024\077\167\167\167\056\145\156\164\162\165\163\164\056\156 +\145\164\057\103\154\151\145\156\164\137\103\101\137\111\156\146 +\157\057\103\120\123\040\151\156\143\157\162\160\056\040\142\171 +\040\162\145\146\056\040\154\151\155\151\164\163\040\154\151\141 +\142\056\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\154\151\145\156\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\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\167\167\167\056 +\145\156\164\162\165\163\164\056\156\145\164\057\103\122\114\057 +\103\154\151\145\156\164\061\056\143\162\154\060\053\006\003\125 +\035\020\004\044\060\042\200\017\061\071\071\071\061\060\061\062 +\061\071\062\064\063\060\132\201\017\062\060\061\071\061\060\061 +\062\061\071\062\064\063\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\304\373\234\051\173\227\315\114\226\374\356\133\263\312 +\231\164\213\225\352\114\060\035\006\003\125\035\016\004\026\004 +\024\304\373\234\051\173\227\315\114\226\374\356\133\263\312\231 +\164\213\225\352\114\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\004\005\000\003\201\201 +\000\077\256\212\361\327\146\003\005\236\076\372\352\034\106\273 +\244\133\217\170\232\022\110\231\371\364\065\336\014\066\007\002 +\153\020\072\211\024\201\234\061\246\174\262\101\262\152\347\007 +\001\241\113\371\237\045\073\226\312\231\303\076\241\121\034\363 +\303\056\104\367\260\147\106\252\222\345\073\332\034\031\024\070 +\060\325\342\242\061\045\056\361\354\105\070\355\370\006\130\003 +\163\142\260\020\061\217\100\277\144\340\134\076\305\117\037\332 +\022\103\377\114\346\006\046\250\233\031\252\104\074\166\262\134 +\354 +END + +# Trust for Certificate "Entrust.net Secure Personal CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_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 Personal CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\332\171\301\161\021\120\302\064\071\252\053\013\014\142\375\125 +\262\371\365\200 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\014\101\057\023\133\240\124\365\226\146\055\176\315\016\003\364 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\311\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\110\060\106\006\003\125\004\013\024 +\077\167\167\167\056\145\156\164\162\165\163\164\056\156\145\164 +\057\103\154\151\145\156\164\137\103\101\137\111\156\146\157\057 +\103\120\123\040\151\156\143\157\162\160\056\040\142\171\040\162 +\145\146\056\040\154\151\155\151\164\163\040\154\151\141\142\056 +\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\154 +\151\145\156\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\070\003\221\356 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Visa International Global 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 "Visa International Global Root 2" +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 +\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 +\022\060\020\006\003\125\004\003\023\011\107\120\040\122\157\157 +\164\040\062 +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 +\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 +\022\060\020\006\003\125\004\003\023\011\107\120\040\122\157\157 +\164\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\003\036 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\200\060\202\002\150\240\003\002\001\002\002\002\003 +\036\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 +\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 +\022\060\020\006\003\125\004\003\023\011\107\120\040\122\157\157 +\164\040\062\060\036\027\015\060\060\060\070\061\066\062\062\065 +\061\060\060\132\027\015\062\060\060\070\061\065\062\063\065\071 +\060\060\132\060\141\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\022\060\020\006\003\125\004\003\023\011\107\120\040 +\122\157\157\164\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\251\001\160\265\252\304\100\360\253 +\152\046\141\171\031\000\374\277\233\067\131\014\257\157\144\033 +\370\332\225\224\044\151\063\021\160\312\343\126\164\242\027\127 +\144\134\040\006\341\326\357\161\267\073\367\253\301\151\320\111 +\244\261\004\327\364\127\142\211\134\260\165\055\027\044\151\343 +\102\140\344\356\164\326\253\200\126\330\210\050\341\373\155\042 +\375\043\174\106\163\117\176\124\163\036\250\054\125\130\165\267 +\114\363\132\105\245\002\032\372\332\235\303\105\303\042\136\363 +\213\361\140\051\322\307\137\264\014\072\121\203\357\060\370\324 +\347\307\362\372\231\243\042\120\276\371\005\067\243\255\355\232 +\303\346\354\210\033\266\031\047\033\070\213\200\115\354\271\307 +\305\211\313\374\032\062\355\043\360\265\001\130\371\366\217\340 +\205\251\114\011\162\071\022\333\263\365\317\116\142\144\332\306 +\031\025\072\143\035\351\027\125\241\114\042\074\064\062\106\370 +\145\127\272\053\357\066\214\152\372\331\331\104\364\252\335\204 +\327\015\034\262\124\254\062\205\264\144\015\336\101\273\261\064 +\306\001\206\062\144\325\237\002\003\001\000\001\243\102\060\100 +\060\035\006\003\125\035\016\004\026\004\024\236\175\113\064\277 +\161\255\302\005\366\003\165\200\316\251\117\032\304\044\114\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\041\245\166\024\125\371\255\047\160\217\074\364 +\325\154\310\314\012\253\243\230\013\212\006\043\305\311\141\333 +\231\007\151\065\046\061\376\307\056\204\302\231\141\324\015\351 +\175\056\023\053\174\216\205\266\205\307\113\317\065\266\054\107 +\075\316\051\057\330\157\237\211\034\144\223\277\010\275\166\320 +\220\212\224\263\177\050\133\156\254\115\063\054\355\145\334\026 +\314\342\315\256\244\075\142\222\006\225\046\277\337\271\344\040 +\246\163\152\301\276\367\224\104\326\115\157\052\013\153\030\115 +\164\020\066\150\152\132\301\152\247\335\066\051\214\270\060\213 +\117\041\077\000\056\124\060\007\072\272\212\344\303\236\312\330 +\265\330\173\316\165\105\146\007\364\155\055\330\172\312\351\211 +\212\362\043\330\057\313\156\000\066\117\373\360\057\001\314\017 +\300\042\145\364\253\342\116\141\055\003\202\175\221\026\265\060 +\325\024\336\136\307\220\374\241\374\253\020\257\134\153\160\247 +\007\357\051\206\350\262\045\307\040\377\046\335\167\357\171\104 +\024\304\275\335\073\305\003\233\167\043\354\240\354\273\132\071 +\265\314\255\006 +END + +# Trust for Certificate "Visa International Global Root 2" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Visa International Global Root 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\311\015\033\352\210\075\247\321\027\276\073\171\364\041\016\032 +\130\224\247\055 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\065\110\225\066\112\124\132\162\226\216\340\144\314\357\054\214 +END +CKA_ISSUER MULTILINE_OCTAL +\060\141\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 +\022\060\020\006\003\125\004\003\023\011\107\120\040\122\157\157 +\164\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\003\036 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "beTRUSTed 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 "beTRUSTed Root 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\127\127\061 +\022\060\020\006\003\125\004\012\023\011\142\145\124\122\125\123 +\124\145\144\061\033\060\031\006\003\125\004\003\023\022\142\145 +\124\122\125\123\124\145\144\040\122\157\157\164\040\103\101\163 +\061\032\060\030\006\003\125\004\003\023\021\142\145\124\122\125 +\123\124\145\144\040\122\157\157\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\127\127\061 +\022\060\020\006\003\125\004\012\023\011\142\145\124\122\125\123 +\124\145\144\061\033\060\031\006\003\125\004\003\023\022\142\145 +\124\122\125\123\124\145\144\040\122\157\157\164\040\103\101\163 +\061\032\060\030\006\003\125\004\003\023\021\142\145\124\122\125 +\123\124\145\144\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\071\117\175\207 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\054\060\202\004\024\240\003\002\001\002\002\004\071 +\117\175\207\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\127 +\127\061\022\060\020\006\003\125\004\012\023\011\142\145\124\122 +\125\123\124\145\144\061\033\060\031\006\003\125\004\003\023\022 +\142\145\124\122\125\123\124\145\144\040\122\157\157\164\040\103 +\101\163\061\032\060\030\006\003\125\004\003\023\021\142\145\124 +\122\125\123\124\145\144\040\122\157\157\164\040\103\101\060\036 +\027\015\060\060\060\066\062\060\061\064\062\061\060\064\132\027 +\015\061\060\060\066\062\060\061\063\062\061\060\064\132\060\132 +\061\013\060\011\006\003\125\004\006\023\002\127\127\061\022\060 +\020\006\003\125\004\012\023\011\142\145\124\122\125\123\124\145 +\144\061\033\060\031\006\003\125\004\003\023\022\142\145\124\122 +\125\123\124\145\144\040\122\157\157\164\040\103\101\163\061\032 +\060\030\006\003\125\004\003\023\021\142\145\124\122\125\123\124 +\145\144\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\324\264\163\172\023 +\012\070\125\001\276\211\126\341\224\236\324\276\132\353\112\064 +\165\033\141\051\304\341\255\010\140\041\170\110\377\264\320\372 +\136\101\215\141\104\207\350\355\311\130\372\374\223\232\337\117 +\352\076\065\175\370\063\172\346\361\327\315\157\111\113\075\117 +\055\156\016\203\072\030\170\167\243\317\347\364\115\163\330\232 +\073\032\035\276\225\123\317\040\227\302\317\076\044\122\154\014 +\216\145\131\305\161\377\142\011\217\252\305\217\314\140\240\163 +\112\327\070\077\025\162\277\242\227\267\160\350\257\342\176\026 +\006\114\365\252\144\046\162\007\045\255\065\374\030\261\046\327 +\330\377\031\016\203\033\214\334\170\105\147\064\075\364\257\034 +\215\344\155\153\355\040\263\147\232\264\141\313\027\157\211\065 +\377\347\116\300\062\022\347\356\354\337\377\227\060\164\355\215 +\107\216\353\264\303\104\346\247\114\177\126\103\350\270\274\266 +\276\372\203\227\346\273\373\304\266\223\276\031\030\076\214\201 +\271\163\210\026\364\226\103\234\147\163\027\220\330\011\156\143 +\254\112\266\043\304\001\241\255\244\344\305\002\003\001\000\001 +\243\202\001\370\060\202\001\364\060\017\006\003\125\035\023\001 +\001\377\004\005\060\003\001\001\377\060\202\001\131\006\003\125 +\035\040\004\202\001\120\060\202\001\114\060\202\001\110\006\012 +\053\006\001\004\001\261\076\001\000\000\060\202\001\070\060\202 +\001\001\006\010\053\006\001\005\005\007\002\002\060\201\364\032 +\201\361\122\145\154\151\141\156\143\145\040\157\156\040\164\150 +\151\163\040\143\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\141\156\144\040 +\143\145\162\164\151\146\151\143\141\164\151\157\156\040\160\162 +\141\143\164\151\143\145\040\163\164\141\164\145\155\145\156\164 +\054\040\167\150\151\143\150\040\143\141\156\040\142\145\040\146 +\157\165\156\144\040\141\164\040\142\145\124\122\125\123\124\145 +\144\047\163\040\167\145\142\040\163\151\164\145\054\040\150\164 +\164\160\163\072\057\057\167\167\167\056\142\145\124\122\125\123 +\124\145\144\056\143\157\155\057\166\141\165\154\164\057\164\145 +\162\155\163\060\061\006\010\053\006\001\005\005\007\002\001\026 +\045\150\164\164\160\163\072\057\057\167\167\167\056\142\145\124 +\122\125\123\124\145\144\056\143\157\155\057\166\141\165\154\164 +\057\164\145\162\155\163\060\064\006\003\125\035\037\004\055\060 +\053\060\051\240\047\240\045\244\043\060\041\061\022\060\020\006 +\003\125\004\012\023\011\142\145\124\122\125\123\124\145\144\061 +\013\060\011\006\003\125\004\006\023\002\127\127\060\035\006\003 +\125\035\016\004\026\004\024\052\271\233\151\056\073\233\330\315 +\336\052\061\004\064\153\312\007\030\253\147\060\037\006\003\125 +\035\043\004\030\060\026\200\024\052\271\233\151\056\073\233\330 +\315\336\052\061\004\064\153\312\007\030\253\147\060\016\006\003 +\125\035\017\001\001\377\004\004\003\002\001\376\060\015\006\011 +\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000 +\171\141\333\243\136\156\026\261\352\166\121\371\313\025\233\313 +\151\276\346\201\153\237\050\037\145\076\335\021\205\222\324\350 +\101\277\176\063\275\043\347\361\040\277\244\264\246\031\001\306 +\214\215\065\174\145\244\117\011\244\326\330\043\025\005\023\247 +\103\171\257\333\243\016\233\173\170\032\363\004\206\132\306\366 +\214\040\107\070\111\120\006\235\162\147\072\360\230\003\255\226 +\147\104\374\077\020\015\206\115\344\000\073\051\173\316\073\073 +\231\206\141\045\100\204\334\023\142\267\372\312\131\326\003\036 +\326\123\001\315\155\114\150\125\100\341\356\153\307\052\000\000 +\110\202\263\012\001\303\140\052\014\367\202\065\356\110\206\226 +\344\164\324\075\352\001\161\272\004\165\100\247\251\177\071\071 +\232\125\227\051\145\256\031\125\045\005\162\107\323\350\030\334 +\270\351\257\103\163\001\022\164\243\341\134\137\025\135\044\363 +\371\344\364\266\147\147\022\347\144\042\212\366\245\101\246\034 +\266\140\143\105\212\020\264\272\106\020\256\101\127\145\154\077 +\043\020\077\041\020\131\267\344\100\335\046\014\043\366\252\256 +END + +# Trust for Certificate "beTRUSTed Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "beTRUSTed Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\133\315\315\314\146\366\334\344\104\037\343\175\134\303\023\114 +\106\364\160\070 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\205\312\166\132\033\321\150\042\334\242\043\022\312\306\200\064 +END +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\127\127\061 +\022\060\020\006\003\125\004\012\023\011\142\145\124\122\125\123 +\124\145\144\061\033\060\031\006\003\125\004\003\023\022\142\145 +\124\122\125\123\124\145\144\040\122\157\157\164\040\103\101\163 +\061\032\060\030\006\003\125\004\003\023\021\142\145\124\122\125 +\123\124\145\144\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\071\117\175\207 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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 +\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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Verisign Time Stamping Authority 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 "Verisign Time Stamping Authority CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\245\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\073\060 +\071\006\003\125\004\013\023\062\124\145\162\155\163\040\157\146 +\040\165\163\145\040\141\164\040\150\164\164\160\163\072\057\057 +\167\167\167\056\166\145\162\151\163\151\147\156\056\143\157\155 +\057\162\160\141\040\050\143\051\060\060\061\054\060\052\006\003 +\125\004\003\023\043\126\145\162\151\123\151\147\156\040\124\151 +\155\145\040\123\164\141\155\160\151\156\147\040\101\165\164\150 +\157\162\151\164\171\040\103\101 +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\123\141\262\140\256\333\161\216\247\224\263\023\063\364 +\007\011 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\315\060\202\003\066\240\003\002\001\002\002\020\123 +\141\262\140\256\333\161\216\247\224\263\023\063\364\007\011\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\060\060\060\071\062\066\060\060\060\060 +\060\060\132\027\015\061\060\060\071\062\065\062\063\065\071\065 +\071\132\060\201\245\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 +\073\060\071\006\003\125\004\013\023\062\124\145\162\155\163\040 +\157\146\040\165\163\145\040\141\164\040\150\164\164\160\163\072 +\057\057\167\167\167\056\166\145\162\151\163\151\147\156\056\143 +\157\155\057\162\160\141\040\050\143\051\060\060\061\054\060\052 +\006\003\125\004\003\023\043\126\145\162\151\123\151\147\156\040 +\124\151\155\145\040\123\164\141\155\160\151\156\147\040\101\165 +\164\150\157\162\151\164\171\040\103\101\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\031\235\147\302\000\041\131\142 +\316\264\011\042\104\151\212\370\045\132\333\355\015\267\066\176 +\116\340\273\224\076\220\045\207\302\141\107\051\331\275\124\270 +\143\314\054\175\151\264\063\066\364\067\007\232\301\335\100\124 +\374\340\170\235\240\223\271\011\075\043\121\177\104\302\024\164 +\333\012\276\313\311\060\064\100\230\076\320\327\045\020\201\224 +\275\007\117\234\326\124\047\337\056\250\277\313\220\214\215\165 +\113\274\342\350\104\207\315\346\101\012\045\156\350\364\044\002 +\305\122\017\156\354\230\165\002\003\001\000\001\243\201\337\060 +\201\334\060\017\006\003\125\035\023\004\010\060\006\001\001\377 +\002\001\000\060\105\006\003\125\035\040\004\076\060\074\060\072 +\006\014\140\206\110\001\206\370\105\001\007\027\001\003\060\052 +\060\050\006\010\053\006\001\005\005\007\002\001\026\034\150\164 +\164\160\163\072\057\057\167\167\167\056\166\145\162\151\163\151 +\147\156\056\143\157\155\057\162\160\141\060\061\006\003\125\035 +\037\004\052\060\050\060\046\240\044\240\042\206\040\150\164\164 +\160\072\057\057\143\162\154\056\166\145\162\151\163\151\147\156 +\056\143\157\155\057\160\143\141\063\056\143\162\154\060\013\006 +\003\125\035\017\004\004\003\002\001\006\060\102\006\010\053\006 +\001\005\005\007\001\001\004\066\060\064\060\062\006\010\053\006 +\001\005\005\007\060\001\246\046\026\044\150\164\164\160\072\057 +\057\157\143\163\160\056\166\145\162\151\163\151\147\156\056\143 +\157\155\057\157\143\163\160\057\163\164\141\164\165\163\060\015 +\006\011\052\206\110\206\367\015\001\001\005\005\000\003\201\201 +\000\202\160\150\225\337\266\015\302\001\160\031\112\322\124\126 +\036\254\362\105\114\207\270\365\065\353\170\113\005\251\310\235 +\073\031\041\056\160\064\112\242\365\211\340\025\165\105\347\050 +\067\000\064\047\051\350\067\113\362\357\104\227\153\027\121\032 +\303\126\235\074\032\212\366\112\106\106\067\214\372\313\365\144 +\132\070\150\056\034\303\357\160\316\270\106\006\026\277\367\176 +\347\265\250\076\105\254\251\045\165\042\173\157\077\260\234\224 +\347\307\163\253\254\037\356\045\233\300\026\355\267\312\133\360 +\024 +END + +# Trust for Certificate "Verisign Time Stamping Authority CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Time Stamping Authority CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\246\017\064\310\142\154\201\366\213\367\175\251\366\147\130\212 +\220\077\175\066 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\211\111\124\214\310\150\232\203\051\354\334\006\163\041\253\227 +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\123\141\262\140\256\333\161\216\247\224\263\023\063\364 +\007\011 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Thawte Time Stamping 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 Time Stamping CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\213\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\024\060\022\006\003\125\004\007 +\023\013\104\165\162\142\141\156\166\151\154\154\145\061\017\060 +\015\006\003\125\004\012\023\006\124\150\141\167\164\145\061\035 +\060\033\006\003\125\004\013\023\024\124\150\141\167\164\145\040 +\103\145\162\164\151\146\151\143\141\164\151\157\156\061\037\060 +\035\006\003\125\004\003\023\026\124\150\141\167\164\145\040\124 +\151\155\145\163\164\141\155\160\151\156\147\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\213\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\024\060\022\006\003\125\004\007 +\023\013\104\165\162\142\141\156\166\151\154\154\145\061\017\060 +\015\006\003\125\004\012\023\006\124\150\141\167\164\145\061\035 +\060\033\006\003\125\004\013\023\024\124\150\141\167\164\145\040 +\103\145\162\164\151\146\151\143\141\164\151\157\156\061\037\060 +\035\006\003\125\004\003\023\026\124\150\141\167\164\145\040\124 +\151\155\145\163\164\141\155\160\151\156\147\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\241\060\202\002\012\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060 +\201\213\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\024\060\022\006\003\125\004\007\023 +\013\104\165\162\142\141\156\166\151\154\154\145\061\017\060\015 +\006\003\125\004\012\023\006\124\150\141\167\164\145\061\035\060 +\033\006\003\125\004\013\023\024\124\150\141\167\164\145\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\061\037\060\035 +\006\003\125\004\003\023\026\124\150\141\167\164\145\040\124\151 +\155\145\163\164\141\155\160\151\156\147\040\103\101\060\036\027 +\015\071\067\060\061\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\213 +\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\024\060\022\006\003\125\004\007\023\013\104 +\165\162\142\141\156\166\151\154\154\145\061\017\060\015\006\003 +\125\004\012\023\006\124\150\141\167\164\145\061\035\060\033\006 +\003\125\004\013\023\024\124\150\141\167\164\145\040\103\145\162 +\164\151\146\151\143\141\164\151\157\156\061\037\060\035\006\003 +\125\004\003\023\026\124\150\141\167\164\145\040\124\151\155\145 +\163\164\141\155\160\151\156\147\040\103\101\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\326\053\130\170\141\105\206\123 +\352\064\173\121\234\355\260\346\056\030\016\376\340\137\250\047 +\323\264\311\340\174\131\116\026\016\163\124\140\301\177\366\237 +\056\351\072\205\044\025\074\333\107\004\143\303\236\304\224\032 +\132\337\114\172\363\331\103\035\074\020\172\171\045\333\220\376 +\360\121\347\060\326\101\000\375\237\050\337\171\276\224\273\235 +\266\024\343\043\205\327\251\101\340\114\244\171\260\053\032\213 +\362\370\073\212\076\105\254\161\222\000\264\220\101\230\373\137 +\355\372\267\056\212\370\210\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\147\333\342\302\346\207\075\100\203\206\067 +\065\175\037\316\232\303\014\146\040\250\272\252\004\211\206\302 +\365\020\010\015\277\313\242\005\212\320\115\066\076\364\327\357 +\151\306\136\344\260\224\157\112\271\347\336\133\210\266\173\333 +\343\047\345\166\303\360\065\301\313\265\047\233\063\171\334\220 +\246\000\236\167\372\374\315\047\224\102\026\234\323\034\150\354 +\277\134\335\345\251\173\020\012\062\164\124\023\061\213\205\003 +\204\221\267\130\001\060\024\070\257\050\312\374\261\120\031\031 +\011\254\211\111\323 +END + +# Trust for Certificate "Thawte Time Stamping CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Thawte Time Stamping CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\276\066\244\126\057\262\356\005\333\263\323\043\043\255\364\105 +\010\116\326\126 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\177\146\172\161\323\353\151\170\040\232\121\024\235\203\332\040 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\213\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\024\060\022\006\003\125\004\007 +\023\013\104\165\162\142\141\156\166\151\154\154\145\061\017\060 +\015\006\003\125\004\012\023\006\124\150\141\167\164\145\061\035 +\060\033\006\003\125\004\013\023\024\124\150\141\167\164\145\040 +\103\145\162\164\151\146\151\143\141\164\151\157\156\061\037\060 +\035\006\003\125\004\003\023\026\124\150\141\167\164\145\040\124 +\151\155\145\163\164\141\155\160\151\156\147\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Entrust.net Global 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 Global Secure Server CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\272\061\024\060\022\006\003\125\004\012\023\013\105\156 +\164\162\165\163\164\056\156\145\164\061\077\060\075\006\003\125 +\004\013\024\066\167\167\167\056\145\156\164\162\165\163\164\056 +\156\145\164\057\123\123\114\137\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\062\060\060\060\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\272\061\024\060\022\006\003\125\004\012\023\013\105\156 +\164\162\165\163\164\056\156\145\164\061\077\060\075\006\003\125 +\004\013\024\066\167\167\167\056\145\156\164\162\165\163\164\056 +\156\145\164\057\123\123\114\137\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\062\060\060\060\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\070\233\021\074 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\225\060\202\003\376\240\003\002\001\002\002\004\070 +\233\021\074\060\015\006\011\052\206\110\206\367\015\001\001\004 +\005\000\060\201\272\061\024\060\022\006\003\125\004\012\023\013 +\105\156\164\162\165\163\164\056\156\145\164\061\077\060\075\006 +\003\125\004\013\024\066\167\167\167\056\145\156\164\162\165\163 +\164\056\156\145\164\057\123\123\114\137\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\062\060\060\060\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\060\060\060\062\060\064\061\067\062\060\060\060\132 +\027\015\062\060\060\062\060\064\061\067\065\060\060\060\132\060 +\201\272\061\024\060\022\006\003\125\004\012\023\013\105\156\164 +\162\165\163\164\056\156\145\164\061\077\060\075\006\003\125\004 +\013\024\066\167\167\167\056\145\156\164\162\165\163\164\056\156 +\145\164\057\123\123\114\137\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\062\060\060\060\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\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\307\301\137\116\161\361\316 +\360\140\206\017\322\130\177\323\063\227\055\027\242\165\060\265 +\226\144\046\057\150\303\104\253\250\165\346\000\147\064\127\236 +\145\307\042\233\163\346\323\335\010\016\067\125\252\045\106\201 +\154\275\376\250\366\165\127\127\214\220\154\112\303\076\213\113 +\103\012\311\021\126\232\232\047\042\231\317\125\236\141\331\002 +\342\174\266\174\070\007\334\343\177\117\232\271\003\101\200\266 +\165\147\023\013\237\350\127\066\310\135\000\066\336\146\024\332 +\156\166\037\117\067\214\202\023\211\002\003\001\000\001\243\202 +\001\244\060\202\001\240\060\021\006\011\140\206\110\001\206\370 +\102\001\001\004\004\003\002\000\007\060\201\343\006\003\125\035 +\037\004\201\333\060\201\330\060\201\325\240\201\322\240\201\317 +\244\201\314\060\201\311\061\024\060\022\006\003\125\004\012\023 +\013\105\156\164\162\165\163\164\056\156\145\164\061\077\060\075 +\006\003\125\004\013\024\066\167\167\167\056\145\156\164\162\165 +\163\164\056\156\145\164\057\123\123\114\137\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\062\060\060\060 +\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 +\053\006\003\125\035\020\004\044\060\042\200\017\062\060\060\060 +\060\062\060\064\061\067\062\060\060\060\132\201\017\062\060\062 +\060\060\062\060\064\061\067\065\060\060\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\313\154\300\153\343\273\076\313\374\042 +\234\376\373\213\222\234\260\362\156\042\060\035\006\003\125\035 +\016\004\026\004\024\313\154\300\153\343\273\076\313\374\042\234 +\376\373\213\222\234\260\362\156\042\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\004\005\000\003\201\201\000\142\333\201\221\316\310\232 +\167\102\057\354\275\047\243\123\017\120\033\352\116\222\360\251 +\257\251\240\272\110\141\313\357\311\006\357\037\325\364\356\337 +\126\055\346\312\152\031\163\252\123\276\222\263\120\002\266\205 +\046\162\143\330\165\120\142\165\024\267\263\120\032\077\312\021 +\000\013\205\105\151\155\266\245\256\121\341\112\334\202\077\154 +\214\064\262\167\153\331\002\366\177\016\352\145\004\361\315\124 +\312\272\311\314\340\204\367\310\076\021\227\323\140\011\030\274 +\005\377\154\211\063\360\354\025\017 +END + +# Trust for Certificate "Entrust.net Global Secure Server CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Entrust.net Global Secure Server CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\211\071\127\156\027\215\367\005\170\017\314\136\310\117\204\366 +\045\072\110\223 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\235\146\152\314\377\325\365\103\264\277\214\026\321\053\250\231 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\272\061\024\060\022\006\003\125\004\012\023\013\105\156 +\164\162\165\163\164\056\156\145\164\061\077\060\075\006\003\125 +\004\013\024\066\167\167\167\056\145\156\164\162\165\163\164\056 +\156\145\164\057\123\123\114\137\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\062\060\060\060\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\070\233\021\074 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Entrust.net Global Secure Personal 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 Global Secure Personal 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\107\103\103\101\137\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\062\060\060\060\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\154\151\145\156\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\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\107\103\103\101\137\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\062\060\060\060\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\154\151\145\156\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\070\236\366\344 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\203\060\202\003\354\240\003\002\001\002\002\004\070 +\236\366\344\060\015\006\011\052\206\110\206\367\015\001\001\004 +\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\107\103\103\101\137\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\062\060\060\060 +\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\154\151\145\156 +\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\060\060 +\062\060\067\061\066\061\066\064\060\132\027\015\062\060\060\062 +\060\067\061\066\064\066\064\060\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\107\103\103 +\101\137\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\062\060\060\060\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\154\151\145\156\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\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\223\164\264 +\266\344\305\113\326\241\150\177\142\325\354\367\121\127\263\162 +\112\230\365\320\211\311\255\143\315\115\065\121\152\204\324\255 +\311\150\171\157\270\353\021\333\207\256\134\044\121\023\361\124 +\045\204\257\051\053\237\343\200\342\331\313\335\306\105\111\064 +\210\220\136\001\227\357\352\123\246\335\374\301\336\113\052\045 +\344\351\065\372\125\005\006\345\211\172\352\244\021\127\073\374 +\174\075\066\315\147\065\155\244\251\045\131\275\146\365\371\047 +\344\225\147\326\077\222\200\136\362\064\175\053\205\002\003\001 +\000\001\243\202\001\236\060\202\001\232\060\021\006\011\140\206 +\110\001\206\370\102\001\001\004\004\003\002\000\007\060\201\335 +\006\003\125\035\037\004\201\325\060\201\322\060\201\317\240\201 +\314\240\201\311\244\201\306\060\201\303\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\107\103\103\101\137 +\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\062\060\060\060\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\154\151\145\156\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\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\060\060\062 +\060\067\061\066\061\066\064\060\132\201\017\062\060\062\060\060 +\062\060\067\061\066\064\066\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\204\213\164\375\305\215\300\377\047\155\040\067 +\105\174\376\055\316\272\323\175\060\035\006\003\125\035\016\004 +\026\004\024\204\213\164\375\305\215\300\377\047\155\040\067\105 +\174\376\055\316\272\323\175\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 +\004\005\000\003\201\201\000\116\157\065\200\073\321\212\365\016 +\247\040\313\055\145\125\320\222\364\347\204\265\006\046\203\022 +\204\013\254\073\262\104\356\275\317\100\333\040\016\272\156\024 +\352\060\340\073\142\174\177\213\153\174\112\247\325\065\074\276 +\250\134\352\113\273\223\216\200\146\253\017\051\375\115\055\277 +\032\233\012\220\305\253\332\321\263\206\324\057\044\122\134\172 +\155\306\362\376\345\115\032\060\214\220\362\272\327\112\076\103 +\176\324\310\120\032\207\370\117\201\307\166\013\204\072\162\235 +\316\145\146\227\256\046\136 +END + +# Trust for Certificate "Entrust.net Global Secure Personal CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Entrust.net Global Secure Personal CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\317\164\277\377\233\206\201\133\010\063\124\100\066\076\207\266 +\266\360\277\163 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\232\167\031\030\355\226\317\337\033\267\016\365\215\271\210\056 +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\107\103\103\101\137\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\062\060\060\060\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\154\151\145\156\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\070\236\366\344 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AOL Time Warner 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 "AOL Time Warner Root Certification Authority 1" +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\035\060\033\006\003\125\004\012\023\024\101\117\114\040\124 +\151\155\145\040\127\141\162\156\145\162\040\111\156\143\056\061 +\034\060\032\006\003\125\004\013\023\023\101\155\145\162\151\143 +\141\040\117\156\154\151\156\145\040\111\156\143\056\061\067\060 +\065\006\003\125\004\003\023\056\101\117\114\040\124\151\155\145 +\040\127\141\162\156\145\162\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\201\203\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\035\060\033\006\003\125\004\012\023\024\101\117\114\040\124 +\151\155\145\040\127\141\162\156\145\162\040\111\156\143\056\061 +\034\060\032\006\003\125\004\013\023\023\101\155\145\162\151\143 +\141\040\117\156\154\151\156\145\040\111\156\143\056\061\067\060 +\065\006\003\125\004\003\023\056\101\117\114\040\124\151\155\145 +\040\127\141\162\156\145\162\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\346\060\202\002\316\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\203\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\035\060\033\006\003\125\004\012\023\024\101\117\114\040\124\151 +\155\145\040\127\141\162\156\145\162\040\111\156\143\056\061\034 +\060\032\006\003\125\004\013\023\023\101\155\145\162\151\143\141 +\040\117\156\154\151\156\145\040\111\156\143\056\061\067\060\065 +\006\003\125\004\003\023\056\101\117\114\040\124\151\155\145\040 +\127\141\162\156\145\162\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\071\060 +\066\060\060\060\060\132\027\015\063\067\061\061\062\060\061\065 +\060\063\060\060\132\060\201\203\061\013\060\011\006\003\125\004 +\006\023\002\125\123\061\035\060\033\006\003\125\004\012\023\024 +\101\117\114\040\124\151\155\145\040\127\141\162\156\145\162\040 +\111\156\143\056\061\034\060\032\006\003\125\004\013\023\023\101 +\155\145\162\151\143\141\040\117\156\154\151\156\145\040\111\156 +\143\056\061\067\060\065\006\003\125\004\003\023\056\101\117\114 +\040\124\151\155\145\040\127\141\162\156\145\162\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\231\336\217\303 +\045\243\151\064\350\005\367\164\271\277\132\227\031\271\057\224 +\322\223\345\055\211\312\204\174\077\020\103\033\214\213\174\204 +\130\370\044\174\110\317\052\375\300\025\331\030\176\204\032\027 +\323\333\236\327\312\344\331\327\252\130\121\207\360\360\213\110 +\116\342\302\304\131\151\060\142\266\060\242\214\013\021\231\141 +\065\155\176\357\305\261\031\006\040\022\216\102\341\337\017\226 +\020\122\250\317\234\137\225\024\330\257\073\165\013\061\040\037 +\104\057\242\142\101\263\273\030\041\333\312\161\074\214\354\266 +\271\015\237\357\121\357\115\173\022\362\013\014\341\254\100\217 +\167\177\260\312\170\161\014\135\026\161\160\242\327\302\072\205 +\315\016\232\304\340\000\260\325\045\352\334\053\344\224\055\070 +\234\211\101\127\144\050\145\031\034\266\104\264\310\061\153\216 +\001\173\166\131\045\177\025\034\204\010\174\163\145\040\012\241 +\004\056\032\062\250\232\040\261\234\054\041\131\347\373\317\356 +\160\055\010\312\143\076\054\233\223\031\152\244\302\227\377\267 +\206\127\210\205\154\236\025\026\053\115\054\263\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\241\066\060\026\313\206\220\000\105\200\123\261\217\310\330 +\075\174\276\137\022\060\037\006\003\125\035\043\004\030\060\026 +\200\024\241\066\060\026\313\206\220\000\105\200\123\261\217\310 +\330\075\174\276\137\022\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\212\040\030\245\276\263 +\057\264\246\204\000\100\060\051\372\264\024\163\114\171\105\247 +\366\160\340\350\176\144\036\012\225\174\152\141\302\357\116\037 +\276\377\311\231\037\007\141\112\341\135\114\315\255\356\320\122 +\062\331\131\062\274\332\171\162\326\173\011\350\002\201\065\323 +\012\337\021\035\311\171\240\200\115\376\132\327\126\326\355\017 +\052\257\247\030\165\063\014\352\301\141\005\117\152\232\211\362 +\215\271\237\056\357\260\137\132\000\353\276\255\240\370\104\005 +\147\274\313\004\357\236\144\305\351\310\077\005\277\306\057\007 +\034\303\066\161\206\312\070\146\112\315\326\270\113\306\154\247 +\227\073\372\023\055\156\043\141\207\241\143\102\254\302\313\227 +\237\141\150\317\055\114\004\235\327\045\117\012\016\115\220\213 +\030\126\250\223\110\127\334\157\256\275\236\147\127\167\211\120 +\263\276\021\233\105\147\203\206\031\207\323\230\275\010\032\026 +\037\130\202\013\341\226\151\005\113\216\354\203\121\061\007\325 +\324\237\377\131\173\250\156\205\317\323\113\251\111\260\137\260 +\071\050\150\016\163\335\045\232\336\022 +END + +# Trust for Certificate "AOL Time Warner Root Certification Authority 1" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AOL Time Warner Root Certification Authority 1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\164\124\123\134\044\243\247\130\040\176\076\076\323\044\370\026 +\373\041\026\111 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\347\172\334\261\037\156\006\037\164\154\131\026\047\303\113\300 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\203\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\035\060\033\006\003\125\004\012\023\024\101\117\114\040\124 +\151\155\145\040\127\141\162\156\145\162\040\111\156\143\056\061 +\034\060\032\006\003\125\004\013\023\023\101\155\145\162\151\143 +\141\040\117\156\154\151\156\145\040\111\156\143\056\061\067\060 +\065\006\003\125\004\003\023\056\101\117\114\040\124\151\155\145 +\040\127\141\162\156\145\162\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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AOL Time Warner 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 "AOL Time Warner Root Certification Authority 2" +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\035\060\033\006\003\125\004\012\023\024\101\117\114\040\124 +\151\155\145\040\127\141\162\156\145\162\040\111\156\143\056\061 +\034\060\032\006\003\125\004\013\023\023\101\155\145\162\151\143 +\141\040\117\156\154\151\156\145\040\111\156\143\056\061\067\060 +\065\006\003\125\004\003\023\056\101\117\114\040\124\151\155\145 +\040\127\141\162\156\145\162\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\201\203\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\035\060\033\006\003\125\004\012\023\024\101\117\114\040\124 +\151\155\145\040\127\141\162\156\145\162\040\111\156\143\056\061 +\034\060\032\006\003\125\004\013\023\023\101\155\145\162\151\143 +\141\040\117\156\154\151\156\145\040\111\156\143\056\061\067\060 +\065\006\003\125\004\003\023\056\101\117\114\040\124\151\155\145 +\040\127\141\162\156\145\162\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\346\060\202\003\316\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\203\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\035\060\033\006\003\125\004\012\023\024\101\117\114\040\124\151 +\155\145\040\127\141\162\156\145\162\040\111\156\143\056\061\034 +\060\032\006\003\125\004\013\023\023\101\155\145\162\151\143\141 +\040\117\156\154\151\156\145\040\111\156\143\056\061\067\060\065 +\006\003\125\004\003\023\056\101\117\114\040\124\151\155\145\040 +\127\141\162\156\145\162\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\071\060 +\066\060\060\060\060\132\027\015\063\067\060\071\062\070\062\063 +\064\063\060\060\132\060\201\203\061\013\060\011\006\003\125\004 +\006\023\002\125\123\061\035\060\033\006\003\125\004\012\023\024 +\101\117\114\040\124\151\155\145\040\127\141\162\156\145\162\040 +\111\156\143\056\061\034\060\032\006\003\125\004\013\023\023\101 +\155\145\162\151\143\141\040\117\156\154\151\156\145\040\111\156 +\143\056\061\067\060\065\006\003\125\004\003\023\056\101\117\114 +\040\124\151\155\145\040\127\141\162\156\145\162\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\264\067\132\010 +\026\231\024\350\125\261\033\044\153\374\307\213\346\207\251\211 +\356\213\231\315\117\100\206\244\266\115\311\331\261\334\074\115 +\015\205\114\025\154\106\213\122\170\237\370\043\375\147\365\044 +\072\150\135\320\367\144\141\101\124\243\213\245\010\322\051\133 +\233\140\117\046\203\321\143\022\126\111\166\244\026\302\245\235 +\105\254\213\204\225\250\026\261\354\237\352\044\032\357\271\127 +\134\232\044\041\054\115\016\161\037\246\254\135\105\164\003\230 +\304\124\214\026\112\101\167\206\225\165\014\107\001\146\140\374 +\025\361\017\352\365\024\170\307\016\327\156\201\034\136\277\136 +\347\072\052\330\227\027\060\174\000\255\010\235\063\257\270\231 +\141\200\213\250\225\176\024\334\022\154\244\320\330\357\100\111 +\002\066\371\156\251\326\035\226\126\004\262\263\055\026\126\206 +\217\331\040\127\200\315\147\020\155\260\114\360\332\106\266\352 +\045\056\106\257\215\260\205\070\064\213\024\046\202\053\254\256 +\231\013\216\024\327\122\275\236\151\303\206\002\013\352\166\165 +\061\011\316\063\031\041\205\103\346\211\055\237\045\067\147\361 +\043\152\322\000\155\227\371\237\347\051\312\335\037\327\006\352 +\270\311\271\011\041\237\310\077\006\305\322\351\022\106\000\116 +\173\010\353\102\075\053\110\156\235\147\335\113\002\344\104\363 +\223\031\245\047\316\151\172\276\147\323\374\120\244\054\253\303 +\153\271\343\200\114\317\005\141\113\053\334\033\271\246\322\320 +\252\365\053\163\373\316\220\065\237\014\122\034\277\134\041\141 +\021\133\025\113\251\044\121\374\244\134\367\027\235\260\322\372 +\007\351\217\126\344\032\214\150\212\004\323\174\132\343\236\242 +\241\312\161\133\242\324\240\347\051\205\135\003\150\052\117\322 +\006\327\075\371\303\003\057\077\145\371\147\036\107\100\323\143 +\017\343\325\216\371\205\253\227\114\263\327\046\353\226\012\224 +\336\205\066\234\310\177\201\011\002\111\052\016\365\144\062\014 +\202\321\272\152\202\033\263\113\164\021\363\214\167\326\237\277 +\334\067\244\247\125\004\057\324\061\350\323\106\271\003\174\332 +\022\116\131\144\267\121\061\061\120\240\312\034\047\331\020\056 +\255\326\275\020\146\053\303\260\042\112\022\133\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\117\151\155\003\176\235\237\007\030\103\274\267\020\116\325 +\277\251\304\040\050\060\037\006\003\125\035\043\004\030\060\026 +\200\024\117\151\155\003\176\235\237\007\030\103\274\267\020\116 +\325\277\251\304\040\050\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\073\363\256\312\350\056 +\207\205\373\145\131\347\255\021\024\245\127\274\130\237\044\022 +\127\273\373\077\064\332\356\255\172\052\064\162\160\061\153\307 +\031\230\200\311\202\336\067\167\136\124\213\216\362\352\147\117 +\311\164\204\221\126\011\325\345\172\232\201\266\201\302\255\066 +\344\361\124\021\123\363\064\105\001\046\310\345\032\274\064\104 +\041\336\255\045\374\166\026\167\041\220\200\230\127\235\116\352 +\354\057\252\074\024\173\127\301\176\030\024\147\356\044\306\275 +\272\025\260\322\030\275\267\125\201\254\123\300\350\335\151\022 +\023\102\267\002\265\005\101\312\171\120\156\202\016\161\162\223 +\106\350\235\015\135\275\256\316\051\255\143\325\125\026\200\060 +\047\377\166\272\367\270\326\112\343\331\265\371\122\320\116\100 +\251\307\345\302\062\307\252\166\044\341\153\005\120\353\305\277 +\012\124\345\271\102\074\044\373\267\007\234\060\237\171\132\346 +\340\100\122\025\364\374\252\364\126\371\104\227\207\355\016\145 +\162\136\276\046\373\115\244\055\010\007\336\330\134\240\334\201 +\063\231\030\045\021\167\247\353\375\130\011\054\231\153\033\212 +\363\122\077\032\115\110\140\361\240\366\063\002\123\213\355\045 +\011\270\015\055\355\227\163\354\327\226\037\216\140\016\332\020 +\233\057\030\044\366\246\115\012\371\073\313\165\302\314\057\316 +\044\151\311\012\042\216\131\247\367\202\014\327\327\153\065\234 +\103\000\152\304\225\147\272\234\105\313\270\016\067\367\334\116 +\001\117\276\012\266\003\323\255\212\105\367\332\047\115\051\261 +\110\337\344\021\344\226\106\275\154\002\076\326\121\310\225\027 +\001\025\251\362\252\252\362\277\057\145\033\157\320\271\032\223 +\365\216\065\304\200\207\076\224\057\146\344\351\250\377\101\234 +\160\052\117\052\071\030\225\036\176\373\141\001\074\121\010\056 +\050\030\244\026\017\061\375\072\154\043\223\040\166\341\375\007 +\205\321\133\077\322\034\163\062\335\372\271\370\214\317\002\207 +\172\232\226\344\355\117\211\215\123\103\253\016\023\300\001\025 +\264\171\070\333\374\156\075\236\121\266\270\023\213\147\317\371 +\174\331\042\035\366\135\305\034\001\057\230\350\172\044\030\274 +\204\327\372\334\162\133\367\301\072\150 +END + +# Trust for Certificate "AOL Time Warner Root Certification Authority 2" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AOL Time Warner Root Certification Authority 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\374\041\232\166\021\057\166\301\305\010\203\074\232\057\242\272 +\204\254\010\172 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\001\132\231\303\326\117\251\113\074\073\261\243\253\047\114\277 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\203\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\035\060\033\006\003\125\004\012\023\024\101\117\114\040\124 +\151\155\145\040\127\141\162\156\145\162\040\111\156\143\056\061 +\034\060\032\006\003\125\004\013\023\023\101\155\145\162\151\143 +\141\040\117\156\154\151\156\145\040\111\156\143\056\061\067\060 +\065\006\003\125\004\003\023\056\101\117\114\040\124\151\155\145 +\040\127\141\162\156\145\162\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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "beTRUSTed Root CA-Baltimore Implementation" +# +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 "beTRUSTed Root CA-Baltimore Implementation" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\146\061\022\060\020\006\003\125\004\012\023\011\142\145\124 +\122\125\123\124\145\144\061\033\060\031\006\003\125\004\013\023 +\022\142\145\124\122\125\123\124\145\144\040\122\157\157\164\040 +\103\101\163\061\063\060\061\006\003\125\004\003\023\052\142\145 +\124\122\125\123\124\145\144\040\122\157\157\164\040\103\101\055 +\102\141\154\164\151\155\157\162\145\040\111\155\160\154\145\155 +\145\156\164\141\164\151\157\156 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\146\061\022\060\020\006\003\125\004\012\023\011\142\145\124 +\122\125\123\124\145\144\061\033\060\031\006\003\125\004\013\023 +\022\142\145\124\122\125\123\124\145\144\040\122\157\157\164\040 +\103\101\163\061\063\060\061\006\003\125\004\003\023\052\142\145 +\124\122\125\123\124\145\144\040\122\157\157\164\040\103\101\055 +\102\141\154\164\151\155\157\162\145\040\111\155\160\154\145\155 +\145\156\164\141\164\151\157\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\074\265\075\106 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\152\060\202\004\122\240\003\002\001\002\002\004\074 +\265\075\106\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\146\061\022\060\020\006\003\125\004\012\023\011\142 +\145\124\122\125\123\124\145\144\061\033\060\031\006\003\125\004 +\013\023\022\142\145\124\122\125\123\124\145\144\040\122\157\157 +\164\040\103\101\163\061\063\060\061\006\003\125\004\003\023\052 +\142\145\124\122\125\123\124\145\144\040\122\157\157\164\040\103 +\101\055\102\141\154\164\151\155\157\162\145\040\111\155\160\154 +\145\155\145\156\164\141\164\151\157\156\060\036\027\015\060\062 +\060\064\061\061\060\067\063\070\065\061\132\027\015\062\062\060 +\064\061\061\060\067\063\070\065\061\132\060\146\061\022\060\020 +\006\003\125\004\012\023\011\142\145\124\122\125\123\124\145\144 +\061\033\060\031\006\003\125\004\013\023\022\142\145\124\122\125 +\123\124\145\144\040\122\157\157\164\040\103\101\163\061\063\060 +\061\006\003\125\004\003\023\052\142\145\124\122\125\123\124\145 +\144\040\122\157\157\164\040\103\101\055\102\141\154\164\151\155 +\157\162\145\040\111\155\160\154\145\155\145\156\164\141\164\151 +\157\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\274\176\304\071\234\214\343\326\034\206\377\312\142 +\255\340\177\060\105\172\216\032\263\270\307\371\321\066\377\042 +\363\116\152\137\204\020\373\146\201\303\224\171\061\322\221\341 +\167\216\030\052\303\024\336\121\365\117\243\053\274\030\026\342 +\265\335\171\336\042\370\202\176\313\201\037\375\047\054\217\372 +\227\144\042\216\370\377\141\243\234\033\036\222\217\300\250\011 +\337\011\021\354\267\175\061\232\032\352\203\041\006\074\237\272 +\134\377\224\352\152\270\303\153\125\064\117\075\062\037\335\201 +\024\340\304\074\315\235\060\370\060\251\227\323\356\314\243\320 +\037\137\034\023\201\324\030\253\224\321\143\303\236\177\065\222 +\236\137\104\352\354\364\042\134\267\350\075\175\244\371\211\251 +\221\262\052\331\353\063\207\356\245\375\343\332\314\210\346\211 +\046\156\307\053\202\320\136\235\131\333\024\354\221\203\005\303 +\136\016\306\052\320\004\335\161\075\040\116\130\047\374\123\373 +\170\170\031\024\262\374\220\122\211\070\142\140\007\264\240\354 +\254\153\120\326\375\271\050\153\357\122\055\072\262\377\361\001 +\100\254\067\002\003\001\000\001\243\202\002\036\060\202\002\032 +\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001 +\377\060\202\001\265\006\003\125\035\040\004\202\001\254\060\202 +\001\250\060\202\001\244\006\017\053\006\001\004\001\261\076\000 +\000\001\011\050\203\221\061\060\202\001\217\060\202\001\110\006 +\010\053\006\001\005\005\007\002\002\060\202\001\072\032\202\001 +\066\122\145\154\151\141\156\143\145\040\157\156\040\157\162\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\162\145\141\164\145\163\040 +\141\156\040\141\143\153\156\157\167\154\145\144\147\155\145\156 +\164\040\141\156\144\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\164\150 +\145\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\040\141\156\144\040\164\150\145\040\122\145\154\171\151 +\156\147\040\120\141\162\164\171\040\101\147\162\145\145\155\145 +\156\164\054\040\167\150\151\143\150\040\143\141\156\040\142\145 +\040\146\157\165\156\144\040\141\164\040\164\150\145\040\142\145 +\124\122\125\123\124\145\144\040\167\145\142\040\163\151\164\145 +\054\040\150\164\164\160\072\057\057\167\167\167\056\142\145\164 +\162\165\163\164\145\144\056\143\157\155\057\160\162\157\144\165 +\143\164\163\137\163\145\162\166\151\143\145\163\057\151\156\144 +\145\170\056\150\164\155\154\060\101\006\010\053\006\001\005\005 +\007\002\001\026\065\150\164\164\160\072\057\057\167\167\167\056 +\142\145\164\162\165\163\164\145\144\056\143\157\155\057\160\162 +\157\144\165\143\164\163\137\163\145\162\166\151\143\145\163\057 +\151\156\144\145\170\056\150\164\155\154\060\035\006\003\125\035 +\016\004\026\004\024\105\075\303\251\321\334\077\044\126\230\034 +\163\030\210\152\377\203\107\355\266\060\037\006\003\125\035\043 +\004\030\060\026\200\024\105\075\303\251\321\334\077\044\126\230 +\034\163\030\210\152\377\203\107\355\266\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\111\222 +\274\243\356\254\275\372\015\311\213\171\206\034\043\166\260\200 +\131\167\374\332\177\264\113\337\303\144\113\152\116\016\255\362 +\175\131\167\005\255\012\211\163\260\372\274\313\334\215\000\210 +\217\246\240\262\352\254\122\047\277\241\110\174\227\020\173\272 +\355\023\035\232\007\156\313\061\142\022\350\143\003\252\175\155 +\343\370\033\166\041\170\033\237\113\103\214\323\111\206\366\033 +\134\366\056\140\025\323\351\343\173\165\077\320\002\203\320\030 +\202\101\315\145\067\352\216\062\176\275\153\231\135\060\021\310 +\333\110\124\034\073\341\247\023\323\152\110\223\367\075\214\177 +\005\350\316\363\210\052\143\004\270\352\176\130\174\001\173\133 +\341\305\175\357\041\340\215\016\135\121\175\261\147\375\243\275 +\070\066\306\362\070\206\207\032\226\150\140\106\373\050\024\107 +\125\341\247\200\014\153\342\352\337\115\174\220\110\240\066\275 +\011\027\211\177\303\362\323\234\234\343\335\304\033\335\365\267 +\161\263\123\005\211\006\320\313\112\200\301\310\123\220\265\074 +\061\210\027\120\237\311\304\016\213\330\250\002\143\015 +END + +# Trust for Certificate "beTRUSTed Root CA-Baltimore Implementation" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "beTRUSTed Root CA-Baltimore Implementation" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\334\273\236\267\031\113\304\162\005\301\021\165\051\206\203\133 +\123\312\344\370 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\201\065\271\373\373\022\312\030\151\066\353\256\151\170\241\361 +END +CKA_ISSUER MULTILINE_OCTAL +\060\146\061\022\060\020\006\003\125\004\012\023\011\142\145\124 +\122\125\123\124\145\144\061\033\060\031\006\003\125\004\013\023 +\022\142\145\124\122\125\123\124\145\144\040\122\157\157\164\040 +\103\101\163\061\063\060\061\006\003\125\004\003\023\052\142\145 +\124\122\125\123\124\145\144\040\122\157\157\164\040\103\101\055 +\102\141\154\164\151\155\157\162\145\040\111\155\160\154\145\155 +\145\156\164\141\164\151\157\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\074\265\075\106 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "beTRUSTed Root CA - Entrust Implementation" +# +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 "beTRUSTed Root CA - Entrust Implementation" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\146\061\022\060\020\006\003\125\004\012\023\011\142\145\124 +\122\125\123\124\145\144\061\033\060\031\006\003\125\004\013\023 +\022\142\145\124\122\125\123\124\145\144\040\122\157\157\164\040 +\103\101\163\061\063\060\061\006\003\125\004\003\023\052\142\145 +\124\122\125\123\124\145\144\040\122\157\157\164\040\103\101\040 +\055\040\105\156\164\162\165\163\164\040\111\155\160\154\145\155 +\145\156\164\141\164\151\157\156 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\146\061\022\060\020\006\003\125\004\012\023\011\142\145\124 +\122\125\123\124\145\144\061\033\060\031\006\003\125\004\013\023 +\022\142\145\124\122\125\123\124\145\144\040\122\157\157\164\040 +\103\101\163\061\063\060\061\006\003\125\004\003\023\052\142\145 +\124\122\125\123\124\145\144\040\122\157\157\164\040\103\101\040 +\055\040\105\156\164\162\165\163\164\040\111\155\160\154\145\155 +\145\156\164\141\164\151\157\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\074\265\117\100 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\006\121\060\202\005\071\240\003\002\001\002\002\004\074 +\265\117\100\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\146\061\022\060\020\006\003\125\004\012\023\011\142 +\145\124\122\125\123\124\145\144\061\033\060\031\006\003\125\004 +\013\023\022\142\145\124\122\125\123\124\145\144\040\122\157\157 +\164\040\103\101\163\061\063\060\061\006\003\125\004\003\023\052 +\142\145\124\122\125\123\124\145\144\040\122\157\157\164\040\103 +\101\040\055\040\105\156\164\162\165\163\164\040\111\155\160\154 +\145\155\145\156\164\141\164\151\157\156\060\036\027\015\060\062 +\060\064\061\061\060\070\062\064\062\067\132\027\015\062\062\060 +\064\061\061\060\070\065\064\062\067\132\060\146\061\022\060\020 +\006\003\125\004\012\023\011\142\145\124\122\125\123\124\145\144 +\061\033\060\031\006\003\125\004\013\023\022\142\145\124\122\125 +\123\124\145\144\040\122\157\157\164\040\103\101\163\061\063\060 +\061\006\003\125\004\003\023\052\142\145\124\122\125\123\124\145 +\144\040\122\157\157\164\040\103\101\040\055\040\105\156\164\162 +\165\163\164\040\111\155\160\154\145\155\145\156\164\141\164\151 +\157\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\272\364\104\003\252\022\152\265\103\354\125\222\266 +\060\175\065\127\014\333\363\015\047\156\114\367\120\250\233\116 +\053\157\333\365\255\034\113\135\263\251\301\376\173\104\353\133 +\243\005\015\037\305\064\053\060\000\051\361\170\100\262\244\377 +\072\364\001\210\027\176\346\324\046\323\272\114\352\062\373\103 +\167\227\207\043\305\333\103\243\365\052\243\121\136\341\073\322 +\145\151\176\125\025\233\172\347\151\367\104\340\127\265\025\350 +\146\140\017\015\003\373\202\216\243\350\021\173\154\276\307\143 +\016\027\223\337\317\113\256\156\163\165\340\363\252\271\244\300 +\011\033\205\352\161\051\210\101\062\371\360\052\016\154\011\362 +\164\153\146\154\122\023\037\030\274\324\076\367\330\156\040\236 +\312\376\374\041\224\356\023\050\113\327\134\136\014\146\356\351 +\273\017\301\064\261\177\010\166\363\075\046\160\311\213\045\035 +\142\044\014\352\034\165\116\300\022\344\272\023\035\060\051\055 +\126\063\005\273\227\131\176\306\111\117\211\327\057\044\250\266 +\210\100\265\144\222\123\126\044\344\242\240\205\263\136\220\264 +\022\063\315\002\003\001\000\001\243\202\003\005\060\202\003\001 +\060\202\001\267\006\003\125\035\040\004\202\001\256\060\202\001 +\252\060\202\001\246\006\017\053\006\001\004\001\261\076\000\000 +\002\011\050\203\221\061\060\202\001\221\060\202\001\111\006\010 +\053\006\001\005\005\007\002\002\060\202\001\073\032\202\001\067 +\122\145\154\151\141\156\143\145\040\157\156\040\157\162\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\162\145\141\164\145\163\040\141 +\156\040\141\143\153\156\157\167\154\145\144\147\155\145\156\164 +\040\141\156\144\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\164\150\145 +\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\040\141\156\144\040\164\150\145\040\122\145\154\171\151\156 +\147\040\120\141\162\164\171\040\101\147\162\145\145\155\145\156 +\164\054\040\167\150\151\143\150\040\143\141\156\040\142\145\040 +\146\157\165\156\144\040\141\164\040\164\150\145\040\142\145\124 +\122\125\123\124\145\144\040\167\145\142\040\163\151\164\145\054 +\040\150\164\164\160\163\072\057\057\167\167\167\056\142\145\164 +\162\165\163\164\145\144\056\143\157\155\057\160\162\157\144\165 +\143\164\163\137\163\145\162\166\151\143\145\163\057\151\156\144 +\145\170\056\150\164\155\154\060\102\006\010\053\006\001\005\005 +\007\002\001\026\066\150\164\164\160\163\072\057\057\167\167\167 +\056\142\145\164\162\165\163\164\145\144\056\143\157\155\057\160 +\162\157\144\165\143\164\163\137\163\145\162\166\151\143\145\163 +\057\151\156\144\145\170\056\150\164\155\154\060\021\006\011\140 +\206\110\001\206\370\102\001\001\004\004\003\002\000\007\060\201 +\211\006\003\125\035\037\004\201\201\060\177\060\175\240\173\240 +\171\244\167\060\165\061\022\060\020\006\003\125\004\012\023\011 +\142\145\124\122\125\123\124\145\144\061\033\060\031\006\003\125 +\004\013\023\022\142\145\124\122\125\123\124\145\144\040\122\157 +\157\164\040\103\101\163\061\063\060\061\006\003\125\004\003\023 +\052\142\145\124\122\125\123\124\145\144\040\122\157\157\164\040 +\103\101\040\055\040\105\156\164\162\165\163\164\040\111\155\160 +\154\145\155\145\156\164\141\164\151\157\156\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\062\060\064\061\061\060 +\070\062\064\062\067\132\201\017\062\060\062\062\060\064\061\061 +\060\070\065\064\062\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\175\160\345\256\070\213\006\077\252\034\032\217\371\317\044 +\060\252\204\204\026\060\035\006\003\125\035\016\004\026\004\024 +\175\160\345\256\070\213\006\077\252\034\032\217\371\317\044\060 +\252\204\204\026\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\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\052\270\027\316\037\020\224\353\270\232\267 +\271\137\354\332\367\222\044\254\334\222\073\307\040\215\362\231 +\345\135\070\241\302\064\355\305\023\131\134\005\265\053\117\141 +\233\221\373\101\374\374\325\074\115\230\166\006\365\201\175\353 +\335\220\346\321\126\124\332\343\055\014\237\021\062\224\042\001 +\172\366\154\054\164\147\004\314\245\217\216\054\263\103\265\224 +\242\320\175\351\142\177\006\276\047\001\203\236\072\375\212\356 +\230\103\112\153\327\265\227\073\072\277\117\155\264\143\372\063 +\000\064\056\055\155\226\311\173\312\231\143\272\276\364\366\060 +\240\055\230\226\351\126\104\005\251\104\243\141\020\353\202\241 +\147\135\274\135\047\165\252\212\050\066\052\070\222\331\335\244 +\136\000\245\314\314\174\051\052\336\050\220\253\267\341\266\377 +\175\045\013\100\330\252\064\243\055\336\007\353\137\316\012\335 +\312\176\072\175\046\301\142\150\072\346\057\067\363\201\206\041 +\304\251\144\252\357\105\066\321\032\146\174\370\351\067\326\326 +\141\276\242\255\110\347\337\346\164\376\323\155\175\322\045\334 +\254\142\127\251\367 +END + +# Trust for Certificate "beTRUSTed Root CA - Entrust Implementation" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "beTRUSTed Root CA - Entrust Implementation" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\162\231\171\023\354\233\015\256\145\321\266\327\262\112\166\243 +\256\302\356\026 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\175\206\220\217\133\361\362\100\300\367\075\142\265\244\251\073 +END +CKA_ISSUER MULTILINE_OCTAL +\060\146\061\022\060\020\006\003\125\004\012\023\011\142\145\124 +\122\125\123\124\145\144\061\033\060\031\006\003\125\004\013\023 +\022\142\145\124\122\125\123\124\145\144\040\122\157\157\164\040 +\103\101\163\061\063\060\061\006\003\125\004\003\023\052\142\145 +\124\122\125\123\124\145\144\040\122\157\157\164\040\103\101\040 +\055\040\105\156\164\162\165\163\164\040\111\155\160\154\145\155 +\145\156\164\141\164\151\157\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\074\265\117\100 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "beTRUSTed Root CA - RSA Implementation" +# +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 "beTRUSTed Root CA - RSA Implementation" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\142\061\022\060\020\006\003\125\004\012\023\011\142\145\124 +\122\125\123\124\145\144\061\033\060\031\006\003\125\004\013\023 +\022\142\145\124\122\125\123\124\145\144\040\122\157\157\164\040 +\103\101\163\061\057\060\055\006\003\125\004\003\023\046\142\145 +\124\122\125\123\124\145\144\040\122\157\157\164\040\103\101\040 +\055\040\122\123\101\040\111\155\160\154\145\155\145\156\164\141 +\164\151\157\156 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\142\061\022\060\020\006\003\125\004\012\023\011\142\145\124 +\122\125\123\124\145\144\061\033\060\031\006\003\125\004\013\023 +\022\142\145\124\122\125\123\124\145\144\040\122\157\157\164\040 +\103\101\163\061\057\060\055\006\003\125\004\003\023\046\142\145 +\124\122\125\123\124\145\144\040\122\157\157\164\040\103\101\040 +\055\040\122\123\101\040\111\155\160\154\145\155\145\156\164\141 +\164\151\157\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\073\131\307\173\315\133\127\236\275\067\122\254\166\264 +\252\032 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\150\060\202\004\120\240\003\002\001\002\002\020\073 +\131\307\173\315\133\127\236\275\067\122\254\166\264\252\032\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\142 +\061\022\060\020\006\003\125\004\012\023\011\142\145\124\122\125 +\123\124\145\144\061\033\060\031\006\003\125\004\013\023\022\142 +\145\124\122\125\123\124\145\144\040\122\157\157\164\040\103\101 +\163\061\057\060\055\006\003\125\004\003\023\046\142\145\124\122 +\125\123\124\145\144\040\122\157\157\164\040\103\101\040\055\040 +\122\123\101\040\111\155\160\154\145\155\145\156\164\141\164\151 +\157\156\060\036\027\015\060\062\060\064\061\061\061\061\061\070 +\061\063\132\027\015\062\062\060\064\061\062\061\061\060\067\062 +\065\132\060\142\061\022\060\020\006\003\125\004\012\023\011\142 +\145\124\122\125\123\124\145\144\061\033\060\031\006\003\125\004 +\013\023\022\142\145\124\122\125\123\124\145\144\040\122\157\157 +\164\040\103\101\163\061\057\060\055\006\003\125\004\003\023\046 +\142\145\124\122\125\123\124\145\144\040\122\157\157\164\040\103 +\101\040\055\040\122\123\101\040\111\155\160\154\145\155\145\156 +\164\141\164\151\157\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\344\272\064\060\011\216\127\320\271 +\006\054\157\156\044\200\042\277\135\103\246\372\117\254\202\347 +\034\150\160\205\033\243\156\265\252\170\331\156\007\113\077\351 +\337\365\352\350\124\241\141\212\016\057\151\165\030\267\014\345 +\024\215\161\156\230\270\125\374\014\225\320\233\156\341\055\210 +\324\072\100\153\222\361\231\226\144\336\333\377\170\364\356\226 +\035\107\211\174\324\276\271\210\167\043\072\011\346\004\236\155 +\252\136\322\310\275\232\116\031\337\211\352\133\016\176\303\344 +\264\360\340\151\073\210\017\101\220\370\324\161\103\044\301\217 +\046\113\073\126\351\377\214\154\067\351\105\255\205\214\123\303 +\140\206\220\112\226\311\263\124\260\273\027\360\034\105\331\324 +\033\031\144\126\012\031\367\314\341\377\206\257\176\130\136\254 +\172\220\037\311\050\071\105\173\242\266\307\234\037\332\205\324 +\041\206\131\060\223\276\123\063\067\366\357\101\317\063\307\253 +\162\153\045\365\363\123\033\014\114\056\361\165\113\357\240\207 +\367\376\212\025\320\154\325\313\371\150\123\271\160\025\023\302 +\365\056\373\103\065\165\055\002\003\001\000\001\243\202\002\030 +\060\202\002\024\060\014\006\003\125\035\023\004\005\060\003\001 +\001\377\060\202\001\265\006\003\125\035\040\004\202\001\254\060 +\202\001\250\060\202\001\244\006\017\053\006\001\004\001\261\076 +\000\000\003\011\050\203\221\061\060\202\001\217\060\101\006\010 +\053\006\001\005\005\007\002\001\026\065\150\164\164\160\072\057 +\057\167\167\167\056\142\145\164\162\165\163\164\145\144\056\143 +\157\155\057\160\162\157\144\165\143\164\163\137\163\145\162\166 +\151\143\145\163\057\151\156\144\145\170\056\150\164\155\154\060 +\202\001\110\006\010\053\006\001\005\005\007\002\002\060\202\001 +\072\032\202\001\066\122\145\154\151\141\156\143\145\040\157\156 +\040\157\162\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\162\145\141 +\164\145\163\040\141\156\040\141\143\153\156\157\167\154\145\144 +\147\155\145\156\164\040\141\156\144\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\164\150\145\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\040\141\156\144\040\164\150\145\040\122 +\145\154\171\151\156\147\040\120\141\162\164\171\040\101\147\162 +\145\145\155\145\156\164\054\040\167\150\151\143\150\040\143\141 +\156\040\142\145\040\146\157\165\156\144\040\141\164\040\164\150 +\145\040\142\145\124\122\125\123\124\145\144\040\167\145\142\040 +\163\151\164\145\054\040\150\164\164\160\072\057\057\167\167\167 +\056\142\145\164\162\165\163\164\145\144\056\143\157\155\057\160 +\162\157\144\165\143\164\163\137\163\145\162\166\151\143\145\163 +\057\151\156\144\145\170\056\150\164\155\154\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\251\354\024\176\371\331\103\314\123\053\024 +\255\317\367\360\131\211\101\315\031\060\035\006\003\125\035\016 +\004\026\004\024\251\354\024\176\371\331\103\314\123\053\024\255 +\317\367\360\131\211\101\315\031\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\202\001\001\000\333\227\260\165 +\352\014\304\301\230\312\126\005\300\250\255\046\110\257\055\040 +\350\201\307\266\337\103\301\054\035\165\113\324\102\215\347\172 +\250\164\334\146\102\131\207\263\365\151\155\331\251\236\263\175 +\034\061\301\365\124\342\131\044\111\345\356\275\071\246\153\212 +\230\104\373\233\327\052\203\227\064\055\307\175\065\114\055\064 +\270\076\015\304\354\210\047\257\236\222\375\120\141\202\250\140 +\007\024\123\314\145\023\301\366\107\104\151\322\061\310\246\335 +\056\263\013\336\112\215\133\075\253\015\302\065\122\242\126\067 +\314\062\213\050\205\102\234\221\100\172\160\053\070\066\325\341 +\163\032\037\345\372\176\137\334\326\234\073\060\352\333\300\133 +\047\134\323\163\007\301\302\363\114\233\157\237\033\312\036\252 +\250\070\063\011\130\262\256\374\007\350\066\334\125\272\057\117 +\100\376\172\275\006\246\201\301\223\042\174\206\021\012\006\167 +\110\256\065\267\057\062\232\141\136\213\276\051\237\051\044\210 +\126\071\054\250\322\253\226\003\132\324\110\237\271\100\204\013 +\230\150\373\001\103\326\033\342\011\261\227\034 +END + +# Trust for Certificate "beTRUSTed Root CA - RSA Implementation" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "beTRUSTed Root CA - RSA Implementation" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\035\202\131\312\041\047\303\313\301\154\331\062\366\054\145\051 +\214\250\207\022 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\206\102\005\011\274\247\235\354\035\363\056\016\272\330\035\320 +END +CKA_ISSUER MULTILINE_OCTAL +\060\142\061\022\060\020\006\003\125\004\012\023\011\142\145\124 +\122\125\123\124\145\144\061\033\060\031\006\003\125\004\013\023 +\022\142\145\124\122\125\123\124\145\144\040\122\157\157\164\040 +\103\101\163\061\057\060\055\006\003\125\004\003\023\046\142\145 +\124\122\125\123\124\145\144\040\122\157\157\164\040\103\101\040 +\055\040\122\123\101\040\111\155\160\154\145\155\145\156\164\141 +\164\151\157\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\073\131\307\173\315\133\127\236\275\067\122\254\166\264 +\252\032 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "RSA Security 1024 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 1024 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\061\060\062\064\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\061\060\062\064\040\126\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\012\001\001\001\000\000\002\174\000\000\000\013\000\000 +\000\002 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\134\060\202\001\305\240\003\002\001\002\002\020\012 +\001\001\001\000\000\002\174\000\000\000\013\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\061\060\062\064\040\126\063\060\036\027\015\060\061 +\060\062\062\062\062\061\060\061\064\071\132\027\015\062\066\060 +\062\062\062\062\060\060\061\064\071\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\061 +\060\062\064\040\126\063\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\325\335\376\146\011\317\044\074\076\256\201\116\116 +\212\304\151\200\133\131\073\337\271\115\114\312\265\055\303\047 +\055\074\257\000\102\155\274\050\246\226\317\177\327\130\254\203 +\012\243\125\265\173\027\220\025\204\114\212\356\046\231\334\130 +\357\307\070\246\252\257\320\216\102\310\142\327\253\254\251\373 +\112\175\277\352\376\022\115\335\377\046\055\157\066\124\150\310 +\322\204\126\356\222\123\141\011\263\077\071\233\250\311\233\275 +\316\237\176\324\031\152\026\051\030\276\327\072\151\334\045\133 +\063\032\121\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\304\300\034\244\007\224 +\375\315\115\001\324\124\332\245\014\137\336\256\005\132\060\035 +\006\003\125\035\016\004\026\004\024\304\300\034\244\007\224\375 +\315\115\001\324\124\332\245\014\137\336\256\005\132\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\003\201\201\000 +\077\055\152\343\046\103\225\175\211\227\145\373\165\344\162\035 +\106\127\304\141\153\151\237\022\233\054\325\132\350\300\242\360 +\103\225\343\037\351\166\315\334\353\274\223\240\145\012\307\115 +\117\137\247\257\242\106\024\271\014\363\314\275\152\156\267\235 +\336\045\102\320\124\377\236\150\163\143\334\044\353\042\277\250 +\162\362\136\000\341\015\116\072\103\156\231\116\077\211\170\003 +\230\312\363\125\314\235\256\216\301\252\105\230\372\217\032\240 +\215\210\043\361\025\101\015\245\106\076\221\077\213\353\367\161 +END + +# Trust for Certificate "RSA Security 1024 v3" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "RSA Security 1024 v3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\074\273\135\340\374\326\071\174\005\210\345\146\227\275\106\052 +\275\371\134\166 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\072\345\120\260\071\276\307\106\066\063\241\376\202\076\215\224 +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\061\060\062\064\040\126\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\012\001\001\001\000\000\002\174\000\000\000\013\000\000 +\000\002 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "TC TrustCenter, Germany, 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 "TC TrustCenter, Germany, Class 2 CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\274\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\020\060\016\006\003\125\004\010\023\007\110\141\155\142\165 +\162\147\061\020\060\016\006\003\125\004\007\023\007\110\141\155 +\142\165\162\147\061\072\060\070\006\003\125\004\012\023\061\124 +\103\040\124\162\165\163\164\103\145\156\164\145\162\040\146\157 +\162\040\123\145\143\165\162\151\164\171\040\151\156\040\104\141 +\164\141\040\116\145\164\167\157\162\153\163\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\051\060\047\006\011\052\206\110\206\367\015 +\001\011\001\026\032\143\145\162\164\151\146\151\143\141\164\145 +\100\164\162\165\163\164\143\145\156\164\145\162\056\144\145 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\274\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\020\060\016\006\003\125\004\010\023\007\110\141\155\142\165 +\162\147\061\020\060\016\006\003\125\004\007\023\007\110\141\155 +\142\165\162\147\061\072\060\070\006\003\125\004\012\023\061\124 +\103\040\124\162\165\163\164\103\145\156\164\145\162\040\146\157 +\162\040\123\145\143\165\162\151\164\171\040\151\156\040\104\141 +\164\141\040\116\145\164\167\157\162\153\163\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\051\060\047\006\011\052\206\110\206\367\015 +\001\011\001\026\032\143\145\162\164\151\146\151\143\141\164\145 +\100\164\162\165\163\164\143\145\156\164\145\162\056\144\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\003\352 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\134\060\202\002\305\240\003\002\001\002\002\002\003 +\352\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000 +\060\201\274\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\020\060\016\006\003\125\004\010\023\007\110\141\155\142\165 +\162\147\061\020\060\016\006\003\125\004\007\023\007\110\141\155 +\142\165\162\147\061\072\060\070\006\003\125\004\012\023\061\124 +\103\040\124\162\165\163\164\103\145\156\164\145\162\040\146\157 +\162\040\123\145\143\165\162\151\164\171\040\151\156\040\104\141 +\164\141\040\116\145\164\167\157\162\153\163\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\051\060\047\006\011\052\206\110\206\367\015 +\001\011\001\026\032\143\145\162\164\151\146\151\143\141\164\145 +\100\164\162\165\163\164\143\145\156\164\145\162\056\144\145\060 +\036\027\015\071\070\060\063\060\071\061\061\065\071\065\071\132 +\027\015\061\061\060\061\060\061\061\061\065\071\065\071\132\060 +\201\274\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\020\060\016\006\003\125\004\010\023\007\110\141\155\142\165\162 +\147\061\020\060\016\006\003\125\004\007\023\007\110\141\155\142 +\165\162\147\061\072\060\070\006\003\125\004\012\023\061\124\103 +\040\124\162\165\163\164\103\145\156\164\145\162\040\146\157\162 +\040\123\145\143\165\162\151\164\171\040\151\156\040\104\141\164 +\141\040\116\145\164\167\157\162\153\163\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\051\060\047\006\011\052\206\110\206\367\015\001 +\011\001\026\032\143\145\162\164\151\146\151\143\141\164\145\100 +\164\162\165\163\164\143\145\156\164\145\162\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\332\070\350\355\062 +\000\051\161\203\001\015\277\214\001\334\332\306\255\071\244\251 +\212\057\325\213\134\150\137\120\306\142\365\146\275\312\221\042 +\354\252\035\121\327\075\263\121\262\203\116\135\313\111\260\360 +\114\125\345\153\055\307\205\013\060\034\222\116\202\324\312\002 +\355\367\157\276\334\340\343\024\270\005\123\362\232\364\126\213 +\132\236\205\223\321\264\202\126\256\115\273\250\113\127\026\274 +\376\370\130\236\370\051\215\260\173\315\170\311\117\254\213\147 +\014\361\234\373\374\127\233\127\134\117\015\002\003\001\000\001 +\243\153\060\151\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\063\006\011\140\206\110\001\206\370\102 +\001\010\004\046\026\044\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 +\147\165\151\144\145\154\151\156\145\163\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\004\005\000\003\201\201\000 +\204\122\373\050\337\377\037\165\001\274\001\276\004\126\227\152 +\164\102\044\061\203\371\106\261\006\212\211\317\226\054\063\277 +\214\265\137\172\162\241\205\006\316\206\370\005\216\350\371\045 +\312\332\203\214\006\254\353\066\155\205\221\064\004\066\364\102 +\360\370\171\056\012\110\134\253\314\121\117\170\166\240\331\254 +\031\275\052\321\151\004\050\221\312\066\020\047\200\127\133\322 +\134\365\302\133\253\144\201\143\164\121\364\227\277\315\022\050 +\367\115\146\177\247\360\034\001\046\170\262\146\107\160\121\144 +END + +# Trust for Certificate "TC TrustCenter, Germany, Class 2 CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TC TrustCenter, Germany, Class 2 CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\203\216\060\367\177\335\024\252\070\136\321\105\000\234\016\042 +\066\111\117\252 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\270\026\063\114\114\114\362\330\323\115\006\264\246\133\100\003 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\274\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\020\060\016\006\003\125\004\010\023\007\110\141\155\142\165 +\162\147\061\020\060\016\006\003\125\004\007\023\007\110\141\155 +\142\165\162\147\061\072\060\070\006\003\125\004\012\023\061\124 +\103\040\124\162\165\163\164\103\145\156\164\145\162\040\146\157 +\162\040\123\145\143\165\162\151\164\171\040\151\156\040\104\141 +\164\141\040\116\145\164\167\157\162\153\163\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\051\060\047\006\011\052\206\110\206\367\015 +\001\011\001\026\032\143\145\162\164\151\146\151\143\141\164\145 +\100\164\162\165\163\164\143\145\156\164\145\162\056\144\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\003\352 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "TC TrustCenter, Germany, Class 3 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 "TC TrustCenter, Germany, Class 3 CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\274\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\020\060\016\006\003\125\004\010\023\007\110\141\155\142\165 +\162\147\061\020\060\016\006\003\125\004\007\023\007\110\141\155 +\142\165\162\147\061\072\060\070\006\003\125\004\012\023\061\124 +\103\040\124\162\165\163\164\103\145\156\164\145\162\040\146\157 +\162\040\123\145\143\165\162\151\164\171\040\151\156\040\104\141 +\164\141\040\116\145\164\167\157\162\153\163\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\051\060\047\006\011\052\206\110\206\367\015 +\001\011\001\026\032\143\145\162\164\151\146\151\143\141\164\145 +\100\164\162\165\163\164\143\145\156\164\145\162\056\144\145 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\274\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\020\060\016\006\003\125\004\010\023\007\110\141\155\142\165 +\162\147\061\020\060\016\006\003\125\004\007\023\007\110\141\155 +\142\165\162\147\061\072\060\070\006\003\125\004\012\023\061\124 +\103\040\124\162\165\163\164\103\145\156\164\145\162\040\146\157 +\162\040\123\145\143\165\162\151\164\171\040\151\156\040\104\141 +\164\141\040\116\145\164\167\157\162\153\163\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\051\060\047\006\011\052\206\110\206\367\015 +\001\011\001\026\032\143\145\162\164\151\146\151\143\141\164\145 +\100\164\162\165\163\164\143\145\156\164\145\162\056\144\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\003\353 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\134\060\202\002\305\240\003\002\001\002\002\002\003 +\353\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000 +\060\201\274\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\020\060\016\006\003\125\004\010\023\007\110\141\155\142\165 +\162\147\061\020\060\016\006\003\125\004\007\023\007\110\141\155 +\142\165\162\147\061\072\060\070\006\003\125\004\012\023\061\124 +\103\040\124\162\165\163\164\103\145\156\164\145\162\040\146\157 +\162\040\123\145\143\165\162\151\164\171\040\151\156\040\104\141 +\164\141\040\116\145\164\167\157\162\153\163\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\051\060\047\006\011\052\206\110\206\367\015 +\001\011\001\026\032\143\145\162\164\151\146\151\143\141\164\145 +\100\164\162\165\163\164\143\145\156\164\145\162\056\144\145\060 +\036\027\015\071\070\060\063\060\071\061\061\065\071\065\071\132 +\027\015\061\061\060\061\060\061\061\061\065\071\065\071\132\060 +\201\274\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\020\060\016\006\003\125\004\010\023\007\110\141\155\142\165\162 +\147\061\020\060\016\006\003\125\004\007\023\007\110\141\155\142 +\165\162\147\061\072\060\070\006\003\125\004\012\023\061\124\103 +\040\124\162\165\163\164\103\145\156\164\145\162\040\146\157\162 +\040\123\145\143\165\162\151\164\171\040\151\156\040\104\141\164 +\141\040\116\145\164\167\157\162\153\163\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\051\060\047\006\011\052\206\110\206\367\015\001 +\011\001\026\032\143\145\162\164\151\146\151\143\141\164\145\100 +\164\162\165\163\164\143\145\156\164\145\162\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\266\264\301\065\005 +\056\015\215\354\240\100\152\034\016\047\246\120\222\153\120\033 +\007\336\056\347\166\314\340\332\374\204\250\136\214\143\152\053 +\115\331\116\002\166\021\301\013\362\215\171\312\000\266\361\260 +\016\327\373\244\027\075\257\253\151\172\226\047\277\257\063\241 +\232\052\131\252\304\265\067\010\362\022\245\061\266\103\365\062 +\226\161\050\050\253\215\050\206\337\273\356\343\014\175\060\326 +\303\122\253\217\135\047\234\153\300\243\347\005\153\127\111\104 +\263\156\352\144\317\322\216\172\120\167\167\002\003\001\000\001 +\243\153\060\151\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\063\006\011\140\206\110\001\206\370\102 +\001\010\004\046\026\044\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 +\147\165\151\144\145\154\151\156\145\163\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\004\005\000\003\201\201\000 +\026\075\306\315\301\273\205\161\205\106\237\076\040\217\121\050 +\231\354\055\105\041\143\043\133\004\273\114\220\270\210\222\004 +\115\275\175\001\243\077\366\354\316\361\336\376\175\345\341\076 +\273\306\253\136\013\335\075\226\304\313\251\324\371\046\346\006 +\116\236\014\245\172\272\156\303\174\202\031\321\307\261\261\303 +\333\015\216\233\100\174\067\013\361\135\350\375\037\220\210\245 +\016\116\067\144\041\250\116\215\264\237\361\336\110\255\325\126 +\030\122\051\213\107\064\022\011\324\273\222\065\357\017\333\064 +END + +# Trust for Certificate "TC TrustCenter, Germany, Class 3 CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TC TrustCenter, Germany, Class 3 CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\237\307\226\350\370\122\117\206\072\341\111\155\070\022\102\020 +\137\033\170\365 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\137\224\112\163\042\270\367\321\061\354\131\071\367\216\376\156 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\274\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\020\060\016\006\003\125\004\010\023\007\110\141\155\142\165 +\162\147\061\020\060\016\006\003\125\004\007\023\007\110\141\155 +\142\165\162\147\061\072\060\070\006\003\125\004\012\023\061\124 +\103\040\124\162\165\163\164\103\145\156\164\145\162\040\146\157 +\162\040\123\145\143\165\162\151\164\171\040\151\156\040\104\141 +\164\141\040\116\145\164\167\157\162\153\163\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\051\060\047\006\011\052\206\110\206\367\015 +\001\011\001\026\032\143\145\162\164\151\146\151\143\141\164\145 +\100\164\162\165\163\164\143\145\156\164\145\162\056\144\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\003\353 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "IPS Chained CAs 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 "IPS Chained CAs root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\202\001\034\061\013\060\011\006\003\125\004\006\023\002\105 +\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143 +\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011 +\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125 +\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164 +\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166 +\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125 +\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163 +\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060 +\071\062\071\064\065\062\061\063\060\061\006\003\125\004\013\023 +\052\111\120\123\040\103\101\040\103\150\141\151\156\145\144\040 +\103\101\163\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\063\060\061\006 +\003\125\004\003\023\052\111\120\123\040\103\101\040\103\150\141 +\151\156\145\144\040\103\101\163\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\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026 +\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\202\001\034\061\013\060\011\006\003\125\004\006\023\002\105 +\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143 +\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011 +\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125 +\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164 +\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166 +\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125 +\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163 +\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060 +\071\062\071\064\065\062\061\063\060\061\006\003\125\004\013\023 +\052\111\120\123\040\103\101\040\103\150\141\151\156\145\144\040 +\103\101\163\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\063\060\061\006 +\003\125\004\003\023\052\111\120\123\040\103\101\040\103\150\141 +\151\156\145\144\040\103\101\163\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\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026 +\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\007\367\060\202\007\140\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\202\001\034\061\013\060\011\006\003\125\004\006\023\002\105\123 +\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145 +\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102 +\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004 +\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040 +\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151 +\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004 +\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056 +\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071 +\062\071\064\065\062\061\063\060\061\006\003\125\004\013\023\052 +\111\120\123\040\103\101\040\103\150\141\151\156\145\144\040\103 +\101\163\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\063\060\061\006\003 +\125\004\003\023\052\111\120\123\040\103\101\040\103\150\141\151 +\156\145\144\040\103\101\163\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 +\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026\017 +\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163\060 +\036\027\015\060\061\061\062\062\071\060\060\065\063\065\070\132 +\027\015\062\065\061\062\062\067\060\060\065\063\065\070\132\060 +\202\001\034\061\013\060\011\006\003\125\004\006\023\002\105\123 +\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145 +\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102 +\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004 +\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040 +\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151 +\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004 +\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056 +\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071 +\062\071\064\065\062\061\063\060\061\006\003\125\004\013\023\052 +\111\120\123\040\103\101\040\103\150\141\151\156\145\144\040\103 +\101\163\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\063\060\061\006\003 +\125\004\003\023\052\111\120\123\040\103\101\040\103\150\141\151 +\156\145\144\040\103\101\163\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 +\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026\017 +\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163\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\334\126\222\111 +\262\224\040\274\230\117\120\353\150\244\247\111\013\277\322\061 +\350\307\117\302\206\013\372\150\375\103\132\212\363\140\222\065 +\231\070\273\115\003\122\041\133\360\067\231\065\341\101\040\201 +\205\201\005\161\201\235\264\225\031\251\137\166\064\056\143\067 +\065\127\216\264\037\102\077\025\134\341\172\301\137\023\030\062 +\061\311\255\276\243\307\203\146\036\271\234\004\023\313\151\301 +\006\336\060\006\273\063\243\265\037\360\217\157\316\377\226\350 +\124\276\146\200\256\153\333\101\204\066\242\075\002\003\001\000 +\001\243\202\004\103\060\202\004\077\060\035\006\003\125\035\016 +\004\026\004\024\241\255\061\261\371\076\341\027\246\310\253\064 +\374\122\207\011\036\142\122\101\060\202\001\116\006\003\125\035 +\043\004\202\001\105\060\202\001\101\200\024\241\255\061\261\371 +\076\341\027\246\310\253\064\374\122\207\011\036\142\122\101\241 +\202\001\044\244\202\001\040\060\202\001\034\061\013\060\011\006 +\003\125\004\006\023\002\105\123\061\022\060\020\006\003\125\004 +\010\023\011\102\141\162\143\145\154\157\156\141\061\022\060\020 +\006\003\125\004\007\023\011\102\141\162\143\145\154\157\156\141 +\061\056\060\054\006\003\125\004\012\023\045\111\120\123\040\111 +\156\164\145\162\156\145\164\040\160\165\142\154\151\163\150\151 +\156\147\040\123\145\162\166\151\143\145\163\040\163\056\154\056 +\061\053\060\051\006\003\125\004\012\024\042\151\160\163\100\155 +\141\151\154\056\151\160\163\056\145\163\040\103\056\111\056\106 +\056\040\040\102\055\066\060\071\062\071\064\065\062\061\063\060 +\061\006\003\125\004\013\023\052\111\120\123\040\103\101\040\103 +\150\141\151\156\145\144\040\103\101\163\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\063\060\061\006\003\125\004\003\023\052\111\120\123 +\040\103\101\040\103\150\141\151\156\145\144\040\103\101\163\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\036\060\034\006\011\052\206\110 +\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154 +\056\151\160\163\056\145\163\202\001\000\060\014\006\003\125\035 +\023\004\005\060\003\001\001\377\060\014\006\003\125\035\017\004 +\005\003\003\007\377\200\060\153\006\003\125\035\045\004\144\060 +\142\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\003\006 +\010\053\006\001\005\005\007\003\004\006\010\053\006\001\005\005 +\007\003\010\006\012\053\006\001\004\001\202\067\002\001\025\006 +\012\053\006\001\004\001\202\067\002\001\026\006\012\053\006\001 +\004\001\202\067\012\003\001\006\012\053\006\001\004\001\202\067 +\012\003\004\060\021\006\011\140\206\110\001\206\370\102\001\001 +\004\004\003\002\000\007\060\032\006\003\125\035\021\004\023\060 +\021\201\017\151\160\163\100\155\141\151\154\056\151\160\163\056 +\145\163\060\032\006\003\125\035\022\004\023\060\021\201\017\151 +\160\163\100\155\141\151\154\056\151\160\163\056\145\163\060\102 +\006\011\140\206\110\001\206\370\102\001\015\004\065\026\063\103 +\150\141\151\156\145\144\040\103\101\040\103\145\162\164\151\146 +\151\143\141\164\145\040\151\163\163\165\145\144\040\142\171\040 +\150\164\164\160\072\057\057\167\167\167\056\151\160\163\056\145 +\163\057\060\051\006\011\140\206\110\001\206\370\102\001\002\004 +\034\026\032\150\164\164\160\072\057\057\167\167\167\056\151\160 +\163\056\145\163\057\151\160\163\062\060\060\062\057\060\067\006 +\011\140\206\110\001\206\370\102\001\004\004\052\026\050\150\164 +\164\160\072\057\057\167\167\167\056\151\160\163\056\145\163\057 +\151\160\163\062\060\060\062\057\151\160\163\062\060\060\062\103 +\101\103\056\143\162\154\060\074\006\011\140\206\110\001\206\370 +\102\001\003\004\057\026\055\150\164\164\160\072\057\057\167\167 +\167\056\151\160\163\056\145\163\057\151\160\163\062\060\060\062 +\057\162\145\166\157\143\141\164\151\157\156\103\101\103\056\150 +\164\155\154\077\060\071\006\011\140\206\110\001\206\370\102\001 +\007\004\054\026\052\150\164\164\160\072\057\057\167\167\167\056 +\151\160\163\056\145\163\057\151\160\163\062\060\060\062\057\162 +\145\156\145\167\141\154\103\101\103\056\150\164\155\154\077\060 +\067\006\011\140\206\110\001\206\370\102\001\010\004\052\026\050 +\150\164\164\160\072\057\057\167\167\167\056\151\160\163\056\145 +\163\057\151\160\163\062\060\060\062\057\160\157\154\151\143\171 +\103\101\103\056\150\164\155\154\060\155\006\003\125\035\037\004 +\146\060\144\060\056\240\054\240\052\206\050\150\164\164\160\072 +\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163 +\062\060\060\062\057\151\160\163\062\060\060\062\103\101\103\056 +\143\162\154\060\062\240\060\240\056\206\054\150\164\164\160\072 +\057\057\167\167\167\142\141\143\153\056\151\160\163\056\145\163 +\057\151\160\163\062\060\060\062\057\151\160\163\062\060\060\062 +\103\101\103\056\143\162\154\060\057\006\010\053\006\001\005\005 +\007\001\001\004\043\060\041\060\037\006\010\053\006\001\005\005 +\007\060\001\206\023\150\164\164\160\072\057\057\157\143\163\160 +\056\151\160\163\056\145\163\057\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\201\201\000\104\162\060\235\126 +\130\242\101\033\050\267\225\341\246\032\225\137\247\170\100\053 +\357\333\226\112\374\114\161\143\331\163\225\275\002\342\242\006 +\307\276\227\052\223\200\064\206\003\372\334\330\075\036\007\315 +\036\163\103\044\140\365\035\141\334\334\226\240\274\373\035\343 +\347\022\000\047\063\002\300\300\053\123\075\330\153\003\201\243 +\333\326\223\225\040\357\323\226\176\046\220\211\234\046\233\315 +\157\146\253\355\003\042\104\070\314\131\275\237\333\366\007\242 +\001\177\046\304\143\365\045\102\136\142\275 +END + +# Trust for Certificate "IPS Chained CAs root" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "IPS Chained CAs root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\310\302\137\026\236\370\120\164\325\276\350\315\242\324\074\256 +\347\137\322\127 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\215\162\121\333\240\072\317\040\167\337\362\145\006\136\337\357 +END +CKA_ISSUER MULTILINE_OCTAL +\060\202\001\034\061\013\060\011\006\003\125\004\006\023\002\105 +\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143 +\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011 +\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125 +\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164 +\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166 +\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125 +\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163 +\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060 +\071\062\071\064\065\062\061\063\060\061\006\003\125\004\013\023 +\052\111\120\123\040\103\101\040\103\150\141\151\156\145\144\040 +\103\101\163\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\063\060\061\006 +\003\125\004\003\023\052\111\120\123\040\103\101\040\103\150\141 +\151\156\145\144\040\103\101\163\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\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026 +\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "IPS CLASE1 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 "IPS CLASE1 root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105 +\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143 +\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011 +\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125 +\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164 +\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166 +\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125 +\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163 +\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060 +\071\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023 +\045\111\120\123\040\103\101\040\103\114\101\123\105\061\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\111\120\123\040\103\101\040\103\114\101\123\105\061\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\036\060\034\006\011\052\206\110\206 +\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056 +\151\160\163\056\145\163 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105 +\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143 +\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011 +\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125 +\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164 +\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166 +\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125 +\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163 +\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060 +\071\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023 +\045\111\120\123\040\103\101\040\103\114\101\123\105\061\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\111\120\123\040\103\101\040\103\114\101\123\105\061\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\036\060\034\006\011\052\206\110\206 +\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056 +\151\160\163\056\145\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\007\352\060\202\007\123\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105\123 +\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145 +\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102 +\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004 +\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040 +\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151 +\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004 +\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056 +\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071 +\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023\045 +\111\120\123\040\103\101\040\103\114\101\123\105\061\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 +\111\120\123\040\103\101\040\103\114\101\123\105\061\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\036\060\034\006\011\052\206\110\206\367 +\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056\151 +\160\163\056\145\163\060\036\027\015\060\061\061\062\062\071\060 +\060\065\071\063\070\132\027\015\062\065\061\062\062\067\060\060 +\065\071\063\070\132\060\202\001\022\061\013\060\011\006\003\125 +\004\006\023\002\105\123\061\022\060\020\006\003\125\004\010\023 +\011\102\141\162\143\145\154\157\156\141\061\022\060\020\006\003 +\125\004\007\023\011\102\141\162\143\145\154\157\156\141\061\056 +\060\054\006\003\125\004\012\023\045\111\120\123\040\111\156\164 +\145\162\156\145\164\040\160\165\142\154\151\163\150\151\156\147 +\040\123\145\162\166\151\143\145\163\040\163\056\154\056\061\053 +\060\051\006\003\125\004\012\024\042\151\160\163\100\155\141\151 +\154\056\151\160\163\056\145\163\040\103\056\111\056\106\056\040 +\040\102\055\066\060\071\062\071\064\065\062\061\056\060\054\006 +\003\125\004\013\023\045\111\120\123\040\103\101\040\103\114\101 +\123\105\061\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\111\120\123\040\103\101\040\103\114\101 +\123\105\061\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\036\060\034\006 +\011\052\206\110\206\367\015\001\011\001\026\017\151\160\163\100 +\155\141\151\154\056\151\160\163\056\145\163\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\340\121\047\247\013\335\257\321 +\271\103\133\202\067\105\126\162\357\232\266\302\022\357\054\022 +\314\166\371\006\131\257\135\041\324\322\132\270\240\324\363\152 +\375\312\151\215\146\110\367\164\346\356\066\275\350\226\221\165 +\246\161\050\312\347\042\022\062\151\260\076\036\153\364\120\122 +\142\142\375\143\073\175\176\354\356\070\352\142\364\154\250\161 +\215\341\351\213\311\077\306\265\315\224\102\157\335\202\105\074 +\350\337\011\350\357\012\125\251\126\107\141\114\111\144\163\020 +\050\077\312\277\011\377\306\057\002\003\001\000\001\243\202\004 +\112\060\202\004\106\060\035\006\003\125\035\016\004\026\004\024 +\353\263\031\171\363\301\245\034\254\334\272\037\146\242\262\233 +\151\320\170\010\060\202\001\104\006\003\125\035\043\004\202\001 +\073\060\202\001\067\200\024\353\263\031\171\363\301\245\034\254 +\334\272\037\146\242\262\233\151\320\170\010\241\202\001\032\244 +\202\001\026\060\202\001\022\061\013\060\011\006\003\125\004\006 +\023\002\105\123\061\022\060\020\006\003\125\004\010\023\011\102 +\141\162\143\145\154\157\156\141\061\022\060\020\006\003\125\004 +\007\023\011\102\141\162\143\145\154\157\156\141\061\056\060\054 +\006\003\125\004\012\023\045\111\120\123\040\111\156\164\145\162 +\156\145\164\040\160\165\142\154\151\163\150\151\156\147\040\123 +\145\162\166\151\143\145\163\040\163\056\154\056\061\053\060\051 +\006\003\125\004\012\024\042\151\160\163\100\155\141\151\154\056 +\151\160\163\056\145\163\040\103\056\111\056\106\056\040\040\102 +\055\066\060\071\062\071\064\065\062\061\056\060\054\006\003\125 +\004\013\023\045\111\120\123\040\103\101\040\103\114\101\123\105 +\061\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\111\120\123\040\103\101\040\103\114\101\123\105 +\061\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\036\060\034\006\011\052 +\206\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141 +\151\154\056\151\160\163\056\145\163\202\001\000\060\014\006\003 +\125\035\023\004\005\060\003\001\001\377\060\014\006\003\125\035 +\017\004\005\003\003\007\377\200\060\153\006\003\125\035\045\004 +\144\060\142\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 +\003\006\010\053\006\001\005\005\007\003\004\006\010\053\006\001 +\005\005\007\003\010\006\012\053\006\001\004\001\202\067\002\001 +\025\006\012\053\006\001\004\001\202\067\002\001\026\006\012\053 +\006\001\004\001\202\067\012\003\001\006\012\053\006\001\004\001 +\202\067\012\003\004\060\021\006\011\140\206\110\001\206\370\102 +\001\001\004\004\003\002\000\007\060\032\006\003\125\035\021\004 +\023\060\021\201\017\151\160\163\100\155\141\151\154\056\151\160 +\163\056\145\163\060\032\006\003\125\035\022\004\023\060\021\201 +\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163 +\060\101\006\011\140\206\110\001\206\370\102\001\015\004\064\026 +\062\103\114\101\123\105\061\040\103\101\040\103\145\162\164\151 +\146\151\143\141\164\145\040\151\163\163\165\145\144\040\142\171 +\040\150\164\164\160\072\057\057\167\167\167\056\151\160\163\056 +\145\163\057\060\051\006\011\140\206\110\001\206\370\102\001\002 +\004\034\026\032\150\164\164\160\072\057\057\167\167\167\056\151 +\160\163\056\145\163\057\151\160\163\062\060\060\062\057\060\072 +\006\011\140\206\110\001\206\370\102\001\004\004\055\026\053\150 +\164\164\160\072\057\057\167\167\167\056\151\160\163\056\145\163 +\057\151\160\163\062\060\060\062\057\151\160\163\062\060\060\062 +\103\114\101\123\105\061\056\143\162\154\060\077\006\011\140\206 +\110\001\206\370\102\001\003\004\062\026\060\150\164\164\160\072 +\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163 +\062\060\060\062\057\162\145\166\157\143\141\164\151\157\156\103 +\114\101\123\105\061\056\150\164\155\154\077\060\074\006\011\140 +\206\110\001\206\370\102\001\007\004\057\026\055\150\164\164\160 +\072\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160 +\163\062\060\060\062\057\162\145\156\145\167\141\154\103\114\101 +\123\105\061\056\150\164\155\154\077\060\072\006\011\140\206\110 +\001\206\370\102\001\010\004\055\026\053\150\164\164\160\072\057 +\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163\062 +\060\060\062\057\160\157\154\151\143\171\103\114\101\123\105\061 +\056\150\164\155\154\060\163\006\003\125\035\037\004\154\060\152 +\060\061\240\057\240\055\206\053\150\164\164\160\072\057\057\167 +\167\167\056\151\160\163\056\145\163\057\151\160\163\062\060\060 +\062\057\151\160\163\062\060\060\062\103\114\101\123\105\061\056 +\143\162\154\060\065\240\063\240\061\206\057\150\164\164\160\072 +\057\057\167\167\167\142\141\143\153\056\151\160\163\056\145\163 +\057\151\160\163\062\060\060\062\057\151\160\163\062\060\060\062 +\103\114\101\123\105\061\056\143\162\154\060\057\006\010\053\006 +\001\005\005\007\001\001\004\043\060\041\060\037\006\010\053\006 +\001\005\005\007\060\001\206\023\150\164\164\160\072\057\057\157 +\143\163\160\056\151\160\163\056\145\163\057\060\015\006\011\052 +\206\110\206\367\015\001\001\005\005\000\003\201\201\000\053\320 +\353\375\332\310\312\131\152\332\323\314\062\056\311\124\033\212 +\142\176\025\055\351\331\061\323\056\364\047\043\377\133\253\305 +\112\266\162\100\256\123\164\364\274\005\264\306\331\310\311\167 +\373\267\371\064\177\170\000\370\326\244\344\122\077\054\112\143 +\127\201\165\132\216\350\214\373\002\300\224\306\051\272\263\334 +\034\350\262\257\322\056\142\133\032\251\216\016\314\305\127\105 +\121\024\351\116\034\210\245\221\364\243\367\216\121\310\251\276 +\206\063\076\346\057\110\156\257\124\220\116\255\261\045 +END + +# Trust for Certificate "IPS CLASE1 root" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "IPS CLASE1 root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\103\236\122\137\132\152\107\303\054\353\304\134\143\355\071\061 +\174\345\364\337 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\204\220\035\225\060\111\126\374\101\201\360\105\327\166\304\153 +END +CKA_ISSUER MULTILINE_OCTAL +\060\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105 +\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143 +\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011 +\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125 +\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164 +\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166 +\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125 +\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163 +\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060 +\071\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023 +\045\111\120\123\040\103\101\040\103\114\101\123\105\061\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\111\120\123\040\103\101\040\103\114\101\123\105\061\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\036\060\034\006\011\052\206\110\206 +\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056 +\151\160\163\056\145\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "IPS CLASE3 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 "IPS CLASE3 root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105 +\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143 +\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011 +\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125 +\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164 +\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166 +\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125 +\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163 +\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060 +\071\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023 +\045\111\120\123\040\103\101\040\103\114\101\123\105\063\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\111\120\123\040\103\101\040\103\114\101\123\105\063\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\036\060\034\006\011\052\206\110\206 +\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056 +\151\160\163\056\145\163 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105 +\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143 +\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011 +\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125 +\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164 +\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166 +\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125 +\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163 +\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060 +\071\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023 +\045\111\120\123\040\103\101\040\103\114\101\123\105\063\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\111\120\123\040\103\101\040\103\114\101\123\105\063\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\036\060\034\006\011\052\206\110\206 +\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056 +\151\160\163\056\145\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\007\352\060\202\007\123\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105\123 +\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145 +\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102 +\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004 +\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040 +\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151 +\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004 +\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056 +\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071 +\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023\045 +\111\120\123\040\103\101\040\103\114\101\123\105\063\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 +\111\120\123\040\103\101\040\103\114\101\123\105\063\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\036\060\034\006\011\052\206\110\206\367 +\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056\151 +\160\163\056\145\163\060\036\027\015\060\061\061\062\062\071\060 +\061\060\061\064\064\132\027\015\062\065\061\062\062\067\060\061 +\060\061\064\064\132\060\202\001\022\061\013\060\011\006\003\125 +\004\006\023\002\105\123\061\022\060\020\006\003\125\004\010\023 +\011\102\141\162\143\145\154\157\156\141\061\022\060\020\006\003 +\125\004\007\023\011\102\141\162\143\145\154\157\156\141\061\056 +\060\054\006\003\125\004\012\023\045\111\120\123\040\111\156\164 +\145\162\156\145\164\040\160\165\142\154\151\163\150\151\156\147 +\040\123\145\162\166\151\143\145\163\040\163\056\154\056\061\053 +\060\051\006\003\125\004\012\024\042\151\160\163\100\155\141\151 +\154\056\151\160\163\056\145\163\040\103\056\111\056\106\056\040 +\040\102\055\066\060\071\062\071\064\065\062\061\056\060\054\006 +\003\125\004\013\023\045\111\120\123\040\103\101\040\103\114\101 +\123\105\063\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\111\120\123\040\103\101\040\103\114\101 +\123\105\063\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\036\060\034\006 +\011\052\206\110\206\367\015\001\011\001\026\017\151\160\163\100 +\155\141\151\154\056\151\160\163\056\145\163\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\253\027\376\016\260\306\150\033 +\123\360\122\276\237\372\332\372\213\023\004\273\001\217\062\331 +\037\217\115\316\066\230\332\344\000\104\214\050\330\023\104\052 +\244\153\116\027\044\102\234\323\210\244\101\202\326\043\373\213 +\311\206\345\271\251\202\005\334\361\336\037\340\014\231\125\230 +\362\070\354\154\235\040\003\300\357\252\243\306\144\004\121\055 +\170\015\243\322\250\072\326\044\114\351\226\172\030\254\023\043 +\042\033\174\350\061\021\263\137\011\252\060\160\161\106\045\153 +\111\161\200\053\225\001\262\037\002\003\001\000\001\243\202\004 +\112\060\202\004\106\060\035\006\003\125\035\016\004\026\004\024 +\270\223\377\056\313\334\054\216\242\347\172\376\066\121\041\243 +\230\133\014\064\060\202\001\104\006\003\125\035\043\004\202\001 +\073\060\202\001\067\200\024\270\223\377\056\313\334\054\216\242 +\347\172\376\066\121\041\243\230\133\014\064\241\202\001\032\244 +\202\001\026\060\202\001\022\061\013\060\011\006\003\125\004\006 +\023\002\105\123\061\022\060\020\006\003\125\004\010\023\011\102 +\141\162\143\145\154\157\156\141\061\022\060\020\006\003\125\004 +\007\023\011\102\141\162\143\145\154\157\156\141\061\056\060\054 +\006\003\125\004\012\023\045\111\120\123\040\111\156\164\145\162 +\156\145\164\040\160\165\142\154\151\163\150\151\156\147\040\123 +\145\162\166\151\143\145\163\040\163\056\154\056\061\053\060\051 +\006\003\125\004\012\024\042\151\160\163\100\155\141\151\154\056 +\151\160\163\056\145\163\040\103\056\111\056\106\056\040\040\102 +\055\066\060\071\062\071\064\065\062\061\056\060\054\006\003\125 +\004\013\023\045\111\120\123\040\103\101\040\103\114\101\123\105 +\063\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\111\120\123\040\103\101\040\103\114\101\123\105 +\063\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\036\060\034\006\011\052 +\206\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141 +\151\154\056\151\160\163\056\145\163\202\001\000\060\014\006\003 +\125\035\023\004\005\060\003\001\001\377\060\014\006\003\125\035 +\017\004\005\003\003\007\377\200\060\153\006\003\125\035\045\004 +\144\060\142\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 +\003\006\010\053\006\001\005\005\007\003\004\006\010\053\006\001 +\005\005\007\003\010\006\012\053\006\001\004\001\202\067\002\001 +\025\006\012\053\006\001\004\001\202\067\002\001\026\006\012\053 +\006\001\004\001\202\067\012\003\001\006\012\053\006\001\004\001 +\202\067\012\003\004\060\021\006\011\140\206\110\001\206\370\102 +\001\001\004\004\003\002\000\007\060\032\006\003\125\035\021\004 +\023\060\021\201\017\151\160\163\100\155\141\151\154\056\151\160 +\163\056\145\163\060\032\006\003\125\035\022\004\023\060\021\201 +\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163 +\060\101\006\011\140\206\110\001\206\370\102\001\015\004\064\026 +\062\103\114\101\123\105\063\040\103\101\040\103\145\162\164\151 +\146\151\143\141\164\145\040\151\163\163\165\145\144\040\142\171 +\040\150\164\164\160\072\057\057\167\167\167\056\151\160\163\056 +\145\163\057\060\051\006\011\140\206\110\001\206\370\102\001\002 +\004\034\026\032\150\164\164\160\072\057\057\167\167\167\056\151 +\160\163\056\145\163\057\151\160\163\062\060\060\062\057\060\072 +\006\011\140\206\110\001\206\370\102\001\004\004\055\026\053\150 +\164\164\160\072\057\057\167\167\167\056\151\160\163\056\145\163 +\057\151\160\163\062\060\060\062\057\151\160\163\062\060\060\062 +\103\114\101\123\105\063\056\143\162\154\060\077\006\011\140\206 +\110\001\206\370\102\001\003\004\062\026\060\150\164\164\160\072 +\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163 +\062\060\060\062\057\162\145\166\157\143\141\164\151\157\156\103 +\114\101\123\105\063\056\150\164\155\154\077\060\074\006\011\140 +\206\110\001\206\370\102\001\007\004\057\026\055\150\164\164\160 +\072\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160 +\163\062\060\060\062\057\162\145\156\145\167\141\154\103\114\101 +\123\105\063\056\150\164\155\154\077\060\072\006\011\140\206\110 +\001\206\370\102\001\010\004\055\026\053\150\164\164\160\072\057 +\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163\062 +\060\060\062\057\160\157\154\151\143\171\103\114\101\123\105\063 +\056\150\164\155\154\060\163\006\003\125\035\037\004\154\060\152 +\060\061\240\057\240\055\206\053\150\164\164\160\072\057\057\167 +\167\167\056\151\160\163\056\145\163\057\151\160\163\062\060\060 +\062\057\151\160\163\062\060\060\062\103\114\101\123\105\063\056 +\143\162\154\060\065\240\063\240\061\206\057\150\164\164\160\072 +\057\057\167\167\167\142\141\143\153\056\151\160\163\056\145\163 +\057\151\160\163\062\060\060\062\057\151\160\163\062\060\060\062 +\103\114\101\123\105\063\056\143\162\154\060\057\006\010\053\006 +\001\005\005\007\001\001\004\043\060\041\060\037\006\010\053\006 +\001\005\005\007\060\001\206\023\150\164\164\160\072\057\057\157 +\143\163\160\056\151\160\163\056\145\163\057\060\015\006\011\052 +\206\110\206\367\015\001\001\005\005\000\003\201\201\000\027\145 +\134\231\225\103\003\047\257\046\345\353\320\263\027\043\367\103 +\252\307\360\175\354\017\306\251\256\256\226\017\166\051\034\342 +\006\055\176\046\305\074\372\241\301\201\316\123\260\102\321\227 +\127\032\027\176\244\121\141\306\356\351\136\357\005\272\353\275 +\017\247\222\157\330\243\006\150\051\216\171\365\377\277\371\247 +\257\344\261\316\302\321\200\102\047\005\004\064\370\303\177\026 +\170\043\014\007\044\362\106\107\255\073\124\320\257\325\061\262 +\257\175\310\352\351\324\126\331\016\023\262\305\105\120 +END + +# Trust for Certificate "IPS CLASE3 root" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "IPS CLASE3 root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\101\170\253\114\277\316\173\101\002\254\332\304\223\076\157\365 +\015\317\161\134 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\102\166\227\150\317\246\264\070\044\252\241\033\362\147\336\312 +END +CKA_ISSUER MULTILINE_OCTAL +\060\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105 +\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143 +\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011 +\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125 +\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164 +\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166 +\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125 +\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163 +\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060 +\071\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023 +\045\111\120\123\040\103\101\040\103\114\101\123\105\063\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\111\120\123\040\103\101\040\103\114\101\123\105\063\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\036\060\034\006\011\052\206\110\206 +\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056 +\151\160\163\056\145\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "IPS CLASEA1 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 "IPS CLASEA1 root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105 +\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143 +\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011 +\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125 +\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164 +\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166 +\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125 +\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163 +\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060 +\071\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023 +\046\111\120\123\040\103\101\040\103\114\101\123\105\101\061\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\111\120\123\040\103\101\040\103\114\101\123\105\101\061 +\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\036\060\034\006\011\052\206 +\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151 +\154\056\151\160\163\056\145\163 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105 +\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143 +\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011 +\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125 +\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164 +\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166 +\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125 +\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163 +\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060 +\071\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023 +\046\111\120\123\040\103\101\040\103\114\101\123\105\101\061\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\111\120\123\040\103\101\040\103\114\101\123\105\101\061 +\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\036\060\034\006\011\052\206 +\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151 +\154\056\151\160\163\056\145\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\007\367\060\202\007\140\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105\123 +\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145 +\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102 +\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004 +\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040 +\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151 +\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004 +\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056 +\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071 +\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023\046 +\111\120\123\040\103\101\040\103\114\101\123\105\101\061\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\111\120\123\040\103\101\040\103\114\101\123\105\101\061\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\036\060\034\006\011\052\206\110 +\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154 +\056\151\160\163\056\145\163\060\036\027\015\060\061\061\062\062 +\071\060\061\060\065\063\062\132\027\015\062\065\061\062\062\067 +\060\061\060\065\063\062\132\060\202\001\024\061\013\060\011\006 +\003\125\004\006\023\002\105\123\061\022\060\020\006\003\125\004 +\010\023\011\102\141\162\143\145\154\157\156\141\061\022\060\020 +\006\003\125\004\007\023\011\102\141\162\143\145\154\157\156\141 +\061\056\060\054\006\003\125\004\012\023\045\111\120\123\040\111 +\156\164\145\162\156\145\164\040\160\165\142\154\151\163\150\151 +\156\147\040\123\145\162\166\151\143\145\163\040\163\056\154\056 +\061\053\060\051\006\003\125\004\012\024\042\151\160\163\100\155 +\141\151\154\056\151\160\163\056\145\163\040\103\056\111\056\106 +\056\040\040\102\055\066\060\071\062\071\064\065\062\061\057\060 +\055\006\003\125\004\013\023\046\111\120\123\040\103\101\040\103 +\114\101\123\105\101\061\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\111\120\123\040\103\101\040 +\103\114\101\123\105\101\061\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 +\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026\017 +\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163\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\273\060\327\334 +\320\124\275\065\116\237\305\114\202\352\321\120\074\107\230\374 +\233\151\235\167\315\156\340\077\356\353\062\137\137\237\322\320 +\171\345\225\163\104\041\062\340\012\333\235\327\316\215\253\122 +\213\053\170\340\233\133\175\364\375\155\011\345\256\341\154\035 +\007\043\240\027\321\371\175\250\106\106\221\042\250\262\151\306 +\255\367\365\365\224\241\060\224\275\000\314\104\177\356\304\236 +\311\301\346\217\012\066\301\375\044\075\001\240\365\173\342\174 +\170\146\103\213\117\131\362\233\331\372\111\263\002\003\001\000 +\001\243\202\004\123\060\202\004\117\060\035\006\003\125\035\016 +\004\026\004\024\147\046\226\347\241\277\330\265\003\235\376\073 +\334\376\362\212\346\025\335\060\060\202\001\106\006\003\125\035 +\043\004\202\001\075\060\202\001\071\200\024\147\046\226\347\241 +\277\330\265\003\235\376\073\334\376\362\212\346\025\335\060\241 +\202\001\034\244\202\001\030\060\202\001\024\061\013\060\011\006 +\003\125\004\006\023\002\105\123\061\022\060\020\006\003\125\004 +\010\023\011\102\141\162\143\145\154\157\156\141\061\022\060\020 +\006\003\125\004\007\023\011\102\141\162\143\145\154\157\156\141 +\061\056\060\054\006\003\125\004\012\023\045\111\120\123\040\111 +\156\164\145\162\156\145\164\040\160\165\142\154\151\163\150\151 +\156\147\040\123\145\162\166\151\143\145\163\040\163\056\154\056 +\061\053\060\051\006\003\125\004\012\024\042\151\160\163\100\155 +\141\151\154\056\151\160\163\056\145\163\040\103\056\111\056\106 +\056\040\040\102\055\066\060\071\062\071\064\065\062\061\057\060 +\055\006\003\125\004\013\023\046\111\120\123\040\103\101\040\103 +\114\101\123\105\101\061\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\111\120\123\040\103\101\040 +\103\114\101\123\105\101\061\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 +\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026\017 +\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163\202 +\001\000\060\014\006\003\125\035\023\004\005\060\003\001\001\377 +\060\014\006\003\125\035\017\004\005\003\003\007\377\200\060\153 +\006\003\125\035\045\004\144\060\142\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\003\006\010\053\006\001\005\005\007\003 +\004\006\010\053\006\001\005\005\007\003\010\006\012\053\006\001 +\004\001\202\067\002\001\025\006\012\053\006\001\004\001\202\067 +\002\001\026\006\012\053\006\001\004\001\202\067\012\003\001\006 +\012\053\006\001\004\001\202\067\012\003\004\060\021\006\011\140 +\206\110\001\206\370\102\001\001\004\004\003\002\000\007\060\032 +\006\003\125\035\021\004\023\060\021\201\017\151\160\163\100\155 +\141\151\154\056\151\160\163\056\145\163\060\032\006\003\125\035 +\022\004\023\060\021\201\017\151\160\163\100\155\141\151\154\056 +\151\160\163\056\145\163\060\102\006\011\140\206\110\001\206\370 +\102\001\015\004\065\026\063\103\114\101\123\105\101\061\040\103 +\101\040\103\145\162\164\151\146\151\143\141\164\145\040\151\163 +\163\165\145\144\040\142\171\040\150\164\164\160\072\057\057\167 +\167\167\056\151\160\163\056\145\163\057\060\051\006\011\140\206 +\110\001\206\370\102\001\002\004\034\026\032\150\164\164\160\072 +\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163 +\062\060\060\062\057\060\073\006\011\140\206\110\001\206\370\102 +\001\004\004\056\026\054\150\164\164\160\072\057\057\167\167\167 +\056\151\160\163\056\145\163\057\151\160\163\062\060\060\062\057 +\151\160\163\062\060\060\062\103\114\101\123\105\101\061\056\143 +\162\154\060\100\006\011\140\206\110\001\206\370\102\001\003\004 +\063\026\061\150\164\164\160\072\057\057\167\167\167\056\151\160 +\163\056\145\163\057\151\160\163\062\060\060\062\057\162\145\166 +\157\143\141\164\151\157\156\103\114\101\123\105\101\061\056\150 +\164\155\154\077\060\075\006\011\140\206\110\001\206\370\102\001 +\007\004\060\026\056\150\164\164\160\072\057\057\167\167\167\056 +\151\160\163\056\145\163\057\151\160\163\062\060\060\062\057\162 +\145\156\145\167\141\154\103\114\101\123\105\101\061\056\150\164 +\155\154\077\060\073\006\011\140\206\110\001\206\370\102\001\010 +\004\056\026\054\150\164\164\160\072\057\057\167\167\167\056\151 +\160\163\056\145\163\057\151\160\163\062\060\060\062\057\160\157 +\154\151\143\171\103\114\101\123\105\101\061\056\150\164\155\154 +\060\165\006\003\125\035\037\004\156\060\154\060\062\240\060\240 +\056\206\054\150\164\164\160\072\057\057\167\167\167\056\151\160 +\163\056\145\163\057\151\160\163\062\060\060\062\057\151\160\163 +\062\060\060\062\103\114\101\123\105\101\061\056\143\162\154\060 +\066\240\064\240\062\206\060\150\164\164\160\072\057\057\167\167 +\167\142\141\143\153\056\151\160\163\056\145\163\057\151\160\163 +\062\060\060\062\057\151\160\163\062\060\060\062\103\114\101\123 +\105\101\061\056\143\162\154\060\057\006\010\053\006\001\005\005 +\007\001\001\004\043\060\041\060\037\006\010\053\006\001\005\005 +\007\060\001\206\023\150\164\164\160\072\057\057\157\143\163\160 +\056\151\160\163\056\145\163\057\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\201\201\000\176\272\212\254\200 +\000\204\025\012\325\230\121\014\144\305\234\002\130\203\146\312 +\255\036\007\315\176\152\332\200\007\337\003\064\112\034\223\304 +\113\130\040\065\066\161\355\242\012\065\022\245\246\145\247\205 +\151\012\016\343\141\356\352\276\050\223\063\325\354\350\276\304 +\333\137\177\250\371\143\061\310\153\226\342\051\302\133\240\347 +\227\066\235\167\136\061\153\376\323\247\333\052\333\333\226\213 +\037\146\336\266\003\300\053\263\170\326\125\007\345\217\071\120 +\336\007\043\162\346\275\040\024\113\264\206 +END + +# Trust for Certificate "IPS CLASEA1 root" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "IPS CLASEA1 root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\063\243\065\302\074\350\003\113\004\341\075\345\304\216\171\032 +\353\214\062\004 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\014\370\236\027\374\324\003\275\346\215\233\074\005\207\376\204 +END +CKA_ISSUER MULTILINE_OCTAL +\060\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105 +\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143 +\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011 +\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125 +\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164 +\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166 +\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125 +\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163 +\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060 +\071\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023 +\046\111\120\123\040\103\101\040\103\114\101\123\105\101\061\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\111\120\123\040\103\101\040\103\114\101\123\105\101\061 +\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\036\060\034\006\011\052\206 +\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151 +\154\056\151\160\163\056\145\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "IPS CLASEA3 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 "IPS CLASEA3 root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105 +\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143 +\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011 +\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125 +\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164 +\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166 +\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125 +\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163 +\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060 +\071\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023 +\046\111\120\123\040\103\101\040\103\114\101\123\105\101\063\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\111\120\123\040\103\101\040\103\114\101\123\105\101\063 +\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\036\060\034\006\011\052\206 +\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151 +\154\056\151\160\163\056\145\163 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105 +\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143 +\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011 +\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125 +\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164 +\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166 +\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125 +\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163 +\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060 +\071\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023 +\046\111\120\123\040\103\101\040\103\114\101\123\105\101\063\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\111\120\123\040\103\101\040\103\114\101\123\105\101\063 +\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\036\060\034\006\011\052\206 +\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151 +\154\056\151\160\163\056\145\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\007\367\060\202\007\140\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105\123 +\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145 +\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102 +\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004 +\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040 +\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151 +\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004 +\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056 +\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071 +\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023\046 +\111\120\123\040\103\101\040\103\114\101\123\105\101\063\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\111\120\123\040\103\101\040\103\114\101\123\105\101\063\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\036\060\034\006\011\052\206\110 +\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154 +\056\151\160\163\056\145\163\060\036\027\015\060\061\061\062\062 +\071\060\061\060\067\065\060\132\027\015\062\065\061\062\062\067 +\060\061\060\067\065\060\132\060\202\001\024\061\013\060\011\006 +\003\125\004\006\023\002\105\123\061\022\060\020\006\003\125\004 +\010\023\011\102\141\162\143\145\154\157\156\141\061\022\060\020 +\006\003\125\004\007\023\011\102\141\162\143\145\154\157\156\141 +\061\056\060\054\006\003\125\004\012\023\045\111\120\123\040\111 +\156\164\145\162\156\145\164\040\160\165\142\154\151\163\150\151 +\156\147\040\123\145\162\166\151\143\145\163\040\163\056\154\056 +\061\053\060\051\006\003\125\004\012\024\042\151\160\163\100\155 +\141\151\154\056\151\160\163\056\145\163\040\103\056\111\056\106 +\056\040\040\102\055\066\060\071\062\071\064\065\062\061\057\060 +\055\006\003\125\004\013\023\046\111\120\123\040\103\101\040\103 +\114\101\123\105\101\063\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\111\120\123\040\103\101\040 +\103\114\101\123\105\101\063\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 +\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026\017 +\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163\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\356\200\000\366 +\032\144\056\255\152\310\203\261\213\247\356\217\331\266\333\315 +\033\273\206\006\042\166\063\014\022\155\110\126\141\322\334\202 +\045\142\057\237\322\151\060\145\003\102\043\130\274\107\334\153 +\326\165\135\027\074\341\377\362\130\147\171\240\301\201\261\324 +\126\242\362\215\021\231\375\366\175\361\307\304\136\002\052\232 +\342\112\265\023\212\000\375\214\167\206\346\327\224\365\040\165 +\056\016\114\277\164\304\077\201\076\203\264\243\070\066\051\347 +\350\052\365\214\210\101\252\200\246\343\154\357\002\003\001\000 +\001\243\202\004\123\060\202\004\117\060\035\006\003\125\035\016 +\004\026\004\024\036\237\127\120\107\266\141\223\071\323\054\374 +\332\135\075\005\165\267\231\002\060\202\001\106\006\003\125\035 +\043\004\202\001\075\060\202\001\071\200\024\036\237\127\120\107 +\266\141\223\071\323\054\374\332\135\075\005\165\267\231\002\241 +\202\001\034\244\202\001\030\060\202\001\024\061\013\060\011\006 +\003\125\004\006\023\002\105\123\061\022\060\020\006\003\125\004 +\010\023\011\102\141\162\143\145\154\157\156\141\061\022\060\020 +\006\003\125\004\007\023\011\102\141\162\143\145\154\157\156\141 +\061\056\060\054\006\003\125\004\012\023\045\111\120\123\040\111 +\156\164\145\162\156\145\164\040\160\165\142\154\151\163\150\151 +\156\147\040\123\145\162\166\151\143\145\163\040\163\056\154\056 +\061\053\060\051\006\003\125\004\012\024\042\151\160\163\100\155 +\141\151\154\056\151\160\163\056\145\163\040\103\056\111\056\106 +\056\040\040\102\055\066\060\071\062\071\064\065\062\061\057\060 +\055\006\003\125\004\013\023\046\111\120\123\040\103\101\040\103 +\114\101\123\105\101\063\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\111\120\123\040\103\101\040 +\103\114\101\123\105\101\063\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 +\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026\017 +\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163\202 +\001\000\060\014\006\003\125\035\023\004\005\060\003\001\001\377 +\060\014\006\003\125\035\017\004\005\003\003\007\377\200\060\153 +\006\003\125\035\045\004\144\060\142\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\003\006\010\053\006\001\005\005\007\003 +\004\006\010\053\006\001\005\005\007\003\010\006\012\053\006\001 +\004\001\202\067\002\001\025\006\012\053\006\001\004\001\202\067 +\002\001\026\006\012\053\006\001\004\001\202\067\012\003\001\006 +\012\053\006\001\004\001\202\067\012\003\004\060\021\006\011\140 +\206\110\001\206\370\102\001\001\004\004\003\002\000\007\060\032 +\006\003\125\035\021\004\023\060\021\201\017\151\160\163\100\155 +\141\151\154\056\151\160\163\056\145\163\060\032\006\003\125\035 +\022\004\023\060\021\201\017\151\160\163\100\155\141\151\154\056 +\151\160\163\056\145\163\060\102\006\011\140\206\110\001\206\370 +\102\001\015\004\065\026\063\103\114\101\123\105\101\063\040\103 +\101\040\103\145\162\164\151\146\151\143\141\164\145\040\151\163 +\163\165\145\144\040\142\171\040\150\164\164\160\072\057\057\167 +\167\167\056\151\160\163\056\145\163\057\060\051\006\011\140\206 +\110\001\206\370\102\001\002\004\034\026\032\150\164\164\160\072 +\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163 +\062\060\060\062\057\060\073\006\011\140\206\110\001\206\370\102 +\001\004\004\056\026\054\150\164\164\160\072\057\057\167\167\167 +\056\151\160\163\056\145\163\057\151\160\163\062\060\060\062\057 +\151\160\163\062\060\060\062\103\114\101\123\105\101\063\056\143 +\162\154\060\100\006\011\140\206\110\001\206\370\102\001\003\004 +\063\026\061\150\164\164\160\072\057\057\167\167\167\056\151\160 +\163\056\145\163\057\151\160\163\062\060\060\062\057\162\145\166 +\157\143\141\164\151\157\156\103\114\101\123\105\101\063\056\150 +\164\155\154\077\060\075\006\011\140\206\110\001\206\370\102\001 +\007\004\060\026\056\150\164\164\160\072\057\057\167\167\167\056 +\151\160\163\056\145\163\057\151\160\163\062\060\060\062\057\162 +\145\156\145\167\141\154\103\114\101\123\105\101\063\056\150\164 +\155\154\077\060\073\006\011\140\206\110\001\206\370\102\001\010 +\004\056\026\054\150\164\164\160\072\057\057\167\167\167\056\151 +\160\163\056\145\163\057\151\160\163\062\060\060\062\057\160\157 +\154\151\143\171\103\114\101\123\105\101\063\056\150\164\155\154 +\060\165\006\003\125\035\037\004\156\060\154\060\062\240\060\240 +\056\206\054\150\164\164\160\072\057\057\167\167\167\056\151\160 +\163\056\145\163\057\151\160\163\062\060\060\062\057\151\160\163 +\062\060\060\062\103\114\101\123\105\101\063\056\143\162\154\060 +\066\240\064\240\062\206\060\150\164\164\160\072\057\057\167\167 +\167\142\141\143\153\056\151\160\163\056\145\163\057\151\160\163 +\062\060\060\062\057\151\160\163\062\060\060\062\103\114\101\123 +\105\101\063\056\143\162\154\060\057\006\010\053\006\001\005\005 +\007\001\001\004\043\060\041\060\037\006\010\053\006\001\005\005 +\007\060\001\206\023\150\164\164\160\072\057\057\157\143\163\160 +\056\151\160\163\056\145\163\057\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\201\201\000\112\075\040\107\032 +\332\211\364\172\053\061\171\354\001\300\314\001\365\326\301\374 +\310\303\363\120\002\121\220\130\052\237\347\065\011\133\060\012 +\201\000\045\107\257\324\017\016\236\140\046\250\225\247\203\010 +\337\055\254\351\016\367\234\310\237\313\223\105\361\272\152\306 +\147\121\112\151\117\153\376\175\013\057\122\051\302\120\255\044 +\104\355\043\263\110\313\104\100\301\003\225\014\012\170\006\022 +\001\365\221\061\055\111\215\273\077\105\116\054\340\350\315\265 +\311\024\025\014\343\007\203\233\046\165\357 +END + +# Trust for Certificate "IPS CLASEA3 root" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "IPS CLASEA3 root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\026\324\044\376\226\020\341\165\031\257\043\053\266\207\164\342 +\101\104\276\156 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\006\371\353\354\314\126\235\210\272\220\365\272\260\032\340\002 +END +CKA_ISSUER MULTILINE_OCTAL +\060\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105 +\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143 +\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011 +\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125 +\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164 +\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166 +\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125 +\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163 +\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060 +\071\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023 +\046\111\120\123\040\103\101\040\103\114\101\123\105\101\063\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\111\120\123\040\103\101\040\103\114\101\123\105\101\063 +\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\036\060\034\006\011\052\206 +\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151 +\154\056\151\160\163\056\145\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "IPS Servidores 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 "IPS Servidores root" +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\105\123 +\061\022\060\020\006\003\125\004\010\023\011\102\101\122\103\105 +\114\117\116\101\061\022\060\020\006\003\125\004\007\023\011\102 +\101\122\103\105\114\117\116\101\061\031\060\027\006\003\125\004 +\012\023\020\111\120\123\040\123\145\147\165\162\151\144\141\144 +\040\103\101\061\030\060\026\006\003\125\004\013\023\017\103\145 +\162\164\151\146\151\143\141\143\151\157\156\145\163\061\027\060 +\025\006\003\125\004\003\023\016\111\120\123\040\123\105\122\126 +\111\104\117\122\105\123\061\036\060\034\006\011\052\206\110\206 +\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056 +\151\160\163\056\145\163 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\243\061\013\060\011\006\003\125\004\006\023\002\105\123 +\061\022\060\020\006\003\125\004\010\023\011\102\101\122\103\105 +\114\117\116\101\061\022\060\020\006\003\125\004\007\023\011\102 +\101\122\103\105\114\117\116\101\061\031\060\027\006\003\125\004 +\012\023\020\111\120\123\040\123\145\147\165\162\151\144\141\144 +\040\103\101\061\030\060\026\006\003\125\004\013\023\017\103\145 +\162\164\151\146\151\143\141\143\151\157\156\145\163\061\027\060 +\025\006\003\125\004\003\023\016\111\120\123\040\123\105\122\126 +\111\104\117\122\105\123\061\036\060\034\006\011\052\206\110\206 +\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056 +\151\160\163\056\145\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\267\060\202\002\040\002\001\000\060\015\006\011\052 +\206\110\206\367\015\001\001\004\005\000\060\201\243\061\013\060 +\011\006\003\125\004\006\023\002\105\123\061\022\060\020\006\003 +\125\004\010\023\011\102\101\122\103\105\114\117\116\101\061\022 +\060\020\006\003\125\004\007\023\011\102\101\122\103\105\114\117 +\116\101\061\031\060\027\006\003\125\004\012\023\020\111\120\123 +\040\123\145\147\165\162\151\144\141\144\040\103\101\061\030\060 +\026\006\003\125\004\013\023\017\103\145\162\164\151\146\151\143 +\141\143\151\157\156\145\163\061\027\060\025\006\003\125\004\003 +\023\016\111\120\123\040\123\105\122\126\111\104\117\122\105\123 +\061\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026 +\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163 +\060\036\027\015\071\070\060\061\060\061\062\063\062\061\060\067 +\132\027\015\060\071\061\062\062\071\062\063\062\061\060\067\132 +\060\201\243\061\013\060\011\006\003\125\004\006\023\002\105\123 +\061\022\060\020\006\003\125\004\010\023\011\102\101\122\103\105 +\114\117\116\101\061\022\060\020\006\003\125\004\007\023\011\102 +\101\122\103\105\114\117\116\101\061\031\060\027\006\003\125\004 +\012\023\020\111\120\123\040\123\145\147\165\162\151\144\141\144 +\040\103\101\061\030\060\026\006\003\125\004\013\023\017\103\145 +\162\164\151\146\151\143\141\143\151\157\156\145\163\061\027\060 +\025\006\003\125\004\003\023\016\111\120\123\040\123\105\122\126 +\111\104\117\122\105\123\061\036\060\034\006\011\052\206\110\206 +\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056 +\151\160\163\056\145\163\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\254\117\122\164\237\071\352\216\334\045\304\274\230 +\135\230\144\044\011\074\041\263\314\031\265\216\224\216\207\321 +\370\067\076\241\310\055\130\244\200\065\133\241\165\154\035\105 +\014\037\141\143\152\136\157\233\012\114\301\310\270\141\043\065 +\201\377\376\254\170\160\055\150\341\072\007\230\225\002\124\335 +\315\043\267\200\123\327\310\067\105\162\006\044\022\272\023\141 +\041\212\156\165\050\340\305\017\064\375\066\330\105\177\341\270 +\066\357\263\341\306\040\216\350\264\070\274\341\076\366\021\336 +\214\235\001\002\003\001\000\001\060\015\006\011\052\206\110\206 +\367\015\001\001\004\005\000\003\201\201\000\054\363\303\171\130 +\044\336\306\073\321\340\102\151\270\356\144\263\075\142\001\271 +\263\204\337\043\175\335\230\317\020\251\376\000\330\042\226\005 +\023\007\124\127\305\247\336\313\331\270\210\102\366\231\333\024 +\167\037\266\376\045\075\341\242\076\003\251\201\322\055\154\107 +\365\226\106\214\042\253\310\314\015\016\227\136\213\101\264\073 +\304\012\006\100\035\335\106\364\001\335\272\202\056\074\075\170 +\160\236\174\030\320\253\370\270\167\007\106\161\361\312\013\143 +\134\152\371\162\224\325\001\117\240\333\102 +END + +# Trust for Certificate "IPS Servidores root" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "IPS Servidores root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\044\272\155\154\212\133\130\067\244\215\265\372\351\031\352\147 +\134\224\322\027 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\173\265\010\231\232\214\030\277\205\047\175\016\256\332\262\253 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\243\061\013\060\011\006\003\125\004\006\023\002\105\123 +\061\022\060\020\006\003\125\004\010\023\011\102\101\122\103\105 +\114\117\116\101\061\022\060\020\006\003\125\004\007\023\011\102 +\101\122\103\105\114\117\116\101\061\031\060\027\006\003\125\004 +\012\023\020\111\120\123\040\123\145\147\165\162\151\144\141\144 +\040\103\101\061\030\060\026\006\003\125\004\013\023\017\103\145 +\162\164\151\146\151\143\141\143\151\157\156\145\163\061\027\060 +\025\006\003\125\004\003\023\016\111\120\123\040\123\105\122\126 +\111\104\117\122\105\123\061\036\060\034\006\011\052\206\110\206 +\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056 +\151\160\163\056\145\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "IPS Timestamping 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 "IPS Timestamping root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\202\001\036\061\013\060\011\006\003\125\004\006\023\002\105 +\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143 +\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011 +\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125 +\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164 +\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166 +\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125 +\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163 +\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060 +\071\062\071\064\065\062\061\064\060\062\006\003\125\004\013\023 +\053\111\120\123\040\103\101\040\124\151\155\145\163\164\141\155 +\160\151\156\147\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\064\060\062 +\006\003\125\004\003\023\053\111\120\123\040\103\101\040\124\151 +\155\145\163\164\141\155\160\151\156\147\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\036\060\034\006\011\052\206\110\206\367\015\001\011 +\001\026\017\151\160\163\100\155\141\151\154\056\151\160\163\056 +\145\163 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\202\001\036\061\013\060\011\006\003\125\004\006\023\002\105 +\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143 +\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011 +\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125 +\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164 +\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166 +\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125 +\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163 +\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060 +\071\062\071\064\065\062\061\064\060\062\006\003\125\004\013\023 +\053\111\120\123\040\103\101\040\124\151\155\145\163\164\141\155 +\160\151\156\147\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\064\060\062 +\006\003\125\004\003\023\053\111\120\123\040\103\101\040\124\151 +\155\145\163\164\141\155\160\151\156\147\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\036\060\034\006\011\052\206\110\206\367\015\001\011 +\001\026\017\151\160\163\100\155\141\151\154\056\151\160\163\056 +\145\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\010\070\060\202\007\241\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\202\001\036\061\013\060\011\006\003\125\004\006\023\002\105\123 +\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145 +\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102 +\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004 +\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040 +\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151 +\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004 +\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056 +\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071 +\062\071\064\065\062\061\064\060\062\006\003\125\004\013\023\053 +\111\120\123\040\103\101\040\124\151\155\145\163\164\141\155\160 +\151\156\147\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\064\060\062\006 +\003\125\004\003\023\053\111\120\123\040\103\101\040\124\151\155 +\145\163\164\141\155\160\151\156\147\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\036\060\034\006\011\052\206\110\206\367\015\001\011\001 +\026\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145 +\163\060\036\027\015\060\061\061\062\062\071\060\061\061\060\061 +\070\132\027\015\062\065\061\062\062\067\060\061\061\060\061\070 +\132\060\202\001\036\061\013\060\011\006\003\125\004\006\023\002 +\105\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162 +\143\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023 +\011\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003 +\125\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145 +\164\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162 +\166\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003 +\125\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160 +\163\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066 +\060\071\062\071\064\065\062\061\064\060\062\006\003\125\004\013 +\023\053\111\120\123\040\103\101\040\124\151\155\145\163\164\141 +\155\160\151\156\147\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\064\060 +\062\006\003\125\004\003\023\053\111\120\123\040\103\101\040\124 +\151\155\145\163\164\141\155\160\151\156\147\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\036\060\034\006\011\052\206\110\206\367\015\001 +\011\001\026\017\151\160\163\100\155\141\151\154\056\151\160\163 +\056\145\163\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 +\274\270\356\126\245\232\214\346\066\311\302\142\240\146\201\215 +\032\325\172\322\163\237\016\204\144\272\225\264\220\247\170\257 +\312\376\124\141\133\316\262\040\127\001\256\104\222\103\020\070 +\021\367\150\374\027\100\245\150\047\062\073\304\247\346\102\161 +\305\231\357\166\377\053\225\044\365\111\222\030\150\312\000\265 +\244\132\057\156\313\326\033\054\015\124\147\153\172\051\241\130 +\253\242\132\000\326\133\273\030\302\337\366\036\023\126\166\233 +\245\150\342\230\316\306\003\212\064\333\114\203\101\246\251\243 +\002\003\001\000\001\243\202\004\200\060\202\004\174\060\035\006 +\003\125\035\016\004\026\004\024\213\320\020\120\011\201\362\235 +\011\325\016\140\170\003\042\242\077\310\312\146\060\202\001\120 +\006\003\125\035\043\004\202\001\107\060\202\001\103\200\024\213 +\320\020\120\011\201\362\235\011\325\016\140\170\003\042\242\077 +\310\312\146\241\202\001\046\244\202\001\042\060\202\001\036\061 +\013\060\011\006\003\125\004\006\023\002\105\123\061\022\060\020 +\006\003\125\004\010\023\011\102\141\162\143\145\154\157\156\141 +\061\022\060\020\006\003\125\004\007\023\011\102\141\162\143\145 +\154\157\156\141\061\056\060\054\006\003\125\004\012\023\045\111 +\120\123\040\111\156\164\145\162\156\145\164\040\160\165\142\154 +\151\163\150\151\156\147\040\123\145\162\166\151\143\145\163\040 +\163\056\154\056\061\053\060\051\006\003\125\004\012\024\042\151 +\160\163\100\155\141\151\154\056\151\160\163\056\145\163\040\103 +\056\111\056\106\056\040\040\102\055\066\060\071\062\071\064\065 +\062\061\064\060\062\006\003\125\004\013\023\053\111\120\123\040 +\103\101\040\124\151\155\145\163\164\141\155\160\151\156\147\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\064\060\062\006\003\125\004\003 +\023\053\111\120\123\040\103\101\040\124\151\155\145\163\164\141 +\155\160\151\156\147\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\036\060 +\034\006\011\052\206\110\206\367\015\001\011\001\026\017\151\160 +\163\100\155\141\151\154\056\151\160\163\056\145\163\202\001\000 +\060\014\006\003\125\035\023\004\005\060\003\001\001\377\060\014 +\006\003\125\035\017\004\005\003\003\007\377\200\060\153\006\003 +\125\035\045\004\144\060\142\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\003\006\010\053\006\001\005\005\007\003\004\006 +\010\053\006\001\005\005\007\003\010\006\012\053\006\001\004\001 +\202\067\002\001\025\006\012\053\006\001\004\001\202\067\002\001 +\026\006\012\053\006\001\004\001\202\067\012\003\001\006\012\053 +\006\001\004\001\202\067\012\003\004\060\021\006\011\140\206\110 +\001\206\370\102\001\001\004\004\003\002\000\007\060\032\006\003 +\125\035\021\004\023\060\021\201\017\151\160\163\100\155\141\151 +\154\056\151\160\163\056\145\163\060\032\006\003\125\035\022\004 +\023\060\021\201\017\151\160\163\100\155\141\151\154\056\151\160 +\163\056\145\163\060\107\006\011\140\206\110\001\206\370\102\001 +\015\004\072\026\070\124\151\155\145\163\164\141\155\160\151\156 +\147\040\103\101\040\103\145\162\164\151\146\151\143\141\164\145 +\040\151\163\163\165\145\144\040\142\171\040\150\164\164\160\072 +\057\057\167\167\167\056\151\160\163\056\145\163\057\060\051\006 +\011\140\206\110\001\206\370\102\001\002\004\034\026\032\150\164 +\164\160\072\057\057\167\167\167\056\151\160\163\056\145\163\057 +\151\160\163\062\060\060\062\057\060\100\006\011\140\206\110\001 +\206\370\102\001\004\004\063\026\061\150\164\164\160\072\057\057 +\167\167\167\056\151\160\163\056\145\163\057\151\160\163\062\060 +\060\062\057\151\160\163\062\060\060\062\124\151\155\145\163\164 +\141\155\160\151\156\147\056\143\162\154\060\105\006\011\140\206 +\110\001\206\370\102\001\003\004\070\026\066\150\164\164\160\072 +\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163 +\062\060\060\062\057\162\145\166\157\143\141\164\151\157\156\124 +\151\155\145\163\164\141\155\160\151\156\147\056\150\164\155\154 +\077\060\102\006\011\140\206\110\001\206\370\102\001\007\004\065 +\026\063\150\164\164\160\072\057\057\167\167\167\056\151\160\163 +\056\145\163\057\151\160\163\062\060\060\062\057\162\145\156\145 +\167\141\154\124\151\155\145\163\164\141\155\160\151\156\147\056 +\150\164\155\154\077\060\100\006\011\140\206\110\001\206\370\102 +\001\010\004\063\026\061\150\164\164\160\072\057\057\167\167\167 +\056\151\160\163\056\145\163\057\151\160\163\062\060\060\062\057 +\160\157\154\151\143\171\124\151\155\145\163\164\141\155\160\151 +\156\147\056\150\164\155\154\060\177\006\003\125\035\037\004\170 +\060\166\060\067\240\065\240\063\206\061\150\164\164\160\072\057 +\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163\062 +\060\060\062\057\151\160\163\062\060\060\062\124\151\155\145\163 +\164\141\155\160\151\156\147\056\143\162\154\060\073\240\071\240 +\067\206\065\150\164\164\160\072\057\057\167\167\167\142\141\143 +\153\056\151\160\163\056\145\163\057\151\160\163\062\060\060\062 +\057\151\160\163\062\060\060\062\124\151\155\145\163\164\141\155 +\160\151\156\147\056\143\162\154\060\057\006\010\053\006\001\005 +\005\007\001\001\004\043\060\041\060\037\006\010\053\006\001\005 +\005\007\060\001\206\023\150\164\164\160\072\057\057\157\143\163 +\160\056\151\160\163\056\145\163\057\060\015\006\011\052\206\110 +\206\367\015\001\001\005\005\000\003\201\201\000\145\272\301\314 +\000\032\225\221\312\351\154\072\277\072\036\024\010\174\373\203 +\356\153\142\121\323\063\221\265\140\171\176\004\330\135\171\067 +\350\303\133\260\304\147\055\150\132\262\137\016\012\372\315\077 +\072\105\241\352\066\317\046\036\247\021\050\305\224\217\204\114 +\123\010\305\223\263\374\342\177\365\215\363\261\251\205\137\210 +\336\221\226\356\027\133\256\245\352\160\145\170\054\041\144\001 +\225\316\316\114\076\120\364\266\131\313\143\215\266\275\030\324 +\207\112\137\334\357\351\126\360\012\014\350\165 +END + +# Trust for Certificate "IPS Timestamping root" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "IPS Timestamping root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\226\231\134\167\021\350\345\055\371\343\113\354\354\147\323\313 +\361\266\304\322 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\056\003\375\305\365\327\053\224\144\301\276\211\061\361\026\233 +END +CKA_ISSUER MULTILINE_OCTAL +\060\202\001\036\061\013\060\011\006\003\125\004\006\023\002\105 +\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143 +\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011 +\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125 +\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164 +\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166 +\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125 +\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163 +\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060 +\071\062\071\064\065\062\061\064\060\062\006\003\125\004\013\023 +\053\111\120\123\040\103\101\040\124\151\155\145\163\164\141\155 +\160\151\156\147\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\064\060\062 +\006\003\125\004\003\023\053\111\120\123\040\103\101\040\124\151 +\155\145\163\164\141\155\160\151\156\147\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\036\060\034\006\011\052\206\110\206\367\015\001\011 +\001\026\017\151\160\163\100\155\141\151\154\056\151\160\163\056 +\145\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "StartCom Ltd." +# +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 Ltd." +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\111\114 +\061\017\060\015\006\003\125\004\010\023\006\111\163\162\141\145 +\154\061\016\060\014\006\003\125\004\007\023\005\105\151\154\141 +\164\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\032\060\030\006\003\125 +\004\013\023\021\103\101\040\101\165\164\150\157\162\151\164\171 +\040\104\145\160\056\061\051\060\047\006\003\125\004\003\023\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 +\061\041\060\037\006\011\052\206\110\206\367\015\001\011\001\026 +\022\141\144\155\151\156\100\163\164\141\162\164\143\157\155\056 +\157\162\147 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\260\061\013\060\011\006\003\125\004\006\023\002\111\114 +\061\017\060\015\006\003\125\004\010\023\006\111\163\162\141\145 +\154\061\016\060\014\006\003\125\004\007\023\005\105\151\154\141 +\164\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\032\060\030\006\003\125 +\004\013\023\021\103\101\040\101\165\164\150\157\162\151\164\171 +\040\104\145\160\056\061\051\060\047\006\003\125\004\003\023\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 +\061\041\060\037\006\011\052\206\110\206\367\015\001\011\001\026 +\022\141\144\155\151\156\100\163\164\141\162\164\143\157\155\056 +\157\162\147 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\026\060\202\004\177\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060 +\201\260\061\013\060\011\006\003\125\004\006\023\002\111\114\061 +\017\060\015\006\003\125\004\010\023\006\111\163\162\141\145\154 +\061\016\060\014\006\003\125\004\007\023\005\105\151\154\141\164 +\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\032\060\030\006\003\125\004 +\013\023\021\103\101\040\101\165\164\150\157\162\151\164\171\040 +\104\145\160\056\061\051\060\047\006\003\125\004\003\023\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\061 +\041\060\037\006\011\052\206\110\206\367\015\001\011\001\026\022 +\141\144\155\151\156\100\163\164\141\162\164\143\157\155\056\157 +\162\147\060\036\027\015\060\065\060\063\061\067\061\067\063\067 +\064\070\132\027\015\063\065\060\063\061\060\061\067\063\067\064 +\070\132\060\201\260\061\013\060\011\006\003\125\004\006\023\002 +\111\114\061\017\060\015\006\003\125\004\010\023\006\111\163\162 +\141\145\154\061\016\060\014\006\003\125\004\007\023\005\105\151 +\154\141\164\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\032\060\030\006 +\003\125\004\013\023\021\103\101\040\101\165\164\150\157\162\151 +\164\171\040\104\145\160\056\061\051\060\047\006\003\125\004\003 +\023\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\061\041\060\037\006\011\052\206\110\206\367\015\001\011 +\001\026\022\141\144\155\151\156\100\163\164\141\162\164\143\157 +\155\056\157\162\147\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\355\204\140\000\043\236\310\112\121\051\047\336\072\241 +\071\265\151\253\011\262\057\064\375\141\334\075\323\260\317\261 +\327\302\304\302\261\344\226\126\304\276\252\024\016\347\314\072 +\120\310\072\142\235\303\243\254\131\173\216\356\125\032\034\107 +\276\243\227\071\263\265\357\043\054\010\350\330\257\163\057\271 +\311\203\350\355\000\017\310\165\245\057\064\114\030\350\166\210 +\043\111\212\333\266\355\150\332\303\265\142\051\114\245\113\267 +\230\264\011\024\020\240\370\376\142\166\042\025\013\244\326\010 +\057\065\002\003\001\000\001\243\202\002\074\060\202\002\070\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\346\060\035\006 +\003\125\035\016\004\026\004\024\034\211\303\226\314\275\376\062 +\325\015\214\201\061\266\230\235\215\050\144\215\060\201\335\006 +\003\125\035\043\004\201\325\060\201\322\200\024\034\211\303\226 +\314\275\376\062\325\015\214\201\061\266\230\235\215\050\144\215 +\241\201\266\244\201\263\060\201\260\061\013\060\011\006\003\125 +\004\006\023\002\111\114\061\017\060\015\006\003\125\004\010\023 +\006\111\163\162\141\145\154\061\016\060\014\006\003\125\004\007 +\023\005\105\151\154\141\164\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 +\032\060\030\006\003\125\004\013\023\021\103\101\040\101\165\164 +\150\157\162\151\164\171\040\104\145\160\056\061\051\060\047\006 +\003\125\004\003\023\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\061\041\060\037\006\011\052\206\110\206 +\367\015\001\011\001\026\022\141\144\155\151\156\100\163\164\141 +\162\164\143\157\155\056\157\162\147\202\001\000\060\035\006\003 +\125\035\021\004\026\060\024\201\022\141\144\155\151\156\100\163 +\164\141\162\164\143\157\155\056\157\162\147\060\035\006\003\125 +\035\022\004\026\060\024\201\022\141\144\155\151\156\100\163\164 +\141\162\164\143\157\155\056\157\162\147\060\021\006\011\140\206 +\110\001\206\370\102\001\001\004\004\003\002\000\007\060\057\006 +\011\140\206\110\001\206\370\102\001\015\004\042\026\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\062 +\006\011\140\206\110\001\206\370\102\001\004\004\045\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\143\141\055\143\162\154\056\143 +\162\154\060\050\006\011\140\206\110\001\206\370\102\001\002\004 +\033\026\031\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\060\071\006\011 +\140\206\110\001\206\370\102\001\010\004\054\026\052\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\144\145\170\056\160\150\160\077 +\141\160\160\075\061\061\061\060\015\006\011\052\206\110\206\367 +\015\001\001\004\005\000\003\201\201\000\154\161\045\341\236\064 +\221\041\357\333\154\275\001\010\126\217\210\330\101\072\123\365 +\162\337\047\127\113\166\204\367\150\244\376\353\077\011\176\050 +\270\127\352\037\301\252\342\377\226\237\111\231\346\262\225\163 +\226\306\110\307\136\215\007\162\126\370\203\217\237\167\257\051 +\323\105\016\244\356\260\066\164\055\360\315\230\043\173\067\113 +\332\376\121\230\304\036\064\074\210\375\231\073\120\247\301\213 +\063\307\302\122\026\022\225\123\145\042\357\272\213\316\142\333 +\160\043\261\200\337\032\040\070\347\176 +END + +# Trust for Certificate "StartCom Ltd." +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "StartCom Ltd." +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\225\346\255\370\327\161\106\002\115\325\152\041\262\347\077\315 +\362\073\065\377 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\010\174\130\037\122\053\104\264\073\171\315\001\370\305\303\311 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\260\061\013\060\011\006\003\125\004\006\023\002\111\114 +\061\017\060\015\006\003\125\004\010\023\006\111\163\162\141\145 +\154\061\016\060\014\006\003\125\004\007\023\005\105\151\154\141 +\164\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\032\060\030\006\003\125 +\004\013\023\021\103\101\040\101\165\164\150\157\162\151\164\171 +\040\104\145\160\056\061\051\060\047\006\003\125\004\003\023\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 +\061\041\060\037\006\011\052\206\110\206\367\015\001\011\001\026 +\022\141\144\155\151\156\100\163\164\141\162\164\143\157\155\056 +\157\162\147 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "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 "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\014\166\332\234\221\014\116\054\236\376\025\320\130\223 +\074\114 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\212\060\202\003\162\240\003\002\001\002\002\020\014 +\166\332\234\221\014\116\054\236\376\025\320\130\223\074\114\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\065\061\066\061\067\061\071\063\066\132 +\027\015\062\065\060\063\063\061\061\070\061\071\062\061\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 "DigiNotar Root CA" +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DigiNotar Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\300\140\355\104\313\330\201\275\016\370\154\013\242\207\335\317 +\201\147\107\214 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\172\171\124\115\007\222\073\133\377\101\360\016\307\071\242\230 +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\014\166\332\234\221\014\116\054\236\376\025\320\130\223 +\074\114 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_UNTRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_UNTRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_UNTRUSTED +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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AC Ra+¡z Certic+ímara 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+¡z Certic+ímara 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 Ra+¡z Certic+ímara S.A." +CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AC Ra+¡z Certic+ímara 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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_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_NETSCAPE_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_NETSCAPE_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + diff --git a/.mutt/certs/certificates b/.mutt/certs/certificates new file mode 100644 index 0000000..ea8dd5d --- /dev/null +++ b/.mutt/certs/certificates @@ -0,0 +1,41 @@ +#H localhost 51FD 224B 0E9C DF59 0033 6809 2C7C F688 +-----BEGIN CERTIFICATE----- +MIIBmTCCAQICCQD1NfXi+5HEtTANBgkqhkiG9w0BAQUFADARMQ8wDQYDVQQDEwZs +YW1iZGEwHhcNMDkwNjAxMTExMjA0WhcNMTkwNTMwMTExMjA0WjARMQ8wDQYDVQQD +EwZsYW1iZGEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPBnAQE2dnXr0I13 +cpjv/WqJgkJqdlxt02DfjkPe85uGyJQZKf5nUVZF2t6U2jrdEY16i26hdK8PjfZA +HMrKfdQGmUgSV1BdGz5koqnhTAUmshnyZ1aYQ+I19LgM8MP7U8YjvAnb94SvN9Qt +J8hfXawURqsDzpcbJviwFikgPxd/AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAZ9xe +vKVkBcdnKHrD8zXqOL15uNIDdq3JgNVg0rKZu+zbyH9ywgqr38JcEg56P9hg/Vgm +m7QrA62AF4q8S0N/vEAMpbqwiVQOUriLATHiw8+/zBG+ZYHMRtPDsZFblgDj26+e +pqwLAT+/0JPFsBmazWzZLfCrH/2JQgkh+TM8vyE= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIE8jCCA9qgAwIBAgIEOGPp/DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML +RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp +bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5 +IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw0wOTEyMTAyMDQzNTRaFw0xOTEy +MTAyMTEzNTRaMIGxMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNRW50cnVzdCwgSW5j +LjE5MDcGA1UECxMwd3d3LmVudHJ1c3QubmV0L3JwYSBpcyBpbmNvcnBvcmF0ZWQg +YnkgcmVmZXJlbmNlMR8wHQYDVQQLExYoYykgMjAwOSBFbnRydXN0LCBJbmMuMS4w +LAYDVQQDEyVFbnRydXN0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gTDFDMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl6MtPJ7eBdoTwhGNnY7jf8dL +flqfs/9iq3PIKGu6EGSChxPNVxj/KM7A5g4GkVApg9Hywyrb2NtOBMwA64u2lty8 +qvpSdwTB2xnkrpz9PIsD7028GgNl+cGxP3KG8jiqGa4QiHgo2nXDPQKCApy5wWV3 +diRMmPdtMTj72/7bNwJ2oRiXpszeIAlJNiRpQvbkN2LxWW2pPO00nKOO29w61/cK +b+8u2NWTWnrtCElo4kHjWpDBhlX8UUOd4LLEZ7TLMjEl8FSfS9Fv29Td/K9ebHiQ +ld7KOki5eTybGdZ1BaD5iNfB6KUJ5BoV3IcjqrJ1jGMlh9j4PabCzGb/pWZoVQID +AQABo4IBCzCCAQcwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wMwYI +KwYBBQUHAQEEJzAlMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5lbnRydXN0Lm5l +dDAyBgNVHR8EKzApMCegJaAjhiFodHRwOi8vY3JsLmVudHJ1c3QubmV0LzIwNDhj +YS5jcmwwOwYDVR0gBDQwMjAwBgRVHSAAMCgwJgYIKwYBBQUHAgEWGmh0dHA6Ly93 +d3cuZW50cnVzdC5uZXQvcnBhMB0GA1UdDgQWBBQe8auJBvhJDwEzd+4Ueu4ZfJMo +TTAfBgNVHSMEGDAWgBRV5IHREYC+2Im5CKMx+aEkCRa5cDANBgkqhkiG9w0BAQUF +AAOCAQEAB/ZfgoR/gEDHkDRGQiQDzi+ruoOeJXMN7awFacaH7aNc8lfBsUl2mk3y +P93kDv4LPrmY2TKVHTL0Ae6cyMjlP+BTdmL83attPZSQ8sCzPJgnNl4olyL8G0DT +Kw2ttVdt3w/jS+9zAhBl+hvQrDHV4w/oujIwg+5K0L/fIpB6vuw6G8RJBB3xroB3 +PEII26c7KKaAAQPmOaPr34BZG/MsvtxyRHmgbAelbU1EjkJoypR8Lja6hZ7NqsRe +PFS+/i/qaZ0cHimbltjI/lGQ8SSmkAaz8Cmi/3gud1xFIdlEADHzvjJP9QoyDfz8 +uhZ2VrLWSJLyi6Y+t6xcaeoLP2ZFuQ== +-----END CERTIFICATE----- diff --git a/.mutt/certs/f73e89fd.0 b/.mutt/certs/f73e89fd.0 new file mode 120000 index 0000000..68a3447 --- /dev/null +++ b/.mutt/certs/f73e89fd.0 @@ -0,0 +1 @@ +ca-bundle.crt
\ No newline at end of file diff --git a/.mutt/certs/get_gmail_cert b/.mutt/certs/get_gmail_cert new file mode 100644 index 0000000..4ed4d86 --- /dev/null +++ b/.mutt/certs/get_gmail_cert @@ -0,0 +1 @@ +openssl s_client -connect gmail.com:443 -verify 3 -CAfile Equifax_Secure_CA.pem -state diff --git a/.mutt/certs/mk-ca-bundle.pl b/.mutt/certs/mk-ca-bundle.pl new file mode 100644 index 0000000..6850236 --- /dev/null +++ b/.mutt/certs/mk-ca-bundle.pl @@ -0,0 +1,187 @@ +#!/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. +# +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); + +my $url = 'http://lxr.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 ("=" 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 $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; + } +} + +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/.mutt/color.rc b/.mutt/color.rc new file mode 100644 index 0000000..59ef101 --- /dev/null +++ b/.mutt/color.rc @@ -0,0 +1,127 @@ +# Score coloring +# We put this first since we want it overridden if required by the colors +# below. + +color index brightwhite default "~n -100" +color index yellow default "~n -25" +color index magenta default "~n -10" +color index brightblack default "~n -5" + +# Message colors +color attachment brightblack default +color error brightred default +color hdrdefault brightyellow default +color indicator brightyellow red +color markers brightcyan default +color message brightcyan default +color normal default default +color quoted magenta default +color search default green +color signature red default +color status white blue +color tilde magenta default +color tree magenta default +color sidebar_new yellow default + +# Pretty Colors +color status white blue +color index green default ~N # new +color index cyan default ~O # old +color index red default ~D # deleted +color index brightmagenta default ~T # tagged +color index brightyellow default ~F # flagged +color header green default "^Subject:" +color header yellow default "^Date:" +color header yellow default "^To:" +color header yellow default "^Cc:" +color header yellow default "^Bcc:" +color header yellow default "^From:" +color header red default "^X-.*:" +color header brightwhite default '^X-Label:' + +# LP colors +color index red blue "~hX-Launchpad-Bug:.*status\\=Incomplete\\;.*importance\\=Wishlist\\;" +color index red white "~hX-Launchpad-Bug:.*status\\=Incomplete\\;.*importance\\=Undecided\\;" +color index red black "~hX-Launchpad-Bug:.*status\\=Incomplete\\;.*importance\\=Low\\;" +color index red green "~hX-Launchpad-Bug:.*status\\=Incomplete\\;.*importance\\=Medium\\;" +color index red brightyellow "~hX-Launchpad-Bug:.*status\\=Incomplete\\;.*importance\\=High\\;" +color index red brightred "~hX-Launchpad-Bug:.*status\\=Incomplete\\;.*importance\\=Critical\\;" +color index red white "~hX-Launchpad-Bug:.*status\\=Incomplete\\;.*importance\\=Unknown\\;" + +color index yellow blue "~hX-Launchpad-Bug:.*status\\=Triaged\\;.*importance\\=Wishlist\\;" +color index yellow white "~hX-Launchpad-Bug:.*status\\=Triaged\\;.*importance\\=Undecided\\;" +color index yellow black "~hX-Launchpad-Bug:.*status\\=Triaged\\;.*importance\\=Low\\;" +color index yellow green "~hX-Launchpad-Bug:.*status\\=Triaged\\;.*importance\\=Medium\\;" +color index yellow brightyellow "~hX-Launchpad-Bug:.*status\\=Triaged\\;.*importance\\=High\\;" +color index yellow brightred "~hX-Launchpad-Bug:.*status\\=Triaged\\;.*importance\\=Critical\\;" +color index yellow white "~hX-Launchpad-Bug:.*status\\=Triaged\\;.*importance\\=Unknown\\;" + +color index brightblue blue "~hX-Launchpad-Bug:.*status\\=Confirmed\\;.*importance\\=Wishlist\\;" +color index brightblue white "~hX-Launchpad-Bug:.*status\\=Confirmed\\;.*importance\\=Undecided\\;" +color index brightblue black "~hX-Launchpad-Bug:.*status\\=Confirmed\\;.*importance\\=Low\\;" +color index brightblue green "~hX-Launchpad-Bug:.*status\\=Confirmed\\;.*importance\\=Medium\\;" +color index brightblue brightyellow "~hX-Launchpad-Bug:.*status\\=Confirmed\\;.*importance\\=High\\;" +color index brightblue brightred "~hX-Launchpad-Bug:.*status\\=Confirmed\\;.*importance\\=Critical\\;" +color index brightblue white "~hX-Launchpad-Bug:.*status\\=Confirmed\\;.*importance\\=Unknown\\;" + +color index brightgreen blue "~hX-Launchpad-Bug:.*status\\=Fix\\ Released\\;.*importance\\=Wishlist\\;" +color index brightgreen white "~hX-Launchpad-Bug:.*status\\=Fix\\ Released\\;.*importance\\=Undecided\\;" +color index brightgreen black "~hX-Launchpad-Bug:.*status\\=Fix\\ Released\\;.*importance\\=Low\\;" +color index brightgreen green "~hX-Launchpad-Bug:.*status\\=Fix\\ Released\\;.*importance\\=Medium\\;" +color index brightgreen brightyellow "~hX-Launchpad-Bug:.*status\\=Fix\\ Released\\;.*importance\\=High\\;" +color index brightgreen brightred "~hX-Launchpad-Bug:.*status\\=Fix\\ Released\\;.*importance\\=Critical\\;" +color index brightgreen white "~hX-Launchpad-Bug:.*status\\=Fix\\ Released\\;.*importance\\=Unknown\\;" + +color index green blue "~hX-Launchpad-Bug:.*status\\=Fix\\ Commited\\;.*importance\\=Wishlist\\;" +color index green white "~hX-Launchpad-Bug:.*status\\=Fix\\ Commited\\;.*importance\\=Undecided\\;" +color index green black "~hX-Launchpad-Bug:.*status\\=Fix\\ Commited\\;.*importance\\=Low\\;" +color index green black "~hX-Launchpad-Bug:.*status\\=Fix\\ Commited\\;.*importance\\=Medium\\;" +color index green brightyellow "~hX-Launchpad-Bug:.*status\\=Fix\\ Commited\\;.*importance\\=High\\;" +color index green brightred "~hX-Launchpad-Bug:.*status\\=Fix\\ Commited\\;.*importance\\=Critical\\;" +color index green white "~hX-Launchpad-Bug:.*status\\=Fix\\ Commited\\;.*importance\\=Unknown\\;" + +color index cyan blue "~hX-Launchpad-Bug:.*status\\=In\\ Progress\\;.*importance\\=Wishlist\\;" +color index cyan white "~hX-Launchpad-Bug:.*status\\=In\\ Progress\\;.*importance\\=Undecided\\;" +color index cyan black "~hX-Launchpad-Bug:.*status\\=In\\ Progress\\;.*importance\\=Low\\;" +color index cyan green "~hX-Launchpad-Bug:.*status\\=In\\ Progress\\;.*importance\\=Medium\\;" +color index cyan brightyellow "~hX-Launchpad-Bug:.*status\\=In\\ Progress\\;.*importance\\=High\\;" +color index cyan brightred "~hX-Launchpad-Bug:.*status\\=In\\ Progress\\;.*importance\\=Critical\\;" +color index cyan white "~hX-Launchpad-Bug:.*status\\=In\\ Progress\\;.*importance\\=Unknown\\;" + + +color index default blue "~hX-Launchpad-Bug:.*status\\=Won\'t\\ Fix\\;.*importance\\=Wishlist\\;" +color index brightwhite white "~hX-Launchpad-Bug:.*status\\=Won\'t\\ Fix\\;.*importance\\=Undecided\\;" +color index default black "~hX-Launchpad-Bug:.*status\\=Won\'t\\ Fix\\;.*importance\\=Low\\;" +color index default green "~hX-Launchpad-Bug:.*status\\=Won\'t\\ Fix\\;.*importance\\=Medium\\;" +color index default brightyellow "~hX-Launchpad-Bug:.*status\\=Won\'t\\ Fix\\;.*importance\\=High\\;" +color index default brightred "~hX-Launchpad-Bug:.*status\\=Won\'t\\ Fix\\;.*importance\\=Critical\\;" +color index brightwhite white "~hX-Launchpad-Bug:.*status\\=Won\'t\\ Fix\\;.*importance\\=Unknown\\;" + +color index default blue "~hX-Launchpad-Bug:.*status\\=Invalid\\;.*importance\\=Wishlist\\;" +color index brightwhite white "~hX-Launchpad-Bug:.*status\\=Invalid\\;.*importance\\=Undecided\\;" +color index default black "~hX-Launchpad-Bug:.*status\\=Invalid\\;.*importance\\=Low\\;" +color index default green "~hX-Launchpad-Bug:.*status\\=Invalid\\;.*importance\\=Medium\\;" +color index default brightyellow "~hX-Launchpad-Bug:.*status\\=Invalid\\;.*importance\\=High\\;" +color index default brightred "~hX-Launchpad-Bug:.*status\\=Invalid\\;.*importance\\=Critical\\;" +color index brightwhite white "~hX-Launchpad-Bug:.*status\\=Invalid\\;.*importance\\=Unknown\\;" + + +color index yellow default "~hX-Launchpad-Bug:.*status\\=New\\;" +color index magenta default "~b\This\\ bug\\ has\\ been\\ marked\\ a\\ duplicate\\ of\\ bug" + +# Various smilies and the like +color body brightwhite default "<[Gg]>" # <g> +color body brightwhite default "<[Bb][Gg]>" # <bg> +color body brightwhite default " [;:]-*[})>{(<|]" # :-) etc... +# *bold* +color body brightblue default "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)" +mono body bold "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)" +# _underline_ +color body brightblue default "(^|[[:space:][:punct:]])_[^_]+_([[:space:][:punct:]]|$)" +mono body underline "(^|[[:space:][:punct:]])_[^_]+_([[:space:][:punct:]]|$)" +# /italic/ (Sometimes gets directory names) +color body brightblue default "(^|[[:space:][:punct:]])/[^/]+/([[:space:][:punct:]]|$)" +mono body underline "(^|[[:space:][:punct:]])/[^/]+/([[:space:][:punct:]]|$)" + +# Border lines. +color body blue default "( *[-+=#*~_]){6,}" diff --git a/.mutt/mailboxes.rc b/.mutt/mailboxes.rc new file mode 100644 index 0000000..a962738 --- /dev/null +++ b/.mutt/mailboxes.rc @@ -0,0 +1 @@ +mailboxes "+ACTION" "+Bagpipes" "+CCF" "+Debian" "+Debian.archive" "+Debian.dBugs" "+Debian.debian-devel-french" "+Debian.debian-mentors" "+Debian.debian-python" "+Debian.debian-qt-kde" "+Debian.mentors" "+Debian.pkg-kde-talk" "+Debian.pkg-multimedia-commits" "+Debian.pkg-multimedia-maintainers" "+Debian.python-apps-team" "+Driving school" "+Family" "+Family.Dad" "+Friends" "+Friends.Emer" "+HOL" "+High IQ" "+IMSLP" "+INBOX" "+Jamendo" "+KDE.kde-francophone" "+KDE Mail" "+KLUG" "+Queens" "+Slashdot" "+UDS" "+Ubuntu" "+Ubuntu.REVU" "+Ubuntu.UDS" "+Ubuntu.archive" "+Ubuntu.kuBugs" "+Ubuntu.kuDevel" "+Ubuntu.kuWebBugs" "+Ubuntu.kuWebmaster" "+Ubuntu.launchpadUsers" "+Ubuntu.uBugs" "+Ubuntu.uCanada" "+Ubuntu.uClassroom" "+Ubuntu.uDevelAnnounce" "+Ubuntu.uDoc" "+Ubuntu.uMisc" "+Ubuntu.uWeb" "+Ubuntu.uWebBugs" "+Ubuntu.uWebML" "+[Google Mail].Bin" "+[Google Mail].Drafts" "+[Google Mail].Sent Mail" "+[Google Mail].Spam" "+[Google Mail].Starred" "+cacert" "+computers" "+fail2ban" "+gppg" "+linkedin" "+logcheck" "+lwn" "+psipog" "+sbuild" "+school" diff --git a/.mutt/mailinglists.rc b/.mutt/mailinglists.rc new file mode 100644 index 0000000..2e77b6c --- /dev/null +++ b/.mutt/mailinglists.rc @@ -0,0 +1,63 @@ +lists kubuntu-devel.lists.ubuntu.com +lists kubuntu-bugs.lists.ubuntu.com +lists kubuntu-users.lists.ubuntu.com +lists ubuntu-website.lists.canonical.com +lists ubuntu-devel-announce.lists.ubuntu.com +lists launchpad-users.lists.launchpad.net +lists launchpad-users.lists.canonical.com +lists ubuntu-ca.lists.ubuntu.com +lists ubuntu-doc.lists.ubuntu.com +lists ubuntu-classroom.lists.ubuntu.com +lists ubuntu.*.lists.ubuntu.com +lists debian-python.lists.debian.org +lists debian-qt-kde.lists.debian.org +lists debian-mentors.lists.debian.org +lists debian-devel-fr.lists.debian.org +lists python-apps-team.lists.debian.org +lists pkg-kde-talk.lists.debian.org +lists pkg-multimedia-commits.lists.alioth.debian.org +lists pkg-multimedia-maintainers.lists.alioth.debian.org +lists kde-francophone.kde.org +lists oevolve.googlegroups.com +lists oactivists.googlegroups.com +lists oproducers.googlegroups.com +lists ogeeks.googlegroups.com + +subscribe kubuntu-devel.lists.ubuntu.com +alias kubuntu-devel kubuntu-devel@lists.ubuntu.com +subscribe kubuntu-bugs.lists.ubuntu.com +alias kubuntu-bugs kubuntu-bugs@lists.ubuntu.com +subscribe ubuntu-website.lists.canonical.com +alias ubuntu-website ubuntu-website@lists.canonical.com +subscribe ubuntu-devel-announce.lists.ubuntu.com +subscribe launchpad-users.lists.launchpad.net +subscribe launchpad-users.lists.canonical.com +alias launchpad-users launchpad-users@lists.launchpad.net +subscribe ubuntu-ca.lists.ubuntu.com +alias ubuntu-ca ubuntu-ca@lists.ubuntu.com +subscribe ubuntu-classroom.lists.ubuntu.com +subscribe debian-python.lists.debian.org +alias debian-python debian-python@lists.debian.org +subscribe debian-qt-kde.lists.debian.org +alias debian-qt-kde debian-qt-kde@lists.debian.org +subscribe debian-mentors.lists.debian.org +alias debian-mentors debian-mentors@lists.debian.org +subscribe debian-devel-fr.lists.debian.org +alias debian-devel-fr debian-devel-fr@lists.debian.org +subscribe python-apps-team.lists.debian.org +alias python-apps-team python-apps-team@lists.debian.org +subscribe pkg-kde-talk.lists.debian.org +alias pkg-kde-talk pkg-kde-talk@lists.debian.org +subscribe pkg-multimedia-commits.lists.alioth.debian.org +subscribe pkg-multimedia-maintainers.lists.alioth.debian.org +alias pkg-multimedia-maintainers pkg-multimedia-maintainers@lists.alioth.debian.org +subscribe kde-francophone.kde.org +alias kde-francophone kde-francophone@kde.org +subscribe oevolve.googlegroups.com +alias oevolve oevolve@googlegroups.com +subscribe oactivists.googlegroups.com +alias oactivists oactivists@googlegroups.com +subscribe oproducers.googlegroups.com +alias oproducers oproducers@googlegroups.com +subscribe ogeeks.googlegroups.com +alias ogeeks ogeeks@googlegroups.com diff --git a/.mutt/savehooks.rc b/.mutt/savehooks.rc new file mode 100644 index 0000000..7356054 --- /dev/null +++ b/.mutt/savehooks.rc @@ -0,0 +1,16 @@ +# Friends +save-hook 8bns@queensu\\.ca =Friends.8bns + +# Bagpipes +save-hook info@brownbagpipesupply\\.com =Bagpipes +save-hook .*ppbso.* =Bagpipes + +# Newsletters +save-hook vfr-no-reply@aynrand\\.org =VfR +save-hook '~s "Parallel & Unconventional Computation Group Meeting"' =Queens + +# SAIL +save-hook (ahmed|bram|mei)@cs\\.queensu\\.ca =Queens.SAIL + +# Catch-all +save-hook .*@.*queensu\\.ca =Queens diff --git a/.mutt/score.rc b/.mutt/score.rc new file mode 100644 index 0000000..6cdceb4 --- /dev/null +++ b/.mutt/score.rc @@ -0,0 +1,24 @@ +uncolor index * +unscore * +source ~/.mutt/color.rc +# Set directly to me +score "~p" 8 +# from me +score "~P" 8 +# I replied to +score "~Q" 10 +# GPG signed +score "~g" 4 +# GPG encrypted +score "~G" 4 +# Flagged +score "~F" 5 +# Known ML +score "~l" 2 +# Add a point to messages less than 80,000 bytes +score "~z 0-80000" 1 +# From EG +score "~f MUTT_20_SCORE" 20 +score "~f MUTT_10_SCORE" 10 +# Unread +score "~U" 2 @@ -0,0 +1,150 @@ +set realname = 'Ryan Kavanagh' # default: '' +set reverse_name +alternates "ryanakca@gmail\.com|ryanakca@kubuntu\.org|ryanakca@ubuntu\.com|9rak@queensu\.ca|ryan\.kavanagh@queensu\.ca" + +set crypt_autosign = yes # default: no +set crypt_replysign = yes # default: no +set crypt_replysignencrypted = yes # default: no + +set editor="/usr/bin/vim" + +set pager_context = 1 + +set send_charset="utf-8" + +set imap_check_subscribed = yes # default: no +#set imap_list_subscribed = yes # default: no + +# Don't continue to next email when reaching end of current +set pager_stop = yes + +set timeout=15 +set mail_check=60 + +set pgp_decode_command="gpg --no-verbose --batch --output - %f" +set pgp_verify_command="gpg --no-verbose --batch --output - --verify %s %f" +set pgp_decrypt_command="gpg --no-verbose --batch --output - %f" +set pgp_sign_command="gpg --no-verbose --batch --output - --armor --detach-sign --textmode %?a?-u %a? %f" +set pgp_clearsign_command="gpg --no-verbose --batch --output - --armor --textmode --clearsign %?a?-u %a? %f" +set pgp_encrypt_only_command="/usr/lib/mutt/pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust --encrypt-to 0x4A11C97A -- -r %r -- %f" +set pgp_encrypt_sign_command="/usr/lib/mutt/pgpewrap gpg --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust --encrypt-to 0x4A11C97A -- -r %r -- %f" +set pgp_import_command="gpg --no-verbose --import -v %f" +set pgp_export_command="gpg --no-verbose --export --armor %r" +set pgp_verify_key_command="gpg --no-verbose --batch --fingerprint --check-sigs %r" +set pgp_list_pubring_command="gpg --no-verbose --batch --with-colons --list-keys %r" +set pgp_list_secring_command="gpg --no-verbose --batch --with-colons --list-secret-keys %r" +set pgp_autosign=yes +set pgp_sign_as=0x4A11C97A +set pgp_replyencrypt=yes +set pgp_timeout=1800 +set pgp_good_sign="^gpg: Good signature from" +set pgp_use_gpg_agent = yes + +set move = no + +set header_cache="~/.mutt/cache/headers" +set message_cachedir="~/.mutt/cache/bodies" + +set edit_headers = yes + +#set arrow_cursor +#noop pager G +bind index G imap-fetch-mail +bind index ( next-unread-mailbox +bind index * next-unread + +macro index .n "<tag-pattern>~N<enter><tag-prefix><clear-flag>N<untag-pattern>~R<enter>" "Catchup all new messages" + +# This shows up in a nice message box at the top of e-mails for MS Outlook users +my_hdr X-message-flag: Please do NOT send HTML e-mail or MS Word attachments - use plain text instead +my_hdr X-GPG-ID: 0x4A11C97A +my_hdr X-GPG-Fingerprint: 4E46 9519 ED67 7734 268F BD95 8F7B F8FC 4A11 C97A + +set sort=threads +set sort_aux=date +set move=no +set mark_old=no +ignore * # ignore all headers except for ... +unignore Date: From: To: CC: Bcc: Subject: +hdr_order Subject: Date: From: To: CC: Bcc: +# MessageNo Mo Day (To if sent by me, from if sent to me) List [Flags] [Score] Subject +set index_format="%4C %{%b %d} %-20.20F %-15.15B [%Z] [%-2.2N] %s" # custom index format + +set mark_old=yes + +set query_command = "abook --mutt-query '%s'" +macro generic,index,pager \ca "<shell-escape>abook<return>" "launch abook" +macro index,pager A "<pipe-message>abook --add-email-quiet<return>" + +# set up the sidebar, default not visible +set sidebar_width=30 +set sidebar_visible=yes +set sidebar_delim=' ' +# which # mailboxes to list in the sidebar +# mailboxes =inbox =ml +# color of folders with new mail + +# ctrl-n, ctrl-p to select next, prev folder # +# ctrl-o to open selected folder +bind index,pager \CP sidebar-prev +bind index,pager \CN sidebar-next +bind index,pager \CO sidebar-open + +# Remap bounce-message function to "B" +bind index B bounce-message + +macro index b '<enter-command>toggle sidebar_visible<enter><refresh>' +macro pager b '<enter-command>toggle sidebar_visible<enter><redraw-screen>' + +macro index \cb |urlscan\n +macro pager \cb |urlscan\n +macro index I 'c=INBOX<enter>' +macro index x 'c=QueensU.INBOX<enter>' +#:source ~/.muttrc<enter>' + +bind editor <space> noop + +unignore X-Label: + +set mbox_type=Maildir + +source ~/.mutt/alias.rc +source ~/.mutt/mailinglists.rc +source ~/.mutt/score.rc +source ~/.mutt/color.rc +source ~/.mutt/accounts.rc +source ~/.mutt/savehooks.rc + +set folder='imap://localhost' +set spoolfile='=INBOX' + +#set folder="/home/ryan/.maildb/GMAIL/" +#set spoolfile='/home/ryan/.maildb/GMAIL/INBOX' +#mailboxes ! + `sed -e 's/\(.*\)$/"+.\1"/g' .maildb/GMAIL/subscriptions | tr '\n' ' '` +#mailboxes ! + `\ +#for file in ~/.maildb/GMAIL/.*; do \ +#box=$(basename "$file"); \ +#if [ ! "$box" = '.' -a ! "$box" = '..' -a ! "$box" = '.customflags' \ +# -a ! "$box" = '.subscriptions' ]; then \ +# echo -n "\"+$box\" "; \ +#fi; \ +#done` + +set tmpdir='~/.mutt/tmp' + +macro index <F8> \ + "<enter-command>unset wait_key<enter><shell-escape>~/bin/mutt-notmuch --prompt search<enter><change-folder-readonly>~/.cache/mutt_results<enter>" \ + "search mail (using notmuch)" +macro index <F9> \ + "<enter-command>unset wait_key<enter><pipe-message>~/bin/mutt-notmuch thread<enter><change-folder-readonly>~/.cache/mutt_results<enter><enter-command>set wait_key<enter>" \ + "search and reconstruct owning thread (using notmuch)" + +macro index \e,k "<enter-command> set sendmail='/usr/bin/msmtp'<enter>\ + <enter-command>set from = 'Ryan Kavanagh <ryanakca@kubuntu.org>'<enter>\ + <enter-command>set envelope_from_address = 'Ryan Kavanagh <ryanakca@kubuntu.org>'<enter>\ + <enter-command>set use_from = yes<enter>\ + <enter-command>set use_envelope_from = 'yes'<enter>\ + <enter-command>my_hdr From: ryanakca@kubuntu.org<enter>\ + <enter-command>my_hdr Reply-To: ryanakca@kubuntu.org<enter>\ + <enter-command>my_hdr Return-Path: ryanakca@kubuntu.org<enter>" +macro index \e,u "<enter-command> set sendmail='/usr/bin/msmtp -a ubuntu'<enter><enter-command>set from = 'Ryan Kavanagh <ryanakca@ubuntu.com>'<enter><enter-command>set envelope_from_address = 'Ryan Kavanagh <ryanakca@ubuntu.com>'<enter><enter-command>set use_from = yes<enter><enter-command>set use_envelope_from = 'yes'<enter><enter-command>my_hdr From: ryanakca@ubuntu.com<enter><enter-command>my_hdr Reply-To: ryanakca@ubuntu.com<enter><enter-command>my_hdr Return-Path: ryanakca@ubuntu.com<enter>" @@ -0,0 +1 @@ +machine localhost login ryan password LOCAL_PASS diff --git a/.notmuch-config b/.notmuch-config new file mode 100644 index 0000000..b24015d --- /dev/null +++ b/.notmuch-config @@ -0,0 +1,68 @@ +# .notmuch-config - Configuration file for the notmuch mail system +# +# For more information about notmuch, see http://notmuchmail.org + +# Database configuration +# +# The only value supported here is 'path' which should be the top-level +# directory where your mail currently exists and to where mail will be +# delivered in the future. Files should be individual email messages. +# Notmuch will store its database within a sub-directory of the path +# configured here named ".notmuch". +# +[database] +path=/home/ryan/.maildb/GMAIL/ + +# User configuration +# +# Here is where you can let notmuch know how you would like to be +# addressed. Valid settings are +# +# name Your full name. +# primary_email Your primary email address. +# other_email A list (separated by ';') of other email addresses +# at which you receive email. +# +# Notmuch will use the various email addresses configured here when +# formatting replies. It will avoid including your own addresses in the +# recipient list of replies, and will set the From address based on the +# address to which the original email was addressed. +# +[user] +name=Ryan Kavanagh +primary_email=ryanakca@kubuntu.org +other_email=ryanakca@gmail.com;9rak@queensu.ca;ryan.kavanagh@queensu.ca;ryan@ryanak.ca;ryanakca-guest@users.alioth.debian.org;ryanakca@ubuntu.com; + +# Configuration for "notmuch new" +# +# The following options are supported here: +# +# tags A list (separated by ';') of the tags that will be +# added to all messages incorporated by "notmuch new". +# +[new] +tags=unread; + +# Maildir compatibility configuration +# +# The following option is supported here: +# +# synchronize_flags Valid values are true and false. +# +# If true, then the following maildir flags (in message filenames) +# will be syncrhonized with the corresponding notmuch tags: +# +# Flag Tag +# ---- ------- +# D draft +# F flagged +# P passed +# R replied +# S unread (added when 'S' flag is not present) +# +# The "notmuch new" command will notice flag changes in filenames +# and update tags, while the "notmuch tag" and "notmuch restore" +# commands will notice tag changes and update flags in filenames +# +[maildir] +synchronize_flags=true diff --git a/.offlineimaprc b/.offlineimaprc new file mode 100644 index 0000000..b9eed51 --- /dev/null +++ b/.offlineimaprc @@ -0,0 +1,87 @@ +# Sample minimal config file. Copy this to ~/.offlineimaprc and edit to +# suit to get started fast. + +[general] +metadata = ~/.offlineimap +accounts = QueensU, GMAIL +pythonfile=~/.offlineimap.py +# EIMEAR +maxsyncaccounts = 2 + +#### GMAIL Account Settings +[Account GMAIL] +localrepository = LocalGmail +remoterepository = RemoteGmail +autorefresh = 20 +quick = 10 +presynchook = imapfilter -c /home/ryan/.imapfilter/config.lua +postsynchook = imapfilter -c /home/ryan/.imapfilter/config.lua && /home/ryan/bin/run-mailcheck && notmuch new +foldersort = mycmp + +[Repository LocalGmail] +#type = Maildir +#localfolders = ~/.maildb/GMAIL +#restoreatime = no +type = IMAP +remotehost = localhost +remoteuser = ryan +remotepass = LOCAL_PASS + +[Repository RemoteGmail] +foldersort = lambda x, y: cmp(x, y) +type = Gmail +remoteuser = ryanakca@gmail.com +remotepass = GMAIL_PASS +spamfolder = [Google Mail]/Spam +trashfolder = [Google Mail]/Bin +realdelete = no +folderfilter = lambda foldername: foldername not in ['[Google Mail]/All Mail'] +#folderfilter = lambda foldername: foldername in ['INBOX'] + +##### QueensU mail +[Account QueensU] +localrepository = LocalGmail +remoterepository = RemoteQueensU +autorefresh = 20 +quick = 10 +# presynchook = imapfilter +foldersort = lamba x, y: cmp(x, y) +postsynchook = /home/ryan/bin/run-mailcheck + +[Repository RemoteQueensU] +nametrans = lambda foldername: 'QueensU.' + foldername +foldersort = lambda x, y: cmp(y, x) +type = IMAP +remoteuser = 9rak +remotehost = mail.queensu.ca +remotepass = QUEENSU_PASS + +[Account EIMEAR] +localrepository = LocalEimear +remoterepository = RemoteEimear +foldersort = lambda x, y: cmp(x, y) + +[Repository LocalEimear] +type = IMAP +remotehost = localhost +remoteuser = ryan +remotepass = LOCAL_PASS + +[Repository RemoteEimear] +foldersort = lambda x, y: cmp(x, y) +type = IMAP +remotehost = ryanak.ca +remoteuser = ryan +remotepass = LOCAL_PASS +ssl = yes + +[mbnames] +enabled = no +filename = .muttrc.mailboxes +header = "mailboxes " +peritem = "+%(foldername)s" +sep = " " +footer = "\n" + +[ui.Curses.Blinkenlights] +statuschar = % diff --git a/.quiltrc-dpkg b/.quiltrc-dpkg new file mode 100644 index 0000000..1207660 --- /dev/null +++ b/.quiltrc-dpkg @@ -0,0 +1,11 @@ +d=. ; while [ ! -d $d/debian -a `readlink -e $d` != / ]; do d=$d/..; done +if [ -d $d/debian ] && [ -z $QUILT_PATCHES ]; then + # if in Debian packaging tree with unset $QUILT_PATCHES + QUILT_PATCHES="debian/patches" + QUILT_PATCH_OPTS="--reject-format=unified" + QUILT_DIFF_ARGS="-p ab --no-timestamps --no-index --color=auto" + QUILT_REFRESH_ARGS="-p ab --no-timestamps --no-index" + QUILT_COLORS="diff_hdr=1;32:diff_add=1;34:diff_rem=1;31:diff_hunk=1;33: ↠+ diff_ctx=35:diff_cctx=33" + if ! [ -d $d/debian/patches ]; then mkdir $d/debian/patches; fi +fi diff --git a/.screenlayout/epsilon-SAIL.sh b/.screenlayout/epsilon-SAIL.sh new file mode 100755 index 0000000..85426bc --- /dev/null +++ b/.screenlayout/epsilon-SAIL.sh @@ -0,0 +1,2 @@ +#!/bin/sh +xrandr --output LVDS1 --mode 1024x600 --pos 0x1200 --rotate normal --output VGA1 --mode 1920x1200 --pos 0x0 --rotate normal diff --git a/.screenlayout/epsilon-home.sh b/.screenlayout/epsilon-home.sh new file mode 100755 index 0000000..10f16a0 --- /dev/null +++ b/.screenlayout/epsilon-home.sh @@ -0,0 +1,2 @@ +#!/bin/sh +xrandr --output LVDS1 --mode 1024x600 --pos 0x0 --rotate normal --output VGA1 --mode 1920x1080 --pos 1024x0 --rotate normal diff --git a/.screenrc b/.screenrc new file mode 100644 index 0000000..fac0c72 --- /dev/null +++ b/.screenrc @@ -0,0 +1,14 @@ +defutf8 on +shell /bin/zsh +encoding UTF-8 +vbell on +defnonblock 5 + +startup_message off + +hardstatus alwayslastline +hardstatus string "%{=}%{g}[%{B}%D %d/%m%{W}%c:%s%{g}][%= %{w}%?%-Lw%?%{r}(%{W}%n*%f %t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{+b r}%H%{-b r}%{W}:%l%{g}]" +#hardstatus string "%{=}%{g}[%{B}%D %d/%m%{W}%c:%s%{g}][%= %{w}%?%-Lw%?%{b}(%{C}%n%{W}*%f %t%?(%u)%?%{b})%{w}%?%+Lw%?%?%= %{g}][%{b}%H%{-s w}:%{W}%l%{g}]" + +shelltitle '$ |zsh' +idle 3600 detach diff --git a/.signature b/.signature new file mode 100644 index 0000000..cf989cb --- /dev/null +++ b/.signature @@ -0,0 +1,2 @@ +|_)|_/ Ryan Kavanagh | GnuPG key +| \| \ http://ryanak.ca/ | 4A11C97A diff --git a/.vim/README.csupport b/.vim/README.csupport new file mode 100644 index 0000000..27ca4a9 --- /dev/null +++ b/.vim/README.csupport @@ -0,0 +1,188 @@ +README for c.vim (Version 5.0.5) / November 21 2007 + + * DESCRIPTION + * INSTALLATION + * RELEASE NOTES + * FILES + * ADDITIONAL TIPS + * CREDITS + +======================================================================================= + DESCRIPTION +======================================================================================= +C/C++-IDE for Vim/gVim. It is written to considerably speed up writing code in +a consistent style. This is done by inserting complete statements, idioms, +code snippets, templates, and comments. Syntax checking, compiling, running a +program, running indent or code checkers can be done with a keystroke. There +are many additional hints and options which can improve speed and comfort when +writing C/C++. See the help file csupport.txt for more information. + +======================================================================================= + INSTALLATION +======================================================================================= +The subdirectories in the zip archive cvim.zip mirror the directory structure +which is needed below the local installation directory $HOME/.vim/ for LINUX/UNIX +($VIM/vimfiles/ for Windows; find the value of $VIM with ":echo $VIM" from inside Vim). + +(0) Save the template files in '$HOME/.vim/c-support/templates/Templates' if + you have changed any of them. + +(1) Copy the zip archive cvim.zip to $HOME/.vim and run + + unzip cvim.zip + + If you have already an older version of cvim and you have modified the template + files you may want to save your templates first or copy the files from the + archive by hand. + +(2) Loading of plugin files must be enabled. If not use + + :filetype plugin on + + This is the minimal content of the file '$HOME/.vimrc'. Create one if there + is none. + +(3) Set at least some personal details in the file '$HOME/.vim/c-support/templates/Templates' + (file '$VIM\/c-support/templates/Templates' under Windows). + Here is the minimal personalization (my settings as an example, of course): + + |AUTHOR| = Dr. Fritz Mehner + |AUTHORREF| = mn + |EMAIL| = mehner@fh-swf.de + |COMPANY| = FH Südwestfalen, Iserlohn + |COPYRIGHT| = Copyright (c) |YEAR|, |AUTHOR| + + (Read more about the template system in the plugin documentation) + +(4) Consider additional settings in the file '$HOME/.vimrc'. + The files customization.vimrc and customization.gvimrc are replacements or + extensions for your .vimrc and .gvimrc ( _vimrc and _gvimrc under Windows). + You may want to use parts of them. The files are documented. + +There are a lot of features and options which can be used and influenced: + + * use of template files and tags + * surround marked blocks with statements + * using and managing personal code snippets + * generate/remove multiline comments + * picking up prototypes + * C/C++ dictionaries for keyword completion + * (re)moving the root menu + +Restart gVim/Vim generate the help tags + + :helptags ~/.vim/doc + +and look at csupport help with + + :help csupport + +or use the 'help' entry in the root menu of this plug-in. + + +-----------------------------------------------+ + | +-------------------------------------------+ | + | | ** PLEASE READ THE DOCUMENTATION ** | | + | | Actions differ for different modes! | | + | +-------------------------------------------+ | + +-----------------------------------------------+ + +Any problems ? See the TROUBLESHOOTING section at the end of the help file +'doc/csupport.txt'. + +======================================================================================= + RELEASE NOTES FOR VERSION 5.0.5 +======================================================================================= ++ Bugfix: on a few systems doubling of path components in the run command (F9). + Skip this upgrade if you do not have this problem. + + OLDER RELEASE NOTES : see file 'ChangeLog' +======================================================================================= + +======================================================================================= + FILES +======================================================================================= + +README.csupport This file. + +doc/csupport.txt The help file for the local on-line help. + +ftplugin/c.vim A file type plug-in. Define hotkeys, creates a local + dictionary for each C/C++ file. + +plugin/c.vim The C/C++ plug-in for GVIM. + +c-support/scripts/wrapper.sh The wrapper script for the use of an xterm. +c-support/templates/* C-style and C++-style template files (see csupport.txt). + + +c-support/wordlists/c-c++-keywords.list All C and C++ keywords (already in word.list). +c-support/wordlists/k+r.list K&R-Book: Words from the table of content. + They appear frequently in comments. +c-support/wordlists/stl_index.list STL: method and type names. + + +----------------------- ------------------------------------------------------------- + The following files and extensions are for convenience only. + c.vim will work without them. + ------------------------------------------------------------- +c-support/doc/c-hotkeys.pdf Hotkey reference card. +c-support/doc/ChangeLog The change log. + +rc/customization.ctags Additional settings I use in .ctags to enable navigation + through makefiles ans qmake files with the plug-in taglist.vim. + +rc/costumization.gvimrc Additional settings I use in .gvimrc : + hot keys, mouse settings, ... + The file is commented. Append it to your .gvimrc if you like. + +rc/costumization.indent.pro Additional settings I use in .indent.pro : + See the indent manual. + +rc/costumization.vimrc Additional settings I use in .vimrc : incremental search, + tabstop, hot keys, font, use of dictionaries, ... + The file is commented. Append it to your .vimrc if you like. + +======================================================================================= + ADDITIONAL TIPS +======================================================================================= + +(1) gVim. Toggle 'insert mode' <--> 'normal mode' with the right mouse button + (see mapping in file costumization.gvimrc). + +(2) gVim. Use tear off menus. + +(3) Try 'Focus under mouse' as window behavior (No mouse click when the mouse pointer + is back from the menu entry). + +(4) Use Emulate3Buttons "on" (X11) even for a 3-button mouse. Pressing left and right + button at the same time without moving your fingers is faster then moving a finger + to the middle button (often a wheel). + +======================================================================================= + CREDITS +======================================================================================= + + Some ideas are taken from the following documents: + + 1. Recommended C Style and Coding Standards (Indian Hill Style Guide) + www.doc.ic.ac.uk/lab/secondyear/cstyle/cstyle.html + 2. Programming in C++, Ellemtel Telecommunication Systems Laboratories + www.it.bton.ac.uk/burks/burks/language/cpp/cppstyle/ellhome.htm + 3. C++ Coding Standard, Todd Hoff + www.possibility.com/Cpp/CppCodingStandard.html + + The splint error format is taken from the file splint.vim (Vim standard distribution). + +------------------ + + ... finally + + Johann Wolfgang von Goethe (1749-1832), the greatest of the German poets, + about LINUX, Vim/gVim and other great tools (Ok, almost.) : + + Ein Mann, der recht zu wirken denkt, Who on efficient work is bent, + Muß auf das beste Werkzeug halten. Must choose the fittest instrument. + + Faust, Teil 1, Vorspiel auf dem Theater Faust, Part 1, Prologue for the Theatre + +======================================================================================= diff --git a/.vim/autoload/haskellmode.vim b/.vim/autoload/haskellmode.vim new file mode 100644 index 0000000..ce20a67 --- /dev/null +++ b/.vim/autoload/haskellmode.vim @@ -0,0 +1,155 @@ +" +" utility functions for haskellmode plugins +" +" (Claus Reinke; last modified: 23/04/2009) +" +" part of haskell plugins: http://projects.haskell.org/haskellmode-vim +" please send patches to <claus.reinke@talk21.com> + + + +" find start/extent of name/symbol under cursor; +" return start, symbolic flag, qualifier, unqualified id +" (this is used in both haskell_doc.vim and in GHC.vim) +function! haskellmode#GetNameSymbol(line,col,off) + let name = "[a-zA-Z0-9_']" + let symbol = "[-!#$%&\*\+/<=>\?@\\^|~:.]" + "let [line] = getbufline(a:buf,a:lnum) + let line = a:line + + " find the beginning of unqualified id or qualified id component + let start = (a:col - 1) + a:off + if line[start] =~ name + let pattern = name + elseif line[start] =~ symbol + let pattern = symbol + else + return [] + endif + while start > 0 && line[start - 1] =~ pattern + let start -= 1 + endwhile + let id = matchstr(line[start :],pattern.'*') + " call confirm(id) + + " expand id to left and right, to get full id + let idPos = id[0] == '.' ? start+2 : start+1 + let posA = match(line,'\<\(\([A-Z]'.name.'*\.\)\+\)\%'.idPos.'c') + let start = posA>-1 ? posA+1 : idPos + let posB = matchend(line,'\%'.idPos.'c\(\([A-Z]'.name.'*\.\)*\)\('.name.'\+\|'.symbol.'\+\)') + let end = posB>-1 ? posB : idPos + + " special case: symbolic ids starting with . + if id[0]=='.' && posA==-1 + let start = idPos-1 + let end = posB==-1 ? start : end + endif + + " classify full id and split into qualifier and unqualified id + let fullid = line[ (start>1 ? start-1 : 0) : (end-1) ] + let symbolic = fullid[-1:-1] =~ symbol " might also be incomplete qualified id ending in . + let qualPos = matchend(fullid, '\([A-Z]'.name.'*\.\)\+') + let qualifier = qualPos>-1 ? fullid[ 0 : (qualPos-2) ] : '' + let unqualId = qualPos>-1 ? fullid[ qualPos : -1 ] : fullid + " call confirm(start.'/'.end.'['.symbolic.']:'.qualifier.' '.unqualId) + + return [start,symbolic,qualifier,unqualId] +endfunction + +function! haskellmode#GatherImports() + let imports={0:{},1:{}} + let i=1 + while i<=line('$') + let res = haskellmode#GatherImport(i) + if !empty(res) + let [i,import] = res + let prefixPat = '^import\s*\(qualified\)\?\s\+' + let modulePat = '\([A-Z][a-zA-Z0-9_''.]*\)' + let asPat = '\(\s\+as\s\+'.modulePat.'\)\?' + let hidingPat = '\(\s\+hiding\s*\((.*)\)\)\?' + let listPat = '\(\s*\((.*)\)\)\?' + let importPat = prefixPat.modulePat.asPat.hidingPat.listPat ".'\s*$' + + let ml = matchlist(import,importPat) + if ml!=[] + let [_,qualified,module,_,as,_,hiding,_,explicit;x] = ml + let what = as=='' ? module : as + let hidings = split(hiding[1:-2],',') + let explicits = split(explicit[1:-2],',') + let empty = {'lines':[],'hiding':hidings,'explicit':[],'modules':[]} + let entry = has_key(imports[1],what) ? imports[1][what] : deepcopy(empty) + let imports[1][what] = haskellmode#MergeImport(deepcopy(entry),i,hidings,explicits,module) + if !(qualified=='qualified') + let imports[0][what] = haskellmode#MergeImport(deepcopy(entry),i,hidings,explicits,module) + endif + else + echoerr "haskellmode#GatherImports doesn't understand: ".import + endif + endif + let i+=1 + endwhile + if !has_key(imports[1],'Prelude') + let imports[0]['Prelude'] = {'lines':[],'hiding':[],'explicit':[],'modules':[]} + let imports[1]['Prelude'] = {'lines':[],'hiding':[],'explicit':[],'modules':[]} + endif + return imports +endfunction + +function! haskellmode#ListElem(list,elem) + for e in a:list | if e==a:elem | return 1 | endif | endfor + return 0 +endfunction + +function! haskellmode#ListIntersect(list1,list2) + let l = [] + for e in a:list1 | if index(a:list2,e)!=-1 | let l += [e] | endif | endfor + return l +endfunction + +function! haskellmode#ListUnion(list1,list2) + let l = [] + for e in a:list2 | if index(a:list1,e)==-1 | let l += [e] | endif | endfor + return a:list1 + l +endfunction + +function! haskellmode#ListWithout(list1,list2) + let l = [] + for e in a:list1 | if index(a:list2,e)==-1 | let l += [e] | endif | endfor + return l +endfunction + +function! haskellmode#MergeImport(entry,line,hiding,explicit,module) + let lines = a:entry['lines'] + [ a:line ] + let hiding = a:explicit==[] ? haskellmode#ListIntersect(a:entry['hiding'], a:hiding) + \ : haskellmode#ListWithout(a:entry['hiding'],a:explicit) + let explicit = haskellmode#ListUnion(a:entry['explicit'], a:explicit) + let modules = haskellmode#ListUnion(a:entry['modules'], [ a:module ]) + return {'lines':lines,'hiding':hiding,'explicit':explicit,'modules':modules} +endfunction + +" collect lines belonging to a single import statement; +" return number of last line and collected import statement +" (assume opening parenthesis, if any, is on the first line) +function! haskellmode#GatherImport(lineno) + let lineno = a:lineno + let import = getline(lineno) + if !(import=~'^import\s') | return [] | endif + let open = strlen(substitute(import,'[^(]','','g')) + let close = strlen(substitute(import,'[^)]','','g')) + while open!=close + let lineno += 1 + let linecont = getline(lineno) + let open += strlen(substitute(linecont,'[^(]','','g')) + let close += strlen(substitute(linecont,'[^)]','','g')) + let import .= linecont + endwhile + return [lineno,import] +endfunction + +function! haskellmode#UrlEncode(string) + let pat = '\([^[:alnum:]]\)' + let code = '\=printf("%%%02X",char2nr(submatch(1)))' + let url = substitute(a:string,pat,code,'g') + return url +endfunction + diff --git a/.vim/autoload/pythoncomplete.vim b/.vim/autoload/pythoncomplete.vim new file mode 120000 index 0000000..2b8df41 --- /dev/null +++ b/.vim/autoload/pythoncomplete.vim @@ -0,0 +1 @@ +../ftplugin/pythoncomplete.vim
\ No newline at end of file diff --git a/.vim/c-support/codesnippets/Makefile b/.vim/c-support/codesnippets/Makefile new file mode 100644 index 0000000..2208944 --- /dev/null +++ b/.vim/c-support/codesnippets/Makefile @@ -0,0 +1,178 @@ +#======================================================================================= +# +# Filename: Makefile +# Description: +# +# Usage: make (generate executable ) +# make clean (remove objects, executable, prerequisits ) +# make tarball (generate compressed archive ) +# make zip (generate compressed archive ) +# +# Version: 1.0 +# Created: +# Revision: --- +# +# Author: +# Company: +# Email: +# +# Notes: C extension : c +# C++ extensions : cc cpp C +# C and C++ sources can be mixed. +# Prerequisites are generated automatically; makedepend is not +# needed (see documentation for GNU make Version 3.80, July 2002, +# section 4.13). The utility sed is used. +# +#============================================== makefile template version 1.6 ========== + +# ------------ name of the executable ------------------------------------------------ +EXECUTABLE = main + +# ------------ list of all source files ---------------------------------------------- +SOURCES = main.c + +# ------------ compiler -------------------------------------------------------------- +CC = gcc +CXX = g++ + +# ------------ compiler flags -------------------------------------------------------- +CFLAGS = -Wall -O0 -g # Do not optimize. Produce debugging information. + +# ------------ linker-Flags ---------------------------------------------------------- +LFLAGS = -g + +# ------------ additional system include directories --------------------------------- +GLOBAL_INC_DIR = + +# ------------ private include directories ------------------------------------------- +LOCAL_INC_DIR = $(HOME)/include + +# ------------ system libraries (e.g. -lm ) ----------------------------------------- +SYS_LIBS = -lm + +# ------------ additional system library directories --------------------------------- +GLOBAL_LIB_DIR = + +# ------------ additional system libraries ------------------------------------------- +GLOBAL_LIBS = + +# ------------ private library directories ------------------------------------------- +LOCAL_LIB_DIR = $(HOME)/lib + +# ------------ private libraries (e.g. libxyz.a ) ----------------------------------- +LOCAL_LIBS = + +# ------------ archive generation ----------------------------------------------------- +TARBALL_EXCLUDE = *.{o,gz,zip} +ZIP_EXCLUDE = *.{o,gz,zip} + +# ------------ run executable out of this Makefile (yes/no) ------------------------- +# ------------ cmd line parameters for this executable ------------------------------- +EXE_START = no +EXE_CMDLINE = + +#======================================================================================= +# The following statements usually need not to be changed +#======================================================================================= + +C_SOURCES = $(filter %.c, $(SOURCES)) +CPP_SOURCES = $(filter-out %.c, $(SOURCES)) +ALL_INC_DIR = $(addprefix -I, $(LOCAL_INC_DIR) $(GLOBAL_INC_DIR)) +ALL_LIB_DIR = $(addprefix -L, $(LOCAL_LIB_DIR) $(GLOBAL_LIB_DIR)) +GLOBAL_LIBSS = $(addprefix $(GLOBAL_LIB_DIR)/, $(GLOBAL_LIBS)) +LOCAL_LIBSS = $(addprefix $(LOCAL_LIB_DIR)/, $(LOCAL_LIBS)) +ALL_CFLAGS = $(CFLAGS) $(ALL_INC_DIR) +ALL_LFLAGS = $(LFLAGS) $(ALL_LIB_DIR) +BASENAMES = $(basename $(SOURCES)) + +# ------------ generate the names of the object files -------------------------------- +OBJECTS = $(addsuffix .o,$(BASENAMES)) + +# ------------ generate the names of the hidden prerequisite files ------------------- +PREREQUISITES = $(addprefix .,$(addsuffix .d,$(BASENAMES))) + +# ------------ make the executable --------------------------------------------------- +$(EXECUTABLE): $(OBJECTS) +ifeq ($(strip $(CPP_SOURCES)),) + $(CC) $(ALL_LFLAGS) -o $(EXECUTABLE) $(OBJECTS) $(LOCAL_LIBSS) $(GLOBAL_LIBSS) $(SYS_LIBS) +else + $(CXX) $(ALL_LFLAGS) -o $(EXECUTABLE) $(OBJECTS) $(LOCAL_LIBSS) $(GLOBAL_LIBSS) $(SYS_LIBS) +endif +ifeq ($(EXE_START),yes) + ./$(EXECUTABLE) $(EXE_CMDLINE) +endif + +# ------------ include the automatically generated prerequisites --------------------- +# ------------ if target is not clean, tarball or zip --------------------- +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(MAKECMDGOALS),tarball) +ifneq ($(MAKECMDGOALS),zip) +include $(PREREQUISITES) +endif +endif +endif + +# ------------ make the objects ------------------------------------------------------ +%.o: %.c + $(CC) -c $(ALL_CFLAGS) $< + +%.o: %.cc + $(CXX) -c $(ALL_CFLAGS) $< + +%.o: %.cpp + $(CXX) -c $(ALL_CFLAGS) $< + +%.o: %.C + $(CXX) -c $(ALL_CFLAGS) $< + +# ------------ make the prerequisites ------------------------------------------------ +# +.%.d: %.c + @$(make-prerequisite-c) + +.%.d: %.cc + @$(make-prerequisite-cplusplus) + +.%.d: %.cpp + @$(make-prerequisite-cplusplus) + +.%.d: %.C + @$(make-prerequisite-cplusplus) + +# canned command sequences +# echoing of the sed command is suppressed by the leading @ + +define make-prerequisite-c + @$(CC) -MM $(ALL_CFLAGS) $< > $@.$$$$; \ + sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' < $@.$$$$ > $@; \ + rm -f $@.$$$$; +endef + +define make-prerequisite-cplusplus + @$(CXX) -MM $(ALL_CFLAGS) $< > $@.$$$$; \ + sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' < $@.$$$$ > $@; \ + rm -f $@.$$$$; +endef + +# ------------ remove generated files ------------------------------------------------ +# ------------ remove hidden backup files -------------------------------------------- +clean: + rm --force $(EXECUTABLE) $(OBJECTS) $(PREREQUISITES) *~ + +# ------------ tarball generation ------------------------------------------------------ +tarball: + @lokaldir=`pwd`; lokaldir=$${lokaldir##*/}; \ + rm --force $$lokaldir.tar.gz; \ + tar --exclude=$(TARBALL_EXCLUDE) \ + --create \ + --gzip \ + --verbose \ + --file $$lokaldir.tar.gz * + +# ------------ zip --------------------------------------------------------------------- +zip: + @lokaldir=`pwd`; lokaldir=$${lokaldir##*/}; \ + zip -r $$lokaldir.zip * -x $(ZIP_EXCLUDE) + +# ====================================================================================== +# vim: set tabstop=2: set shiftwidth=2: diff --git a/.vim/c-support/codesnippets/Makefile.multi-target.template b/.vim/c-support/codesnippets/Makefile.multi-target.template new file mode 100644 index 0000000..75da8dd --- /dev/null +++ b/.vim/c-support/codesnippets/Makefile.multi-target.template @@ -0,0 +1,70 @@ +#=============================================================================== +# +# File: Makefile +# Description: +# +# Usage: make (generate executable(s) ) +# make clean (remove objects, executables, prerequisits ) +# make tarball (generate compressed archive ) +# make zip (generate compressed archive ) +# +# Author: Dr.-Ing. Fritz Mehner +# Email: mehner@mfh-iserlohn.de +# Created: +# +#=============================================================================== + + +CC = gcc +CCP = g++ +CFLAGS = -c -g -Wall +LFLAGS = -g +SYS_LIBS = -lm +TARBALL_EXCLUDE = "*.{o,gz,zip}" +ZIP_EXCLUDE = *.o *.gz *.zip + +TARGETS = target_1 target_2 + +#---------- targets -------------------------------------- +all: $(TARGETS) + +%.o: %.c + $(CC) $(CFLAGS) $*.c + +%.o: %.cc + $(CCP) $(CFLAGS) $*.cc + +#---------- target 1 ------------------------------------- +# C target +target_1: target_1.o + $(CC) $(LFLAGS) -o $@ $@.o $(SYS_LIBS) + +#---------- target 2 ------------------------------------- +# C++ target +target_2: target_2.o + $(CCP) $(LFLAGS) -o $@ $@.o $(SYS_LIBS) + + +#---------- target 3 ------------------------------------- + + + +#---------- tarball -------------------------------------- +tarball: + lokaldir=`pwd`; lokaldir=$${lokaldir##*/}; \ + rm --force $$lokaldir.tar.gz; \ + tar --exclude=$(TARBALL_EXCLUDE) \ + --create \ + --gzip \ + --verbose \ + --file $$lokaldir.tar.gz * + +#---------- zip ------------------------------------------ +zip: + lokaldir=`pwd`; lokaldir=$${lokaldir##*/}; \ + zip -r $$lokaldir.zip * -x $(ZIP_EXCLUDE) + +#---------- clear up ------------------------------------- +clean: + rm --force $(EXECUTABLE) $(OBJECTS) $(PREREQUISITES) + diff --git a/.vim/c-support/codesnippets/calloc_double_matrix.c b/.vim/c-support/codesnippets/calloc_double_matrix.c new file mode 100644 index 0000000..ec71658 --- /dev/null +++ b/.vim/c-support/codesnippets/calloc_double_matrix.c @@ -0,0 +1,36 @@ + +/* + * === FUNCTION ====================================================================== + * Name: calloc_double_matrix + * Description: Allocate a dynamic double-matrix of size rows*columns; + * return a pointer. + * ===================================================================================== + */ + double** +calloc_double_matrix ( int rows, int columns ) +{ + int i; + double **m; + m = calloc ( rows, sizeof(double*) ); /* allocate pointer array */ + assert( m != NULL); /* abort if allocation failed */ + *m = calloc ( rows*columns, sizeof(double) );/* allocate data array */ + assert(*m != NULL); /* abort if allocation failed */ + for ( i=1; i<rows; i+=1 ) /* set pointers */ + m[i] = m[i-1] + columns; + return m; +} /* ---------- end of function calloc_double_matrix ---------- */ + +/* + * === FUNCTION ====================================================================== + * Name: free_matrix_double + * Description: Free a dynamic double-matrix. + * ===================================================================================== + */ + void +free_double_matrix ( double **m ) +{ + free(*m); /* free data array */ + free( m); /* free pointer array */ + return ; +} /* ---------- end of function free_double_matrix ---------- */ + diff --git a/.vim/c-support/codesnippets/calloc_int_matrix.c b/.vim/c-support/codesnippets/calloc_int_matrix.c new file mode 100644 index 0000000..e21215b --- /dev/null +++ b/.vim/c-support/codesnippets/calloc_int_matrix.c @@ -0,0 +1,35 @@ + +/* + * === FUNCTION ====================================================================== + * Name: calloc_int_matrix + * Description: Allocate a dynamic int-matrix of size rows*columns; return a pointer. + * ===================================================================================== + */ +int** +calloc_int_matrix ( int rows, int columns ) +{ + int i; + int **m; + m = calloc ( rows, sizeof(int*) ); /* allocate pointer array */ + assert( m != NULL ); /* abort if allocation failed */ + *m = calloc ( rows*columns, sizeof(int) ); /* allocate data array */ + assert(*m != NULL ); /* abort if allocation failed */ + for ( i=1; i<rows; i+=1 ) /* set pointers */ + m[i] = m[i-1] + columns; + return m; +} /* ---------- end of function calloc_int_matrix ---------- */ + +/* + * === FUNCTION ====================================================================== + * Name: free_int_matrix + * Description: Free a dynamic int-matrix. + * ===================================================================================== + */ +void +free_int_matrix ( int **m ) +{ + free(*m); /* free data array */ + free( m); /* free pointer array */ + return ; +} /* ---------- end of function free_int_matrix ---------- */ + diff --git a/.vim/c-support/codesnippets/main.c b/.vim/c-support/codesnippets/main.c new file mode 100644 index 0000000..770f5d5 --- /dev/null +++ b/.vim/c-support/codesnippets/main.c @@ -0,0 +1,20 @@ +#include <errno.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +/* + * === FUNCTION ====================================================================== + * Name: main + * Description: main function + * ===================================================================================== + */ + int +main ( int argc, char *argv[] ) +{ + printf ("\nProgram %s\n\n", argv[0] ); + + return EXIT_SUCCESS; +} /* ---------- end of function main ---------- */ + diff --git a/.vim/c-support/codesnippets/main.cc b/.vim/c-support/codesnippets/main.cc new file mode 100644 index 0000000..d87f891 --- /dev/null +++ b/.vim/c-support/codesnippets/main.cc @@ -0,0 +1,18 @@ +#include <fstream> +#include <iomanip> +#include <iostream> + +using namespace std; + +// === FUNCTION ====================================================================== +// Name: main +// Description: main function +// ===================================================================================== + int +main ( int argc, char *argv[] ) +{ + cout << "\nProgram " << argv[0] << endl << endl; + + return EXIT_SUCCESS; +} // ---------- end of function main ---------- + diff --git a/.vim/c-support/codesnippets/print_double_array.c.noindent b/.vim/c-support/codesnippets/print_double_array.c.noindent new file mode 100644 index 0000000..6ced53a --- /dev/null +++ b/.vim/c-support/codesnippets/print_double_array.c.noindent @@ -0,0 +1,30 @@ + +/* + * === FUNCTION ====================================================================== + * Name: print_double_array + * Description: Print a double-array with one dimension. + * Use + * print_int_array( *matrix, n1*n2, n2, "matrix" ); + * for + * double matrix[n1][n2]; + * ===================================================================================== + */ +static void +print_double_array ( double array[], /* array to print */ + int n, /* number of elements to print */ + int nrow, /* number of elements per row */ + char *arrayname /* array name */ + ) +{ + int i; + printf ("\n\n array \"%s\", length %d\n", arrayname, n ); + for ( i=0; i<n; i+=1 ) + { + if( i%nrow == 0 ) + printf ("\n%6d : ", i ); + printf (" %8.2f", array[i] ); + } + printf ("\n\n"); + return ; +} /* ---------- end of function print_double_array ---------- */ + diff --git a/.vim/c-support/codesnippets/print_int_array.c.noindent b/.vim/c-support/codesnippets/print_int_array.c.noindent new file mode 100644 index 0000000..02d53c0 --- /dev/null +++ b/.vim/c-support/codesnippets/print_int_array.c.noindent @@ -0,0 +1,30 @@ + +/* + * === FUNCTION ====================================================================== + * Name: print_int_array + * Description: Print an int-array with one dimension. + * Use + * print_int_array( *matrix, n1*n2, n2, "matrix" ); + * for + * int matrix[n1][n2]; + * ===================================================================================== + */ +static void +print_int_array ( int array[], /* array to print */ + int n, /* number of elements to print */ + int nrow, /* number of elements per row */ + char *arrayname /* array name */ + ) +{ + int i; + printf ("\n\n array \"%s\", length %d\n", arrayname, n ); + for ( i=0; i<n; i+=1 ) + { + if( i%nrow == 0 ) + printf ("\n%6d : ", i ); + printf (" %6d", array[i] ); + } + printf ("\n\n"); + return ; +} /* ---------- end of function print_int_array ---------- */ + diff --git a/.vim/c-support/doc/ChangeLog b/.vim/c-support/doc/ChangeLog new file mode 100644 index 0000000..d0d4fd4 --- /dev/null +++ b/.vim/c-support/doc/ChangeLog @@ -0,0 +1,304 @@ +======================================================================================= + RELEASE NOTES FOR VERSION 5.0.4 +======================================================================================= ++ Format for the macros |DATE|, |TIME|, and |YEAR| can be defined by the user. ++ Help text improved. + +======================================================================================= + RELEASE NOTES FOR VERSION 5.0.3 +======================================================================================= ++ Code snippets can now be used in the console mode (Vim without GUI). ++ Bugfix: Possible conflict with 'indent' removed when inserting templates. + +======================================================================================= + RELEASE NOTES FOR VERSION 5.0.2 +======================================================================================= ++ Bugfix: Prototype picker did not alway delete no longer used prototypes. ++ Bugfix: Prototype picker removed template specializations from parameter lists. + +======================================================================================= + RELEASE NOTES FOR VERSION 5.0.1 +======================================================================================= ++ Bugfix: autocmd setting can influence autocmd settings of OTHER plugins. + +======================================================================================= + RELEASE NOTES FOR VERSION 5.0 +======================================================================================= ++ Completely new template system. Now every menu item is user definable. ++ Changes to allow a system-wide installation. ++ A few hotkeys added and renamed. + +======================================================================================= + RELEASE NOTES FOR VERSION 4.6.1 +======================================================================================= ++ New global variable to control the filetype of *.h header files (default is now 'cpp'). ++ Bugfix: properly resetting 'compiler' after using make, splint, and CodeCheck. + +======================================================================================= + RELEASE NOTES FOR VERSION 4.6 +======================================================================================= ++ New insert mode mappings (comments, statements, preprocessing, idioms, C++). ++ Some mappings renamed (easier to remember). ++ New tag (basename of a file reduced to characters allowed in names). + +======================================================================================= + RELEASE NOTES FOR VERSION 4.5 +======================================================================================= ++ New menu item and hotkey for the (re)alignement of end-of-line comments. ++ Hotkey \cn removed. Only one menu item for end-of-line comments left. ++ Changed hotkeys: \ce -> \cl and \cl -> \cs . ++ Three new tags (giving the basename of a file) for writing template files. ++ Prototype picker handles template methods. ++ Bugfix: splint works now under Windows. ++ Minor improvements. + +======================================================================================= + RELEASE NOTES FOR VERSION 4.4 +======================================================================================= ++ Plugin directories rearranged. ++ main- and for-idiom have a visual mode now. ++ Four new commands (command line) to control the comment style. ++ Comment style (C/C++) can automatically follow the filetype. ++ Bugfix: empty new file after removing the header template can't be closed. ++ Bugfix : Tools entry missing when root menu not shown from the start. ++ Minor improvements. + +======================================================================================= + RELEASE NOTES FOR VERSION 4.3 +======================================================================================= ++ CodeCheck (TM) integrated (source code analysing tool). ++ New key mappings for preprocessor statements. ++ New preprocessor menu. ++ Bugfix: indent under Windows. ++ Minor improvements. + +======================================================================================= + RELEASE NOTES FOR VERSION 4.2.1 +======================================================================================= ++ Bugfix: change needed for some menu names after patch 7.0.054 . + +======================================================================================= + RELEASE NOTES FOR VERSION 4.2 +======================================================================================= ++ Setting the starting column for trailing comments improved. ++ Small bug in block uncommenting fixed. ++ Mac OS X : circumvent a Vim bug which caused a crash when loading plugin version 4.1. ++ File syntax/c.vim removed (but see help in csupport.txt). + +======================================================================================= + RELEASE NOTES FOR VERSION 4.1 +======================================================================================= ++ A complete switch statement can be made from a list of labels. ++ Additional cases can be made from a list of labels. ++ Small bug in line end commenting fixed. ++ Some minor improvements. + +======================================================================================= + RELEASE NOTES FOR VERSION 4.0 +======================================================================================= + ++ Kernighan & Ritchie style for block statements can be enabled. ++ Changes to make it compatible with Vim 7. ++ Set C/C++ file type for source files which should not be preprocessed (*.i, *.ii). ++ Some minor improvements. + +======================================================================================= + RELEASE NOTES FOR VERSION 3.11 +======================================================================================= + ++ Hotkeys and an accompanying reference card added. ++ Preparation for syntax based folding. ++ Some minor improvements. + +======================================================================================= + RELEASE NOTES FOR VERSION 3.10 +======================================================================================= + ++ Remove "#if 0 ... #endif" from the inside. ++ Change C comments to C++ comments and vice versa. ++ try..catch / catch / catch(...) now can be set surround a marked area. ++ Prototype picking improved (for C++). ++ A hardcopy shows the localized date and time in the header line. ++ New help menu entry in the main menu of this plugin (shows the plugin documentation). ++ Switch between corresponding source and header files with <S-F2> if the plugin a.vim + is present. ++ Plugin can be used with autocompletion for (, [, and { . + +======================================================================================= + RELEASE NOTES FOR VERSION 3.9.1 +======================================================================================= + ++ Doubling of file header for new c- and h-files under Windows fixed (Thanks to + Fabricio C A Oliveira). ++ Tiny bug in the file open idioms fixed. + +======================================================================================= + RELEASE NOTES FOR VERSION 3.9 +======================================================================================= + ++ Formatter 'indent' integrated. ++ Bugfix in the automatic header insertion. ++ Assert idiom added. ++ #if 0 ... #endif statement for blocking out code added. ++ Minor stylistic improvements in some idioms. + +======================================================================================= + RELEASE NOTES FOR VERSION 3.8.2 +======================================================================================= + ++ Screen update problem solved: color inversion under FC4 (Thanks to Bernie Barton). ++ RTTI menu : additional v-mode. ++ Statement menu and C++ menu rearranged. ++ Include guard : name generation improved. ++ File header templates will be included for additional file extensions (cp, cxx, c++, ...). + +======================================================================================= + RELEASE NOTES FOR VERSION 3.8.1 +======================================================================================= + ++ More C++ output manipulators, manipulator insertion more intuitive. ++ Output into buffer: cursor goes to top of file. ++ Makefile template improved (code snippet). ++ Some internal improvements. + +======================================================================================= + RELEASE NOTES FOR VERSION 3.8 +======================================================================================= + ++ Windows support. Most features are now available under Windows. + +======================================================================================= + RELEASE NOTES FOR VERSION 3.7.2 +======================================================================================= + ++ Run buffer through splint (A tool for statically checking C programs; see + http://www.splint.org). An error window will be opened; quickfix commands can be used. ++ Set buffer related command line arguments for splint. ++ Line end comments start in a fixed column (can be set from the menu). ++ Spaces in path names and file names are now possible. ++ Template files and snippet files are no longer kept in the list of alternate files. ++ Some minor improvements. + +======================================================================================= + RELEASE NOTES FOR VERSION 3.7.1 +======================================================================================= + ++ Bug fixed (command line arguments not passed to the executable). ++ File extension for executables can be set. ++ Minor improvements. + +======================================================================================= + RELEASE NOTES FOR VERSION 3.7 +======================================================================================= + ++ Running a program: + (1) Run program from the gVim command line. + (2) Run program and direct the output into a window with name "C-Output". + This buffer and its content will disappear when closing the window. + The buffer is reused when still open. + (3) Run program in an xterm (adjustable). ++ Command line arguments are now buffer related (each buffer can have its own arguments). ++ Code snippets can be protected from being indented during insertion. ++ Picked up prototypes will be deleted after insertion. ++ A code snippet with the file name extension "ni" or "noindent" will not be + indented on insertion. ++ for- and calloc-/malloc-idioms improved. ++ Bug fixed (word list handling). + + +======================================================================================= + RELEASE NOTES FOR VERSION 3.6 +======================================================================================= + ++ Installation simplified. ++ for-loop-idiom asks for control variable, initial value, ... ++ malloc-idiom asks for pointer variable and size. ++ Toggling the comment style works correct again. ++ Empty error windows will be closed. ++ Prototype picker removes trailing parts of the function body if marked. ++ The dialog windows (GUI) have been replaced by more flexible command line inputs. ++ The undocumented and unnecessary hot key F12 has been removed. ++ Extension to ctags + taglist shows makefile targets and qmake targets. + +======================================================================================= + RELEASE NOTES FOR VERSION 3.5 +======================================================================================= + ++ Aligned line end comments for consecutive lines. ++ Improved prototype picker removes comments. ++ Picked up prototypes can be shown. ++ Uncomment more than one block at once. ++ 3 new idioms. ++ Help file improved . + +======================================================================================= + RELEASE NOTES FOR VERSION 3.4 +======================================================================================= + ++ Two new global variables: C_Dictionary_File, C_MenuHeader . ++ The preprocessor statements #if... and the function idiom include marked + lines when invoked in visual mode. + +======================================================================================= + RELEASE NOTES FOR VERSION 3.3 +======================================================================================= + ++ The C/C++ root menu can be disabled. + +======================================================================================= + RELEASE NOTES FOR VERSION 3.2 +======================================================================================= + ++ Only one C/C++ entry in the gVim root menu. ++ All hotkeys are only defined for C/C++ files (file type plugin added). ++ The following constructs are now read as templates from files: + class, class using new, + template class, template class using new, + error class ++ Install script added. ++ Customization improved. ++ Documentation improved (help file added). ++ Bug fix (template file handling) + +======================================================================================= + RELEASE NOTES FOR VERSION 3.1 +======================================================================================= + ++ When the comment style "C" is active the menu entry "Comments.code->comment" + turns a marked region in one multiline C-comment. ++ The menu entry "Comments.comment->code" turns marked multiline C-comment + back into code. ++ A marked region can be surrounded by a for-, if, if-else, while-, do-while-statement + (with indentation). ++ The menu entry "Snippets.make prototype" makes a C- or C++-prototype from + the current line or marked region and puts it in an internal buffer. ++ The menu entry "Snippets.add prototype" also makes a C- or C++-prototype from + the current line or a marked region and adds it to the internal buffer. ++ The menu entry "Snippets.put prototype" inserts all gathered prototypes + below the current line. ++ Tag substitution rewritten (Some characters in a substitution text for a tag + prevented the tag from being substituted). + +======================================================================================= + RELEASE NOTES FOR VERSION 3.0 +======================================================================================= + ++ C-style comments AND C++-style comments are supported now. ++ The menu entry 'Comments->Comment style ..' switches the styles (toggle). ++ Block comments are now read as templates or skeletons from files: + Frame Block, Function Description, Method Description, + Class Description, H+file header, C/C++-file header ++ These templates can contain tags like |FILENAME|, |AUTHOR| etc. which are replaced + after reading (KDevelop templates can be used without any change). ++ indentation: multiline inserts and code snippets will be indented after insertion. ++ Most menu entries are now also active in normal mode. ++ new menu items: + includes for the C99 header, + includes for the standard C++ header, + includes for the C++ version of the Standard C Library header, + multiline C comment + vim modeline ++ Reading the templates is done in one function which can be called in an autocmd. ++ Code cleanup: register z no longer used. Most function calls are silent now. + + diff --git a/.vim/c-support/doc/c-hotkeys.pdf b/.vim/c-support/doc/c-hotkeys.pdf Binary files differnew file mode 100644 index 0000000..07a6c7c --- /dev/null +++ b/.vim/c-support/doc/c-hotkeys.pdf diff --git a/.vim/c-support/rc/customization.ctags b/.vim/c-support/rc/customization.ctags new file mode 100644 index 0000000..75ccd5a --- /dev/null +++ b/.vim/c-support/rc/customization.ctags @@ -0,0 +1,7 @@ + +--regex-make=/^([^:# \t]+)[ \t]*[:]{1,2}/\1/t,targets/ + +--langdef=qmake +--langmap=qmake:+.pro +--regex-qmake=/^([[:upper:]_]+)/\1/t,SystemVariables/ + diff --git a/.vim/c-support/rc/customization.gvimrc b/.vim/c-support/rc/customization.gvimrc new file mode 100644 index 0000000..ff3d690 --- /dev/null +++ b/.vim/c-support/rc/customization.gvimrc @@ -0,0 +1,44 @@ +" +"=============================================================================== +"========== example gvimrc from the distribution ============================== +"=============================================================================== +" +runtime gvimrc_example.vim +" +" +"=============================================================================== +"========== CUSTOMIZATION (gvimrc) =========================================== +"=============================================================================== +" +"------------------------------------------------------------------------------- +" Moving cursor to other windows +" +" shift down : change window focus to lower one (cyclic) +" shift up : change window focus to upper one (cyclic) +" shift left : change window focus to one on left +" shift right : change window focus to one on right +"------------------------------------------------------------------------------- +" +nmap <s-down> <c-w>w +nmap <s-up> <c-w>W +nmap <s-left> <c-w>h +nmap <s-right> <c-w>l +" +" +"------------------------------------------------------------------------------- +" some additional hot keys +"------------------------------------------------------------------------------- +" S-F3 - call gvim file browser +"------------------------------------------------------------------------------- +" + map <silent> <s-F3> :silent browse confirm e<CR> +imap <silent> <s-F3> <Esc>:silent browse confirm e<CR> +" +" +"------------------------------------------------------------------------------- +" toggle insert mode <--> 'normal mode with the <RightMouse>-key +"------------------------------------------------------------------------------- +" +nmap <RightMouse> <Insert> +imap <RightMouse> <ESC> +" diff --git a/.vim/c-support/rc/customization.indent.pro b/.vim/c-support/rc/customization.indent.pro new file mode 100644 index 0000000..95f6081 --- /dev/null +++ b/.vim/c-support/rc/customization.indent.pro @@ -0,0 +1,8 @@ +--blank-lines-after-procedures +--brace-indent0 +--comment-indentation49 +--declaration-comment-column49 +--declaration-indentation10 +--space-after-parentheses +--swallow-optional-blank-lines +--tab-size2 diff --git a/.vim/c-support/rc/customization.vimrc b/.vim/c-support/rc/customization.vimrc new file mode 100644 index 0000000..f9ab5a7 --- /dev/null +++ b/.vim/c-support/rc/customization.vimrc @@ -0,0 +1,149 @@ +" +"=============================================================================== +"========== load example vimrc from the distribution ========================= +"=============================================================================== +" +runtime vimrc_example.vim +" +filetype plugin on +" +"=============================================================================== +"========== CUSTOMIZATION (vimrc) ============================================ +"=============================================================================== +" +" Platform specific items: +" - central backup directory (has to be created) +" - default dictionary +" Uncomment your choice. +if has("win16") || has("win32") || has("win64") || + \ has("win95") || has("win32unix") + " +" runtime mswin.vim +" set backupdir =$VIM\vimfiles\backupdir +" set dictionary=$VIM\vimfiles\wordlists/german.list +else +" set backupdir =$HOME/.vim.backupdir +" set dictionary=$HOME/.vim/wordlists/german.list +endif +" +" Using a backupdir under UNIX/Linux: you may want to include a line similar to +" find $HOME/.vim.backupdir -name "*" -type f -mtime +60 -exec rm -f {} \; +" in one of your shell startup files (e.g. $HOME/.profile) +" +"------------------------------------------------------------------------------- +" Use of dictionaries +"------------------------------------------------------------------------------- +" +set complete+=k " scan the files given with the 'dictionary' option +" +"------------------------------------------------------------------------------- +" Various settings +"------------------------------------------------------------------------------- +" +set autoread " read open files again when changed outside Vim +set autowrite " write a modified buffer on each :next , ... +set browsedir =current " which directory to use for the file browser +set incsearch " use incremental search +set nowrap " do not wrap lines +set shiftwidth =2 " number of spaces to use for each step of indent +set tabstop =2 " number of spaces that a <Tab> in the file counts for +set visualbell " visual bell instead of beeping +" +" +"------------------------------------------------------------------------------- +" some additional hot keys +"------------------------------------------------------------------------------- +" F2 - write file without confirmation +" F3 - call file explorer Ex +" F4 - show tag under curser in the preview window (tagfile must exist!) +" F5 - open quickfix error window +" F6 - close quickfix error window +" F7 - display previous error +" F8 - display next error +" S-Tab - Fast switching between buffers (see below) +" C-q - Leave the editor with Ctrl-q (see below) +"------------------------------------------------------------------------------- +" +map <silent> <F2> :write<CR> +map <silent> <F3> :Explore<CR> +nmap <silent> <F4> :exe ":ptag ".expand("<cword>")<CR> +map <silent> <F5> :copen<CR> +map <silent> <F6> :cclose<CR> +map <silent> <F7> :cp<CR> +map <silent> <F8> :cn<CR> +" +imap <silent> <F2> <Esc>:write<CR> +imap <silent> <F3> <Esc>:Explore<CR> +imap <silent> <F4> <Esc>:exe ":ptag ".expand("<cword>")<CR> +imap <silent> <F5> <Esc>:copen<CR> +imap <silent> <F6> <Esc>:cclose<CR> +imap <silent> <F7> <Esc>:cp<CR> +imap <silent> <F8> <Esc>:cn<CR> +" +"------------------------------------------------------------------------------- +" Fast switching between buffers +" The current buffer will be saved before switching to the next one. +" Choose :bprevious or :bnext +"------------------------------------------------------------------------------- +" + map <silent> <s-tab> <Esc>:if &modifiable && !&readonly && + \ &modified <CR> :write<CR> :endif<CR>:bprevious<CR> +imap <silent> <s-tab> <Esc>:if &modifiable && !&readonly && + \ &modified <CR> :write<CR> :endif<CR>:bprevious<CR> +" +"------------------------------------------------------------------------------- +" Leave the editor with Ctrl-q : Write all changed buffers and exit Vim +"------------------------------------------------------------------------------- +nmap <C-q> :wqa<CR> +" +"------------------------------------------------------------------------------- +" autocomplete parenthesis, brackets and braces +"------------------------------------------------------------------------------- +inoremap ( ()<Left> +inoremap [ []<Left> +inoremap { {}<Left> +" +vnoremap ( s()<Esc>P<Right>% +vnoremap [ s[]<Esc>P<Right>% +vnoremap { s{}<Esc>P<Right>% +" +"------------------------------------------------------------------------------- +" Change the working directory to the directory containing the current file +"------------------------------------------------------------------------------- +if has("autocmd") + autocmd BufEnter * :lchdir %:p:h +endif " has("autocmd") +" +"------------------------------------------------------------------------------- +" Filename completion +" +" wildmenu : command-line completion operates in an enhanced mode +" wildignore : A file that matches with one of these +" patterns is ignored when completing file or directory names. +"------------------------------------------------------------------------------- +" +set wildmenu +set wildignore=*.bak,*.o,*.e,*~ +" +"------------------------------------------------------------------------------- +" print options (pc = percentage of the media size) +"------------------------------------------------------------------------------- +set printoptions=left:8pc,right:3pc +" +"------------------------------------------------------------------------------- +" taglist.vim : toggle the taglist window +" taglist.vim : define the title texts for make +" taglist.vim : define the title texts for qmake +"------------------------------------------------------------------------------- + noremap <silent> <F11> <Esc><Esc>:Tlist<CR> +inoremap <silent> <F11> <Esc><Esc>:Tlist<CR> + +let tlist_make_settings = 'make;m:makros;t:targets' + +let tlist_qmake_settings = 'qmake;t:SystemVariables' + +if has("autocmd") + " ---------- qmake : set filetype for *.pro ---------- + autocmd BufNewFile,BufRead *.pro set filetype=qmake +endif " has("autocmd") + diff --git a/.vim/c-support/scripts/wrapper.sh b/.vim/c-support/scripts/wrapper.sh new file mode 100644 index 0000000..55d9961 --- /dev/null +++ b/.vim/c-support/scripts/wrapper.sh @@ -0,0 +1,34 @@ +#!/bin/bash +#=============================================================================== +# FILE: wrapper.sh +# USAGE: ./wrapper.sh executable [cmd-line-args] +# DESCRIPTION: Wraps the execution of a programm or script. +# Use with xterm: xterm -e wrapper.sh executable cmd-line-args +# This script is used by several plugins: +# bash-support.vim, c.vim and perl-support.vim +# OPTIONS: --- +# REQUIREMENTS: which(1) - shows the full path of (shell) commands. +# BUGS: --- +# NOTES: --- +# AUTHOR: Dr.-Ing. Fritz Mehner (Mn), mehner@fh-swf.de +# COMPANY: Fachhochschule Südwestfalen, Iserlohn +# CREATED: 23.11.2004 18:04:01 CET +# REVISION: $Id: wrapper.sh,v 1.3 2007/10/03 09:06:09 mehner Exp $ +#=============================================================================== + +command=${@} # the complete command line +executable=${1} # name of the executable; may be quoted + +fullname=$(which $executable) +[ $? -eq 0 ] && executable=$fullname + +if [ ${#} -ge 1 ] && [ -x "$executable" ] +then + shift + "$executable" ${@} + echo -e "> \"${command}\" returned ${?}" +else + echo -e "\n !! file \"${executable}\" does not exist or is not executable !!" +fi +echo -e " ... press return key ... " +read dummy diff --git a/.vim/c-support/syntax/c.vim b/.vim/c-support/syntax/c.vim new file mode 100644 index 0000000..395e0d9 --- /dev/null +++ b/.vim/c-support/syntax/c.vim @@ -0,0 +1,21 @@ +"=================================================================================== +" +" FILE: c.vim +" DESCRIPTION: syntax file +" enable syntax based folding +" part of the c-support plugin +" +" AUTHOR: Dr.-Ing. Fritz Mehner +" EMAIL: mehner@fh-swf.de +" COMPANY: FH Südwestfalen, Iserlohn +" VERSION: 1.0 +" CREATED: 11.03.2006 +" REVISION: --- +"=================================================================================== +" +" fold C blocks +" +syn region cBlock start="{" end="}" transparent fold +set foldmethod=syntax +set foldlevel=999 + diff --git a/.vim/c-support/templates/Templates b/.vim/c-support/templates/Templates new file mode 100644 index 0000000..9aa86fc --- /dev/null +++ b/.vim/c-support/templates/Templates @@ -0,0 +1,26 @@ +$ +$ ============================================================= +$ ========== USER MACROS ====================================== +$ ============================================================= +$ +|AUTHOR| = Ryan Kavanagh +|AUTHORREF| = ryanakca +|EMAIL| = ryanakca@kubuntu.org +|COPYRIGHT| = Copyright (c) 2008 Ryan Kavanagh +|LICENSE| = GNU GPL v2 +$ +$ ============================================================= +$ ========== FILE INCLUDES ==================================== +$ ============================================================= +$ +|includefile| = c.comments.template +|includefile| = c.cpp.template +|includefile| = c.idioms.template +|includefile| = c.preprocessor.template +|includefile| = c.statements.template + +$|includefile| = cpp.comments.template +$|includefile| = cpp.cpp.template +$|includefile| = cpp.idioms.template +$|includefile| = cpp.preprocessor.template +$|includefile| = cpp.statements.template diff --git a/.vim/c-support/templates/c.comments.template b/.vim/c-support/templates/c.comments.template new file mode 100644 index 0000000..8080968 --- /dev/null +++ b/.vim/c-support/templates/c.comments.template @@ -0,0 +1,147 @@ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.end-of-line-comment == append == +/* <CURSOR> */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.frame == +/*-------------------------------------------------------------------------- + * <CURSOR> + *------------------------------------------------------------------------*/ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.function == +/* + * === FUNCTION ========================================================== + * Name: |?FUNCTION_NAME| + * Description: <CURSOR> + * ========================================================================= + */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.method == +/* + *-------------------------------------------------------------------------- + * Class: |?CLASSNAME| + * Method: |?METHODNAME| + * Description: <CURSOR> + *-------------------------------------------------------------------------- + */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.class == +/* + * ========================================================================= + * Class: |?CLASSNAME| + * Description: <CURSOR> + * ========================================================================= + */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-description == start == +/* + * ========================================================================= + * + * Filename: |FILENAME| + * + * Description: <CURSOR> + * + * Version: 1.0 + * Created: |DATE| |TIME| + * Revision: none + * Compiler: gcc + * + * Author: |AUTHOR| (|AUTHORREF|), |EMAIL| + * License: |LICENSE| + * + * ========================================================================= + */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.keyword-bug == append == + /* :BUG:|DATE| |TIME|:|AUTHORREF|: <CURSOR> */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.keyword-compiler == append == + /* :COMPILER:|DATE| |TIME|:|AUTHORREF|: <CURSOR> */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.keyword-todo == append == + /* :TODO:|DATE| |TIME|:|AUTHORREF|: <CURSOR> */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.keyword-tricky == append == + /* :TRICKY:|DATE| |TIME|:|AUTHORREF|: <CURSOR> */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.keyword-warning == append == + /* :WARNING:|DATE| |TIME|:|AUTHORREF|: <CURSOR> */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.keyword-workaround == append == + /* :WORKAROUND:|DATE| |TIME|:|AUTHORREF|: <CURSOR> */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.keyword-keyword == append == + /* :|?KEYWORD:u|:|DATE| |TIME|:|AUTHORREF|: <CURSOR> */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-header-includes == +/* ##### HEADER FILE INCLUDES ################################################### */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-macros == +/* ##### MACROS - LOCAL TO THIS SOURCE FILE ################################### */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-typedefs == +/* ##### TYPE DEFINITIONS - LOCAL TO THIS SOURCE FILE ######################### */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-data-types == +/* ##### DATA TYPES - LOCAL TO THIS SOURCE FILE ############################### */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-class-defs == +/* ##### CLASS DEFINITIONS - LOCAL TO THIS SOURCE FILE ######################## */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-local-variables == +/* ##### VARIABLES - LOCAL TO THIS SOURCE FILE ################################ */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-prototypes == +/* ##### PROTOTYPES - LOCAL TO THIS SOURCE FILE ############################### */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-function-defs-exported == +/* ##### FUNCTION DEFINITIONS - EXPORTED FUNCTIONS ############################ */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-function-defs-local == +/* ##### FUNCTION DEFINITIONS - LOCAL TO THIS SOURCE FILE ##################### */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-class-implementations-exported == +/* ##### CLASS IMPLEMENTATIONS - EXPORTED CLASSES ############################# */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-class-implementations-local == +/* ##### CLASS IMPLEMENTATIONS - LOCAL CLASSES ################################ */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-hpp-header-includes == +/* ##### HEADER FILE INCLUDES ################################################### */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-hpp-macros == +/* ##### EXPORTED MACROS ######################################################## */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-hpp-exported-typedefs == +/* ##### EXPORTED TYPE DEFINITIONS ############################################## */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-hpp-exported-data-types == +/* ##### EXPORTED DATA TYPES #################################################### */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-hpp-exported-class-defs == +/* ##### EXPORTED CLASS DEFINITIONS ############################################# */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-hpp-exported-variables == +/* ##### EXPORTED VARIABLES ##################################################### */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-hpp-exported-function-declarations == +/* ##### EXPORTED FUNCTION DECLARATIONS ######################################### */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/.vim/c-support/templates/c.cpp.template b/.vim/c-support/templates/c.cpp.template new file mode 100644 index 0000000..ce15421 --- /dev/null +++ b/.vim/c-support/templates/c.cpp.template @@ -0,0 +1,353 @@ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.method-implementation == +<CURSOR>void +|?CLASSNAME|::|?METHODNAME| ( ) +{ + return ; +} /* ----- end of method |CLASSNAME|::|?METHODNAME| ----- */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.class == +/* + * ===================================================================================== + * Class: |?CLASSNAME:c| + * Description: <CURSOR> + * ===================================================================================== + */ +class |CLASSNAME| +{ + public: + /* ==================== LIFECYCLE ======================================= */ + |CLASSNAME| (); /* constructor */ + + /* ==================== OPERATORS ======================================= */ + + /* ==================== OPERATIONS ======================================= */ + + /* ==================== ACCESS ======================================= */ + + /* ==================== INQUIRY ======================================= */ + + /* ==================== DATA MEMBERS ======================================= */ + protected: + + private: + +}; /* ----- end of class |CLASSNAME| ----- */ + +/* + *-------------------------------------------------------------------------------------- + * Class: |CLASSNAME| + * Method: |CLASSNAME| + * Description: constructor + *-------------------------------------------------------------------------------------- + */ +|CLASSNAME|::|CLASSNAME| () +{ +} /* ----- end of method |CLASSNAME|::|CLASSNAME| (constructor) ----- */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.class-using-new == +/* + * ===================================================================================== + * Class: |?CLASSNAME:c| + * Description: <CURSOR> + * ===================================================================================== + */ +class |CLASSNAME| +{ + public: + + /* ==================== LIFECYCLE ======================================= */ + |CLASSNAME| (); /* constructor */ + |CLASSNAME| ( const |CLASSNAME| &other ); /* copy constructor */ + ~|CLASSNAME| (); /* destructor */ + + /* ==================== OPERATORS ======================================= */ + const |CLASSNAME|& operator = ( const |CLASSNAME| &other ); /* assignment operator */ + + /* ==================== OPERATIONS ======================================= */ + + /* ==================== ACCESS ======================================= */ + + /* ==================== INQUIRY ======================================= */ + + /* ==================== DATA MEMBERS ======================================= */ + protected: + + private: + +}; /* ----- end of class |CLASSNAME| ----- */ + +/* + *-------------------------------------------------------------------------------------- + * Class: |CLASSNAME| + * Method: |CLASSNAME| + * Description: constructor + *-------------------------------------------------------------------------------------- + */ +|CLASSNAME|::|CLASSNAME| () +{ +} /* ----- end of method |CLASSNAME|::|CLASSNAME| (constructor) ----- */ + +/* + *-------------------------------------------------------------------------------------- + * Class: |CLASSNAME| + * Method: |CLASSNAME| + * Description: copy constructor + *-------------------------------------------------------------------------------------- + */ +|CLASSNAME|::|CLASSNAME| ( const |CLASSNAME| &other ) +{ +} /* ----- end of method |CLASSNAME|::|CLASSNAME| (copy constructor) ----- */ + +/* + *-------------------------------------------------------------------------------------- + * Class: |CLASSNAME| + * Method: ~|CLASSNAME| + * Description: destructor + *-------------------------------------------------------------------------------------- + */ +|CLASSNAME|::~|CLASSNAME| () +{ +} /* ----- end of method |CLASSNAME|::~|CLASSNAME| (destructor) ----- */ + +/* + *-------------------------------------------------------------------------------------- + * Class: |CLASSNAME| + * Method: operator = + * Description: assignment operator + *-------------------------------------------------------------------------------------- + */ +const |CLASSNAME|& +|CLASSNAME|::operator = ( const |CLASSNAME| &other ) +{ + if ( this != &other ) { + } + return *this; +} /* ----- end of method |CLASSNAME|::operator = (assignment operator) ----- */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.error-class == +/* + * ===================================================================================== + * Class: |?CLASSNAME:c| + * Description: <CURSOR> + * ===================================================================================== + */ +class |CLASSNAME| +{ + public: |CLASSNAME| ( char *msg ):message(msg) { } + virtual ~|CLASSNAME| ( ) { } + virtual const char* what ( ) const throw ( ) { return message; } + protected: char *message; +}; /* ----- end of class |CLASSNAME| ----- */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.template-method-implementation == +template < class T > +void<CURSOR> |?CLASSNAME|<T>::|?METHODNAME| ( ) +{ + return ; +} /* ----- end of method |CLASSNAME|<T>::|METHODNAME| ----- */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.template-class == +/* + * ===================================================================================== + * Class: |?CLASSNAME:c| + * Description: <CURSOR> + * ===================================================================================== + */ +template < class T > +class |CLASSNAME| +{ + public: + + /* ==================== LIFECYCLE ======================================= */ + |CLASSNAME| (); /* constructor */ + + /* ==================== OPERATORS ======================================= */ + + /* ==================== OPERATIONS ======================================= */ + + /* ==================== ACCESS ======================================= */ + + /* ==================== INQUIRY ======================================= */ + + /* ==================== DATA MEMBERS ======================================= */ + protected: + + private: + +}; /* ---------- end of template class |CLASSNAME| ---------- */ + +/* + *-------------------------------------------------------------------------------------- + * Class: |CLASSNAME| + * Method: |CLASSNAME| + * Description: + *-------------------------------------------------------------------------------------- + */ +template < class T > +|CLASSNAME| < T >::|CLASSNAME| () +{ +} /* ---------- end of constructor of template class |CLASSNAME| ---------- */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.template-class-using-new == +/* + * ===================================================================================== + * Class: |?CLASSNAME:c| + * Description: <CURSOR> + * ===================================================================================== + */ +template < class T > +class |CLASSNAME| +{ + public: + + /* ==================== LIFECYCLE ======================================= */ + |CLASSNAME| (); /* constructor */ + |CLASSNAME| (const |CLASSNAME| &other); /* copy constructor */ + ~|CLASSNAME| (); /* destructor */ + + /* ==================== OPERATORS ======================================= */ + const |CLASSNAME|& operator = ( const |CLASSNAME| &other ); /* assignment operator */ + + /* ==================== OPERATIONS ======================================= */ + + /* ==================== ACCESS ======================================= */ + + /* ==================== INQUIRY ======================================= */ + + /* ==================== DATA MEMBERS ======================================= */ + protected: + + private: + +}; /* ---------- end of template class |CLASSNAME| ---------- */ + +/* + *-------------------------------------------------------------------------------------- + * Class: |CLASSNAME| + * Method: |CLASSNAME| + * Description: constructor + *-------------------------------------------------------------------------------------- + */ +template < class T > +|CLASSNAME|< T >::|CLASSNAME| () +{ +} /* ---------- end of constructor of template class |CLASSNAME| ---------- */ + +/* + *-------------------------------------------------------------------------------------- + * Class: |CLASSNAME| + * Method: |CLASSNAME| + * Description: copy constructor + *-------------------------------------------------------------------------------------- + */ +template < class T > +|CLASSNAME|< T >::|CLASSNAME| ( const |CLASSNAME| &other ) +{ +} /* ---------- end of copy constructor of template class |CLASSNAME| ---------- */ + +/* + *-------------------------------------------------------------------------------------- + * Class: |CLASSNAME| + * Method: ~|CLASSNAME| + * Description: destructor + *-------------------------------------------------------------------------------------- + */ +template < class T > +|CLASSNAME|< T >::~|CLASSNAME| () +{ +} /* ---------- end of destructor of template class |CLASSNAME| ---------- */ + +/* + *-------------------------------------------------------------------------------------- + * Class: |CLASSNAME| + * Method: operator = + * Description: assignment operator + *-------------------------------------------------------------------------------------- + */ +template < class T > +const |CLASSNAME|< T >& |CLASSNAME|< T >::operator = ( const |CLASSNAME| &other ) +{ + return *this; +} /* ---------- end of assignment operator of template class |CLASSNAME| ---------- */ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.template-function == +template <class T> +<CURSOR>void |?TEMPALTE_FUNCTION_NAME| ( T param ) +{ + return ; +} /* ----- end of template function |?TEMPALTE_FUNCTION_NAME| ----- */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.operator-in == +ostream & +operator << ( ostream & os, const |?CLASSNAME| & obj ) +{ + os << obj.<CURSOR> ; + return os; +} /* ----- end of function operator << ----- */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.operator-out == +istream & +operator >> ( istream & is, |?CLASSNAME| & obj ) +{ + is >> obj.<CURSOR> ; + return is; +} /* ----- end of function operator >> ----- */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.try-catch == +try {<CURSOR> +<SPLIT>} +catch ( const &ExceptObj ) { /* handle exception: */ +} +catch (...) { /* handle exception: unspezified */ +} + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.catch == +catch ( <CURSOR>const &ExceptObj ) { /* handle exception: */ +<SPLIT>} +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.catch-points == +catch (...) { /* handle exception: */ +<SPLIT>} +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.extern == +extern "C" {<CURSOR> +<SPLIT>} +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.open-input-file == +char *ifs_file_name = "<CURSOR>"; /* input file name */ +ifstream ifs; /* create ifstream object */ + +ifs.open (ifs_file_name); /* open ifstream */ +if (!ifs) { + cerr << "\nERROR : failed to open input file " << ifs_file_name << endl; + exit (EXIT_FAILURE); +} + + +ifs.close (); /* close ifstream */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.open-output-file == +char *ofs_file_name = "<CURSOR>"; /* output file name */ +ofstream ofs; /* create ofstream object */ + +ofs.open (ofs_file_name); /* open ofstream */ +if (!ofs) { + cerr << "\nERROR : failed to open output file " << ofs_file_name << endl; + exit (EXIT_FAILURE); +} + + +ofs.close (); /* close ofstream */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.namespace == +namespace |?NAMESPACE| +{<CURSOR> +<SPLIT>} /* ----- end of |NAMESPACE| name ----- */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/.vim/c-support/templates/c.idioms.template b/.vim/c-support/templates/c.idioms.template new file mode 100644 index 0000000..09bc0b7 --- /dev/null +++ b/.vim/c-support/templates/c.idioms.template @@ -0,0 +1,98 @@ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.function == +void<CURSOR> +|?FUNCTION_NAME| ( ) +{ +<SPLIT> return ; +} /* ----- end of function |FUNCTION_NAME| ----- */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.function-static == +static void<CURSOR> +|?FUNCTION_NAME| ( ) +{ +<SPLIT> return ; +} /* ----- end of static function |FUNCTION_NAME| ----- */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.main == +int +main ( int argc, char *argv[] ) +{<CURSOR> +<SPLIT> return EXIT_SUCCESS; +} /* ---------- end of function main ---------- */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.enum == +enum |?ENUM_NAME| {<CURSOR> +<SPLIT>}; /* ---------- end of enum |ENUM_NAME| ---------- */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.struct == +struct |?STRUCT_NAME| {<CURSOR> +<SPLIT>}; /* ---------- end of struct |STRUCT_NAME| ---------- */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.union == +union |?UNION_NAME| {<CURSOR> +<SPLIT>}; /* ---------- end of union |UNION_NAME| ---------- */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.calloc == +|?POINTER| = (<CURSOR>TYPE*)calloc ( (size_t)(COUNT), sizeof(TYPE) ); +if ( |POINTER|==NULL ) { + fprintf ( stderr, "\ndynamic memory allocation failed\n" ); + exit (EXIT_FAILURE); +} + +free (|POINTER|); + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.malloc == +|?POINTER| = (<CURSOR>TYPE*)malloc ( sizeof(TYPE) ); +if ( |POINTER|==NULL ) { + fprintf ( stderr, "\ndynamic memory allocation failed\n" ); + exit (EXIT_FAILURE); +} + +free (|POINTER|); + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.open-input-file == +FILE *|?FILEPOINTER|; /* input-file pointer */ +char *|FILEPOINTER|_file_name = "<CURSOR>"; /* input-file name */ + +|FILEPOINTER| = fopen( |FILEPOINTER|_file_name, "r" ); +if ( |FILEPOINTER| == NULL ) { + fprintf ( stderr, "couldn't open file '%s'; %s\n", + |FILEPOINTER|_file_name, strerror(errno) ); + exit (EXIT_FAILURE); +} + + +if( fclose(|FILEPOINTER|) == EOF ) { /* close input file */ + fprintf ( stderr, "couldn't close file '%s'; %s\n", + |FILEPOINTER|_file_name, strerror(errno) ); + exit (EXIT_FAILURE); +} + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.open-output-file == +FILE *|?FILEPOINTER|; /* output-file pointer */ +char *|FILEPOINTER|_file_name = "<CURSOR>"; /* output-file name */ + +|FILEPOINTER| = fopen( |FILEPOINTER|_file_name, "w" ); +if ( |FILEPOINTER| == NULL ) { + fprintf ( stderr, "couldn't open file '%s'; %s\n", + |FILEPOINTER|_file_name, strerror(errno) ); + exit (EXIT_FAILURE); +} + + +if( fclose(|FILEPOINTER|) == EOF ) { /* close output file */ + fprintf ( stderr, "couldn't close file '%s'; %s\n", + |FILEPOINTER|_file_name, strerror(errno) ); + exit (EXIT_FAILURE); +} + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.fprintf == +fprintf ( |?FILEPOINTER|, "<CURSOR>\n", ); +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.fscanf == +fscanf ( |?FILEPOINTER|, "<CURSOR>", & ); +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/.vim/c-support/templates/c.preprocessor.template b/.vim/c-support/templates/c.preprocessor.template new file mode 100644 index 0000000..3ec674a --- /dev/null +++ b/.vim/c-support/templates/c.preprocessor.template @@ -0,0 +1,34 @@ +$------------------------------------------------------------------------- +== preprocessor.define == +#define <CURSOR> /* */ +$------------------------------------------------------------------------- +== preprocessor.undefine == +#undef <CURSOR> /* */ +$------------------------------------------------------------------------- +== preprocessor.if-else-endif == +#if |?CONDITION:u| +<CURSOR><SPLIT> +#else /* ----- not |CONDITION| ----- */ + +#endif /* ----- not |CONDITION| ----- */ +$------------------------------------------------------------------------- +== preprocessor.ifdef-else-endif == +#ifdef |?CONDITION:u| +<CURSOR><SPLIT> +#else /* ----- not |CONDITION| ----- */ + +#endif /* ----- not |CONDITION| ----- */ +$------------------------------------------------------------------------- +== preprocessor.ifndef-else-endif == +#ifndef |?CONDITION:u| +<CURSOR><SPLIT> +#else /* ----- not |CONDITION| ----- */ + +#endif /* ----- not |CONDITION| ----- */ +$------------------------------------------------------------------------- +== preprocessor.ifndef-def-endif == +#ifndef |?BASENAME:L|_INC +#define |BASENAME|_INC +<CURSOR><SPLIT> +#endif /* ----- #ifndef |BASENAME|_INC ----- */ +$------------------------------------------------------------------------- diff --git a/.vim/c-support/templates/c.statements.template b/.vim/c-support/templates/c.statements.template new file mode 100644 index 0000000..966ae3a --- /dev/null +++ b/.vim/c-support/templates/c.statements.template @@ -0,0 +1,62 @@ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.do-while == +do { +<SPLIT>} while ( <CURSOR> ); /* ----- end do-while ----- */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.for == +for ( <CURSOR>; ; ) +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.for-block == +for ( <CURSOR>; ; ) { +<SPLIT>} +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.if == +if ( <CURSOR> ) +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.if-block == +if ( <CURSOR> ) { +<SPLIT>} +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.if-else == +if ( <CURSOR> ) +<SPLIT>else +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.if-block-else == +if ( <CURSOR> ) { +<SPLIT>} else { +} +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.while == +while ( <CURSOR> ) +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.while-block == +while ( <CURSOR> ) { +<SPLIT>} +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.switch == +switch ( <CURSOR> ) { + case : + <SPLIT>break; + + case : + break; + + case : + break; + + case : + break; + + default: + break; +} /* ----- end switch ----- */ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.case == +case <CURSOR>: +break; + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.block == +{<CURSOR> +<SPLIT>} +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/.vim/c-support/templates/cpp.comments.template b/.vim/c-support/templates/cpp.comments.template new file mode 100644 index 0000000..9929eab --- /dev/null +++ b/.vim/c-support/templates/cpp.comments.template @@ -0,0 +1,139 @@ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.end-of-line-comment == append == +// <CURSOR> +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.frame == +//---------------------------------------------------------------------- +// <CURSOR> +//---------------------------------------------------------------------- +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.function == +// === FUNCTION =========================================================== +// Name: |?FUNCTION_NAME| +// Description: <CURSOR> +// ========================================================================== +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.method == +//--------------------------------------------------------------------------- +// Class: |?CLASSNAME| +// Method: |?METHODNAME| +// Description: <CURSOR> +//--------------------------------------------------------------------------- +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.class == +// ========================================================================== +// Class: |?CLASSNAME| +// Description: <CURSOR> +// ========================================================================== +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-description == start == +// ========================================================================== +// +// Filename: |FILENAME| +// +// Description: <CURSOR> +// +// Version: 1.0 +// Created: |DATE| |TIME| +// Revision: none +// Compiler: g++ +// +// Author: |AUTHOR| (|AUTHORREF|), |EMAIL| +// License: |LICENSE| +// +// ========================================================================== + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.keyword-bug == append == + // :BUG:|DATE| |TIME|:|AUTHORREF|: <CURSOR> +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.keyword-compiler == append == + // :COMPILER:|DATE| |TIME|:|AUTHORREF|: <CURSOR> +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.keyword-todo == append == + // :TODO:|DATE| |TIME|:|AUTHORREF|: <CURSOR> +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.keyword-tricky == append == + // :TRICKY:|DATE| |TIME|:|AUTHORREF|: <CURSOR> +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.keyword-warning == append == + // :WARNING:|DATE| |TIME|:|AUTHORREF|: <CURSOR> +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.keyword-workaround == append == + // :WORKAROUND:|DATE| |TIME|:|AUTHORREF|: <CURSOR> +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.keyword-keyword == append == + // :|?KEYWORD:u|:|DATE| |TIME|:|AUTHORREF|: <CURSOR> +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-header-includes == +// ##### HEADER FILE INCLUDES ################################################### + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-macros == +// ##### MACROS - LOCAL TO THIS SOURCE FILE ################################### + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-typedefs == +// ##### TYPE DEFINITIONS - LOCAL TO THIS SOURCE FILE ######################### + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-data-types == +// ##### DATA TYPES - LOCAL TO THIS SOURCE FILE ############################### + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-class-defs == +// ##### CLASS DEFINITIONS - LOCAL TO THIS SOURCE FILE ######################## + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-local-variables == +// ##### VARIABLES - LOCAL TO THIS SOURCE FILE ################################ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-prototypes == +// ##### PROTOTYPES - LOCAL TO THIS SOURCE FILE ############################### + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-function-defs-exported == +// ##### FUNCTION DEFINITIONS - EXPORTED FUNCTIONS ############################ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-function-defs-local == +// ##### FUNCTION DEFINITIONS - LOCAL TO THIS SOURCE FILE ##################### + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-class-implementations-exported == +// ##### CLASS IMPLEMENTATIONS - EXPORTED CLASSES ############################# + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-cpp-class-implementations-local == +// ##### CLASS IMPLEMENTATIONS - LOCAL CLASSES ################################ + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-hpp-header-includes == +// ##### HEADER FILE INCLUDES ################################################### + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-hpp-macros == +// ##### EXPORTED MACROS ######################################################## + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-hpp-exported-typedefs == +// ##### EXPORTED TYPE DEFINITIONS ############################################## + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-hpp-exported-data-types == +// ##### EXPORTED DATA TYPES #################################################### + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-hpp-exported-class-defs == +// ##### EXPORTED CLASS DEFINITIONS ############################################# + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-hpp-exported-variables == +// ##### EXPORTED VARIABLES ##################################################### + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== comment.file-section-hpp-exported-function-declarations == +// ##### EXPORTED FUNCTION DECLARATIONS ######################################### + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/.vim/c-support/templates/cpp.cpp.template b/.vim/c-support/templates/cpp.cpp.template new file mode 100644 index 0000000..7773989 --- /dev/null +++ b/.vim/c-support/templates/cpp.cpp.template @@ -0,0 +1,329 @@ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.method-implementation == +<CURSOR>void +|?CLASSNAME|::|?METHODNAME| ( ) +{ + return ; +} // ----- end of method |CLASSNAME|::|METHODNAME| ----- +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.class == +// ===================================================================================== +// Class: |?CLASSNAME:c| +// Description: <CURSOR> +// ===================================================================================== +class |CLASSNAME| +{ + public: + + // ==================== LIFECYCLE ======================================= + |CLASSNAME| (); // constructor + + // ==================== OPERATORS ======================================= + + // ==================== OPERATIONS ======================================= + + // ==================== ACCESS ======================================= + + // ==================== INQUIRY ======================================= + + // ==================== DATA MEMBERS ======================================= + protected: + + private: + +}; // ----- end of class |CLASSNAME| ----- + +//-------------------------------------------------------------------------------------- +// Class: |CLASSNAME| +// Method: |CLASSNAME| +// Description: constructor +//-------------------------------------------------------------------------------------- +|CLASSNAME|::|CLASSNAME| () +{ +} // ----- end of method |CLASSNAME|::|CLASSNAME| (constructor) ----- + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.class-using-new == +// ===================================================================================== +// Class: |?CLASSNAME:c| +// Description: <CURSOR> +// ===================================================================================== +class |CLASSNAME| +{ + public: + + // ==================== LIFECYCLE ======================================= + |CLASSNAME| (); // constructor + |CLASSNAME| ( const |CLASSNAME| &other ); // copy constructor + ~|CLASSNAME| (); // destructor + + // ==================== OPERATORS ======================================= + const |CLASSNAME|& operator = ( const |CLASSNAME| &other ); // assignment operator + + // ==================== OPERATIONS ======================================= + + // ==================== ACCESS ======================================= + + // ==================== INQUIRY ======================================= + + // ==================== DATA MEMBERS ======================================= + protected: + + private: + +}; // ----- end of class |CLASSNAME| ----- + +//-------------------------------------------------------------------------------------- +// Class: |CLASSNAME| +// Method: |CLASSNAME| +// Description: constructor +//-------------------------------------------------------------------------------------- +|CLASSNAME|::|CLASSNAME| () +{ +} // ----- end of method |CLASSNAME|::|CLASSNAME| (constructor) ----- + +//-------------------------------------------------------------------------------------- +// Class: |CLASSNAME| +// Method: |CLASSNAME| +// Description: copy constructor +//-------------------------------------------------------------------------------------- +|CLASSNAME|::|CLASSNAME| ( const |CLASSNAME| &other ) +{ +} // ----- end of method |CLASSNAME|::|CLASSNAME| (copy constructor) ----- + +//-------------------------------------------------------------------------------------- +// Class: |CLASSNAME| +// Method: ~|CLASSNAME| +// Description: destructor +//-------------------------------------------------------------------------------------- +|CLASSNAME|::~|CLASSNAME| () +{ +} // ----- end of method |CLASSNAME|::~|CLASSNAME| (destructor) ----- + +//-------------------------------------------------------------------------------------- +// Class: |CLASSNAME| +// Method: operator = +// Description: assignment operator +//-------------------------------------------------------------------------------------- +const |CLASSNAME|& +|CLASSNAME|::operator = ( const |CLASSNAME| &other ) +{ + if ( this != &other ) { + } + return *this; +} // ----- end of method |CLASSNAME|::operator = (assignment operator) ----- + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.error-class == +// ===================================================================================== +// Class: |?CLASSNAME:c| +// Description: <CURSOR> +// ===================================================================================== +class |CLASSNAME| +{ + public: |CLASSNAME| ( char *msg ):message(msg) { } + virtual ~|CLASSNAME| ( ) { } + virtual const char* what ( ) const throw ( ) { return message; } + protected: char *message; +}; // ---------- end of class |CLASSNAME| ---------- + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.template-method-implementation == +template < class T > +void<CURSOR> |?CLASSNAME|<T>::|?METHODNAME| ( ) +{ + return ; +} // ----- end of method |CLASSNAME|<T>::|METHODNAME| ----- +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.template-class == +// ===================================================================================== +// Class: |?CLASSNAME:c| +// Description: <CURSOR> +// ===================================================================================== + +template < class T > +class |CLASSNAME| +{ + public: + + // ==================== LIFECYCLE ======================================= + |CLASSNAME| (); // constructor + + // ==================== OPERATORS ======================================= + + // ==================== OPERATIONS ======================================= + + // ==================== ACCESS ======================================= + + // ==================== INQUIRY ======================================= + + // ==================== DATA MEMBERS ======================================= + protected: + + private: + +}; // ----- end of template class |CLASSNAME| ----- + +//-------------------------------------------------------------------------------------- +// Class: |CLASSNAME| +// Method: |CLASSNAME| +// Description: constructor +//-------------------------------------------------------------------------------------- +template < class T > +|CLASSNAME| <T>:: |CLASSNAME| () +{ +} // ----- end of constructor of template class |CLASSNAME| ----- + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.template-class-using-new == +// ===================================================================================== +// Class: |?CLASSNAME:c| +// Description: <CURSOR> +// ===================================================================================== + +template < class T > +class |CLASSNAME| +{ + public: + + // ==================== LIFECYCLE ======================================= + |CLASSNAME| (); // constructor + |CLASSNAME| ( const |CLASSNAME| &other ); // copy constructor + ~|CLASSNAME| (); // destructor + + // ==================== OPERATORS ======================================= + + const |CLASSNAME|& operator = ( const |CLASSNAME| &other ); // assignment operator + + // ==================== OPERATIONS ======================================= + + // ==================== ACCESS ======================================= + + // ==================== INQUIRY ======================================= + + // ==================== DATA MEMBERS ======================================= + protected: + + private: + +}; // ----- end of template class |CLASSNAME| ----- + +//-------------------------------------------------------------------------------------- +// Class: |CLASSNAME| +// Method: |CLASSNAME| +// Description: constructor +//-------------------------------------------------------------------------------------- +template < class T > +|CLASSNAME|<T>::|CLASSNAME| () +{ +} // ----- end of constructor of template class |CLASSNAME| ----- + +//-------------------------------------------------------------------------------------- +// Class: |CLASSNAME| +// Method: |CLASSNAME| +// Description: copy constructor +//-------------------------------------------------------------------------------------- +template < class T > +|CLASSNAME|<T>::|CLASSNAME| ( const |CLASSNAME| &other ) +{ +} // ----- end of copy constructor of template class |CLASSNAME| ----- + +//-------------------------------------------------------------------------------------- +// Class: |CLASSNAME| +// Method: ~|CLASSNAME| +// Description: destructor +//-------------------------------------------------------------------------------------- +template < class T > +|CLASSNAME|<T>::~|CLASSNAME| () +{ +} // ----- end of destructor of template class |CLASSNAME| ----- + +//-------------------------------------------------------------------------------------- +// Class: |CLASSNAME| +// Method: operator = +// Description: assignment operator +//-------------------------------------------------------------------------------------- +template < class T > +const |CLASSNAME|<T>& |CLASSNAME|<T>::operator = ( const |CLASSNAME| &other ) +{ + if ( this != &other ) { + } + return *this; +} // ----- end of assignment operator of template class |CLASSNAME| ----- + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.template-function == +template <class T> +<CURSOR>void |?TEMPALTE_FUNCTION_NAME| ( T param ) +{ + return ; +} // ----- end of template function |?TEMPALTE_FUNCTION_NAME| ----- +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.operator-in == +ostream & +operator << ( ostream & os, const |?CLASSNAME| & obj ) +{ + os << obj.<CURSOR> ; + return os; +} // ----- end of function operator << ----- +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.operator-out == +istream & +operator >> ( istream & is, |?CLASSNAME| & obj ) +{ + is >> obj.<CURSOR> ; + return is; +} // ----- end of function operator >> ----- +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.try-catch == +try {<CURSOR> +<SPLIT>} +catch ( const &ExceptObj ) { // handle exception: +} +catch (...) { // handle exception: unspezified +} + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.catch == +catch ( <CURSOR>const &ExceptObj ) { // handle exception: +<SPLIT>} +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.catch-points == +catch (...) { // handle exception: +<SPLIT>} +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.extern == +extern "C" {<CURSOR> +<SPLIT>} +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.open-input-file == +char *ifs_file_name = "<CURSOR>"; // input file name +ifstream ifs; // create ifstream object + +ifs.open (ifs_file_name); // open ifstream +if (!ifs) { + cerr << "\nERROR : failed to open input file " << ifs_file_name << endl; + exit (EXIT_FAILURE); +} + + +ifs.close (); // close ifstream +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.open-output-file == +char *ofs_file_name = "<CURSOR>"; // output file name +ofstream ofs; // create ofstream object + +ofs.open (ofs_file_name); // open ofstream +if (!ofs) { + cerr << "\nERROR : failed to open output file " << ofs_file_name << endl; + exit (EXIT_FAILURE); +} + + +ofs.close (); // close ofstream +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== cpp.namespace == +namespace |?NAMESPACE| +{<CURSOR> +<SPLIT>} // ----- end of |NAMESPACE| name ----- +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/.vim/c-support/templates/cpp.idioms.template b/.vim/c-support/templates/cpp.idioms.template new file mode 100644 index 0000000..febc375 --- /dev/null +++ b/.vim/c-support/templates/cpp.idioms.template @@ -0,0 +1,98 @@ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.function == +void<CURSOR> +|?FUNCTION_NAME| ( ) +{ +<SPLIT> return ; +} // ----- end of function |FUNCTION_NAME| ----- +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.function-static == +static void<CURSOR> +|?FUNCTION_NAME| ( ) +{ +<SPLIT> return ; +} // ----- end of static function |FUNCTION_NAME| ----- +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.main == +int +main ( int argc, char *argv[] ) +{<CURSOR> +<SPLIT> return EXIT_SUCCESS; +} // ---------- end of function main ---------- +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.enum == +enum |?ENUM_NAME| {<CURSOR> +<SPLIT>}; // ---------- end of enum |ENUM_NAME| ---------- +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.struct == +struct |?STRUCT_NAME| {<CURSOR> +<SPLIT>}; // ---------- end of struct |STRUCT_NAME| ---------- +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.union == +union |?UNION_NAME| {<CURSOR> +<SPLIT>}; // ---------- end of union |UNION_NAME| ---------- +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.calloc == +|?POINTER| = (<CURSOR>TYPE*)calloc ( (size_t)(COUNT), sizeof(TYPE) ); +if ( |POINTER|==NULL ) { + fprintf ( stderr, "\ndynamic memory allocation failed\n" ); + exit (EXIT_FAILURE); +} + +free (|POINTER|); + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.malloc == +|?POINTER| = (<CURSOR>TYPE*)malloc ( sizeof(TYPE) ); +if ( |POINTER|==NULL ) { + fprintf ( stderr, "\ndynamic memory allocation failed\n" ); + exit (EXIT_FAILURE); +} + +free (|POINTER|); + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.open-input-file == +FILE *|?FILEPOINTER|; // input-file pointer +char *|FILEPOINTER|_file_name = "<CURSOR>"; // input-file name + +|FILEPOINTER| = fopen( |FILEPOINTER|_file_name, "r" ); +if ( |FILEPOINTER| == NULL ) { + fprintf ( stderr, "couldn't open file '%s'; %s\n", + |FILEPOINTER|_file_name, strerror(errno) ); + exit (EXIT_FAILURE); +} + + +if( fclose(|FILEPOINTER|) == EOF ) { // close input file + fprintf ( stderr, "couldn't close file '%s'; %s\n", + |FILEPOINTER|_file_name, strerror(errno) ); + exit (EXIT_FAILURE); +} + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.open-output-file == +FILE *|?FILEPOINTER|; // output-file pointer +char *|FILEPOINTER|_file_name = "<CURSOR>"; // output-file name + +|FILEPOINTER| = fopen( |FILEPOINTER|_file_name, "w" ); +if ( |FILEPOINTER| == NULL ) { + fprintf ( stderr, "couldn't open file '%s'; %s\n", + |FILEPOINTER|_file_name, strerror(errno) ); + exit (EXIT_FAILURE); +} + + +if( fclose(|FILEPOINTER|) == EOF ) { // close output file + fprintf ( stderr, "couldn't close file '%s'; %s\n", + |FILEPOINTER|_file_name, strerror(errno) ); + exit (EXIT_FAILURE); +} + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.fprintf == +fprintf ( |?FILEPOINTER|, "<CURSOR>\n", ); +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== idioms.fscanf == +fscanf ( |?FILEPOINTER|, "<CURSOR>", & ); +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/.vim/c-support/templates/cpp.preprocessor.template b/.vim/c-support/templates/cpp.preprocessor.template new file mode 100644 index 0000000..dbf8abb --- /dev/null +++ b/.vim/c-support/templates/cpp.preprocessor.template @@ -0,0 +1,34 @@ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== preprocessor.define == +#define <CURSOR> // +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== preprocessor.undefine == +#undef <CURSOR> // +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== preprocessor.if-else-endif == +#if |?CONDITION:u| +<CURSOR><SPLIT> +#else // ----- not |CONDITION| ----- + +#endif // ----- not |CONDITION| ----- +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== preprocessor.ifdef-else-endif == +#ifdef |?CONDITION:u| +<CURSOR><SPLIT> +#else // ----- not |CONDITION| ----- + +#endif // ----- not |CONDITION| ----- +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== preprocessor.ifndef-else-endif == +#ifndef |?CONDITION:u| +<CURSOR><SPLIT> +#else // ----- not |CONDITION| ----- + +#endif // ----- not |CONDITION| ----- +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== preprocessor.ifndef-def-endif == +#ifndef |?BASENAME:L|_INC +#define |BASENAME|_INC +<CURSOR><SPLIT> +#endif // ----- #ifndef |BASENAME|_INC ----- +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/.vim/c-support/templates/cpp.statements.template b/.vim/c-support/templates/cpp.statements.template new file mode 100644 index 0000000..8018334 --- /dev/null +++ b/.vim/c-support/templates/cpp.statements.template @@ -0,0 +1,62 @@ +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.do-while == +do { +<SPLIT>} while ( <CURSOR> ); // ----- end do-while ----- +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.for == +for ( <CURSOR>; ; ) +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.for-block == +for ( <CURSOR>; ; ) { +<SPLIT>} +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.if == +if ( <CURSOR> ) +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.if-block == +if ( <CURSOR> ) { +<SPLIT>} +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.if-else == +if ( <CURSOR> ) +<SPLIT>else +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.if-block-else == +if ( <CURSOR> ) { +<SPLIT>} else { +} +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.while == +while ( <CURSOR> ) +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.while-block == +while ( <CURSOR> ) { +<SPLIT>} +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.switch == +switch ( <CURSOR> ) { + case : + <SPLIT>break; + + case : + break; + + case : + break; + + case : + break; + + default: + break; +} // ----- end switch ----- +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.case == +case <CURSOR>: +break; + +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +== statements.block == +{<CURSOR> +<SPLIT>} +$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/.vim/c-support/wordlists/c-c++-keywords.list b/.vim/c-support/wordlists/c-c++-keywords.list new file mode 100644 index 0000000..5a97dd6 --- /dev/null +++ b/.vim/c-support/wordlists/c-c++-keywords.list @@ -0,0 +1,209 @@ +adjustfield +basefield +boolalpha +floatfield +internal +scientific +setbase +setiosflags +setprecision +showbase +showpoint +showpos +uppercase + +auto +break +case +char +const +continue +default +double +else +enum +extern +float +goto +inline +long +register +restrict +return +short +signed +sizeof +static +struct +switch +typedef +union +unsigned +void +volatile +while +_Bool +_Complex +_Imaginary +EXIT_FAILURE +EXIT_SUCCESS + +bool +catch +class +const_cast +delete +dynamic_cast +explicit +export +false +friend +mutable +namespace +operator +private +protected +public +reinterpret_cast +static_cast +template +this +throw +true +typeid +typename +using +virtual +wchar_t + +and_eq +bitand +bitor +compl +not_eq +or_eq +xor_eq + +define +defined +elif +endif +error +ifdef +ifndef +include +pragma +undef + +exception +bad_alloc +bad_exception +bad_cast +bad_typeid +ios_base::failure +logic_error +domain_error +invalid_argument +length_error +out_of_range +runtime_error +range_error +overflow_error +underflow_error +uncaught_exception + +__DATE__ +__FILE__ +__LINE__ +__STDC__ +__STDC_HOSTED__ +__STDC_IEC_559__ +__STDC_IEC_559_COMPLEX__ +__STDC_ISO_10646__ +__STDC_VERSION__ +__TIME__ +__func__ +__cplusplus + +__BORLANDC__ +__CYGWIN__ +__CYGWIN32__ +__GNUC__ +__WIN32__ +__WINDOWS__ + +assert +ctype +errno +float +limits +locale +math +setjmp +signal +stdarg +stddef +stdio +stdlib +string +time + +complex +fenv +inttypes +iso646 +stdbool +stdint +tgmath +wchar +wctype + +algorithm +bitset +complex +deque +exception +fstream +functional +iomanip +ios +iosfwd +iostream +istream +iterator +limits +list +locale + +map +memory +new +numeric +ostream +queue +set +sstream +stack +stdexcept +streambuf +string +typeinfo +utility +valarray +vector + +cassert +cctype +cerrno +cfloat +climits +clocale +cmath +csetjmp +csignal +cstdarg +cstddef +cstdio +cstdlib +cstring +ctime diff --git a/.vim/c-support/wordlists/k+r.list b/.vim/c-support/wordlists/k+r.list new file mode 100644 index 0000000..805756a --- /dev/null +++ b/.vim/c-support/wordlists/k+r.list @@ -0,0 +1,108 @@ +address +allocator +allocation +argument +arithmetic +array +assignement +bitwise +block +character +command +condition +conditional +constant +conversion +declaration +decrement +defined +definition +descriptor +description +dimension +evaluation +expression +external +format +formatted +function +global +handling +identifier +implementation +increment +initialization +input +interface +label +lexical +local +logical +lookup +loop +lvalue +miscellaneous +notation +numerical +operator +operation +output +pointer +precedence +preprocessor +preprocessing +program +random +recursion +recursive +reference +referential +relational +scope +standard +statement +string +structure +system +undefined +variable + +abstract +algorithm +alignment +application +assignment +asynchronous +binary +buffer +component +constructor +container +destructor +difference +enumeration +exception +floating-point +horizontal +inheritance +instantiation +integer +internal +invariant +iterator +localization +overflow +overload +override +overwrite +polymorphic +portability +position +postcondition +precision +precondition +prototype +subscript +underflow +vertical +whitespace diff --git a/.vim/c-support/wordlists/stl_index.list b/.vim/c-support/wordlists/stl_index.list new file mode 100644 index 0000000..b5d98a3 --- /dev/null +++ b/.vim/c-support/wordlists/stl_index.list @@ -0,0 +1,202 @@ +accumulate +adjacent_difference +adjacent_find +advance +append +assign +auto_ptr +back +back_inserter +basic_string +bidirectional_iterator +bidirectional_iterator_tag +binary_compose +binary_function +binary_negate +binary_search +bind1st +bind2nd +bit_vector +bitset +capacity +char_producer +char_traits +char_type +compare +construct +copy +copy_backward +copy_n +count +count_if +deque +destroy +distance +distance_type +divides +equal +equal_range +equal_to +erase +fill +fill_n +find +find_end +find_first_not_of +find_first_of +find_if +find_last_not_of +find_last_of +for_each +forward_iterator +forward_iterator_tag +front +front_inserter +generate +generate_n +get_temporary_buffer +greater +greater_equal +hash +hash_map +hash_multimap +hash_multiset +hash_set +identity +includes +inner_product +inplace_merge +input_iterator +input_iterator_tag +insert +insert_iterator +inserter +int_type +iota +is_heap +is_sorted +istream_iterator +istream_type +istreambuf_iterator +iter_swap +iterator_category +iterator_traits +less +less_equal +lexicographical_compare +lexicographical_compare_3way +list +logical_and +logical_not +logical_or +lower_bound +make_heap +make_pair +map +max +max_element +mem_fun1_ref_t +mem_fun1_t +mem_fun_ref_t +mem_fun_t +merge +min +min_element +minus +mismatch +modulus +multimap +multiplies +multiset +negate +next_permutation +not_equal_to +nth_element +operator +ostream_iterator +ostreambuf_iterator +output_iterator +output_iterator_tag +pair +partial_sort +partial_sort_copy +partial_sum +partition +plus +pointer_to_binary_function +pointer_to_unary_function +pop_back +pop_front +pop_heap +power +prev_permutation +priority_queue +project1st +project2nd +ptr_fun +push_back +push_front +push_heap +queue +random_access_iterator +random_access_iterator_tag +random_sample +random_sample_n +random_shuffle +raw_storage_iterator +release +remove +remove_copy +remove_copy_if +remove_if +replace +replace_copy +replace_copy_if +replace_if +reset +resize +return_temporary_buffer +reverse +reverse_bidirectional_iterator +reverse_copy +reverse_iterator +rfind +rope +rotate +rotate_copy +search +search_n +select1st +select2nd +sequence_buffer +set +set_difference +set_intersection +set_symmetric_difference +set_union +slist +sort +sort_heap +stable_partition +stable_sort +stack +streambuf_type +substr +subtractive_rng +swap +swap_ranges +temporary_buffer +transform +unary_compose +unary_function +unary_negate +uninitialized_copy +uninitialized_copy_n +uninitialized_fill +uninitialized_fill_n +unique +unique_copy +upper_bound +value_comp +value_type +vector diff --git a/.vim/colors/adam.vim b/.vim/colors/adam.vim new file mode 100644 index 0000000..748ca7f --- /dev/null +++ b/.vim/colors/adam.vim @@ -0,0 +1,48 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" +" Based on an original vim color file by +" Ron Aaron <ron@mossbayeng.com> (2001 Jul 28) +" +" Maintainer: Adam Krouskop +" Last Change: 2003 Jul 3 + + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "adam" +hi Normal guifg=#008844 guibg=#002244 +hi NonText guifg=brown +hi comment guifg=#D80033 +hi constant guifg=#CCCCCC +hi identifier guifg=#0033FF gui=NONE +hi statement guifg=white gui=NONE +hi preproc guifg=#009999 +hi type guifg=#0033FF gui=NONE +hi special guifg=#FFFF00 gui=NONE +hi ErrorMsg guifg=Black guibg=Red +hi WarningMsg guifg=Black guibg=Green +hi Error guibg=Red +hi Todo guifg=Black guibg=orange +hi Cursor guibg=#ffffff guifg=#cac2ff +hi Search guibg=#103F5F gui=bold +hi IncSearch gui=bold guibg=#285f7f +hi LineNr guifg=darkgrey +hi title guifg=darkgrey +hi StatusLineNC gui=NONE guifg=lightblue guibg=darkblue +hi StatusLine gui=bold guifg=cyan guibg=blue +hi label guifg=gold2 +hi operator guifg=orange +hi clear Visual +hi Visual term=reverse cterm=reverse gui=reverse +hi DiffChange guibg=darkgreen +hi DiffText guibg=olivedrab +hi DiffAdd guibg=slateblue +hi DiffDelete guibg=coral +hi Folded guibg=gray30 +hi FoldColumn guibg=gray30 guifg=white +hi cIf0 guifg=gray diff --git a/.vim/colors/adaryn.vim b/.vim/colors/adaryn.vim new file mode 100644 index 0000000..1b17f22 --- /dev/null +++ b/.vim/colors/adaryn.vim @@ -0,0 +1,72 @@ +" Vim color file +" Maintainer: Glenn T. Norton <gtnorton@adaryn.com> +" Last Change: 2003-04-11 + +" adaryn - A color scheme named after my daughter, Adaryn. (A-da-rin) +" I like deep, sharp colors and this scheme is inspired by +" Bohdan Vlasyuk's darkblue. +" The cterm background is black since the dark blue was just too light. +" Also the cterm colors are very close to an old Borland C++ color setup. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "adaryn" + +hi Normal guifg=#fffff0 guibg=#00003F ctermfg=white ctermbg=Black +hi ErrorMsg guifg=#ffffff guibg=#287eff ctermfg=white ctermbg=red +hi Visual guifg=#8080ff guibg=fg gui=reverse ctermfg=blue ctermbg=fg cterm=reverse + +hi VisualNOS guifg=#8080ff guibg=fg gui=reverse,underline ctermfg=lightblue ctermbg=fg cterm=reverse,underline + +hi Todo guifg=#d14a14 guibg=#1248d1 ctermfg=red ctermbg=darkblue + +hi Search guifg=#90fff0 guibg=#2050d0 ctermfg=white ctermbg=darkblue cterm=underline term=underline + +hi IncSearch guifg=#b0ffff guibg=#2050d0 ctermfg=darkblue ctermbg=gray + +hi SpecialKey guifg=cyan ctermfg=darkcyan +hi Directory guifg=cyan ctermfg=cyan +hi Title guifg=#BDD094 gui=none ctermfg=magenta cterm=bold +hi WarningMsg guifg=red ctermfg=red +hi WildMenu guifg=yellow guibg=black ctermfg=yellow ctermbg=black cterm=none term=none +hi ModeMsg guifg=#22cce2 ctermfg=lightblue +hi MoreMsg ctermfg=darkgreen ctermfg=darkgreen +hi Question guifg=green gui=none ctermfg=green cterm=none +hi NonText guifg=#0030ff ctermfg=darkblue + +hi StatusLine guifg=blue guibg=darkgray gui=none ctermfg=blue ctermbg=gray term=none cterm=none + +hi StatusLineNC guifg=black guibg=darkgray gui=none ctermfg=black ctermbg=gray term=none cterm=none + +hi VertSplit guifg=black guibg=darkgray gui=none ctermfg=black ctermbg=gray term=none cterm=none + +hi Folded guifg=#808080 guibg=#000040 ctermfg=darkgrey ctermbg=black cterm=bold term=bold + +hi FoldColumn guifg=#808080 guibg=#000040 ctermfg=darkgrey ctermbg=black cterm=bold term=bold + +hi LineNr guifg=#90f020 ctermfg=green cterm=none + +hi DiffAdd guibg=darkblue ctermbg=darkblue term=none cterm=none +hi DiffChange guibg=darkmagenta ctermbg=magenta cterm=none +hi DiffDelete ctermfg=blue ctermbg=cyan gui=bold guifg=Blue guibg=DarkCyan +hi DiffText cterm=bold ctermbg=red gui=bold guibg=Red + +hi Cursor guifg=#000020 guibg=#ffaf38 ctermfg=bg ctermbg=brown +hi lCursor guifg=#ffffff guibg=#000000 ctermfg=bg ctermbg=darkgreen + + +hi Comment guifg=yellow ctermfg=Yellow +hi Constant ctermfg=green guifg=green cterm=none +hi Special ctermfg=White guifg=#FFFFFF cterm=none gui=none +hi Identifier ctermfg=DarkRed guifg=#BDD094 cterm=none +hi Statement ctermfg=LightCyan cterm=none guifg=#A9A900 gui=none +hi PreProc ctermfg=DarkRed guifg=#ffffff gui=none cterm=none +hi type ctermfg=LightCyan guifg=LightBlue gui=none cterm=none +hi Underlined cterm=underline term=underline +hi Ignore guifg=bg ctermfg=bg + + diff --git a/.vim/colors/adrian.vim b/.vim/colors/adrian.vim new file mode 100644 index 0000000..ba830cd --- /dev/null +++ b/.vim/colors/adrian.vim @@ -0,0 +1,97 @@ +" Vim colorscheme file +" Maintainer: Adrian Nagle <vim@naglenet.org> +" Last Change: 2001-09-25 07:48:15 Mountain Daylight Time +" URL: http://www.naglenet.org/vim/syntax/adrian.vim +" MAIN URL: http://www.naglenet.org/vim + +" This is my custom syntax file to override the defaults provided with Vim. +" This file should be located in $HOME/vimfiles/colors. + +" This file should automatically be sourced by $RUNTIMEPATH. + +" NOTE(S): +" *(1) +" The color definitions assumes and is intended for a black or dark +" background. + +" *(2) +" This file is specifically in Unix style EOL format so that I can simply +" copy this file between Windows and Unix systems. VIM can source files in +" with the UNIX EOL format (only <NL> instead of <CR><NR> for DOS) in any +" operating system if the 'fileformats' is not empty and there is no <CR> +" just before the <NL> on the first line. See ':help :source_crnl' and +" ':help fileformats'. +" +" *(3) +" Move this file to adrian.vim for vim6.0aw. +" + + + +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "adrian" + +" Normal is for the normal (unhighlighted) text and background. +" NonText is below the last line (~ lines). +highlight Normal guibg=Black guifg=Green +highlight Cursor guibg=Grey70 guifg=White +highlight NonText guibg=Grey80 +highlight StatusLine gui=bold guibg=DarkGrey guifg=Orange +highlight StatusLineNC guibg=DarkGrey guifg=Orange + +highlight Comment term=bold ctermfg=LightGrey guifg=#d1ddff +highlight Constant term=underline ctermfg=White guifg=#ffa0a0 +"highlight Number term=underline ctermfg=Yellow guifg=Yellow +highlight Identifier term=underline ctermfg=Cyan guifg=#40ffff +highlight Statement term=bold ctermfg=Yellow gui=bold guifg=#ffff60 +highlight PreProc term=underline ctermfg=Blue guifg=#ff4500 +highlight Type term=underline ctermfg=DarkGrey gui=bold guifg=#7d96ff +highlight Special term=bold ctermfg=Magenta guifg=Orange +highlight Ignore ctermfg=black guifg=bg +highlight Error ctermfg=White ctermbg=Red guifg=White guibg=Red +highlight Todo ctermfg=Blue ctermbg=Yellow guifg=Blue guibg=Yellow + +" Change the highlight of search matches (for use with :set hls). +highlight Search ctermfg=Black ctermbg=Yellow guifg=Black guibg=Yellow + +" Change the highlight of visual highlight. +highlight Visual cterm=NONE ctermfg=Black ctermbg=LightGrey gui=NONE guifg=Black guibg=Grey70 + +highlight Float ctermfg=Blue guifg=#88AAEE +highlight Exception ctermfg=Red ctermbg=White guifg=Red guibg=White +highlight Typedef ctermfg=White ctermbg=Blue gui=bold guifg=White guibg=Blue +highlight SpecialChar ctermfg=Black ctermbg=White guifg=Black guibg=White +highlight Delimiter ctermfg=White ctermbg=Black guifg=White guibg=Black +highlight SpecialComment ctermfg=Black ctermbg=Green guifg=Black guibg=Green + +" Common groups that link to default highlighting. +" You can specify other highlighting easily. +highlight link String Constant +highlight link Character Constant +highlight link Number Constant +highlight link Boolean Statement +"highlight link Float Number +highlight link Function Identifier +highlight link Conditional Type +highlight link Repeat Type +highlight link Label Type +highlight link Operator Type +highlight link Keyword Type +"highlight link Exception Type +highlight link Include PreProc +highlight link Define PreProc +highlight link Macro PreProc +highlight link PreCondit PreProc +highlight link StorageClass Type +highlight link Structure Type +"highlight link Typedef Type +"highlight link SpecialChar Special +highlight link Tag Special +"highlight link Delimiter Special +"highlight link SpecialComment Special +highlight link Debug Special + diff --git a/.vim/colors/af.vim b/.vim/colors/af.vim new file mode 100644 index 0000000..d85e7d3 --- /dev/null +++ b/.vim/colors/af.vim @@ -0,0 +1,99 @@ +" Vim color file +" Maintainer: Stanislav Lechev [AngelFire] <af@mis.bg> +" Last Change: 2004/03/31 +" URL: http://af.mis.bg/vim/af.vim +" ICQ: 2924004 +" Info: based on desert and a little bit of gothic +" Version: 1.1 + +set background=dark +if version > 580 + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="af" + +hi User1 guibg=darkblue guifg=yellow +hi User2 guibg=darkblue guifg=lightblue +hi User3 guibg=darkblue guifg=red +hi User4 guibg=darkblue guifg=cyan +hi User5 guibg=darkblue guifg=lightgreen +set statusline=%<%1*===\ %5*%f%1*%(\ ===\ %4*%h%1*%)%(\ ===\ %4*%m%1*%)%(\ ===\ %4*%r%1*%)\ ===%====\ %2*%b(0x%B)%1*\ ===\ %3*%l,%c%V%1*\ ===\ %5*%P%1*\ ===%0* laststatus=2 + + +hi Normal guifg=#dfdfdf guibg=#000000 +"hi Normal guifg=#87dee0 guibg=#000000 +"hi Normal guifg=#98fb98 guibg=#000000 +hi Cursor guibg=khaki guifg=slategrey +hi Comment guifg=#808080 +"hi Identifier guifg=#98FB98 +hi Identifier guifg=#87def0 +hi Constant guifg=#FF99FF +"hi String guifg=#87cee0 +hi String guifg=lightred +hi Character guifg=#87cee0 +hi Statement guifg=khaki +hi PreProc guifg=red +"hi Type guifg=#a0a0ff gui=none +hi Type guifg=lightgreen gui=none +hi Todo guifg=orangered guibg=yellow2 +hi Special guifg=Orange +hi Visual guifg=SkyBlue guibg=grey60 gui=none +hi IncSearch guifg=#ffff60 guibg=#0000ff gui=none +hi Search guifg=khaki guibg=slategrey gui=none +hi Ignore guifg=grey40 + +hi VertSplit guibg=#c2bfa5 guifg=grey50 gui=none +hi Folded guibg=grey30 guifg=gold +hi FoldColumn guibg=grey30 guifg=tan +hi ModeMsg guifg=goldenrod +hi MoreMsg guifg=SeaGreen +hi NonText guifg=LightBlue guibg=#000000 +hi Question guifg=springgreen +hi SpecialKey guifg=yellowgreen +hi StatusLineNC guibg=#c2bfa5 guifg=grey50 gui=none +hi Title guifg=indianred +hi WarningMsg guifg=salmon + + +" these are from desert ... i didn't change it +" color terminal definitions +hi SpecialKey ctermfg=darkgreen +hi NonText cterm=bold ctermfg=darkblue +hi Directory ctermfg=darkcyan +hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 +hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green +hi Search cterm=NONE ctermfg=grey ctermbg=blue +hi MoreMsg ctermfg=darkgreen +hi ModeMsg cterm=NONE ctermfg=brown +hi LineNr ctermfg=3 +hi Question ctermfg=green +hi StatusLine cterm=bold,reverse +hi StatusLineNC cterm=reverse +hi VertSplit cterm=reverse +hi Title ctermfg=5 +hi Visual cterm=reverse +hi VisualNOS cterm=bold,underline +hi WarningMsg ctermfg=1 +hi WildMenu ctermfg=0 ctermbg=3 +hi Folded ctermfg=darkgrey ctermbg=NONE +hi FoldColumn ctermfg=darkgrey ctermbg=NONE +hi DiffAdd ctermbg=4 +hi DiffChange ctermbg=5 +hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 +hi DiffText cterm=bold ctermbg=1 +hi Comment ctermfg=darkcyan +hi Constant ctermfg=brown +hi Special ctermfg=5 +hi Identifier ctermfg=6 +hi Statement ctermfg=3 +hi PreProc ctermfg=5 +hi Type ctermfg=2 +hi Underlined cterm=underline ctermfg=5 +hi Ignore cterm=bold ctermfg=7 +hi Error cterm=bold ctermfg=7 ctermbg=1 + + +"vim: sw=4 diff --git a/.vim/colors/aiseered.vim b/.vim/colors/aiseered.vim new file mode 100644 index 0000000..7e71108 --- /dev/null +++ b/.vim/colors/aiseered.vim @@ -0,0 +1,37 @@ +" gVim color file for working with files in GDL/VCG format. +" Works nice in conjunction with gdl.vim +" (see www.vim.org or www.aisee.com) +" Works fine for C/C++, too. + +" Author : Alexander A. Evstyugov-Babaev <alex@absint.com> +" Version: 0.2 for gVim/Linux, +" tested with gVim 6.3.25 under Ubuntu Linux (Warty) +" by Jo Vermeulen <jo@lumumba.luc.ac.be> +" Date : January 25th 2005 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name="aiseered" + +hi Normal guifg=lightred guibg=#600000 +hi Cursor guifg=bg guibg=fg +hi ErrorMsg guibg=red ctermfg=1 +hi Search term=reverse ctermfg=darkred ctermbg=lightred guibg=lightred guifg=#060000 + +hi Comment guifg=#ffffff +hi Constant guifg=#88ddee +hi String guifg=#ffcc88 +hi Character guifg=#ffaa00 +hi Number guifg=#88ddee +hi Identifier guifg=#cfcfcf +hi Statement guifg=#eeff99 gui=bold +hi PreProc guifg=firebrick1 gui=italic +hi Type guifg=#88ffaa gui=none +hi Special guifg=#ffaa00 +hi SpecialChar guifg=#ffaa00 +hi StorageClass guifg=#ddaacc +hi Error guifg=red guibg=white diff --git a/.vim/colors/aqua.vim b/.vim/colors/aqua.vim new file mode 100644 index 0000000..483b6ac --- /dev/null +++ b/.vim/colors/aqua.vim @@ -0,0 +1,44 @@ +" Vim color file +" Maintainer: tranquility@portugalmail.pt +" Last Change: 6 Apr 2002 + + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="aqua" + +hi Normal guibg=steelblue guifg=linen +hi Cursor guibg=lightblue3 guifg=black gui=bold +hi VertSplit guifg=white guibg=navyblue gui=none +hi Folded guibg=darkblue guifg=white +hi FoldColumn guibg=lightgray guifg=navyblue +hi ModeMsg guifg=black guibg=steelblue1 +hi MoreMsg guifg=black guibg=steelblue1 +hi NonText guifg=white guibg=steelblue4 gui=none +hi Question guifg=snow +hi Search guibg=#FFFFFF guifg=midnightblue gui=bold +hi SpecialKey guifg=navyblue +hi StatusLine guibg=skyblue3 guifg=black gui=none +hi StatusLineNC guibg=skyblue1 guifg=black gui=none +hi Title guifg=bisque3 +hi Subtitle guifg=black +hi Visual guifg=white guibg=royalblue4 gui=none +hi WarningMsg guifg=salmon4 guibg=gray60 gui=bold +hi Comment guifg=lightskyblue +hi Constant guifg=turquoise gui=bold +hi Identifier guifg=lightcyan +hi Statement guifg=royalblue4 +hi PreProc guifg=black gui=bold +hi Type guifg=lightgreen +hi Special guifg=navajowhite +hi Ignore guifg=grey29 +hi Todo guibg=black guifg=white +hi WildMenu guibg=aquamarine diff --git a/.vim/colors/astronaut.vim b/.vim/colors/astronaut.vim new file mode 100644 index 0000000..ae1dbf2 --- /dev/null +++ b/.vim/colors/astronaut.vim @@ -0,0 +1,160 @@ +" astronaut.vim: a colorscheme +" Maintainer: Charles E. Campbell, Jr. <charles.e.campbell.1@gsfc.nasa.gov> +" Date: Sep 01, 2004 +" Version: 6 NOT RELEASED +" +" Usage: +" Put into your <.vimrc> file: +" color astronaut +" +" Optional Modifiers: +" let g:astronaut_bold=1 : term, cterm, and gui receive bold modifier +" let g:astronaut_dark=1 : dark colors used (otherwise some terminals +" make everything bold, which can be all one +" color) +" let g:astronaut_underline=1 : assume that underlining works on your terminal +" let g:astronaut_italic=1 : allows italic to be used in gui +" Examples: +" iris : let astronaut_dark=1 +" Linux xterm: no modifiers needed +" +" GetLatestVimScripts: 122 1 :AutoInstall: astronaut.vim + +set background=dark +hi clear +if exists( "syntax_on" ) + syntax reset +endif +let g:colors_name = "astronaut" +let g:loaded_astronaut = "v6" + +" --------------------------------------------------------------------- +" Default option values +if !exists("g:astronaut_bold") + " on some machines, notably SGIs, a bold qualifier means everything is + " one color (SGIs: yellow) + let g:astronaut_bold= 0 +endif +if !exists("g:astronaut_dark") + " this option, if true, means darkcolor (ex. darkred, darkmagenta, etc) + " is understood and wanted + let g:astronaut_dark= 0 +endif +if !exists("g:astronaut_underline") + let g:astronaut_underline= 1 +endif +if !exists("g:astronaut_italic") + let g:astronaut_italic= 0 +endif + +" --------------------------------------------------------------------- +" Settings based on options +if g:astronaut_bold != 0 + let s:usebold=",bold" +else + let s:usebold="" +endif + +if g:astronaut_italic != 0 + " only affects Alt* in gvim + let s:useitalic= ",italic" +else + let s:useitalic= "" +endif + +if g:astronaut_dark != 0 + let s:black = "black" + let s:red = "darkred" + let s:green = "darkgreen" + let s:yellow = "darkyellow" + let s:blue = "darkblue" + let s:magenta = "darkmagenta" + let s:cyan = "darkcyan" + let s:white = "white" +else + let s:black = "black" + let s:red = "red" + let s:green = "green" + let s:yellow = "yellow" + let s:blue = "blue" + let s:magenta = "magenta" + let s:cyan = "cyan" + let s:white = "white" +endif + +if g:astronaut_underline != 0 + let s:underline= ",underline" + let s:ulbg = "" +else + let s:underline= "none" + if exists("g:astronaut_dark") + let s:ulbg = "ctermbg=darkmagenta guibg=magenta4" + else + let s:ulbg = "ctermbg=magenta guibg=magenta" + endif +endif + +" --------------------------------------------------------------------- +exe "hi Blue start=[m[34m stop=[m[32m ctermfg=".s:blue." guifg=blue guibg=navyblue term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Comment start=[m[37m stop=[m[32m ctermfg=".s:white." guifg=white term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Conceal ctermfg=".s:blue." ctermbg=".s:black." guifg=Blue guibg=Black term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Constant start=[m[33m stop=[m[32m ctermfg=".s:yellow." guifg=yellow guibg=navyblue term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Cursor guifg=blue guibg=green term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Cyan start=[m[36m stop=[m[32m ctermfg=".s:cyan." guifg=cyan guibg=navyblue term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Debug start=[m[31m stop=[m[32m ctermfg=".s:red." guifg=magenta guibg=navyblue term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Delimiter start=[m[37m stop=[m[32m ctermfg=".s:white." guifg=white guibg=navyblue term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi DiffAdd ctermfg=".s:white." ctermbg=".s:magenta." guifg=White guibg=Magenta term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi DiffChange ctermfg=".s:black." ctermbg=".s:green." guifg=Black guibg=Green term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi DiffDelete ctermfg=".s:white." ctermbg=".s:blue." guifg=White guibg=Blue term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi DiffText ctermfg=".s:white." ctermbg=".s:red." guifg=White guibg=Red term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Directory start=[m[37m stop=[m[32m ctermfg=".s:white." guifg=white term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Error start=[m[37;41m stop=[m[32m ctermfg=".s:white." ctermbg=".s:red." guifg=white guibg=red term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi ErrorMsg ctermfg=".s:white." ctermbg=".s:red." guifg=White guibg=Red term=standout".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi FoldColumn start=[m[36;40m stop=[m[32m ctermfg=".s:cyan." ctermbg=".s:black." guifg=Cyan guibg=Brown term=standout".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Folded start=[m[35;40m stop=[m[32m ctermfg=".s:magenta." ctermbg=".s:black." guifg=magenta guibg=black term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Function start=[m[36m stop=[m[32m ctermfg=".s:cyan." guifg=cyan guibg=navyblue term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Green start=[m[32m stop=[m[32m ctermfg=".s:green." guifg=green guibg=navyblue term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Identifier start=[m[45m stop=[m[32m ctermfg=".s:magenta." guifg=magenta guibg=navyblue term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Ignore ctermfg=".s:black ." guifg=bg term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi IncSearch start=[m[30;42m stop=[m[32m ctermfg=".s:black ." ctermbg=".s:green." guifg=black guibg=green term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi LineNr ctermfg=".s:yellow." ".s:ulbg." guifg=Yellow term=none".s:underline.s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Magenta start=[m[35m stop=[m[32m ctermfg=".s:magenta." guifg=magenta guibg=navyblue term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Menu guifg=black guibg=gray75 term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi ModeMsg ctermfg=".s:green." guifg=SeaGreen term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi MoreMsg ctermfg=".s:green." guifg=SeaGreen term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi NonText ctermfg=".s:blue." guifg=Blue term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Normal start=[m[32m stop=[m[32m ctermfg=".s:green." guifg=green guibg=navyblue term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi PreProc start=[m[37;44m stop=[m[32m ctermfg=".s:white." ctermbg=".s:blue." guifg=white guibg=blue3 term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Question start=[m[33m stop=[m[32m ctermfg=".s:yellow." guifg=yellow term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Red start=[m[31m stop=[m[32m ctermfg=".s:red." guifg=red guibg=navyblue term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Scrollbar guifg=gray80 guibg=gray70 term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Search start=[m[33;44m stop=[m[32m ctermfg=".s:yellow." ctermbg=".s:blue." guifg=yellow guibg=blue term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Special start=[m[32;44m stop=[m[32m ctermfg=".s:green." ctermbg=".s:blue." guifg=green guibg=blue term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi SpecialKey start=[m[30;45m stop=[m[32m ctermfg=".s:black." ctermbg=".s:magenta." guifg=black guibg=magenta term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Statement start=[m[36m stop=[m[32m ctermfg=".s:cyan." guifg=cyan guibg=navyblue term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi StatusLine start=[m[30;46m stop=[m[32m ctermfg=".s:black." ctermbg=".s:cyan." guifg=black guibg=cyan term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi StatusLineNC start=[m[30;42m stop=[m[32m ctermfg=".s:black." ctermbg=".s:green." guifg=black guibg=green term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi String start=[m[33m stop=[m[32m ctermfg=".s:yellow." guifg=yellow guibg=navyblue term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Subtitle start=[m[35m stop=[m[32m ctermfg=".s:magenta." guifg=magenta guibg=navyblue term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Tags start=[m[33;44m stop=[m[32m ctermfg=".s:yellow." ctermbg=".s:blue." guifg=yellow guibg=blue3 term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Title start=[m[37m stop=[m[32m ctermfg=".s:white." guifg=white term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Todo start=[m[37;45m stop=[m[32m ctermfg=".s:white." ctermbg=".s:magenta." guifg=white guibg=magenta term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Type start=[m[4;32m stop=[m[32m ctermfg=".s:green." ".s:ulbg." guifg=seagreen1 term=none".s:underline.s:usebold." cterm=none".s:usebold.s:underline." gui=none".s:usebold.s:underline +exe "hi Underlined ctermfg=".s:green." ".s:ulbg." guifg=green term=none".s:underline.s:usebold." cterm=none".s:usebold.s:underline." gui=none".s:usebold.s:underline +exe "hi Unique start=[m[34;47m stop=[m[32m ctermfg=".s:blue." ctermbg=".s:white." guifg=blue3 guibg=white term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi AltUnique start=[m[35;47m stop=[m[32m ctermfg=".s:magenta." ctermbg=".s:white." guifg=magenta guibg=white term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi AltAltUnique start=[m[30;47m stop=[m[32m ctermfg=".s:black." ctermbg=".s:white." guifg=black guibg=white term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi VertSplit start=[m[30;42m stop=[m[32m ctermfg=".s:black." ctermbg=".s:green." guifg=black guibg=green term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Visual start=[m[40;32m stop=[m[32m ctermfg=black ctermbg=green guifg=Grey guibg=fg term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi VisualNOS ".s:ulbg." term=none".s:underline.s:usebold." cterm=none".s:usebold.s:underline." gui=none".s:usebold.s:underline +exe "hi WarningMsg start=[m[30;43m stop=[m[32m ctermfg=".s:black." ctermbg=".s:yellow." guifg=black guibg=yellow term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi White start=[m[37m stop=[m[32m ctermfg=".s:white." guifg=white guibg=navyblue term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi WildMenu ctermfg=".s:black." ctermbg=".s:yellow." guifg=Black guibg=Yellow term=standout".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi Yellow start=[m[33m stop=[m[32m ctermfg=".s:yellow." guifg=yellow guibg=navyblue term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi lCursor guifg=bg guibg=fg term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold +exe "hi AltConstant start=[m[33;40m stop=[m[32m ctermfg=".s:yellow." ctermbg=".s:black." guifg=yellow guibg=black term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold.s:useitalic +exe "hi AltFunction start=[m[32;40m stop=[m[32m ctermfg=".s:green." ctermbg=".s:black." guifg=green guibg=black term=none".s:usebold." cterm=none".s:usebold." gui=none".s:usebold.s:useitalic +exe "hi AltType start=[m[4;32;40m stop=[m[32m ctermfg=".s:green." ctermbg=".s:black." guifg=seagreen1 guibg=black term=none".s:underline.s:usebold." cterm=none".s:usebold.s:underline." gui=none".s:usebold.s:underline.s:useitalic +exe "hi User1 ctermfg=".s:white." ctermbg=".s:blue." guifg=white guibg=blue" +exe "hi User2 ctermfg=".s:yellow." ctermbg=".s:blue." guifg=yellow guibg=blue" +" vim: nowrap diff --git a/.vim/colors/asu1dark.vim b/.vim/colors/asu1dark.vim new file mode 100644 index 0000000..ce5f90f --- /dev/null +++ b/.vim/colors/asu1dark.vim @@ -0,0 +1,59 @@ +" Vim color file +" Maintainer: A. Sinan Unur +" Last Change: 2001/10/04 + +" Dark color scheme + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="asu1dark" + +" Console Color Scheme +hi Normal term=NONE cterm=NONE ctermfg=LightGray ctermbg=Black +hi NonText term=NONE cterm=NONE ctermfg=Brown ctermbg=Black +hi Function term=NONE cterm=NONE ctermfg=DarkCyan ctermbg=Black +hi Statement term=BOLD cterm=BOLD ctermfg=DarkBlue ctermbg=Black +hi Special term=NONE cterm=NONE ctermfg=DarkGreen ctermbg=Black +hi SpecialChar term=NONE cterm=NONE ctermfg=Cyan ctermbg=Black +hi Constant term=NONE cterm=NONE ctermfg=Blue ctermbg=Black +hi Comment term=NONE cterm=NONE ctermfg=DarkGray ctermbg=Black +hi Preproc term=NONE cterm=NONE ctermfg=DarkGreen ctermbg=Black +hi Type term=NONE cterm=NONE ctermfg=DarkMagenta ctermbg=Black +hi Identifier term=NONE cterm=NONE ctermfg=Cyan ctermbg=Black +hi StatusLine term=BOLD cterm=NONE ctermfg=Yellow ctermbg=DarkBlue +hi StatusLineNC term=NONE cterm=NONE ctermfg=Black ctermbg=Gray +hi Visual term=NONE cterm=NONE ctermfg=White ctermbg=DarkCyan +hi Search term=NONE cterm=NONE ctermbg=Yellow ctermfg=DarkBlue +hi VertSplit term=NONE cterm=NONE ctermfg=Black ctermbg=Gray +hi Directory term=NONE cterm=NONE ctermfg=Green ctermbg=Black +hi WarningMsg term=NONE cterm=NONE ctermfg=Blue ctermbg=Yellow +hi Error term=NONE cterm=NONE ctermfg=DarkRed ctermbg=Gray +hi Cursor ctermfg=Black ctermbg=Cyan +hi LineNr term=NONE cterm=NONE ctermfg=Red ctermbg=Black + +" GUI Color Scheme +hi Normal gui=NONE guifg=White guibg=#110022 +hi NonText gui=NONE guifg=#ff9999 guibg=#444444 +hi Function gui=NONE guifg=#7788ff guibg=#110022 +hi Statement gui=BOLD guifg=Yellow guibg=#110022 +hi Special gui=NONE guifg=Cyan guibg=#110022 +hi Constant gui=NONE guifg=#ff9900 guibg=#110022 +hi Comment gui=NONE guifg=#99cc99 guibg=#110022 +hi Preproc gui=NONE guifg=#33ff66 guibg=#110022 +hi Type gui=NONE guifg=#ff5577 guibg=#110022 +hi Identifier gui=NONE guifg=Cyan guibg=#110022 +hi StatusLine gui=BOLD guifg=White guibg=#336600 +hi StatusLineNC gui=NONE guifg=Black guibg=#cccccc +hi Visual gui=NONE guifg=White guibg=#00aa33 +hi Search gui=BOLD guibg=Yellow guifg=DarkBlue +hi VertSplit gui=NONE guifg=White guibg=#666666 +hi Directory gui=NONE guifg=Green guibg=#110022 +hi WarningMsg gui=STANDOUT guifg=#0000cc guibg=Yellow +hi Error gui=NONE guifg=White guibg=Red +hi Cursor guifg=White guibg=#00ff33 +hi LineNr gui=NONE guifg=#cccccc guibg=#334444 +hi ModeMsg gui=NONE guifg=Blue guibg=White +hi Question gui=NONE guifg=#66ff99 guibg=#110022 diff --git a/.vim/colors/automation.vim b/.vim/colors/automation.vim new file mode 100644 index 0000000..b449145 --- /dev/null +++ b/.vim/colors/automation.vim @@ -0,0 +1,59 @@ +" Vim color file (automation.vim) +" Maintainer: Ken McConnell <nacer@yahoo.com> +" Last Change: 2004 Jan 15 +" +" This color scheme uses a light grey background. It was created to simulate +" the look of an IDE. It is named after the MFP Automation Team at HP Boise. +" + +" First remove all existing highlighting. +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "automation" + +hi Normal ctermbg=Black ctermfg=LightGrey guifg=Black guibg=Grey96 + +" Groups used in the 'highlight' and 'guicursor' options default value. +hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White +hi IncSearch term=reverse cterm=bold gui=bold +hi ModeMsg term=bold cterm=bold gui=bold +hi StatusLine term=bold cterm=bold gui=bold +hi StatusLineNC term=bold cterm=bold gui=bold +hi VertSplit term=bold cterm=bold gui=bold +hi Visual term=bold cterm=bold gui=bold guifg=Grey guibg=fg +hi VisualNOS term=underline,bold cterm=underline,bold gui=underline,bold +hi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red +hi Cursor guibg=Black guifg=Black +hi lCursor guibg=Cyan guifg=Black +hi Directory term=bold ctermfg=LightCyan guifg=DarkBlue +hi LineNr term=underline ctermfg=DarkGrey guifg=DarkGrey guibg=LightGrey +hi MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen +hi NonText term=bold ctermfg=LightBlue gui=bold guifg=DarkGreen guibg=grey80 +hi Question term=standout ctermfg=LightGreen gui=bold guifg=Green +hi Search term=reverse ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black +hi SpecialKey term=bold ctermfg=DarkBlue guifg=DarkBlue +hi Title term=bold ctermfg=LightMagenta gui=bold guifg=DarkBlue +hi WarningMsg term=standout ctermfg=LightRed guifg=Red +hi WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black +hi Folded term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue +hi FoldColumn term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue +hi DiffAdd term=bold ctermbg=DarkBlue guibg=DarkBlue +hi DiffChange term=bold ctermbg=DarkMagenta guibg=DarkMagenta +hi DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan gui=bold guifg=Blue guibg=DarkCyan +hi Comment guifg=Blue guibg=Grey90 ctermfg=DarkGreen +hi String guifg=DarkGreen ctermfg=DarkGreen +hi Statement guifg=DarkBlue ctermfg=Blue +hi Label gui=bold guifg=DarkBlue +" Groups for syntax highlighting +hi Constant term=underline ctermfg=DarkBlue guifg=DarkBlue guibg=Grey96 +hi Special term=bold ctermfg=LightRed guifg=DarkBlue guibg=Grey96 +if &t_Co > 8 + hi Statement term=bold cterm=bold ctermfg=DarkBlue guifg=DarkBlue +endif +hi Ignore ctermfg=LightGrey guifg=grey90 + +" vim: sw=2 diff --git a/.vim/colors/autumn.vim b/.vim/colors/autumn.vim new file mode 100644 index 0000000..f269b35 --- /dev/null +++ b/.vim/colors/autumn.vim @@ -0,0 +1,69 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/10/14 Mon 16:41. +" version: 1.0 +" This color scheme uses a light background. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "autumn" + +hi Normal guifg=#404040 guibg=#fff4e8 + +" Search +hi IncSearch gui=UNDERLINE guifg=#404040 guibg=#e0e040 +hi Search gui=NONE guifg=#544060 guibg=#f0c0ff + +" Messages +hi ErrorMsg gui=BOLD guifg=#f8f8f8 guibg=#4040ff +hi WarningMsg gui=BOLD guifg=#f8f8f8 guibg=#4040ff +hi ModeMsg gui=NONE guifg=#d06000 guibg=NONE +hi MoreMsg gui=NONE guifg=#0090a0 guibg=NONE +hi Question gui=NONE guifg=#8000ff guibg=NONE + +" Split area +hi StatusLine gui=BOLD guifg=#f8f8f8 guibg=#904838 +hi StatusLineNC gui=BOLD guifg=#c0b0a0 guibg=#904838 +hi VertSplit gui=NONE guifg=#f8f8f8 guibg=#904838 +hi WildMenu gui=BOLD guifg=#f8f8f8 guibg=#ff3030 + +" Diff +hi DiffText gui=NONE guifg=#2850a0 guibg=#c0d0f0 +hi DiffChange gui=NONE guifg=#208040 guibg=#c0f0d0 +hi DiffDelete gui=NONE guifg=#ff2020 guibg=#eaf2b0 +hi DiffAdd gui=NONE guifg=#ff2020 guibg=#eaf2b0 + +" Cursor +hi Cursor gui=NONE guifg=#ffffff guibg=#0080f0 +hi lCursor gui=NONE guifg=#ffffff guibg=#8040ff +hi CursorIM gui=NONE guifg=#ffffff guibg=#8040ff + +" Fold +hi Folded gui=NONE guifg=#804030 guibg=#ffc0a0 +hi FoldColumn gui=NONE guifg=#a05040 guibg=#f8d8c4 + +" Other +hi Directory gui=NONE guifg=#7050ff guibg=NONE +hi LineNr gui=NONE guifg=#e0b090 guibg=NONE +hi NonText gui=BOLD guifg=#a05040 guibg=#ffe4d4 +hi SpecialKey gui=NONE guifg=#0080ff guibg=NONE +hi Title gui=BOLD guifg=fg guibg=NONE +hi Visual gui=NONE guifg=#804020 guibg=#ffc0a0 +" hi VisualNOS gui=NONE guifg=#604040 guibg=#e8dddd + +" Syntax group +hi Comment gui=NONE guifg=#ff5050 guibg=NONE +hi Constant gui=NONE guifg=#00884c guibg=NONE +hi Error gui=BOLD guifg=#f8f8f8 guibg=#4040ff +hi Identifier gui=NONE guifg=#b07800 guibg=NONE +hi Ignore gui=NONE guifg=bg guibg=NONE +hi PreProc gui=NONE guifg=#0090a0 guibg=NONE +hi Special gui=NONE guifg=#8040f0 guibg=NONE +hi Statement gui=BOLD guifg=#80a030 guibg=NONE +hi Todo gui=BOLD,UNDERLINE guifg=#0080f0 guibg=NONE +hi Type gui=BOLD guifg=#b06c58 guibg=NONE +hi Underlined gui=UNDERLINE guifg=blue guibg=NONE diff --git a/.vim/colors/autumn2.vim b/.vim/colors/autumn2.vim new file mode 100644 index 0000000..f269b35 --- /dev/null +++ b/.vim/colors/autumn2.vim @@ -0,0 +1,69 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/10/14 Mon 16:41. +" version: 1.0 +" This color scheme uses a light background. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "autumn" + +hi Normal guifg=#404040 guibg=#fff4e8 + +" Search +hi IncSearch gui=UNDERLINE guifg=#404040 guibg=#e0e040 +hi Search gui=NONE guifg=#544060 guibg=#f0c0ff + +" Messages +hi ErrorMsg gui=BOLD guifg=#f8f8f8 guibg=#4040ff +hi WarningMsg gui=BOLD guifg=#f8f8f8 guibg=#4040ff +hi ModeMsg gui=NONE guifg=#d06000 guibg=NONE +hi MoreMsg gui=NONE guifg=#0090a0 guibg=NONE +hi Question gui=NONE guifg=#8000ff guibg=NONE + +" Split area +hi StatusLine gui=BOLD guifg=#f8f8f8 guibg=#904838 +hi StatusLineNC gui=BOLD guifg=#c0b0a0 guibg=#904838 +hi VertSplit gui=NONE guifg=#f8f8f8 guibg=#904838 +hi WildMenu gui=BOLD guifg=#f8f8f8 guibg=#ff3030 + +" Diff +hi DiffText gui=NONE guifg=#2850a0 guibg=#c0d0f0 +hi DiffChange gui=NONE guifg=#208040 guibg=#c0f0d0 +hi DiffDelete gui=NONE guifg=#ff2020 guibg=#eaf2b0 +hi DiffAdd gui=NONE guifg=#ff2020 guibg=#eaf2b0 + +" Cursor +hi Cursor gui=NONE guifg=#ffffff guibg=#0080f0 +hi lCursor gui=NONE guifg=#ffffff guibg=#8040ff +hi CursorIM gui=NONE guifg=#ffffff guibg=#8040ff + +" Fold +hi Folded gui=NONE guifg=#804030 guibg=#ffc0a0 +hi FoldColumn gui=NONE guifg=#a05040 guibg=#f8d8c4 + +" Other +hi Directory gui=NONE guifg=#7050ff guibg=NONE +hi LineNr gui=NONE guifg=#e0b090 guibg=NONE +hi NonText gui=BOLD guifg=#a05040 guibg=#ffe4d4 +hi SpecialKey gui=NONE guifg=#0080ff guibg=NONE +hi Title gui=BOLD guifg=fg guibg=NONE +hi Visual gui=NONE guifg=#804020 guibg=#ffc0a0 +" hi VisualNOS gui=NONE guifg=#604040 guibg=#e8dddd + +" Syntax group +hi Comment gui=NONE guifg=#ff5050 guibg=NONE +hi Constant gui=NONE guifg=#00884c guibg=NONE +hi Error gui=BOLD guifg=#f8f8f8 guibg=#4040ff +hi Identifier gui=NONE guifg=#b07800 guibg=NONE +hi Ignore gui=NONE guifg=bg guibg=NONE +hi PreProc gui=NONE guifg=#0090a0 guibg=NONE +hi Special gui=NONE guifg=#8040f0 guibg=NONE +hi Statement gui=BOLD guifg=#80a030 guibg=NONE +hi Todo gui=BOLD,UNDERLINE guifg=#0080f0 guibg=NONE +hi Type gui=BOLD guifg=#b06c58 guibg=NONE +hi Underlined gui=UNDERLINE guifg=blue guibg=NONE diff --git a/.vim/colors/autumnleaf.vim b/.vim/colors/autumnleaf.vim new file mode 100644 index 0000000..f7af59f --- /dev/null +++ b/.vim/colors/autumnleaf.vim @@ -0,0 +1,154 @@ +" Vim color file +" Maintainer: Anders Korte +" Last Change: 17 Oct 2004 + +" AutumnLeaf color scheme 1.0 + +set background=light + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name="AutumnLeaf" + + +" Colors for the User Interface. + +hi Cursor guibg=#aa7733 guifg=#ffeebb gui=bold +hi Normal guibg=#fffdfa guifg=black gui=none +hi NonText guibg=#eafaea guifg=#000099 gui=bold +hi Visual guibg=#fff8cc guifg=black gui=none +" hi VisualNOS + +hi Linenr guibg=bg guifg=#999999 gui=none + +" Uncomment these if you use Diff...?? +" hi DiffText guibg=#cc0000 guifg=white gui=none +" hi DiffAdd guibg=#0000cc guifg=white gui=none +" hi DiffChange guibg=#990099 guifg=white gui=none +" hi DiffDelete guibg=#888888 guifg=#333333 gui=none + +hi Directory guibg=bg guifg=#337700 gui=none + +hi IncSearch guibg=#c8e8ff guifg=black gui=none +hi Search guibg=#c8e8ff guifg=black gui=none +hi SpecialKey guibg=bg guifg=fg gui=none +hi Titled guibg=bg guifg=fg gui=none + +hi ErrorMsg guibg=bg guifg=#cc0000 gui=bold +hi ModeMsg guibg=bg guifg=#003399 gui=none +hi link MoreMsg ModeMsg +hi link Question ModeMsg +hi WarningMsg guibg=bg guifg=#cc0000 gui=bold + +hi StatusLine guibg=#ffeebb guifg=black gui=bold +hi StatusLineNC guibg=#aa8866 guifg=#f8e8cc gui=none +hi VertSplit guibg=#aa8866 guifg=#ffe0bb gui=none + +" hi Folded +" hi FoldColumn +" hi SignColumn + + +" Colors for Syntax Highlighting. + +hi Comment guibg=#ddeedd guifg=#002200 gui=none + +hi Constant guibg=bg guifg=#003399 gui=bold +hi String guibg=bg guifg=#003399 gui=italic +hi Character guibg=bg guifg=#003399 gui=italic +hi Number guibg=bg guifg=#003399 gui=bold +hi Boolean guibg=bg guifg=#003399 gui=bold +hi Float guibg=bg guifg=#003399 gui=bold + +hi Identifier guibg=bg guifg=#003399 gui=none +hi Function guibg=bg guifg=#0055aa gui=bold +hi Statement guibg=bg guifg=#003399 gui=none + +hi Conditional guibg=bg guifg=#aa7733 gui=bold +hi Repeat guibg=bg guifg=#aa5544 gui=bold +hi link Label Conditional +hi Operator guibg=bg guifg=#aa7733 gui=bold +hi link Keyword Statement +hi Exception guibg=bg guifg=#228877 gui=bold + +hi PreProc guibg=bg guifg=#aa7733 gui=bold +hi Include guibg=bg guifg=#558811 gui=bold +hi link Define Include +hi link Macro Include +hi link PreCondit Include + +hi Type guibg=bg guifg=#007700 gui=bold +hi link StorageClass Type +hi link Structure Type +hi Typedef guibg=bg guifg=#009900 gui=italic + +hi Special guibg=bg guifg=fg gui=none +hi SpecialChar guibg=bg guifg=fg gui=bold +hi Tag guibg=bg guifg=#003399 gui=bold +hi link Delimiter Special +hi SpecialComment guibg=#dddddd guifg=#aa0000 gui=none +hi link Debug Special + +hi Underlined guibg=bg guifg=blue gui=underline + +hi Title guibg=bg guifg=fg gui=bold +hi Ignore guibg=bg guifg=#999999 gui=none +hi Error guibg=red guifg=white gui=none +hi Todo guibg=bg guifg=#aa0000 gui=none + + + +" The same in cterm colors. +hi Cursor ctermbg=6 ctermfg=14 +hi Normal ctermbg=15 ctermfg=0 +hi NonText ctermbg=10 ctermfg=1 +hi Visual ctermbg=14 ctermfg=0 +" hi VisualNOS +hi Linenr ctermbg=bg ctermfg=7 +" hi DiffText ctermbg=4 ctermfg=15 +" hi DiffAdd ctermbg=1 ctermfg=15 +" hi DiffChange ctermbg=5 ctermfg=15 +" hi DiffDelete ctermbg=7 ctermfg=8 +hi Directory ctermbg=bg ctermfg=2 +hi IncSearch ctermbg=9 ctermfg=0 +hi Search ctermbg=9 ctermfg=0 +hi SpecialKey ctermbg=bg ctermfg=fg +hi Titled ctermbg=bg ctermfg=fg +hi ErrorMsg ctermbg=bg ctermfg=12 +hi ModeMsg ctermbg=bg ctermfg=9 +hi WarningMsg ctermbg=bg ctermfg=12 +hi StatusLine ctermbg=14 ctermfg=0 +hi StatusLineNC ctermbg=6 ctermfg=14 +hi VertSplit ctermbg=6 ctermfg=14 +" hi Folded +" hi FoldColumn +" hi SignColumn +hi Comment ctermbg=10 ctermfg=2 +hi Constant ctermbg=bg ctermfg=9 +hi String ctermbg=bg ctermfg=9 cterm=italic +hi Character ctermbg=bg ctermfg=9 cterm=italic +hi Number ctermbg=bg ctermfg=9 cterm=bold +hi Boolean ctermbg=bg ctermfg=9 cterm=bold +hi Float ctermbg=bg ctermfg=9 cterm=bold +hi Function ctermbg=bg ctermfg=9 cterm=bold +hi Statement ctermbg=bg ctermfg=9 cterm=bold +hi Conditional ctermbg=bg ctermfg=6 cterm=bold +hi Repeat ctermbg=bg ctermfg=6 cterm=bold +hi Operator ctermbg=bg ctermfg=6 cterm=bold +hi Exception ctermbg=bg ctermfg=2 cterm=bold +hi PreProc ctermbg=bg ctermfg=6 +hi Include ctermbg=bg ctermfg=2 cterm=bold +hi Type ctermbg=bg ctermfg=2 cterm=bold +hi Typedef ctermbg=bg ctermfg=2 cterm=italic +hi Special ctermbg=bg ctermfg=fg cterm=bold +hi Tag ctermbg=bg ctermfg=9 cterm=bold +hi SpecialComment ctermbg=7 ctermfg=4 +hi Underlined ctermbg=bg ctermfg=9 cterm=underline +hi Title ctermbg=bg ctermfg=fg cterm=bold +hi Ignore ctermbg=bg ctermfg=7 +hi Error ctermbg=12 ctermfg=15 +hi Todo ctermbg=bg ctermfg=15 diff --git a/.vim/colors/billw.vim b/.vim/colors/billw.vim new file mode 100644 index 0000000..740642f --- /dev/null +++ b/.vim/colors/billw.vim @@ -0,0 +1,99 @@ +" vim: set tw=0 sw=4 sts=4 et: + +" Vim color file +" Maintainer: Datila Carvalho <datila@saci.homeip.net> +" Last Change: November, 3, 2003 +" Version: 0.1 + +" This is a VIM's version of the emacs color theme +" _Billw_ created by Bill White. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "billw" + + +""" Colors + +" GUI colors +hi Cursor guifg=fg guibg=cornsilk +hi CursorIM guifg=NONE guibg=cornsilk +"hi Directory +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +hi ErrorMsg gui=bold guifg=White guibg=Red +"hi VertSplit +"hi Folded +"hi FoldColumn +"hi IncSearch +"hi LineNr +hi ModeMsg gui=bold +"hi MoreMsg +"hi NonText +hi Normal guibg=black guifg=cornsilk +"hi Question +hi Search gui=bold guifg=Black guibg=cornsilk +"hi SpecialKey +hi StatusLine guifg=orange1 +hi StatusLineNC guifg=yellow4 +"hi Title +hi Visual guifg=gray35 guibg=fg +hi VisualNOS gui=bold guifg=black guibg=fg +hi WarningMsg guifg=White guibg=Tomato +"hi WildMenu + +" Colors for syntax highlighting +hi Comment guifg=gold + +hi Constant guifg=mediumspringgreen + hi String guifg=orange + hi Character guifg=orange + hi Number guifg=mediumspringgreen + hi Boolean guifg=mediumspringgreen + hi Float guifg=mediumspringgreen + +hi Identifier guifg=yellow + hi Function guifg=mediumspringgreen + +hi Statement gui=bold guifg=cyan1 + hi Conditional gui=bold guifg=cyan1 + hi Repeat gui=bold guifg=cyan1 + hi Label guifg=cyan1 + hi Operator guifg=cyan1 + "hi Keyword + "hi Exception + +hi PreProc guifg=LightSteelBlue + hi Include guifg=LightSteelBlue + hi Define guifg=LightSteelBlue + hi Macro guifg=LightSteelBlue + hi PreCondit guifg=LightSteelBlue + +hi Type guifg=yellow + hi StorageClass guifg=cyan1 + hi Structure gui=bold guifg=cyan1 + hi Typedef guifg=cyan1 + +"hi Special + ""Underline Character + "hi SpecialChar gui=underline + "hi Tag gui=bold,underline + ""Statement + "hi Delimiter gui=bold + ""Bold comment (in Java at least) + "hi SpecialComment gui=bold + "hi Debug gui=bold + +hi Underlined gui=underline + +hi Ignore guifg=bg + +hi Error gui=bold guifg=White guibg=Red + +"hi Todo diff --git a/.vim/colors/biogoo.vim b/.vim/colors/biogoo.vim new file mode 100644 index 0000000..cec72b1 --- /dev/null +++ b/.vim/colors/biogoo.vim @@ -0,0 +1,85 @@ +" Vim color File +" Name: biogoo +" Maintainer: Benjamin Esham <bdesham@iname.com> +" Last Change: 2004-02-03 +" Version: 1.2 +" +" A fairly simple gray-background scheme. Feedback is greatly appreciated! +" +" Installation: +" Copy to ~/.vim/colors; do :color biogoo +" +" Customization Options: +" Use a 'normal' cursor color: +" let g:biogoo_normal_cursor = 1 +" +" Props: +" Jani Nurminen's zenburn.vim as an example file. +" Scott and Matt for feature suggestions. +" +" Version History: +" 1.2: added `SpellErrors' group for use with vimspell. +" 1.1: added `IncSearch' group for improved visibility in incremental searches. +" 1.0: minor tweaks +" 0.95: initial release +" +" TODO: Possibly add some more groups -- please email me if I've left any out. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "biogoo" + +hi Comment guifg=#0000c3 +hi Constant guifg=#0000ff +hi Delimiter guifg=#00007f +hi DiffAdd guifg=#007f00 guibg=#e5e5e5 +hi DiffChange guifg=#00007f guibg=#e5e5e5 +hi DiffDelete guifg=#7f0000 guibg=#e5e5e5 +hi DiffText guifg=#ee0000 guibg=#e5e5e5 +hi Directory guifg=#b85d00 +hi Error guifg=#d6d6d6 guibg=#7f0000 +hi ErrorMsg guifg=#ffffff guibg=#ff0000 gui=bold +hi Float guifg=#b85d00 +hi FoldColumn guifg=#00007f guibg=#e5e5e5 +hi Folded guifg=#00007f guibg=#e5e5e5 +hi Function guifg=#7f0000 +hi Identifier guifg=#004000 +hi Include guifg=#295498 gui=bold +hi IncSearch guifg=#ffffff guibg=#0000ff gui=bold +hi LineNr guifg=#303030 guibg=#e5e5e5 gui=underline +hi Keyword guifg=#00007f +hi Macro guifg=#295498 +hi ModeMsg guifg=#00007f +hi MoreMsg guifg=#00007f +hi NonText guifg=#007f00 +hi Normal guifg=#000000 guibg=#d6d6d6 +hi Number guifg=#b85d00 +hi Operator guifg=#00007f +hi PreCondit guifg=#295498 gui=bold +hi PreProc guifg=#0c3b6b gui=bold +hi Question guifg=#00007f +hi Search guibg=#ffff00 +hi Special guifg=#007f00 +hi SpecialKey guifg=#00007f +hi SpellErrors guifg=#7f0000 gui=underline +hi Statement guifg=#00007f gui=none +hi StatusLine guifg=#00007f guibg=#ffffff +hi StatusLineNC guifg=#676767 guibg=#ffffff +hi String guifg=#d10000 +hi Title guifg=#404040 gui=bold +hi Todo guifg=#00007f guibg=#e5e5e5 gui=underline +hi Type guifg=#540054 gui=bold +hi Underlined guifg=#b85d00 +hi VertSplit guifg=#676767 guibg=#ffffff +hi Visual guifg=#7f7f7f guibg=#ffffff +hi VisualNOS guifg=#007f00 guibg=#e5e5e5 +hi WarningMsg guifg=#500000 +hi WildMenu guifg=#540054 + +if !exists("g:biogoo_normal_cursor") + " use a gray-on-blue cursor + hi Cursor guifg=#ffffff guibg=#00007f +endif diff --git a/.vim/colors/black_angus.vim b/.vim/colors/black_angus.vim new file mode 100644 index 0000000..145b639 --- /dev/null +++ b/.vim/colors/black_angus.vim @@ -0,0 +1,115 @@ +" Vim color file +" Maintainer: Angus Salkeld +" Last Change: 14 September 2004 +" Version: 1.0 +" mainly green on black + +set background=dark +highlight clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "black_angus" + +" GUI +" ----------------------------------------------------------------------- +highlight Normal guifg=Grey80 guibg=Black +highlight Search guifg=brown gui=reverse +highlight Visual guifg=Grey25 gui=bold +highlight Cursor guifg=Yellow guibg=DarkGreen gui=bold +highlight DiffAdd guibg=#000080 gui=NONE +highlight DiffChange guibg=#800080 gui=NONE +highlight DiffDelete guifg=#80c0e0 guibg=#404040 gui=NONE +highlight DiffText guifg=Black guibg=#c0e080 gui=NONE + +" Console +" ----------------------------------------------------------------------- +highlight Normal ctermfg=LightGrey ctermbg=Black +highlight Search ctermfg=Brown cterm=reverse +highlight Visual cterm=reverse +highlight Cursor ctermfg=Yellow ctermbg=Green cterm=bold + +" both +" ----------------------------------------------------------------------- +highlight StatusLine guifg=LightGreen guibg=#003300 gui=none ctermfg=LightGreen ctermbg=DarkGreen term=none +highlight VertSplit guifg=LightGreen guibg=#003300 gui=none ctermfg=LightGreen ctermbg=DarkGreen term=none +highlight Folded guifg=#aaDDaa guibg=#333333 gui=none ctermfg=LightGray ctermbg=DarkGray term=none +highlight FoldColumn guifg=LightGreen guibg=#003300 gui=none ctermfg=LightGreen ctermbg=DarkGreen term=none +highlight SignColumn guifg=LightGreen guibg=#003300 gui=none ctermfg=LightGreen ctermbg=DarkGreen term=none +highlight WildMenu guifg=LightGreen guibg=#003300 gui=none ctermfg=LightGreen ctermbg=DarkGreen term=none + +highlight LineNr guifg=DarkGreen guibg=Black gui=none ctermfg=DarkGreen ctermbg=Black term=none +highlight Directory guifg=LightGreen ctermfg=LightGreen +highlight Comment guifg=DarkGrey ctermfg=DarkGray + +highlight Special guifg=Orange ctermfg=Brown +highlight Title guifg=Orange ctermfg=Brown +highlight Tag guifg=DarkRed ctermfg=DarkRed +highlight link Delimiter Special +highlight link SpecialChar Special +highlight link SpecialComment Special +highlight link SpecialKey Special +highlight link NonText Special + +highlight Error guifg=White guibg=DarkRed gui=none ctermfg=White ctermbg=DarkRed cterm=none +highlight Debug guifg=White guibg=DarkGreen gui=none ctermfg=White ctermbg=DarkRed cterm=none +highlight ErrorMsg guifg=White guibg=DarkBlue gui=none ctermfg=White ctermbg=DarkRed cterm=none +highlight WarningMsg guifg=White guibg=DarkBlue gui=none ctermfg=White ctermbg=DarkBlue cterm=none +highlight Todo guifg=White guibg=DarkYellow gui=none ctermfg=White ctermbg=DarkBlue cterm=none +highlight link cCommentStartError WarningMsg +highlight link cCommentError Debug + +" Preprocesor +highlight PreCondit guifg=Cyan3 ctermfg=Cyan +highlight PreProc guifg=Magenta ctermfg=Magenta +highlight Include guifg=DarkCyan ctermfg=DarkCyan +highlight ifdefIfOut guifg=DarkGray ctermfg=DarkGray +highlight link Macro Include +highlight link Define Include + +" lang +highlight Function guifg=#AAEEAA gui=none ctermfg=LightGreen +highlight Identifier guifg=#bbccbb gui=none ctermfg=Grey +highlight Statement guifg=LightGreen gui=underline ctermfg=LightGreen +highlight Operator guifg=Yellow gui=none ctermfg=Yellow +highlight Conditional guifg=lightslateblue gui=none ctermfg=LightBlue + +highlight link Exception Statement +highlight link Label Statement +highlight link Repeat Conditional + +highlight link Keyword Label + +highlight Constant guifg=LightGreen ctermfg=LightGreen gui=none +highlight link Character Constant +highlight link Number Constant +highlight link Boolean Constant +highlight link String Constant +highlight link Float Constant + +highlight Type guifg=DarkGreen ctermfg=DarkGreen gui=none +highlight link StorageClass Type +highlight link Structure Type +highlight link Typedef Type + +" ------------------------------------------------------------------------------ +" Common groups that link to other highlighting definitions. +highlight link Search IncSearch +highlight link Question Statement +highlight link VisualNOS Visual +" ------------------------------------------------------------------------------ + +" only for vim 5 +if has("unix") + if v:version<600 + highlight Normal ctermfg=Grey ctermbg=Black cterm=NONE guifg=Grey80 guibg=Black gui=NONE + highlight Search ctermfg=Black ctermbg=Red cterm=bold guifg=Black guibg=Red gui=bold + highlight Visual ctermfg=Black ctermbg=yellow cterm=bold guifg=Grey25 gui=bold + highlight Special ctermfg=LightBlue cterm=NONE guifg=LightBlue + highlight Comment ctermfg=Cyan cterm=NONE guifg=LightBlue + endif +endif + + + diff --git a/.vim/colors/blackbeauty.vim b/.vim/colors/blackbeauty.vim new file mode 100644 index 0000000..a824ea3 --- /dev/null +++ b/.vim/colors/blackbeauty.vim @@ -0,0 +1,66 @@ +" Vim color file +" Maintainer: Surya +" Last Change: 12/23/2003 10:32:41 . +" version: 1.0 +" This color scheme uses a dark background. +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "koehler" +hi Normal guifg=white guibg=black +hi Scrollbar guibg=darkgray guifg=darkgray +hi Menu guifg=black guibg=gray +hi SpecialKey term=bold cterm=bold ctermfg=darkred guifg=Blue +hi NonText term=bold cterm=bold ctermfg=darkred gui=bold guifg=Blue +hi Directory term=bold cterm=bold ctermfg=brown guifg=Blue +hi ErrorMsg term=standout cterm=bold ctermfg=grey ctermbg=blue gui=bold guifg=White guibg=brown +hi Search term=reverse ctermfg=white ctermbg=red gui=bold guifg=#000000 guibg=Magenta +hi MoreMsg term=bold cterm=bold ctermfg=darkgreen gui=bold guifg=SeaGreen +hi ModeMsg term=bold cterm=bold gui=bold guifg=White guibg=Blue +hi LineNr term=underline cterm=bold ctermfg=darkcyan guibg=brown guifg=white +hi Question term=standout cterm=bold ctermfg=darkgreen gui=bold guifg=Green +hi StatusLine term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guibg=white guifg=brown +hi StatusLineNC term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue +hi Title term=bold cterm=bold ctermfg=darkmagenta gui=bold guifg=Magenta +hi Visual term=reverse cterm=reverse gui=reverse +hi WarningMsg term=standout cterm=bold ctermfg=darkblue gui=bold guifg=cyan guibg=Black +hi Cursor guifg=bg guibg=cyan +hi Comment term=bold cterm=bold ctermfg=cyan guifg=#80a0ff +hi Constant term=underline cterm=bold ctermfg=magenta guifg=#ffa0a0 +hi String term=underline cterm=bold ctermfg=magenta gui=bold guifg=brown guibg=darkgray +hi Number term=underline cterm=bold ctermfg=magenta guifg=#00ffff +hi Special term=bold gui=bold cterm=bold ctermfg=red guifg=Orange +hi Identifier term=underline ctermfg=brown guifg=#40ffff +hi Statement term=bold cterm=bold ctermfg=yellow gui=bold guifg=#ffff60 +hi PreProc term=underline ctermfg=darkblue guifg=#ff80ff +hi Type term=underline cterm=bold ctermfg=lightgreen gui=bold guifg=#60ff60 +hi Error gui=bold guifg=Yellow guibg=Black +hi Todo term=standout ctermfg=black ctermbg=darkcyan guifg=Blue guibg=Yellow +"hi VertSplit guifg=#00FFFF guibg=#000000 gui=bold +hi link IncSearch Visual +hi link Character Constant +hi link Boolean Constant +hi link Float Number +hi link Function Identifier +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special + diff --git a/.vim/colors/blackdust.vim b/.vim/colors/blackdust.vim new file mode 100644 index 0000000..0eb20a7 --- /dev/null +++ b/.vim/colors/blackdust.vim @@ -0,0 +1,62 @@ +set background=dark +hi clear + +hi Boolean guifg=#dca3a3 gui=bold +hi Character guifg=#dca3a3 gui=bold +hi Comment guifg=#7f7f7f +hi Condtional guifg=#8fffff +hi Constant guifg=#dca3a3 gui=bold +hi Cursor guifg=#000000 guibg=#aeaeae +hi Debug guifg=#dca3a3 gui=bold +hi Define guifg=#ffcfaf gui=bold +hi Delimiter guifg=#8f8f8f +hi DiffAdd guibg=#613c46 +hi DiffChange guibg=#333333 +hi DiffDelete guifg=#333333 guibg=#464646 gui=none +hi DiffText guifg=#ffffff guibg=#1f1f1f gui=bold +hi Directory guifg=#ffffff gui=bold +hi Error guifg=#000000 guibg=#00ffff +hi ErrorMsg guifg=#000000 guibg=#00c0cf +hi Exception guifg=#8fffff gui=underline +hi Float guifg=#9c93b3 +hi FoldColumn guifg=#dca3a3 guibg=#464646 +hi Folded guifg=#dca3a3 guibg=#333333 +hi Function guifg=#ffff8f +hi Identifier guifg=#ffffff +hi Include guifg=#ffcfaf gui=bold +hi IncSearch guifg=#000000 guibg=#c15c66 +hi Keyword guifg=#ffffff gui=bold +hi Label guifg=#8fffff gui=underline +hi LineNr guifg=#7f7f7f guibg=#464646 +hi Macro guifg=#ffcfaf gui=bold +hi ModeMsg guifg=#dca3a3 gui=bold +hi MoreMsg guifg=#ffffff gui=bold +hi NonText guifg=#1f1f1f +hi Normal guifg=#cccccc guibg=#3f3f3f +hi Number guifg=#aca0a3 +hi Operator guifg=#ffffff +hi PreCondit guifg=#dfaf8f gui=bold +hi PreProc guifg=#ffcfaf gui=bold +hi Question guifg=#ffffff gui=bold +hi Repeat guifg=#8fffff gui=underline +hi Search guifg=#000000 guibg=#c15c66 +hi SpecialChar guifg=#dca3a3 gui=bold +hi SpecialComment guifg=#dca3a3 gui=bold +hi Special guifg=#7f7f7f +hi SpecialKey guifg=#7e7e7e +hi Statement guifg=#8fffff +hi StatusLine guifg=#333333 guibg=#f18c96 +hi StatusLineNC guifg=#333333 guibg=#cccccc +hi StorageClass guifg=#ffffff gui=bold +hi String guifg=#cc9393 +hi Structure guifg=#ffffff gui=bold,underline +hi Tag guifg=#dca3a3 gui=bold +hi Title guifg=#ffffff guibg=#333333 gui=bold +hi Todo guifg=#ffffff guibg=#000000 gui=bold +hi Typedef guifg=#ffffff gui=bold,underline +hi Type guifg=#ffffff gui=bold +hi VertSplit guifg=#333333 guibg=#cccccc +hi Visual guifg=#333333 guibg=#f18c96 gui=reverse +hi VisualNOS guifg=#333333 guibg=#f18c96 gui=bold,underline +hi WarningMsg guifg=#ffffff guibg=#333333 gui=bold +hi WildMenu guifg=#000000 guibg=#dca3a3 diff --git a/.vim/colors/blacksea.vim b/.vim/colors/blacksea.vim new file mode 100644 index 0000000..5cd38a3 --- /dev/null +++ b/.vim/colors/blacksea.vim @@ -0,0 +1,32 @@ +" Vim color file +" Maintainer: Gerald S. Williams +" Last Change: 2003 Mar 20 + +" This is a dark version/opposite of "seashell". The cterm version of this is +" very similar to "evening". +" +" Only values that differ from defaults are specified. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "BlackSea" + +hi Normal guibg=Black guifg=seashell ctermfg=White +hi NonText guifg=LavenderBlush ctermfg=LightMagenta +hi DiffDelete guibg=DarkRed guifg=Black ctermbg=DarkRed ctermfg=White +hi DiffAdd guibg=DarkGreen ctermbg=DarkGreen ctermfg=White +hi DiffChange guibg=Gray30 ctermbg=DarkCyan ctermfg=White +hi DiffText gui=NONE guibg=DarkCyan ctermbg=DarkCyan ctermfg=Yellow +hi Comment guifg=LightBlue +hi Constant guifg=DeepPink +hi PreProc guifg=Magenta ctermfg=Magenta +hi StatusLine guibg=#1f001f guifg=DarkSeaGreen cterm=NONE ctermfg=White ctermbg=DarkGreen +hi StatusLineNC guifg=Gray +hi VertSplit guifg=Gray +hi Type gui=NONE +hi Identifier guifg=Cyan +hi Statement guifg=brown3 ctermfg=DarkRed +hi Search guibg=Gold3 ctermfg=White diff --git a/.vim/colors/blue.vim b/.vim/colors/blue.vim new file mode 100644 index 0000000..220700f --- /dev/null +++ b/.vim/colors/blue.vim @@ -0,0 +1,41 @@ +" Vim color file +" Maintainer: TaQ <taq@taq.cjb.net> +" Last Change: 10 October 2001 - 0.2 +" URL: http://taq.cjb.net + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark " or light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="blue" + +hi Normal ctermfg=Gray ctermbg=Black guifg=#CCCCCC guibg=#000040 +hi NonText ctermfg=Gray ctermbg=Black guifg=#0050EE guibg=#000040 + +hi Statement ctermfg=White ctermbg=Black guifg=#007FFF guibg=#000040 gui=BOLD +hi Comment ctermfg=Blue ctermbg=Black guifg=#00A0FF guibg=#000090 gui=NONE +hi Constant ctermfg=White ctermbg=Black guifg=#0050EE guibg=#000040 gui=NONE +hi Identifier ctermfg=Cyan ctermbg=Black guifg=#FFFFFF guibg=#000040 gui=NONE +hi Type ctermfg=Cyan ctermbg=Black guifg=#5050FF guibg=#000040 gui=NONE +hi Folded ctermfg=White ctermbg=Blue guifg=#00A0FF guibg=#000050 gui=BOLD +hi Special ctermfg=Blue ctermbg=Black guifg=#00A0FF guibg=#000090 gui=NONE +hi PreProc ctermfg=Blue ctermbg=Black guifg=#00FF00 guibg=#000040 gui=BOLD +hi Scrollbar ctermfg=Blue ctermbg=Black guifg=#00C0FF guibg=#000040 +hi Cursor ctermfg=white ctermbg=Black guifg=#FFFFFF guibg=#5050FF +hi ErrorMsg ctermfg=white ctermbg=Red guifg=#FFFFFF guibg=#FF0000 +hi WarningMsg ctermfg=Black ctermbg=Yellow guifg=#000000 guibg=#FFFF00 +hi VertSplit ctermfg=White ctermbg=Blue guifg=#000090 guibg=#000090 +hi Directory ctermfg=Cyan ctermbg=DarkBlue guifg=#00A0F0 guibg=#000040 +hi Visual ctermfg=Black ctermbg=Cyan guifg=#5050FF guibg=#FFFFFF +hi Title ctermfg=White ctermbg=Blue guifg=#FFFFFF guibg=#0050EE gui=NONE + +hi StatusLine term=bold cterm=bold ctermfg=White ctermbg=Blue gui=bold guifg=#FFFFFF guibg=#0050EE +hi StatusLineNC term=bold cterm=bold ctermfg=Gray ctermbg=Blue gui=bold guifg=#AAAAAA guibg=#000090 +hi LineNr term=bold cterm=bold ctermfg=White ctermbg=DarkBlue gui=bold guifg=#00A0FF guibg=#000050 + diff --git a/.vim/colors/bluegreen.vim b/.vim/colors/bluegreen.vim new file mode 100644 index 0000000..0b23dcd --- /dev/null +++ b/.vim/colors/bluegreen.vim @@ -0,0 +1,52 @@ + + +" Vim color file +" Maintainer: +" Last Change: +" URL: + + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="mine" + +hi Normal guifg=White guibg=#061A3E + +" highlight groups +hi Cursor guibg=#D74141 guifg=#e3e3e3 +hi VertSplit guibg=#C0FFFF guifg=#075554 gui=none +hi Folded guibg=#FFC0C0 guifg=black +hi FoldColumn guibg=#800080 guifg=tan +"hi IncSearch cterm=none ctermbg=blue ctermfg=grey guifg=slategrey guibg=khaki +hi ModeMsg guifg=#404040 guibg=#C0C0C0 +hi MoreMsg guifg=darkturquoise guibg=#188F90 +hi NonText guibg=#334C75 guifg=#9FADC5 +hi Question guifg=#F4BB7E +hi Search guibg=fg guifg=bg +hi SpecialKey guifg=#BF9261 +hi StatusLine guibg=#004443 guifg=#c0ffff gui=none +hi StatusLineNC guibg=#067C7B guifg=#004443 gui=bold +hi Title guifg=#8DB8C3 +hi Visual gui=bold guifg=black guibg=#C0FFC0 +hi WarningMsg guifg=#F60000 gui=underline + +" syntax highlighting groups +hi Comment guifg=#DABEA2 +hi Constant guifg=#72A5E4 gui=bold +hi Identifier guifg=#ADCBF1 +hi Statement guifg=#7E75B5 +hi PreProc guifg=#14F07C +hi Type guifg=#A9EE8A +hi Special guifg=#EEBABA +hi Ignore guifg=grey60 +hi Todo guibg=#9C8C84 guifg=#244C0A + +"vim: ts=4 diff --git a/.vim/colors/blugrine.vim b/.vim/colors/blugrine.vim new file mode 100644 index 0000000..6ba6330 --- /dev/null +++ b/.vim/colors/blugrine.vim @@ -0,0 +1,42 @@ +" author Helder Correia < helder (dot) correia (at) netcabo (dot) pt> +" version 2004.0 +" based on bluegreen colorscheme by Joao Estevao +" feel free to modify / redistribute this file + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="blugrine" + +hi Normal guifg=White guibg=#000000 + +" highlight groups +hi Cursor guibg=#D74141 guifg=#e3e3e3 +hi VertSplit guibg=#C0FFFF guifg=#075554 gui=none +hi Folded guibg=#FFC0C0 guifg=black +hi FoldColumn guibg=#800080 guifg=tan +hi ModeMsg guifg=#404040 guibg=#C0C0C0 +hi MoreMsg guifg=darkturquoise guibg=#188F90 +hi NonText guibg=#334C75 guifg=#9FADC5 +hi Question guifg=#F4BB7E +hi Search guibg=fg guifg=bg +hi SpecialKey guifg=#BF9261 +hi StatusLine guibg=#004443 guifg=#c0ffff gui=none +hi StatusLineNC guibg=#067C7B guifg=#004443 gui=bold +hi Title guifg=#8DB8C3 +hi Visual gui=bold guifg=black guibg=#C0FFC0 +hi WarningMsg guifg=#F60000 gui=underline + +" syntax highlighting groups +hi Comment guifg=#DABEA2 +hi Constant guifg=#72A5E4 gui=bold +hi Identifier guifg=#ADCBF1 +hi Statement guifg=#7E75B5 +hi PreProc guifg=#14F07C +hi Type guifg=#A9EE8A +hi Special guifg=#EEBABA +hi Ignore guifg=grey60 +hi Todo guibg=#9C8C84 guifg=#244C0A + diff --git a/.vim/colors/bmichaelsen.vim b/.vim/colors/bmichaelsen.vim new file mode 100644 index 0000000..b63f65c --- /dev/null +++ b/.vim/colors/bmichaelsen.vim @@ -0,0 +1,55 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" Maintainer: Björn Michaelsen <bmichaelsen@gmx.de> +" based on: Zellner maintained by Ron Aaron <ronaharon@yahoo.com> +" Last Change: 2003 Sep 09 + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "bmichaelsen" + +hi Comment term=bold ctermfg=Red guifg=Red +hi Normal guifg=black guibg=#dee2ee +hi Constant term=underline ctermfg=Magenta guifg=Magenta +hi Special term=bold ctermfg=Magenta guifg=Magenta +hi Identifier term=underline ctermfg=Blue guifg=Blue +hi Statement term=bold ctermfg=DarkRed gui=NONE guifg=Brown +hi PreProc term=underline ctermfg=Magenta guifg=Purple +hi Type term=underline ctermfg=Blue gui=NONE guifg=Blue +hi Visual term=reverse ctermfg=Yellow ctermbg=Red gui=NONE guifg=Black guibg=#5a5d6a +hi Search term=reverse ctermfg=Black ctermbg=Cyan gui=NONE guifg=Black guibg=Cyan +hi Tag term=bold ctermfg=DarkGreen guifg=DarkGreen +hi Error term=reverse ctermfg=15 ctermbg=9 guibg=Red guifg=White +hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=#5a5d6a +hi StatusLine term=bold,reverse cterm=NONE ctermfg=Yellow ctermbg=DarkGray gui=NONE guifg=Black guibg=#a4b2c5 +hi! link MoreMsg Comment +hi! link ErrorMsg Visual +hi! link WarningMsg ErrorMsg +hi! link Question Comment +hi link String Constant +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Function Identifier +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special diff --git a/.vim/colors/bog.vim b/.vim/colors/bog.vim new file mode 100644 index 0000000..542262d --- /dev/null +++ b/.vim/colors/bog.vim @@ -0,0 +1,87 @@ +" Vim color file +" Maintainer: [smeagol] <webmaster@quantumz.net> +" Last Change: +" URL: + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +" your pick: +set background=light " or light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="bog" + +hi Normal guifg=#3a3a3d guibg=white ctermfg=darkgrey ctermbg=white + +" OR + +" highlight clear Normal +" set background& +" highlight clear +" if &background == "light" +" highlight Error ... +" ... +" else +" highlight Error ... +" ... +" endif + +" A good way to see what your colorscheme does is to follow this procedure: +" :w +" :so % +" +" Then to see what the current setting is use the highlight command. +" For example, +" :hi Cursor +" gives +" Cursor xxx guifg=bg guibg=fg + +" Uncomment and complete the commands you want to change from the default. + +hi Cursor guifg=#04ae6c guibg=#0056a0 ctermfg=darkgreen ctermbg=darkblue +"hi CursorIM +hi Directory guifg=green ctermfg=green +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +hi ErrorMsg guibg=#004a8a guifg=white ctermfg=white ctermbg=darkblue +hi VertSplit guibg=#04ae6c guifg=#0056a0 +hi Folded guibg=#0a62c4 guifg=#60abff ctermfg=lightgrey ctermbg=blue +hi FoldColumn guibg=#0a62c4 guifg=#60abff ctermfg=lightgrey ctermbg=blue +hi IncSearch guifg=white guibg=#ffdc34 ctermfg=white ctermbg=lightred gui=underline +hi LineNr guifg=#3669e8 guibg=white ctermfg=lightblue ctermbg=white +hi ModeMsg guifg=orange guibg=white ctermfg=lightred ctermbg=white +hi MoreMsg guifg=orange guibg=white ctermfg=lightred ctermbg=white +hi NonText gui=bold +hi Question guifg=white guibg=orange ctermfg=white ctermbg=lightred +hi Search guifg=white guibg=#ffdc34 ctermfg=white ctermbg=lightred gui=underline +"hi SpecialKey +hi StatusLine guifg=#04ae6c guibg=white ctermfg=darkgreen ctermbg=white +hi StatusLineNC guifg=#04ae6c guibg=white ctermfg=darkgreen ctermbg=white +hi Title guifg=#02233f gui=bold +hi Visual guifg=darkblue guibg=white ctermfg=darkblue ctermbg=white +"hi VisualNOS +hi WarningMsg guifg=white guibg=orange ctermfg=white ctermbg=lightblue +hi WildMenu guifg=#75dc34 guibg=white ctermfg=lightgreen ctermbg=white +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment guifg=orange guibg=white ctermbg=white ctermfg=blue +hi Constant guifg=#5b8f8d guibg=white ctermfg=grey ctermbg=white +hi Identifier guifg=#aad2ff guibg=white ctermfg=grey ctermbg=white +hi Statement guifg=#808283 guibg=white ctermfg=lightgrey ctermbg=white +hi PreProc guifg=#023a6a gui=bold guibg=white ctermfg=darkblue ctermbg=white +hi Type guifg=#0e9152 guibg=white ctermfg=darkgreen ctermbg=white +hi Special guifg=white guibg=skyblue ctermfg=white ctermbg=blue +hi Underlined guifg=#00d0e8 ctermbg=blue +hi Ignore guifg=black guibg=white ctermfg=black ctermbg=white +"hi Error +hi Todo guibg=lightblue guifg=white ctermbg=lightblue ctermfg=white diff --git a/.vim/colors/borland.vim b/.vim/colors/borland.vim new file mode 100644 index 0000000..c39c101 --- /dev/null +++ b/.vim/colors/borland.vim @@ -0,0 +1,60 @@ +" Vim color file +" Maintainer: Yegappan Lakshmanan +" Last Change: 2001 Sep 9 + +" Color settings similar to that used in Borland IDE's. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="borland" + +hi Normal term=NONE cterm=NONE ctermfg=Yellow ctermbg=DarkBlue +hi Normal gui=NONE guifg=Yellow guibg=DarkBlue +hi NonText term=NONE cterm=NONE ctermfg=White ctermbg=DarkBlue +hi NonText gui=NONE guifg=White guibg=DarkBlue + +hi Statement term=NONE cterm=NONE ctermfg=White ctermbg=DarkBlue +hi Statement gui=NONE guifg=White guibg=DarkBlue +hi Special term=NONE cterm=NONE ctermfg=Cyan ctermbg=DarkBlue +hi Special gui=NONE guifg=Cyan guibg=DarkBlue +hi Constant term=NONE cterm=NONE ctermfg=Magenta ctermbg=DarkBlue +hi Constant gui=NONE guifg=Magenta guibg=DarkBlue +hi Comment term=NONE cterm=NONE ctermfg=Gray ctermbg=DarkBlue +hi Comment gui=NONE guifg=Gray guibg=DarkBlue +hi Preproc term=NONE cterm=NONE ctermfg=Green ctermbg=DarkBlue +hi Preproc gui=NONE guifg=Green guibg=DarkBlue +hi Type term=NONE cterm=NONE ctermfg=White ctermbg=DarkBlue +hi Type gui=NONE guifg=White guibg=DarkBlue +hi Identifier term=NONE cterm=NONE ctermfg=White ctermbg=DarkBlue +hi Identifier gui=NONE guifg=White guibg=DarkBlue + +hi StatusLine term=bold cterm=bold ctermfg=Black ctermbg=White +hi StatusLine gui=bold guifg=Black guibg=White + +hi StatusLineNC term=NONE cterm=NONE ctermfg=Black ctermbg=White +hi StatusLineNC gui=NONE guifg=Black guibg=White + +hi Visual term=NONE cterm=NONE ctermfg=Black ctermbg=DarkCyan +hi Visual gui=NONE guifg=Black guibg=DarkCyan + +hi Search term=NONE cterm=NONE ctermbg=Gray +hi Search gui=NONE guibg=Gray + +hi VertSplit term=NONE cterm=NONE ctermfg=Black ctermbg=White +hi VertSplit gui=NONE guifg=Black guibg=White + +hi Directory term=NONE cterm=NONE ctermfg=Green ctermbg=DarkBlue +hi Directory gui=NONE guifg=Green guibg=DarkBlue + +hi WarningMsg term=standout cterm=NONE ctermfg=Red ctermbg=DarkBlue +hi WarningMsg gui=standout guifg=Red guibg=DarkBlue + +hi Error term=NONE cterm=NONE ctermfg=White ctermbg=Red +hi Error gui=NONE guifg=White guibg=Red + +hi Cursor ctermfg=Black ctermbg=Yellow +hi Cursor guifg=Black guibg=Yellow + diff --git a/.vim/colors/breeze.vim b/.vim/colors/breeze.vim new file mode 100644 index 0000000..21cf417 --- /dev/null +++ b/.vim/colors/breeze.vim @@ -0,0 +1,70 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/10/30 Wed 00:08. +" version: 1.0 +" This color scheme uses a dark background. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "breeze" + +hi Normal guifg=#ffffff guibg=#005c70 + +" Search +hi IncSearch gui=UNDERLINE guifg=#60ffff guibg=#6060ff +hi Search gui=NONE guifg=#ffffff guibg=#6060ff + +" Messages +hi ErrorMsg gui=BOLD guifg=#ffffff guibg=#ff40a0 +hi WarningMsg gui=BOLD guifg=#ffffff guibg=#ff40a0 +hi ModeMsg gui=NONE guifg=#60ffff guibg=NONE +hi MoreMsg gui=NONE guifg=#ffc0ff guibg=NONE +hi Question gui=NONE guifg=#ffff60 guibg=NONE + +" Split area +hi StatusLine gui=NONE guifg=#000000 guibg=#d0d0e0 +hi StatusLineNC gui=NONE guifg=#606080 guibg=#d0d0e0 +hi VertSplit gui=NONE guifg=#606080 guibg=#d0d0e0 +hi WildMenu gui=NONE guifg=#000000 guibg=#00c8f0 + +" Diff +hi DiffText gui=UNDERLINE guifg=#ffff00 guibg=#000000 +hi DiffChange gui=NONE guifg=#ffffff guibg=#000000 +hi DiffDelete gui=NONE guifg=#60ff60 guibg=#000000 +hi DiffAdd gui=NONE guifg=#60ff60 guibg=#000000 + +" Cursor +hi Cursor gui=NONE guifg=#ffffff guibg=#d86020 +hi lCursor gui=NONE guifg=#ffffff guibg=#e000b0 +hi CursorIM gui=NONE guifg=#ffffff guibg=#e000b0 + +" Fold +hi Folded gui=NONE guifg=#ffffff guibg=#0088c0 +" hi Folded gui=NONE guifg=#ffffff guibg=#2080d0 +hi FoldColumn gui=NONE guifg=#60e0e0 guibg=#006c7f + +" Other +hi Directory gui=NONE guifg=#00e0ff guibg=NONE +hi LineNr gui=NONE guifg=#60a8bc guibg=NONE +hi NonText gui=BOLD guifg=#00c0c0 guibg=#006276 +hi SpecialKey gui=NONE guifg=#e0a0ff guibg=NONE +hi Title gui=BOLD guifg=#ffffff guibg=NONE +hi Visual gui=NONE guifg=#ffffff guibg=#6060d0 +" hi VisualNOS gui=NONE guifg=#ffffff guibg=#6060d0 + +" Syntax group +hi Comment gui=NONE guifg=#c8d0d0 guibg=NONE +hi Constant gui=NONE guifg=#60ffff guibg=NONE +hi Error gui=BOLD guifg=#ffffff guibg=#ff40a0 +hi Identifier gui=NONE guifg=#cacaff guibg=NONE +hi Ignore gui=NONE guifg=#006074 guibg=NONE +hi PreProc gui=NONE guifg=#ffc0ff guibg=NONE +hi Special gui=NONE guifg=#ffd074 guibg=NONE +hi Statement gui=NONE guifg=#ffff80 guibg=NONE +hi Todo gui=BOLD,UNDERLINE guifg=#ffb0b0 guibg=NONE +hi Type gui=NONE guifg=#80ffa0 guibg=NONE +hi Underlined gui=UNDERLINE guifg=#ffffff guibg=NONE diff --git a/.vim/colors/brookstream.vim b/.vim/colors/brookstream.vim new file mode 100644 index 0000000..ee907c6 --- /dev/null +++ b/.vim/colors/brookstream.vim @@ -0,0 +1,83 @@ +"-------------------------------------------------------------------- +" Name Of File: brookstream.vim. +" Description: Gvim colorscheme, works best with version 6.1 GUI . +" Maintainer: Peter Bäckström. +" Creator: Peter Bäckström. +" URL: http://www.brookstream.org (Swedish). +" Credits: Inspiration from the darkdot scheme. +" Last Change: Friday, April 13, 2003. +" Installation: Drop this file in your $VIMRUNTIME/colors/ directory. +"-------------------------------------------------------------------- + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="brookstream" + +"-------------------------------------------------------------------- + +hi Normal gui=none guibg=#000000 guifg=#bbbbbb +hi Cursor guibg=#44ff44 guifg=#000000 +hi Directory guifg=#44ffff +hi DiffAdd guibg=#080808 guifg=#ffff00 +hi DiffDelete guibg=#080808 guifg=#444444 +hi DiffChange guibg=#080808 guifg=#ffffff +hi DiffText guibg=#080808 guifg=#bb0000 +hi ErrorMsg guibg=#880000 guifg=#ffffff +hi Folded guifg=#000088 +hi IncSearch guibg=#000000 guifg=#bbcccc +hi LineNr guibg=#050505 guifg=#4682b4 +hi ModeMsg guifg=#ffffff +hi MoreMsg guifg=#44ff44 +hi NonText guifg=#4444ff +hi Question guifg=#ffff00 +hi SpecialKey guifg=#4444ff +hi StatusLine gui=none guibg=#2f4f4f guifg=#ffffff +hi StatusLineNC gui=none guibg=#bbbbbb guifg=#000000 +hi Title guifg=#ffffff +hi Visual gui=none guibg=#bbbbbb guifg=#000000 +hi WarningMsg guifg=#ffff00 + +" syntax highlighting groups ---------------------------------------- + +hi Comment guifg=#696969 +hi Constant guifg=#00aaaa +hi Identifier guifg=#00e5ee +hi Statement guifg=#00ffff +hi PreProc guifg=#8470ff +hi Type guifg=#ffffff +hi Special gui=none guifg=#87cefa +hi Underlined gui=bold guifg=#4444ff +hi Ignore guifg=#444444 +hi Error guibg=#000000 guifg=#bb0000 +hi Todo guibg=#aa0006 guifg=#fff300 +hi Operator gui=none guifg=#00bfff +hi Function guifg=#1e90ff +hi String gui=None guifg=#4682b4 +hi Boolean guifg=#9bcd9b + +"hi link Character Constant +"hi link Number Constant +"hi link Boolean Constant +"hi link Float Number +"hi link Conditional Statement +"hi link Label Statement +"hi link Keyword Statement +"hi link Exception Statement +"hi link Repeat Statement +"hi link Include PreProc +"hi link Define PreProc +"hi link Macro PreProc +"hi link PreCondit PreProc +"hi link StorageClass Type +"hi link Structure Type +"hi link Typedef Type +"hi link Tag Special +"hi link Delimiter Special +"hi link SpecialComment Special +"hi link Debug Special +"hi link FoldColumn Folded + +"- end of colorscheme ----------------------------------------------- diff --git a/.vim/colors/brown.vim b/.vim/colors/brown.vim new file mode 100644 index 0000000..aecfe4e --- /dev/null +++ b/.vim/colors/brown.vim @@ -0,0 +1,32 @@ +hi comment guifg=#fef8ff ctermfg=red +hi constant guifg=#aa712f ctermfg=white +hi cursor guibg=#5e3807 guifg=#deb887 +hi diffadd ctermbg=green ctermfg=black +hi diffchange ctermbg=green ctermfg=white +hi diffdelete ctermbg=none ctermfg=darkyellow +hi difftext ctermbg=black ctermfg=green +hi directory guifg=#3e1807 ctermfg=green +hi error guibg=#cc3807 guifg=#deb887 +hi errormsg guifg=#cc3807 guibg=#f9d7a6 +hi identifier guifg=#5e3807 ctermfg=green +hi incsearch guifg=#f9d7a6 guibg=#8e6837 +hi modemsg guifg=#793807 ctermbg=none ctermfg=cyan gui=none +hi moremsg guifg=#793807 gui=none +hi nontext guifg=#ffffff ctermfg=darkgrey +hi normal guibg=#deb887 guifg=#846037 +hi preproc guifg=#7e6f27 ctermfg=white +hi question guifg=#793807 gui=none +hi scrollbar guibg=#deb887 guifg=#ae8857 +hi search guifg=#f9d7a6 ctermbg=cyan ctermfg=yellow guibg=#8e6837 +hi special guifg=#000000 ctermfg=yellow +hi specialkey guifg=#ffffff ctermfg=white +hi statement guifg=#7e5827 ctermfg=cyan +hi statusline guibg=#fee8b7 ctermbg=black ctermfg=darkgreen guifg=#793807 gui=none +hi statuslinenc guibg=#ae8857 ctermbg=black ctermfg=darkcyan guifg=#deb887 gui=none +hi title guifg=#793807 ctermfg=darkgreen gui=none +hi todo guibg=#995827 guifg=#fed8a7 +hi type guifg=#7e5827 ctermfg=yellow gui=none +hi vertsplit guibg=#ae8857 ctermbg=green ctermfg=black guifg=#ae8857 gui=none +hi visual guifg=#f9d7a6 guibg=#8e6837 ctermbg=black ctermfg=darkcyan +hi warningmsg guifg=#cc3807 +hi wildmenu guifg=#f9d7a6 guibg=#8e6837 diff --git a/.vim/colors/buttercream.vim b/.vim/colors/buttercream.vim new file mode 100644 index 0000000..30fb10d --- /dev/null +++ b/.vim/colors/buttercream.vim @@ -0,0 +1,59 @@ +" Vim color file +" vim: tw=0 ts=8 sw=4 +" Scriptname: buttercream +" Maintainer: Håkan Wikström <hakan@wikstrom.st> +" Version: 1.0 (initial release) +" Last Change: 20040126 +" As of now only gui is supported +" Based on the theme fog theme by Thomas R. Kimpton <tomk@emcity.net> + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = "buttercream" + +" Highlight Foreground Background Extras + +hi Normal guifg=#213a58 guibg=#f3edbb +hi NonText guifg=LightBlue guibg=#f4df8b gui=bold +hi Comment guifg=#2f8e99 +hi Constant guifg=#7070a0 +hi Statement guifg=DarkGreen gui=bold +hi identifier guifg=DarkGreen +hi preproc guifg=#408040 +hi type guifg=DarkBlue +hi label guifg=#c06000 +hi operator guifg=DarkGreen gui=bold +hi StorageClass guifg=#a02060 gui=bold +hi Number guifg=Blue +hi Special guifg=#aa8822 +hi Cursor guifg=LightGrey guibg=#880088 +hi lCursor guifg=Black guibg=Cyan +hi ErrorMsg guifg=White guibg=DarkRed +hi DiffText guibg=DarkRed gui=bold +hi Directory guifg=DarkGrey gui=underline +hi LineNr guifg=#ccaa22 +hi MoreMsg guifg=SeaGreen gui=bold +hi Question guifg=DarkGreen gui=bold +hi Search guifg=Black guibg=#887722 +hi SpecialKey guifg=Blue +hi SpecialChar guifg=DarkGrey gui=bold +hi Title guifg=DarkMagenta gui=underline +hi WarningMsg guifg=DarkBlue guibg=#9999cc +hi WildMenu guifg=Black guibg=Yellow gui=underline +hi Folded guifg=DarkBlue guibg=LightGrey +hi FoldColumn guifg=DarkBLue guibg=Grey +hi DiffAdd guibg=DarkBlue +hi DiffChange guibg=DarkMagenta +hi DiffDelete guifg=Blue guibg=DarkCyan gui=bold +hi Ignore guifg=grey90 +hi IncSearch gui=reverse +hi ModeMsg gui=bold +hi StatusLine gui=reverse,bold +hi StatusLineNC gui=reverse +hi VertSplit gui=reverse +hi Visual guifg=LightGrey gui=reverse +hi VisualNOS gui=underline,bold +hi Todo guibg=#ccaa22 gui=bold,underline diff --git a/.vim/colors/bw.vim b/.vim/colors/bw.vim new file mode 100644 index 0000000..4c97e57 --- /dev/null +++ b/.vim/colors/bw.vim @@ -0,0 +1,55 @@ +" Vim color file +" Maintainer: Hans Fugal <hans@fugal.net> +" Last Change: 5 Oct 2001 +" URL: http://fugal.net/vim/colors/bw.vim + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors +" +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="bw" + +hi SpecialKey cterm=bold ctermfg=NONE +hi NonText cterm=bold ctermfg=NONE +hi Directory cterm=bold ctermfg=NONE +hi ErrorMsg cterm=standout ctermfg=NONE +hi IncSearch cterm=reverse ctermfg=NONE +hi Search cterm=reverse ctermfg=NONE +hi MoreMsg cterm=bold ctermfg=NONE +hi ModeMsg cterm=bold ctermfg=NONE +hi LineNr cterm=underline ctermfg=NONE +hi Question cterm=standout ctermfg=NONE +hi StatusLine cterm=bold,reverse ctermfg=NONE +hi StatusLineNC cterm=reverse ctermfg=NONE +hi VertSplit cterm=reverse ctermfg=NONE +hi Title cterm=bold ctermfg=NONE +hi Visual cterm=reverse ctermfg=NONE +hi VisualNOS cterm=bold,underline ctermfg=NONE +hi WarningMsg cterm=standout ctermfg=NONE +hi WildMenu cterm=standout ctermfg=NONE +hi Folded cterm=standout ctermfg=NONE +hi FoldColumn cterm=standout ctermfg=NONE +hi DiffAdd cterm=bold ctermfg=NONE +hi DiffChange cterm=bold ctermfg=NONE +hi DiffDelete cterm=bold ctermfg=NONE +hi DiffText cterm=reverse ctermfg=NONE +hi Comment cterm=bold ctermfg=NONE +hi Constant cterm=underline ctermfg=NONE +hi Special cterm=bold ctermfg=NONE +hi Identifier cterm=underline ctermfg=NONE +hi Statement cterm=bold ctermfg=NONE +hi PreProc cterm=underline ctermfg=NONE +hi Type cterm=underline ctermfg=NONE +hi Underlined cterm=underline ctermfg=NONE +hi Ignore cterm=bold ctermfg=NONE +hi Error cterm=reverse ctermfg=NONE +hi Todo cterm=standout ctermfg=NONE diff --git a/.vim/colors/c.vim b/.vim/colors/c.vim new file mode 100644 index 0000000..6109c22 --- /dev/null +++ b/.vim/colors/c.vim @@ -0,0 +1,32 @@ +" Vim Syntax Highlighting File +" +" Language: C +" +" Extra: This is to copy the vi clone elvis on its +" syntax highlighting. +" +" Maintainer: Dean Jones<dean@cleancode.org> +" +" Comment: This works well with the default c.vim +" that comes with vim6.x. It basically +" overrides the very bright colors it uses +" and uses simple white for highlighting +" key words and types in the C language. +" If you're using Eterm, uncomment the +" Normal line specified below. + +hi clear + +" Eterm users, uncomment the line below +" hi Normal ctermfg=grey + +hi PreProc ctermfg=white +hi Type ctermfg=white +hi Statement ctermfg=white +hi Comment ctermfg=grey +hi Constant cterm=NONE ctermfg=NONE +hi Number cterm=NONE ctermfg=NONE +hi String cterm=NONE ctermfg=NONE +hi Special cterm=NONE ctermfg=NONE + +" EOF for Dean's Elvis like highlighting diff --git a/.vim/colors/camo.vim b/.vim/colors/camo.vim new file mode 100644 index 0000000..059af42 --- /dev/null +++ b/.vim/colors/camo.vim @@ -0,0 +1,76 @@ +" Vim color file +" Maintainer: Tim Aldrich <aldy0169@yahoo.com> +" Last Change: 19 January 2002 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="camo" +hi Normal guifg=bisque guibg=grey15 +hi Cursor guifg=snow guibg=bisque3 +hi CursorIM guifg=OliveDrab4 guibg=bisque +hi Directory guifg=OliveDrab4 guibg=grey15 +hi DiffAdd guifg=DarkOliveGreen1 guibg=grey15 +hi DiffChange guifg=PaleGreen guibg=grey15 +hi DiffDelete guifg=red guibg=grey15 +hi DiffText guifg=grey15 guibg=red +hi ErrorMsg guifg=snow guibg=red +hi VertSplit guifg=bisque4 guibg=DarkOliveGreen1 +hi Folded guifg=DarkOliveGreen2 guibg=grey30 +hi FoldColumn guifg=DarkOliveGreen2 guibg=grey30 +hi IncSearch guifg=bisque guibg=red +hi LineNr guifg=OliveDrab4 guibg=grey15 +hi ModeMsg guifg=khaki3 guibg=grey15 +hi MoreMsg guifg=khaki3 guibg=grey15 +hi NonText guifg=DarkSalmon guibg=grey10 +hi Question guifg=IndianRed guibg=grey10 +hi Search guifg=DarkSalmon guibg=grey15 +hi SpecialKey guifg=yellow guibg=grey15 +hi StatusLine guifg=bisque4 guibg=DarkOliveGreen1 +hi StatusLineNC guifg=bisque4 guibg=DarkOliveGreen3 +hi Title guifg=IndianRed guibg=grey15 +hi Visual guifg=OliveDrab4 guibg=bisque1 +hi WarningMsg guifg=bisque guibg=red +hi WildMenu guifg=LightBlue guibg=DarkViolet + + +"Syntax hilight groups + +hi Comment guifg=tan +hi Constant guifg=khaki +hi String guifg=moccasin +hi Character guifg=chocolate +hi Number guifg=chocolate +hi Boolean guifg=OliveDrab3 +hi Float guifg=chocolate +hi Identifier guifg=khaki4 +hi Function guifg=OliveDrab4 +hi Statement guifg=khaki +hi Conditional guifg=khaki +hi Repeat guifg=khaki +hi Label guifg=khaki +hi Operator guifg=DarkKhaki +hi Keyword guifg=DarkKhaki +hi Exception guifg=khaki +hi PreProc guifg=khaki4 +hi Include guifg=khaki4 +hi Define guifg=khaki1 +hi Macro guifg=khaki2 +hi PreCondit guifg=khaki3 +hi Type guifg=khaki3 +hi StorageClass guifg=tan +hi Structure guifg=DarkGoldenrod +hi Typedef guifg=khaki3 +hi Special guifg=IndianRed +hi SpecialChar guifg=DarkGoldenrod +hi Tag guifg=DarkKhaki +hi Delimiter guifg=DarkGoldenrod +hi SpecialComment guifg=cornsilk +hi Debug guifg=brown +hi Underlined guifg=IndianRed +hi Ignore guifg=grey30 +hi Error guifg=bisque guibg=red +hi Todo guifg=red guibg=bisque + diff --git a/.vim/colors/campfire.vim b/.vim/colors/campfire.vim new file mode 100644 index 0000000..b77c3fc --- /dev/null +++ b/.vim/colors/campfire.vim @@ -0,0 +1,57 @@ +" Vim color file
+" Maintainer: Alexander Timmermans <alexandertimmermans@orange.nl>
+" Last Change: 28 september 2006
+
+set bg=dark
+hi clear
+if exists("syntax_on")
+ syntax reset
+endif
+
+let colors_name = "campfire"
+
+hi Normal guifg=#c0c0c0 guibg=#000040 ctermfg=gray ctermbg=black
+hi ErrorMsg guifg=#ffffff guibg=#287eff ctermfg=white ctermbg=lightblue
+hi Visual guifg=#8080ff guibg=fg gui=reverse ctermfg=lightblue ctermbg=fg cterm=reverse
+hi VisualNOS guifg=#8080ff guibg=fg gui=reverse,underline ctermfg=lightblue ctermbg=fg cterm=reverse,underline
+hi Todo guifg=#d14a14 guibg=#1248d1 ctermfg=red ctermbg=darkblue
+hi Search guifg=#90fff0 guibg=#2050d0 ctermfg=white ctermbg=darkblue cterm=underline term=underline
+hi IncSearch guifg=#b0ffff guibg=#2050d0 ctermfg=darkblue ctermbg=gray
+
+hi SpecialKey guifg=cyan ctermfg=darkcyan
+hi Directory guifg=cyan ctermfg=cyan
+hi Title guifg=magenta gui=none ctermfg=magenta cterm=bold
+hi WarningMsg guifg=red ctermfg=red
+hi WildMenu guifg=yellow guibg=black ctermfg=yellow ctermbg=black cterm=none term=none
+hi ModeMsg guifg=#22cce2 ctermfg=lightblue
+hi MoreMsg ctermfg=darkgreen ctermfg=darkgreen
+hi Question guifg=green gui=none ctermfg=green cterm=none
+hi NonText guifg=#0030ff ctermfg=darkblue
+
+hi StatusLine guifg=blue guibg=darkgray gui=none ctermfg=blue ctermbg=gray term=none cterm=none
+hi StatusLineNC guifg=black guibg=darkgray gui=none ctermfg=black ctermbg=gray term=none cterm=none
+hi VertSplit guifg=black guibg=darkgray gui=none ctermfg=black ctermbg=gray term=none cterm=none
+
+hi Folded guifg=#808080 guibg=#000040 ctermfg=darkgrey ctermbg=black cterm=bold term=bold
+hi FoldColumn guifg=#808080 guibg=#000040 ctermfg=darkgrey ctermbg=black cterm=bold term=bold
+hi LineNr guifg=#90f020 ctermfg=green cterm=none
+
+hi DiffAdd guibg=darkblue ctermbg=darkblue term=none cterm=none
+hi DiffChange guibg=darkmagenta ctermbg=magenta cterm=none
+hi DiffDelete ctermfg=blue ctermbg=cyan gui=bold guifg=Blue guibg=DarkCyan
+hi DiffText cterm=bold ctermbg=red gui=bold guibg=Red
+
+hi lCursor guifg=#ffffff guibg=#000000 ctermfg=bg ctermbg=darkgreen
+
+
+hi Comment guifg=#80a0ff ctermfg=darkred
+hi Constant ctermfg=magenta guifg=#ffa0a0 cterm=none
+hi Special ctermfg=brown guifg=Orange cterm=none gui=none
+hi Identifier ctermfg=cyan guifg=seagreen1 cterm=none
+hi Statement ctermfg=yellow cterm=none guifg=#ffff60 gui=none
+hi PreProc ctermfg=magenta guifg=gold gui=none cterm=none
+hi type ctermfg=green guifg=seagreen1 gui=none cterm=none
+hi Underlined cterm=underline term=underline
+hi Ignore guifg=bg ctermfg=bg
+hi String term=NONE cterm=NONE gui=NONE start=^[[m^[[33m stop=^[[m^[[32m ctermfg=3 guifg=LightGrey
+hi Constant term=NONE cterm=NONE gui=NONE start=^[[m^[[33m stop=^[[m^[[32m ctermfg=3 guifg=LightGrey
diff --git a/.vim/colors/candy.vim b/.vim/colors/candy.vim new file mode 100644 index 0000000..545ff7c --- /dev/null +++ b/.vim/colors/candy.vim @@ -0,0 +1,78 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/04/28 Sun 19:35. +" version: 1.0 +" This color scheme uses a dark background. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "candy" + +hi Normal guifg=#f0f0f8 guibg=#000000 + +" Search +hi IncSearch gui=UNDERLINE guifg=#80ffff guibg=#0060c0 +hi Search gui=NONE guifg=#f0f0f8 guibg=#0060c0 + +" Messages +hi ErrorMsg gui=BOLD guifg=#ffa0ff guibg=NONE +hi WarningMsg gui=BOLD guifg=#ffa0ff guibg=NONE +hi ModeMsg gui=BOLD guifg=#40f0d0 guibg=NONE +hi MoreMsg gui=BOLD guifg=#00ffff guibg=#008070 +hi Question gui=BOLD guifg=#e8e800 guibg=NONE + +" Split area +hi StatusLine gui=NONE guifg=#000000 guibg=#c8c8d8 +hi StatusLineNC gui=NONE guifg=#707080 guibg=#c8c8d8 +hi VertSplit gui=NONE guifg=#606080 guibg=#c8c8d8 +hi WildMenu gui=NONE guifg=#000000 guibg=#a0a0ff + +" Diff +hi DiffText gui=NONE guifg=#ff78f0 guibg=#a02860 +hi DiffChange gui=NONE guifg=#e03870 guibg=#601830 +hi DiffDelete gui=NONE guifg=#a0d0ff guibg=#0020a0 +hi DiffAdd gui=NONE guifg=#a0d0ff guibg=#0020a0 + +" Cursor +hi Cursor gui=NONE guifg=#00ffff guibg=#008070 +hi lCursor gui=NONE guifg=#ffffff guibg=#8800ff +hi CursorIM gui=NONE guifg=#ffffff guibg=#8800ff + +" Fold +hi Folded gui=NONE guifg=#40f0f0 guibg=#005080 +hi FoldColumn gui=NONE guifg=#40c0ff guibg=#00305c + +" Other +hi Directory gui=NONE guifg=#40f0d0 guibg=NONE +hi LineNr gui=NONE guifg=#9090a0 guibg=NONE +hi NonText gui=BOLD guifg=#4080ff guibg=NONE +hi SpecialKey gui=BOLD guifg=#8080ff guibg=NONE +hi Title gui=BOLD guifg=#f0f0f8 guibg=NONE +hi Visual gui=NONE guifg=#e0e0f0 guibg=#707080 + +" Syntax group +hi Comment gui=NONE guifg=#c0c0d0 guibg=NONE +hi Constant gui=NONE guifg=#90d0ff guibg=NONE +hi Error gui=BOLD guifg=#ffffff guibg=#ff0088 +hi Identifier gui=NONE guifg=#40f0f0 guibg=NONE +hi Ignore gui=NONE guifg=#000000 guibg=NONE +hi PreProc gui=NONE guifg=#40f0a0 guibg=NONE +hi Special gui=NONE guifg=#e0e080 guibg=NONE +hi Statement gui=NONE guifg=#ffa0ff guibg=NONE +hi Todo gui=BOLD,UNDERLINE guifg=#ffa0a0 guibg=NONE +hi Type gui=NONE guifg=#ffc864 guibg=NONE +hi Underlined gui=UNDERLINE guifg=#f0f0f8 guibg=NONE + +" HTML +hi htmlLink gui=UNDERLINE +hi htmlBold gui=BOLD +hi htmlBoldItalic gui=BOLD,ITALIC +hi htmlBoldUnderline gui=BOLD,UNDERLINE +hi htmlBoldUnderlineItalic gui=BOLD,UNDERLINE,ITALIC +hi htmlItalic gui=ITALIC +hi htmlUnderline gui=UNDERLINE +hi htmlUnderlineItalic gui=UNDERLINE,ITALIC diff --git a/.vim/colors/caramel.vim b/.vim/colors/caramel.vim new file mode 100644 index 0000000..81f6fd5 --- /dev/null +++ b/.vim/colors/caramel.vim @@ -0,0 +1,67 @@ +" Vim color file +" Maintainer : Brian Gant +" Email : gantbd@muohio.edu +" Last Change : 2/15/03 +" Version : 0.1 +" +" TODO : add colors for diff and other non-implemented +" stuff +" +" LICENCE (heh) : Emailware. Basically it means use it, +" abuse it, change it, love it, leave it, whatever! I +" do however make the simple request that if you use the +" scheme, drop me an email and let me know what you think +" about it, especially if you modify it! I don't use +" the non-implemented features on a regular enough basis +" to get a feel for how they flesh out. +" +" Designed for use with COBOL, but looks pretty good with +" Perl, PHP, and C/C++ too (at least I think so). +" +" Brian +" +" --------------------------------------------------------- + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="caramel" + +" --------------------------------------------------------- + +hi Normal guifg=#dca454 guibg=#5c5094 + +" --------------------------------------------------------- + +hi Cursor guifg=#303030 guibg=#dca454 +hi CursorIM guifg=#303030 guibg=#dca454 +hi ErrorMsg guifg=#b4a8a8 guibg=bg +hi IncSearch guifg=#e0d070 guibg=#303030 +hi LineNr guifg=#b4a8a8 guibg=#39325d +hi ModeMsg guifg=#b4a8a8 guibg=bg +hi MoreMsg guifg=#b4a8a8 guibg=bg +hi NonText guifg=#b4a8a8 guibg=#39325d +hi Question guifg=#b4a8a8 guibg=bg +hi Search guifg=#303030 guibg=#e0d070 +hi StatusLine guifg=#e0d070 guibg=#303030 +hi StatusLineNC guifg=#dca454 guibg=#303030 +hi Title guifg=#b4a8a8 guibg=#39325d +hi Visual guifg=#b4a8a8 guibg=#303030 +hi VisualNOS guifg=#b4a8a8 guibg=#303030 +hi WarningMsg guifg=#b4a8a8 guibg=#39325d + +" --------------------------------------------------------- + +hi Comment guifg=#b4a8a8 guibg=bg +hi Constant guifg=#9cd464 guibg=bg +hi Identifier guifg=#e8c47c guibg=bg +hi Statement guifg=#8088bc guibg=bg +hi PreProc guifg=#e0d070 guibg=bg +hi Type guifg=#e0d070 guibg=bg +hi Special guifg=#e0d070 guibg=bg +hi Underlined guifg=#9cd464 guibg=bg +hi Ignore guifg=fg guibg=bg +hi Error guifg=#cc74a8 guibg=#9cd464 +hi Todo guifg=bg guibg=#e0d070 diff --git a/.vim/colors/chela_light.vim b/.vim/colors/chela_light.vim new file mode 100644 index 0000000..3fd8d95 --- /dev/null +++ b/.vim/colors/chela_light.vim @@ -0,0 +1,89 @@ +" Vim color file +" +" Maintainer: Stefan Karlsson <stefan.74@comhem.se> +" Last Change: 29 September 2004 +" + +set background=light + +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name="chela_light" + + +"= Syntax Groups ============================================= + +hi comment guibg=#fafafa guifg=#339900 gui=none + +hi constant guibg=#fafafa guifg=#dd3333 gui=none +hi specialchar guibg=#fafafa guifg=#ff3333 gui=underline + +hi identifier guibg=#fafafa guifg=#3333ff gui=none + +hi statement guibg=#fafafa guifg=#3333ff gui=none +hi label guibg=#fafafa guifg=#3333ff gui=none + +hi preproc guibg=#fafafa guifg=#3333ff gui=none +hi include guibg=#fafafa guifg=#3333ff gui=none +hi precondit guibg=#fafafa guifg=#cc00cc gui=none + +hi type guibg=#fafafa guifg=#3333ff gui=none + +hi special guibg=#fafafa guifg=#cc00cc gui=none + +hi error guibg=#ff3333 guifg=#ffffff gui=none + +hi todo guibg=#339933 guifg=#ffffff gui=none + + +"= General Groups ============================================ + +hi cursor guibg=#000000 guifg=#ffffff gui=none + +hi directory guibg=#fafafa guifg=#3333ff gui=none + +hi diffadd guibg=#66ff66 guifg=#000000 gui=none +hi diffdelete guibg=#ff6666 guifg=#ff6666 gui=none +hi diffchange guibg=#ffff00 guifg=#cccc99 gui=none +hi difftext guibg=#ffff00 guifg=#000000 gui=none + +hi errormsg guibg=#ff3333 guifg=#ffffff gui=none + +hi vertsplit guibg=#3333ff guifg=#3333ff gui=none + +hi folded guibg=#eeeeee guifg=#3333ff gui=none +hi foldcolumn guibg=#eeeeee guifg=#999999 gui=none + +hi linenr guibg=#fafafa guifg=#bbbbbb gui=none + +hi modemsg guibg=#fafafa guifg=#999999 gui=none + +hi moremsg guibg=#339900 guifg=#ffffff gui=none +hi question guibg=#339900 guifg=#ffffff gui=none + +hi nontext guibg=#fafafa guifg=#999999 gui=none + +hi normal guibg=#fafafa guifg=#000000 gui=none + +hi search guibg=#ffff00 guifg=#000000 gui=none +hi incsearch guibg=#ffbb00 guifg=#000000 gui=none + +hi specialkey guibg=#fafafa guifg=#cc00cc gui=none + +hi statusline guibg=#3333ff guifg=#ffffff gui=none +hi statuslinenc guibg=#3333ff guifg=#999999 gui=none + +hi title guibg=#fafafa guifg=#6666ff gui=none + +hi visual guibg=#bbbbbb guifg=#333333 gui=none + +hi warningmsg guibg=#fafafa guifg=#ff0000 gui=none + +hi wildmenu guibg=#339900 guifg=#ffffff gui=none + + +" [eof] + diff --git a/.vim/colors/chocolateliquor.vim b/.vim/colors/chocolateliquor.vim new file mode 100644 index 0000000..c71bdf3 --- /dev/null +++ b/.vim/colors/chocolateliquor.vim @@ -0,0 +1,34 @@ +" Vim color file +" Maintainer: Gerald S. Williams +" Last Change: 2003 Apr 17 + +" This started as a dark version (perhaps opposite is a better term) of +" PapayaWhip, but took on a life of its own. Easy on the eyes, but still +" has good contrast. Not bad on a color terminal, either (of course, on +" my color terms, Black == #3f1f1f and White == PapayaWhip :-P ). +" +" Only values that differ from defaults are specified. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "ChocolateLiquor" + +hi Normal guibg=#3f1f1f guifg=PapayaWhip ctermfg=White +hi NonText guibg=#1f0f0f guifg=Brown2 ctermfg=Brown +hi LineNr guibg=#1f0f0f guifg=Brown2 +hi DiffDelete guibg=DarkRed guifg=White ctermbg=DarkRed ctermfg=White +hi DiffAdd guibg=DarkGreen guifg=White ctermbg=DarkGreen ctermfg=White +hi DiffText gui=NONE guibg=DarkCyan guifg=Yellow ctermbg=DarkCyan ctermfg=Yellow +hi DiffChange guibg=DarkCyan guifg=White ctermbg=DarkCyan ctermfg=White +hi Constant ctermfg=Red +hi Comment guifg=LightBlue3 +hi PreProc guifg=Plum ctermfg=Magenta +hi StatusLine guibg=White guifg=Sienna4 cterm=NONE ctermfg=Gray ctermbg=Brown +hi StatusLineNC gui=NONE guifg=Black guibg=Gray ctermbg=Black ctermfg=Gray +hi VertSplit guifg=Gray +hi Search guibg=Gold3 ctermfg=White +hi Type gui=NONE guifg=DarkSeaGreen2 +hi Statement gui=NONE guifg=Gold3 diff --git a/.vim/colors/cleanphp.vim b/.vim/colors/cleanphp.vim new file mode 100644 index 0000000..c0af691 --- /dev/null +++ b/.vim/colors/cleanphp.vim @@ -0,0 +1,81 @@ +" Vim color file +" Maintainer: Billy McIntosh <billymcintosh@ntlworld.com> +" Last Change: June 24, 2003 +" Licence: Public Domain + +" This package offers a eye-catching color scheme for PHP syntax + +" First remove all existing highlighting. +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "cleanphp" + +hi Normal guifg=#008000 guibg=#d3e4f8 + +hi ErrorMsg guibg=#d3e4f8 guifg=Red +hi IncSearch gui=reverse +hi ModeMsg gui=bold +hi StatusLine gui=reverse,bold +hi StatusLineNC gui=reverse +hi VertSplit gui=reverse +hi Visual gui=reverse guifg=#c0c0c0 guibg=fg +hi VisualNOS gui=underline,bold +hi DiffText gui=bold guibg=Red +hi Cursor guibg=Black guifg=NONE +hi lCursor guibg=Black guifg=NONE +hi Directory guifg=#ff8040 +hi LineNr guifg=#008000 +hi MoreMsg gui=bold guifg=SeaGreen +hi NonText gui=bold guifg=#ff8040 guibg=#d3e4f8 +hi Question gui=bold guifg=Black +hi Search guibg=#008000 guifg=NONE +hi SpecialKey guifg=#ff8040 +hi Title gui=bold guifg=Magenta +hi WarningMsg guifg=Red +hi WildMenu guibg=Cyan guifg=#d3e4f8 +hi Folded guibg=White guifg=Darkblue +hi FoldColumn guibg=#c0c0c0 guifg=Darkblue +hi DiffAdd guibg=Lightblue +hi DiffChange guibg=LightMagenta +hi DiffDelete gui=bold guifg=#ff8040 guibg=LightCyan + +hi Comment guifg=#ff8040 guibg=#d3e4f8 +hi Constant guifg=#BB0000 guibg=#d3e4f8 +hi PreProc guifg=#008080 guibg=#d3e4f8 +hi Statement gui=NONE guifg=#008000 guibg=#d3e4f8 +hi Special guifg=#008080 guibg=#d3e4f8 +hi Ignore guifg=#c0c0c0 +hi Identifier guifg=#000080 guibg=#d3e4f8 +hi Type guifg=#00BB00 guibg=#d3e4f8 + +hi link IncSearch Visual +hi link String Constant +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Function Identifier +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special + +" vim: sw=2
\ No newline at end of file diff --git a/.vim/colors/coffee.vim b/.vim/colors/coffee.vim new file mode 100644 index 0000000..284fb01 --- /dev/null +++ b/.vim/colors/coffee.vim @@ -0,0 +1,60 @@ +" Vim color file +" Maintainer: David Lazar <david#c7.campus.utcluj.ro> +" Last Change: Fri Jan 31 01:08:13 UTC 2003 +" Version: 1.0 +" URL: http://c7.campus.utcluj.ro/~david/coffee.vim +" +" This colorscheme script was created using Hans Fugal's colorscheme template + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="coffee" + +hi Normal gui=none guibg= #514c44 guifg=#b0a594 + +hi Cursor gui=none guibg=#ffffff guifg=bg +hi link CursorIM Cursor +hi Directory guifg=#ffffff +hi DiffAdd guibg=#9e9485 guifg=bg +hi DiffDelete guibg=#2e2b26 guifg=fg +hi DiffChange guibg=#70695e guifg=fg +hi DiffText guibg=#70695e guifg=#880000 +hi ErrorMsg guibg=#880000 guifg=#ffffff +hi Folded guifg=#88c0c7 +hi FoldColumn guifg=#88c0c7 +hi IncSearch guifg=#fff0d6 guibg=#000000 +hi LineNr guibg=#000000 guifg=#ffff21 +hi ModeMsg guifg=#ffffff +hi MoreMsg guifg=#00ff00 +hi NonText guifg=#61616d +hi Question guifg=#ffff00 +hi link Search IncSearch +hi SpecialKey guifg=#ffffff +hi StatusLine guibg=#000000 guifg=#deefff +hi StatusLineNC guibg=#395956 guifg=#a4b1bd +hi VertSplit guibg=#395956 guifg=#a4b1bd +hi Title guifg=#ffffff +hi Visual guifg=#fff0d6 guibg=#000000 +hi VisualNOS guifg=#dddddd guibg=bg +hi WarningMsg guifg=#ffff00 +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment guifg=#1a1813 +hi Constant guifg=#cefece +hi Identifier guifg=#cc7c3d +hi Statement guifg=#effec5 +hi PreProc guifg=#85ff85 +hi Type guifg=#c6feeb +hi Special guifg=#eeffee +hi Underlined gui=underline guifg=#ffffff +hi Ignore guifg=fg +hi Error guibg=bg guifg=#ff4c4a +hi Todo guibg=#aa0006 guifg=#fff300 + diff --git a/.vim/colors/colorer.vim b/.vim/colors/colorer.vim new file mode 100644 index 0000000..30e1277 --- /dev/null +++ b/.vim/colors/colorer.vim @@ -0,0 +1,79 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" Maintainer: Sergey V. Beduev <shaman@interdon.net> +" Last Change: Sun Mar 28 11:19:38 EEST 2004 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "colorer" + +hi Normal ctermfg=Gray guifg=DarkGray guibg=black +hi Visual ctermfg=DarkCyan guibg=black guifg=DarkCyan +hi Comment ctermfg=Brown guifg=#B46918 gui=NONE +hi PerlPOD ctermfg=Brown guifg=#B86A18 gui=NONE +hi Constant ctermfg=White guifg=White gui=NONE +hi Charachter ctermfg=Yellow guifg=Yellow gui=NONE +hi String ctermfg=Yellow guifg=Yellow gui=NONE +hi Number ctermfg=White guifg=White gui=NONE +hi Boolean ctermfg=Cyan guifg=DarkGray gui=NONE +hi Special ctermfg=DarkMagenta guifg=Red gui=NONE +hi Define ctermfg=LightMagenta guifg=Magenta gui=NONE +hi Identifier ctermfg=Green guifg=Green gui=NONE +hi Exception ctermfg=White guifg=White gui=NONE +hi Statement ctermfg=White guifg=White gui=NONE +hi Label ctermfg=White guifg=White gui=NONE +hi Keyword ctermfg=White guifg=White gui=NONE +hi PreProc ctermfg=Green guifg=Green gui=NONE +hi Type ctermfg=LightGreen guifg=Green gui=NONE +hi Function ctermfg=White guifg=White gui=NONE +hi Repeat ctermfg=White guifg=White gui=NONE +hi Operator ctermfg=White guifg=White gui=NONE +hi Ignore ctermfg=black guifg=bg +hi Folded ctermbg=LightBlue ctermfg=Gray guibg=DarkBlue guifg=DarkGray gui=NONE +hi Error term=reverse ctermbg=Red ctermfg=White guibg=darkRed guifg=White gui=NONE +hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Black guibg=#AD5500 gui=NONE +hi Done term=standout ctermbg=Gray ctermfg=White guifg=White guibg=Gray gui=NONE + +hi SpellErrors ctermfg=DarkRed guifg=Black gui=NONE + +hi MailQ ctermfg=darkcyan guibg=black gui=NONE +hi MailQu ctermfg=darkgreen guibg=black gui=NONE +hi MyDiffNew ctermfg=magenta guifg=red gui=NONE +hi MyDiffCommLine ctermfg=white ctermbg=red guifg=white guibg=darkred gui=NONE +hi MyDiffRemoved ctermfg=LightRed guifg=red gui=NONE +hi MyDiffSubName ctermfg=DarkCyan guifg=Cyan gui=NONE +hi MyDiffNormal ctermbg=White ctermfg=black guibg=White guifg=black gui=NONE +hi MoreMsg gui=NONE +hi ModeMsg gui=NONE +hi Title gui=NONE +hi NonText gui=NONE +hi DiffDelete gui=NONE +hi DiffText gui=NONE +hi StatusLine guifg=black guibg=gray gui=NONE +hi Question gui=NONE +" Common groups that link to default highlighting. +" You can specify other highlighting easily. +"hi link String Constant +"hi link Character Constant +"hi link Number Constant +"hi link Boolean Constant +hi link Float Number +hi link Conditional Repeat +hi link Include PreProc +hi link Structure Define +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Normal +hi link SpecialComment Special +hi link Debug Special + diff --git a/.vim/colors/cool.vim b/.vim/colors/cool.vim new file mode 100644 index 0000000..a7593d9 --- /dev/null +++ b/.vim/colors/cool.vim @@ -0,0 +1,82 @@ +" Vim color file +" Maintainer: Gergely Kontra <kgergely@mcl.hu> +" Last Change: 2002. 07. 03. +" Based on scite colors. +" I've changed my mind, and inverted the colors. +" After an hour, this is the result. +" Not resembles to scite's colors :-] +" I'm a bit red-blind, so if you have suggestions, don't hesitate :) +" ^^^^^^^^^ Sorry, I cannot speak English well, just want to say, +" that in some rare cases I cannot distinguish between some colors +" (I've just realized it, when I see some special tests) + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +"colorscheme default +let g:colors_name = "cool" + + +" GUI +"highlight Normal guifg=#77BBFF guibg=#304060 +highlight Normal guifg=#77BBFF guibg=#102040 +highlight Normal ctermfg=LightBlue ctermbg=Black + +highlight Comment guifg=#EEEEEE guibg=#393939 +highlight Comment ctermfg=white ctermbg=DarkGrey + +highlight Constant gui=underline +highlight Constant ctermfg=LightBlue cterm=bold,underline + +highlight Cursor guifg=#999999 guibg=#FFFFFF + +highlight Define guifg=#FFFF80 guibg=#000099 gui=bold +highlight Define ctermfg=Yellow ctermbg=DarkBlue cterm=bold + +highlight Delimiter guifg=#FFFFFF guibg=#221F22 gui=bold + +highlight FoldColumn guifg=#FFFFFF guibg=#222222 +highlight FoldColumn ctermfg=White ctermbg=DarkGrey cterm=reverse + +highlight Folded guifg=#000000 guibg=#999999 +highlight Folded ctermfg=DarkGrey ctermbg=Black cterm=reverse + +highlight Function guifg=#dddddd guibg=#000099 gui=bold +highlight Function ctermfg=White ctermbg=DarkBlue cterm=bold + +highlight IncSearch guifg=#000000 guibg=#ffffff gui=bold,underline + +highlight LineNr guifg=#FFFFFF guibg=#444444 + +highlight Number guifg=#dddddd gui=bold +highlight Number ctermfg=LightCyan + +highlight PreProc guibg=#000000 guifg=#77bbff gui=bold + +highlight Search guifg=#ffffff guibg=#335577 +highlight Search ctermfg=White ctermbg=Cyan cterm=reverse + +highlight Special guifg=#ccaa55 guibg=#102040 gui=none +highlight Special ctermfg=Brown ctermbg=Black cterm=bold + +highlight Statement guifg=#FF8080 gui=bold +highlight Statement ctermfg=Magenta cterm=bold + +highlight StatusLine guifg=#FFFFFF guibg=#553333 +highlight StatusLine ctermfg=white ctermbg=DarkRed + +highlight StatusLineNC guifg=#AA8888 guibg=#000000 +highlight StatusLineNC ctermfg=red ctermbg=black + +highlight String guifg=#99ffaa guibg=#000000 +highlight String ctermfg=White + +highlight Subtitle guifg=#FFFFFF guibg=#994444 gui=bold,underline + +highlight Type guifg=#FFFFFF gui=NONE +highlight Type guifg=white gui=NONE + +highlight Visual guibg=#112233 guifg=#6688AA +highlight Visual ctermbg=DarkBlue ctermfg=LightBlue diff --git a/.vim/colors/dante.vim b/.vim/colors/dante.vim new file mode 100644 index 0000000..f584889 --- /dev/null +++ b/.vim/colors/dante.vim @@ -0,0 +1,83 @@ +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" File: "/home/caciano/.vim/dante.vim" +" Created: "Thu, 23 May 2002 00:12:20 -0300 (caciano)" +" Updated: "Sat, 24 Aug 2002 14:04:21 -0300 (caciano)" +" Copyright (C) 2002, Caciano Machado <caciano@inf.ufrgs.br> +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Colorscheme Option: +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +hi clear +if exists("syntax on") + syntax reset +endif +let g:colors_name = "dante" + +" General colors +hi Normal ctermfg=gray guifg=peachpuff3 guibg=black +hi Directory term=bold ctermfg=blue guifg=royalblue +hi ErrorMsg term=standout ctermfg=white ctermbg=red guifg=white guibg=red3 +hi NonText term=bold ctermfg=darkgray guibg=gray3 guifg=gray20 +hi SpecialKey term=bold ctermfg=darkgray guifg=gray30 +hi LineNr term=underline ctermfg=darkgray guifg=ivory4 guibg=gray4 +hi IncSearch term=reverse cterm=reverse gui=reverse,bold guifg=darkgoldenrod2 +hi Search term=reverse ctermfg=black ctermbg=yellow guifg=gray10 guibg=gold2 +hi Visual term=bold,reverse cterm=bold,reverse ctermfg=gray ctermbg=black gui=bold,reverse guifg=gray40 guibg=black +hi VisualNOS term=bold,underline cterm=bold,underline gui=bold,underline +hi MoreMsg term=bold ctermfg=green gui=bold guifg=olivedrab1 +hi ModeMsg term=bold cterm=bold gui=bold +hi Question term=standout ctermfg=green gui=bold guifg=olivedrab1 +hi WarningMsg term=standout ctermfg=red gui=bold guifg=red3 +hi WildMenu term=standout ctermfg=black ctermbg=yellow guifg=black guibg=gold2 +hi Folded term=standout ctermfg=blue ctermbg=white guifg=royalblue1 guibg=white +hi FoldColumn term=standout ctermfg=blue ctermbg=white guifg=royalblue3 guibg=white +hi DiffAdd term=bold ctermbg=blue guibg=royalblue2 +hi DiffChange term=bold ctermbg=darkmagenta guibg=maroon +hi DiffDelete term=bold cterm=bold ctermfg=lightblue ctermbg=cyan gui=bold guifg=lightblue guibg=cyan4 +hi DiffText term=reverse cterm=bold ctermbg=red gui=bold guibg=red3 +hi Cursor guifg=bg guibg=fg +hi lCursor guifg=bg guibg=fg +hi StatusLine term=reverse cterm=reverse gui=reverse guifg=gray60 +hi StatusLineNC term=reverse cterm=reverse gui=reverse guifg=gray40 +hi VertSplit term=reverse cterm=reverse gui=bold,reverse guifg=gray40 +hi Title term=bold ctermfg=magenta gui=bold guifg=aquamarine + +" syntax hi colors +hi Comment term=bold ctermfg=darkcyan guifg=cyan4 +hi PreProc term=underline ctermfg=darkblue guifg=dodgerblue4 +hi Constant term=underline ctermfg=darkred guifg=firebrick3 +hi Type term=underline ctermfg=darkgreen gui=none guifg=chartreuse3 +hi Statement term=bold ctermfg=darkyellow gui=none guifg=gold3 +hi Identifier term=underline ctermfg=darkgreen guifg=darkolivegreen4 +hi Ignore term=bold ctermfg=darkgray guifg=gray45 +hi Special term=underline ctermfg=brown guifg=sienna +hi Error term=reverse ctermfg=gray ctermbg=red guifg=gray guibg=red3 +hi Todo term=standout ctermfg=black ctermbg=yellow gui=bold guifg=gray10 guibg=yellow4 +hi Underlined term=underline cterm=underline ctermfg=darkblue gui=underline guifg=slateblue +hi Number term=underline ctermfg=darkred guifg=red2 +" syntax hi links +hi link String Constant +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Function Identifier +hi link Number Constant +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Keyword Statement +hi link Exception Statement +hi link Operator Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" diff --git a/.vim/colors/darkblack.vim b/.vim/colors/darkblack.vim new file mode 100644 index 0000000..5dcd263 --- /dev/null +++ b/.vim/colors/darkblack.vim @@ -0,0 +1,60 @@ +" Vim color file +" Maintainer: Matthew Jimenez <mjimenez@ersnet.net> +" Last Change: 2005 Feb 25 + +" darkblack -- an alteration to the darkblue colorscheme by Bohdan Vlasyuk <bohdan@vstu.edu.ua> + + +set bg=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "darkblack" + +hi Normal guifg=lightgrey guibg=black ctermfg=lightgray ctermbg=black +hi ErrorMsg guifg=white guibg=lightblue ctermfg=white ctermbg=lightblue +hi Visual guifg=lightblue guibg=fg gui=reverse ctermfg=lightblue ctermbg=fg cterm=reverse +hi VisualNOS guifg=lightblue guibg=fg gui=reverse,underline ctermfg=lightblue ctermbg=fg cterm=reverse,underline +hi Todo guifg=red guibg=black ctermfg=red ctermbg=black +hi Search guifg=white guibg=black ctermfg=white ctermbg=black cterm=underline term=underline +hi IncSearch guifg=black guibg=gray ctermfg=black ctermbg=gray + +hi SpecialKey guifg=cyan ctermfg=darkcyan +hi Directory guifg=cyan ctermfg=cyan +hi Title guifg=magenta gui=none ctermfg=magenta cterm=bold +hi WarningMsg guifg=red ctermfg=red +hi WildMenu guifg=yellow guibg=black ctermfg=yellow ctermbg=black cterm=none term=none +hi ModeMsg guifg=lightblue ctermfg=lightblue +hi MoreMsg ctermfg=darkgreen ctermfg=darkgreen +hi Question guifg=green gui=none ctermfg=green cterm=none +hi NonText guifg=lightcyan ctermfg=lightcyan + +hi StatusLine guifg=lightblue guibg=darkgray gui=none ctermfg=lightblue ctermbg=gray term=none cterm=none +hi StatusLineNC guifg=black guibg=darkgray gui=none ctermfg=black ctermbg=gray term=none cterm=none +hi VertSplit guifg=black guibg=darkgray gui=none ctermfg=black ctermbg=gray term=none cterm=none + +hi Folded guifg=darkgrey guibg=black ctermfg=darkgrey ctermbg=black cterm=bold term=bold +hi FoldColumn guifg=darkgrey guibg=black ctermfg=darkgrey ctermbg=black cterm=bold term=bold +hi LineNr guifg=green ctermfg=green cterm=none + +hi DiffAdd guibg=black ctermbg=black term=none cterm=none +hi DiffChange guibg=darkmagenta ctermbg=magenta cterm=none +hi DiffDelete ctermfg=lightblue ctermbg=cyan gui=bold guifg=Blue guibg=DarkCyan +hi DiffText cterm=bold ctermbg=red gui=bold guibg=Red + +hi Cursor guifg=bg guibg=lightgrey ctermfg=bg ctermbg=lightgrey +hi lCursor guifg=bg guibg=darkgreen ctermfg=bg ctermbg=darkgreen + + +hi Comment guifg=lightblue ctermfg=lightblue +hi Constant ctermfg=magenta guifg=magenta cterm=none +hi Special ctermfg=brown guifg=Orange cterm=none gui=none +hi Identifier ctermfg=cyan guifg=cyan cterm=none +hi Statement ctermfg=yellow cterm=none guifg=yellow gui=none +hi PreProc ctermfg=magenta guifg=magenta gui=none cterm=none +hi type ctermfg=green guifg=green gui=none cterm=none +hi Underlined cterm=underline term=underline +hi Ignore guifg=bg ctermfg=bg + diff --git a/.vim/colors/darkblue2.vim b/.vim/colors/darkblue2.vim new file mode 100644 index 0000000..e31483b --- /dev/null +++ b/.vim/colors/darkblue2.vim @@ -0,0 +1,99 @@ +" Vim color file +" Maintainer: Datila Carvalho <datila@saci.homeip.net> +" Last Change: November, 3, 2003 +" Version: 0.1 + +" This is a VIM's version of the emacs color theme +" _Dark Blue2_ created by Chris McMahan. + +""" Init stuff + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "darkblue2" + + +""" Colors + +" GUI colors +hi Cursor guifg=#233b5a guibg=Yellow +hi CursorIM guifg=NONE guibg=Yellow +hi Directory gui=bold guifg=cyan +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +hi DiffText guibg=grey50 +hi ErrorMsg gui=bold guifg=White guibg=gray85 +hi VertSplit gui=bold guifg=NONE guibg=gray80 +"hi Folded +"hi FoldColumn +"hi IncSearch +"hi LineNr +hi ModeMsg gui=bold +"hi MoreMsg +"hi NonText +hi Normal guibg=#233b5a guifg=#fff8dc +"hi Question +hi Search gui=bold guifg=#233b5a guibg=lightgoldenrod +"hi SpecialKey +hi StatusLine guifg=aquamarine +hi StatusLineNC guifg=steelblue3 +"hi Title +hi Visual guifg=steelblue guibg=fg +hi VisualNOS gui=bold guifg=steelblue guibg=fg +hi WarningMsg guifg=White guibg=Tomato +"hi WildMenu + +" Colors for syntax highlighting +hi Comment gui=italic guifg=mediumaquamarine + +hi Constant gui=bold guifg=lightgoldenrod1 + hi String guifg=aquamarine + hi Character guifg=aquamarine + hi Number gui=bold guifg=lightgoldenrod1 + hi Boolean gui=bold guifg=lightgoldenrod1 + hi Float gui=bold guifg=lightgoldenrod1 + +hi Identifier gui=bold guifg=palegreen + hi Function guifg=lightskyblue + +hi Statement gui=bold guifg=cyan + hi Conditional gui=bold guifg=cyan + hi Repeat gui=bold guifg=cyan + hi Label guifg=cyan + hi Operator guifg=cyan + "hi Keyword + "hi Exception + +hi PreProc guifg=lightsteelblue + hi Include gui=bold guifg=lightsteelblue + hi Define guifg=lightsteelblue + hi Macro guifg=lightsteelblue + hi PreCondit guifg=lightsteelblue + +hi Type gui=bold guifg=palegreen + hi StorageClass gui=bold guifg=lightgoldenrod1 + hi Structure gui=bold guifg=lightgoldenrod1 + hi Typedef gui=bold guifg=lightgoldenrod1 + +"hi Special + ""Underline Character + "hi SpecialChar + "hi Tag + ""Statement + "hi Delimiter + ""Bold comment (in Java at least) + "hi SpecialComment + "hi Debug + +hi Underlined gui=underline + +hi Ignore guifg=bg + +hi Error gui=bold guifg=White guibg=Red + +"hi Todo diff --git a/.vim/colors/darkdot.vim b/.vim/colors/darkdot.vim new file mode 100644 index 0000000..0275896 --- /dev/null +++ b/.vim/colors/darkdot.vim @@ -0,0 +1,80 @@ +" Vim color file +" Maintainer: David Lazar <david#c7.campus.utcluj.ro> +" Last Change: Thu May 20 16:27:13 EEST 2004 +" Version: 2.2 +" URL: http://www.c7obs.net/~david/stuff/darkdot.vim +" +" This colorscheme script was created using Hans Fugal's colorscheme template + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="darkdot" + +hi Normal cterm=none gui=none guibg=#101020 guifg=#a8aaaa +hi Cursor cterm=none guibg=#44ff44 guifg=#000000 +hi link CursorIM Cursor +hi Directory ctermfg=cyan guifg=#44ffff +hi DiffAdd ctermbg=blue ctermfg=yellow guibg=#080888 guifg=#ffff00 +hi DiffDelete ctermbg=black ctermfg=darkgray guibg=#080808 guifg=#444444 +hi DiffChange ctermbg=black guibg=#080808 guifg=#ffffff +hi DiffText ctermbg=black ctermfg=darkred guibg=#080808 guifg=#bb0000 +hi ErrorMsg ctermbg=darkred ctermfg=white guibg=#880000 guifg=#ffffff +hi Folded ctermbg=black ctermfg=darkblue guibg=black guifg=#000088 +hi link FoldColumn Folded +hi IncSearch ctermbg=black ctermfg=gray guibg=#000000 guifg=#bbcccc +hi LineNr ctermfg=yellow guibg=#404040 guifg=#ffff00 +hi ModeMsg ctermfg=white guifg=#ffffff +hi MoreMsg ctermfg=green guifg=#44ff44 +hi NonText ctermfg=blue guifg=#4444ff +hi Question ctermfg=yellow guifg=#ffff00 +hi Search ctermbg=NONE ctermfg=green guibg=NONE guifg=green +hi SpecialKey ctermfg=blue guifg=#4444ff +hi StatusLine cterm=none ctermbg=darkcyan ctermfg=white gui=none guibg=#00aaaa guifg=#ffffff +hi StatusLineNC cterm=none ctermbg=gray ctermfg=black gui=none guibg=#bbbbbb guifg=#000000 +hi link VertSplit StatusLineNC +hi Title ctermfg=white guifg=#ffffff +hi Visual cterm=none ctermbg=gray ctermfg=black gui=none guibg=#bbbbbb guifg=#000000 +hi link VisualNOS Visual +hi WarningMsg ctermfg=yellow guifg=#ffff00 +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment ctermfg=blue guifg=#4444ff +hi Constant ctermfg=darkcyan guifg=#00aaaa +hi Identifier ctermfg=white guifg=#ffffff +hi Statement ctermfg=cyan guifg=#44ffff +hi PreProc ctermfg=darkcyan guifg=#00aaaa +hi Type ctermfg=white guifg=#ffffff +hi Special ctermfg=blue cterm=bold guifg=#6666ff gui=bold +hi Underlined ctermfg=blue guifg=#4444ff +hi Ignore ctermfg=darkgray guifg=#444444 +hi Error ctermbg=black ctermfg=darkred guibg=#000000 guifg=#bb0000 +hi Todo ctermbg=darkred ctermfg=yellow guibg=#aa0006 guifg=#fff300 + +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Conditional Statement +hi link Label Statement +hi link Keyword Statement +hi link Exception Statement +hi link Repeat Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special +hi link FoldColumn Folded diff --git a/.vim/colors/darkocean.vim b/.vim/colors/darkocean.vim new file mode 100644 index 0000000..99d2ed3 --- /dev/null +++ b/.vim/colors/darkocean.vim @@ -0,0 +1,52 @@ +" Name Of File: darkocean.vim +" Description: Gvim colorscheme, works best with version 6.0. +" Maintainer: Naveen Chandra R <ncr AT iitbombay DOT org> +" Last Change: Thursday, August 15, 2002 +" Installation: Drop this file in your $VIMRUNTIME/colors/ directory +" or manually source this file using ':so darkocean.vim'. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="darkocean" + +hi Cursor gui=None guibg=#add8e6 guifg=#000000 +hi CursorIM gui=None guibg=#add8e6 guifg=#000000 +hi Directory gui=None guibg=bg guifg=#20b2aa +hi DiffAdd gui=Bold guibg=#7e354d guifg=fg +hi DiffChange gui=Bold guibg=#103040 guifg=#cc3300 +hi DiffDelete gui=Bold,Reverse guibg=#7e354d guifg=fg +hi DiffText gui=Bold guibg=#d74141 guifg=fg +hi ErrorMsg gui=None guibg=#b22222 guifg=#ffffe0 +hi VertSplit gui=None guibg=#999999 guifg=#000000 +hi Folded gui=Bold guibg=#003366 guifg=#999999 +hi FoldColumn gui=Bold guibg=#305070 guifg=#b0d0e0 +hi IncSearch gui=Bold guibg=#8db6cd guifg=fg +hi LineNr gui=Bold guibg=#0f0f0f guifg=#8db6cd +hi MoreMsg gui=Bold guibg=bg guifg=#bf9261 +hi ModeMsg gui=Bold guibg=bg guifg=#4682b4 +hi NonText gui=None guibg=#0f0f0f guifg=#87cefa +hi Normal gui=None guibg=#000000 guifg=#e0ffff +hi Question gui=Bold guibg=bg guifg=#f4bb7e +hi Search gui=Bold guibg=#607b8b guifg=#000000 +hi SpecialKey gui=None guibg=bg guifg=#63b8ff +hi StatusLine gui=Bold guibg=#8db6cd guifg=#000000 +hi StatusLineNC gui=None guibg=#607b8b guifg=#1a1a1a +hi Title gui=Bold guibg=bg guifg=#5cacee +hi Visual gui=Reverse guibg=#ffffff guifg=#36648b +hi VisualNOS gui=Bold,Underline guibg=#4682b4 guifg=fg +hi WarningMsg gui=Bold guibg=bg guifg=#b22222 +hi WildMenu gui=Bold guibg=#607b8b guifg=#000000 +hi Comment gui=None guibg=#102520 guifg=#8db6cd +hi Constant gui=None guibg=bg guifg=#c34a2c +hi Identifier gui=None guibg=bg guifg=#009acd +hi Statement gui=None guibg=bg guifg=#72a5ee +hi PreProc gui=None guibg=bg guifg=#c12869 +hi Include gui=None guibg=bg guifg=#ccccff +hi Type gui=None guibg=bg guifg=#3b9c9c +hi Error gui=None guibg=#b22222 guifg=#ffffe0 +hi Todo gui=None guibg=#507080 guifg=#3bcccc +hi Ignore gui=None guibg=bg guifg=#777777 +hi TagName gui=None guibg=#660000 guifg=#a7a7a7 diff --git a/.vim/colors/darkslategray.vim b/.vim/colors/darkslategray.vim new file mode 100644 index 0000000..b36aef0 --- /dev/null +++ b/.vim/colors/darkslategray.vim @@ -0,0 +1,117 @@ +" vim: set tw=0 sw=4 sts=4 et: + +" Vim color file +" Maintainer: Tuomas Susi <tsusi@cc.hut.fi> +" Last Change: 2004 October 05 +" Version: 1.7 + +" Emacs in RedHat Linux used to have (still does?) a kind of 'Wheat on +" DarkSlateGray' color scheme by default. This color scheme is created in the +" same spirit. +" +" Darkslategray is intended to be nice to your eyes (low contrast) and to take +" advantage of syntax hilighting as much as possible. +" +" This color scheme is for the GUI only, I'm happy with default console colors. +" Needs at least vim 6.0. + + +" Init stuff + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "darkslategray" + + +" GUI colors + +hi Cursor guifg=fg guibg=#da70d6 +hi CursorIM guifg=NONE guibg=#ff83fa +hi Directory guifg=#e0ffff +hi DiffAdd guibg=#528b8b +hi DiffChange guibg=#8b636c +hi DiffDelete gui=bold guifg=fg guibg=#000000 +hi DiffText gui=bold guibg=#6959cd +hi ErrorMsg gui=bold guifg=#ffffff guibg=#ff0000 +hi VertSplit gui=bold guifg=#bdb76b guibg=#000000 +hi Folded guifg=#000000 guibg=#bdb76b +hi FoldColumn guifg=#000000 guibg=#bdb76b +hi SignColumn gui=bold guifg=#bdb76b guibg=#20b2aa +hi IncSearch gui=bold guifg=#000000 guibg=#ffffff +hi LineNr gui=bold guifg=#bdb76b guibg=#528b8b +hi ModeMsg gui=bold +hi MoreMsg gui=bold guifg=#20b2aa +hi NonText gui=bold guifg=#ffffff +hi Normal guibg=#2f4f4f guifg=#f5deb3 +hi Question gui=bold guifg=#ff6347 +hi Search gui=bold guifg=#000000 guibg=#ffd700 +hi SpecialKey guifg=#00ffff +hi StatusLine gui=bold guifg=#f0e68c guibg=#000000 +hi StatusLineNC guibg=#bdb76b guifg=#404040 +hi Title gui=bold guifg=#ff6347 +hi Visual guifg=#000000 guibg=fg +hi VisualNOS gui=bold guifg=#000000 guibg=fg +hi WarningMsg guifg=#ffffff guibg=#ff6347 +hi WildMenu gui=bold guifg=#000000 guibg=#ffff00 + + +" I use GTK and don't wanna change these +"hi Menu foobar +"hi Scrollbar foobar +"hi Tooltip foobar + + +" Colors for syntax highlighting +hi Comment guifg=#da70d6 + +hi Constant guifg=#cdcd00 + hi String guifg=#7fffd4 + hi Character guifg=#7fffd4 + hi Number guifg=#ff6347 + hi Boolean guifg=#cdcd00 + hi Float guifg=#ff6347 + +hi Identifier guifg=#afeeee + hi Function guifg=#ffffff + +hi Statement gui=bold guifg=#4682b4 + hi Conditional gui=bold guifg=#4682b4 + hi Repeat gui=bold guifg=#4682b4 + hi Label gui=bold guifg=#4682b4 + hi Operator gui=bold guifg=#4682b4 + hi Keyword gui=bold guifg=#4682b4 + hi Exception gui=bold guifg=#4682b4 + +hi PreProc guifg=#cdcd00 + hi Include guifg=#ffff00 + hi Define guifg=#cdcd00 + hi Macro guifg=#cdcd00 + hi PreCondit guifg=#cdcd00 + +hi Type gui=bold guifg=#98fb98 + hi StorageClass guifg=#00ff00 + hi Structure guifg=#20b2aa + hi Typedef guifg=#00ff7f + +hi Special guifg=#ff6347 + "Underline Character + hi SpecialChar gui=underline guifg=#7fffd4 + hi Tag guifg=#ff6347 + "Statement + hi Delimiter gui=bold guifg=#b0c4de + "Bold comment (in Java at least) + hi SpecialComment gui=bold guifg=#da70d6 + hi Debug gui=bold guifg=#ff0000 + +hi Underlined gui=underline + +hi Ignore guifg=bg + +hi Error gui=bold guifg=#ffffff guibg=#ff0000 + +hi Todo gui=bold guifg=#000000 guibg=#ff83fa + diff --git a/.vim/colors/dawn.vim b/.vim/colors/dawn.vim new file mode 100644 index 0000000..5c65ca3 --- /dev/null +++ b/.vim/colors/dawn.vim @@ -0,0 +1,65 @@ +" Vim color file +" Maintainer: Ajit J. Thakkar (ajit AT unb DOT ca) +" Last Change: 2003 July 23 +" Version: 1.2 +" URL: http://www.unb.ca/chem/ajit/vim.htm + +" This GUI-only color scheme has a light grey background, and is a softer +" variant of the default and morning color schemes. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "dawn" + +hi Normal guifg=Black guibg=grey90 +"hi Normal guifg=Black guibg=grey80 + +" Groups used in the 'highlight' and 'guicursor' options default value. +hi ErrorMsg gui=NONE guifg=Red guibg=Linen +hi IncSearch gui=NONE guifg=fg guibg=LightGreen +hi ModeMsg gui=bold guifg=fg guibg=bg +hi StatusLine gui=NONE guifg=DarkBlue guibg=grey70 +hi StatusLineNC gui=NONE guifg=grey90 guibg=grey70 +hi VertSplit gui=NONE guifg=grey70 guibg=grey70 +hi Visual gui=reverse guifg=Grey guibg=fg +hi VisualNOS gui=underline,bold guifg=fg guibg=bg +hi DiffText gui=bold guifg=Blue guibg=LightYellow +hi Cursor guifg=NONE guibg=Green +hi lCursor guifg=NONE guibg=Cyan +hi Directory guifg=Blue guibg=bg +hi LineNr guifg=Brown guibg=bg +hi MoreMsg gui=bold guifg=SeaGreen guibg=bg +hi NonText gui=bold guifg=Blue guibg=grey80 +hi Question gui=bold guifg=SeaGreen guibg=bg +hi Search guifg=fg guibg=PeachPuff +hi SpecialKey guifg=Blue guibg=bg +hi Title gui=bold guifg=Magenta guibg=bg +hi WarningMsg guifg=Red guibg=bg +hi WildMenu guifg=fg guibg=PeachPuff +hi Folded guifg=Grey40 guibg=bg " guifg=DarkBlue guibg=LightGrey +hi FoldColumn guifg=DarkBlue guibg=Grey +hi DiffAdd gui=bold guifg=Blue guibg=LightCyan +hi DiffChange gui=bold guifg=fg guibg=MistyRose2 +hi DiffDelete gui=NONE guifg=LightBlue guibg=LightCyan + +" Colors for syntax highlighting +hi Constant gui=NONE guifg=azure4 guibg=bg +"hi Constant gui=NONE guifg=DeepSkyBlue4 guibg=bg +hi String gui=NONE guifg=DarkOliveGreen4 guibg=bg +hi Special gui=bold guifg=Cyan4 guibg=bg +hi Statement gui=NONE guifg=SlateBlue4 guibg=bg +hi Operator gui=NONE guifg=Purple guibg=bg +hi Ignore gui=NONE guifg=bg guibg=bg +hi ToDo gui=NONE guifg=DeepPink1 guibg=bg +hi Error gui=NONE guifg=Red guibg=Linen +hi Comment gui=NONE guifg=RoyalBlue guibg=NONE +hi Identifier gui=NONE guifg=SteelBlue4 guibg=NONE +hi PreProc gui=NONE guifg=Magenta4 guibg=NONE +hi Type gui=NONE guifg=Brown guibg=NONE +hi Underlined gui=underline guifg=SlateBlue guibg=bg + +" vim: sw=2 diff --git a/.vim/colors/delek.vim b/.vim/colors/delek.vim new file mode 100644 index 0000000..32e4536 --- /dev/null +++ b/.vim/colors/delek.vim @@ -0,0 +1,57 @@ +" Vim color file +" Maintainer: David Schweikert <dws@ee.ethz.ch> +" Last Change: 2001 Mai 14 + +" First remove all existing highlighting. +hi clear + +let colors_name = "delek" + +hi Normal guifg=Black guibg=white + +" Groups used in the 'highlight' and 'guicursor' options default value. +hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White +hi IncSearch term=reverse cterm=reverse gui=reverse +hi ModeMsg term=bold cterm=bold gui=bold +hi VertSplit term=reverse cterm=reverse gui=reverse +hi Visual term=reverse cterm=reverse gui=reverse guifg=Grey guibg=fg +hi VisualNOS term=underline,bold cterm=underline,bold gui=underline,bold +hi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red +hi Cursor guibg=Green guifg=NONE +hi lCursor guibg=Cyan guifg=NONE +hi Directory term=bold ctermfg=DarkBlue guifg=Blue +hi LineNr term=underline ctermfg=Brown guifg=Brown +hi MoreMsg term=bold ctermfg=DarkGreen gui=bold guifg=SeaGreen +hi Question term=standout ctermfg=DarkGreen gui=bold guifg=SeaGreen +hi Search term=reverse ctermbg=Yellow ctermfg=NONE guibg=Yellow guifg=NONE +hi SpecialKey term=bold ctermfg=DarkBlue guifg=Blue +hi Title term=bold ctermfg=DarkMagenta gui=bold guifg=Magenta +hi WarningMsg term=standout ctermfg=DarkRed guifg=Red +hi WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black +hi Folded term=standout ctermbg=Grey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue +hi FoldColumn term=standout ctermbg=Grey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue +hi DiffAdd term=bold ctermbg=LightBlue guibg=LightBlue +hi DiffChange term=bold ctermbg=LightMagenta guibg=LightMagenta +hi DiffDelete term=bold ctermfg=Blue ctermbg=LightCyan gui=bold guifg=Blue guibg=LightCyan + +hi StatusLine cterm=bold ctermbg=blue ctermfg=yellow guibg=gold guifg=blue +hi StatusLineNC cterm=bold ctermbg=blue ctermfg=black guibg=gold guifg=blue +hi NonText term=bold ctermfg=Blue gui=bold guifg=gray guibg=white +hi Cursor guibg=fg guifg=bg + +" syntax highlighting +hi PreProc term=underline cterm=NONE ctermfg=darkmagenta gui=NONE guifg=magenta3 +hi Identifier term=underline cterm=NONE ctermfg=darkcyan gui=NONE guifg=cyan4 +hi Comment term=NONE cterm=NONE ctermfg=darkred gui=NONE guifg=red2 +hi Constant term=underline cterm=NONE ctermfg=darkgreen gui=NONE guifg=green3 +hi Special term=bold cterm=NONE ctermfg=lightred gui=NONE guifg=deeppink +hi Statement term=bold cterm=bold ctermfg=blue gui=bold guifg=blue +hi Type term=underline cterm=NONE ctermfg=blue gui=bold guifg=blue + +if exists("syntax_on") + let syntax_cmd = "enable" + runtime syntax/syncolor.vim + unlet syntax_cmd +endif + +" vim: sw=2 diff --git a/.vim/colors/denim.vim b/.vim/colors/denim.vim new file mode 100644 index 0000000..c41af9f --- /dev/null +++ b/.vim/colors/denim.vim @@ -0,0 +1,141 @@ +" Maintainer: Tim Aldrich <aldy0169@yahoo.com> +" Last Change: 19 November 2001 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="denim" +" GUI colors {{{ +hi Normal guifg=#FFFFFF guibg=#000038 +hi Cursor guifg=#000038 guibg=#FFFFFF +hi CursorIM guifg=#6699CC guibg=#99CCCC +hi Directory guifg=#33CCFF guibg=#6699CC +hi DiffAdd guifg=#FFFFCC guibg=#000038 +hi DiffChange guifg=#FF9900 guibg=#000038 +hi DiffDelete guifg=#999999 guibg=#000038 +hi DiffText guifg=#FFFFFF guibg=#000038 +hi ErrorMsg guifg=#FFFFFF guibg=#FF0000 +hi VertSplit guifg=#FFFFFF guibg=#000038 +hi Folded guifg=#999999 guibg=#003366 +hi FoldColumn guifg=#0000EE guibg=#6699CC +hi IncSearch guifg=#FFFF00 guibg=#000038 +hi LineNr guifg=#FFFFEE guibg=#000038 +hi ModeMsg guifg=#FFFFFF guibg=#000038 +hi MoreMsg guifg=#FFFFFF guibg=#000038 +hi NonText guifg=#FFFFFF guibg=#00003D +hi Question guifg=#FFFFFF guibg=#0000EE +hi Search guifg=#993300 guibg=#6699CC +hi SpecialKey guifg=#FFFF00 guibg=#000038 +hi StatusLine guifg=#FFFFFF guibg=#000038 +hi StatusLineNC guifg=#CCCCCC guibg=#000038 +hi Title guifg=#FFFFFF guibg=#FF9900 +hi Visual guifg=#003366 guibg=#6699FF +hi WarningMsg guifg=#FF0000 guibg=#FFFFFF +hi WildMenu guifg=#000038 guibg=#999999 +" }}} + +" cterm colors {{{ +hi Normal ctermfg=white ctermbg=darkblue +hi Cursor ctermfg=darkblue ctermbg=white +hi CursorIM ctermfg=lightcyan ctermbg=lightcyan +hi Directory ctermfg=lightblue ctermbg=lightcyan +hi DiffAdd ctermfg=LightYellow ctermbg=darkblue +hi DiffChange ctermfg=darkred ctermbg=darkblue +hi DiffDelete ctermfg=grey ctermbg=darkblue +hi DiffText ctermfg=white ctermbg=darkblue +hi ErrorMsg ctermfg=red ctermbg=lightcyan +hi VertSplit ctermfg=white ctermbg=darkblue +hi Folded ctermfg=grey ctermbg=darkblue +hi FoldColumn ctermfg=darkred ctermbg=lightcyan +hi IncSearch ctermfg=yellow ctermbg=darkblue +hi LineNr ctermfg=lightyellow ctermbg=darkblue +hi ModeMsg ctermfg=white ctermbg=darkblue +hi MoreMsg ctermfg=white ctermbg=darkblue +hi NonText ctermfg=white ctermbg=lightblue +hi Question ctermfg=white ctermbg=darkblue +hi Search ctermfg=darkred ctermbg=lightcyan +hi SpecialKey ctermfg=yellow ctermbg=darkblue +hi StatusLine ctermfg=white ctermbg=darkblue +hi StatusLineNC ctermfg=lightgrey ctermbg=darkblue +hi Title ctermfg=white ctermbg=yellow +hi Visual ctermfg=lightblue ctermbg=cyan +hi WarningMsg ctermfg=red ctermbg=white +hi WildMenu ctermfg=darkblue ctermbg=grey +" }}} + +" GUI hilight groups {{{ + +hi Comment guifg=#999999 +hi Constant guifg=#33FF33 +hi String guifg=#CCCC99 +hi Character guifg=#33FF33 +hi Number guifg=#33FF33 +hi Boolean guifg=#33FF33 +hi Float guifg=#33FF33 +hi Identifier guifg=#33FFFF +hi Function guifg=#33FFFF +hi Statement guifg=#FFFFCC +hi Conditional guifg=#FFFFCC +hi Repeat guifg=#FFFFCC +hi Label guifg=#33FF99 +hi Operator guifg=#FFFF00 +hi Keyword guifg=#FFFF00 +hi Exception guifg=#FFFFAA +hi PreProc guifg=#66CCFF +hi Include guifg=#66CCFF +hi Define guifg=#66CCFF +hi Macro guifg=#66CCFF +hi PreCondit guifg=#66CCFF +hi Type guifg=#33FF99 +hi StorageClass guifg=#33FF99 +hi Structure guifg=#33FF99 +hi Typedef guifg=#33FF99 +hi Special guifg=#00FF00 +hi SpecialChar guifg=#00FF00 +hi Tag guifg=#CCCCFF +hi Delimiter guifg=#CCCCFF +hi SpecialComment guifg=#FFFFCC +hi Debug guifg=#CC3300 +hi Ignore guifg=#0066AA +hi Error guifg=#FF0000 guibg=#FFFFFF +hi Todo guifg=#999999 guibg=#FFFFFF +" }}} + +" cterm hilight groups {{{ +hi Comment ctermfg=grey +hi Constant ctermfg=lightgreen +hi String ctermfg=brown +hi Character ctermfg=lightgreen +hi Number ctermfg=lightgreen +hi Boolean ctermfg=lightgreen +hi Float ctermfg=lightgreen +hi Identifier ctermfg=lightcyan +hi Function ctermfg=lightcyan +hi Statement ctermfg=lightyellow +hi Conditional ctermfg=lightyellow +hi Repeat ctermfg=lightyellow +hi Label ctermfg=lightcyan +hi Operator ctermfg=yellow +hi Keyword ctermfg=yellow +hi Exception ctermfg=yellow +hi PreProc ctermfg=darkcyan +hi Include ctermfg=darkcyan +hi Define ctermfg=darkcyan +hi Macro ctermfg=darkcyan +hi PreCondit ctermfg=darkcyan +hi Type ctermfg=lightcyan +hi StorageClass ctermfg=lightcyan +hi Structure ctermfg=lightcyan +hi Typedef ctermfg=lightcyan +hi Special ctermfg=green +hi SpecialChar ctermfg=green +hi Tag ctermfg=brown +hi Delimiter ctermfg=brown +hi SpecialComment ctermfg=lightyellow +hi Debug ctermfg=magenta +hi Ignore ctermfg=lightblue +hi Error ctermfg=red ctermbg=white +hi Todo ctermfg=grey ctermbg=white +" }}} diff --git a/.vim/colors/desert.vim b/.vim/colors/desert.vim new file mode 100644 index 0000000..e43c61b --- /dev/null +++ b/.vim/colors/desert.vim @@ -0,0 +1,105 @@ +" Vim color file +" Maintainer: Hans Fugal <hans@fugal.net> +" Last Change: $Date: 2003/06/02 19:28:15 $ +" URL: http://hans.fugal.net/vim/colors/desert.vim + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="desert" + +hi Normal guifg=White guibg=grey20 + +" highlight groups +hi Cursor guibg=khaki guifg=slategrey +"hi CursorIM +"hi Directory +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +"hi ErrorMsg +hi VertSplit guibg=#c2bfa5 guifg=grey50 gui=none +hi Folded guibg=grey30 guifg=gold +hi FoldColumn guibg=grey30 guifg=tan +hi IncSearch guifg=slategrey guibg=khaki +"hi LineNr +hi ModeMsg guifg=goldenrod +hi MoreMsg guifg=SeaGreen +hi NonText guifg=LightBlue guibg=grey30 +hi Question guifg=springgreen +hi Search guibg=peru guifg=wheat +hi SpecialKey guifg=yellowgreen +hi StatusLine guibg=#c2bfa5 guifg=black gui=none +hi StatusLineNC guibg=#c2bfa5 guifg=grey50 gui=none +hi Title guifg=indianred +hi Visual gui=none guifg=khaki guibg=olivedrab +"hi VisualNOS +hi WarningMsg guifg=salmon +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment guifg=SkyBlue +hi Constant guifg=#ffa0a0 +hi Identifier guifg=palegreen +hi Statement guifg=khaki +hi PreProc guifg=indianred +hi Type guifg=darkkhaki +hi Special guifg=navajowhite +"hi Underlined +hi Ignore guifg=grey40 +"hi Error +hi Todo guifg=orangered guibg=yellow2 + +" color terminal definitions +hi SpecialKey ctermfg=darkgreen +hi NonText cterm=bold ctermfg=darkblue +hi Directory ctermfg=darkcyan +hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 +hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green +hi Search cterm=NONE ctermfg=grey ctermbg=blue +hi MoreMsg ctermfg=darkgreen +hi ModeMsg cterm=NONE ctermfg=brown +hi LineNr ctermfg=3 +hi Question ctermfg=green +hi StatusLine cterm=bold,reverse +hi StatusLineNC cterm=reverse +hi VertSplit cterm=reverse +hi Title ctermfg=5 +hi Visual cterm=reverse +hi VisualNOS cterm=bold,underline +hi WarningMsg ctermfg=1 +hi WildMenu ctermfg=0 ctermbg=3 +hi Folded ctermfg=darkgrey ctermbg=NONE +hi FoldColumn ctermfg=darkgrey ctermbg=NONE +hi DiffAdd ctermbg=4 +hi DiffChange ctermbg=5 +hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 +hi DiffText cterm=bold ctermbg=1 +hi Comment ctermfg=darkcyan +hi Constant ctermfg=brown +hi Special ctermfg=5 +hi Identifier ctermfg=6 +hi Statement ctermfg=3 +hi PreProc ctermfg=5 +hi Type ctermfg=2 +hi Underlined cterm=underline ctermfg=5 +hi Ignore ctermfg=darkgrey +hi Error cterm=bold ctermfg=7 ctermbg=1 + + +"vim: sw=4 diff --git a/.vim/colors/dusk.vim b/.vim/colors/dusk.vim new file mode 100644 index 0000000..fc7c8a5 --- /dev/null +++ b/.vim/colors/dusk.vim @@ -0,0 +1,64 @@ +" Vim color file +" Maintainer: Ajit J. Thakkar (ajit AT unb DOT ca) +" Last Change: 2003 Sep. 02 +" Version: 1.0 +" URL: http://www.unb.ca/chem/ajit/vim.htm + +" This GUI-only color scheme has a blue-black background + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "dusk" + +hi Normal guifg=ivory guibg=#1f3048 + +" Groups used in the 'highlight' and 'guicursor' options default value. +hi ErrorMsg gui=NONE guifg=Red guibg=Linen +hi IncSearch gui=NONE guibg=LightGreen guifg=Black +hi ModeMsg gui=NONE guifg=fg guibg=bg +hi StatusLine gui=NONE guifg=DarkBlue guibg=Grey +hi StatusLineNC gui=NONE guifg=Grey50 guibg=Grey +hi VertSplit gui=NONE guifg=Grey guibg=Grey +hi Visual gui=reverse guifg=fg guibg=LightSkyBlue4 +hi VisualNOS gui=underline guifg=fg guibg=bg +hi DiffText gui=NONE guifg=Yellow guibg=LightSkyBlue4 +hi Cursor guibg=Green guifg=Black +hi lCursor guibg=Cyan guifg=Black +hi Directory guifg=LightGreen guibg=bg +hi LineNr guifg=MistyRose3 guibg=bg +hi MoreMsg gui=NONE guifg=SeaGreen guibg=bg +hi NonText gui=NONE guifg=Cyan4 guibg=#102848 +hi Question gui=NONE guifg=LimeGreen guibg=bg +hi Search gui=NONE guifg=SkyBlue4 guibg=Bisque +hi SpecialKey guifg=Cyan guibg=bg +hi Title gui=NONE guifg=Yellow2 guibg=bg +hi WarningMsg guifg=Tomato3 guibg=Linen +hi WildMenu gui=NONE guifg=SkyBlue4 guibg=Bisque +hi Folded guifg=MistyRose2 guibg=bg +hi FoldColumn guifg=DarkBlue guibg=Grey +hi DiffAdd gui=NONE guifg=Blue guibg=LightCyan +hi DiffChange gui=NONE guifg=white guibg=LightCyan4 +hi DiffDelete gui=NONE guifg=LightBlue guibg=LightCyan + +" Colors for syntax highlighting +hi Constant gui=NONE guifg=MistyRose3 guibg=bg +hi String gui=NONE guifg=LightBlue3 guibg=bg +hi Special gui=NONE guifg=GoldenRod guibg=bg +hi Statement gui=NONE guifg=khaki guibg=bg +"hi Statement gui=NONE guifg=#d7cd7b guibg=bg +hi Operator gui=NONE guifg=Chartreuse guibg=bg +hi Ignore gui=NONE guifg=bg guibg=bg +hi ToDo gui=NONE guifg=DodgerBlue guibg=bg +hi Error gui=NONE guifg=Red guibg=Linen +hi Comment gui=NONE guifg=SlateGrey guibg=bg +hi Comment gui=NONE guifg=Lavender guibg=bg +hi Identifier gui=NONE guifg=BlanchedAlmond guibg=bg +hi PreProc gui=NONE guifg=#ffa0a0 guibg=bg +hi Type gui=NONE guifg=NavajoWhite guibg=bg +hi Underlined gui=underline guifg=fg guibg=bg + +" vim: sw=2 diff --git a/.vim/colors/earth.vim b/.vim/colors/earth.vim new file mode 100644 index 0000000..306529b --- /dev/null +++ b/.vim/colors/earth.vim @@ -0,0 +1,69 @@ +" Vim color file +" Maintainer: Shrinath +" Last Change: 2004/09/13 Mon 12:50. +" version: 0.2 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "earth" + +hi Normal guifg=#000000 guibg=#99CC99 + +" Search +hi IncSearch gui=UNDERLINE guifg=#60ffff guibg=#6060ff +hi Search gui=NONE guifg=#ffffff guibg=#6060ff + +" Messages +hi ErrorMsg gui=BOLD guifg=#ffffff guibg=#ff40a0 +hi WarningMsg gui=BOLD guifg=#ffffff guibg=#ff40a0 +hi ModeMsg gui=NONE guifg=#60ffff guibg=NONE +hi MoreMsg gui=NONE guifg=#ffc0ff guibg=NONE +hi Question gui=NONE guifg=#ffff60 guibg=NONE + +" Split area +hi StatusLine gui=NONE guifg=#000000 guibg=#d0d0e0 +hi StatusLineNC gui=NONE guifg=#606080 guibg=#d0d0e0 +hi VertSplit gui=NONE guifg=#606080 guibg=#d0d0e0 +hi WildMenu gui=NONE guifg=#000000 guibg=#00c8f0 + +" Diff +hi DiffText gui=UNDERLINE guifg=#ffff00 guibg=#000000 +hi DiffChange gui=NONE guifg=#ffffff guibg=#000000 +hi DiffDelete gui=NONE guifg=#60ff60 guibg=#000000 +hi DiffAdd gui=NONE guifg=#60ff60 guibg=#000000 + +" Cursor +hi Cursor gui=NONE guifg=#ffffff guibg=#d86020 +hi lCursor gui=NONE guifg=#ffffff guibg=#e000b0 +hi CursorIM gui=NONE guifg=#ffffff guibg=#e000b0 + +" Fold +hi Folded gui=NONE guifg=#ffffff guibg=#0088c0 +" hi Folded gui=NONE guifg=#ffffff guibg=#2080d0 +hi FoldColumn gui=NONE guifg=#60e0e0 guibg=#006c7f + +" Other +hi Directory gui=NONE guifg=#00e0ff guibg=NONE +hi LineNr gui=BOLD guifg=#669966 guibg=NONE +hi NonText gui=BOLD guifg=#00c0c0 guibg=#9999CC +hi SpecialKey gui=NONE guifg=#e0a0ff guibg=NONE +hi Title gui=BOLD guifg=#003300 guibg=NONE +hi Visual gui=NONE guifg=#000000 guibg=#6060d0 + +" Syntax group +hi Comment gui=NONE guifg=#996666 guibg=NONE +hi Constant gui=NONE guifg=#990066 guibg=NONE +hi Error gui=BOLD guifg=#ffffff guibg=#ff40a0 +hi Identifier gui=NONE guifg=#669966 guibg=NONE +hi Ignore gui=NONE guifg=#993300 guibg=NONE +hi PreProc gui=NONE guifg=#009900 guibg=NONE +hi Special gui=NONE guifg=#FF0000 guibg=NONE +hi Statement gui=NONE guifg=#CC9900 guibg=NONE +hi Todo gui=BOLD,UNDERLINE guifg=#993300 guibg=NONE +hi Type gui=NONE guifg=#993300 guibg=NONE +hi Underlined gui=UNDERLINE guifg=#663300 guibg=NONE + diff --git a/.vim/colors/edo_sea.vim b/.vim/colors/edo_sea.vim new file mode 100644 index 0000000..f03300a --- /dev/null +++ b/.vim/colors/edo_sea.vim @@ -0,0 +1,69 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/10/30 Wed 00:01. +" version: 1.0 +" This color scheme uses a dark background. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "Edo_sea" + +hi Normal guifg=#f0f0f8 guibg=#303060 + +" Search +hi IncSearch gui=UNDERLINE,BOLD guifg=#f0f0f0 guibg=#c030f0 +hi Search gui=BOLD guifg=#f0e0f0 guibg=#b020f0 + +" Messages +hi ErrorMsg gui=BOLD guifg=#f0f0f0 guibg=#f000a0 +hi WarningMsg gui=BOLD guifg=#f0f0f0 guibg=#f000a0 +hi ModeMsg gui=BOLD guifg=#00e0f0 guibg=NONE +hi MoreMsg gui=BOLD guifg=#00f0f0 guibg=#6060f0 +hi Question gui=BOLD guifg=#00f0d0 guibg=NONE + +" Split area +hi StatusLine gui=NONE guifg=#000000 guibg=#d0d0e0 +hi StatusLineNC gui=NONE guifg=#606080 guibg=#d0d0e0 +hi VertSplit gui=NONE guifg=#606080 guibg=#d0d0e0 +hi WildMenu gui=NONE guifg=#000000 guibg=#f090f0 + +" Diff +hi DiffText gui=UNDERLINE guifg=#f0f000 guibg=#000000 +hi DiffChange gui=NONE guifg=#f0f0f0 guibg=#000000 +hi DiffDelete gui=NONE guifg=#60f060 guibg=#000000 +hi DiffAdd gui=NONE guifg=#60f060 guibg=#000000 + +" Cursor +hi Cursor gui=NONE guifg=#f0f0f0 guibg=#d86020 +hi lCursor gui=NONE guifg=#f0f0f0 guibg=#e000b0 +hi CursorIM gui=NONE guifg=#f0f0f0 guibg=#e000b0 + +" Fold +hi Folded gui=NONE guifg=#f0f0f0 guibg=#0080a0 +hi FoldColumn gui=NONE guifg=#9090f0 guibg=#3c3c88 + +" Other +hi Directory gui=NONE guifg=#00f0f0 guibg=NONE +hi LineNr gui=NONE guifg=#7070e8 guibg=NONE +hi NonText gui=BOLD guifg=#8080f0 guibg=NONE +hi SpecialKey gui=BOLD guifg=#60c0f0 guibg=NONE +hi Title gui=BOLD guifg=#f0f0f8 guibg=NONE +hi Visual gui=NONE guifg=#f0f0f0 guibg=#6060f0 +" hi VisualNOS gui=NONE guifg=#f0f0f0 guibg=#6060f0 + +" Syntax group +hi Comment gui=NONE guifg=#b0b0b8 guibg=#343478 +hi Constant gui=NONE guifg=#50f0d0 guibg=NONE +hi Error gui=NONE guifg=#f0f0f0 guibg=#c03030 +hi Identifier gui=NONE guifg=#d0c0f0 guibg=NONE +hi Ignore gui=NONE guifg=#303070 guibg=NONE +hi PreProc gui=NONE guifg=#f0b0f0 guibg=NONE +hi Special gui=NONE guifg=#d0f050 guibg=NONE +hi Statement gui=NONE guifg=#f0d050 guibg=NONE +hi Todo gui=BOLD,UNDERLINE guifg=#f070e0 guibg=NONE +hi Type gui=NONE guifg=#40f080 guibg=NONE +hi Underlined gui=UNDERLINE,BOLD guifg=#f0f0f8 guibg=NONE diff --git a/.vim/colors/emacs.vim b/.vim/colors/emacs.vim new file mode 100644 index 0000000..21f22f7 --- /dev/null +++ b/.vim/colors/emacs.vim @@ -0,0 +1,63 @@ +" Vim color file +" Maintainer: Michael Piefel <piefel@informatik.hu-berlin.de> +" Last Change: 2001 Aug 16 +" Licence: Public Domain + +" This color scheme uses a White background. It's based on Bram's +" morning theme, but doesn't try to work for non-GUI editing. +" +" It's supposed to look like the Emacs standard colors, at least +" for C. But Emacs has different categories, so it's not very good. + +" First remove all existing highlighting. +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "emacs" + +hi Normal guifg=Black guibg=White + +" Groups used in the 'highlight' and 'guicursor' options default value. +hi ErrorMsg guibg=Red guifg=White +hi IncSearch gui=reverse +hi ModeMsg gui=bold +hi StatusLine gui=reverse,bold +hi StatusLineNC gui=reverse +hi VertSplit gui=reverse +hi Visual gui=reverse guifg=Grey guibg=fg +hi VisualNOS gui=underline,bold +hi DiffText gui=bold guibg=Red +hi Cursor guibg=Black guifg=NONE +hi lCursor guibg=Cyan guifg=NONE +hi Directory guifg=Blue +hi LineNr guifg=Brown +hi MoreMsg gui=bold guifg=SeaGreen +hi NonText gui=bold guifg=Blue guibg=grey90 +hi Question gui=bold guifg=SeaGreen +hi Search guibg=Yellow guifg=NONE +hi SpecialKey guifg=Blue +hi Title gui=bold guifg=Magenta +hi WarningMsg guifg=Red +hi WildMenu guibg=Yellow guifg=Black +hi Folded guibg=White guifg=DarkBlue +hi FoldColumn guibg=Grey guifg=DarkBlue +hi DiffAdd guibg=LightBlue +hi DiffChange guibg=LightMagenta +hi DiffDelete gui=bold guifg=Blue guibg=LightCyan + +" Colors for syntax highlighting +hi Comment guifg=#AC2020 guibg=White +hi Constant guifg=#C28F8F guibg=White +hi PreProc guifg=#D569D5 guibg=White +hi Statement gui=NONE guifg=#9C20EE guibg=White +hi Type guifg=#9C20EE guibg=White +hi Special guifg=SlateBlue guibg=White +hi Ignore guifg=White + +" Some specials (override hilinks) + + +" vim: sw=2 diff --git a/.vim/colors/fine_blue.vim b/.vim/colors/fine_blue.vim new file mode 100644 index 0000000..89c280c --- /dev/null +++ b/.vim/colors/fine_blue.vim @@ -0,0 +1,71 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/10/30 Wed 00:12. +" version: 1.7 +" This color scheme uses a light background. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "fine_blue" + +hi Normal guifg=#404048 guibg=#f8f8f8 + +" Search +hi IncSearch gui=UNDERLINE guifg=#404054 guibg=#40ffff +hi Search gui=NONE guifg=#404054 guibg=#ffffa0 + +" Messages +hi ErrorMsg gui=NONE guifg=#ff0070 guibg=#ffe0f4 +hi WarningMsg gui=NONE guifg=#ff0070 guibg=#ffe0f4 +hi ModeMsg gui=NONE guifg=#0070ff guibg=NONE +hi MoreMsg gui=NONE guifg=#a800ff guibg=NONE +hi Question gui=NONE guifg=#008050 guibg=NONE + +" Split area +hi StatusLine gui=BOLD guifg=#f8f8f8 guibg=#404054 +hi StatusLineNC gui=NONE guifg=#b8b8c0 guibg=#404054 +hi VertSplit gui=NONE guifg=#f8f8f8 guibg=#404054 +hi WildMenu gui=BOLD guifg=#f8f8f8 guibg=#00aacc + +" Diff +hi DiffText gui=NONE guifg=#4040ff guibg=#c0c0ff +hi DiffChange gui=NONE guifg=#5050ff guibg=#e0e0ff +hi DiffDelete gui=NONE guifg=#4040ff guibg=#c8f2ea +hi DiffAdd gui=NONE guifg=#4040ff guibg=#c8f2ea + +" Cursor +hi Cursor gui=NONE guifg=#0000ff guibg=#00e0ff +hi lCursor gui=NONE guifg=#f8f8f8 guibg=#8000ff +hi CursorIM gui=NONE guifg=#f8f8f8 guibg=#8000ff + +" Fold +hi Folded gui=NONE guifg=#7820ff guibg=#e0d8ff +hi FoldColumn gui=NONE guifg=#aa60ff guibg=#f0f0f4 +" hi Folded gui=NONE guifg=#58587c guibg=#e0e0e8 +" hi FoldColumn gui=NONE guifg=#9090b0 guibg=#f0f0f4 + +" Other +hi Directory gui=NONE guifg=#0070b8 guibg=NONE +hi LineNr gui=NONE guifg=#a0a0b0 guibg=NONE +hi NonText gui=BOLD guifg=#4000ff guibg=#ececf0 +hi SpecialKey gui=NONE guifg=#d87000 guibg=NONE +hi Title gui=NONE guifg=#004060 guibg=#c8f0f8 +hi Visual gui=NONE guifg=#404060 guibg=#dddde8 +" hi VisualNOS gui=NONE guifg=#404060 guibg=#dddde8 + +" Syntax group +hi Comment gui=NONE guifg=#ff00c0 guibg=NONE +hi Constant gui=NONE guifg=#2020ff guibg=#e8e8ff +hi Error gui=BOLD guifg=#ffffff guibg=#ff4080 +hi Identifier gui=NONE guifg=#c800ff guibg=NONE +hi Ignore gui=NONE guifg=#f8f8f8 guibg=NONE +hi PreProc gui=NONE guifg=#0070e6 guibg=NONE +hi Special gui=NONE guifg=#005858 guibg=#ccf7ee +hi Statement gui=NONE guifg=#008858 guibg=NONE +hi Todo gui=NONE guifg=#ff0070 guibg=#ffe0f4 +hi Type gui=NONE guifg=#7040ff guibg=NONE +hi Underlined gui=UNDERLINE guifg=#0000ff guibg=NONE diff --git a/.vim/colors/fnaqevan.vim b/.vim/colors/fnaqevan.vim new file mode 100644 index 0000000..d936cee --- /dev/null +++ b/.vim/colors/fnaqevan.vim @@ -0,0 +1,67 @@ +" Vim color file +" Maintainer: Rafal Sulejman <rms@poczta.onet.pl> +" Last Change: 2002.06.18 +" +" This color scheme uses a black (dark) background. + +" First remove all existing highlighting. +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "fnaqevan" + +hi Normal guibg=#000000 guifg=#C0C0C0 gui=NONE + +" Main colors +hi Constant guibg=#000000 guifg=#00B8E0 gui=NONE +hi Identifier guibg=#000000 guifg=#FFA850 gui=NONE +hi Special guibg=#000000 guifg=#B899C8 gui=NONE +hi Statement guibg=#000000 guifg=#EEE840 gui=NONE +hi Preproc guibg=#000000 guifg=#00B098 gui=NONE +hi Type guibg=#000000 guifg=#40D040 gui=NONE + +" Secondary colors +hi Comment guibg=#000000 guifg=#006699 gui=NONE +hi Visual guibg=#005900 guifg=#40C940 gui=NONE +hi VisualNOS guibg=#005900 guifg=#40C940 gui=NONE +hi Search guibg=#707000 guifg=#FFFF00 gui=NONE +hi IncSearch guibg=#D05000 guifg=#FFE000 gui=NONE + +" Special colors +hi WarningMsg guibg=#707000 guifg=#FFFF00 gui=NONE +hi MoreMsg guibg=#000070 guifg=#00B8E0 gui=NONE +hi ErrorMsg guibg=#CC0000 guifg=#FFEE00 gui=NONE +hi ModeMsg guibg=#000000 guifg=#E8E8E8 gui=NONE +hi WildMenu guibg=#5f5f5f guifg=#FFEE60 gui=NONE +hi StatusLine guibg=#1f1f1f guifg=#F0F0F0 gui=NONE +hi StatusLineNC guibg=#0f0f0f guifg=#eaea3a gui=NONE +hi VertSplit guibg=#1f1f1f guifg=#F0F0F0 gui=NONE +hi Error guibg=#EE0000 guifg=#FFDD60 gui=NONE +hi Todo guibg=#EEE000 guifg=#000000 gui=NONE +hi Title guibg=#000000 guifg=#ffffff gui=NONE +hi Question guibg=#005900 guifg=#40E840 gui=NONE +hi LineNr guibg=#000000 guifg=#F0B0E0 gui=NONE +hi Directory guibg=#000000 guifg=#D0D0D0 gui=NONE +hi NonText guibg=#000000 guifg=#FFDDAA gui=NONE +hi SpecialKey guibg=#000000 guifg=#FFFFFF gui=NONE + +" Diff colors +hi DiffAdd guibg=#505050 guifg=#D0D0D0 gui=NONE +hi DiffChange guibg=#505050 guifg=#D0D0D0 gui=NONE +hi DiffDelete guibg=#505050 guifg=#D0D0D0 gui=NONE +hi DiffText guibg=#707070 guifg=#F0F0F0 gui=NONE + +" Folding colors +hi Folded guibg=#703070 guifg=#DDB8DD gui=NONE +hi FoldColumn guibg=#C4153B guifg=#F0F0F0 gui=NONE + +" Cursor colors +hi Cursor guibg=#FFFFFF guifg=#000000 gui=NONE +hi icursor guibg=#FFEE00 guifg=#000000 gui=NONE +hi ncursor guibg=#FFFFFF guifg=#000000 gui=NONE +hi rcursor guibg=#00CCFF guifg=#000000 gui=NONE +hi lcursor guibg=#40D040 guifg=#000000 gui=NONE + diff --git a/.vim/colors/fog.vim b/.vim/colors/fog.vim new file mode 100644 index 0000000..ab263ab --- /dev/null +++ b/.vim/colors/fog.vim @@ -0,0 +1,170 @@ +" Vim color file +" vim: tw=0 ts=4 sw=4 +" Maintainer: Thomas R. Kimpton <tomk@emcity.net> +" Last Change: 2001 Nov 8 +" This color scheme is meant for the person that spends hours +" and hours and hours and... in vim and wants some contrast to +" help pick things out in the files they edit, but doesn't want +" **C**O**N**T**R**A**S**T**! + +set background=light + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "fog" + +hi Normal ctermbg=White ctermfg=Black +" 660066 = darkish purple +hi Normal guifg=#660066 guibg=grey80 + +hi NonText term=bold +hi NonText ctermfg=LightBlue +hi NonText gui=bold guifg=LightBlue guibg=grey80 + +hi Comment ctermfg=DarkGrey ctermbg=White +" 444499 = darkish blue grey +hi Comment guifg=#444499 + +hi Constant term=underline +hi Constant ctermfg=Magenta +hi Constant guifg=#7070a0 + +hi Statement term=bold +hi Statement cterm=bold ctermfg=DarkGreen ctermbg=White +hi Statement guifg=DarkGreen gui=bold + +hi identifier ctermfg=DarkGreen +hi identifier guifg=DarkGreen + +hi preproc ctermfg=DarkGreen +hi preproc guifg=#408040 + +hi type ctermfg=DarkBlue +hi type guifg=DarkBlue + +hi label ctermfg=yellow +hi label guifg=#c06000 + +hi operator ctermfg=darkYellow +hi operator guifg=DarkGreen gui=bold + +hi StorageClass ctermfg=DarkRed ctermbg=White +hi StorageClass guifg=#a02060 gui=bold + +hi Number ctermfg=Blue ctermbg=White +hi Number guifg=Blue + +hi Special term=bold +hi Special ctermfg=LightRed +hi Special guifg=#aa8822 + +hi Cursor ctermbg=DarkMagenta +hi Cursor guibg=#880088 guifg=LightGrey + +hi lCursor guibg=Cyan guifg=Black + +hi ErrorMsg term=standout +hi ErrorMsg ctermbg=DarkRed ctermfg=White +hi ErrorMsg guibg=DarkRed guifg=White + +hi DiffText term=reverse +hi DiffText cterm=bold ctermbg=DarkRed +hi DiffText gui=bold guibg=DarkRed + +hi Directory term=bold +hi Directory ctermfg=LightRed +hi Directory guifg=Red gui=underline + +hi LineNr term=underline +hi LineNr ctermfg=Yellow +hi LineNr guifg=#ccaa22 + +hi MoreMsg term=bold +hi MoreMsg ctermfg=LightGreen +hi MoreMsg gui=bold guifg=SeaGreen + +hi Question term=standout +hi Question ctermfg=LightGreen +hi Question gui=bold guifg=DarkGreen + +hi Search term=reverse +hi Search ctermbg=DarkYellow ctermfg=Black +hi Search guibg=#887722 guifg=Black + +hi SpecialKey term=bold +hi SpecialKey ctermfg=LightBlue +hi SpecialKey guifg=Blue + +hi SpecialChar ctermfg=DarkGrey ctermbg=White +hi SpecialChar guifg=DarkGrey gui=bold + +hi Title term=bold +hi Title ctermfg=LightMagenta +hi Title gui=underline guifg=DarkMagenta + +hi WarningMsg term=standout +hi WarningMsg ctermfg=LightRed +hi WarningMsg guifg=DarkBlue guibg=#9999cc + +hi WildMenu term=standout +hi WildMenu ctermbg=Yellow ctermfg=Black +hi WildMenu guibg=Yellow guifg=Black gui=underline + +hi Folded term=standout +hi Folded ctermbg=LightGrey ctermfg=DarkBlue +hi Folded guibg=LightGrey guifg=DarkBlue + +hi FoldColumn term=standout +hi FoldColumn ctermbg=LightGrey ctermfg=DarkBlue +hi FoldColumn guibg=Grey guifg=DarkBlue + +hi DiffAdd term=bold +hi DiffAdd ctermbg=DarkBlue +hi DiffAdd guibg=DarkBlue + +hi DiffChange term=bold +hi DiffChange ctermbg=DarkMagenta +hi DiffChange guibg=DarkMagenta + +hi DiffDelete term=bold +hi DiffDelete ctermfg=Blue ctermbg=DarkCyan +hi DiffDelete gui=bold guifg=Blue guibg=DarkCyan + +hi Ignore ctermfg=LightGrey +hi Ignore guifg=grey90 + +hi IncSearch term=reverse +hi IncSearch cterm=reverse +hi IncSearch gui=reverse + +hi ModeMsg term=bold +hi ModeMsg cterm=bold +hi ModeMsg gui=bold + +hi StatusLine term=reverse,bold +hi StatusLine cterm=reverse,bold +hi StatusLine gui=reverse,bold + +hi StatusLineNC term=reverse +hi StatusLineNC cterm=reverse +hi StatusLineNC gui=reverse + +hi VertSplit term=reverse +hi VertSplit cterm=reverse +hi VertSplit gui=reverse + +hi Visual term=reverse +hi Visual cterm=reverse +hi Visual gui=reverse guifg=DarkGrey guibg=fg + +hi VisualNOS term=underline,bold +hi VisualNOS cterm=underline,bold +hi VisualNOS gui=underline,bold + +hi Todo gui=reverse + +" vim: sw=2 diff --git a/.vim/colors/fruit.vim b/.vim/colors/fruit.vim new file mode 100644 index 0000000..624b90f --- /dev/null +++ b/.vim/colors/fruit.vim @@ -0,0 +1,69 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/08/28 Wed 00:28. +" version: 1.3 +" This color scheme uses a light background. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "fruit" + +hi Normal guifg=#404040 guibg=#f8f8f8 + +" Search +hi IncSearch gui=UNDERLINE guifg=#404040 guibg=#40ffff +hi Search gui=NONE guifg=#404040 guibg=#ffff60 + +" Messages +hi ErrorMsg gui=NONE guifg=#ff0000 guibg=#ffe4e4 +hi WarningMsg gui=NONE guifg=#ff0000 guibg=#ffe4e4 +hi ModeMsg gui=NONE guifg=#ff4080 guibg=NONE +hi MoreMsg gui=NONE guifg=#009070 guibg=NONE +hi Question gui=NONE guifg=#f030d0 guibg=NONE + +" Split area +hi StatusLine gui=BOLD guifg=#f8f8f8 guibg=#404040 +hi StatusLineNC gui=NONE guifg=#a4a4a4 guibg=#404040 +hi VertSplit gui=NONE guifg=#f8f8f8 guibg=#404040 +hi WildMenu gui=BOLD guifg=#f8f8f8 guibg=#ff4080 + +" Diff +hi DiffText gui=NONE guifg=#e04040 guibg=#ffd8d8 +hi DiffChange gui=NONE guifg=#408040 guibg=#d0f0d0 +hi DiffDelete gui=NONE guifg=#4848ff guibg=#ffd0ff +hi DiffAdd gui=NONE guifg=#4848ff guibg=#ffd0ff + +" Cursor +hi Cursor gui=NONE guifg=#0000ff guibg=#00e0ff +hi lCursor gui=NONE guifg=#f8f8f8 guibg=#8000ff +hi CursorIM gui=NONE guifg=#f8f8f8 guibg=#8000ff + +" Fold +hi Folded gui=NONE guifg=#20605c guibg=#b8e8dc +hi FoldColumn gui=NONE guifg=#40a098 guibg=#f0f0f0 + +" Other +hi Directory gui=NONE guifg=#0070b8 guibg=NONE +hi LineNr gui=NONE guifg=#acacac guibg=NONE +hi NonText gui=BOLD guifg=#00a0c0 guibg=#ececec +hi SpecialKey gui=NONE guifg=#4040ff guibg=NONE +hi Title gui=NONE guifg=#0050a0 guibg=#c0e8ff +hi Visual gui=NONE guifg=#484848 guibg=#e0e0e0 +" hi VisualNOS gui=NONE guifg=#484848 guibg=#e0e0e0 + +" Syntax group +hi Comment gui=NONE guifg=#ff4080 guibg=NONE +hi Constant gui=NONE guifg=#8016ff guibg=NONE +hi Error gui=BOLD guifg=#ffffff guibg=#ff4080 +hi Identifier gui=NONE guifg=#008888 guibg=NONE +hi Ignore gui=NONE guifg=#f8f8f8 guibg=NONE +hi PreProc gui=NONE guifg=#e06800 guibg=NONE +hi Special gui=NONE guifg=#4a9400 guibg=NONE +hi Statement gui=NONE guifg=#f030d0 guibg=NONE +hi Todo gui=UNDERLINE guifg=#ff0070 guibg=#ffe0f4 +hi Type gui=NONE guifg=#0070e6 guibg=NONE +hi Underlined gui=UNDERLINE guifg=fg guibg=NONE diff --git a/.vim/colors/gobo.vim b/.vim/colors/gobo.vim new file mode 100644 index 0000000..13a8cf5 --- /dev/null +++ b/.vim/colors/gobo.vim @@ -0,0 +1,27 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" +" Created using ColorSchemeCreator +" by Otávio Corrêa Cordeiro (cordeiro@exatas.unisinos.br) (2004 July) +" +" Maintainer: Otávio Corrêa Cordeiro +" Last Change: 2004 July + + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "ColorSchemeCreator" +hi Normal guifg=#111111 guibg=#FFFFFF +hi comment guifg=#33CC99 gui=italic +hi constant guifg=#CC0099 gui=bold +hi statement guifg=#3399FF gui=bold +hi preproc guifg=#0066FF +hi type guifg=#6600CC gui=bold +hi special guifg=#6600CC +hi operator guifg=#CC0099 +hi clear Visual +hi Visual term=reverse cterm=reverse gui=reverse diff --git a/.vim/colors/golden.vim b/.vim/colors/golden.vim new file mode 100644 index 0000000..8cceaf7 --- /dev/null +++ b/.vim/colors/golden.vim @@ -0,0 +1,70 @@ +" vim: tw=0 ts=4 sw=4 +" Vim color file +" +" Creator: Ryan Phillips <ryan@trolocsis.com> +" Credits: This color scheme originated from the idea of +" Jeffrey Bakker, the creator of webcpp (http://webcpp.sourceforge.net/). +" URL: http://www.trolocsis.com/vim/golden.vim +" + +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "golden" +hi Normal ctermfg=yellow guifg=#ddbb00 guibg=black +hi Scrollbar ctermfg=Yellow guifg=#ddbb00 guibg=black +hi Menu ctermfg=darkyellow guifg=#ffddaa guibg=black +hi SpecialKey ctermfg=yellow term=bold cterm=bold guifg=#ffddaa +hi NonText ctermfg=LightBlue term=bold cterm=bold gui=bold guifg=#DBCA98 +hi Directory ctermfg=DarkYellow term=bold cterm=bold guifg=#ffddaa +hi ErrorMsg term=standout cterm=bold ctermfg=White ctermbg=Red guifg=White guibg=Red +hi Search term=reverse ctermfg=white ctermbg=red guifg=white guibg=Red +hi MoreMsg term=bold cterm=bold ctermfg=Yellow gui=bold guifg=#ddbb00 +hi ModeMsg term=bold ctermfg=DarkYellow cterm=bold gui=bold guifg=Black guibg=#ddbb00 +hi LineNr term=underline ctermfg=Brown cterm=bold guifg=#978345 +hi Question term=standout cterm=bold ctermfg=Brown gui=bold guifg=#ffddaa +hi StatusLine term=bold,reverse cterm=bold ctermfg=Black ctermbg=DarkGrey gui=bold guifg=#978345 guibg=#2E2E2E +hi StatusLineNC term=reverse ctermfg=white ctermbg=black guifg=grey guibg=#3E3E3E +hi Title term=bold cterm=bold ctermfg=brown gui=bold guifg=#DBCA98 +hi Visual term=reverse cterm=reverse gui=reverse +hi WarningMsg term=standout cterm=bold ctermfg=darkblue guifg=Red +hi Cursor guifg=bg guibg=#FF5E06 ctermbg=Brown +hi Comment term=bold cterm=bold ctermfg=brown guifg=#978345 +hi Constant term=underline cterm=bold ctermfg=red guifg=Red +hi Special term=bold cterm=bold ctermfg=red guifg=Orange +hi Identifier term=underline ctermfg=lightgray guifg=#DBCA98 +hi Statement term=bold cterm=bold ctermfg=lightgreen gui=bold guifg=#ffff60 +hi PreProc term=underline ctermfg=brown guifg=#ffddaa +hi Type term=underline cterm=bold ctermfg=lightgreen gui=bold guifg=#FFE13F +hi Error term=reverse ctermfg=darkcyan ctermbg=black guifg=Red guibg=Black +hi Todo term=standout ctermfg=black ctermbg=yellow guifg=#FFE13F guibg=#2E2E2E +hi VertSplit guifg=#2E2E2E guibg=#978345 ctermfg=black ctermbg=darkgrey +hi Folded guifg=orange guibg=#2E2E2E ctermfg=yellow + +hi link IncSearch Visual +hi link String Constant +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Function Identifier +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special diff --git a/.vim/colors/gor.vim b/.vim/colors/gor.vim new file mode 100644 index 0000000..b0584a1 --- /dev/null +++ b/.vim/colors/gor.vim @@ -0,0 +1,47 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" Maintainer: Jokes +" Last Change: + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "gor" +hi Normal guifg=white guibg=#005856 +hi NonText guifg=white guibg=#005856 +hi comment guifg=darkgrey +hi constant guifg=orange +hi identifier guifg=orange gui=NONE +hi statement guifg=cyan gui=NONE +"hi preproc guifg=#6063CD +hi preproc guifg=cyan +hi type guifg=green gui=NONE +hi special guifg=yellow +hi ErrorMsg guifg=Black guibg=Red +hi WarningMsg guifg=Black guibg=Green +hi Error guibg=Red +hi Todo guifg=Black guibg=orange +hi Cursor guibg=#ffffff guifg=#004f50 +"hi Cursor guibg=#603070 guifg=#0000ff +hi Folded guifg=#999999 guibg=#006336 +hi Search guibg=orange +hi IncSearch gui=NONE guibg=orange +hi LineNr guifg=grey +hi title guifg=grey +"hi StatusLineNC gui=NONE guifg=lightblue guibg=darkblue +hi StatusLineNC gui=NONE guibg=red +hi StatusLine guifg=black guibg=darkgreen +hi label guifg=gold2 +hi operator guifg=orange +hi clear Visual +hi Visual guibg=orange guifg=#00932D +hi DiffChange guibg=darkgreen +hi DiffText guibg=olivedrab +hi DiffAdd guibg=slateblue +hi DiffDelete guibg=coral +hi Folded guibg=gray30 +hi FoldColumn guibg=gray30 guifg=white +hi cIf0 guifg=gray diff --git a/.vim/colors/gothic.vim b/.vim/colors/gothic.vim new file mode 100644 index 0000000..a637914 --- /dev/null +++ b/.vim/colors/gothic.vim @@ -0,0 +1,42 @@ +" Vim color file +" Maintainer: Stefano deFlorian - \Goth\ <stefano@junglebit.net> +" Last Change: 2003 Dec 9 +" Light - Dark :-) +" optimized for TFT panels + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +"colorscheme default +let g:colors_name = "gothic" + +" hardcoded colors : + +" GUI +highlight Normal guifg=#efefef guibg=#000000 +highlight Cursor guifg=#000000 guibg=#efefef gui=NONE +highlight Search guifg=#ffff60 guibg=#0000ff gui=NONE +highlight Visual guifg=Grey25 gui=NONE +highlight Special guifg=Orange +highlight Comment guifg=#3030ff +highlight StatusLine guifg=blue guibg=white +highlight Statement guifg=#ffff60 gui=NONE +highlight PreProc guifg=#a0e0a0 +highlight Identifier guifg=#00ffff +highlight Constant guifg=#a0a0a0 +highlight Type guifg=#a0a0ff gui=NONE + +" Console +highlight Normal ctermfg=LightGrey ctermbg=Black +highlight Cursor ctermfg=Black ctermbg=LightGrey cterm=NONE +highlight Search ctermfg=Yellow ctermbg=Blue cterm=NONE +highlight Visual cterm=reverse +highlight Special ctermfg=Brown +highlight Comment ctermfg=Blue +highlight StatusLine ctermfg=blue ctermbg=white +highlight Identifier ctermfg=Cyan +highlight Statement ctermfg=Yellow cterm=NONE +highlight Constant ctermfg=Grey cterm=NONE +highlight Type ctermfg=LightBlue cterm=NONE diff --git a/.vim/colors/greyblue.vim b/.vim/colors/greyblue.vim new file mode 100644 index 0000000..1b3c233 --- /dev/null +++ b/.vim/colors/greyblue.vim @@ -0,0 +1,75 @@ +" Vim color file +" + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "greyblue" + +hi Normal ctermfg=NONE ctermbg=NONE gui=NONE guifg=#b7af9f guibg=#090909 + +" Search +hi IncSearch ctermfg=NONE ctermbg=NONE gui=NONE guifg=#7800ff guibg=#e0d8ff +hi Search ctermfg=NONE ctermbg=NONE gui=NONE guifg=#7800ff guibg=#e0d8ff + +" Messages +hi ErrorMsg ctermfg=NONE ctermbg=NONE gui=NONE guifg=#ffffff guibg=NONE +hi WarningMsg ctermfg=NONE ctermbg=NONE gui=NONE guifg=#ffffff guibg=NONE +hi ModeMsg ctermfg=NONE ctermbg=NONE gui=NONE guifg=#ffffff guibg=NONE +hi MoreMsg ctermfg=NONE ctermbg=NONE gui=NONE guifg=#ffffff guibg=NONE +hi Question ctermfg=NONE ctermbg=NONE gui=NONE guifg=#ffffff guibg=NONE + +" Split area +hi StatusLine ctermfg=NONE ctermbg=NONE gui=BOLD guifg=#070707 guibg=#cfcfbf +hi StatusLineNC ctermfg=NONE ctermbg=NONE gui=BOLD guifg=#5f5f4f guibg=#cfcfbf +hi VertSplit ctermfg=NONE ctermbg=NONE gui=NONE guifg=#070707 guibg=#cfcfbf +hi WildMenu ctermfg=NONE ctermbg=NONE gui=BOLD guifg=#070707 guibg=#ff5533 + +" Diff +hi DiffText ctermfg=NONE ctermbg=NONE gui=NONE guifg=#07cfef guibg=#00151f +hi DiffChange ctermfg=NONE ctermbg=NONE gui=NONE guifg=#ff97ff guibg=#2f002f +hi DiffDelete ctermfg=NONE ctermbg=NONE gui=NONE guifg=#dfdf00 guibg=#370d15 +hi DiffAdd ctermfg=NONE ctermbg=NONE gui=NONE guifg=#dfdf00 guibg=#370d15 + +" Cursor +hi Cursor ctermfg=NONE ctermbg=NONE gui=NONE guifg=#ffff00 guibg=#7fff00 +hi lCursor ctermfg=NONE ctermbg=NONE gui=NONE guifg=#070707 guibg=#7fff00 +hi CursorIM ctermfg=NONE ctermbg=NONE gui=NONE guifg=#070707 guibg=#7fff00 + +" Fold +hi Folded ctermfg=NONE ctermbg=NONE gui=NONE guifg=#87ff00 guibg=#1f2700 +hi FoldColumn ctermfg=NONE ctermbg=NONE gui=NONE guifg=#559f00 guibg=#0f0f0b + +" Other +hi Directory ctermfg=NONE ctermbg=NONE gui=NONE guifg=#aaaaba guibg=NONE +hi LineNr ctermfg=NONE ctermbg=NONE gui=NONE guifg=#7f7f5f guibg=NONE +hi NonText ctermfg=NONE ctermbg=NONE gui=BOLD guifg=#211d1a guibg=#211d1a +hi SpecialKey ctermfg=NONE ctermbg=NONE gui=NONE guifg=#378fff guibg=NONE +hi Title ctermfg=NONE ctermbg=NONE gui=NONE guifg=#ffbf9f guibg=#370f07 +hi Visual ctermfg=NONE ctermbg=NONE gui=reverse guifg=#a5a5a5 guibg=#353535 + +" Syntax group +hi Comment ctermfg=NONE ctermbg=NONE gui=BOLD guifg=#555565 guibg=NONE +hi Constant ctermfg=NONE ctermbg=NONE gui=NONE guifg=#d1bfb1 guibg=#151515 +hi Error ctermfg=NONE ctermbg=NONE gui=NONE guifg=#00ffff guibg=NONE +hi Identifier ctermfg=NONE ctermbg=NONE gui=NONE guifg=#aaaaba guibg=NONE +hi Ignore ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE +hi PreProc ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE +hi Special ctermfg=NONE ctermbg=NONE gui=NONE guifg=#aa1565 guibg=NONE +hi Statement ctermfg=NONE ctermbg=NONE gui=bold guifg=#d1bfb1 guibg=NONE +hi Todo ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE +hi Type ctermfg=NONE ctermbg=NONE gui=BOLD guifg=#d1bfb1 guibg=NONE +hi Underlined ctermfg=NONE ctermbg=NONE gui=UNDERLINE guifg=NONE guibg=NONE + +" HTML +hi htmlLink gui=UNDERLINE guifg=#ffff00 guibg=NONE +hi htmlBold gui=BOLD +hi htmlBoldItalic gui=BOLD,ITALIC +hi htmlBoldUnderline gui=BOLD,UNDERLINE +hi htmlBoldUnderlineItalic gui=BOLD,UNDERLINE,ITALIC +hi htmlItalic gui=ITALIC +hi htmlUnderline gui=UNDERLINE +hi htmlUnderlineItalic gui=UNDERLINE,ITALIC diff --git a/.vim/colors/hhazure.vim b/.vim/colors/hhazure.vim new file mode 100644 index 0000000..9dfed35 --- /dev/null +++ b/.vim/colors/hhazure.vim @@ -0,0 +1,83 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/29 (Sat) 13:28:25. +" Version: 1.2 +" This color scheme uses a dark background. + +" Happy Hacking color scheme {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand("<sfile>:t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi VertSplit gui=underline guifg=bg guibg=#051525 +hi StatusLine gui=underline guifg=fg guibg=#051525 +hi StatusLineNC gui=underline guifg=#2c3c45 guibg=#051525 +hi LineNr gui=underline guifg=#54657d guibg=#051525 +hi Folded gui=none guifg=#54657d guibg=bg +hi FoldColumn gui=none guifg=#54657d guibg=bg +" title +hi Title gui=underline guifg=fg guibg=#34455d +" message +hi MoreMsg gui=underline guifg=bg guibg=#329858 +hi Question gui=underline guifg=bg guibg=#329858 + +hi Normal gui=none guifg=#7990a4 guibg=#152535 +hi NonText gui=underline guifg=#1d2d30 +hi NonText guibg=#1d2d30 + +" cursor {{{1 +hi WildMenu gui=underline guifg=bg guibg=#99ccb5 +hi Cursor gui=underline guifg=bg guibg=#99ccb5 +hi IncSearch gui=underline guifg=bg guibg=#99ccb5 +hi CursorIM gui=underline guifg=fg guibg=#006188 +hi Search gui=underline guifg=bg guibg=#33669a +hi Visual gui=underline guifg=bg guibg=#667888 + + +" message {{{1 +hi ErrorMsg gui=underline guifg=bg guibg=#8cdd66 +hi WarningMsg gui=underline guifg=bg guibg=#66cc6a +hi ModeMsg gui=underline guifg=bg guibg=#339599 + + +" inner {{{1 +hi Ignore gui=none guifg=bg guibg=bg +hi Todo gui=underline guifg=bg guibg=#66cc6a +hi Error gui=underline guifg=fg guibg=#884422 +hi Special gui=none guifg=#66bbb6 guibg=bg +hi SpecialKey gui=none guifg=#6695cc guibg=bg +hi Identifier gui=none guifg=#69be97 guibg=bg +hi Constant gui=none guifg=#22887b guibg=bg +hi Statement gui=none guifg=#74aa66 guibg=bg +hi Comment gui=none guifg=#006188 guibg=bg +hi Underlined gui=underline guifg=#826699 guibg=bg +hi Directory gui=none guifg=#447760 guibg=bg +hi PreProc gui=none guifg=#557767 guibg=bg +hi Type gui=none guifg=#429999 guibg=bg + + +" diff {{{1 +hi DiffText gui=underline guifg=bg guibg=#99ffd0 +hi DiffChange gui=underline guifg=bg guibg=#55aa83 +hi DiffDelete gui=none guifg=bg guibg=#22a5aa +hi DiffAdd gui=underline guifg=bg guibg=#2ccc22 + + +" html {{{1 +hi htmlLink gui=underline guifg=#6696aa guibg=bg +hi htmlBold gui=underline guifg=bg guibg=#74aa66 +hi htmlBoldUnderline gui=underline guifg=#74aa66 guibg=bg +hi htmlItalic gui=underline guifg=bg guibg=#44ccc0 +hi htmlUnderlineItalic gui=underline guifg=#44ccc0 guibg=bg +hi htmlBoldItalic gui=underline guifg=bg guibg=#33aa40 +hi htmlBoldUnderlineItalic gui=underline guifg=#33aa40 guibg=bg +hi htmlUnderline gui=underline guifg=fg guibg=bg + +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/.vim/colors/hhdblue.vim b/.vim/colors/hhdblue.vim new file mode 100644 index 0000000..ebea8ba --- /dev/null +++ b/.vim/colors/hhdblue.vim @@ -0,0 +1,233 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/08 (Sat) 15:09:08. +" Version: 1.3 +" This color scheme uses a dark background. + +" Options +" format: +" hhcs_<gui|cterm|both>_<theme|all>_<target>="value" +" target: +" linenr +" "light" : underline, fg=black, bg=light<theme> +" "dark" : underline, fg=black, bg=dark<theme> +" "normal" : none, fg=light<theme>, bg=black +" nontext +" "underlined" : underline, fg=dark<theme>, bg=black +" "normal" : none, fg=dark<theme>, bg=black +" +" This is original settings. +" :let hhcs_both_all_linenr ="light" +" :let hhcs_both_all_nontext ="underlined" +" +" This is prototype settings. +" :let hhcs_both_all_linenr ="dark" +" :let hhcs_both_all_nontext ="underlined" +" +" If you don't want to eccentric feature, try this. +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" +" Normal, except hhdgray(gui), hhdgreen(cterm). +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" :let hhcs_gui_hhdgray_linenr ="light" +" :let hhcs_gui_hhdgray_nontext ="underlined" +" :let hhcs_cterm_hhdgreen_linenr ="dark" +" :let hhcs_cterm_hhdgreen_nontext ="underlined" +" +" For poor cterm +" :let hhcs_cterm_all_linenr ="normal" + +" Happy Hacking color scheme ((DARK)) {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand("<sfile>:t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi NonText gui=UNDERLINE guifg=darkblue guibg=black +hi NonText cterm=UNDERLINE ctermfg=darkblue ctermbg=black +hi Folded gui=NONE guifg=blue guibg=black +hi Folded cterm=NONE ctermfg=blue ctermbg=black +hi FoldColumn gui=NONE guifg=blue guibg=black +hi FoldColumn cterm=NONE ctermfg=blue ctermbg=black +hi StatusLineNC gui=UNDERLINE guifg=black guibg=blue +hi StatusLineNC gui=UNDERLINE ctermfg=black ctermbg=blue +hi LineNr gui=UNDERLINE guifg=black guibg=lightblue +hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightblue +hi VertSplit gui=NONE guifg=darkblue guibg=darkblue +hi VertSplit cterm=NONE ctermfg=darkblue ctermbg=darkblue +" title +hi Title gui=UNDERLINE guifg=lightgray guibg=darkblue +hi Title cterm=UNDERLINE ctermfg=lightgray ctermbg=darkblue +" message +hi MoreMsg gui=UNDERLINE guifg=black guibg=blue +hi MoreMsg cterm=UNDERLINE ctermfg=black ctermbg=blue +hi Question gui=UNDERLINE guifg=black guibg=blue +hi Question cterm=UNDERLINE ctermfg=black ctermbg=blue + + +" cursor {{{1 +hi StatusLine gui=UNDERLINE guifg=black guibg=gray +hi StatusLine cterm=UNDERLINE ctermfg=black ctermbg=gray +hi WildMenu gui=UNDERLINE guifg=black guibg=green +hi WildMenu cterm=UNDERLINE ctermfg=black ctermbg=green +hi Cursor gui=UNDERLINE guifg=black guibg=green +hi Cursor cterm=UNDERLINE ctermfg=black ctermbg=green +hi IncSearch gui=UNDERLINE guifg=black guibg=green +hi IncSearch cterm=UNDERLINE ctermfg=black ctermbg=green +hi CursorIM gui=UNDERLINE guifg=black guibg=green +hi CursorIM cterm=UNDERLINE ctermfg=black ctermbg=green +hi Search gui=UNDERLINE guifg=black guibg=yellow +hi Search cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi Visual gui=UNDERLINE guifg=black guibg=gray +hi Visual cterm=UNDERLINE ctermfg=black ctermbg=gray + + +" message {{{1 +hi ErrorMsg gui=UNDERLINE guifg=black guibg=red +hi ErrorMsg cterm=UNDERLINE ctermfg=black ctermbg=red +hi WarningMsg gui=UNDERLINE guifg=black guibg=yellow +hi WarningMsg cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi ModeMsg gui=UNDERLINE guifg=black guibg=green +hi ModeMsg cterm=UNDERLINE ctermfg=black ctermbg=green + + +" inner {{{1 +hi Normal gui=NONE guifg=lightgray guibg=black +hi Normal cterm=NONE ctermfg=lightgray ctermbg=black +hi Ignore gui=NONE guifg=black guibg=black +hi Ignore cterm=NONE ctermfg=black ctermbg=black +hi Todo gui=UNDERLINE guifg=black guibg=red +hi Todo cterm=UNDERLINE ctermfg=black ctermbg=red +hi Error gui=UNDERLINE guifg=lightgray guibg=red +hi Error cterm=UNDERLINE ctermfg=lightgray ctermbg=red +hi Special gui=NONE guifg=lightcyan guibg=black +hi Special cterm=NONE ctermfg=lightcyan ctermbg=black +hi SpecialKey gui=NONE guifg=cyan guibg=black +hi SpecialKey cterm=NONE ctermfg=cyan ctermbg=black +hi Identifier gui=NONE guifg=cyan guibg=black +hi Identifier cterm=NONE ctermfg=cyan ctermbg=black +hi Constant gui=NONE guifg=lightred guibg=black +hi Constant cterm=NONE ctermfg=lightred ctermbg=black +hi Statement gui=NONE guifg=lightyellow guibg=black +hi Statement cterm=NONE ctermfg=lightyellow ctermbg=black +hi Comment gui=NONE guifg=lightblue guibg=black +hi Comment cterm=NONE ctermfg=lightblue ctermbg=black +hi Underlined gui=UNDERLINE guifg=lightblue guibg=black +hi Underlined cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi Directory gui=NONE guifg=lightgreen guibg=black +hi Directory cterm=NONE ctermfg=lightgreen ctermbg=black +hi PreProc gui=NONE guifg=lightmagenta guibg=black +hi PreProc cterm=NONE ctermfg=lightmagenta ctermbg=black +hi Type gui=NONE guifg=lightgreen guibg=black +hi Type cterm=NONE ctermfg=lightgreen ctermbg=black + + +" option {{{1 +function! s:SetOpt(term, theme, target, default) + let s:opt_{a:term}_{a:target} + \ = exists("g:hhcs_".a:term."_".a:theme."_".a:target) + \ ? g:hhcs_{a:term}_{a:theme}_{a:target} + \ : exists("g:hhcs_".a:term."_all_".a:target) + \ ? g:hhcs_{a:term}_all_{a:target} + \ : exists("g:hhcs_both_all_".a:target) + \ ? g:hhcs_both_all_{a:target} + \ : a:default +endfunction + + +" LineNr {{{2 +" light, dark, normal +call s:SetOpt( "gui", "hhdblue", "linenr", "light") +call s:SetOpt("cterm", "hhdblue", "linenr", "light") +"echo "s:opt_gui_linenr=".s:opt_gui_linenr +if s:opt_gui_linenr == "light" + hi LineNr gui=UNDERLINE guifg=black guibg=lightblue +elseif s:opt_gui_linenr == "dark" + hi LineNr gui=UNDERLINE guifg=black guibg=darkblue +else + hi LineNr gui=NONE guifg=lightblue guibg=black +endif +"echo "s:opt_cterm_linenr=".s:opt_cterm_linenr +if s:opt_cterm_linenr == "light" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightblue +elseif s:opt_gui_linenr == "dark" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=darkblue +else + hi LineNr cterm=NONE ctermfg=lightblue ctermbg=black +endif + + +" NonText {{{2 +" underlined, normal +call s:SetOpt( "gui", "hhdblue", "nontext", "underlined") +call s:SetOpt("cterm", "hhdblue", "nontext", "underlined") +"echo "s:opt_gui_nontext=".s:opt_gui_nontext +if s:opt_gui_nontext == "underlined" + hi NonText gui=UNDERLINE guifg=darkblue guibg=black +else + hi NonText gui=NONE guifg=darkblue guibg=black +endif +"echo "s:opt_cterm_nontext=".s:opt_cterm_nontext +if s:opt_cterm_nontext == "underlined" + hi NonText cterm=UNDERLINE ctermfg=darkblue ctermbg=black +else + hi NonText cterm=NONE ctermfg=darkblue ctermbg=black +endif + + +" 2}}} +" diff {{{1 +hi DiffText gui=UNDERLINE guifg=black guibg=red +hi DiffText cterm=UNDERLINE ctermfg=black ctermbg=red +hi DiffChange gui=UNDERLINE guifg=black guibg=lightgray +hi DiffChange cterm=UNDERLINE ctermfg=black ctermbg=lightgray +hi DiffDelete gui=NONE guifg=black guibg=blue +hi DiffDelete cterm=NONE ctermfg=black ctermbg=blue +hi DiffAdd gui=UNDERLINE guifg=black guibg=cyan +hi DiffAdd cterm=UNDERLINE ctermfg=black ctermbg=cyan + + +" html {{{1 +hi htmlLink gui=UNDERLINE guifg=lightblue guibg=black +hi htmlLink cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi htmlBold gui=UNDERLINE guifg=black guibg=lightred +hi htmlBold cterm=UNDERLINE ctermfg=black ctermbg=lightred +hi htmlItalic gui=UNDERLINE guifg=black guibg=lightgreen +hi htmlItalic cterm=UNDERLINE ctermfg=black ctermbg=lightgreen +hi htmlBoldItalic gui=UNDERLINE guifg=black guibg=lightblue +hi htmlBoldItalic cterm=UNDERLINE ctermfg=black ctermbg=lightblue +hi htmlUnderline gui=UNDERLINE guifg=lightgray guibg=black +hi htmlUnderline cterm=UNDERLINE ctermfg=lightgray ctermbg=black +hi htmlBoldUnderline gui=UNDERLINE guifg=lightred guibg=black +hi htmlBoldUnderline cterm=UNDERLINE ctermfg=lightred ctermbg=black +hi htmlUnderlineItalic gui=UNDERLINE guifg=lightgreen guibg=black +hi htmlUnderlineItalic cterm=UNDERLINE ctermfg=lightgreen ctermbg=black +hi htmlBoldUnderlineItalic gui=UNDERLINE guifg=lightblue guibg=black +hi htmlBoldUnderlineItalic cterm=UNDERLINE ctermfg=lightblue ctermbg=black + + +" colors{{{1 +" 1 black +" 2 blue +" 3 cyan +" 4 darkblue +" 5 gray +" 6 green +" 7 lightblue +" 8 lightcyan +" 9 lightgray +" 10 lightgreen +" 11 lightmagenta +" 12 lightred +" 13 lightyellow +" 14 red +" 15 yellow +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/.vim/colors/hhdcyan.vim b/.vim/colors/hhdcyan.vim new file mode 100644 index 0000000..be41f2f --- /dev/null +++ b/.vim/colors/hhdcyan.vim @@ -0,0 +1,233 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/08 (Sat) 15:09:10. +" Version: 1.3 +" This color scheme uses a dark background. + +" Options +" format: +" hhcs_<gui|cterm|both>_<theme|all>_<target>="value" +" target: +" linenr +" "light" : underline, fg=black, bg=light<theme> +" "dark" : underline, fg=black, bg=dark<theme> +" "normal" : none, fg=light<theme>, bg=black +" nontext +" "underlined" : underline, fg=dark<theme>, bg=black +" "normal" : none, fg=dark<theme>, bg=black +" +" This is original settings. +" :let hhcs_both_all_linenr ="light" +" :let hhcs_both_all_nontext ="underlined" +" +" This is prototype settings. +" :let hhcs_both_all_linenr ="dark" +" :let hhcs_both_all_nontext ="underlined" +" +" If you don't want to eccentric feature, try this. +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" +" Normal, except hhdgray(gui), hhdgreen(cterm). +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" :let hhcs_gui_hhdgray_linenr ="light" +" :let hhcs_gui_hhdgray_nontext ="underlined" +" :let hhcs_cterm_hhdgreen_linenr ="dark" +" :let hhcs_cterm_hhdgreen_nontext ="underlined" +" +" For poor cterm +" :let hhcs_cterm_all_linenr ="normal" + +" Happy Hacking color scheme ((DARK)) {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand("<sfile>:t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi NonText gui=UNDERLINE guifg=darkcyan guibg=black +hi NonText cterm=UNDERLINE ctermfg=darkcyan ctermbg=black +hi Folded gui=NONE guifg=darkcyan guibg=black +hi Folded cterm=NONE ctermfg=darkcyan ctermbg=black +hi FoldColumn gui=NONE guifg=darkcyan guibg=black +hi FoldColumn cterm=NONE ctermfg=darkcyan ctermbg=black +hi StatusLineNC gui=UNDERLINE guifg=black guibg=darkcyan +hi StatusLineNC gui=UNDERLINE ctermfg=black ctermbg=darkcyan +hi LineNr gui=UNDERLINE guifg=black guibg=lightcyan +hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightcyan +hi VertSplit gui=NONE guifg=darkcyan guibg=darkcyan +hi VertSplit cterm=NONE ctermfg=darkcyan ctermbg=darkcyan +" title +hi Title gui=UNDERLINE guifg=lightgray guibg=darkcyan +hi Title cterm=UNDERLINE ctermfg=lightgray ctermbg=darkcyan +" message +hi MoreMsg gui=UNDERLINE guifg=black guibg=darkcyan +hi MoreMsg cterm=UNDERLINE ctermfg=black ctermbg=darkcyan +hi Question gui=UNDERLINE guifg=black guibg=darkcyan +hi Question cterm=UNDERLINE ctermfg=black ctermbg=darkcyan + + +" cursor {{{1 +hi StatusLine gui=UNDERLINE guifg=black guibg=gray +hi StatusLine cterm=UNDERLINE ctermfg=black ctermbg=gray +hi WildMenu gui=UNDERLINE guifg=black guibg=green +hi WildMenu cterm=UNDERLINE ctermfg=black ctermbg=green +hi Cursor gui=UNDERLINE guifg=black guibg=green +hi Cursor cterm=UNDERLINE ctermfg=black ctermbg=green +hi IncSearch gui=UNDERLINE guifg=black guibg=green +hi IncSearch cterm=UNDERLINE ctermfg=black ctermbg=green +hi CursorIM gui=UNDERLINE guifg=black guibg=green +hi CursorIM cterm=UNDERLINE ctermfg=black ctermbg=green +hi Search gui=UNDERLINE guifg=black guibg=yellow +hi Search cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi Visual gui=UNDERLINE guifg=black guibg=gray +hi Visual cterm=UNDERLINE ctermfg=black ctermbg=gray + + +" message {{{1 +hi ErrorMsg gui=UNDERLINE guifg=black guibg=red +hi ErrorMsg cterm=UNDERLINE ctermfg=black ctermbg=red +hi WarningMsg gui=UNDERLINE guifg=black guibg=yellow +hi WarningMsg cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi ModeMsg gui=UNDERLINE guifg=black guibg=green +hi ModeMsg cterm=UNDERLINE ctermfg=black ctermbg=green + + +" inner {{{1 +hi Normal gui=NONE guifg=lightgray guibg=black +hi Normal cterm=NONE ctermfg=lightgray ctermbg=black +hi Ignore gui=NONE guifg=black guibg=black +hi Ignore cterm=NONE ctermfg=black ctermbg=black +hi Todo gui=UNDERLINE guifg=black guibg=red +hi Todo cterm=UNDERLINE ctermfg=black ctermbg=red +hi Error gui=UNDERLINE guifg=lightgray guibg=red +hi Error cterm=UNDERLINE ctermfg=lightgray ctermbg=red +hi Special gui=NONE guifg=lightcyan guibg=black +hi Special cterm=NONE ctermfg=lightcyan ctermbg=black +hi SpecialKey gui=NONE guifg=cyan guibg=black +hi SpecialKey cterm=NONE ctermfg=cyan ctermbg=black +hi Identifier gui=NONE guifg=cyan guibg=black +hi Identifier cterm=NONE ctermfg=cyan ctermbg=black +hi Constant gui=NONE guifg=lightred guibg=black +hi Constant cterm=NONE ctermfg=lightred ctermbg=black +hi Statement gui=NONE guifg=lightyellow guibg=black +hi Statement cterm=NONE ctermfg=lightyellow ctermbg=black +hi Comment gui=NONE guifg=lightblue guibg=black +hi Comment cterm=NONE ctermfg=lightblue ctermbg=black +hi Underlined gui=UNDERLINE guifg=lightblue guibg=black +hi Underlined cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi Directory gui=NONE guifg=lightgreen guibg=black +hi Directory cterm=NONE ctermfg=lightgreen ctermbg=black +hi PreProc gui=NONE guifg=lightmagenta guibg=black +hi PreProc cterm=NONE ctermfg=lightmagenta ctermbg=black +hi Type gui=NONE guifg=lightgreen guibg=black +hi Type cterm=NONE ctermfg=lightgreen ctermbg=black + + +" option {{{1 +function! s:SetOpt(term, theme, target, default) + let s:opt_{a:term}_{a:target} + \ = exists("g:hhcs_".a:term."_".a:theme."_".a:target) + \ ? g:hhcs_{a:term}_{a:theme}_{a:target} + \ : exists("g:hhcs_".a:term."_all_".a:target) + \ ? g:hhcs_{a:term}_all_{a:target} + \ : exists("g:hhcs_both_all_".a:target) + \ ? g:hhcs_both_all_{a:target} + \ : a:default +endfunction + + +" LineNr {{{2 +" light, dark, normal +call s:SetOpt( "gui", "hhdcyan", "linenr", "light") +call s:SetOpt("cterm", "hhdcyan", "linenr", "light") +"echo "s:opt_gui_linenr=".s:opt_gui_linenr +if s:opt_gui_linenr == "light" + hi LineNr gui=UNDERLINE guifg=black guibg=lightcyan +elseif s:opt_gui_linenr == "dark" + hi LineNr gui=UNDERLINE guifg=black guibg=darkcyan +else + hi LineNr gui=NONE guifg=lightcyan guibg=black +endif +"echo "s:opt_cterm_linenr=".s:opt_cterm_linenr +if s:opt_cterm_linenr == "light" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightcyan +elseif s:opt_gui_linenr == "dark" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=darkcyan +else + hi LineNr cterm=NONE ctermfg=lightcyan ctermbg=black +endif + + +" NonText {{{2 +" underlined, normal +call s:SetOpt( "gui", "hhdcyan", "nontext", "underlined") +call s:SetOpt("cterm", "hhdcyan", "nontext", "underlined") +"echo "s:opt_gui_nontext=".s:opt_gui_nontext +if s:opt_gui_nontext == "underlined" + hi NonText gui=UNDERLINE guifg=darkcyan guibg=black +else + hi NonText gui=NONE guifg=darkcyan guibg=black +endif +"echo "s:opt_cterm_nontext=".s:opt_cterm_nontext +if s:opt_cterm_nontext == "underlined" + hi NonText cterm=UNDERLINE ctermfg=darkcyan ctermbg=black +else + hi NonText cterm=NONE ctermfg=darkcyan ctermbg=black +endif + + +" 2}}} +" diff {{{1 +hi DiffText gui=UNDERLINE guifg=black guibg=red +hi DiffText cterm=UNDERLINE ctermfg=black ctermbg=red +hi DiffChange gui=UNDERLINE guifg=black guibg=lightgray +hi DiffChange cterm=UNDERLINE ctermfg=black ctermbg=lightgray +hi DiffDelete gui=NONE guifg=black guibg=blue +hi DiffDelete cterm=NONE ctermfg=black ctermbg=blue +hi DiffAdd gui=UNDERLINE guifg=black guibg=cyan +hi DiffAdd cterm=UNDERLINE ctermfg=black ctermbg=cyan + + +" html {{{1 +hi htmlLink gui=UNDERLINE guifg=lightblue guibg=black +hi htmlLink cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi htmlBold gui=UNDERLINE guifg=black guibg=lightred +hi htmlBold cterm=UNDERLINE ctermfg=black ctermbg=lightred +hi htmlItalic gui=UNDERLINE guifg=black guibg=lightgreen +hi htmlItalic cterm=UNDERLINE ctermfg=black ctermbg=lightgreen +hi htmlBoldItalic gui=UNDERLINE guifg=black guibg=lightblue +hi htmlBoldItalic cterm=UNDERLINE ctermfg=black ctermbg=lightblue +hi htmlUnderline gui=UNDERLINE guifg=lightgray guibg=black +hi htmlUnderline cterm=UNDERLINE ctermfg=lightgray ctermbg=black +hi htmlBoldUnderline gui=UNDERLINE guifg=lightred guibg=black +hi htmlBoldUnderline cterm=UNDERLINE ctermfg=lightred ctermbg=black +hi htmlUnderlineItalic gui=UNDERLINE guifg=lightgreen guibg=black +hi htmlUnderlineItalic cterm=UNDERLINE ctermfg=lightgreen ctermbg=black +hi htmlBoldUnderlineItalic gui=UNDERLINE guifg=lightblue guibg=black +hi htmlBoldUnderlineItalic cterm=UNDERLINE ctermfg=lightblue ctermbg=black + + +" colors{{{1 +" 1 black +" 2 blue +" 3 cyan +" 4 darkcyan +" 5 gray +" 6 green +" 7 lightblue +" 8 lightcyan +" 9 lightgray +" 10 lightgreen +" 11 lightmagenta +" 12 lightred +" 13 lightyellow +" 14 red +" 15 yellow +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/.vim/colors/hhdgray.vim b/.vim/colors/hhdgray.vim new file mode 100644 index 0000000..39249fc --- /dev/null +++ b/.vim/colors/hhdgray.vim @@ -0,0 +1,233 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/08 (Sat) 15:09:11. +" Version: 1.3 +" This color scheme uses a dark background. + +" Options +" format: +" hhcs_<gui|cterm|both>_<theme|all>_<target>="value" +" target: +" linenr +" "light" : underline, fg=black, bg=light<theme> +" "dark" : underline, fg=black, bg=dark<theme> +" "normal" : none, fg=light<theme>, bg=black +" nontext +" "underlined" : underline, fg=dark<theme>, bg=black +" "normal" : none, fg=dark<theme>, bg=black +" +" This is original settings. +" :let hhcs_both_all_linenr ="light" +" :let hhcs_both_all_nontext ="underlined" +" +" This is prototype settings. +" :let hhcs_both_all_linenr ="dark" +" :let hhcs_both_all_nontext ="underlined" +" +" If you don't want to eccentric feature, try this. +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" +" Normal, except hhdgray(gui), hhdgreen(cterm). +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" :let hhcs_gui_hhdgray_linenr ="light" +" :let hhcs_gui_hhdgray_nontext ="underlined" +" :let hhcs_cterm_hhdgreen_linenr ="dark" +" :let hhcs_cterm_hhdgreen_nontext ="underlined" +" +" For poor cterm +" :let hhcs_cterm_all_linenr ="normal" + +" Happy Hacking color scheme ((DARK)) {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand("<sfile>:t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi NonText gui=UNDERLINE guifg=darkgray guibg=black +hi NonText cterm=UNDERLINE ctermfg=darkgray ctermbg=black +hi Folded gui=NONE guifg=darkgray guibg=black +hi Folded cterm=NONE ctermfg=darkgray ctermbg=black +hi FoldColumn gui=NONE guifg=darkgray guibg=black +hi FoldColumn cterm=NONE ctermfg=darkgray ctermbg=black +hi StatusLineNC gui=UNDERLINE guifg=black guibg=darkgray +hi StatusLineNC cterm=UNDERLINE ctermfg=black ctermbg=darkgray +hi LineNr gui=UNDERLINE guifg=black guibg=lightgray +hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightgray +hi VertSplit gui=NONE guifg=darkgray guibg=darkgray +hi VertSplit cterm=NONE ctermfg=darkgray ctermbg=darkgray +" title +hi Title gui=UNDERLINE guifg=lightgray guibg=darkgray +hi Title cterm=UNDERLINE ctermfg=lightgray ctermbg=darkgray +" message +hi MoreMsg gui=UNDERLINE guifg=black guibg=darkgray +hi MoreMsg cterm=UNDERLINE ctermfg=black ctermbg=darkgray +hi Question gui=UNDERLINE guifg=black guibg=darkgray +hi Question cterm=UNDERLINE ctermfg=black ctermbg=darkgray + + +" cursor {{{1 +hi StatusLine gui=UNDERLINE guifg=black guibg=gray +hi StatusLine cterm=UNDERLINE ctermfg=black ctermbg=gray +hi WildMenu gui=UNDERLINE guifg=black guibg=green +hi WildMenu cterm=UNDERLINE ctermfg=black ctermbg=green +hi Cursor gui=UNDERLINE guifg=black guibg=green +hi Cursor cterm=UNDERLINE ctermfg=black ctermbg=green +hi IncSearch gui=UNDERLINE guifg=black guibg=green +hi IncSearch cterm=UNDERLINE ctermfg=black ctermbg=green +hi CursorIM gui=UNDERLINE guifg=black guibg=green +hi CursorIM cterm=UNDERLINE ctermfg=black ctermbg=green +hi Search gui=UNDERLINE guifg=black guibg=yellow +hi Search cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi Visual gui=UNDERLINE guifg=black guibg=gray +hi Visual cterm=UNDERLINE ctermfg=black ctermbg=gray + + +" message {{{1 +hi ErrorMsg gui=UNDERLINE guifg=black guibg=red +hi ErrorMsg cterm=UNDERLINE ctermfg=black ctermbg=red +hi WarningMsg gui=UNDERLINE guifg=black guibg=yellow +hi WarningMsg cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi ModeMsg gui=UNDERLINE guifg=black guibg=green +hi ModeMsg cterm=UNDERLINE ctermfg=black ctermbg=green + + +" inner {{{1 +hi Normal gui=NONE guifg=lightgray guibg=black +hi Normal cterm=NONE ctermfg=lightgray ctermbg=black +hi Ignore gui=NONE guifg=black guibg=black +hi Ignore cterm=NONE ctermfg=black ctermbg=black +hi Todo gui=UNDERLINE guifg=black guibg=red +hi Todo cterm=UNDERLINE ctermfg=black ctermbg=red +hi Error gui=UNDERLINE guifg=lightgray guibg=red +hi Error cterm=UNDERLINE ctermfg=lightgray ctermbg=red +hi Special gui=NONE guifg=lightcyan guibg=black +hi Special cterm=NONE ctermfg=lightcyan ctermbg=black +hi SpecialKey gui=NONE guifg=cyan guibg=black +hi SpecialKey cterm=NONE ctermfg=cyan ctermbg=black +hi Identifier gui=NONE guifg=cyan guibg=black +hi Identifier cterm=NONE ctermfg=cyan ctermbg=black +hi Constant gui=NONE guifg=lightred guibg=black +hi Constant cterm=NONE ctermfg=lightred ctermbg=black +hi Statement gui=NONE guifg=lightyellow guibg=black +hi Statement cterm=NONE ctermfg=lightyellow ctermbg=black +hi Comment gui=NONE guifg=lightblue guibg=black +hi Comment cterm=NONE ctermfg=lightblue ctermbg=black +hi Underlined gui=UNDERLINE guifg=lightblue guibg=black +hi Underlined cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi Directory gui=NONE guifg=lightgreen guibg=black +hi Directory cterm=NONE ctermfg=lightgreen ctermbg=black +hi PreProc gui=NONE guifg=lightmagenta guibg=black +hi PreProc cterm=NONE ctermfg=lightmagenta ctermbg=black +hi Type gui=NONE guifg=lightgreen guibg=black +hi Type cterm=NONE ctermfg=lightgreen ctermbg=black + + +" option {{{1 +function! s:SetOpt(term, theme, target, default) + let s:opt_{a:term}_{a:target} + \ = exists("g:hhcs_".a:term."_".a:theme."_".a:target) + \ ? g:hhcs_{a:term}_{a:theme}_{a:target} + \ : exists("g:hhcs_".a:term."_all_".a:target) + \ ? g:hhcs_{a:term}_all_{a:target} + \ : exists("g:hhcs_both_all_".a:target) + \ ? g:hhcs_both_all_{a:target} + \ : a:default +endfunction + + +" LineNr {{{2 +" light, dark, normal +call s:SetOpt( "gui", "hhdgray", "linenr", "light") +call s:SetOpt("cterm", "hhdgray", "linenr", "light") +"echo "s:opt_gui_linenr=".s:opt_gui_linenr +if s:opt_gui_linenr == "light" + hi LineNr gui=UNDERLINE guifg=black guibg=lightgray +elseif s:opt_gui_linenr == "dark" + hi LineNr gui=UNDERLINE guifg=black guibg=darkgray +else + hi LineNr gui=NONE guifg=lightgray guibg=black +endif +"echo "s:opt_cterm_linenr=".s:opt_cterm_linenr +if s:opt_cterm_linenr == "light" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightgray +elseif s:opt_gui_linenr == "dark" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=darkgray +else + hi LineNr cterm=NONE ctermfg=lightgray ctermbg=black +endif + + +" NonText {{{2 +" underlined, normal +call s:SetOpt( "gui", "hhdgray", "nontext", "underlined") +call s:SetOpt("cterm", "hhdgray", "nontext", "underlined") +"echo "s:opt_gui_nontext=".s:opt_gui_nontext +if s:opt_gui_nontext == "underlined" + hi NonText gui=UNDERLINE guifg=darkgray guibg=black +else + hi NonText gui=NONE guifg=darkgray guibg=black +endif +"echo "s:opt_cterm_nontext=".s:opt_cterm_nontext +if s:opt_cterm_nontext == "underlined" + hi NonText cterm=UNDERLINE ctermfg=darkgray ctermbg=black +else + hi NonText cterm=NONE ctermfg=darkgray ctermbg=black +endif + + +" 2}}} +" diff {{{1 +hi DiffText gui=UNDERLINE guifg=black guibg=red +hi DiffText cterm=UNDERLINE ctermfg=black ctermbg=red +hi DiffChange gui=UNDERLINE guifg=black guibg=lightgray +hi DiffChange cterm=UNDERLINE ctermfg=black ctermbg=lightgray +hi DiffDelete gui=NONE guifg=black guibg=blue +hi DiffDelete cterm=NONE ctermfg=black ctermbg=blue +hi DiffAdd gui=UNDERLINE guifg=black guibg=cyan +hi DiffAdd cterm=UNDERLINE ctermfg=black ctermbg=cyan + + +" html {{{1 +hi htmlLink gui=UNDERLINE guifg=lightblue guibg=black +hi htmlLink cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi htmlBold gui=UNDERLINE guifg=black guibg=lightred +hi htmlBold cterm=UNDERLINE ctermfg=black ctermbg=lightred +hi htmlItalic gui=UNDERLINE guifg=black guibg=lightgreen +hi htmlItalic cterm=UNDERLINE ctermfg=black ctermbg=lightgreen +hi htmlBoldItalic gui=UNDERLINE guifg=black guibg=lightblue +hi htmlBoldItalic cterm=UNDERLINE ctermfg=black ctermbg=lightblue +hi htmlUnderline gui=UNDERLINE guifg=lightgray guibg=black +hi htmlUnderline cterm=UNDERLINE ctermfg=lightgray ctermbg=black +hi htmlBoldUnderline gui=UNDERLINE guifg=lightred guibg=black +hi htmlBoldUnderline cterm=UNDERLINE ctermfg=lightred ctermbg=black +hi htmlUnderlineItalic gui=UNDERLINE guifg=lightgreen guibg=black +hi htmlUnderlineItalic cterm=UNDERLINE ctermfg=lightgreen ctermbg=black +hi htmlBoldUnderlineItalic gui=UNDERLINE guifg=lightblue guibg=black +hi htmlBoldUnderlineItalic cterm=UNDERLINE ctermfg=lightblue ctermbg=black + + +" colors{{{1 +" 1 black +" 2 blue +" 3 cyan +" 4 darkgray +" 5 gray +" 6 green +" 7 lightblue +" 8 lightcyan +" 9 lightgray +" 10 lightgreen +" 11 lightmagenta +" 12 lightred +" 13 lightyellow +" 14 red +" 15 yellow +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/.vim/colors/hhdgreen.vim b/.vim/colors/hhdgreen.vim new file mode 100644 index 0000000..f64cfc1 --- /dev/null +++ b/.vim/colors/hhdgreen.vim @@ -0,0 +1,233 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/08 (Sat) 15:09:11. +" Version: 1.3 +" This color scheme uses a dark background. + +" Options +" format: +" hhcs_<gui|cterm|both>_<theme|all>_<target>="value" +" target: +" linenr +" "light" : underline, fg=black, bg=light<theme> +" "dark" : underline, fg=black, bg=dark<theme> +" "normal" : none, fg=light<theme>, bg=black +" nontext +" "underlined" : underline, fg=dark<theme>, bg=black +" "normal" : none, fg=dark<theme>, bg=black +" +" This is original settings. +" :let hhcs_both_all_linenr ="light" +" :let hhcs_both_all_nontext ="underlined" +" +" This is prototype settings. +" :let hhcs_both_all_linenr ="dark" +" :let hhcs_both_all_nontext ="underlined" +" +" If you don't want to eccentric feature, try this. +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" +" Normal, except hhdgray(gui), hhdgreen(cterm). +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" :let hhcs_gui_hhdgray_linenr ="light" +" :let hhcs_gui_hhdgray_nontext ="underlined" +" :let hhcs_cterm_hhdgreen_linenr ="dark" +" :let hhcs_cterm_hhdgreen_nontext ="underlined" +" +" For poor cterm +" :let hhcs_cterm_all_linenr ="normal" + +" Happy Hacking color scheme ((DARK)) {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand("<sfile>:t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi NonText gui=UNDERLINE guifg=darkgreen guibg=black +hi NonText cterm=UNDERLINE ctermfg=darkgreen ctermbg=black +hi Folded gui=NONE guifg=darkgreen guibg=black +hi Folded cterm=NONE ctermfg=darkgreen ctermbg=black +hi FoldColumn gui=NONE guifg=darkgreen guibg=black +hi FoldColumn cterm=NONE ctermfg=darkgreen ctermbg=black +hi StatusLineNC gui=UNDERLINE guifg=black guibg=darkgreen +hi StatusLineNC gui=UNDERLINE ctermfg=black ctermbg=darkgreen +hi LineNr gui=UNDERLINE guifg=black guibg=lightgreen +hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightgreen +hi VertSplit gui=NONE guifg=darkgreen guibg=darkgreen +hi VertSplit cterm=NONE ctermfg=darkgreen ctermbg=darkgreen +" title +hi Title gui=UNDERLINE guifg=lightgray guibg=darkgreen +hi Title cterm=UNDERLINE ctermfg=lightgray ctermbg=darkgreen +" message +hi MoreMsg gui=UNDERLINE guifg=black guibg=darkgreen +hi MoreMsg cterm=UNDERLINE ctermfg=black ctermbg=darkgreen +hi Question gui=UNDERLINE guifg=black guibg=darkgreen +hi Question cterm=UNDERLINE ctermfg=black ctermbg=darkgreen + + +" cursor {{{1 +hi StatusLine gui=UNDERLINE guifg=black guibg=gray +hi StatusLine cterm=UNDERLINE ctermfg=black ctermbg=gray +hi WildMenu gui=UNDERLINE guifg=black guibg=green +hi WildMenu cterm=UNDERLINE ctermfg=black ctermbg=green +hi Cursor gui=UNDERLINE guifg=black guibg=green +hi Cursor cterm=UNDERLINE ctermfg=black ctermbg=green +hi IncSearch gui=UNDERLINE guifg=black guibg=green +hi IncSearch cterm=UNDERLINE ctermfg=black ctermbg=green +hi CursorIM gui=UNDERLINE guifg=black guibg=green +hi CursorIM cterm=UNDERLINE ctermfg=black ctermbg=green +hi Search gui=UNDERLINE guifg=black guibg=yellow +hi Search cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi Visual gui=UNDERLINE guifg=black guibg=gray +hi Visual cterm=UNDERLINE ctermfg=black ctermbg=gray + + +" message {{{1 +hi ErrorMsg gui=UNDERLINE guifg=black guibg=red +hi ErrorMsg cterm=UNDERLINE ctermfg=black ctermbg=red +hi WarningMsg gui=UNDERLINE guifg=black guibg=yellow +hi WarningMsg cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi ModeMsg gui=UNDERLINE guifg=black guibg=green +hi ModeMsg cterm=UNDERLINE ctermfg=black ctermbg=green + + +" inner {{{1 +hi Normal gui=NONE guifg=lightgray guibg=black +hi Normal cterm=NONE ctermfg=lightgray ctermbg=black +hi Ignore gui=NONE guifg=black guibg=black +hi Ignore cterm=NONE ctermfg=black ctermbg=black +hi Todo gui=UNDERLINE guifg=black guibg=red +hi Todo cterm=UNDERLINE ctermfg=black ctermbg=red +hi Error gui=UNDERLINE guifg=lightgray guibg=red +hi Error cterm=UNDERLINE ctermfg=lightgray ctermbg=red +hi Special gui=NONE guifg=lightcyan guibg=black +hi Special cterm=NONE ctermfg=lightcyan ctermbg=black +hi SpecialKey gui=NONE guifg=cyan guibg=black +hi SpecialKey cterm=NONE ctermfg=cyan ctermbg=black +hi Identifier gui=NONE guifg=cyan guibg=black +hi Identifier cterm=NONE ctermfg=cyan ctermbg=black +hi Constant gui=NONE guifg=lightred guibg=black +hi Constant cterm=NONE ctermfg=lightred ctermbg=black +hi Statement gui=NONE guifg=lightyellow guibg=black +hi Statement cterm=NONE ctermfg=lightyellow ctermbg=black +hi Comment gui=NONE guifg=lightblue guibg=black +hi Comment cterm=NONE ctermfg=lightblue ctermbg=black +hi Underlined gui=UNDERLINE guifg=lightblue guibg=black +hi Underlined cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi Directory gui=NONE guifg=lightgreen guibg=black +hi Directory cterm=NONE ctermfg=lightgreen ctermbg=black +hi PreProc gui=NONE guifg=lightmagenta guibg=black +hi PreProc cterm=NONE ctermfg=lightmagenta ctermbg=black +hi Type gui=NONE guifg=lightgreen guibg=black +hi Type cterm=NONE ctermfg=lightgreen ctermbg=black + + +" option {{{1 +function! s:SetOpt(term, theme, target, default) + let s:opt_{a:term}_{a:target} + \ = exists("g:hhcs_".a:term."_".a:theme."_".a:target) + \ ? g:hhcs_{a:term}_{a:theme}_{a:target} + \ : exists("g:hhcs_".a:term."_all_".a:target) + \ ? g:hhcs_{a:term}_all_{a:target} + \ : exists("g:hhcs_both_all_".a:target) + \ ? g:hhcs_both_all_{a:target} + \ : a:default +endfunction + + +" LineNr {{{2 +" light, dark, normal +call s:SetOpt( "gui", "hhdgreen", "linenr", "light") +call s:SetOpt("cterm", "hhdgreen", "linenr", "light") +"echo "s:opt_gui_linenr=".s:opt_gui_linenr +if s:opt_gui_linenr == "light" + hi LineNr gui=UNDERLINE guifg=black guibg=lightgreen +elseif s:opt_gui_linenr == "dark" + hi LineNr gui=UNDERLINE guifg=black guibg=darkgreen +else + hi LineNr gui=NONE guifg=lightgreen guibg=black +endif +"echo "s:opt_cterm_linenr=".s:opt_cterm_linenr +if s:opt_cterm_linenr == "light" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightgreen +elseif s:opt_gui_linenr == "dark" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=darkgreen +else + hi LineNr cterm=NONE ctermfg=lightgreen ctermbg=black +endif + + +" NonText {{{2 +" underlined, normal +call s:SetOpt( "gui", "hhdgreen", "nontext", "underlined") +call s:SetOpt("cterm", "hhdgreen", "nontext", "underlined") +"echo "s:opt_gui_nontext=".s:opt_gui_nontext +if s:opt_gui_nontext == "underlined" + hi NonText gui=UNDERLINE guifg=darkgreen guibg=black +else + hi NonText gui=NONE guifg=darkgreen guibg=black +endif +"echo "s:opt_cterm_nontext=".s:opt_cterm_nontext +if s:opt_cterm_nontext == "underlined" + hi NonText cterm=UNDERLINE ctermfg=darkgreen ctermbg=black +else + hi NonText cterm=NONE ctermfg=darkgreen ctermbg=black +endif + + +" 2}}} +" diff {{{1 +hi DiffText gui=UNDERLINE guifg=black guibg=red +hi DiffText cterm=UNDERLINE ctermfg=black ctermbg=red +hi DiffChange gui=UNDERLINE guifg=black guibg=lightgray +hi DiffChange cterm=UNDERLINE ctermfg=black ctermbg=lightgray +hi DiffDelete gui=NONE guifg=black guibg=blue +hi DiffDelete cterm=NONE ctermfg=black ctermbg=blue +hi DiffAdd gui=UNDERLINE guifg=black guibg=cyan +hi DiffAdd cterm=UNDERLINE ctermfg=black ctermbg=cyan + + +" html {{{1 +hi htmlLink gui=UNDERLINE guifg=lightblue guibg=black +hi htmlLink cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi htmlBold gui=UNDERLINE guifg=black guibg=lightred +hi htmlBold cterm=UNDERLINE ctermfg=black ctermbg=lightred +hi htmlItalic gui=UNDERLINE guifg=black guibg=lightgreen +hi htmlItalic cterm=UNDERLINE ctermfg=black ctermbg=lightgreen +hi htmlBoldItalic gui=UNDERLINE guifg=black guibg=lightblue +hi htmlBoldItalic cterm=UNDERLINE ctermfg=black ctermbg=lightblue +hi htmlUnderline gui=UNDERLINE guifg=lightgray guibg=black +hi htmlUnderline cterm=UNDERLINE ctermfg=lightgray ctermbg=black +hi htmlBoldUnderline gui=UNDERLINE guifg=lightred guibg=black +hi htmlBoldUnderline cterm=UNDERLINE ctermfg=lightred ctermbg=black +hi htmlUnderlineItalic gui=UNDERLINE guifg=lightgreen guibg=black +hi htmlUnderlineItalic cterm=UNDERLINE ctermfg=lightgreen ctermbg=black +hi htmlBoldUnderlineItalic gui=UNDERLINE guifg=lightblue guibg=black +hi htmlBoldUnderlineItalic cterm=UNDERLINE ctermfg=lightblue ctermbg=black + + +" colors{{{1 +" 1 black +" 2 blue +" 3 cyan +" 4 darkgreen +" 5 gray +" 6 green +" 7 lightblue +" 8 lightcyan +" 9 lightgray +" 10 lightgreen +" 11 lightmagenta +" 12 lightred +" 13 lightyellow +" 14 red +" 15 yellow +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/.vim/colors/hhdmagenta.vim b/.vim/colors/hhdmagenta.vim new file mode 100644 index 0000000..ef91091 --- /dev/null +++ b/.vim/colors/hhdmagenta.vim @@ -0,0 +1,233 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/08 (Sat) 15:09:12. +" Version: 1.3 +" This color scheme uses a dark background. + +" Options +" format: +" hhcs_<gui|cterm|both>_<theme|all>_<target>="value" +" target: +" linenr +" "light" : underline, fg=black, bg=light<theme> +" "dark" : underline, fg=black, bg=dark<theme> +" "normal" : none, fg=light<theme>, bg=black +" nontext +" "underlined" : underline, fg=dark<theme>, bg=black +" "normal" : none, fg=dark<theme>, bg=black +" +" This is original settings. +" :let hhcs_both_all_linenr ="light" +" :let hhcs_both_all_nontext ="underlined" +" +" This is prototype settings. +" :let hhcs_both_all_linenr ="dark" +" :let hhcs_both_all_nontext ="underlined" +" +" If you don't want to eccentric feature, try this. +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" +" Normal, except hhdgray(gui), hhdgreen(cterm). +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" :let hhcs_gui_hhdgray_linenr ="light" +" :let hhcs_gui_hhdgray_nontext ="underlined" +" :let hhcs_cterm_hhdgreen_linenr ="dark" +" :let hhcs_cterm_hhdgreen_nontext ="underlined" +" +" For poor cterm +" :let hhcs_cterm_all_linenr ="normal" + +" Happy Hacking color scheme ((DARK)) {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand("<sfile>:t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi NonText gui=UNDERLINE guifg=darkmagenta guibg=black +hi NonText cterm=UNDERLINE ctermfg=darkmagenta ctermbg=black +hi Folded gui=NONE guifg=darkmagenta guibg=black +hi Folded cterm=NONE ctermfg=darkmagenta ctermbg=black +hi FoldColumn gui=NONE guifg=darkmagenta guibg=black +hi FoldColumn cterm=NONE ctermfg=darkmagenta ctermbg=black +hi StatusLineNC gui=UNDERLINE guifg=black guibg=darkmagenta +hi StatusLineNC gui=UNDERLINE ctermfg=black ctermbg=darkmagenta +hi LineNr gui=UNDERLINE guifg=black guibg=lightmagenta +hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightmagenta +hi VertSplit gui=NONE guifg=darkmagenta guibg=darkmagenta +hi VertSplit cterm=NONE ctermfg=darkmagenta ctermbg=darkmagenta +" title +hi Title gui=UNDERLINE guifg=lightgray guibg=darkmagenta +hi Title cterm=UNDERLINE ctermfg=lightgray ctermbg=darkmagenta +" message +hi MoreMsg gui=UNDERLINE guifg=black guibg=darkmagenta +hi MoreMsg cterm=UNDERLINE ctermfg=black ctermbg=darkmagenta +hi Question gui=UNDERLINE guifg=black guibg=darkmagenta +hi Question cterm=UNDERLINE ctermfg=black ctermbg=darkmagenta + + +" cursor {{{1 +hi StatusLine gui=UNDERLINE guifg=black guibg=gray +hi StatusLine cterm=UNDERLINE ctermfg=black ctermbg=gray +hi WildMenu gui=UNDERLINE guifg=black guibg=green +hi WildMenu cterm=UNDERLINE ctermfg=black ctermbg=green +hi Cursor gui=UNDERLINE guifg=black guibg=green +hi Cursor cterm=UNDERLINE ctermfg=black ctermbg=green +hi IncSearch gui=UNDERLINE guifg=black guibg=green +hi IncSearch cterm=UNDERLINE ctermfg=black ctermbg=green +hi CursorIM gui=UNDERLINE guifg=black guibg=green +hi CursorIM cterm=UNDERLINE ctermfg=black ctermbg=green +hi Search gui=UNDERLINE guifg=black guibg=yellow +hi Search cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi Visual gui=UNDERLINE guifg=black guibg=gray +hi Visual cterm=UNDERLINE ctermfg=black ctermbg=gray + + +" message {{{1 +hi ErrorMsg gui=UNDERLINE guifg=black guibg=red +hi ErrorMsg cterm=UNDERLINE ctermfg=black ctermbg=red +hi WarningMsg gui=UNDERLINE guifg=black guibg=yellow +hi WarningMsg cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi ModeMsg gui=UNDERLINE guifg=black guibg=green +hi ModeMsg cterm=UNDERLINE ctermfg=black ctermbg=green + + +" inner {{{1 +hi Normal gui=NONE guifg=lightgray guibg=black +hi Normal cterm=NONE ctermfg=lightgray ctermbg=black +hi Ignore gui=NONE guifg=black guibg=black +hi Ignore cterm=NONE ctermfg=black ctermbg=black +hi Todo gui=UNDERLINE guifg=black guibg=red +hi Todo cterm=UNDERLINE ctermfg=black ctermbg=red +hi Error gui=UNDERLINE guifg=lightgray guibg=red +hi Error cterm=UNDERLINE ctermfg=lightgray ctermbg=red +hi Special gui=NONE guifg=lightcyan guibg=black +hi Special cterm=NONE ctermfg=lightcyan ctermbg=black +hi SpecialKey gui=NONE guifg=cyan guibg=black +hi SpecialKey cterm=NONE ctermfg=cyan ctermbg=black +hi Identifier gui=NONE guifg=cyan guibg=black +hi Identifier cterm=NONE ctermfg=cyan ctermbg=black +hi Constant gui=NONE guifg=lightred guibg=black +hi Constant cterm=NONE ctermfg=lightred ctermbg=black +hi Statement gui=NONE guifg=lightyellow guibg=black +hi Statement cterm=NONE ctermfg=lightyellow ctermbg=black +hi Comment gui=NONE guifg=lightblue guibg=black +hi Comment cterm=NONE ctermfg=lightblue ctermbg=black +hi Underlined gui=UNDERLINE guifg=lightblue guibg=black +hi Underlined cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi Directory gui=NONE guifg=lightgreen guibg=black +hi Directory cterm=NONE ctermfg=lightgreen ctermbg=black +hi PreProc gui=NONE guifg=lightmagenta guibg=black +hi PreProc cterm=NONE ctermfg=lightmagenta ctermbg=black +hi Type gui=NONE guifg=lightgreen guibg=black +hi Type cterm=NONE ctermfg=lightgreen ctermbg=black + + +" option {{{1 +function! s:SetOpt(term, theme, target, default) + let s:opt_{a:term}_{a:target} + \ = exists("g:hhcs_".a:term."_".a:theme."_".a:target) + \ ? g:hhcs_{a:term}_{a:theme}_{a:target} + \ : exists("g:hhcs_".a:term."_all_".a:target) + \ ? g:hhcs_{a:term}_all_{a:target} + \ : exists("g:hhcs_both_all_".a:target) + \ ? g:hhcs_both_all_{a:target} + \ : a:default +endfunction + + +" LineNr {{{2 +" light, dark, normal +call s:SetOpt( "gui", "hhdmagenta", "linenr", "light") +call s:SetOpt("cterm", "hhdmagenta", "linenr", "light") +"echo "s:opt_gui_linenr=".s:opt_gui_linenr +if s:opt_gui_linenr == "light" + hi LineNr gui=UNDERLINE guifg=black guibg=lightmagenta +elseif s:opt_gui_linenr == "dark" + hi LineNr gui=UNDERLINE guifg=black guibg=darkmagenta +else + hi LineNr gui=NONE guifg=lightmagenta guibg=black +endif +"echo "s:opt_cterm_linenr=".s:opt_cterm_linenr +if s:opt_cterm_linenr == "light" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightmagenta +elseif s:opt_gui_linenr == "dark" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=darkmagenta +else + hi LineNr cterm=NONE ctermfg=lightmagenta ctermbg=black +endif + + +" NonText {{{2 +" underlined, normal +call s:SetOpt( "gui", "hhdmagenta", "nontext", "underlined") +call s:SetOpt("cterm", "hhdmagenta", "nontext", "underlined") +"echo "s:opt_gui_nontext=".s:opt_gui_nontext +if s:opt_gui_nontext == "underlined" + hi NonText gui=UNDERLINE guifg=darkmagenta guibg=black +else + hi NonText gui=NONE guifg=darkmagenta guibg=black +endif +"echo "s:opt_cterm_nontext=".s:opt_cterm_nontext +if s:opt_cterm_nontext == "underlined" + hi NonText cterm=UNDERLINE ctermfg=darkmagenta ctermbg=black +else + hi NonText cterm=NONE ctermfg=darkmagenta ctermbg=black +endif + + +" 2}}} +" diff {{{1 +hi DiffText gui=UNDERLINE guifg=black guibg=red +hi DiffText cterm=UNDERLINE ctermfg=black ctermbg=red +hi DiffChange gui=UNDERLINE guifg=black guibg=lightgray +hi DiffChange cterm=UNDERLINE ctermfg=black ctermbg=lightgray +hi DiffDelete gui=NONE guifg=black guibg=blue +hi DiffDelete cterm=NONE ctermfg=black ctermbg=blue +hi DiffAdd gui=UNDERLINE guifg=black guibg=cyan +hi DiffAdd cterm=UNDERLINE ctermfg=black ctermbg=cyan + + +" html {{{1 +hi htmlLink gui=UNDERLINE guifg=lightblue guibg=black +hi htmlLink cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi htmlBold gui=UNDERLINE guifg=black guibg=lightred +hi htmlBold cterm=UNDERLINE ctermfg=black ctermbg=lightred +hi htmlItalic gui=UNDERLINE guifg=black guibg=lightgreen +hi htmlItalic cterm=UNDERLINE ctermfg=black ctermbg=lightgreen +hi htmlBoldItalic gui=UNDERLINE guifg=black guibg=lightblue +hi htmlBoldItalic cterm=UNDERLINE ctermfg=black ctermbg=lightblue +hi htmlUnderline gui=UNDERLINE guifg=lightgray guibg=black +hi htmlUnderline cterm=UNDERLINE ctermfg=lightgray ctermbg=black +hi htmlBoldUnderline gui=UNDERLINE guifg=lightred guibg=black +hi htmlBoldUnderline cterm=UNDERLINE ctermfg=lightred ctermbg=black +hi htmlUnderlineItalic gui=UNDERLINE guifg=lightgreen guibg=black +hi htmlUnderlineItalic cterm=UNDERLINE ctermfg=lightgreen ctermbg=black +hi htmlBoldUnderlineItalic gui=UNDERLINE guifg=lightblue guibg=black +hi htmlBoldUnderlineItalic cterm=UNDERLINE ctermfg=lightblue ctermbg=black + + +" colors{{{1 +" 1 black +" 2 blue +" 3 cyan +" 4 darkmagenta +" 5 gray +" 6 green +" 7 lightblue +" 8 lightcyan +" 9 lightgray +" 10 lightgreen +" 11 lightmagenta +" 12 lightred +" 13 lightyellow +" 14 red +" 15 yellow +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/.vim/colors/hhdred.vim b/.vim/colors/hhdred.vim new file mode 100644 index 0000000..a8f41a3 --- /dev/null +++ b/.vim/colors/hhdred.vim @@ -0,0 +1,234 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/08 (Sat) 15:09:14. +" Version: 1.3 +" This color scheme uses a dark background. + +" Options +" format: +" hhcs_<gui|cterm|both>_<theme|all>_<target>="value" +" target: +" linenr +" "light" : underline, fg=black, bg=light<theme> +" "dark" : underline, fg=black, bg=dark<theme> +" "normal" : none, fg=light<theme>, bg=black +" nontext +" "underlined" : underline, fg=dark<theme>, bg=black +" "normal" : none, fg=dark<theme>, bg=black +" +" This is original settings. +" :let hhcs_both_all_linenr ="light" +" :let hhcs_both_all_nontext ="underlined" +" +" This is prototype settings. +" :let hhcs_both_all_linenr ="dark" +" :let hhcs_both_all_nontext ="underlined" +" +" If you don't want to eccentric feature, try this. +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" +" Normal, except hhdgray(gui), hhdgreen(cterm). +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" :let hhcs_gui_hhdgray_linenr ="light" +" :let hhcs_gui_hhdgray_nontext ="underlined" +" :let hhcs_cterm_hhdgreen_linenr ="dark" +" :let hhcs_cterm_hhdgreen_nontext ="underlined" +" +" For poor cterm +" :let hhcs_cterm_all_linenr ="normal" + +" Happy Hacking color scheme ((DARK)) {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand("<sfile>:t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi NonText gui=UNDERLINE guifg=darkred guibg=black +hi NonText cterm=UNDERLINE ctermfg=darkred ctermbg=black +hi Folded gui=NONE guifg=brown guibg=black +hi Folded cterm=NONE ctermfg=brown ctermbg=black +hi FoldColumn gui=NONE guifg=brown guibg=black +hi FoldColumn cterm=NONE ctermfg=brown ctermbg=black +hi StatusLineNC gui=UNDERLINE guifg=black guibg=darkred +hi StatusLineNC gui=UNDERLINE ctermfg=black ctermbg=darkred +hi LineNr gui=UNDERLINE guifg=black guibg=lightred +hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightred +hi VertSplit gui=NONE guifg=darkred guibg=darkred +hi VertSplit cterm=NONE ctermfg=darkred ctermbg=darkred +" title +hi Title gui=UNDERLINE guifg=lightgray guibg=darkred +hi Title cterm=UNDERLINE ctermfg=lightgray ctermbg=darkred +" message +hi MoreMsg gui=UNDERLINE guifg=black guibg=darkred +hi MoreMsg cterm=UNDERLINE ctermfg=black ctermbg=darkred +hi Question gui=UNDERLINE guifg=black guibg=darkred +hi Question cterm=UNDERLINE ctermfg=black ctermbg=darkred + + +" cursor {{{1 +hi StatusLine gui=UNDERLINE guifg=black guibg=gray +hi StatusLine cterm=UNDERLINE ctermfg=black ctermbg=gray +hi WildMenu gui=UNDERLINE guifg=black guibg=green +hi WildMenu cterm=UNDERLINE ctermfg=black ctermbg=green +hi Cursor gui=UNDERLINE guifg=black guibg=green +hi Cursor cterm=UNDERLINE ctermfg=black ctermbg=green +hi IncSearch gui=UNDERLINE guifg=black guibg=green +hi IncSearch cterm=UNDERLINE ctermfg=black ctermbg=green +hi CursorIM gui=UNDERLINE guifg=black guibg=green +hi CursorIM cterm=UNDERLINE ctermfg=black ctermbg=green +hi Search gui=UNDERLINE guifg=black guibg=yellow +hi Search cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi Visual gui=UNDERLINE guifg=black guibg=gray +hi Visual cterm=UNDERLINE ctermfg=black ctermbg=gray + + +" message {{{1 +hi ErrorMsg gui=UNDERLINE guifg=black guibg=red +hi ErrorMsg cterm=UNDERLINE ctermfg=black ctermbg=red +hi WarningMsg gui=UNDERLINE guifg=black guibg=yellow +hi WarningMsg cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi ModeMsg gui=UNDERLINE guifg=black guibg=green +hi ModeMsg cterm=UNDERLINE ctermfg=black ctermbg=green + + +" inner {{{1 +hi Normal gui=NONE guifg=lightgray guibg=black +hi Normal cterm=NONE ctermfg=lightgray ctermbg=black +hi Ignore gui=NONE guifg=black guibg=black +hi Ignore cterm=NONE ctermfg=black ctermbg=black +hi Todo gui=UNDERLINE guifg=black guibg=red +hi Todo cterm=UNDERLINE ctermfg=black ctermbg=red +hi Error gui=UNDERLINE guifg=lightgray guibg=red +hi Error cterm=UNDERLINE ctermfg=lightgray ctermbg=red +hi Special gui=NONE guifg=lightcyan guibg=black +hi Special cterm=NONE ctermfg=lightcyan ctermbg=black +hi SpecialKey gui=NONE guifg=cyan guibg=black +hi SpecialKey cterm=NONE ctermfg=cyan ctermbg=black +hi Identifier gui=NONE guifg=cyan guibg=black +hi Identifier cterm=NONE ctermfg=cyan ctermbg=black +hi Constant gui=NONE guifg=lightred guibg=black +hi Constant cterm=NONE ctermfg=lightred ctermbg=black +hi Statement gui=NONE guifg=lightyellow guibg=black +hi Statement cterm=NONE ctermfg=lightyellow ctermbg=black +hi Comment gui=NONE guifg=lightblue guibg=black +hi Comment cterm=NONE ctermfg=lightblue ctermbg=black +hi Underlined gui=UNDERLINE guifg=lightblue guibg=black +hi Underlined cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi Directory gui=NONE guifg=lightgreen guibg=black +hi Directory cterm=NONE ctermfg=lightgreen ctermbg=black +hi PreProc gui=NONE guifg=lightmagenta guibg=black +hi PreProc cterm=NONE ctermfg=lightmagenta ctermbg=black +hi Type gui=NONE guifg=lightgreen guibg=black +hi Type cterm=NONE ctermfg=lightgreen ctermbg=black + + +" option {{{1 +function! s:SetOpt(term, theme, target, default) + let s:opt_{a:term}_{a:target} + \ = exists("g:hhcs_".a:term."_".a:theme."_".a:target) + \ ? g:hhcs_{a:term}_{a:theme}_{a:target} + \ : exists("g:hhcs_".a:term."_all_".a:target) + \ ? g:hhcs_{a:term}_all_{a:target} + \ : exists("g:hhcs_both_all_".a:target) + \ ? g:hhcs_both_all_{a:target} + \ : a:default +endfunction + + +" LineNr {{{2 +" light, dark, normal +call s:SetOpt( "gui", "hhdred", "linenr", "light") +call s:SetOpt("cterm", "hhdred", "linenr", "light") +"echo "s:opt_gui_linenr=".s:opt_gui_linenr +if s:opt_gui_linenr == "light" + hi LineNr gui=UNDERLINE guifg=black guibg=lightred +elseif s:opt_gui_linenr == "dark" + hi LineNr gui=UNDERLINE guifg=black guibg=darkred +else + hi LineNr gui=NONE guifg=lightred guibg=black +endif +"echo "s:opt_cterm_linenr=".s:opt_cterm_linenr +if s:opt_cterm_linenr == "light" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightred +elseif s:opt_gui_linenr == "dark" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=darkred +else + hi LineNr cterm=NONE ctermfg=lightred ctermbg=black +endif + + +" NonText {{{2 +" underlined, normal +call s:SetOpt( "gui", "hhdred", "nontext", "underlined") +call s:SetOpt("cterm", "hhdred", "nontext", "underlined") +"echo "s:opt_gui_nontext=".s:opt_gui_nontext +if s:opt_gui_nontext == "underlined" + hi NonText gui=UNDERLINE guifg=darkred guibg=black +else + hi NonText gui=NONE guifg=darkred guibg=black +endif +"echo "s:opt_cterm_nontext=".s:opt_cterm_nontext +if s:opt_cterm_nontext == "underlined" + hi NonText cterm=UNDERLINE ctermfg=darkred ctermbg=black +else + hi NonText cterm=NONE ctermfg=darkred ctermbg=black +endif + + +" 2}}} +" diff {{{1 +hi DiffText gui=UNDERLINE guifg=black guibg=red +hi DiffText cterm=UNDERLINE ctermfg=black ctermbg=red +hi DiffChange gui=UNDERLINE guifg=black guibg=lightgray +hi DiffChange cterm=UNDERLINE ctermfg=black ctermbg=lightgray +hi DiffDelete gui=NONE guifg=black guibg=blue +hi DiffDelete cterm=NONE ctermfg=black ctermbg=blue +hi DiffAdd gui=UNDERLINE guifg=black guibg=cyan +hi DiffAdd cterm=UNDERLINE ctermfg=black ctermbg=cyan + + +" html {{{1 +hi htmlLink gui=UNDERLINE guifg=lightblue guibg=black +hi htmlLink cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi htmlBold gui=UNDERLINE guifg=black guibg=lightred +hi htmlBold cterm=UNDERLINE ctermfg=black ctermbg=lightred +hi htmlItalic gui=UNDERLINE guifg=black guibg=lightgreen +hi htmlItalic cterm=UNDERLINE ctermfg=black ctermbg=lightgreen +hi htmlBoldItalic gui=UNDERLINE guifg=black guibg=lightblue +hi htmlBoldItalic cterm=UNDERLINE ctermfg=black ctermbg=lightblue +hi htmlUnderline gui=UNDERLINE guifg=lightgray guibg=black +hi htmlUnderline cterm=UNDERLINE ctermfg=lightgray ctermbg=black +hi htmlBoldUnderline gui=UNDERLINE guifg=lightred guibg=black +hi htmlBoldUnderline cterm=UNDERLINE ctermfg=lightred ctermbg=black +hi htmlUnderlineItalic gui=UNDERLINE guifg=lightgreen guibg=black +hi htmlUnderlineItalic cterm=UNDERLINE ctermfg=lightgreen ctermbg=black +hi htmlBoldUnderlineItalic gui=UNDERLINE guifg=lightblue guibg=black +hi htmlBoldUnderlineItalic cterm=UNDERLINE ctermfg=lightblue ctermbg=black + + +" colors{{{1 +" 1 black +" 2 blue +" 3 brown +" 4 cyan +" 5 darkred +" 6 gray +" 7 green +" 8 lightblue +" 9 lightcyan +" 10 lightgray +" 11 lightgreen +" 12 lightmagenta +" 13 lightred +" 14 lightyellow +" 15 red +" 16 yellow +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/.vim/colors/hhdyellow.vim b/.vim/colors/hhdyellow.vim new file mode 100644 index 0000000..d8d1b33 --- /dev/null +++ b/.vim/colors/hhdyellow.vim @@ -0,0 +1,235 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/08 (Sat) 15:09:19. +" Version: 1.3 +" This color scheme uses a dark background. + +" Options +" format: +" hhcs_<gui|cterm|both>_<theme|all>_<target>="value" +" target: +" linenr +" "light" : underline, fg=black, bg=light<theme> +" "dark" : underline, fg=black, bg=dark<theme> +" "normal" : none, fg=light<theme>, bg=black +" nontext +" "underlined" : underline, fg=dark<theme>, bg=black +" "normal" : none, fg=dark<theme>, bg=black +" +" This is original settings. +" :let hhcs_both_all_linenr ="light" +" :let hhcs_both_all_nontext ="underlined" +" +" This is prototype settings. +" :let hhcs_both_all_linenr ="dark" +" :let hhcs_both_all_nontext ="underlined" +" +" If you don't want to eccentric feature, try this. +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" +" Normal, except hhdgray(gui), hhdgreen(cterm). +" :let hhcs_both_all_linenr ="normal" +" :let hhcs_both_all_nontext ="normal" +" :let hhcs_gui_hhdgray_linenr ="light" +" :let hhcs_gui_hhdgray_nontext ="underlined" +" :let hhcs_cterm_hhdgreen_linenr ="dark" +" :let hhcs_cterm_hhdgreen_nontext ="underlined" +" +" For poor cterm +" :let hhcs_cterm_all_linenr ="normal" + +" Happy Hacking color scheme ((DARK)) {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand("<sfile>:t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi NonText gui=UNDERLINE guifg=darkyellow guibg=black +hi NonText cterm=UNDERLINE ctermfg=darkyellow ctermbg=black +hi Folded gui=NONE guifg=darkyellow guibg=black +hi Folded cterm=NONE ctermfg=darkyellow ctermbg=black +hi FoldColumn gui=NONE guifg=darkyellow guibg=black +hi FoldColumn cterm=NONE ctermfg=darkyellow ctermbg=black +hi StatusLineNC gui=UNDERLINE guifg=black guibg=darkyellow +hi StatusLineNC gui=UNDERLINE ctermfg=black ctermbg=darkyellow +hi LineNr gui=NONE guifg=lightyellow guibg=black +hi LineNr cterm=NONE ctermfg=lightyellow ctermbg=black +hi LineNr gui=UNDERLINE guifg=black guibg=lightyellow +hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightyellow +hi VertSplit gui=NONE guifg=darkyellow guibg=darkyellow +hi VertSplit cterm=NONE ctermfg=darkyellow ctermbg=darkyellow +" title +hi Title gui=UNDERLINE guifg=lightgray guibg=darkyellow +hi Title cterm=UNDERLINE ctermfg=lightgray ctermbg=darkyellow +" message +hi MoreMsg gui=UNDERLINE guifg=black guibg=darkyellow +hi MoreMsg cterm=UNDERLINE ctermfg=black ctermbg=darkyellow +hi Question gui=UNDERLINE guifg=black guibg=darkyellow +hi Question cterm=UNDERLINE ctermfg=black ctermbg=darkyellow + + +" cursor {{{1 +hi StatusLine gui=UNDERLINE guifg=black guibg=gray +hi StatusLine cterm=UNDERLINE ctermfg=black ctermbg=gray +hi WildMenu gui=UNDERLINE guifg=black guibg=green +hi WildMenu cterm=UNDERLINE ctermfg=black ctermbg=green +hi Cursor gui=UNDERLINE guifg=black guibg=green +hi Cursor cterm=UNDERLINE ctermfg=black ctermbg=green +hi IncSearch gui=UNDERLINE guifg=black guibg=green +hi IncSearch cterm=UNDERLINE ctermfg=black ctermbg=green +hi CursorIM gui=UNDERLINE guifg=black guibg=green +hi CursorIM cterm=UNDERLINE ctermfg=black ctermbg=green +hi Search gui=UNDERLINE guifg=black guibg=yellow +hi Search cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi Visual gui=UNDERLINE guifg=black guibg=gray +hi Visual cterm=UNDERLINE ctermfg=black ctermbg=gray + + +" message {{{1 +hi ErrorMsg gui=UNDERLINE guifg=black guibg=red +hi ErrorMsg cterm=UNDERLINE ctermfg=black ctermbg=red +hi WarningMsg gui=UNDERLINE guifg=black guibg=yellow +hi WarningMsg cterm=UNDERLINE ctermfg=black ctermbg=yellow +hi ModeMsg gui=UNDERLINE guifg=black guibg=green +hi ModeMsg cterm=UNDERLINE ctermfg=black ctermbg=green + + +" inner {{{1 +hi Normal gui=NONE guifg=lightgray guibg=black +hi Normal cterm=NONE ctermfg=lightgray ctermbg=black +hi Ignore gui=NONE guifg=black guibg=black +hi Ignore cterm=NONE ctermfg=black ctermbg=black +hi Todo gui=UNDERLINE guifg=black guibg=red +hi Todo cterm=UNDERLINE ctermfg=black ctermbg=red +hi Error gui=UNDERLINE guifg=lightgray guibg=red +hi Error cterm=UNDERLINE ctermfg=lightgray ctermbg=red +hi Special gui=NONE guifg=lightcyan guibg=black +hi Special cterm=NONE ctermfg=lightcyan ctermbg=black +hi SpecialKey gui=NONE guifg=cyan guibg=black +hi SpecialKey cterm=NONE ctermfg=cyan ctermbg=black +hi Identifier gui=NONE guifg=cyan guibg=black +hi Identifier cterm=NONE ctermfg=cyan ctermbg=black +hi Constant gui=NONE guifg=lightred guibg=black +hi Constant cterm=NONE ctermfg=lightred ctermbg=black +hi Statement gui=NONE guifg=lightyellow guibg=black +hi Statement cterm=NONE ctermfg=lightyellow ctermbg=black +hi Comment gui=NONE guifg=lightblue guibg=black +hi Comment cterm=NONE ctermfg=lightblue ctermbg=black +hi Underlined gui=UNDERLINE guifg=lightblue guibg=black +hi Underlined cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi Directory gui=NONE guifg=lightgreen guibg=black +hi Directory cterm=NONE ctermfg=lightgreen ctermbg=black +hi PreProc gui=NONE guifg=lightmagenta guibg=black +hi PreProc cterm=NONE ctermfg=lightmagenta ctermbg=black +hi Type gui=NONE guifg=lightgreen guibg=black +hi Type cterm=NONE ctermfg=lightgreen ctermbg=black + + +" option {{{1 +function! s:SetOpt(term, theme, target, default) + let s:opt_{a:term}_{a:target} + \ = exists("g:hhcs_".a:term."_".a:theme."_".a:target) + \ ? g:hhcs_{a:term}_{a:theme}_{a:target} + \ : exists("g:hhcs_".a:term."_all_".a:target) + \ ? g:hhcs_{a:term}_all_{a:target} + \ : exists("g:hhcs_both_all_".a:target) + \ ? g:hhcs_both_all_{a:target} + \ : a:default +endfunction + + +" LineNr {{{2 +" light, dark, normal +call s:SetOpt( "gui", "hhdyellow", "linenr", "light") +call s:SetOpt("cterm", "hhdyellow", "linenr", "light") +"echo "s:opt_gui_linenr=".s:opt_gui_linenr +if s:opt_gui_linenr == "light" + hi LineNr gui=UNDERLINE guifg=black guibg=lightyellow +elseif s:opt_gui_linenr == "dark" + hi LineNr gui=UNDERLINE guifg=black guibg=darkyellow +else + hi LineNr gui=NONE guifg=lightyellow guibg=black +endif +"echo "s:opt_cterm_linenr=".s:opt_cterm_linenr +if s:opt_cterm_linenr == "light" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=lightyellow +elseif s:opt_gui_linenr == "dark" + hi LineNr cterm=UNDERLINE ctermfg=black ctermbg=darkyellow +else + hi LineNr cterm=NONE ctermfg=lightyellow ctermbg=black +endif + + +" NonText {{{2 +" underlined, normal +call s:SetOpt( "gui", "hhdyellow", "nontext", "underlined") +call s:SetOpt("cterm", "hhdyellow", "nontext", "underlined") +"echo "s:opt_gui_nontext=".s:opt_gui_nontext +if s:opt_gui_nontext == "underlined" + hi NonText gui=UNDERLINE guifg=darkyellow guibg=black +else + hi NonText gui=NONE guifg=darkyellow guibg=black +endif +"echo "s:opt_cterm_nontext=".s:opt_cterm_nontext +if s:opt_cterm_nontext == "underlined" + hi NonText cterm=UNDERLINE ctermfg=darkyellow ctermbg=black +else + hi NonText cterm=NONE ctermfg=darkyellow ctermbg=black +endif + + +" 2}}} +" diff {{{1 +hi DiffText gui=UNDERLINE guifg=black guibg=red +hi DiffText cterm=UNDERLINE ctermfg=black ctermbg=red +hi DiffChange gui=UNDERLINE guifg=black guibg=lightgray +hi DiffChange cterm=UNDERLINE ctermfg=black ctermbg=lightgray +hi DiffDelete gui=NONE guifg=black guibg=blue +hi DiffDelete cterm=NONE ctermfg=black ctermbg=blue +hi DiffAdd gui=UNDERLINE guifg=black guibg=cyan +hi DiffAdd cterm=UNDERLINE ctermfg=black ctermbg=cyan + + +" html {{{1 +hi htmlLink gui=UNDERLINE guifg=lightblue guibg=black +hi htmlLink cterm=UNDERLINE ctermfg=lightblue ctermbg=black +hi htmlBold gui=UNDERLINE guifg=black guibg=lightred +hi htmlBold cterm=UNDERLINE ctermfg=black ctermbg=lightred +hi htmlItalic gui=UNDERLINE guifg=black guibg=lightgreen +hi htmlItalic cterm=UNDERLINE ctermfg=black ctermbg=lightgreen +hi htmlBoldItalic gui=UNDERLINE guifg=black guibg=lightblue +hi htmlBoldItalic cterm=UNDERLINE ctermfg=black ctermbg=lightblue +hi htmlUnderline gui=UNDERLINE guifg=lightgray guibg=black +hi htmlUnderline cterm=UNDERLINE ctermfg=lightgray ctermbg=black +hi htmlBoldUnderline gui=UNDERLINE guifg=lightred guibg=black +hi htmlBoldUnderline cterm=UNDERLINE ctermfg=lightred ctermbg=black +hi htmlUnderlineItalic gui=UNDERLINE guifg=lightgreen guibg=black +hi htmlUnderlineItalic cterm=UNDERLINE ctermfg=lightgreen ctermbg=black +hi htmlBoldUnderlineItalic gui=UNDERLINE guifg=lightblue guibg=black +hi htmlBoldUnderlineItalic cterm=UNDERLINE ctermfg=lightblue ctermbg=black + + +" colors{{{1 +" 1 black +" 2 blue +" 3 cyan +" 4 darkyellow +" 5 gray +" 6 green +" 7 lightblue +" 8 lightcyan +" 9 lightgray +" 10 lightgreen +" 11 lightmagenta +" 12 lightred +" 13 lightyellow +" 14 red +" 15 yellow +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/.vim/colors/hhorange.vim b/.vim/colors/hhorange.vim new file mode 100644 index 0000000..a1de49d --- /dev/null +++ b/.vim/colors/hhorange.vim @@ -0,0 +1,82 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/29 (Sat) 13:28:25. +" Version: 1.2 +" This color scheme uses a dark background. + +" Happy Hacking color scheme {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand("<sfile>:t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi LineNr gui=underline guifg=#756664 guibg=#1c1200 +hi Folded gui=none guifg=#756664 guibg=bg +hi FoldColumn gui=none guifg=#756664 guibg=bg +" title +hi Title gui=underline guifg=fg guibg=#553614 +" message +hi MoreMsg gui=underline guifg=bg guibg=#983235 +hi Question gui=underline guifg=bg guibg=#983235 + +hi NonText gui=underline guifg=#2c2210 guibg=#2c2210 +hi VertSplit gui=underline guifg=bg guibg=#1c1200 +hi StatusLine gui=underline guifg=fg guibg=#1c1200 +hi StatusLineNC gui=underline guifg=#3c2e2c guibg=#1c1200 + +" cursor {{{1 +hi WildMenu gui=underline guifg=bg guibg=#cc9069 +hi Cursor gui=underline guifg=bg guibg=#cc9069 +hi IncSearch gui=underline guifg=bg guibg=#cc9069 +hi CursorIM gui=underline guifg=fg guibg=#887900 +hi Search gui=underline guifg=bg guibg=#994113 +hi Visual gui=underline guifg=bg guibg=#886b46 + + +" message {{{1 +hi ErrorMsg gui=underline guifg=bg guibg=#dd66bb +hi WarningMsg gui=underline guifg=bg guibg=#cc668b +hi ModeMsg gui=underline guifg=bg guibg=#997433 + + +" inner {{{1 +hi Normal gui=none guifg=#9b8f78 guibg=#332412 +hi Ignore gui=none guifg=bg guibg=bg +hi Todo gui=underline guifg=bg guibg=#cc668b +hi Error gui=underline guifg=fg guibg=#413399 +hi Special gui=none guifg=#bb9466 guibg=bg +hi SpecialKey gui=none guifg=#becc66 guibg=bg +hi Identifier gui=none guifg=#be7569 guibg=bg +hi Constant gui=none guifg=#885222 guibg=bg +hi Statement gui=none guifg=#aa668f guibg=bg +hi Comment gui=none guifg=#887900 guibg=bg +hi Underlined gui=underline guifg=#66996d guibg=bg +hi Directory gui=none guifg=#774b44 guibg=bg +hi PreProc gui=none guifg=#775a55 guibg=bg +hi Type gui=none guifg=#bb7b22 guibg=bg + + +" diff {{{1 +hi DiffText gui=underline guifg=bg guibg=#ffa799 +hi DiffChange gui=underline guifg=bg guibg=#aa6155 +hi DiffDelete gui=none guifg=bg guibg=#aa7922 +hi DiffAdd gui=underline guifg=bg guibg=#cc2270 + + +" html {{{1 +hi htmlLink gui=underline guifg=#aaa366 guibg=bg +hi htmlBold gui=underline guifg=bg guibg=#aa668f +hi htmlBoldUnderline gui=underline guifg=#aa668f guibg=bg +hi htmlItalic gui=underline guifg=bg guibg=#cc8a44 +hi htmlUnderlineItalic gui=underline guifg=#cc8a44 guibg=bg +hi htmlBoldItalic gui=underline guifg=bg guibg=#aa3355 +hi htmlBoldUnderlineItalic gui=underline guifg=#aa3355 guibg=bg +hi htmlUnderline gui=underline guifg=fg guibg=bg + +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/.vim/colors/hhpink.vim b/.vim/colors/hhpink.vim new file mode 100644 index 0000000..cffe418 --- /dev/null +++ b/.vim/colors/hhpink.vim @@ -0,0 +1,85 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/29 (Sat) 13:28:25. +" Version: 1.2 +" This color scheme uses a dark background. + +" Happy Hacking color scheme {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand("<sfile>:t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi Folded gui=none guifg=#855060 guibg=bg +hi FoldColumn gui=none guifg=#855060 guibg=bg +hi LineNr gui=underline guifg=#855060 guibg=#200510 +hi VertSplit gui=underline guifg=bg guibg=#200510 +hi StatusLine gui=underline guifg=fg guibg=#200510 +hi StatusLineNC gui=underline guifg=#3c2c31 guibg=#200510 +hi NonText gui=underline guifg=#3c2530 +hi NonText guibg=#3c2530 +" title +hi Title gui=underline guifg=fg guibg=#653040 +" message +hi MoreMsg gui=underline guifg=bg guibg=#983266 +hi Question gui=underline guifg=bg guibg=#983266 + + +" cursor {{{1 +hi WildMenu gui=underline guifg=bg guibg=#cc7990 +hi Cursor gui=underline guifg=bg guibg=#cc7990 +hi IncSearch gui=underline guifg=bg guibg=#cc7990 +hi CursorIM gui=underline guifg=fg guibg=#884830 +hi Search gui=underline guifg=bg guibg=#993356 +hi Visual gui=underline guifg=bg guibg=#885672 + + +" message {{{1 +hi ErrorMsg gui=underline guifg=bg guibg=#c666dd +hi WarningMsg gui=underline guifg=bg guibg=#cc66bc +hi ModeMsg gui=underline guifg=bg guibg=#994333 + + +"TODO + +" inner {{{1 +hi Normal gui=none guifg=#bb7899 guibg=#40202a +hi Ignore gui=none guifg=bg guibg=bg +hi Todo gui=underline guifg=bg guibg=#cc568c +hi Error gui=underline guifg=fg guibg=#335699 +hi Special gui=none guifg=#bb6b66 guibg=bg +hi SpecialKey gui=none guifg=#cca966 guibg=bg +hi Identifier gui=none guifg=#be6986 guibg=bg +hi Constant gui=none guifg=#882223 guibg=bg +hi Statement gui=none guifg=#a466aa guibg=bg +hi Comment gui=none guifg=#884830 guibg=bg +hi Underlined gui=underline guifg=#779966 guibg=bg +hi Directory gui=none guifg=#774455 guibg=bg +hi PreProc gui=none guifg=#775561 guibg=bg +hi Type gui=none guifg=#aa3222 guibg=bg + + +" diff {{{1 +hi DiffText gui=underline guifg=bg guibg=#ff99bc +hi DiffChange gui=underline guifg=bg guibg=#aa5572 +hi DiffDelete gui=none guifg=bg guibg=#aa3822 +hi DiffAdd gui=underline guifg=bg guibg=#cc22c2 + + +" html {{{1 +hi htmlLink gui=underline guifg=#aa8266 guibg=bg +hi htmlBold gui=underline guifg=bg guibg=#a466aa +hi htmlBoldUnderline gui=underline guifg=#a466aa guibg=bg +hi htmlItalic gui=underline guifg=bg guibg=#cc4944 +hi htmlUnderlineItalic gui=underline guifg=#cc4944 guibg=bg +hi htmlBoldItalic gui=underline guifg=bg guibg=#aa338e +hi htmlBoldUnderlineItalic gui=underline guifg=#aa338e guibg=bg +hi htmlUnderline gui=underline guifg=fg guibg=bg + +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/.vim/colors/hhspring.vim b/.vim/colors/hhspring.vim new file mode 100644 index 0000000..cee4174 --- /dev/null +++ b/.vim/colors/hhspring.vim @@ -0,0 +1,83 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/29 (Sat) 13:28:25. +" Version: 1.2 +" This color scheme uses a dark background. + +" Happy Hacking color scheme {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand("<sfile>:t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi LineNr gui=underline guifg=#757164 guibg=#1c1910 +hi Folded gui=none guifg=#757164 guibg=bg +hi FoldColumn gui=none guifg=#757164 guibg=bg +" title +hi Title gui=underline guifg=fg guibg=#555144 +" message +hi MoreMsg gui=underline guifg=bg guibg=#986c32 +hi Question gui=underline guifg=bg guibg=#986c32 + +hi NonText gui=underline guifg=#2c2920 guibg=#2c2920 +hi VertSplit gui=underline guifg=bg guibg=#1c1910 +hi StatusLine gui=underline guifg=fg guibg=#1c1910 +hi StatusLineNC gui=underline guifg=#3c382c guibg=#1c1910 + +" cursor {{{1 +hi WildMenu gui=underline guifg=bg guibg=#ccbf99 +hi Cursor gui=underline guifg=bg guibg=#ccbf99 +hi IncSearch gui=underline guifg=bg guibg=#ccbf99 +hi CursorIM gui=underline guifg=fg guibg=#458800 +hi Search gui=underline guifg=bg guibg=#997e33 +hi Visual gui=underline guifg=bg guibg=#887f66 + + +" message {{{1 +hi ErrorMsg gui=underline guifg=bg guibg=#dd6674 +hi WarningMsg gui=underline guifg=bg guibg=#cc7e66 +hi ModeMsg gui=underline guifg=bg guibg=#819933 + + +"TODO +" inner {{{1 +hi Normal gui=none guifg=#bbae88 guibg=#332f22 +hi Ignore gui=none guifg=bg guibg=bg +hi Todo gui=underline guifg=bg guibg=#cc7e66 +hi Error gui=underline guifg=fg guibg=#7e3399 +hi Special gui=none guifg=#afbb66 guibg=bg +hi SpecialKey gui=none guifg=#81cc66 guibg=bg +hi Identifier gui=none guifg=#bea869 guibg=bg +hi Constant gui=none guifg=#818822 guibg=bg +hi Statement gui=none guifg=#aa6667 guibg=bg +hi Comment gui=none guifg=#458800 guibg=bg +hi Underlined gui=underline guifg=#66998c guibg=bg +hi Directory gui=none guifg=#776a44 guibg=bg +hi PreProc gui=none guifg=#776e55 guibg=bg +hi Type gui=none guifg=#9fbb22 guibg=bg + + +" diff {{{1 +hi DiffText gui=underline guifg=bg guibg=#ffe499 +hi DiffChange gui=underline guifg=bg guibg=#aa9455 +hi DiffDelete gui=none guifg=bg guibg=#89aa22 +hi DiffAdd gui=underline guifg=bg guibg=#cc3a22 + + +" html {{{1 +hi htmlLink gui=underline guifg=#89aa66 guibg=bg +hi htmlBold gui=underline guifg=bg guibg=#aa6667 +hi htmlBoldUnderline gui=underline guifg=#aa6667 guibg=bg +hi htmlItalic gui=underline guifg=bg guibg=#bccc44 +hi htmlUnderlineItalic gui=underline guifg=#bccc44 guibg=bg +hi htmlBoldItalic gui=underline guifg=bg guibg=#aa5833 +hi htmlBoldUnderlineItalic gui=underline guifg=#aa5833 guibg=bg +hi htmlUnderline gui=underline guifg=fg guibg=bg + +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/.vim/colors/hhteal.vim b/.vim/colors/hhteal.vim new file mode 100644 index 0000000..79dbb3c --- /dev/null +++ b/.vim/colors/hhteal.vim @@ -0,0 +1,83 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/29 (Sat) 13:28:25. +" Version: 1.2 +" This color scheme uses a dark background. + +" Happy Hacking color scheme {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand("<sfile>:t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi LineNr gui=underline guifg=#647564 guibg=#101c10 +hi Folded gui=none guifg=#647564 guibg=bg +hi FoldColumn gui=none guifg=#647564 guibg=bg +" title +hi Title gui=underline guifg=fg guibg=#445544 +" message +hi MoreMsg gui=underline guifg=bg guibg=#439832 +hi Question gui=underline guifg=bg guibg=#439832 + +hi NonText gui=underline guifg=#202c20 guibg=#202c20 +hi VertSplit gui=underline guifg=bg guibg=#101c10 +hi StatusLine gui=underline guifg=fg guibg=#101c10 +hi StatusLineNC gui=underline guifg=#2c3c2c guibg=#101c10 + +" cursor {{{1 +hi WildMenu gui=underline guifg=bg guibg=#99cc99 +hi Cursor gui=underline guifg=bg guibg=#99cc99 +hi IncSearch gui=underline guifg=bg guibg=#99cc99 +hi CursorIM gui=underline guifg=fg guibg=#008866 +hi Search gui=underline guifg=bg guibg=#339933 +hi Visual gui=underline guifg=bg guibg=#668866 + + +" message {{{1 +hi ErrorMsg gui=underline guifg=bg guibg=#ccdd66 +hi WarningMsg gui=underline guifg=bg guibg=#99cc66 +hi ModeMsg gui=underline guifg=bg guibg=#339966 + + +"TODO +" inner {{{1 +hi Normal gui=none guifg=#88bb88 guibg=#223322 +hi Ignore gui=none guifg=bg guibg=bg +hi Todo gui=underline guifg=bg guibg=#99cc66 +hi Error gui=underline guifg=fg guibg=#993333 +hi Special gui=none guifg=#66bb88 guibg=bg +hi SpecialKey gui=none guifg=#66cccc guibg=bg +hi Identifier gui=none guifg=#69be69 guibg=bg +hi Constant gui=none guifg=#228844 guibg=bg +hi Statement gui=none guifg=#99aa66 guibg=bg +hi Comment gui=none guifg=#008866 guibg=bg +hi Underlined gui=underline guifg=#666699 guibg=bg +hi Directory gui=none guifg=#447744 guibg=bg +hi PreProc gui=none guifg=#557755 guibg=bg +hi Type gui=none guifg=#22bb66 guibg=bg + + +" diff {{{1 +hi DiffText gui=underline guifg=bg guibg=#99ff99 +hi DiffChange gui=underline guifg=bg guibg=#55aa55 +hi DiffDelete gui=none guifg=bg guibg=#22aa66 +hi DiffAdd gui=underline guifg=bg guibg=#88cc22 + + +" html {{{1 +hi htmlLink gui=underline guifg=#66aa99 guibg=bg +hi htmlBold gui=underline guifg=bg guibg=#99aa66 +hi htmlBoldUnderline gui=underline guifg=#99aa66 guibg=bg +hi htmlItalic gui=underline guifg=bg guibg=#44cc77 +hi htmlUnderlineItalic gui=underline guifg=#44cc77 guibg=bg +hi htmlBoldItalic gui=underline guifg=bg guibg=#66aa33 +hi htmlBoldUnderlineItalic gui=underline guifg=#66aa33 guibg=bg +hi htmlUnderline gui=underline guifg=fg guibg=bg + +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/.vim/colors/hhviolet.vim b/.vim/colors/hhviolet.vim new file mode 100644 index 0000000..b8fbf62 --- /dev/null +++ b/.vim/colors/hhviolet.vim @@ -0,0 +1,83 @@ +" Vim color file {{{1 +" Maintainer: hira@users.sourceforge.jp +" Last Change: 2003/11/29 (Sat) 13:28:25. +" Version: 1.2 +" This color scheme uses a dark background. + +" Happy Hacking color scheme {{{1 +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = expand("<sfile>:t:r") +let html_my_rendering = 1 + + +" frame & title & message (theme) {{{1 +hi LineNr gui=underline guifg=#686475 guibg=#13101c +hi Folded gui=none guifg=#686475 guibg=bg +hi FoldColumn gui=none guifg=#686475 guibg=bg +" title +hi Title gui=underline guifg=fg guibg=#484455 +" message +hi MoreMsg gui=underline guifg=bg guibg=#373298 +hi Question gui=underline guifg=bg guibg=#373298 + +hi NonText gui=underline guifg=#23202c guibg=#23202c +hi VertSplit gui=underline guifg=bg guibg=#13101c +hi StatusLine gui=underline guifg=fg guibg=#13101c +hi StatusLineNC gui=underline guifg=#302c3c guibg=#13101c + +" cursor {{{1 +hi WildMenu gui=underline guifg=bg guibg=#a499cc +hi Cursor gui=underline guifg=bg guibg=#a499cc +hi IncSearch gui=underline guifg=bg guibg=#a499cc +hi CursorIM gui=underline guifg=fg guibg=#662088 +hi Search gui=underline guifg=bg guibg=#493399 +hi Visual gui=underline guifg=bg guibg=#6d6688 + + +" message {{{1 +hi ErrorMsg gui=underline guifg=bg guibg=#66b2dd +hi WarningMsg gui=underline guifg=bg guibg=#6683cc +hi ModeMsg gui=underline guifg=bg guibg=#7c3399 + + +"TODO +" inner {{{1 +hi Normal gui=none guifg=#9388bb guibg=#262233 +hi Ignore gui=none guifg=bg guibg=bg +hi Todo gui=underline guifg=bg guibg=#6683cc +hi Error gui=underline guifg=fg guibg=#335544 +hi Special gui=none guifg=#9b66bb guibg=bg +hi SpecialKey gui=none guifg=#cc66b6 guibg=bg +hi Identifier gui=none guifg=#7c69be guibg=bg +hi Constant gui=none guifg=#774499 guibg=bg +hi Statement gui=none guifg=#668aaa guibg=bg +hi Comment gui=none guifg=#662088 guibg=bg +hi Underlined gui=underline guifg=#997166 guibg=bg +hi Directory gui=none guifg=#4f4477 guibg=bg +hi PreProc gui=none guifg=#5c5577 guibg=bg +hi Type gui=none guifg=#7733cc guibg=bg + + +" diff {{{1 +hi DiffText gui=underline guifg=bg guibg=#af99ff +hi DiffChange gui=underline guifg=bg guibg=#6855aa +hi DiffDelete gui=none guifg=bg guibg=#8422aa +hi DiffAdd gui=underline guifg=bg guibg=#2263cc + + +" html {{{1 +hi htmlLink gui=underline guifg=#a866aa guibg=bg +hi htmlBold gui=underline guifg=bg guibg=#668aaa +hi htmlBoldUnderline gui=underline guifg=#668aaa guibg=bg +hi htmlItalic gui=underline guifg=bg guibg=#9544cc +hi htmlUnderlineItalic gui=underline guifg=#9544cc guibg=bg +hi htmlBoldItalic gui=underline guifg=bg guibg=#334caa +hi htmlBoldUnderlineItalic gui=underline guifg=#334caa guibg=bg +hi htmlUnderline gui=underline guifg=fg guibg=bg + +"}}}1 +" vim:set nowrap foldmethod=marker expandtab: diff --git a/.vim/colors/ibmedit.vim b/.vim/colors/ibmedit.vim new file mode 100644 index 0000000..4b846c6 --- /dev/null +++ b/.vim/colors/ibmedit.vim @@ -0,0 +1,60 @@ +" Vim color file +" Maintainer: Maarten Slaets +" Last Change: 2002 Aug 16 + +" Color settings similar to that used in IBM Edit + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="ibmedit" + +hi Normal term=NONE cterm=NONE ctermfg=Gray ctermbg=DarkBlue +hi Normal gui=NONE guifg=#CCCCCC guibg=DarkBlue +hi NonText term=NONE cterm=NONE ctermfg=Gray ctermbg=DarkBlue +hi NonText gui=NONE guifg=#CCCCCC guibg=DarkBlue + +hi Statement term=NONE cterm=NONE ctermfg=White ctermbg=DarkBlue +hi Statement gui=NONE guifg=White guibg=DarkBlue +hi Special term=NONE cterm=NONE ctermfg=White ctermbg=DarkBlue +hi Special gui=NONE guifg=White guibg=DarkBlue +hi Constant term=NONE cterm=NONE ctermfg=Cyan ctermbg=DarkBlue +hi Constant gui=NONE guifg=#99CCFF guibg=DarkBlue +hi Comment term=NONE cterm=NONE ctermfg=Blue ctermbg=DarkBlue +hi Comment gui=NONE guifg=#6666FF guibg=DarkBlue +hi Preproc term=NONE cterm=NONE ctermfg=Cyan ctermbg=DarkBlue +hi Preproc gui=NONE guifg=#99CCFF guibg=DarkBlue +hi Type term=NONE cterm=NONE ctermfg=Gray ctermbg=DarkBlue +hi Type gui=NONE guifg=#CCCCCC guibg=DarkBlue +hi Identifier term=NONE cterm=NONE ctermfg=Grey ctermbg=DarkBlue +hi Identifier gui=NONE guifg=#CCCCCC guibg=DarkBlue + +hi StatusLine term=bold cterm=bold ctermfg=Black ctermbg=White +hi StatusLine gui=bold guifg=Black guibg=White + +hi StatusLineNC term=NONE cterm=NONE ctermfg=Black ctermbg=White +hi StatusLineNC gui=NONE guifg=Black guibg=White + +hi Visual term=NONE cterm=NONE ctermfg=Black ctermbg=DarkCyan +hi Visual gui=NONE guifg=Black guibg=Gray + +hi Search term=NONE cterm=NONE ctermbg=Gray +hi Search gui=NONE guibg=Gray + +hi VertSplit term=NONE cterm=NONE ctermfg=Black ctermbg=White +hi VertSplit gui=NONE guifg=Black guibg=White + +hi Directory term=NONE cterm=NONE ctermfg=Green ctermbg=DarkBlue +hi Directory gui=NONE guifg=Green guibg=DarkBlue + +hi WarningMsg term=standout cterm=NONE ctermfg=Red ctermbg=DarkBlue +hi WarningMsg gui=standout guifg=Red guibg=DarkBlue + +hi Error term=NONE cterm=NONE ctermfg=White ctermbg=Red +hi Error gui=NONE guifg=White guibg=Red + +hi Cursor ctermfg=Black ctermbg=Yellow +hi Cursor guifg=Black guibg=Yellow + diff --git a/.vim/colors/inkpot.vim b/.vim/colors/inkpot.vim new file mode 100644 index 0000000..e70d992 --- /dev/null +++ b/.vim/colors/inkpot.vim @@ -0,0 +1,138 @@ +" Vim color file +" Name: inkpot.vim +" Maintainer: Ciaran McCreesh <ciaranm@gentoo.org> +" This should work in the GUI, rxvt-unicode (88 colour mode) and xterm (256 +" colour mode). It won't work in 8/16 colour terminals. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "inkpot" + +" map a urxvt cube number to an xterm-256 cube number +fun! <SID>M(a) + return strpart("0135", a:a, 1) + 0 +endfun + +" map a urxvt colour to an xterm-256 colour +fun! <SID>X(a) + if &t_Co == 88 + return a:a + else + if a:a == 8 + return 237 + elseif a:a < 16 + return a:a + elseif a:a > 79 + return 232 + (3 * (a:a - 80)) + else + let l:b = a:a - 16 + let l:x = l:b % 4 + let l:y = (l:b / 4) % 4 + let l:z = (l:b / 16) + return 16 + <SID>M(l:x) + (6 * <SID>M(l:y)) + (36 * <SID>M(l:z)) + endif + endif +endfun + +if has("gui_running") + hi Normal gui=NONE guifg=#cfbfad guibg=#1e1e27 + hi IncSearch gui=BOLD guifg=#303030 guibg=#cd8b60 + hi Search gui=NONE guifg=#303030 guibg=#cd8b60 + hi ErrorMsg gui=BOLD guifg=#ffffff guibg=#ff3300 + hi WarningMsg gui=BOLD guifg=#ffffff guibg=#ff6600 + hi ModeMsg gui=BOLD guifg=#7e7eae guibg=NONE + hi MoreMsg gui=BOLD guifg=#7e7eae guibg=NONE + hi Question gui=BOLD guifg=#ffcd00 guibg=NONE + hi StatusLine gui=BOLD guifg=#b9b9b9 guibg=#3e3e5e + hi StatusLineNC gui=NONE guifg=#b9b9b9 guibg=#3e3e5e + hi VertSplit gui=NONE guifg=#b9b9b9 guibg=#3e3e5e + hi WildMenu gui=BOLD guifg=#ffcd00 guibg=#1e1e2e + + hi DiffText gui=NONE guifg=#ffffcd guibg=#00cd00 + hi DiffChange gui=NONE guifg=#ffffcd guibg=#008bff + hi DiffDelete gui=NONE guifg=#ffffcd guibg=#cd0000 + hi DiffAdd gui=NONE guifg=#ffffcd guibg=#00cd00 + + hi Cursor gui=NONE guifg=#404040 guibg=#8b8bff + hi lCursor gui=NONE guifg=#404040 guibg=#8b8bff + hi CursorIM gui=NONE guifg=#404040 guibg=#8b8bff + + hi Folded gui=NONE guifg=#cfcfcd guibg=#4b208f + hi FoldColumn gui=NONE guifg=#8b8bcd guibg=#2e2e2e + + hi Directory gui=NONE guifg=#00ff8b guibg=NONE + hi LineNr gui=NONE guifg=#8b8bcd guibg=#2e2e2e + hi NonText gui=BOLD guifg=#8b8bcd guibg=NONE + hi SpecialKey gui=BOLD guifg=#8b00cd guibg=NONE + hi Title gui=BOLD guifg=#af4f4b guibg=#1e1e27 + hi Visual gui=NONE guifg=#603030 guibg=#edab60 + + hi Comment gui=NONE guifg=#cd8b00 guibg=NONE + hi Constant gui=NONE guifg=#ffcd8b guibg=NONE + hi String gui=NONE guifg=#ffcd8b guibg=#404040 + hi Error gui=NONE guifg=#ffffff guibg=#ff0000 + hi Identifier gui=NONE guifg=#ff8bff guibg=NONE + hi Ignore gui=NONE guifg=#8b8bcd guibg=NONE + hi Number gui=NONE guifg=#506dbd guibg=NONE + hi PreProc gui=NONE guifg=#409090 guibg=NONE + hi Special gui=NONE guifg=#c080d0 guibg=NONE + hi Statement gui=NONE guifg=#808bed guibg=NONE + hi Todo gui=BOLD guifg=#303030 guibg=#c080d0 + hi Type gui=NONE guifg=#ff8bff guibg=NONE + hi Underlined gui=BOLD guifg=#ffffcd guibg=NONE + hi TaglistTagName gui=BOLD guifg=#808bed guibg=NONE + +else + exec "hi Normal cterm=NONE ctermfg=" . <SID>X("78") . " ctermbg=" . <SID>X(80) . "" + exec "hi IncSearch cterm=BOLD ctermfg=" . <SID>X("80") . " ctermbg=" . <SID>X(73) . "" + exec "hi Search cterm=NONE ctermfg=" . <SID>X("80") . " ctermbg=" . <SID>X(73) . "" + exec "hi ErrorMsg cterm=BOLD ctermfg=" . <SID>X("79") . " ctermbg=" . <SID>X(64) . "" + exec "hi WarningMsg cterm=BOLD ctermfg=" . <SID>X("79") . " ctermbg=" . <SID>X(68) . "" + exec "hi ModeMsg cterm=BOLD ctermfg=" . <SID>X("39") . "" + exec "hi MoreMsg cterm=BOLD ctermfg=" . <SID>X("39") . "" + exec "hi Question cterm=BOLD ctermfg=" . <SID>X("72") . "" + exec "hi StatusLine cterm=BOLD ctermfg=" . <SID>X("84") . " ctermbg=" . <SID>X(81) . "" + exec "hi StatusLineNC cterm=NONE ctermfg=" . <SID>X("84") . " ctermbg=" . <SID>X(81) . "" + exec "hi VertSplit cterm=NONE ctermfg=" . <SID>X("84") . " ctermbg=" . <SID>X(82) . "" + exec "hi WildMenu cterm=BOLD ctermfg=" . <SID>X("72") . " ctermbg=" . <SID>X(80) . "" + + exec "hi DiffText cterm=NONE ctermfg=" . <SID>X("78") . " ctermbg=" . <SID>X(24) . "" + exec "hi DiffChange cterm=NONE ctermfg=" . <SID>X("78") . " ctermbg=" . <SID>X(23) . "" + exec "hi DiffDelete cterm=NONE ctermfg=" . <SID>X("78") . " ctermbg=" . <SID>X(48) . "" + exec "hi DiffAdd cterm=NONE ctermfg=" . <SID>X("78") . " ctermbg=" . <SID>X(24) . "" + + exec "hi Cursor cterm=NONE ctermfg=" . <SID>X("8") . " ctermbg=" . <SID>X(39) . "" + exec "hi lCursor cterm=NONE ctermfg=" . <SID>X("8") . " ctermbg=" . <SID>X(39) . "" + exec "hi CursorIM cterm=NONE ctermfg=" . <SID>X("8") . " ctermbg=" . <SID>X(39) . "" + + exec "hi Folded cterm=NONE ctermfg=" . <SID>X("78") . " ctermbg=" . <SID>X(35) . "" + exec "hi FoldColumn cterm=NONE ctermfg=" . <SID>X("38") . " ctermbg=" . <SID>X(80) . "" + + exec "hi Directory cterm=NONE ctermfg=" . <SID>X("29") . " ctermbg=NONE" + exec "hi LineNr cterm=NONE ctermfg=" . <SID>X("38") . " ctermbg=" . <SID>X(80) . "" + exec "hi NonText cterm=BOLD ctermfg=" . <SID>X("38") . " ctermbg=NONE" + exec "hi SpecialKey cterm=BOLD ctermfg=" . <SID>X("34") . " ctermbg=NONE" + exec "hi Title cterm=BOLD ctermfg=" . <SID>X("52") . " ctermbg=" . <SID>X(80) . "" + exec "hi Visual cterm=NONE ctermfg=" . <SID>X("80") . " ctermbg=" . <SID>X(73) . "" + + exec "hi Comment cterm=NONE ctermfg=" . <SID>X("52") . " ctermbg=NONE" + exec "hi Constant cterm=NONE ctermfg=" . <SID>X("73") . " ctermbg=NONE" + exec "hi String cterm=NONE ctermfg=" . <SID>X("73") . " ctermbg=" . <SID>X(8) . "" + exec "hi Error cterm=NONE ctermfg=" . <SID>X("79") . " ctermbg=" . <SID>X(64) . "" + exec "hi Identifier cterm=NONE ctermfg=" . <SID>X("71") . " ctermbg=NONE" + exec "hi Ignore cterm=NONE ctermfg=" . <SID>X("38") . " ctermbg=NONE" + exec "hi Number cterm=NONE ctermfg=" . <SID>X("22") . " ctermbg=NONE" + exec "hi PreProc cterm=NONE ctermfg=" . <SID>X("10") . " ctermbg=NONE" + exec "hi Special cterm=NONE ctermfg=" . <SID>X("39") . " ctermbg=NONE" + exec "hi Statement cterm=NONE ctermfg=" . <SID>X("26") . " ctermbg=NONE" + exec "hi Todo cterm=BOLD ctermfg=" . <SID>X("08") . " ctermbg=" . <SID>X(39) . "" + exec "hi Type cterm=NONE ctermfg=" . <SID>X("71") . " ctermbg=NONE" + exec "hi Underlined cterm=BOLD ctermfg=" . <SID>X("78") . " ctermbg=NONE" + exec "hi TaglistTagName cterm=BOLD ctermfg=" . <SID>X("26") . " ctermbg=NONE" +endif + +" vim: set et : diff --git a/.vim/colors/ironman.vim b/.vim/colors/ironman.vim new file mode 100644 index 0000000..c82ce3d --- /dev/null +++ b/.vim/colors/ironman.vim @@ -0,0 +1,80 @@ +" Vim color file +" Maintainer: Michael Boehler +" Mail: michael@familie-boehler.de +" Last Change: 2002-09-24 +" Version: 1.3 +" This color scheme uses a light background. +" GUI only + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "ironman" + +hi Normal guifg=#333333 guibg=NONE + +" Search +hi IncSearch gui=NONE guifg=#303040 guibg=#ffff00 +hi Search gui=NONE guifg=#303040 guibg=#ccff00 + +" Messages +hi ErrorMsg gui=NONE guifg=#FF0000 guibg=NONE +hi WarningMsg gui=NONE guifg=#FF6600 guibg=NONE +hi ModeMsg gui=NONE guifg=#0070ff guibg=NONE +hi MoreMsg gui=NONE guifg=#a800ff guibg=NONE +hi Question gui=NONE guifg=#008050 guibg=NONE + +" Split area +hi StatusLine gui=NONE guifg=#fffacd guibg=#DF6A6A +hi StatusLineNC gui=NONE guifg=#fffacd guibg=#b2bbcc +hi VertSplit gui=NONE guifg=#fffacd guibg=#b2bbcc +hi WildMenu gui=NONE guifg=#ffffff guibg=#3399cc + +" Diff +hi DiffText gui=NONE guifg=#f83010 guibg=#ffeae0 +hi DiffChange gui=NONE guifg=#006800 guibg=#d0ffd0 +hi DiffDelete gui=NONE guifg=#2020ff guibg=#c8f2ea +hi DiffAdd gui=NONE guifg=#2020ff guibg=#c8f2ea + +" Cursor +hi Cursor gui=NONE guifg=#ffffff guibg=#DF6A6A +hi lCursor gui=NONE guifg=#f8f8f8 guibg=#8000ff +hi CursorIM gui=NONE guifg=#f8f8f8 guibg=#8000ff + +" Fold +hi Folded gui=NONE guifg=#3399ff guibg=#EAF5FF +hi FoldColumn gui=NONE guifg=#3399ff guibg=#EAF5FF + +" Other +hi Directory gui=NONE guifg=#0000ff guibg=NONE +hi LineNr gui=NONE guifg=#cccccc guibg=NONE +hi NonText gui=NONE guifg=#cccccc guibg=NONE +hi SpecialKey gui=NONE guifg=#66cccc guibg=NONE +hi Title gui=NONE guifg=#004060 guibg=#c8f0f8 +hi Visual gui=NONE guifg=#ffffff guibg=#6889de + +" Syntax group +hi Comment gui=NONE guifg=#ff5050 guibg=#ffebeb +hi Constant gui=NONE guifg=#333333 guibg=#ededed +hi Error gui=BOLD guifg=#ffffff guibg=#ff4080 +hi Identifier gui=NONE guifg=#339933 guibg=NONE +hi Ignore gui=NONE guifg=#f8f8f8 guibg=NONE +hi PreProc gui=NONE guifg=#0070e6 guibg=NONE +hi Special gui=NONE guifg=#0000ff guibg=#ccf7ee +hi Statement gui=NONE guifg=#0000FF guibg=NONE +hi Todo gui=NONE guifg=#ff0070 guibg=#ffe0f4 +hi Type gui=NONE guifg=#eb7950 guibg=NONE +hi Underlined gui=UNDERLINE guifg=#0000ff guibg=NONE + +" HTML +hi htmlLink gui=UNDERLINE guifg=#0000ff guibg=NONE +hi htmlBold gui=BOLD +hi htmlBoldItalic gui=BOLD,ITALIC +hi htmlBoldUnderline gui=BOLD,UNDERLINE +hi htmlBoldUnderlineItalic gui=BOLD,UNDERLINE,ITALIC +hi htmlItalic gui=ITALIC +hi htmlUnderline gui=UNDERLINE +hi htmlUnderlineItalic gui=UNDERLINE,ITALIC diff --git a/.vim/colors/jhdark.vim b/.vim/colors/jhdark.vim new file mode 100644 index 0000000..22e5494 --- /dev/null +++ b/.vim/colors/jhdark.vim @@ -0,0 +1,72 @@ +" Vim color file by Jörn Horstmann <joern_h@gmx.net> +" Light background in GUI, dark background in Console +" Last change 16.07.2004 +" TODO + +set bg=dark + +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "jhdark" + +hi Normal guifg=#999999 guibg=#000000 gui=none ctermfg=gray ctermbg=black cterm=none + +hi ErrorMsg guifg=#ff0000 guibg=bg gui=none ctermfg=red ctermbg=bg cterm=none +hi Visual guifg=bg guibg=#4444aa gui=none ctermfg=bg ctermbg=darkcyan cterm=none +hi VisualNOS guifg=bg guibg=#4444aa gui=none ctermfg=bg ctermbg=darkcyan cterm=none +hi Todo guifg=bg guibg=#aaaa00 gui=none ctermfg=bg ctermbg=yellow cterm=none +"hi Todo guifg=#884400 guibg=bg gui=none ctermfg=bg ctermbg=yellow cterm=none +hi Search guifg=bg guibg=#8888ee gui=none ctermfg=bg ctermbg=blue cterm=none +hi IncSearch guifg=bg guibg=#8888ee gui=none ctermfg=bg ctermbg=blue cterm=none + +hi SpecialKey guifg=#775522 guibg=bg gui=none ctermfg=magenta ctermbg=bg cterm=none +hi Directory guifg=#000088 guibg=bg gui=none ctermfg=blue ctermbg=bg cterm=none +hi WarningMsg guifg=#ff0000 guibg=bg gui=none ctermfg=red ctermbg=bg cterm=none +hi WildMenu guifg=bg guibg=#ffff00 gui=none ctermfg=bg ctermbg=yellow cterm=none +hi ModeMsg guifg=fg guibg=bg gui=none ctermfg=fg ctermbg=bg cterm=none +hi Title guifg=fg guibg=#cccccc gui=none ctermfg=bg ctermbg=fg cterm=none +hi MoreMsg guifg=fg guibg=bg gui=none ctermfg=bg ctermbg=fg cterm=none +hi Question guifg=fg guibg=bg gui=none ctermfg=bg ctermbg=fg cterm=none +hi NonText guifg=#666666 guibg=bg gui=none ctermfg=fg ctermbg=bg cterm=none + +hi StatusLine guifg=#dddddd guibg=#000088 gui=none ctermfg=bg ctermbg=darkblue cterm=none +hi StatusLineNC guifg=#dddddd guibg=#333333 gui=none ctermfg=bg ctermbg=darkgray cterm=none +hi VertSplit guifg=#dddddd guibg=#333333 gui=none ctermfg=bg ctermbg=darkgray cterm=none + +hi Folded guifg=#bb0099 guibg=#222222 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +hi FoldColumn guifg=#bb0099 guibg=#222222 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +hi SignColumn guifg=#bb0099 guibg=#222222 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +hi LineNr guifg=#bb0099 guibg=#222222 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none + +"hi Folded guifg=#dddddd guibg=#666666 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +"hi FoldColumn guifg=#dddddd guibg=#666666 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +"hi SignColumn guifg=#dddddd guibg=#666666 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +"hi LineNr guifg=#dddddd guibg=#666666 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none + +hi DiffChange guifg=bg guibg=#888800 gui=none ctermfg=bg ctermbg=brown cterm=none +hi DiffAdd guifg=bg guibg=#000088 gui=none ctermfg=bg ctermbg=darkblue cterm=none +hi DiffDelete guifg=bg guibg=#880000 gui=none ctermfg=bg ctermbg=darkred cterm=none +hi DiffText guifg=fg guibg=#dd0000 gui=none ctermfg=fg ctermbg=red cterm=none + +hi Cursor guifg=bg guibg=fg gui=none ctermfg=bg ctermbg=fg cterm=none +hi lCursor guifg=bg guibg=fg gui=none ctermfg=bg ctermbg=fg cterm=none + +hi Comment guifg=#008800 guibg=bg gui=none ctermfg=darkgreen ctermbg=bg cterm=none +hi Operator guifg=fg guibg=bg gui=none ctermfg=fg ctermbg=bg cterm=none +hi Constant guifg=#aa0000 guibg=bg gui=none ctermfg=darkred ctermbg=bg cterm=none +hi Special guifg=#997700 guibg=bg gui=none ctermfg=brown ctermbg=bg cterm=none + +hi Identifier guifg=#dddddd guibg=bg gui=none ctermfg=white ctermbg=bg cterm=none + +hi Type guifg=#6666dd guibg=bg gui=none ctermfg=cyan ctermbg=bg cterm=none +hi Statement guifg=#dddddd guibg=bg gui=none ctermfg=white ctermbg=bg cterm=none + +hi PreProc guifg=#008888 guibg=bg gui=none ctermfg=darkcyan ctermbg=bg cterm=none + +hi Error guifg=fg guibg=#ff0000 gui=none ctermfg=bg ctermbg=red cterm=none + +hi Ignore guifg=bg ctermfg=bg +hi Underlined guifg=fg guibg=bg ctermfg=fg ctermbg=bg cterm=underline term=underline gui=underline diff --git a/.vim/colors/jhlight.vim b/.vim/colors/jhlight.vim new file mode 100644 index 0000000..753232e --- /dev/null +++ b/.vim/colors/jhlight.vim @@ -0,0 +1,80 @@ +" Vim color file by Jörn Horstmann <joern_h@gmx.net> +" Light background, works in GUI and cobnsole +" Last change 08.09.2004 +" TODO + +set bg=light + +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "jhlight" + +hi Normal guifg=#000000 guibg=#dddddd gui=none ctermfg=black ctermbg=grey cterm=none + +hi ErrorMsg guifg=#ff0000 guibg=bg gui=none ctermfg=red ctermbg=bg cterm=none +hi Visual guifg=bg guibg=#4444aa gui=none ctermfg=bg ctermbg=darkcyan cterm=none +hi VisualNOS guifg=bg guibg=#4444aa gui=none ctermfg=bg ctermbg=darkcyan cterm=none +hi Todo guifg=fg guibg=#bbbb77 gui=none ctermfg=bg ctermbg=brown cterm=none +"hi Todo guifg=#884400 guibg=bg gui=none ctermfg=bg ctermbg=yellow cterm=none +hi Search guifg=fg guibg=#8888ee gui=none ctermfg=bg ctermbg=blue cterm=none +hi IncSearch guifg=fg guibg=#8888ee gui=none ctermfg=bg ctermbg=blue cterm=none + +hi SpecialKey guifg=#553300 guibg=bg gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +hi Directory guifg=#000088 guibg=bg gui=none ctermfg=blue ctermbg=bg cterm=none +hi WarningMsg guifg=#ff0000 guibg=bg gui=none ctermfg=red ctermbg=bg cterm=none +hi WildMenu guifg=fg guibg=#ffff00 gui=none ctermfg=bg ctermbg=brown cterm=none +hi ModeMsg guifg=fg guibg=bg gui=none ctermfg=fg ctermbg=bg cterm=none +hi Title guifg=#000088 guibg=#cccccc gui=none ctermfg=fg ctermbg=bg cterm=none +hi MoreMsg guifg=#000088 guibg=bg gui=none ctermfg=fg ctermbg=bg cterm=none +hi Question guifg=#000088 guibg=bg gui=none ctermfg=fg ctermbg=bg cterm=none +hi NonText guifg=#444444 guibg=bg gui=none ctermfg=fg ctermbg=bg cterm=none + +hi StatusLine guifg=#dddddd guibg=#000088 gui=none ctermfg=white ctermbg=darkblue cterm=none +hi StatusLineNC guifg=#dddddd guibg=#333333 gui=none ctermfg=grey ctermbg=black cterm=none +hi VertSplit guifg=#dddddd guibg=#333333 gui=none ctermfg=white ctermbg=black cterm=none + +hi Folded guifg=#005500 guibg=#999999 gui=none ctermfg=darkgreen ctermbg=darkgray cterm=none +hi FoldColumn guifg=#005500 guibg=#999999 gui=none ctermfg=darkgreen ctermbg=darkgray cterm=none +hi SignColumn guifg=#005500 guibg=#999999 gui=none ctermfg=darkgreen ctermbg=darkgray cterm=none +hi LineNr guifg=#005500 guibg=#999999 gui=none ctermfg=darkgreen ctermbg=darkgray cterm=none + +"hi Folded guifg=#dddddd guibg=#666666 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +"hi FoldColumn guifg=#dddddd guibg=#666666 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +"hi SignColumn guifg=#dddddd guibg=#666666 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +"hi LineNr guifg=#dddddd guibg=#666666 gui=none ctermfg=darkmagenta ctermbg=bg cterm=none + +hi DiffChange guifg=bg guibg=#888800 gui=none ctermfg=bg ctermbg=brown cterm=none +hi DiffAdd guifg=bg guibg=#000088 gui=none ctermfg=bg ctermbg=darkblue cterm=none +hi DiffDelete guifg=bg guibg=#880000 gui=none ctermfg=bg ctermbg=darkred cterm=none +hi DiffText guifg=fg guibg=#dd0000 gui=none ctermfg=fg ctermbg=red cterm=none + +hi Cursor guifg=bg guibg=fg gui=none ctermfg=bg ctermbg=fg cterm=none +hi lCursor guifg=bg guibg=fg gui=none ctermfg=bg ctermbg=fg cterm=none + +hi Comment guifg=#005500 guibg=bg gui=none ctermfg=darkgreen ctermbg=bg cterm=none +hi Operator guifg=fg guibg=bg gui=none ctermfg=fg ctermbg=bg cterm=none +hi Constant guifg=#880000 guibg=bg gui=none ctermfg=darkred ctermbg=bg cterm=none +hi Special guifg=#553300 guibg=bg gui=none ctermfg=brown ctermbg=bg cterm=none + +hi Identifier guifg=#000088 guibg=bg gui=none ctermfg=darkblue ctermbg=bg cterm=none +"hi Function guifg=#000044 gui=none + +"hi Keyword guifg=#000088 gui=none + +if exists("g:jh_hi_use_bold") + hi Type guifg=#660044 guibg=bg gui=bold ctermfg=darkmagenta ctermbg=bg cterm=none + hi Statement guifg=#440066 guibg=bg gui=bold ctermfg=darkmagenta ctermbg=bg cterm=none +else + hi Type guifg=#660044 guibg=bg gui=none ctermfg=darkmagenta ctermbg=bg cterm=none + hi Statement guifg=#440066 guibg=bg gui=none ctermfg=darkmagenta ctermbg=bg cterm=none +endif + +hi PreProc guifg=#004466 guibg=bg gui=none ctermfg=darkcyan ctermbg=bg cterm=none + +hi Error guifg=fg guibg=#880000 gui=none ctermfg=bg ctermbg=red cterm=none + +hi Ignore guifg=bg ctermfg=bg +hi Underlined guifg=fg guibg=bg ctermfg=fg ctermbg=bg cterm=underline term=underline gui=underline diff --git a/.vim/colors/less.vim b/.vim/colors/less.vim new file mode 100644 index 0000000..c874913 --- /dev/null +++ b/.vim/colors/less.vim @@ -0,0 +1,54 @@ +" vim color file +" Maintainer: Brian Nelson <nelsonbc@gmail.com> +" Last Change: $Revision: 1.1 $ $Date: 2003/12/15 17:25:08 $ +" +" Less is More - A minimal color scheme. +" Disigned to work equally well on 8 or 16 colors, terminal or gui. + +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "less" + +hi Normal term=none ctermfg=7 ctermbg=0 gui=none guifg=LightGray guibg=black +hi Directory term=bold cterm=bold ctermfg=blue guifg=Blue +hi Search term=reverse ctermfg=white ctermbg=blue guifg=white guibg=Blue +hi MoreMsg term=bold cterm=bold ctermfg=darkgreen gui=bold guifg=DarkGreen +hi ModeMsg term=bold cterm=bold gui=bold guifg=White guibg=Blue +hi LineNr term=underline cterm=bold ctermfg=darkcyan guifg=DarkCyan +hi Question term=standout cterm=bold ctermfg=darkgreen gui=bold guifg=DarkGreen +hi Comment term=bold cterm=bold ctermfg=0 gui=none guifg=DarkGray +hi Constant term=bold cterm=none ctermfg=7 gui=none guifg=LightGray +hi Special term=bold cterm=none ctermfg=3 gui=none guifg=Orange +hi Identifier term=none cterm=none ctermfg=7 gui=none guifg=LightGray +hi PreProc term=underline cterm=bold ctermfg=7 gui=bold guifg=White +hi Error term=reverse cterm=bold ctermfg=7 ctermbg=1 gui=bold guifg=Black guibg=Red +hi Todo term=standout cterm=none ctermfg=0 ctermbg=7 guifg=Black guibg=White +hi String term=none cterm=none ctermfg=3 gui=none guifg=LightYellow +hi Function term=bold cterm=bold ctermfg=3 gui=none guifg=Yellow +hi Statement term=bold cterm=bold ctermfg=7 gui=bold guifg=White +hi Include term=bold cterm=bold ctermfg=4 gui=none guifg=LightBlue +hi StorageClass term=bold cterm=bold ctermfg=5 gui=none guifg=LightMagenta +hi Type term=none cterm=none ctermfg=7 gui=none guifg=LightGray +hi Defined term=bold cterm=bold ctermfg=6 gui=none guifg=LightCyan +hi link Character String +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Exception Statement +hi link Macro Include +hi link PreCondit PreProc +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special diff --git a/.vim/colors/lilac.vim b/.vim/colors/lilac.vim new file mode 100644 index 0000000..ef825fa --- /dev/null +++ b/.vim/colors/lilac.vim @@ -0,0 +1,75 @@ +" GUI-only vim color file +" Author: Christian MICHON +" Version: 1.0 +" Last Change: 10 Oct 2002 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "lilac" + +hi Boolean guifg=#00f080 guibg=#503040 gui=none +hi Character guifg=#00f080 guibg=#503040 gui=none +hi Comment guifg=#c0c0c0 guibg=#503040 gui=underline +hi Conditional guifg=#60d0d0 guibg=#503040 gui=bold +hi Constant guifg=#00f080 guibg=#503040 gui=none +hi Cursor guifg=#000000 guibg=#f0f000 gui=none +hi Debug guifg=#b0d0f0 guibg=#503040 gui=none +hi Define guifg=#f0f000 guibg=#503040 gui=none +hi Delimiter guifg=#b0d0f0 guibg=#503040 gui=none +hi DiffAdd guifg=#f0f000 guibg=#805070 gui=bold +hi DiffChange guifg=#f0f0f0 guibg=#805070 gui=none +hi DiffDelete guifg=#503040 guibg=#805070 gui=none +hi DiffText guifg=#000000 guibg=#f0f000 gui=bold +hi Directory guifg=#f0f000 guibg=#503040 gui=underline +hi Error guifg=#000000 guibg=#b0d0f0 gui=bold +hi ErrorMsg guifg=#000000 guibg=#b0d0f0 gui=bold +hi Exception guifg=#60d0d0 guibg=#503040 gui=bold +hi Float guifg=#00f080 guibg=#503040 gui=none +hi FoldColumn guifg=#b0d0f0 guibg=#805070 gui=bold +hi Folded guifg=#b0d0f0 guibg=#805070 gui=bold +hi Function guifg=#f0a070 guibg=#503040 gui=none +hi Identifier guifg=#f0a070 guibg=#503040 gui=none +hi Ignore guifg=#503040 guibg=#503040 gui=none +hi Include guifg=#f0f000 guibg=#503040 gui=none +hi IncSearch guifg=#000000 guibg=#b0d0f0 gui=bold +hi Keyword guifg=#60d0d0 guibg=#503040 gui=bold +hi Label guifg=#60d0d0 guibg=#503040 gui=bold +hi lCursor guifg=#f0f0f0 guibg=#503040 gui=none +hi LineNr guifg=#c0c0c0 guibg=#805070 gui=bold +hi Macro guifg=#f0f000 guibg=#503040 gui=none +hi ModeMsg guifg=#f0f0f0 guibg=#503040 gui=bold +hi MoreMsg guifg=#f070a0 guibg=#503040 gui=bold +hi NonText guifg=#c0c0c0 guibg=#503040 gui=bold +hi Normal guifg=#f0f0f0 guibg=#503040 gui=none +hi Number guifg=#00f080 guibg=#503040 gui=none +hi Operator guifg=#60d0d0 guibg=#503040 gui=bold +hi PreCondit guifg=#f0f000 guibg=#503040 gui=none +hi PreProc guifg=#f0f000 guibg=#503040 gui=none +hi Question guifg=#f070a0 guibg=#503040 gui=bold +hi Repeat guifg=#60d0d0 guibg=#503040 gui=bold +hi Search guifg=#000000 guibg=#b0d0f0 gui=bold +hi Special guifg=#b0d0f0 guibg=#503040 gui=none +hi SpecialChar guifg=#b0d0f0 guibg=#503040 gui=none +hi SpecialComment guifg=#b0d0f0 guibg=#503040 gui=none +hi SpecialKey guifg=#f0f000 guibg=#503040 gui=none +hi Statement guifg=#60d0d0 guibg=#503040 gui=bold +hi StatusLine guifg=#000000 guibg=#f0f0f0 gui=bold +hi StatusLineNC guifg=#c0c0c0 guibg=#805070 gui=bold +hi StorageClass guifg=#f070a0 guibg=#503040 gui=bold +hi String guifg=#00f080 guibg=#503040 gui=none +hi Structure guifg=#f070a0 guibg=#503040 gui=bold +hi Tag guifg=#b0d0f0 guibg=#503040 gui=none +hi Title guifg=#00f080 guibg=#503040 gui=bold +hi Todo guifg=#f0f000 guibg=#0000f0 gui=none +hi Type guifg=#f070a0 guibg=#503040 gui=bold +hi Typedef guifg=#f070a0 guibg=#503040 gui=bold +hi Underlined guifg=#b0d0f0 guibg=#503040 gui=underline +hi VertSplit guifg=#000000 guibg=#b0d0f0 gui=bold +hi Visual guifg=#000000 guibg=#b0d0f0 gui=underline +hi VisualNOS guifg=#f0f0f0 guibg=#503040 gui=underline +hi WarningMsg guifg=#000000 guibg=#b0d0f0 gui=bold +hi WildMenu guifg=#f0f0f0 guibg=#0000f0 gui=none diff --git a/.vim/colors/lingodirector.vim b/.vim/colors/lingodirector.vim new file mode 100644 index 0000000..57f2b3c --- /dev/null +++ b/.vim/colors/lingodirector.vim @@ -0,0 +1,44 @@ +" Vim color file +" Maintainer: Thomas Schmall <ts_nowhere@yahoo.com> +" Last Change: 2004 June 16 +" Version:1.0 +" URL: http://www.oxpal.com/index.php?o=dev_vim&lan=en +" +" Note: you can type :set number! to activate or deactivate the line numbering, wich also +" looks similar to Director + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="lingodirector" + +hi Normal guifg=black guibg=white ctermfg=Black ctermbg=white +hi Title guifg=black guibg=white ctermfg=Black ctermbg=white gui=BOLD +hi lCursor guibg=Cyan guifg=NONE + +hi LineNr guifg=white guibg=#8c9bfa + + + +" syntax highlighting groups +hi Comment ctermfg=Red guifg=#c80000 gui=NONE +hi Operator term=None cterm=None gui=None + +hi Identifier ctermfg=Green guifg=#008000 gui=NONE + +hi Statement ctermfg=Blue guifg=#0000c8 gui=NONE +hi TypeDef ctermfg=Blue guifg=#0000c8 gui=NONE +hi Type ctermfg=Blue guifg=#0000c8 gui=NONE +hi Boolean ctermfg=Blue guifg=#0000c8 gui=NONE + +hi String ctermfg=Gray guifg=#808080 gui=NONE +hi Number ctermfg=Gray guifg=#808080 gui=NONE +hi Constant ctermfg=Gray guifg=#808080 gui=NONE + +hi Function ctermfg=Green guifg=#008040 gui=NONE +hi PreProc ctermfg=Green guifg=#008040 gui=NONE +hi Keyword ctermfg=Green guifg=#008040 gui=NONE + +"set number diff --git a/.vim/colors/manxome.vim b/.vim/colors/manxome.vim new file mode 100644 index 0000000..0db38ea --- /dev/null +++ b/.vim/colors/manxome.vim @@ -0,0 +1,47 @@ +""" local syntax file - set colors on a per-machine basis: +""" Vim color file +""" Title: Manxome Foes Color Scheme +""" Maintainer: Ricardo SIGNES <rjbs-vim@lists.manxome.org> +""" This Version: R2v2 [2003-07-16] +""" suggested vim editing options: tw=0 ts=4 sw=4 + +"" clear and re-initialize global variables +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "manxome" + +"" set highlight groups +"" you'll notice that the ctermbg is often 'none'; this is so that when +"" console vim runs in a terminal, transparency (if any) is not broken + +highlight Title ctermfg=3 ctermbg=none cterm=bold guifg=#ffff00 guibg=#000000 gui=none +highlight Directory ctermfg=4 ctermbg=none cterm=bold guifg=#0000ff guibg=#000000 gui=none +highlight StatusLine ctermfg=7 ctermbg=4 cterm=bold guifg=#ffffff guibg=#0000ff gui=none +highlight StatusLineNC ctermfg=0 ctermbg=4 cterm=bold guifg=#000000 guibg=#0000ff gui=none +highlight Normal ctermfg=7 ctermbg=none cterm=none guifg=#cccccc guibg=#000000 gui=none +highlight Search ctermfg=7 ctermbg=4 cterm=bold guifg=#ffffff guibg=#0000ff gui=none +highlight Visual ctermfg=7 ctermbg=6 cterm=bold guifg=#ffffff guibg=#00aaaa gui=none + +"" set major preferred groups + +highlight Comment ctermfg=2 ctermbg=none cterm=bold guifg=#00ff00 guibg=#000000 gui=none +highlight Constant ctermfg=6 ctermbg=none cterm=bold guifg=#00ffff guibg=#000000 gui=none +highlight Identifier ctermfg=4 ctermbg=none cterm=bold guifg=#0000ee guibg=#000000 gui=none +highlight Statement ctermfg=6 ctermbg=none cterm=none guifg=#00aaaa guibg=#000000 gui=none +highlight PreProc ctermfg=7 ctermbg=none cterm=bold guifg=#ffffff guibg=#000000 gui=none +highlight Type ctermfg=6 ctermbg=none cterm=none guifg=#00aaaa guibg=#000000 gui=none +highlight Special ctermfg=7 ctermbg=none cterm=bold guifg=#ffffff guibg=#000000 gui=none +highlight Underlined ctermfg=2 ctermbg=none cterm=none guifg=#00aa00 guibg=#000000 gui=none +highlight Ignore ctermfg=0 ctermbg=none cterm=bold guifg=#aaaaaa guibg=#000000 gui=none +highlight Error ctermfg=1 ctermbg=none cterm=bold guibg=#ff0000 guibg=#000000 gui=none +highlight Todo ctermfg=3 ctermbg=none cterm=none guifg=#aaaa00 guibg=#000000 gui=none + +" set syntax-specific groups +" I'd like to avoid using these, but the default settings for these two are +" just no good. Seeing italic text in Vim is just plain wrong. + +highlight htmlBold ctermfg=7 ctermbg=none cterm=bold guifg=#ffffff guibg=#000000 gui=none +highlight htmlItalic ctermfg=5 ctermbg=none cterm=bold guifg=#ff00ff guibg=#000000 gui=none diff --git a/.vim/colors/mars.vim b/.vim/colors/mars.vim new file mode 100644 index 0000000..408ae79 --- /dev/null +++ b/.vim/colors/mars.vim @@ -0,0 +1,142 @@ +" Maintainer: Tim Aldrich <aldy0169@yahoo.com> +" Last Change: 19 November 2003 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="mars" +" GUI colors {{{ +"hi Normal guifg=#FFFFFF guibg=#961E00 +hi Normal guifg=#FFFFFF guibg=#961E00 +hi Cursor guifg=#A0963C guibg=#FFFFFF +hi CursorIM guifg=#6699CC guibg=#99CCCC +hi Directory guifg=#B45000 guibg=#961E00 +hi DiffAdd guifg=#FFFFCC guibg=#961E00 +hi DiffChange guifg=#FF9900 guibg=#961E00 +hi DiffDelete guifg=#999999 guibg=#961E00 +hi DiffText guifg=#FFFFFF guibg=#961E00 +hi ErrorMsg guifg=#FFFFFF guibg=#FF0000 +hi VertSplit guifg=#FFFFFF guibg=#961E00 +hi Folded guifg=#999999 guibg=#BE1E00 gui=italic +hi FoldColumn guifg=#CC0000 guibg=#999999 +hi IncSearch guifg=#FFFF00 guibg=#961E00 +hi LineNr guifg=#999999 guibg=#BE1E00 +hi ModeMsg guifg=#FFFFFF guibg=#961E00 +hi MoreMsg guifg=#FFFFFF guibg=#961E00 +hi NonText guifg=#FFFFFF guibg=#A0141E +hi Question guifg=#FFFFFF guibg=#EE0000 +hi Search guifg=#A0142B guibg=#FFFF00 gui=underline +hi SpecialKey guifg=#FFFF00 guibg=#961E00 +hi StatusLine guifg=#FFFFFF guibg=#961E00 +hi StatusLineNC guifg=#CCCCCC guibg=#961E00 +hi Title guifg=#FFFFFF guibg=#FF9900 +hi Visual guifg=#B45000 guibg=#961E00 +hi WarningMsg guifg=#FF0000 guibg=#FFFFFF +hi WildMenu guifg=#961E00 guibg=#999999 +" }}} + +" cterm colors {{{ +hi Normal ctermfg=white ctermbg=darkblue +hi Cursor ctermfg=darkblue ctermbg=white +hi CursorIM ctermfg=lightcyan ctermbg=lightcyan +hi Directory ctermfg=lightblue ctermbg=lightcyan +hi DiffAdd ctermfg=LightYellow ctermbg=darkblue +hi DiffChange ctermfg=darkred ctermbg=darkblue +hi DiffDelete ctermfg=grey ctermbg=darkblue +hi DiffText ctermfg=white ctermbg=darkblue +hi ErrorMsg ctermfg=red ctermbg=lightcyan +hi VertSplit ctermfg=white ctermbg=darkblue +hi Folded ctermfg=grey ctermbg=darkblue +hi FoldColumn ctermfg=darkred ctermbg=lightcyan +hi IncSearch ctermfg=yellow ctermbg=darkblue +hi LineNr ctermfg=lightyellow ctermbg=darkblue +hi ModeMsg ctermfg=white ctermbg=darkblue +hi MoreMsg ctermfg=white ctermbg=darkblue +hi NonText ctermfg=white ctermbg=lightblue +hi Question ctermfg=white ctermbg=darkblue +hi Search ctermfg=darkred ctermbg=lightcyan +hi SpecialKey ctermfg=yellow ctermbg=darkblue +hi StatusLine ctermfg=white ctermbg=darkblue +hi StatusLineNC ctermfg=lightgrey ctermbg=darkblue +hi Title ctermfg=white ctermbg=yellow +hi Visual ctermfg=lightblue ctermbg=cyan +hi WarningMsg ctermfg=red ctermbg=white +hi WildMenu ctermfg=darkblue ctermbg=grey +" }}} + +" GUI hilight groups {{{ + +hi Comment guifg=#999999 +hi Constant guifg=#FFFF00 +hi String guifg=#CCCC99 +hi Character guifg=#A0963C +hi Number guifg=#A0963C +hi Boolean guifg=#A0963C +hi Float guifg=#A0963C +hi Identifier guifg=#E6fA46 +hi Function guifg=#E6fA46 +hi Statement guifg=#FFFFCC +hi Conditional guifg=#FFFFCC +hi Repeat guifg=#FFFFCC +hi Label guifg=#E66E46 +hi Operator guifg=#FFFF00 +hi Keyword guifg=#FFFF00 +hi Exception guifg=#FFFFAA +hi PreProc guifg=#C8783C +hi Include guifg=#C8783C +hi Define guifg=#C8783C +hi Macro guifg=#C8783C +hi PreCondit guifg=#C8783C +hi Type guifg=#E6641E +hi StorageClass guifg=#E66E46 +hi Structure guifg=#E66E46 +hi Typedef guifg=#E66E46 +hi Special guifg=#00FF00 +hi SpecialChar guifg=#00FF00 +hi Tag guifg=#CCCCFF +hi Delimiter guifg=#CCCCFF +hi SpecialComment guifg=#FFFFCC +hi Debug guifg=#CC3300 +hi Ignore guifg=#961E00 +hi Error guifg=#FF0000 guibg=#FFFFFF +hi Todo guifg=#FFFF00 guibg=#961E00 +" }}} + +" cterm hilight groups {{{ +hi Comment ctermfg=grey +hi Constant ctermfg=lightgreen +hi String ctermfg=brown +hi Character ctermfg=lightgreen +hi Number ctermfg=lightgreen +hi Boolean ctermfg=lightgreen +hi Float ctermfg=lightgreen +hi Identifier ctermfg=lightcyan +hi Function ctermfg=lightcyan +hi Statement ctermfg=lightyellow +hi Conditional ctermfg=lightyellow +hi Repeat ctermfg=lightyellow +hi Label ctermfg=lightcyan +hi Operator ctermfg=yellow +hi Keyword ctermfg=yellow +hi Exception ctermfg=yellow +hi PreProc ctermfg=darkcyan +hi Include ctermfg=darkcyan +hi Define ctermfg=darkcyan +hi Macro ctermfg=darkcyan +hi PreCondit ctermfg=darkcyan +hi Type ctermfg=lightcyan +hi StorageClass ctermfg=lightcyan +hi Structure ctermfg=lightcyan +hi Typedef ctermfg=lightcyan +hi Special ctermfg=green +hi SpecialChar ctermfg=green +hi Tag ctermfg=brown +hi Delimiter ctermfg=brown +hi SpecialComment ctermfg=lightyellow +hi Debug ctermfg=magenta +hi Ignore ctermfg=lightblue +hi Error ctermfg=red ctermbg=white +hi Todo ctermfg=grey ctermbg=white +" }}} diff --git a/.vim/colors/matrix.vim b/.vim/colors/matrix.vim new file mode 100644 index 0000000..da5c687 --- /dev/null +++ b/.vim/colors/matrix.vim @@ -0,0 +1,80 @@ +" vim:set ts=8 sts=2 sw=2 tw=0: +" +" matrix.vim - MATRIX like colorscheme. +" +" Maintainer: MURAOKA Taro <koron@tka.att.ne.jp> +" Last Change: 10-Jun-2003. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = 'matrix' + +" the character under the cursor +hi Cursor guifg=#226622 guibg=#55ff55 +hi lCursor guifg=#226622 guibg=#55ff55 +" like Cursor, but used when in IME mode |CursorIM| +hi CursorIM guifg=#226622 guibg=#55ff55 +" directory names (and other special names in listings) +hi Directory guifg=#55ff55 guibg=#000000 +" diff mode: Added line |diff.txt| +hi DiffAdd guifg=#55ff55 guibg=#226622 gui=none +" diff mode: Changed line |diff.txt| +hi DiffChange guifg=#55ff55 guibg=#226622 gui=none +" diff mode: Deleted line |diff.txt| +hi DiffDelete guifg=#113311 guibg=#113311 gui=none +" diff mode: Changed text within a changed line |diff.txt| +hi DiffText guifg=#55ff55 guibg=#339933 gui=bold +" error messages on the command line +hi ErrorMsg guifg=#55ff55 guibg=#339933 +" the column separating vertically split windows +hi VertSplit guifg=#339933 guibg=#339933 +" line used for closed folds +hi Folded guifg=#44cc44 guibg=#113311 +" 'foldcolumn' +hi FoldColumn guifg=#44cc44 guibg=#226622 +" 'incsearch' highlighting; also used for the text replaced with +hi IncSearch guifg=#226622 guibg=#55ff55 gui=none +" line number for ":number" and ":#" commands, and when 'number' +hi LineNr guifg=#44cc44 guibg=#000000 +" 'showmode' message (e.g., "-- INSERT --") +hi ModeMsg guifg=#44cc44 guibg=#000000 +" |more-prompt| +hi MoreMsg guifg=#44cc44 guibg=#000000 +" '~' and '@' at the end of the window, characters from +hi NonText guifg=#44cc44 guibg=#113311 +" normal text +hi Normal guifg=#44cc44 guibg=#000000 +" |hit-enter| prompt and yes/no questions +hi Question guifg=#44cc44 guibg=#000000 +" Last search pattern highlighting (see 'hlsearch'). +hi Search guifg=#113311 guibg=#44cc44 gui=none +" Meta and special keys listed with ":map", also for text used +hi SpecialKey guifg=#44cc44 guibg=#000000 +" status line of current window +hi StatusLine guifg=#55ff55 guibg=#339933 gui=none +" status lines of not-current windows +hi StatusLineNC guifg=#113311 guibg=#339933 gui=none +" titles for output from ":set all", ":autocmd" etc. +hi Title guifg=#55ff55 guibg=#113311 gui=bold +" Visual mode selection +hi Visual guifg=#55ff55 guibg=#339933 gui=none +" Visual mode selection when vim is "Not Owning the Selection". +hi VisualNOS guifg=#44cc44 guibg=#000000 +" warning messages +hi WarningMsg guifg=#55ff55 guibg=#000000 +" current match in 'wildmenu' completion +hi WildMenu guifg=#226622 guibg=#55ff55 + +hi Comment guifg=#226622 guibg=#000000 +hi Constant guifg=#55ff55 guibg=#226622 +hi Special guifg=#44cc44 guibg=#226622 +hi Identifier guifg=#55ff55 guibg=#000000 +hi Statement guifg=#55ff55 guibg=#000000 gui=bold +hi PreProc guifg=#339933 guibg=#000000 +hi Type guifg=#55ff55 guibg=#000000 gui=bold +hi Underlined guifg=#55ff55 guibg=#000000 gui=underline +hi Error guifg=#55ff55 guibg=#339933 +hi Todo guifg=#113311 guibg=#44cc44 gui=none diff --git a/.vim/colors/metacosm.vim b/.vim/colors/metacosm.vim new file mode 100644 index 0000000..e5eaa5f --- /dev/null +++ b/.vim/colors/metacosm.vim @@ -0,0 +1,132 @@ +" Vim color file +" Maintainer: Robert Melton ( vim at metacosm dot dhs dot org ) +" Last Change: 2004 June 19th + + +" ----------------------------------------------------------------------------- +" This color scheme uses a dark grey background. +" This theme, based on evening (with some input from Torte) is designed to +" seperate active text (code) from background/line numbers/folds/listchars by +" having different background colors on the non-code and the code (just +" slightly). If you look at the screenshot below, you will get the idea. +" All non-code(include indents) and string literals have a black background +" while code has a very dark grey background. +" ----------------------------------------------------------------------------- +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "metacosm" + + +" ----------------------------------------------------------------------------- +" Primary (hyper/selected/colored background) +" ----------------------------------------------------------------------------- +" Search +hi IncSearch guibg=black guifg=cyan +hi Search guibg=black guifg=cyan + +" Visual +hi Visual guibg=black guifg=yellow +hi VisualNOS guibg=black guifg=yellow gui=underline + +" Borders +hi StatusLine guibg=black guifg=white +hi StatusLineNC guibg=grey22 guifg=grey45 +hi VertSplit guibg=black guifg=grey45 + +" Cursors +hi Cursor guibg=white guifg=black +hi lCursor guibg=white guifg=black + +" Diff +hi DiffText guibg=red guifg=white gui=bold +hi DiffAdd guibg=darkblue guifg=white +hi DiffChange guibg=darkmagenta guifg=white +hi DiffDelete guibg=darkcyan guifg=blue gui=bold + +" Misc +hi Title guifg=magenta gui=bold +hi Question guibg=black guifg=green gui=bold +hi Todo guibg=black guifg=cyan +hi Error guibg=red guifg=white +hi WildMenu guibg=cyan guifg=black + + +" ----------------------------------------------------------------------------- +" Primary (active/code/text/grey background) +" ----------------------------------------------------------------------------- +" Normal +hi Normal guibg=grey22 guifg=white + +" Constants +hi Constant guibg=grey22 guifg=#ffa0a0 +hi String guibg=grey22 guifg=#ffa0a0 +hi Character guibg=grey22 guifg=#ffa0a0 +hi Number guibg=grey22 guifg=#ffa0a0 +hi Boolean guibg=grey22 guifg=#ffa0a0 +hi Float guibg=grey22 guifg=#ffa0a0 + +" Identifier +hi Identifier guibg=grey22 guifg=#40ffff +hi Function guibg=grey22 guifg=#40ffff + +" Statement +hi Statement guibg=grey22 guifg=#ffff60 +hi Conditional guibg=grey22 guifg=#ffff60 +hi Repeat guibg=grey22 guifg=#ffff60 +hi Label guibg=grey22 guifg=#ffff60 +hi Operator guibg=grey22 guifg=#ffff60 +hi Keyword guibg=grey22 guifg=#ffff60 +hi Exception guibg=grey22 guifg=#ffff60 + +" PreProc +hi PreProc guibg=grey22 guifg=#ff80ff +hi Include guibg=grey22 guifg=#ff80ff +hi Define guibg=grey22 guifg=#ff80ff +hi Macro guibg=grey22 guifg=#ff80ff +hi PreCondit guibg=grey22 guifg=#ff80ff + +" Type +hi Type guibg=grey22 guifg=#60ff60 +hi StorageClass guibg=grey22 guifg=#60ff60 +hi Structure guibg=grey22 guifg=#60ff60 +hi Typedef guibg=grey22 guifg=#60ff60 + +" Special +hi Special guibg=grey22 guifg=orange +hi SpecialChar guibg=grey22 guifg=orange +hi Tag guibg=grey22 guifg=orange +hi Delimiter guibg=grey22 guifg=orange +hi Debug guibg=grey22 guifg=orange + +" Misc +hi Underlined guibg=grey22 guifg=#ffff60 gui=underline + + +" ----------------------------------------------------------------------------- +" Secondary (inactive/black background) +" ----------------------------------------------------------------------------- +" Comments +hi Comment guibg=black guifg=#80a0ff +hi SpecialComment guibg=black guifg=#80a0ff gui=underline + +" Messages +hi ModeMsg guibg=black guifg=white gui=bold +hi MoreMsg guibg=black guifg=seagreen gui=bold +hi WarningMsg guibg=black guifg=blue gui=bold +hi ErrorMsg guibg=black guifg=red gui=bold + +" Folding +hi Folded guibg=black guifg=grey45 +hi FoldColumn guibg=black guifg=grey45 + +" Misc +hi Ignore guibg=black guifg=grey45 +hi NonText guibg=black guifg=grey45 +hi LineNr guibg=black guifg=grey45 +hi SpecialKey guibg=black guifg=grey45 +hi SignColumn guibg=black guifg=grey45 +hi Directory guibg=black guifg=cyan diff --git a/.vim/colors/midnight.vim b/.vim/colors/midnight.vim new file mode 100644 index 0000000..5fab610 --- /dev/null +++ b/.vim/colors/midnight.vim @@ -0,0 +1,80 @@ +" Vim color file +" Maintainer: Michael Brailsford <brailsmt@yahoo.com> +" Date: $Date: 2002/04/11 03:29:51 $ +" Version: $Revision: 1.4 $ + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +" your pick: +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="midnight" + +hi Normal guifg=lightsteelblue guibg=#00006f ctermfg=14 + +"Toggle semicolon matching at the end of lines +nmap <silent> <leader>; :call ToggleSemicolonHighlighting()<cr> +"{{{ +function! ToggleSemicolonHighlighting() + if exists("b:semicolon") + unlet b:semicolon + hi semicolon guifg=NONE gui=NONE ctermfg=NONE + else + syn match semicolon #;$# + hi semicolon guifg=red gui=bold ctermfg=1 + let b:semicolon = 1 + endif +endfunction +"}}} + +hi Cursor guifg=bg guibg=fg ctermfg=0 ctermbg=11 +"hi CursorIM +hi Directory gui=bold +hi DiffAdd guifg=yellow guibg=darkgreen ctermbg=0 +"hi DiffChange +"hi DiffDelete +"hi DiffText +hi ErrorMsg guibg=red ctermfg=1 +"hi VertSplit +hi Folded guibg=#000047 ctermbg=4 guifg=yellow ctermfg=11 gui=bold +hi FoldColumn guibg=steelblue3 ctermbg=14 guifg=darkblue ctermfg=11 gui=bold +"hi IncSearch +hi LineNr guifg=yellow ctermfg=11 +hi ModeMsg guifg=yellow gui=bold +"hi MoreMsg +"hi NonText +"hi Question +hi Search guibg=yellow guifg=bg +"hi SpecialKey +hi StatusLine guifg=steelblue1 +hi StatusLineNC guifg=steelblue3 +"hi Title +hi Visual guifg=fg guibg=bg +"hi VisualNOS +"hi WarningMsg +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment guifg=green ctermfg=10 +hi Constant guifg=lightmagenta gui=bold ctermfg=13 +hi String guifg=indianred1 ctermfg=5 +hi Character guifg=violet ctermfg=5 +hi Number guifg=turquoise1 ctermfg=5 +"hi Identifier +hi Statement guifg=khaki1 gui=bold ctermfg=15 cterm=underline +hi PreProc guifg=firebrick1 gui=italic ctermfg=9 +hi Type guifg=gold gui=bold ctermfg=3 +"hi Special +"hi Underlined +"hi Ignore +"hi Error +hi Todo guifg=yellow guibg=blue gui=bold diff --git a/.vim/colors/midnight2.vim b/.vim/colors/midnight2.vim new file mode 100644 index 0000000..da99d00 --- /dev/null +++ b/.vim/colors/midnight2.vim @@ -0,0 +1,86 @@ +" Vim color file +" Maintainer: Michael Brailsford <brailsmt@yahoo.com> +" Date: $Date: 2002/04/11 03:29:51 $ +" Version: $Revision: 1.4 $ +" Inspiration: This colorscheme was inspired by midnight.vim. It is a darker +" version of it. With some colors tweaked. +" Thanks: Thanks go to Hans Fugal for creating the colorscheme template. +" Without it I would have been lost creating the original midnight.vim +" Note: If you do not like the dark look of the colorscheme, you can +" easily lighten things up with the following line: +" :%s/\(\w\)3/\12/g +" It is easily pasteable into the command line. you can also +" change "\12" to "\11", "\1" or "\14" (if you want things even +" darker). If you do use the "\14" replacement, then it looks +" like your monitor in a fog bank. :) + +" your pick: +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="midnight2" + +hi Normal guifg=slategray3 guibg=#000029 ctermfg=14 + +"Toggle semicolon matching at the end of lines +nmap <silent> <leader>; :call ToggleSemicolonHighlighting()<cr> +"{{{ +function! ToggleSemicolonHighlighting() + if exists("b:semicolon") + unlet b:semicolon + hi semicolon guifg=NONE gui=NONE ctermfg=NONE + else + syn match semicolon #;$# + hi semicolon guifg=red3 gui=bold ctermfg=1 + let b:semicolon = 1 + endif +endfunction +"}}} + +hi Cursor guifg=bg guibg=fg ctermfg=0 ctermbg=11 +"hi CursorIM +hi Directory gui=bold +hi DiffAdd guifg=yellow3 guibg=darkgreen ctermbg=0 +"hi DiffChange +"hi DiffDelete +"hi DiffText +hi ErrorMsg guibg=red3 ctermfg=1 +"hi VertSplit +hi Folded guibg=#00001a ctermbg=4 guifg=yellow3 ctermfg=11 gui=NONE +hi FoldColumn guibg=steelblue3 ctermbg=14 guifg=navyblue ctermfg=11 gui=bold +"hi IncSearch +hi LineNr guifg=yellow3 ctermfg=11 +hi ModeMsg guifg=yellow3 gui=bold +"hi MoreMsg +"hi NonText +"hi Question +hi Search guibg=yellow3 guifg=bg +"hi SpecialKey +hi StatusLine guifg=steelblue3 +hi StatusLineNC guifg=steelblue4 +"hi Title +hi Visual guifg=fg guibg=bg +"hi VisualNOS +"hi WarningMsg +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment guifg=chartreuse3 ctermfg=10 +hi Constant guifg=plum3 gui=bold ctermfg=13 +hi String guifg=indianred3 ctermfg=5 +hi Character guifg=mediumpurple3 ctermfg=5 +hi Number guifg=turquoise3 ctermfg=5 +"hi Identifier +hi Statement guifg=khaki3 gui=bold ctermfg=15 cterm=underline +hi PreProc guifg=firebrick3 gui=italic ctermfg=9 +hi Type guifg=gold3 gui=bold ctermfg=3 +"hi Special +"hi Underlined +"hi Ignore +"hi Error +hi Todo guifg=yellow3 guibg=blue3 gui=bold diff --git a/.vim/colors/mod_tcsoft.vim b/.vim/colors/mod_tcsoft.vim new file mode 100644 index 0000000..b36dab2 --- /dev/null +++ b/.vim/colors/mod_tcsoft.vim @@ -0,0 +1,68 @@ +"mod_tcsoft is based on the tcsoft-color scheme +"(http://www.vim.org/scripts/script.php?script_id=641), made by Ingo Fabbri +"<vim@tcsoft.net> +" +"I changed the cursor and the background-colors. Hope you like it. + +" Author: André Kelpe <fs111 at web dot de> +" Last Change: Jan 13 10:33:46 CET 2005 +" + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = "mod_tcsoft" + +hi Normal guifg=#000000 guibg=floralwhite +hi Ignore guifg=bg +hi Comment guifg=#1050ff gui=italic +hi Folded guifg=black guibg=#d1cdc5 +hi FoldColumn guifg=black guibg=#d1cdc5 +hi Constant guifg=#666666 gui=NONE "grau +hi Special guifg=#FF0000 gui=NONE "rot +hi Identifier guifg=#993300 gui=NONE "rostfarbig +hi Statement guifg=#FF9900 gui=NONE "orange +hi PreProc guifg=#009900 gui=NONE "dunkelgrün +hi Type guifg=#FF9900 gui=bold "orange +hi Cursor guifg=#FFFFFF guibg=#000000 "schwarz +hi LineNr guifg=#000000 gui=NONE "schwarz +hi StatusLine guifg=#000000 gui=reverse,bold "schwarz +hi Title guifg=#1050ff gui=bold +hi Todo guibg=#1050ff guifg=floralwhite gui=bold +hi Search guifg=white guibg=#1050ff + + +hi link Function PreProc +hi link String Constant +hi link Character Constant + +hi! link MoreMsg Comment +hi! link ErrorMsg Visual +hi! link WarningMsg ErrorMsg +hi! link Question Comment + +hi link Number Special +hi link Boolean Constant +hi link Float Number + +hi link Operator Identifier +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc + +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement + +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Comment +hi link Debug Special diff --git a/.vim/colors/navajo-night.vim b/.vim/colors/navajo-night.vim new file mode 100644 index 0000000..f0c27f0 --- /dev/null +++ b/.vim/colors/navajo-night.vim @@ -0,0 +1,119 @@ +" Vim colour file +" Maintainer: Matthew Hawkins <matt@mh.dropbear.id.au> +" Last Change: Mon, 22 Apr 2002 15:28:04 +1000 +" URI: http://mh.dropbear.id.au/vim/navajo-night.png +" +" This colour scheme uses a "navajo-black" background +" I have added colours for the statusbar and for spell checking +" as taken from Cream (http://cream.sf.net/) + + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "navajo-night" + +" This is the list of colour changes from Navajo that +" weren't a simple mathematical subtraction from 0xffffff +" DarkBlue -> #ffff74 +" DarkRed -> #74ffff +" DarkGreen -> #ff9bff +" DarkCyan -> #ff7474 +" DarkMagenta -> #74ff74 +" DarkYellow -> #7474ff +" DarkGray -> #565656 +" Blue -> Yellow +" Red -> Cyan +" Yellow -> Blue +" Gray -> #414141 +" Brown -> #5ad5d5 +" #ff8060 -> #007f9f +" #f6e8d0 -> #09172f +" #edb5cd -> #124a32 +" #c0c0c0 -> #3f3f3f +" #907050 -> #6f8faf +" #808080 -> #7f7f7f +" #707070 -> #8f8f8f +" SeaGreen -> #d174a8 +" LightRed (assuming #ee9090) -> #116f6f +" LightBlue -> #522719 + +hi Normal ctermfg=White guifg=White guibg=#35536f + +hi SpecialKey term=bold ctermfg=darkblue guifg=Yellow +hi NonText term=bold ctermfg=darkblue cterm=bold gui=bold guifg=#7f7f7f +hi Directory term=bold ctermfg=darkblue guifg=Yellow +hi ErrorMsg term=standout ctermfg=grey ctermbg=darkred cterm=bold gui=bold guifg=Black guibg=Cyan +hi IncSearch term=reverse cterm=reverse gui=reverse +hi Search term=reverse ctermbg=White ctermfg=Black cterm=reverse guibg=Black guifg=Yellow +hi MoreMsg term=bold ctermfg=green gui=bold guifg=#d174a8 +hi ModeMsg term=bold cterm=bold gui=bold +hi LineNr term=underline ctermfg=darkcyan ctermbg=grey guibg=#7f7f7f gui=bold guifg=White +hi Question term=standout ctermfg=darkgreen gui=bold guifg=#d174a8 +hi StatusLine term=bold,reverse cterm=bold,reverse gui=bold guifg=Black guibg=White +hi StatusLineNC term=reverse cterm=reverse gui=bold guifg=#116f6f guibg=#8f8f8f +hi VertSplit term=reverse cterm=reverse gui=bold guifg=Black guibg=#8f8f8f +hi Title term=bold ctermfg=green gui=bold guifg=#74ff74 +"+++ Cream: +"hi Visual term=reverse cterm=reverse gui=reverse guifg=#3f3f3f guibg=White +"+++ +hi VisualNOS term=bold,underline cterm=bold,underline gui=reverse guifg=#414141 guibg=Black +hi WarningMsg term=standout ctermfg=darkred gui=bold guifg=Cyan +hi WildMenu term=standout ctermfg=White ctermbg=darkyellow guifg=White guibg=Blue +hi Folded term=standout ctermfg=darkblue ctermbg=grey guifg=White guibg=NONE guifg=#afcfef +hi FoldColumn term=standout ctermfg=darkblue ctermbg=grey guifg=#ffff74 guibg=#3f3f3f +hi DiffAdd term=bold ctermbg=darkblue guibg=Black +hi DiffChange term=bold ctermbg=darkmagenta guibg=#124a32 +hi DiffDelete term=bold ctermfg=darkblue ctermbg=blue cterm=bold gui=bold guifg=#522719 guibg=#09172f +hi DiffText term=reverse ctermbg=darkblue cterm=bold gui=bold guibg=#007f9f +hi Cursor gui=reverse guifg=#bfbfef guibg=Black +hi lCursor guifg=fg guibg=bg +hi Match term=bold,reverse ctermbg=Blue ctermfg=Yellow cterm=bold,reverse gui=bold,reverse guifg=Blue guibg=Yellow + + +" Colours for syntax highlighting +hi Comment term=bold ctermfg=darkblue guifg=#e7e77f +hi Constant term=underline ctermfg=darkred guifg=#3fffa7 +hi Special term=bold ctermfg=darkgreen guifg=#bfbfef +hi Identifier term=underline ctermfg=darkcyan cterm=NONE guifg=#ef9f9f +hi Statement term=bold ctermfg=darkred cterm=bold gui=bold guifg=#5ad5d5 +hi PreProc term=underline ctermfg=darkmagenta guifg=#74ff74 +hi Type term=underline ctermfg=green gui=bold guifg=#d174a8 +hi Ignore ctermfg=grey cterm=bold guifg=bg + +hi Error term=reverse ctermfg=grey ctermbg=darkred cterm=bold gui=bold guifg=Black guibg=Cyan +hi Todo term=standout ctermfg=darkblue ctermbg=Blue guifg=Yellow guibg=Blue + +"+++ Cream: statusbar +" Colours for statusbar +"hi User1 gui=bold guifg=#565656 guibg=#0c0c0c +"hi User2 gui=bold guifg=White guibg=#0c0c0c +"hi User3 gui=bold guifg=Yellow guibg=#0c0c0c +"hi User4 gui=bold guifg=Cyan guibg=#0c0c0c +highlight User1 gui=bold guifg=#999933 guibg=#45637f +highlight User2 gui=bold guifg=#e7e77f guibg=#45637f +highlight User3 gui=bold guifg=Black guibg=#45637f +highlight User4 gui=bold guifg=#33cc99 guibg=#45637f +"+++ + +"+++ Cream: selection +highlight Visual gui=bold guifg=Black guibg=#aacc77 +"+++ + +"+++ Cream: bookmarks +highlight Cream_ShowMarksHL ctermfg=blue ctermbg=lightblue cterm=bold guifg=Black guibg=#aacc77 gui=bold +"+++ + +"+++ Cream: spell check +" Colour misspelt words +"hi BadWord ctermfg=White ctermbg=darkred cterm=bold guifg=Yellow guibg=#522719 gui=bold +" mathematically correct: +"highlight BadWord ctermfg=black ctermbg=lightblue gui=NONE guifg=White guibg=#003333 +" adjusted: +highlight BadWord ctermfg=black ctermbg=lightblue gui=NONE guifg=#ff9999 guibg=#003333 +"+++ + + diff --git a/.vim/colors/navajo.vim b/.vim/colors/navajo.vim new file mode 100644 index 0000000..e7eebe7 --- /dev/null +++ b/.vim/colors/navajo.vim @@ -0,0 +1,65 @@ +" Vim color file +" Maintainer: R. Edward Ralston <eralston@techsan.org> +" Last Change: 2002-01-24 09:56:48 +" URI: http://eralston.tripod.com/navajo.png +" +" This color scheme uses a "navajo-white" background +" + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "navajo" + +" looks good on Linux +"hi Normal ctermfg=Black guifg=Black guibg=#b39674 +"hi Normal ctermfg=Black guifg=Black guibg=NavajoWhite3 + +" slightly brighter for w32 +hi Normal ctermfg=Black guifg=Black guibg=#ba9c80 + +hi SpecialKey term=bold ctermfg=DarkBlue guifg=Blue +hi NonText term=bold ctermfg=DarkBlue cterm=bold gui=bold guifg=#808080 +hi Directory term=bold ctermfg=DarkBlue guifg=Blue +hi ErrorMsg term=standout ctermfg=Gray ctermbg=DarkRed cterm=bold gui=bold guifg=White guibg=Red +hi IncSearch term=reverse cterm=reverse gui=reverse +hi Search term=reverse ctermbg=Black ctermfg=White cterm=reverse guibg=White +hi MoreMsg term=bold ctermfg=DarkGreen gui=bold guifg=SeaGreen +hi ModeMsg term=bold cterm=bold gui=bold +hi LineNr term=underline ctermfg=DarkCyan ctermbg=Gray guibg=#808080 gui=bold guifg=black +hi Question term=standout ctermfg=DarkGreen gui=bold guifg=SeaGreen +hi StatusLine term=bold,reverse cterm=bold,reverse gui=bold guifg=White guibg=Black +hi StatusLineNC term=reverse cterm=reverse gui=bold guifg=LightRed guibg=#707070 +hi VertSplit term=reverse cterm=reverse gui=bold guifg=White guibg=#707070 +hi Title term=bold ctermfg=DarkMagenta gui=bold guifg=DarkMagenta +hi Visual term=reverse cterm=reverse gui=reverse guifg=#c0c0c0 guibg=black +hi VisualNOS term=bold,underline cterm=bold,underline gui=reverse guifg=Grey guibg=white +hi WarningMsg term=standout ctermfg=DarkRed gui=bold guifg=Red +hi WildMenu term=standout ctermfg=Black ctermbg=DarkYellow guifg=Black guibg=Yellow +hi Folded term=standout ctermfg=DarkBlue ctermbg=Gray guifg=Black guibg=NONE guifg=#907050 +hi FoldColumn term=standout ctermfg=DarkBlue ctermbg=Gray guifg=DarkBlue guibg=#c0c0c0 +hi DiffAdd term=bold ctermbg=DarkBlue guibg=White +hi DiffChange term=bold ctermbg=DarkMagenta guibg=#edb5cd +hi DiffDelete term=bold ctermfg=DarkBlue ctermbg=6 cterm=bold gui=bold guifg=LightBlue guibg=#f6e8d0 +hi DiffText term=reverse ctermbg=DarkRed cterm=bold gui=bold guibg=#ff8060 +hi Cursor gui=reverse guifg=#404010 guibg=white +hi lCursor guifg=bg guibg=fg +hi Match term=bold,reverse ctermbg=Yellow ctermfg=Blue cterm=bold,reverse gui=bold,reverse guifg=yellow guibg=blue + + +" Colors for syntax highlighting +hi Comment term=bold ctermfg=DarkBlue guifg=#181880 +hi Constant term=underline ctermfg=DarkRed guifg=#c00058 +hi Special term=bold ctermfg=DarkMagenta guifg=#404010 +hi Identifier term=underline ctermfg=DarkCyan cterm=NONE guifg=#106060 +hi Statement term=bold ctermfg=DarkRed cterm=bold gui=bold guifg=Brown +hi PreProc term=underline ctermfg=DarkMagenta guifg=DarkMagenta +hi Type term=underline ctermfg=DarkGreen gui=bold guifg=SeaGreen +hi Ignore ctermfg=Gray cterm=bold guifg=bg +hi Error term=reverse ctermfg=Gray ctermbg=DarkRed cterm=bold gui=bold guifg=White guibg=Red +hi Todo term=standout ctermfg=DarkBlue ctermbg=Yellow guifg=Blue guibg=Yellow + +" vim:set list et: diff --git a/.vim/colors/nedit.vim b/.vim/colors/nedit.vim new file mode 100644 index 0000000..652891f --- /dev/null +++ b/.vim/colors/nedit.vim @@ -0,0 +1,26 @@ +" Vim color file +" Maintainer: Vladimir Vrzic <random@bsd.org.yu> +" Last Change: 28. june 2003. +" URL: http://galeb.etf.bg.ac.yu/~random/pub/vim/ + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="nedit" + +hi Normal guifg=Black guibg=grey90 + +hi Comment gui=italic guifg=gray20 guibg=NONE +hi Constant gui=NONE guifg=darkGreen guibg=NONE +hi Identifier gui=bold guifg=red guibg=NONE +hi Statement gui=bold guifg=black guibg=NONE +hi PreProc gui=NONE guifg=RoyalBlue4 guibg=NONE +hi Type gui=bold guifg=brown guibg=NONE +hi Special gui=NONE guifg=darkGreen guibg=NONE +"hi Underlined +"hi Ignore +"hi Error +"hi Todo + diff --git a/.vim/colors/nedit2.vim b/.vim/colors/nedit2.vim new file mode 100644 index 0000000..54811f0 --- /dev/null +++ b/.vim/colors/nedit2.vim @@ -0,0 +1,29 @@ +" Vim color file based on nedit by Vladimir Vrzic <random@bsd.org.yu> +" Maintainer: KraL <kral@paranoici.org> +" Last Change: Friday 13 february 2004. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="nedit2" + +hi Normal guifg=Black guibg=grey90 + +hi Cursor guifg=white guibg=black +hi CursorIM guifg=black guibg=black + +hi Comment gui=italic guifg=Purple guibg=NONE +hi Constant gui=NONE guifg=blue guibg=NONE +hi Identifier gui=bold guifg=red guibg=NONE +hi Statement gui=bold guifg=black guibg=NONE +hi PreProc gui=NONE guifg=RoyalBlue4 guibg=NONE +hi Type gui=bold guifg=brown guibg=NONE +hi String gui=NONE guifg=RoyalBlue guibg=NONE +hi Special gui=bold guifg=Magenta3 guibg=NONE +"hi Underlined +"hi Ignore +"hi Error gui=NONE guifg=Red guibg=Linen +"hi Todo + diff --git a/.vim/colors/neon.vim b/.vim/colors/neon.vim new file mode 100644 index 0000000..d0ba309 --- /dev/null +++ b/.vim/colors/neon.vim @@ -0,0 +1,70 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/10/25 Fri 16:23. +" version: 1.2 +" This color scheme uses a dark background. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "neon" + +hi Normal guifg=#f0f0f0 guibg=#303030 + +" Search +hi IncSearch gui=UNDERLINE guifg=#80ffff guibg=#0060c0 +hi Search gui=NONE guifg=#ffffa8 guibg=#808000 +" hi Search gui=NONE guifg=#b0ffb0 guibg=#008000 + +" Messages +hi ErrorMsg gui=BOLD guifg=#ffa0ff guibg=NONE +hi WarningMsg gui=BOLD guifg=#ffa0ff guibg=NONE +hi ModeMsg gui=BOLD guifg=#a0d0ff guibg=NONE +hi MoreMsg gui=BOLD guifg=#70ffc0 guibg=#8040ff +hi Question gui=BOLD guifg=#e8e800 guibg=NONE + +" Split area +hi StatusLine gui=NONE guifg=#000000 guibg=#c4c4c4 +hi StatusLineNC gui=NONE guifg=#707070 guibg=#c4c4c4 +hi VertSplit gui=NONE guifg=#707070 guibg=#c4c4c4 +hi WildMenu gui=NONE guifg=#000000 guibg=#ff80c0 + +" Diff +hi DiffText gui=NONE guifg=#ff78f0 guibg=#a02860 +hi DiffChange gui=NONE guifg=#e03870 guibg=#601830 +hi DiffDelete gui=NONE guifg=#a0d0ff guibg=#0020a0 +hi DiffAdd gui=NONE guifg=#a0d0ff guibg=#0020a0 + +" Cursor +hi Cursor gui=NONE guifg=#70ffc0 guibg=#8040ff +hi lCursor gui=NONE guifg=#ffffff guibg=#8800ff +hi CursorIM gui=NONE guifg=#ffffff guibg=#8800ff + +" Fold +hi Folded gui=NONE guifg=#40f0f0 guibg=#006090 +hi FoldColumn gui=NONE guifg=#40c0ff guibg=#404040 + +" Other +hi Directory gui=NONE guifg=#c8c8ff guibg=NONE +hi LineNr gui=NONE guifg=#707070 guibg=NONE +hi NonText gui=BOLD guifg=#d84070 guibg=#383838 +hi SpecialKey gui=BOLD guifg=#8888ff guibg=NONE +hi Title gui=BOLD guifg=fg guibg=NONE +hi Visual gui=NONE guifg=#b0ffb0 guibg=#008000 +hi VisualNOS gui=NONE guifg=#ffe8c8 guibg=#c06800 + +" Syntax group +hi Comment gui=NONE guifg=#c0c0c0 guibg=NONE +hi Constant gui=NONE guifg=#92d4ff guibg=NONE +hi Error gui=BOLD guifg=#ffffff guibg=#8000ff +hi Identifier gui=NONE guifg=#40f8f8 guibg=NONE +hi Ignore gui=NONE guifg=bg guibg=NONE +hi PreProc gui=NONE guifg=#ffa8ff guibg=NONE +hi Special gui=NONE guifg=#ffc890 guibg=NONE +hi Statement gui=NONE guifg=#dcdc78 guibg=NONE +hi Todo gui=BOLD,UNDERLINE guifg=#ff80d0 guibg=NONE +hi Type gui=NONE guifg=#60f0a8 guibg=NONE +hi Underlined gui=UNDERLINE guifg=fg guibg=NONE diff --git a/.vim/colors/night.vim b/.vim/colors/night.vim new file mode 100644 index 0000000..8fb7f56 --- /dev/null +++ b/.vim/colors/night.vim @@ -0,0 +1,70 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/10/13 Sun 16:59. +" version: 2.2 +" This color scheme uses a dark background. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "night" + +hi Normal guifg=#f0f0f8 guibg=#303040 + +" Search +hi IncSearch gui=UNDERLINE,BOLD guifg=#f0f0f8 guibg=#d000d0 +hi Search gui=BOLD guifg=#ffd0ff guibg=#c000c0 + +" Messages +hi ErrorMsg gui=BOLD guifg=#ffffff guibg=#f00080 +hi WarningMsg gui=BOLD guifg=#ffffff guibg=#f00080 +hi ModeMsg gui=BOLD guifg=#00e0ff guibg=NONE +hi MoreMsg gui=BOLD guifg=#00ffdd guibg=NONE +hi Question gui=BOLD guifg=#d0d050 guibg=NONE + +" Split area +hi StatusLine gui=NONE guifg=#000000 guibg=#c8c8d8 +hi StatusLineNC gui=NONE guifg=#606080 guibg=#c8c8d8 +hi VertSplit gui=NONE guifg=#606080 guibg=#c8c8d8 +hi WildMenu gui=NONE guifg=#000000 guibg=#e0e078 + +" Diff +hi DiffText gui=NONE guifg=#ffffff guibg=#40a060 +hi DiffChange gui=NONE guifg=#ffffff guibg=#007070 +hi DiffDelete gui=NONE guifg=#ffffff guibg=#40a0c0 +hi DiffAdd gui=NONE guifg=#ffffff guibg=#40a0c0 + +" Cursor +hi Cursor gui=NONE guifg=#ffffff guibg=#d86020 +hi lCursor gui=NONE guifg=#ffffff guibg=#e000b0 +hi CursorIM gui=NONE guifg=#ffffff guibg=#e000b0 + +" Fold +hi Folded gui=NONE guifg=#ffffff guibg=#9060c0 +hi FoldColumn gui=NONE guifg=#c0a0ff guibg=#404052 + +" Other +hi Directory gui=NONE guifg=#00ffff guibg=NONE +hi LineNr gui=NONE guifg=#787894 guibg=NONE +hi NonText gui=BOLD guifg=#8040ff guibg=#383848 +hi SpecialKey gui=BOLD guifg=#60a0ff guibg=NONE +hi Title gui=BOLD guifg=#f0f0f8 guibg=#9000a0 +hi Visual gui=NONE guifg=#ffffff guibg=#c08040 +" hi VisualNOS gui=NONE guifg=#ffffff guibg=#c08040 + +" Syntax group +hi Comment gui=NONE guifg=#e0e070 guibg=NONE +hi Constant gui=NONE guifg=#f0f0f8 guibg=#4830a0 +hi Error gui=BOLD guifg=#ffffff guibg=#f00080 +hi Identifier gui=NONE guifg=#ffa0ff guibg=NONE +hi Ignore gui=NONE guifg=#303040 guibg=NONE +hi Number gui=BOLD guifg=#b8b8c8 guibg=NONE +hi PreProc gui=NONE guifg=#40ffa0 guibg=NONE +hi Special gui=NONE guifg=#40f8f8 guibg=#4830a0 +hi Statement gui=BOLD guifg=#00d8f8 guibg=NONE +hi Todo gui=BOLD guifg=#00ffe0 guibg=#0080a0 +hi Type gui=BOLD guifg=#bbaaff guibg=NONE +hi Underlined gui=UNDERLINE,BOLD guifg=#f0f0f8 guibg=NONE diff --git a/.vim/colors/nightshimmer.vim b/.vim/colors/nightshimmer.vim new file mode 100644 index 0000000..53dce84 --- /dev/null +++ b/.vim/colors/nightshimmer.vim @@ -0,0 +1,111 @@ +" Vim color file +" Maintainer: Niklas Lindström <nlm@valtech.se> +" Last Change: 2002-03-22 +" Version: 0.3 +" URI: http://localhost/ + + +""" Init +set background=dark +highlight clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "nightshimmer" + + +""""""""\ Colors \"""""""" + + +"""" GUI Colors + +highlight Cursor gui=None guibg=Green guifg=White +highlight CursorIM gui=bold guifg=white guibg=Green1 +highlight Directory guifg=LightSeaGreen guibg=bg +highlight DiffAdd gui=None guifg=fg guibg=DarkCyan +highlight DiffChange gui=None guifg=fg guibg=Green4 +highlight DiffDelete gui=None guifg=fg guibg=black +highlight DiffText gui=bold guifg=fg guibg=bg +highlight ErrorMsg guifg=LightYellow guibg=FireBrick +" previously 'FillColumn': +"highlight FillColumn gui=NONE guifg=black guibg=grey60 +highlight VertSplit gui=NONE guifg=black guibg=grey60 +highlight Folded gui=bold guibg=#305060 guifg=#b0d0e0 +highlight FoldColumn gui=bold guibg=#305060 guifg=#b0d0e0 +highlight IncSearch gui=reverse guifg=fg guibg=bg +highlight LineNr gui=bold guibg=grey6 guifg=Purple3 +highlight ModeMsg guibg=DarkGreen guifg=LightGreen +highlight MoreMsg gui=bold guifg=SeaGreen4 guibg=bg +if version < 600 + " same as SpecialKey + highlight NonText guibg=#123A4A guifg=#3D5D6D +else + " Bottom fill (use e.g. same as LineNr) + highlight NonText gui=None guibg=grey6 guifg=Purple +endif +highlight Normal gui=None guibg=#103040 guifg=honeydew2 +highlight Question gui=bold guifg=SeaGreen2 guibg=bg +highlight Search gui=NONE guibg=Purple4 guifg=NONE +highlight SpecialKey guibg=#123A4A guifg=#426272 +highlight StatusLine gui=bold guibg=grey88 guifg=black +highlight StatusLineNC gui=NONE guibg=grey60 guifg=grey10 +highlight Title gui=bold guifg=MediumOrchid1 guibg=bg +highlight Visual gui=reverse guibg=WHITE guifg=SeaGreen +highlight VisualNOS gui=bold,underline guifg=fg guibg=bg +highlight WarningMsg gui=bold guifg=FireBrick1 guibg=bg +highlight WildMenu gui=bold guibg=Chartreuse guifg=Black + + +"""" Syntax Colors + +highlight Comment gui=reverse guifg=#507080 +"highlight Comment gui=None guifg=#507080 + +highlight Constant guifg=Cyan guibg=bg + "hi String gui=None guifg=Cyan guibg=bg + "hi Character gui=None guifg=Cyan guibg=bg + highlight Number gui=None guifg=Cyan guibg=bg + highlight Boolean gui=bold guifg=Cyan guibg=bg + "hi Float gui=None guifg=Cyan guibg=bg + +highlight Identifier guifg=orchid1 + "hi Function gui=None guifg=orchid1 guibg=bg + +highlight Statement gui=NONE guifg=LightGreen + highlight Conditional gui=None guifg=LightGreen guibg=bg + highlight Repeat gui=None guifg=SeaGreen2 guibg=bg + "hi Label gui=None guifg=LightGreen guibg=bg + highlight Operator gui=None guifg=Chartreuse guibg=bg + highlight Keyword gui=bold guifg=LightGreen guibg=bg + highlight Exception gui=bold guifg=LightGreen guibg=bg + +highlight PreProc guifg=MediumPurple1 + "hi Include gui=None guifg=MediumPurple1 guibg=bg + "hi Define gui=None guifg=MediumPurple1g guibg=bg + "hi Macro gui=None guifg=MediumPurple1g guibg=bg + "hi PreCondit gui=None guifg=MediumPurple1g guibg=bg + +highlight Type gui=NONE guifg=LightBlue + "hi StorageClass gui=None guifg=LightBlue guibg=bg + "hi Structure gui=None guifg=LightBlue guibg=bg + "hi Typedef gui=None guifg=LightBlue guibg=bg + +highlight Special gui=bold guifg=White + "hi SpecialChar gui=bold guifg=White guibg=bg + "hi Tag gui=bold guifg=White guibg=bg + "hi Delimiter gui=bold guifg=White guibg=bg + "hi SpecialComment gui=bold guifg=White guibg=bg + "hi Debug gui=bold guifg=White guibg=bg + +highlight Underlined gui=underline guifg=honeydew4 guibg=bg + +highlight Ignore guifg=#204050 + +highlight Error guifg=LightYellow guibg=FireBrick + +highlight Todo guifg=Cyan guibg=#507080 + +""" OLD COLORS + + + diff --git a/.vim/colors/nightwish.vim b/.vim/colors/nightwish.vim new file mode 100644 index 0000000..e9bfe55 --- /dev/null +++ b/.vim/colors/nightwish.vim @@ -0,0 +1,59 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file, derived from colorscheme 'murphy' +" Maintainer: Michael Muhler <muhler AT web.de> +" Version: 1.0 +" URL: http://home.arcor.de/muhler +" Last Change: 2003 Apr 15 + +"help see colortest.vim + +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "nightwish" + + +hi Comment term=bold ctermfg=LightRed guifg=Orange +hi Constant term=underline ctermfg=LightGreen guifg=White gui=NONE +hi Directory term=bold ctermfg=LightCyan guifg=Cyan +hi Error term=reverse ctermbg=Red ctermfg=White guibg=Red guifg=White +hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White +hi Identifier term=underline ctermfg=LightCyan guifg=#00ffff +hi Ignore ctermfg=black guifg=bg +hi IncSearch term=reverse cterm=reverse gui=reverse +hi LineNr term=underline ctermfg=Yellow guifg=Yellow +hi ModeMsg term=bold cterm=bold gui=bold +hi MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen +hi NonText term=bold ctermfg=Blue gui=bold guifg=Blue +hi PreProc term=underline ctermfg=LightBlue guifg=Wheat +hi Question term=standout ctermfg=LightGreen gui=bold guifg=Cyan +hi Search term=reverse guifg=white guibg=Blue +hi Special term=bold ctermfg=LightRed guifg=magenta +hi SpecialKey term=bold ctermfg=LightBlue guifg=Cyan +hi Statement term=bold ctermfg=Yellow guifg=#ffff00 gui=NONE +hi StatusLine term=reverse,bold cterm=reverse gui=NONE guifg=White guibg=darkblue +hi StatusLineNC term=reverse cterm=reverse gui=NONE guifg=white guibg=#333333 +hi Title term=bold ctermfg=LightMagenta gui=bold guifg=Pink +hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow +hi Type ctermfg=LightGreen guifg=grey gui=none +hi Visual term=reverse cterm=reverse gui=NONE guifg=white guibg=darkgreen +hi WarningMsg term=standout ctermfg=LightRed guifg=Red + +hi Normal ctermbg=Black ctermfg=lightgreen guibg=Black guifg=#a0a0ff +hi Cursor guifg=bg guibg=Green +hi String term=underline cterm=bold ctermfg=magenta guifg=#ffa0a0 +hi Repeat term=underline ctermfg=Magenta guifg=Red +hi Delimiter term=standout ctermfg=Blue guifg=#00ff88 +hi Label term=standout ctermfg=DarkYellow guifg=DarkYellow +hi Keyword term=standout ctermfg=Green guifg=Green +hi Operator term=standout ctermfg=Yellow guifg=#ff5555 +hi Exception term=standout ctermfg=Magenta guifg=#ff0dd5 +hi Tag term=standout ctermfg=Green guifg=#55ff0d + +" missing items in murphy +hi Scrollbar guifg=darkcyan guibg=cyan +hi Menu guifg=black guibg=cyan +hi link Conditional Repeat diff --git a/.vim/colors/northsky.vim b/.vim/colors/northsky.vim new file mode 100644 index 0000000..e705ae4 --- /dev/null +++ b/.vim/colors/northsky.vim @@ -0,0 +1,70 @@ +" Vim color file based on bluegreen +" Maintainer: Sergey Khorev +" Last Change: +" URL: + + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="northsky" + +hi Normal guifg=white guibg=#061A3E + +" Search +"hi Search guibg=#A28D68 guifg=bg gui=none +"hi Search guibg=#4668A1 guifg=bg gui=none +hi Search guibg=#3D5B8C guifg=yellow gui=none +hi IncSearch guifg=bg guibg=cyan gui=bold + +" highlight groups +hi Cursor guibg=#D74141 guifg=#e3e3e3 +hi VertSplit guibg=#C0FFFF guifg=#075554 gui=none +hi Folded guifg=plum1 guibg=#061A3E +hi FoldColumn guibg=#800080 guifg=tan +hi ModeMsg guifg=#404040 guibg=#C0C0C0 +hi MoreMsg guifg=darkturquoise guibg=#188F90 +hi NonText guibg=#334C75 guifg=#9FADC5 +hi Question guifg=#F4BB7E + +hi SpecialKey guifg=#BF9261 +hi StatusLine guibg=#067C7B guifg=cyan gui=none +hi StatusLineNC guibg=#004443 guifg=DimGrey gui=none +hi Title guifg=#8DB8C3 +"hi Visual gui=bold guifg=black guibg=#C0FFC0 +hi Visual gui=bold guifg=black guibg=#84AF84 +hi WarningMsg guifg=#F60000 gui=underline + +" syntax highlighting groups +hi Comment guifg=DarkGray +hi Constant guifg=#72A5E4 gui=bold +hi Number guifg=chartreuse2 gui=bold +hi Identifier guifg=#ADCBF1 +hi Statement guifg=yellow +hi PreProc guifg=#14967C +hi Type guifg=#FFAE66 +hi Special guifg=#EEBABA +hi Ignore guifg=grey60 +hi Todo guibg=#9C8C84 guifg=#244C0A +hi Label guifg=#ffc0c0 + +" Vim defaults +hi ErrorMsg guifg=White guibg=Red +hi DiffAdd guibg=DarkBlue +hi DiffChange guibg=aquamarine4 +hi DiffDelete gui=bold guifg=Yellow guibg=DarkBlue +hi DiffText gui=bold guibg=firebrick3 +hi Directory guifg=Cyan +hi LineNr guifg=DarkGreen +hi WildMenu guifg=Black guibg=Yellow +" hi lCursor guifg=bg guibg=fg +hi lCursor guibg=SeaGreen1 guifg=NONE +hi Underlined gui=underline guifg=#80a0ff +hi Error guifg=White guibg=Red diff --git a/.vim/colors/nuvola.vim b/.vim/colors/nuvola.vim new file mode 100644 index 0000000..f9a608a --- /dev/null +++ b/.vim/colors/nuvola.vim @@ -0,0 +1,107 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" Maintainer: Dr. J. Pfefferl <johann.pfefferl@agfa.com> +" Source: $Source: /MISC/projects/cvsroot/user/pfefferl/vim/colors/nuvola.vim,v $ +" Id: $Id: nuvola.vim,v 1.14 2003/08/11 14:03:28 pfefferl Exp $ +" Last Change: $Date: 2003/08/11 14:03:28 $ + +" Intro {{{1 +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "nuvola" + +" Normal {{{1 +hi Normal ctermfg=black ctermbg=NONE guifg=black guibg=#F9F5F9 + +" Search {{{1 +hi IncSearch cterm=UNDERLINE ctermfg=Black ctermbg=brown gui=UNDERLINE guifg=Black guibg=#FFE568 +hi Search term=reverse cterm=UNDERLINE ctermfg=Black ctermbg=brown gui=NONE guifg=Black guibg=#FFE568 + +" Messages {{{1 +hi ErrorMsg gui=BOLD guifg=#EB1513 guibg=NONE +hi! link WarningMsg ErrorMsg +hi ModeMsg gui=BOLD guifg=#0070ff guibg=NONE +hi MoreMsg guibg=NONE guifg=seagreen +hi! link Question MoreMsg + +" Split area {{{1 +hi StatusLine term=BOLD,reverse cterm=NONE ctermfg=Yellow ctermbg=DarkGray gui=BOLD guibg=#56A0EE guifg=white +hi StatusLineNC gui=NONE guibg=#56A0EE guifg=#E9E9F4 +hi! link VertSplit StatusLineNC +hi WildMenu gui=UNDERLINE guifg=#56A0EE guibg=#E9E9F4 + +" Diff {{{1 +hi DiffText gui=NONE guifg=#f83010 guibg=#ffeae0 +hi DiffChange gui=NONE guifg=#006800 guibg=#d0ffd0 +hi DiffDelete gui=NONE guifg=#2020ff guibg=#c8f2ea +hi! link DiffAdd DiffDelete + +" Cursor {{{1 +hi Cursor gui=none guifg=black guibg=orange +"hi lCursor gui=NONE guifg=#f8f8f8 guibg=#8000ff +hi CursorIM gui=NONE guifg=#f8f8f8 guibg=#8000ff + +" Fold {{{1 +hi Folded gui=NONE guibg=#B5EEB5 guifg=black +"hi FoldColumn gui=NONE guibg=#9FD29F guifg=black +hi! link FoldColumn Folded + +" Other {{{1 +hi Directory gui=NONE guifg=#0000ff guibg=NONE +hi LineNr gui=NONE guifg=#8080a0 guibg=NONE +hi NonText gui=BOLD guifg=#4000ff guibg=#EFEFF7 +"hi SpecialKey gui=NONE guifg=#A35B00 guibg=NONE +hi Title gui=BOLD guifg=#1014AD guibg=NONE +hi Visual term=reverse ctermfg=yellow ctermbg=black gui=NONE guifg=Black guibg=#BDDFFF +hi VisualNOS term=reverse ctermfg=yellow ctermbg=black gui=UNDERLINE guifg=Black guibg=#BDDFFF + +" Syntax group {{{1 +hi Comment term=BOLD ctermfg=darkgray guifg=#3F6B5B +hi Constant term=UNDERLINE ctermfg=red guifg=#B91F49 +hi Error term=REVERSE ctermfg=15 ctermbg=9 guibg=Red guifg=White +hi Identifier term=UNDERLINE ctermfg=Blue guifg=Blue +hi Number term=UNDERLINE ctermfg=red gui=NONE guifg=#00C226 +hi PreProc term=UNDERLINE ctermfg=darkblue guifg=#1071CE +hi Special term=BOLD ctermfg=darkmagenta guifg=red2 +hi Statement term=BOLD ctermfg=DarkRed gui=NONE guifg=#F06F00 +hi Tag term=BOLD ctermfg=DarkGreen guifg=DarkGreen +hi Todo term=STANDOUT ctermbg=Yellow ctermfg=blue guifg=Blue guibg=Yellow +hi Type term=UNDERLINE ctermfg=Blue gui=NONE guifg=Blue +hi! link String Constant +hi! link Character Constant +hi! link Boolean Constant +hi! link Float Number +hi! link Function Identifier +hi! link Conditional Statement +hi! link Repeat Statement +hi! link Label Statemengreen +hi! link Operator Statement +hi! link Keyword Statement +hi! link Exception Statement +hi! link Include PreProc +hi! link Define PreProc +hi! link Macro PreProc +hi! link PreCondit PreProc +hi! link StorageClass Type +hi! link Structure Type +hi! link Typedef Type +hi! link SpecialChar Special +hi! link Delimiter Special +hi! link SpecialComment Special +hi! link Debug Special + +" HTML {{{1 +hi htmlLink gui=UNDERLINE guifg=#0000ff guibg=NONE +hi htmlBold gui=BOLD +hi htmlBoldItalic gui=BOLD,ITALIC +hi htmlBoldUnderline gui=BOLD,UNDERLINE +hi htmlBoldUnderlineItalic gui=BOLD,UNDERLINE,ITALIC +hi htmlItalic gui=ITALIC +hi htmlUnderline gui=UNDERLINE +hi htmlUnderlineItalic gui=UNDERLINE,ITALIC + +" vim600:foldmethod=marker diff --git a/.vim/colors/oceanblack.vim b/.vim/colors/oceanblack.vim new file mode 100644 index 0000000..e6e6be3 --- /dev/null +++ b/.vim/colors/oceanblack.vim @@ -0,0 +1,115 @@ +" Vim color file +" Maintainer: Chris Vertonghen <chris@vertonghen.org> +" Last Change: 2003-03-25 +" Version: 0.1 +" based on Tom Regner's oceanblue.vim + +""" Init +set background=dark +highlight clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "oceanblack" + + +""""""""\ Colors \"""""""" + + +"""" GUI Colors + +highlight Cursor gui=None guibg=PaleTurquoise3 guifg=White +highlight CursorIM gui=bold guifg=white guibg=PaleTurquoise3 +highlight Directory guifg=LightSeaGreen guibg=bg +highlight DiffAdd gui=None guifg=fg guibg=DarkCyan +highlight DiffChange gui=None guifg=fg guibg=Green4 +highlight DiffDelete gui=None guifg=fg guibg=black +highlight DiffText gui=bold guifg=fg guibg=bg +highlight ErrorMsg guifg=LightYellow guibg=FireBrick +" previously 'FillColumn': +"highlight FillColumn gui=NONE guifg=black guibg=grey60 +highlight VertSplit gui=NONE guifg=black guibg=grey60 +highlight Folded gui=bold guibg=#305060 guifg=#b0d0e0 +highlight FoldColumn gui=None guibg=#305060 guifg=#b0d0e0 +highlight IncSearch gui=reverse guifg=fg guibg=bg +"highlight LineNr guibg=grey6 guifg=LightSkyBlue3 +highlight LineNr guibg=grey6 guifg=#777777 +highlight ModeMsg guibg=DarkGreen guifg=LightGreen +highlight MoreMsg gui=bold guifg=SeaGreen4 guibg=bg +if version < 600 + " same as SpecialKey + highlight NonText guibg=#123A4A guifg=#3D5D6D +else + " Bottom fill (use e.g. same as LineNr) + highlight NonText gui=None guibg=#000000 guifg=LightSkyBlue +endif +highlight Normal gui=None guibg=#000000 guifg=honeydew2 +highlight Question gui=bold guifg=SeaGreen2 guibg=bg +highlight Search gui=NONE guibg=LightSkyBlue4 guifg=NONE +highlight SpecialKey guibg=#103040 guifg=#324262 +highlight StatusLine gui=bold guibg=grey88 guifg=black +highlight StatusLineNC gui=NONE guibg=grey60 guifg=grey10 +highlight Title gui=bold guifg=MediumOrchid1 guibg=bg +highlight Visual gui=reverse guibg=WHITE guifg=SeaGreen +highlight VisualNOS gui=bold,underline guifg=fg guibg=bg +highlight WarningMsg gui=bold guifg=FireBrick1 guibg=bg +highlight WildMenu gui=bold guibg=Chartreuse guifg=Black + + +"""" Syntax Colors + +"highlight Comment gui=reverse guifg=#507080 +"highlight Comment gui=None guifg=#507080 +highlight Comment gui=None guifg=#7C7268 + +highlight Constant guifg=cyan3 guibg=bg +"hi String gui=None guifg=turquoise2 guibg=bg +hi String gui=None guifg=#80a0ff guibg=bg + "hi Character gui=None guifg=Cyan guibg=bg + "highlight Number gui=None guifg=Cyan guibg=bg + highlight Number gui=None guifg=Cyan guibg=black + highlight Boolean gui=bold guifg=Cyan guibg=bg + "hi Float gui=None guifg=Cyan guibg=bg + +highlight Identifier guifg=LightSkyBlue3 +hi Function gui=None guifg=DarkSeaGreen3 guibg=bg + +highlight Statement gui=NONE guifg=LightGreen + highlight Conditional gui=None guifg=LightGreen guibg=bg + highlight Repeat gui=None guifg=SeaGreen2 guibg=bg + "hi Label gui=None guifg=LightGreen guibg=bg + highlight Operator gui=None guifg=Chartreuse guibg=bg + highlight Keyword gui=None guifg=LightGreen guibg=bg + highlight Exception gui=None guifg=LightGreen guibg=bg + +highlight PreProc guifg=SkyBlue1 +hi Include gui=None guifg=LightSteelBlue3 guibg=bg +hi Define gui=None guifg=LightSteelBlue2 guibg=bg +hi Macro gui=None guifg=LightSkyBlue3 guibg=bg +hi PreCondit gui=None guifg=LightSkyBlue2 guibg=bg + +highlight Type gui=NONE guifg=LightBlue +hi StorageClass gui=None guifg=LightBlue guibg=bg +hi Structure gui=None guifg=LightBlue guibg=bg +hi Typedef gui=None guifg=LightBlue guibg=bg + +"highlight Special gui=bold guifg=aquamarine3 +highlight Special guifg=#999999 + "hi SpecialChar gui=bold guifg=White guibg=bg + "hi Tag gui=bold guifg=White guibg=bg + "hi Delimiter gui=bold guifg=White guibg=bg + "hi SpecialComment gui=bold guifg=White guibg=bg + "hi Debug gui=bold guifg=White guibg=bg + +highlight Underlined gui=underline guifg=honeydew4 guibg=bg + +highlight Ignore guifg=#204050 + +highlight Error guifg=LightYellow guibg=FireBrick + +highlight Todo guifg=Cyan guibg=#507080 + +""" OLD COLORS + + + diff --git a/.vim/colors/oceandeep.vim b/.vim/colors/oceandeep.vim new file mode 100644 index 0000000..c19b2c0 --- /dev/null +++ b/.vim/colors/oceandeep.vim @@ -0,0 +1,111 @@ +" Vim color file +" Maintainer: Tom Regner <regner@dievision.de> +" Last Change: 2002-12-05 +" Version: 1.1 +" URL: http://vim.sourceforge.net/script.php?script_id=368 + + +""" Init +set background=dark +highlight clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "oceandeep" + + +""""""""\ Colors \"""""""" + + +"""" GUI Colors + +highlight Cursor gui=None guibg=PaleTurquoise3 guifg=White +highlight CursorIM gui=bold guifg=white guibg=PaleTurquoise3 +highlight Directory guifg=LightSeaGreen guibg=bg +highlight DiffAdd gui=None guifg=fg guibg=DarkCyan +highlight DiffChange gui=None guifg=fg guibg=Green4 +highlight DiffDelete gui=None guifg=fg guibg=black +highlight DiffText gui=bold guifg=fg guibg=bg +highlight ErrorMsg guifg=LightYellow guibg=FireBrick +" previously 'FillColumn': +"highlight FillColumn gui=NONE guifg=black guibg=grey60 +highlight VertSplit gui=NONE guifg=black guibg=grey60 +highlight Folded gui=bold guibg=#305060 guifg=#b0d0e0 +highlight FoldColumn gui=bold guibg=#305060 guifg=#b0d0e0 +highlight IncSearch gui=reverse guifg=fg guibg=bg +highlight LineNr gui=bold guibg=grey6 guifg=LightSkyBlue3 +highlight ModeMsg guibg=DarkGreen guifg=LightGreen +highlight MoreMsg gui=bold guifg=SeaGreen4 guibg=bg +if version < 600 + " same as SpecialKey + highlight NonText guibg=#123A4A guifg=#3D5D6D +else + " Bottom fill (use e.g. same as LineNr) + highlight NonText gui=None guibg=#103040 guifg=LightSkyBlue +endif +highlight Normal gui=None guibg=#103040 guifg=honeydew2 +highlight Question gui=bold guifg=SeaGreen2 guibg=bg +highlight Search gui=NONE guibg=LightSkyBlue4 guifg=NONE +highlight SpecialKey guibg=#103040 guifg=#324262 +highlight StatusLine gui=bold guibg=grey88 guifg=black +highlight StatusLineNC gui=NONE guibg=grey60 guifg=grey10 +highlight Title gui=bold guifg=MediumOrchid1 guibg=bg +highlight Visual gui=reverse guibg=WHITE guifg=SeaGreen +highlight VisualNOS gui=bold,underline guifg=fg guibg=bg +highlight WarningMsg gui=bold guifg=FireBrick1 guibg=bg +highlight WildMenu gui=bold guibg=Chartreuse guifg=Black + + +"""" Syntax Colors + +"highlight Comment gui=reverse guifg=#507080 +highlight Comment gui=None guifg=#507080 + +highlight Constant guifg=cyan3 guibg=bg +hi String gui=None guifg=turquoise2 guibg=bg + "hi Character gui=None guifg=Cyan guibg=bg + highlight Number gui=None guifg=Cyan guibg=bg + highlight Boolean gui=bold guifg=Cyan guibg=bg + "hi Float gui=None guifg=Cyan guibg=bg + +highlight Identifier guifg=LightSkyBlue3 +hi Function gui=None guifg=DarkSeaGreen3 guibg=bg + +highlight Statement gui=NONE guifg=LightGreen + highlight Conditional gui=None guifg=LightGreen guibg=bg + highlight Repeat gui=None guifg=SeaGreen2 guibg=bg + "hi Label gui=None guifg=LightGreen guibg=bg + highlight Operator gui=None guifg=Chartreuse guibg=bg + highlight Keyword gui=bold guifg=LightGreen guibg=bg + highlight Exception gui=bold guifg=LightGreen guibg=bg + +highlight PreProc guifg=SkyBlue1 +hi Include gui=None guifg=LightSteelBlue3 guibg=bg +hi Define gui=None guifg=LightSteelBlue2 guibg=bg +hi Macro gui=None guifg=LightSkyBlue3 guibg=bg +hi PreCondit gui=None guifg=LightSkyBlue2 guibg=bg + +highlight Type gui=NONE guifg=LightBlue +hi StorageClass gui=None guifg=LightBlue guibg=bg +hi Structure gui=None guifg=LightBlue guibg=bg +hi Typedef gui=None guifg=LightBlue guibg=bg + +highlight Special gui=bold guifg=aquamarine3 + "hi SpecialChar gui=bold guifg=White guibg=bg + "hi Tag gui=bold guifg=White guibg=bg + "hi Delimiter gui=bold guifg=White guibg=bg + "hi SpecialComment gui=bold guifg=White guibg=bg + "hi Debug gui=bold guifg=White guibg=bg + +highlight Underlined gui=underline guifg=honeydew4 guibg=bg + +highlight Ignore guifg=#204050 + +highlight Error guifg=LightYellow guibg=FireBrick + +highlight Todo guifg=Cyan guibg=#507080 + +""" OLD COLORS + + + diff --git a/.vim/colors/oceanlight.vim b/.vim/colors/oceanlight.vim new file mode 100644 index 0000000..08fb22e --- /dev/null +++ b/.vim/colors/oceanlight.vim @@ -0,0 +1,105 @@ +" Vim color file +" Maintainer: Håkan Wikström <hakan@wikstrom.st> +" Last Change: 2005-01-06 +" Version: 0.1 +" URL: +" Originally based on oceandeep by Tom Regner (Vim script #368) + + +""" Init +set background=light +highlight clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "oceanlight" + + +""""""""\ Colors \"""""""" + + +"""" GUI Colors + +highlight Cursor gui=None guibg=PaleTurquoise3 guifg=White +highlight CursorIM gui=none guifg=white guibg=PaleTurquoise3 +highlight Directory guifg=SeaGreen guibg=bg +highlight DiffAdd gui=None guifg=SteelBlue guibg=LightGray +highlight DiffChange gui=None guifg=fg guibg=CadetBlue +highlight DiffDelete gui=None guifg=LightGray guibg=SteelBlue +highlight DiffText gui=none guifg=fg guibg=bg +highlight ErrorMsg guifg=FireBrick guibg=bg +highlight VertSplit gui=NONE guifg=black guibg=grey60 +highlight Folded gui=none guibg=LightSteelBlue guifg=SteelBlue +highlight FoldColumn gui=none guibg=LightSteelBLue guifg=SteelBlue +highlight IncSearch gui=reverse guifg=fg guibg=bg +highlight LineNr gui=none guibg=#d3d3d3 guifg=#5daf83 +highlight ModeMsg guibg=CadetBlue guifg=LightGrey +highlight MoreMsg gui=none guifg=CadetBlue guibg=bg +if version < 600 + " same as SpecialKey + highlight NonText guibg=#d3d3d3 guifg=#3D5D6D +else + " Bottom fill (use e.g. same as LineNr) + highlight NonText gui=None guibg=#d3d3d3 guifg=#5daf83 +endif +highlight Normal gui=None guibg=#f5f5f5 guifg=DimGray +highlight Question gui=none guifg=SeaGreen2 guibg=bg +highlight Search gui=NONE guibg=SlateGray2 guifg=NONE +highlight SpecialKey guibg=LightGray guifg=CadetBlue +highlight StatusLine gui=none guibg=SlateGrey guifg=LightGrey +highlight StatusLineNC gui=NONE guibg=LightGrey guifg=SlateGrey +highlight Title gui=none guifg=MediumOrchid1 guibg=bg +highlight Visual gui=reverse guibg=slategray4 guifg=SlateGray2 +highlight VisualNOS gui=none,underline guifg=fg guibg=bg +highlight WarningMsg gui=none guifg=FireBrick1 guibg=bg +highlight WildMenu gui=none guibg=Chartreuse guifg=Black + + +"""" Syntax Colors + +"highlight Comment gui=reverse guifg=#507080 +highlight Comment gui=None guifg=LightSteelBlue + +highlight Constant guifg=#483d8b guibg=bg +hi String gui=None guifg=MediumAquamarine guibg=bg + "hi Character gui=None guifg=Cyan guibg=bg + highlight Number gui=None guifg=MediumSeaGreen guibg=bg + highlight Boolean gui=none guifg=DarkSeaGreen guibg=bg + "hi Float gui=None guifg=Cyan guibg=bg + +highlight Identifier guifg=CornflowerBlue +hi Function gui=None guifg=DarkSeaGreen guibg=bg + +highlight Statement gui=NONE guifg=SeaGreen + highlight Conditional gui=None guifg=#5daf83 guibg=bg + highlight Repeat gui=None guifg=#5daf83 guibg=bg + "hi Label gui=None guifg=seagreen guibg=bg + highlight Operator gui=None guifg=LightSlateBlue guibg=bg + highlight Keyword gui=none guifg=SeaGreen guibg=bg + highlight Exception gui=none guifg=SeaGreen guibg=bg + +highlight PreProc guifg=SkyBlue1 +hi Include gui=None guifg=SteelBlue guibg=bg +hi Define gui=None guifg=LightSteelBlue2 guibg=bg +hi Macro gui=None guifg=LightSkyBlue3 guibg=bg +hi PreCondit gui=None guifg=LightSkyBlue2 guibg=bg + +highlight Type gui=NONE guifg=SteelBlue +hi StorageClass gui=None guifg=SteelBlue guibg=bg +hi Structure gui=None guifg=SteelBlue guibg=bg +hi Typedef gui=None guifg=SteelBlue guibg=bg + +highlight Special gui=none guifg=aquamarine3 + "hi SpecialChar gui=none guifg=White guibg=bg + "hi Tag gui=none guifg=White guibg=bg + "hi Delimiter gui=none guifg=White guibg=bg + "hi SpecialComment gui=none guifg=White guibg=bg + "hi Debug gui=none guifg=White guibg=bg + +highlight Underlined gui=underline guifg=honeydew4 guibg=bg + +highlight Ignore guifg=#204050 + +highlight Error guifg=FireBrick gui=Bold guibg=bg + +highlight Todo guifg=LightSkyBlue guibg=SlateGray diff --git a/.vim/colors/olive.vim b/.vim/colors/olive.vim new file mode 100644 index 0000000..26dcd2c --- /dev/null +++ b/.vim/colors/olive.vim @@ -0,0 +1,119 @@ +" Vim color file +" Maintainer: Charles <cherry_avium@yahoo.com> +" Last Change: 11 June 2004 +" URL: http:// + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="olive" + +"======================================================= +hi Normal guifg=#D9D9C3 guibg=#333300 +hi Cursor guifg=black guibg=white +hi CursorIM guifg=black guibg=green +hi Directory guifg=gold gui=underline +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +hi ErrorMsg guibg=indianred +"hi VertSplit guifg=gold +hi Folded guifg=khaki guibg=darkolivegreen gui=underline +hi FoldColumn guifg=khaki guibg=darkolivegreen gui=none +hi IncSearch guifg=black guibg=khaki +hi LineNr guifg=gray80 +hi ModeMsg guifg=greenyellow gui=bold +hi MoreMsg guifg=greenyellow gui=bold +"hi NonText guibg=black +hi Question guifg=yellowgreen gui=NONE +hi Search guifg=black guibg=khaki gui=NONE +hi SpecialKey guifg=black guibg=darkkhaki +hi StatusLine guifg=palegoldenrod guibg=#808000 gui=none +hi StatusLineNC guifg=gray guibg=darkolivegreen gui=none +hi Title guifg=gold gui=bold +hi Visual guifg=black guibg=darkkhaki gui=NONE +"hi VisualNOS +hi WarningMsg guifg=palevioletred +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + + +" ============================================================ +" syntax highlighting groups +" ============================================================ +hi Comment guifg=darkkhaki guibg=#4C4C00 gui=underline + +hi Constant guifg=navajowhite +hi String guifg=greenyellow +"hi Character +"hi Number +"hi Boolean +"hi Float + +hi Identifier guifg=lightsteelblue +" hi Function guibg=gray60 + +hi Statement guifg=darkseagreen gui=bold +"hi Conditional +"hi Repeat +"hi Label +hi Operator guifg=gold +"hi Keyword +"hi Exception + +hi PreProc guifg=sandybrown gui=bold +"hi Include +"hi Define +"hi Macro +"hi PreCondit + +hi Type guifg=goldenrod +"hi StorageClass +"hi Structure +"hi Typedef + +hi Special guifg=navajowhite gui=underline +"hi SpecialChar +"hi Tag +"hi Delimiter +"hi SpecialComment +"hi Debug + +hi Underlined gui=underline + +hi Ignore guifg=black + +hi Error guifg=white + +hi Todo guifg=black guibg=gold gui=NONE + +" ================================================================= +" Language specific color +" ================================================================= + +" C / C++ +hi cIncluded guifg=yellowgreen + +" HTML +hi Title guifg=palegoldenrod + +" VIM +hi VimError guifg=red gui=bold +hi VimOption guifg=gold + +" TeX / LaTeX +hi texSection guifg=greenyellow +" tex between { and } +hi texMatcher guifg=yellowgreen gui=none +hi texMath gui=none + diff --git a/.vim/colors/papayawhip.vim b/.vim/colors/papayawhip.vim new file mode 100644 index 0000000..5f8725a --- /dev/null +++ b/.vim/colors/papayawhip.vim @@ -0,0 +1,31 @@ +" Vim color file +" Maintainer: Gerald S. Williams +" Last Change: 2003 Apr 17 + +" A nice light background (you guessed it, PapayaWhip) that's relatively easy +" on the eyes yet very usable. Not nearly as "puffy" as peachpuff. +" +" Only values that differ from defaults are specified. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "PapayaWhip" + +hi Normal guifg=#3f1f1f guibg=PapayaWhip ctermbg=Gray ctermfg=Black +hi NonText guibg=Moccasin guifg=Brown ctermfg=Brown +hi LineNr guibg=Moccasin +hi DiffDelete guibg=LightRed guifg=Black ctermbg=DarkRed ctermfg=White +hi DiffAdd guibg=LightGreen ctermbg=DarkGreen ctermfg=White +hi DiffChange guibg=LightCyan3 ctermbg=DarkCyan ctermfg=White +hi DiffText gui=NONE guibg=Gray80 ctermbg=DarkCyan ctermfg=Yellow +hi Comment guifg=MediumBlue +hi Constant guifg=DeepPink +hi PreProc guifg=DarkMagenta +hi StatusLine guibg=White guifg=#5f3705 cterm=bold ctermbg=Brown ctermfg=White +hi StatusLineNC gui=None guibg=Gray +hi VertSplit gui=None guibg=Gray +hi Identifier guifg=#005f5f +hi Statement ctermfg=DarkRed diff --git a/.vim/colors/potts.vim b/.vim/colors/potts.vim new file mode 100644 index 0000000..79bc5e9 --- /dev/null +++ b/.vim/colors/potts.vim @@ -0,0 +1,53 @@ +" -*- vim -*- +" FILE: "/home/dp/.vim/colors/potts2.vim" {{{ +" LAST MODIFICATION: "Fri, 08 Feb 2002 09:47:10 (dp)" +" (C) 2001 by Douglas L. Potts, <dlpotts@spectral-sys.com> +" $Id: potts2.vim,v 1.3 2002/02/18 20:25:27 dp Exp $ }}} + +set background=dark +highlight clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="potts2" + +highlight SpecialKey term=bold ctermfg=9 guifg=Cyan +highlight NonText term=bold ctermfg=9 gui=bold guifg=green +highlight Directory term=bold ctermfg=11 guifg=Cyan +highlight ErrorMsg term=standout ctermfg=15 ctermbg=4 guifg=White guibg=Red +highlight IncSearch term=reverse cterm=reverse gui=reverse +highlight Search term=reverse ctermfg=15 ctermbg=12 guifg=white guibg=Red +highlight MoreMsg term=bold ctermfg=10 gui=bold guifg=SeaGreen +highlight ModeMsg term=bold cterm=bold gui=bold +highlight LineNr term=underline ctermfg=14 guifg=Yellow +highlight Question term=standout ctermfg=10 gui=bold guifg=Green +highlight StatusLine term=bold,reverse cterm=bold,reverse gui=bold,reverse +highlight StatusLineNC term=reverse cterm=reverse gui=reverse +highlight VertSplit term=reverse cterm=reverse gui=reverse +highlight Title term=bold ctermfg=13 gui=bold guifg=Magenta +highlight Visual term=reverse cterm=reverse gui=reverse guifg=gray guibg=black +highlight VisualNOS term=bold,underline cterm=bold,underline gui=bold,underline +highlight WarningMsg term=standout ctermfg=12 guifg=Red +highlight WildMenu term=standout ctermfg=0 ctermbg=14 guifg=Black guibg=Yellow +highlight Folded term=standout cterm=bold ctermfg=11 guifg=cyan guibg=bg +highlight FoldColumn term=standout cterm=bold ctermfg=11 guifg=cyan guibg=bg +highlight DiffAdd term=bold ctermfg=10 ctermbg=9 guifg=Green guibg=Black +highlight DiffChange term=bold ctermfg=15 ctermbg=9 guifg=White guibg=Blue +highlight DiffDelete term=bold ctermfg=13 ctermbg=11 gui=bold guifg=Magenta guibg=Black +highlight DiffText term=reverse cterm=bold ctermfg=15 ctermbg=12 gui=bold guifg=White guibg=Red +highlight Cursor guifg=bg guibg=fg +highlight lCursor guifg=bg guibg=fg +highlight Normal guifg=gray guibg=black font='6x13' +highlight Comment term=bold ctermfg=11 guifg=#80a0ff +highlight Constant term=underline ctermfg=13 guifg=#ffa0a0 +highlight Special term=bold ctermfg=12 guifg=Orange +highlight Identifier term=underline cterm=bold ctermfg=11 guifg=#40ffff +highlight Statement term=bold ctermfg=14 gui=bold guifg=#ffff60 +highlight PreProc term=underline ctermfg=9 guifg=#ff80ff +highlight Type term=underline ctermfg=10 gui=bold guifg=#60ff60 +highlight Underlined term=underline cterm=underline ctermfg=9 gui=underline guifg=#80a0ff +highlight Ignore ctermfg=0 guifg=bg +highlight Error term=reverse ctermfg=15 ctermbg=12 guifg=White guibg=Red +highlight Todo term=standout ctermfg=0 ctermbg=14 guifg=Blue guibg=Yellow +highlight DebugBreak ctermfg=15 ctermbg=4 guifg=white guibg=darkred +highlight DebugStop ctermfg=15 ctermbg=10 guifg=white guibg=lightgreen diff --git a/.vim/colors/print_bw.vim b/.vim/colors/print_bw.vim new file mode 100644 index 0000000..4be35f4 --- /dev/null +++ b/.vim/colors/print_bw.vim @@ -0,0 +1,65 @@ +" Vim color file +" Maintainer: Mike Williams <mrw@eandem.co.uk> +" Last Change: 2nd June 2003 +" Version: 1.1 + +" Remove all existing highlighting. +set background=light + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "print_bw" + +highlight Normal cterm=NONE ctermfg=black ctermbg=white gui=NONE guifg=black guibg=white +highlight NonText ctermfg=black ctermbg=white guifg=black guibg=white +highlight LineNr cterm=italic ctermfg=black ctermbg=white gui=italic guifg=black guibg=white + +" Syntax highlighting scheme +highlight Comment cterm=italic ctermfg=black ctermbg=white gui=italic guifg=black guibg=white + +highlight Constant ctermfg=black ctermbg=white guifg=black guibg=white +highlight String ctermfg=black ctermbg=white guifg=black guibg=white +highlight Character ctermfg=black ctermbg=white guifg=black guibg=white +highlight Number ctermfg=black ctermbg=white guifg=black guibg=white +" Boolean defaults to Constant +highlight Float ctermfg=black ctermbg=white guifg=black guibg=white + +highlight Identifier ctermfg=black ctermbg=white guifg=black guibg=white +highlight Function ctermfg=black ctermbg=white guifg=black guibg=white + +highlight Statement ctermfg=black ctermbg=white guifg=black guibg=white +highlight Conditional ctermfg=black ctermbg=white guifg=black guibg=white +highlight Repeat ctermfg=black ctermbg=white guifg=black guibg=white +highlight Label ctermfg=black ctermbg=white guifg=black guibg=white +highlight Operator ctermfg=black ctermbg=white guifg=black guibg=white +" Keyword defaults to Statement +" Exception defaults to Statement + +highlight PreProc cterm=bold ctermfg=black ctermbg=white gui=bold guifg=black guibg=white +" Include defaults to PreProc +" Define defaults to PreProc +" Macro defaults to PreProc +" PreCondit defaults to PreProc + +highlight Type cterm=bold ctermfg=black ctermbg=white gui=bold guifg=black guibg=white +" StorageClass defaults to Type +" Structure defaults to Type +" Typedef defaults to Type + +highlight Special cterm=italic ctermfg=black ctermbg=white gui=italic guifg=black guibg=white +" SpecialChar defaults to Special +" Tag defaults to Special +" Delimiter defaults to Special +highlight SpecialComment cterm=italic ctermfg=black ctermbg=white gui=italic guifg=black guibg=white +" Debug defaults to Special + +highlight Todo cterm=italic,bold ctermfg=black ctermbg=white gui=italic,bold guifg=black guibg=white +" Ideally, the bg color would be white but VIM cannot print white on black! +highlight Error cterm=bold,reverse ctermfg=black ctermbg=grey gui=bold,reverse guifg=black guibg=grey + +" vim:et:ff=unix:tw=0:ts=4:sw=4 +" EOF print_bw.vim diff --git a/.vim/colors/ps_color.vim b/.vim/colors/ps_color.vim new file mode 100644 index 0000000..909abcf --- /dev/null +++ b/.vim/colors/ps_color.vim @@ -0,0 +1,400 @@ +" Vim colour file --- PSC +" Maintainer: Pan Shizhu <dicpan@hotmail.com> +" Last Change: 17 November 2004 +" Version: 2.82 +" URL: http://vim.sourceforge.net/scripts/script.php?script_id=760 +" +" Please prepend [VIM] in the title when writing e-mail to me, or it will +" be automatically treated as spam and removed. +" +" See the help document for all details, the help document will be +" installed after the script has been sourced once, do not open the +" script when you source it for the first time. +" + +" Initializations: {{{1 +" +function! s:init_option(var, value) + if !exists("g:psc_".a:var) + execute "let s:".a:var." = ".a:value + else + let s:{a:var} = g:psc_{a:var} + endif +endfunction +command! -nargs=+ InitOpt call s:init_option(<f-args>) + +function! s:multi_hi(setting, ...) + let l:idx = a:0 + while l:idx > 0 + let l:hlgroup = a:{l:idx} + execute "highlight ".l:hlgroup." ".a:setting + let l:idx = l:idx - 1 + endwhile +endfunction +command! -nargs=+ MultiHi call s:multi_hi(<f-args>) + +InitOpt style 'cool' +InitOpt inversed_todo 0 +InitOpt use_default_for_cterm 0 +InitOpt statement_different_from_type 0 +if s:style == 'warm' + InitOpt fontface 'mixed' +else + InitOpt fontface 'plain' +endif + +if !has("gui_running") + call s:init_option("cterm_style", "'".s:style."'") + + " Forces 'cool' style when gui is not present Since the 'warm' style for + " terminal isn't available now, and probably never will be. + if s:cterm_style=='warm' | let s:cterm_style = 'cool' + endif + if s:use_default_for_cterm==1 | let s:cterm_style = 'default' + elseif s:use_default_for_cterm==2 | let s:cterm_style = 'defdark' + endif +endif + + +InitOpt other_style 0 + +if has("gui_running") + if s:style=='warm' || s:style=='default' + set background=light + elseif s:style=='cool' || s:style=='defdark' + set background=dark + else | let s:other_style = 1 + endif +else + if s:cterm_style=='cool' || s:cterm_style=='defdark' + set background=dark + elseif s:cterm_style=='default' + set background=light + else | let s:other_style = 1 + endif +endif + + +highlight clear + +if exists("syntax_on") + syntax reset +endif + +let s:color_name = expand("<sfile>:t:r") + +if s:other_style==0 | let g:colors_name = s:color_name + " Go from console version to gui, the color scheme should be sourced again + execute "autocmd TermChanged * if g:colors_name == '".s:color_name."' | " + \."colo ".s:color_name." | endif" +else + execute "runtime colors/".s:style.".vim" +endif + +" Command to go different schemes easier. +execute "command! -nargs=1 Colo if '".s:color_name."'!=\"<args>\" | " + \'let g:psc_style = "<args>"| endif | colo '.s:color_name + +" Give control to 'reloaded' scheme if possible +if s:style == 'reloaded' + finish +endif + +" }}}1 + +" Relevant Help: +" :h highlight-groups +" :h psc-cterm-color-table +" :ru syntax/hitest.vim +" +" Hardcoded Colors Comment: +" #aabbcc = Red aa, Green bb, Blue cc +" we must use hard-coded colours to get more 'tender' colours +" + + +" GUI: +" +" I don't want to abuse folding, but here folding is used to avoid confusion. +if s:style=='warm' + " Warm style for gui here {{{2 + " LIGHT COLOR DEFINE START + + highlight Normal guifg=#000000 guibg=#e0e0e0 + highlight Search guifg=#902000 guibg=#f8f8f8 + highlight Visual guifg=fg guibg=#a6caf0 + highlight Cursor guifg=#f0f0f0 guibg=#008000 + " The idea of CursorIM is pretty good, however, the feature is still buggy + " in the current version (Vim 6.3). + " The following line will be kept commented until the bug fixed. + " + " highlight CursorIM guifg=#f0f0f0 guibg=#800080 + highlight Special guifg=#907000 guibg=bg + highlight Comment guifg=#505800 guibg=bg + highlight Number guifg=#907000 guibg=bg + highlight Constant guifg=#007068 guibg=bg + highlight StatusLine guifg=fg guibg=#a6caf0 + highlight LineNr guifg=#686868 guibg=bg + highlight Question guifg=fg guibg=#d0d090 + highlight PreProc guifg=#009030 guibg=bg + if s:statement_different_from_type==1 + highlight Statement guifg=#4020a0 guibg=bg + else + highlight Statement guifg=#2060a8 guibg=bg + endif + highlight Type guifg=#0850a0 guibg=bg + if s:inversed_todo==1 + highlight Todo guifg=#e0e090 guibg=#000080 + else + highlight Todo guifg=#800000 guibg=#e0e090 + endif + " NOTE THIS IS IN THE WARM SECTION + highlight Error guifg=#c03000 guibg=bg + highlight Identifier guifg=#a030a0 guibg=bg + highlight ModeMsg guifg=fg guibg=#b0b0e0 + highlight VisualNOS guifg=fg guibg=#b0b0e0 + highlight SpecialKey guifg=#1050a0 guibg=bg + highlight NonText guifg=#002090 guibg=#d0d0d0 + highlight Directory guifg=#a030a0 guibg=bg + highlight ErrorMsg guifg=fg guibg=#f0b090 + highlight MoreMsg guifg=#489000 guibg=bg + highlight Title guifg=#a030a0 guibg=bg + highlight WarningMsg guifg=#b02000 guibg=bg + highlight WildMenu guifg=fg guibg=#d0d090 + highlight Folded guifg=fg guibg=#b0e0b0 + highlight FoldColumn guifg=fg guibg=#90e090 + highlight DiffAdd guifg=fg guibg=#b0b0e0 + highlight DiffChange guifg=fg guibg=#e0b0e0 + highlight DiffDelete guifg=#002090 guibg=#d0d0d0 + highlight DiffText guifg=fg guibg=#c0e080 + highlight SignColumn guifg=fg guibg=#90e090 + highlight IncSearch guifg=#f0f0f0 guibg=#806060 + highlight StatusLineNC guifg=fg guibg=#c0c0c0 + highlight VertSplit guifg=fg guibg=#c0c0c0 + highlight Underlined guifg=#6a5acd guibg=bg gui=underline + highlight Ignore guifg=bg guibg=bg + + " LIGHT COLOR DEFINE END + " }}}2 +elseif s:style=='cool' + " Cool style for gui here {{{2 + " DARK COLOR DEFINE START + + highlight Normal guifg=#d0d0d0 guibg=#202020 + highlight Comment guifg=#d0d090 guibg=bg + highlight Constant guifg=#80c0e0 guibg=bg + highlight Number guifg=#e0c060 guibg=bg + highlight Identifier guifg=#f0c0f0 guibg=bg + if s:statement_different_from_type==1 + highlight Statement guifg=#98a8f0 guibg=bg + else + highlight Statement guifg=#c0d8f8 guibg=bg + endif + highlight PreProc guifg=#60f080 guibg=bg + highlight Type guifg=#b0d0f0 guibg=bg + highlight Special guifg=#e0c060 guibg=bg + highlight Error guifg=#f08060 guibg=bg + if s:inversed_todo==1 + highlight Todo guifg=#d0d090 guibg=#000080 + else + highlight Todo guifg=#800000 guibg=#d0d090 + endif + highlight Search guifg=#e0e0e0 guibg=#800000 + highlight Visual guifg=#000000 guibg=#a6caf0 + highlight Cursor guifg=#000000 guibg=#00f000 + " NOTE THIS IS IN THE COOL SECTION + " highlight CursorIM guifg=#000000 guibg=#f000f0 + highlight StatusLine guifg=#000000 guibg=#a6caf0 + highlight LineNr guifg=#b0b0b0 guibg=bg + highlight Question guifg=#000000 guibg=#d0d090 + highlight ModeMsg guifg=fg guibg=#000080 + highlight VisualNOS guifg=fg guibg=#000080 + highlight SpecialKey guifg=#b0d0f0 guibg=bg + highlight NonText guifg=#6080f0 guibg=#101010 + highlight Directory guifg=#80c0e0 guibg=bg + highlight ErrorMsg guifg=#d0d090 guibg=#800000 + highlight MoreMsg guifg=#c0e080 guibg=bg + highlight Title guifg=#f0c0f0 guibg=bg + highlight WarningMsg guifg=#f08060 guibg=bg + highlight WildMenu guifg=#000000 guibg=#d0d090 + highlight Folded guifg=#d0d0d0 guibg=#004000 + highlight FoldColumn guifg=#e0e0e0 guibg=#008000 + highlight DiffAdd guifg=fg guibg=#000080 + highlight DiffChange guifg=fg guibg=#800080 + highlight DiffDelete guifg=#6080f0 guibg=#202020 + highlight DiffText guifg=#000000 guibg=#c0e080 + highlight SignColumn guifg=#e0e0e0 guibg=#008000 + highlight IncSearch guifg=#000000 guibg=#d0d0d0 + highlight StatusLineNC guifg=#000000 guibg=#c0c0c0 + highlight VertSplit guifg=#000000 guibg=#c0c0c0 + highlight Underlined guifg=#80a0ff guibg=bg gui=underline + highlight Ignore guifg=#000000 guibg=bg + + " DARK COLOR DEFINE END + " }}}2 +elseif s:style=='defdark' + highlight Normal guifg=#f0f0f0 guibg=#000000 +endif + +" Take NT gui for example, If you want to use a console font such as +" Lucida_Console with font size larger than 14, the font looks already thick, +" and the bold font for that will be too thick, you may not want it be bolded. +" The following code does this. +" +" All of the bold font may be disabled, since continuously switching between +" bold and plain font hurts consistency and will inevitably fatigue your eye! + +" Maximum 20 parameters for vim script function +" +MultiHi gui=NONE ModeMsg Search Cursor Special Comment Constant Number LineNr Question PreProc Statement Type Todo Error Identifier Normal + +MultiHi gui=NONE VisualNOS SpecialKey NonText Directory ErrorMsg MoreMsg Title WarningMsg WildMenu Folded FoldColumn DiffAdd DiffChange DiffDelete DiffText SignColumn + +" For reversed stuffs +MultiHi gui=NONE IncSearch StatusLine StatusLineNC VertSplit Visual + +if s:style=="cool" || s:style=="warm" + if s:fontface=="mixed" + MultiHi gui=bold IncSearch StatusLine StatusLineNC VertSplit Visual + endif +else + if s:fontface=="mixed" + hi StatusLine gui=bold,reverse + else + hi StatusLine gui=reverse + endif + MultiHi gui=reverse IncSearch StatusLineNC VertSplit Visual +endif + +" Enable the bold style +if s:fontface=="mixed" + MultiHi gui=bold Question DiffText Statement Type MoreMsg ModeMsg NonText Title VisualNOS DiffDelete +endif + + + + +" Color Term: + +" It's not quite possible to support 'cool' and 'warm' simultaneously, since +" we cannot expect a terminal to have more than 16 color names. +" + +" I assume Vim will never go to cterm mode when has("gui_running") returns 1, +" Please enlighten me if I am wrong. +" +if !has('gui_running') + " cterm settings {{{1 + if s:cterm_style=='cool' + + highlight Normal ctermfg=LightGrey ctermbg=Black + highlight Search ctermfg=White ctermbg=DarkRed + highlight Visual ctermfg=Black ctermbg=DarkCyan + highlight Cursor ctermfg=Black ctermbg=Green + highlight Special ctermfg=Yellow ctermbg=Black + highlight Comment ctermfg=DarkYellow ctermbg=Black + highlight Constant ctermfg=Blue ctermbg=Black + highlight Number ctermfg=Yellow ctermbg=Black + highlight StatusLine ctermfg=Black ctermbg=DarkCyan + highlight LineNr ctermfg=DarkGrey ctermbg=Black + highlight Question ctermfg=Black ctermbg=DarkYellow + highlight PreProc ctermfg=Green ctermbg=Black + highlight Statement ctermfg=Cyan ctermbg=Black + highlight Type ctermfg=Cyan ctermbg=Black + if s:inversed_todo==0 + highlight Todo ctermfg=DarkRed ctermbg=DarkYellow + else + highlight Todo ctermfg=DarkYellow ctermbg=DarkBlue + endif + highlight Error ctermfg=Red ctermbg=Black + highlight Identifier ctermfg=Magenta ctermbg=Black + highlight Folded ctermfg=White ctermbg=DarkGreen + highlight ModeMsg ctermfg=Grey ctermbg=DarkBlue + highlight VisualNOS ctermfg=Grey ctermbg=DarkBlue + highlight SpecialKey ctermfg=Cyan ctermbg=Black + highlight NonText ctermfg=Blue ctermbg=Black + highlight Directory ctermfg=Blue ctermbg=Black + highlight ErrorMsg ctermfg=DarkYellow ctermbg=DarkRed + highlight MoreMsg ctermfg=Green ctermbg=Black + highlight Title ctermfg=Magenta ctermbg=Black + highlight WarningMsg ctermfg=Red ctermbg=Black + highlight WildMenu ctermfg=Black ctermbg=DarkYellow + highlight FoldColumn ctermfg=White ctermbg=DarkGreen + highlight SignColumn ctermfg=White ctermbg=DarkGreen + highlight DiffText ctermfg=Black ctermbg=DarkYellow + highlight DiffDelete ctermfg=Blue ctermbg=Black + + if &t_Co==8 + " 8 colour terminal support, this assumes 16 colour is available through + " setting the 'bold' attribute, will get bright foreground colour. + " However, the bright background color is not available for 8-color terms. + " + " You can manually set t_Co=16 in your .vimrc to see if your terminal + " supports 16 colours, + MultiHi cterm=none DiffText Visual Cursor Comment Todo StatusLine Question DiffChange ModeMsg VisualNOS ErrorMsg WildMenu DiffAdd Folded DiffDelete Normal + MultiHi cterm=bold Search Special Constant Number LineNr PreProc Statement Type Error Identifier SpecialKey NonText MoreMsg Title WarningMsg FoldColumn SignColumn Directory DiffDelete + + else + " Background > 7 is only available with 16 or more colors + + " Only use the s:fontface option when there is 16-colour(or more) + " terminal support + + MultiHi cterm=none WarningMsg Search Visual Cursor Special Comment Constant Number LineNr PreProc Todo Error Identifier Folded SpecialKey Directory ErrorMsg Normal + MultiHi cterm=none WildMenu FoldColumn SignColumn DiffAdd DiffChange Question StatusLine DiffText + MultiHi cterm=reverse IncSearch StatusLineNC VertSplit + + " Well, well, bold font with color 0-7 is not possible. + " So, the Question, StatusLine, DiffText cannot act as expected. + + call s:multi_hi("cterm=".((s:fontface=="plain") ? "none" : "bold"), "Statement", "Type", "MoreMsg", "ModeMsg", "NonText", "Title", "VisualNOS", "DiffDelete") + + endif + + elseif s:cterm_style=='defdark' + highlight Normal ctermfg=LightGrey ctermbg=Black + endif + " }}}1 +endif + + +" Term: +" For console with only 4 colours (term, not cterm), we'll use the default. +" ... +" The default colorscheme is good enough for terms with no more than 4 colours +" + + +" Links: +" +if (s:style=='cool') || (s:style == 'warm') + " COLOR LINKS DEFINE START + + highlight link String Constant + " Character must be different from strings because in many languages + " (especially C, C++) a 'char' variable is scalar while 'string' is pointer, + " mistaken a 'char' for a 'string' will cause disaster! + highlight link Character Number + highlight link SpecialChar LineNr + highlight link Tag Identifier + " The following are not standard hi links, + " these are used by DrChip + highlight link Warning MoreMsg + highlight link Notice Constant + " these are used by Calendar + highlight link CalToday PreProc + " these are used by TagList + highlight link MyTagListTagName IncSearch + highlight link MyTagListTagScope Constant + + " COLOR LINKS DEFINE END +endif + + +" Clean: +" +delcommand InitOpt +delcommand MultiHi + +" vim:et:nosta:sw=2:ts=8: +" vim600:fdm=marker:fdl=1: diff --git a/.vim/colors/putty.vim b/.vim/colors/putty.vim new file mode 100644 index 0000000..4c86ad5 --- /dev/null +++ b/.vim/colors/putty.vim @@ -0,0 +1,82 @@ +" Vim color file +" Maintainer: Prachya Boonkwan <kaamanita@hotmail.com> +" Last Change: April 29, 2003 +" Licence: Public Domain + +" This package offers a eye-catching color scheme that resembles the +" default color scheme of Putty telnet terminal. + +" First remove all existing highlighting. +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "putty" + +hi Normal guifg=Grey guibg=Black + +hi ErrorMsg guibg=Red guifg=White +hi IncSearch gui=reverse +hi ModeMsg gui=bold +hi StatusLine gui=reverse,bold +hi StatusLineNC gui=reverse +hi VertSplit gui=reverse +hi Visual gui=reverse guifg=Grey guibg=fg +hi VisualNOS gui=underline,bold +hi DiffText gui=bold guibg=Red +hi Cursor guibg=Green guifg=NONE +hi lCursor guibg=Cyan guifg=NONE +hi Directory guifg=Blue +hi LineNr guifg=#BBBB00 +hi MoreMsg gui=bold guifg=SeaGreen +hi NonText gui=bold guifg=Blue guibg=Black +hi Question gui=bold guifg=SeaGreen +hi Search guibg=#BBBB00 guifg=NONE +hi SpecialKey guifg=Blue +hi Title gui=bold guifg=Magenta +hi WarningMsg guifg=Red +hi WildMenu guibg=Cyan guifg=Black +hi Folded guibg=White guifg=DarkBlue +hi FoldColumn guibg=Grey guifg=DarkBlue +hi DiffAdd guibg=LightBlue +hi DiffChange guibg=LightMagenta +hi DiffDelete gui=bold guifg=Blue guibg=LightCyan + +hi Comment guifg=Blue guibg=Black +hi Constant guifg=#BB0000 guibg=Black +hi PreProc guifg=#BB00BB guibg=Black +hi Statement gui=NONE guifg=#BBBB00 guibg=Black +hi Special guifg=#BB00BB guibg=Black +hi Ignore guifg=Grey +hi Identifier guifg=#00BBBB guibg=Black +hi Type guifg=#00BB00 guibg=Black + +hi link IncSearch Visual +hi link String Constant +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Function Identifier +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special + +" vim: sw=2 diff --git a/.vim/colors/python.vim b/.vim/colors/python.vim new file mode 100644 index 0000000..6f4a765 --- /dev/null +++ b/.vim/colors/python.vim @@ -0,0 +1,104 @@ +""" Init +set background=light +highlight clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "python" + + +""""""""\ Colors \"""""""" + + +"""" GUI Colors + +highlight Cursor gui=None guibg=Palegreen3 guifg=White +highlight CursorIM gui=bold guifg=white guibg=PaleTurquoise3 +highlight Directory guifg=LightSeaGreen guibg=bg +highlight DiffAdd gui=None guifg=fg guibg=DarkCyan +highlight DiffChange gui=None guifg=fg guibg=Green4 +highlight DiffDelete gui=None guifg=fg guibg=black +highlight DiffText gui=bold guifg=fg guibg=bg +highlight ErrorMsg guifg=LightYellow guibg=FireBrick +" previously 'FillColumn': +"highlight FillColumn gui=NONE guifg=black guibg=grey60 +highlight VertSplit gui=NONE guifg=black guibg=#c8d6b3 +highlight Folded gui=bold guibg=#305060 guifg=#b0d0e0 +highlight FoldColumn gui=bold guibg=#395602 guifg=#6f9b1f +highlight IncSearch gui=reverse guifg=fg guibg=bg +highlight LineNr gui=bold guibg=#395602 guifg=#6f9b1f +highlight ModeMsg guibg=DarkGreen guifg=Green +highlight MoreMsg gui=bold guifg=SeaGreen4 guibg=bg +if version < 600 + " same as SpecialKey + highlight NonText guibg=#123A4A guifg=#3D5D6D +else + " Bottom fill (use e.g. same as LineNr) + highlight NonText gui=None guibg=bg guifg=fg +endif +highlight Normal gui=None guibg=#f6ffe5 guifg=black +highlight Question gui=bold guifg=SeaGreen2 guibg=bg +highlight Search gui=NONE guibg=LightSkyBlue4 guifg=NONE +highlight SpecialKey guibg=#103040 guifg=#324262 +highlight StatusLine gui=bold guibg=#c8d6b3 guifg=black +highlight StatusLineNC gui=NONE guibg=#c8d6b3 guifg=black +highlight Title gui=bold guifg=MediumOrchid1 guibg=bg +highlight Visual gui=reverse guibg=WHITE guifg=SeaGreen +highlight VisualNOS gui=bold,underline guifg=fg guibg=bg +highlight WarningMsg gui=bold guifg=FireBrick1 guibg=bg +highlight WildMenu gui=bold guibg=Chartreuse guifg=Black + + +"""" Syntax Colors + +"highlight Comment gui=reverse guifg=#507080 +highlight Comment gui=italic guifg=#507080 + +highlight Constant guifg=black guibg=bg +hi String gui=None guifg=#ccab3f guibg=bg + "hi Character gui=None guifg=#969248 guibg=bg + highlight Number gui=None guifg=#969248 guibg=bg + highlight Boolean gui=bold guifg=#969248 guibg=bg + "hi Float gui=None guifg=#969248 guibg=bg + +highlight Identifier guifg=#6f9b1f +hi Function gui=None guifg=#775d05 guibg=bg + +highlight Statement gui=NONE guifg=#669907 + highlight Conditional gui=None guifg=Green guibg=bg + highlight Repeat gui=None guifg=SeaGreen2 guibg=bg + "hi Label gui=None guifg=Green guibg=bg + highlight Operator gui=None guifg=Chartreuse guibg=bg + highlight Keyword gui=bold guifg=#6f9b1f guibg=bg + highlight Exception gui=bold guifg=Green guibg=bg + +highlight PreProc guifg=SkyBlue1 +hi Include gui=None guifg=#725c05 guibg=bg +hi Define gui=None guifg=#725c05 guibg=bg +hi Macro gui=None guifg=#486610 guibg=bg +hi PreCondit gui=None guifg=LightSkyBlue2 guibg=bg + +highlight Type gui=NONE guifg=#ccab3f +hi StorageClass gui=None guifg=#ccab3f guibg=bg +hi Structure gui=None guifg=#ccab3f guibg=bg +hi Typedef gui=None guifg=#ccab3f guibg=bg + +highlight Special gui=bold guifg=#ddb100 + "hi SpecialChar gui=bold guifg=White guibg=bg + "hi Tag gui=bold guifg=White guibg=bg + "hi Delimiter gui=bold guifg=White guibg=bg + "hi SpecialComment gui=bold guifg=White guibg=bg + "hi Debug gui=bold guifg=White guibg=bg + +highlight Underlined gui=underline guifg=honeydew4 guibg=bg + +highlight Ignore guifg=#204050 + +highlight Error guifg=LightYellow guibg=FireBrick + +highlight Todo guifg=#969248 guibg=#507080 + +""" OLD COLORS + + + diff --git a/.vim/colors/redblack.vim b/.vim/colors/redblack.vim new file mode 100644 index 0000000..793af52 --- /dev/null +++ b/.vim/colors/redblack.vim @@ -0,0 +1,62 @@ +set background=dark +hi clear + +hi Normal ctermbg=black guibg=black ctermfg=grey guifg=grey +hi Boolean ctermbg=black guibg=black ctermfg=grey guifg=grey +hi Character ctermbg=black guibg=black ctermfg=red guifg=red +hi Comment ctermbg=black guibg=black ctermfg=darkgrey guifg=#606060 cterm=bold +hi Condtional ctermbg=black guibg=black ctermfg=red guifg=red +hi Constant ctermbg=black guibg=black ctermfg=red guifg=red +hi Cursor ctermbg=black guibg=white ctermfg=grey guifg=grey +hi Debug ctermbg=black guibg=black ctermfg=grey guifg=grey +hi Define ctermbg=black guibg=black ctermfg=white guifg=white +hi Delimiter ctermbg=black guibg=black ctermfg=grey guifg=grey +hi DiffAdd ctermbg=NONE guibg=NONE ctermfg=NONE guifg=NONE cterm=NONE gui=NONE +hi DiffChange ctermbg=white guibg=white ctermfg=darkgrey guifg=#606060 +hi DiffDelete ctermbg=black guibg=black ctermfg=darkgrey guifg=#606060 cterm=bold +hi DiffText ctermbg=red guibg=red ctermfg=white guifg=white +hi Directory ctermbg=black guibg=black ctermfg=white guifg=white +hi Error ctermbg=red guibg=red ctermfg=white guifg=white +hi ErrorMsg ctermbg=red guibg=red ctermfg=white guifg=white +hi Exception ctermbg=black guibg=black ctermfg=grey guifg=grey +hi Float ctermbg=black guibg=black ctermfg=red guifg=red cterm=NONE gui=NONE +hi FoldColumn ctermbg=black guibg=black ctermfg=grey guifg=grey +hi Folded ctermbg=black guibg=black ctermfg=red guifg=red +hi Function ctermbg=black guibg=black ctermfg=white guifg=white +hi Identifier ctermbg=black guibg=black ctermfg=grey guifg=grey +hi Include ctermbg=black guibg=black ctermfg=white guifg=white +hi IncSearch ctermbg=green guibg=green ctermfg=darkgrey guifg=#606060 +hi Keyword ctermbg=black guibg=black ctermfg=red guifg=red +hi Label ctermbg=black guibg=black ctermfg=white guifg=white +hi LineNr ctermbg=black guibg=black ctermfg=darkgrey guifg=#606060 cterm=bold +hi Macro ctermbg=black guibg=black ctermfg=grey guifg=grey +hi ModeMsg ctermbg=black guibg=black ctermfg=grey guifg=grey +hi MoreMsg ctermbg=black guibg=black ctermfg=grey guifg=grey +hi NonText ctermbg=black guibg=black ctermfg=darkgrey guifg=#606060 cterm=bold +hi Number ctermbg=black guibg=black ctermfg=red guifg=red cterm=NONE gui=NONE +hi Operator ctermbg=black guibg=black ctermfg=white guifg=white +hi PreCondit ctermbg=black guibg=black ctermfg=white guifg=white +hi PreProc ctermbg=black guibg=black ctermfg=white guifg=white +hi Question ctermbg=black guibg=black ctermfg=grey guifg=grey +hi Repeat ctermbg=black guibg=black ctermfg=white guifg=white +hi Search ctermbg=black guibg=black ctermfg=green guifg=green +hi SpecialChar ctermbg=black guibg=black ctermfg=white guifg=white +hi SpecialComment ctermbg=black guibg=black ctermfg=white guifg=white +hi Special ctermbg=black guibg=black ctermfg=white guifg=white +hi SpecialKey ctermbg=white guibg=white ctermfg=black guifg=black +hi Statement ctermbg=black guibg=black ctermfg=white guifg=white +hi StatusLine ctermbg=white guibg=white ctermfg=red guifg=red +hi StatusLineNC ctermbg=black guibg=black ctermfg=grey guifg=grey +hi StorageClass ctermbg=black guibg=black ctermfg=white guifg=white +hi String ctermbg=black guibg=black ctermfg=grey guifg=grey +hi Structure ctermbg=black guibg=black ctermfg=white guifg=white +hi Tag ctermbg=black guibg=black ctermfg=red guifg=red +hi Title ctermbg=black guibg=black ctermfg=grey guifg=grey +hi Todo ctermbg=black guibg=black ctermfg=white guifg=white +hi Typedef ctermbg=black guibg=black ctermfg=white guifg=white +hi Type ctermbg=black guibg=black ctermfg=white guifg=white +hi VertSplit ctermbg=black guibg=black ctermfg=grey guifg=grey +hi Visual ctermbg=black guibg=black ctermfg=grey guifg=grey +hi VisualNOS ctermbg=black guibg=black ctermfg=grey guifg=grey +hi WarningMsg ctermbg=black guibg=black ctermfg=red guifg=red +hi WildMenu ctermbg=white guibg=white ctermfg=darkgrey guifg=#606060 diff --git a/.vim/colors/relaxedgreen.vim b/.vim/colors/relaxedgreen.vim new file mode 100644 index 0000000..6cc21df --- /dev/null +++ b/.vim/colors/relaxedgreen.vim @@ -0,0 +1,114 @@ +" ---------------------------------------------------------------------------------------------------------------------------------- +" Filename: relaxedgreen.vim +" Last Modified: 14 Aug 2006 02:24:33 PM by Dave V +" Maintainer: Dave Vehrs (dvehrs at gmail.com) +" Copyright: 2002,2003,2004,2005,2006 Dave Vehrs +" This script 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. +" Description: Vim colorscheme file. +" Install: Put this file in the users colors directory (~/.vim/colors) or +" in the shared colors directory (/usr/shared/vim/vim<version>/colors/), +" then load it with :colorscheme relaxedgreen +" +" +" ---------------------------------------------------------------------------------------------------------------------------------- +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "relaxedgreen" +highlight Cursor term=reverse ctermfg=green ctermbg=blue guifg=#000000 guibg=#559955 +highlight CursorIM term=reverse ctermfg=black ctermbg=darkgreen guifg=#000000 guibg=#336633 +highlight CursorColumn term=none ctermbg=darkblue guibg=#333366 +highlight CursorColumn term=none ctermbg=darkblue guibg=#333366 +highlight Comment term=italic ctermfg=darkcyan ctermbg=black guifg=#00a594 +highlight Constant term=underline ctermfg=blue guifg=#0099dd +highlight Debug term=bold ctermfg=red ctermbg=black guifg=#dc0000 guibg=#000000 +highlight DiffAdd term=reverse ctermfg=black ctermbg=cyan guifg=#000000 guibg=#007200 +highlight DiffChange term=underline cterm=reverse ctermfg=darkgreen ctermbg=black guifg=#000000 guibg=#006700 +highlight DiffDelete term=standout ctermfg=black ctermbg=cyan guifg=#000000 guibg=#007200 +highlight DiffText term=bold ctermfg=green ctermbg=black guifg=#00ac00 guibg=#000000 +highlight Directory term=underline ctermfg=green ctermbg=black guifg=#336633 guibg=#000000 +highlight Error term=reverse,bold ctermfg=black ctermbg=red guifg=#000000 guibg=#dc0000 +highlight ErrorMsg term=reverse,bold ctermfg=white ctermbg=red guifg=#ffffff guibg=#dc0000 +highlight Folded ctermfg=darkgreen ctermbg=black guifg=#20de20 guibg=#000000 +highlight FoldColumn ctermfg=darkgreen ctermbg=black guifg=#20de20 guibg=#000000 +highlight Function term=standout ctermfg=darkgreen guifg=#22bb22 +highlight Identifier term=underline ctermfg=darkcyan gui=underline guifg=#008800 +highlight Ignore ctermfg=lightgreen guifg=#33bb33 +highlight IncSearch term=reverse ctermfg=black ctermbg=darkgreen guifg=#000000 guibg=#336633 +highlight LineNr term=bold ctermfg=green guifg=#00ff00 +highlight MatchParen term=bold ctermfg=black ctermbg=green guibg=#00ff00 guifg=#000000 +highlight ModeMsg term=bold cterm=bold gui=bold +highlight MoreMsg term=bold cterm=bold gui=bold +highlight NonText ctermfg=darkcyan guifg=#999999 +highlight Normal ctermfg=gray ctermbg=black guifg=#aaaaaa guibg=#000000 +highlight Pmenu term=reverse ctermfg=black ctermbg=green guifg=#000000 guibg=#337733 +highlight PmenuSel term=bold ctermfg=black ctermbg=gray guifg=#000000 guibg=#999999 +highlight PmenuSbar term=reverse ctermfg=black ctermbg=green guifg=#000000 guibg=#337733 +highlight PmenuThumb term=reverse ctermfg=gray ctermbg=black guifg=#999999 guibg=#000000 +highlight PreProc term=standout ctermfg=darkgreen guifg=#22bb22 +highlight Question term=standout ctermfg=red guifg=#ff0000 +highlight Search term=reverse ctermfg=black ctermbg=darkgreen guifg=#000000 guibg=#228822 +highlight SignColumn ctermfg=darkgreen guifg=#20de20 guibg=#000000 +highlight Special term=bold ctermfg=green guifg=#00ff00 +highlight SpecialKey term=bold ctermfg=green guifg=#00ff00 +highlight SpellBad term=reverse cterm=underline ctermfg=red ctermbg=black gui=undercurl guisp=#ff0000 +highlight SpellCap term=reverse cterm=underline ctermfg=yellow ctermbg=black gui=undercurl guisp=#00ffff +highlight SpellLocal term=reverse cterm=underline ctermfg=blue ctermbg=black gui=undercurl guisp=#0000ff +highlight SpellRare term=reverse cterm=underline ctermfg=darkgreen ctermbg=black gui=undercurl guisp=#00ff00 +highlight Statement term=standout ctermfg=darkred guifg=#ac0000 +highlight StatusLine term=reverse ctermfg=darkgreen ctermbg=black gui=none guibg=#228822 guifg=#000000 +highlight StatusLineNC term=reverse ctermfg=darkgreen ctermbg=blue gui=none guibg=#336633 guifg=#000000 +highlight TabLine term=reverse cterm=reverse ctermfg=black ctermbg=green guibg=#222222 guifg=#228822 +highlight TabLineFill term=reverse cterm=reverse ctermfg=green ctermbg=black guibg=#222222 guifg=#226622 +highlight TabLineSel ctermfg=black ctermbg=green guibg=#228822 guifg=#222222 +highlight Title term=reverse ctermfg=black ctermbg=green guifg=#000000 guibg=#00ff00 +highlight Todo term=reverse cterm=reverse ctermfg=darkgreen ctermbg=black guibg=#336633 guifg=#000000 +highlight Type term=standout ctermfg=green guifg=#559955 +highlight Visual term=reverse cterm=reverse ctermfg=darkgreen guifg=#000000 guibg=#336633 +highlight VisualNOS term=reverse,bold cterm=reverse ctermbg=darkgreen guifg=#000000 guibg=#228822 +highlight VertSplit term=reverse ctermfg=darkgreen guifg=#336633 +highlight User1 term=standout cterm=bold ctermbg=darkgreen ctermfg=red gui=bold guibg=#228822 guifg=#FF0000 +highlight WarningMsg term=reverse ctermfg=black ctermbg=yellow guifg=#000000 guibg=#007a7a +highlight WildMenu term=reverse ctermfg=blue ctermbg=darkgreen guifg=#000099 guibg=#00ac00 + +" ---------------------------------------------------------------------------------------------------------------------------------- +" Common groups that link to other highlight definitions. + +highlight link Constant Character +highlight link Constant Number +highlight link Constant Boolean +highlight link Constant String + +highlight link LineNr Operator + +highlight link Number Float + +highlight link PreProc Define +highlight link PreProc Include +highlight link PreProc Macro +highlight link PreProc PreCondit + +highlight link Question Repeat + +highlight link Repeat Conditional + +highlight link Special Delimiter +highlight link Special SpecialChar +highlight link Special SpecialComment +highlight link Special Tag + +highlight link Statement Exception +highlight link Statement Keyword +highlight link Statement Label + +highlight link Type StorageClass +highlight link Type Structure +highlight link Type Typedef + +" ---------------------------------------------------------------------------------------------------------------------------------- +" vim:tw=132:ts=4:sw=4 diff --git a/.vim/colors/reloaded.vim b/.vim/colors/reloaded.vim new file mode 100644 index 0000000..0c0c382 --- /dev/null +++ b/.vim/colors/reloaded.vim @@ -0,0 +1,856 @@ +" Vim colour file: The colorscheme reloaded. +" Maintainer: Pan Shizhu <dicpan@hotmail.com> +" Last Change: 16 July 2004 +" URL: http://vim.sourceforge.net/scripts/script.php?script_id=760 +" Version: 0.6 +" +" Please prepend [VIM] in the title when writing e-mail to me, or it will +" be silently discarded. +" +" Description: +" +" See :h reloaded.txt for details +" +" Release Notes: +" +" v0.6 For default users it may be slow, Added :se lz to disable refresh +" Changed some groups of the sample parameter +" Use bracketed variable instead of the exe statement +" Changed the order of most division calculation to improve accuracy +" v0.5 Initial upload at 15 July 2004. +" + + +" minimal value of all the given numbers, maximum 20 parameters +fu! s:min(num1,num2,...) + let l:min = a:num1<a:num2 ? a:num1 : a:num2 + + let l:idx = a:0 + wh l:idx > 0 + let l:var = a:{l:idx} + if l:var < l:min + let l:min = l:var + en + let l:idx = l:idx - 1 + endw + retu l:min +endf + +" same as above for maximal value +fu! s:max(num1,num2,...) + let l:max = a:num1>a:num2 ? a:num1 : a:num2 + + let l:idx = a:0 + wh l:idx > 0 + let l:var = a:{l:idx} + if l:var > l:max + let l:max = l:var + en + let l:idx = l:idx - 1 + endw + retu l:max +endf + +" guard the var to be in the range between unity and base. +" if base is omitted, treat like degrees. +fu! s:guard(var,unity,...) + if a:0 + if a:var < a:1 + retu a:1 + elsei a:var > a:unity + retu a:unity + en + retu a:var + en + if a:var < 0 + retu a:unity + (a:var % a:unity) + en + retu a:var % a:unity +endf + +" sub-function + " 8-bit integer to 2 digit hexadecimal + fu! s:to_hex(num) + retu '0123456789abcdef' [a:num/16%16] . '0123456789abcdef' [a:num%16] + endf + +" rgb to rgb color string +fu! s:rgb2colors(red,green,blue) + retu "#".s:to_hex(a:red+0).s:to_hex(a:green+0).s:to_hex(a:blue+0) +endf + +" sub-functions + fu! s:hue2rgb(v1, v2, hue) + " trim to the first period + let l:hue = s:guard(a:hue, 360) + + if l:hue < 60 + retu a:v1 + l:hue * (a:v2 - a:v1) / 60 + en + if l:hue < 180 + retu a:v2 + en + if l:hue < 240 + retu a:v1 + (240 - l:hue) * (a:v2 - a:v1) / 60 + en + retu a:v1 + endf + +" hsl to rgb color string +fu! s:hsb2colors(hue,sat,bri) + " Hue: Any integer degree (modular 360) + " Saturation: 0 to 1023/1023 + " Luminance: 0 to 1023/1023 + " RGB results = 0 to 255 + + if a:sat == 0 + let l:lum = a:bri / 4 + retu s:rgb2colors(l:lum, l:lum, l:lum) + en + + if a:bri < 512 + let l:v2 = a:bri * ( 1023 + a:sat ) + el + let l:v2 = ( a:bri + a:sat ) * 1023 - ( a:sat * a:bri ) + en + + let l:v1 = 2 * 1023 * a:bri - l:v2 + + let l:red = s:hue2rgb(l:v1, l:v2, a:hue + 120) / 4092 + let l:green = s:hue2rgb(l:v1, l:v2, a:hue) / 4092 + let l:blue = s:hue2rgb(l:v1, l:v2, a:hue - 120) / 4092 + + retu s:rgb2colors(l:red, l:green, l:blue) + +endf + +" rgb color number to s:rgb +fu! s:color2rgb(color) + let s:red = a:color / 0x10000 + let s:green = (a:color / 0x100) % 0x100 + let s:blue = a:color % 0x100 +endf + +" rgb to s:hsl +fu! s:rgb2hsb(red,green,blue) + + let l:red = a:red * 1023 / 255 + let l:green = a:green * 1023 / 255 + let l:blue = a:blue * 1023 / 255 + + let l:min = s:min(l:red, l:green, l:blue) + let l:max = s:max(l:red, l:green, l:blue) + let l:delta = l:max - l:min + + let s:bri = (l:max + l:min) / 2 + + if l:delta == 0 + let s:hue = 180 " When sat = 0, hue default to 180 + let s:sat = 0 + el + if s:bri < 512 + let s:sat = l:delta * 1023 / (l:max + l:min) + el + let s:sat = l:delta * 1023 / (2*1023 - l:max - l:min) + en + + let l:del_r = ( (l:max-l:red) + (l:delta*3) ) * 60 / l:delta + let l:del_g = ( (l:max-l:green) + (l:delta*3) ) * 60 / l:delta + let l:del_b = ( (l:max-l:blue) + (l:delta*3) ) * 60 / l:delta + + if l:red == l:max + let s:hue = l:del_b - l:del_g + elsei l:green == l:max + let s:hue = 120 + l:del_r - l:del_b + elsei l:blue == l:max + let s:hue = 240 + l:del_g - l:del_r + en + + let s:hue = s:guard(s:hue, 360) + en +endf + +" sub-functions + if !exists("s:loaded") | let s:hue_range = 0 | let s:hue_phase = 0 | en + fu! s:cast_hue(hue) + retu a:hue * s:hue_range / 360 - s:hue_range / 2 + s:hue_phase + endf + + if !exists("s:loaded") | let s:sat_base = 0 | let s:sat_modify = 0 | en + fu! s:cast_sat(sat) + let l:sat = a:sat * (1024 - s:sat_base) / 1024 + s:sat_base + retu l:sat * s:sat_modify / 100 + endf + + if !exists("s:loaded") | let s:bri_base = 0 | let s:bri_modify = 0 | en + fu! s:cast_bri(bri) + let l:bri = a:bri * (1024 - s:bri_base) / 1024 + s:bri_base + retu l:bri * s:bri_modify / 100 + endf + +" input hsl, do modification in HSL color space, output rgb color string +fu! s:make_hsb(hue,sat,bri) + + let l:hue = s:guard(s:cast_hue(a:hue), 360) + let l:sat = s:guard(s:cast_sat(a:sat), 1023, s:sat_base) + let l:bri = s:guard(s:cast_bri(a:bri), 1023, s:bri_base) + + if s:verbose | ec "\"\tH=".l:hue."\tS=".l:sat."\tL=".l:bri | en + retu s:hsb2colors(l:hue, l:sat, l:bri) + +endf + +" input rgb color number, transfer to HSL, then do <sid>make_hsb +fu! s:make_color(color) + cal s:color2rgb(a:color) + cal s:rgb2hsb(s:red, s:green, s:blue) + retu s:make_hsb(s:hue, s:sat, s:bri) +endf + +" input color string, transfer in HSL, output rgb color string +fu! s:parse_color(p) + if a:p[6] == "#" + let l:p = '0x'.strpart(a:p, 7, 6) + 0 + retu strpart(a:p, 0, 6).s:make_color(l:p) + elsei a:p[6] == "@" + let l:hue = s:guard(strpart(a:p, 7, 3) + 0, 360) + let l:sat = s:guard(strpart(a:p, 10, 4) + 0, 1023, 0) + let l:bri = s:guard(strpart(a:p, 14, 4) + 0, 1023, 0) + retu strpart(a:p, 0, 6).s:make_hsb(l:hue, l:sat, l:bri) + el + retu a:p + en +endf + +if !exists("s:loaded") | let s:verbose = 0 | en +fu! s:psc_hi(group, p1, p2, ...) + if a:0 == 0 + let l:p3 = "gui=NONE" + el + let l:p3 = a:1 + en + let l:p1 = s:parse_color(a:p1) + let l:p2 = s:parse_color(a:p2) + if s:verbose | ec "hi ".a:group." ".l:p1." ".l:p2." ".l:p3 | en + exe "hi ".a:group." ".l:p1." ".l:p2." ".l:p3 +endf + +fu! s:multi_hi(setting, ...) + let l:idx = a:0 + wh l:idx > 0 + let l:hlgroup = a:{l:idx} + if s:verbose | ec "hi ".l:hlgroup." ".a:setting | en + exe "hi ".l:hlgroup." ".a:setting + let l:idx = l:idx - 1 + endw +endf + +" Transfer global variable into script variable +fu! s:init_option(var, value) + if !exists("g:psc_".a:var) + exe "let s:".a:var." = ".a:value + el + let s:{a:var} = g:psc_{a:var} + en +endf + +if !exists("loaded") | let s:file = expand("<sfile>") | en + +cal s:init_option("reload_prefix", "'".fnamemodify(s:file,":p:h")."/'") + +fu! s:psc_reload(...) + + " Only do color for GUI + if !has("gui_running") | retu | en + + if a:0 > 10 + echoe "Too many parameters, ".'a:0 == '.a:0 + retu + en + + com! -nargs=+ InitOpt cal s:init_option(<f-args>) + + if a:0 >= 6 + " Hue = phase +- (range/2) + " Sat = sat * modify% then promoted from base to 1024 + " Bri = bri * modify% then promoted from base to 1024 + + let s:hue_range = a:1 + let s:sat_modify = a:2 + let s:bri_modify = a:3 + + let s:hue_phase = a:4 + let s:sat_base = a:5 + let s:bri_base = a:6 + el + InitOpt hue_range 360 + InitOpt sat_modify 100 + InitOpt bri_modify 100 + + InitOpt hue_phase 180 + InitOpt sat_base 0 + InitOpt bri_base 0 + en + + if a:0 >= 7 + let s:lightbg = a:7 + el + InitOpt style 'cool' + if s:style == 'warm' + InitOpt lightbg 1 + el + InitOpt lightbg 0 + en + en + + if a:0 >= 8 + let s:plainfont = a:8 + el + InitOpt fontface 'mixed' + if s:fontface == 'mixed' + InitOpt plainfont 0 + el + InitOpt plainfont 1 + en + en + + if a:0 >= 9 + let s:verbose = a:9 + el + InitOpt verbose 0 + en + + if a:0 == 10 + let s:reload_filename = a:10 + el + InitOpt reload_filename 'ps_color.vim' + en + + delc InitOpt + + let s:reload_filename = s:reload_prefix.s:reload_filename + + if !filereadable(s:reload_filename) + echoe "Color data file ".s:reload_filename." not found." + retu + en + + se lz + + if !s:lightbg | se bg=dark | el | se bg=light | en + + hi clear + + if exists("syntax_on") | sy reset | en + + " This is mandatory, personally I think it is a bug rather than a feature. + let g:colors_name = expand("<sfile>:t:r") + + + " GUI: + " + " Matrix Reloaded style for gui + " + let s:tempfile = '__Temp_Colors__' + + exe "sil! 1new ".s:tempfile + sil! %d + exe "sil! 0r ".s:reload_filename + if s:verbose + ec '" Reloaded color scheme from '.s:reload_filename + ec '" with param ' s:hue_range s:sat_modify s:bri_modify + \s:hue_phase s:sat_base s:bri_base s:lightbg s:plainfont + ec '" ' + en + + if !s:lightbg + sil! 1,/^\s*" DARK COLOR DEFINE START$/d + sil! /^\s*" DARK COLOR DEFINE END$/,$d + el + sil! 1,/^\s*" LIGHT COLOR DEFINE START$/d + sil! /^\s*" LIGHT COLOR DEFINE END$/,$d + en + + sil! 0 + let s:nnb = 1 + com! -nargs=+ PscHi cal s:psc_hi(<f-args>) + wh 1 + let s:nnb = nextnonblank(s:nnb) + if !s:nnb | brea | en + + let s:line = getline(s:nnb) + + let s:nnb = s:nnb + 1 + + " Skip invalid lines + if s:line !~ '^\s*hi\%[ghlight]\s*.*' | con | en + + exe substitute(s:line, '\<hi\%[ghlight]\>', 'PscHi', '') + endw + sil! q! + delc PscHi + + " Enable the bold style + com! -nargs=+ MultiHi cal s:multi_hi(<f-args>) + if !s:plainfont + MultiHi gui=bold Question StatusLine DiffText Statement Type MoreMsg ModeMsg NonText Title VisualNOS DiffDelete + endif + delc MultiHi + + " Color Term: + " Are you crazy? + + + " Term: + " Don't be silly... + + + " Links: + " Something sensible + + exe "sil! 1new ".s:tempfile + sil! %d + exe "sil! 0r ".s:reload_filename + + sil! 1,/^\s*" COLOR LINKS DEFINE START$/d + sil! /^\s*" COLOR LINKS DEFINE END$/,$d + + sil! 0 + let s:nnb = 1 + wh 1 + let s:nnb = nextnonblank(s:nnb) + if !s:nnb + brea + en + let s:line = getline(s:nnb) + + let s:nnb = s:nnb + 1 + " Skip invalid lines + if s:line !~ '^\s*hi\%[ghlight]\s*.*' | con | en + + if s:verbose | ec s:line | en + + sil! exe s:line + endw + sil! q! + +endf + +" To flag the script variables are initialized +let s:loaded = 1 + +com! -nargs=* Reload cal <SID>psc_reload(<f-args>) + +" vim:et:nosta:sw=2:ts=8: +" HelpExtractor: +" The document {{{2 +fu! s:extract_help() + se lz + let docdir = substitute(s:file, '\<colors[/\\].*$', 'doc', '') + if !isdirectory(docdir) + if has("win32") + echoe 'Please make '.docdir.' directory first' + unl docdir + return + elsei !has("mac") + exe "!mkdir ".docdir + en + en + + let curfile = fnamemodify(s:file, ":t:r") + let docfile = substitute(fnamemodify(s:file, ":r").".txt", + \'\<colors\>', 'doc', '') + exe "silent! 1new ".docfile + sil! %d + exe "silent! 0r ".fnamemodify(s:file, ":p") + sil! 1,/^" HelpExtractorDoc:$/d + norm! GVkkd + cal append(line('$'), '') + cal append(line('$'), 'v' . 'im:tw=78:ts=8:noet:ft=help:fo+=t:norl:noet:') + sil! wq! + exe "helptags ".substitute(docfile,'^\(.*doc.\).*$','\1','e') + + exe "silent! 1new ".fnamemodify(s:file, ":p") + 1 + sil! /^" HelpExtractor:$/,$g/.*/d + sil! wq! + + noh +endf + +cal s:extract_help() +fini + +" --------------------------------------------------------------------- +" Put the help after the HelpExtractorDoc label... +" HelpExtractorDoc: +*reloaded.txt* Color Tuner and Reloader Last change: 16 July 2004 + + +PERSONAL COLOUR TUNER AND RELOADER *psc_reload* + + +Author: Pan, Shizhu. <dicpan> at <hotmail o com> > + (prepend '[VIM]' in the title or your mail may be silently removed.) +< +============================================================================== +CONTENTS *pcr* *pcr-contents* + + 1. Contents.....................|pcr-contents| + 2. PCR Overview.................|pcr-overview| + 3. PCR Usage....................|pcr-usage| + 4. PCR Options..................|pcr-options| + 5. PCR FAQ .....................|pcr-faq| + 6. PCR Todo List................|pcr-todo| + +For release notes, please see the header of reloaded.vim + +============================================================================== +PCR FEATURES OVERVIEW *pcr-features* *pcr-overview* + + Features ~ + + . PCR is a color scheme tuner and reloader. + . PCR is an optional utility for ps_color as well as other schemes + . It tunes the whole color scheme in HSL color space. + . Thousands of color styles can be achieved by HSL tuning. + . Tuned output can be saved to create new color schemes. + . Can be configured to tune your own color scheme. + . Works under GUI only, do not affect console version. + + Design Concern ~ + + When I'm designing the color scheme |ps_color|, I realized it is + extremely difficult to fine-tune the color, the whole step is not at + all straight forward. What is more, RGB is not quite comprehensive + for most average people. It would be much better if it is possible to + tune the color scheme in HSL color space. Many color schemes in vim + are actually similar, just some tune in the HSL color space. + + It is very easy to understand HSL color space even if one has NO + previous knowledge. This may be another reason to use HSL color + space. + + Portability ~ + + Before playing the game of colors, you are strongly recommended to + adjust your monitor to 6500k color temperature and proper gamma curve. + This has been described in the |ps_color.txt| at the same + "Portability" section. If you don't know how, just skip it. + + The only portability issue, for the obvious reason, this is GUI only. + ;-) + +============================================================================== +PSC USAGE *pcr-usage* + + For the impatient ~ + + Make sure both ps_color.vim and reloaded.vim are in your + [runtimepath]/colors and type in the following command > + + :colo reloaded +< + in your Vim or append to your |.vimrc|. The [runtimepath] can be any + 'writable' directory listed in |vimfiles|, normally your $HOME/.vim in + Unix or $HOME/vimfiles in Windows. + + Note that you don't need to remove your current :colo lines in .vimrc, + since the :colo reloaded does nothing on color scheme, the + reloaded.vim has to be a color scheme for some bizarre reason. + + Note if you do not want to have ps_color.vim, go to FAQ section to see + how to create your own. + + Experiencing ~ + + Normally, nothing will happen when you sourced the colorscheme + reloaded, this only enables the command :Reload. + + The :Reload command will be available after you sourced the + colorscheme reloaded. If not, type :colo reloaded now. + + Now try the following: +> + :Reload 60 100 100 120 341 0 0 0 0 +< + If you do as above, you will get a greenish feeling like "Matrix + reloaded". You can run the Reload command in vim command line as well + as in .vimrc. To see what the :Reload is capable of, try the + following, one by one: +> + :Reload 120 100 100 60 341 128 + :Reload 120 100 100 60 341 0 1 + :Reload 480 84 84 195 256 96 0 + :Reload 720 71 100 360 0 0 0 + :Reload 60 100 100 150 341 0 0 + :Reload 240 120 100 330 341 0 1 + :Reload 360 100 100 180 0 0 0 1 + :Reload 360 100 100 180 0 0 1 0 +< + (Hint: choose a document which has as much highlight as possible to + see what the come scheme looks like. Vim scripts or Vim help documents + may be good samples.) + + . The first line will give you a golden feeling, followed by + a reversed version. + . Next comes a low contrast dark-cyan-background scheme. + . Next comes a black background with decreased saturation. + . The Hue can be changed anyway. This is a cyan-green style, call it + "Matrix revolution"? + . Be hot, lets try a reddish style. + . The last two lines will give you the same as ps_color 'cool' and + 'warm' style. + + Are you amazed? I guess so. And, of course all the above can be + further fine-tuned. + + If you want to explore the mysteries inside this, see the next + section. + +============================================================================== +PCR OPTIONS *pcr-options* + + Since it is much easier and straight forward to specify command line + arguments, there are no need to create individual options. Here we + describe the 10 parameters. + + Synopsis ~ + + :Reload h_r s_m l_m h_p s_b l_b [ lbg [ pf [ vb [ cdf ] ] ] ] + + Scope ~ + + Hue is the dominant parameter to a color, because the human eye is + very sensitive to the changing of hue. Generally, the hue is + expressed by angle, can be 0 to 360 degrees, where 359 degree is equal + to -1 degree, 360 degree is equal to 0 degree, 361 degree is equal to + 1 degree, etc. + + The human eye is less sensitive to Saturation, the Black, Grey, and + White has saturation=0, The pure Red, Green, and Blue has + saturation=max, usually, saturation is defined to be between 0 and 1. + But Vim is not capable of handling floating points, so I defined the + saturation to be between 0 and 1023. + + The saturation is the amount the different color elements differs, if + the red, green, blue are similar, the saturation is low. + + The human eye is least sensitive to Luminance, since the dynamic range + of human eye can be changed on the fly. The luminance, or to say + brightness, needs no explanation, since the meaning is quite obvious. + + The Luminance is also defined to be 0 to 1023, for the same reason. + + Parameter h_r and h_p ~ + + This refers to hue range and hue phase. + + set the hue range to any positive value, the hue will be in the range + of hue_phase-(hue_range/2) to hue_phase-(hue_range/2) + + The normal hue is from 0 to 360, let hue_range=360 and hue_phase=180 + will have the range 0 to 360, hence the hue of original color scheme + will be retained. + + Set the hue range to between 0 and 360 will have the hue range + compressed, or to say a color-filtered look. Set the hue range to + 0 will force all colors in the color scheme to have the same hue value + as hue_phase. You may not want it to be that low, since the + hue_range=60 will in most cases enough to give the whole color scheme + a color-filtered look. + + Set the hue range to >360 will have the color changed without compress + the hue range, the behavior is not easy to describe, you need to do + more experiments to understand what it does. + + Set the hue range to <0 is illegal. + + The hue_phase is the base value the whole color scheme designed + around. Usually, the Hue=0 is Red, Hue=60 is Yellow, Hue=120 is + Green, Hue=180 is Cyan, Hue=240 is Blue, Hue=300 is Magenta, any other + value is between two color, for example, Hue=30 is Orange color. + + It would be very interesting to see how a color scheme changes when + change the hue_phase. + + Parameter s_m and s_b ~ + + This refers to saturation modify and saturation base + + The saturation modify is a percent value, 100 means no modify. + If set to 50, all saturation will be decreased to 50%, + If set to 0, the screen will be black and white (greyscale), + If set to 200, all saturation will be increased to 200% times the + original value. + + The saturation base is a linear value, it defines the minimum + saturation. + If set to 0, the saturation will not be modified. + If set to 256, the minimum saturation will be 1/4. + If set to 341, the minimum saturation will be 1/3. + If set to 512, the minimum saturation will be 1/2. + + Oops, please _note_ that a too high value of saturation is not quite + comfortable for most people. + + Parameter l_m and l_b ~ + + This refers to luminance modify and luminance base + + The luminance modify is a percent value, 100 means no modify. + If set to 50, all luminance will be decreased to 50%, + If set to 0, the screen will be completely dark (can be possibly used + for boss key?) + If set to 200, all luminance will be increased to 200% times the + original value. + + The luminance base is a linear value, it defines the minimum + luminance. + + Main use of this is to tune the background for a dark background + colorscheme. + If set to 0, the background will be black. + If set to 128, the background will be a 1/8 dark one, the color of + background can be tuned by saturation_base and hue_phase. + If set to 1023, the screen will be completely white. + + For light background, it is recommended to set luminance base to 0. + + + Parameter lbg ~ + + This refers to light background + + when set to 1, the reloader choose a light background scheme and set + bg to light, otherwise, it is set to 0. + + This options is optional, if omitted, it checks the value of + g:psc_style, if the style is 'warm', the light background is set to 1. + + Parameter pf ~ + + This refers to plain font + + Optional, set to 1 will turn all bolded font to plain font. + When not set, will check for g:psc_fontface, if non-exists, + default to 0. + + Parameter vb ~ + + This refers to 'verbose' + + When set to 1, some debug messages will be echoed when running the + command. + + Parameter cdf ~ + + This refers to custom data file + + The default data file is the ps_color.vim placed at the same directory + as reloaded.vim. You can set it to any file you want. + + When present, it should be the file name of your data file. + For example, if your data file is ~/.vim/colors/template.vim: +> + :Reload 360 100 100 180 0 0 1 0 0 template.vim +< + will reload the light color scheme in template.vim + *pcr-custom-data* + Designing a data file ~ + + The data file can be a normal color scheme script, such as + ps_color.vim, You may need to know more if you want to do + modifications. + + The ps_color.vim is fairly complicated, but only part of the file are + imported as data. Mainly, you only need to see how it organizes + statements in between "DEFINE START" and "DEFINE END" blocks. + + The data file should conform to some restrictions: + + . Must be in the same directory as reloaded.vim + + . ALL highlight group must be defined, do not accept any default + value, this include the Underline and Ignore groups, this also hints + that both foreground and background must be defined. Use :ru + syntax/hitest.vim to check if all highlight groups are defined. + + . Color names like "SlateBlue" should not be used, only hardcoded color + like #rrggbb is acceptable, the fg and bg can be used though, Since + fg and bg comes from the group Normal, and Normal group must be + defined with #rrggbb form of foreground and background. + + . The following should exist in the file +> + " DARK COLOR DEFINE START + " DARK COLOR DEFINE END + " LIGHT COLOR DEFINE START + " LIGHT COLOR DEFINE END + " COLOR LINKS DEFINE START + " COLOR LINKS DEFINE END +< + the highlight statement should be placed in between START and END. + All statement other than the 'highlight' will be silently discarded. + + You can put dark color scheme defines in dark color define section, + or light color scheme in light color section. It doesn't matter if + you have nothing in the section, since the defaults are used. + However, the defaults will not be tuned in the HSL color space, + which may be you want, and may not! + + Further statements can be put in color links define section, you can + put any 'highlight' statements in this section since the statements + in this section will be execute unparsed, if you want to manually + change some groups in a reloaded scheme, put something there. + + +============================================================================== +PCR FAQ AND TIPS *pcr-faq* +> + Q: How to make my own color to be tunable? +< + A: Your own color scheme must conform to some restrictions, + see |pcr-custom-data| for details. +> + Q: How to run reloaded.vim without having ps_color.vim? +< + A: reloaded.vim is just a utility to reload colorscheme, it does not + contain any colors. You must have a data file, or to say + colorscheme, contains the 'highlight' statements like those in + ps_color.vim, and tell the reloaded.vim to use that file. + Instructions on creating custom data file is described in + |pcr-custom-data|. +> + Q: How to export the tuned output to create new color scheme? +< + A: This is still under construction, currently you can set verbose in + the command line parameter and capture the output, but it is not + working very well. +> + Q: Why this should be a colorschme instead of a plugin utility? +< + A: This seems to be a Vim bug (or to say 'feature' if you prefer), the + main function will hang up if run as a plugin and you will not be + able to source the colorscheme in the current Vim session, so, + please put reloaded.vim in ~/.vim/colors, do NOT put it in + ~/.vim/plugin ! +> + Q: Why it is impossible to browse functions in reloaded.vim with + taglist plugin? +< + A: The old versions of exuberant ctags utility do not cope with <sid> + functions very well, please download and recompile the newest + version of exuberant ctags utility. + + +============================================================================== +PCR TODO LIST *pcr-todo* + + o Fix the remaining bugs. + o Try to be able to parse color names + o Improve the output feature + +============================================================================== +vim:et:nosta:sw=2:ts=8: +}}}2 vim600:fdm=marker:fdl=1: diff --git a/.vim/colors/revolutions.vim b/.vim/colors/revolutions.vim new file mode 100644 index 0000000..15450c9 --- /dev/null +++ b/.vim/colors/revolutions.vim @@ -0,0 +1,75 @@ +" MATRIX-REVOLUTIONS colorscheme +" Author: Christian MICHON +" Version: 1.0 +" Last Change: 23 Jun 2004 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = 'revolutions' + +hi Boolean guifg=#e6fff3 guibg=#43705a gui=none +hi Character guifg=#e6fff3 guibg=#43705a gui=none +hi Comment guifg=#43705a guibg=#000000 gui=underline +hi Conditional guifg=#e6fff3 guibg=#000000 gui=bold +hi Constant guifg=#e6fff3 guibg=#43705a gui=none +hi Cursor guifg=#43705a guibg=#e6fff3 gui=none +hi Debug guifg=#61a181 guibg=#000000 gui=none +hi Define guifg=#e6fff3 guibg=#000000 gui=none +hi Delimiter guifg=#61a181 guibg=#000000 gui=none +hi DiffAdd guifg=#e6fff3 guibg=#43705a gui=bold +hi DiffChange guifg=#e6fff3 guibg=#43705a gui=none +hi DiffDelete guifg=#e6fff3 guibg=#43705a gui=none +hi DiffText guifg=#000000 guibg=#e6fff3 gui=bold +hi Directory guifg=#e6fff3 guibg=#000000 gui=none +hi Error guifg=#e6fff3 guibg=#61a181 gui=bold +hi ErrorMsg guifg=#e6fff3 guibg=#61a181 gui=bold +hi Exception guifg=#e6fff3 guibg=#000000 gui=bold +hi Float guifg=#e6fff3 guibg=#43705a gui=none +hi FoldColumn guifg=#9bcfb5 guibg=#43705a gui=bold +hi Folded guifg=#9bcfb5 guibg=#43705a gui=bold +hi Function guifg=#e6fff3 guibg=#000000 gui=none +hi Identifier guifg=#e6fff3 guibg=#000000 gui=none +hi Ignore guifg=#000000 guibg=#000000 gui=none +hi Include guifg=#e6fff3 guibg=#000000 gui=none +hi IncSearch guifg=#1d3026 guibg=#61a181 gui=bold +hi Keyword guifg=#e6fff3 guibg=#000000 gui=bold +hi Label guifg=#e6fff3 guibg=#000000 gui=bold +hi lCursor guifg=#43705a guibg=#e6fff3 gui=none +hi LineNr guifg=#9bcfb5 guibg=#000000 gui=bold +hi Macro guifg=#e6fff3 guibg=#000000 gui=none +hi ModeMsg guifg=#9bcfb5 guibg=#000000 gui=bold +hi MoreMsg guifg=#9bcfb5 guibg=#000000 gui=bold +hi NonText guifg=#9bcfb5 guibg=#1d3026 gui=bold +hi Normal guifg=#9bcfb5 guibg=#000000 gui=none +hi Number guifg=#e6fff3 guibg=#000000 gui=none +hi Operator guifg=#e6fff3 guibg=#000000 gui=bold +hi PreCondit guifg=#e6fff3 guibg=#000000 gui=none +hi PreProc guifg=#61a181 guibg=#000000 gui=none +hi Question guifg=#9bcfb5 guibg=#000000 gui=bold +hi Repeat guifg=#e6fff3 guibg=#000000 gui=bold +hi Search guifg=#1d3026 guibg=#61a181 gui=bold +hi Special guifg=#61a181 guibg=#000000 gui=none +hi SpecialChar guifg=#61a181 guibg=#000000 gui=none +hi SpecialComment guifg=#61a181 guibg=#000000 gui=none +hi SpecialKey guifg=#9bcfb5 guibg=#000000 gui=none +hi Statement guifg=#e6fff3 guibg=#000000 gui=bold +hi StatusLine guifg=#e6fff3 guibg=#61a181 gui=bold +hi StatusLineNC guifg=#1d3026 guibg=#61a181 gui=bold +hi StorageClass guifg=#f070a0 guibg=#000000 gui=bold +hi String guifg=#e6fff3 guibg=#000000 gui=none +hi Structure guifg=#f070a0 guibg=#000000 gui=bold +hi Tag guifg=#61a181 guibg=#000000 gui=none +hi Title guifg=#e6fff3 guibg=#1d3026 gui=bold +hi Todo guifg=#1d3026 guibg=#9bcfb5 gui=none +hi Type guifg=#e6fff3 guibg=#000000 gui=bold +hi Typedef guifg=#f070a0 guibg=#000000 gui=bold +hi Underlined guifg=#e6fff3 guibg=#000000 gui=underline +hi VertSplit guifg=#61a181 guibg=#61a181 gui=none +hi Visual guifg=#e6fff3 guibg=#61a181 gui=none +hi VisualNOS guifg=#9bcfb5 guibg=#000000 gui=underline +hi WarningMsg guifg=#1d3026 guibg=#61a181 gui=bold +hi WildMenu guifg=#43705a guibg=#e6fff3 gui=none diff --git a/.vim/colors/robinhood.vim b/.vim/colors/robinhood.vim new file mode 100644 index 0000000..b6eb1bd --- /dev/null +++ b/.vim/colors/robinhood.vim @@ -0,0 +1,99 @@ +" vim: set tw=0 sw=4 sts=4 et: + +" Vim color file +" Maintainer: Datila Carvalho <datila@saci.homeip.net> +" Last Change: November, 3, 2003 +" Version: 0.1 + +" This is a VIM's version of the emacs color theme +" _Robin Hood_ created by Alex Schroede. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "robinhood" + + +""" Colors + +" GUI colors +hi Cursor guifg=fg guibg=gray +hi CursorIM guifg=NONE guibg=gray +"hi Directory +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +hi ErrorMsg gui=bold guifg=White guibg=Red +"hi VertSplit +"hi Folded +"hi FoldColumn +"hi IncSearch +"hi LineNr +"hi ModeMsg +"hi MoreMsg +"hi NonText +hi Normal guibg=#304020 guifg=navajowhite +"hi Question +hi Search gui=bold guifg=Black guibg=gray +"hi SpecialKey +hi StatusLine guifg=palegreen +hi StatusLineNC guifg=yellowgreen +"hi Title +hi Visual guifg=darkslategrey guibg=fg +hi VisualNOS gui=bold guifg=Black guibg=fg +hi WarningMsg guifg=White guibg=Tomato +"hi WildMenu + +" Colors for syntax highlighting +hi Comment guifg=lightblue + +hi Constant gui=bold guifg=lightcyan + hi String guifg=lightsalmon + hi Character guifg=lightsalmon + hi Number gui=bold guifg=lightcyan + hi Boolean gui=bold guifg=lightcyan + hi Float gui=bold guifg=lightcyan + +hi Identifier gui=bold guifg=palegreen + hi Function guifg=yellowgreen + +hi Statement gui=bold guifg=salmon + hi Conditional gui=bold guifg=salmon + hi Repeat gui=bold guifg=salmon + hi Label guifg=salmon + hi Operator guifg=salmon + "hi Keyword + "hi Exception + +hi PreProc guifg=palegreen + hi Include gui=bold guifg=palegreen + hi Define guifg=palegreen + hi Macro guifg=aquamarine + hi PreCondit guifg=palegreen + +hi Type gui=bold guifg=palegreen + hi StorageClass gui=bold guifg=aquamarine + hi Structure gui=bold guifg=aquamarine + hi Typedef gui=bold guifg=aquamarine + +"hi Special + ""Underline Character + "hi SpecialChar gui=underline + "hi Tag gui=bold,underline + ""Statement + "hi Delimiter gui=bold + ""Bold comment (in Java at least) + "hi SpecialComment gui=bold + "hi Debug gui=bold + +hi Underlined gui=underline + +hi Ignore guifg=bg + +hi Error gui=bold guifg=White guibg=Red + +"hi Todo diff --git a/.vim/colors/sand.vim b/.vim/colors/sand.vim new file mode 100644 index 0000000..cc673df --- /dev/null +++ b/.vim/colors/sand.vim @@ -0,0 +1,30 @@ +" Vim color file +" Maintainer: Tim Alexeevsky <realtim@mail.ru> +" Last Change: 2002-03-14 +" Version: 0.5 +" URL: http://sunsite.cs.msu.su/~tim/vim/sand.vim +" +" Thanx to Hans Fugal for his colorscheme_template.vim + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="sand" + +highlight Normal guibg=cornsilk guifg=NONE +highlight PreProc guibg=NONE guifg=Maroon4 +highlight Comment guibg=NONE guifg=SteelBlue4 +highlight Constant guibg=NONE guifg=NavajoWhite4 +highlight Special guibg=NONE guifg=SlateBlue4 +highlight Identifier guibg=NONE guifg=SeaGreen +highlight Statement guibg=NONE guifg=bisque4 +highlight Type guibg=NONE guifg=DarkOliveGreen +highlight Todo guibg=LightYellow3 guifg=Blue4 +highlight NonText guibg=NONE guifg=DarkGreen +highlight LineNr guibg=NONE guifg=Brown +highlight StatusLineNC guifg=#8090a0 +highlight StatusLine guifg=#005070 + +"vim: tw=0 sw=3 ts=3 sts=3 et diff --git a/.vim/colors/scite.vim b/.vim/colors/scite.vim new file mode 100644 index 0000000..609ad98 --- /dev/null +++ b/.vim/colors/scite.vim @@ -0,0 +1,48 @@ +" Vim color file +" Maintainer: Gergely Kontra <kgergely@mcl.hu> +" Last Change: 2002. 04. 09. + +" I'm a bit red-blind, so if you have suggestions, don't hesitate :) +" ^^^^^^^^^ Sorry, I cannot speak English well, just want to say, +" that in some rare cases I cannot distinguish between some colors +" (I've just realized it, when I see some special tests) + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +"colorscheme default +let g:colors_name = "scite" + +" hardcoded colors : + +" GUI +"highlight Normal guifg=#7F6F5F guibg=#eeeeee +highlight Normal guifg=#7F6F5F guibg=#ffffff +highlight Search guibg=#bbbbbb gui=bold +highlight Visual guifg=#DADADA +highlight Folded guifg=#ffffff guibg=#666666 +highlight Cursor guifg=#666666 guibg=#000000 gui=bold +highlight Special guifg=#7F007F guibg=#eeeeff gui=bold +highlight Comment guifg=#007F00 guibg=#eeeeee +highlight StatusLine guifg=#000000 guibg=#aacccc +highlight StatusLineNC guifg=#557777 guibg=#ffffff +highlight Statement guifg=#007F7F gui=bold +highlight Type guifg=#0000ff gui=NONE +highlight Function guifg=#007F7F gui=bold +highlight LineNr guifg=#000000 guibg=#bbbbbb +highlight FoldColumn guifg=#000000 guibg=#dddddd +highlight Define guifg=#00007F guibg=#ddddff gui=bold +highlight Number guifg=#000000 guibg=#eeffff gui=bold +highlight Subtitle guifg=#000000 guibg=#66bbbb gui=bold,underline +highlight String guifg=#7F007F guibg=#ffdddd +highlight Delimiter guifg=#000000 guibg=#dde0dd gui=bold +highlight PreProc guifg=#0000ff guibg=#ffffff gui=bold +highlight Constant guifg=#000000 guibg=#aaaaaa gui=underline,bold + +"{{{ + +"}}} + + diff --git a/.vim/colors/sea.vim b/.vim/colors/sea.vim new file mode 100644 index 0000000..0c79c47 --- /dev/null +++ b/.vim/colors/sea.vim @@ -0,0 +1,69 @@ +" Vim color file +" Maintainer: Tiza +" Last Change: 2002/10/30 Wed 00:01. +" version: 1.0 +" This color scheme uses a dark background. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "sea" + +hi Normal guifg=#f0f0f8 guibg=#343478 + +" Search +hi IncSearch gui=UNDERLINE,BOLD guifg=#ffffff guibg=#c030ff +hi Search gui=BOLD guifg=#f0e0ff guibg=#b020ff + +" Messages +hi ErrorMsg gui=BOLD guifg=#ffffff guibg=#f000a0 +hi WarningMsg gui=BOLD guifg=#ffffff guibg=#f000a0 +hi ModeMsg gui=BOLD guifg=#00e0ff guibg=NONE +hi MoreMsg gui=BOLD guifg=#00ffff guibg=#6060ff +hi Question gui=BOLD guifg=#00f0d0 guibg=NONE + +" Split area +hi StatusLine gui=NONE guifg=#000000 guibg=#d0d0e0 +hi StatusLineNC gui=NONE guifg=#606080 guibg=#d0d0e0 +hi VertSplit gui=NONE guifg=#606080 guibg=#d0d0e0 +hi WildMenu gui=NONE guifg=#000000 guibg=#ff90ff + +" Diff +hi DiffText gui=UNDERLINE guifg=#ffff00 guibg=#000000 +hi DiffChange gui=NONE guifg=#ffffff guibg=#000000 +hi DiffDelete gui=NONE guifg=#60ff60 guibg=#000000 +hi DiffAdd gui=NONE guifg=#60ff60 guibg=#000000 + +" Cursor +hi Cursor gui=NONE guifg=#ffffff guibg=#d86020 +hi lCursor gui=NONE guifg=#ffffff guibg=#e000b0 +hi CursorIM gui=NONE guifg=#ffffff guibg=#e000b0 + +" Fold +hi Folded gui=NONE guifg=#ffffff guibg=#0080a0 +hi FoldColumn gui=NONE guifg=#9090ff guibg=#3c3c88 + +" Other +hi Directory gui=NONE guifg=#00ffff guibg=NONE +hi LineNr gui=NONE guifg=#7070e8 guibg=NONE +hi NonText gui=BOLD guifg=#8080ff guibg=#2c2c78 +hi SpecialKey gui=BOLD guifg=#60c0ff guibg=NONE +hi Title gui=BOLD guifg=#f0f0f8 guibg=NONE +hi Visual gui=NONE guifg=#ffffff guibg=#6060ff +" hi VisualNOS gui=NONE guifg=#ffffff guibg=#6060ff + +" Syntax group +hi Comment gui=NONE guifg=#b0b0c8 guibg=NONE +hi Constant gui=NONE guifg=#60ffff guibg=NONE +hi Error gui=BOLD guifg=#ffffff guibg=#f000a0 +hi Identifier gui=NONE guifg=#c0c0ff guibg=NONE +hi Ignore gui=NONE guifg=#303080 guibg=NONE +hi PreProc gui=NONE guifg=#ffb0ff guibg=NONE +hi Special gui=NONE guifg=#ffd858 guibg=NONE +hi Statement gui=NONE guifg=#f0f060 guibg=NONE +hi Todo gui=BOLD,UNDERLINE guifg=#ff70e0 guibg=NONE +hi Type gui=NONE guifg=#40ff80 guibg=NONE +hi Underlined gui=UNDERLINE,BOLD guifg=#f0f0f8 guibg=NONE diff --git a/.vim/colors/sean.vim b/.vim/colors/sean.vim new file mode 100644 index 0000000..1aa2b1e --- /dev/null +++ b/.vim/colors/sean.vim @@ -0,0 +1,83 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" Maintainer:Sean Richards +" Last Change:Fri Aug 30 8:50 2002 NZST + +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "sean" +hi Normal guifg=white guibg=black +hi SpecialKey guifg=Blue +hi NonText gui=bold guifg=Blue +hi Directory guifg=Blue +hi ErrorMsg guifg=White guibg=Red +hi Search guifg=white guibg=Red +hi MoreMsg gui=bold guifg=SeaGreen +hi ModeMsg gui=bold guifg=White guibg=Blue +hi LineNr ctermfg=Darkyellow guifg=Yellow +hi Question gui=bold guifg=Green +hi StatusLineNC cterm=none ctermfg=grey ctermbg=darkblue gui=NONE guifg=white guibg=darkblue +hi StatusLine cterm=none ctermfg=white ctermbg=darkblue gui=bold guifg=white guibg=darkblue +hi VertSplit gui=bold guifg=White guibg=darkblue +hi Title gui=bold guifg=Magenta +hi Visual cterm=none ctermfg=white ctermbg=darkgreen gui=NONE guifg=white guibg=darkgreen +hi WarningMsg guifg=Red +hi FoldColumn ctermfg=Black ctermbg=Grey guibg=DarkGrey guifg=Black +hi Folded ctermfg=Black ctermbg=Grey guifg=Black +hi Cursor guifg=bg guibg=Green +hi Comment cterm=none ctermfg=darkgreen gui=italic guifg=green +hi Constant ctermfg=darkcyan guifg=darkcyan +hi Special ctermfg=darkyellow guifg=Orange +hi Identifier ctermfg=cyan guifg=cyan +hi Statement ctermfg=darkyellow gui=bold guifg=darkyellow +hi Number ctermfg=Cyan guifg=Cyan +hi PreProc ctermfg=darkmagenta guifg=darkmagenta +hi String ctermfg=darkred guifg=Red +hi Type ctermfg=darkblue guifg=blue +hi Error ctermfg=red guifg=Red guibg=Black +hi Todo ctermfg=blue ctermbg=yellow guifg=Blue guibg=Yellow +hi link IncSearch Visual +hi link String Constant +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Function Identifier +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special + + +"Toggle semicolon matching at the end of lines, author unknown! +nmap <silent> <leader>sc :call ToggleSemicolonHighlighting()<cr> +"{{{ +function! ToggleSemicolonHighlighting() + if exists("b:semicolon") + unlet b:semicolon + hi semicolon guifg=NONE gui=NONE ctermfg=NONE + else + syn match semicolon #;$# + hi semicolon guifg=red gui=bold ctermfg=1 + let b:semicolon = 1 + endif +endfunction +"}}} diff --git a/.vim/colors/seashell.vim b/.vim/colors/seashell.vim new file mode 100644 index 0000000..130785d --- /dev/null +++ b/.vim/colors/seashell.vim @@ -0,0 +1,32 @@ +" Vim color file +" Maintainer: Gerald S. Williams +" Last Change: 2003 Apr 17 + +" This is very reminiscent of a seashell. Good contrast, yet not too hard on +" the eyes. This is something of a cross between zellner and peachpuff, if +" such a thing is possible... +" +" Only values that differ from defaults are specified. + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "seashell" + +hi Normal guibg=seashell ctermbg=Gray ctermfg=Black +hi NonText guibg=LavenderBlush guifg=Gray30 +hi LineNr guibg=LavenderBlush guifg=Gray30 +hi DiffDelete guibg=LightRed guifg=Black ctermbg=DarkRed ctermfg=White +hi DiffAdd guibg=LightGreen ctermbg=DarkGreen ctermfg=White +hi DiffChange guibg=Gray90 ctermbg=DarkCyan ctermfg=White +hi DiffText gui=NONE guibg=LightCyan2 ctermbg=DarkCyan ctermfg=Yellow +hi Comment guifg=MediumBlue +hi Constant guifg=DeepPink +hi PreProc guifg=DarkMagenta +hi StatusLine guibg=White guifg=DarkSeaGreen cterm=None ctermfg=White ctermbg=DarkGreen +hi StatusLineNC gui=None guibg=Gray +hi VertSplit gui=None guibg=Gray +hi Identifier guifg=#006f6f +hi Statement ctermfg=DarkRed diff --git a/.vim/colors/sf.vim b/.vim/colors/sf.vim new file mode 100644 index 0000000..5b3033f --- /dev/null +++ b/.vim/colors/sf.vim @@ -0,0 +1,76 @@ +" GUI-only vim color file, based on colors from vim.sf.net +" Author: Christian MICHON +" Email: christian_michon@yahoo.fr +" Version: 1.1 +" Last Change: 28 Jul 2004 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "sf" + +hi Boolean guifg=#007f00 guibg=#f0f0dd gui=none +hi Character guifg=#007f00 guibg=#f0f0dd gui=none +hi Comment guifg=#b0b0b0 guibg=#f0f0dd gui=underline +hi Conditional guifg=#0000ee guibg=#f0f0dd gui=bold +hi Constant guifg=#007f00 guibg=#f0f0dd gui=none +hi Cursor guifg=#f0f0dd guibg=#cc0000 gui=none +hi Debug guifg=#0000ee guibg=#f0f0dd gui=none +hi Define guifg=#cc0000 guibg=#f0f0dd gui=none +hi Delimiter guifg=#0000ee guibg=#f0f0dd gui=none +hi DiffAdd guifg=#551a8b guibg=#007f00 gui=bold +hi DiffChange guifg=#f0f0dd guibg=#007f00 gui=none +hi DiffDelete guifg=#551a8b guibg=#007f00 gui=none +hi DiffText guifg=#f0f0dd guibg=#551a8b gui=bold +hi Directory guifg=#cc0000 guibg=#f0f0dd gui=underline +hi Error guifg=#ffffff guibg=#cc0000 gui=bold +hi ErrorMsg guifg=#ffffff guibg=#cc0000 gui=bold +hi Exception guifg=#0000ee guibg=#f0f0dd gui=bold +hi Float guifg=#007f00 guibg=#f0f0dd gui=none +hi FoldColumn guifg=#f0f0dd guibg=#007f00 gui=bold +hi Folded guifg=#f0f0dd guibg=#007f00 gui=bold +hi Function guifg=#cc0000 guibg=#f0f0dd gui=none +hi Identifier guifg=#cc0000 guibg=#f0f0dd gui=none +hi Ignore guifg=#f0f0dd guibg=#f0f0dd gui=none +hi Include guifg=#cc0000 guibg=#f0f0dd gui=none +hi IncSearch guifg=#ffffff guibg=#38d878 gui=bold +hi Keyword guifg=#0000ee guibg=#f0f0dd gui=bold +hi Label guifg=#0000ee guibg=#f0f0dd gui=bold +hi lCursor guifg=#000066 guibg=#f0f0dd gui=none +hi LineNr guifg=#b0b0b0 guibg=#007f00 gui=bold +hi Macro guifg=#cc0000 guibg=#f0f0dd gui=none +hi ModeMsg guifg=#000066 guibg=#f0f0dd gui=bold +hi MoreMsg guifg=#551a8b guibg=#f0f0dd gui=bold +hi NonText guifg=#b0b0b0 guibg=#f0f0dd gui=bold +hi Normal guifg=#000066 guibg=#f0f0dd gui=none +hi Number guifg=#007f00 guibg=#f0f0dd gui=none +hi Operator guifg=#0000ee guibg=#f0f0dd gui=bold +hi PreCondit guifg=#cc0000 guibg=#f0f0dd gui=none +hi PreProc guifg=#cc0000 guibg=#f0f0dd gui=none +hi Question guifg=#551a8b guibg=#f0f0dd gui=bold +hi Repeat guifg=#0000ee guibg=#f0f0dd gui=bold +hi Search guifg=#ffffff guibg=#38d878 gui=bold +hi Special guifg=#999973 guibg=#f0f0dd gui=none +hi SpecialChar guifg=#0000ee guibg=#f0f0dd gui=none +hi SpecialComment guifg=#0000ee guibg=#f0f0dd gui=none +hi SpecialKey guifg=#cc0000 guibg=#f0f0dd gui=none +hi Statement guifg=#0000ee guibg=#f0f0dd gui=bold +hi StatusLine guifg=#f0f0dd guibg=#cc0000 gui=bold +hi StatusLineNC guifg=#f0f0dd guibg=#000066 gui=bold +hi StorageClass guifg=#551a8b guibg=#f0f0dd gui=bold +hi String guifg=#007f00 guibg=#f0f0dd gui=none +hi Structure guifg=#551a8b guibg=#f0f0dd gui=bold +hi Tag guifg=#0000ee guibg=#f0f0dd gui=none +hi Title guifg=#007f00 guibg=#f0f0dd gui=bold +hi Todo guifg=#f0f0dd guibg=#0000ee gui=none +hi Type guifg=#551a8b guibg=#f0f0dd gui=bold +hi Typedef guifg=#551a8b guibg=#f0f0dd gui=bold +hi Underlined guifg=#0000ee guibg=#f0f0dd gui=underline +hi VertSplit guifg=#f0f0dd guibg=#000066 gui=bold +hi Visual guifg=#ffffff guibg=#00009c gui=none +hi VisualNOS guifg=#ffffff guibg=#b0b0b0 gui=none +hi WarningMsg guifg=#ffffff guibg=#cc0000 gui=bold +hi WildMenu guifg=#f0f0dd guibg=#0000ee gui=none diff --git a/.vim/colors/simpleandfriendly.vim b/.vim/colors/simpleandfriendly.vim new file mode 100644 index 0000000..6222e76 --- /dev/null +++ b/.vim/colors/simpleandfriendly.vim @@ -0,0 +1,56 @@ +" Vim color file +" Maintainer: Thomas Schmall <ts_nowhere@NOSPAM_yahoo.com> +" Last Change: 2004 Nov 20 +" URL: http://www.vim.org/scripts/script.php?script_id=792 +" Version: 1.3 + +" This color scheme uses a light grey background. + +" Last Changes: +" *line number colors changed + + +" First remove all existing highlighting. +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "simpleandfriendly" + +"Set nice colors #DC6210 +"Cursor is Cyan when ":lmap" mappings are active +hi lCursor guibg=Cyan guifg=NONE +hi LineNr guifg=white guibg=#acbbff + +"Text below the last line is darker grey +hi NonText guibg=grey80 +"Normal text is black background is grey +hi Normal guifg=black guibg=grey89 ctermfg=Black ctermbg=LightGrey +hi Comment guifg=Orange guibg=grey94 ctermfg=DarkCyan term=bold +"Constants are not underlined but have a slightly lighter background +hi Constant guifg=#8080a0 guibg=grey92 gui=NONE term=underline +hi String guifg=#80a0ff guibg=grey93 gui=NONE term=underline +hi Number guifg=#80a5ff guibg=grey91 gui=NONE ctermfg=Gray term=none +"Words like _if_ or _else_ (Grey27) +hi Statement guifg=#4A2B99 gui=NONE ctermfg=Blue + +hi Title guifg=red ctermfg=red gui=NONE term=BOLD +"color for _NONE_ for instance: +hi PreProc term=underline ctermfg=LightBlue guifg=#DC6210 +"color for _guifg_ for instance: (SlateBlue works here nice too) +hi Type guifg=#008080 ctermfg=LightGreen gui=None term=underline +hi Function guifg=#61577A term=bold +"in lingo the defined functions. (alt: SlateBlue) +hi Identifier guifg=Seagreen +"hi Identifier term=underline cterm=bold ctermfg=Cyan guifg=#40ffff + +"hi Repeat term=underline ctermfg=White guifg=white +"hi Ignore guifg=bg ctermfg=black +hi Error term=reverse ctermbg=Red ctermfg=White guibg=Red guifg=White +hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow +"Special Characters +hi Special guibg=grey90 guifg=Slateblue gui=UNDERLINE + +hi operator guifg=gray25 ctermfg=Black term=bold cterm=bold gui=bold diff --git a/.vim/colors/taqua.vim b/.vim/colors/taqua.vim new file mode 100644 index 0000000..947ebc9 --- /dev/null +++ b/.vim/colors/taqua.vim @@ -0,0 +1,85 @@ +" Vim color file +" Maintainer: TaQ <eustaquiorangel@yahoo.com> +" Last Change: 18 March 2003 +" URL: http://taq.cjb.net + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name="taqua" + +hi Normal gui=NONE guifg=#303030 guibg=#FFFFFF +hi NonText gui=BOLD guifg=#303030 guibg=#FFFFFF + +" Search +hi IncSearch gui=BOLD guifg=#008000 guibg=#CCFF00 +hi Search gui=BOLD guifg=#008000 guibg=#CCFF00 + +" Messages +hi ErrorMsg gui=BOLD guifg=#FFFFFF guibg=#FF0000 +hi WarningMsg gui=BOLD guifg=#008000 guibg=#CCFF00 + +" Split area +hi StatusLine gui=BOLD guifg=#FFFFFF guibg=#0E8ED3 +hi StatusLineNC gui=BOLD guifg=#FFFFFF guibg=#0A6799 + +" Diff +hi DiffText gui=BOLD guifg=#FF0000 guibg=#FFEAE0 +hi DiffChange gui=BOLD guifg=#303030 guibg=#FFFFFF +hi DiffDelete gui=NONE guifg=#FFFFFF guibg=#FF0000 +hi DiffAdd gui=NONE guifg=#008000 guibg=#00FF00 + +" Cursor +hi Cursor gui=BOLD guifg=#FFFFFF guibg=#000000 +hi lCursor gui=BOLD guifg=#f8f8f8 guibg=#162CF7 +hi CursorIM gui=NONE guifg=#f8f8f8 guibg=#162CF7 + +" Fold +hi Folded gui=BOLD guifg=#0E8ED3 guibg=#DBF2FF +hi FoldColumn gui=NONE guifg=#0E8ED3 guibg=#DBF2FF + +" Other +hi LineNr gui=BOLD guifg=#00A0FF guibg=#DBF2FF +hi Directory gui=BOLD guifg=#0A6799 guibg=#FFFFFF +hi NonText gui=BOLD guifg=#009999 guibg=#FFFFFF +hi SpecialKey gui=BOLD guifg=#2020FF guibg=#FFFFFF +hi Title gui=BOLD guifg=#0000A0 guibg=#FFFFFF +hi Visual gui=NONE guifg=#404060 guibg=#dddde8 + +" Syntax group +" purple was #8000FF +hi Comment gui=NONE guifg=#0E8ED3 guibg=#DBF2FF +hi Constant gui=NONE guifg=#303030 guibg=#F5F5F5 +hi Error gui=BOLD guifg=#FF0000 guibg=#FFFFFF +hi Identifier gui=NONE guifg=#1F89E0 guibg=#FFFFFF +hi Ignore gui=NONE guifg=#f8f8f8 guibg=#FFFFFF +hi PreProc gui=BOLD guifg=#0BBF20 guibg=#FFFFFF +hi Special gui=NONE guifg=#0E8ED3 guibg=#DBF2FF +hi Statement gui=BOLD guifg=#2E9BF4 guibg=#FFFFFF +hi Todo gui=NONE guifg=#FF0070 guibg=#FFE0F4 +hi Type gui=BOLD guifg=#0971F9 guibg=#FFFFFF +hi Underlined gui=UNDERLINE guifg=#0000ff guibg=NONE + +" HTML +hi htmlLink gui=UNDERLINE guifg=#0000ff guibg=NONE +hi htmlBold gui=BOLD +hi htmlBoldItalic gui=BOLD,ITALIC +hi htmlBoldUnderline gui=BOLD,UNDERLINE +hi htmlBoldUnderlineItalic gui=BOLD,UNDERLINE,ITALIC +hi htmlItalic gui=ITALIC +hi htmlUnderline gui=UNDERLINE +hi htmlUnderlineItalic gui=UNDERLINE,ITALIC + +" Scrollbar +hi Scrollbar gui=BOLD guifg=#00C0FF guibg=#FFFFFF +hi VertSplit gui=BOLD guifg=#FFFFFF guibg=#0E8ED3 +hi Visual gui=BOLD guifg=#FFFFFF guibg=#1679F9 + + diff --git a/.vim/colors/tcsoft.vim b/.vim/colors/tcsoft.vim new file mode 100644 index 0000000..072831e --- /dev/null +++ b/.vim/colors/tcsoft.vim @@ -0,0 +1,62 @@ +" Vim Farben-Datei +" Ersteller: Ingo Fabbri <vim@tcsoft.net> +" Letzte Änderung: 2003 May 13 + +" Mein persönliches Farbschema. Es schont die Augen, da es keine grellen Farben verwendet. +" Am Besten geignet für PHP + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = "TCSoft" + +" Farb-Einstellungen für das GUI +hi Normal guifg=#000000 guibg=#FFFFFF "Schwarze Schrift auf weißem Hintergrund + +hi Ignore guifg=bg + +hi Comment guifg=#000099 gui=italic "dunkelblau +hi Constant guifg=#666666 gui=NONE "grau +hi Special guifg=#FF0000 gui=NONE "rot +hi Identifier guifg=#993300 gui=NONE "rostfarbig +hi Statement guifg=#FF9900 gui=NONE "orange +hi PreProc guifg=#009900 gui=NONE "dunkelgrün +hi Type guifg=#FF9900 gui=bold "orange +hi Cursor guifg=#000000 gui=reverse "schwarz +hi LineNr guifg=#000000 gui=NONE "schwarz +hi StatusLine guifg=#000000 gui=reverse,bold "schwarz + +hi link Function PreProc +hi link String Constant +hi link Character Constant + +hi! link MoreMsg Comment +hi! link ErrorMsg Visual +hi! link WarningMsg ErrorMsg +hi! link Question Comment + +hi link Number Special +hi link Boolean Constant +hi link Float Number + +hi link Operator Identifier +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc + +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement + +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Comment +hi link Debug Special diff --git a/.vim/colors/tibet.vim b/.vim/colors/tibet.vim new file mode 100644 index 0000000..48807bf --- /dev/null +++ b/.vim/colors/tibet.vim @@ -0,0 +1,101 @@ +" Vim color file +" Maintainer: Miguel Figueiredo + +" /usr/X11R6/lib/X11 +set background=dark + +if exists("syntax_on") + syntax reset +endif + +let g:colors_name="tibet" + +hi Normal guifg=ivory guibg=darkred + +" highlight groups +"hi Cursor guibg=khaki guifg=slategrey +hi Cursor guibg=blue4 guifg=white +"hi CursorIM +"hi Directory +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +"hi ErrorMsg +"hi VertSplit guibg=#c2bfa5 guifg=grey50 gui=none +hi VertSplit guibg=darkgreen guifg=white gui=none +hi Folded guibg=darkred guifg=gold +hi FoldColumn guibg=grey30 guifg=tan +hi IncSearch guifg=slategrey guibg=khaki +hi LineNr guifg=yellow guibg=darkred +hi ModeMsg guifg=goldenrod +hi MoreMsg guifg=SeaGreen +hi NonText guifg=LightBlue guibg=darkred +hi Question guifg=springgreen +hi Search guibg=peru guifg=wheat +hi SpecialKey guifg=yellowgreen +hi StatusLine guibg=#c2bfa5 guifg=black gui=none +hi StatusLineNC guibg=#c2bfa5 guifg=grey50 gui=none +hi Title guifg=indianred +"hi Visual gui=none guifg=khaki guibg=olivedrab +hi Visual gui=none guifg=white guibg=#003300 +"hi VisualNOS +hi WarningMsg guifg=salmon +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment guifg=goldenrod +hi Constant guifg=#ffa0a0 +"hi String guifg=blue +hi Identifier guifg=palegreen +hi Statement guifg=khaki +hi PreProc guifg=#ffa0a0 +"hi Type guifg=darkkhaki +hi Type guifg=khaki +hi Special guifg=navajowhite +"hi Underlined +hi Ignore guifg=grey40 +"hi Error +hi Todo guifg=yellow guibg=#003300 + +" color terminal definitions +hi SpecialKey ctermfg=darkgreen +hi NonText cterm=bold ctermfg=darkblue +hi Directory ctermfg=darkcyan +hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 +hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green +hi Search cterm=NONE ctermfg=grey ctermbg=blue +hi MoreMsg ctermfg=darkgreen +hi ModeMsg cterm=NONE ctermfg=brown +hi LineNr ctermfg=3 +hi Question ctermfg=green +hi StatusLine cterm=bold,reverse +hi StatusLineNC cterm=reverse +hi VertSplit cterm=reverse +hi Title ctermfg=5 +hi Visual cterm=reverse +hi VisualNOS cterm=bold,underline +hi WarningMsg ctermfg=1 +hi WildMenu ctermfg=0 ctermbg=3 +hi Folded ctermfg=darkgrey ctermbg=NONE +hi FoldColumn ctermfg=darkgrey ctermbg=NONE +hi DiffAdd ctermbg=4 +hi DiffChange ctermbg=5 +hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 +hi DiffText cterm=bold ctermbg=1 +hi Comment ctermfg=darkcyan +hi Constant ctermfg=brown +hi Special ctermfg=5 +hi Identifier ctermfg=6 +hi Statement ctermfg=3 +hi PreProc ctermfg=5 +hi Type ctermfg=2 +hi Underlined cterm=underline ctermfg=5 +hi Ignore ctermfg=darkgrey +hi Error cterm=bold ctermfg=7 ctermbg=1 + + +" diff --git a/.vim/colors/tolerable.vim b/.vim/colors/tolerable.vim new file mode 100644 index 0000000..7b97b9a --- /dev/null +++ b/.vim/colors/tolerable.vim @@ -0,0 +1,43 @@ +" Vim color file +" Maintainer: Ian Langworth +" Last Change: 2004 Dec 24 +" Email: <langworth.com> + +" Color settings inspired by BBEdit for Mac OS, plus I liked +" the low-contrast comments from the 'oceandeep' colorscheme + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="tolerable" + +hi Cursor guifg=white guibg=darkgreen + +hi Normal gui=none guifg=black guibg=white +hi NonText gui=none guifg=orange guibg=white + +hi Statement gui=none guifg=blue +hi Special gui=none guifg=red +hi Constant gui=none guifg=darkred +hi Comment gui=none guifg=#555555 +hi Preproc gui=none guifg=darkcyan +hi Type gui=none guifg=darkmagenta +hi Identifier gui=none guifg=darkgreen +hi Title gui=none guifg=black + +hi StatusLine gui=none guibg=#333333 guifg=white +hi StatusLineNC gui=none guibg=#333333 guifg=white +hi VertSplit gui=none guibg=#333333 guifg=white + +hi Visual gui=none guibg=green guifg=black +hi Search gui=none guibg=yellow +hi Directory gui=none guifg=darkblue +hi WarningMsg gui=none guifg=red +hi Error gui=none guifg=white guibg=red +hi Todo gui=none guifg=black guibg=yellow + +hi MoreMsg gui=none +hi ModeMsg gui=none + diff --git a/.vim/colors/tomatosoup.vim b/.vim/colors/tomatosoup.vim new file mode 100644 index 0000000..7864aed --- /dev/null +++ b/.vim/colors/tomatosoup.vim @@ -0,0 +1,80 @@ +" Vim color file +" Maintainer: Michael Brailsford <brailsmt@yahoo.com> +" Date: $Date: 2002/04/11 03:29:51 $ +" Version: $Revision: 1.4 $ + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +" your pick: +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="tomatosoup" + +hi Normal guifg=black guibg=tomato1 ctermfg=14 + +"Toggle semicolon matching at the end of lines +nmap <silent> <leader>; :call ToggleSemicolonHighlighting()<cr> +"{{{ +function! ToggleSemicolonHighlighting() + if exists("b:semicolon") + unlet b:semicolon + hi semicolon guifg=NONE gui=NONE ctermfg=NONE + else + syn match semicolon #;$# + hi semicolon guifg=red gui=bold ctermfg=1 + let b:semicolon = 1 + endif +endfunction +"}}} + +hi Cursor guifg=bg guibg=fg ctermfg=0 ctermbg=11 +"hi CursorIM +hi Directory gui=bold +hi DiffAdd guifg=yellow guibg=darkgreen ctermbg=0 +"hi DiffChange +"hi DiffDelete +"hi DiffText +hi ErrorMsg guibg=red ctermfg=1 +"hi VertSplit +hi Folded guibg=darkred ctermbg=4 guifg=gold ctermfg=11 gui=bold +hi FoldColumn guibg=darkred ctermbg=14 guifg=gold ctermfg=11 gui=bold +"hi IncSearch +hi LineNr guifg=yellow ctermfg=11 +hi ModeMsg guifg=yellow gui=bold +"hi MoreMsg +"hi NonText +"hi Question +hi Search guibg=yellow guifg=bg +"hi SpecialKey +hi StatusLine guifg=brown +hi StatusLineNC guifg=darkred +"hi Title +hi Visual guifg=fg guibg=bg +"hi VisualNOS +"hi WarningMsg +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment guifg=pink ctermfg=10 +hi Constant guifg=lightmagenta gui=bold ctermfg=13 +hi String guifg=grey85 ctermfg=5 +hi Character guifg=violet ctermfg=5 +hi Number guifg=red ctermfg=5 +"hi Identifier +hi Statement guifg=khaki1 gui=bold ctermfg=15 cterm=underline +hi PreProc guifg=white gui=italic ctermfg=9 +hi Type guifg=yellow gui=bold ctermfg=3 +hi Special guifg=red gui=bold +"hi Underlined +"hi Ignore +"hi Error +hi Todo guifg=yellow guibg=blue gui=bold diff --git a/.vim/colors/toothpik.vim b/.vim/colors/toothpik.vim new file mode 100644 index 0000000..22e07a1 --- /dev/null +++ b/.vim/colors/toothpik.vim @@ -0,0 +1,45 @@ +set background=light +highlight clear +if exists( "syntax_on" ) + syntax reset +endif +let g:colors_name="toothpik" + +highlight Comment term=bold guifg=Yellow +highlight Constant term=underline guifg=Blue guibg=grey +highlight Cursor gui=reverse guifg=red guibg=white +highlight lCursor guifg=black guibg=green +highlight DiffAdd term=bold guibg=LightBlue +highlight DiffChange term=bold guibg=LightMagenta +highlight DiffDelete term=bold gui=bold guifg=Blue guibg=LightCyan +highlight DiffText term=reverse gui=bold guibg=Red +highlight Directory term=bold guifg=Blue +highlight Error term=reverse guifg=White guibg=Red +highlight ErrorMsg term=standout guifg=White guibg=Red +highlight Folded term=standout guifg=DarkBlue guibg=LightGrey +highlight FoldColumn term=standout guifg=DarkBlue guibg=Grey +highlight Identifier term=underline guifg=DarkCyan +highlight Ignore guifg=bg +highlight IncSearch term=reverse gui=reverse +highlight LineNr term=underline guifg=Brown +highlight MoreMsg term=bold gui=bold guifg=SeaGreen +highlight ModeMsg term=bold gui=bold +highlight NonText term=bold gui=bold guifg=Blue guibg=grey +highlight Normal guibg=grey font='Fixedsys' +highlight Question term=standout gui=bold guifg=SeaGreen +highlight PreProc term=underline guifg=Purple +highlight Search term=reverse guibg=Yellow +highlight Special term=bold guifg=darkred guibg=grey +highlight SpecialKey term=bold guifg=Blue +highlight Statement term=bold gui=bold guifg=Brown +highlight StatusLine term=bold,reverse gui=bold,reverse +highlight StatusLineNC term=reverse gui=reverse +highlight Title term=bold gui=bold guifg=Magenta +highlight Todo term=standout guifg=Blue guibg=Yellow +highlight Type term=underline gui=bold guifg=DarkGreen +highlight Underlined term=underline gui=underline guifg=SlateBlue +highlight VertSplit term=reverse gui=reverse +highlight Visual term=reverse gui=reverse guifg=Yellow guibg=Black +highlight VisualNOS term=bold,underline gui=bold,underline +highlight WarningMsg term=standout guifg=Red +highlight WildMenu term=standout guifg=Black guibg=Yellow diff --git a/.vim/colors/torte.vim b/.vim/colors/torte.vim new file mode 100644 index 0000000..f28ed60 --- /dev/null +++ b/.vim/colors/torte.vim @@ -0,0 +1,51 @@ +" Vim color file +" Maintainer: Thorsten Maerz <info@netztorte.de> +" Last Change: 2001 Jul 23 +" grey on black +" optimized for TFT panels +" $Revision: 1.1 $ + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +"colorscheme default +let g:colors_name = "torte" + +" hardcoded colors : +" GUI Comment : #80a0ff = Light blue + +" GUI +highlight Normal guifg=Grey80 guibg=Black +highlight Search guifg=Black guibg=Red gui=bold +highlight Visual guifg=Grey25 gui=bold +highlight Cursor guifg=Black guibg=Green gui=bold +highlight Special guifg=Orange +highlight Comment guifg=#80a0ff +highlight StatusLine guifg=blue guibg=white +highlight Statement guifg=Yellow gui=NONE +highlight Type gui=NONE + +" Console +highlight Normal ctermfg=LightGrey ctermbg=Black +highlight Search ctermfg=Black ctermbg=Red cterm=NONE +highlight Visual cterm=reverse +highlight Cursor ctermfg=Black ctermbg=Green cterm=bold +highlight Special ctermfg=Brown +highlight Comment ctermfg=Blue +highlight StatusLine ctermfg=blue ctermbg=white +highlight Statement ctermfg=Yellow cterm=NONE +highlight Type cterm=NONE + +" only for vim 5 +if has("unix") + if v:version<600 + highlight Normal ctermfg=Grey ctermbg=Black cterm=NONE guifg=Grey80 guibg=Black gui=NONE + highlight Search ctermfg=Black ctermbg=Red cterm=bold guifg=Black guibg=Red gui=bold + highlight Visual ctermfg=Black ctermbg=yellow cterm=bold guifg=Grey25 gui=bold + highlight Special ctermfg=LightBlue cterm=NONE guifg=LightBlue gui=NONE + highlight Comment ctermfg=Cyan cterm=NONE guifg=LightBlue gui=NONE + endif +endif + diff --git a/.vim/colors/transparent.vim b/.vim/colors/transparent.vim new file mode 100644 index 0000000..274cd8e --- /dev/null +++ b/.vim/colors/transparent.vim @@ -0,0 +1,97 @@ +" Vim color file +" Maintainer: Sir Raorn <raorn@altlinux.ru> +" Last Change: Nov 10, 2002 +" URL: http://hell.binec.ru/ + +" This color scheme uses "transparent" background (dark dark blue in gvim) +" Looks really nice when vim (console) started in transparent aterm +" But gvim is good either +set background=dark + +" First remove all existing highlighting. +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="transparent" + +" default groups +hi Normal ctermfg=Gray ctermbg=NONE guifg=Gray guibg=#00002A + +hi Cursor guifg=Black guibg=Green +"hi CursorIM NONE guifg=Black guibg=Purple +hi Directory ctermfg=White guifg=White +hi DiffAdd ctermfg=White ctermbg=DarkCyan guifg=White guibg=DarkCyan +hi DiffChange ctermfg=Black ctermbg=Gray guifg=Black guibg=DarkGray +hi DiffDelete ctermfg=White ctermbg=DarkRed guifg=White guibg=DarkRed +hi DiffText cterm=bold ctermfg=White ctermbg=Gray gui=bold guifg=White guibg=DarkGray +hi ErrorMsg ctermfg=White ctermbg=DarkRed guifg=White guibg=DarkRed +hi VertSplit cterm=reverse gui=reverse +hi Folded cterm=bold ctermfg=Cyan ctermbg=NONE gui=bold guifg=Cyan guibg=DarkCyan +hi FoldColumn ctermfg=Green ctermbg=NONE guifg=Green guibg=#00002A +hi IncSearch ctermfg=White ctermbg=Black guifg=White guibg=Black +hi LineNr ctermfg=Yellow guifg=DarkCyan +hi ModeMsg cterm=bold ctermfg=White gui=bold guifg=White +hi MoreMsg cterm=bold ctermfg=White gui=bold guifg=White +hi NonText ctermfg=NONE guifg=NONE +hi Question ctermfg=Green guifg=Green +hi Search cterm=reverse ctermfg=fg ctermbg=NONE gui=reverse guifg=fg guibg=bg +hi SpecialKey ctermfg=LightRed guifg=Red +hi StatusLine cterm=bold,reverse ctermfg=White ctermbg=Black gui=bold,reverse guifg=White guibg=Black +hi StatusLineNC cterm=reverse ctermfg=Gray ctermbg=Black gui=reverse guifg=DarkGray guibg=Black +hi Title ctermfg=LightGreen gui=bold guifg=Green +hi Visual cterm=inverse ctermfg=White ctermbg=DarkGray gui=inverse guifg=DarkGray guibg=Black +hi VisualNOS cterm=bold,underline gui=bold,underline +hi WarningMsg ctermfg=White ctermbg=DarkRed guifg=White guibg=DarkRed +hi WildMenu cterm=bold ctermfg=Black ctermbg=Yellow gui=bold guifg=Black guibg=Yellow +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment ctermfg=DarkCyan guifg=DarkCyan + +hi Constant ctermfg=LightGreen guifg=LightGreen +hi String ctermfg=Yellow guifg=Yellow +hi Character ctermfg=Yellow guifg=Yellow +"hi Number +"hi Boolean +"hi Float + +hi Identifier ctermfg=LightCyan guifg=LightCyan +hi Function ctermfg=White guifg=White + +hi Statement ctermfg=Yellow guifg=Yellow +"hi Conditional +"hi Repeat +hi Label ctermfg=White guifg=White +hi Operator ctermfg=Green guifg=Green +"hi Keyword +hi Exception ctermfg=Black ctermbg=DarkRed guifg=Black guibg=DarkRed + +hi PreProc ctermfg=DarkGreen guifg=DarkGreen +"hi Include +"hi Define +"hi Macro +"hi PreCondit + +hi Type ctermfg=Green guifg=Green +"hi StorageClass +"hi Structure +hi Typedef ctermfg=Red guifg=Red + +hi Special ctermfg=Red guifg=Red +"hi SpecialChar +hi Tag ctermfg=LightGreen guifg=LightGreen +hi Delimiter ctermfg=Green guifg=Green +"hi SpecialComment +hi Debug ctermfg=White ctermbg=Black guifg=White guibg=Black + +hi Underlined cterm=underline gui=underline + +hi Ignore ctermfg=DarkBlue guifg=DarkBlue + +hi Error ctermfg=White ctermbg=DarkRed guifg=White guibg=DarkRed + +hi Todo ctermfg=Black ctermbg=Gray guifg=Black guibg=Gray + diff --git a/.vim/colors/turbo.vim b/.vim/colors/turbo.vim new file mode 100644 index 0000000..c6fda54 --- /dev/null +++ b/.vim/colors/turbo.vim @@ -0,0 +1,68 @@ +" Vim color file +" Maintainer: Bryant Casteel +" Web Site: http://bethings.provoplatinum.com +" Last Change: 2004 Jan. 22 + +" turbo -- Intended to look like the color scheme +" from Borland's Turbo C++ and Turbo Pascal. + +set bg=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "turbo" + + +hi Normal guifg=yellow guibg=#000040 ctermfg=yellow ctermbg=black +hi ErrorMsg guifg=#ffffff guibg=#287eff ctermfg=white ctermbg=lightblue +hi Visual guifg=#8080ff guibg=fg gui=reverse ctermfg=lightblue ctermbg=fg cterm=reverse +hi VisualNOS guifg=#8080ff guibg=fg gui=reverse,underline ctermfg=lightblue ctermbg=fg cterm=reverse,underline +hi Todo guifg=#d14a14 guibg=#1248d1 ctermfg=red ctermbg=darkblue +hi Search guifg=#90fff0 guibg=#2050d0 ctermfg=white ctermbg=darkblue cterm=underline +hi IncSearch guifg=#b0ffff guibg=#2050d0 ctermfg=darkblue ctermbg=gray + + +hi SpecialKey guifg=cyan ctermfg=darkcyan +hi Directory guifg=cyan ctermfg=cyan +hi Title guifg=magenta gui=none ctermfg=magenta cterm=bold +hi WarningMsg guifg=red ctermfg=red +hi WildMenu guifg=yellow guibg=black ctermfg=yellow ctermbg=black cterm=none +hi ModeMsg guifg=#22cce2 ctermfg=lightblue +hi MoreMsg guifg=darkgreen ctermfg=darkgreen +hi Question guifg=green gui=none ctermfg=green cterm=none +hi NonText guifg=#0030ff ctermfg=darkblue + +" Split window status bar +hi StatusLine guifg=blue guibg=yellow gui=none ctermfg=blue ctermbg=gray cterm=none +hi StatusLineNC guifg=black guibg=green gui=none ctermfg=black ctermbg=gray cterm=none +hi VertSplit guifg=black guibg=orange gui=none ctermfg=black ctermbg=gray cterm=none + +" Folded code +hi Folded guifg=#808080 guibg=#000040 ctermfg=darkgrey ctermbg=black cterm=bold +hi FoldColumn guifg=#808080 guibg=#000040 ctermfg=darkgrey ctermbg=black cterm=bold +hi LineNr guifg=#90f020 ctermfg=green cterm=none + + +hi DiffAdd guibg=darkblue ctermbg=darkblue cterm=none +hi DiffChange guibg=darkmagenta ctermbg=magenta cterm=none +hi DiffDelete guifg=Blue guibg=DarkCyan gui=bold ctermfg=blue ctermbg=cyan +hi DiffText guibg=Red gui=bold ctermbg=red cterm=bold + +" Cursor +hi Cursor guifg=#000020 guibg=#ffaf38 ctermfg=bg ctermbg=brown +hi lCursor guifg=#ffffff guibg=#000000 ctermfg=bg ctermbg=darkgreen + +" Syntax highlighting: +hi Comment guifg=darkcyan ctermfg=darkcyan +hi Constant guifg=darkred ctermfg=darkred cterm=none +hi Special guifg=magenta gui=none ctermfg=magenta cterm=none +hi Identifier guifg=green ctermfg=green cterm=none +hi Statement guifg=white gui=bold ctermfg=white cterm=bold +hi PreProc guifg=darkgreen gui=none ctermfg=darkgreen cterm=none +hi type guifg=grey gui=bold ctermfg=grey cterm=bold +hi Underlined gui=underline cterm=underline +hi Ignore guifg=bg ctermfg=bg + + diff --git a/.vim/colors/umber-green.vim b/.vim/colors/umber-green.vim new file mode 100644 index 0000000..d1743a1 --- /dev/null +++ b/.vim/colors/umber-green.vim @@ -0,0 +1,89 @@ +" Vim color file +" Maintainer: horrorvacui-at-gmx.net +" Last Change: today... oh yes, it's 16.9.03 +" URL: + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +" your pick: +set background=dark " or light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="umber-green" + +"hi Normal + +" OR + +" highlight clear Normal +" set background& +" highlight clear +" if &background == "light" +" highlight Error ... +" ... +" else +" highlight Error ... +" ... +" endif + +" A good way to see what your colorscheme does is to follow this procedure: +" :w +" :so % +" +" Then to see what the current setting is use the highlight command. +" For example, +" :hi Cursor +" gives +" Cursor xxx guifg=bg guibg=fg + +" Uncomment and complete the commands you want to change from the default. + +hi Cursor guibg=#ffffff +"hi CursorIM +"hi Directory +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +"hi ErrorMsg +"hi VertSplit +"hi Folded +"hi FoldColumn +"hi IncSearch +hi LineNr guifg=#e2844d guibg=#000000 +"hi ModeMsg +"hi MoreMsg +"hi NonText +"hi Question +"hi Search +"hi SpecialKey +hi StatusLine guifg=#ffffff +hi StatusLineNC guifg=#ffffff +"hi Title +"hi Visual +"hi VisualNOS +"hi WarningMsg +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Normal guifg=#eeaa11 guibg=#333333 +hi Comment guifg=#ff5555 +hi Constant guifg=#eeaa11 +hi Identifier guifg=#0000ff +hi Statement guifg=#77ee44 +hi PreProc guifg=#ff0000 +hi Type guifg=#eecc88 +hi Special guifg=#ddffcc +"hi Underlined +"hi Ignore +"hi Error +"hi Todo + diff --git a/.vim/colors/vc.vim b/.vim/colors/vc.vim new file mode 100644 index 0000000..53ecc22 --- /dev/null +++ b/.vim/colors/vc.vim @@ -0,0 +1,24 @@ +" Vim color file +" Maintainer: Vladimir Vrzic <random@bsd.org.yu> +" Last Change: 28. june 2003. +" URL: http://galeb.etf.bg.ac.yu/~random/pub/vim/ + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="vc" + +hi Comment gui=NONE guifg=SeaGreen guibg=NONE +hi Constant gui=NONE guifg=#004488 guibg=NONE +"hi Identifier gui=NONE guifg=Blue guibg=NONE +hi Statement gui=NONE guifg=Blue guibg=NONE +hi PreProc gui=NONE guifg=Blue guibg=NONE +hi Type gui=NONE guifg=Blue guibg=NONE +hi Special gui=NONE guifg=SteelBlue guibg=NONE +"hi Underlined +"hi Ignore +"hi Error +"hi Todo + diff --git a/.vim/colors/vcbc.vim b/.vim/colors/vcbc.vim new file mode 100644 index 0000000..07777c3 --- /dev/null +++ b/.vim/colors/vcbc.vim @@ -0,0 +1,31 @@ +" Vim color file +" Maintainer: Rajas Sambhare <rajas dot sambhare squigglylittleA gmail dot com> +" Last Change: Nov 18, 2004 +" Version: 1.0 +" Based on the colors for Visual C++ 6.0 and Beyond Compare for diffs. +" Inspired by vc.vim by Vladimir Vrzic + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="vcbc" + +hi Normal cterm=NONE ctermfg=Black ctermbg=White gui=NONE guifg=NONE guibg=NONE +hi NonText cterm=NONE ctermfg=Black ctermbg=Grey gui=NONE guifg=NONE guibg=LightGrey +hi LineNr cterm=NONE ctermfg=Black ctermbg=LightGrey gui=NONE guifg=NONE guibg=LightGrey +hi Comment cterm=NONE ctermfg=DarkGreen ctermbg=White gui=italic guifg=DarkGreen guibg=NONE +hi Constant cterm=NONE ctermfg=Red ctermbg=White gui=NONE guifg=Red guibg=NONE +hi Identifier cterm=NONE ctermfg=LightBlue ctermbg=White gui=NONE guifg=LightBlue guibg=NONE +hi Statement cterm=bold ctermfg=Blue ctermbg=White gui=bold guifg=Blue guibg=NONE +hi PreProc cterm=NONE ctermfg=DarkRed ctermbg=White gui=NONE guifg=DarkRed guibg=NONE +hi Type cterm=NONE ctermfg=Blue ctermbg=White gui=NONE guifg=Blue guibg=NONE +hi Underlined cterm=NONE ctermfg=Black ctermbg=White gui=underline guifg=NONE guibg=NONE +hi Error cterm=NONE ctermfg=Yellow ctermbg=Red gui=NONE guifg=Yellow guibg=Red +hi Todo cterm=NONE ctermfg=Black ctermbg=Yellow gui=NONE guifg=NONE guibg=LightYellow +"Diff colors +hi DiffAdd cterm=NONE ctermfg=Red ctermbg=LightGrey gui=NONE guifg=Red guibg=#fff0f0 +hi DiffChange cterm=NONE ctermfg=Red ctermbg=LightGrey gui=NONE guifg=Red guibg=#fff0f0 +hi DiffText cterm=NONE ctermfg=White ctermbg=DarkRed gui=bold,italic guifg=Red guibg=#fff0f0 +hi DiffDelete cterm=NONE ctermfg=White ctermbg=LightGrey gui=NONE guifg=DarkGrey guibg=#f0f0f0 diff --git a/.vim/colors/white.vim b/.vim/colors/white.vim new file mode 100644 index 0000000..25d055b --- /dev/null +++ b/.vim/colors/white.vim @@ -0,0 +1,62 @@ +" Vim color file +" created by mksa on 30.10.2003 10:58:20 +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + + + +set background=light +" First remove all existing highlighting. +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name="white" + +" color terminal definitions +hi Normal ctermfg=black ctermbg=white guifg=black guibg=white +hi SpecialKey ctermfg=darkgreen guifg=darkgreen +hi NonText ctermfg=black ctermbg=white guifg=black guibg=white +hi Directory ctermfg=darkcyan guifg=darkcyan +hi ErrorMsg ctermfg=lightred ctermbg=yellow guifg=lightred guibg=yellow +hi IncSearch ctermfg=white ctermbg=black guifg=white guibg=black +hi Search ctermfg=white ctermbg=black guifg=white guibg=black +hi MoreMsg ctermfg=darkgreen guifg=darkgreen +hi ModeMsg ctermfg=red guifg=red +hi LineNr ctermfg=yellow ctermbg=darkgrey guifg=yellow guibg=darkgrey +hi Question ctermfg=darkgreen guifg=darkgreen +"hi StatusLine cterm=reverse +hi StatusLineNC cterm=reverse +hi VertSplit cterm=reverse +hi Title ctermfg=lightred ctermbg=yellow guifg=red +hi Visual cterm=reverse +hi VisualNOS cterm=reverse +hi WarningMsg ctermfg=darkblue guifg=darkblue +hi WildMenu ctermfg=black ctermbg=darkcyan guifg=black guibg=darkcyan +hi Folded ctermfg=yellow ctermbg=darkgrey guifg=yellow guibg=darkgrey +hi FoldColumn ctermfg=yellow ctermbg=darkgrey guifg=yellow guibg=darkgrey +hi DiffAdd ctermfg=white ctermbg=red guifg=white guifg=red +hi DiffChange ctermfg=yellow ctermbg=magenta guifg=yellow guifg=magenta +hi DiffDelete ctermfg=red ctermbg=brown guifg=red guibg=brown +hi DiffText ctermbg=blue guibg=blue + +hi Comment ctermfg=white ctermbg=darkgrey guifg=white guibg=darkgrey +hi Constant ctermfg=darkblue guifg=darkblue +hi Special ctermfg=darkred guifg=darkred +hi Identifier ctermfg=darkmagenta guifg=darkmagenta +hi Statement ctermfg=blue guifg=blue +hi Operator ctermfg=blue guifg=blue +hi PreProc ctermfg=darkmagenta guifg=darkmagenta +hi Type ctermfg=blue guifg=blue +hi Underlined ctermbg=Yellow ctermfg=blue guifg=blue +hi Ignore ctermfg=grey guifg=grey +hi Error ctermfg=white ctermbg=red guifg=white guibg=red +hi Todo ctermfg=white ctermbg=darkgreen guifg=white guibg=darkgreen +hi String ctermfg=darkgreen guifg=darkgreen +hi Number ctermfg=magenta guifg=magenta + + +"vim: sw=4 diff --git a/.vim/colors/whitedust.vim b/.vim/colors/whitedust.vim new file mode 100644 index 0000000..a12dc7d --- /dev/null +++ b/.vim/colors/whitedust.vim @@ -0,0 +1,62 @@ +set background=light +hi clear + +hi Boolean guifg=#235C5C gui=bold +hi Character guifg=#235C5C gui=bold +hi Comment guifg=#808080 +hi Condtional guifg=#700000 +hi Constant guifg=#235C5C gui=bold +hi Cursor guifg=#FFFFFF guibg=#515151 +hi Debug guifg=#235C5C gui=bold +hi Define guifg=#003050 gui=bold +hi Delimiter guifg=#707070 +hi DiffAdd guibg=#9EC3B9 +hi DiffChange guibg=#CCCCCC +hi DiffDelete guifg=#CCCCCC guibg=#B9B9B9 gui=none +hi DiffText guifg=#000000 guibg=#E0E0E0 gui=bold +hi Directory guifg=#000000 gui=bold +hi Error guifg=#FFFFFF guibg=#FF0000 +hi ErrorMsg guifg=#FFFFFF guibg=#FF3F30 +hi Exception guifg=#700000 gui=underline +hi Float guifg=#636C4C +hi FoldColumn guifg=#235C5C guibg=#B9B9B9 +hi Folded guifg=#235C5C guibg=#CCCCCC +hi Function guifg=#000070 +hi Identifier guifg=#000000 +hi Include guifg=#003050 gui=bold +hi IncSearch guifg=#FFFFFF guibg=#3EA399 +hi Keyword guifg=#000000 gui=bold +hi Label guifg=#700000 gui=underline +hi LineNr guifg=#808080 guibg=#B9B9B9 +hi Macro guifg=#003050 gui=bold +hi ModeMsg guifg=#235C5C gui=bold +hi MoreMsg guifg=#000000 gui=bold +hi NonText guifg=#E0E0E0 +hi Normal guifg=#333333 guibg=#C0C0C0 +hi Number guifg=#535F5C +hi Operator guifg=#000000 +hi PreCondit guifg=#205070 gui=bold +hi PreProc guifg=#003050 gui=bold +hi Question guifg=#000000 gui=bold +hi Repeat guifg=#700000 gui=underline +hi Search guifg=#FFFFFF guibg=#3EA399 +hi SpecialChar guifg=#235C5C gui=bold +hi SpecialComment guifg=#235C5C gui=bold +hi Special guifg=#808080 +hi SpecialKey guifg=#818181 +hi Statement guifg=#700000 +hi StatusLine guifg=#CCCCCC guibg=#0E7369 +hi StatusLineNC guifg=#CCCCCC guibg=#333333 +hi StorageClass guifg=#000000 gui=bold +hi String guifg=#336C6C +hi Structure guifg=#000000 gui=bold,underline +hi Tag guifg=#235C5C gui=bold +hi Title guifg=#000000 guibg=#CCCCCC gui=bold +hi Todo guifg=#000000 guibg=#FFFFFF gui=bold +hi Typedef guifg=#000000 gui=bold,underline +hi Type guifg=#000000 gui=bold +hi VertSplit guifg=#CCCCCC guibg=#333333 +hi Visual guifg=#CCCCCC guibg=#0E7369 gui=reverse +hi VisualNOS guifg=#CCCCCC guibg=#0E7369 gui=bold,underline +hi WarningMsg guifg=#000000 guibg=#CCCCCC gui=bold +hi WildMenu guifg=#FFFFFF guibg=#235C5C diff --git a/.vim/colors/wintersday.vim b/.vim/colors/wintersday.vim new file mode 100644 index 0000000..9a77f7e --- /dev/null +++ b/.vim/colors/wintersday.vim @@ -0,0 +1,60 @@ +" Vim color file +" Mark Thomas <mark.thomas@bigswamp.org> +" Sun Feb 16, 2003 + +" This color scheme uses a dark background. + +" First remove all existing highlighting. +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "wintersday" + +hi Normal guifg=#CCCCCC guibg=#000000 + +hi Cursor gui=NONE guifg=#B9D3EE guibg=#8B8878 +"hi CursorIM +hi Directory gui=NONE guifg=#FFFFFF guibg=#000000 +hi DiffAdd gui=NONE guifg=#A0D0FF guibg=#0020A0 +hi DiffChange gui=NONE guifg=#E03870 guibg=#601830 +hi DiffDelete gui=NONE guifg=#A0D0FF guibg=#0020A0 +hi DiffText gui=NONE guifg=#FF9933 guibg=#A02860 +hi ErrorMsg gui=BOLD guifg=#FF6347 guibg=NONE +hi VertSplit gui=BOLD guifg=#FFFFFF guibg=#8B4513 +hi Folded gui=NONE guifg=#40F0F0 guibg=#005080 +hi FoldColumn gui=NONE guifg=#40C0FF guibg=#00305C +hi IncSearch gui=UNDERLINE guifg=#FFD700 guibg=#778899 +hi LineNr gui=NONE guifg=#696969 +hi ModeMsg gui=BOLD guifg=#990000 guibg=NONE +hi MoreMsg gui=BOLD guifg=#CC6666 guibg=NONE +hi NonText gui=BOLD guifg=#CC00FF guibg=NONE +hi Question gui=BOLD guifg=#CC00FF guibg=NONE +hi Search gui=NONE guifg=#FFD700 guibg=#778899 +hi SpecialKey gui=BOLD guifg=#CCCCCC guibg=NONE +hi StatusLine gui=BOLD guifg=#FFFFFF guibg=#8B4513 +hi StatusLineNC gui=BOLD guifg=#8B4513 guibg=#FFFFFF +hi Title gui=BOLD guifg=#CCCCCC guibg=NONE +hi Visual gui=NONE guifg=#B9D3EE guibg=#8B8878 +"hi VisualNOS +hi WarningMsg gui=BOLD guifg=#FFA0FF guibg=NONE +hi WildMenu gui=NONE guifg=#000000 guibg=#a0a0ff +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment gui=NONE guifg=#6699CC guibg=NONE +hi Constant gui=NONE guifg=#99CCFF guibg=NONE +hi Identifier gui=NONE guifg=#FFD700 guibg=NONE +hi Statement gui=NONE guifg=#CC6666 guibg=NONE +hi PreProc gui=NONE guifg=#40F0A0 guibg=NONE +hi Type gui=NONE guifg=#B0C4DE guibg=NONE +hi Special gui=NONE guifg=#00FFCC guibg=NONE +hi Underlined gui=NONE guifg=#FFFFFF guibg=NONE +hi Ignore gui=NONE guifg=#000000 guibg=NONE +hi Error gui=NONE guifg=#FFFFFF guibg=#FF0088 +hi Todo gui=BOLD guifg=#FFA0A0 guibg=NONE +hi Number gui=NONE guifg=#FFCCCC guibg=NONE diff --git a/.vim/colors/wombat.vim b/.vim/colors/wombat.vim new file mode 100644 index 0000000..9ad1e56 --- /dev/null +++ b/.vim/colors/wombat.vim @@ -0,0 +1,51 @@ +" Maintainer: Lars H. Nielsen (dengmao@gmail.com) +" Last Change: January 22 2007 + +set background=dark + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "wombat" + + +" Vim >= 7.0 specific colors +if version >= 700 + hi CursorLine guibg=#2d2d2d + hi CursorColumn guibg=#2d2d2d + hi MatchParen guifg=#f6f3e8 guibg=#857b6f gui=bold + hi Pmenu guifg=#f6f3e8 guibg=#444444 + hi PmenuSel guifg=#000000 guibg=#cae682 +endif + +" General colors +hi Cursor guifg=NONE guibg=#656565 gui=none +hi Normal guifg=#f6f3e8 guibg=#242424 gui=none +hi NonText guifg=#808080 guibg=#303030 gui=none +hi LineNr guifg=#857b6f guibg=#000000 gui=none +hi StatusLine guifg=#f6f3e8 guibg=#444444 gui=italic +hi StatusLineNC guifg=#857b6f guibg=#444444 gui=none +hi VertSplit guifg=#444444 guibg=#444444 gui=none +hi Folded guibg=#384048 guifg=#a0a8b0 gui=none +hi Title guifg=#f6f3e8 guibg=NONE gui=bold +hi Visual guifg=#f6f3e8 guibg=#444444 gui=none +hi SpecialKey guifg=#808080 guibg=#343434 gui=none + +" Syntax highlighting +hi Comment guifg=#99968b gui=italic +hi Todo guifg=#8f8f8f gui=italic +hi Constant guifg=#e5786d gui=none +hi String guifg=#95e454 gui=italic +hi Identifier guifg=#cae682 gui=none +hi Function guifg=#cae682 gui=none +hi Type guifg=#cae682 gui=none +hi Statement guifg=#8ac6f2 gui=none +hi Keyword guifg=#8ac6f2 gui=none +hi PreProc guifg=#e5786d gui=none +hi Number guifg=#e5786d gui=none +hi Special guifg=#e7f6da gui=none + + diff --git a/.vim/colors/xemacs.vim b/.vim/colors/xemacs.vim new file mode 100644 index 0000000..c47607c --- /dev/null +++ b/.vim/colors/xemacs.vim @@ -0,0 +1,46 @@ + +" Vim color file +" Maintainer: tranquility@portugalmail.pt +" Last Change: 5 June 2002 + + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="xemacs" + +hi Normal guibg=#cdcecd guifg=black +hi Cursor guibg=red guifg=grey gui=bold +hi VertSplit guibg=grey60 guifg=black gui=none +hi Folded guibg=royalblue3 guifg=white +hi FoldColumn guibg=royalblue4 guifg=white +hi ModeMsg guifg=#cdcecd guibg=black +hi MoreMsg guifg=#cdcecd guibg=black +hi NonText guifg=black guibg=#cdcecd gui=none +hi Question guifg=black +hi Search guibg=#aceeee +hi SpecialKey guifg=navyblue +hi Special guifg=navyblue +hi StatusLine guibg=#b7b7b7 guifg=black gui=none +hi StatusLineNC guibg=#a6b7b7 guifg=black gui=none +hi Title guifg=bisque3 +hi Subtitle guifg=black +hi Visual guibg=#a4a5a3 guifg=black gui=none +hi WarningMsg guibg=#cdcecd guifg=black gui=bold +hi Comment guifg=#00008b +hi Constant guifg=#008900 +hi Identifier guibg=#cdcecd guifg=black +hi Statement guifg=royalblue4 +hi PreProc guifg=#0000cd +hi Type guifg=#4a81b4 gui=NONE +hi Ignore guifg=grey29 +hi Todo guibg=gold guifg=black +hi WildMenu guibg=#b7b7b7 guibg=grey91 +hi Directory guibg=#cdcecd guifg=navyblue diff --git a/.vim/colors/xian.vim b/.vim/colors/xian.vim new file mode 100644 index 0000000..3cc02d8 --- /dev/null +++ b/.vim/colors/xian.vim @@ -0,0 +1,50 @@ +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "xian" + +hi Comment guifg=#C0C0C0 guibg=#946464 gui=underline +hi Constant guifg=#00FF80 guibg=#946464 gui=none +hi Cursor guifg=#00FFFF guibg=#000000 gui=reverse +hi DiffAdd guifg=#00FFFF guibg=#754F4F gui=bold,underline +hi DiffChange guibg=#754F4F +hi DiffDelete guifg=#C0C0C0 guibg=#754F4F gui=bold +hi DiffText guifg=#000000 guibg=#FF0000 gui=bold,underline +hi Directory guifg=#FFFF00 guibg=#946464 gui=underline +hi Error guifg=#000000 guibg=#FF0000 gui=bold,underline +hi ErrorMsg guifg=#000000 guibg=#FF0000 gui=bold,underline +hi FoldColumn guifg=#ffff74 guibg=#754F4F gui=bold +hi Folded guifg=#ffff74 guibg=#754F4F gui=underline +hi Identifier guifg=#EEAA73 guibg=#946464 gui=none +hi Ignore guifg=#946464 guibg=#946464 gui=none +hi IncSearch guifg=#FFFFFF guibg=#946464 gui=reverse +hi lCursor guifg=#FFFFFF guibg=#946464 gui=none +hi LineNr guifg=#C0C0C0 guibg=#754F4F gui=bold +hi Match guifg=#0000FF guibg=#FFFF00 gui=bold,reverse +hi ModeMsg guifg=#FFFFFF guibg=#946464 gui=bold +hi MoreMsg guifg=#d174a8 guibg=#946464 gui=bold +hi NonText guifg=#C0C0C0 guibg=#946464 gui=none +hi Normal guifg=#FFFFFF guibg=#946464 gui=none +hi PreProc guifg=#FFFF00 guibg=#946464 gui=none +hi Question guifg=#d174a8 guibg=#946464 gui=bold +hi Search guifg=#FFFF00 guibg=#FF8500 gui=underline +hi Special guifg=#bfbfef guibg=#946464 gui=none +hi SpecialKey guifg=#FFFF00 guibg=#946464 gui=none +hi Statement guifg=#5ad5d5 guibg=#946464 gui=bold +hi StatusLine guifg=#000000 guibg=#FFFFFF gui=bold +hi StatusLineNC guifg=#C0C0C0 guibg=#754F4F gui=bold +hi Title guifg=#74FF74 guibg=#946464 gui=bold +hi Todo guifg=#FFFF00 guibg=#0000FF gui=none +hi Type guifg=#FF74A8 guibg=#946464 gui=bold +hi User1 guifg=#999933 guibg=#45637F gui=bold +hi User2 guifg=#E7E77F guibg=#45637F gui=bold +hi User3 guifg=#000000 guibg=#45637F gui=bold +hi User4 guifg=#33CC99 guibg=#45637F gui=bold +hi VertSplit guifg=#FFFF00 guibg=#000000 gui=bold +hi Visual guifg=#FFFF00 guibg=#6B959B gui=none +hi VisualNOS guifg=#FFFFFF guibg=#946464 gui=underline +hi WarningMsg guifg=#000000 guibg=#FF0000 gui=bold,underline +hi WildMenu guifg=#FFFFFF guibg=#0000FF gui=none diff --git a/.vim/colors/zenburn.vim b/.vim/colors/zenburn.vim new file mode 100644 index 0000000..af9c07f --- /dev/null +++ b/.vim/colors/zenburn.vim @@ -0,0 +1,133 @@ +" Vim color file +" Maintainer: Jani Nurminen <jani.nurminen@intellitel.com> +" Last Change: $Id: zenburn.vim,v 1.13 2002/09/16 18:03:49 jnurmine Exp $ +" URL: Not yet... +" License: GPL +" +" Nothing too fancy, just some alien fruit salad to keep you in the zone. +" This syntax file was designed to be used with dark environments and +" low light situations. Of course, if it works during a daybright office, go +" ahead :) +" +" Owes heavily to other Vim color files! With special mentions +" to "BlackDust", "Camo" and "Desert". +" +" To install, copy to ~/.vim/colors directory. Then :colorscheme zenburn. +" See also :help syntax +" +" CONFIGURABLE PARAMETERS: +" +" You can use the default (don't set any parameters), or you can +" set some parameters to tweak the Zenlook colours. +" +" * To get more contrast to the Visual selection, use +" +" let g:zenburn_alternate_Visual = 1 +" +" * To use alternate colouring for Error message, use +" +" let g:zenburn_alternate_Error = 1 +" +" * The new default for Include is a duller orang.e To use the original +" colouring for Include, use +" +" let g:zenburn_alternate_Include = 1 +" +" * To turn the parameter(s) back to defaults, use unlet. +" +" That's it, enjoy! +" +" TODO +" - IME colouring (CursorIM) +" - obscure syntax groups: check and colourize +" - add more groups if necessary + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name="zenburn" + +hi Boolean guifg=#dca3a3 +hi Character guifg=#dca3a3 gui=bold +hi Comment guifg=#7f9f7f +hi Conditional guifg=#f0dfaf gui=bold +hi Constant guifg=#dca3a3 gui=bold +hi Cursor guifg=#000d18 guibg=#8faf9f gui=bold +hi Debug guifg=#dca3a3 gui=bold +hi Define guifg=#ffcfaf gui=bold +hi Delimiter guifg=#8f8f8f +hi DiffAdd guifg=#709080 guibg=#313c36 gui=bold +hi DiffChange guibg=#333333 +hi DiffDelete guifg=#333333 guibg=#464646 +hi DiffText guifg=#ecbcbc guibg=#41363c gui=bold +hi Directory guifg=#dcdccc gui=bold +hi ErrorMsg guifg=#60b48a guibg=#3f3f3f gui=bold +hi Exception guifg=#c3bf9f gui=bold +hi Float guifg=#c0bed1 +hi FoldColumn guifg=#93b3a3 guibg=#3f4040 +hi Folded guifg=#93b3a3 guibg=#3f4040 +hi Function guifg=#efef8f +hi Identifier guifg=#efdcbc +hi IncSearch guibg=#f8f893 guifg=#385f38 +hi Keyword guifg=#f0dfaf gui=bold +hi Label guifg=#dfcfaf gui=underline +hi LineNr guifg=#7f8f8f guibg=#464646 +hi Macro guifg=#ffcfaf gui=bold +hi ModeMsg guifg=#ffcfaf gui=none +hi MoreMsg guifg=#ffffff gui=bold +hi NonText guifg=#404040 +hi Normal guifg=#dcdccc guibg=#3f3f3f +hi Number guifg=#8cd0d3 +hi Operator guifg=#f0efd0 +hi PreCondit guifg=#dfaf8f gui=bold +hi PreProc guifg=#ffcfaf gui=bold +hi Question guifg=#ffffff gui=bold +hi Repeat guifg=#ffd7a7 gui=bold +hi Search guifg=#ffffe0 guibg=#385f38 +hi SpecialChar guifg=#dca3a3 gui=bold +hi SpecialComment guifg=#82a282 gui=bold +hi Special guifg=#cfbfaf +hi SpecialKey guifg=#9ece9e +hi Statement guifg=#e3ceab guibg=#3f3f3f gui=none +hi StatusLine guifg=#1e2320 guibg=#acbc90 +hi StatusLineNC guifg=#2e3330 guibg=#88b090 +hi StorageClass guifg=#c3bf9f gui=bold +hi String guifg=#cc9393 +hi Structure guifg=#efefaf gui=bold +hi Tag guifg=#dca3a3 gui=bold +hi Title guifg=#efefef guibg=#3f3f3f gui=bold +hi Todo guifg=#7faf8f guibg=#3f3f3f gui=bold +hi Typedef guifg=#dfe4cf gui=bold +hi Type guifg=#dfdfbf gui=bold +hi Underlined guifg=#dcdccc guibg=#3f3f3f gui=underline +hi VertSplit guifg=#303030 guibg=#688060 +hi VisualNOS guifg=#333333 guibg=#f18c96 gui=bold,underline +hi WarningMsg guifg=#ffffff guibg=#333333 gui=bold +hi WildMenu guibg=#2c302d guifg=#cbecd0 gui=underline + +if exists("g:zenburn_alternate_Visual") + " Visual with more contrast, thanks to Steve Hall & Cream posse + hi Visual guifg=#000000 guibg=#71d3b4 +else + " use default visual + hi Visual guifg=#233323 guibg=#71d3b4 +endif + +if exists("g:zenburn_alternate_Error") + " use a bit different Error + hi Error guifg=#ef9f9f guibg=#201010 gui=bold +else + " default + hi Error guifg=#e37170 guibg=#332323 gui=none +endif + +if exists("g:zenburn_alternate_Include") + " original setting + hi Include guifg=#ffcfaf gui=bold +else + " new, less contrasted one + hi Include guifg=#dfaf8f gui=bold +endif + " TODO check every syntax group that they're ok diff --git a/.vim/compiler/ghc.vim b/.vim/compiler/ghc.vim new file mode 100644 index 0000000..77a36ce --- /dev/null +++ b/.vim/compiler/ghc.vim @@ -0,0 +1,470 @@ + +" Vim Compiler File +" Compiler: GHC +" Maintainer: Claus Reinke <claus.reinke@talk21.com> +" Last Change: 21/04/2009 +" +" part of haskell plugins: http://projects.haskell.org/haskellmode-vim + +" ------------------------------ paths & quickfix settings first +" + +if exists("current_compiler") && current_compiler == "ghc" + finish +endif +let current_compiler = "ghc" + +let s:scriptname = "ghc.vim" + +if (!exists("g:ghc") || !executable(g:ghc)) + if !executable('ghc') + echoerr s:scriptname.": can't find ghc. please set g:ghc, or extend $PATH" + finish + else + let g:ghc = 'ghc' + endif +endif +let ghc_version = substitute(system(g:ghc . ' --numeric-version'),'\n','','') +if (!exists("b:ghc_staticoptions")) + let b:ghc_staticoptions = '' +endif + +" set makeprg (for quickfix mode) +execute 'setlocal makeprg=' . g:ghc . '\ ' . escape(b:ghc_staticoptions,' ') .'\ -e\ :q\ %' +"execute 'setlocal makeprg=' . g:ghc .'\ -e\ :q\ %' +"execute 'setlocal makeprg=' . g:ghc .'\ --make\ %' + +" quickfix mode: +" fetch file/line-info from error message +" TODO: how to distinguish multiline errors from warnings? +" (both have the same header, and errors have no common id-tag) +" how to get rid of first empty message in result list? +setlocal errorformat= + \%-Z\ %#, + \%W%f:%l:%c:\ Warning:\ %m, + \%E%f:%l:%c:\ %m, + \%E%>%f:%l:%c:, + \%+C\ \ %#%m, + \%W%>%f:%l:%c:, + \%+C\ \ %#%tarning:\ %m, + +" oh, wouldn't you guess it - ghc reports (partially) to stderr.. +setlocal shellpipe=2> + +" ------------------------- but ghc can do a lot more for us.. +" + +" allow map leader override +if !exists("maplocalleader") + let maplocalleader='_' +endif + +" initialize map of identifiers to their types +" associate type map updates to changedtick +if !exists("b:ghc_types") + let b:ghc_types = {} + let b:my_changedtick = b:changedtick +endif + +if exists("g:haskell_functions") + finish +endif +let g:haskell_functions = "ghc" + +" avoid hit-enter prompts +set cmdheight=3 + +" edit static GHC options +" TODO: add completion for options/packages? +command! GHCStaticOptions call GHC_StaticOptions() +function! GHC_StaticOptions() + let b:ghc_staticoptions = input('GHC static options: ',b:ghc_staticoptions) + execute 'setlocal makeprg=' . g:ghc . '\ ' . escape(b:ghc_staticoptions,' ') .'\ -e\ :q\ %' + let b:my_changedtick -=1 +endfunction + +map <LocalLeader>T :call GHC_ShowType(1)<cr> +map <LocalLeader>t :call GHC_ShowType(0)<cr> +function! GHC_ShowType(addTypeDecl) + let namsym = haskellmode#GetNameSymbol(getline('.'),col('.'),0) + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return 0 + endif + let [_,symb,qual,unqual] = namsym + let name = qual=='' ? unqual : qual.'.'.unqual + let pname = ( symb ? '('.name.')' : name ) + call GHC_HaveTypes() + if !has_key(b:ghc_types,name) + redraw + echo pname "type not known" + else + redraw + for type in split(b:ghc_types[name],' -- ') + echo pname "::" type + if a:addTypeDecl + call append( line(".")-1, pname . " :: " . type ) + endif + endfor + endif +endfunction + +" show type of identifier under mouse pointer in balloon +if has("balloon_eval") + set ballooneval + set balloondelay=600 + set balloonexpr=GHC_TypeBalloon() + function! GHC_TypeBalloon() + if exists("b:current_compiler") && b:current_compiler=="ghc" + let [line] = getbufline(v:beval_bufnr,v:beval_lnum) + let namsym = haskellmode#GetNameSymbol(line,v:beval_col,0) + if namsym==[] + return '' + endif + let [start,symb,qual,unqual] = namsym + let name = qual=='' ? unqual : qual.'.'.unqual + let pname = name " ( symb ? '('.name.')' : name ) + silent call GHC_HaveTypes() + if has("balloon_multiline") + return (has_key(b:ghc_types,pname) ? split(b:ghc_types[pname],' -- ') : '') + else + return (has_key(b:ghc_types,pname) ? b:ghc_types[pname] : '') + endif + else + return '' + endif + endfunction +endif + +map <LocalLeader>si :call GHC_ShowInfo()<cr> +function! GHC_ShowInfo() + let namsym = haskellmode#GetNameSymbol(getline('.'),col('.'),0) + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return 0 + endif + let [_,symb,qual,unqual] = namsym + let name = qual=='' ? unqual : (qual.'.'.unqual) + let output = GHC_Info(name) + pclose | new + setlocal previewwindow + setlocal buftype=nofile + setlocal noswapfile + put =output + wincmd w + "redraw + "echo output +endfunction + +" fill the type map, unless nothing has changed since the last attempt +function! GHC_HaveTypes() + if b:ghc_types == {} && (b:my_changedtick != b:changedtick) + let b:my_changedtick = b:changedtick + return GHC_BrowseAll() + endif +endfunction + +" update b:ghc_types after successful make +au QuickFixCmdPost make if GHC_CountErrors()==0 | silent call GHC_BrowseAll() | endif + +" count only error entries in quickfix list, ignoring warnings +function! GHC_CountErrors() + let c=0 + for e in getqflist() | if e.type=='E' && e.text !~ "^[ \n]*Warning:" | let c+=1 | endif | endfor + return c +endfunction + +command! GHCReload call GHC_BrowseAll() +function! GHC_BrowseAll() + " let imports = haskellmode#GatherImports() + " let modules = keys(imports[0]) + keys(imports[1]) + let imports = {} " no need for them at the moment + let current = GHC_NameCurrent() + let module = current==[] ? 'Main' : current[0] + if GHC_VersionGE([6,8,1]) + return GHC_BrowseBangStar(module) + else + return GHC_BrowseMultiple(imports,['*'.module]) + endif +endfunction + +function! GHC_VersionGE(target) + let current = split(g:ghc_version, '\.' ) + let target = a:target + for i in current + if ((target==[]) || (i>target[0])) + return 1 + elseif (i==target[0]) + let target = target[1:] + else + return 0 + endif + endfor + return 1 +endfunction + +function! GHC_NameCurrent() + let last = line("$") + let l = 1 + while l<last + let ml = matchlist( getline(l), '^module\s*\([^ (]*\)') + if ml != [] + let [_,module;x] = ml + return [module] + endif + let l += 1 + endwhile + redraw + echo "cannot find module header for file " . expand("%") + return [] +endfunction + +function! GHC_BrowseBangStar(module) + redraw + echo "browsing module " a:module + let command = ":browse! *" . a:module + let orig_shellredir = &shellredir + let &shellredir = ">" " ignore error/warning messages, only output or lack of it + let output = system(g:ghc . ' ' . b:ghc_staticoptions . ' -v0 --interactive ' . expand("%") , command ) + let &shellredir = orig_shellredir + return GHC_ProcessBang(a:module,output) +endfunction + +function! GHC_BrowseMultiple(imports,modules) + redraw + echo "browsing modules " a:modules + let command = ":browse " . join( a:modules, " \n :browse ") + let command = substitute(command,'\(:browse \(\S*\)\)','putStrLn "-- \2" \n \1','g') + let output = system(g:ghc . ' ' . b:ghc_staticoptions . ' -v0 --interactive ' . expand("%") , command ) + return GHC_Process(a:imports,output) +endfunction + +function! GHC_Info(what) + " call GHC_HaveTypes() + let output = system(g:ghc . ' ' . b:ghc_staticoptions . ' -v0 --interactive ' . expand("%"), ":i ". a:what) + return output +endfunction + +function! GHC_ProcessBang(module,output) + let module = a:module + let b = a:output + let linePat = '^\(.\{-}\)\n\(.*\)' + let contPat = '\s\+\(.\{-}\)\n\(.*\)' + let typePat = '^\(\)\(\S*\)\s*::\(.*\)' + let commentPat = '^-- \(\S*\)' + let definedPat = '^-- defined locally' + let importedPat = '^-- imported via \(.*\)' + if !(b=~commentPat) + echo s:scriptname.": GHCi reports errors (try :make?)" + return 0 + endif + let b:ghc_types = {} + let ml = matchlist( b , linePat ) + while ml != [] + let [_,l,rest;x] = ml + let mlDecl = matchlist( l, typePat ) + if mlDecl != [] + let [_,indent,id,type;x] = mlDecl + let ml2 = matchlist( rest , '^'.indent.contPat ) + while ml2 != [] + let [_,c,rest;x] = ml2 + let type .= c + let ml2 = matchlist( rest , '^'.indent.contPat ) + endwhile + let id = substitute( id, '^(\(.*\))$', '\1', '') + let type = substitute( type, '\s\+', " ", "g" ) + " using :browse! *<current>, we get both unqualified and qualified ids + let qualified = (id =~ '\.') && (id =~ '[A-Z]') + let b:ghc_types[id] = type + if !qualified + for qual in qualifiers + let b:ghc_types[qual.'.'.id] = type + endfor + endif + else + let mlImported = matchlist( l, importedPat ) + let mlDefined = matchlist( l, definedPat ) + if mlImported != [] + let [_,modules;x] = mlImported + let qualifiers = split( modules, ', ' ) + elseif mlDefined != [] + let qualifiers = [module] + endif + endif + let ml = matchlist( rest , linePat ) + endwhile + return 1 +endfunction + +function! GHC_Process(imports,output) + let b = a:output + let imports = a:imports + let linePat = '^\(.\{-}\)\n\(.*\)' + let contPat = '\s\+\(.\{-}\)\n\(.*\)' + let typePat = '^\(\s*\)\(\S*\)\s*::\(.*\)' + let modPat = '^-- \(\S*\)' + " add '-- defined locally' and '-- imported via ..' + if !(b=~modPat) + echo s:scriptname.": GHCi reports errors (try :make?)" + return 0 + endif + let b:ghc_types = {} + let ml = matchlist( b , linePat ) + while ml != [] + let [_,l,rest;x] = ml + let mlDecl = matchlist( l, typePat ) + if mlDecl != [] + let [_,indent,id,type;x] = mlDecl + let ml2 = matchlist( rest , '^'.indent.contPat ) + while ml2 != [] + let [_,c,rest;x] = ml2 + let type .= c + let ml2 = matchlist( rest , '^'.indent.contPat ) + endwhile + let id = substitute(id, '^(\(.*\))$', '\1', '') + let type = substitute( type, '\s\+', " ", "g" ) + " using :browse *<current>, we get both unqualified and qualified ids + if current_module " || has_key(imports[0],module) + if has_key(b:ghc_types,id) && !(matchstr(b:ghc_types[id],escape(type,'[].'))==type) + let b:ghc_types[id] .= ' -- '.type + else + let b:ghc_types[id] = type + endif + endif + if 0 " has_key(imports[1],module) + let qualid = module.'.'.id + let b:ghc_types[qualid] = type + endif + else + let mlMod = matchlist( l, modPat ) + if mlMod != [] + let [_,module;x] = mlMod + let current_module = module[0]=='*' + let module = current_module ? module[1:] : module + endif + endif + let ml = matchlist( rest , linePat ) + endwhile + return 1 +endfunction + +let s:ghc_templates = ["module _ () where","class _ where","class _ => _ where","instance _ where","instance _ => _ where","type family _","type instance _ = ","data _ = ","newtype _ = ","type _ = "] + +" use ghci :browse index for insert mode omnicompletion (CTRL-X CTRL-O) +function! GHC_CompleteImports(findstart, base) + if a:findstart + let namsym = haskellmode#GetNameSymbol(getline('.'),col('.'),-1) " insert-mode: we're 1 beyond the text + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return -1 + endif + let [start,symb,qual,unqual] = namsym + return (start-1) + else " find keys matching with "a:base" + let res = [] + let l = len(a:base)-1 + call GHC_HaveTypes() + for key in keys(b:ghc_types) + if key[0 : l]==a:base + let res += [{"word":key,"menu":":: ".b:ghc_types[key],"dup":1}] + endif + endfor + return res + endif +endfunction +set omnifunc=GHC_CompleteImports +set completeopt=menu,menuone,longest + +map <LocalLeader>ct :call GHC_CreateTagfile()<cr> +function! GHC_CreateTagfile() + redraw + echo "creating tags file" + let output = system(g:ghc . ' ' . b:ghc_staticoptions . ' -e ":ctags" ' . expand("%")) + " for ghcs older than 6.6, you would need to call another program + " here, such as hasktags + echo output +endfunction + +command! -nargs=1 GHCi redraw | echo system(g:ghc. ' ' . b:ghc_staticoptions .' '.expand("%").' -e "'.escape(<f-args>,'"').'"') + +" use :make 'not in scope' errors to explicitly list imported ids +" cursor needs to be on import line, in correctly loadable module +map <LocalLeader>ie :call GHC_MkImportsExplicit()<cr> +function! GHC_MkImportsExplicit() + let save_cursor = getpos(".") + let line = getline('.') + let lineno = line('.') + let ml = matchlist(line,'^import\(\s*qualified\)\?\s*\([^( ]\+\)') + if ml!=[] + let [_,q,mod;x] = ml + silent make + if getqflist()==[] + if line=~"import[^(]*Prelude" + call setline(lineno,substitute(line,"(.*","","").'()') + else + call setline(lineno,'-- '.line) + endif + silent write + silent make + let qflist = getqflist() + call setline(lineno,line) + silent write + let ids = {} + for d in qflist + let ml = matchlist(d.text,'Not in scope: \([^`]*\)`\([^'']*\)''') + if ml!=[] + let [_,what,qid;x] = ml + let id = ( qid =~ "^[A-Z]" ? substitute(qid,'.*\.\([^.]*\)$','\1','') : qid ) + let pid = ( id =~ "[a-zA-Z0-9_']\\+" ? id : '('.id.')' ) + if what =~ "data" + call GHC_HaveTypes() + if has_key(b:ghc_types,id) + let pid = substitute(b:ghc_types[id],'^.*->\s*\(\S*\).*$','\1','').'('.pid.')' + else + let pid = '???('.pid.')' + endif + endif + let ids[pid] = 1 + endif + endfor + call setline(lineno,'import'.q.' '.mod.'('.join(keys(ids),',').')') + else + copen + endif + endif + call setpos('.', save_cursor) +endfunction + +if GHC_VersionGE([6,8,2]) + let opts = filter(split(substitute(system(g:ghc . ' -v0 --interactive', ':set'), ' ', '','g'), '\n'), 'v:val =~ "-f"') +else + let opts = ["-fglasgow-exts","-fallow-undecidable-instances","-fallow-overlapping-instances","-fno-monomorphism-restriction","-fno-mono-pat-binds","-fno-cse","-fbang-patterns","-funbox-strict-fields"] +endif + +amenu ]OPTIONS_GHC.- :echo '-'<cr> +aunmenu ]OPTIONS_GHC +for o in opts + exe 'amenu ]OPTIONS_GHC.'.o.' :call append(0,"{-# OPTIONS_GHC '.o.' #-}")<cr>' +endfor +if has("gui_running") + map <LocalLeader>opt :popup ]OPTIONS_GHC<cr> +else + map <LocalLeader>opt :emenu ]OPTIONS_GHC. +endif + +amenu ]LANGUAGES_GHC.- :echo '-'<cr> +aunmenu ]LANGUAGES_GHC +if GHC_VersionGE([6,8]) + let ghc_supported_languages = split(system(g:ghc . ' --supported-languages'),'\n') + for l in ghc_supported_languages + exe 'amenu ]LANGUAGES_GHC.'.l.' :call append(0,"{-# LANGUAGE '.l.' #-}")<cr>' + endfor + if has("gui_running") + map <LocalLeader>lang :popup ]LANGUAGES_GHC<cr> + else + map <LocalLeader>lang :emenu ]LANGUAGES_GHC. + endif +endif diff --git a/.vim/compiler/tex.vim b/.vim/compiler/tex.vim new file mode 100644 index 0000000..993ecfe --- /dev/null +++ b/.vim/compiler/tex.vim @@ -0,0 +1,293 @@ +" File: tex.vim +" Type: compiler plugin for LaTeX +" Original Author: Artem Chuprina <ran@ran.pp.ru> +" Customization: Srinath Avadhanula <srinath@fastmail.fm> +" CVS: $Id: tex.vim 997 2006-03-20 09:45:45Z srinathava $ +" Description: {{{ +" This file sets the 'makeprg' and 'errorformat' options for the LaTeX +" compiler. It is customizable to optionally ignore certain warnings and +" provides the ability to set a dynamic 'ignore-warning' level. +" +" By default it is set up in a 'non-verbose', 'ignore-common-warnings' mode, +" which means that irrelevant lines from the compilers output will be +" ignored and also some very common warnings are ignored. +" +" Depending on the 'ignore-level', the following kinds of messages are +" ignored. An ignore level of 3 for instance means that messages 1-3 will be +" ignored. By default, the ignore level is set to 4. +" +" 1. LaTeX Warning: Specifier 'h' changed to 't'. +" This errors occurs when TeX is not able to correctly place a floating +" object at a specified location, because of which it defaulted to the +" top of the page. +" 2. LaTeX Warning: Underfull box ... +" 3. LaTeX Warning: Overfull box ... +" both these warnings (very common) are due to \hbox settings not being +" satisfied nicely. +" 4. LaTeX Warning: You have requested ..., +" This warning occurs in slitex when using the xypic package. +" 5. Missing number error: +" Usually, when the name of an included eps file is spelled incorrectly, +" then the \bb-error message is accompanied by a bunch of "missing +" number, treated as zero" error messages. This level ignores these +" warnings. +" NOTE: number 5 is actually a latex error, not a warning! +" +" Use +" TCLevel <level> +" where level is a number to set the ignore level dynamically. +" +" When TCLevel is called with the unquoted string strict +" TClevel strict +" then the 'efm' switches to a 'verbose', 'no-lines-ignored' mode which is +" useful when you want to make final checks of your document and want to be +" careful not to let things slip by. +" +" TIP: MikTeX has a bug where it sometimes erroneously splits a line number +" into multiple lines. i.e, if the warning is on line 1234. the compiler +" output is: +" LaTeX Warning: ... on input line 123 +" 4. +" In this case, vim will wrongly interpret the line-number as 123 instead +" of 1234. If you have cygwin, a simple remedy around this is to first +" copy the file vimlatex (provided) into your $PATH, make sure its +" executable and then set the variable g:tex_flavor to vimlatex in your +" ~/.vimrc (i.e putting let "g:tex_flavor = 'vimlatex'" in your .vimrc). +" This problem occurs rarely enough that its not a botheration for most +" people. +" +" TODO: +" 1. menu items for dynamically selecting a ignore warning level. +" }}} + +" avoid reinclusion for the same buffer. keep it buffer local so it can be +" externally reset in case of emergency re-sourcing. +if exists('b:doneTexCompiler') && !exists('b:forceRedoTexCompiler') + finish +endif +let b:doneTexCompiler = 1 + +" ============================================================================== +" Customization of 'efm': {{{ +" This section contains the customization variables which the user can set. +" g:Tex_IgnoredWarnings: This variable contains a ¡ seperated list of +" patterns which will be ignored in the TeX compiler's output. Use this +" carefully, otherwise you might end up losing valuable information. +if !exists('g:Tex_IgnoredWarnings') + let g:Tex_IgnoredWarnings = + \'Underfull'."\n". + \'Overfull'."\n". + \'specifier changed to'."\n". + \'You have requested'."\n". + \'Missing number, treated as zero.'."\n". + \'There were undefined references'."\n". + \'Citation %.%# undefined' +endif +" This is the number of warnings in the g:Tex_IgnoredWarnings string which +" will be ignored. +if !exists('g:Tex_IgnoreLevel') + let g:Tex_IgnoreLevel = 7 +endif +" There will be lots of stuff in a typical compiler output which will +" completely fall through the 'efm' parsing. This options sets whether or not +" you will be shown those lines. +if !exists('g:Tex_IgnoreUnmatched') + let g:Tex_IgnoreUnmatched = 1 +endif +" With all this customization, there is a slight risk that you might be +" ignoring valid warnings or errors. Therefore before getting the final copy +" of your work, you might want to reset the 'efm' with this variable set to 1. +" With that value, all the lines from the compiler are shown irrespective of +" whether they match the error or warning patterns. +" NOTE: An easier way of resetting the 'efm' to show everything is to do +" TCLevel strict +if !exists('g:Tex_ShowallLines') + let g:Tex_ShowallLines = 0 +endif + +" }}} +" ============================================================================== +" Customization of 'makeprg': {{{ + +" There are several alternate ways in which 'makeprg' is set up. +" +" Case 1 +" ------ +" The first is when this file is a part of latex-suite. In this case, a +" variable called g:Tex_DefaultTargetFormat exists, which gives the default +" format .tex files should be compiled into. In this case, we use the TTarget +" command provided by latex-suite. +" +" Case 2 +" ------ +" The user is using this file without latex-suite AND he wants to directly +" specify the complete 'makeprg'. Then he should set the g:Tex_CompileRule_dvi +" variable. This is a string which should be directly be able to be cast into +" &makeprg. An example of one such string is: +" +" g:Tex_CompileRule_dvi = 'pdflatex \\nonstopmode \\input\{$*\}' +" +" NOTE: You will need to escape back-slashes, {'s etc yourself if you are +" using this file independently of latex-suite. +" TODO: Should we also have a check for backslash escaping here based on +" platform? +" +" Case 3 +" ------ +" The use is using this file without latex-suite and he doesnt want any +" customization. In this case, this file makes some intelligent guesses based +" on the platform. If he doesn't want to specify the complete 'makeprg' but +" only the name of the compiler program (for example 'pdflatex' or 'latex'), +" then he sets b:tex_flavor or g:tex_flavor. + +if exists('g:Tex_DefaultTargetFormat') + exec 'TTarget '.g:Tex_DefaultTargetFormat +elseif exists('g:Tex_CompileRule_dvi') + let &l:makeprg = g:Tex_CompileRule_dvi +else + " If buffer-local variable 'tex_flavor' exists, it defines TeX flavor, + " otherwize the same for global variable with same name, else it will be LaTeX + if exists("b:tex_flavor") + let current_compiler = b:tex_flavor + elseif exists("g:tex_flavor") + let current_compiler = g:tex_flavor + else + let current_compiler = "latex" + end + if has('win32') + let escChars = '' + else + let escChars = '{}\' + endif + " Furthermore, if 'win32' is detected, then we want to set the arguments up so + " that miktex can handle it. + if has('win32') + let options = '--src-specials' + else + let options = '' + endif + let &l:makeprg = current_compiler . ' ' . options . + \ escape(' \nonstopmode \input{$*}', escChars) +endif + +" }}} +" ============================================================================== +" Functions for setting up a customized 'efm' {{{ + +" IgnoreWarnings: parses g:Tex_IgnoredWarnings for message customization {{{ +" Description: +function! <SID>IgnoreWarnings() + let i = 1 + while s:Strntok(g:Tex_IgnoredWarnings, "\n", i) != '' && + \ i <= g:Tex_IgnoreLevel + let warningPat = s:Strntok(g:Tex_IgnoredWarnings, "\n", i) + let warningPat = escape(substitute(warningPat, '[\,]', '%\\\\&', 'g'), ' ') + exe 'setlocal efm+=%-G%.%#'.warningPat.'%.%#' + let i = i + 1 + endwhile +endfunction + +" }}} +" SetLatexEfm: sets the 'efm' for the latex compiler {{{ +" Description: +function! <SID>SetLatexEfm() + + let pm = ( g:Tex_ShowallLines == 1 ? '+' : '-' ) + + set efm= + + if !g:Tex_ShowallLines + call s:IgnoreWarnings() + endif + + setlocal efm+=%E!\ LaTeX\ %trror:\ %m + setlocal efm+=%E!\ %m + + setlocal efm+=%+WLaTeX\ %.%#Warning:\ %.%#line\ %l%.%# + setlocal efm+=%+W%.%#\ at\ lines\ %l--%*\\d + setlocal efm+=%+WLaTeX\ %.%#Warning:\ %m + + exec 'setlocal efm+=%'.pm.'Cl.%l\ %m' + exec 'setlocal efm+=%'.pm.'Cl.%l\ ' + exec 'setlocal efm+=%'.pm.'C\ \ %m' + exec 'setlocal efm+=%'.pm.'C%.%#-%.%#' + exec 'setlocal efm+=%'.pm.'C%.%#[]%.%#' + exec 'setlocal efm+=%'.pm.'C[]%.%#' + exec 'setlocal efm+=%'.pm.'C%.%#%[{}\\]%.%#' + exec 'setlocal efm+=%'.pm.'C<%.%#>%m' + exec 'setlocal efm+=%'.pm.'C\ \ %m' + exec 'setlocal efm+=%'.pm.'GSee\ the\ LaTeX%m' + exec 'setlocal efm+=%'.pm.'GType\ \ H\ <return>%m' + exec 'setlocal efm+=%'.pm.'G\ ...%.%#' + exec 'setlocal efm+=%'.pm.'G%.%#\ (C)\ %.%#' + exec 'setlocal efm+=%'.pm.'G(see\ the\ transcript%.%#)' + exec 'setlocal efm+=%'.pm.'G\\s%#' + exec 'setlocal efm+=%'.pm.'O(%*[^()])%r' + exec 'setlocal efm+=%'.pm.'P(%f%r' + exec 'setlocal efm+=%'.pm.'P\ %\\=(%f%r' + exec 'setlocal efm+=%'.pm.'P%*[^()](%f%r' + exec 'setlocal efm+=%'.pm.'P(%f%*[^()]' + exec 'setlocal efm+=%'.pm.'P[%\\d%[^()]%#(%f%r' + if g:Tex_IgnoreUnmatched && !g:Tex_ShowallLines + setlocal efm+=%-P%*[^()] + endif + exec 'setlocal efm+=%'.pm.'Q)%r' + exec 'setlocal efm+=%'.pm.'Q%*[^()])%r' + exec 'setlocal efm+=%'.pm.'Q[%\\d%*[^()])%r' + if g:Tex_IgnoreUnmatched && !g:Tex_ShowallLines + setlocal efm+=%-Q%*[^()] + endif + if g:Tex_IgnoreUnmatched && !g:Tex_ShowallLines + setlocal efm+=%-G%.%# + endif + +endfunction + +" }}} +" Strntok: extract the n^th token from a list {{{ +" example: Strntok('1,23,3', ',', 2) = 23 +fun! <SID>Strntok(s, tok, n) + return matchstr( a:s.a:tok[0], '\v(\zs([^'.a:tok.']*)\ze['.a:tok.']){'.a:n.'}') +endfun + +" }}} +" SetTexCompilerLevel: sets the "level" for the latex compiler {{{ +function! <SID>SetTexCompilerLevel(...) + if a:0 > 0 + let level = a:1 + else + call Tex_ResetIncrementNumber(0) + echo substitute(g:Tex_IgnoredWarnings, + \ '^\|\n\zs\S', '\=Tex_IncrementNumber(1)." ".submatch(0)', 'g') + let level = input("\nChoose an ignore level: ") + if level == '' + return + endif + endif + if level == 'strict' + let g:Tex_ShowallLines = 1 + elseif level =~ '^\d\+$' + let g:Tex_ShowallLines = 0 + let g:Tex_IgnoreLevel = level + else + echoerr "SetTexCompilerLevel: Unkwown option [".level."]" + end + call s:SetLatexEfm() +endfunction + +com! -nargs=? TCLevel :call <SID>SetTexCompilerLevel(<f-args>) +" }}} + +" }}} +" ============================================================================== + +call s:SetLatexEfm() + +if !exists('*Tex_Debug') + function! Tex_Debug(...) + endfunction +endif + +call Tex_Debug("compiler/tex.vim: sourcing this file", "comp") + +" vim: fdm=marker:commentstring=\ \"\ %s diff --git a/.vim/doc/csupport.txt b/.vim/doc/csupport.txt new file mode 100644 index 0000000..266b8db --- /dev/null +++ b/.vim/doc/csupport.txt @@ -0,0 +1,1577 @@ +*csupport.txt* C/C++ Support November 21 2007 + +C/C++ Support *c-support* *csupport* + Plugin version 5.0.5 + for Vim version 6.0 and above + Fritz Mehner <mehner@fh-swf.de> + +C/C++-IDE for Vim/gVim. It is written to considerably speed up writing code in +a consistent style. This is done by inserting complete statements,idioms, code +snippets, templates, and comments. Syntax checking, compiling, running a +program, running a code checker or indent can be done with a keystroke. + + + 1. Usage |csupport-usage-gvim| + 1.1 Menu 'Comments' |csupport-comm| + 1.1.1 Append aligned comments |csupport-comm-aligned| + 1.1.2 Adjust end-of-line comments |csupport-comm-realign| + 1.1.3 Code to comment |csupport-code-to-comm| + 1.1.4 Comment to code |csupport-comm-to-code| + 1.1.5 Frame comments, file header, ... |csupport-comm-frame| + 1.1.6 KEYWORD + comment |csupport-comm-keywords| + 1.1.7 C to C++ comments and vice versa |csupport-comm-c-cpp| + 1.1.8 Date and date+time |csupport-comm-date| + 1.2 Menu 'Statements' |csupport-stat| + 1.2.1 Normal mode, insert mode. |csupport-stat-normal-mode| + 1.2.2 Visual mode. |csupport-stat-visual-mode| + 1.3 Menu 'Preprocessor' |csupport-prep| + 1.3.1 Normal mode, insert mode. |csupport-prep-normal-mode| + 1.3.2 Visual mode. |csupport-prep-visual-mode| + 1.3.3 Block out code with #if 0 .. #endif |csupport-prep-if0| + 1.4 Menu 'Idioms' |csupport-idioms| + 1.5 Menu 'Snippets' |csupport-snippets| + 1.5.1 Code snippets |csupport-snippets| + 1.5.2 Picking up prototypes |csupport-proto| + 1.6 Menu 'C++' |csupport-c++| + 1.6.1 Normal mode, insert mode. |csupport-c++-normal-mode| + 1.6.2 Visual mode. |csupport-c++-visual-mode| + 1.6.3 Method implementation |csupport-c++-method-impl| + 1.7 Menu 'Run' |csupport-run| + 1.7.1 Minimal make functionality |csupport-run-buffer| + 1.7.2 Command line arguments |csupport-run-cmdline-args| + 1.7.3 Run make |csupport-run-make| + 1.7.4 Command line arguments for make |csupport-run-make-args| + 1.7.5 Splint |csupport-run-splint| + 1.7.6 CodeCheck |csupport-run-codecheck| + 1.7.7 Indent |csupport-run-indent| + 1.7.8 Hardcopy |csupport-run-hardcopy| + 1.7.9 Rebuild templates |csupport-run-templates| + 1.7.10 Xterm size |csupport-run-xterm| + 1.7.11 Output redirection |csupport-run-output| + 1.8 Help |csupport-help| + + 2. Usage without GUI |csupport-usage-vim| + 3. Hotkeys |csupport-hotkeys| + 4. Customization and configuration |csupport-custom| + 4.1 Global variables |csupport-custom-glob-vars| + 4.2 The root menu |csupport-custom-root-menu| + 4.3 System-wide installation |csupport-system-wide| + 5. Template files and tags |csupport-templates| + 5.1 Template files |csupport-templates-files| + 5.2 Macros |csupport-templates-macros| + 5.3 Templates |csupport-templates-names| + 5.3.1 Template names |csupport-templates-names| + 5.3.2 Template definition |csupport-templates-definition| + 5.3.3 Template expansion |csupport-templates-expansion| + 6. C/C++ Dictionaries |csupport-dictionary| + 7. Extend taglist.vim for make and qmake |csupport-taglist| + 8. Syntax based folding |csupport-folding| + 9. Windows particularities |csupport-windows| +10. Troubleshooting |csupport-troubleshooting| +11. Release Notes /Change Log |csupport-release-notes| + + How to add this help file to Vim's help |add-local-help| + + +============================================================================== +1. USAGE WITH GUI (gVim) *csupport-usage-gvim* +============================================================================== + +If the root menu 'C/C++' is not visible call it with the item "Load C Support" +from the standard Tools-menu. +The item "Load C Support" can also be used to unload the C/C++-root menu. + +Nearly all menu entries insert code snippets or comments. All these stuff is +taken from template files and can be changed by the user to meet his +requirements (see|csupport-templates|). + +------------------------------------------------------------------------------ +1.1 MENU 'Comments' *csupport-comm* +------------------------------------------------------------------------------ + +1.1.1 APPEND ALIGNED COMMENTS TO CONSECUTIVE LINES *csupport-comm-aligned* + +In NORMAL MODE the menu items 'end-of-line comment' will append an comment to +the current line. +In VISUAL MODE these item will append aligned comments to all marked lines. +Marking the first 4 lines + + print_double_array ( double array[], + int n, + int columns, + char* arrayname + ) + +and choosing 'end-of-line com. /**/' will yield. + + print_double_array ( double array[], /* */ + int n, /* */ + int columns, /* */ + char* arrayname /* */ + ) /* */ + +If one ore more lines go beyond the starting column (s.below) the comments +will start at the 2. column after the longest line. The cursor will be +positioned inside the first comment. + +The default starting column is 49 ( = (multiple of 2,4, or 8) + 1 ). This can +be changed by setting a global variable in the file ~/.vimrc , e.g. : + + let g:C_LineEndCommColDefault = 45 + +The starting column can also be set by the menu item +'Comments->set end-of-line com. col' . Just position the cursor in an +arbitrary column (column number is shown in the Vim status line) and choose +this menu item. This setting is buffer related. + +If the cursor was at the end of a line you will be asked for a column number +because this position is most likely not the desired starting column. +Your choice will be confirmed. + +------------------------------------------------------------------------------ + +1.1.2 ADJUST END-OF-LINE COMMENTS *csupport-comm-realign* + +After some changes end-of-line comments may be no longer aligned: + + print_double_array ( double array[], /* */ + long int n, /* */ + unsigned int columns, /* */ + char* a_name /* */ + ) /* */ + +Realignment can be achieved with the menu item 'adjust end-of-line com.' In +normal mode the comment (if any) in the current line will be aligned to the +end-of-line comment column (see above) if possible. In visual mode the +comments in the marked block will be aligned: + + print_double_array ( double array[], /* */ + long int n, /* */ + unsigned int columns, /* */ + char* a_name /* */ + ) /* */ + +------------------------------------------------------------------------------ + +1.1.3 CODE TO COMMENT *csupport-code-to-comm* + +The marked block + +xxxxxxxx +xxxxxxxx +xxxxxxxx + +will be changed by the menu item 'code->comment /**/' into the multiline +comment (all (partially) marked lines): + +/* xxxxxxxx + * xxxxxxxx + * xxxxxxxx + */ + +The marked block will be changed by the menu item 'code->comment //' into the +multiline comment + +//xxxxxxxx +//xxxxxxxx +//xxxxxxxx + +The menu items works also for a single line. A single line needs not to be +marked. + +------------------------------------------------------------------------------ + +1.1.4 COMMENT TO CODE *csupport-comm-to-code* + +If one (or more) complete comment (i.e. all lines belonging to the comment) is +marked the item 'comment->code' will uncomment it. If the following lines +are marked + + * printf ("\n"); + */ + + printf ("\n"); + + // printf ("\n"); + // + + /* + * printf ("\n"); + */ + +uncommenting will yield + + * printf ("\n"); + */ + + printf ("\n"); + + printf ("\n"); + + + + printf ("\n"); + +The first 2 lines are only a part of a C-comment and remain unchanged. +A C-comment can start with /* , /** or /*! . + +The menu item works also for a single line with a leading // . A single line +needs not to be marked. + +------------------------------------------------------------------------------ + +1.1.5 FRAME COMMENTS, FILE HEADER, ... *csupport-comm-frame* + +Frame comments, file header comments and function, methods, class descriptions +are read as templates from the appropriate files (see |csupport-templates|). + +------------------------------------------------------------------------------ + +1.1.6 KEYWORD+comment *csupport-comm-keywords* + +Preliminary comments to document (and find again) places where works will be +resumed shortly. Usually not meant for the final documentation. + +------------------------------------------------------------------------------ + +1.1.7 C TO C++ COMMENTS AND VICE VERSA *csupport-comm-c-cpp* + +The menu item '// xxx -> /* xxx */' changes a C++ comment into an C comment. +This is done for the current line in normal or insert mode and for a marked +area of lines in visual mode. +If there are multiple C comments only the first one will be changed: + printf ("\n"); /* one */ /* two */ /* three */ +will be changed into + printf ("\n"); // one /* two */ /* three */ + +The menu item '/* xxx */ -> // xxx' changes a C comment into an C++ comment. + +------------------------------------------------------------------------------ + +1.1.8 DATE AND DATE+TIME *csupport-comm-date* + +The format for 'date' and 'date time' can be defined by the user (see +|csupport-templates-date|). + +------------------------------------------------------------------------------ +1.2 MENU 'Statements' *csupport-stat* +------------------------------------------------------------------------------ + +1.2.1 NORMAL MODE, INSERT MODE. *csupport-stat-normal-mode* + +An empty statement will be inserted and properly indented. The item 'if{}' +will insert an if-statement: + +if ( ) +{ +} + + +1.2.2 VISUAL MODE. *csupport-stat-visual-mode* + +STATEMENTS WITH BLOCKS AND CASE LABEL. +-------------------------------------- +The highlighted area + +xxxxx +xxxxx + +can be surrounded by one of the following statements: + + +----------------------------+-----------------------------+ + | if ( ) | if ( ) | + | { | { | + | xxxxx | xxxxx | + | xxxxx | xxxxx | + | } | } | + | | else | + | | { | + | | } | + +----------------------------+-----------------------------+ + | for ( ; ; ) | while ( ) | + | { | { | + | xxxxx | xxxxx | + | xxxxx | xxxxx | + | } | } | + +----------------------------+-----------------------------+ + | do | | + | { | { | + | xxxxx | xxxxx | + | xxxxx | xxxxx | + | } | } | + | while ( ); | | + +----------------------------+-----------------------------+ + | switch ( ) { | + | case : | + | break; | + | | + | case : | + | break; | + | | + | case : | + | break; | + | | + | case : | + | break; | + | | + | default: | + | break; | + | } | + +----------------------------+-----------------------------+ + +For 'switch' and 'case' see |csupport-stat-switch| and |csupport-stat-case|. + +The whole statement will be indented after insertion. + + +STATEMENTS WITHOUT BLOCKS. +-------------------------- +One of the following statements can be inserted: + + +-------------------------------+--------------------------+ + | if ( ) | for ( ; ; ) | + +-------------------------------+--------------------------+ + | if ( ) | while ( ) | + | else | | + +-------------------------------+--------------------------+ + | case : | | + | break; | | + +-------------------------------+--------------------------+ + + +------------------------------------------------------------------------------ +1.3 MENU 'Preprocessor' *csupport-prep* +------------------------------------------------------------------------------ + +1.3.1 NORMAL MODE, INSERT MODE. *csupport-prep-normal-mode* + +The preprocessor statements will be inserted and properly indented. + +1.3.2 VISUAL MODE. *csupport-prep-visual-mode* + +STATEMENTS WITH BLOCKS +---------------------- +The highlighted area + +xxxxx +xxxxx + +can be surrounded by one of the following statements: + + +----------------------------+-----------------------------+ + | #if CONDITION | + | xxxxx | + | xxxxx | + | #else /* ----- #if CONDITION ----- */ | + | | + | #endif /* ----- #if CONDITION ----- */ | + +----------------------------------------------------------+ + | #ifdef CONDITION | + | xxxxx | + | xxxxx | + | #else /* ----- #ifdef CONDITION ----- */ | + | | + | #endif /* ----- #ifdef CONDITION ----- */ | + +----------------------------------------------------------+ + | #ifndef CONDITION | + | xxxxx | + | xxxxx | + | #else /* ----- #ifndef CONDITION ----- */ | + | | + | #endif /* ----- #ifndef CONDITION ----- */ | + +----------------------------------------------------------+ + | #ifndef INC_TEST | + | #define INC_TEST | + | xxxxx | + | xxxxx | + | #endif /* ----- #ifndef INC_TEST ----- */ | + +----------------------------------------------------------+ + | #if 0 /* ----- #if 0 : If0Label_1 ----- */ | + | | + | #endif /* ----- #if 0 : If0Label_1 ----- */ | + +----------------------------------------------------------+ + +The macro name for an include guard (e.g. INC_TEST above) will be derived as a +suggestion from the file name. + +1.3.3 BLOCK OUT CODE WITH #if 0 ... #endif *csupport-prep-if0* + +The menu item #if 0 #endif inserts the lines + + #if 0 /* ----- #if 0 : If0Label_1 ----- */ + + #endif /* ----- #if 0 : If0Label_1 ----- */ + +In visual mode the marked block of lines will be surrounded by these lines. + +This is usually done to temporarily block out some code. The label names like +If0Label_1 are automatically inserted into the comments. The trailing numbers +are automatically incremented. These numbers can be changed by the user. The +next number will be one above the highest number found in the current buffer. + +A corresponding label can be found by searching with the vim star command (*). +All labels can be found with a global search like :g/If0Label_/ or +:g/If0Label_\d\+/. All corresponding lines can be deleted with :g/If0Label_/d . + + +REMOVE THE ENCLOSING #if 0 ... #endif -CONSTRUCT. + +The menu item 'remove #if #endif' removes such a construct if the cursor is +in the middle of such a section or on one of the two enclosing lines. Nested +constructs will be untouched. + +------------------------------------------------------------------------------ +1.4 MENU 'Idioms' *csupport-idioms* +------------------------------------------------------------------------------ + +1.4.1 ENTRY 'function' + +NORMAL MODE, INSERT MODE: +The name of the function is asked for and the following lines (for function +name "f") will be inserted: + + void + f ( ) + { + return ; + } /* ---------- end of function f ---------- */ + +VISUAL MODE: +Main or [static] function: the highlighted lines will go inside the new +function or main. +for-loops: the highlighted lines will be set in braces. + +1.4.2 ENTRY 'open input file' + +The item 'open input file' will create the statements to open and close an +input file (e.g. with the file pointer 'infile'). + +1.4.3 ENTRY 'open output file' + +The item 'open output file' will create the statements to open and close an +output file (e.g. with the file pointer 'outfile'). + +------------------------------------------------------------------------------ +1.5 MENU 'Snippets' *csupport-snippets* +------------------------------------------------------------------------------ + +1.5.1 CODE SNIPPETS + +Code snippets are pieces of code which are kept in separate files in a special +directory (e.g. a few lines of code or a complete template for a Makefile). +File names are used to identify the snippets. The snippet directory will be +created during the installation ( $HOME/.vim/codesnippets-c is the default). +Snippets are managed with the 3 items + + C/C++ -> Snippets -> read code snippet + C/C++ -> Snippets -> write code snippet + C/C++ -> Snippets -> edit code snippet + +from the Snippets submenu. + +CREATING A NEW SNIPPET +When nothing is marked, "write code snippet" will write the whole buffer +to a snippet file, otherwise the marked area will be written to a file. + +INSERT A SNIPPET +Select the appropriate file from the snippet directory ("read code snippet"). +The inserted lines will be indented. + +EDIT A SNIPPET +This is a normal edit. + +INDENTATION / NO INDENTATION +Code snippets are normally indented after insertion. To suppress indentation +add the file extension "ni" or "noindent" to the snippet file name, e.g. + + parameter_handling.c.noindent + + +1.5.2 PICKING UP PROTOTYPES *csupport-proto* + +PICK UP PROTOTYPES. +To make a prototype from a function head mark the function head and choose +'Snippets -> pick up prototype'. From the first six lines of + + void + print_double_array ( double array[], /* array to print */ + int n, /* number of elements to print */ + int columns, /* number of elements per column */ + char* arrayname /* array name */ + ) + { + ... + } /* ---------- end of function print_double_array ---------- */ + +the prototype + + void print_double_array ( double array[], int n, int columns, char* arrayname ); + +is produced and put in an internal buffer. +- Leading and trailing whitespaces are removed. +- All inner whitespaces are squeezed. +- All comments will be discarded. +- Trailing parts of the function body (e.g a '{' ) will also be removed. +- The class name and the scope resolution operator will be removed (C++ method + implementations). +Further prototypes can be picked up and gathered in the buffer. + +For C++ methods namespace names and class names will be removed +(exception: 'std::' ). The first two lines of + + std::string + ROBOT::Robot::get_name ( void ) + { + return type_name; + } /* ----- end of method Robot::get_name ----- */ + +result in the prototype + + std::string get_name ( void ); + +Folding may help picking up prototypes (see |csupport-folding|). + + +INSERT PROTOTYPES +With 'Snippets -> insert prototype(s)' all picked up prototypes currently in +the buffer will be inserted below the cursor. +The prototype buffer will be cleared after insertion. + + +DISCARD PROTOTYPES +The prototype buffer can be cleared with 'Snippets -> clear prototype(s)' . + + +SHOW PROTOTYPES +The list of gathered prototypes can be shown with +'Snippets -> show prototype(s)'. The number and the filename are shown, e.g. + + (1) matrix.c # double** calloc_double_matrix ( int rows, int columns ); + (2) matrix.c # void free_double_matrix ( double **m ); + (3) foomain.c # void foo ( ); + + +REMARK. Generating prototypes this way is nice in a small project. You may +want to use an extractor like cextract or something else. + + +------------------------------------------------------------------------------ +1.6 MENU 'C++' *csupport-c++* +------------------------------------------------------------------------------ + +1.6.1 NORMAL MODE, INSERT MODE. *csupport-c++-normal-mode* + +An empty statement will be inserted and in some cases properly indented. The +item 'try .. catch' will insert the following lines: + + try { + } + catch ( const &ExceptObj ) { // handle exception: + } + catch (...) { // handle exception: unspezified + } + +The cursor will go into the try block. + +1.6.2 VISUAL MODE. *csupport-c++-visual-mode* + +The highlighted area can be surrounded by one of the following statements: + + try - catch + catch + catch(...) + namespace { } + extern "C" { } + +The whole statement will be indented after insertion. + +1.6.3 METHOD IMPLEMENTATION *csupport-c++-method-impl* + +The menu item 'method implement.' asks for a method name. If this item is +called the first time you will see just an scope resolution operator. If you +specify the scope this is used the next time you call this item. If you use +one of the menu items to generate a class (see |csupport-templates|) the +scope will be extracted and used for the next method. + +------------------------------------------------------------------------------ +1.7 MENU 'Run' *csupport-run* +------------------------------------------------------------------------------ + +1.7.1 MINIMAL MAKE FUNCTIONALITY *csupport-run-buffer* + +The 'Run' menu provides a minimal make functionality for single file projects +(e.g. in education) : + +SAVE AND COMPILE +'save and compile' saves the buffer and run the compiler with the given +options (see |csupport-custom-glob-vars|). + +An error window will be opened if the compiler reports errors and/or warnings. +Quickfix commands can now be used to jump to an error location. + +Consider using maps like + map <silent> <F7> <Esc>:cp<CR> + map <silent> <F8> <Esc>:cn<CR> +in your ~/.vimrc file to jump over the error locations and make navigation +easier. The error list and the error locations in your source buffer will be +synchronized. + + +LINK +'link' makes an executable from the current buffer. If the buffer is not +saved, or no object is available or the object is older then the source step +'save and compile' is executed first. + +The behavior of the compiler / linker is determined by the options assigned to +the variables described in |csupport-custom-glob-vars| (4.group). + +RUN +'run' runs the executable with the same name (extension .e) as the current +buffer. If the buffer is not saved, or no executable is available or the +executable is older then the source steps 'save and compile' and 'link' are +executed first. + + +1.7.2 COMMAND LINE ARGUMENTS *csupport-run-cmdline-args* + +The item 'command line arguments' calls an input dialog which asks for command +line arguments. These arguments are forwarded to the program which is run by +the 'run' item. The arguments are kept until you change them. + +The arguments belong to the current buffer (that is, each buffer can have its +own arguments). +If the buffer gets a new name with "save as" the arguments will now belong to +the buffer with the new name. + +The command line arguments can be followed by pipes and redirections: + + 11 22 | sort -rn | head -10 > out + +Caveat: If you look for the current arguments by calling this menu item again +be sure to leave it with a CR (not Esc !). Due to a limitation of an internal +Vim function CR will keep the arguments, Esc with discard them. + + +1.7.3 RUN make *csupport-run-make* + +The item 'make' runs the external make program. + + +1.7.4 COMMAND LINE ARGUMENTS FOR make *csupport-run-make-args* + +The item 'command line arguments for make' calls an input dialog which asks +for command line arguments for make. These arguments are forwarded to make +when called by the item 'make'. + + +1.7.5 SPLINT *csupport-run-splint* + +Splint is a tool for statically checking C programs (see http://www.splint.org). +Of course it has to be installed in order to be used within Vim. The menu +item 'Run->splint' will run the current buffer through splint. + +An error window will be opened if splint has something to complain about. +Quickfix commands can now be used to jump to an error location. For easier +navigation see tip under 'SAVE AND COMPILE' |csupport-run-buffer|. + +Splint has many options. Presumably the best way is to keep the options in an +option file (~/.splintrc). For a quick try you can use the menu item +'Run->cmd. line arg. for splint' to specify some buffer related options. + +When vim is started this plugin will check whether splint is executable. If +not, the menu item will *NOT' be visible. + + +1.7.6 CODECHECK *csupport-run-codecheck* + +CodeCheck (TM) is a commercial code analyzing tool produced by Abraxas +Software, Inc. (www.abraxas-software.com). +Of course it has to be installed in order to be used within Vim. The menu +item 'Run->CodeCheck' will run the current buffer through CodeCheck. + +An error window will be opened if CodeCheck has something to complain about. +Quickfix commands can now be used to jump to an error location. For easier +navigation see tip under 'SAVE AND COMPILE' |csupport-run-buffer|. + +CodeCheck has many options. For a quick try you can use the menu item +'Run->cmd. line arg. for CodeCheck' to specify some buffer related options. + +CodeCheck will be run with default options (see |csupport-custom-glob-vars|). +The default options can be overwritten by placing a global variable in +~/.vimrc , e.g. + + let g:C_CodeCheckOptions = "-K13 -Rmeyers" + +The default name for the executable is 'check'. There are other names in use +on different platforms. The name can be changed by placing a global variable +in ~/.vimrc , e.g. + + let g:C_CodeCheckExeName = "chknt.exe" + +When vim is started this plugin will check whether CodeCheck is executable. If +not, the menu item will *NOT' be visible. + + +1.7.7 INDENT *csupport-run-indent* + +The formatter 'indent' can be run over the whole buffer or a marked region. +Before formatting the whole buffer this buffer will be saved to disk and you +will be asked for a confirmation. + +Indent has many options. These are kept in the file '.indent.pro' in your home +directory. See the indent manual for more information. + + +1.7.8 HARDCOPY *csupport-run-hardcopy* + +Generates a PostScript file from the whole buffer or from a marked region. +On a Windows system a printer dialog is displayed. + +The print header contains date and time for the current locale. The definition +used is + + let s:C_Printheader = "%<%f%h%m%< %=%{strftime('%x %X')} Page %N" + +The current locale can be overwritten by changing the language, e.g. + + :language C + +or by setting a global variable in the file ~/.vimrc , e.g. : + + let g:C_Printheader = "%<%f%h%m%< %=%{strftime('%x %X')} SEITE %N" + +See :h printheader and :h strftime() for more details. + + +1.7.9 REBUILD TEMPLATES *csupport-run-templates* + +After editing one or more template files a click on this item rereads the +template files and rebuilds all templates. + + +1.7.10 XTERM SIZE *csupport-run-xterm* + +The size of the xterm used for running a program (below) can be set by this +menu item. The default is 80 columns with 24 lines. +This feature is not available under Windows. + + +1.7.11 OUTPUT REDIRECTION *csupport-run-output* + +Running a program can be done in one of three ways: +(1) Run the program from the gVim command line. + This is for interactive programs with little input and output. +(2) Run the program and direct the output into a window with name "C-Output". + The buffer and its content will disappear when the window is closed and + reused otherwise. + This is for non-interactive programs with little to very much output. + You have unlimited line length, regex search, navigation, ... + The tabstop value will be set to 8 for "C-Output". +(3) Run the program in an xterm. + +The output method can be chosen from the menu item 'Run->output: ...'. +This menu has three states: + + output: VIM->buffer->xterm + output: BUFFER->xterm->vim + output: XTERM->vim->buffer + +The first (uppercase) item shows the current method. The default is 'vim'. +This can be changed by setting the variable g:C_OutputGvim to another value. +Possible values are 'vim', 'buffer' and 'xterm' . + +The xterm defaults can be set in ~/.vimrc by the variable g:C_XtermDefaults . +The default is "-fa courier -fs 12 -geometry 80x24" : + font name : -fa courier + font size : -fs 12 + terminal size : -geometry 80x24 +See 'xterm -help' for more options. Xterms are not available under Windows. + +------------------------------------------------------------------------------ +1.8 'help' *csupport-help* +------------------------------------------------------------------------------ + +The root menu item 'help' shows this plugin help in a help window. The help +tags must have been generated with + :helptags ~/.vim/doc + +============================================================================== +2. USAGE WITHOUT GUI (Vim) *csupport-usage-vim* +============================================================================== + +The frequently used constructs can be inserted with key mappings. The +mappings are also described in the document c-hot-keys.pdf (reference card, +part of this package). +Hint: Typing speed matters. The combination of a leader ('\') and the +following character(s) will only be recognized for a short time. +The insert mode mappings start with ` (backtick). + +Legend: (i) insert mode, (n) normal mode, (v) visual mode + + -- Load / Unload C/C++ Support ---------------------------------------- + + \lcs Load C/C++ Support Menus (n, GUI only)} + \ucs Unload C/C++ Support Menus (n, GUI only)} + + -- Comments ----------------------------------------------------------- + + \cl end-of-line comment (n,v,i) + \cj adjust end-of-line comment(s) (n,v,i) + \cs set end-of-line comment column (n) + \c* code -> comment /* */ (n,v) + \c/ code -> comment // (n,v) + \co comment -> code (n,v) + \cfr frame comment (n,i) + \cfu function comment (n,i) + \cme method description (n,i) + \cca class description (n,i) + \cd date (n,i) + \ct date \& time (n,i) + + -- Statements --------------------------------------------------------- + + \sd do { } while (n,v,i) + \sf for (n,i) + \sfo for { } (n,v,i) + \si if (n,i) + \sif if { } (n,v,i) + \sie if else (n,v,i) + \sife if { } else { } (n,v,i) + \sw while (n,i) + \swh while { } (n,v,i) + \ss switch (n,v,i) + \sc case (n,i) + \s{ { } (n,v,i) + + -- Preprocessor ------------------------------------------------------- + + \p< #include <> (n,i) + \p" #include "" (n,i) + \pd #define (n,i) + \pu #undef (n,i) + \pie #if #else #endif (n,v,i) + \pid #ifdef #else #endif (n,v,i) + \pin #ifndef #else #endif (n,v,i) + \pind #ifndef #def #endif (n,v,i) + \pi0 #if 0 #endif (n,v,i) + \pr0 remove #if 0 #endif (n) + -- Idioms ------------------------------------------------------------- + + \if function (n,v,i) + \isf static function (n,v,i) + \im main() (n,v,i) + \i0 for( x=0; x<n; x+=1 ) (n,v,i) + \in for( x=n-1; x>=0; x-=1 ) (n,v,i) + \ie enum + typedef (n,i) + \is struct + typedef (n,i) + \iu union + typedef (n,i) + \ip printf() (n,i) + \isc scanf() (n,i) + \ica p=calloc() (n,i) + \ima p=malloc() (n,i) + \isi sizeof() (n,v,i) + \ias assert() (n,v,i) + \ii open input file (n,i) + \io open output file (n,i) + + -- Snippets ----------------------------------------------------------- + + \nr read code snippet (n) + \nw write code snippet (n,v) + \ne edit code snippet (n) + \np pick up prototype (n,v) + \ni insert prototype(s) (n) + \nc clear prototype(s) (n) + \ns show prototype(s) (n) + + -- C++ ---------------------------------------------------------------- + + \+m method implementation (n,i) + \+c class (n,i) + \+cn class (using new) (n,i) + \+tm template method implementation (n,i) + \+tc template class (n,i) + \+tcn template class (using new) (n,i) + \+tf template function (n,i) + \+ec error class (n,i) + \+tr try ... catch (n,v,i) + \+ca catch (n,v,i) + \+c. catch(...) (n,v,i) + + -- Run ---------------------------------------------------------------- + + \rc save and compile (n) + \rl link (n) + \rr run (n) + \ra set comand line arguments (n) + \rm run make (n) + \rg cmd. line arg. for make (n) + \rp run splint (n) + \ri cmd. line arg. for splint (n) + \rk run CodeCheck (TM) (n) + \re cmd. line arg. for CodeCheck (TM) (n) + \rd run indent (n,v) + \rh hardcopy buffer (n,v) + \rs show plugin settings (n) + \rx set xterm size (n, only Linux/UNIX & GUI) + \ro change output destination (n) + \rt rebuild templates (n) + +The hotkeys are defined in the file type plugin c.vim (part of this csupport +plugin package) and described in the document c-hot-keys.pdf + +============================================================================== +3. HOTKEYS *csupport-hotkeys* +============================================================================== + +The following hotkeys are defined in normal, visual and insert mode: + + F9 compile and link + Alt-F9 write buffer and compile + Ctrl-F9 run executable + Shift-F9 set command line arguments + + Shift-F2 switch between source files and header files + +Shift-F2 can be used to switch between source files and header files if the +plugin a.vim is present. To suppress the creation of a new header file when +switching from a source file the file ~/.vimrc should contain a line + + let g:alternateNoDefaultAlternate = 1 + +A header file will only be opened if it already exists. + +The hotkeys are defined in the file type plugin c.vim . + +All hotkeys from the non-GUI mode also work for gVim (see |csupport-usage-vim|). + +============================================================================== +4. CUSTOMIZATION *csupport-custom* +============================================================================== + +------------------------------------------------------------------------------ +4.1 GLOBAL VARIABLES *csupport-custom-glob-vars* +------------------------------------------------------------------------------ + +Several global variables are checked by the script to customize it: + + ---------------------------------------------------------------------------- + GLOBAL VARIABLE DEFAULT VALUE TAG (see below) + ---------------------------------------------------------------------------- + g:C_GlobalTemplateFile plugin_dir.'c-support/templates/Templates' + g:C_LocalTemplateFile $HOME.'/.vim/c-support/templates/Templates' + g:C_TemplateOverwrittenMsg 'yes' + + g:C_CodeSnippets plugin_dir."/c-support/codesnippets/" + g:C_Dictionary_File "" + g:C_LoadMenus "yes" + g:C_MenuHeader "yes" + g:C_OutputGvim "vim" + g:C_XtermDefaults "-fa courier -fs 12 -geometry 80x24" + g:C_Printheader "%<%f%h%m%< %=%{strftime('%x %X')} Page %N" + + Linux/UNIX: + g:C_ObjExtension ".o" + g:C_ExeExtension "" + g:C_CCompiler "gcc" + g:C_CplusCompiler "g++" + Windows: + g:C_ObjExtension ".obj" + g:C_ExeExtension ".exe" + g:C_CCompiler "gcc.exe" + g:C_CplusCompiler "g++.exe" + g:C_CFlags "-Wall -g -O0 -c" + g:C_LFlags "-Wall -g -O0" + g:C_Libs "-lm" + g:C_LineEndCommColDefault 49 + g:C_CExtension "c" + g:C_TypeOfH "cpp" + + g:C_CodeCheckExeName "check" + g:C_CodeCheckOptions "-K13" + +The variable plugin_dir will automatically be set to one of the following values: + $HOME.'/.vim/' for Linux/Unix + $VIM.'/vimfiles/' for Windows + + ---------------------------------------------------------------------------- + +1. group: g:C_GlobalTemplateFile : Sets the master template file (see|csupport-templates|) + g:C_LocalTemplateFile : Sets the local template file (see|csupport-templates|) + g:C_TemplateOverwrittenMsg : message if template is overwritten + +2. group: g:C_CodeSnippets : The name of the code snippet directory + (see |csupport-snippets|). + g:C_Dictionary_File : The name(s) of the dictionary file(s) used for + word completion (see also |csupport-dictionary|) + g:C_Root : the name of the root menu of this plugin + g:C_LoadMenus : Load menus and mappings ("yes", "no") at startup. + g:C_MenuHeader : Switch the submenu header on/off. + g:C_OutputGvim : when program is running output goes to the vim + command line ("vim"), to a buffer ("buffer") or to + an xterm ("xterm"). + g:C_XtermDefaults : the xterm defaults + g:C_Printheader : hardcopy: definition of the page header + +3. group: g:C_CExtension : Extension of C files. Everything else is C++. + g:C_TypeOfH : filetype of header files with extension 'h' (c,cpp) + (see |csupport-comm-style|) + g:C_CCompiler : The name of the C compiler. + g:C_CplusCompiler : The name of the C++ compiler. + g:C_CFlags : Compiler flags used for a compilation. + g:C_LFlags : Compiler flags used for linkage. + g:C_Libs : Libraries to link with. + g:C_ObjExtension : C/C+ file extension for objects + (leading point required if not empty) + g:C_ExeExtension : C/C+ file extension for executables + (leading point required if not empty) + g:C_LineEndCommColDefault : Default starting column for end-of-line comments. + g:C_CodeCheckExeName : The name of the CodeCheck (TM) executable + (the default is 'check') + g:C_CodeCheckOptions : Default options for CodeCheck (TM) + (see |csupport-run-codecheck|). + +To override the default add appropriate assignments to ~/.vimrc . + +------------------------------------------------------------------------------ +4.2 THE ROOT MENU *csupport-custom-root-menu* +------------------------------------------------------------------------------ + +The variable g:C_Root, if set (in ~/.vimrc or in ~/.gvimrc), gives the name of +the single Vim root menu item in which the C/C++ submenus will be put. The +default is + '&C\/C\+\+.' +Note the terminating dot. A single root menu can be used if the screen is +limited or several plugins are used in parallel. + +If set to "", this single root menu item will not appear. Now all submenus +are put into the Vim root menu. This is nice for beginners in a lab +installation or for C-only programmers. + +------------------------------------------------------------------------------ +4.3 SYSTEM-WIDE INSTALLATION *csupport-system-wide* +------------------------------------------------------------------------------ + +A system-wide installation (one installation for all users) is done as +follows. + +As *** SUPERUSER *** : + +(1) Find the Vim installation directory. +The Vim ex command ':echo $VIM' gives '/usr/local/share/vim' or something like +that. Beyond this directory you will find the Vim installation, e.g. in +'/usr/local/share/vim/vim71' if Vim version 7.1 has been installed. + +(2) Create a new subdirectory 'vimfiles', e.g. '/usr/local/share/vim/vimfiles'. + +(3) Install C/C++ Support +Copy the archive cvim.zip to this new directory and unpack it: + unzip cvim.zip + +(4) Generate the help tags: + :helptags $VIM/vimfiles/doc + + +As *** USER *** : + +Create your private snippet directory: + + mkdir --parents ~/.vim/c-support/codesnippets + +You may want to copy the snippets comming with this plugin (in +$VIM/vimfiles/c-support/codesnippets) into the new directory or to set a +link to the global directory. + +Create your private template directory: + + mkdir --parents ~/.vim/c-support/template + +Create a private template file 'Templates' in this directory to overwrite some +macros, e.g. + + *|AUTHOR|* = your name + *|AUTHORREF|* = ... + *|EMAIL|* = ... + *|COMPANY|* = ... + *|COPYRIGHT|* = ... + +You can also have local templates which overwrite the global ones. To suppress +the messages in this case set a global variable in '~/.vimrc' : + + let g:C_TemplateOverwrittenMsg= 'no' + +The default is 'yes'. + +============================================================================== +5. TEMPLATE FILES AND TAGS *csupport-templates* +============================================================================== + +------------------------------------------------------------------------------ +5.1 TEMPLATE FILES *csupport-templates-files* +------------------------------------------------------------------------------ + +Nearly all menu entries insert code snippets or comments. All these stuff is +taken from template files and can be changed by the user to meet his +requirements. + +The master template file is '$HOME/.vim/c-support/templates/Templates' for a +user installation and '$VIM/vimfiles/c-support/templates/Templates' for a +system-wide installation (see|csupport-system-wide|). + +The master template file starts with a macro section followed by templates for +single menu items or better by including other template files grouping the +templates according to the menu structure of this plugin. The master file +could look like this: + + $ + $ ============================================================= + $ ========== USER MACROS ====================================== + $ ============================================================= + $ + *|AUTHOR|* = Dr. Fritz Mehner + *|AUTHORREF|* = mn + *|EMAIL|* = mehner@fh-swf.de + *|COMPANY|* = FH Südwestfalen, Iserlohn + *|COPYRIGHT|* = Copyright (c)*|YEAR|, |AUTHOR|* + $ + $ ============================================================= + $ ========== FILE INCLUDES ==================================== + $ ============================================================= + $ + *|includefile|* = c.comments.template + *|includefile|* = c.cpp.template + *|includefile|* = c.idioms.template + *|includefile|* = c.preprocessor.template + *|includefile|* = c.statements.template + +Lines starting with a dollar sign are comments. The section starting +with *|AUTHOR|* assigns values to predefined tags +(see|csupport-templates-macros|) to personalize some templates. Other +predefined tags with given default values can be used (e.g. *|YEAR|* ). + +User defined tags are possible. They have the following syntax: + + *|macroname|* = replacement + +A macroname starts with a letter (uppercase or lowercase) followed by zero or +more letters, digits or underscores. + +------------------------------------------------------------------------------ +5.2 MACROS *csupport-templates-macros* +------------------------------------------------------------------------------ + +The following macro names are predefined. The first group is used to +personalize templates. + + ---------------------------------------------------------------------------- + PREDEFINED MACROS DEFAULT VALUE + ---------------------------------------------------------------------------- +*|AUTHOR|* "" +*|AUTHORREF|* "" +*|EMAIL|* "" +*|COMPANY|* "" +*|PROJECT|* "" +*|COPYRIGHTHOLDER|* "" +*|includefile|* "" + +*|BASENAME|* filename without path and suffix +*|DATE|* the preferred date representation for the current locale + without the time +*|FILENAME|* filename without path +*|PATH|* path without filename +*|SUFFIX|* filename suffix +*|TIME|* the preferred time representation for the current locale + without the date and the time zone or name or abbreviation +*|YEAR|* the year as a decimal number including the century + +*|includefile|* can be used to include an additional template file. A file +will be included only once. Commenting and uncommenting include macros is a +simple way to switch between several sets of templates (see also +|csupport-run-templates|). Overwriting existing macros and templates is +possible. + + ---------------------------------------------------------------------------- + PREDEFINED TAGS + ---------------------------------------------------------------------------- + <CURSOR> The cursor position after insertion of a template + <SPLIT> The split point when inserting in visual mode + (see|csupport-templates-definition|) + +A dependent template file can start with its own macro section. There is no +need to have all user defined macros in the master file. +When the first template definition is found (see below) macro definitions are +no longer recognized. + + ---------------------------------------------------------------------------- + USER DEFINED FORMATS FOR DATE AND TIME *csupport-templates-date* + ---------------------------------------------------------------------------- +The format for *|DATE|* ,*|TIME|* , and*|YEAR|* can be set by the user. The +defaults are + *|DATE|* '%x' + *|TIME|* '%X' + *|YEAR|* '%Y' +See the manual page of the C function strftime() for the format. The accepted +format depends on your system, thus this is not portable! The maximum length +of the result is 80 characters. + +User defined formats can be set using the following global variables in +~/.vimrc , e.g. + let g:C_FormatDate = '%D' + let g:C_FormatTime = '%H:%M' + let g:C_FormatYear = 'year %Y' + +------------------------------------------------------------------------------ +5.3 TEMPLATES *csupport-templates-names* +------------------------------------------------------------------------------ + +5.3.1 Template names + +The template behind a menu entry is identified by a given name. The first part +of the name identifies the menu, the second part identifies the item. The +modes are also hard coded (see|csupport-templates-definition|for the use of +<SPLIT>). + + TEMPLATE NAME MODES + -------------------------------------------------------------------------- + comment.end-of-line-comment normal visual + comment.frame normal + comment.function normal + comment.method normal + comment.class normal + comment.file-description normal + comment.keyword-bug normal + comment.keyword-compiler normal + comment.keyword-todo normal + comment.keyword-tricky normal + comment.keyword-warning normal + comment.keyword-workaround normal + comment.keyword-keyword normal + comment.file-section-cpp-header-includes normal + comment.file-section-cpp-macros normal + comment.file-section-cpp-typedefs normal + comment.file-section-cpp-data-types normal + comment.file-section-cpp-class-defs normal + comment.file-section-cpp-local-variables normal + comment.file-section-cpp-prototypes normal + comment.file-section-cpp-function-defs-exported normal + comment.file-section-cpp-function-defs-local normal + comment.file-section-cpp-class-implementations-exported normal + comment.file-section-cpp-class-implementations-local normal + comment.file-section-hpp-header-includes normal + comment.file-section-hpp-macros normal + comment.file-section-hpp-exported-typedefs normal + comment.file-section-hpp-exported-data-types normal + comment.file-section-hpp-exported-class-defs normal + comment.file-section-hpp-exported-variables normal + comment.file-section-hpp-exported-function-declarations normal + + cpp.method-implementation normal + cpp.class normal + cpp.class-using-new normal + cpp.error-class normal + cpp.template-method-implementation normal + cpp.template-class normal + cpp.template-class-using-new normal + cpp.template-function normal + cpp.operator-in normal + cpp.operator-out normal + cpp.try-catch normal visual + cpp.catch normal visual + cpp.catch-points normal visual + cpp.extern normal visual + cpp.open-input-file normal + cpp.open-output-file normal + cpp.namespace normal visual + + idioms.function normal visual + idioms.function-static normal visual + idioms.main normal visual + idioms.enum normal visual + idioms.struct normal visual + idioms.union normal visual + idioms.calloc normal + idioms.malloc normal + idioms.open-input-file normal + idioms.open-output-file normal + idioms.fprintf normal + idioms.fscanf normal + + preprocessor.define normal + preprocessor.undefine normal + preprocessor.if-else-endif normal visual + preprocessor.ifdef-else-endif normal visual + preprocessor.ifndef-else-endif normal visual + preprocessor.ifndef-def-endif normal visual + + statements.do-while normal visual + statements.for normal + statements.for-block normal visual + statements.if normal + statements.if-block normal visual + statements.if-else normal visual + statements.if-block-else normal visual + statements.while normal + statements.while-block normal visual + statements.switch normal visual + statements.case normal + statements.block normal visual + + + +5.3.2 Template definition *csupport-templates-definition* + +A template definition starts with a template head line with the following +syntax: + + == templatename == [ position == ] + +The templatename is one of the above template identifiers. The position +attribute is optional. Possible attribute values are: + + above insert the template before the current line + append append the template to the current line + below insert the template below the current line + insert insert the template at the cursor position + start insert the template before the first line of the buffer + +An example: + + == comment.function == + /* + * === FUNCTION ======================================================= + * Name: <CURSOR> + * Description: + * ====================================================================== + */ + +The definition of a template ends at the next head line or at the end of the +file. + +Templates for the visual mode can use <SPLIT>. The text before <SPLIT> will +than be inserted above the marked area, the text after <SPLIT> will be +inserted behind the marked area. An example: + + == statements.if-block-else == + if ( <CURSOR> ) { + <SPLIT>} else { + } + +If applied to the marked block + + xxxxxxxxxxx + xxxxxxxxxxx + +this template yields + + if ( ) { + xxxxxxxxxxx + xxxxxxxxxxx + } else { + } + +The templates with a visual mode are shown in the table under +|csupport-templates-names|. + +5.3.3 Template expansion *csupport-templates-expansion* + +There are additional ways to control the expansion of a template. + +USER INPUT +---------- +If the usage of a yet undefined user macro starts with a question mark the +user will be asked for the replacement first, e.g. with the following template + + == idioms.function == + void<CURSOR> + *|?FUNCTION_NAME|* ( ) + { + <SPLIT> return ; + } /* ----- end of function*|FUNCTION_NAME|* ----- */ + +The can specify the function name which then will be applied twice. If the +macro was already in use the old value will be suggested as default. + +MACRO MANIPULATION +------------------ + +A macro expansion can be controlled by the following attributes + + :l change macro text to lowercase + :u change macro text to uppercase + :c capitalize macro text + :L legalize name + +The include guard template is an example for the use of ':L' : + + == preprocessor.ifndef-def-endif == + #ifndef *|?BASENAME:L|_INC* + #define *|BASENAME|_INC* + <CURSOR><SPLIT> + #endif // ----- #ifndef*|BASENAME|_INC* ----- + +The base name of the file shall be used as part of the include guard name. +The predefined macro*|BASENAME|* is used to ask for this part because this +macro has already a defined value. That value can accepted or replaced by the +user. For the filename 'test test++test.h' the legalized base name +'TEST_TEST_TEST' will be suggested. + +Legalization means: + - replace all whitespaces by underscores + - replace all non-word characters by underscores + - replace '+' and '-' by underscore + + +============================================================================== +6. C/C++ DICTIONARY *csupport-dictionary* +============================================================================== + +The files + + c-c++-keywords.list + k+r.list + stl_index.list + +are a part of this plugin and can be used (together with your own lists) as +dictionaries for automatic word completion. This feature is enabled by +default. The default word lists are + + plugin_dir/c-support/wordlists/c-c++-keywords.list + plugin_dir/c-support/wordlists/k+r.list + plugin_dir/c-support/wordlists/stl_index.list + +The variable plugin_dir will automatically be set by the plugin to one of the +following values: + $HOME.'/.vim/' for Linux/Unix + $VIM.'/vimfiles/' for Windows +If you want to use an additional list MyC.list put the following lines into + ~/.vimrc : + + let g:C_Dictionary_File = PLUGIN_DIR.'/c-support/wordlists/c-c++-keywords.list,'. + \ PLUGIN_DIR.'/c-support/wordlists/k+r.list,'. + \ PLUGIN_DIR.'/c-support/wordlists/stl_index.list,'. + \ PLUGIN_DIR.'/c-support/wordlists/MyC.list' + +When in file ~/.vimrc the name PLUGIN_DIR has to be replaced by $HOME or +$VIM (see above). Whitespaces in the pathnames have to be escaped with a +backslash. +The right side is a comma separated list of files. Note the point at the end +of the first line (string concatenation) and the backslash in front of the +second line (continuation line). +You can use Vim's dictionary feature CTRL-X, CTRL-K (and CTRL-P, CTRL-N). + + +============================================================================== +7. EXTEND taglist.vim FOR make AND qmake *csupport-taglist* +============================================================================== + +The use of the Vim plugin taglist.vim (Author: Yegappan Lakshmanan) is highly +recommended. It uses the program ctags which generates tag files for 3 dozen +languages (Exuberant Ctags, Darren Hiebert, http://ctags.sourceforge.net). +With the following extensions the list of targets in a makefile can be shown +in the taglist window. + +1) Append the file customization.ctags to the file $HOME/.ctags . + +2) Add the following lines (from customization.vimrc) to $HOME/.vimrc : + + " + "------------------------------------------------------------------- + " taglist.vim : toggle the taglist window + " taglist.vim : define the title texts for make + " taglist.vim : define the title texts for qmake + "------------------------------------------------------------------- + noremap <silent> <F11> <Esc><Esc>:Tlist<CR> + inoremap <silent> <F11> <Esc><Esc>:Tlist<CR> + + let tlist_make_settings = 'make;m:makros;t:targets' + let tlist_qmake_settings = 'qmake;t:SystemVariables' + + if has("autocmd") + " ---------- qmake : set file type for *.pro ---------- + autocmd BufNewFile,BufRead *.pro set filetype=qmake + endif " has("autocmd") + +3) restart vim/gvim + +The two maps will toggle the taglist window (hotkey F11) in all editing modes. +The two assignments define the headings for the (q)make sections in the +taglist window. The autocmd set the file type 'qmake' for the filename +extension 'pro' (ctags needs this). + +============================================================================== +8. SYNTAX BASED FOLDING *csupport-folding* +============================================================================== + +Syntax based folding can be enabled by adding the following lines to the file +'~/.vim/syntax/c.vim': + + syn region cBlock start="{" end="}" transparent fold + set foldmethod=syntax + " initially all folds open: + set foldlevel=999 + +You may have to create this file first. See |folding| for more information. + +============================================================================== +9. WINDOWS PARTICULARITIES *csupport-windows* +============================================================================== + +The plugin should go into the directory structure below the local +installation directory $HOME/.vim/ for LINUX/UNIX and $VIM/vimfiles/ for +Windows. +The values of the two variables can be found from inside Vim: + :echo $VIM +or + :echo $HOME + +Configuration files: + + LINUX/UNIX : $HOME/.vimrc and $HOME/.gvimrc + Windows : $VIM/_vimrc and $VIM/_gvimrc + +Compiler settings: + +It could be necessary to add further settings for your compiler. To compile +C++-programs using a Dev-C++ installation (http://www.bloodshed.net) the +following item in $VIM/_vimrc is needed (depends on the Dev-C++ install +directory): + + let g:C_CFlags = '-Wall -g -o0 -c -I c:\programs\dev-c++\include\g++' + +============================================================================== +10. TROUBLESHOOTING *csupport-troubleshooting* +============================================================================== + +* I do not see any new main menu item. + - Was the archive extracted into the right directory? + +* How can I see what was loaded? + - Use ':scriptnames' from the Vim command line. + +* No main menu item. + - Loading of plugin files must be enabled. If not use + :filetype plugin on + This is the minimal content of the file '$HOME/.vimrc'. Create one if there + is none, or better use customization.vimrc. + +* Most key mappings do not work. + - They are defined in a filetype plugin in '$HOME/.vim/ftplugin/'. Use ':filetype' + to check if filetype plugins are enabled. If not, add the line + filetype plugin on + to the file '~/.vimrc'. + +* Some hotkeys do not work. + - The hotkeys might be in use by your graphical desktop environment. + Under KDE Ctrl-F9 is the hotkey which let you switch to the 9. desktop. + The key settings can usually be redefined. + +* Splint and/or CodeCheck menu item not visible. + - The program is not installed or not found (path not set) or not executable. + +============================================================================== +11. RELEASE NOTES *csupport-release-notes* +============================================================================== +See file c-support/doc/ChangeLog . + +============================================================================== +vim:tw=78:noet:ts=2:ft=help:norl: diff --git a/.vim/doc/haskellmode.txt b/.vim/doc/haskellmode.txt new file mode 100644 index 0000000..905349c --- /dev/null +++ b/.vim/doc/haskellmode.txt @@ -0,0 +1,456 @@ +*haskellmode.txt* Haskell Mode Plugins 23/04/2009 + +Authors: + Claus Reinke <claus.reinke@talk21.com> ~ + +Homepage: + http://projects.haskell.org/haskellmode-vim + +CONTENTS *haskellmode* + + 1. Overview |haskellmode-overview| + 1.1 Runtime Requirements |haskellmode-requirements| + 1.2 Quick Reference |haskellmode-quickref| + 2. Settings |haskellmode-settings| + 2.1 GHC and web browser |haskellmode-settings-main| + 2.2 Fine tuning - more configuration options |haskellmode-settings-fine| + 3. GHC Compiler Integration |haskellmode-compiler| + 4. Haddock Integration |haskellmode-haddock| + 4.1 Indexing |haskellmode-indexing| + 4.2 Lookup |haskellmode-lookup| + 4.3 Editing |haskellmode-editing| + 5. Hpaste Integration |haskellmode-hpaste| + 6. Additional Resources |haskellmode-resources| + +============================================================================== + *haskellmode-overview* +1. Overview ~ + + The Haskell mode plugins provide advanced support for Haskell development + using GHC/GHCi on Windows and Unix-like systems. The functionality is + based on Haddock-generated library indices, on GHCi's interactive + commands, or on simply activating (some of) Vim's built-in program editing + support in Haskell-relevant fashion. These plugins live side-by-side with + the pre-defined |syntax-highlighting| support for |haskell| sources, and + any other Haskell-related plugins you might want to install (see + |haskellmode-resources|). + + The Haskell mode plugins consist of three filetype plugins (haskell.vim, + haskell_doc.vim, haskell_hpaste.vim), which by Vim's |filetype| detection + mechanism will be auto-loaded whenever files with the extension '.hs' are + opened, and one compiler plugin (ghc.vim) which you will need to load from + your vimrc file (see |haskellmode-settings|). + + + *haskellmode-requirements* +1.1 Runtime Requirements ~ + + The plugins require a recent installation of GHC/GHCi. The functionality + derived from Haddock-generated library indices also requires a local + installation of the Haddock documentation for GHC's libraries (if there is + no documentation package for your system, you can download a tar-ball from + haskell.org), as well as an HTML browser (see |haddock_browser|). If you + want to use the experimental hpaste interface, you will also need Wget. + + * GHC/GHCi ~ + Provides core functionality. http://www.haskell.org/ghc + + * HTML library documentation files and indices generated by Haddock ~ + These usually come with your GHC installation, possibly as a separate + package. If you cannot get them this way, you can download a tar-ball + matching your GHC version from http://www.haskell.org/ghc/docs/ + + * HTML browser with basic CSS support ~ + For browsing Haddock docs. + + * Wget ~ + For interfacing with http://hpaste.org. + + Wget is widely available for modern Unix-like operating systems. Several + ports also exist for Windows, including: + + - Official GNU Wget (natively compiled for Win32) + http://www.gnu.org/software/wget/#downloading + + - UnxUtils Wget (natively compiled for Win32, bundled with other ported + Unix utilities) + http://sourceforge.net/projects/unxutils/ + + - Cygwin Wget (emulated POSIX in Win32, must be run under Cygwin) + http://cygwin.com/packages/wget/ + + *haskellmode-quickref* +1.2 Quick Reference ~ + +|:make| load into GHCi, show errors (|quickfix| |:copen|) +|_ct| create |tags| file +|_si| show info for id under cursor +|_t| show type for id under cursor +|_T| insert type declaration for id under cursor +|balloon| show type for id under mouse pointer +|_?| browse Haddock entry for id under cursor +|_?1| search Hoogle for id under cursor +|_?2| search Hayoo! for id under cursor +|:IDoc| {identifier} browse Haddock entry for unqualified {identifier} +|:MDoc| {module} browse Haddock entry for {module} +|:FlagReference| {s} browse Users Guide Flag Reference for section {s} +|_.| qualify unqualified id under cursor +|_i| add 'import <module>(<identifier>)' for id under cursor +|_im| add 'import <module>' for id under cursor +|_iq| add 'import qualified <module>(<identifier>)' for id under cursor +|_iqm| add 'import qualified <module>' for id under cursor +|_ie| make imports explit for import statement under cursor +|_opt| add OPTIONS_GHC pragma +|_lang| add LANGUAGE pragma +|i_CTRL-X_CTRL-O| insert-mode completion based on imported ids (|haskellmode-XO|) +|i_CTRL-X_CTRL-U| insert-mode completion based on documented ids (|haskellmode-XU|) +|i_CTRL-N| insert-mode completion based on imported sources +|:GHCi|{command/expr} run GHCi command/expr in current module + +|:GHCStaticOptions| edit static GHC options for this buffer +|:DocSettings| show current Haddock-files-related plugin settings +|:DocIndex| populate Haddock index +|:ExportDocIndex| cache current Haddock index to a file +|:HpasteIndex| Read index of most recent entries from hpaste.org +|:HpastePostNew| Submit current buffer as a new hpaste + + +============================================================================== + *haskellmode-settings* +2. Settings ~ + + The plugins try to find their dependencies in standard locations, so if + you're lucky, you will only need to set |compiler| to ghc, and configure + the location of your favourite web browser. You will also want to make + sure that |filetype| detection and |syntax| highlighting are on. Given the + variety of things to guess, however, some dependencies might not be found + correctly, or the defaults might not be to your liking, in which case you + can do some more fine tuning. All of this configuration should happen in + your |vimrc|. +> + " enable syntax highlighting + syntax on + + " enable filetype detection and plugin loading + filetype plugin on +< + + *haskellmode-settings-main* +2.1 GHC and web browser ~ + + *compiler-ghc* *ghc-compiler* + To use the features provided by the GHC |compiler| plugin, use the + following |autocommand| in your vimrc: +> + au BufEnter *.hs compiler ghc +< + *g:ghc* + If the compiler plugin can't locate your GHC binary, or if you have + several versions of GHC installed and have a preference as to which binary + is used, set |g:ghc|: +> + :let g:ghc="/usr/bin/ghc-6.6.1" +< + *g:haddock_browser* + The preferred HTML browser for viewing Haddock documentation can be set as + follows: +> + :let g:haddock_browser="/usr/bin/firefox" +< + + *haskellmode-settings-fine* +2.2 Fine tuning - more configuration options ~ + + Most of the fine tuning is likely to happen for the haskellmode_doc.vim + plugin, so you can check the current settings for this plugin via the + command |:DocSettings|. If all the settings reported there are to your + liking, you probably won't need to do any fine tuning. + + *g:haddock_browser_callformat* + By default, the web browser|g:haddock_browser| will be started + asynchronously (in the background) on Windows or when vim is running in a + GUI, and synchronously (in the foreground) otherwise. These settings seem + to work fine if you are using a console mode browser (eg, when editing in + a remote session), or if you are starting a GUI browser that will launch + itself in the background. But if these settings do not work for you, you + can change the default browser launching behavior. + + This is controlled by |g:haddock_browser_callformat|. It specifies a + format string which uses two '%s' parameters, the first representing the + path of the browser to launch, and the second is the documentation URL + (minus the protocol specifier, i.e. file://) passed to it by the Haddock + plugin. For instance, to launch a GUI browser on Unix-like systems and + force it to the background (see also |shellredir|): +> + :let g:haddock_browser_callformat = '%s file://%s '.printf(&shellredir,'/dev/null').' &' +< + *g:haddock_docdir* + Your system's installed Haddock documentation for GHC and its libraries + should be automatically detected. If the plugin can't locate them, you + must point |g:haddock_docdir| to the path containing the master index.html + file for the subdirectories 'libraries', 'Cabal', 'users_guide', etc.: +> + :let g:haddock_docdir="/usr/local/share/doc/ghc/html/" +< + *g:haddock_indexfiledir* + The information gathered from Haddock's index files will be stored in a + file called 'haddock_index.vim' in a directory derived from the Haddock + location, or in $HOME. To configure another directory for the index file, + use: +> + :let g:haddock_indexfiledir="~/.vim/" +< + *g:wget* + If you also want to try the experimental hpaste functionality, you might + you need to set |g:wget| before the |hpaste| plugin is loaded (unless wget + is in your PATH): +> + :let g:wget="C:\Program Files\wget\wget.exe" +< + + Finally, the mappings actually use|<LocalLeader>|behind the scenes, so if + you have to, you can redefine|maplocalleader|to something other than '_'. + Just remember that the docs still refer to mappings starting with '_', to + avoid confusing the majority of users!-) + +============================================================================== + *haskellmode-compiler* *ghc* +3. GHC Compiler Integration ~ + + The GHC |compiler| plugin sets the basic |errorformat| and |makeprg| to + enable |quickfix| mode using GHCi, and provides functionality for show + info (|_si|), show type (|_t| or mouse |balloon|), add type declaration + (|_T|), create tag file (|_ct|), and insert-mode completion + (|i_CTRL-X_CTRL-O|) based on GHCi browsing of the current and imported + modules. + + To avoid frequent calls to GHCi, type information is cached in Vim. The + cache will be populated the first time a command depends on it, and will + be refreshed every time a |:make| goes through without generating errors + (if the |:make| does not succeed, the old types will remain available in + Vim). You can also unconditionally force reloading of type info using + |:GHCReload| (if GHCi cannot load your file, the type info will be empty). + + + In addition to the standard|quickfix| commands, the GHC compiler plugin + provides: + + *:GHCReload* +:GHCReload Reload modules and unconditionally refresh cache of + type info. Usually, |:make| is prefered, as that will + refresh the cache only if GHCi reports no errors, and + show the errors otherwise. + + *:GHCStaticOptions* +:GHCStaticOptions Edit the static GHC options for the current buffer. + Useful for adding hidden packages (-package ghc). + + *:GHCi* +:GHCi {command/expr} Run GHCi commands/expressions in the current module. + + *_ct* +_ct Create |tags| file for the current Haskell source + file. This uses GHCi's :ctags command, so it will work + recursively, but will only list tags for exported + entities. + + *_opt* +_opt Shows a menu of frequently used GHC compiler options + (selecting an entry adds the option as a pragma to the + start of the file). Uses popup menu (GUI) or :emenu + and command-line completion (CLI). + + *_lang* +_lang Shows a menu of the LANGUAGE options supported by GHC + (selecting an entry adds the language as a pragma to + the start of the file). Uses popup menu (GUI) or + :emenu and command-line completion (CLI). + + *_si* +_si Show extended information for the name under the + cursor. Uses GHCi's :info command. Output appears in + |preview-window| (when done, close with |:pclose|). + + *_t* +_t Show type for the name under the cursor. Uses cached + info from GHCi's :browse command. + + *_T* +_T Insert type declaration for the name under the cursor. + Uses cached info from GHCi's :browse command. + + *haskellmode-XO* *haskellmode-omni-completion* +CTRL-X CTRL-O Standard insert-mode omni-completion based on the + cached type info from GHCi browsing current and + imported modules. Only names from the current and from + imported modules are included (the completion menu + also show the type of each identifier). + +============================================================================== + *haskellmode-haddock* *haddock* +4. Haddock Integration ~ + + Haskell mode integrates with Haddock-generated HTML documentation, + providing features such as navigating to the Haddock entry for the + identifier under the cursor (|_?|), completion for the identifier under + the cursor (|i_CTRL-X_CTRL-U|), and adding import statements (|_i| |_im| + |_iq| |_iqm|) or module qualifier (|_.|) for the identifier under the + cursor. + + These commands operate on an internal Haddock index built from the + platform's installed Haddock documentation for GHC's libraries. Since + populating this index takes several seconds, it should be stored as a + file called 'haddock_index.vim' in the directory specified by + |g:haddock_indexfiledir|. + + Some commands present a different interface (popup menu or command-line + completion) according to whether the current Vim instance is graphical or + console-based (actually: whether or not the GUI is running). Such + differences are marked below with the annotations (GUI) and (CLI), + respectively. + + |:DocSettings| shows the settings for this plugin. If you are happy with + them, you can call |:ExportDocIndex| to populate and write out the + documentation index (should be called once for every new version of GHC). + + *:DocSettings* +:DocSettings Show current Haddock-files-related plugin settings. + + + *haskellmode-indexing* +4.1 Indexing ~ + + *:DocIndex* +:DocIndex Populate the Haddock index from the GHC library + documentation. + + *:ExportDocIndex* +:ExportDocIndex Cache the current Haddock index to a file (populate + index first, if empty). + + + *haskellmode-lookup* +4.2 Lookup ~ + + *_?* +_? Open the Haddock entry (in |haddock_browser|) for an + identifier under the cursor, selecting full + qualifications from a popup menu (GUI) or via + command-line completion (CLI), if the identifier is + not qualified. + + *_?1* +_?1 Search Hoogle (using |haddock_browser|) for an + identifier under the cursor. + + + *_?2* +_?2 Search Hayoo! (using |haddock_browser|) for an + identifier under the cursor. + + *:IDoc* +:IDoc {identifier} Open the Haddock entry for the unqualified + {identifier} in |haddock_browser|, suggesting possible + full qualifications. + + *:MDoc* +:MDoc {module} Open the Haddock entry for {module} in + |haddock_browser| (with command-line completion for + the fully qualified module name). + + *:FlagReference* +:FlagReference {s} Browse Users Guide Flag Reference for section {s} + (with command-line completion for section headers). + + + *haskellmode-editing* +4.3 Editing ~ + + *_.* +_. Fully qualify the unqualified name under the cursor + selecting full qualifications from a popup menu (GUI) + or via command-line completion (CLI). + + *_iq* *_i* +_i _iq Add 'import [qualified] <module>(<identifier>)' + statement for the identifier under the cursor, + selecting fully qualified modules from a popup menu + (GUI) or via command-line completion (CLI), if the + identifier is not qualified. This currently adds one + import statement per call instead of merging into + existing import statements. + + *_iqm* *_im* +_im Add 'import [qualified] <module>' statement for the + identifier under the cursor, selecting fully qualified + modules from a popup menu (GUI) or via command-line + completion (CLI), if the identifier is not qualified. + This currently adds one import statement per call + instead of merging into existing import statements. + + *_ie* +_ie On an 'import <module>' line, in a correctly loadable + module, temporarily comment out import and use :make + 'not in scope' errors to explicitly list imported + identifiers. + + *haskellmode-XU* *haskellmode-user-completion* +CTRL-X CTRL-U User-defined insert mode name completion based on all + names known to the Haddock index, including package + names. Completions are presented in a popup menu which + also displays the fully qualified module from which + each entry may be imported. + + CamelCode shortcuts are supported, meaning that + lower-case letters can be elided, using only + upper-case letters and module qualifier separators (.) + for disambiguation: + + pSL -> putStrLn + C.E.t -> Control.Exception.t + C.M.MP -> Control.Monad.MonadPlus + + To reduce unwanted matches, the first letter of such + shortcuts and the first letter after each '.' have to + match directly. + +============================================================================== + *haskellmode-hpaste* *hpaste* +5. Hpaste Integration ~ + + This experimental feature allows browsing and posting to + http://hpaste.org, a Web-based pastebin tailored for Haskell code. + + + *:HpasteIndex* +:HpasteIndex Read the most recent entries from hpaste.org. Show an + index of the entries in a new buffer, where ',r' will + open the current highlighted entry [and ',p' will + annotate it with the current buffer]. + + *:HpastePostNew* +:HpastePostNew Submit current buffer as a new hpaste entry. + [This, and ',p' above, are temporarily disabled, + needs update to new hpaste.org layout] + +============================================================================== + *haskellmode-resources* +6. Additional Resources ~ + + An quick screencast tour through of these plugins is available at: + + http://projects.haskell.org/haskellmode-vim/screencasts.html + + Other Haskell-related Vim plugins can be found here: + + http://www.haskell.org/haskellwiki/Libraries_and_tools/Program_development#Vim + + Make sure to read about Vim's other program-editing features in its online + |user-manual|. Also have a look at Vim tips and plugins at www.vim.org - + two other plugins I tend to use when editing Haskell are AlignPlugin.vim + (to line up regexps for definitions, keywords, comments, etc. in + consecutive lines) and surround.vim (to surround text with quotes, + brackets, parentheses, comments, etc.). + +============================================================================== + vim:tw=78:ts=8:ft=help: diff --git a/.vim/doc/imaps.txt b/.vim/doc/imaps.txt new file mode 100644 index 0000000..087b3db --- /dev/null +++ b/.vim/doc/imaps.txt @@ -0,0 +1,116 @@ + IMAP -- A fluid replacement for :imap + *imaps.txt* + Srinath Avadhanula <srinath AT fastmail DOT fm> + + + + Abstract + ======== +This plugin provides a function IMAP() which emulates vims |:imap| function. The +motivation for providing this plugin is that |:imap| suffers from problems +which get increasingly annoying with a large number of mappings. + +Consider an example. If you do > + imap lhs something + + +then a mapping is set up. However, there will be the following problems: +1. The 'ttimeout' option will generally limit how easily you can type the lhs. + if you type the left hand side too slowly, then the mapping will not be + activated. + +2. If you mistype one of the letters of the lhs, then the mapping is deactivated + as soon as you backspace to correct the mistake. + +3. The characters in lhs are shown on top of each other. This is fairly + distracting. This becomes a real annoyance when a lot of characters initiate + mappings. + +This script provides a function IMAP() which does not suffer from these +problems. + + + + *imaps.txt-toc* +|im_1| Using IMAP + +================================================================================ +Viewing this file + +This file can be viewed with all the sections and subsections folded to ease +navigation. By default, vim does not fold help documents. To create the folds, +press za now. The folds are created via a foldexpr which can be seen in the +last section of this file. + +See |usr_28.txt| for an introduction to folding and |fold-commands| for key +sequences and commands to work with folds. + +================================================================================ +Using IMAP *im_1* *imaps-usage* + + + +Each call to IMAP is made using the syntax: > + call IMAP (lhs, rhs, ft [, phs, phe]) + + +This is equivalent to having <lhs> map to <rhs> for all files of type <ft>. + +Some characters in the <rhs> have special meaning which help in cursor placement +as described in |imaps-placeholders|. The optional arguments define these +special characters. + +Example One: > + call IMAP ("bit`", "\\begin{itemize}\<cr>\\item <++>\<cr>\\end{itemize}<++>", "tex") + + +This effectively sets up the map for "bit`" whenever you edit a latex file. When +you type in this sequence of letters, the following text is inserted: > + \begin{itemize} + \item * + \end{itemize}<++> + +where * shows the cursor position. The cursor position after inserting the text +is decided by the position of the first "place-holder". Place holders are +special characters which decide cursor placement and movement. In the example +above, the place holder characters are <+ and +>. After you have typed in the +item, press <C-j> and you will be taken to the next set of <++>'s. Therefore by +placing the <++> characters appropriately, you can minimize the use of movement +keys. + +Set g:Imap_UsePlaceHolders to 0 to disable placeholders altogether. + +Set g:Imap_PlaceHolderStart and g:Imap_PlaceHolderEnd to something else if you +want different place holder characters. Also, b:Imap_PlaceHolderStart and +b:Imap_PlaceHolderEnd override the values of g:Imap_PlaceHolderStart and +g:Imap_PlaceHolderEnd respectively. This is useful for setting buffer specific +place holders. + +Example Two: You can use the <C-r> command to insert dynamic elements such as +dates. > + call IMAP ('date`', "\<c-r>=strftime('%b %d %Y')\<cr>", '') + + + +With this mapping, typing date` will insert the present date into the file. + +================================================================================ +About this file + +This file was created automatically from its XML variant using db2vim. db2vim is +a python script which understands a very limited subset of the Docbook XML 4.2 +DTD and outputs a plain text file in vim help format. + +db2vim can be obtained via anonymous CVS from sourceforge.net. Use + +cvs -d:pserver:anonymous@cvs.vim-latex.sf.net:/cvsroot/vim-latex co db2vim + +Or you can visit the web-interface to sourceforge CVS at: +http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/vim-latex/db2vim/ + +The following modelines should nicely fold up this help manual. + +vim:ft=help:fdm=expr:nowrap +vim:foldexpr=getline(v\:lnum-1)=~'-\\{80}'?'>2'\:getline(v\:lnum-1)=~'=\\{80}'?'>1'\:getline(v\:lnum)=~'=\\{80}'?'0'\:getline(v\:lnum)=~'-\\{80}'?'1'\:'=' +vim:foldtext=substitute(v\:folddashes.substitute(getline(v\:foldstart),'\\s*\\*.*',"",""),'^--','--\ \ \ \ ','') +================================================================================ diff --git a/.vim/doc/latex-suite-quickstart.txt b/.vim/doc/latex-suite-quickstart.txt new file mode 100644 index 0000000..8c18b72 --- /dev/null +++ b/.vim/doc/latex-suite-quickstart.txt @@ -0,0 +1,448 @@ + A (very) quick introduction to Latex-Suite + *latex-suite-quickstart.txt* + Srinath Avadhanula <srinath AT fastmail DOT fm> + + + + Abstract + ======== +Latex-Suite is a comprehensive set of scripts to aid in editing, compiling and +viewing LaTeX documents. A thorough explanation of the full capabilities of +Latex-Suite is described in the user manual. This guide on the other hand, +provides a quick 30-45 minute running start to some of the more commonly used +functionalities of Latex-Suite. + + *latex-suite-quickstart.txt-toc* +|lq_1| Using this tutorial +|lq_2| Inserting a template +|lq_3| Inserting a package +|lq_4| Inserting an Environment +|lq_5| A few keyboard shortcuts +|lq_6| Folding in Latex-Suite +|lq_7| Inserting a Reference +|lq_8| Compiling a document + |lq_8_1| Debugging LaTeX source files +|lq_9| Viewing DVI files + |lq_9_1| Performing forward searches + |lq_9_2| Performing inverse searches +|lq_10| Conclusions + +================================================================================ +Viewing this file + +This file can be viewed with all the sections and subsections folded to ease +navigation. By default, vim does not fold help documents. To create the folds, +press za now. The folds are created via a foldexpr which can be seen in the +last section of this file. + +See |usr_28.txt| for an introduction to folding and |fold-commands| for key +sequences and commands to work with folds. + +================================================================================ +Using this tutorial *lq_1* *lq_a_bc* + *lsq-using-tutorial* + + + +This tutorial assumes that you have vim version 6.1+ installed on your machine. +To check, open vim and type > + :ver +You will see the version in the first line of the output. Get the latest vim +version from http://vim.sf.net |lq_u_1|. + +Assuming you have Vim 6.1+ already up and running, follow the instructions here +|lq_u_2| to set up Latex-Suite. Remember to make sure your 'grepprg' setting of +Vim works. + +Good, now you are all set to start the tutorial. Since this tutorial aims to +explain the newbie-friendly version of Latex-Suite, it needs some GUI +functionality. Therefore, at least for this tutorial, open the gui version of +vim. (On MS windows, this is the default). Open up this help file in either the +same gvim session in a split window or in a different session and follow the +(friendly) instructions. + +================================================================================ +Inserting a template *lq_2* *lq_a_bd* + *lsq-inserting-template* + + + +Start up gvim and begin editing a new file. > + e newfile.tex +If the installation went well, you should see a new set of menus appear. Goto +Tex-Suite > Templates. You will see a number of templates to choose from. For +now, choose to insert a template for an article. You should get the following in +the main vim window (after possibly a hit-enter prompt). > + + 1 % File: sample.tex + 2 % Created: Sun Jun 22 04:00 PM 2003 P + 3 % Last Change: Sun Jun 22 04:00 PM 2003 P + 4 % + 5 \documentclass[a4paper]{article} + 6 \begin{document} + 7 + 8 \end{document} + 9 + 10 ~ + 11 ~ + 12 ~ + 13 ~ + -- INSERT -- 7,1 All + + + +The cursor is left on line 7 (just after the \begin{document} line) from where +you can start typing straight away. Trying to lessen movement is a recurring +theme in Latex-Suite. + +================================================================================ +Inserting a package *lq_3* *lq_a_be* + *lsq-lsq-inserting-package* + + + +Assume that we are writing a mathematical paper and we want to use the popular +amsmath package. We will use some functionality which Latex-Suite provides +specifically for including LaTeX packages, providing options etc. Navigate to +before the \begin{document} line (The portion of the document before the +\begin{document} is called the _preamble_ in LaTeX). On an empty line in the +preamble, type the single word amsmath and then press <F5> in normal mode. The +line will change to > + \usepackage[]{amsmath}<++> +with the cursor positioned conviniently between the []'s. For now, do not worry +about the trailing <++> at the end of this line. Assume we want to provide the +sumlimits options to amsmath. You can either type in this option manually, or +choose from a menu of package options which Latex-Suite automatically creates +when you insert a package using <F5>. With the cursor still placed between the +[], goto TeX-Suite > Packages > amsmath Options. Choose the sumlimits option. +The package line should get converted to: > + \usepackage[sumlimits,]{amsmath}<++> + + +with the cursor before ]. Press <C-j> in insert mode. You will see the cursor +jump to the end of the package line and the trailing <++> will dissapear. What +just happened?! You had your first taste of _Placeholders_. Read more about them +(later) here |lq_u_3|. In short, pressing <C-j> in insert mode takes you to the +next <++> in the text. + +================================================================================ +Inserting an Environment *lq_4* *lq_a_bf* + *lsq-insert-environment* + + + +Now let us type in a simple formula in LaTeX. Move back to the body of the +document (The portion of the document between \begin{document} and +\end{document} is called the body). Type in a few simple sentences and then on +an empty line, type the single word eqnarray. Escape to normal mode and press +<F5>. (Remember: <F5> is very useful!) This time, the line will change to: > + \begin{eqnarray} + \label{}<++> + \end{eqnarray}<++> +<with the cursor between the {}. Enter a label. We will use eqn:euler. After +typing in eqn:euler, press <C-j>. This will take you outside the curly-braces. +Another time you used a Placeholder! + +================================================================================ +A few keyboard shortcuts *lq_5* *lq_a_bg* + *lsq-keyboard-shortcuts* + + + +Now to type in the famous Euler formula. Our aim is to type > + e^{j\pi} + 1 &=& 0 +Instead of typing this blindly, let us use a few shortcuts to reduce movement. +Start out by typing e^. Now instead of typing {, type another ^. You will see +the e^^ change instantly to e^{}<++> with the cursor between {}'s. (The ^^ +changed to ^{}<++>.) Continue with the following sequence of letters: j`p. This +will change instantly to j\pi. (The `p changed to \pi.) Having typed in all we +need to type between the {}'s, press <C-j>. You will pop back out of the +curly-braces. Continue typing the rest of the formula. You can use == as a +shortcut for &=&. Latex-Suite provides a large number of such shortcuts which +should making typing much more fun and fast if you get acquainted with them. A +list is provided here |lq_u_4|. Definitely spend some time getting a feel for +them. Most of them are pretty intuitive like `/ for \frac{}{}, `8 for \infty +etc. + +In order to understand the next section better, it will be helpful to have one +more \label. Lets use the handy <F5> key to insert another equation. This time +something simple like the following will do: > + \begin{eqnarray} + \label{eqn:simple} + 1 + 1 = 2 + \end{eqnarray} + + +================================================================================ +Folding in Latex-Suite *lq_6* *lq_a_bh* *lsq-folding* + + + +Okay, we have typed enough. At this stage, hopefully, your file is looking +something like this: > + + 1 % File: sample.tex + 2 % Created: Sun Jun 22 04:00 PM 2003 P + 3 % Last Change: Mon Dec 15 07:00 PM 2003 + 4 % + 5 \documentclass[a4paper]{article} + 6 + 7 \usepackage[sumlimits,]{amsmath} + 8 + 9 \begin{document} + 10 \begin{eqnarray} + 11 \label{eqn:euler} + 12 e^{j\pi} + 1 &=& 0 + 13 \end{eqnarray} + 14 This is the famous euler equation. I + 15 will type another equation, just as + 16 true: + 17 \begin{eqnarray} + 18 \label{eqn:simple} + 19 1 + 1 &=& 2 + 20 \end{eqnarray} + 21 This is my contribution to mathematics. + 22 \end{document} + +In normal mode, press \rf. This will fold up the entire file and you should see +the file looking as below: > + + 1 % File: sample.tex + 2 % Created: Sun Jun 22 04:00 PM 2003 P + 3 % Last Change: Mon Dec 15 07:00 PM 2003 + 4 % + 5 +-- 4 lines: Preamble: \documentclass[a4paper]{article} ----- + 9 \begin{document} + 10 +-- 4 lines: eqnarray (eqn:euler) \label{eqn:euler} ----------- + 14 This is the famous euler equation. I + 15 will type another equation, just as + 16 true: + 10 +-- 4 lines: eqnarray (eqn:simple) \label{eqn:simple} --------- + 21 This is my contribution to mathematics. + 22 \end{document} + +What has happened is that Latex-Suite folded away blocks of LaTeX code into +folded regions. You can open and close folds by using the command za in normal +mode. + +================================================================================ +Inserting a Reference *lq_7* *lq_a_bi* + *lsq-inserting-reference* + + + +A necessary part of LaTeX editing is referencing equations, figures, +bibliographic entries etc. This is done with the \ref and the \cite commands. +Latex-Suite provides an easy way to do this. Somewhere in the body of the +document, type in the following sentence > + This is a reference to (\ref{}). +With the cursor between the {} press <F9> in insert mode. Your vim session will +sprout two new windows and it should look like below: > + + 9 \begin{document} + 10 +-- 4 lines: eqnarray (eqn:euler) : \label{eqn:euler}----------------------- + 14 This is the famous euler equation. I + 15 will type another equation, just as + 16 true: + 17 +-- 4 lines: eqnarray (eqn:simple) : \label{eqn:simple}--------------------- + 21 This is my contribution to mathematics. + 22 This is a reference to (\ref{}<++>)<++> + 23 \end{document} + ~ + ~ + ~ + test.tex [+] 22,29 Bot + test.tex|11| \label{eqn:euler} + test.tex|18| \label{eqn:simple} + ~ + ~ + ~ + [Error List] 1,1 All + 7 \usepackage[sumlimits,]{amsmath} + 8 + 9 \begin{document} + 10 \begin{eqnarray} + 11 \label{eqn:euler} + 12 e^{j\pi} + 1 &=& 0 + 13 \end{eqnarray} + 14 This is the famous euler equation. I + 15 will type another equation, just as + 16 true: + test.tex [Preview][+] 11,2-5 46% + + + +The cursor will relocate to the middle window which shows all \labels found in +all the .tex file in the current directory. You can scroll up and down in the +middle window till you reach the reference you want to insert. Notice how when +you scroll in the middle window, the bottom "Preview" window scrolls +automatically to show you the location of the current selection. This helps you +identify the reference with greater ease because often times, \labels are not +descriptive enough or there might be too many of them. To insert the reference, +just position the cursor on the relevant line in the middle window and press +<enter>. The line which you were editing will change to: > + This is a reference to (\ref{eqn:euler}) +<and the bottom windows close automatically. + +The <F9> key also works for inserting \cite commands to reference bibliographich +entries, inserting file names for the \inputgraphics command and just plain +searching for words. Click here |lq_u_5| for more information. + +================================================================================ +Compiling a document *lq_8* *lq_a_bj* + *lsq-compiling* + +|lq_8_1| Debugging LaTeX source files + + +Great! We have just created a small latex file. The next step is to make the +latex compiler create a .dvi file from it. Compiling via latex-suite is simple. +Goto normal mode and press \ll (replace \ with whatever mapleader setting you +have). This will call the latex compiler. If all goes well, then the focus +should return to the vim window. + +Nothing happend? Ouch! You might need to do some additional settings as +described here. |lq_u_6| + + +-------------------------------------------------------------------------------- +Debugging LaTeX source files *lq_8_1* *lq_a_bk* + *lsq-debugging* + +To illustrate the debugging procedure, let's create a few mistakes in the file. +Insert the following ``mistakes'' in the file: > + This is a $\mistake$. + And this is $\another$ +Now press \ll again. This time you will notice that after compilation finishes, +the cursor automatically lands on $\mistake$. In addition, 2 new windows will +appear as shown here: + +The middle window is an _Error List_ window showing you the errors which the +latex compiler found. Th bottom window is a _Log Preview_ window, which shows +you the context of the error made by displaying the relevant portion of the .log +file created during the latex compilation procedure. Jump to the _Error List_ +window and try scrolling around in it using either the j, k keys or the arrow +keys. You will notice that the _Log Preview_ window scrolls automatically to +retain the context of the error you are currently located on. If you press +<enter> on any line, you will see the cursor jump to the location of the error. +Latex-Suite tries to guess the column location as best as it can so you can +continue typing straight away. +Having got a taste for compiling, proceed by deleting the erroneous lines and +re-compiling. + +The Latex-Suite compiler is capable of much more including selectively filtering +out common errors which you might want to ignore for the moment, compiling parts +of a document, setting levels of verbosity in the compiler output etc. See here +|lq_u_7| for more. + +================================================================================ +Viewing DVI files *lq_9* *lq_a_bl* + *lsq-viewing-dvi* + +|lq_9_1| Performing forward searches +|lq_9_2| Performing inverse searches + + +Now that you have compiled your first latex source, its time to view it. Again, +this should be pretty simple. Press \lv in normal mode. Depending on your +platform, a DVI viewer program should open up and display the dvi file generated +in compilation step previously. + +Nothing happend? Ouch! You might need to do some additional settings as +described here. |lq_u_8| + + +-------------------------------------------------------------------------------- +Performing forward searches *lq_9_1* *lq_a_bm* + *lsq-quick-forward-searching* + +If you are using a modern DVI viewer, then it is possible to do what is called +forward and inverse searching. However, you will need to customize the standard +Latex-Suite distribution in order to utilize this functionality. Type in the +following on the command line: > + :let g:Tex_CompileRule_dvi = 'latex -src-specials -interaction=nonstopmode $*' + :TCTarget dvi + + +Now recompile the latex file by pressing \ll. This time, instead of pressing \lv +to view the file, press \ls from within the tex file. If the DVI viewer supports +forward searching (most of them do), then the viewer will actually display the +portion of the DVI file corresponding to the location where you were editing the +tex file. + +NOTE: The reason Latex-Suite does not have this setting by default is that on + some systems this causes unpredictable results in the DVI output. If you + find the DVI output satisfactory, then you can insert the first of the 2 + lines above into your $VIM/ftplugin/tex.vim file. $VIM is ~/vimfiles for + windows and ~/.vim for *nix machines. + + + +-------------------------------------------------------------------------------- +Performing inverse searches *lq_9_2* *lq_a_bn* + *lsq-quick-inverse-searching* + +Most DVI viewers also support inverse searching, whereby you can make the DVI +viewer ask vim to display the tex source corresponding to the DVI file being +shown. This is extremeley helpful while proofreading large documents. + +Simply double-click anywhere in the viewer window. If the viewer supports it, +then it will attempt to open an editor window at the location corresponding to +where you double-clicked. On *nix platforms, Latex-Suite attempts to start the +viewer program in such a way that it already knows to use vim to open the tex +source. Thus you should see a vim window open up showing the tex file. However, +if there is an error, or some other program is used, you will need to tell the +viewer program to use gvim as the editor. On windows platforms, if you use the +commonly available yap viewer (available as part of the miktex distribution), +then this option can be set from View > Options > Inverse Search. In the Command +line: window, write > + "C:\Program Files\vim\vim61\gvim" -c ":RemoteOpen +%l %f" +(Customize the path according to where you have installed gvim). If you double +click in the view pane now, you will see gvim start up and take you to the +relevant portion of the tex file. + +================================================================================ +Conclusions *lq_10* *lq_a_bo* + *lsq-conclusions* + + + +Thats all folks! By now, you should know enough of the basic functions of +latex-suite. Ofcourse, latex-suite is capable of much, much more such as +compiling files multiple times to resolve changed labels, compiling +dependencies, handling user packages and more. To get a feel for that, you will +need to take a look at the Latex-Suite user manual. |lq_u_9| + +================================================================================ +URLs used in this file + +*lq_u_1* : http://vim.sf.net +*lq_u_2* : http://vim-latex.sourceforge.net/index.php?subject=download&title=Download +*lq_u_3* : http://vim-latex.sourceforge.net/documentation/latex-suite/latex-macros.html +*lq_u_4* : http://vim-latex.sourceforge.net/documentation/latex-suite/auc-tex-mappings.html +*lq_u_5* : http://vim-latex.sourceforge.net/documentation/latex-suite/latex-completion.html +*lq_u_6* : http://vim-latex.sourceforge.net/index.php?subject=faq&title=FAQ#faq-2 +*lq_u_7* : http://vim-latex.sourceforge.net/documentation/latex-suite/latex-compiling.html +*lq_u_8* : http://vim-latex.sourceforge.net/index.php?subject=faq&title=FAQ#faq-3 +*lq_u_9* : http://vim-latex.sourceforge.net/index.php?subject=manual&title=Manual#user-manual + +================================================================================ +About this file + +This file was created automatically from its XML variant using db2vim. db2vim is +a python script which understands a very limited subset of the Docbook XML 4.2 +DTD and outputs a plain text file in vim help format. + +db2vim can be obtained via anonymous CVS from sourceforge.net. Use + +cvs -d:pserver:anonymous@cvs.vim-latex.sf.net:/cvsroot/vim-latex co db2vim + +Or you can visit the web-interface to sourceforge CVS at: +http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/vim-latex/db2vim/ + +The following modelines should nicely fold up this help manual. + +vim:ft=help:fdm=expr:nowrap +vim:foldexpr=getline(v\:lnum-1)=~'-\\{80}'?'>2'\:getline(v\:lnum-1)=~'=\\{80}'?'>1'\:getline(v\:lnum)=~'=\\{80}'?'0'\:getline(v\:lnum)=~'-\\{80}'?'1'\:'=' +vim:foldtext=substitute(v\:folddashes.substitute(getline(v\:foldstart),'\\s*\\*.*',"",""),'^--','\ \ \ \ \ \ ','') +================================================================================ diff --git a/.vim/doc/latex-suite.txt b/.vim/doc/latex-suite.txt new file mode 100644 index 0000000..a44cd9b --- /dev/null +++ b/.vim/doc/latex-suite.txt @@ -0,0 +1,3418 @@ + Latex-Suite Reference + *latex-suite.txt* + Srinath Avadhanula <srinath AT fastmail DOT fm> + Mikolaj Machowski <mikmach AT wp DOT pl> + + + + Abstract + ======== +Latex-Suite attempts to provide a comprehensive set of tools to view, edit and +compile LaTeX documents in Vim. Together, they provide tools starting from +macros to speed up editing LaTeX documents to functions for forward searching +.dvi documents. Latex-Suite has been possible because of the contributions of +many people. Please see latex-suite-credits [|ls_a_dU|] for a list of people who +have helped. + +Latex-Suite is released under the Vim charityware license. For license and +conditions of use look at |copyright|. Replace all occurrences of ``Vim'' with +``Latex-Suite''. The current copyright holders of Latex-Suite are Srinath +Avadhanula and Mikolaj Machowski. + +Homepage: http://vim-latex.sourceforge.net |ls_u_1| + + + + *latex-suite.txt-toc* +|ls_1| Installation and recommended Settings +|ls_2| Inserting Templates +|ls_3| Latex-Suite Macros + |ls_3_1| Environment Mappings + |ls_3_2| Command Mappings + |ls_3_3| Font Mappings + |ls_3_4| Section Mappings + |ls_3_5| Greek Letter Mappings + |ls_3_6| Auc-Tex Key Bindings + |ls_3_7| Diacritics + |ls_3_8| BibTeX Shortcuts + |ls_3_9| Smart Key Mappings + |ls_3_10| Alt Key Macros + |ls_3_11| Custom Macros + |ls_3_12| Making your own Macros via IMAP() +|ls_4| Package Handling + |ls_4_1| Inserting package commands + |ls_4_2| Actions taken for supported packages + |ls_4_3| Automatic Package detection + |ls_4_4| Writing supporting for a package +|ls_5| Latex Completion + |ls_5_1| Latex-Suite completion example + |ls_5_2| Latex-Suite \ref completion + |ls_5_3| Latex-Suite \cite completion + |ls_5_4| Latex-Suite filename completion + |ls_5_5| Custom command completion +|ls_6| LaTeX Compiling + |ls_6_1| Setting Compilation rules + |ls_6_2| Handling dependencies in compilation + |ls_6_3| Compiling multiple times + |ls_6_4| Customizing the compiler output + |ls_6_5| Compiling parts of a file +|ls_7| Latex Viewing and Searching + |ls_7_1| Setting Viewing rules + |ls_7_2| Forward Searching DVI documents + |ls_7_3| Inverse Searching +|ls_8| Latex Folding + |ls_8_1| Default Folding Scheme in Latex-Suite + |ls_8_2| Customizing what to fold + |ls_8_3| Editing the folding.vim file directly +|ls_9| Multiple file LaTeX projects + |ls_9_1| Latex-Suite project settings + |ls_9_2| Specifying which file to compile +|ls_10| Latex-Suite Commands and Maps + |ls_10_1| Latex-Suite Maps + |ls_10_2| Latex Suite Commands +|ls_11| Customizing Latex-Suite + |ls_11_1| General Settings + |ls_11_2| Place-Holder Customization + |ls_11_3| Macro Customization + |ls_11_4| Smart Key Customization + |ls_11_5| Latex Completion Customization + |ls_11_6| Compiler Customization + |ls_11_7| Viewer Customization + |ls_11_8| Menu Customization + |ls_11_9| Folding Customization + |ls_11_10| Package Handling Customization +|ls_12| Credits + +================================================================================ +Viewing this file + +This file can be viewed with all the sections and subsections folded to ease +navigation. By default, vim does not fold help documents. To create the folds, +press za now. The folds are created via a foldexpr which can be seen in the +last section of this file. + +See |usr_28.txt| for an introduction to folding and |fold-commands| for key +sequences and commands to work with folds. + +================================================================================ +Installation and recommended Settings *ls_1* *ls_a_bc* + *recommended-settings* + + + +If you are reading this, it most probably means that you have already installed +Latex-Suite and the help files. If this is not the case, follow the detailed +instructions on Latex-Suite's download page |ls_u_2|. + +Make sure that you create a few necessary settings in your ~/.vimrc. > + + " REQUIRED. This makes vim invoke Latex-Suite when you open a tex file. + filetype plugin on + + " IMPORTANT: win32 users will need to have 'shellslash' set so that latex + " can be called correctly. + set shellslash + + " IMPORTANT: grep will sometimes skip displaying the file name if you + " search in a singe file. This will confuse Latex-Suite. Set your grep + " program to always generate a file-name. + set grepprg=grep\ -nH\ $* + + " OPTIONAL: This enables automatic indentation as you type. + filetype indent on + + + +In addition, the following settings could go in your ~/.vim/ftplugin/tex.vim +file: > + " this is mostly a matter of taste. but LaTeX looks good with just a bit + " of indentation. + set sw=2 + " TIP: if you write your \label's as \label{fig:something}, then if you + " type in \ref{fig: and press <C-n> you will automatically cycle through + " all the figure labels. Very useful! + set iskeyword+=: + + + +================================================================================ +Inserting Templates *ls_2* *ls_a_bd* + *latex-suite-templates* + + + +This functionality is available via the TeX-Suite > Templates menu. This module +provides a way to insert custom templates at the beginning of the current file. + +When Latex-Suite first starts up, it scans the +$VIM/ftplugin/latex-suite/templates/ directory and creates menu items based on +the files found there. When you select a template from this menu, the file will +be read in above the first line of the current file. + +A template file can utilize placeholders for initializing the cursor position +when the template is read in and subsequent movement. In addition, template +files can contain dynamic elements such as the time of creation of a file etc, +by using vim expressions. + +You can place your own templates in the $VIM/ftplugin/latex-suite/templates/ +directory in order for them to be available via the menu. Unless Latex-Suite +releases a template with the same name, these files should not get over-written +when you install a new release over an existing one. + +NOTE: Templates are also accessible for non-gui users with the command + |:TTemplate|. The argument should be name of the corresponding template + file. If the command is called without arguments (preferred usage), then a + list of available templates is displayed and the user is asked to choose + one of them. + + + +================================================================================ +Latex-Suite Macros *ls_3* *ls_a_be* + *latex-macros* + +|ls_3_1| Environment Mappings +|ls_3_2| Command Mappings +|ls_3_3| Font Mappings +|ls_3_4| Section Mappings +|ls_3_5| Greek Letter Mappings +|ls_3_6| Auc-Tex Key Bindings +|ls_3_7| Diacritics +|ls_3_8| BibTeX Shortcuts +|ls_3_9| Smart Key Mappings +|ls_3_10| Alt Key Macros +|ls_3_11| Custom Macros +|ls_3_12| Making your own Macros via IMAP() + + +Latex-Suite ships with a very comprehensive set of insert mode and |visual-mode| +mappings and menu items to typeset most of the LaTeX elements. + +NOTE: These mappings are are not standard mappings in the sense that only the + last character is mapped. See plugin/imaps.vim for further documentation. + For example, in the case of the mapping EFI provided by Latex-Suite you + can press the characters 'E', 'F' and 'I' as slowly as you wish (unlike + the normal imap command where timeout issues are involved). The characters + are visible as you type them (unlike normal imaps) and you can use the + movement or backspace key to correct yourself unlike normal mappings. + + + *place-holder* *ls_a_dV* + *place-holders* *ls_a_eD* +NOTE: Place Holders + ------------- + Almost all macros provided in Latex-Suite implement Stephen Riem's + bracketing system and Gergely Kontra's JumpFunc() for handling + place-holders. This consists of using "place-holders" to mark off + locations where the next relevant editing has to be done. As an example, + when you type EFI in |insert-mode|, you will get the following: > + \begin{figure}[h] + \centerline{\psfig{figure=<+eps file+>}} + \caption{<+caption text+>} + \label{fig:<+label+>} + \end{figure}<++> +< The text <+eps file+> will be selected and you will be left in + |select-mode| so that you can continue typing straight away. After having + typed in the file name, you can press <Ctrl-J> (while still in + insert-mode). This will take you directly to the next "place-holder". i.e, + <+caption text+> will be visually selected with Vim in select mode again + for typing in the caption. This saves on a lot of key presses. + + + *overriding-macros* *ls_a_eE* +NOTE: Over-riding Latex-Suite Macros + ------------------------------ + If you wish to change these macros from their default values, for example, + if you wish to change `w to expand to \omega instead of its default + expansion to \wedge, you should use the IMAP function as described in the + Using IMAP() [|ls_a_bG|] section. + + An important thing to note is that if you wish to over-ride macros created + by Latex-Suite rather than merely create new macros, you should place the + IMAP() calls in a script which gets sourced after the files in + Latex-Suite. A good place typically is as a file-type plugin file in the + ~/.vim/after/ftplugin/ directory. (Use ~/vimfiles if you are using + WINDOWS). For example to over-ride `w to \omega instead of \wedge, place + the following line in (say) ~/.vim/after/ftplugin/tex_macros.vim: > + call IMAP('`w', '\omega', 'tex') +< + + NOTE: It is important to use a file-name which will get sourced on a + FileType event. Therefore you must use a file-name which conforms to + the standards as described in |ftplugin-name|. + + + + *pausing-imaps* *ls_a_eF* +NOTE: Pausing Macro expansion + ----------------------- + If you wish to temporarily suspend the imaps functionality, then you can + set the Imap_FreezeImap to 1. If you set g:Imap_FreezeImap to 1, then it + will be a system-wide setting. Setting b:Imap_FreezeImap will affect only + the current buffer. + + +The following sections describe the various editing macros provided by +Latex-Suite. + + +-------------------------------------------------------------------------------- +Environment Mappings *ls_3_1* *ls_a_bf* + *environment-mappings* + +Latex-Suite provides a rich set of mappings to insert, enclose and modify LaTeX +environments, i.e, \begin{...} ... \end{...} pairs. + +Inserting Environments *ls_3_1_1* *ls_a_bg* + *inserting-environments* + +Latex-Suite provides the following ways to insert environments + + + +Method 1: Pressing <F5> *ls_3_1_1_1* *ls_a_bh* + *inserting-env-f5* + +If you press <F5> in the insert or normal mode while on an empty line, +Latex-Suite prompts you with a list of environments you might want to insert. +You can either choose one from the list or type in a new environment name. If +you press <F5> on a line which already has a word, then that word is used +instead of prompting. + +See Tex_Env_name [|ls_a_cZ|] for a description of how Latex-Suite uses the word +to form the expansion and how to modify Latex-Suite's behavior. + +The list of environments which Latex-Suite prompts you with (when <F5> is +pressed on an empty line) is formed from the Tex_PromptedEnvironments +[|ls_a_di|] setting. + +In addition to this setting, Latex-Suite also lists environments found in custom +packages as described in the section Package actions. [|ls_a_bL|] + + +Method 2: Using <S-F1>-<S-F4> *ls_3_1_1_2* *ls_a_bi* + *inserting-env-shift-f1* + +The shifted function keys, <S-F1> to <S-F4> can be mapped to insert very +commonly used environments. The environments mapped to each key can be +customized via the g:Tex_HotKeyMappings [|ls_a_dj|] setting. + + +Method 3: Using three letter sequences *ls_3_1_1_3* *ls_a_bj* + *inserting-env-threeletter* + +Environments can also be inserted by pressing a 3 capital letter sequence +starting with an E. The sequence of 3 letters generally tries to follow the +following rules: + + +1. All environment mappings begin with E + +2. If the environment can be broken up into 2 distinct words, such as flushright + (flush + right), then the next 2 letters are the first letters of the 2 + words. Example: > + flushleft (_f_lush + _l_eft) ---> EFL + flushright (_f_lush + _r_ight) ---> EFR + eqnarray (_e_qn + _a_rray) ---> EEA +< If on the other hand, the environment name cannot be broken up into 2 + distinct words, then the next 2 letters are the first 2 letters of the name + of the environment. Example: > + equation (_eq_uation) ---> EEQ +< +Unfortunately there are some environments that cannot be split in two words and +first two letters in name are identical. In this case shortcut is created from +E, first and last letter. Example: > + quote (_q_uot_e_) ---> EQE + quotation (_q_uotatio_n_) ---> EQN +Of course, not every last one of the environments can follow this rule because +of ambiguities. In case of doubt, pull down the Tex-Environments menu. The menu +item should give the hint for the map. + + +Enclosing in Environments *ls_3_1_2* *ls_a_bk* + *enclosing-environments* + +Latex-Suite provides visual-mode mappings which enclose visually selected +portions of text in environments. There are two ways provided to do this. + + + +Method 1: Pressing <F5> *ls_3_1_2_1* *ls_a_bl* + *enclosing-env-f5* + +You can also select a portion of text visually and press <F5> while still in +visual mode. This will prompt you with a list of environments. (This list can be +customized via the g:Tex_PromptedEnvironments [|ls_a_di|] setting). You can +either choose from this list or type in a new environment name. Once the +selection is done, Latex-Suite encloses the visually selected portion in the +chosen environment. + + +Method 2: Using three letter mappings *ls_3_1_2_2* *ls_a_bm* + *enclosing-env-threeletter* + +You can also select text visually and press a sequence of three characters +beginning with , (the single comma character) and the selected text will be +enclosed in the chosen environment. The three letter sequence follows directly +from the three letter sequence used to insert environments as described here +[|ls_a_bj|]. The following example describes the rule used: + +If ECE inserts a \begin{center}...\end{center} environment, then to enclose a +block of selected text in \begin{center}...\end{center}, simply select the text +and press ,ce. The rule simply says that the leading E is converted to , and the +next 2 letters are small case. +Some of the visual mode mappings are sensitive to whether you choose line-wise +or character-wise. For example, if you choose a word and press ,ce, then you get +\centerline{word}, whereas if you press ,ce on a line-wise selection, you get: > + \begin{center} + line + \end{center} + + + +Changing Environments *ls_3_1_3* *ls_a_bn* + *changing-environments* + +Pressing <S-F5> in normal mode detects which environment the cursor is presently +located in and prompts you to replace it with a new one. The innermost +environment is detected. For example, in the following source: > + \begin{eqnarray} + \begin{array}{ccc} + 2 & 3 & 4 + \end{array} + \end{eqnarray} +if you are located in the middle "2 & 3 & 4" line, then pressing <S-F5> will +prompt you to change the array environment, not the eqnarray environment. In +addition, Latex-Suite will also try to change lines within the environment to be +consistent with the new environment. For example, if the original environment +was an eqnarray environment with a \label command, then changing it to an +eqnarray* environment will delete the \label. + +Pressing <F5> in normal mode has the same effect as pressing <F5> in +insert-mode, namely you will be prompted to choose an environment to insert. + +-------------------------------------------------------------------------------- +Command Mappings *ls_3_2* *ls_a_bo* + *latex-command-maps* + +Latex-Suite provides a rich set of mappings to insert, enclose and modify LaTeX +commands. + +Inserting LaTeX commands *ls_3_2_1* *ls_a_bp* + *inserting-commands* + + *ls-imap-f7* *ls_a_dW* + *ls-imap-s-f7* *ls_a_dX* +Pressing <F7> in insert or normal mode while the cursor is touching a word will +insert a command formed from the word touching the cursor. + +For certain common commands, Latex-Suite will expand them to include additional +arguments as needed. For example, frac becomes \frac{<++>}{<++>}<++>. Otherwise, +it will simply change the word under the cursor as follows > + word --> \word{<++>}<++> +You can define custom expansions of commands using the Tex_Com_{name} setting as +described in here [|ls_a_da|]. + +If <F7> is pressed when the cursor is on white-space, then Latex-Suite will +prompt you to choose a command and insert that instead.The list of commands is +constructed from the g:Tex_PromptedCommands [|ls_a_dk|] setting and also from +commands which Latex-Suite finds while scanning custom packages which +Latex-Suite finds. See the Package actions [|ls_a_bL|] section for details on +which files are scanned etc. + + +Enclosing in a command *ls_3_2_2* *ls_a_bq* + *enclosing-commands* + +You can select a portion of text visually and press <F7> while still in visual +mode. This will prompt you with a list of commands. (This list can be customized +via the g:Tex_PromptedCommands [|ls_a_dk|] setting). You can either choose from +this list or type in a new command name. Once the selection is done, Latex-Suite +encloses the visually selected portion in the chosen command. + + +Changing commands *ls_3_2_3* *ls_a_br* + *changing-commands* + + *ls-vmap-f7* *ls_a_dY* +In both insert and normal mode <S-F7> will find out if you are presently within +an environment and then prompt you with a list of commands to change it to. + +-------------------------------------------------------------------------------- +Font Mappings *ls_3_3* *ls_a_bs* *font-maps* + +These mappings insert font descriptions such as: \textsf{<++>}<++> with the +cursor left in place of the first placeholder [|ls_a_eD|] (the <++> characters). + +Mnemonic: +1. first letter is always F (F for font) + +2. next 2 letters are the 2 letters describing the font. + +Example: Typing FEM in insert-mode expands to \emph{<++>}<++>. + +Just like environment mappings, you can visually select an area and press `sf to +have it enclosed in: \textsf{word} or > + {\sffamily + line + } +depending on character-wise or line-wise selection. + +-------------------------------------------------------------------------------- +Section Mappings *ls_3_4* *ls_a_bt* + *section-mappings* + +These maps insert LaTeX sections such as: > + \section{<++>}<++> +etc. Just as in the case of environments and fonts, can be enclosed with a +visual selection. The enclosing is not sensitive to character or line-wise +selection. + +Mnemonic: (make your own!) > + SPA for part + SCH for chapter + SSE for section + SSS for subsection + SS2 for subsubsection + SPG for paragraph + SSP for subparagraph + + +Example: SSE in insert mode inserts > + \section{<++>}<++> +If you select a word or line and press ,se, then you get > + \section{section name} +The menu item in Tex-Environments.Sections have a sub-menu called 'Advanced'. +Choosing an item from this sub-menu asks a couple of questions (whether you want +to include the section in the table of contents, whether there is a shorter name +for the table of contents) and then creates a more intelligent template. + +-------------------------------------------------------------------------------- +Greek Letter Mappings *ls_3_5* *ls_a_bu* + *greek-letter-mappings* + +Lower case + +`a through `z expand to \alpha through \zeta.Upper case: + + > + `D = \Delta + `F = \Phi + `G = \Gamma + `Q = \Theta + `L = \Lambda + `X = \Xi + `Y = \Psi + `S = \Sigma + `U = \Upsilon + `W = \Omega +NOTE: LaTeX does not support upper case for all greek alphabets. + + +Just like other Latex-Suite mappings, these mappings are not created using the +standard imap command. Thus you can type slowly, correct using <BS> etc. + +-------------------------------------------------------------------------------- +Auc-Tex Key Bindings *ls_3_6* *ls_a_bv* + *auc-tex-mappings* + +These are simple 2 key expansions for some very commonly used LaTeX elements: + + > + `^ Expands To \Hat{<++>}<++> + `_ expands to \bar{<++>}<++> + `6 expands to \partial + `8 expands to \infty + `/ expands to \frac{<++>}{<++>}<++> + `% expands to \frac{<++>}{<++>}<++> + `@ expands to \circ + `0 expands to ^\circ + `= expands to \equiv + `\ expands to \setminus + `. expands to \cdot + `* expands to \times + `& expands to \wedge + `- expands to \bigcap + `+ expands to \bigcup + `( expands to \subset + `) expands to \supset + `< expands to \le + `> expands to \ge + `, expands to \nonumber + `~ expands to \tilde{<++>}<++> + `; expands to \dot{<++>}<++> + `: expands to \ddot{<++>}<++> + `2 expands to \sqrt{<++>}<++> + `| expands to \Big| + `I expands to \int_{<++>}^{<++>}<++> +(again, notice the convenient place-holders) + +In addition the visual mode macros are provided: + + > + `( encloses selection in \left( and \right) + `[ encloses selection in \left[ and \right] + `{ encloses selection in \left\{ and \right\} + `$ encloses selection in $$ or \[ \] depending on characterwise or + linewise selection + + +-------------------------------------------------------------------------------- +Diacritics *ls_3_7* *ls_a_bw* + *diacritic-mappings* + +These mappings speed up typing European languages which contain diacritic +characters such as a-umlaut etc. > + +<l> expands to \v{<l>} + =<l> expands to \'{<l>} +where <l> is an alphabet. + + > + +} expands to \"{a} + +: expands to \^{o} +Latex-Suite also ships with smart backspacing [|ls_a_dZ|] functionality which +provides another convenience while editing languages with diacritics. + +NOTE: Diacritics are disabled by default in Latex-Suite because they can + sometimes be a little too intrusive. Moreover, most European users can + nowadays use font encodings which display diacritic characters directly + instead of having to rely on Latex-Suite's method of displaying + diacritics. + + Set the g:Tex_Diacritics [|ls_a_df|] variable to enable diacritics. + + + +-------------------------------------------------------------------------------- +BibTeX Shortcuts *ls_3_8* *ls_a_bx* + *bibtex-bindings* + +Latex-Suite provides an easy way of entering bibliographic entries. Four +insert-mode mappings: BBB, BBL, BBH and BBX are provided, all of which +essentially act in the same manner. When you type any of these in insert-mode, +you will get a prompt asking you to choose a entry type for the bibliographic +entry. + +When you choose an entry type, a bibliographic entry template will be inserted. +For example, if you choose the option 'book' via the map BBB, then the following +template will be inserted: > + @BOOK{<+key+>, + author = {<++>}, + editor = {<++>}, + title = {<++>}, + publisher = {<++>}, + year = {<++>}, + otherinfo = {<++>} + }<++> + + +<+key+> will be highlighted in select-mode and you can type in the bib-key. +After that you can use <Ctrl-J> to navigate to successive locations in the +template and enter new values. + +BBB inserts a template with only the fields mandatorily required for a given +entry type. BBL inserts a template with commonly used extra options. BBH inserts +a template with more options which are not as commonly used. BBX inserts a +template with all the fields which the entry type supports. + +NOTE: Mnemonic + -------- + B for Bibliographic entry, L for Large entry, H for Huge entry, and X + stands for all eXtras. + + + + +Customizing Bib-TeX fields *ls_3_8_1* *ls_a_by* + *adding-bib-options* + +If you wish the BBB command to insert a few additional fields in addition to the +fields it creates, then you will need to define global variables of the form > + g:Bib_{type}_options +in you $VIM/ftplugin/bib.vim file, where {type} is a string like 'article', +'book' etc. This variable should contain one of the letters defined in the +following table + +Character Field Type~ +w address +a author +b booktitle +c chapter +d edition +e editor +h howpublished +i institution +k isbn +j journal +m month +z note +n number +o organization +p pages +q publisher +r school +s series +t title +u type +v volume +y year + +For example, by default, choosing 'article' via BBB inserts the following +template by default > + @ARTICLE{<+key+>, + author = {<++>}, + title = {<++>}, + journal = {<++>}, + year = {<++>}, + otherinfo = {<++>} + }<++> +However, if g:Bib_article_options is defined as 'mnp', then 'article' will +insert the following template > + @ARTICLE{<+key+>, + author = {<++>}, + title = {<++>}, + journal = {<++>}, + year = {<++>}, + month = {<++>}, + number = {<++>}, + pages = {<++>}, + otherinfo = {<++>} + }<++> + + +If you have some other fields you wish to associate with an article which are +not listed above, then you will have to use the Bib_{type}_extrafields option. +This is a newline separated string of complete field names which will be +included in the template. For example, if you define > + let g:Bib_article_extrafields = "crossref\nabstract" +then the article template will include the lines > + crossref = {<++>}, + abstract = {<++>}, + + +NOTE: You will need to define Bib_* settings in your + $VIMRUNTIME/ftplugin/bib.vim file. + + + +-------------------------------------------------------------------------------- +Smart Key Mappings *ls_3_9* *ls_a_bz* + *smart-keys* + +Latex-Suite ships with the following smart keys: + +Smart Backspace +--------------- + *smart-backspace* *ls_a_dZ* +Pressing <BS> in insert mode checks to see whether we are just after something +like \'{a} and if so, deletes all of it. i.e, diacritics are treated as single +characters for backspacing. + +Smart Quotes +------------ +Pressing " (English double quote) will insert `` or '' by making an intelligent +guess about whether we intended to open or close a quote. + +Smart Space +----------- +Latex-Suite maps the <space> key in such a way that $ characters are not broken +across lines. It does this by first setting tw=0 so that Vim will not +automatically break lines and then maps the <space> key to insert newlines +keeping $$'s on the same line. + +Smart Dots +---------- +Pressing ... (3 dots) results in \ldots outside math mode and \cdots in math +mode. + +-------------------------------------------------------------------------------- +Alt Key Macros *ls_3_10* *ls_a_bA* + *altkey-mappings* + +Latex-Suite utilizes a set of macros originally created by Carl Mueller in +auctex.vim to make inserting all the \left ... \right stuff very easy and to +also make some use of the heavily under-utilized <Alt> key. + +NOTE: By default, typing Alt-<key> in Vim takes focus to the menu bar if a menu + with the hotkey <key> exists. If in your case, there are conflicts due to + this behavior, you will need to set > + set winaltkeys=no +< in your $VIM/ftplugin/tex.vim in order to use these maps. + + +NOTE: Customizing the maps + -------------------- + If for some reason, you wish to not map the <Alt> keys, (some European + users need to use the <Alt> key to enter diacritics), you can change these + maps to other keys as described in the section Customizing Alt-key maps + [|ls_a_cx|]. + + + + +<Alt-L> *ls_3_10_1* *ls_a_bB* *Alt-L* + +This is a polymorphic insert-mode mapping which expands to one of the following +depending on the character just before the cursor location. + +Character before cursor Expansion~ +( \left( <++> \right) +[ \left[ <++> \right] +| \left| <++> \right| +{ \left\{ <++> \right\} +< \langle <++> \rangle +q \lefteqn{<++>}<++> + +If the character before the cursor is none of the above, then it will simply +insert a \label{<++>}<++>. + + +<Alt-B> *ls_3_10_2* *ls_a_bC* *Alt-B* + +This insert-mode mapping encloses the previous character in \mathbf{}. + + +<Alt-C> *ls_3_10_3* *ls_a_bD* *Alt-C* + +In insert mode, this key is polymorphic as follows: + + +1. If the previous character is a letter or number, then capitalize it and + enclose it in \mathcal{}. + +2. otherwise insert \cite{}. +In visual mode, it will simply enclose the selection in \mathcal{} + + +<Alt-I> *ls_3_10_4* *ls_a_bE* *Alt-I* + +This mapping inserts an \item command at the current cursor location depending +on which environment the cursor is enclosed in. The style of the \item command +is dependent on the enclosing environment. By default, <Alt-I> has styles +defined forthe following environments: + +Environment Style~ +itemize \item +enumerate \item +theindex \item +thebibliography \item[<+biblabel+>]{<+bibkey+>} <++> +description \item[<+label+>] <++> + +<Alt-I> is intelligent enough to account for nested environments. For example, > + \begin{itemize} + \item first item + \item second item + \begin{description} + \item[label1] first desc + \item[label2] second + % <Alt-I> will insert "\item[<+label+>] <++>" if + % used here + \end{description} + \item third item + % <Alt-I> will insert "\item " when if used here. + \end{itemize} + % <Alt-I> will insert nothing ("") if used here +< + +The style used by <Alt-I> can be customized using the +g:Tex_ItemStyle_environment [|ls_a_dl|] variable. + +-------------------------------------------------------------------------------- +Custom Macros *ls_3_11* *ls_a_bF* + *custom-macros-menu* + +This functionality available via the TeX-Suite.Macros menu, provides a way of +inserting customized macros into the current file via the menu. + +When Latex-Suite starts up, it scans the $VIM/ftplugin/latex-suite/macros/ +directory and creates a menu from the files found there. Each file is considered +as a single macro. You can place your own macros in this directory, using +placeholders [|ls_a_eD|] if wanted. + +When you choose a macro from the menu, the corresponding file is read into the +current buffer after the current cursor position. In non-gui mode, you can use +the |TMacro| command instead of choosing from the menu. This command takes the +macro file name as an argument. When called without arguments (preferred usage), +then a list of available macro files is displayed and the user is prompted to +choose one of them). + +There are some other tools provided in this menu, namely: + + +{New} Creates a new (unnamed) buffer in the latex-suite/macros/ directory. + Use the command :TexMacroNew in non-gui mode. +{Edit} Opens up the corresponding macro file for editing. Use |:TexMacroEdit| + in non-gui mode. When you try to edit {macro} not from local directory + Latex-Suite will copy it to your local directory with suffix "-local". + If local copy already exists Latex-Suite prompt for overwriting it. +{Delete} Deletes the corresponding macro. Use the prefixed numbers for fast + navigation of menus. Use |:TexMacroDelete| in non-gui mode. When you + choose to delete {macro} which is not in your local directory + Latex-Suite will refuse to delete it. +{Redraw} Rescans the macros/ directories and refreshes the macros list. + +-------------------------------------------------------------------------------- +Making your own Macros via IMAP() *ls_3_12* *ls_a_bG* + *ls-new-macros* + +If you find the need to create your own macros, then you can use the IMAP() +function provided with Latex-Suite. See [|ls_a_bH|] for a short explanation of +why you might prefer IMAP() over Vim's standard :imap command. An example best +explains the usage: > + :call IMAP('NOM', '\nomenclature{<++>}<++>', 'tex') +This will create a Latex-Suite-style mapping, where if you type NOM in insert +mode, you will get \nomenclature{<++>}<++> with the cursor left in place of the +first <++> characters. See [|ls_a_bI|] for a detailed explanation of the IMAP() +command. + +For maps which are triggered for a given filetype, the IMAP() command above +should be put in the filetype plugin script for that file. For example, for +tex-specific mappings, the IMAP() calls should go in $VIM/ftplugin/tex.vim. For +globally visible maps, you will need to use the following in either your +~/.vimrc or a file in your $VIM/plugin directory. > + augroup MyIMAPs + au! + au VimEnter * call IMAP('Foo', 'foo', '') + augroup END + + + + +Why use IMAP() *ls_3_12_1* *ls_a_bH* + *why-IMAP* + +Using IMAP instead of Vim's built-in :imap command has a couple of advantages: +1. The 'ttimeout' option will generally limit how easily you can type the left + hand side for a normal :imap. if you type the left hand side too slowly, then + the mapping will not be activated. + +2. If you mistype one of the letters of the lhs, then the mapping is deactivated + as soon as you backspace to correct the mistake. + +3. The characters in lhs are shown on top of each other. This is fairly + distracting. This becomes a real annoyance when a lot of characters initiate + mappings. + + +IMAP() syntax *ls_3_12_2* *ls_a_bI* + *ls-imaps-syntax* + +Formally, the syntax which is used for the IMAP function is: > + call IMAP (lhs, rhs, ft [, phs, phe]) + + +Argument Explanation~ +lhs This is the "left-hand-side" of the mapping. When you use IMAP, only + the last character of this word is actually mapped, although the + effect is that the whole word is mapped. + + If you have two mappings which end in a common lhs, then the mapping + with the longer lhs is used. For example, if you do > + call IMAP('BarFoo', 'something', 'tex') + call IMAP('Foo', 'something else', 'tex') +< Then typing BarFoo inserts "something", whereas Foo by itself inserts + "something else". + + Also, the nature of IMAP() makes creating certain combination of + mappings impossible. For example if you have > + call IMAP('foo', 'something', 'tex') + call IMAP('foobar', 'something else', 'tex') +< Then you will never be able to trigger "foobar" because typing "foo" + will immediately insert "something". This is the "cost" which you + incur over the normal :imap command for the convenience of no + 'timeout' problems, the ability to correct lhs etc. + + +rhs The "right-hand-side" of the mapping. This is the expansion you will + get when you type lhs. + + This string can also contain special characters such as <enter> etc. + To do this, you will need to specify the second argument in + double-quotes as follows: > + :call IMAP('EFE', "\\begin{figure}\<CR><++>\\end{figure}<++>", 'tex') +< With this, typing EFE is equivalent to typing in the right-hand side + with all the special characters in insert-mode. This has the advantage + that if you have filetype indentation set up, then the right hand side + will also be indented just as if you had typed it in normally. + + *IMAP_PutTextWithMovement* *ls_a_ea* + You can also set up a Latex-Suite style mapping which calls a custom + function as follows: > + :call IMAP('FOO', "\<C-r>=MyFoonction()\<CR>", 'tex') +< where MyFoonction is a custom function you have written. If + MyFoonction also has to return a string containing <++> characters, + then you will need to use the function IMAP_PutTextWithMovement(). An + example best explains the usage: + + > + call IMAP('FOO', "\<C-r>=AskVimFunc()\<CR>", 'vim') + " Askvimfunc: Asks For Function Name And Sets Up Template + " Description: + function! AskVimFunc() + let name = input('Name of the function : ') + if name == '' + let name = "<+Function Name+>" + end + let islocal = input('Is this function scriptlocal ? [y]/n : ', 'y') + if islocal == 'y' + let sidstr = '<SID>' + else + let sidstr = '' + endif + return IMAP_PutTextWithMovement( + \ "\" ".name.": <+short description+> \<cr>" . + \ "Description: <+long description+>\<cr>" . + \ "\<C-u>function! ".name."(<+arguments+>)<++>\<cr>" . + \ "<+function body+>\<cr>" . + \ "endfunction \" " + \ ) + endfunction +< + + +ft The file type for which this mapping is active. When this string is + left empty, the mapping applies for all file-types. A filetype + specific mapping will always take precedence. + + +phs, phe If you prefer to write the rhs with characters other than <+ and +> to + denote place-holders, you can use the last 2 arguments to specify + which characters in the rhs specify place-holders. By default, these + are <+ and +> respectively. + + Note that the phs and phe arguments do not control what characters + will be displayed for the placeholders when the mapping is actually + triggered. What characters are used to display place-holders when you + trigger an IMAP are controlled by the Imap_PlaceHolderStart + [|ls_a_cV|] and Imap_PlaceHolderEnd [|ls_a_er|] settings. + + + +================================================================================ +Package Handling *ls_4* *ls_a_bJ* + *latex-packages* + +|ls_4_1| Inserting package commands +|ls_4_2| Actions taken for supported packages +|ls_4_3| Automatic Package detection +|ls_4_4| Writing supporting for a package + + +Latex-Suite has a lot of functionality written to ease working with packages. +Packages here refers to files which you include into the LaTeX document using +the \usepackage command. + + +-------------------------------------------------------------------------------- +Inserting package commands *ls_4_1* *ls_a_bK* + *inserting-packages* + +When you first invoke Latex-Suite, it scans the +$VIM/ftplugin/latex-suite/packages directory for package script files and +creates a menu from all the files found there. This menu is created under +TeX-Suite > Packages > Supported. This menu contains a list of packages +"supported" by Latex-Suite. When you choose one of the packages from this menu +(for example the amsmath package), then a line of the form > + \usepackage[<++>]{amsmath}<++> +will be inserted into the current file. + +The \usepackage line can also be inserted in an easy manner in the current file +by pressing <F5> while in the preamble of the current document. This will set up +a prompt from the supported packages and ask you to choose from one of them. If +you do not find the package you want to insert in the list, you can type in a +package-name and it will use that. Pressing <F5> in the preamble on a line +containing a single word will construct a \usepackage line from that word. + +You can also use the TPackage [|ls_a_cD|] to insert the \usepackage line. + +Once you have inserted a \usepackage line, for supported packages, you can use +the Options and Commands menus described in the next section [|ls_a_bL|]. + +-------------------------------------------------------------------------------- +Actions taken for supported packages *ls_4_2* *ls_a_bL* + *package-actions* + +Latex-Suite takes the following actions for packages detected when a file is +loaded, or a new \usepackage line is inserted using one of the methods described +in the previous section [|ls_a_bK|]. + +If you are using the GUI and you have g:Tex_Menus [|ls_a_dI|] set to 1, +Latex-Suite will create the following sub-menus +TeX-Suite > Packages > <package> Options + +TeX-Suite > Packages > <package> Commands + +where <package> is the package you just inserted (or was detected). You can use +these menus to insert commands, environments and options which Latex-Suite +recognizes as belonging to this package. + +NOTE: While inserting an option, you need to position yourself in the + appropriate place in the document, most commonly inside the square braces + in the \usepackage[]{packname} command. Latex-Suite will not navigate to + that location. + + +In addition to creating these sub-menus, Latex-Suite will also scan the +$VIM/ftplugin/latex-suite/dictionaries directory and if a dictionary file +corresponding to the package file is found, then it will add the file to the +'dict' setting in Vim so you can use the <C-X><C-K> command to complete words +from that file. + +For example, the SIUnits package has a custom dictionary. + + *latex-package-scanning* *ls_a_eb* +If a package detected at startup is found by Latex-Suite in the current +directory or in a location specified by the g:Tex_TEXINPUTS [|ls_a_dT|] +variable, Latex-Suite will scan the package for \newenvironment and newcommand +lines and also append any commands and environments found to the list of +commands and environments which you are prompted with when you press <F5> +[|ls_a_bh|] or <F7> [|ls_a_dW|] in insert mode. +In addition, the TeX-Suite > Packages menu also contains the following submenus + +Update +------ +This command is to be invoked with the cursor placed on the package name. If the +corresponding package is found, then a sub-menu with the supported commands and +options is created. + +Update All +---------- +This function reads the preamble of the document for \usepackage lines and if +Latex-Suite supports the detected packages, then sub-menus containing the +package options and commands are created. + + +-------------------------------------------------------------------------------- +Automatic Package detection *ls_4_3* *ls_a_bM* + *automatic-package-detection* + +Whenever Latex-Suite begins editing a new LaTeX file, it scans it for +\usepackage{name} lines, and if a supported package is found, then it will +create sub-menus and add to the 'dict' setting as described above. + +If a master-file [|ls_a_ct|] has been specified, then it will scan that file +instead of the current file. See the section Custom Packages [|ls_a_bN|] to see +which files Latex-Suite will scan in more detail. + +For all the packages detected in this manner, Latex-Suite will take certain +actions as described in the section package support. [|ls_a_bL|]. + + + +Custom Packages *ls_4_3_1* *ls_a_bN* + *custom-packages* + +Often times, the preamble can become too long, and some people prefer to put +most of their personalization in a custom package and include that using a +\usepackage line. Latex-Suite tries to search such customs package for other +\usepackage lines, so that supported packages included in this indirect manner +can also be used to create sub-menus, extend the 'dict' setting etc. The most +obvious place to place such custom packages is in the same directory as the +edited file. In addition, LaTeX also supports placing custom packages in places +pointed to by the $TEXINPUTS environment variable. + +If you use the $TEXINPUTS variable in LaTeX, and you wish Latex-Suite to search +these custom packages for \usepackage lines, then you need to initialize the +g:Tex_TEXINPUTS [|ls_a_dT|] variable. + +The g:Tex_TEXINPUTS variable needs to be set in the same format which Vim uses +for the 'path' setting. This format is explained in detail if you do > + :help file-searching +from within Vim. + +Therefore the value of g:Tex_TEXINPUTS will most probably be different from +$TEXINPUTS which your native LaTeX distribution uses. + +Example: > + let g:Tex_TEXINPUTS = '~/texmf/mypackages/**,./**' +The ** indicates that all directories below the directory ~/texmf/mypackages and +./ are to be scanned for custom packages. + +NOTE: The present directory '.' is always searched. You need not include that in + g:Tex_TEXINPUTS. + + + +-------------------------------------------------------------------------------- +Writing supporting for a package *ls_4_4* *ls_a_bO* + *supporting-packages* + +Supporting a package is easy and consists of writing a vim script with the same +name as the package and placing it in the $VIM/ftplugin/latex-suite/packages +directory. A package script should define two variables as described in the next +two sections. In addition to these two variables, you can also define any +functions, environment definitions etc. in this file. + + + +g:Tex_package_option_<package> *ls_4_4_1* *ls_a_bP* + +This setting is a string containing a comma separated list of options supported +by this package. + +Example: > + g:Tex_package_option_mypack = 'opt1,opt2=,sbr:group1,opt3,opt4' +The = suffix means that the option takes a value. Use sbr:group name to separate +options into sub-menus. All successive options will be clubbed into the group1 +sub-menu till the next sbr: option is encountered. + + +g:Tex_package_<package> *ls_4_4_2* *ls_a_bQ* + + > + + g:TeX_package_<package> = "pre:Command,pre:Command1" + More detailed example is in latex-suite/packages/exmpl file (slightly + outdated). + Here is short summary of prefixes which can be used in package files: + (x - place with cursor, <++> - |placeholder|) + + {env:command} Environment: creates simple environment template + \begin{command} + x + \end{command}<++> + {eno:command} Environment with option: + \begin[x]{command} + <++> + \end{command}<++> + {ens:command[<<option>>]...} Environment special: + \begin[<<option>>]...{command} + <++> + \end{command}<++> + {bra:command} Brackets: + \command{x}<++> + {brd:command} Brackets double: + \command{x}{<++>}<++> + {brs:command[<<option>>]...} Brackets special (as environment special: + \command[<+x+>]{<++>}{<++>}<++> + {nor:command} Normal: + \command<Space + {noo:command} Normal with option: + \command[x]<++> + {nob:command} Normal with option and brackets: + \command[x]{<++>}<++> + {pla:command} Plain: + command<Space + {spe:command} Special: + command <-literal insertion of command + {sep:command} creates separator. Good for aesthetics and usability :) + {sbr:command} Breaks menu into submenus. <command> will be title of submenu. + Can be used also in package variable. + + Command can be also given without prefix:. The result is + \command + + + +================================================================================ +Latex Completion *ls_5* *ls_a_bR* + *latex-completion* + +|ls_5_1| Latex-Suite completion example +|ls_5_2| Latex-Suite \ref completion +|ls_5_3| Latex-Suite \cite completion +|ls_5_4| Latex-Suite filename completion +|ls_5_5| Custom command completion + + +Latex-Suite provides an easy way to insert references to labels and +bibliographic entries and also provide filename arguments to commands such as +\includegraphics. Although the completion capabilities are very diverse, +Latex-Suite only uses a single key (<F9> by default) to do all of it. Pressing +the <F9> key does different things based on where you are located. Latex-Suite +tries to guess what you might be trying to complete at the location where you +pressed <F9>. For example, pressing <F9> when you are within a \ref command will +try to list the \label's in the present directory. Pressing it when you are in a +\cite command will list bibliography keys. Latex-Suite also recognizes commands +which need a file name argument and will put up an explorer window for you to +choose a filename. + + *ls-set-grepprg* *ls_a_eG* +NOTE: Before you start with Latex-Suite's completion function... + ---------------------------------------------------------- + All of Latex-Suite's completion capabilities depend on a external program + being available on your system which can search through a number of files + for a reg-exp pattern. On *nix systems, the pre-installed grep utility is + more than adequate. Most windows systems come with a utility findstr, but + that has proven to be very inadequate (for one, it does not have an option + to force the file name to be displayed when searching through a single + file). Your best bet is to install cygwin |ls_u_3|, but if you think + that's overkill, you can search for |ls_u_4| a windows implementation of + GNU grep. (Latex-Suite testing on windows has been done with cygwin's port + of GNU grep). + + Once you have a grep program installed, you need to set the 'grepprg' + option for vim. Make sure you use a setting which forces the program to + display file names even when you are searching through a single file. For + GNU grep, the syntax is > + set grepprg=grep\ -nH\ $* +< + + + +-------------------------------------------------------------------------------- +Latex-Suite completion example *ls_5_1* *ls_a_bS* + *ls-completion-usage* + +Consider the situation where you are editing a file with two equations labelled +eqn:euler and eqn:einstein. Now you want to insert a reference to one of these +equations. To do this, you type the \ref{eqn:} command and with the cursor +placed after eqn:, press <F9>. This will bring up two new windows beneath the +main window you were working in as shown in the figure below. > + + 8 These are a couple of equations: + 9 +-- 4 lines: eqnarray (eqn:euler) : e^{j\pi} + 1 &=& 0--------------- + 13 +-- 4 lines: equation (eqn:einstein) : E = m c^2--------------------- + 17 + 18 These are a couple of figures: + 19 +-- 7 lines: figure (fig:monkeys) : Monkeys can Type------------------- + 26 +-- 7 lines: figure (fig:shakespeare) : Shakespeare could not type----- + 33 + 34 This is a reference to \ref{eqn:}<++> + 35 + 36 + 37 \end{document} + 38 + ~ + ~ + ~ + newfile.tex 34,32 Bot + newfile.tex|11| \label{eqn:euler} + newfile.tex|15| \label{eqn:einstein} + ~ + [Error List] 1,1 All + 7 + 8 These are a couple of equations: + 9 \begin{eqnarray} + 10 e^{j\pi} + 1 &=& 0 + 11 \label{eqn:euler} + 12 \end{eqnarray} + 13 \begin{equation} + 14 E = m c^2 + 15 \label{eqn:einstein} + 16 \end{equation} + newfile.tex [Preview] 11,3 21% + + + +The first window (shown as [ErrorList] above) is a |cwindow| containing a list +of possible matches for the reference. The cursor will be located in the first +line of this window. The bottom window is a preview-window showing the context +of the \label. Moving around in the [ErrorList] window automatically scrolls the +preview window so as to always keep showing the context of the \label being +viewed in the [ErrorList] window. You can also press J and K in the [ErrorList] +window to scroll the preview window up and down. + +To insert one of the labels, simply position the cursor in the correct line in +the [ErrorList] window and press <enter>. This will immediately close the two +newly opened windows, get back to the correct location in the original file +being edited and insert the label into the \ref command. + +If you notice carefully in the example above, the [ErrorList] window only showed +the matches for the equations and did not list any of the figure labels. This is +because we pressed <F9> after \ref{eqn: instead of simply after \ref{. This +caused Latex-Suite to search only for those labels which started with the string +eqn:. If you had pressed <F9> after a \ref{, you would have been shown matches +from _all_ labels, not just those starting with eqn:. + +Thus prefixing all your labels with eqn:, fig:, tab: etc. depending on what you +are labelling will lead to an easier time completing references. + +-------------------------------------------------------------------------------- +Latex-Suite \ref completion *ls_5_2* *ls_a_bT* + *ls-completion-ref* + +Pressing <F9> when you are within a partially completed \ref command will split +open a window (named __OUTLINE__) which contains a nicely formatted list of all +the \labels found in the present project. The \labels are heirarchically +arranged according to which \section, \subsection etc of the overall document +structure they are present in. For example, when you first press <F9> after +typing \ref{, you should see something like: > + + +-- 54 lines: 2. Kinematics-------------------------------- + +-- 98 lines: 3. Aerodynamics of the MFI thorax------------ + +-- 40 lines: 4. Jump Resonance in Fourbar Mechanisms------ + +-- 28 lines: 5. Design and Fabrication Issues------------- + +Each chapter is |fold|ed away so that you can quickly jump to the correct +section/subsection in which the relevant equation is defined. This makes +inserting references significantly faster for large projects with hundreds of +equations. You can then open some of the folds to see for example: > + + +-- 54 lines: 2. Kinematics-------------------------------- + 3. Aerodynamics of the MFI thorax + 3.1. Aerodynamic modeling of the MFI wing forces + 3.1.1. Geometric Specification + eqn:wingnormal-pos + \nhat = T_z(\theta_2) T_y(\theta_y)T_x(\theta_x)\nhat_0, + eqn:T-1 + T_1(\theta_2) &=& T_z(\theta_2) + +The <Tab> key is mapped in this window to toggle folds so that you can quickly +open/close folds in order to navigate the heirarchy faster. Once you are +positioned on a label, press <Enter>. This closes the __OUTLINE__ window, +returns to the window in which you pressed <F9> and inserts the reference at the +current cursor position. + +NOTE: Filtering labels by prefix + -------------------------- + You can press <F9> after typing part of the \label. In this case, + Latex-Suite only presents \labels which begin with the already filled + characters. You can use this to choose between equations, figures, tables + etc. if you consistently label equations to begin with eqn:, figures to + begin with fig: etc. For example, with this scheme, pressing <F9> after + typing \ref{eqn: will only list equations. + + +NOTE: Latex-Suite works the same way if you press <F9> after any command which + contains the letters ref. Thus you can complete \eqref in exactly the same + manner. + + +NOTE: Requirements + ------------ + This method of preseting the \labels depends on Vim being compiled with + python support. To check if you have this, see the output of the :ver + command. If you see something like +python, you are all set. Failing this, + you will need to have python somewhere in your $PATH. + + + +-------------------------------------------------------------------------------- +Latex-Suite \cite completion *ls_5_3* *ls_a_bU* + *latex-completion-cite* + +Latex-Suite provides an easy way to insert references to bibliographic entries. +Pressing <F9> when the cursor is placed inside a partially completed \cite +command will split open a new window (named __OUTLINE__) which contains a +formatted and syntax highlighted list of all bibtex entries found. For example, +pressing <F9> after typing \ref{ should present you with a window which looks +something like this: > + + Article [dickinson:science:99] + "Wing rotation and aerodynamic basis of insect flight" + M. H. Dickinson and F-O. Lehman and S. P. Sane + In Science, 1999 + + Article [ellington:84:part1] + "The Aerodynamics of Hovering Insect Flight. I. The Quasi-Steady Analysis" + Ellington, C P + In Philosophical Transactions of the Royal Society of London. Series B, Biological Sciences, 1984 + + Article [ellington:84:part2] + "The Aerodynamics of Hovering Insect Flight. II. Morphological Parameters" + Ellington, C P + In Philosophical Transactions of the Royal Society of London. Series B, Biological Sciences, 1984 + + + +You can easily jump from one entry to another using the 'n' and 'p' keys (to go +to the next / previous entry respectively). + +You can also filter out a subset of the bibtex entries by pressing 'f' while in +this window. Doing this presents the following prompt: > + + Field acronyms: (`:let g:Tex_EchoBibFields = 0` to avoid this message) + [t] title [a] author [b] booktitle + [j] journal [y] year [p] bibtype + (you can also enter the complete field name) + Enter filter criterion [field<space>value]: + +At the prompt, type > + a ellington +Notice that the letter a is an acronym for author according to the prompt above. +Therefore this filter only shows those bibtex entries whose author field +contains the text ellington. You can keep narrowing your selection by repeatedly +filtering the results. If you would like to remove all the filters and see all +entries again, press 'a', which removes all the filters. + +You can also sort the bibtex entries based on a field. To do this, press 's'. +This will present you with a prompt like in the case of the filter and you are +asked to choose a field. In this case, you would type in a single character. +This sorts the entries according to that field. + +NOTE: <F9> will also work in a similar way after any command which contains the + word cite in it. For example, pressing <F9> will also work with \citenum + etc. + + +The following logic is applied to find out which bibliographic entries are +included in the completion. + + +1. Firstly, if the present file has a master-file [|ls_a_ct|] defined for it, + then Latex-Suite will perform the following steps on that file instead of on + the current file. + +2. First, the file is scanned for a \bibliography command. To explain better, + assume that a command > + \bibliography{file1,file2} +< is found in the present file. For each bibliography file, say file1, + Latex-Suite first tries to see if a .bib file, file1.bib can be found. If so, + it will scan it for bib-keys of the form @BOOK{ etc., and add these searches + to the completion list. If a .bib file cannot be found, then it will try to + see if file1.bbl can be found. If so, Latex-Suite will search it for bib-keys + of the form \bibitem and add these to the completion list. + + You can set the location where Latex-Suite will search for .bib and .bbl + files using the |Tex_BIBINPUTS| [|ls_a_dr|] variable. + +3. If a \bibliography command is not found, then Latex-Suite tries to scan the + present file for a \begin{thebibliography} environment. If found, Latex-Suite + searches the present file for bib-keys of the form \bibitem. + +4. Finally, it will try to see if this file includes other files via the \input + command. For each such file found, Latex-Suite will repeat the previous two + steps stopping at the first file which has either a \bibliography command or + a thebibliography environment. + + +Caching the \cite completion results *ls_5_3_1* *ls_a_bV* + *cite-search-caching* + + *TClearCiteHist* *ls_a_ec* +Often times, the editing cycle proceeds by first laying out a comprehensive +bibliography and then completing all the \cite commands in one session. In such +situations, it is inefficient to scan the whole list of bibliography files for +bib-keys each time. Latex-Suite provides a way to cache the results of the cite +completion search using the Tex_RememberCiteSearch [|ls_a_du|] variable. If set, +Latex-Suite will perform the search only the first time <F9> is used. Next time +on, it will reuse the search results. If you wish to redo the search results, +issue the command > + TClearCiteHist +This will redo the completion list next time you use <F9>. + +-------------------------------------------------------------------------------- +Latex-Suite filename completion *ls_5_4* *ls_a_bW* + *ls-filename-completion* + +When you press <F9> at a location where Latex-Suite guesses a filename needs to +be typed, then a new explorer window will open up with the list of files. You +can use this window to change directories etc. Pressing <enter> on a filename in +the explorer window will automatically close the explorer window, return to the +location where you pressed <F9> from and insert the filename into that position. + +Latex-Suite also tries to guess what kinds of files you might not want to insert +and hides those accordingly. For example, if you press <F9> when you are located +at \includegraphics{, then Latex-Suite knows that you will not want to insert +.tex files. Therefore, the explorer window will automatically hide these files. + +As of now, Latex-Suite recognizes the following commands for filename +completion. Along with the commands, this table also lists the files which +Latex-Suite will not show for completing each command. + +command hide pattern~ +\bibliography '^\.,\.[^b]..$' +\include \includeonly '^\.,\.[^t]..$' +\includegraphics \psfig '^\.,\.tex$,\.bib$,\.bbl$,\.zip$,\.gz$' +\input '' + +-------------------------------------------------------------------------------- +Custom command completion *ls_5_5* *ls_a_bX* + *ls-completion-custom* + +Latex-Suite also recognizes certain commonly used LaTeX commands for the <F9> +key. At the moment, the \bibliographystyle, \addtocontents and the +\addcontentsline commands are recognized, although more will be added in the +future. When you press the <F9> after such a command, Latex-Suite will prompt +you with a list of arguments which make sense for the command. + +This functionality is available for commands for which a global variable of the +form g:Tex_completion_{<command>} is defined where <command> is the command +name. This variable is a comma separated list of values which this command +takes. For example, the argument to the \bibliographystyle command is commonly +one of abbr,alpha,plain,unsrt. Therefore, Latex-Suite defines > + let g:Tex_completion_bibliographystyle = 'abbr,alpha,plain,unsrt' +You can define your own completion variables in a similar manner for commands +which you might use. + +================================================================================ +LaTeX Compiling *ls_6* *ls_a_bY* + *latex-compiling* + +|ls_6_1| Setting Compilation rules +|ls_6_2| Handling dependencies in compilation +|ls_6_3| Compiling multiple times +|ls_6_4| Customizing the compiler output +|ls_6_5| Compiling parts of a file + + +This functionality, available via the TeX-Suite menu, provides various tools to +compile and debug LaTeX files from within Vim. + +If you are using commonly used LaTeX tools, then you should be all set as soon +as you download and install Latex-Suite. In order to compile a LaTeX file, +simply press \ll while editing the file. This runs latex on the current file and +displays the errors in a |quickfix-window| below the file being edited. You can +then scroll through the errors and press <enter> to be taken to the location of +the corresponding error. Along with the errors being listed in the quickfix +window, the corresponding log file is also opened in |preview| mode beneath the +quickfix window. It is scrolled automatically to keep in sync with the error +being viewed in the quickfix window. You will be automatically taken to the +location of the first error/warning unless you set the g:Tex_GotoError +[|ls_a_dD|] variable to 0. + +Latex-Suite also supports compiling LaTeX into formats other than DVI. By +default, Latex-Suite supports PDF and PS formats. In order to choose a format +other than DVI, use the TTarget command or the TeX-Suite > Target Format menu +item. This will ask you to type in the name of the target format you want to +compile to. If a rule has been defined for the format (as described in the next +section [|ls_a_bZ|]), then Latex-Suite will switch to that format. + +Trying to choose a format for which no rule has been defined will result in +Latex-Suite displaying a warning message without taking any action. + +If you are using a multiple file project and need to compile a master file while +editing other files, then Latex-Suite provides a way to specify the file to be +compiled as described in latex-master-file [|ls_a_ct|]. + + +-------------------------------------------------------------------------------- +Setting Compilation rules *ls_6_1* *ls_a_bZ* + *compiler-rules* + +In order to compile LaTeX files into various formats, Latex-Suite needs to know +which external programs to call and in which way they need to be called. This +information is provided to Latex-Suite via a number of "rules". For each format +you want to compile to, you need to specify a rule. A rule is specified by +defining a variable of the form: > + g:Tex_CompileRule_<format> +where <format> is a string like "pdf", "dvi" etc. + +Example: By default, Latex-Suite uses the following rule for compiling LaTeX +documents into DVI. > + g:Tex_CompileRule_dvi = 'latex --interaction=nonstopmode $*' + + +Default values are also provided for ps and pdf formats. You might want to +change these rules in texrc according to your local tex environment. + +NOTE: For win32 users user MikTeX, sometimes the latex compiler's output has a + bug where a single number is split across different lines. In this case, + put the included vim-latex file distributed with Latex-Suite. + + + +-------------------------------------------------------------------------------- +Handling dependencies in compilation *ls_6_2* *ls_a_ca* + *compiler-dependency* + +Latex-Suite also handles compiling dependencies automatically via certain rules +which specify the "dependency chain" for each target format. For example, if in +your case, you use > + .tex -> .dvi -> .ps -> .pdf +to generate pdf files from dvi files, then you will need to specify the +following setting in your Latex-Suite configuration (see customizing Latex-Suite +[|ls_a_cP|] for where these settings should go): > + + let g:Tex_FormatDependency_pdf = 'dvi,ps,pdf' + +This is a comma separated string of formats specifying the order in which the +formats to be compiled into should be chosen. With this setting, if you set the +target format to pdf, then the next time you compile via the \ll shortcut, +Latex-Suite will first generate a dvi file, then use that to generate the ps +file and finally create the pdf file from that. + +NOTE: If any of the intermediate formats is listed in the + g:Tex_MultipleCompileFormats setting as described in the section Compiling + multiple times [|ls_a_cb|], then Latex-Suite might make multiple calls to + the compiler to generate the output file of that format. + + +Along with the g:Tex_FormatDependency_{format} setting, you should ofcourse +specify the rule for compiling to each of the formats as described in the +previous section [|ls_a_bZ|]. For example, with the setting above, you could +use: > + + let g:Tex_CompileRule_dvi = 'latex --interaction=nonstopmode $*' + let g:Tex_CompileRule_ps = 'dvips -Ppdf -o $*.ps $*.dvi' + let g:Tex_CompileRule_pdf = 'ps2pdf $*.ps' + + +NOTE: By default, Latex-Suite does not specify any compiler dependencies. Each + target format for which a rule has been derived will be compiled + independently. + + + +-------------------------------------------------------------------------------- +Compiling multiple times *ls_6_3* *ls_a_cb* + *compiling-multiple* + +Most LaTeX compilers need to be re-run several times in several commonly +occurring situations in order to get a final camera ready copy. For example, +when \label's change, when new \cite commands are added etc. If the target +format you are compiling to requires multiple compilations, then you will need +to include the format in the g:Tex_MultipleCompileFormats setting. This is a +comma separated string of formats which need multiple compilations to be +generated correctly. + +By default, this setting contains just the dvi format. If you use the pdflatex +compiler to generate pdf files, then you might want to also include pdf into the +above setting. + +For every format included in the g:Tex_MultipleCompileFormats setting described +above, Latex-Suite will use the following logic to generate the file. Note that +although the following description uses latex to refer to the compiler, it could +be some other compiler such as pdflatex for generating pdf output. + +1. If there was a .idx file, then remember its contents. + +2. Run latex. + +3. If the .idx file changed due to the latex compiler, then run makeindex to + redo the .ind file and then remember to rerun latex. + +4. If the .aux file generated by the latex compiler contains a \bibdata line, + then it means that we are using a .bib file. Therefore, run bibtex. + + NOTE: This means that we will always run bibtex whenever we use the + \bibliography command whether or not we actually need to. At this time, + Latex-Suite does not parse the .aux file before and after the latex + compiler to see if we are required to rerun bibtex. + +5. If the .bbl file changes because of this, then remember to rerun latex again. + +6. Also, we check to see if the LaTeX compiler gives certain standard warnings + which notify that we need to compile once again. In this case also, remember + to rerun LaTeX. + +7. If we found we had to rerun latex, then we repeat the steps above but not + running makeindex or bibtex again. + +The LaTeX file is compiled atmost 5 times using this logic. These steps will +ensure that on most platforms/environments, you will get a clean output with all +the cross-references, citations etc correctly labelled and ordered. + +-------------------------------------------------------------------------------- +Customizing the compiler output *ls_6_4* *ls_a_cc* + *compiler-output-customization* + +Most LaTeX compilers produce a very large amount of output during compilation, +most of which is not relevant to debugging type-setting errors. The compiler +plugin provided with Latex-Suite (which is an enhanced version of the standard +compiler plugin maintained by Artem Chuprina), provides a way to filter the +compiler output so that the actual errors/warnings can be presented much more +concisely. + +The compiler plugin is set up by default to function in a "non-verbose", +"ignore-common-warnings" mode, which means that irrelevant lines from the +compiler output will be ignored and some very common warnings are also ignored. +Latex-Suite does this via the global variable g:Tex_IgnoredWarnings [|ls_a_dA|]. +This is a list of patterns, which can be used to filter out (or ignore) some or +the warnings and errors reported by the compiler. See the link above for its +default value. + +Latex-Suite uses the g:Tex_IgnoreLevel [|ls_a_dB|] setting to set a default +ignore level. For example, for the default value of 4, Latex-Suite ignores +warnings and errors matching the first 4 patterns in g:Tex_IgnoredWarnings. + +In addition to setting a default value of the ignore level, Latex-Suite provides +the ability to set the level dynamically, using the TCLevel command. For +example, if you issue the command: > + TCLevel 3 +from within Vim, then the next time you compile the document, Latex-Suite will +ignore warnings and errors which match the first three patterns in +g:Tex_IgnoredWarnings. + +When TCLevel is called with the unquoted string strict as follows: > + TClevel strict +then Latex-Suite switches to a "verbose", "no-lines-ignored" mode which is +useful when you want to make final checks of your document and want to be +careful not to let things slip by. + +See the explanation of the settings g:Tex_IgnoredWarnings [|ls_a_dA|] and +g:Tex_IgnoreLevel [|ls_a_dB|] to find out how to customize the filtering done by +Latex-Suite + +-------------------------------------------------------------------------------- +Compiling parts of a file *ls_6_5* *ls_a_cd* + *part-compiling* + +Latex-Suite also provides a way to compile a fragment of a document. This can be +very useful while debugging a complex equation or one chapter in a book, etc. + +To do this, visually select a portion of the text and press \ll while in visual +mode. The visually selected portion will be saved to a temporary file with the +preamble from the current document prepended. Latex-Suite will then switch focus +to this temporary file and compile it. Continue to debug this file as required +and then replace the portion of the original file with this one. + +Pressing \lv while viewing the temporary file will view the output file +generated from the temporary file, not the original file + +Two commands |TPartComp| and |TPartView| are provided to be able to get this +functionality via the command line. + +From release 1.6 onwards of Latex-Suite, the temporary file created for part +compilation will reside in the same directory as the file from which the +fragment is being created. This ensures that any relative path-names defined in +the fragment will still work. Latex-Suite will attempt to clean the temporary +file(s) created when Vim exits. + +================================================================================ +Latex Viewing and Searching *ls_7* *ls_a_ce* + *latex-viewing* + +|ls_7_1| Setting Viewing rules +|ls_7_2| Forward Searching DVI documents +|ls_7_3| Inverse Searching + + + +-------------------------------------------------------------------------------- +Setting Viewing rules *ls_7_1* *ls_a_cf* + *latex-viewing-rules* + +In order to view the output files created by compiling the source files, you +need to specify which external program Latex-Suite should call. You can specify +the external program using one of two settings Tex_ViewRule_format [|ls_a_dF|] +or Tex_ViewRuleComplete_format [|ls_a_dG|]. By default, Latex-Suite has default +settings for viewing various common output formats via the Tex_ViewRule_format +settings, so that if you are using commonly used programs, you should be all set +to view compiled files from within Vim by simply pressing \lv. + +NOTE: The viewing function also takes the *.latexmain [|ls_a_ct|] file into + account to decide which file to show. + + +If pressing \lv does not work, then it most probably has to do with incorrect +settings of the g:Tex_ViewRule_<format> [|ls_a_dF|] where <format> is the format +you are attempting to view. See the link above for how to set this according to +your system. + +In addition to viewing the files, Latex-Suite also supports forward and inverse +searching for certain common tools for viewing DVI documents. At the moment, +there is built-in support for YAP on windows (which ships with MikTeX), and the +popular xdvi on *nix platforms. See the next few sections for details on forward +and inverse searching. + +-------------------------------------------------------------------------------- +Forward Searching DVI documents *ls_7_2* *ls_a_cg* + *forward-searching* + +Forward searching refers to making a DVI viewer display a given document at a +given location from within Vim. At present, this functionality is supported for +YAP on windows and xdvi on *nix machines. Pressing \ls from within Vim should +make the DVI viewer display the portion of the document where your cursor is +placed. + + *enabling-searching* *ls_a_ed* +NOTE: Enabling Forward and Inverse Searching + -------------------------------------- + Most DVI viewers need "source-special" information in order to do forward + (and inverse) searching. This information is embedded in the dvi file if + the LaTeX source is compiled with the --src-specials option. By default, + Latex-Suite does not supply this argument to the compiler. See the section + on to find out how this option can be set. + + + +-------------------------------------------------------------------------------- +Inverse Searching *ls_7_3* *ls_a_ch* + *inverse-searching* + +Inverse searching refers to the DVI viewer telling Vim to display the LaTeX +source file at a given location when you double-click in the DVI viewer window. + +You will need to enable searching [|ls_a_ed|] in order to use this +functionality. + +You will also need to specify certain settings to the DVI viewer conveying the +syntax which it needs to use to tell Vim how to display the source file. In YAP, +you can set this option in View > Options > Inverse Search. The Command Line +field needs to be set as follows: > + "C:\Program Files\vim\vim61\gvim" -c ":RemoteOpen +%l %f" +The command :RemoteOpen is supplied when you install Latex-Suite. + +On *nix machines, Latex-Suite attempts to call the DVI viewer in such a way that +it already knows how to communicate with Vim. If this does not seem to be +working, you can use the RemoteOpen command described above. + +================================================================================ +Latex Folding *ls_8* *ls_a_ci* + *latex-folding* + +|ls_8_1| Default Folding Scheme in Latex-Suite +|ls_8_2| Customizing what to fold +|ls_8_3| Editing the folding.vim file directly + + +Latex-Suite ships with the plugin SyntaxFolds.vim which is a plugin for creating +"fake" syntax folds on the fly. The fold method is actually manual but the +folding is based on LaTeX syntax. This offers a speed increase over regular +syntax folding. Ofcourse it has the disadvantage that the folds are not dynamic, +i.e newly created syntax items are not automatically folded up. (This is a +compromise between speed and convenience). + +When you open up a LaTeX file, all the portions will be automatically folded up. +However, no new folds will be created until you press <F6> or \rf. (rf stands +for "refresh folds"). + +The fold-text is set to the first line of the folded text unless the fold is a +table, figure etc. (an environment). In this case, if a \caption and/or a label +is found in the folded region, then those are used to make a more meaningful +fold-text, otherwise the second line of the environment is displayed along with +the name of the environment. In other words, the following > + \begin{figure}[h] + \centerline{\psfig{figure=slidercrank.eps,height=6cm}} + \caption{The Slider Crank Mechanism.} + \label{fig:slidercrank} + \end{figure} + % a LaTeX comment. + \begin{eqnarray} + \sin(\pi) = 0 + \end{eqnarray} + + +will be shown as: > + +--- 5 lines: figure (fig:slidercrank) : The Slider Crank Mechanism. ----- + % a LaTeX comment. + +--- 3 lines: eqnarray () : \sin(\pi) = 0 -------------------------------- + + + +-------------------------------------------------------------------------------- +Default Folding Scheme in Latex-Suite *ls_8_1* *ls_a_cj* + *default-folding* + +By default Latex-Suite creates folds in the following manner: + + > + \chapter + \section + %%fakesection + \subsection + \subsubsection + \item + \equation + \eqnarray + \figure + \table + \footnote +The indentation shows the "nestedness" of the folding scheme. See the next +section [|ls_a_ck|] to see how you can change this scheme. + +-------------------------------------------------------------------------------- +Customizing what to fold *ls_8_2* *ls_a_ck* + *customizing-what-to-fold* + +From version 1.6 onwards, the folding in Latex-Suite can be controlled to a +large extent via a number of global variables. + + + +Tex_FoldedSections *ls_8_2_1* *ls_a_cl* + *Tex_FoldedSections* + +This entry defines which sections will be folded. This setting is a comma +separated list of section names. The default value is: > + part,chapter,section,%%fakesection, + subsection,subsubsection,paragraph +Each of the entries in the list will fold up a section of the corresponding +name. The %%fakesection section is provided as a means for the user to group +lines into "fake" sections. A %%fakesection is assumed to start on a line which +begins with the string %%fakesection and continue till the start of the next +\section, \subsection or any other section. + +See also advanced fold settings [|ls_a_cp|]. + + +Tex_FoldedEnvironments *ls_8_2_2* *ls_a_cm* + *Tex_FoldedEnvironments* + +This entry defines which environments will be folded. It is a comma separated +string of words each of which defines a single environment. The default setting +is > + verbatim,comment,eq,gather, + align,figure,table,thebibliography, + keywords,abstract,titlepage +The words need not be standard Latex environments. You can add any word you +like. Also, each word will fold up all environments whose name begins with that +word. For example, in the setting above, the word "eq" folds up the +\begin{equation}, \begin{eqnarray}, \begin{eqnarray*} environments. To avoid +this, you can replace the word "eq" with "eq}". + +See also advanced fold settings [|ls_a_cp|]. + + +Tex_FoldedCommands *ls_8_2_3* *ls_a_cn* + *Tex_FoldedCommands* + +This entry defines which commands will be folded. It is a comma separated string +of words each of which defines a single command. The default setting is empty, +i.e no commands are folded. The words need not be standard Latex commands. You +can use whatever words you like. Each word will fold all commands whose name +begins with that word as in the case of the Tex_FoldedEnvironments [|ls_a_cm|] +variable. + +NOTE: It is very difficult to fold commands reliably because it is very + difficult to create a regexp which will match a line containing unmatched + parentheses (or curly brackets), but will not match a line containing + matched parentheses. + + Just to make things safer, only lines which start a command but do not + contain additional curly braces after the command has started are folded. + In other words, if you wanted to fold the the command "mycommand", then + the lines > + \mycommand{This is a line + and some more text on the next line + } +< will be folded, but the lines > + \mycommand{This is a \textbf{line} + and some more text + } +< will not be folded. This is a bug which is very difficult to fix. + + +See also advanced fold settings [|ls_a_cp|]. + + +Tex_FoldedMisc *ls_8_2_4* *ls_a_co* + *Tex_FoldedMisc* + +This entry defines fold syntax for certain items which do not naturally fit into +the section, environment of command lists. It is a comma separated list of +words. The default value is: > + item,preamble,<<< +NOTE: Unlike the other Tex_FoldedXXXX variables, the words in this setting are + limited to take values from the following list: + + Value Meaning~ + comments Folds up contiguous blocks of comments + item Folds up the \items within list environments + preamble Folds up the preamble of a document. (The part between the + \documentclass command and the \begin{document} environment) + <<< Folds defined manually by the user using the <<< and >>> strings + as fold-markers. + + Any other words in the Tex_FoldedMisc setting are silently ignored. + + + +See also advanced fold settings [|ls_a_cp|]. + + +Advanced Fold setting details *ls_8_2_5* *ls_a_cp* + *fold-setting-advanced* + +The order of the words in the Tex_FoldedXXXX variables is _important_. The order +defines the order in which the folds are nested. For example, the value +"subsection,section" for the Tex_FoldedSections variable will not fold any +subsections at all. This is because the folds are created in the _reverse_ order +in which they occur in the Tex_FoldedSections setting and also, once a fold is +created, the interior of the fold is not examined for creating additional folds. +In the above case, this means that a \section is folded first and then its +interior is not examined further. The correct value should have been +"section,subsection" + + *fold-setting-adding* *ls_a_ee* +Each of the fold setting variables Tex_FoldedSections, Tex_FoldedEnvironments +etc., as explained previously is a comma separated string of variables. However, +to make it easier to _add_ to the default settings without having to repeat the +whole default setting again, Latex-Suite uses the following logic in forming the +complete setting string from the Tex_FoldedXXXX variables. If the variable +starts with a comma, then Tex_FoldedXXXX is added to the end of the default +string rather than replacing it. Similarly, if it ends with a comma, then it +will be prepended to the beginning of the default setting rather than replacing +it. + +For example, if Tex_FoldedEnvironments is set to the string "myenv", then only +an environment of the form \begin{myenv} will be folded. However, if the +Tex_FoldedEnvironments setting is ",myenv", then the \begin{myenv} environment +will be folded after all other environments in the default setting have been +folded. On the other hand if Tex_FoldedEnvironments is of the form "myenv,", the +\begin{myenv} environment will be folded before the rest of the environments in +the default setting. + +-------------------------------------------------------------------------------- +Editing the folding.vim file directly *ls_8_3* *ls_a_cq* + *editing-folding* + +If you are using version 1.5 of Latex-Suite or older, you will need to directly +edit the $VIM/ftplugin/latex-suite/folding.vim file if you wish to modify the +folding scheme. You will need to modify the function MakeTexFolds() defined in +that file to modify the fold syntax. MakeTexFolds makes a number of calls to +AddSyntaxFoldItem. Each such call defines a new "fold item". The order in which +these calls are made defines how the folds are nested. For example, if you +desire an figure environment to be nested within a section, then you should +define the fold for the figure first. The syntax of AddSyntaxFoldItem is as +follows: > + AddSyntaxFoldItem(startpat, endpat, startoff, endoff [, startskip, endskip]) +If the last two arguments are omitted, then they are assumed to default to the +empty strings ''. The explanation for each argument is as follows: + +Argument Explanation~ +startpat a line matching this pattern defines the beginning of a fold. +endpat a line matching this pattern defines the end of a fold. +startoff this is the offset from the starting line at which folding will + actually start +endoff like startoff, but gives the offset of the actual fold end from the + line satisfying endpat. startoff and endoff are necessary when the + folding region does not have a specific end pattern corresponding to + a start pattern. for example in LaTeX, \section{Section Name} defines + the beginning of a section, but there is no command which + specifically ends a section. Thus a \section is assumed to end 1 line + _before_ another section starts. +startskip A Pattern Which Defines The Beginning Of A "Skipped" Region. + + For example, suppose we define a \itemize fold as follows: > + = '^\s*\\item', + = '^\s*\\item\|^\s*\\end{\(enumerate\|itemize\|description\)}', + = 0, + = -1 +< + + This defines a fold which starts with a line beginning with an \item + and ending one line before a line beginning with an \item or + \end{enumerate} etc. + + Then, as long as \item's are not nested things are fine. However, + once items begin to nest, the fold started by one \item can end + because of an \item in an \itemize environment within this \item. + i.e, the following can happen: > + \begin{itemize} + \item Some text <------- fold will start here + This item will contain a nested item + \begin{itemize} <----- fold will end here because next line contains \item... + \item Hello + \end{itemize} <----- ... instead of here. + \item Next item of the parent itemize + \end{itemize} +< + + Therefore, in order to completely define a folding item which allows + nesting, we need to also define a "skip" pattern. startskip and end + skip do that. Leave '' when there is no nesting. +endskip the pattern which defines the end of the "skip" pattern for nested + folds. + +NOTE: Example 1 + --------- + A syntax fold region for the latex section is defined with the following + arguments to AddSyntaxFoldItem: > + startpat = "\\section{" + endpat = "\\section{" + startoff = 0 + endoff = -1 + startskip = '' + endskip = '' +< Note that the start and end patterns are thus the same and endoff has a + negative value to capture the effect of a section ending one line before + the next starts. + + +NOTE: Example 2 + --------- + A syntax fold region for the \itemize environment is: > + startpat = '^\s*\\item', + endpat = '^\s*\\item\|^\s*\\end{\(enumerate\|itemize\|description\)}', + startoff = 0, + endoff = -1, + startskip = '^\s*\\begin{\(enumerate\|itemize\|description\)}', + endskip = '^\s*\\end{\(enumerate\|itemize\|description\)}' +< Note the use of startskip and endskip to allow nesting. + + + +================================================================================ +Multiple file LaTeX projects *ls_9* *ls_a_cr* + *latex-project* + +|ls_9_1| Latex-Suite project settings +|ls_9_2| Specifying which file to compile + + + *latex-project-example* *ls_a_ef* +Many LaTeX projects contain multiple source files which are \included from a +master file. A typical example of this situation is a directory layout such as +the following + + > + thesis/ + main.tex + abstract.tex + intro/ + intro.tex + figures/ + fig1.eps + fig2.eps + chapter1/ + chap1.tex + figures/ + fig1.eps + conclusion/ + conclusion.tex + figures/ + + +In the above case, main.tex will typically look like + + > + % file: main.tex + \documentclass{report} + \begin{document} + + \input{abstract.tex} + \input{intro/intro.tex} + \input{chapter1/chap1.tex} + \input{conclusion/conclusion.tex} + + \end{document} + + + *latex-master-file-specification* *ls_a_eg* +In such situations, you will need to convey to Latex-Suite that main.tex is the +main file which \inputs the other files. This is done by creating a file called +main.tex.latexmain in the same directory in which main.tex resides. This file is +called the _master file_ in this manual. See Tex_MainFileExpression [|ls_a_eh|] +for an alternative way of specifying the master file. + +NOTE: Here main.tex.latexmain is (obviously) a different file from main.tex + itself. main.tex need not be renamed. This ofcourse restricts each + directory to have a single master file. + + +Each time Latex-Suite opens a new LaTeX file, it will try to see if it is part +of a multiple file project by searching upwards (to the root of the file-system) +from the current file's directory to see if it finds a file of the form +*.latexmain. If such a file is found, then it is considered that the current +file is part of a larger project. The name of the LaTeX master file is inferred +directly from the first part of the *.latexmain file as described in the example +above. + + +-------------------------------------------------------------------------------- +Latex-Suite project settings *ls_9_1* *ls_a_cs* + *latex-project-settings* + +If a master file [|ls_a_ct|] is found, then Latex-Suite :sources the file. Thus +this file needs to contain valid Vim commands. This file is typically used to +store project specific settings. + +Some typical per-project settings which are best put in the master file are +Tex_ProjectSourceFiles [|ls_a_dt|] + +-------------------------------------------------------------------------------- +Specifying which file to compile *ls_9_2* *ls_a_ct* + *latex-master-file* + +In the example described previously [|ls_a_ef|], if you are editing +intro/intro.tex and press \ll, then you still want Latex-Suite to compile +main.tex, because intro/intro.tex is merely a fragment which is \input'ed into +main.tex. If the master file is already specified using the *.latexmain +convention described previously [|ls_a_ef|], then Latex-Suite will automatically +compile the master file when you are editing any of its \input'ed fragments. +Thus pressing \ll while editing intro/intro.tex will compile main.tex. + + *Tex_MainFileExpression* *ls_a_eh* +If you wish to use some different logic to specify the main file name, you can +specify a custom expression via the Tex_MainFileExpression variable. This is a +string containing a valid vim expression. In addition, you can use a variable +modifier which is in the format used for |filename-modifiers|, for example, +':p:h'. You should utilize this variable to modify the filename of the main +file. > + let g:Tex_MainFileExpression = 'MainFile(modifier)' + function! MainFile(fmod) + if glob('*.latexmain') != '' + return fnamemodify(glob('*.latexmain'), a:fmod) + else + return '' + endif + endif + + +================================================================================ +Latex-Suite Commands and Maps *ls_10* *ls_a_cu* + *latex-suite-commands-maps* + +|ls_10_1| Latex-Suite Maps +|ls_10_2| Latex Suite Commands + + +This section describes the maps and commands used in Latex-Suite. It also +describes a way to change the map sequences according to your preference. + + +-------------------------------------------------------------------------------- +Latex-Suite Maps *ls_10_1* *ls_a_cv* + *latex-suite-maps* + + *remapping-latex-suite-keys* *ls_a_ei* +Most of the mappings used in Latex-Suite can be mapped to a different key +combination to suit your particular needs. An example best explains the +procedure for doing this. Suppose you want to remap the <C-j> key which +Latex-Suite (actually imaps.vim) uses to jump to the next placeholder. To do +this, you first need to find out which <Plug> mapping <C-j> is derived from. You +will need to look at the relevant section of this manual to do this. For +example, the section IMAP mappings [|ls_a_cw|] has the information that the +<C-j> key is derived from <Plug>IMAP_JumpForward. Therefore to remap the <C-j> +key to say <C-space>, you will need to put a statement like the following in +your ~/.vimrc. > + imap <C-space> <Plug>IMAP_JumpForward + + +NOTE: To change the IMAP mappings which affect jumping between placeholders, the + map statement above has to be placed in your ~/.vimrc. For other mappings + you can place the map statement in your $VIM/ftplugin/tex.vim file. The + reason for this is that the <C-j> maps are created in plugin/imaps.vim, + which is sourced as soon as Vim starts before sourcing any ftplugin files. + + + + +IMAP mappings *ls_10_1_1* *ls_a_cw* + *customize-imap-maps* + +These mappings are utilized for jumping between placeholders as described here +[|ls_a_eD|]. See the parent section [|ls_a_cv|] to find out how to use this +information to change the default maps. + + *Plug_IMAP_JumpForward* *ls_a_ej* + *Plug_IMAP_JumpBack* *ls_a_ek* + *Plug_IMAP_DeleteAndJumpForward* *ls_a_el* + *Plug_IMAP_DeleteAndJumBack* *ls_a_em* +Plug map Default Key~ +<Plug>IMAP_JumpForward <C-j> +<Plug>IMAP_JumpBack (none) +<Plug>IMAP_DeleteAndJumpForward (none) +<Plug>IMAP_DeleteAndJumpBack (none) + +<Plug>IMAP_JumpForward takes you to the location of the next place-holder +[|ls_a_eD|]. + +<Plug>IMAP_JumpBack takes you to the previous place-holder [|ls_a_eD|]. + +<Plug>IMAP_DeleteAndJumpForward deletes the presently selected place-holder and +jumps to the next place-holder irrespective of whether the present placeholder +is empty or not and ignoring the value of place-holder settings like +g:Imap_DeleteEmptyPlaceHolders [|ls_a_cW|] and g:Imap_StickyPlaceHolders +[|ls_a_cX|] + +<Plug>IMAP_DeleteAndJumpBack deletes the presently selected place-holder and +jumps to the previous place-holder irrespective of whether the present +placeholder is empty or not and ignoring the value of place-holder settings like +g:Imap_DeleteEmptyPlaceHolders [|ls_a_cW|] and g:Imap_StickyPlaceHolders +[|ls_a_cX|] + + +Alt-Key mappings *ls_10_1_2* *ls_a_cx* + *customize-alt-key-maps* + +These mappings are are described in the section Alt key macros [|ls_a_bA|]. See +the parent section [|ls_a_ei|] to see how to use the following information to +remap keys. + + *Plug_Tex_MathBF* *ls_a_en* + *Plug_Tex_MathCal* *ls_a_eo* + *Plug_Tex_LeftRight* *ls_a_ep* + *Plug_Tex_InsertItem* *ls_a_eq* +Plug Mapping Default Key~ +<Plug>Tex_MathBF <Alt-B> +<Plug>Tex_MathCal <Alt-C> +<Plug>Tex_LeftRight <Alt-L> +<Plug>Tex_InsertItem <Alt-I> + +-------------------------------------------------------------------------------- +Latex Suite Commands *ls_10_2* *ls_a_cy* + *latex-suite-commands* + + + +:TMacro [{macro}] *ls_10_2_1* *ls_a_cz* *TMacro* + +When used without any arguments lists all available macros defined in runtime +ftplugin/latex-suite/macros/ directories and prompts you to choose one of them. +With one argument |:read| this macro under cursor position. With more than one +argument it will not work :) In Vim >= 6.2 works completion of names of macros +(see 'wildmenu', 'wildmode' for more about command-line completion). + + +:TMacroEdit [{macro}] *ls_10_2_2* *ls_a_cA* + *TMacroEdit* + +Splits window for editing {macro}. When used without any arguments lists all +available macros defined in runtime ftplugin/latex-suite/macros/ directories and +prompt you to choose one of them. When you try to edit {macro} not from local +directory Latex-Suite will copy it to your local directory with suffix "-local". +If local copy already exists Latex-Suite prompt for overwriting it. In Vim >= +6.2 works completion of names of macros (see 'wildmenu', 'wildmode' for more +about command-line completion). + + +:TMacroNew *ls_10_2_3* *ls_a_cB* + *TMacroNew* + +Splits window to write new macro. Directory in new buffer is locally changed to +Latex-Suite/macros/. + + +:TMacroDelete [{macro}] *ls_10_2_4* *ls_a_cC* + *TMacroDelete* + +Delets {macro} from your local ftplugin/latex-suite/macros/ directory. When used +without any arguments lists all available macros defined in Latex-Suite/macros/ +directory and prompt you to choose one of them. When you choose to delete +{macro} which is not in your local directory Latex-Suite will refuse to delete +it. In Vim >= 6.2 works completion of names of macros (see 'wildmenu', +'wildmode' for more about command-line completion) + + +:TPackage [{package, ...}] *ls_10_2_5* *ls_a_cD* + *TPackage* + +When used without any arguments lists name of the packages for which support is +available. If you are using Vim GUI and have Tex_Menus set to 1, then it will +list all files found in the $VIM/ftplugin/latex-suite/packages directory. +Otherwise, Latex-Suite will list files found in the +$VIM/ftplugin/latex-suite/dictionaries directory. Choosing a file from the list +will insert a > + \usepackage[<++>]{<packname>} +line into the buffer at the current cursor location. For Vim 6.2 and above, you +can use command-line completion to choose a package file. You can also call +TPackage with one or more package names separated with spaces in which case, +Latex-Suite will insert \usepackage lines for each of them in turn. + +After inserting the \usepackage line(s), Latex-Suite will support it (them) in +various ways as described in the section Actions taken for supported packages +[|ls_a_bL|]. + + +:TPackageUpdate *ls_10_2_6* *ls_a_cE* + *TPackageUpdate* + +This command `reads' name of package under cursor and turns on possible support. + + +:TPackageUpdateAll *ls_10_2_7* *ls_a_cF* + *TPackageUpdateAll* + +After issuing this command latexSuite scans the file in looking for not declared +packages, removing not needed entries from Packages menu and turning off not +necessary packages' dictionaries. + + +:TTemplate [{template}] *ls_10_2_8* *ls_a_cG* + *TTemplate* + +When used without any arguments lists all available templates from +latex-suite/templates/ directory and prompts to choose one of them. With one +argument :0|read| {template} file. With more than one argument it will not work +:) In Vim >= 6.2 works completion of names of macros (see 'wildmenu', 'wildmode' +for more about command-line completion) + + +:TSection [{argument}] *ls_10_2_9* *ls_a_cH* + *TSection* + +Used without any arguments inserts last section type (|latex-sectioning|). +Accepts arguments: n> inserts section name in <n> logical level. Levels are: +0 part +1 chapter +2 section +3 subsection +4 subsubsection +5 paragraph +6 subparagraph + + ++<n> inserts section name <n> logical levels above the last used comand +-<n> inserts section name <n> logical levels below the last used comand ++ inserts section name one logical level below the last used command (equal + to +1). +++ inserts section name two logical levels below the last used command (equal + to +2). +- inserts section name one logical level over the last used command (equal + to -1). +-- inserts section name two logical levels over the last used command (equal + to -2). + + + +Command accepts also latexSuite mappings (|latex-macros|) without preceding S +and in lowercase: > + :TSection pa +will result in \part{}. It is possible to use full names of sections: :TSection +part + + +:TSectionAdvanced *ls_10_2_10* *ls_a_cI* + *TSectionAdvanced* + +Accepts the same arguments as |TSection| but leads to a couple of questions +(whether you want to include the section in the table of contents, whether there +is a shorter name for the table of contents) and then creates a more intelligent +template. + + +:TLook *ls_10_2_11* *ls_a_cJ* *TLook* + +Accepts one argument. Will look through .tex files in directory of edited file +for argument. It can be regexp. You don't have to enclose argument in "". <cr> +takes you to location. Other keys work as described in |latex-viewer|. Note: +TLook uses :grep command and is using 'grepprg'. Its regular expressions can be +different from those of Vim. + + +:TLookBib *ls_10_2_12* *ls_a_cK* + *TLookBib* + +Accepts one argument. Will look through .bib files in directory of edited file +for argument. It can be regexp. You don't have to enclose argument in "". <cr> +takes you to location. Other keys work as described in |latex-viewer|. + +NOTE: TLookBib uses :grep command and is using 'grepprg'. Its regular + expressions can be different from those of Vim. + + + + +:TLookAll *ls_10_2_13* *ls_a_cL* + *TLookAll* + +Accepts one argument. Will look through all files in directory of edited file +for argument. It can be regexp. You don't have to enclose argument in "". <cr> +takes you to location. Other keys work as described in |latex-viewer|. Note: +TLook uses :grep command and is using 'grepprg'. Its regular expressions can be +different from those of Vim. + + +:TPartComp *ls_10_2_14* *ls_a_cM* + *TPartComp* + +No argument allowed but accepts range in all formats. Define fragment of +interest with :'a,'b, :/a/,/b/, :'<,'> or :20,30. All other rules of compilation +apply. + + +:TPartView *ls_10_2_15* *ls_a_cN* + *TPartView* + +Show last compiled fragment. All rules of viewing apply but |latex-searching|. + + +:Tshortcuts [{arg}] *ls_10_2_16* *ls_a_cO* + *Tshortcuts* + +Show shortcuts in terminal (not using menu). Without {arg} you will see simple +menu prompting for one of them. Possible arguments: +g General shortcuts +e Environment shortcuts +f Font shortcuts +s Section shortcuts +m Math shortcuts +a All shortcuts + +================================================================================ +Customizing Latex-Suite *ls_11* *ls_a_cP* + *customizing-latex-suite* + +|ls_11_1| General Settings +|ls_11_2| Place-Holder Customization +|ls_11_3| Macro Customization +|ls_11_4| Smart Key Customization +|ls_11_5| Latex Completion Customization +|ls_11_6| Compiler Customization +|ls_11_7| Viewer Customization +|ls_11_8| Menu Customization +|ls_11_9| Folding Customization +|ls_11_10| Package Handling Customization + + +Customizing Latex-Suite is done by defining certain global variables in +$VIM/ftplugin/tex.vim, where $VIM corresponds to ~/.vim for *nix machines and +~/vimfiles for windows machines. This file is not part of the Latex-Suite +distribution. You will need to create this file yourself (or modify it if it +exists) if you need to change any default settings. Since this file is not +included as part of the Latex-Suite distribution, it will not be over-written in +subsequent updates. + +The default settings in Latex-Suite are defined in +$VIM/ftplugin/latex-suite/texrc. Please take a look at this file if you find +this documentation incomplete or confusing. That file is also well documented. + +This chapter describes the various settings which effect Latex-Suite and their +default values. The settings are broken up into sections according to the +behavior which they influence. + + +-------------------------------------------------------------------------------- +General Settings *ls_11_1* *ls_a_cQ* + *ls-general-purpose-settings* + + + +Tex_Debug *ls_11_1_1* *ls_a_cR* + *Tex_Debug* + +Type boolean +Default Value 0 + +If set to 1, then Latex-Suite will create certain global debug statements which +can be printed by doing > + :call Tex_PrintDebug() + + + +Tex_UsePython *ls_11_1_2* *ls_a_cS* + *Tex_UsePython* + +Type boolean +Default Value 1 + +If Latex-Suite detects that your vim is python enabled (using has('python')), +then it tries to use python in certain places to speed things up. If this +misbehaves, you can set this to zero, in which case, Latex-Suite will use +vimscript to accomplish the same. + +-------------------------------------------------------------------------------- +Place-Holder Customization *ls_11_2* *ls_a_cT* + *customizing-place-holders* + +Latex-Suite uses place-holders [|ls_a_eD|] to minimize using the movement keys +while typing. The following settings affect how place-holders are used. + +NOTE: These setting need to be set in your ~/.vimrc, not $VIM/ftplugin/tex.vim + because these settings affect the behavior of imaps.vim, which is a global + plugin, not a file-type plugin. + + + + +g:Imap_UsePlaceHolders *ls_11_2_1* *ls_a_cU* + *Imap_UsePlaceHolders* + + +Type Boolean +Default Value 1 + +Setting this to zero completely disables using place-holders. + + +g:Imap_PlaceHolderStart & g:Imap_PlaceHolderEnd *ls_11_2_2* *ls_a_cV* + *Imap_PlaceHolderStart* + + *Imap_PlaceHolderEnd* *ls_a_er* +Setting Type Value~ +Imap_PlaceHolderStart String '<+' +Imap_PlaceHolderEnd String '+>' + +These settings affect the strings displayed at the beginning and end of the +place-holder string. Set these strings to a value different than a commonly +occurring sequence of characters. + +NOTE: TIP + --- + If you use the latin1 encoding and do not type in french, then you can set + these strings to the \xab and \xbb characters (the french quotation + marks). + + + + +g:Imap_DeleteEmptyPlaceHolders *ls_11_2_3* *ls_a_cW* + *Imap_DeleteEmptyPlaceHolders* + + +Type Boolean +Default Value 1 + +When set to one, non-descriptive or empty place-holders are deleted on pressing +<Ctrl-J>. + + +g:Imap_StickyPlaceHolders *ls_11_2_4* *ls_a_cX* + *Imap_StickyPlaceHolders* + + +Type Boolean +Default Value 1 + +When set to 1, in visual mode, <Ctrl-J> takes you to the next placeholder +without deleting the current placeholder. + +-------------------------------------------------------------------------------- +Macro Customization *ls_11_3* *ls_a_cY* + *customizing-macros* + + + +Tex_Env_name *ls_11_3_1* *ls_a_cZ* + *Tex_Env_name* + +If you wish to wish to expand certain environments differently from the way +Latex-Suite does it, you can define custom expansions using global variables of +the form Tex_Env_{name} where name corresponds to the environment. + +For example, if you press <F5> after typing theorem, Latex-Suite will by default +expand it to > + \begin{theorem} + \label{<++>}<++> + \end{theorem}<++> +However, if you wish change this to > + \begin{theorem} + <++> + \end{theorem}<++> +then define the following variable > + let g:Tex_Env_theorem = "\\begin{theorem}\<CR><++>\<CR>\\end{theorem}" +< + +If the expansion uses special keys such as carriage return etc, then use +double-quotes and use the "\<key>" notation for special keys. Backslashes have +to be doubled. + +You could even use strings returned by functions as the expansion by using the +IMAP_PutTextWithMovement() [|ls_a_ea|] function. + +If the name of the environment contains special characters (for example, the +eqnarray* environment), then use the following form: > + let g:Tex_Env_{'eqnarray*'} = + \ "\\begin{eqnarray*}\<CR><++> &=& <++>\<CR>\\end{eqnarray*}<++>" +This will make pressing <F5> after eqnarray* expand to > + \begin{eqnarray*} + <++> &=& <++> + \end{eqnarray*}<++> + + + +Tex_Com_name *ls_11_3_2* *ls_a_da* + *Tex_Com_name* + +If you wish to define new expansions for fast command insertion as described +here [|ls_a_bo|], or redefine expansions from the default values in Latex-Suite, +you will need to define variables of the form g:Tex_Com_{name} where name is a +command name. For example, with the setting > + let g:Tex_Com_frac = "\\frac{<++>}{<++>}<++>" +pressing <F7> after typing frac will change it to \frac{<++>}{<++>}<++> + +See Tex_Env_name [|ls_a_cZ|] for additional details on how to create this +setting in various special circumstances. + + +Enabling / disabling macros *ls_11_3_3* *ls_a_db* + *macro-enabling* + +The following variables disable various parts of the macro functionality of +Latex-Suite. See the links to the relevant sections to see what functionality +setting each of the variables to zero will take away. + + *Tex_EnvironmentMaps* *ls_a_es* + *Tex_EnvironmentMenus* *ls_a_et* + *Tex_FontMaps* *ls_a_eu* + *Tex_FontMenus* *ls_a_ev* + *Tex_SectionMaps* *ls_a_ew* + *Tex_SectionMenus* *ls_a_ex* +Setting Link to relevant section Default Value~ +g:Tex_EnvironmentMaps Environment Mappings [|ls_a_bf|] 1 +g:Tex_EnvironmentMenus 1 +g:Tex_FontMaps Font Mappings [|ls_a_bs|] 1 +g:Tex_FontMenus 1 +g:Tex_SectionMaps Section Mappings [|ls_a_bt|] 1 +g:Tex_SectionMenus 1 + + +g:Tex_UseMenuWizard *ls_11_3_4* *ls_a_dc* + *Tex_UseMenuWizard* + + +Type Boolean +Default Value 0 + +If this variable is set to 1, then when an environment is chosen from the menu +then for selected environments, Latex-Suite asks a series of questions on the +command line and inserts a template with the corresponding fields already filled +in. Setting this to zero will insert a template with place-holders [|ls_a_eD|] +marking off the places where fields need to be filled. + + +g:Imap_FreezeImap *ls_11_3_5* *ls_a_dd* + *Imap_FreezeImap* + +Type boolean +Default Value 0 + +This option when set to 1, temporarily freezes Latex-Suite's macro expansion. It +might be useful when you are using some other keymap which is causing excessive +macro expansion. Use a buffer-local variable of the same name if you wish to +affect just the present buffer. + + +g:Tex_CatchVisMapErrors *ls_11_3_6* *ls_a_de* + *Tex_CatchVisMapErrors* + + +Type Boolean +Default Value 1 + +With so many visual maps, its helpful to have a way of catching typing errors +made in visual mode. What this does is to prompt you to correct your visual mode +mapping if you start out with and then type some illegal keys. It basically maps +just the g:Tex_Leader character to a function. + + +g:Tex_Diacritics *ls_11_3_7* *ls_a_df* + *Tex_Diacritics* + + +Type Boolean +Default Value 0 + +Whether or not you want to use diacritics [|ls_a_bw|]. + + +g:Tex_Leader *ls_11_3_8* *ls_a_dg* + *Tex_Leader* + + +Type String +Default Value '`' + +The mappings in Latex-Suite are by default prefixed with the back-tick +character. For example, `/ inserts \frac{<++>}{<++>}<++> etc. You can change the +prefix with the following setting. ',', '/', '`' are preferred values. '' or '\' +will lead to a _lot_ of trouble. + +g:Tex_Leader is also used for visual mode mappings for fonts. + + +g:Tex_Leader2 *ls_11_3_9* *ls_a_dh* + *Tex_Leader2* + + +Type String +Default Value ',' + +In order to avoid clashes between the large number of visual mode macros +provided, the visual mode macros for environments [|ls_a_bm|] and sections start +with a character different from g:Tex_Leader. + + +g:Tex_PromptedEnvironments *ls_11_3_10* *ls_a_di* + *Tex_PromptedEnvironments* + + +Type String +Default Value 'eqnarray*,eqnarray,equation,equation*,\[,$$,align,align*' + +This string represents a comma separated list of fields corresponding to +environments. Pressing <F5> in insert-mode in the body of the document asks you +to choose from one of these environments to insert. + +Leaving this string empty will leave the <F5> key unmapped + + +g:Tex_HotKeyMappings *ls_11_3_11* *ls_a_dj* + *Tex_HotKeyMappings* + + +Type String +Default Value 'eqnarray*,eqnarray,bmatrix' + +This string represents a comma separated list of environments which are mapped +to <Shift-F-1> through <Shift-F-4>. For example, pressing <Shift-F-2> with this +setting inserts the eqnarray environment. + +Leaving this string empty will leave <Shift-F-1> through <Shift-F-4> unmapped. + +NOTE: Only the first four fields of this list are used. The rest are silently + ignored. + + + + +g:Tex_PromptedCommands *ls_11_3_12* *ls_a_dk* + *Tex_PromptedCommands* + + +Type String +Default Value 'footnote,cite,pageref,label' + +This string represents a comma separated list of LaTeX commands which +Latex-Suite uses for the <F7> and <S-F7> maps as described here [|ls_a_bo|]. + +Leaving this string empty will leave the <F7> key unmapped. + + +Tex_ItemStyle_environment *ls_11_3_13* *ls_a_dl* + *Tex_ItemStyle_environment* + +This setting affects the style which Latex-Suite uses to insert an \item when +<Alt-I> is pressed as described here [|ls_a_bE|]. By default Latex-Suite defines +styles for the following environments: + +Environment Style~ +itemize \item +enumerate \item +theindex \item +thebibliography \item[<+biblabel+>]{<+bibkey+>} <++> +description \item[<+label+>] <++> + +Each style is defined by a variable of the form g:Tex_ItemStyle_{envname} where +envname is the name of the environment for which the style is defined. For +example, by default > + g:Tex_ItemStyle_description = '\item[<+label+>] <++>' +Redefining the style for a particular environment or defining a style for an +entirely new environment is simply a matter of setting the value of a variable +of the corresponding name. + +-------------------------------------------------------------------------------- +Smart Key Customization *ls_11_4* *ls_a_dm* + *customizing-smart-keys* + +These settings affect the smart key functionality as described here [|ls_a_bz|]. + + + +g:Tex_SmartKeyBS *ls_11_4_1* *ls_a_dn* + *Tex_SmartKeyBS* + + +Type Boolean +Default Value 1 + +Whether or not <Backspace> deletes diacritics. + + +g:Tex_SmartKeyQuote *ls_11_4_2* *ls_a_do* + *Tex_SmartKeyQuote* + + +Type Boolean +Default Value 1 + +Whether or not the smart quotes [|ls_a_bz|] functionality is available. + +If enabled, the quote characters can be customized by setting the following +variables: + +Setting Value~ +g:Tex_SmartQuoteOpen "``" +g:Tex_SmartQuoteClose "''" + +Non-English users will want to change these settings to their locale. These +global variables will be ignored if there are buffer-local variables (with the +same name), which may be set in the language specific package files, such as +$VIM/ftplugin/latex-suite/packages/german. + +-------------------------------------------------------------------------------- +Latex Completion Customization *ls_11_5* *ls_a_dp* + *customizing-latex-completion* + +The following settings affect the completion [|ls_a_bR|] functionality in +Latex-Suite. + + + +Window size settings *ls_11_5_1* *ls_a_dq* + *completion-window-preferences* + +These three settings affect the aesthetics of the completion functionality. + + *Tex_ViewerCwindowHeight* *ls_a_ey* + *Tex_ViewerPreviewHeight* *ls_a_ez* + *Tex_ExplorerHeight* *ls_a_eA* + *Tex_ImageDir* *ls_a_eB* +Setting Explanation Default Value~ +g:Tex_ViewerCwindowHeight The height of the cwindow which 5 + displays the list of \labels + etc. +g:Tex_ViewerPreviewHeight The height of the preview window 10 + which shows the context of a + \label etc. +g:Tex_ExplorerHeight The height of the explorer 10 + window which lists the files + from which to choose an image + file. +g:Tex_ImageDir The directory to scan for images '' + + +g:Tex_BIBINPUTS *ls_11_5_2* *ls_a_dr* + *Tex_BIBINPUTS* + + +Type string +Default Value '' + +This string describes the directories which are scanned while trying to search +for .bib and .bbl files. See the cite completion section [|ls_a_bU|] for more +details. + +This string should be set in the syntax accepted by Vim's native 'path' setting. +Do not include the present directory '.'. While searching for bibliography +files, the present directory will be prepended to this variable. + + +Tex_UseSimpleLabelSearch *ls_11_5_3* *ls_a_ds* + *Tex_UseSimpleLabelSearch* + +When set to 1, Latex-Suite searches for \labels in all .tex files in the +directory containing the file being edited when <F9> is pressed. See \ref +completion [|ls_a_bT|] for details. + + +g:Tex_ProjectSourceFiles *ls_11_5_4* *ls_a_dt* + *Tex_ProjectSourceFiles* + + +Type String +Default Value '' + +This setting is meant to be initialized on a per-project basis using the +Latex-Suite master file [|ls_a_ct|] as described in Latex-Suite Project +[|ls_a_cr|] section. It is a list of source files which are used in the project. +If defined, then instead of using the logic described in +Tex_UseSimpleLabelSearch [|ls_a_ds|] to search for files in which to search for +\labels, we simply search for \labels in this list. This significantly reduces +the time it takes to generate the list of possible completions for large +projects. + +The list is specified as a whitespace separated list of filenames relative to +the location of the main file. + + +g:Tex_RememberCiteSearch *ls_11_5_5* *ls_a_du* + *Tex_RememberCiteSearch* + + +Type Boolean +Default Value 0 + +When this variable is non-zero, then Latex-Suite will try to remember results +from the \cite completion as described in this section [|ls_a_bV|]. + +-------------------------------------------------------------------------------- +Compiler Customization *ls_11_6* *ls_a_dv* + *customizing-compiling* + +The following settings affect Latex-Suite's compilation functionality + + + +g:Tex_DefaultTargetFormat *ls_11_6_1* *ls_a_dw* + *Tex_DefaultTargetFormat* + + +Type String +Default Value dvi for windows/*nix and pdf for mac + +Use this setting to choose the default target format. For example, setting this +to pdf makes Latex-Suite compile a pdf file when you press \ll and fire up the +pdf viewer on pressing \lv. Make sure that a rules for compiling and viewing +have been defined for this target format as described here [|ls_a_dx|] and here +[|ls_a_dF|]. + + +g:Tex_CompileRule_<format> *ls_11_6_2* *ls_a_dx* + *Tex_CompileRule_format* + +Here <format> refers to the target format for which this rule is defined. +Latex-Suite supports compiling into dvi, ps and pdf by default. All these rules +are strings defined by default as follows: + + +g:Tex_CompileRule_dvi 'latex -interaction=nonstopmode $*' +g:Tex_CompileRule_ps 'ps2pdf $*' +g:Tex_CompileRule_pdf 'pdflatex -interaction=nonstopmode $*' + +If you desire forward and inverse searching via Latex-Suite, you will need to +change g:Tex_CompileRule_dvi to include -src-specials. However, this has been +known to cause problems with the output file. Therefore, use this with care. + + +g:Tex_FormatDependency_<format> *ls_11_6_3* *ls_a_dy* + +Type string +Default Value '' + +By default, there are no format dependencies defined. Each definition is of the +form above where <format> is a string such as 'dvi' etc. + +The value of each string is a comma separated string such as 'dvi,ps'. See the +Compiler dependency [|ls_a_ca|] section to see how to use/specify this setting + + +g:Tex_MultipleCompileFormats *ls_11_6_4* *ls_a_dz* + *Tex_MultipleCompileFormats* + +Type string +Default Value 'dvi' + +This is a comma separated string of formats for which the compiler needs to be +called multiple times in order to get cross-references, citations etc right. See +the Compiling multiple times [|ls_a_cb|] section for details. + + +g:Tex_IgnoredWarnings *ls_11_6_5* *ls_a_dA* + *Tex_IgnoredWarnings* + + +Type String +Default Value a new-line separated list of patterns as described below + +The default value of this setting is > + \"Underfull\n". + \"Overfull\n". + \"specifier changed to\n". + \"You have requested\n". + \"Missing number, treated as zero.\n". + \"There were undefined references\n" + \"Citation %.%# undefined" +This setting defines a set of patterns which will be filtered out when +displaying the output from the latex compiler. This is to aid in filtering out +very common warnings/errors. + +NOTE: Remember to check the value of g:Tex_IgnoreLevel [|ls_a_dB|] when you + change this setting. For example, if you append a new pattern which you + would like to ignore by default, increase the value of g:Tex_IgnoreLevel. + + + + +g:Tex_IgnoreLevel *ls_11_6_6* *ls_a_dB* + *Tex_IgnoreLevel* + + +Type Integer +Default Value 7 + +This setting defines a "filter level" or an "ignore level". A value of 7 for +instance means that any warning/error matching with any of the first 7 fields of +g:Tex_IgnoredWarnings [|ls_a_dA|] will be ignored. Setting this value to zero +will mean that no error/warning is ignored. However, even with a value of zero, +Latex-Suite will filter out most of the text which a LaTeX compiler typically +produces. Use > + TCLevel strict +from within Vim in order to see all the lines from the compiler's output. + + +Tex_UseMakefile *ls_11_6_7* *ls_a_dC* + *Tex_UseMakefile* + +Type boolean +Default Value 1 + +When set to 1, then if a makefile or Makefile is present in the current +directory, then Latex-Suite sets the makeprg option to just "make <target>", +where <target> is the target format chosen using the TCTarget or TTarget +commands. + +When set to 0, then Latex-Suite will set the makeprg setting to whatever is +defined by the g:Tex_CompileRule_target [|ls_a_dx|] setting. + + +g:Tex_GotoError *ls_11_6_8* *ls_a_dD* + *Tex_GotoError* + + +Type boolean +Default Value 1 + +If set to 1, then pressing \ll will take you to the location of the first +warning/error, otherwise you will remain in the original location but the +errors/warnings will be listed in the preview window. + +-------------------------------------------------------------------------------- +Viewer Customization *ls_11_7* *ls_a_dE* + *customizing-viewing* + +The following settings affect how Latex-Suite will display compiled files. + + + +g:Tex_ViewRule_<format> *ls_11_7_1* *ls_a_dF* + *Tex_ViewRule_format* + +Here <format> refers to a format such as dvi, ps, etc. This variable defines the +program which will be called to display a file of that format. + +By default, Latex-Suite defines viewer programs for viewing DVI, PS and PDF +formats as follows: + + Windows Unix~ +g:Tex_ViewRule_dvi 'yap -1' 'xdvi' +g:Tex_ViewRule_ps 'gsview32' 'ghostview' +g:Tex_ViewRule_pdf 'AcroRd32' 'xpdf' + +For Macintosh systems, these strings are left empty by default. This lets the +system pick the program for each format. If you define these variables for Mac, +the system choice will be over-ridden. + +Latex-Suite appends file.format to the above settings while calling the external +programs. For example, with > + let g:Tex_ViewRule_dvi = 'yap -1' +yap is called as > + !start yap -1 file.dvi +from within Vim. (The initial start is used on Windows platforms is to make yap +start as a separate process.) If you find the way Latex-Suite constructs the +command line too restrictive, you can use the Tex_ViewRuleComplete_format +[|ls_a_dG|] setting for more complete control on how the command line is +constructed while calling the external program for viewing. + +NOTE: For windows, you will need to set the $PATH variable to include the paths + to yap, AcroRd32, gsview32 and any other programs. See your system + documentation for how to do this. + + +NOTE: Default Viewing Format + ---------------------- + To change the default format for viewing files, set the + g:Tex_DefaultTargetFormat [|ls_a_dw|] variable. + + + + +Tex_ViewRuleComplete_<format> *ls_11_7_2* *ls_a_dG* + *Tex_ViewRuleComplete_format* + +Here <format> refers to the extension of a output format such as dvi, html etc. + +Tex_ViewRuleComplete_format takes precedence over Tex_ViewRule_format if both +are specified. By default, Latex-Suite does not define values for +Tex_ViewRuleComplete_format for any format. Unlike in the case of +Tex_ViewRule_format, Latex-Suite does not modify Tex_ViewRuleComplete_format at +all in constructing the command line. The only modification is to substitute +'$*' everywhere in the string with the name of the file being viewed (without +the extension). + +NOTE: IMPORTANT + --------- + Make sure you make the process go into the background otherwise vim will + wait for the viewer to terminate before letting you edit the file again. + + To make a process go into the background on a *nix platform, use a + trailing & in the setting. On Windows, use start at the beginning of the + setting. Example: Suppose you have a latex->html converter which converts + a file say foo.tex to a file foo/index.html. Then you would use: > + " On *nix platform + let g:Tex_ViewRuleComplete_html = 'MozillaFirebird $*/index.html &' + " On windows platform + let g:Tex_ViewRuleComplete_html = 'start MozillaFirebird $*/index.html' +< + + + +-------------------------------------------------------------------------------- +Menu Customization *ls_11_8* *ls_a_dH* + *customizing-menus* + +In addition to using the variables defined in this section to affect the +menu-layout permanently (i.e, the layout Latex-Suite will start with), you can +also use the TeX-Suite > Configure Menu menu to dynamically configure the menu +layout after Latex-Suite has started. + + + +g:Tex_Menus *ls_11_8_1* *ls_a_dI* + *Tex_Menus* + + +Type Boolean +Default Value 1 + +If set to 0, Latex-Suite will suppress showing all menus. Useful if you mostly +work in terminals. + + +g:Tex_MainMenuLocation *ls_11_8_2* *ls_a_dJ* + *Tex_MainMenuLocation* + + +Type number +Default Value 80 + +This setting decides the location of the first top-level Latex-Suite menu. You +can for example shift all the menus created by Latex-Suite to the very end by +setting this value to a large number like 990. + + +g:Tex_MathMenus *ls_11_8_3* *ls_a_dK* + *Tex_MathMenus* + + +Type Boolean +Default Value 1 + +The Tex-Math menu consists of hundreds of mathematical symbols used in LaTeX. +This menu comprises about 75% of the menus. + + +g:Tex_NestElementMenus *ls_11_8_4* *ls_a_dL* + *Tex_NestElementMenus* + + +Type Boolean +Default Value 1 + +This setting controls the "compactness" of the menus. If set to 1, then the +Font, Counter and Dimensioning menus are collected together in a single menu +called Tex-Elements, otherwise, they will each get a separate menu. + + +g:Tex_PackagesMenu *ls_11_8_5* *ls_a_dM* + *Tex_PackagesMenu* + + +Type Boolean +Default Value 1 + +Setting this to zero will stop Latex-Suite from automatically creating the +TeX-Suite > Packages > Supported menu at startup. You can still create the menu +after startup by going to TeX-Suite > Configure Menu. + + +g:Tex_NestPackagesMenu *ls_11_8_6* *ls_a_dN* + *Tex_NestPackagesMenu* + + +Type String +Default Value 'TeX-' + +This string is the prefix added to all the menus created by Latex-Suite. If you +define this variable with a dot ('.') as the last character, then all the menus +created by Latex-Suite will be nested under a single master menu. For example, +set this to '&LaTeX-Suite.' to nest all menus under a menu called &LaTeX-Suite. + + +g:Tex_UseUtfMenus *ls_11_8_7* *ls_a_dO* + *Tex_UseUtfMenus* + + +Type Boolean +Default Value 0 + +This setting controls whether Latex-Suite uses utf-8 symbols to display some of +the mathematical symbols in the TeX-Math menu. It is necessary for your +system/GUI to support utf-8. Setting this to 1 has the side-effect of setting +the 'encoding' option of Vim to 'utf-8'. + +-------------------------------------------------------------------------------- +Folding Customization *ls_11_9* *ls_a_dP* + *customizing-folding* + +The following settings control the folding [|ls_a_ci|] functionality of +Latex-Suite. + + + +g:Tex_Folding *ls_11_9_1* *ls_a_dQ* + *Tex_Folding* + + +Type Boolean +Default Value 1 + +Setting this to zero completely disables Latex-Suite's folding functionality. +However, the TexFoldTextFunction() is still available in case you want to use +another folding scheme but still want to continue using the fold text function. + + +g:Tex_AutoFolding *ls_11_9_2* *ls_a_dR* + *Tex_AutoFolding* + + +Type Boolean +Default Value 1 + +This setting controls whether Latex-Suite automatically creates manual folds for +a file when it is opened. You can still use the \rf mapping to refresh/create +folds even when this variable is set to zero. + +-------------------------------------------------------------------------------- +Package Handling Customization *ls_11_10* *ls_a_dS* + *customizing-packages* + +These settings affect the custom packages [|ls_a_bN|] functionality in +Latex-Suite + + + +g:Tex_TEXINPUTS *ls_11_10_1* *ls_a_dT* + *Tex_TEXINPUTS* + + +Type string +Default Value '' + +This setting describes the directories scanned by Latex-Suite while searching +for custom user packages as described in the custom packages [|ls_a_bN|] +section. Do not include the present directory in this setting. The present +directory is always scanned for custom packages. + +This string should be set in the syntax accepted by Vim's native 'path' setting. + +================================================================================ +Credits *ls_12* *ls_a_dU* + *latex-suite-credits* + + + +And finally, the credits: + + +Artur R. Czechowski maintains the BSD package of Latex-Suite. Lots of valuable + feedback. +Lubomir Host provided the diacritics and also helped in development. +Alexander Wagner valuable suggestions during development. +Luc Hermitte his variation of Stephen Riehm's bracketing system is used + in Latex-Suite. +Gergely Kontra the clever little JumpFunc() in imaps.vim is due to him. + The implementation of the templates also borrows from + mu-template.vim by him. +Dimitri Antoniou author of ltags and also provided the nice tip about + forward / reverse search on DVI documents. +Stephen Riehm the extremely helpful bracketing system is from him. +Alan Schmitt provided macros/folding elements. Continued feedback, + bug-reports/fixes. +Hari Krishna Dara for ExecMap(), the clever little function which makes + typing visual mode mappings so much easier and error-free. +Alan G Isac for the comprehensive BibT() function for entering bibtex + entries. +Gontran Baerts for libList.vim +Peter Heslin useful discussion and also a lot of bug fixes. the + %%fakesection in folding.vim. +Zhang Lin-bo lots of very useful additions to folding. The code for + customizing the folding scheme is due to him. + +A large number of functions in Latex-Suite come from various other people. Some +of those people might have been missed here. Each function should however have +the author's name/e-mail above it. Thats the more authoritative place to check +out who has done what. + + *latex-suite-maintainer* *ls_a_eC* +The current maintainer(s) of Latex-Suite is(are) + + +Srinath Avadhanula <srinath@fastmail.fm> + +Mikolaj Machowski <mikmach@wp.pl> + +Benji Fisher <benji@member.AMS.org> + +================================================================================ +URLs used in this file + +*ls_u_1* : http://vim-latex.sourceforge.net +*ls_u_2* : http://vim-latex.sourceforge.net/index.php?subject=download +*ls_u_3* : http://www.cygwin.com +*ls_u_4* : http://www.google.com/search?q=windows%20gnu%20grep + +================================================================================ +About this file + +This file was created automatically from its XML variant using db2vim. db2vim is +a python script which understands a very limited subset of the Docbook XML 4.2 +DTD and outputs a plain text file in vim help format. + +db2vim can be obtained via anonymous CVS from sourceforge.net. Use + +cvs -d:pserver:anonymous@cvs.vim-latex.sf.net:/cvsroot/vim-latex co db2vim + +Or you can visit the web-interface to sourceforge CVS at: +http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/vim-latex/db2vim/ + +The following modelines should nicely fold up this help manual. + +vim:ft=help:fdm=expr:nowrap +vim:foldexpr=getline(v\:lnum-1)=~'-\\{80}'?'>2'\:getline(v\:lnum-1)=~'=\\{80}'?'>1'\:getline(v\:lnum)=~'=\\{80}'?'0'\:getline(v\:lnum)=~'-\\{80}'?'1'\:'=' +vim:foldtext=substitute(v\:folddashes.substitute(getline(v\:foldstart),'\\s*\\*.*',"",""),'^--','\ \ \ \ \ \ ','') +================================================================================ diff --git a/.vim/doc/latexhelp.txt b/.vim/doc/latexhelp.txt new file mode 100644 index 0000000..2782424 --- /dev/null +++ b/.vim/doc/latexhelp.txt @@ -0,0 +1,2430 @@ +*latexhelp.txt* For Vim version 6.0. Last change: 2001 Dec 20 + + + LATEX HELP 1.6 + translated (with minor changes) for vim + by Mikolaj Machowski + +This file documents LaTeX2e, a document preparation system. LaTeX2e is a +macro package for TeX. + + This is edition 1.6 of the LaTeX2e documentation, and is for the Texinfo +that is distributed as part of Version 19 of GNU Emacs. It uses version +2.134 or later of the texinfo.tex input file. + + This is translated from LATEX.HLP v1.0a in the VMS Help Library. The +pre-translation version was written by George D. Greenwade of Sam Houston +State University. + + The LaTeX 2.09 version was written by Stephen Gilmore <stg@dcs.ed.ac.uk>. + + The LaTeX2e version was adapted from this by Torsten Martinsen +<bullestock@dk-online.dk>. + + Version for vim of this manual was written by Mikolaj Machowski +<mikmach@wp.pl> + + Copyright 1988,1994 Free Software Foundation, Inc. Copyright 1994-1996 +Torsten Martinsen. Copyright for `translation' for vim Mikolaj Machowski 2001. + + Permission is granted to make and distribute verbatim copies of this manual +provided the copyright notice and this permission notice are preserved on +all copies. + + Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided that the entire +resulting derived work is distributed under the terms of a permission +notice identical to this one. + + Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that the sections entitled "Distribution" and "General Public +License" may be included in a translation approved by the author instead of +in the original English. + +============================================================================== +*LaTeX* *latex* + +The LaTeX command typesets a file of text using the TeX program and the LaTeX +Macro package for TeX. To be more specific, it processes an input file +containing the text of a document with interspersed commands that describe how +the text should be formatted. + +1. Commands |latex-commands| +2. Counters |latex-counters| +3. Cross References |latex-references| +4. Definitions |latex-definitions| +5. Document Classes |latex-classes| +6. Layout |latex-layout| +7. Environments |latex-environments| +8. Footnotes |latex-footnotes| +9. Lengths |latex-lengths| +10. Letters |latex-letters| +11. Line & Page Breaking |latex-breaking| +12. Making Paragraphs |latex-paragraphs| +13. Margin Notes |latex-margin-notes| +14. Math Formulae |latex-math| +15. Modes |latex-modes| +16. Page Styles |latex-page-styles| +17. Sectioning |latex-sectioning| +18. Spaces & Boxes |latex-spaces-boxes| +19. Special Characters |latex-special-char| +20. Splitting the Input |latex-inputting| +21. Starting & Ending |latex-start-end| +22. Table of Contents |latex-toc| +23. Terminal Input/Output |latex-terminal| +24. Typefaces |latex-typefaces| +25. Parameters |latex-parameters| + +============================================================================== +1. Commands *latex-commands* + +A LaTeX command begins with the command name, which consists of a \ followed +by either + (a) a string of letters or + (b) a single non-letter. + +Arguments contained in square brackets, [], are optional while arguments +contained in braces, {}, are required. + +NOTE: LaTeX is case sensitive. Enter all commands in lower case unless +explicitly directed to do otherwise. + +============================================================================== +2. Counters *latex-counters* + +|\addtocounter| Add a quantity to a counter +|\alph| Print value of a counter using letters +|\arabic| Print value of a counter using numerals +|\fnsymbol| Print value of a counter using symbols +|\newcounter| Define a new counter +|\refstepcounter| Add to counter, resetting subsidiary counters +|\roman| Print value of a counter using roman numerals +|\setcounter| Set the value of a counter +|\stepcounter| Add to counter, resetting subsidiary counters +|\usecounter| Use a specified counter in a list environment +|\value| Use the value of a counter in an expression + +Everything LaTeX numbers for you has a counter associated with it. The name of +the counter is the same as the name of the environment or command that +produces the number, except with no |\\|. (|lc-enumi| - |lc-enumiv| are used +for the nested |\enumerate| environment.) Below is a list of the counters +used in LaTeX's standard document classes to control numbering. + + |part| |paragraph| |figure| |enumi| |itemi| + |chapter| |subparagraph| |table| |enumii| |itemii| + |section| |page| |footnote| |enumiii| |itemiii| + |subsection| |equation| |mpfootnote| |enumiv| |itemiv| + |subsubsection| + + +\addtocounter{counter}{value} *\addtocounter* + Increments the {counter} by the amount specified by the + {value} argument. The {value} argument can be negative. + +\alph{counter} *\alph* *\Alph* +\Alph{counter} + This command causes the value of the counter to be printed in + alphabetic characters. |\alph| command uses lower case + alphabetic alphabetic characters, i.e., a, b, c... while the + |\Alph| command uses upper case alphabetic characters, i.e., + A, B, C.... + +\arabic{counter} *\arabic* + Causes the value of the {counter} to be printed in Arabic + numbers, i.e., 3. + +\fnsymbol{counter} *\fnsymbol* + Causes the value of the {counter} to be printed in a specific + sequence of nine symbols that can be used for numbering + footnotes. + Note: counter must have a value between 1 and 9 inclusive. + +\newcounter{foo}[counter] *\newcounter* + Defines a new counter named {foo}. The counter is initialized + to zero. The optional argument [counter] causes the counter + {foo} to be reset whenever the counter named in the optional + argument is incremented. + +\refstepcounter{counter} *\refstepcounter* + Command works like |\stepcounter|, except it also defines the + current |\ref| value to be the result of \thecounter. + +\roman{counter} *\roman* *\Roman* +\Roman{counter} + Causes the value of the {counter} to be printed in Roman + numerals. The |\roman| command uses lower case Roman numerals, + i.e., i, ii, iii..., while the |\Roman| command uses upper case + Roman numerals, i.e., I, II, III.... + +\stepcounter{counter} *\stepcounter* + Adds one to the {counter} and resets all subsidiary counters. + +\setcounter{counter}{value} *\setcounter* + Sets the value of the {counter} to that specified by the + {value} argument. + +\usecounter{counter} *\usecounter* + Command is used in the second argument of the |list| + environment to allow the {counter} specified to be used to + number the list items. + +\value{counter} *\value* + Produces the value of the {counter} named in the mandatory + argument. It can be used where LaTeX expects an integer or + number, such as the second argument of a |\setcounter| or + |\addtocounter| command, or in: > + \hspace{\value{foo}\parindent} +< It is useful for doing arithmetic with counters. + +============================================================================== +3. Cross References *latex-references* + +One reason for numbering things like figures and equations is to refer the +reader to them, as in "See Figure 3 for more details." + +|\label| Assign a symbolic name to a piece of text +|\pageref| Refer to a page number +|\ref| Refer to a section, figure or similar + + +\label{key} *\label* + Command appearing in ordinary text assigns to the {key} the + number of the current sectional unit; one appearing inside a + numbered environment assigns that number to the {key}. + + A {key} can consist of any sequence of letters, digits, or + punctuation characters. Upper and lowercase letters are + different. + + To avoid accidentally creating two labels with the same name, + it is common to use labels consisting of a prefix and a suffix + separated by a colon. The prefixes conventionally used are + * 'cha' for chapters + * 'sec' for lower-level sectioning commands + * 'fig' for figures + * 'tab' for tables + * 'eq' for equations + Thus, a label for a figure would look like: > + \label{fig:bandersnatch} + +\pageref{key} *\pageref* + Command produces the page number of the place in the text + where the corresponding |\label| command appears. ie. where + \label{key} appears. + +\ref{key} *\ref* + Command produces the number of the sectional unit, equation + number, ... of the corresponding |\label| command. + +============================================================================== +4. Definitions *latex-definitions* + +|\newcommand| Define a new command +|\newenvironment| Define a new environment +|\newtheorem| Define a new theorem-like environment +|\newfont| Define a new font name + + +\newcommand{cmd}[args]{definition} *\newcommand* *\renewcommand* +\newcommand{cmd}[args][default]{definition} +\renewcommand{cmd}[args]{definition} +\renewcommand{cmd}[args][default]{definition} + +These commands define (or redefine) a command. + +{cmd} A command name beginning with a |\\|. For |\newcommand| it must + not be already defined and must not begin with |\end|; for + |\renewcommand| it must already be defined. + +{args} An integer from 1 to 9 denoting the number of arguments of the + command being defined. The default is for the command to have + no arguments. + +{default} If this optional parameter is present, it means that the + command's first argument is optional. The default value of the + optional argument is default. + +{definition} The text to be substituted for every occurrence of {cmd}; a + parameter of the form #n in {cmd} is replaced by the text of + the nth argument when this substitution takes place. + + *\newenvironment* *\renewenvironment* +\newenvironment{nam}[args]{begdef}{enddef} +\newenvironment{nam}[args][default]{begdef}{enddef} +\renewenvironment{nam}[args]{begdef}{enddef} + +These commands define or redefine an environment. + +{nam} The name of the environment. For |\newenvironment| there must + be no currently defined environment by that name, and the + command \nam must be undefined. For |\renewenvironment| the + environment must already be defined. + +{args} An integer from 1 to 9 denoting the number of arguments of + the newly-defined environment. The default is no arguments. + +{default} If this is specified, the first argument is optional, and + default gives the default value for that argument. + +{begdef} The text substituted for every occurrence of \begin{nam}; a + parameter of the form #n in {cmd} is replaced by the text of + the nth argument when this substitution takes place. + +{enddef} The text substituted for every occurrence of \end{nam}. It + may not contain any argument parameters. + + +\newtheorem{envname}{caption}[within] *\newtheorem* +\newtheorem{envname}[numberedlike]{caption} + +This command defines a theorem-like environment. + +{envname} The name of the environment to be defined. A string of + letters. It must not be the name of an existing environment or + counter. + +{caption} The text printed at the beginning of the environment, right + before the number. This may simply say "Theorem", for example. + +{within} The name of an already defined counter, usually of a sectional + unit. Provides a means of resetting the new theorem counter + within the sectional unit. + +{numberedlike} The name of an already defined theorem-like environment. + +The |\newtheorem| command may have at most one optional argument. + + +\newfont{cmd}{fontname} *\newfont* + Defines the command name {cmd}, which must not be currently + defined, to be a declaration that selects the font named + {fontname} to be the current font. + +============================================================================== +5. Document Classes *latex-classes* + + +\documentclass[options]{class} *\documentclass* + +Valid LaTeX document classes include: + *article *article-class* + *report *report-class* + *letter *letter-class* + *book *book-class* + *slides *slides-class* + +All the standard classes (except slides) accept the following options for +selecting the typeface size (10 pt is default): + +10pt, 11pt, 12pt + +All classes accept these options for selecting the paper size (default is +letter): + +a4paper, a5paper, b5paper, letterpaper, legalpaper, executivepaper + +Miscellaneous options: + +landscape *landscape* + Selects landscape format. Default is portrait. + +titlepage, notitlepage *notitlepage* + Selects if there should be a separate title page. + +leqno *leqno* *rqno* + Equation number on left side of equations. Default is + right side. + +fleqn *fleqn* + Displayed formulas flush left. Default is centred. + +openbib *openbib* + Use "open" bibliography format. + +draft, final *draft* *final* + Mark/do not mark overfull boxes with a rule. Default is + final. + +These options are not available with the slides class: + +oneside, twoside *oneside* *twoside* + Selects one- or twosided layout. Default is oneside, + except for the book class. + +openright, openany *openright* *openany* + Determines if a chapter should start on a right-hand page. + Default is openright for book. + +onecolumn, twocolumn *onecolumn* *twocolumn* + One or two columns. Defaults to one column. + +The slides class offers the option clock for printing the time at the bottom +of each |\note|. + +If you specify more than one option, they must be separated by a comma. + +\usepackage[options]{pkg} *\usepackage* + Additional packages are loaded by this. If you + specify more than one package, they must be separated by a + comma. + +Any options given in the |\documentclass| command that are unknown by the +selected document class are passed on to the packages loaded with |\usepackage|. + +============================================================================== +6. Layout *latex-layout* + +Miscellaneous commands for controlling the general layout of the page. + +|\flushbottom| Make all text pages the same height. +|\onecolumn| Use one-column layout. +|\raggedbottom| Allow text pages of differing height. +|\twocolumn| Use two-column layout. + +\flushbottom *\flushbottom* + Makes all text pages the same height, adding extra vertical + space when necessary to fill out the page. This is the + standard if twocolumn mode is selected. + +\onecolumn *\onecolumn* + Starts a new page and produces single-column output. + +\raggedbottom *\raggedbottom* + Makes all pages the height of the text on that page. No extra + vertical space is added. + +\twocolumn[text] *\twocolumn* + Starts a new page and produces two-column output. If the + optional [text] argument is present, it is typeset in + one-column mode. + +============================================================================== +7. Environments *latex-environments* + + *\begin* *\end* +LaTeX provides a number of different paragraph-making environments. Each +environment begins and ends in the same manner: > + + \begin{environment-name} + . + . + . + \end{environment-name} +< +a. |array| Math arrays +b. |center| Centred lines +c. |description| Labelled lists +d. |enumerate| Numbered lists +e. |eqnarray| Sequences of aligned equations +f. |equation| Displayed equation +g. |figure| Floating figures +h. |flushleft| Flushed left lines +i. |flushright| Flushed right lines +j. |itemize| Bulleted lists +k. |letter| Letters +l. |list| Generic list environment +m. |minipage| Miniature page +n. |picture| Picture with text, arrows, lines and circles +o. |quotation| Indented environment with paragraph indentation +p. |quote-l| Indented environment with no paragraph indentation +q. |tabbing| Align text arbitrarily +r. |table| Floating tables +s. |tabular| Align text in columns +t. |thebibliography| Bibliography or reference list +u. |theorem| Theorems, lemmas, etc +v. |titlepage| For hand crafted title pages +x. |verbatim| Simulating typed input +y. |verse| For poetry and other things + +============================================================================== + a. array *array* +> + \begin{array}{col1col2...coln} + column 1 entry & column 2 entry ... & column n entry \\ + . + . + . + \end{array} + +Math arrays are produced with the |array| environment. It has a single mandatory +argument describing the number of columns and the alignment within them. Each +column, coln, is specified by a single letter that tells how items in that row +should be formatted. + * c -- for centred + * l -- for flush left + * r -- for flush right +Column entries must be separated by an |&|. Column entries may include other +LaTeX commands. Each row of the array must be terminated with the string |\\|. + +Note that the |array| environment can only be used in |math-mode|, so normally +it is used inside an |equation| environment. + +============================================================================== +b. center *center* +> + \begin{center} + Text on line 1 \\ + Text on line 2 \\ + . + . + . + \end{center} + +The |\center| environment allows you to create a paragraph consisting of lines +that are centred within the left and right margins on the current page. Each +line must be terminated with the string |\\|. + +\centering *\centering* + This declaration corresponds to the |center| environment. This + declaration can be used inside an environment such as + |quote-l| or in a |\parbox|. The text of a |figure| or |table| + can be centred on the page by putting a |\centering| command + at the beginning of the |figure| or |table| environment. + Unlike the |center| environment, the |\centering| command does + not start a new paragraph; it simply changes how LaTeX formats + paragraph units. To affect a paragraph unit's format, the + scope of the declaration must contain the blank line or |\end| + command (of an environment like |quote-l|) that ends the + paragraph unit. + +============================================================================== +c. description *description* +> + \begin{description} + \item [label] First item + \item [label] Second item + . + . + . + \end{description} + +The |description| environment is used to make labelled lists. The label is +bold face and flushed right. + +============================================================================== +d. enumerate *enumerate* +> + \begin{enumerate} + \item First item + \item Second item + . + . + . + \end{enumerate} + +The |enumerate| environment produces a numbered list. Enumerations can be +nested within one another, up to four levels deep. They can also be nested +within other paragraph-making environments. + +\item Each item of an enumerated list begins with an |\item| + command. There must be at least one |\item| command + within the environment. + +The |enumerate| environment uses the |\enumi| through |\enumiv| counters (see +section |latex-counters|). The type of numbering can be changed by redefining +\theenumi etc. + +============================================================================== +e. eqnarray *eqnarray* +> + \begin{eqnarray} + math formula 1 \\ + math formula 2 \\ + . + . + . + \end{eqnarray} + +The |eqnarray| environment is used to display a sequence of equations or +inequalities. It is very much like a three-column |array| environment, with +consecutive rows separated by |\\| and consecutive items within a row separated +by an |&|. + +\nonumber *\nonumber* + An equation number is placed on every line unless that + line has a |\nonumber| command. + +\lefteqn *\lefteqn* + The command |\lefteqn| is used for splitting long + formulas across lines. It typesets its argument in + display style flush left in a box of zero width. + +============================================================================== +f. equation *equation* +> + \begin{equation} + math formula + \end{equation} + +The |equation| environment centres your equation on the page and places the +equation number in the right margin. + +============================================================================== +g. figure *figure* +> + \begin{figure}[placement] + body of the figure + \caption{figure title} + \end{figure} + +Figures are objects that are not part of the normal text, and are usually +"floated" to a convenient place, like the top of a page. Figures will not be +split between two pages. + +The optional argument [placement] determines where LaTeX will try to place +your figure. There are four places where LaTeX can possibly put a float: + +h (Here) at the position in the text where the figure + environment appears. +t (Top) at the top of a text page. +b (Bottom) at the bottom of a text page. +p (Page of floats) on a separate float page, which is a page containing + no text, only floats. + +The standard |report-class| and |article-class| use the default placement +[tbp]. + +The body of the |figure| is made up of whatever text, LaTeX commands, etc. you +wish. + +The \caption command allows you to title your figure. + +============================================================================== +h. flushleft *flushleft* +> + \begin{flushleft} + Text on line 1 \\ + Text on line 2 \\ + . + . + . + \end{flushleft} + +The |flushleft| environment allows you to create a paragraph consisting of +lines that are flushed left, to the left-hand margin. Each line must be +terminated with the string |\\|. + +\raggedright *\raggedright* + This declaration corresponds to the |flushleft| environment. + This declaration can be used inside an environment such as + |quote-l| or in a |\parbox|. Unlike the |flushleft| + environment, the |\raggedright| command does not start a new + paragraph; it simply changes how LaTeX formats paragraph + units. To affect a paragraph unit's format, the scope of the + declaration must contain the blank line or |\end| command (of + an environment like |quote-l|) that ends the paragraph unit. + +============================================================================== +i. flushright *flushright* +> + \begin{flushright} + Text on line 1 \\ + Text on line 2 \\ + . + . + . + \end{flushright} + +The |flushright| environment allows you to create a paragraph consisting of +lines that are flushed right, to the right-hand margin. Each line must be +terminated with the string |\\|. + +\raggedleft *\raggedleft* + This declaration corresponds to the |flushright| environment. + This declaration can be used inside an environment such as + |quote-l| or in a |\parbox|. Unlike the |flushright| + environment, the |\raggedleft| command does not start a new + paragraph; it simply changes how LaTeX formats paragraph + units. To affect a paragraph unit's format, the scope of the + declaration must contain the blank line or |\end| command (of + an environment like |quote-l|) that ends the paragraph unit. + +============================================================================== +j. itemize *itemize* +> + \begin{itemize} + \item First item + \item Second item + . + . + . + \end{itemize} + +The |itemize| environment produces a "bulleted" list. Itemizations can be +nested within one another, up to four levels deep. They can also be nested +within other paragraph-making environments. + +\item *\item* + Each item of an itemized list begins with an |\item| command. + There must be at least one |\item| command within the + environment. + +The itemize environment uses the |\itemi| through |\itemiv| counters (see +section |latex-counters|). The type of numbering can be changed by redefining +\theitemi etc. + +============================================================================== +k. letter *\letter* + +This environment is used for creating letters. See section |latex-letters|. + +============================================================================== +l. list *list* + +The |list| environment is a generic environment which is used for defining many +of the more specific environments. It is seldom used in documents, but often +in macros. +> + \begin{list}{label}{spacing} + \item First item + \item Second item + . + . + . + \end{list} + +'label' The {label} argument specifies how items should be labelled. + This argument is a piece of text that is inserted in a box to + form the {label}. This argument can and usually does contain + other LaTeX commands. + +'spacing' The {spacing} argument contains commands to change the spacing + parameters for the |list|. This argument will most often be + null, i.e., {}. This will select all default spacing which + should suffice for most cases. + +============================================================================== +m. minipage *minipage* +> + \begin{minipage}[position]{width} + text + \end{minipage} + +The |minipage| environment is similar to a |\parbox| command. It takes the +same optional [position] argument and mandatory {width} argument. You may use +other paragraph-making environments inside a |minipage|. Footnotes in a +minipage environment are handled in a way that is particularly useful for +putting footnotes in figures or tables. A |\footnote| or |\footnotetext| +command puts the footnote at the bottom of the minipage instead of at the +bottom of the page, and it uses the |\mpfootnote| counter instead of the +ordinary footnote counter. See sections |latex-counters| and +|latex-footnotes|. + +NOTE: Don't put one |minipage| inside another if you are using footnotes; they +may wind up at the bottom of the wrong minipage. + +============================================================================== +n. picture *picture* +> + size position + \begin{picture}(width,height)(x offset,y offset) + . + . + picture commands + . + . + \end{picture} + +The |picture| environment allows you to create just about any kind of picture +you want containing text, lines, arrows and circles. You tell LaTeX where to +put things in the picture by specifying their coordinates. A coordinate is a +number that may have a decimal point and a minus sign -- a number like 5, 2.3 +or -3.1416. A coordinate specifies a length in multiples of the unit length +|\unitlength|, so if |\unitlength| has been set to 1cm, then the coordinate +2.54 specifies a length of 2.54 centimetres. You can change the value of +|\unitlength| anywhere you want, using the |\setlength| command, but strange +things will happen if you try changing it inside the |picture| environment. + +A position is a pair of coordinates, such as (2.4,-5), specifying the point +with x-coordinate 2.4 and y-coordinate -5. Coordinates are specified in the +usual way with respect to an origin, which is normally at the lower-left +corner of the |picture|. +Note that when a position appears as an argument, it is not enclosed in +braces; the parentheses serve to delimit the argument. + +The |picture| environment has one mandatory argument, which is a position. It +specifies the size of the picture. The environment produces a rectangular box +with width and height determined by this argument's x- and y-coordinates. + +The |picture| environment also has an optional position argument, following +the size argument, that can change the origin. (Unlike ordinary optional +arguments, this argument is not contained in square brackets.) The optional +argument gives the coordinates of the point at the lower-left corner of the +picture (thereby determining the origin). For example, if |\unitlength| has +been set to 1mm, the command: > + \begin{picture}(100,200)(10,20) +> +produces a picture of width 100 millimetres and height 200 millimetres, whose +lower-left corner is the point (10,20) and whose upper-right corner is +therefore the point (110,220). When you first draw a picture, you will omit +the optional argument, leaving the origin at the lower-left corner. If you +then want to modify your picture by shifting everything, you just add the +appropriate optional argument. + +The environment's mandatory argument determines the nominal size of the +picture. This need bear no relation to how large the picture really is; LaTeX +will happily allow you to put things outside the picture, or even off the +page. The picture's nominal size is used by LaTeX in determining how much room +to leave for it. + +Everything that appears in a picture is drawn by the |\put| command. The +command: > + \put (11.3,-.3){...} + +puts the object specified by ... in the picture, with its +reference point at coordinates (11.3,-.3). The reference points for various +objects will be described below. + +The |\put| creates an LR box (|lrbox|). You can put anything in the text +argument of the |\put| that you'd put into the argument of an |\mbox| and +related commands. When you do this, the reference point will be the lower left +corner of the box. + +Picture commands: +|\circle| Draw a circle +|\dashbox| Draw a dashed box +|\frame| Draw a frame around an object +|\framebox(picture)| Draw a box with a frame around it +|\line| Draw a straight line +|\linethickness| Set the line thickness +|\makebox(picture)| Draw a box of the specified size +|\multiput| Draw multiple instances of an object +|\oval| Draw an ellipse +|\put| Place an object at a specified place +|\shortstack| Make a pile of objects +|\vector| Draw a line with an arrow + +\circle[*]{diameter} *\circle* + Command produces a circle with a {diameter} as close to the + specified one as possible. If the *-form of the command is + used, LaTeX draws a solid circle. + Note: only circles up to 40 pt can be drawn. + + +\dashbox{dashlength}(width,height){...} *\dashbox* + Draws a box with a dashed line. The |\dashbox| has an extra + argument which specifies the width of each dash. A dashed box + looks best when the width and height are multiples of the + {dashlength}. + +\frame{...} *\frame* + Puts a rectangular frame around the object specified in the + argument. The reference point is the bottom left corner of the + frame. No extra space is put between the frame and the object. + +\framebox(width,height)[position]{...} *\picture-framebox* + The |\framebox| command is exactly the same as the + |picture-makebox| command, except that it puts a frame around + the outside of the box that it creates. The |\framebox| + command produces a rule of thickness |\fboxrule|, and leaves a + space |\fboxsep| between the rule and the contents of the box. + +\line(x slope,y slope){length} *\line* + Draws a line of the specified length and slope. + Note: LaTeX can only draw lines with slope = x/y, where x and + y have integer values from -6 through 6. + +\linethickness{dimension} *\linethickness* + Declares the thickness of horizontal and vertical lines in a + |picture| environment to be dimension, which must be a + positive length. It does not affect the thickness of slanted + lines (|\line|) and circles (|circle|), or the quarter circles + drawn by |\oval| to form the corners of an oval. + +\makebox(width,height)[position]{...} *picture-makebox* + The makebox command for the |picture| environment is similar + to the normal |\makebox| command except that you must specify + a width and height in multiples of |\unitlength|. + The optional argument, [position], specifies the quadrant that + your text appears in. You may select up to two of the + following: + t - Moves the item to the top of the rectangle + b - Moves the item to the bottom + l - Moves the item to the left + r - Moves the item to the right + + *\multiput* +\multiput(x coord,y coord)(delta x,delta y){no of copies}{object} + This command can be used when you are putting the same + object in a regular pattern across a picture. + +\oval(width,height)[portion] *\oval* + Produces a rectangle with rounded corners. The optional + argument, [portion], allows you to select part of the oval. + t - top portion + b - bottom portion + r - right portion + l - left portion + Note: the "corners" of the oval are made with quarter circles + with a maximum radius of 20 pt, so large "ovals" will look + more like boxes with rounded corners. + +\put(x coord,y coord){ ... } *\put* + Places the item specified by the mandatory argument at the + given coordinates. + +\shortstack[position]{... \\ ... \\ ...} *\shortstack* + The |\shortstack| command produces a stack of objects. + The valid positions are: + r - right of the stack + l - left of the stack + c - centre of the stack (default) + +\vector(x slope,y slope){length} *\vector* + Draws a line with an arrow of the specified length and slope. + The x and y values must lie between -4 and +4, inclusive. + +============================================================================== +o. quotation *quotation* + > + \begin{quotation} + text + \end{quotation} + +The margins of the |quotation| environment are indented on the left and the +right. The text is justified at both margins and there is paragraph +indentation. Leaving a blank line between text produces a new paragraph. + +============================================================================== +p. quote *quote-l* +> + \begin{quote} + text + \end{quote} + +The margins of the |quote-l| environment are indented on the left and the right. +The text is justified at both margins. Leaving a blank line between text +produces a new paragraph. + +============================================================================== +q. tabbing *tabbing* +> + \begin{tabbing} + text \= more text \= still more text \= last text \\ + second row \> \> more \\ + . + . + . + \end{tabbing} + +The |tabbing| environment provides a way to align text in columns. It works by +setting tab stops and tabbing to them much the way you do with an ordinary +typewriter. + +It is best suited for cases where the width of each column is constant and +known in advance. + +This environment can be broken across pages, unlike the |tabular| environment. +The following commands can be used inside a tabbing environment: + + *tab=* +\= Sets a tab stop at the current position. + + *tab>* +\> Advances to the next tab stop. + + *tab<* +\< This command allows you to put something to the left of the + local margin without changing the margin. Can only be used at + the start of the line. + + *tab+* +\+ Moves the left margin of the next and all the following + commands one tab stop to the right. + + *tab-* +\- Moves the left margin of the next and all the following + commands one tab stop to the left. + + *tab'* +\' Moves everything that you have typed so far in the current + column, i.e. everything from the most recent \> (|tab>|), \< + (|tab<|), \' (|tab'|), |\\|, or |\kill| command, to the right + of the previous column, flush against the current column's tab + stop. + + *tab`* +\` Allows you to put text flush right against any tab stop, + including tab stop 0. However, it can't move text to the right + of the last column because there's no tab stop there. The \` + (|tab`|) command moves all the text that follows it, up to the + |\\| or \end{tabbing} command that ends the line, to the right + margin of the tabbing environment. There must be no \> + (|tab>|) or \' (|tab'|) command between the \` (|tab`|) and + the command that ends the line. + + *\kill* +\kill Sets tab stops without producing text. Works just like |\\| + except that it throws away the current line instead of + producing output for it. The effect of any \= (|tab=|), \+ + (|tab+|) or \- (|tab-|) commands in that line remain in + effect. + + *\pushtabs* +\pushtabs Saves all current tab stop positions. Useful for temporarily + changing tab stop positions in the middle of a tabbing + environment. Also restores the tab stop positions saved by the + last |\pushtabs|. + + *taba* +\a In a tabbing environment, the commands \= (|tab=|), \' + (|tab'|) and \` (|tab`|) do not produce accents as normal. + Instead, the commands \a=, \a' and \a` are used. + +This example typesets a Pascal function in a traditional format: +> + \begin{tabbing} + function \= fact(n : integer) : integer;\\ + \> begin \= \+ \\ + \> if \= n $>$ 1 then \+ \\ + fact := n * fact(n-1) \- \\ + else \+ \\ + fact := 1; \-\- \\ + end;\\ + \end{tabbing} + +============================================================================== +r. table *\table* +> + \begin{table}[placement] + body of the table + \caption{table title} + \end{table} + +Tables are objects that are not part of the normal text, and are usually +"floated" to a convenient place, like the top of a page. Tables will not be +split between two pages. + +The optional argument [placement] determines where LaTeX will try to place +your table. There are four places where LaTeX can possibly put a float: + + h (Here) at the position in the text where the table + environment appears. + t (Top) at the top of a text page. + b (Bottom) at the bottom of a text page. + p (Page of floats) on a separate float page, which is a page + containing no text, only floats. + +The standard |report-class| and |article-class| use the default placement [tbp]. + +The body of the table is made up of whatever text, LaTeX commands, etc., you +wish. + +The \caption command allows you to title your table. + +============================================================================== +s. tabular *tabular* +> + \begin{tabular}[pos]{cols} + column 1 entry & column 2 entry ... & column n entry \\ + . + . + . + \end{tabular} + +or +> + \begin{tabular*}{width}[pos]{cols} + column 1 entry & column 2 entry ... & column n entry \\ + . + . + . + \end{tabular*} + +These environments produce a box consisting of a sequence of rows of items, +aligned vertically in columns. The mandatory and optional arguments consist +of: + +{width} Specifies the width of the tabular* environment. There must be + rubber space between columns that can stretch to fill out the + specified width. + +[pos] Specifies the vertical position; default is alignment on the + centre of the environment. + t - align on top row + b - align on bottom row + +{cols} Specifies the column formatting. It consists of a sequence of + the following specifiers, corresponding to the sequence of + columns and intercolumn material. + l - A column of left-aligned items. + + r - A column of right-aligned items. + + c - A column of centred items. + + | - A vertical line the full height and depth of the + environment. + + @{text} - This inserts text in every row. An @-expression + suppresses the intercolumn space normally inserted + between columns; any desired space between the + inserted text and the adjacent items must be included + in text. An \extracolsep{wd} command in an + @-expression causes an extra space of width {wd} to + appear to the left of all subsequent columns, until + countermanded by another |\extracolsep| command. Unlike + ordinary intercolumn space, this extra space is not + suppressed by an @-expression. An |\extracolsep| + command can be used only in an @-expression in the + cols argument. + + p{wd} - Produces a column with each item typeset in a |\parbox| + of width {wd}, as if it were the argument of a + \parbox[t]{wd} command. However, a |\\| may not appear + in the item, except in the following situations: + 1. inside an environment like |minipage|, |array|, or + |tabular|. + 2. inside an explicit |\parbox|. + 3. in the scope of a |\centering|, |\raggedright|, or + |\raggedleft| declaration. The latter declarations must + appear inside braces or an environment when used in a + p-column element. + + {num}{cols} - Equivalent to num copies of cols, where num is any positive + integer and cols is any list of column-specifiers, + which may contain another -expression. + +These commands can be used inside a tabular environment: + +|\cline| Draw a horizontal line spanning some columns. +|\hline| Draw a * horizontal line spanning all columns. +|\multicolumn| Make an item spanning * several columns. +|\vline| Draw a vertical line. + + +\cline{i-j} *\cline* + The |\cline| command draws horizontal lines across the columns + specified, beginning in column i and ending in column j, + which are identified in the mandatory argument. + +\hline *\hline* + The |\hline| command will draw a horizontal line the width of + the table. It's most commonly used to draw a line at the top, + bottom, and between the rows of the table. + +\multicolumn{cols}{pos}{text} *\multicolumn* + The |\multicolumn| is used to make an entry that spans several + columns. The first mandatory argument, {cols}, specifies the + number of columns to span. The second mandatory argument, + {pos}, specifies the formatting of the entry: + c - centered + l - flushleft + r - flushright. + The third mandatory argument, {text}, specifies what text is + to make up the entry. + +\vline *\vline* + The |\vline| command will draw a vertical line extending the + full height and depth of its row. An |\hfill| command can be + used to move the line to the edge of the column. It can also + be used in an @-expression. + +============================================================================== +t. thebibliography *\thebibliography* +> + \begin{thebibliography}{widestlabel} + \bibitem[label]{cite_key} + . + . + . + \end{thebibliography} + +The |\thebibliography| environment produces a bibliography or reference list. + +In the |article-class|, this reference list is labelled "References"; in the +|report-class|, it is labelled "Bibliography". + +{widestlabel} Text that, when printed, is approximately as wide as the + widest item label produces by the |\bibitem| commands. + +|\bibitem| Specify a bibliography item. +|\cite| Refer to a bibliography item. +|\nocite| Include an item in the bibliography. +|BibTeX| Automatic generation of bibliographies. + +\bibitem *\bibitem* +\bibitem[label]{citekey} + The |\bibitem| command generates an entry labelled by [label]. + If the [label] argument is missing, a number is generated as + the label, using the |\enumi| counter. The {citekey} is any + sequence of letters, numbers, and punctuation symbols not + containing a comma. This command writes an entry on the `.aux' + file containing {citekey} and the item's label. When this + `.aux' file is read by the \begin{document} command, the + item's label is associated with {citekey}, causing the + reference to {citekey} by a |\cite| command to produce the + associated label. + +\cite *\cite* +\cite[text]{keylist} + The {keylist} argument is a list of citation keys. This + command generates an in-text citation to the references + associated with the keys in {keylist} by entries on the `.aux' + file read by the \begin{document} command. + The optional text argument will appear after the + citation, i.e.: > + \cite[p.2]{knuth} +< might produce `[Knuth, p. 2]'. + +\nocite *\nocite* +\nocite{keylist} + The |\nocite| command produces no text, but writes + {keylist}, which is a list of one or more citation + keys, on the `.aux' file. + +BibTeX *BibTeX* *bibtex* + *\bibliographystyle* +If you use the BibTeX program by Oren Patashnik (highly recommended if you +need a bibliography of more than a couple of titles) to maintain your +bibliography, you don't use the |thebibliography| environment. Instead, you +include the lines: +> + \bibliographystyle{style} + \bibliography{bibfile} + +where {style} refers to a file style.bst, which defines how your citations +will look. The standard styles distributed with BibTeX are: + +{alpha} Sorted alphabetically. Labels are formed from name of author and year + of publication. +{plain} Sorted alphabetically. Labels are numeric. +{unsrt} Like plain, but entries are in order of citation. +{abbrv} Like plain, but more compact labels. + +In addition, numerous other BibTeX style files exist tailored to the demands +of various publications. + + *\bibliography* +The argument to |\bibliography| refers to the file bibfile.bib, which should +contain your database in BibTeX format. Only the entries referred to via +|\cite| and |\nocite| will be listed in the bibliography. + +============================================================================== +u. theorem *theorem* +> + \begin{theorem} + theorem text + \end{theorem} + +The |theorem| environment produces "Theorem x" in boldface followed by your +theorem text. + +============================================================================== +v. titlepage *titlepage* +> + \begin{titlepage} + text + \end{titlepage} + +The |titlepage| environment creates a title page, i.e. a page with no printed +page number or heading. It also causes the following page to be numbered page +one. Formatting the title page is left to you. The |\today| command comes in +handy for title pages. + +Note that you can use the |\maketitle| to produce a standard title page. + +============================================================================== +x. verbatim *verbatim* +> + \begin{verbatim} + text + \end{verbatim} + +The |verbatim| environment is a paragraph-making environment that gets LaTeX +to print exactly what you type in. It turns LaTeX into a typewriter with +carriage returns and blanks having the same effect that they would on a +typewriter. + +\verb *\verb* +\verb char literal_text char +\verb*char literal_text char + Typesets literal_text exactly as typed, including + special characters and spaces, using a typewriter |\tt| + type style. There may be no space between |\verb| or + |\verb|* and char (space is shown here only for + clarity). The *-form differs only in that spaces are + printed as `\verb*| |\'. + +============================================================================== +y. verse *verse* +> + \begin{verse} + text + \end{verse} + +The |verse| environment is designed for poetry, though you may find other uses +for it. + +The margins are indented on the left and the right. Separate the lines of each +stanza with |\\|, and use one or more blank lines to separate the stanzas. + +============================================================================== +8. Footnotes *latex-footnotes* + +Footnotes can be produced in one of two ways. They can be produced with one +command, the |\footnote| command. They can also be produced with two commands, +the |\footnotemark| and the |\footnotetext| commands. See the specific command for +information on why you would use one over the other. + +|\footnote| Insert a footnote +|\footnotemark| Insert footnote mark only +|\footnotetext| Insert footnote text only + +\footnote[number]{text} *\footnote* + Command places the numbered footnote text at the bottom of the + current page. The optional argument, number, is used to change + the default footnote number. This command can only be used in + outer paragraph mode; i.e., you cannot use it in sectioning + commands like |\chapter|, in |\figure|, |\table| or in a + |\tabular| environment. + +\footnotemark *\footnotemark* + Command puts the footnote number in the text. This command can + be used in inner paragraph mode. The text of the footnote is + supplied by the |\footnotetext| command. + This command can be used to produce several consecutive + footnote markers referring to the same footnote by using +> + \footnotemark[\value{footnote}] +< + after the first |\footnote| command. + +\footnotetext[number]{text} *\footnotetext* + Command produces the text to be placed at the bottom of the + page. This command can come anywhere after the |\footnotemark| + command. The |\footnotetext| command must appear in outer + paragraph mode. The optional argument, number, is used to + change the default footnote number. + +============================================================================== +9. Lengths *latex-lengths* + +A length is a measure of distance. Many LaTeX commands take a length as an +argument. + +|\newlength| Define a new length. +|\setlength| Set the value of a length. +|\addtolength| Add a quantity to a length. +|\settodepth| Set a length to the depth of something. +|\settoheight| Set a length to the height of something. +|\settowidth| Set a length to the width of something. +|pre-lengths| Lengths that are, like, predefined. + +\newlength{\gnat} *\newlength* + The |\newlength| command defines the mandatory argument, \gnat, + as a length command with a value of 0in. An error occurs if a + \gnat command already exists. + +\setlength{\gnat}{length} *\setlength* + The |\setlength| command is used to set the value of a \gnat + command. The {length} argument can be expressed in any terms + of length LaTeX understands, i.e., inches (in), millimetres + (mm), points (pt), etc. + +\addtolength{\gnat}{length} *\addtolength* + The |\addtolength| command increments a \gnat by the amount + specified in the {length} argument. It can be a negative + amount. + +\settodepth{\gnat}{text} *\settodepth* + The |\settodepth| command sets the value of a \gnat command + equal to the depth of the {text} argument. + +\settoheight{\gnat}{text} *\settoheight* + The |\settoheight| command sets the value of a \gnat command + equal to the height of the {text} argument. + +\settowidth{\gnat}{text} *\settowidth* + The |\settowidth| command sets the value of a \gnat command + equal to the width of the {text} argument. + +Predefined lengths *pre-lengths* + +\width *\width* +\height *\height* +\depth *\depth* +\totalheight *\totalheight* + These length parameters can be used in the arguments of the + box-making commands See section Spaces & Boxes. They specify + the natural width etc. of the text in the box. + \totalheight equals \height + \depth. + To make a box with the text stretched to double the natural + size, e.g., say: > + \makebox[2\width]{Get a stretcher} + +============================================================================== +10. Letters *latex-letters* + +You can use LaTeX to typeset letters, both personal and business. The letter +document class is designed to make a number of letters at once, although you +can make just one if you so desire. + +Your `.tex' source file has the same minimum commands as the other document +classes, i.e., you must have the following commands as a minimum: > + \documentclass{letter} + \begin{document} + ... + letters + ... + \end{document} + +Each letter is a letter environment, whose argument is the name and address of +the recipient. For example, you might have: > + \begin{letter} + {Mr. Joe Smith\\ + 2345 Princess St. \\ + Edinburgh, EH1 1AA} + ... + \end{letter} + +The letter itself begins with the |\opening| command. The text of the letter +follows. It is typed as ordinary LaTeX input. Commands that make no sense in +a letter, like |\chapter|, do not work. The letter closes with a |\closing| +command. + +After the closing, you can have additional material. The |\cc| command produces +the usual "cc: ...". There's also a similar |\encl| command for a list of +enclosures. With both these commands, use|\\| to separate the items. + +These commands are used with the letter class: +|\address| Your return address. +|\cc| Cc list. closing Saying goodbye. +|\encl| List of enclosed material. +|\location| Your organisation's address. +|\makelabels| Making address labels. +|\name| Your name, for the return address. +|\opening| Saying hello. +|\ps| Adding a postscript. +|\signature| Your signature. +|\startbreaks| Allow page breaks. +|\stopbreaks| Disallow page breaks. +|\telephone| Your phone number. + +\address{Return address} *\address* + The return address, as it should appear on the letter and the + envelope. Separate lines of the address should be separated + by |\\| commands. If you do not make an |\address| declaration, + then the letter will be formatted for copying onto your + organisation's standard letterhead. (See section Overview of + LaTeX and Local Guide, for details on your local + implementation). If you give an |\address| declaration, then + the letter will be formatted as a personal letter. + +\cc{Kate Schechter\\Rob McKenna} *\cc* + Generate a list of other persons the letter was sent to. Each + name is printed on a separate line. + +\closing{text} *\closing* + The letter closes with a |\closing| command, i.e., > + \closing{Best Regards,} \encl{CV\\Certificates} +< Generate a list of enclosed material. + +\location{address} *\location* + This modifies your organisation's standard address. This only + appears if the firstpage pagestyle is selected. + +\makelabels{number} *\makelabels* + If you issue this command in the preamble, LaTeX will create a + sheet of address labels. This sheet will be output before the + letters. + +\name{June Davenport} *\name* + Your name, used for printing on the envelope together with the + return address. + +\opening{text} *\opening* + The letter begins with the |\opening| command. The mandatory + argument, text, is whatever text you wish to start your + letter, i.e., > + \opening{Dear Joe,} + +\ps *\ps* + Use this command before a postscript. + +\signature{Harvey Swick} *\signature* + Your name, as it should appear at the end of the letter + underneath the space for your signature. Items that should go + on separate lines should be separated by |\\| commands. + +\startbreaks *\startbreaks* + Used after a |\stopbreaks| command to allow page breaks again. + +\stopbreaks *\stopbreaks* + Inhibit page breaks until a |\startbreaks| command occurs. + +\telephone{number} *\telephone* + This is your telephone number. This only appears if the + firstpage pagestyle is selected. + +============================================================================== +11. Line & Page Breaking *latex-breaking* + +The first thing LaTeX does when processing ordinary text is to translate your +input file into a string of glyphs and spaces. To produce a printed document, +this string must be broken into lines, and these lines must be broken into +pages. In some environments, you do the line breaking yourself with the |\\| +command, but LaTeX usually does it for you. + +|\\| Start a new line +|hyph-| Insert explicit hyphenation +|\cleardoublepage| Start a new right-hand page +|\clearpage| Start a new page +|\enlargethispage| Enlarge the current page a bit +|\fussy| Be fussy about line breaking +|\hyphenation| Tell LaTeX how to hyphenate a word +|\linebreak| Break the line +|\newline| Break the line prematurely +|\newpage| Start a new page +|\nolinebreak| Don't break the current line +|\nopagebreak| Don't make a page break here +|\pagebreak| Please make a page break here +|\sloppy| Be sloppy about line breaking + +\\[*][extraspace] *\\* *\\\\* + The |\\| command tells LaTeX to start a new line. It has an + optional argument, [extraspace], that specifies how much extra + vertical space is to be inserted before the next line. This + can be a negative amount. + The \\* command is the same as the ordinary |\\| command + except that it tells LaTeX not to start a new page after the + line. + +\- *hyph-* + The \- command tells LaTeX that it may hyphenate the word at + that point. LaTeX is very good at hyphenating, and it will + usually find all correct hyphenation points. The \- command is + used for the exceptional cases. + Note: when you insert \- commands in a word, the word will + only be hyphenated at those points and not at any of the + hyphenation points that LaTeX might otherwise have chosen. + +\cleardoublepage *\cleardoublepage* + The |\cleardoublepage| command ends the current page and causes + all figures and tables that have so far appeared in the input + to be printed. In a two-sided printing style (|twoside|), it + also makes the next page a right-hand (odd-numbered) page, + producing a blank page if necessary. + +\clearpage *\clearpage* + The |\clearpage| command ends the current page and causes all + figures and tables that have so far appeared in the input to + be printed. + +\enlargethispage{size} *\enlargethispage* +\enlargethispage*{size} + Enlarge the textheight for the current page by the + specified amount; e.g.: > + + \enlargethispage{\baselineskip} +< + will allow one additional line. The starred form + tries to squeeze the material together on the page as + much as possible. This is normally used together with + an explicit |\pagebreak|. + +\fussy *\fussy* + This declaration (which is the default) makes TeX more fussy + about line breaking. This can avoids too much space between + words, but may produce overfull boxes. This command cancels + the effect of a previous |\sloppy| command. + +\hyphenation{words} *\hyphenation* + The |\hyphenation| command declares allowed hyphenation points, + where words is a list of words, separated by spaces, in which + each hyphenation point is indicated by a - character. + +\linebreak[number] *\linebreak* + The |\linebreak| command tells LaTeX to break the current line + at the point of the command. With the optional argument, + number, you can convert the |\linebreak| command from a demand + to a request. The [number] must be a number from 0 to 4. The + higher the number, the more insistent the request is. The + |\linebreak| command causes LaTeX to stretch the line so it + extends to the right margin. + +\newline *\newline* + The |\newline| command breaks the line right where it is. It + can only be used in paragraph mode. + +\newpage *\newpage* + The |\newpage| command ends the current page. + +\nolinebreak[number] *\nolinebreak* + The |\nolinebreak| command prevents LaTeX from breaking the + current line at the point of the command. With the optional + argument, [number], you can convert the |\nolinebreak| command + from a demand to a request. The [number] must be a number from 0 + to 4. The higher the number, the more insistent the request + is. + +\nopagebreak[number] *\nopagebreak* + The |\nopagebreak| command prevents LaTeX from breaking the + current page at the point of the command. With the optional + argument, [number], you can convert the |\nopagebreak| command + from a demand to a request. The [number] must be a number from + 0 to 4. The higher the number, the more insistent the request + is. + +\pagebreak[number] *\pagebreak* + The |\pagebreak| command tells LaTeX to break the current page + at the point of the command. With the optional argument, + [number], you can convert the |\pagebreak| command from a + demand to a request. The [number] must be a number from 0 to + 4. The higher the number, the more insistent the request is. + +\sloppy *\sloppy* + This declaration makes TeX less fussy about line breaking. + This can prevent overfull boxes, but may leave too much space + between words. + Lasts until a |\fussy| command is issued. + +============================================================================== +12. Making Paragraphs *latex-paragraphs* + +A paragraph is ended by one or more completely blank lines -- lines not +containing even a |\%|. A blank line should not appear where a new paragraph +cannot be started, such as in math mode or in the argument of a sectioning +command. + +|\indent| Indent this paragraph. +|\noindent| Do not indent this paragraph. +|\par| Another way of writing a blank line. + +\indent *\indent* + This produces a horizontal space whose width equals the width + of the paragraph indentation. It is used to add paragraph + indentation where it would otherwise be suppressed. + +\noindent *\noindent* + When used at the beginning of the paragraph, it suppresses the + paragraph indentation. It has no effect when used in the + middle of a paragraph. + +\par *\par* + Equivalent to a blank line; often used to make command or + environment definitions easier to read. + +============================================================================== +13. Margin Notes *latex-margin-notes* + +\marginpar[left]{right} *\marginpar* + This command creates a note in the margin. The first line will + be at the same height as the line in the text where the + |\marginpar| occurs. + + When you only specify the mandatory argument {right}, the text + will be placed: + * in the right margin for one-sided layout + * in the outside margin for two-sided layout (|twoside|) + * in the nearest margin for two-column layout (|twocolumn|) + +\reversemarginpar *\reversemarginpar* + By issuing the command |\reversemarginpar|, you can force the + marginal notes to go into the opposite (inside) margin. + +When you specify both arguments, left is used for the left margin, and right +is used for the right margin. + +The first word will normally not be hyphenated; you can enable hyphenation by +prefixing the first word with a \hspace{0pt} command (|hspace|). + +============================================================================== +14. Math Formulae *latex-math* + *displaymath* +There are three environments (|latex-environments|) that put LaTeX in math +mode: +|math| For Formulae that appear right in the text. +|displaymath| For Formulae that appear on their own line. +|equation| The same as the displaymath environment except that it adds an + equation number in the right margin. + +The |math| environment can be used in both paragraph and LR mode, but the +|displaymath| and |equation| environments can be used only in paragraph mode. The +|math| and |displaymath| environments are used so often that they have the +following short forms: + \(...\) instead of \begin{math}...\end{math} + \[...\] instead of \begin{displaymath}...\end{displaymath} + +In fact, the math environment is so common that it has an even shorter form: + $ ... $ instead of \(...\) + +|sub-sup| Also known as exponent or index. +|math-symbols| Various mathematical squiggles. +|math-spacing| Thick, medium, thin and negative spaces. +|math-misc| Stuff that doesn't fit anywhere else. + +========== +Subscripts & Superscripts *sub-sup* + *subscripts* *superscripts* + +To get an expression exp to appear as a subscript, you just type _{exp}. To +get exp to appear as a superscript, you type ^{exp}. LaTeX handles +superscripted superscripts and all of that stuff in the natural way. It even +does the right thing when something has both a subscript and a superscript. + +========== +Math Symbols *math-symbols* + +LaTeX provides almost any mathematical symbol you're likely to need. The +commands for generating them can be used only in math mode. For example, if +you include > + $\pi$ +in your source, you will get the symbol in your output. + +========== +Spacing in Math Mode *math-spacing* + +In a math environment, LaTeX ignores the spaces you type and puts in the +spacing that it thinks is best. LaTeX formats mathematics the way it's done in +mathematics texts. If you want different spacing, LaTeX provides the following +four commands for use in math mode: + \; - a thick space *math;* + \: - a medium space *math:* + \, - a thin space *math,* + \! - a negative thin space *matn!* + +========== +Math Miscellany *math-misc* + +\cdots *\cdots* + Produces a horizontal ellipsis where the dots are raised to + the centre of the line. +\ddots *\ddots* + Produces a diagonal ellipsis. +\frac{num}{den} *\frac* + Produces the fraction num divided by den. +\ldots *\ldots* + Produces an ellipsis. This command works in any mode, not just + math mode. +\overbrace{text} *\overbrace* + Generates a brace over text. +\overline{text} *\overline* + Causes the argument text to be overlined. +\sqrt[root]{arg} *\sqrt* + Produces the square root of its argument. The optional + argument, [root], determines what root to produce, i.e., the + cube root of x+y would be typed as: > + $\sqrt[3]{x+y}$. +\underbrace{text} *\underbrace* + Generates text with a brace underneath. +\underline{text} *\underline* + Causes the argument text to be underlined. This command can + also be used in paragraph and LR mode. +\vdots *\vdots* + Produces a vertical ellipsis. + +============================================================================== +15. Modes *latex-modes* + +When LaTeX is processing your input text, it is always in one of three modes: + Paragraph mode *paragraph-mode* + Math mode *math-mode* + Left-to-right mode, called LR mode for short. *lr-mode* + +LaTeX changes mode only when it goes up or down a staircase to a different +level, though not all level changes produce mode changes. Mode changes occur +only when entering or leaving an environment, or when LaTeX is processing the +argument of certain text-producing commands. + +|paragraph-mode| is the most common; it's the one LaTeX is in when processing +ordinary text. In that mode, LaTeX breaks your text into lines and breaks the +lines into pages. LaTeX is in |math-mode| when it's generating a mathematical +formula. In |lr-mode|, as in |paragraph-mode|, LaTeX considers the output that +it produces to be a string of words with spaces between them. However, unlike +|paragraph-mode|, LaTeX keeps going from left to right; it never starts a new +line in |lr-mode|. Even if you put a hundred words into an |\mbox|, LaTeX would +keep typesetting them from left to right inside a single box, and then +complain because the resulting box was too wide to fit on the line. + +LaTeX is in |lr-mode| when it starts making a box with an |\mbox| command. You +can get it to enter a different mode inside the box - for example, you can +make it enter |math-mode| to put a formula in the box. There are also several +text-producing commands and environments for making a box that put LaTeX in +|paragraph-mode|. The box make by one of these commands or environments will be +called a |\parbox|. When LaTeX is in |paragraph-mode| while making a box, it is +said to be in "inner paragraph mode". Its normal |paragraph-mode|, which it +starts out in, is called "outer paragraph mode". + +============================================================================== +16. Page Styles *latex-page-styles* + +The |\documentclass| command determines the size and position of the page's head +and foot. The page style determines what goes in them. + +|\maketitle| Generate a title page. +|\pagenumbering| Set the style used for page numbers. +|\pagestyle| Change the headings/footings style. +|\thispagestyle| Change the headings/footings style for this page. + +\maketitle *\maketitle* + The |\maketitle| command generates a title on a separate title + page - except in the |\article| class, where the title normally + goes at the top of the first page. Information used to + produce the title is obtained from the following declarations: + + |\author| Who wrote this stuff? + |\date| The date the document was created. + |\thanks| A special form of footnote. + |\title| How to set the document title. + + \author{names} *\author* *\and* + The |\author| command declares the author(s), where + names is a list of authors separated by \and commands. + Use |\\| to separate lines within a single author's + entry -- for example, to give the author's institution + or address. + + \date{text} *\date* + The |\date| command declares text to be the document's + date. With no |\date| command, the current date is + used. + + \thanks{text} *\thanks* + The |\thanks| command produces a |\footnote| to the + title. + + \title{text} *\title* + The |\title| command declares text to be the title. Use + |\\| to tell LaTeX where to start a new line in a long + title. + +\pagenumbering{numstyle} *\pagenumbering* + Specifies the style of page numbers. Possible values of + 'numstyle' are: + arabic - Arabic numerals *arabic* + roman - Lowercase Roman numerals *roman* + Roman - Uppercase Roman numerals *Roman* + alph - Lowercase letters *alph* + Alph - Uppercase letters *Alph* + +\pagestyle{option} *\pagestyle* + *plain* *empty* *headings* + The |\pagestyle| command changes the style from the current + page on throughout the remainder of your document. + The valid options are: + plain - Just a plain page number. + empty - Produces empty heads and feet no page numbers. + headings - Puts running headings on each page. The document + style specifies what goes in the headings. + myheadings - You specify what is to go in the heading with the + |\markboth| or the |\markright| commands. + + |\markboth| Set left and right headings. + |\markright| Set right heading only. + + \markboth{left head}{right head} *\markboth* + The |\markboth| command is used in conjunction with the + page style myheadings for setting both the left and + the right heading. + Note that a "left-hand heading" is generated by the + last |\markboth| command before the end of the page, + while a "right-hand heading" is generated by the first + |\markboth| or |\markright| that comes on the page if + there is one, otherwise by the last one before the + page. + + + \markright{right head} *\markright* + The |\markright| command is used in conjunction with + the page style |\myheadings| for setting the right + heading, leaving the left heading unchanged. + Note that a "left-hand heading" is generated by the + last |\markboth| command before the end of the page, + while a "right-hand heading" is generated by the first + |\markboth| or |\markright| that comes on the page if + there is one, otherwise by the last one before the + page. + +\thispagestyle{option} *\thispagestyle* + The |\thispagestyle| command works in the same manner as the + |\pagestyle| command except that it changes the style for the + current page only. + +============================================================================== +17. Sectioning *latex-sectioning* + +Sectioning commands provide the means to structure your text into units. +|\part| +|\chapter| (report and book class only) +|\section| +|\subsection| +|\subsubsection| +|\paragraph| +|\subparagraph| + +All sectioning commands take the same general form, i.e., + + *\part* + *\chapter* (report and book class only) + *\section* *\subsection* *\subsubsection* + *\paragraph* *\subparagraph* +\chapter[optional]{title} + In addition to providing the heading in the text, the + mandatory argument of the sectioning command can appear in two + other places: + 1. The table of contents + 2. The running head at the top of the page. You may not want + the same thing to appear in these other two places as + appears in the text heading. To handle this situation, the + sectioning commands have an optional argument that provides + the text for these other two purposes. + +All sectioning commands have *\-forms that print a title, but do not include a +number and do not make an entry in the table of contents. + +\appendix *\appendix* + The |\appendix| command changes the way sectional units are + numbered. The |\appendix| command generates no text and does + not affect the numbering of parts. The normal use of this + command is something like: > + \chapter{The First Chapter} + ... + \appendix \chapter{The First Appendix} + + +============================================================================== +18. Spaces & Boxes *latex-spaces-boxes* + +All the predefined length parameters See section Predefined lengths can be +used in the arguments of the box-making commands. + + Horizontal space: + +|\dotfill| Stretchable horizontal dots. +|\hfill| Stretchable horizontal space. +|\hrulefill| Stretchable horizontal rule. +|\hspace| Fixed horizontal space. + + Vertical space: + +|\addvspace| Fixed vertical space. +|\bigskip| Fixed vertical space. +|\medskip| Fixed vertical space. +|\smallskip| Fixed vertical space. +|\vfill| Stretchable vertical space. +|\vspace| Fixed vertical space. + + Boxes: + +|\fbox| Framebox. +|\framebox| Framebox, adjustable position. +|\lrbox| An environment like |\sbox|. +|\makebox| Box, adjustable position. +|\mbox| Box. +|\newsavebox| Declare a name for saving a box. +|\parbox| Box with text in paragraph mode. +|\raisebox| Raise or lower text. +|\rule| Lines and squares. +|\savebox| Like |\makebox|, but save the text for later use. +|\sbox| Like |\mbox|, but save the text for later use. +|\usebox| Print saved text. + +Horizontal space: *latex-hor-space* + +LaTeX removes horizontal space that comes at the end of a line. If you don't +want LaTeX to remove this space, include the optional * argument. Then the +space is never removed. + +\dotfill *\dotfill* + The |\dotfill| command produces a "rubber length" that produces + dots instead of just spaces. + +\hfill *\hfill* + The |\hfill| fill command produces a "rubber length" which can + stretch or shrink horizontally. It will be filled with spaces. + +\hrulefill *\hrulefill* + The |\hrulefill| fill command produces a "rubber length" which + can stretch or shrink horizontally. It will be filled with a + horizontal rule. + +\hspace[*]{length} *\hspace* + The |\hspace| command adds horizontal space. The length of the + space can be expressed in any terms that LaTeX understands, + i.e., points, inches, etc. You can add negative as well as + positive space with an |\hspace| command. Adding negative space + is like backspacing. + + +Vertical space: *latex-ver-space* + +LaTeX removes vertical space that comes at the end of a page. If you don't +want LaTeX to remove this space, include the optional * argument. Then the +space is never removed. + +\addvspace{length} *\addvspace* + The |\addvspace| command normally adds a vertical space of + height length. However, if vertical space has already been + added to the same point in the output by a previous + |\addvspace| command, then this command will not add more space + than needed to make the natural length of the total vertical + space equal to length. + +\bigskip *\bigskip* + The |\bigskip| command is equivalent to \vspace{bigskipamount} + where bigskipamount is determined by the document class. + +\medskip *\medskip* + The |\medskip| command is equivalent to \vspace{medskipamount} + where medskipamount is determined by the document class. + +\smallskip *\smallskip* + The |\smallskip| command is equivalent to + \vspace{smallskipamount} where smallskipamount is determined + by the document class. + +\vfill *\vfill* + The |\vfill| fill command produces a rubber length which can + stretch or shrink vertically. + +\vspace[*]{length} *\vspace* + The |\vspace| command adds vertical space. The length of the + space can be expressed in any terms that LaTeX understands, + i.e., points, inches, etc. You can add negative as well as + positive space with an |\vspace| command. + + +Boxes: *latex-boxes* + +\fbox{text} *\fbox* + The |\fbox| command is exactly the same as the |\mbox| command, + except that it puts a frame around the outside of the box that + it creates. + +\framebox[width][position]{text} *\framebox* + The |\framebox| command is exactly the same as the |\makebox| + command, except that it puts a frame around the outside of the + box that it creates. + The |\framebox| command produces a rule of thickness + |\fboxrule|, and leaves a space |\fboxsep| between the rule and + the contents of the box. + +lrbox *\lrbox* +\begin{lrbox}{cmd} text \end{lrbox} + This is the environment form of |\sbox|. + The text inside the environment is saved in the box cmd, which + must have been declared with |\newsavebox|. + +\makebox[width][position]{text} *\makebox* + The |\makebox| command creates a box just wide enough to + contain the text specified. The width of the box is specified + by the optional [width] argument. The position of the text + within the box is determined by the optional [position] + argument. + c -- centred (default) + l -- flushleft + r -- flushright + s -- stretch from left to right margin. The text must + contain stretchable space for this to work. + See section |\picture-makebox|. + +\mbox{text} *\mbox* + The |\mbox| command creates a box just wide enough to hold the + text created by its argument. + Use this command to prevent text from being split across + lines. + +\newsavebox{cmd} *\newsavebox* + Declares {cmd}, which must be a command name that is not + already defined, to be a bin for saving boxes. + + +\parbox[position][height][innerpos]{width}{text} *\parbox* + A parbox is a box whose contents are created in + |\paragraph-mode|. The |\parbox| has two + + Mandatory arguments: +'width' specifies the width of the parbox +'text' the text that goes inside the parbox. + + Optional arguments: +'position' LaTeX will position a parbox so its centre lines up with the + centre of the text line. The optional position argument allows + you to line up either the top or bottom line in the parbox + (default is top). + +'height' If the height argument is not given, the box will have the + natural height of the text. + +'innerpos' The inner-pos argument controls the placement of the text + inside the box. If it is not specified, position is used. + t -- text is placed at the top of the box + c -- text is centred in the box + b -- text is placed at the bottom of the box + s -- stretch vertically. The text must contain + vertically stretchable space for this to work. + + A |\parbox| command is used for a parbox containing a small + piece of text, with nothing fancy inside. In particular, you + shouldn't use any of the paragraph-making environments inside + a |\parbox| argument. For larger pieces of text, including ones + containing a paragraph-making environment, you should use a + |\minipage| environment. + +\raisebox{distance}[extendabove][extendbelow]{text} *\raisebox* + The |\raisebox| command is used to raise or lower text. The + first mandatory argument specifies how high the text is to be + raised (or lowered if it is a negative amount). The text + itself is processed in LR mode. + Sometimes it's useful to make LaTeX think something has a + different size than it really does - or a different size than + LaTeX would normally think it has. The |\raisebox| command + lets you tell LaTeX how tall it is. + The first optional argument, extend-above, makes LaTeX think + that the text extends above the line by the amount specified. + The second optional argument, extend-below, makes LaTeX think + that the text extends below the line by the amount specified. + +\rule[raiseheight]{width}{thickness} *\rule* + The |\rule| command is used to produce horizontal lines. The + arguments are defined as follows: +'raiseheight' specifies how high to raise the rule (optional) +'width' specifies the length of the rule (mandatory) +'thickness' specifies the thickness of the rule (mandatory) + +\savebox{cmd}[width][pos]{text} *\savebox* + This command typeset text in a box just as for |\makebox|. + However, instead of printing the resulting box, it saves it in + bin cmd, which must have been declared with |\newsavebox|. + +\sbox{text} *\sbox* + This commands typeset text in a box just as for |\mbox|. + However, instead of printing the resulting box, it saves it in + bin cmd, which must have been declared with |\newsavebox|. + +\usebox{cmd} *\usebox* + Prints the box most recently saved in bin cmd by a |\savebox| + command. + +============================================================================== +19. Special Characters *latex-special* + +The following characters play a special role in LaTeX and are called "special +printing characters", or simply "special characters". > + # $ % & ~ _ ^ \ { } +Whenever you put one of these special characters into your file, you are doing +something special. If you simply want the character to be printed just as any +other letter, include a \ in front of the character. For example, \$ will +produce $ in your output. + +One exception to this rule is the \ itself because |\\| has its own special +meaning. A \ is produced by typing $\backslash$ in your file. + +Also, \~ means `place a tilde accent over the following letter', so you will +probably want to use |\verb| instead. + *\symbol* +In addition, you can access any character of a font once you know its number +by using the |\symbol| command. For example, the character used for displaying +spaces in the |\verb|* command has the code decimal 32, so it can be typed as +\symbol{32}. + +You can also specify octal numbers with ' or hexadecimal numbers with ", so +the previous example could also be written as \symbol{'40} or \symbol{"20}. + +============================================================================== +20. Splitting the Input *latex-inputting* + +A large document requires a lot of input. Rather than putting the whole input +in a single large file, it's more efficient to split it into several smaller +ones. Regardless of how many separate files you use, there is one that is the +root file; it is the one whose name you type when you run LaTeX. + +|\include| Conditionally include a file +|\includeonly| Determine which files are included +|\input| Unconditionally include a file + +\include{file} *\include* + The \include command is used in conjunction with the + |\includeonly| command for selective inclusion of + files. The file argument is the first name of a file, + denoting `file.tex' . If file is one the file names in + the file list of the |\includeonly| command or if there + is no |\includeonly| command, the \include command is + equivalent to: > + \clearpage \input{file} \clearpage +< + except that if the file `file.tex' does not exist, + then a warning message rather than an error is + produced. If the file is not in the file list, the + \include command is equivalent to |\clearpage|. + + The |\include| command may not appear in the preamble or in a + file read by another |\include| command. + +\includeonly{filelist} *\includeonly* + The |\includeonly| command controls which files will be read in + by an |\include| command. {filelist} should be a + comma-separated list of filenames. Each filename must match + exactly a filename specified in a |\include| command. This + command can only appear in the preamble. + +\input{file} *\input* + The |\input| command causes the indicated file to be read and + processed, exactly as if its contents had been inserted in the + current file at that point. The file name may be a complete + file name with extension or just a first name, in which case + the file `file.tex' is used. +============================================================================== +21. Starting & Ending *latex-start-end* + +Your input file must contain the following commands as a minimum: +\documentclass{class} |\documentclass| +\begin{document} |\begin| +... your text goes here ... +\end{document} |\end| + +where the class selected is one of the valid classes for LaTeX. +See |\classes|for details of the various document classes. + +You may include other LaTeX commands between the |\documentclass| and the +\begin{document} commands (i.e., in the `preamble'). +============================================================================== +22. Table of Contents *latex-toc* + + *\tableofcontents* +A table of contents is produced with the |\tableofcontents| command. You put +the command right where you want the table of contents to go; LaTeX does the +rest for you. It produces a heading, but it does not automatically start a new +page. If you want a new page after the table of contents, include a |\newpage| +command after the |\tableofcontents| command. + + *\listoffigures* *\listoftables* +There are similar commands |\listoffigures| and |\listoftables| for producing a +list of figures and a list of tables, respectively. Everything works exactly +the same as for the table of contents. + + *\nofiles* +NOTE: If you want any of these items to be generated, you cannot have the +\nofiles command in your document. + +|\addcontentsline| Add an entry to table of contents etc. +|\addtocontents| Add text directly to table of contents file etc. + +\addcontentsline{file}{secunit}{entry} *\addcontentsline* + The |\addcontentsline| command adds an entry to the specified + list or table where: +{file} is the extension of the file on which information is to be + written: + toc (table of contents), + lof (list of figures), + lot (list of tables). +{secunit} controls the formatting of the entry. It should be one of the + following, depending upon the value of the file argument: + toc -- the name of the sectional unit, such as part or + subsection. + lof -- figure + lot -- table +{entry} is the text of the entry. + +\addtocontents{file}{text} *\addtocontents* + The |\addtocontents| command adds text (or formatting commands) + directly to the file that generates the table of contents or + list of figures or tables. +{file} is the extension of the file on which information is to be written: + toc (table of contents), + lof (list of figures), + lot (list of tables). +{text} is the information to be written. + +============================================================================== +23. Terminal Input/Output *latex-terminal* + +|\typein| Read text from the terminal. +|\typeout| Write text to the terminal. + +\typein[cmd]{msg} *\typein* + Prints {msg} on the terminal and causes LaTeX to stop and wait + for you to type a line of input, ending with return. If the + [cmd] argument is missing, the typed input is processed as if + it had been included in the input file in place of the + |\typein| command. If the [cmd] argument is present, it must be + a command name. This command name is then defined or redefined + to be the typed input. + +\typeout{msg} *\typeout* + Prints {msg} on the terminal and in the `.log' file. Commands + in {msg} that are defined with |\newcommand| or |\renewcommand| + are replaced by their definitions before being printed. + + *\space* +LaTeX's usual rules for treating multiple spaces as a single space and +ignoring spaces after a command name apply to {msg}. A |\space| command in {msg} +causes a single space to be printed. A ^^J in {msg} prints a newline. + +============================================================================== +24. Typefaces *latex-typefaces* + +The typeface is specified by giving the "size" and "style". A typeface is also +called a "font". +|font-styles| Select roman, italics etc. +|font-size| Select point size. +|font-lowlevelcommands| Commands for wizards. + +Styles *font-styles* + +The following type style commands are supported by LaTeX. + +These commands are used like: > + \textit{italics text}. +The corresponding command in parenthesis is the "declaration form", which +takes no arguments. The scope of the declaration form lasts until the next +type style command or the end of the current group. + +The declaration forms are cumulative; i.e., you can say: > + \sffamily\bfseries +to get sans serif boldface. + +You can also use the environment form of the declaration forms; e.g.: > + \begin{ttfamily}...\end{ttfamily}. +< +\textrm (\rmfamily) *\textrm* *\rmfamily* + Roman + +\textit (\itshape) *\textit* *\itshape* *\emph* + Emphasis (toggles between |\textit| and |\textrm|). + +\textmd (\mdseries) *\textmd* *\mdseries* + Medium weight (default). The opposite of boldface. + +\textbf (\bfseries) *\textbf* *\bfseries* + Boldface. + +\textup (\upshape) *\textup* *\upshape* + Upright (default). The opposite of slanted. + +\textsl (\slshape) *\textsl* *\slshape* + Slanted. + +\textsf (\sffamily) *\textsf* *\sffamily* + Sans serif. + +\textsc (\scshape) *\textsc* *\scshape* + Small caps. + +\texttt (\ttfamily) *\texttt* *\ttfamily* + Typewriter. + +\textnormal (\normalfont) *\textnormal* *\normalfont* + Main document font. + +\mathrm *\mathrm* + Roman, for use in math mode. + +\mathbf *\mathbf* + Boldface, for use in math mode. + +\mathsf *\mathsf* + Sans serif, for use in math mode. + +\mathtt *\mathtt* + Typewriter, for use in math mode. + +\mathit *\mathit* + Italics, for use in math mode, e.g. variable names with + several letters. + +\mathnormal *\mathnormal* + For use in math mode, e.g. inside another type style + declaration. + +\mathcal *\mathcal* + `Calligraphic' letters, for use in math mode. + + *\mathversion* +In addition, the command \mathversion{bold} can be used for switching to bold +letters and symbols in formulas. \mathversion{normal} restores the default. + +========== +Sizes *font-size* + +The following standard type size commands are supported by LaTeX. + +The commands as listed here are "declaration forms". The scope of the +declaration form lasts until the next type style command or the end of the +current group. + +You can also use the environment form of these commands; e.g. > + \begin{tiny}...\end{tiny} + +\tiny *\tiny* +\scriptsize *\scriptsize* +\footnotesize *\footnotesize* +\small *\small* +\normalsize(default) *\normalsize* +\large *\large* +\Large *\Large* +\LARGE *\LARGE* +\huge *\huge* +\Huge *\Huge* + +========== +Low-level font commands *font-lowlevelcommands* + +These commands are primarily intended for writers of macros and packages. The +commands listed here are only a subset of the available ones. For full +details, you should consult Chapter 7 of The LaTeX Companion. + +\fontencoding{enc} *\fontencoding* + Select font encoding. Valid encodings include OT1 and T1. + +\fontfamily{family} *\fontfamily* + Select font family. Valid families include: + cmr for Computer Modern Roman + cmss for Computer Modern Sans Serif + cmtt for Computer Modern Typewriter + and numerous others. + +\fontseries{series} *\fontseries* + Select font series. Valid series include: + m Medium (normal) + b Bold + c Condensed + bc Bold condensed + bx Bold extended + and various other combinations. + +\fontshape{shape} *\fontshape* + Select font shape. Valid shapes are: + n Upright (normal) + it Italic + sl Slanted (oblique) + sc Small caps + ui Upright italics + ol Outline + The two last shapes are not available for most font families. + +\fontsize{size}{skip} *\fontsize* + Set font size. The first parameter is the font size to switch + to; the second is the \baselineskip to use. The unit of both + parameters defaults to pt. A rule of thumb is that the + baselineskip should be 1.2 times the font size. + +\selectfont *\selectfont* + The changes made by calling the four font commands described + above do not come into effect until |\selectfont| is called. + +\usefont{enc}{family}{series}{shape} *\usefont* + Equivalent to calling |\fontencoding|, |\fontfamily|, + |\fontseries| and |\fontshape| with the given parameters, + followed by |\selectfont|. + +============================================================================== +25. Parameters *latex-parameters* + +The input file specification indicates the file to be formatted; TeX uses +`.tex' as a default file extension. If you omit the input file entirely, TeX +accepts input from the terminal. You specify command options by supplying a +string as a parameter to the command; e.g. > + + latex "\scrollmode\input foo.tex" + +will process `foo.tex' without pausing after every error. + +Output files are always created in the current directory. When you fail to +specify an input file name, TeX bases the output names on the file +specification associated with the logical name TEX_OUTPUT, typically +texput.log. + + vim:tw=78:ts=8:ft=help:norl: diff --git a/.vim/doc/ps_color.txt b/.vim/doc/ps_color.txt new file mode 100644 index 0000000..caf6a4a --- /dev/null +++ b/.vim/doc/ps_color.txt @@ -0,0 +1,585 @@ +*ps_color.txt* PSC For Vim version 6.3 Last change: 17 November 2004 + + +PERSONAL COLOUR SWITCHER *ps_colour* *pscolor* + + +Author: Pan, Shizhu. <dicpan> at <hotmail o com> > + (prepend '[VIM]' in the title or your mail may be silently removed.) +< +============================================================================== +CONTENTS *psc* *psc-contents* + + 1. Contents.....................|psc-contents| + 2. PSC Overview.................|psc-overview| + 3. PSC Installation.............|psc-usage| + 4. PSC Options..................|psc-options| + 5. PSC under color term ........|psc-cterm| + 6. PSC FAQ and Tips ............|psc-faq| + 7. PSC Release notes............|psc-release-notes| + 8. PSC Todo List................|psc-todo| + +For release notes, please see the header of ps_color.vim + +============================================================================== +PSC FEATURES OVERVIEW *psc-features* *psc-overview* + + Features ~ + + . PSC is firstly a color scheme which have both dark and light + background styles. + . It can have the same appearance in [cterm] as in [gui]. + . It is designed with gentle color to minimize fatigue of eye. + . It also works with other color schemes. + . Default foreground and background can easily be changed, it is more + configurable than most other color schemes + . Works with the optional tool reloaded.vim, can change the whole + color scheme in Hue,Saturation,Luminance color space. + + Design Concern ~ + + At the first glance this color scheme may look pretty 'dull', don't be + afraid, this is quite normal. Bear in mind that a text editor is not + a photo album, if a text editor looks exciting you may not be able to + stare at it for a long time. + + Predefined Vim Syntax highlighting can be too colorful or contrasty so + that many programmers prefer to switch off the syntax highlighting at + work. That is not a good idea because you will lost the advantages of + syntax high-lighting. It is often the case that we have to work for + 300+ minutes, then I decide to do-it-myself. + + Many user-defined color schemes in vim.sf.net tend to achieve low + contrast by having a strong color-cast, i.e. looks blueish or + yellowish or reddish. This does look comfortable at first, however, + any type of color-cast will cause the eyes less sensitive for + particular color after a long-time work session, and that's no good to + health. + + Efforts had been made to ensure no color-cast for this scheme, all + elementary colors like RGB and CYMK are evenly used. Like TeX, + 'consistency' is the principle this color scheme based on. Default + values which hurt consistency are amended according to the vim script + syntax/hitest.vim + + There are 3 parameters to describe a color: Hue, Saturation and + Brightness. In this color scheme, the saturation is low and the + brightness are designed to be very close to each other in order not to + fatigue our eyes after a whole day's programming work. + + Portability ~ + + Different monitor settings led to different look. In this color + scheme, it is assumed that the monitor adjust at 6500k color + temperature with a good gamma curve. If you have a 9300k monitor or + if the gamma curve is not optimal, the appearance may be less + comfortable, use adobe gamma loader or similar tools to adjust + your monitor if your monitor do not have the option to change color + temperature and/or gamma curve. + + Needless to say, VI is an editor originally designed to do edit tasks + in a text terminal, and VIM is an improved version of VI. Its a shame + that a color scheme cannot have a satisfactory appearance in cterm. + The cterm compatibility should be considered high priority when + designing ViM color scheme. + + I had made much attempt to make support for 8-color terminals, + however, 8 colors is not enough to represent a color scheme. Finally + I end up making the cterm support for 16-color terminal. Have to say + sorry if the color scheme sucks in your 8-color terminal, I had tried + my best. More details about cterm please see |psc-cterm|. + + *psc-about-background* + About the Background ~ + + We have talked about off-white backgrounds, any background which is + not black, grey or white should be changed constantly in order not to + make the eyes less sensitive to particular color. i.e. you can use + blue background on Monday, red background on Tuesday, green background + on Wednesday, but if you use blue background everyday, that's no good + to your health. + + Now we talk about the brightness of the background. Why dark + background is preferred over others? There are many reasons, such as, + the monitor emits lower radiation for black background. You may have + lots of similar reasons... + + But I'll talk about something you may not know: +> + It is easier to distinguish foreground colors on a dark background + than on a light background. + + At the same time, it is easier to distinguish background colors on + a light background than on a dark background. + + We will mainly change foreground colors for syntax highlighting. +< + Hence, we can reduce the contrast and saturation of the color in + a dark-background scheme, while retain the readability. Schemes with + white background usually comes with higher contrast and saturation. + This is probably the most important reason that the color scheme is + designed to be dark-background instead of light one. + + Now we came to know, that change the foreground color is enough to + emphasis text in a dark background, while for a white background, we + need to change the font shape (bold or italic, etc.), or change the + background color to effectively emphasis the text. This is probably + the reason Vim default scheme has bold properties for highlighting + groups, because the default scheme is a light background one. + + No one knows what color scheme is best for you, except yourself. Try! + +============================================================================== +PSC INSTALLATION *psc-usage* + + Step 1, Enable the color scheme ~ + + To use PSC is simple, just put ps_color.vim into your + [runtimepath]/colors and append the line > + + colorscheme ps_color +< + to your |.vimrc|. The [runtimepath] can be any directory listed in + |vimfiles|, normally your $HOME/.vim in Unix or $HOME/vimfiles in + Windows. + + Step 2, Install the help document ~ + + The help document will be automatically installed when the colorscheme + be sourced the first time. If it is not, type :colo ps_color now. + + After successfully installed the help document, you can use > + + :help psc-options +< + to go to the following section. + +============================================================================== +PSC OPTIONS *psc-options* + + You can let these options in your ~/.vimrc, most options works for + both GUI and cterm, only some of them do not work for both. + + Options set using the 'let' command must present [BEFORE] the color + scheme been sourced. + + *psc_style* + Style ~ +> + let psc_style='cool' + let psc_style='warm' + let psc_style='default' + let psc_style='defdark' +< + This selects between styles of colors, + The 'cool' is the default, dark background. + The 'warm' is the experimental, light background scheme. + + See |psc-about-background| for more knowledge about the background, + and the differences of two style. + + The 'default' and 'defdark' refers to Vim system default color scheme. + Which are provided only for reference. + + Let psc_style to any string other than the above 4 will switch to the + specified color scheme. For example, let psc_style='desert' and then + activate the ps_color, the color scheme will be chosen according to + desert.vim color scheme. + + *psc_cterm_style* + Color Term Style ~ +> + let psc_cterm_style='cool' +< + This is exactly the same to psc_style, except that it only affects the + console version of vim in a color terminal, the 'warm' is not + available for cterm. + By default, it will be set to the same value as 'psc_style'. You can + change it if you want different style in cterm from gui. + + + *psc_fontface* + Font face ~ +> + let psc_fontface='plain' + let psc_fontface='mixed' +< + The Vim default behavior is the 'mixed', however, the mixed font style + in a dark colorscheme is not optimal. This color uses 'plain' for + 'cool' style, i.e. No texts are bolded font. For 'warm', the default + is still 'mixed', If you want the mixed style in which the highlighted + statements are bolded font, choose this. If you want all texts be + bolded, choose 'plain' and specify a bolded guifont or terminal font. + + In GUI, this option also works for other color schemes. You can + disable the bold font and use your favorite color scheme. See + |psc-faq-ffothers| for detail. + + *psc_inversed_todo* + Inversed Todo ~ +> + let psc_inversed_todo=1 +< + When set to 1, the TODO group will be dark background with light font, + Otherwise, the TODO group have light background with dark foreground. + Default is 0. + + *psc_use_default_for_cterm* + Use default for cterm (obsoleted)~ + + This option is Obsoleted, retained only for backward compatibility, + see |psc_cterm_style| for alternative. + + *psc_statement_different_from_type* + Statement different from type ~ +> + let psc_statement_different_from_type=1 +< + The Statement-group and Type-group are easy to distinguish, different + color for them are not necessary, I use similar color for S-group + & T-group in order not to make the screen too 'colorful', also this + saves a color name for cterm. But if you do want the Statement & Type + to be different color, try 'let statement_different_from_type=1' in + your .vimrc file, which is available only for GUI. Since the color + names in cterm is limited to 16 we cannot have too many different + colors in cterm. + Default is 0, i.e. they have very similar color. + + *psc-change-background* + Changing the Background color ~ + + You may prefer a dark background over pure black one, and it is + possible to change the background, this may make life more interesting. + To do this is quite straight forward for GUI, just define the Normal + highlight in your .gvimrc, [AFTER] the color scheme has been sourced. + + For example: +> + highlight Normal guibg=#103040 +< + The #103040 will give a taste similar to oceandeep, #152535 for + hhazure, #303030 for desert, #404040 for zenburn... Replace #103040 + with any color you like. You can do the same to guifg foreground if + you are careful enough, remember this is only possible with ps_color + version 2.7 or above, and only possible for GUI. + + You can do this to the NonText group also, for example. +> + highlight NonText guibg=#202020 +< + will give you a taste similar to most color schemes on vim.sf.net, in + which the NonText has a different background than Normal text. + However, this is only useful in GUI, in cterm, there are only + 8 background colors, so it is wise not to have a different color. + + If you want more variations, please try the optional utility + reloaded.vim, this optional utility provides an amazing level of + customization. + + Quick switching between warm and cold styles ~ + + Here is an example to define hot key of different style switching, + note that I had only given this example without actually define it. + You can choose to define it in .vimrc or anyway you prefer. +> + nnoremap <Leader>pc :let psc_style='cool'<CR>:colo ps_color<CR> + nnoremap <Leader>pw :let psc_style='warm'<CR>:colo ps_color<CR> +< + Alternatively, you can use the capitalized :Colo command, like + :Colo cool or :Colo warm + +============================================================================== +PSC WITH CTERM *psc-cterm* + + Colour Term ~ + + The cterm color is designed mainly in these terminals: +> + 1. Cygwin bash shell in NT command prompt box + 2. XTERM and RXVT + 3. Other color terminals which have at least 16 colors +< + *psc-cterm-nt* + In Windows NT Prompt console you can change the exact value of each + color, so you can have the same color with your GUI version of Vim, + for 'cool' color style you just change the color according to the + |psc-cterm-color-table|, for how to redefine the color of Windows NT + prompt console please see Windows Help. + + NT Cygwin bash shell console supports 16 foreground colors by add bold + attribute to 8 color, the cterm=bold specifies which should be bright + color, so totally the 16 color foreground is available, but color + name DarkXXX and LightXXX are the same. + + The pre-configured Cygwin.lnk is available for download on my web page + for Vim, but the site seems down, if my site would be on again, it + should be at the following URL: > + http://poet.tomud.com/pub/Cygwin.lnk.gz +< + Cygwin is highly recommended for Vim user if you are using Windows NT + based systems (e.g. NT 4.0, Win2k, WinXP, Win2003, etc). But Cygwin is + not that versatile under Windows 95/98/ME. I'm not sure whether this + works for DOS DJGPP or Windows 95 console version of Vim because + I don't have the system, in case you encountered problem please + contact me, if you like. + + *psc-cterm-xterm* + XTERM is a much more feature-rich terminal than Windows Console so the + support is much better, add the following recommend line into your + .Xdefaults and you can achieve the same color as in GUI version. + + Add the following into your .Xdefaults: + This works for XTERM and RXVT. +> + XTerm*color0: #000000 + XTerm*color1: #800000 + XTerm*color2: #008000 + XTerm*color3: #d0d090 + XTerm*color4: #000080 + XTerm*color5: #800080 + XTerm*color6: #a6caf0 + XTerm*color7: #d0d0d0 + XTerm*color8: #b0b0b0 + XTerm*color9: #f08060 + XTerm*color10: #60f080 + XTerm*color11: #e0c060 + XTerm*color12: #80c0e0 + XTerm*color13: #f0c0f0 + XTerm*color14: #c0d8f8 + XTerm*color15: #e0e0e0 + XTerm*cursorColor: #00f000 + + ! The following are recommended but optional + XTerm*reverseVideo: False + XTerm*background: #000000 + XTerm*foreground: #d0d0d0 + XTerm*boldMode: False +< + There is an assumption that your RXVT or XTERM supports 16 colors, + most RXVTs and XTERMs support this, if yours do not, get a source of + RXVT and recompile it. + + Sometimes the color mode are not recognized well, or you do not want + bright foreground be bolded. If this is the case, add the following in + your .vimrc (before the color scheme been sourced) +> + if &term=='xterm' " Change 'xterm' to your term name if necessary + set t_Co=16 + endif +< + If the t_Co=16 have problem, set t_Co=8 and :colo ps_color again. + vice versa. + + My rxvt works well with t_Co=16: > + Rxvt v2.7.10 - released: 26 MARCH 2003 + Options: + XPM,transparent,utmp,menubar,frills,linespace,multichar_languages, + scrollbars=rxvt+NeXT+xterm,.Xdefaults +< But I've know that my rxvt v2.6.4 in another machine has problem with + t_Co=16, if that is the case, set t_Co=8 instead. + + *psc-cterm-others* + For other terminals, you can manually set the color according to the + following table + + Hints for Manually set the color (for 'cool' style only): + *psc-cterm-color-table* + Color name Hex value Decimal value ~ + 0 Black = #000000 0,0,0 + 4 DarkBlue = #000080 0,0,128 + 2 DarkGreen = #008000 0,128,0 + 6 DarkCyan = #a6caf0 166,202,240 + 1 DarkRed = #800000 128,0,0 + 5 DarkMagenta = #800080 128,0,128 + 3 DarkYellow = #d0d090 208,208,144 + 7 Grey = #d0d0d0 208,208,208 + 8 DarkGrey = #b0b0b0 176,176,176 + 12 Blue = #80c0e0 128,192,224 + 10 Green = #60f080 96,240,128 + 14 Cyan = #c0d8f8 192,216,248 + 9 Red = #f08060 240,128,96 + 13 LMag. = #f0c0f0 240,192,240 + 11 Yellow = #e0c060 224,192,96 + 15 White = #e0e0e0 224,224,224 + + *psc-cterm-incompatible* + If your color terminal does only have 8 colors and cannot achieve 16 + colors with cterm=bold, you may want to switch to other color schemes + to gain more readability. Anyway, you can specify in your .vimrc to + use different color scheme under different consoles and GUI. + For example: +> + let psc_cterm_style = 'foobarcolor' + let psc_style = 'cool' + colo ps_color +< + The 'foobarcolor' means the color scheme you want to choose, such as + 'desert', I recommend to try vim default schemes 'default' and + 'defdark' before experience others. + +============================================================================== +PSC FAQ AND TIPS *psc-faq* *psc-tips* +> + Q: What is meant by `PS' ? +< + A: PS means: PostScript, PhotoShop, PerSonal, ... or anything you can + imagine and anything you want it do be. +> + Q: How to obtain the same appreance as gui in color term? +< + A: This need some work around, see |psc-cterm| for details. + Generally speaking, you should ensure your color term has support + for 16 foreground colors, and each color is customizable. + + *psc-faq-ffothers* > + Q: How to use psc_fontface with other colorschemes? +< + A: Make sure you had sourced :colo ps_color in your .vimrc, then you + can use the Capitalized :Colo instead of :colo + e.g. you want to use 'murphy', just type :Colo murphy after you + sourced the ps_color, the 'defdark', 'cool', 'warm' can also be + used here. +> + Q: I updated from v2.0 to v2.3 or above, why the cterm color scheme + for Comment is different? +< + A: The color map of DarkYellow and Yellow have been exchanged, + You need to reconfigure your terminal to meet the change, + see |psc-cterm-color-table| for guide, or if you are using xterm + compatible terminal, just update the .XDefaults according to + |psc-cterm-xterm|. +> + Q: What do you mean by 'Vanilla Windows'? +< + A: People often argue that Windows is not a REAL operating system. + Well, I agree this, but only for vanilla windows. i.e. with no + plug-ins installed. Vanilla windows is a very limited platform, + since it is not POSIX compliant. + + There are currently many working around to make Windows POSIX + Compliant, do you still mind which OS to use when it is POSIX + Compliant? I don't. If you installed Cygwin kernel in your + NT-based Windows, the Windows will be more or less POSIX compliant + and you can use it in the same way as you use any Unix, BSD, + Solaris, Linux, XWindow, etc... What is more, Cygwin is not the + only kernel which makes Windows POSIX Compliant, make a google + search and you will find many alternatives. +> + Q: How to change the Normal background color? Why don't you use + different background for NonText group? +< + A: This is for compatibility, since we have to use only 8 colors as + background in a color terminal. For GUI you can change this, see + |psc-change-background| for details. + +============================================================================== +PSC RELEASE NOTES *psc-release-notes* + + 2.82 Release Note: ~ + + Fixed bug with the reversed group for the Vim default, or other + schemes. + + Fixed bug with the Diff mode fg mistaken as fg. + + Shrink the script a lot to improve load performance, moved the release + notes into document. + + Change the default gui background color to #202020 (Dark Grey) + + + 2.81 Release Note: ~ + + Provided a separate utility reloaded.vim to fine tune the GUI color + scheme based on Hue, Saturation and Brightness(Luminance). + + Added some groups to meet the need of reloaded.vim, no essential + change. + + 2.8 Release Note: ~ + + Bugfix : when psc_style=='mixed', the visual got reversed wrong. + + 'mixed' is now the default for 'warm' style. + + changed the function name to lower case. + + removed pre-2.0 compatibility, (the non-psc version of s-d-f-t). + + Added variable psc_cterm_style, see |psc_cterm_style| + + Added group Underline + + Tuned the function call. + + 2.7 Release Note: ~ + + Now it is possible to change the Background, + see :h psc-change-background for details. + + Linked the Tag group to Identifier. + + NonText as Notice is not good for 'warm', changed to Constant. + + Added links for the most popular plugins: taglist, calendar + + Tuned the 'Statement' color when different from Type (gui only). + + Re-adjusted cterm scheme according to syntax/hitest.vim + + The 'defdark' style for cterm is not functioning, fixed. + + Many 'cosmetic' changes, makes no difference for functionality. + + Use of DrChip's help extractor to auto-install help document. + + Added command define, :Colo + + 2.6 Release Note: ~ + + As stated in the v2.3, the only 'todo' thing seems to be the 'warm' + style, now in this version I had been working on it. + + There also are some minor fixes for the document, to be more friendly + for new readers. + + The 'StatusLine' of 'cold' style is modified by mistake in the v2.3, + this time the bug is fixed. + + The 'Directory' in GUI 'cold' style is different from 'cterm' one, + now fixed. + + 2.3 Release Note: ~ + + This is an incompatible update, main changes are in 'cterm'. + A new group 'SignColumn' had been added, new links added for engspchk + v52, hundreds of typos fixed in the document, thanks to the engspchk. + + The support for 8-color cterm is slightly better now, but the mappings + of the DarkYellow and Yellow are exchanged, you need to update the + .Xdefaults or your terminal configuration before apply this update if + you are using v2.0. Guide for redefinition the color value is + available in the document, make sure you had updated the ps_color.txt, + then see |psc-cterm-color-table| + + 2.0 Release Note: ~ + + There've been great enhancement since this version, so I'd choose to + bump the version number to 2. This version comes with Vim online help, + if you had installed ps_color.txt, you can see for details in + |pscolor| + + n/a Release: ~ + + Initial upload, can be called as v1.8 + + +============================================================================== +PSC TODO LIST *psc-todo* + + . Fix the remain bugs. + . Follow the new Vim versions for new added highlighting group + +============================================================================== + +vim:tw=78:ts=8:noet:ft=help:fo+=t:norl:noet: diff --git a/.vim/doc/taglist.txt b/.vim/doc/taglist.txt new file mode 100755 index 0000000..6a62b39 --- /dev/null +++ b/.vim/doc/taglist.txt @@ -0,0 +1,1501 @@ +*taglist.txt* Plugin for browsing source code + +Author: Yegappan Lakshmanan (yegappan AT yahoo DOT com) +For Vim version 6.0 and above +Last change: 2007 May 24 + +1. Overview |taglist-intro| +2. Taglist on the internet |taglist-internet| +3. Requirements |taglist-requirements| +4. Installation |taglist-install| +5. Usage |taglist-using| +6. Options |taglist-options| +7. Commands |taglist-commands| +8. Global functions |taglist-functions| +9. Extending |taglist-extend| +10. FAQ |taglist-faq| +11. License |taglist-license| +12. Todo |taglist-todo| + +============================================================================== + *taglist-intro* +1. Overview~ + +The "Tag List" plugin is a source code browser plugin for Vim. This plugin +allows you to efficiently browse through source code files for different +programming languages. The "Tag List" plugin provides the following features: + + * Displays the tags (functions, classes, structures, variables, etc.) + defined in a file in a vertically or horizontally split Vim window. + * In GUI Vim, optionally displays the tags in the Tags drop-down menu and + in the popup menu. + * Automatically updates the taglist window as you switch between + files/buffers. As you open new files, the tags defined in the new files + are added to the existing file list and the tags defined in all the + files are displayed grouped by the filename. + * When a tag name is selected from the taglist window, positions the + cursor at the definition of the tag in the source file. + * Automatically highlights the current tag name. + * Groups the tags by their type and displays them in a foldable tree. + * Can display the prototype and scope of a tag. + * Can optionally display the tag prototype instead of the tag name in the + taglist window. + * The tag list can be sorted either by name or by chronological order. + * Supports the following language files: Assembly, ASP, Awk, Beta, C, + C++, C#, Cobol, Eiffel, Erlang, Fortran, HTML, Java, Javascript, Lisp, + Lua, Make, Pascal, Perl, PHP, Python, Rexx, Ruby, Scheme, Shell, Slang, + SML, Sql, TCL, Verilog, Vim and Yacc. + * Can be easily extended to support new languages. Support for + existing languages can be modified easily. + * Provides functions to display the current tag name in the Vim status + line or the window title bar. + * The list of tags and files in the taglist can be saved and + restored across Vim sessions. + * Provides commands to get the name and prototype of the current tag. + * Runs in both console/terminal and GUI versions of Vim. + * Works with the winmanager plugin. Using the winmanager plugin, you + can use Vim plugins like the file explorer, buffer explorer and the + taglist plugin at the same time like an IDE. + * Can be used in both Unix and MS-Windows systems. + +============================================================================== + *taglist-internet* +2. Taglist on the internet~ + +The home page of the taglist plugin is at: +> + http://vim-taglist.sourceforge.net/ +< +You can subscribe to the taglist mailing list to post your questions or +suggestions for improvement or to send bug reports. Visit the following page +for subscribing to the mailing list: +> + http://groups.yahoo.com/group/taglist +< +============================================================================== + *taglist-requirements* +3. Requirements~ + +The taglist plugin requires the following: + + * Vim version 6.0 and above + * Exuberant ctags 5.0 and above + +The taglist plugin will work on all the platforms where the exuberant ctags +utility and Vim are supported (this includes MS-Windows and Unix based +systems). + +The taglist plugin relies on the exuberant ctags utility to dynamically +generate the tag listing. The exuberant ctags utility must be installed in +your system to use this plugin. The exuberant ctags utility is shipped with +most of the Linux distributions. You can download the exuberant ctags utility +from +> + http://ctags.sourceforge.net +< +The taglist plugin doesn't use or create a tags file and there is no need to +create a tags file to use this plugin. The taglist plugin will not work with +the GNU ctags or the Unix ctags utility. + +This plugin relies on the Vim "filetype" detection mechanism to determine the +type of the current file. You have to turn on the Vim filetype detection by +adding the following line to your .vimrc file: +> + filetype on +< +The taglist plugin will not work if you run Vim in the restricted mode (using +the -Z command-line argument). + +The taglist plugin uses the Vim system() function to invoke the exuberant +ctags utility. If Vim is compiled without the system() function then you +cannot use the taglist plugin. Some of the Linux distributions (Suse) compile +Vim without the system() function for security reasons. + +============================================================================== + *taglist-install* +4. Installation~ + +1. Download the taglist.zip file and unzip the files to the $HOME/.vim or the + $HOME/vimfiles or the $VIM/vimfiles directory. After this step, you should + have the following two files (the directory structure should be preserved): + + plugin/taglist.vim - main taglist plugin file + doc/taglist.txt - documentation (help) file + + Refer to the |add-plugin|and |'runtimepath'| Vim help pages for more + details about installing Vim plugins. +2. Change to the $HOME/.vim/doc or $HOME/vimfiles/doc or $VIM/vimfiles/doc + directory, start Vim and run the ":helptags ." command to process the + taglist help file. Without this step, you cannot jump to the taglist help + topics. +3. If the exuberant ctags utility is not present in one of the directories in + the PATH environment variable, then set the 'Tlist_Ctags_Cmd' variable to + point to the location of the exuberant ctags utility (not to the directory) + in the .vimrc file. +4. If you are running a terminal/console version of Vim and the terminal + doesn't support changing the window width then set the + 'Tlist_Inc_Winwidth' variable to 0 in the .vimrc file. +5. Restart Vim. +6. You can now use the ":TlistToggle" command to open/close the taglist + window. You can use the ":help taglist" command to get more information + about using the taglist plugin. + +To uninstall the taglist plugin, remove the plugin/taglist.vim and +doc/taglist.txt files from the $HOME/.vim or $HOME/vimfiles directory. + +============================================================================== + *taglist-using* +5. Usage~ + +The taglist plugin can be used in several different ways. + +1. You can keep the taglist window open during the entire editing session. On + opening the taglist window, the tags defined in all the files in the Vim + buffer list will be displayed in the taglist window. As you edit files, the + tags defined in them will be added to the taglist window. You can select a + tag from the taglist window and jump to it. The current tag will be + highlighted in the taglist window. You can close the taglist window when + you no longer need the window. +2. You can configure the taglist plugin to process the tags defined in all the + edited files always. In this configuration, even if the taglist window is + closed and the taglist menu is not displayed, the taglist plugin will + processes the tags defined in newly edited files. You can then open the + taglist window only when you need to select a tag and then automatically + close the taglist window after selecting the tag. +3. You can configure the taglist plugin to display only the tags defined in + the current file in the taglist window. By default, the taglist plugin + displays the tags defined in all the files in the Vim buffer list. As you + switch between files, the taglist window will be refreshed to display only + the tags defined in the current file. +4. In GUI Vim, you can use the Tags pull-down and popup menu created by the + taglist plugin to display the tags defined in the current file and select a + tag to jump to it. You can use the menu without opening the taglist window. + By default, the Tags menu is disabled. +5. You can configure the taglist plugin to display the name of the current tag + in the Vim window status line or in the Vim window title bar. For this to + work without the taglist window or menu, you need to configure the taglist + plugin to process the tags defined in a file always. +6. You can save the tags defined in multiple files to a taglist session file + and load it when needed. You can also configure the taglist plugin to not + update the taglist window when editing new files. You can then manually add + files to the taglist window. + +Opening the taglist window~ +You can open the taglist window using the ":TlistOpen" or the ":TlistToggle" +commands. The ":TlistOpen" command opens the taglist window and jumps to it. +The ":TlistToggle" command opens or closes (toggle) the taglist window and the +cursor remains in the current window. If the 'Tlist_GainFocus_On_ToggleOpen' +variable is set to 1, then the ":TlistToggle" command opens the taglist window +and moves the cursor to the taglist window. + +You can map a key to invoke these commands. For example, the following command +creates a normal mode mapping for the <F8> key to toggle the taglist window. +> + nnoremap <silent> <F8> :TlistToggle<CR> +< +Add the above mapping to your ~/.vimrc or $HOME/_vimrc file. + +To automatically open the taglist window on Vim startup, set the +'Tlist_Auto_Open' variable to 1. + +You can also open the taglist window on startup using the following command +line: +> + $ vim +TlistOpen +< +Closing the taglist window~ +You can close the taglist window from the taglist window by pressing 'q' or +using the Vim ":q" command. You can also use any of the Vim window commands to +close the taglist window. Invoking the ":TlistToggle" command when the taglist +window is opened, closes the taglist window. You can also use the +":TlistClose" command to close the taglist window. + +To automatically close the taglist window when a tag or file is selected, you +can set the 'Tlist_Close_On_Select' variable to 1. To exit Vim when only the +taglist window is present, set the 'Tlist_Exit_OnlyWindow' variable to 1. + +Jumping to a tag or a file~ +You can select a tag in the taglist window either by pressing the <Enter> key +or by double clicking the tag name using the mouse. To jump to a tag on a +single mouse click set the 'Tlist_Use_SingleClick' variable to 1. + +If the selected file is already opened in a window, then the cursor is moved +to that window. If the file is not currently opened in a window then the file +is opened in the window used by the taglist plugin to show the previously +selected file. If there are no usable windows, then the file is opened in a +new window. The file is not opened in special windows like the quickfix +window, preview window and windows containing buffer with the 'buftype' option +set. + +To jump to the tag in a new window, press the 'o' key. To open the file in the +previous window (Ctrl-W_p) use the 'P' key. You can press the 'p' key to jump +to the tag but still keep the cursor in the taglist window (preview). + +To open the selected file in a tab, use the 't' key. If the file is already +present in a tab then the cursor is moved to that tab otherwise the file is +opened in a new tab. To jump to a tag in a new tab press Ctrl-t. The taglist +window is automatically opened in the newly created tab. + +Instead of jumping to a tag, you can open a file by pressing the <Enter> key +or by double clicking the file name using the mouse. + +In the taglist window, you can use the [[ or <Backspace> key to jump to the +beginning of the previous file. You can use the ]] or <Tab> key to jump to the +beginning of the next file. When you reach the first or last file, the search +wraps around and the jumps to the next/previous file. + +Highlighting the current tag~ +The taglist plugin automatically highlights the name of the current tag in the +taglist window. The Vim |CursorHold| autocmd event is used for this. If the +current tag name is not visible in the taglist window, then the taglist window +contents are scrolled to make that tag name visible. You can also use the +":TlistHighlightTag" command to force the highlighting of the current tag. + +The tag name is highlighted if no activity is performed for |'updatetime'| +milliseconds. The default value for this Vim option is 4 seconds. To avoid +unexpected problems, you should not set the |'updatetime'| option to a very +low value. + +To disable the automatic highlighting of the current tag name in the taglist +window, set the 'Tlist_Auto_Highlight_Tag' variable to zero. + +When entering a Vim buffer/window, the taglist plugin automatically highlights +the current tag in that buffer/window. If you like to disable the automatic +highlighting of the current tag when entering a buffer, set the +'Tlist_Highlight_Tag_On_BufEnter' variable to zero. + +Adding files to the taglist~ +When the taglist window is opened, all the files in the Vim buffer list are +processed and the supported files are added to the taglist. When you edit a +file in Vim, the taglist plugin automatically processes this file and adds it +to the taglist. If you close the taglist window, the tag information in the +taglist is retained. + +To process files even when the taglist window is not open, set the +'Tlist_Process_File_Always' variable to 1. + +You can manually add multiple files to the taglist without opening them using +the ":TlistAddFiles" and the ":TlistAddFilesRecursive" commands. + +For example, to add all the C files in the /my/project/dir directory to the +taglist, you can use the following command: +> + :TlistAddFiles /my/project/dir/*.c +< +Note that when adding several files with a large number of tags or a large +number of files, it will take several seconds to several minutes for the +taglist plugin to process all the files. You should not interrupt the taglist +plugin by pressing <CTRL-C>. + +You can recursively add multiple files from a directory tree using the +":TlistAddFilesRecursive" command: +> + :TlistAddFilesRecursive /my/project/dir *.c +< +This command takes two arguments. The first argument specifies the directory +from which to recursively add the files. The second optional argument +specifies the wildcard matching pattern for selecting the files to add. The +default pattern is * and all the files are added. + +Displaying tags for only one file~ +The taglist window displays the tags for all the files in the Vim buffer list +and all the manually added files. To display the tags for only the current +active buffer, set the 'Tlist_Show_One_File' variable to 1. + +Removing files from the taglist~ +You can remove a file from the taglist window, by pressing the 'd' key when the +cursor is on one of the tags listed for the file in the taglist window. The +removed file will no longer be displayed in the taglist window in the current +Vim session. To again display the tags for the file, open the file in a Vim +window and then use the ":TlistUpdate" command or use ":TlistAddFiles" command +to add the file to the taglist. + +When a buffer is removed from the Vim buffer list using the ":bdelete" or the +":bwipeout" command, the taglist is updated to remove the stored information +for this buffer. + +Updating the tags displayed for a file~ +The taglist plugin keeps track of the modification time of a file. When the +modification time changes (the file is modified), the taglist plugin +automatically updates the tags listed for that file. The modification time of +a file is checked when you enter a window containing that file or when you +load that file. + +You can also update or refresh the tags displayed for a file by pressing the +"u" key in the taglist window. If an existing file is modified, after the file +is saved, the taglist plugin automatically updates the tags displayed for the +file. + +You can also use the ":TlistUpdate" command to update the tags for the current +buffer after you made some changes to it. You should save the modified buffer +before you update the taglist window. Otherwise the listed tags will not +include the new tags created in the buffer. + +If you have deleted the tags displayed for a file in the taglist window using +the 'd' key, you can again display the tags for that file using the +":TlistUpdate" command. + +Controlling the taglist updates~ +To disable the automatic processing of new files or modified files, you can +set the 'Tlist_Auto_Update' variable to zero. When this variable is set to +zero, the taglist is updated only when you use the ":TlistUpdate" command or +the ":TlistAddFiles" or the ":TlistAddFilesRecursive" commands. You can use +this option to control which files are added to the taglist. + +You can use the ":TlistLock" command to lock the taglist contents. After this +command is executed, new files are not automatically added to the taglist. +When the taglist is locked, you can use the ":TlistUpdate" command to add the +current file or the ":TlistAddFiles" or ":TlistAddFilesRecursive" commands to +add new files to the taglist. To unlock the taglist, use the ":TlistUnlock" +command. + +Displaying the tag prototype~ +To display the prototype of the tag under the cursor in the taglist window, +press the space bar. If you place the cursor on a tag name in the taglist +window, then the tag prototype is displayed at the Vim status line after +|'updatetime'| milliseconds. The default value for the |'updatetime'| Vim +option is 4 seconds. + +You can get the name and prototype of a tag without opening the taglist window +and the taglist menu using the ":TlistShowTag" and the ":TlistShowPrototype" +commands. These commands will work only if the current file is already present +in the taglist. To use these commands without opening the taglist window, set +the 'Tlist_Process_File_Always' variable to 1. + +You can use the ":TlistShowTag" command to display the name of the tag at or +before the specified line number in the specified file. If the file name and +line number are not supplied, then this command will display the name of the +current tag. For example, +> + :TlistShowTag + :TlistShowTag myfile.java 100 +< +You can use the ":TlistShowPrototype" command to display the prototype of the +tag at or before the specified line number in the specified file. If the file +name and the line number are not supplied, then this command will display the +prototype of the current tag. For example, +> + :TlistShowPrototype + :TlistShowPrototype myfile.c 50 +< +In the taglist window, when the mouse is moved over a tag name, the tag +prototype is displayed in a balloon. This works only in GUI versions where +balloon evaluation is supported. + +Taglist window contents~ +The taglist window contains the tags defined in various files in the taglist +grouped by the filename and by the tag type (variable, function, class, etc.). +For tags with scope information (like class members, structures inside +structures, etc.), the scope information is displayed in square brackets "[]" +after the tag name. + +The contents of the taglist buffer/window are managed by the taglist plugin. +The |'filetype'| for the taglist buffer is set to 'taglist'. The Vim +|'modifiable'| option is turned off for the taglist buffer. You should not +manually edit the taglist buffer, by setting the |'modifiable'| flag. If you +manually edit the taglist buffer contents, then the taglist plugin will be out +of sync with the taglist buffer contents and the plugin will no longer work +correctly. To redisplay the taglist buffer contents again, close the taglist +window and reopen it. + +Opening and closing the tag and file tree~ +In the taglist window, the tag names are displayed as a foldable tree using +the Vim folding support. You can collapse the tree using the '-' key or using +the Vim |zc| fold command. You can open the tree using the '+' key or using +the Vim |zo| fold command. You can open all the folds using the '*' key or +using the Vim |zR| fold command. You can also use the mouse to open/close the +folds. You can close all the folds using the '=' key. You should not manually +create or delete the folds in the taglist window. + +To automatically close the fold for the inactive files/buffers and open only +the fold for the current buffer in the taglist window, set the +'Tlist_File_Fold_Auto_Close' variable to 1. + +Sorting the tags for a file~ +The tags displayed in the taglist window can be sorted either by their name or +by their chronological order. The default sorting method is by the order in +which the tags appear in a file. You can change the default sort method by +setting the 'Tlist_Sort_Type' variable to either "name" or "order". You can +sort the tags by their name by pressing the "s" key in the taglist window. You +can again sort the tags by their chronological order using the "s" key. Each +file in the taglist window can be sorted using different order. + +Zooming in and out of the taglist window~ +You can press the 'x' key in the taglist window to maximize the taglist +window width/height. The window will be maximized to the maximum possible +width/height without closing the other existing windows. You can again press +'x' to restore the taglist window to the default width/height. + + *taglist-session* +Taglist Session~ +A taglist session refers to the group of files and their tags stored in the +taglist in a Vim session. + +You can save and restore a taglist session (and all the displayed tags) using +the ":TlistSessionSave" and ":TlistSessionLoad" commands. + +To save the information about the tags and files in the taglist to a file, use +the ":TlistSessionSave" command and specify the filename: +> + :TlistSessionSave <file name> +< +To load a saved taglist session, use the ":TlistSessionLoad" command: > + + :TlistSessionLoad <file name> +< +When you load a taglist session file, the tags stored in the file will be +added to the tags already stored in the taglist. + +The taglist session feature can be used to save the tags for large files or a +group of frequently used files (like a project). By using the taglist session +file, you can minimize the amount to time it takes to load/refresh the taglist +for multiple files. + +You can create more than one taglist session file for multiple groups of +files. + +Displaying the tag name in the Vim status line or the window title bar~ +You can use the Tlist_Get_Tagname_By_Line() function provided by the taglist +plugin to display the current tag name in the Vim status line or the window +title bar. Similarly, you can use the Tlist_Get_Tag_Prototype_By_Line() +function to display the current tag prototype in the Vim status line or the +window title bar. + +For example, the following command can be used to display the current tag name +in the status line: +> + :set statusline=%<%f%=%([%{Tlist_Get_Tagname_By_Line()}]%) +< +The following command can be used to display the current tag name in the +window title bar: +> + :set title titlestring=%<%f\ %([%{Tlist_Get_Tagname_By_Line()}]%) +< +Note that the current tag name can be displayed only after the file is +processed by the taglist plugin. For this, you have to either set the +'Tlist_Process_File_Always' variable to 1 or open the taglist window or use +the taglist menu. For more information about configuring the Vim status line, +refer to the documentation for the Vim |'statusline'| option. + +Changing the taglist window highlighting~ +The following Vim highlight groups are defined and used to highlight the +various entities in the taglist window: + + TagListTagName - Used for tag names + TagListTagScope - Used for tag scope + TagListTitle - Used for tag titles + TagListComment - Used for comments + TagListFileName - Used for filenames + +By default, these highlight groups are linked to the standard Vim highlight +groups. If you want to change the colors used for these highlight groups, +prefix the highlight group name with 'My' and define it in your .vimrc or +.gvimrc file: MyTagListTagName, MyTagListTagScope, MyTagListTitle, +MyTagListComment and MyTagListFileName. For example, to change the colors +used for tag names, you can use the following command: +> + :highlight MyTagListTagName guifg=blue ctermfg=blue +< +Controlling the taglist window~ +To use a horizontally split taglist window, instead of a vertically split +window, set the 'Tlist_Use_Horiz_Window' variable to 1. + +To use a vertically split taglist window on the rightmost side of the Vim +window, set the 'Tlist_Use_Right_Window' variable to 1. + +You can specify the width of the vertically split taglist window, by setting +the 'Tlist_WinWidth' variable. You can specify the height of the horizontally +split taglist window, by setting the 'Tlist_WinHeight' variable. + +When opening a vertically split taglist window, the Vim window width is +increased to accommodate the new taglist window. When the taglist window is +closed, the Vim window is reduced. To disable this, set the +'Tlist_Inc_Winwidth' variable to zero. + +To reduce the number of empty lines in the taglist window, set the +'Tlist_Compact_Format' variable to 1. + +To not display the Vim fold column in the taglist window, set the +'Tlist_Enable_Fold_Column' variable to zero. + +To display the tag prototypes instead of the tag names in the taglist window, +set the 'Tlist_Display_Prototype' variable to 1. + +To not display the scope of the tags next to the tag names, set the +'Tlist_Display_Tag_Scope' variable to zero. + + *taglist-keys* +Taglist window key list~ +The following table lists the description of the keys that can be used +in the taglist window. + + Key Description~ + + <CR> Jump to the location where the tag under cursor is + defined. + o Jump to the location where the tag under cursor is + defined in a new window. + P Jump to the tag in the previous (Ctrl-W_p) window. + p Display the tag definition in the file window and + keep the cursor in the taglist window itself. + t Jump to the tag in a new tab. If the file is already + opened in a tab, move to that tab. + Ctrl-t Jump to the tag in a new tab. + <Space> Display the prototype of the tag under the cursor. + For file names, display the full path to the file, + file type and the number of tags. For tag types, display the + tag type and the number of tags. + u Update the tags listed in the taglist window + s Change the sort order of the tags (by name or by order) + d Remove the tags for the file under the cursor + x Zoom-in or Zoom-out the taglist window + + Open a fold + - Close a fold + * Open all folds + = Close all folds + [[ Jump to the beginning of the previous file + <Backspace> Jump to the beginning of the previous file + ]] Jump to the beginning of the next file + <Tab> Jump to the beginning of the next file + q Close the taglist window + <F1> Display help + +The above keys will work in both the normal mode and the insert mode. + + *taglist-menu* +Taglist menu~ +When using GUI Vim, the taglist plugin can display the tags defined in the +current file in the drop-down menu and the popup menu. By default, this +feature is turned off. To turn on this feature, set the 'Tlist_Show_Menu' +variable to 1. + +You can jump to a tag by selecting the tag name from the menu. You can use the +taglist menu independent of the taglist window i.e. you don't need to open the +taglist window to get the taglist menu. + +When you switch between files/buffers, the taglist menu is automatically +updated to display the tags defined in the current file/buffer. + +The tags are grouped by their type (variables, functions, classes, methods, +etc.) and displayed as a separate sub-menu for each type. If all the tags +defined in a file are of the same type (e.g. functions), then the sub-menu is +not used. + +If the number of items in a tag type submenu exceeds the value specified by +the 'Tlist_Max_Submenu_Items' variable, then the submenu will be split into +multiple submenus. The default setting for 'Tlist_Max_Submenu_Items' is 25. +The first and last tag names in the submenu are used to form the submenu name. +The menu items are prefixed by alpha-numeric characters for easy selection by +keyboard. + +If the popup menu support is enabled (the |'mousemodel'| option contains +"popup"), then the tags menu is added to the popup menu. You can access +the popup menu by right clicking on the GUI window. + +You can regenerate the tags menu by selecting the 'Tags->Refresh menu' entry. +You can sort the tags listed in the menu either by name or by order by +selecting the 'Tags->Sort menu by->Name/Order' menu entry. + +You can tear-off the Tags menu and keep it on the side of the Vim window +for quickly locating the tags. + +Using the taglist plugin with the winmanager plugin~ +You can use the taglist plugin with the winmanager plugin. This will allow you +to use the file explorer, buffer explorer and the taglist plugin at the same +time in different windows. To use the taglist plugin with the winmanager +plugin, set 'TagList' in the 'winManagerWindowLayout' variable. For example, +to use the file explorer plugin and the taglist plugin at the same time, use +the following setting: > + + let winManagerWindowLayout = 'FileExplorer|TagList' +< +Getting help~ +If you have installed the taglist help file (this file), then you can use the +Vim ":help taglist-<keyword>" command to get help on the various taglist +topics. + +You can press the <F1> key in the taglist window to display the help +information about using the taglist window. If you again press the <F1> key, +the help information is removed from the taglist window. + + *taglist-debug* +Debugging the taglist plugin~ +You can use the ":TlistDebug" command to enable logging of the debug messages +from the taglist plugin. To display the logged debug messages, you can use the +":TlistMessages" command. To disable the logging of the debug messages, use +the ":TlistUndebug" command. + +You can specify a file name to the ":TlistDebug" command to log the debug +messages to a file. Otherwise, the debug messages are stored in a script-local +variable. In the later case, to minimize memory usage, only the last 3000 +characters from the debug messages are stored. + +============================================================================== + *taglist-options* +6. Options~ + +A number of Vim variables control the behavior of the taglist plugin. These +variables are initialized to a default value. By changing these variables you +can change the behavior of the taglist plugin. You need to change these +settings only if you want to change the behavior of the taglist plugin. You +should use the |:let| command in your .vimrc file to change the setting of any +of these variables. + +The configurable taglist variables are listed below. For a detailed +description of these variables refer to the text below this table. + +|'Tlist_Auto_Highlight_Tag'| Automatically highlight the current tag in the + taglist. +|'Tlist_Auto_Open'| Open the taglist window when Vim starts. +|'Tlist_Auto_Update'| Automatically update the taglist to include + newly edited files. +|'Tlist_Close_On_Select'| Close the taglist window when a file or tag is + selected. +|'Tlist_Compact_Format'| Remove extra information and blank lines from + the taglist window. +|'Tlist_Ctags_Cmd'| Specifies the path to the ctags utility. +|'Tlist_Display_Prototype'| Show prototypes and not tags in the taglist + window. +|'Tlist_Display_Tag_Scope'| Show tag scope next to the tag name. +|'Tlist_Enable_Fold_Column'| Show the fold indicator column in the taglist + window. +|'Tlist_Exit_OnlyWindow'| Close Vim if the taglist is the only window. +|'Tlist_File_Fold_Auto_Close'| Close tag folds for inactive buffers. +|'Tlist_GainFocus_On_ToggleOpen'| + Jump to taglist window on open. +|'Tlist_Highlight_Tag_On_BufEnter'| + On entering a buffer, automatically highlight + the current tag. +|'Tlist_Inc_Winwidth'| Increase the Vim window width to accommodate + the taglist window. +|'Tlist_Max_Submenu_Items'| Maximum number of items in a tags sub-menu. +|'Tlist_Max_Tag_Length'| Maximum tag length used in a tag menu entry. +|'Tlist_Process_File_Always'| Process files even when the taglist window is + closed. +|'Tlist_Show_Menu'| Display the tags menu. +|'Tlist_Show_One_File'| Show tags for the current buffer only. +|'Tlist_Sort_Type'| Sort method used for arranging the tags. +|'Tlist_Use_Horiz_Window'| Use a horizontally split window for the + taglist window. +|'Tlist_Use_Right_Window'| Place the taglist window on the right side. +|'Tlist_Use_SingleClick'| Single click on a tag jumps to it. +|'Tlist_WinHeight'| Horizontally split taglist window height. +|'Tlist_WinWidth'| Vertically split taglist window width. + + *'Tlist_Auto_Highlight_Tag'* +Tlist_Auto_Highlight_Tag~ +The taglist plugin will automatically highlight the current tag in the taglist +window. If you want to disable this, then you can set the +'Tlist_Auto_Highlight_Tag' variable to zero. Note that even though the current +tag highlighting is disabled, the tags for a new file will still be added to +the taglist window. +> + let Tlist_Auto_Highlight_Tag = 0 +< +With the above variable set to 1, you can use the ":TlistHighlightTag" command +to highlight the current tag. + + *'Tlist_Auto_Open'* +Tlist_Auto_Open~ +To automatically open the taglist window, when you start Vim, you can set the +'Tlist_Auto_Open' variable to 1. By default, this variable is set to zero and +the taglist window will not be opened automatically on Vim startup. +> + let Tlist_Auto_Open = 1 +< +The taglist window is opened only when a supported type of file is opened on +Vim startup. For example, if you open text files, then the taglist window will +not be opened. + + *'Tlist_Auto_Update'* +Tlist_Auto_Update~ +When a new file is edited, the tags defined in the file are automatically +processed and added to the taglist. To stop adding new files to the taglist, +set the 'Tlist_Auto_Update' variable to zero. By default, this variable is set +to 1. +> + let Tlist_Auto_Update = 0 +< +With the above variable set to 1, you can use the ":TlistUpdate" command to +add the tags defined in the current file to the taglist. + + *'Tlist_Close_On_Select'* +Tlist_Close_On_Select~ +If you want to close the taglist window when a file or tag is selected, then +set the 'Tlist_Close_On_Select' variable to 1. By default, this variable is +set zero and when you select a tag or file from the taglist window, the window +is not closed. +> + let Tlist_Close_On_Select = 1 +< + *'Tlist_Compact_Format'* +Tlist_Compact_Format~ +By default, empty lines are used to separate different tag types displayed for +a file and the tags displayed for different files in the taglist window. If +you want to display as many tags as possible in the taglist window, you can +set the 'Tlist_Compact_Format' variable to 1 to get a compact display. +> + let Tlist_Compact_Format = 1 +< + *'Tlist_Ctags_Cmd'* +Tlist_Ctags_Cmd~ +The 'Tlist_Ctags_Cmd' variable specifies the location (path) of the exuberant +ctags utility. If exuberant ctags is present in any one of the directories in +the PATH environment variable, then there is no need to set this variable. + +The exuberant ctags tool can be installed under different names. When the +taglist plugin starts up, if the 'Tlist_Ctags_Cmd' variable is not set, it +checks for the names exuberant-ctags, exctags, ctags, ctags.exe and tags in +the PATH environment variable. If any one of the named executable is found, +then the Tlist_Ctags_Cmd variable is set to that name. + +If exuberant ctags is not present in one of the directories specified in the +PATH environment variable, then set this variable to point to the location of +the ctags utility in your system. Note that this variable should point to the +fully qualified exuberant ctags location and NOT to the directory in which +exuberant ctags is installed. If the exuberant ctags tool is not found in +either PATH or in the specified location, then the taglist plugin will not be +loaded. Examples: +> + let Tlist_Ctags_Cmd = 'd:\tools\ctags.exe' + let Tlist_Ctags_Cmd = '/usr/local/bin/ctags' +< + *'Tlist_Display_Prototype'* +Tlist_Display_Prototype~ +By default, only the tag name will be displayed in the taglist window. If you +like to see tag prototypes instead of names, set the 'Tlist_Display_Prototype' +variable to 1. By default, this variable is set to zero and only tag names +will be displayed. +> + let Tlist_Display_Prototype = 1 +< + *'Tlist_Display_Tag_Scope'* +Tlist_Display_Tag_Scope~ +By default, the scope of a tag (like a C++ class) will be displayed in +square brackets next to the tag name. If you don't want the tag scopes +to be displayed, then set the 'Tlist_Display_Tag_Scope' to zero. By default, +this variable is set to 1 and the tag scopes will be displayed. +> + let Tlist_Display_Tag_Scope = 0 +< + *'Tlist_Enable_Fold_Column'* +Tlist_Enable_Fold_Column~ +By default, the Vim fold column is enabled and displayed in the taglist +window. If you wish to disable this (for example, when you are working with a +narrow Vim window or terminal), you can set the 'Tlist_Enable_Fold_Column' +variable to zero. +> + let Tlist_Enable_Fold_Column = 1 +< + *'Tlist_Exit_OnlyWindow'* +Tlist_Exit_OnlyWindow~ +If you want to exit Vim if only the taglist window is currently opened, then +set the 'Tlist_Exit_OnlyWindow' variable to 1. By default, this variable is +set to zero and the Vim instance will not be closed if only the taglist window +is present. +> + let Tlist_Exit_OnlyWindow = 1 +< + *'Tlist_File_Fold_Auto_Close'* +Tlist_File_Fold_Auto_Close~ +By default, the tags tree displayed in the taglist window for all the files is +opened. You can close/fold the tags tree for the files manually. To +automatically close the tags tree for inactive files, you can set the +'Tlist_File_Fold_Auto_Close' variable to 1. When this variable is set to 1, +the tags tree for the current buffer is automatically opened and for all the +other buffers is closed. +> + let Tlist_File_Fold_Auto_Close = 1 +< + *'Tlist_GainFocus_On_ToggleOpen'* +Tlist_GainFocus_On_ToggleOpen~ +When the taglist window is opened using the ':TlistToggle' command, this +option controls whether the cursor is moved to the taglist window or remains +in the current window. By default, this option is set to 0 and the cursor +remains in the current window. When this variable is set to 1, the cursor +moves to the taglist window after opening the taglist window. +> + let Tlist_GainFocus_On_ToggleOpen = 1 +< + *'Tlist_Highlight_Tag_On_BufEnter'* +Tlist_Highlight_Tag_On_BufEnter~ +When you enter a Vim buffer/window, the current tag in that buffer/window is +automatically highlighted in the taglist window. If the current tag name is +not visible in the taglist window, then the taglist window contents are +scrolled to make that tag name visible. If you like to disable the automatic +highlighting of the current tag when entering a buffer, you can set the +'Tlist_Highlight_Tag_On_BufEnter' variable to zero. The default setting for +this variable is 1. +> + let Tlist_Highlight_Tag_On_BufEnter = 0 +< + *'Tlist_Inc_Winwidth'* +Tlist_Inc_Winwidth~ +By default, when the width of the window is less than 100 and a new taglist +window is opened vertically, then the window width is increased by the value +set in the 'Tlist_WinWidth' variable to accommodate the new window. The value +of this variable is used only if you are using a vertically split taglist +window. + +If your terminal doesn't support changing the window width from Vim (older +version of xterm running in a Unix system) or if you see any weird problems in +the screen due to the change in the window width or if you prefer not to +adjust the window width then set the 'Tlist_Inc_Winwidth' variable to zero. +CAUTION: If you are using the MS-Windows version of Vim in a MS-DOS command +window then you must set this variable to zero, otherwise the system may hang +due to a Vim limitation (explained in :help win32-problems) +> + let Tlist_Inc_Winwidth = 0 +< + *'Tlist_Max_Submenu_Items'* +Tlist_Max_Submenu_Items~ +If a file contains too many tags of a particular type (function, variable, +class, etc.), greater than that specified by the 'Tlist_Max_Submenu_Items' +variable, then the menu for that tag type will be split into multiple +sub-menus. The default setting for the 'Tlist_Max_Submenu_Items' variable is +25. This can be changed by setting the 'Tlist_Max_Submenu_Items' variable: +> + let Tlist_Max_Submenu_Items = 20 +< +The name of the submenu is formed using the names of the first and the last +tag entries in that submenu. + + *'Tlist_Max_Tag_Length'* +Tlist_Max_Tag_Length~ +Only the first 'Tlist_Max_Tag_Length' characters from the tag names will be +used to form the tag type submenu name. The default value for this variable is +10. Change the 'Tlist_Max_Tag_Length' setting if you want to include more or +less characters: +> + let Tlist_Max_Tag_Length = 10 +< + *'Tlist_Process_File_Always'* +Tlist_Process_File_Always~ +By default, the taglist plugin will generate and process the tags defined in +the newly opened files only when the taglist window is opened or when the +taglist menu is enabled. When the taglist window is closed, the taglist plugin +will stop processing the tags for newly opened files. + +You can set the 'Tlist_Process_File_Always' variable to 1 to generate the list +of tags for new files even when the taglist window is closed and the taglist +menu is disabled. +> + let Tlist_Process_File_Always = 1 +< +To use the ":TlistShowTag" and the ":TlistShowPrototype" commands without the +taglist window and the taglist menu, you should set this variable to 1. + + *'Tlist_Show_Menu'* +Tlist_Show_Menu~ +When using GUI Vim, you can display the tags defined in the current file in a +menu named "Tags". By default, this feature is turned off. To turn on this +feature, set the 'Tlist_Show_Menu' variable to 1: +> + let Tlist_Show_Menu = 1 +< + *'Tlist_Show_One_File'* +Tlist_Show_One_File~ +By default, the taglist plugin will display the tags defined in all the loaded +buffers in the taglist window. If you prefer to display the tags defined only +in the current buffer, then you can set the 'Tlist_Show_One_File' to 1. When +this variable is set to 1, as you switch between buffers, the taglist window +will be refreshed to display the tags for the current buffer and the tags for +the previous buffer will be removed. +> + let Tlist_Show_One_File = 1 +< + *'Tlist_Sort_Type'* +Tlist_Sort_Type~ +The 'Tlist_Sort_Type' variable specifies the sort order for the tags in the +taglist window. The tags can be sorted either alphabetically by their name or +by the order of their appearance in the file (chronological order). By +default, the tag names will be listed by the order in which they are defined +in the file. You can change the sort type (from name to order or from order to +name) by pressing the "s" key in the taglist window. You can also change the +default sort order by setting 'Tlist_Sort_Type' to "name" or "order": +> + let Tlist_Sort_Type = "name" +< + *'Tlist_Use_Horiz_Window'* +Tlist_Use_Horiz_Window~ +Be default, the tag names are displayed in a vertically split window. If you +prefer a horizontally split window, then set the 'Tlist_Use_Horiz_Window' +variable to 1. If you are running MS-Windows version of Vim in a MS-DOS +command window, then you should use a horizontally split window instead of a +vertically split window. Also, if you are using an older version of xterm in a +Unix system that doesn't support changing the xterm window width, you should +use a horizontally split window. +> + let Tlist_Use_Horiz_Window = 1 +< + *'Tlist_Use_Right_Window'* +Tlist_Use_Right_Window~ +By default, the vertically split taglist window will appear on the left hand +side. If you prefer to open the window on the right hand side, you can set the +'Tlist_Use_Right_Window' variable to 1: +> + let Tlist_Use_Right_Window = 1 +< + *'Tlist_Use_SingleClick'* +Tlist_Use_SingleClick~ +By default, when you double click on the tag name using the left mouse +button, the cursor will be positioned at the definition of the tag. You +can set the 'Tlist_Use_SingleClick' variable to 1 to jump to a tag when +you single click on the tag name using the mouse. By default this variable +is set to zero. +> + let Tlist_Use_SingleClick = 1 +< +Due to a bug in Vim, if you set 'Tlist_Use_SingleClick' to 1 and try to resize +the taglist window using the mouse, then Vim will crash. This problem is fixed +in Vim 6.3 and above. In the meantime, instead of resizing the taglist window +using the mouse, you can use normal Vim window resizing commands to resize the +taglist window. + + *'Tlist_WinHeight'* +Tlist_WinHeight~ +The default height of the horizontally split taglist window is 10. This can be +changed by modifying the 'Tlist_WinHeight' variable: +> + let Tlist_WinHeight = 20 +< +The |'winfixheight'| option is set for the taglist window, to maintain the +height of the taglist window, when new Vim windows are opened and existing +windows are closed. + + *'Tlist_WinWidth'* +Tlist_WinWidth~ +The default width of the vertically split taglist window is 30. This can be +changed by modifying the 'Tlist_WinWidth' variable: +> + let Tlist_WinWidth = 20 +< +Note that the value of the |'winwidth'| option setting determines the minimum +width of the current window. If you set the 'Tlist_WinWidth' variable to a +value less than that of the |'winwidth'| option setting, then Vim will use the +value of the |'winwidth'| option. + +When new Vim windows are opened and existing windows are closed, the taglist +plugin will try to maintain the width of the taglist window to the size +specified by the 'Tlist_WinWidth' variable. + +============================================================================== + *taglist-commands* +7. Commands~ + +The taglist plugin provides the following ex-mode commands: + +|:TlistAddFiles| Add multiple files to the taglist. +|:TlistAddFilesRecursive| + Add files recursively to the taglist. +|:TlistClose| Close the taglist window. +|:TlistDebug| Start logging of taglist debug messages. +|:TlistLock| Stop adding new files to the taglist. +|:TlistMessages| Display the logged taglist plugin debug messages. +|:TlistOpen| Open and jump to the taglist window. +|:TlistSessionSave| Save the information about files and tags in the + taglist to a session file. +|:TlistSessionLoad| Load the information about files and tags stored + in a session file to taglist. +|:TlistShowPrototype| Display the prototype of the tag at or before the + specified line number. +|:TlistShowTag| Display the name of the tag defined at or before the + specified line number. +|:TlistHighlightTag| Highlight the current tag in the taglist window. +|:TlistToggle| Open or close (toggle) the taglist window. +|:TlistUndebug| Stop logging of taglist debug messages. +|:TlistUnlock| Start adding new files to the taglist. +|:TlistUpdate| Update the tags for the current buffer. + + *:TlistAddFiles* +:TlistAddFiles {file(s)} [file(s) ...] + Add one or more specified files to the taglist. You can + specify multiple filenames using wildcards. To specify a + file name with space character, you should escape the space + character with a backslash. + Examples: +> + :TlistAddFiles *.c *.cpp + :TlistAddFiles file1.html file2.html +< + If you specify a large number of files, then it will take some + time for the taglist plugin to process all of them. The + specified files will not be edited in a Vim window and will + not be added to the Vim buffer list. + + *:TlistAddFilesRecursive* +:TlistAddFilesRecursive {directory} [ {pattern} ] + Add files matching {pattern} recursively from the specified + {directory} to the taglist. If {pattern} is not specified, + then '*' is assumed. To specify the current directory, use "." + for {directory}. To specify a directory name with space + character, you should escape the space character with a + backslash. + Examples: +> + :TlistAddFilesRecursive myproject *.java + :TlistAddFilesRecursive smallproject +< + If large number of files are present in the specified + directory tree, then it will take some time for the taglist + plugin to process all of them. + + *:TlistClose* +:TlistClose Close the taglist window. This command can be used from any + one of the Vim windows. + + *:TlistDebug* +:TlistDebug [filename] + Start logging of debug messages from the taglist plugin. + If {filename} is specified, then the debug messages are stored + in the specified file. Otherwise, the debug messages are + stored in a script local variable. If the file {filename} is + already present, then it is overwritten. + + *:TlistLock* +:TlistLock + Lock the taglist and don't process new files. After this + command is executed, newly edited files will not be added to + the taglist. + + *:TlistMessages* +:TlistMessages + Display the logged debug messages from the taglist plugin + in a window. This command works only when logging to a + script-local variable. + + *:TlistOpen* +:TlistOpen Open and jump to the taglist window. Creates the taglist + window, if the window is not opened currently. After executing + this command, the cursor is moved to the taglist window. When + the taglist window is opened for the first time, all the files + in the buffer list are processed and the tags defined in them + are displayed in the taglist window. + + *:TlistSessionSave* +:TlistSessionSave {filename} + Saves the information about files and tags in the taglist to + the specified file. This command can be used to save and + restore the taglist contents across Vim sessions. + + *:TlistSessionLoad* +:TlistSessionLoad {filename} + Load the information about files and tags stored in the + specified session file to the taglist. + + *:TlistShowPrototype* +:TlistShowPrototype [filename] [linenumber] + Display the prototype of the tag at or before the specified + line number. If the file name and the line number are not + specified, then the current file name and line number are + used. A tag spans multiple lines starting from the line where + it is defined to the line before the next tag. This command + displays the prototype for the tag for any line number in this + range. + + *:TlistShowTag* +:TlistShowTag [filename] [linenumber] + Display the name of the tag defined at or before the specified + line number. If the file name and the line number are not + specified, then the current file name and line number are + used. A tag spans multiple lines starting from the line where + it is defined to the line before the next tag. This command + displays the tag name for any line number in this range. + + *:TlistHighlightTag* +:TlistHighlightTag + Highlight the current tag in the taglist window. By default, + the taglist plugin periodically updates the taglist window to + highlight the current tag. This command can be used to force + the taglist plugin to highlight the current tag. + + *:TlistToggle* +:TlistToggle Open or close (toggle) the taglist window. Opens the taglist + window, if the window is not opened currently. Closes the + taglist window, if the taglist window is already opened. When + the taglist window is opened for the first time, all the files + in the buffer list are processed and the tags are displayed in + the taglist window. After executing this command, the cursor + is not moved from the current window to the taglist window. + + *:TlistUndebug* +:TlistUndebug + Stop logging of debug messages from the taglist plugin. + + *:TlistUnlock* +:TlistUnlock + Unlock the taglist and start processing newly edited files. + + *:TlistUpdate* +:TlistUpdate Update the tags information for the current buffer. This + command can be used to re-process the current file/buffer and + get the tags information. As the taglist plugin uses the file + saved in the disk (instead of the file displayed in a Vim + buffer), you should save a modified buffer before you update + the taglist. Otherwise the listed tags will not include the + new tags created in the buffer. You can use this command even + when the taglist window is not opened. + +============================================================================== + *taglist-functions* +8. Global functions~ + +The taglist plugin provides several global functions that can be used from +other Vim plugins to interact with the taglist plugin. These functions are +described below. + +|Tlist_Update_File_Tags()| Update the tags for the specified file +|Tlist_Get_Tag_Prototype_By_Line()| Return the prototype of the tag at or + before the specified line number in the + specified file. +|Tlist_Get_Tagname_By_Line()| Return the name of the tag at or + before the specified line number in + the specified file. +|Tlist_Set_App()| Set the name of the application + controlling the taglist window. + + *Tlist_Update_File_Tags()* +Tlist_Update_File_Tags({filename}, {filetype}) + Update the tags for the file {filename}. The second argument + specifies the Vim filetype for the file. If the taglist plugin + has not processed the file previously, then the exuberant + ctags tool is invoked to generate the tags for the file. + + *Tlist_Get_Tag_Prototype_By_Line()* +Tlist_Get_Tag_Prototype_By_Line([{filename}, {linenumber}]) + Return the prototype of the tag at or before the specified + line number in the specified file. If the filename and line + number are not specified, then the current buffer name and the + current line number are used. + + *Tlist_Get_Tagname_By_Line()* +Tlist_Get_Tagname_By_Line([{filename}, {linenumber}]) + Return the name of the tag at or before the specified line + number in the specified file. If the filename and line number + are not specified, then the current buffer name and the + current line number are used. + + *Tlist_Set_App()* +Tlist_Set_App({appname}) + Set the name of the plugin that controls the taglist plugin + window and buffer. This can be used to integrate the taglist + plugin with other Vim plugins. + + For example, the winmanager plugin and the Cream package use + this function and specify the appname as "winmanager" and + "cream" respectively. + + By default, the taglist plugin is a stand-alone plugin and + controls the taglist window and buffer. If the taglist window + is controlled by an external plugin, then the appname should + be set appropriately. + +============================================================================== + *taglist-extend* +9. Extending~ + +The taglist plugin supports all the languages supported by the exuberant ctags +tool, which includes the following languages: Assembly, ASP, Awk, Beta, C, +C++, C#, Cobol, Eiffel, Erlang, Fortran, HTML, Java, Javascript, Lisp, Lua, +Make, Pascal, Perl, PHP, Python, Rexx, Ruby, Scheme, Shell, Slang, SML, Sql, +TCL, Verilog, Vim and Yacc. + +You can extend the taglist plugin to add support for new languages and also +modify the support for the above listed languages. + +You should NOT make modifications to the taglist plugin script file to add +support for new languages. You will lose these changes when you upgrade to the +next version of the taglist plugin. Instead you should follow the below +described instructions to extend the taglist plugin. + +You can extend the taglist plugin by setting variables in the .vimrc or _vimrc +file. The name of these variables depends on the language name and is +described below. + +Modifying support for an existing language~ +To modify the support for an already supported language, you have to set the +tlist_xxx_settings variable in the ~/.vimrc or $HOME/_vimrc file. Replace xxx +with the Vim filetype name for the language file. For example, to modify the +support for the perl language files, you have to set the tlist_perl_settings +variable. To modify the support for java files, you have to set the +tlist_java_settings variable. + +To determine the filetype name used by Vim for a file, use the following +command in the buffer containing the file: + + :set filetype + +The above command will display the Vim filetype for the current buffer. + +The format of the value set in the tlist_xxx_settings variable is + + <language_name>;flag1:name1;flag2:name2;flag3:name3 + +The different fields in the value are separated by the ';' character. + +The first field 'language_name' is the name used by exuberant ctags to refer +to this language file. This name can be different from the file type name used +by Vim. For example, for C++, the language name used by ctags is 'c++' but the +filetype name used by Vim is 'cpp'. To get the list of language names +supported by exuberant ctags, use the following command: + + $ ctags --list-maps=all + +The remaining fields follow the format "flag:name". The sub-field 'flag' is +the language specific flag used by exuberant ctags to generate the +corresponding tags. For example, for the C language, to list only the +functions, the 'f' flag is used. To get the list of flags supported by +exuberant ctags for the various languages use the following command: + + $ ctags --list-kinds=all + +The sub-field 'name' specifies the title text to use for displaying the tags +of a particular type. For example, 'name' can be set to 'functions'. This +field can be set to any text string name. + +For example, to list only the classes and functions defined in a C++ language +file, add the following line to your .vimrc file: + + let tlist_cpp_settings = 'c++;c:class;f:function' + +In the above setting, 'cpp' is the Vim filetype name and 'c++' is the name +used by the exuberant ctags tool. 'c' and 'f' are the flags passed to +exuberant ctags to list C++ classes and functions and 'class' is the title +used for the class tags and 'function' is the title used for the function tags +in the taglist window. + +For example, to display only functions defined in a C file and to use "My +Functions" as the title for the function tags, use + + let tlist_c_settings = 'c;f:My Functions' + +When you set the tlist_xxx_settings variable, you will override the default +setting used by the taglist plugin for the 'xxx' language. You cannot add to +the default options used by the taglist plugin for a particular file type. To +add to the options used by the taglist plugin for a language, copy the option +values from the taglist plugin file to your .vimrc file and modify it. + +Adding support for a new language~ +If you want to add support for a new language to the taglist plugin, you need +to first extend the exuberant ctags tool. For more information about extending +exuberant ctags, visit the following page: + + http://ctags.sourceforge.net/EXTENDING.html + +To add support for a new language, set the tlist_xxx_settings variable in the +~/.vimrc file appropriately as described above. Replace 'xxx' in the variable +name with the Vim filetype name for the new language. + +For example, to extend the taglist plugin to support the latex language, you +can use the following line (assuming, you have already extended exuberant +ctags to support the latex language): + + let tlist_tex_settings='latex;b:bibitem;c:command;l:label' + +With the above line, when you edit files of filetype "tex" in Vim, the taglist +plugin will invoke the exuberant ctags tool passing the "latex" filetype and +the flags b, c and l to generate the tags. The text heading 'bibitem', +'command' and 'label' will be used in the taglist window for the tags which +are generated for the flags b, c and l respectively. + +============================================================================== + *taglist-faq* +10. Frequently Asked Questions~ + +Q. The taglist plugin doesn't work. The taglist window is empty and the tags + defined in a file are not displayed. +A. Are you using Vim version 6.0 and above? The taglist plugin relies on the + features supported by Vim version 6.0 and above. You can use the following + command to get the Vim version: +> + $ vim --version +< + Are you using exuberant ctags version 5.0 and above? The taglist plugin + relies on the features supported by exuberant ctags and will not work with + GNU ctags or the Unix ctags utility. You can use the following command to + determine whether the ctags installed in your system is exuberant ctags: +> + $ ctags --version +< + Is exuberant ctags present in one of the directories in your PATH? If not, + you need to set the Tlist_Ctags_Cmd variable to point to the location of + exuberant ctags. Use the following Vim command to verify that this is setup + correctly: +> + :echo system(Tlist_Ctags_Cmd . ' --version') +< + The above command should display the version information for exuberant + ctags. + + Did you turn on the Vim filetype detection? The taglist plugin relies on + the filetype detected by Vim and passes the filetype to the exuberant ctags + utility to parse the tags. Check the output of the following Vim command: +> + :filetype +< + The output of the above command should contain "filetype detection:ON". + To turn on the filetype detection, add the following line to the .vimrc or + _vimrc file: +> + filetype on +< + Is your version of Vim compiled with the support for the system() function? + The following Vim command should display 1: +> + :echo exists('*system') +< + In some Linux distributions (particularly Suse Linux), the default Vim + installation is built without the support for the system() function. The + taglist plugin uses the system() function to invoke the exuberant ctags + utility. You need to rebuild Vim after enabling the support for the + system() function. If you use the default build options, the system() + function will be supported. + + Do you have the |'shellslash'| option set? You can try disabling the + |'shellslash'| option. When the taglist plugin invokes the exuberant ctags + utility with the path to the file, if the incorrect slashes are used, then + you will see errors. + + Check the shell related Vim options values using the following command: +> + :set shell? shellcmdflag? shellpipe? + :set shellquote? shellredir? shellxquote? +< + If these options are set in your .vimrc or _vimrc file, try removing those + lines. + + Are you using a Unix shell in a MS-Windows environment? For example, + the Unix shell from the MKS-toolkit. Do you have the SHELL environment + set to point to this shell? You can try resetting the SHELL environment + variable. + + If you are using a Unix shell on MS-Windows, you should try to use + exuberant ctags that is compiled for Unix-like environments so that + exuberant ctags will understand path names with forward slash characters. + + Is your filetype supported by the exuberant ctags utility? The file types + supported by the exuberant ctags utility are listed in the ctags help. If a + file type is not supported, you have to extend exuberant ctags. You can use + the following command to list the filetypes supported by exuberant ctags: +> + ctags --list-languages +< + Run the following command from the shell prompt and check whether the tags + defined in your file are listed in the output from exuberant ctags: +> + ctags -f - --format=2 --excmd=pattern --fields=nks <filename> +< + If you see your tags in the output from the above command, then the + exuberant ctags utility is properly parsing your file. + + Do you have the .ctags or _ctags or the ctags.cnf file in your home + directory for specifying default options or for extending exuberant ctags? + If you do have this file, check the options in this file and make sure + these options are not interfering with the operation of the taglist plugin. + + If you are using MS-Windows, check the value of the TEMP and TMP + environment variables. If these environment variables are set to a path + with space characters in the name, then try using the DOS 8.3 short name + for the path or set them to a path without the space characters in the + name. For example, if the temporary directory name is "C:\Documents and + Settings\xyz\Local Settings\Temp", then try setting the TEMP variable to + the following: +> + set TEMP=C:\DOCUMEN~1\xyz\LOCALS~1\Temp +< + If exuberant ctags is installed in a directory with space characters in the + name, then try adding the directory to the PATH environment variable or try + setting the 'Tlist_Ctags_Cmd' variable to the shortest path name to ctags + or try copying the exuberant ctags to a path without space characters in + the name. For example, if exuberant ctags is installed in the directory + "C:\Program Files\Ctags", then try setting the 'Tlist_Ctags_Cmd' variable + as below: +> + let Tlist_Ctags_Cmd='C:\Progra~1\Ctags\ctags.exe' +< + If you are using a cygwin compiled version of exuberant ctags on MS-Windows, + make sure that either you have the cygwin compiled sort utility installed + and available in your PATH or compile exuberant ctags with internal sort + support. Otherwise, when exuberant ctags sorts the tags output by invoking + the sort utility, it may end up invoking the MS-Windows version of + sort.exe, thereby resulting in failure. + +Q. When I try to open the taglist window, I am seeing the following error + message. How do I fix this problem? + + Taglist: Failed to generate tags for /my/path/to/file + ctags: illegal option -- -^@usage: ctags [-BFadtuwvx] [-f tagsfile] file ... + +A. The taglist plugin will work only with the exuberant ctags tool. You + cannot use the GNU ctags or the Unix ctags program with the taglist plugin. + You will see an error message similar to the one shown above, if you try + use a non-exuberant ctags program with Vim. To fix this problem, either add + the exuberant ctags tool location to the PATH environment variable or set + the 'Tlist_Ctags_Cmd' variable. + +Q. A file has more than one tag with the same name. When I select a tag name + from the taglist window, the cursor is positioned at the incorrect tag + location. +A. The taglist plugin uses the search pattern generated by the exuberant ctags + utility to position the cursor at the location of a tag definition. If a + file has more than one tag with the same name and same prototype, then the + search pattern will be the same. In this case, when searching for the tag + pattern, the cursor may be positioned at the incorrect location. + +Q. I have made some modifications to my file and introduced new + functions/classes/variables. I have not yet saved my file. The taglist + plugin is not displaying the new tags when I update the taglist window. +A. The exuberant ctags utility will process only files that are present in the + disk. To list the tags defined in a file, you have to save the file and + then update the taglist window. + +Q. I have created a ctags file using the exuberant ctags utility for my source + tree. How do I configure the taglist plugin to use this tags file? +A. The taglist plugin doesn't use a tags file stored in disk. For every opened + file, the taglist plugin invokes the exuberant ctags utility to get the + list of tags dynamically. The Vim system() function is used to invoke + exuberant ctags and get the ctags output. This function internally uses a + temporary file to store the output. This file is deleted after the output + from the command is read. So you will never see the file that contains the + output of exuberant ctags. + +Q. When I set the |'updatetime'| option to a low value (less than 1000) and if + I keep pressing a key with the taglist window open, the current buffer + contents are changed. Why is this? +A. The taglist plugin uses the |CursorHold| autocmd to highlight the current + tag. The CursorHold autocmd triggers for every |'updatetime'| milliseconds. + If the |'updatetime'| option is set to a low value, then the CursorHold + autocmd will be triggered frequently. As the taglist plugin changes + the focus to the taglist window to highlight the current tag, this could + interfere with the key movement resulting in changing the contents of + the current buffer. The workaround for this problem is to not set the + |'updatetime'| option to a low value. + +============================================================================== + *taglist-license* +11. License~ +Permission is hereby granted to use and distribute the taglist plugin, with or +without modifications, provided that this copyright notice is copied with it. +Like anything else that's free, taglist.vim is provided *as is* and comes with +no warranty of any kind, either expressed or implied. In no event will the +copyright holder be liable for any damamges resulting from the use of this +software. + +============================================================================== + *taglist-todo* +12. Todo~ + +1. Group tags according to the scope and display them. For example, + group all the tags belonging to a C++/Java class +2. Support for displaying tags in a modified (not-yet-saved) file. +3. Automatically open the taglist window only for selected filetypes. + For other filetypes, close the taglist window. +4. When using the shell from the MKS toolkit, the taglist plugin + doesn't work. +5. The taglist plugin doesn't work with files edited remotely using the + netrw plugin. The exuberant ctags utility cannot process files over + scp/rcp/ftp, etc. + +============================================================================== + +vim:tw=78:ts=8:noet:ft=help: diff --git a/.vim/doc/tags b/.vim/doc/tags new file mode 100644 index 0000000..9049f74 --- /dev/null +++ b/.vim/doc/tags @@ -0,0 +1,1138 @@ +'Tlist_Auto_Highlight_Tag' taglist.txt /*'Tlist_Auto_Highlight_Tag'* +'Tlist_Auto_Open' taglist.txt /*'Tlist_Auto_Open'* +'Tlist_Auto_Update' taglist.txt /*'Tlist_Auto_Update'* +'Tlist_Close_On_Select' taglist.txt /*'Tlist_Close_On_Select'* +'Tlist_Compact_Format' taglist.txt /*'Tlist_Compact_Format'* +'Tlist_Ctags_Cmd' taglist.txt /*'Tlist_Ctags_Cmd'* +'Tlist_Display_Prototype' taglist.txt /*'Tlist_Display_Prototype'* +'Tlist_Display_Tag_Scope' taglist.txt /*'Tlist_Display_Tag_Scope'* +'Tlist_Enable_Fold_Column' taglist.txt /*'Tlist_Enable_Fold_Column'* +'Tlist_Exit_OnlyWindow' taglist.txt /*'Tlist_Exit_OnlyWindow'* +'Tlist_File_Fold_Auto_Close' taglist.txt /*'Tlist_File_Fold_Auto_Close'* +'Tlist_GainFocus_On_ToggleOpen' taglist.txt /*'Tlist_GainFocus_On_ToggleOpen'* +'Tlist_Highlight_Tag_On_BufEnter' taglist.txt /*'Tlist_Highlight_Tag_On_BufEnter'* +'Tlist_Inc_Winwidth' taglist.txt /*'Tlist_Inc_Winwidth'* +'Tlist_Max_Submenu_Items' taglist.txt /*'Tlist_Max_Submenu_Items'* +'Tlist_Max_Tag_Length' taglist.txt /*'Tlist_Max_Tag_Length'* +'Tlist_Process_File_Always' taglist.txt /*'Tlist_Process_File_Always'* +'Tlist_Show_Menu' taglist.txt /*'Tlist_Show_Menu'* +'Tlist_Show_One_File' taglist.txt /*'Tlist_Show_One_File'* +'Tlist_Sort_Type' taglist.txt /*'Tlist_Sort_Type'* +'Tlist_Use_Horiz_Window' taglist.txt /*'Tlist_Use_Horiz_Window'* +'Tlist_Use_Right_Window' taglist.txt /*'Tlist_Use_Right_Window'* +'Tlist_Use_SingleClick' taglist.txt /*'Tlist_Use_SingleClick'* +'Tlist_WinHeight' taglist.txt /*'Tlist_WinHeight'* +'Tlist_WinWidth' taglist.txt /*'Tlist_WinWidth'* +:DocIndex haskellmode.txt /*:DocIndex* +:DocSettings haskellmode.txt /*:DocSettings* +:ExportDocIndex haskellmode.txt /*:ExportDocIndex* +:FlagReference haskellmode.txt /*:FlagReference* +:GHCReload haskellmode.txt /*:GHCReload* +:GHCStaticOptions haskellmode.txt /*:GHCStaticOptions* +:GHCi haskellmode.txt /*:GHCi* +:HpasteIndex haskellmode.txt /*:HpasteIndex* +:HpastePostNew haskellmode.txt /*:HpastePostNew* +:IDoc haskellmode.txt /*:IDoc* +:MDoc haskellmode.txt /*:MDoc* +:TlistAddFiles taglist.txt /*:TlistAddFiles* +:TlistAddFilesRecursive taglist.txt /*:TlistAddFilesRecursive* +:TlistClose taglist.txt /*:TlistClose* +:TlistDebug taglist.txt /*:TlistDebug* +:TlistHighlightTag taglist.txt /*:TlistHighlightTag* +:TlistLock taglist.txt /*:TlistLock* +:TlistMessages taglist.txt /*:TlistMessages* +:TlistOpen taglist.txt /*:TlistOpen* +:TlistSessionLoad taglist.txt /*:TlistSessionLoad* +:TlistSessionSave taglist.txt /*:TlistSessionSave* +:TlistShowPrototype taglist.txt /*:TlistShowPrototype* +:TlistShowTag taglist.txt /*:TlistShowTag* +:TlistToggle taglist.txt /*:TlistToggle* +:TlistUndebug taglist.txt /*:TlistUndebug* +:TlistUnlock taglist.txt /*:TlistUnlock* +:TlistUpdate taglist.txt /*:TlistUpdate* +Alph latexhelp.txt /*Alph* +Alt-B latex-suite.txt /*Alt-B* +Alt-C latex-suite.txt /*Alt-C* +Alt-I latex-suite.txt /*Alt-I* +Alt-L latex-suite.txt /*Alt-L* +BibTeX latexhelp.txt /*BibTeX* +IMAP_PutTextWithMovement latex-suite.txt /*IMAP_PutTextWithMovement* +Imap_DeleteEmptyPlaceHolders latex-suite.txt /*Imap_DeleteEmptyPlaceHolders* +Imap_FreezeImap latex-suite.txt /*Imap_FreezeImap* +Imap_PlaceHolderEnd latex-suite.txt /*Imap_PlaceHolderEnd* +Imap_PlaceHolderStart latex-suite.txt /*Imap_PlaceHolderStart* +Imap_StickyPlaceHolders latex-suite.txt /*Imap_StickyPlaceHolders* +Imap_UsePlaceHolders latex-suite.txt /*Imap_UsePlaceHolders* +LaTeX latexhelp.txt /*LaTeX* +Plug_IMAP_DeleteAndJumBack latex-suite.txt /*Plug_IMAP_DeleteAndJumBack* +Plug_IMAP_DeleteAndJumpForward latex-suite.txt /*Plug_IMAP_DeleteAndJumpForward* +Plug_IMAP_JumpBack latex-suite.txt /*Plug_IMAP_JumpBack* +Plug_IMAP_JumpForward latex-suite.txt /*Plug_IMAP_JumpForward* +Plug_Tex_InsertItem latex-suite.txt /*Plug_Tex_InsertItem* +Plug_Tex_LeftRight latex-suite.txt /*Plug_Tex_LeftRight* +Plug_Tex_MathBF latex-suite.txt /*Plug_Tex_MathBF* +Plug_Tex_MathCal latex-suite.txt /*Plug_Tex_MathCal* +Roman latexhelp.txt /*Roman* +TClearCiteHist latex-suite.txt /*TClearCiteHist* +TLook latex-suite.txt /*TLook* +TLookAll latex-suite.txt /*TLookAll* +TLookBib latex-suite.txt /*TLookBib* +TMacro latex-suite.txt /*TMacro* +TMacroDelete latex-suite.txt /*TMacroDelete* +TMacroEdit latex-suite.txt /*TMacroEdit* +TMacroNew latex-suite.txt /*TMacroNew* +TPackage latex-suite.txt /*TPackage* +TPackageUpdate latex-suite.txt /*TPackageUpdate* +TPackageUpdateAll latex-suite.txt /*TPackageUpdateAll* +TPartComp latex-suite.txt /*TPartComp* +TPartView latex-suite.txt /*TPartView* +TSection latex-suite.txt /*TSection* +TSectionAdvanced latex-suite.txt /*TSectionAdvanced* +TTemplate latex-suite.txt /*TTemplate* +Tex_AutoFolding latex-suite.txt /*Tex_AutoFolding* +Tex_BIBINPUTS latex-suite.txt /*Tex_BIBINPUTS* +Tex_CatchVisMapErrors latex-suite.txt /*Tex_CatchVisMapErrors* +Tex_Com_name latex-suite.txt /*Tex_Com_name* +Tex_CompileRule_format latex-suite.txt /*Tex_CompileRule_format* +Tex_Debug latex-suite.txt /*Tex_Debug* +Tex_DefaultTargetFormat latex-suite.txt /*Tex_DefaultTargetFormat* +Tex_Diacritics latex-suite.txt /*Tex_Diacritics* +Tex_Env_name latex-suite.txt /*Tex_Env_name* +Tex_EnvironmentMaps latex-suite.txt /*Tex_EnvironmentMaps* +Tex_EnvironmentMenus latex-suite.txt /*Tex_EnvironmentMenus* +Tex_ExplorerHeight latex-suite.txt /*Tex_ExplorerHeight* +Tex_FoldedCommands latex-suite.txt /*Tex_FoldedCommands* +Tex_FoldedEnvironments latex-suite.txt /*Tex_FoldedEnvironments* +Tex_FoldedMisc latex-suite.txt /*Tex_FoldedMisc* +Tex_FoldedSections latex-suite.txt /*Tex_FoldedSections* +Tex_Folding latex-suite.txt /*Tex_Folding* +Tex_FontMaps latex-suite.txt /*Tex_FontMaps* +Tex_FontMenus latex-suite.txt /*Tex_FontMenus* +Tex_GotoError latex-suite.txt /*Tex_GotoError* +Tex_HotKeyMappings latex-suite.txt /*Tex_HotKeyMappings* +Tex_IgnoreLevel latex-suite.txt /*Tex_IgnoreLevel* +Tex_IgnoredWarnings latex-suite.txt /*Tex_IgnoredWarnings* +Tex_ImageDir latex-suite.txt /*Tex_ImageDir* +Tex_ItemStyle_environment latex-suite.txt /*Tex_ItemStyle_environment* +Tex_Leader latex-suite.txt /*Tex_Leader* +Tex_Leader2 latex-suite.txt /*Tex_Leader2* +Tex_MainFileExpression latex-suite.txt /*Tex_MainFileExpression* +Tex_MainMenuLocation latex-suite.txt /*Tex_MainMenuLocation* +Tex_MathMenus latex-suite.txt /*Tex_MathMenus* +Tex_Menus latex-suite.txt /*Tex_Menus* +Tex_MultipleCompileFormats latex-suite.txt /*Tex_MultipleCompileFormats* +Tex_NestElementMenus latex-suite.txt /*Tex_NestElementMenus* +Tex_NestPackagesMenu latex-suite.txt /*Tex_NestPackagesMenu* +Tex_PackagesMenu latex-suite.txt /*Tex_PackagesMenu* +Tex_ProjectSourceFiles latex-suite.txt /*Tex_ProjectSourceFiles* +Tex_PromptedCommands latex-suite.txt /*Tex_PromptedCommands* +Tex_PromptedEnvironments latex-suite.txt /*Tex_PromptedEnvironments* +Tex_RememberCiteSearch latex-suite.txt /*Tex_RememberCiteSearch* +Tex_SectionMaps latex-suite.txt /*Tex_SectionMaps* +Tex_SectionMenus latex-suite.txt /*Tex_SectionMenus* +Tex_SmartKeyBS latex-suite.txt /*Tex_SmartKeyBS* +Tex_SmartKeyQuote latex-suite.txt /*Tex_SmartKeyQuote* +Tex_TEXINPUTS latex-suite.txt /*Tex_TEXINPUTS* +Tex_UseMakefile latex-suite.txt /*Tex_UseMakefile* +Tex_UseMenuWizard latex-suite.txt /*Tex_UseMenuWizard* +Tex_UsePython latex-suite.txt /*Tex_UsePython* +Tex_UseSimpleLabelSearch latex-suite.txt /*Tex_UseSimpleLabelSearch* +Tex_UseUtfMenus latex-suite.txt /*Tex_UseUtfMenus* +Tex_ViewRuleComplete_format latex-suite.txt /*Tex_ViewRuleComplete_format* +Tex_ViewRule_format latex-suite.txt /*Tex_ViewRule_format* +Tex_ViewerCwindowHeight latex-suite.txt /*Tex_ViewerCwindowHeight* +Tex_ViewerPreviewHeight latex-suite.txt /*Tex_ViewerPreviewHeight* +Tlist_Get_Tag_Prototype_By_Line() taglist.txt /*Tlist_Get_Tag_Prototype_By_Line()* +Tlist_Get_Tagname_By_Line() taglist.txt /*Tlist_Get_Tagname_By_Line()* +Tlist_Set_App() taglist.txt /*Tlist_Set_App()* +Tlist_Update_File_Tags() taglist.txt /*Tlist_Update_File_Tags()* +Tshortcuts latex-suite.txt /*Tshortcuts* +\Alph latexhelp.txt /*\\Alph* +\Huge latexhelp.txt /*\\Huge* +\LARGE latexhelp.txt /*\\LARGE* +\Large latexhelp.txt /*\\Large* +\Roman latexhelp.txt /*\\Roman* +\\ latexhelp.txt /*\\\\* +\\\\ latexhelp.txt /*\\\\\\\\* +\addcontentsline latexhelp.txt /*\\addcontentsline* +\address latexhelp.txt /*\\address* +\addtocontents latexhelp.txt /*\\addtocontents* +\addtocounter latexhelp.txt /*\\addtocounter* +\addtolength latexhelp.txt /*\\addtolength* +\addvspace latexhelp.txt /*\\addvspace* +\alph latexhelp.txt /*\\alph* +\and latexhelp.txt /*\\and* +\appendix latexhelp.txt /*\\appendix* +\arabic latexhelp.txt /*\\arabic* +\author latexhelp.txt /*\\author* +\begin latexhelp.txt /*\\begin* +\bfseries latexhelp.txt /*\\bfseries* +\bibitem latexhelp.txt /*\\bibitem* +\bibliography latexhelp.txt /*\\bibliography* +\bibliographystyle latexhelp.txt /*\\bibliographystyle* +\bigskip latexhelp.txt /*\\bigskip* +\cc latexhelp.txt /*\\cc* +\cdots latexhelp.txt /*\\cdots* +\centering latexhelp.txt /*\\centering* +\chapter latexhelp.txt /*\\chapter* +\circle latexhelp.txt /*\\circle* +\cite latexhelp.txt /*\\cite* +\cleardoublepage latexhelp.txt /*\\cleardoublepage* +\clearpage latexhelp.txt /*\\clearpage* +\cline latexhelp.txt /*\\cline* +\closing latexhelp.txt /*\\closing* +\dashbox latexhelp.txt /*\\dashbox* +\date latexhelp.txt /*\\date* +\ddots latexhelp.txt /*\\ddots* +\depth latexhelp.txt /*\\depth* +\documentclass latexhelp.txt /*\\documentclass* +\dotfill latexhelp.txt /*\\dotfill* +\emph latexhelp.txt /*\\emph* +\end latexhelp.txt /*\\end* +\enlargethispage latexhelp.txt /*\\enlargethispage* +\fbox latexhelp.txt /*\\fbox* +\flushbottom latexhelp.txt /*\\flushbottom* +\fnsymbol latexhelp.txt /*\\fnsymbol* +\fontencoding latexhelp.txt /*\\fontencoding* +\fontfamily latexhelp.txt /*\\fontfamily* +\fontseries latexhelp.txt /*\\fontseries* +\fontshape latexhelp.txt /*\\fontshape* +\fontsize latexhelp.txt /*\\fontsize* +\footnote latexhelp.txt /*\\footnote* +\footnotemark latexhelp.txt /*\\footnotemark* +\footnotesize latexhelp.txt /*\\footnotesize* +\footnotetext latexhelp.txt /*\\footnotetext* +\frac latexhelp.txt /*\\frac* +\frame latexhelp.txt /*\\frame* +\framebox latexhelp.txt /*\\framebox* +\fussy latexhelp.txt /*\\fussy* +\height latexhelp.txt /*\\height* +\hfill latexhelp.txt /*\\hfill* +\hline latexhelp.txt /*\\hline* +\hrulefill latexhelp.txt /*\\hrulefill* +\hspace latexhelp.txt /*\\hspace* +\huge latexhelp.txt /*\\huge* +\hyphenation latexhelp.txt /*\\hyphenation* +\include latexhelp.txt /*\\include* +\includeonly latexhelp.txt /*\\includeonly* +\indent latexhelp.txt /*\\indent* +\input latexhelp.txt /*\\input* +\item latexhelp.txt /*\\item* +\itshape latexhelp.txt /*\\itshape* +\kill latexhelp.txt /*\\kill* +\label latexhelp.txt /*\\label* +\large latexhelp.txt /*\\large* +\ldots latexhelp.txt /*\\ldots* +\lefteqn latexhelp.txt /*\\lefteqn* +\letter latexhelp.txt /*\\letter* +\line latexhelp.txt /*\\line* +\linebreak latexhelp.txt /*\\linebreak* +\linethickness latexhelp.txt /*\\linethickness* +\listoffigures latexhelp.txt /*\\listoffigures* +\listoftables latexhelp.txt /*\\listoftables* +\location latexhelp.txt /*\\location* +\lrbox latexhelp.txt /*\\lrbox* +\makebox latexhelp.txt /*\\makebox* +\makelabels latexhelp.txt /*\\makelabels* +\maketitle latexhelp.txt /*\\maketitle* +\marginpar latexhelp.txt /*\\marginpar* +\markboth latexhelp.txt /*\\markboth* +\markright latexhelp.txt /*\\markright* +\mathbf latexhelp.txt /*\\mathbf* +\mathcal latexhelp.txt /*\\mathcal* +\mathit latexhelp.txt /*\\mathit* +\mathnormal latexhelp.txt /*\\mathnormal* +\mathrm latexhelp.txt /*\\mathrm* +\mathsf latexhelp.txt /*\\mathsf* +\mathtt latexhelp.txt /*\\mathtt* +\mathversion latexhelp.txt /*\\mathversion* +\mbox latexhelp.txt /*\\mbox* +\mdseries latexhelp.txt /*\\mdseries* +\medskip latexhelp.txt /*\\medskip* +\multicolumn latexhelp.txt /*\\multicolumn* +\multiput latexhelp.txt /*\\multiput* +\name latexhelp.txt /*\\name* +\newcommand latexhelp.txt /*\\newcommand* +\newcounter latexhelp.txt /*\\newcounter* +\newenvironment latexhelp.txt /*\\newenvironment* +\newfont latexhelp.txt /*\\newfont* +\newlength latexhelp.txt /*\\newlength* +\newline latexhelp.txt /*\\newline* +\newpage latexhelp.txt /*\\newpage* +\newsavebox latexhelp.txt /*\\newsavebox* +\newtheorem latexhelp.txt /*\\newtheorem* +\nocite latexhelp.txt /*\\nocite* +\nofiles latexhelp.txt /*\\nofiles* +\noindent latexhelp.txt /*\\noindent* +\nolinebreak latexhelp.txt /*\\nolinebreak* +\nonumber latexhelp.txt /*\\nonumber* +\nopagebreak latexhelp.txt /*\\nopagebreak* +\normalfont latexhelp.txt /*\\normalfont* +\normalsize latexhelp.txt /*\\normalsize* +\onecolumn latexhelp.txt /*\\onecolumn* +\opening latexhelp.txt /*\\opening* +\oval latexhelp.txt /*\\oval* +\overbrace latexhelp.txt /*\\overbrace* +\overline latexhelp.txt /*\\overline* +\pagebreak latexhelp.txt /*\\pagebreak* +\pagenumbering latexhelp.txt /*\\pagenumbering* +\pageref latexhelp.txt /*\\pageref* +\pagestyle latexhelp.txt /*\\pagestyle* +\par latexhelp.txt /*\\par* +\paragraph latexhelp.txt /*\\paragraph* +\parbox latexhelp.txt /*\\parbox* +\part latexhelp.txt /*\\part* +\picture-framebox latexhelp.txt /*\\picture-framebox* +\ps latexhelp.txt /*\\ps* +\pushtabs latexhelp.txt /*\\pushtabs* +\put latexhelp.txt /*\\put* +\raggedbottom latexhelp.txt /*\\raggedbottom* +\raggedleft latexhelp.txt /*\\raggedleft* +\raggedright latexhelp.txt /*\\raggedright* +\raisebox latexhelp.txt /*\\raisebox* +\ref latexhelp.txt /*\\ref* +\refstepcounter latexhelp.txt /*\\refstepcounter* +\renewcommand latexhelp.txt /*\\renewcommand* +\renewenvironment latexhelp.txt /*\\renewenvironment* +\reversemarginpar latexhelp.txt /*\\reversemarginpar* +\rmfamily latexhelp.txt /*\\rmfamily* +\roman latexhelp.txt /*\\roman* +\rule latexhelp.txt /*\\rule* +\savebox latexhelp.txt /*\\savebox* +\sbox latexhelp.txt /*\\sbox* +\scriptsize latexhelp.txt /*\\scriptsize* +\scshape latexhelp.txt /*\\scshape* +\section latexhelp.txt /*\\section* +\selectfont latexhelp.txt /*\\selectfont* +\setcounter latexhelp.txt /*\\setcounter* +\setlength latexhelp.txt /*\\setlength* +\settodepth latexhelp.txt /*\\settodepth* +\settoheight latexhelp.txt /*\\settoheight* +\settowidth latexhelp.txt /*\\settowidth* +\sffamily latexhelp.txt /*\\sffamily* +\shortstack latexhelp.txt /*\\shortstack* +\signature latexhelp.txt /*\\signature* +\sloppy latexhelp.txt /*\\sloppy* +\slshape latexhelp.txt /*\\slshape* +\small latexhelp.txt /*\\small* +\smallskip latexhelp.txt /*\\smallskip* +\space latexhelp.txt /*\\space* +\sqrt latexhelp.txt /*\\sqrt* +\startbreaks latexhelp.txt /*\\startbreaks* +\stepcounter latexhelp.txt /*\\stepcounter* +\stopbreaks latexhelp.txt /*\\stopbreaks* +\subparagraph latexhelp.txt /*\\subparagraph* +\subsection latexhelp.txt /*\\subsection* +\subsubsection latexhelp.txt /*\\subsubsection* +\symbol latexhelp.txt /*\\symbol* +\table latexhelp.txt /*\\table* +\tableofcontents latexhelp.txt /*\\tableofcontents* +\telephone latexhelp.txt /*\\telephone* +\textbf latexhelp.txt /*\\textbf* +\textit latexhelp.txt /*\\textit* +\textmd latexhelp.txt /*\\textmd* +\textnormal latexhelp.txt /*\\textnormal* +\textrm latexhelp.txt /*\\textrm* +\textsc latexhelp.txt /*\\textsc* +\textsf latexhelp.txt /*\\textsf* +\textsl latexhelp.txt /*\\textsl* +\texttt latexhelp.txt /*\\texttt* +\textup latexhelp.txt /*\\textup* +\thanks latexhelp.txt /*\\thanks* +\thebibliography latexhelp.txt /*\\thebibliography* +\thispagestyle latexhelp.txt /*\\thispagestyle* +\tiny latexhelp.txt /*\\tiny* +\title latexhelp.txt /*\\title* +\totalheight latexhelp.txt /*\\totalheight* +\ttfamily latexhelp.txt /*\\ttfamily* +\twocolumn latexhelp.txt /*\\twocolumn* +\typein latexhelp.txt /*\\typein* +\typeout latexhelp.txt /*\\typeout* +\underbrace latexhelp.txt /*\\underbrace* +\underline latexhelp.txt /*\\underline* +\upshape latexhelp.txt /*\\upshape* +\usebox latexhelp.txt /*\\usebox* +\usecounter latexhelp.txt /*\\usecounter* +\usefont latexhelp.txt /*\\usefont* +\usepackage latexhelp.txt /*\\usepackage* +\value latexhelp.txt /*\\value* +\vdots latexhelp.txt /*\\vdots* +\vector latexhelp.txt /*\\vector* +\verb latexhelp.txt /*\\verb* +\vfill latexhelp.txt /*\\vfill* +\vline latexhelp.txt /*\\vline* +\vspace latexhelp.txt /*\\vspace* +\width latexhelp.txt /*\\width* +_. haskellmode.txt /*_.* +_? haskellmode.txt /*_?* +_?1 haskellmode.txt /*_?1* +_?2 haskellmode.txt /*_?2* +_T haskellmode.txt /*_T* +_ct haskellmode.txt /*_ct* +_i haskellmode.txt /*_i* +_ie haskellmode.txt /*_ie* +_im haskellmode.txt /*_im* +_iq haskellmode.txt /*_iq* +_iqm haskellmode.txt /*_iqm* +_lang haskellmode.txt /*_lang* +_opt haskellmode.txt /*_opt* +_si haskellmode.txt /*_si* +_t haskellmode.txt /*_t* +adding-bib-options latex-suite.txt /*adding-bib-options* +alph latexhelp.txt /*alph* +altkey-mappings latex-suite.txt /*altkey-mappings* +arabic latexhelp.txt /*arabic* +array latexhelp.txt /*array* +article-class latexhelp.txt /*article-class* +auc-tex-mappings latex-suite.txt /*auc-tex-mappings* +automatic-package-detection latex-suite.txt /*automatic-package-detection* +bibtex latexhelp.txt /*bibtex* +bibtex-bindings latex-suite.txt /*bibtex-bindings* +book-class latexhelp.txt /*book-class* +c-support csupport.txt /*c-support* +center latexhelp.txt /*center* +changing-commands latex-suite.txt /*changing-commands* +changing-environments latex-suite.txt /*changing-environments* +cite-search-caching latex-suite.txt /*cite-search-caching* +compiler-dependency latex-suite.txt /*compiler-dependency* +compiler-ghc haskellmode.txt /*compiler-ghc* +compiler-output-customization latex-suite.txt /*compiler-output-customization* +compiler-rules latex-suite.txt /*compiler-rules* +compiling-multiple latex-suite.txt /*compiling-multiple* +completion-window-preferences latex-suite.txt /*completion-window-preferences* +csupport csupport.txt /*csupport* +csupport-c++ csupport.txt /*csupport-c++* +csupport-c++-method-impl csupport.txt /*csupport-c++-method-impl* +csupport-c++-normal-mode csupport.txt /*csupport-c++-normal-mode* +csupport-c++-visual-mode csupport.txt /*csupport-c++-visual-mode* +csupport-code-to-comm csupport.txt /*csupport-code-to-comm* +csupport-comm csupport.txt /*csupport-comm* +csupport-comm-aligned csupport.txt /*csupport-comm-aligned* +csupport-comm-c-cpp csupport.txt /*csupport-comm-c-cpp* +csupport-comm-date csupport.txt /*csupport-comm-date* +csupport-comm-frame csupport.txt /*csupport-comm-frame* +csupport-comm-keywords csupport.txt /*csupport-comm-keywords* +csupport-comm-realign csupport.txt /*csupport-comm-realign* +csupport-comm-to-code csupport.txt /*csupport-comm-to-code* +csupport-custom csupport.txt /*csupport-custom* +csupport-custom-glob-vars csupport.txt /*csupport-custom-glob-vars* +csupport-custom-root-menu csupport.txt /*csupport-custom-root-menu* +csupport-dictionary csupport.txt /*csupport-dictionary* +csupport-folding csupport.txt /*csupport-folding* +csupport-help csupport.txt /*csupport-help* +csupport-hotkeys csupport.txt /*csupport-hotkeys* +csupport-idioms csupport.txt /*csupport-idioms* +csupport-prep csupport.txt /*csupport-prep* +csupport-prep-if0 csupport.txt /*csupport-prep-if0* +csupport-prep-normal-mode csupport.txt /*csupport-prep-normal-mode* +csupport-prep-visual-mode csupport.txt /*csupport-prep-visual-mode* +csupport-proto csupport.txt /*csupport-proto* +csupport-release-notes csupport.txt /*csupport-release-notes* +csupport-run csupport.txt /*csupport-run* +csupport-run-buffer csupport.txt /*csupport-run-buffer* +csupport-run-cmdline-args csupport.txt /*csupport-run-cmdline-args* +csupport-run-codecheck csupport.txt /*csupport-run-codecheck* +csupport-run-hardcopy csupport.txt /*csupport-run-hardcopy* +csupport-run-indent csupport.txt /*csupport-run-indent* +csupport-run-make csupport.txt /*csupport-run-make* +csupport-run-make-args csupport.txt /*csupport-run-make-args* +csupport-run-output csupport.txt /*csupport-run-output* +csupport-run-splint csupport.txt /*csupport-run-splint* +csupport-run-templates csupport.txt /*csupport-run-templates* +csupport-run-xterm csupport.txt /*csupport-run-xterm* +csupport-snippets csupport.txt /*csupport-snippets* +csupport-stat csupport.txt /*csupport-stat* +csupport-stat-normal-mode csupport.txt /*csupport-stat-normal-mode* +csupport-stat-visual-mode csupport.txt /*csupport-stat-visual-mode* +csupport-system-wide csupport.txt /*csupport-system-wide* +csupport-taglist csupport.txt /*csupport-taglist* +csupport-templates csupport.txt /*csupport-templates* +csupport-templates-date csupport.txt /*csupport-templates-date* +csupport-templates-definition csupport.txt /*csupport-templates-definition* +csupport-templates-expansion csupport.txt /*csupport-templates-expansion* +csupport-templates-files csupport.txt /*csupport-templates-files* +csupport-templates-macros csupport.txt /*csupport-templates-macros* +csupport-templates-names csupport.txt /*csupport-templates-names* +csupport-troubleshooting csupport.txt /*csupport-troubleshooting* +csupport-usage-gvim csupport.txt /*csupport-usage-gvim* +csupport-usage-vim csupport.txt /*csupport-usage-vim* +csupport-windows csupport.txt /*csupport-windows* +csupport.txt csupport.txt /*csupport.txt* +custom-macros-menu latex-suite.txt /*custom-macros-menu* +custom-packages latex-suite.txt /*custom-packages* +customize-alt-key-maps latex-suite.txt /*customize-alt-key-maps* +customize-imap-maps latex-suite.txt /*customize-imap-maps* +customizing-compiling latex-suite.txt /*customizing-compiling* +customizing-folding latex-suite.txt /*customizing-folding* +customizing-latex-completion latex-suite.txt /*customizing-latex-completion* +customizing-latex-suite latex-suite.txt /*customizing-latex-suite* +customizing-macros latex-suite.txt /*customizing-macros* +customizing-menus latex-suite.txt /*customizing-menus* +customizing-packages latex-suite.txt /*customizing-packages* +customizing-place-holders latex-suite.txt /*customizing-place-holders* +customizing-smart-keys latex-suite.txt /*customizing-smart-keys* +customizing-viewing latex-suite.txt /*customizing-viewing* +customizing-what-to-fold latex-suite.txt /*customizing-what-to-fold* +default-folding latex-suite.txt /*default-folding* +description latexhelp.txt /*description* +diacritic-mappings latex-suite.txt /*diacritic-mappings* +displaymath latexhelp.txt /*displaymath* +draft latexhelp.txt /*draft* +editing-folding latex-suite.txt /*editing-folding* +empty latexhelp.txt /*empty* +enabling-searching latex-suite.txt /*enabling-searching* +enclosing-commands latex-suite.txt /*enclosing-commands* +enclosing-env-f5 latex-suite.txt /*enclosing-env-f5* +enclosing-env-threeletter latex-suite.txt /*enclosing-env-threeletter* +enclosing-environments latex-suite.txt /*enclosing-environments* +enumerate latexhelp.txt /*enumerate* +environment-mappings latex-suite.txt /*environment-mappings* +eqnarray latexhelp.txt /*eqnarray* +equation latexhelp.txt /*equation* +figure latexhelp.txt /*figure* +final latexhelp.txt /*final* +fleqn latexhelp.txt /*fleqn* +flushleft latexhelp.txt /*flushleft* +flushright latexhelp.txt /*flushright* +fold-setting-adding latex-suite.txt /*fold-setting-adding* +fold-setting-advanced latex-suite.txt /*fold-setting-advanced* +font-lowlevelcommands latexhelp.txt /*font-lowlevelcommands* +font-maps latex-suite.txt /*font-maps* +font-size latexhelp.txt /*font-size* +font-styles latexhelp.txt /*font-styles* +forward-searching latex-suite.txt /*forward-searching* +g:ghc haskellmode.txt /*g:ghc* +g:haddock_browser haskellmode.txt /*g:haddock_browser* +g:haddock_browser_callformat haskellmode.txt /*g:haddock_browser_callformat* +g:haddock_docdir haskellmode.txt /*g:haddock_docdir* +g:haddock_indexfiledir haskellmode.txt /*g:haddock_indexfiledir* +g:wget haskellmode.txt /*g:wget* +ghc haskellmode.txt /*ghc* +ghc-compiler haskellmode.txt /*ghc-compiler* +greek-letter-mappings latex-suite.txt /*greek-letter-mappings* +haddock haskellmode.txt /*haddock* +haskellmode haskellmode.txt /*haskellmode* +haskellmode-XO haskellmode.txt /*haskellmode-XO* +haskellmode-XU haskellmode.txt /*haskellmode-XU* +haskellmode-compiler haskellmode.txt /*haskellmode-compiler* +haskellmode-editing haskellmode.txt /*haskellmode-editing* +haskellmode-haddock haskellmode.txt /*haskellmode-haddock* +haskellmode-hpaste haskellmode.txt /*haskellmode-hpaste* +haskellmode-indexing haskellmode.txt /*haskellmode-indexing* +haskellmode-lookup haskellmode.txt /*haskellmode-lookup* +haskellmode-omni-completion haskellmode.txt /*haskellmode-omni-completion* +haskellmode-overview haskellmode.txt /*haskellmode-overview* +haskellmode-quickref haskellmode.txt /*haskellmode-quickref* +haskellmode-requirements haskellmode.txt /*haskellmode-requirements* +haskellmode-resources haskellmode.txt /*haskellmode-resources* +haskellmode-settings haskellmode.txt /*haskellmode-settings* +haskellmode-settings-fine haskellmode.txt /*haskellmode-settings-fine* +haskellmode-settings-main haskellmode.txt /*haskellmode-settings-main* +haskellmode-user-completion haskellmode.txt /*haskellmode-user-completion* +haskellmode.txt haskellmode.txt /*haskellmode.txt* +headings latexhelp.txt /*headings* +hpaste haskellmode.txt /*hpaste* +hyph- latexhelp.txt /*hyph-* +im_1 imaps.txt /*im_1* +imaps-usage imaps.txt /*imaps-usage* +imaps.txt imaps.txt /*imaps.txt* +imaps.txt-toc imaps.txt /*imaps.txt-toc* +inserting-commands latex-suite.txt /*inserting-commands* +inserting-env-f5 latex-suite.txt /*inserting-env-f5* +inserting-env-shift-f1 latex-suite.txt /*inserting-env-shift-f1* +inserting-env-threeletter latex-suite.txt /*inserting-env-threeletter* +inserting-environments latex-suite.txt /*inserting-environments* +inserting-packages latex-suite.txt /*inserting-packages* +inverse-searching latex-suite.txt /*inverse-searching* +itemize latexhelp.txt /*itemize* +landscape latexhelp.txt /*landscape* +latex latexhelp.txt /*latex* +latex-boxes latexhelp.txt /*latex-boxes* +latex-breaking latexhelp.txt /*latex-breaking* +latex-classes latexhelp.txt /*latex-classes* +latex-command-maps latex-suite.txt /*latex-command-maps* +latex-commands latexhelp.txt /*latex-commands* +latex-compiling latex-suite.txt /*latex-compiling* +latex-completion latex-suite.txt /*latex-completion* +latex-completion-cite latex-suite.txt /*latex-completion-cite* +latex-counters latexhelp.txt /*latex-counters* +latex-definitions latexhelp.txt /*latex-definitions* +latex-environments latexhelp.txt /*latex-environments* +latex-folding latex-suite.txt /*latex-folding* +latex-footnotes latexhelp.txt /*latex-footnotes* +latex-hor-space latexhelp.txt /*latex-hor-space* +latex-inputting latexhelp.txt /*latex-inputting* +latex-layout latexhelp.txt /*latex-layout* +latex-lengths latexhelp.txt /*latex-lengths* +latex-letters latexhelp.txt /*latex-letters* +latex-macros latex-suite.txt /*latex-macros* +latex-margin-notes latexhelp.txt /*latex-margin-notes* +latex-master-file latex-suite.txt /*latex-master-file* +latex-master-file-specification latex-suite.txt /*latex-master-file-specification* +latex-math latexhelp.txt /*latex-math* +latex-modes latexhelp.txt /*latex-modes* +latex-package-scanning latex-suite.txt /*latex-package-scanning* +latex-packages latex-suite.txt /*latex-packages* +latex-page-styles latexhelp.txt /*latex-page-styles* +latex-paragraphs latexhelp.txt /*latex-paragraphs* +latex-parameters latexhelp.txt /*latex-parameters* +latex-project latex-suite.txt /*latex-project* +latex-project-example latex-suite.txt /*latex-project-example* +latex-project-settings latex-suite.txt /*latex-project-settings* +latex-references latexhelp.txt /*latex-references* +latex-sectioning latexhelp.txt /*latex-sectioning* +latex-spaces-boxes latexhelp.txt /*latex-spaces-boxes* +latex-special latexhelp.txt /*latex-special* +latex-start-end latexhelp.txt /*latex-start-end* +latex-suite-commands latex-suite.txt /*latex-suite-commands* +latex-suite-commands-maps latex-suite.txt /*latex-suite-commands-maps* +latex-suite-credits latex-suite.txt /*latex-suite-credits* +latex-suite-maintainer latex-suite.txt /*latex-suite-maintainer* +latex-suite-maps latex-suite.txt /*latex-suite-maps* +latex-suite-quickstart.txt latex-suite-quickstart.txt /*latex-suite-quickstart.txt* +latex-suite-quickstart.txt-toc latex-suite-quickstart.txt /*latex-suite-quickstart.txt-toc* +latex-suite-templates latex-suite.txt /*latex-suite-templates* +latex-suite.txt latex-suite.txt /*latex-suite.txt* +latex-suite.txt-toc latex-suite.txt /*latex-suite.txt-toc* +latex-terminal latexhelp.txt /*latex-terminal* +latex-toc latexhelp.txt /*latex-toc* +latex-typefaces latexhelp.txt /*latex-typefaces* +latex-ver-space latexhelp.txt /*latex-ver-space* +latex-viewing latex-suite.txt /*latex-viewing* +latex-viewing-rules latex-suite.txt /*latex-viewing-rules* +latexhelp.txt latexhelp.txt /*latexhelp.txt* +leqno latexhelp.txt /*leqno* +letter-class latexhelp.txt /*letter-class* +list latexhelp.txt /*list* +lq_1 latex-suite-quickstart.txt /*lq_1* +lq_10 latex-suite-quickstart.txt /*lq_10* +lq_2 latex-suite-quickstart.txt /*lq_2* +lq_3 latex-suite-quickstart.txt /*lq_3* +lq_4 latex-suite-quickstart.txt /*lq_4* +lq_5 latex-suite-quickstart.txt /*lq_5* +lq_6 latex-suite-quickstart.txt /*lq_6* +lq_7 latex-suite-quickstart.txt /*lq_7* +lq_8 latex-suite-quickstart.txt /*lq_8* +lq_8_1 latex-suite-quickstart.txt /*lq_8_1* +lq_9 latex-suite-quickstart.txt /*lq_9* +lq_9_1 latex-suite-quickstart.txt /*lq_9_1* +lq_9_2 latex-suite-quickstart.txt /*lq_9_2* +lq_a_bc latex-suite-quickstart.txt /*lq_a_bc* +lq_a_bd latex-suite-quickstart.txt /*lq_a_bd* +lq_a_be latex-suite-quickstart.txt /*lq_a_be* +lq_a_bf latex-suite-quickstart.txt /*lq_a_bf* +lq_a_bg latex-suite-quickstart.txt /*lq_a_bg* +lq_a_bh latex-suite-quickstart.txt /*lq_a_bh* +lq_a_bi latex-suite-quickstart.txt /*lq_a_bi* +lq_a_bj latex-suite-quickstart.txt /*lq_a_bj* +lq_a_bk latex-suite-quickstart.txt /*lq_a_bk* +lq_a_bl latex-suite-quickstart.txt /*lq_a_bl* +lq_a_bm latex-suite-quickstart.txt /*lq_a_bm* +lq_a_bn latex-suite-quickstart.txt /*lq_a_bn* +lq_a_bo latex-suite-quickstart.txt /*lq_a_bo* +lq_u_1 latex-suite-quickstart.txt /*lq_u_1* +lq_u_2 latex-suite-quickstart.txt /*lq_u_2* +lq_u_3 latex-suite-quickstart.txt /*lq_u_3* +lq_u_4 latex-suite-quickstart.txt /*lq_u_4* +lq_u_5 latex-suite-quickstart.txt /*lq_u_5* +lq_u_6 latex-suite-quickstart.txt /*lq_u_6* +lq_u_7 latex-suite-quickstart.txt /*lq_u_7* +lq_u_8 latex-suite-quickstart.txt /*lq_u_8* +lq_u_9 latex-suite-quickstart.txt /*lq_u_9* +lr-mode latexhelp.txt /*lr-mode* +ls-completion-custom latex-suite.txt /*ls-completion-custom* +ls-completion-ref latex-suite.txt /*ls-completion-ref* +ls-completion-usage latex-suite.txt /*ls-completion-usage* +ls-filename-completion latex-suite.txt /*ls-filename-completion* +ls-general-purpose-settings latex-suite.txt /*ls-general-purpose-settings* +ls-imap-f7 latex-suite.txt /*ls-imap-f7* +ls-imap-s-f7 latex-suite.txt /*ls-imap-s-f7* +ls-imaps-syntax latex-suite.txt /*ls-imaps-syntax* +ls-new-macros latex-suite.txt /*ls-new-macros* +ls-set-grepprg latex-suite.txt /*ls-set-grepprg* +ls-vmap-f7 latex-suite.txt /*ls-vmap-f7* +ls_1 latex-suite.txt /*ls_1* +ls_10 latex-suite.txt /*ls_10* +ls_10_1 latex-suite.txt /*ls_10_1* +ls_10_1_1 latex-suite.txt /*ls_10_1_1* +ls_10_1_2 latex-suite.txt /*ls_10_1_2* +ls_10_2 latex-suite.txt /*ls_10_2* +ls_10_2_1 latex-suite.txt /*ls_10_2_1* +ls_10_2_10 latex-suite.txt /*ls_10_2_10* +ls_10_2_11 latex-suite.txt /*ls_10_2_11* +ls_10_2_12 latex-suite.txt /*ls_10_2_12* +ls_10_2_13 latex-suite.txt /*ls_10_2_13* +ls_10_2_14 latex-suite.txt /*ls_10_2_14* +ls_10_2_15 latex-suite.txt /*ls_10_2_15* +ls_10_2_16 latex-suite.txt /*ls_10_2_16* +ls_10_2_2 latex-suite.txt /*ls_10_2_2* +ls_10_2_3 latex-suite.txt /*ls_10_2_3* +ls_10_2_4 latex-suite.txt /*ls_10_2_4* +ls_10_2_5 latex-suite.txt /*ls_10_2_5* +ls_10_2_6 latex-suite.txt /*ls_10_2_6* +ls_10_2_7 latex-suite.txt /*ls_10_2_7* +ls_10_2_8 latex-suite.txt /*ls_10_2_8* +ls_10_2_9 latex-suite.txt /*ls_10_2_9* +ls_11 latex-suite.txt /*ls_11* +ls_11_1 latex-suite.txt /*ls_11_1* +ls_11_10 latex-suite.txt /*ls_11_10* +ls_11_10_1 latex-suite.txt /*ls_11_10_1* +ls_11_1_1 latex-suite.txt /*ls_11_1_1* +ls_11_1_2 latex-suite.txt /*ls_11_1_2* +ls_11_2 latex-suite.txt /*ls_11_2* +ls_11_2_1 latex-suite.txt /*ls_11_2_1* +ls_11_2_2 latex-suite.txt /*ls_11_2_2* +ls_11_2_3 latex-suite.txt /*ls_11_2_3* +ls_11_2_4 latex-suite.txt /*ls_11_2_4* +ls_11_3 latex-suite.txt /*ls_11_3* +ls_11_3_1 latex-suite.txt /*ls_11_3_1* +ls_11_3_10 latex-suite.txt /*ls_11_3_10* +ls_11_3_11 latex-suite.txt /*ls_11_3_11* +ls_11_3_12 latex-suite.txt /*ls_11_3_12* +ls_11_3_13 latex-suite.txt /*ls_11_3_13* +ls_11_3_2 latex-suite.txt /*ls_11_3_2* +ls_11_3_3 latex-suite.txt /*ls_11_3_3* +ls_11_3_4 latex-suite.txt /*ls_11_3_4* +ls_11_3_5 latex-suite.txt /*ls_11_3_5* +ls_11_3_6 latex-suite.txt /*ls_11_3_6* +ls_11_3_7 latex-suite.txt /*ls_11_3_7* +ls_11_3_8 latex-suite.txt /*ls_11_3_8* +ls_11_3_9 latex-suite.txt /*ls_11_3_9* +ls_11_4 latex-suite.txt /*ls_11_4* +ls_11_4_1 latex-suite.txt /*ls_11_4_1* +ls_11_4_2 latex-suite.txt /*ls_11_4_2* +ls_11_5 latex-suite.txt /*ls_11_5* +ls_11_5_1 latex-suite.txt /*ls_11_5_1* +ls_11_5_2 latex-suite.txt /*ls_11_5_2* +ls_11_5_3 latex-suite.txt /*ls_11_5_3* +ls_11_5_4 latex-suite.txt /*ls_11_5_4* +ls_11_5_5 latex-suite.txt /*ls_11_5_5* +ls_11_6 latex-suite.txt /*ls_11_6* +ls_11_6_1 latex-suite.txt /*ls_11_6_1* +ls_11_6_2 latex-suite.txt /*ls_11_6_2* +ls_11_6_3 latex-suite.txt /*ls_11_6_3* +ls_11_6_4 latex-suite.txt /*ls_11_6_4* +ls_11_6_5 latex-suite.txt /*ls_11_6_5* +ls_11_6_6 latex-suite.txt /*ls_11_6_6* +ls_11_6_7 latex-suite.txt /*ls_11_6_7* +ls_11_6_8 latex-suite.txt /*ls_11_6_8* +ls_11_7 latex-suite.txt /*ls_11_7* +ls_11_7_1 latex-suite.txt /*ls_11_7_1* +ls_11_7_2 latex-suite.txt /*ls_11_7_2* +ls_11_8 latex-suite.txt /*ls_11_8* +ls_11_8_1 latex-suite.txt /*ls_11_8_1* +ls_11_8_2 latex-suite.txt /*ls_11_8_2* +ls_11_8_3 latex-suite.txt /*ls_11_8_3* +ls_11_8_4 latex-suite.txt /*ls_11_8_4* +ls_11_8_5 latex-suite.txt /*ls_11_8_5* +ls_11_8_6 latex-suite.txt /*ls_11_8_6* +ls_11_8_7 latex-suite.txt /*ls_11_8_7* +ls_11_9 latex-suite.txt /*ls_11_9* +ls_11_9_1 latex-suite.txt /*ls_11_9_1* +ls_11_9_2 latex-suite.txt /*ls_11_9_2* +ls_12 latex-suite.txt /*ls_12* +ls_2 latex-suite.txt /*ls_2* +ls_3 latex-suite.txt /*ls_3* +ls_3_1 latex-suite.txt /*ls_3_1* +ls_3_10 latex-suite.txt /*ls_3_10* +ls_3_10_1 latex-suite.txt /*ls_3_10_1* +ls_3_10_2 latex-suite.txt /*ls_3_10_2* +ls_3_10_3 latex-suite.txt /*ls_3_10_3* +ls_3_10_4 latex-suite.txt /*ls_3_10_4* +ls_3_11 latex-suite.txt /*ls_3_11* +ls_3_12 latex-suite.txt /*ls_3_12* +ls_3_12_1 latex-suite.txt /*ls_3_12_1* +ls_3_12_2 latex-suite.txt /*ls_3_12_2* +ls_3_1_1 latex-suite.txt /*ls_3_1_1* +ls_3_1_1_1 latex-suite.txt /*ls_3_1_1_1* +ls_3_1_1_2 latex-suite.txt /*ls_3_1_1_2* +ls_3_1_1_3 latex-suite.txt /*ls_3_1_1_3* +ls_3_1_2 latex-suite.txt /*ls_3_1_2* +ls_3_1_2_1 latex-suite.txt /*ls_3_1_2_1* +ls_3_1_2_2 latex-suite.txt /*ls_3_1_2_2* +ls_3_1_3 latex-suite.txt /*ls_3_1_3* +ls_3_2 latex-suite.txt /*ls_3_2* +ls_3_2_1 latex-suite.txt /*ls_3_2_1* +ls_3_2_2 latex-suite.txt /*ls_3_2_2* +ls_3_2_3 latex-suite.txt /*ls_3_2_3* +ls_3_3 latex-suite.txt /*ls_3_3* +ls_3_4 latex-suite.txt /*ls_3_4* +ls_3_5 latex-suite.txt /*ls_3_5* +ls_3_6 latex-suite.txt /*ls_3_6* +ls_3_7 latex-suite.txt /*ls_3_7* +ls_3_8 latex-suite.txt /*ls_3_8* +ls_3_8_1 latex-suite.txt /*ls_3_8_1* +ls_3_9 latex-suite.txt /*ls_3_9* +ls_4 latex-suite.txt /*ls_4* +ls_4_1 latex-suite.txt /*ls_4_1* +ls_4_2 latex-suite.txt /*ls_4_2* +ls_4_3 latex-suite.txt /*ls_4_3* +ls_4_3_1 latex-suite.txt /*ls_4_3_1* +ls_4_4 latex-suite.txt /*ls_4_4* +ls_4_4_1 latex-suite.txt /*ls_4_4_1* +ls_4_4_2 latex-suite.txt /*ls_4_4_2* +ls_5 latex-suite.txt /*ls_5* +ls_5_1 latex-suite.txt /*ls_5_1* +ls_5_2 latex-suite.txt /*ls_5_2* +ls_5_3 latex-suite.txt /*ls_5_3* +ls_5_3_1 latex-suite.txt /*ls_5_3_1* +ls_5_4 latex-suite.txt /*ls_5_4* +ls_5_5 latex-suite.txt /*ls_5_5* +ls_6 latex-suite.txt /*ls_6* +ls_6_1 latex-suite.txt /*ls_6_1* +ls_6_2 latex-suite.txt /*ls_6_2* +ls_6_3 latex-suite.txt /*ls_6_3* +ls_6_4 latex-suite.txt /*ls_6_4* +ls_6_5 latex-suite.txt /*ls_6_5* +ls_7 latex-suite.txt /*ls_7* +ls_7_1 latex-suite.txt /*ls_7_1* +ls_7_2 latex-suite.txt /*ls_7_2* +ls_7_3 latex-suite.txt /*ls_7_3* +ls_8 latex-suite.txt /*ls_8* +ls_8_1 latex-suite.txt /*ls_8_1* +ls_8_2 latex-suite.txt /*ls_8_2* +ls_8_2_1 latex-suite.txt /*ls_8_2_1* +ls_8_2_2 latex-suite.txt /*ls_8_2_2* +ls_8_2_3 latex-suite.txt /*ls_8_2_3* +ls_8_2_4 latex-suite.txt /*ls_8_2_4* +ls_8_2_5 latex-suite.txt /*ls_8_2_5* +ls_8_3 latex-suite.txt /*ls_8_3* +ls_9 latex-suite.txt /*ls_9* +ls_9_1 latex-suite.txt /*ls_9_1* +ls_9_2 latex-suite.txt /*ls_9_2* +ls_a_bA latex-suite.txt /*ls_a_bA* +ls_a_bB latex-suite.txt /*ls_a_bB* +ls_a_bC latex-suite.txt /*ls_a_bC* +ls_a_bD latex-suite.txt /*ls_a_bD* +ls_a_bE latex-suite.txt /*ls_a_bE* +ls_a_bF latex-suite.txt /*ls_a_bF* +ls_a_bG latex-suite.txt /*ls_a_bG* +ls_a_bH latex-suite.txt /*ls_a_bH* +ls_a_bI latex-suite.txt /*ls_a_bI* +ls_a_bJ latex-suite.txt /*ls_a_bJ* +ls_a_bK latex-suite.txt /*ls_a_bK* +ls_a_bL latex-suite.txt /*ls_a_bL* +ls_a_bM latex-suite.txt /*ls_a_bM* +ls_a_bN latex-suite.txt /*ls_a_bN* +ls_a_bO latex-suite.txt /*ls_a_bO* +ls_a_bP latex-suite.txt /*ls_a_bP* +ls_a_bQ latex-suite.txt /*ls_a_bQ* +ls_a_bR latex-suite.txt /*ls_a_bR* +ls_a_bS latex-suite.txt /*ls_a_bS* +ls_a_bT latex-suite.txt /*ls_a_bT* +ls_a_bU latex-suite.txt /*ls_a_bU* +ls_a_bV latex-suite.txt /*ls_a_bV* +ls_a_bW latex-suite.txt /*ls_a_bW* +ls_a_bX latex-suite.txt /*ls_a_bX* +ls_a_bY latex-suite.txt /*ls_a_bY* +ls_a_bZ latex-suite.txt /*ls_a_bZ* +ls_a_bc latex-suite.txt /*ls_a_bc* +ls_a_bd latex-suite.txt /*ls_a_bd* +ls_a_be latex-suite.txt /*ls_a_be* +ls_a_bf latex-suite.txt /*ls_a_bf* +ls_a_bg latex-suite.txt /*ls_a_bg* +ls_a_bh latex-suite.txt /*ls_a_bh* +ls_a_bi latex-suite.txt /*ls_a_bi* +ls_a_bj latex-suite.txt /*ls_a_bj* +ls_a_bk latex-suite.txt /*ls_a_bk* +ls_a_bl latex-suite.txt /*ls_a_bl* +ls_a_bm latex-suite.txt /*ls_a_bm* +ls_a_bn latex-suite.txt /*ls_a_bn* +ls_a_bo latex-suite.txt /*ls_a_bo* +ls_a_bp latex-suite.txt /*ls_a_bp* +ls_a_bq latex-suite.txt /*ls_a_bq* +ls_a_br latex-suite.txt /*ls_a_br* +ls_a_bs latex-suite.txt /*ls_a_bs* +ls_a_bt latex-suite.txt /*ls_a_bt* +ls_a_bu latex-suite.txt /*ls_a_bu* +ls_a_bv latex-suite.txt /*ls_a_bv* +ls_a_bw latex-suite.txt /*ls_a_bw* +ls_a_bx latex-suite.txt /*ls_a_bx* +ls_a_by latex-suite.txt /*ls_a_by* +ls_a_bz latex-suite.txt /*ls_a_bz* +ls_a_cA latex-suite.txt /*ls_a_cA* +ls_a_cB latex-suite.txt /*ls_a_cB* +ls_a_cC latex-suite.txt /*ls_a_cC* +ls_a_cD latex-suite.txt /*ls_a_cD* +ls_a_cE latex-suite.txt /*ls_a_cE* +ls_a_cF latex-suite.txt /*ls_a_cF* +ls_a_cG latex-suite.txt /*ls_a_cG* +ls_a_cH latex-suite.txt /*ls_a_cH* +ls_a_cI latex-suite.txt /*ls_a_cI* +ls_a_cJ latex-suite.txt /*ls_a_cJ* +ls_a_cK latex-suite.txt /*ls_a_cK* +ls_a_cL latex-suite.txt /*ls_a_cL* +ls_a_cM latex-suite.txt /*ls_a_cM* +ls_a_cN latex-suite.txt /*ls_a_cN* +ls_a_cO latex-suite.txt /*ls_a_cO* +ls_a_cP latex-suite.txt /*ls_a_cP* +ls_a_cQ latex-suite.txt /*ls_a_cQ* +ls_a_cR latex-suite.txt /*ls_a_cR* +ls_a_cS latex-suite.txt /*ls_a_cS* +ls_a_cT latex-suite.txt /*ls_a_cT* +ls_a_cU latex-suite.txt /*ls_a_cU* +ls_a_cV latex-suite.txt /*ls_a_cV* +ls_a_cW latex-suite.txt /*ls_a_cW* +ls_a_cX latex-suite.txt /*ls_a_cX* +ls_a_cY latex-suite.txt /*ls_a_cY* +ls_a_cZ latex-suite.txt /*ls_a_cZ* +ls_a_ca latex-suite.txt /*ls_a_ca* +ls_a_cb latex-suite.txt /*ls_a_cb* +ls_a_cc latex-suite.txt /*ls_a_cc* +ls_a_cd latex-suite.txt /*ls_a_cd* +ls_a_ce latex-suite.txt /*ls_a_ce* +ls_a_cf latex-suite.txt /*ls_a_cf* +ls_a_cg latex-suite.txt /*ls_a_cg* +ls_a_ch latex-suite.txt /*ls_a_ch* +ls_a_ci latex-suite.txt /*ls_a_ci* +ls_a_cj latex-suite.txt /*ls_a_cj* +ls_a_ck latex-suite.txt /*ls_a_ck* +ls_a_cl latex-suite.txt /*ls_a_cl* +ls_a_cm latex-suite.txt /*ls_a_cm* +ls_a_cn latex-suite.txt /*ls_a_cn* +ls_a_co latex-suite.txt /*ls_a_co* +ls_a_cp latex-suite.txt /*ls_a_cp* +ls_a_cq latex-suite.txt /*ls_a_cq* +ls_a_cr latex-suite.txt /*ls_a_cr* +ls_a_cs latex-suite.txt /*ls_a_cs* +ls_a_ct latex-suite.txt /*ls_a_ct* +ls_a_cu latex-suite.txt /*ls_a_cu* +ls_a_cv latex-suite.txt /*ls_a_cv* +ls_a_cw latex-suite.txt /*ls_a_cw* +ls_a_cx latex-suite.txt /*ls_a_cx* +ls_a_cy latex-suite.txt /*ls_a_cy* +ls_a_cz latex-suite.txt /*ls_a_cz* +ls_a_dA latex-suite.txt /*ls_a_dA* +ls_a_dB latex-suite.txt /*ls_a_dB* +ls_a_dC latex-suite.txt /*ls_a_dC* +ls_a_dD latex-suite.txt /*ls_a_dD* +ls_a_dE latex-suite.txt /*ls_a_dE* +ls_a_dF latex-suite.txt /*ls_a_dF* +ls_a_dG latex-suite.txt /*ls_a_dG* +ls_a_dH latex-suite.txt /*ls_a_dH* +ls_a_dI latex-suite.txt /*ls_a_dI* +ls_a_dJ latex-suite.txt /*ls_a_dJ* +ls_a_dK latex-suite.txt /*ls_a_dK* +ls_a_dL latex-suite.txt /*ls_a_dL* +ls_a_dM latex-suite.txt /*ls_a_dM* +ls_a_dN latex-suite.txt /*ls_a_dN* +ls_a_dO latex-suite.txt /*ls_a_dO* +ls_a_dP latex-suite.txt /*ls_a_dP* +ls_a_dQ latex-suite.txt /*ls_a_dQ* +ls_a_dR latex-suite.txt /*ls_a_dR* +ls_a_dS latex-suite.txt /*ls_a_dS* +ls_a_dT latex-suite.txt /*ls_a_dT* +ls_a_dU latex-suite.txt /*ls_a_dU* +ls_a_dV latex-suite.txt /*ls_a_dV* +ls_a_dW latex-suite.txt /*ls_a_dW* +ls_a_dX latex-suite.txt /*ls_a_dX* +ls_a_dY latex-suite.txt /*ls_a_dY* +ls_a_dZ latex-suite.txt /*ls_a_dZ* +ls_a_da latex-suite.txt /*ls_a_da* +ls_a_db latex-suite.txt /*ls_a_db* +ls_a_dc latex-suite.txt /*ls_a_dc* +ls_a_dd latex-suite.txt /*ls_a_dd* +ls_a_de latex-suite.txt /*ls_a_de* +ls_a_df latex-suite.txt /*ls_a_df* +ls_a_dg latex-suite.txt /*ls_a_dg* +ls_a_dh latex-suite.txt /*ls_a_dh* +ls_a_di latex-suite.txt /*ls_a_di* +ls_a_dj latex-suite.txt /*ls_a_dj* +ls_a_dk latex-suite.txt /*ls_a_dk* +ls_a_dl latex-suite.txt /*ls_a_dl* +ls_a_dm latex-suite.txt /*ls_a_dm* +ls_a_dn latex-suite.txt /*ls_a_dn* +ls_a_do latex-suite.txt /*ls_a_do* +ls_a_dp latex-suite.txt /*ls_a_dp* +ls_a_dq latex-suite.txt /*ls_a_dq* +ls_a_dr latex-suite.txt /*ls_a_dr* +ls_a_ds latex-suite.txt /*ls_a_ds* +ls_a_dt latex-suite.txt /*ls_a_dt* +ls_a_du latex-suite.txt /*ls_a_du* +ls_a_dv latex-suite.txt /*ls_a_dv* +ls_a_dw latex-suite.txt /*ls_a_dw* +ls_a_dx latex-suite.txt /*ls_a_dx* +ls_a_dy latex-suite.txt /*ls_a_dy* +ls_a_dz latex-suite.txt /*ls_a_dz* +ls_a_eA latex-suite.txt /*ls_a_eA* +ls_a_eB latex-suite.txt /*ls_a_eB* +ls_a_eC latex-suite.txt /*ls_a_eC* +ls_a_eD latex-suite.txt /*ls_a_eD* +ls_a_eE latex-suite.txt /*ls_a_eE* +ls_a_eF latex-suite.txt /*ls_a_eF* +ls_a_eG latex-suite.txt /*ls_a_eG* +ls_a_ea latex-suite.txt /*ls_a_ea* +ls_a_eb latex-suite.txt /*ls_a_eb* +ls_a_ec latex-suite.txt /*ls_a_ec* +ls_a_ed latex-suite.txt /*ls_a_ed* +ls_a_ee latex-suite.txt /*ls_a_ee* +ls_a_ef latex-suite.txt /*ls_a_ef* +ls_a_eg latex-suite.txt /*ls_a_eg* +ls_a_eh latex-suite.txt /*ls_a_eh* +ls_a_ei latex-suite.txt /*ls_a_ei* +ls_a_ej latex-suite.txt /*ls_a_ej* +ls_a_ek latex-suite.txt /*ls_a_ek* +ls_a_el latex-suite.txt /*ls_a_el* +ls_a_em latex-suite.txt /*ls_a_em* +ls_a_en latex-suite.txt /*ls_a_en* +ls_a_eo latex-suite.txt /*ls_a_eo* +ls_a_ep latex-suite.txt /*ls_a_ep* +ls_a_eq latex-suite.txt /*ls_a_eq* +ls_a_er latex-suite.txt /*ls_a_er* +ls_a_es latex-suite.txt /*ls_a_es* +ls_a_et latex-suite.txt /*ls_a_et* +ls_a_eu latex-suite.txt /*ls_a_eu* +ls_a_ev latex-suite.txt /*ls_a_ev* +ls_a_ew latex-suite.txt /*ls_a_ew* +ls_a_ex latex-suite.txt /*ls_a_ex* +ls_a_ey latex-suite.txt /*ls_a_ey* +ls_a_ez latex-suite.txt /*ls_a_ez* +ls_u_1 latex-suite.txt /*ls_u_1* +ls_u_2 latex-suite.txt /*ls_u_2* +ls_u_3 latex-suite.txt /*ls_u_3* +ls_u_4 latex-suite.txt /*ls_u_4* +lsq-compiling latex-suite-quickstart.txt /*lsq-compiling* +lsq-conclusions latex-suite-quickstart.txt /*lsq-conclusions* +lsq-debugging latex-suite-quickstart.txt /*lsq-debugging* +lsq-folding latex-suite-quickstart.txt /*lsq-folding* +lsq-insert-environment latex-suite-quickstart.txt /*lsq-insert-environment* +lsq-inserting-reference latex-suite-quickstart.txt /*lsq-inserting-reference* +lsq-inserting-template latex-suite-quickstart.txt /*lsq-inserting-template* +lsq-keyboard-shortcuts latex-suite-quickstart.txt /*lsq-keyboard-shortcuts* +lsq-lsq-inserting-package latex-suite-quickstart.txt /*lsq-lsq-inserting-package* +lsq-quick-forward-searching latex-suite-quickstart.txt /*lsq-quick-forward-searching* +lsq-quick-inverse-searching latex-suite-quickstart.txt /*lsq-quick-inverse-searching* +lsq-using-tutorial latex-suite-quickstart.txt /*lsq-using-tutorial* +lsq-viewing-dvi latex-suite-quickstart.txt /*lsq-viewing-dvi* +macro-enabling latex-suite.txt /*macro-enabling* +math, latexhelp.txt /*math,* +math-misc latexhelp.txt /*math-misc* +math-mode latexhelp.txt /*math-mode* +math-spacing latexhelp.txt /*math-spacing* +math-symbols latexhelp.txt /*math-symbols* +math: latexhelp.txt /*math:* +math; latexhelp.txt /*math;* +matn! latexhelp.txt /*matn!* +minipage latexhelp.txt /*minipage* +notitlepage latexhelp.txt /*notitlepage* +onecolumn latexhelp.txt /*onecolumn* +oneside latexhelp.txt /*oneside* +openany latexhelp.txt /*openany* +openbib latexhelp.txt /*openbib* +openright latexhelp.txt /*openright* +otl2html vo_readme.txt.gz /*otl2html* +overriding-macros latex-suite.txt /*overriding-macros* +package-actions latex-suite.txt /*package-actions* +paragraph-mode latexhelp.txt /*paragraph-mode* +part-compiling latex-suite.txt /*part-compiling* +pausing-imaps latex-suite.txt /*pausing-imaps* +picture latexhelp.txt /*picture* +picture-makebox latexhelp.txt /*picture-makebox* +place-holder latex-suite.txt /*place-holder* +place-holders latex-suite.txt /*place-holders* +plain latexhelp.txt /*plain* +pre-lengths latexhelp.txt /*pre-lengths* +ps_color.txt ps_color.txt /*ps_color.txt* +ps_colour ps_color.txt /*ps_colour* +psc ps_color.txt /*psc* +psc-about-background ps_color.txt /*psc-about-background* +psc-change-background ps_color.txt /*psc-change-background* +psc-contents ps_color.txt /*psc-contents* +psc-cterm ps_color.txt /*psc-cterm* +psc-cterm-color-table ps_color.txt /*psc-cterm-color-table* +psc-cterm-incompatible ps_color.txt /*psc-cterm-incompatible* +psc-cterm-nt ps_color.txt /*psc-cterm-nt* +psc-cterm-others ps_color.txt /*psc-cterm-others* +psc-cterm-xterm ps_color.txt /*psc-cterm-xterm* +psc-faq ps_color.txt /*psc-faq* +psc-faq-ffothers ps_color.txt /*psc-faq-ffothers* +psc-features ps_color.txt /*psc-features* +psc-options ps_color.txt /*psc-options* +psc-overview ps_color.txt /*psc-overview* +psc-release-notes ps_color.txt /*psc-release-notes* +psc-tips ps_color.txt /*psc-tips* +psc-todo ps_color.txt /*psc-todo* +psc-usage ps_color.txt /*psc-usage* +psc_cterm_style ps_color.txt /*psc_cterm_style* +psc_fontface ps_color.txt /*psc_fontface* +psc_inversed_todo ps_color.txt /*psc_inversed_todo* +psc_statement_different_from_type ps_color.txt /*psc_statement_different_from_type* +psc_style ps_color.txt /*psc_style* +psc_use_default_for_cterm ps_color.txt /*psc_use_default_for_cterm* +pscolor ps_color.txt /*pscolor* +quotation latexhelp.txt /*quotation* +quote-l latexhelp.txt /*quote-l* +recommended-settings latex-suite.txt /*recommended-settings* +remapping-latex-suite-keys latex-suite.txt /*remapping-latex-suite-keys* +report-class latexhelp.txt /*report-class* +roman latexhelp.txt /*roman* +rqno latexhelp.txt /*rqno* +section-mappings latex-suite.txt /*section-mappings* +slides-class latexhelp.txt /*slides-class* +smart-backspace latex-suite.txt /*smart-backspace* +smart-keys latex-suite.txt /*smart-keys* +sub-sup latexhelp.txt /*sub-sup* +subscripts latexhelp.txt /*subscripts* +superscripts latexhelp.txt /*superscripts* +supporting-packages latex-suite.txt /*supporting-packages* +tab' latexhelp.txt /*tab'* +tab+ latexhelp.txt /*tab+* +tab- latexhelp.txt /*tab-* +tab< latexhelp.txt /*tab<* +tab= latexhelp.txt /*tab=* +tab> latexhelp.txt /*tab>* +tab` latexhelp.txt /*tab`* +taba latexhelp.txt /*taba* +tabbing latexhelp.txt /*tabbing* +tabular latexhelp.txt /*tabular* +taglist-commands taglist.txt /*taglist-commands* +taglist-debug taglist.txt /*taglist-debug* +taglist-extend taglist.txt /*taglist-extend* +taglist-faq taglist.txt /*taglist-faq* +taglist-functions taglist.txt /*taglist-functions* +taglist-install taglist.txt /*taglist-install* +taglist-internet taglist.txt /*taglist-internet* +taglist-intro taglist.txt /*taglist-intro* +taglist-keys taglist.txt /*taglist-keys* +taglist-license taglist.txt /*taglist-license* +taglist-menu taglist.txt /*taglist-menu* +taglist-options taglist.txt /*taglist-options* +taglist-requirements taglist.txt /*taglist-requirements* +taglist-session taglist.txt /*taglist-session* +taglist-todo taglist.txt /*taglist-todo* +taglist-using taglist.txt /*taglist-using* +taglist.txt taglist.txt /*taglist.txt* +theorem latexhelp.txt /*theorem* +titlepage latexhelp.txt /*titlepage* +twocolumn latexhelp.txt /*twocolumn* +twoside latexhelp.txt /*twoside* +verbatim latexhelp.txt /*verbatim* +verse latexhelp.txt /*verse* +vimoutliner vo_readme.txt.gz /*vimoutliner* +vo vo_readme.txt.gz /*vo* +vo-activities vo_readme.txt.gz /*vo-activities* +vo-advanced vo_readme.txt.gz /*vo-advanced* +vo-cautions vo_readme.txt.gz /*vo-cautions* +vo-checkbox vo_readme.txt.gz /*vo-checkbox* +vo-color vo_readme.txt.gz /*vo-color* +vo-command vo_readme.txt.gz /*vo-command* +vo-debian vo_readme.txt.gz /*vo-debian* +vo-executable-lines vo_readme.txt.gz /*vo-executable-lines* +vo-hoisting vo_readme.txt.gz /*vo-hoisting* +vo-install vo_readme.txt.gz /*vo-install* +vo-license vo_readme.txt.gz /*vo-license* +vo-maketags vo_readme.txt.gz /*vo-maketags* +vo-menu vo_readme.txt.gz /*vo-menu* +vo-objects vo_readme.txt.gz /*vo-objects* +vo-other-files vo_readme.txt.gz /*vo-other-files* +vo-other-info vo_readme.txt.gz /*vo-other-info* +vo-philosophy vo_readme.txt.gz /*vo-philosophy* +vo-plugins vo_readme.txt.gz /*vo-plugins* +vo-post-processors vo_readme.txt.gz /*vo-post-processors* +vo-running vo_readme.txt.gz /*vo-running* +vo-scripts vo_readme.txt.gz /*vo-scripts* +vo-testing vo_readme.txt.gz /*vo-testing* +vo-troubleshooting vo_readme.txt.gz /*vo-troubleshooting* +vo-version vo_readme.txt.gz /*vo-version* +vo_readme.txt vo_readme.txt.gz /*vo_readme.txt* +why-IMAP latex-suite.txt /*why-IMAP* diff --git a/.vim/filetype.vim b/.vim/filetype.vim new file mode 100644 index 0000000..e5a223d --- /dev/null +++ b/.vim/filetype.vim @@ -0,0 +1,4 @@ +" RELAX NG Compact Syntax +augroup filetypedetect + au! BufRead,BufNewFile *.rnc setfiletype rnc +augroup END diff --git a/.vim/ftplugin/bib_latexSuite.vim b/.vim/ftplugin/bib_latexSuite.vim new file mode 100644 index 0000000..6b803af --- /dev/null +++ b/.vim/ftplugin/bib_latexSuite.vim @@ -0,0 +1,16 @@ +" File: bib_latexSuite.vim +" Author: Srinath Avadhanula +" License: Vim Charityware License +" Description: +" This file sources the bibtex.vim file distributed as part of latex-suite. +" That file sets up 3 maps BBB, BAS, and BBA which are easy wasy to type in +" bibliographic entries. +" +" CVS: $Id: bib_latexSuite.vim 997 2006-03-20 09:45:45Z srinathava $ + +" source main.vim because we need a few functions from it. +runtime ftplugin/latex-suite/main.vim +" Disable smart-quotes because we need to enter real quotes in bib files. +runtime ftplugin/latex-suite/bibtex.vim + +" vim:fdm=marker:ff=unix:noet:ts=4:sw=4:nowrap diff --git a/.vim/ftplugin/c.vim b/.vim/ftplugin/c.vim new file mode 100644 index 0000000..ff5a637 --- /dev/null +++ b/.vim/ftplugin/c.vim @@ -0,0 +1,294 @@ +" Vim filetype plugin file +" +" Language : C / C++ +" Plugin : c.vim (version 5.0) +" Maintainer : Fritz Mehner <mehner@fh-swf.de> +" Revision : $Id: c.vim,v 1.18 2007/11/20 18:12:02 mehner Exp $ +" +" This will enable keyword completion for C and C++ +" using Vim's dictionary feature |i_CTRL-X_CTRL-K|. +" ----------------------------------------------------------------- +" +" Only do this when not done yet for this buffer +" +if exists("b:did_C_ftplugin") + finish +endif +let b:did_C_ftplugin = 1 +" +" ---------- C/C++ dictionary ----------------------------------- +" +if exists("g:C_Dictionary_File") + silent! exec 'setlocal dictionary+='.g:C_Dictionary_File +endif +" +" ---------- F-key mappings ------------------------------------ +" +" Alt-F9 write buffer and compile +" F9 compile and link +" Ctrl-F9 run executable +" Shift-F9 command line arguments +" + map <buffer> <silent> <A-F9> <C-C>:call C_Compile()<CR>:redraw<CR>:call C_HlMessage()<CR> +imap <buffer> <silent> <A-F9> <C-C><C-C>:call C_Compile()<CR>:redraw<CR>:call C_HlMessage()<CR> +" + map <buffer> <silent> <F9> <C-C>:call C_Link()<CR>:redraw<CR>:call C_HlMessage()<CR> +imap <buffer> <silent> <F9> <C-C><C-C>:call C_Link()<CR>:redraw<CR>:call C_HlMessage()<CR> +" +" <C-C> seems to be essential here: + map <buffer> <silent> <C-F9> <C-C>:call C_Run()<CR> +imap <buffer> <silent> <C-F9> <C-C><C-C>:call C_Run()<CR> +" + map <buffer> <silent> <S-F9> <C-C>:call C_Arguments()<CR> +imap <buffer> <silent> <S-F9> <C-C><C-C>:call C_Arguments()<CR> +" +" alternate file plugin +" +"if exists("loaded_alternateFile") +" map <buffer> <silent> <S-F2> <C-C>:A<CR> +"imap <buffer> <silent> <S-F2> <C-C><C-C>:A<CR> +"endif +" +" +" ---------- KEY MAPPINGS : MENU ENTRIES ------------------------------------- +" +" ---------- comments menu ------------------------------------------------ +" + + noremap <buffer> <silent> <Leader>cl <Esc>:call C_LineEndComment()<CR> +inoremap <buffer> <silent> <Leader>cl <Esc>:call C_LineEndComment()<CR>a +vnoremap <buffer> <silent> <Leader>cl <Esc>:call C_MultiLineEndComments()<CR> + noremap <buffer> <silent> <Leader>cj <Esc>:call C_AdjustLineEndComm("a")<CR> +vnoremap <buffer> <silent> <Leader>cj <Esc>:call C_AdjustLineEndComm("v")<CR> +inoremap <buffer> <silent> <Leader>cj <Esc>:call C_AdjustLineEndComm("a")<CR>a + noremap <buffer> <silent> <Leader>cs <Esc>:call C_GetLineEndCommCol()<CR> + noremap <buffer> <silent> <Leader>c* <Esc>:call C_CodeComment("a","yes")<CR><Esc>:nohlsearch<CR>j +vnoremap <buffer> <silent> <Leader>c* <Esc>:call C_CodeComment("v","yes")<CR><Esc>:nohlsearch<CR>j + noremap <buffer> <silent> <Leader>c/ <Esc>:call C_CodeComment("a","no")<CR><Esc>:nohlsearch<CR>j +vnoremap <buffer> <silent> <Leader>c/ <Esc>:call C_CodeComment("v","no")<CR><Esc>:nohlsearch<CR>j + noremap <buffer> <silent> <Leader>co <Esc>:call C_CommentCode("a")<CR><Esc>:nohlsearch<CR> +vnoremap <buffer> <silent> <Leader>co <Esc>:call C_CommentCode("v")<CR><Esc>:nohlsearch<CR> + + noremap <buffer> <silent> <Leader>cfr <Esc>:call C_InsertTemplate("comment.frame")<CR> + noremap <buffer> <silent> <Leader>cfu <Esc>:call C_InsertTemplate("comment.function")<CR> + noremap <buffer> <silent> <Leader>cme <Esc>:call C_InsertTemplate("comment.method")<CR> + noremap <buffer> <silent> <Leader>ccl <Esc>:call C_InsertTemplate("comment.class")<CR> + +inoremap <buffer> <silent> <Leader>cfr <Esc>:call C_InsertTemplate("comment.frame")<CR> +inoremap <buffer> <silent> <Leader>cfu <Esc>:call C_InsertTemplate("comment.function")<CR> +inoremap <buffer> <silent> <Leader>cme <Esc>:call C_InsertTemplate("comment.method")<CR> +inoremap <buffer> <silent> <Leader>ccl <Esc>:call C_InsertTemplate("comment.class")<CR> + + noremap <buffer> <silent> <Leader>cd a<C-R>=C_InsertDateAndTime('d')<CR> +inoremap <buffer> <silent> <Leader>cd <C-R>=C_InsertDateAndTime('d')<CR> + noremap <buffer> <silent> <Leader>ct a<C-R>=C_InsertDateAndTime('dt')<CR> +inoremap <buffer> <silent> <Leader>ct <C-R>=C_InsertDateAndTime('dt')<CR> +" +" ---------- statements menu ------------------------------------------------ +" + noremap <buffer> <silent> <Leader>sd <Esc>:call C_InsertTemplate("statements.do-while")<CR> +vnoremap <buffer> <silent> <Leader>sd <Esc>:call C_InsertTemplate("statements.do-while", "v")<CR> +inoremap <buffer> <silent> <Leader>sd <Esc>:call C_InsertTemplate("statements.do-while")<CR> + + noremap <buffer> <silent> <Leader>sf <Esc>:call C_InsertTemplate("statements.for")<CR> +inoremap <buffer> <silent> <Leader>sf <Esc>:call C_InsertTemplate("statements.for")<CR> + + noremap <buffer> <silent> <Leader>sfo <Esc>:call C_InsertTemplate("statements.for-block")<CR> +vnoremap <buffer> <silent> <Leader>sfo <Esc>:call C_InsertTemplate("statements.for-block", "v")<CR> +inoremap <buffer> <silent> <Leader>sfo <Esc>:call C_InsertTemplate("statements.for-block")<CR> + + noremap <buffer> <silent> <Leader>si <Esc>:call C_InsertTemplate("statements.if")<CR> +inoremap <buffer> <silent> <Leader>si <Esc>:call C_InsertTemplate("statements.if")<CR> + + noremap <buffer> <silent> <Leader>sif <Esc>:call C_InsertTemplate("statements.if-block")<CR> +vnoremap <buffer> <silent> <Leader>sif <Esc>:call C_InsertTemplate("statements.if-block", "v")<CR> +inoremap <buffer> <silent> <Leader>sif <Esc>:call C_InsertTemplate("statements.if-block")<CR> + + noremap <buffer> <silent> <Leader>sie <Esc>:call C_InsertTemplate("statements.if-else")<CR> +vnoremap <buffer> <silent> <Leader>sie <Esc>:call C_InsertTemplate("statements.if-else", "v")<CR> +inoremap <buffer> <silent> <Leader>sie <Esc>:call C_InsertTemplate("statements.if-else")<CR> + + noremap <buffer> <silent> <Leader>sife <Esc>:call C_InsertTemplate("statements.if-block-else")<CR> +vnoremap <buffer> <silent> <Leader>sife <Esc>:call C_InsertTemplate("statements.if-block-else", "v")<CR> +inoremap <buffer> <silent> <Leader>sife <Esc>:call C_InsertTemplate("statements.if-block-else")<CR> + + noremap <buffer> <silent> <Leader>sw <Esc>:call C_InsertTemplate("statements.while")<CR> +inoremap <buffer> <silent> <Leader>sw <Esc>:call C_InsertTemplate("statements.while")<CR> + + noremap <buffer> <silent> <Leader>swh <Esc>:call C_InsertTemplate("statements.while-block")<CR> +vnoremap <buffer> <silent> <Leader>swh <Esc>:call C_InsertTemplate("statements.while-block", "v")<CR> +inoremap <buffer> <silent> <Leader>swh <Esc>:call C_InsertTemplate("statements.while-block")<CR> + + noremap <buffer> <silent> <Leader>ss <Esc>:call C_InsertTemplate("statements.switch")<CR> +vnoremap <buffer> <silent> <Leader>ss <Esc>:call C_InsertTemplate("statements.switch", "v")<CR> +inoremap <buffer> <silent> <Leader>ss <Esc>:call C_InsertTemplate("statements.switch")<CR> + + noremap <buffer> <silent> <Leader>sc <Esc>:call C_InsertTemplate("statements.case")<CR> +inoremap <buffer> <silent> <Leader>sc <Esc>:call C_InsertTemplate("statements.case")<CR> + + noremap <buffer> <silent> <Leader>s{ <Esc>:call C_InsertTemplate("statements.block")<CR> +vnoremap <buffer> <silent> <Leader>s{ <Esc>:call C_InsertTemplate("statements.block", "v")<CR> +inoremap <buffer> <silent> <Leader>s{ <Esc>:call C_InsertTemplate("statements.block")<CR> +" +" ---------- preprocessor menu ---------------------------------------------- +" +inoremap <buffer> <silent> <Leader>p< <Esc><Esc>o#include<Tab><><Left> +inoremap <buffer> <silent> <Leader>p" <Esc><Esc>o#include<Tab>""<Left> +inoremap <buffer> <silent> <Leader>pd <Esc><Esc>:call C_InsertTemplate("preprocessor.define")<CR> +inoremap <buffer> <silent> <Leader>pu <Esc><Esc>:call C_InsertTemplate("preprocessor.undefine")<CR> +" + noremap <buffer> <silent> <Leader>p< <Esc><Esc>o#include<Tab><><Left> + noremap <buffer> <silent> <Leader>p" <Esc><Esc>o#include<Tab>""<Left> + noremap <buffer> <silent> <Leader>pd <Esc><Esc>:call C_InsertTemplate("preprocessor.define")<CR> + noremap <buffer> <silent> <Leader>pu <Esc><Esc>:call C_InsertTemplate("preprocessor.undefine")<CR> + + noremap <buffer> <silent> <Leader>pie <Esc><Esc>:call C_InsertTemplate("preprocessor.if-else-endif")<CR> + noremap <buffer> <silent> <Leader>pid <Esc><Esc>:call C_InsertTemplate("preprocessor.ifdef-else-endif")<CR> + noremap <buffer> <silent> <Leader>pin <Esc><Esc>:call C_InsertTemplate("preprocessor.ifndef-else-endif")<CR> + noremap <buffer> <silent> <Leader>pind <Esc><Esc>:call C_InsertTemplate("preprocessor.ifndef-def-endif")<CR> + noremap <buffer> <silent> <Leader>pi0 <Esc><Esc>:call C_PPIf0("a")<CR>2ji + +vnoremap <buffer> <silent> <Leader>pie <Esc><Esc>:call C_InsertTemplate("preprocessor.if-else-endif", "v")<CR> +vnoremap <buffer> <silent> <Leader>pid <Esc><Esc>:call C_InsertTemplate("preprocessor.ifdef-else-endif", "v")<CR> +vnoremap <buffer> <silent> <Leader>pin <Esc><Esc>:call C_InsertTemplate("preprocessor.ifndef-else-endif", "v")<CR> +vnoremap <buffer> <silent> <Leader>pind <Esc><Esc>:call C_InsertTemplate("preprocessor.ifndef-def-endif", "v")<CR> +vnoremap <buffer> <silent> <Leader>pi0 <Esc><Esc>:call C_PPIf0("v")<CR> + +inoremap <buffer> <silent> <Leader>pie <Esc><Esc>:call C_InsertTemplate("preprocessor.if-else-endif")<CR> +inoremap <buffer> <silent> <Leader>pid <Esc><Esc>:call C_InsertTemplate("preprocessor.ifdef-else-endif")<CR> +inoremap <buffer> <silent> <Leader>pin <Esc><Esc>:call C_InsertTemplate("preprocessor.ifndef-else-endif")<CR> +inoremap <buffer> <silent> <Leader>pind <Esc><Esc>:call C_InsertTemplate("preprocessor.ifndef-def-endif")<CR> +inoremap <buffer> <silent> <Leader>pi0 <Esc><Esc>:call C_PPIf0("a")<CR>2ji + + noremap <buffer> <silent> <Leader>pr0 <Esc><Esc>:call C_PPIf0Remove()<CR> +" +" ---------- idioms menu ---------------------------------------------------- +" + noremap <buffer> <silent> <Leader>if <Esc>:call C_InsertTemplate("idioms.function")<CR> +vnoremap <buffer> <silent> <Leader>if <Esc>:call C_InsertTemplate("idioms.function", "v")<CR> +inoremap <buffer> <silent> <Leader>if <Esc>:call C_InsertTemplate("idioms.function")<CR> + noremap <buffer> <silent> <Leader>isf <Esc>:call C_InsertTemplate("idioms.function-static")<CR> +vnoremap <buffer> <silent> <Leader>isf <Esc>:call C_InsertTemplate("idioms.function-static", "v")<CR> +inoremap <buffer> <silent> <Leader>isf <Esc>:call C_InsertTemplate("idioms.function-static")<CR> + noremap <buffer> <silent> <Leader>im <Esc>:call C_InsertTemplate("idioms.main")<CR> +vnoremap <buffer> <silent> <Leader>im <Esc>:call C_InsertTemplate("idioms.main", "v")<CR> +inoremap <buffer> <silent> <Leader>im <Esc>:call C_InsertTemplate("idioms.main")<CR> +" + noremap <buffer> <silent> <Leader>i0 <Esc>:call C_CodeFor("up" , "a")<CR>a +vnoremap <buffer> <silent> <Leader>i0 <Esc>:call C_CodeFor("up" , "v")<CR> +inoremap <buffer> <silent> <Leader>i0 <Esc>:call C_CodeFor("up" , "a")<CR>a + noremap <buffer> <silent> <Leader>in <Esc>:call C_CodeFor("down", "a")<CR>a +vnoremap <buffer> <silent> <Leader>in <Esc>:call C_CodeFor("down", "v")<CR> +inoremap <buffer> <silent> <Leader>in <Esc>:call C_CodeFor("down", "a")<CR>a +" + noremap <buffer> <silent> <Leader>ie <Esc>:call C_InsertTemplate("idioms.enum")<CR> +vnoremap <buffer> <silent> <Leader>ie <Esc>:call C_InsertTemplate("idioms.enum" , "v")<CR> +inoremap <buffer> <silent> <Leader>ie <Esc>:call C_InsertTemplate("idioms.enum")<CR> + noremap <buffer> <silent> <Leader>is <Esc>:call C_InsertTemplate("idioms.struct")<CR> +vnoremap <buffer> <silent> <Leader>is <Esc>:call C_InsertTemplate("idioms.struct", "v")<CR> +inoremap <buffer> <silent> <Leader>is <Esc>:call C_InsertTemplate("idioms.struct")<CR> + noremap <buffer> <silent> <Leader>iu <Esc>:call C_InsertTemplate("idioms.union")<CR> +vnoremap <buffer> <silent> <Leader>iu <Esc>:call C_InsertTemplate("idioms.union" , "v")<CR> +inoremap <buffer> <silent> <Leader>iu <Esc>:call C_InsertTemplate("idioms.union")<CR> +" + noremap <buffer> <silent> <Leader>ip <Esc><Esc>oprintf("\n");<Esc>2F"a +inoremap <buffer> <silent> <Leader>ip printf("\n");<Esc>2F"a + noremap <buffer> <silent> <Leader>isc <Esc><Esc>oscanf("", & );<Esc>F"i +inoremap <buffer> <silent> <Leader>isc scanf("", & );<Esc>F"i +" + noremap <buffer> <silent> <Leader>ica <Esc>:call C_InsertTemplate("idioms.calloc") +inoremap <buffer> <silent> <Leader>ica <Esc>:call C_InsertTemplate("idioms.calloc") + noremap <buffer> <silent> <Leader>ima <Esc>:call C_InsertTemplate("idioms.malloc")<CR> +inoremap <buffer> <silent> <Leader>ima <Esc>:call C_InsertTemplate("idioms.malloc")<CR> +" + noremap <buffer> <silent> <Leader>isi isizeof()<Left> +vnoremap <buffer> <silent> <Leader>isi ssizeof()<Esc>P +inoremap <buffer> <silent> <Leader>isi sizeof()<Left> + noremap <buffer> <silent> <Leader>ias <Esc><Esc>oassert();<Left><Left> +vnoremap <buffer> <silent> <Leader>ias sassert();<Esc>F(p +inoremap <buffer> <silent> <Leader>ias assert();<Left><Left> +" + noremap <buffer> <silent> <Leader>ii <Esc>:call C_InsertTemplate("idioms.open-input-file")<CR> +inoremap <buffer> <silent> <Leader>ii <Esc>:call C_InsertTemplate("idioms.open-input-file")<CR> + noremap <buffer> <silent> <Leader>io <Esc>:call C_InsertTemplate("idioms.open-output-file")<CR> +inoremap <buffer> <silent> <Leader>io <Esc>:call C_InsertTemplate("idioms.open-output-file")<CR> +" +" ---------- snippet menu ---------------------------------------------------- +" + noremap <buffer> <silent> <Leader>nr <Esc>:call C_CodeSnippet("r")<CR> + noremap <buffer> <silent> <Leader>nw <Esc>:call C_CodeSnippet("w")<CR> +vnoremap <buffer> <silent> <Leader>nw <Esc>:call C_CodeSnippet("wv")<CR> + noremap <buffer> <silent> <Leader>ne <Esc>:call C_CodeSnippet("e")<CR> +" + noremap <buffer> <silent> <Leader>np <Esc>:call C_ProtoPick("n")<CR> +vnoremap <buffer> <silent> <Leader>np <Esc>:call C_ProtoPick("v")<CR> + noremap <buffer> <silent> <Leader>ni <Esc>:call C_ProtoInsert()<CR> + noremap <buffer> <silent> <Leader>nc <Esc>:call C_ProtoClear()<CR> + noremap <buffer> <silent> <Leader>ns <Esc>:call C_ProtoShow()<CR> +" +" ---------- C++ menu ---------------------------------------------------- +" + noremap <buffer> <silent> <Leader>+m <Esc>:call C_InsertTemplate("cpp.method-implementation")<CR> +inoremap <buffer> <silent> <Leader>+m <Esc>:call C_InsertTemplate("cpp.method-implementation")<CR> + noremap <buffer> <silent> <Leader>+c <Esc>:call C_InsertTemplate("cpp.class")<CR> +inoremap <buffer> <silent> <Leader>+c <Esc>:call C_InsertTemplate("cpp.class")<CR> + noremap <buffer> <silent> <Leader>+cn <Esc>:call C_InsertTemplate("cpp.class-using-new")<CR> +inoremap <buffer> <silent> <Leader>+cn <Esc>:call C_InsertTemplate("cpp.class-using-new")<CR> + + noremap <buffer> <silent> <Leader>+tm <Esc>:call C_InsertTemplate("cpp.template-method-implementation")<CR> +inoremap <buffer> <silent> <Leader>+tm <Esc>:call C_InsertTemplate("cpp.template-method-implementation")<CR> + noremap <buffer> <silent> <Leader>+tc <Esc>:call C_InsertTemplate("cpp.template-class")<CR> +inoremap <buffer> <silent> <Leader>+tc <Esc>:call C_InsertTemplate("cpp.template-class")<CR> + noremap <buffer> <silent> <Leader>+tcn <Esc>:call C_InsertTemplate("cpp.template-class-using-new")<CR> +inoremap <buffer> <silent> <Leader>+tcn <Esc>:call C_InsertTemplate("cpp.template-class-using-new")<CR> + + noremap <buffer> <silent> <Leader>+tf <Esc>:call C_InsertTemplate("cpp.template-function")<CR> +inoremap <buffer> <silent> <Leader>+tf <Esc>:call C_InsertTemplate("cpp.template-function")<CR> + + noremap <buffer> <silent> <Leader>+ec <Esc>:call C_InsertTemplate("cpp.error-class")<CR> +inoremap <buffer> <silent> <Leader>+ec <Esc>:call C_InsertTemplate("cpp.error-class")<CR> + + noremap <buffer> <silent> <Leader>+tr <Esc>:call C_InsertTemplate("cpp.try-catch")<CR> +vnoremap <buffer> <silent> <Leader>+tr <Esc>:call C_InsertTemplate("cpp.try-catch", "v")<CR> +inoremap <buffer> <silent> <Leader>+tr <Esc>:call C_InsertTemplate("cpp.try-catch")<CR> + + noremap <buffer> <silent> <Leader>+ca <Esc>:call C_InsertTemplate("cpp.catch")<CR> +vnoremap <buffer> <silent> <Leader>+ca <Esc>:call C_InsertTemplate("cpp.catch", "v")<CR> +inoremap <buffer> <silent> <Leader>+ca <Esc>:call C_InsertTemplate("cpp.catch")<CR> + + noremap <buffer> <silent> <Leader>+c. <Esc>:call C_InsertTemplate("cpp.catch-points")<CR> +vnoremap <buffer> <silent> <Leader>+c. <Esc>:call C_InsertTemplate("cpp.catch-points", "v")<CR> +inoremap <buffer> <silent> <Leader>+c. <Esc>:call C_InsertTemplate("cpp.catch-points")<CR> +" +" +" ---------- run menu -------------------------------------------------------- +" + map <buffer> <silent> <Leader>rc <C-C>:call C_Compile()<CR>:redraw<CR>:call C_HlMessage()<CR> + map <buffer> <silent> <Leader>rl <C-C>:call C_Link()<CR>:redraw<CR>:call C_HlMessage()<CR> + map <buffer> <silent> <Leader>rr <C-C>:call C_Run()<CR> + map <buffer> <silent> <Leader>ra <C-C>:call C_Arguments()<CR> + map <buffer> <silent> <Leader>rm <C-C>:call C_Make()<CR> + map <buffer> <silent> <Leader>rg <C-C>:call C_MakeArguments()<CR> + map <buffer> <silent> <Leader>rp <C-C>:call C_SplintCheck()<CR>:redraw<CR>:call C_HlMessage()<CR> + map <buffer> <silent> <Leader>ri <C-C>:call C_SplintArguments()<CR> + map <buffer> <silent> <Leader>rd <C-C>:call C_Indent("a")<CR>:redraw<CR>:call C_HlMessage()<CR> +vmap <buffer> <silent> <Leader>rd <C-C>:call C_Indent("v")<CR>:redraw<CR>:call C_HlMessage()<CR> + map <buffer> <silent> <Leader>rh <C-C>:call C_Hardcopy("n")<CR> +vmap <buffer> <silent> <Leader>rh <C-C>:call C_Hardcopy("v")<CR> + map <buffer> <silent> <Leader>rs <C-C>:call C_Settings()<CR> + map <buffer> <silent> <Leader>rt <C-C>:call C_RebuildTemplates()<CR> + if has("unix") + map <buffer> <silent> <Leader>rx <C-C>:call C_XtermSize()<CR> + endif + map <buffer> <silent> <Leader>ro <C-C>:call C_Toggle_Gvim_Xterm()<CR> +" +" Abraxas CodeCheck (R) +" +if executable("check") + map <buffer> <silent> <Leader>rk <C-C>:call C_CodeCheck()<CR>:redraw<CR>:call C_HlMessage()<CR> + map <buffer> <silent> <Leader>re <C-C>:call C_CodeCheckArguments()<CR> +endif +" ---------- plugin help ----------------------------------------------------- +" + map <buffer> <silent> <Leader>h <Esc>:call C_HelpCsupport()<CR> +" diff --git a/.vim/ftplugin/cpp.vim b/.vim/ftplugin/cpp.vim new file mode 100644 index 0000000..79b3445 --- /dev/null +++ b/.vim/ftplugin/cpp.vim @@ -0,0 +1,164 @@ +" Line numbering +set number +" Set syntax highlighting +syntax on +" Tabbing +set et +set shiftwidth=4 +set smarttab +set autoindent +" Complete Brackets { +" +" }" +" Complete quotes" +inoremap " ""<Left> +" We want a mouse in consoles, so:" +set mouse=a +" +"=============================================================================== +"========== load example vimrc from the distribution ========================= +"=============================================================================== +" +runtime vimrc_example.vim +" +filetype plugin on +" +"=============================================================================== +"========== CUSTOMIZATION (vimrc) ============================================ +"=============================================================================== +" +" Platform specific items: +" - central backup directory (has to be created) +" - default dictionary +" Uncomment your choice. +if has("win16") || has("win32") || has("win64") || + \ has("win95") || has("win32unix") + " +" runtime mswin.vim +" set backupdir =$VIM\vimfiles\backupdir +" set dictionary=$VIM\vimfiles\wordlists/german.list +else +" set backupdir =$HOME/.vim.backupdir +" set dictionary=$HOME/.vim/wordlists/german.list +endif +" +" Using a backupdir under UNIX/Linux: you may want to include a line similar to +" find $HOME/.vim.backupdir -name "*" -type f -mtime +60 -exec rm -f {} \; +" in one of your shell startup files (e.g. $HOME/.profile) +" +"------------------------------------------------------------------------------- +" Use of dictionaries +"------------------------------------------------------------------------------- +" +set complete+=k " scan the files given with the 'dictionary' option +" +"------------------------------------------------------------------------------- +" Various settings +"------------------------------------------------------------------------------- +" +set autoread " read open files again when changed outside Vim +set autowrite " write a modified buffer on each :next , ... +set browsedir =current " which directory to use for the file browser +set incsearch " use incremental search +"set nowrap " do not wrap lines +set shiftwidth =4 " number of spaces to use for each step of indent +set tabstop =4 " number of spaces that a <Tab> in the file counts for +set visualbell " visual bell instead of beeping +" +" +"------------------------------------------------------------------------------- +" some additional hot keys +"------------------------------------------------------------------------------- +" F2 - write file without confirmation +" F3 - call file explorer Ex +" F4 - show tag under curser in the preview window (tagfile must exist!) +" F5 - open quickfix error window +" F6 - close quickfix error window +" F7 - display previous error +" F8 - display next error +" S-Tab - Fast switching between buffers (see below) +" C-q - Leave the editor with Ctrl-q (see below) +"------------------------------------------------------------------------------- +" +map <silent> <F2> :write<CR> +map <silent> <F3> :Explore<CR> +nmap <silent> <F4> :exe ":ptag ".expand("<cword>")<CR> +map <silent> <F5> :copen<CR> +map <silent> <F6> :cclose<CR> +map <silent> <F7> :cp<CR> +map <silent> <F8> :cn<CR> +" +imap <silent> <F2> <Esc>:write<CR> +imap <silent> <F3> <Esc>:Explore<CR> +imap <silent> <F4> <Esc>:exe ":ptag ".expand("<cword>")<CR> +imap <silent> <F5> <Esc>:copen<CR> +imap <silent> <F6> <Esc>:cclose<CR> +imap <silent> <F7> <Esc>:cp<CR> +imap <silent> <F8> <Esc>:cn<CR> +" +"------------------------------------------------------------------------------- +" Fast switching between buffers +" The current buffer will be saved before switching to the next one. +" Choose :bprevious or :bnext +"------------------------------------------------------------------------------- +" + map <silent> <s-tab> <Esc>:if &modifiable && !&readonly && + \ &modified <CR> :write<CR> :endif<CR>:bprevious<CR> +imap <silent> <s-tab> <Esc>:if &modifiable && !&readonly && + \ &modified <CR> :write<CR> :endif<CR>:bprevious<CR> +" +"------------------------------------------------------------------------------- +" Leave the editor with Ctrl-q : Write all changed buffers and exit Vim +"------------------------------------------------------------------------------- +nmap <C-q> :wqa<CR> +" +"------------------------------------------------------------------------------- +" autocomplete parenthesis, brackets and braces +"------------------------------------------------------------------------------- +inoremap ( ()<Left> +inoremap [ []<Left> +inoremap { {<CR>}<ESC>ko +" +vnoremap ( s()<Esc>P<Right>% +vnoremap [ s[]<Esc>P<Right>% +vnoremap { s{}<Esc>P<Right>% +" +"------------------------------------------------------------------------------- +" Change the working directory to the directory containing the current file +"------------------------------------------------------------------------------- +if has("autocmd") + autocmd BufEnter * :lchdir %:p:h +endif " has("autocmd") +" +"------------------------------------------------------------------------------- +" Filename completion +" +" wildmenu : command-line completion operates in an enhanced mode +" wildignore : A file that matches with one of these +" patterns is ignored when completing file or directory names. +"------------------------------------------------------------------------------- +" +set wildmenu +set wildignore=*.bak,*.o,*.e,*~ +" +"------------------------------------------------------------------------------- +" print options (pc = percentage of the media size) +"------------------------------------------------------------------------------- +set printoptions=left:8pc,right:3pc +" +"------------------------------------------------------------------------------- +" taglist.vim : toggle the taglist window +" taglist.vim : define the title texts for make +" taglist.vim : define the title texts for qmake +"------------------------------------------------------------------------------- + noremap <silent> <F11> <Esc><Esc>:Tlist<CR> +inoremap <silent> <F11> <Esc><Esc>:Tlist<CR> + +let tlist_make_settings = 'make;m:makros;t:targets' + +let tlist_qmake_settings = 'qmake;t:SystemVariables' + +if has("autocmd") + " ---------- qmake : set filetype for *.pro ---------- + autocmd BufNewFile,BufRead *.pro set filetype=qmake +endif " has("autocmd") diff --git a/.vim/ftplugin/gpg.vim b/.vim/ftplugin/gpg.vim new file mode 100644 index 0000000..20f641f --- /dev/null +++ b/.vim/ftplugin/gpg.vim @@ -0,0 +1,33 @@ +" Transparent editing of gpg encrypted files. +" By Wouter Hanegraaff <wouter@blub.net> +augroup encrypted +au! +" First make sure nothing is written to ~/.viminfo while editing +" an encrypted file. +autocmd BufReadPre,FileReadPre *.gpg set viminfo= +" We don't want a swap file, as it writes unencrypted data to disk +autocmd BufReadPre,FileReadPre *.gpg set noswapfile +" Switch to binary mode to read the encrypted file +autocmd BufReadPre,FileReadPre *.gpg set bin +autocmd BufReadPre,FileReadPre *.gpg let ch_save = &ch|set ch=2 +autocmd BufReadPre,FileReadPre *.gpg let shsave=&sh +autocmd BufReadPre,FileReadPre *.gpg let &sh='sh' +autocmd BufReadPre,FileReadPre *.gpg let ch_save = &ch|set ch=2 +autocmd BufReadPost,FileReadPost *.gpg '[,']!gpg --decrypt --default-recipient-self 2> /dev/null +autocmd BufReadPost,FileReadPost *.gpg let &sh=shsave +" Switch to normal mode for editing +autocmd BufReadPost,FileReadPost *.gpg set nobin +autocmd BufReadPost,FileReadPost *.gpg let &ch = ch_save|unlet ch_save +autocmd BufReadPost,FileReadPost *.gpg execute ":doautocmd BufReadPost " . expand("%:r") +" Convert all text to encrypted text before writing +autocmd BufWritePre,FileWritePre *.gpg set bin +autocmd BufWritePre,FileWritePre *.gpg let shsave=&sh +autocmd BufWritePre,FileWritePre *.gpg let &sh='sh' +autocmd BufWritePre,FileWritePre *.gpg '[,']!gpg --encrypt --default-recipient-self 2>/dev/null +autocmd BufWritePre,FileWritePre *.gpg let &sh=shsave +" Undo the encryption so we are back in the normal text, directly +" after the file has been written. +autocmd BufWritePost,FileWritePost *.gpg silent u +autocmd BufWritePost,FileWritePost *.gpg set nobin +augroup END + diff --git a/.vim/ftplugin/haskell.vim b/.vim/ftplugin/haskell.vim new file mode 100644 index 0000000..ffe83fe --- /dev/null +++ b/.vim/ftplugin/haskell.vim @@ -0,0 +1,13 @@ +" +" general Haskell source settings +" (shared functions are in autoload/haskellmode.vim) +" +" (Claus Reinke, last modified: 21/04/2009) +" +" part of haskell plugins: http://projects.haskell.org/haskellmode-vim +" please send patches to <claus.reinke@talk21.com> + +" try gf on import line, or ctrl-x ctrl-i, or [I, [i, .. +set include=^import\\s*\\(qualified\\)\\?\\s* +set includeexpr=substitute(v:fname,'\\.','/','g').'.hs' + diff --git a/.vim/ftplugin/haskell_doc.vim b/.vim/ftplugin/haskell_doc.vim new file mode 100644 index 0000000..f850667 --- /dev/null +++ b/.vim/ftplugin/haskell_doc.vim @@ -0,0 +1,817 @@ +" +" use haddock docs and index files +" show documentation, complete & qualify identifiers +" +" (Claus Reinke; last modified: 24/04/2009) +" +" part of haskell plugins: http://projects.haskell.org/haskellmode-vim +" please send patches to <claus.reinke@talk21.com> + +" :Doc <name> and :IDoc <name> open haddocks for <name> in opera +" +" :Doc needs qualified name (default Prelude) and package (default base) +" :IDoc needs unqualified name, looks up possible links in g:haddock_index +" +" :DocIndex populates g:haddock_index from haddock's index files +" :ExportDocIndex saves g:haddock_index to cache file +" :ImportDocIndex reloads g:haddock_index from cache file +" +" all the following use the haddock index (g:haddock_index) +" +" _? opens haddocks for unqualified name under cursor, +" suggesting alternative full qualifications in popup menu +" +" _. fully qualifies unqualified name under cursor, +" suggesting alternative full qualifications in popup menu +" +" _i add import <module>(<name>) statement for unqualified <name> under cursor, +" _im add import <module> statement for unqualified <name> under cursor, +" suggesting alternative full qualifications in popup menu +" (this currently adds one statement per call, instead of +" merging into existing import statements, but it's a start;-) +" +" CTRL-X CTRL-U (user-defined insert mode completion) +" suggests completions of unqualified names in popup menu + +let s:scriptname = "haskell_doc.vim" + +" script parameters +" g:haddock_browser *mandatory* which browser to call +" g:haddock_browser_callformat [optional] how to call browser +" g:haddock_indexfiledir [optional] where to put 'haddock_index.vim' +" g:haddock_docdir [optional] where to find html docs +" g:ghc [optional] which ghc to call +" g:ghc_pkg [optional] which ghc_pkg to call + +" been here before? +if exists("g:haddock_index") + finish +endif + +" initialise nested dictionary, to be populated +" - from haddock index files via :DocIndex +" - from previous cached version via :ImportDocIndex +let g:haddock_index = {} + +" initialise dictionary, mapping modules with haddocks to their packages, +" populated via MkHaddockModuleIndex() or HaveModuleIndex() +let g:haddock_moduleindex = {} + +" program to open urls, please set this in your vimrc + "examples (for windows): + "let g:haddock_browser = "C:/Program Files/Opera/Opera.exe" + "let g:haddock_browser = "C:/Program Files/Mozilla Firefox/firefox.exe" + "let g:haddock_browser = "C:/Program Files/Internet Explorer/IEXPLORE.exe" +if !exists("g:haddock_browser") + echoerr s:scriptname." WARNING: please set g:haddock_browser!" +endif + +if (!exists("g:ghc") || !executable(g:ghc)) + if !executable('ghc') + echoerr s:scriptname." can't find ghc. please set g:ghc, or extend $PATH" + finish + else + let g:ghc = 'ghc' + endif +endif + +if (!exists("g:ghc_pkg") || !executable(g:ghc_pkg)) + let g:ghc_pkg = substitute(g:ghc,'\(.*\)ghc','\1ghc-pkg','') +endif + +if exists("g:haddock_docdir") && isdirectory(g:haddock_docdir) + let s:docdir = g:haddock_docdir +elseif executable(g:ghc_pkg) +" try to figure out location of html docs +" first choice: where the base docs are (from the first base listed) + let [field;x] = split(system(g:ghc_pkg . ' field base haddock-html'),'\n') + let field = substitute(field,'haddock-html: \(.*\)libraries.base','\1','') + let field = substitute(field,'\\','/','g') + let alternate = substitute(field,'html','doc/html','') + if isdirectory(field) + let s:docdir = field + elseif isdirectory(alternate) + let s:docdir = alternate + endif +else + echoerr s:scriptname." can't find ghc-pkg (set g:ghc_pkg ?)." +endif + +" second choice: try some known suspects for windows/unix +if !exists('s:docdir') || !isdirectory(s:docdir) + let s:ghc_libdir = substitute(system(g:ghc . ' --print-libdir'),'\n','','') + let location1a = s:ghc_libdir . '/doc/html/' + let location1b = s:ghc_libdir . '/doc/' + let s:ghc_version = substitute(system(g:ghc . ' --numeric-version'),'\n','','') + let location2 = '/usr/share/doc/ghc-' . s:ghc_version . '/html/' + if isdirectory(location1a) + let s:docdir = location1a + elseif isdirectory(location1b) + let s:docdir = location1b + elseif isdirectory(location2) + let s:docdir = location2 + else " give up + echoerr s:scriptname." can't find locaton of html documentation (set g:haddock_docdir)." + finish + endif +endif + +" todo: can we turn s:docdir into a list of paths, and +" include docs for third-party libs as well? + +let s:libraries = s:docdir . 'libraries/' +let s:guide = s:docdir . 'users_guide/' +let s:index = 'index.html' +if exists("g:haddock_indexfiledir") && filewritable(g:haddock_indexfiledir) + let s:haddock_indexfiledir = g:haddock_indexfiledir +elseif filewritable(s:libraries) + let s:haddock_indexfiledir = s:libraries +elseif filewritable($HOME) + let s:haddock_indexfiledir = $HOME.'/' +else "give up + echoerr s:scriptname." can't locate index file. please set g:haddock_indexfiledir" + finish +endif +let s:haddock_indexfile = s:haddock_indexfiledir . 'haddock_index.vim' + +" different browser setups require different call formats; +" you might want to call the browser synchronously or +" asynchronously, and the latter is os-dependent; +" +" by default, the browser is started in the background when on +" windows or if running in a gui, and in the foreground otherwise +" (eg, console-mode for remote sessions, with text-mode browsers). +" +" you can override these defaults in your vimrc, via a format +" string including 2 %s parameters (the first being the browser +" to call, the second being the url). +if !exists("g:haddock_browser_callformat") + if has("win32") || has("win64") + let g:haddock_browser_callformat = 'start %s "%s"' + else + if has("gui_running") + let g:haddock_browser_callformat = '%s %s '.printf(&shellredir,'/dev/null').' &' + else + let g:haddock_browser_callformat = '%s %s' + endif + endif +endif + +" allow map leader override +if !exists("maplocalleader") + let maplocalleader='_' +endif + +command! DocSettings call DocSettings() +function! DocSettings() + for v in ["g:haddock_browser","g:haddock_browser_callformat","g:haddock_docdir","g:haddock_indexfiledir","s:ghc_libdir","s:ghc_version","s:docdir","s:libraries","s:guide","s:haddock_indexfile"] + if exists(v) + echo v '=' eval(v) + else + echo v '=' + endif + endfor +endfunction + +function! DocBrowser(url) + "echomsg "DocBrowser(".url.")" + if (!exists("g:haddock_browser") || !executable(g:haddock_browser)) + echoerr s:scriptname." can't find documentation browser. please set g:haddock_browser" + return + endif + " start browser to open url, according to specified format + let url = a:url=~'^\(file://\|http://\)' ? a:url : 'file://'.a:url + silent exe '!'.printf(g:haddock_browser_callformat,g:haddock_browser,escape(url,'#%')) +endfunction + +"usage examples: +" :Doc length +" :Doc Control.Monad.when +" :Doc Data.List. +" :Doc Control.Monad.State.runState mtl +" :Doc -top +" :Doc -libs +" :Doc -guide +command! -nargs=+ Doc call Doc('v',<f-args>) +command! -nargs=+ Doct call Doc('t',<f-args>) + +function! Doc(kind,qualname,...) + let suffix = '.html' + let relative = '#'.a:kind.'%3A' + + if a:qualname=="-top" + call DocBrowser(s:docdir . s:index) + return + elseif a:qualname=="-libs" + call DocBrowser(s:libraries . s:index) + return + elseif a:qualname=="-guide" + call DocBrowser(s:guide . s:index) + return + endif + + if a:0==0 " no package specified + let package = 'base/' + else + let package = a:1 . '/' + endif + + if match(a:qualname,'\.')==-1 " unqualified name + let [qual,name] = [['Prelude'],a:qualname] + let file = join(qual,'-') . suffix . relative . name + elseif a:qualname[-1:]=='.' " module qualifier only + let parts = split(a:qualname,'\.') + let quallen = len(parts)-1 + let [qual,name] = [parts[0:quallen],parts[-1]] + let file = join(qual,'-') . suffix + else " qualified name + let parts = split(a:qualname,'\.') + let quallen = len(parts)-2 + let [qual,name] = [parts[0:quallen],parts[-1]] + let file = join(qual,'-') . suffix . relative . name + endif + +" let path = s:libraries . package . file + let path = file + call DocBrowser(path) +endfunction + +" TODO: add commandline completion for :IDoc +" indexed variant of Doc, looking up links in g:haddock_index +" usage: +" 1. :IDoc length +" 2. click on one of the choices, or select by number (starting from 0) +command! -nargs=+ IDoc call IDoc(<f-args>) +function! IDoc(name,...) + let choices = HaddockIndexLookup(a:name) + if choices=={} | return | endif + if a:0==0 + let keylist = map(deepcopy(keys(choices)),'substitute(v:val,"\\[.\\]","","")') + let choice = inputlist(keylist) + else + let choice = a:1 + endif + let path = values(choices)[choice] " assumes same order for keys/values.. + call DocBrowser(path) +endfunction + +let s:flagref = s:guide . 'flag-reference.html' +if filereadable(s:flagref) + " extract the generated fragment ids for the + " flag reference sections + let s:headerPat = '.\{-}<h3 class="title"><a name="\([^"]*\)"><\/a>\([^<]*\)<\/h3>\(.*\)' + let s:flagheaders = [] + let s:flagheaderids = {} + let s:contents = join(readfile(s:flagref)) + let s:ml = matchlist(s:contents,s:headerPat) + while s:ml!=[] + let [_,s:id,s:title,s:r;s:x] = s:ml + let s:flagheaders = add(s:flagheaders, s:title) + let s:flagheaderids[s:title] = s:id + let s:ml = matchlist(s:r,s:headerPat) + endwhile + command! -nargs=1 -complete=customlist,CompleteFlagHeaders FlagReference call FlagReference(<f-args>) + function! FlagReference(section) + let relativeUrl = a:section==""||!exists("s:flagheaderids['".a:section."']") ? + \ "" : "#".s:flagheaderids[a:section] + call DocBrowser(s:flagref.relativeUrl) + endfunction + function! CompleteFlagHeaders(al,cl,cp) + let s:choices = s:flagheaders + return CompleteAux(a:al,a:cl,a:cp) + endfunction +endif + +command! -nargs=1 -complete=customlist,CompleteHaddockModules MDoc call MDoc(<f-args>) +function! MDoc(module) + let suffix = '.html' + call HaveModuleIndex() + if !has_key(g:haddock_moduleindex,a:module) + echoerr a:module 'not found in haddock module index' + return + endif + let package = g:haddock_moduleindex[a:module]['package'] + let file = substitute(a:module,'\.','-','g') . suffix +" let path = s:libraries . package . '/' . file + let path = g:haddock_moduleindex[a:module]['html'] + call DocBrowser(path) +endfunction + +function! CompleteHaddockModules(al,cl,cp) + call HaveModuleIndex() + let s:choices = keys(g:haddock_moduleindex) + return CompleteAux(a:al,a:cl,a:cp) +endfunction + +" create a dictionary g:haddock_index, containing the haddoc index +command! DocIndex call DocIndex() +function! DocIndex() + let files = split(globpath(s:libraries,'doc-index*.html'),'\n') + let g:haddock_index = {} + call ProcessHaddockIndexes2(s:libraries,files) + if GHC_VersionGE([6,8,2]) + if &shell =~ 'sh' " unix-type shell + let s:addon_libraries = split(system(g:ghc_pkg . ' field \* haddock-html'),'\n') + else " windows cmd.exe and the like + let s:addon_libraries = split(system(g:ghc_pkg . ' field * haddock-html'),'\n') + endif + for addon in s:addon_libraries + let ml = matchlist(addon,'haddock-html: \("\)\?\(file:///\)\?\([^"]*\)\("\)\?') + if ml!=[] + let [_,quote,file,addon_path;x] = ml + let addon_path = substitute(addon_path,'\(\\\\\|\\\)','/','g') + let addon_files = split(globpath(addon_path,'doc-index*.html'),'\n') + call ProcessHaddockIndexes2(addon_path,addon_files) + endif + endfor + endif + return 1 +endfunction + +function! ProcessHaddockIndexes(location,files) + let entryPat= '.\{-}"indexentry"[^>]*>\([^<]*\)<\(\%([^=]\{-}TD CLASS="\%(indexentry\)\@!.\{-}</TD\)*\)[^=]\{-}\(\%(="indexentry\|TABLE\).*\)' + let linkPat = '.\{-}HREF="\([^"]*\)".>\([^<]*\)<\(.*\)' + + redraw + echo 'populating g:haddock_index from haddock index files in ' a:location + for f in a:files + echo f[len(a:location):] + let contents = join(readfile(f)) + let ml = matchlist(contents,entryPat) + while ml!=[] + let [_,entry,links,r;x] = ml + "echo entry links + let ml2 = matchlist(links,linkPat) + let link = {} + while ml2!=[] + let [_,l,m,links;x] = ml2 + "echo l m + let link[m] = a:location . '/' . l + let ml2 = matchlist(links,linkPat) + endwhile + let g:haddock_index[DeHTML(entry)] = deepcopy(link) + "echo entry g:haddock_index[entry] + let ml = matchlist(r,entryPat) + endwhile + endfor +endfunction + +" concatenating all lines is too slow for a big file, process lines directly +function! ProcessHaddockIndexes2(location,files) + let entryPat= '^>\([^<]*\)</' + let linkPat = '.\{-}A HREF="\([^"]*\)"' + let kindPat = '#\(.\)' + + " redraw + echo 'populating g:haddock_index from haddock index files in ' a:location + for f in a:files + echo f[len(a:location):] + let isEntry = 0 + let isLink = '' + let link = {} + let entry = '' + for line in readfile(f) + if line=~'CLASS="indexentry' + if (link!={}) && (entry!='') + if has_key(g:haddock_index,DeHTML(entry)) + let dict = extend(g:haddock_index[DeHTML(entry)],deepcopy(link)) + else + let dict = deepcopy(link) + endif + let g:haddock_index[DeHTML(entry)] = dict + let link = {} + let entry = '' + endif + let isEntry=1 + continue + endif + if isEntry==1 + let ml = matchlist(line,entryPat) + if ml!=[] | let [_,entry;x] = ml | let isEntry=0 | continue | endif + endif + if entry!='' + let ml = matchlist(line,linkPat) + if ml!=[] | let [_,isLink;x]=ml | continue | endif + endif + if isLink!='' + let ml = matchlist(line,entryPat) + if ml!=[] + let [_,module;x] = ml + let [_,kind;x] = matchlist(isLink,kindPat) + let last = a:location[strlen(a:location)-1] + let link[module."[".kind."]"] = a:location . (last=='/'?'':'/') . isLink + let isLink='' + continue + endif + endif + endfor + if link!={} + if has_key(g:haddock_index,DeHTML(entry)) + let dict = extend(g:haddock_index[DeHTML(entry)],deepcopy(link)) + else + let dict = deepcopy(link) + endif + let g:haddock_index[DeHTML(entry)] = dict + endif + endfor +endfunction + +command! ExportDocIndex call ExportDocIndex() +function! ExportDocIndex() + call HaveIndex() + let entries = [] + for key in keys(g:haddock_index) + let entries += [key,string(g:haddock_index[key])] + endfor + call writefile(entries,s:haddock_indexfile) + redir end +endfunction + +command! ImportDocIndex call ImportDocIndex() +function! ImportDocIndex() + if filereadable(s:haddock_indexfile) + let lines = readfile(s:haddock_indexfile) + let i=0 + while i<len(lines) + let [key,dict] = [lines[i],lines[i+1]] + sandbox let g:haddock_index[key] = eval(dict) + let i+=2 + endwhile + return 1 + else + return 0 + endif +endfunction + +function! HaveIndex() + return (g:haddock_index!={} || ImportDocIndex() || DocIndex() ) +endfunction + +function! MkHaddockModuleIndex() + let g:haddock_moduleindex = {} + call HaveIndex() + for key in keys(g:haddock_index) + let dict = g:haddock_index[key] + for module in keys(dict) + let html = dict[module] + let html = substitute(html ,'#.*$','','') + let module = substitute(module,'\[.\]','','') + let ml = matchlist(html,'libraries/\([^\/]*\)\/') + if ml!=[] + let [_,package;x] = ml + let g:haddock_moduleindex[module] = {'package':package,'html':html} + endif + let ml = matchlist(html,'/\([^\/]*\)\/html/[A-Z]') + if ml!=[] + let [_,package;x] = ml + let g:haddock_moduleindex[module] = {'package':package,'html':html} + endif + endfor + endfor +endfunction + +function! HaveModuleIndex() + return (g:haddock_moduleindex!={} || MkHaddockModuleIndex() ) +endfunction + +" decode HTML symbol encodings (are these all we need?) +function! DeHTML(entry) + let res = a:entry + let decode = { '<': '<', '>': '>', '&': '\\&' } + for enc in keys(decode) + exe 'let res = substitute(res,"'.enc.'","'.decode[enc].'","g")' + endfor + return res +endfunction + +" find haddocks for word under cursor +" also lists possible definition sites +" - needs to work for both qualified and unqualified items +" - for 'import qualified M as A', consider M.item as source of A.item +" - offer sources from both type [t] and value [v] namespaces +" - for unqualified items, list all possible sites +" - for qualified items, list imported sites only +" keep track of keys with and without namespace tags: +" the former are needed for lookup, the latter for matching against source +map <LocalLeader>? :call Haddock()<cr> +function! Haddock() + amenu ]Popup.- :echo '-'<cr> + aunmenu ]Popup + let namsym = haskellmode#GetNameSymbol(getline('.'),col('.'),0) + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return 0 + endif + let [start,symb,qual,unqual] = namsym + let imports = haskellmode#GatherImports() + let asm = has_key(imports[1],qual) ? imports[1][qual]['modules'] : [] + let name = unqual + let dict = HaddockIndexLookup(name) + if dict=={} | return | endif + " for qualified items, narrow results to possible imports that provide qualifier + let filteredKeys = filter(copy(keys(dict)) + \ ,'match(asm,substitute(v:val,''\[.\]'','''',''''))!=-1') + let keys = (qual!='') ? filteredKeys : keys(dict) + if (keys==[]) && (qual!='') + echoerr qual.'.'.unqual.' not found in imports' + return 0 + endif + if len(keys)==1 && exists("g:haskell_avoid_singleton_menus") + call DocBrowser(dict[keys[0]]) + elseif has("gui_running") + for key in keys + exe 'amenu ]Popup.'.escape(key,'\.').' :call DocBrowser('''.dict[key].''')<cr>' + endfor + popup ]Popup + else + let s:choices = keys + let key = input('browse docs for '.name.' in: ','','customlist,CompleteAux') + if key!='' + call DocBrowser(dict[key]) + endif + endif +endfunction + +if !exists("g:haskell_search_engines") + let g:haskell_search_engines = + \ {'hoogle':'http://www.haskell.org/hoogle/?hoogle=%s' + \ ,'hayoo!':'http://holumbus.fh-wedel.de/hayoo/hayoo.html?query=%s' + \ } +endif + +map <LocalLeader>?? :let es=g:haskell_search_engines + \ \|echo "g:haskell_search_engines" + \ \|for e in keys(es) + \ \|echo e.' : '.es[e] + \ \|endfor<cr> +map <LocalLeader>?1 :call HaskellSearchEngine('hoogle')<cr> +map <LocalLeader>?2 :call HaskellSearchEngine('hayoo!')<cr> + +" query one of the Haskell search engines for the thing under cursor +" - unqualified symbols need to be url-escaped +" - qualified ids need to be fed as separate qualifier and id for +" both hoogle (doesn't handle qualified symbols) and hayoo! (no qualified +" ids at all) +" - qualified ids referring to import-qualified-as qualifiers need to be +" translated to the multi-module searches over the list of original modules +function! HaskellSearchEngine(engine) + amenu ]Popup.- :echo '-'<cr> + aunmenu ]Popup + let namsym = haskellmode#GetNameSymbol(getline('.'),col('.'),0) + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return 0 + endif + let [start,symb,qual,unqual] = namsym + let imports = haskellmode#GatherImports() + let asm = has_key(imports[1],qual) ? imports[1][qual]['modules'] : [] + let unqual = haskellmode#UrlEncode(unqual) + if a:engine=='hoogle' + let name = asm!=[] ? unqual.'+'.join(map(copy(asm),'"%2B".v:val'),'+') + \ : qual!='' ? unqual.'+'.haskellmode#UrlEncode('+').qual + \ : unqual + elseif a:engine=='hayoo!' + let name = asm!=[] ? unqual.'+module:('.join(copy(asm),' OR ').')' + \ : qual!='' ? unqual.'+module:'.qual + \ : unqual + else + let name = qual=="" ? unqual : qual.".".unqual + endif + if has_key(g:haskell_search_engines,a:engine) + call DocBrowser(printf(g:haskell_search_engines[a:engine],name)) + else + echoerr "unknown search engine: ".a:engine + endif +endfunction + +" used to pass on choices to CompleteAux +let s:choices=[] + +" if there's no gui, use commandline completion instead of :popup +" completion function CompleteAux suggests completions for a:al, wrt to s:choices +function! CompleteAux(al,cl,cp) + "echomsg '|'.a:al.'|'.a:cl.'|'.a:cp.'|' + let res = [] + let l = len(a:al)-1 + for r in s:choices + if l==-1 || r[0 : l]==a:al + let res += [r] + endif + endfor + return res +endfunction + +" CamelCase shorthand matching: +" favour upper-case letters and module qualifier separators (.) for disambiguation +function! CamelCase(shorthand,string) + let s1 = a:shorthand + let s2 = a:string + let notFirst = 0 " don't elide before first pattern letter + while ((s1!="")&&(s2!="")) + let head1 = s1[0] + let head2 = s2[0] + let elide = notFirst && ( ((head1=~'[A-Z]') && (head2!~'[A-Z.]')) + \ ||((head1=='.') && (head2!='.')) ) + if elide + let s2=s2[1:] + elseif (head1==head2) + let s1=s1[1:] + let s2=s2[1:] + else + return 0 + endif + let notFirst = (head1!='.')||(head2!='.') " treat separators as new beginnings + endwhile + return (s1=="") +endfunction + +" use haddock name index for insert mode completion (CTRL-X CTRL-U) +function! CompleteHaddock(findstart, base) + if a:findstart + let namsym = haskellmode#GetNameSymbol(getline('.'),col('.'),-1) " insert-mode: we're 1 beyond the text + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return -1 + endif + let [start,symb,qual,unqual] = namsym + return (start-1) + else " find keys matching with "a:base" + let res = [] + let l = len(a:base)-1 + let qual = a:base =~ '^[A-Z][a-zA-Z0-9_'']*\(\.[A-Z][a-zA-Z0-9_'']*\)*\(\.[a-zA-Z0-9_'']*\)\?$' + call HaveIndex() + for key in keys(g:haddock_index) + let keylist = map(deepcopy(keys(g:haddock_index[key])),'substitute(v:val,"\\[.\\]","","")') + if (key[0 : l]==a:base) + for m in keylist + let res += [{"word":key,"menu":m,"dup":1}] + endfor + elseif qual " this tends to be slower + for m in keylist + let word = m . '.' . key + if word[0 : l]==a:base + let res += [{"word":word,"menu":m,"dup":1}] + endif + endfor + endif + endfor + if res==[] " no prefix matches, try CamelCase shortcuts + for key in keys(g:haddock_index) + let keylist = map(deepcopy(keys(g:haddock_index[key])),'substitute(v:val,"\\[.\\]","","")') + if CamelCase(a:base,key) + for m in keylist + let res += [{"word":key,"menu":m,"dup":1}] + endfor + elseif qual " this tends to be slower + for m in keylist + let word = m . '.' . key + if CamelCase(a:base,word) + let res += [{"word":word,"menu":m,"dup":1}] + endif + endfor + endif + endfor + endif + return res + endif +endfunction +set completefunc=CompleteHaddock +set completeopt=menu,menuone,longest + +" fully qualify an unqualified name +" TODO: - standardise commandline versions of menus +map <LocalLeader>. :call Qualify()<cr> +function! Qualify() + amenu ]Popup.- :echo '-'<cr> + aunmenu ]Popup + let namsym = haskellmode#GetNameSymbol(getline('.'),col('.'),0) + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return 0 + endif + let [start,symb,qual,unqual] = namsym + if qual!='' " TODO: should we support re-qualification? + redraw + echo 'already qualified' + return 0 + endif + let name = unqual + let line = line('.') + let prefix = (start<=1 ? '' : getline(line)[0:start-2] ) + let dict = HaddockIndexLookup(name) + if dict=={} | return | endif + let keylist = map(deepcopy(keys(dict)),'substitute(v:val,"\\[.\\]","","")') + let imports = haskellmode#GatherImports() + let qualifiedImports = [] + for qualifiedImport in keys(imports[1]) + let c=0 + for module in imports[1][qualifiedImport]['modules'] + if haskellmode#ListElem(keylist,module) | let c+=1 | endif + endfor + if c>0 | let qualifiedImports=[qualifiedImport]+qualifiedImports | endif + endfor + "let asm = has_key(imports[1],qual) ? imports[1][qual]['modules'] : [] + let keylist = filter(copy(keylist),'index(qualifiedImports,v:val)==-1') + if has("gui_running") + " amenu ]Popup.-imported- : + for key in qualifiedImports + let lhs=escape(prefix.name,'/.|\') + let rhs=escape(prefix.key.'.'.name,'/&|\') + exe 'amenu ]Popup.'.escape(key,'\.').' :'.line.'s/'.lhs.'/'.rhs.'/<cr>:noh<cr>' + endfor + amenu ]Popup.-not\ imported- : + for key in keylist + let lhs=escape(prefix.name,'/.|\') + let rhs=escape(prefix.key.'.'.name,'/&|\') + exe 'amenu ]Popup.'.escape(key,'\.').' :'.line.'s/'.lhs.'/'.rhs.'/<cr>:noh<cr>' + endfor + popup ]Popup + else + let s:choices = qualifiedImports+keylist + let key = input('qualify '.name.' with: ','','customlist,CompleteAux') + if key!='' + let lhs=escape(prefix.name,'/.\') + let rhs=escape(prefix.key.'.'.name,'/&\') + exe line.'s/'.lhs.'/'.rhs.'/' + noh + endif + endif +endfunction + +" create (qualified) import for a (qualified) name +" TODO: refine search patterns, to avoid misinterpretation of +" oddities like import'Neither or not'module +map <LocalLeader>i :call Import(0,0)<cr> +map <LocalLeader>im :call Import(1,0)<cr> +map <LocalLeader>iq :call Import(0,1)<cr> +map <LocalLeader>iqm :call Import(1,1)<cr> +function! Import(module,qualified) + amenu ]Popup.- :echo '-'<cr> + aunmenu ]Popup + let namsym = haskellmode#GetNameSymbol(getline('.'),col('.'),0) + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return 0 + endif + let [start,symb,qual,unqual] = namsym + let name = unqual + let pname = ( symb ? '('.name.')' : name ) + let importlist = a:module ? '' : '('.pname.')' + let qualified = a:qualified ? 'qualified ' : '' + + if qual!='' + exe 'call append(search(''\%1c\(\<import\>\|\<module\>\|{-# OPTIONS\|{-# LANGUAGE\)'',''nb''),''import '.qualified.qual.importlist.''')' + return + endif + + let line = line('.') + let prefix = getline(line)[0:start-1] + let dict = HaddockIndexLookup(name) + if dict=={} | return | endif + let keylist = map(deepcopy(keys(dict)),'substitute(v:val,"\\[.\\]","","")') + if has("gui_running") + for key in keylist + " exe 'amenu ]Popup.'.escape(key,'\.').' :call append(search("\\%1c\\(import\\\\|module\\\\|{-# OPTIONS\\)","nb"),"import '.key.importlist.'")<cr>' + exe 'amenu ]Popup.'.escape(key,'\.').' :call append(search(''\%1c\(\<import\>\\|\<module\>\\|{-# OPTIONS\\|{-# LANGUAGE\)'',''nb''),''import '.qualified.key.escape(importlist,'|').''')<cr>' + endfor + popup ]Popup + else + let s:choices = keylist + let key = input('import '.name.' from: ','','customlist,CompleteAux') + if key!='' + exe 'call append(search(''\%1c\(\<import\>\|\<module\>\|{-# OPTIONS\|{-# LANGUAGE\)'',''nb''),''import '.qualified.key.importlist.''')' + endif + endif +endfunction + +function! HaddockIndexLookup(name) + call HaveIndex() + if !has_key(g:haddock_index,a:name) + echoerr a:name 'not found in haddock index' + return {} + endif + return g:haddock_index[a:name] +endfunction + +" copied from ghc.vim :-( should we move everything to using autoload instead? +" we query the ghc version here, as we don't otherwise need it.. +function! GHC_VersionGE(target) + let s:ghc_version = substitute(system(g:ghc . ' --numeric-version'),'\n','','') + let current = split(g:ghc_version, '\.' ) + let target = a:target + for i in current + if ((target==[]) || (i>target[0])) + return 1 + elseif (i==target[0]) + let target = target[1:] + else + return 0 + endif + endfor + return 1 +endfunction diff --git a/.vim/ftplugin/haskell_hpaste.vim b/.vim/ftplugin/haskell_hpaste.vim new file mode 100644 index 0000000..33ea0bd --- /dev/null +++ b/.vim/ftplugin/haskell_hpaste.vim @@ -0,0 +1,79 @@ +" rudimentary hpaste support for vim +" (using netrw for reading, wget for posting/annotating) +" +" claus reinke, last modified: 07/04/2009 +" +" part of haskell plugins: http://projects.haskell.org/haskellmode-vim + +" unless wget is in your PATH, you need to set g:wget +" before loading this script. windows users are out of +" luck, unless they have wget installed (such as the +" cygwin one looked for here), or adapt this script to +" whatever alternative they have at hand (perhaps using +" vim's perl/python bindings?) +if !exists("g:wget") + if executable("wget") + let g:wget = "!wget -q" + else + let g:wget = "!c:\\cygwin\\bin\\wget -q" + endif +endif + +" read (recent) hpaste files +" show index in new buffer, where ,r will open current entry +" and ,p will annotate current entry with current buffer +command! HpasteIndex call HpasteIndex() +function! HpasteIndex() + new + read http://hpaste.org + %s/\_$\_.//g + %s/<tr[^>]*>//g + %s/<\/tr>/
/g + g/<\/table>/d + g/DOCTYPE/d + %s/<td>\([^<]*\)<\/td><td><a href="\/fastcgi\/hpaste\.fcgi\/view?id=\([0-9]*\)">\([^<]*\)<\/a><\/td><td>\([^<]*\)<\/td><td>\([^<]*\)<\/td><td>\([^<]*\)<\/td>/\2 [\1] "\3" \4 \5 \6/ + map <buffer> ,r 0yE:noh<cr>:call HpasteEditEntry('"')<cr> +endfunction + +" load an existing entry for editing +command! -nargs=1 HpasteEditEntry call HpasteEditEntry(<f-args>) +function! HpasteEditEntry(entry) + new + exe 'Nread http://hpaste.org/fastcgi/hpaste.fcgi/raw?id='.a:entry + "exe 'map <buffer> ,p :call HpasteAnnotate('''.a:entry.''')<cr>' +endfunction + +" " posting temporarily disabled -- needs someone to look into new +" " hpaste.org structure + +" " annotate existing entry (only to be called via ,p in HpasteIndex) +" function! HpasteAnnotate(entry) +" let nick = input("nick? ") +" let title = input("title? ") +" if nick=='' || title=='' +" echo "nick or title missing. aborting annotation" +" return +" endif +" call HpastePost('annotate/'.a:entry,nick,title) +" endfunction +" +" " post new hpaste entry +" " using 'wget --post-data' and url-encoded content +" command! HpastePostNew call HpastePost('new',<args>) +" function! HpastePost(mode,nick,title,...) +" let lines = getbufline("%",1,"$") +" let pat = '\([^[:alnum:]]\)' +" let code = '\=printf("%%%02X",char2nr(submatch(1)))' +" let lines = map(lines,'substitute(v:val."\r\n",'''.pat.''','''.code.''',''g'')') +" +" let url = 'http://hpaste.org/' . a:mode +" let nick = substitute(a:nick,pat,code,'g') +" let title = substitute(a:title,pat,code,'g') +" if a:0==0 +" let announce = 'false' +" else +" let announce = a:1 +" endif +" let cmd = g:wget.' --post-data="content='.join(lines,'').'&nick='.nick.'&title='.title.'&announce='.announce.'" '.url +" exe escape(cmd,'%') +" endfunction diff --git a/.vim/ftplugin/latex-suite/bibtex.vim b/.vim/ftplugin/latex-suite/bibtex.vim new file mode 100644 index 0000000..8037914 --- /dev/null +++ b/.vim/ftplugin/latex-suite/bibtex.vim @@ -0,0 +1,266 @@ +"============================================================================= +" File: bibtex.vim +" Function: BibT +" Author: Alan G Isaac <aisaac@american.edu> +" modified by Srinath Avadhanula for latex-suite. +" License: Vim Charityware license. +" CVS: $Id: bibtex.vim 997 2006-03-20 09:45:45Z srinathava $ +"============================================================================= + +" Fields: +" Define what field type each letter denotes {{{ +" +let s:w_standsfor = 'address' +let s:a_standsfor = 'author' +let s:b_standsfor = 'booktitle' +let s:c_standsfor = 'chapter' +let s:d_standsfor = 'edition' +let s:e_standsfor = 'editor' +let s:h_standsfor = 'howpublished' +let s:i_standsfor = 'institution' +let s:k_standsfor = 'isbn' +let s:j_standsfor = 'journal' +let s:m_standsfor = 'month' +let s:n_standsfor = 'number' +let s:o_standsfor = 'organization' +let s:p_standsfor = 'pages' +let s:q_standsfor = 'publisher' +let s:r_standsfor = 'school' +let s:s_standsfor = 'series' +let s:t_standsfor = 'title' +let s:u_standsfor = 'type' +let s:v_standsfor = 'volume' +let s:y_standsfor = 'year' +let s:z_standsfor = 'note' + +" }}} +" Define the fields required for the various entry types {{{ +" +" s:{type}_required defines the required fields +" s:{type}_optional1 defines common optional fields +" s:{type}_optional2 defines uncommmon optional fields +" s:{type}_retval defines the first line of the formatted bib entry. +" +let s:key='<+key+>' + +let s:{'article'}_required="atjy" +let s:{'article'}_optional1="vnpm" +let s:{'article'}_optional2="z" " z is note +let s:{'article'}_retval = '@ARTICLE{' . s:key . ','."\n" + +let s:{'book'}_required="aetqy" " requires author *or* editor +let s:{'book'}_optional1="wd" +let s:{'book'}_optional2="vnsmz" " w is address, d is edition +let s:{'book'}_extras="k" " isbn +let s:{'book'}_retval = '@BOOK{' . s:key . ','."\n" + +let s:{'booklet'}_required="t" +let s:{'booklet'}_optional1="ahy" +let s:{'booklet'}_optional2="wmz" " w is address +let s:{'booklet'}_retval = '@BOOKLET{' . s:key . ','."\n" + +let s:{'inbook'}_required="aetcpqy" +let s:{'inbook'}_optional1="w" " w is address +let s:{'inbook'}_optional2="vnsudmz" " d is edition +let s:{'inbook'}_extras="k" " isbn +let s:{'inbook'}_retval = '@INBOOK{' . s:key . ','."\n" + +let s:{'incollection'}_required="atbqy" " b is booktitle +let s:{'incollection'}_optional1="cpw" " w is address, c is chapter +let s:{'incollection'}_optional2="evnsudmz" " d is edition +let s:{'incollection'}_extras="k" " isbn +let s:{'incollection'}_retval = '@INCOLLECTION{' . s:key . ','."\n" + +let s:{'inproceedings'}_required="atby" " b is booktitle +let s:{'inproceedings'}_optional1="epwoq" " w is address, q is publisher +let s:{'inproceedings'}_optional2="vnsmz" +let s:{'inproceedings'}_extras="k" " isbn +let s:{'inproceedings'}_retval = '@INPROCEEDINGS{' . s:key . ','."\n" + +let s:{'conference'}_required="atby" " b is booktitle +let s:{'conference'}_optional1="epwoq" " w is address, q is publisher +let s:{'conference'}_optional2="vnsmz" +let s:{'conference'}_extras="k" " isbn +let s:{'conference'}_retval = '@CONFERENCE{' . s:key . ','."\n" + +let s:{'manual'}_required="t" +let s:{'manual'}_optional1="ow" +let s:{'manual'}_optional2="admyz" " w is address +let s:{'manual'}_retval = '@MANUAL{' . s:key . ','."\n" + +let s:{'msthesis'}_required="atry" " r is school +let s:{'msthesis'}_optional1="w" " w is address +let s:{'msthesis'}_optional2="umz" " u is type, w is address +let s:{'msthesis'}_retval = '@MASTERSTHESIS{' . s:key . ','."\n" + +let s:{'misc'}_required="" +let s:{'misc'}_optional1="ath" +let s:{'misc'}_optional2="myz" +let s:{'misc'}_retval = '@MISC{' . s:key . ','."\n" + +let s:{'phdthesis'}_required="atry" " r is school +let s:{'phdthesis'}_optional1="w" " w is address +let s:{'phdthesis'}_optional2="umz" " u is type +let s:{'phdthesis'}_retval = '@PHDTHESIS{' . s:key . ','."\n" + +let s:{'proceedings'}_required="ty" +let s:{'proceedings'}_optional1="ewo" " w is address +let s:{'proceedings'}_optional2="vnsmqz" " q is publisher +let s:{'proceedings'}_retval = '@PROCEEDINGS{' . s:key . ','."\n" + +let s:{'techreport'}_required="atiy" +let s:{'techreport'}_optional1="unw" " u is type, w is address +let s:{'techreport'}_optional2="mz" +let s:{'techreport'}_retval = '@TECHREPORT{' . s:key . ','."\n" + +let s:{'unpublished'}_required="atz" +let s:{'unpublished'}_optional1="y" +let s:{'unpublished'}_optional2="m" +let s:{'unpublished'}_retval = '@UNPUBLISHED{' . s:key . ','."\n" + +" }}} + +if exists('s:done') + finish +endif +let s:done = 1 + +call IMAP ('BBB', "\<C-r>=BibT('', '', 0)\<CR>", 'bib') +call IMAP ('BBL', "\<C-r>=BibT('', 'o', 0)\<CR>", 'bib') +call IMAP ('BBH', "\<C-r>=BibT('', 'O', 0)\<CR>", 'bib') +call IMAP ('BBX', "\<C-r>=BibT('', 'Ox', 0)\<CR>", 'bib') + +" BibT: function to generate a formatted bibtex entry {{{ +" three sample usages: +" :call BibT() will request type choice +" :call BibT("article") preferred, provides most common fields +" :call BibT("article","ox") more optional fields (o) and extras (x) +" +" Input Arguments: +" type: is one of the types listed above. (this should be a complete name, not +" the acronym). +" options: a string containing 0 or more of the letters 'oOx' +" where +" o: include a bib entry with first set of options +" O: include a bib entry with extended options +" x: incude bib entry with extra options +" prompt: whether the fields are asked to be filled on the command prompt or +" whether place-holders are used. when prompt == 1, then comman line +" questions are used. +" +" Returns: +" a string containing a formatted bib entry +function BibT(type, options, prompt) + if a:type != '' + let choosetype = a:type + else + let types = + \ 'article'."\n". + \ 'booklet'."\n". + \ 'book'."\n". + \ 'conference'."\n". + \ 'inbook'."\n". + \ 'incollection'."\n". + \ 'inproceedings'."\n". + \ 'manual'."\n". + \ 'msthesis'."\n". + \ 'misc'."\n". + \ 'phdthesis'."\n". + \ 'proceedings'."\n". + \ 'techreport'."\n". + \ 'unpublished' + let choosetype = Tex_ChooseFromPrompt( + \ "Choose the type of bibliographic entry: \n" . + \ Tex_CreatePrompt(types, 3, "\n") . + \ "\nEnter number or filename :", + \ types, "\n") + if choosetype == '' + let choosetype = 'article' + endif + if types !~ '^\|\n'.choosetype.'$\|\n' + echomsg 'Please choose only one of the given types' + return + endif + endif + if a:options != '' + let options = a:options + else + let options = "" + endif + + let fields = '' + let extras="" + let retval = "" + + " define fields + let fields = s:{choosetype}_required + if options =~ 'o' && exists('s:'.choosetype.'_optional1') + let fields = fields . s:{choosetype}_optional1 + endif + if options =~ "O" && exists('s:'.choosetype.'_optional2') + if options !~ 'o'&& exists('s:'.choosetype.'_optional1') + let fields = fields . s:{choosetype}_optional1 + endif + let fields = fields . s:{choosetype}_optional2 + endif + if options =~ "x" && exists('s:'.choosetype.'_extras') + let fields = fields . extras + endif + if exists('g:Bib_'.choosetype.'_options') + let fields = fields . g:Bib_{choosetype}_options + endif + + let retval = s:{choosetype}_retval + + let i = 0 + while i < strlen(fields) + let field = strpart(fields, i, 1) + + if exists('s:'.field.'_standsfor') + let field_name = s:{field}_standsfor + let retval = retval.field_name." = {<++>},\n" + endif + + let i = i + 1 + endwhile + + " If the user wants even more fine-tuning... + if Tex_GetVarValue('Bib_'.choosetype.'_extrafields') != '' + + let extrafields = Tex_GetVarValue('Bib_'.choosetype.'_extrafields') + + let i = 1 + while 1 + let field_name = Tex_Strntok(extrafields, "\n", i) + if field_name == '' + break + endif + + let retval = retval.field_name." = {<++>},\n" + + let i = i + 1 + endwhile + + endif + + let retval = retval.'otherinfo = {<++>}'."\n" + let retval = retval."}<++>"."\n" + + return IMAP_PutTextWithMovement(retval) +endfunction + +" }}} +function! s:Input(prompt, ask) " {{{ + if a:ask == 1 + let retval = input(a:prompt) + if retval == '' + return "<++>" + endif + else + return "<++>" + endif +endfunction + +" }}} + +" vim:fdm=marker:ff=unix:noet:ts=4:sw=4 diff --git a/.vim/ftplugin/latex-suite/bibtools.py b/.vim/ftplugin/latex-suite/bibtools.py new file mode 100644 index 0000000..0a5366c --- /dev/null +++ b/.vim/ftplugin/latex-suite/bibtools.py @@ -0,0 +1,221 @@ +# Author: Srinath Avadhanula +# This file is distributed as part of the vim-latex project +# http://vim-latex.sf.net + +import re + +class Bibliography(dict): + def __init__(self, txt, macros={}): + """ + txt: + a string which represents the entire bibtex entry. A typical + entry is of the form: + @ARTICLE{ellington:84:part3, + author = {Ellington, C P}, + title = {The Aerodynamics of Hovering Insect Flight. III. Kinematics}, + journal = {Philosophical Transactions of the Royal Society of London. Series B, Biological Sciences}, + year = {1984}, + volume = {305}, + pages = {41-78}, + number = {1122}, + owner = {Srinath}, + pdf = {C:\srinath\research\papers\Ellington-3-Kinematics.pdf}, + timestamp = {2006.01.02}, + } + """ + + if macros: + for k, v in macros.iteritems(): + txt = txt.replace(k, '{'+v+'}') + + m = re.match(r'\s*@(\w+){((\S+),)?(.*)}\s*', txt, re.MULTILINE | re.DOTALL) + if not m: + return None + + self['bibtype'] = m.group(1).capitalize() + self['key'] = m.group(3) + self['body'] = m.group(4) + + body = self['body'] + self['bodytext'] = '' + while 1: + m = re.search(r'(\S+?)\s*=\s*(.)', body) + if not m: + break + + field = m.group(1) + + body = body[(m.start(2)+1):] + if m.group(2) == '{': + # search for the next closing brace. This is not simply a + # matter of searching for the next closing brace since + # braces can be nested. The following code basically goes + # to the next } which has not already been closed by a + # following {. + mniter = re.finditer(r'{|}', body) + + count = 1 + while 1: + try: + mn = mniter.next() + except StopIteration: + return None + + if mn.group(0) == '{': + count += 1 + else: + count -= 1 + + if count == 0: + value = body[:(mn.start(0))] + break + + elif m.group(2) == '"': + # search for the next unquoted double-quote. To be more + # precise, a double quote which is preceded by an even + # number of double quotes. + mn = re.search(r'(?!\\)(\\\\)*"', body) + if not mn: + return None + + value = body[:(mn.start(0))] + + else: + # $ always matches. So we do not need to do any + # error-checking. + mn = re.search(r',|$', body) + value = m.group(2) + body[:(mn.start(0))].rstrip() + + self[field] = re.sub(r'\s+', ' ', value) + body = body[(mn.start(0)+1):] + + self['bodytext'] += (' %s: %s\n' % (field, value)) + if self['bibtype'].lower() == 'string': + self['macro'] = {field: value} + + self['bodytext'] = self['bodytext'].rstrip() + + + def __getitem__(self, key): + try: + return dict.__getitem__(self, key) + except KeyError: + return '' + + def __str__(self): + if self['bibtype'].lower() == 'string': + return 'String: %(macro)s' % self + + elif self['bibtype'].lower() == 'article': + return ('Article [%(key)s]\n' + + 'TI "%(title)s"\n' + + 'AU %(author)s\n' + + 'IN In %(journal)s, %(year)s') % self + + elif self['bibtype'].lower() == 'conference': + return ('Conference [%(key)s]\n' + + 'TI "%(title)s"\n' + + 'AU %(author)s\n' + + 'IN In %(booktitle)s, %(year)s') % self + + elif self['bibtype'].lower() == 'mastersthesis': + return ('Masters [%(key)s]\n' + + 'TI "%(title)s"\n' + + 'AU %(author)s\n' + + 'IN In %(school)s, %(year)s') % self + + elif self['bibtype'].lower() == 'phdthesis': + return ('PhD [%(key)s]\n' + + 'TI "%(title)s"\n' + + 'AU %(author)s\n' + + 'IN In %(school)s, %(year)s') % self + + elif self['bibtype'].lower() == 'book': + return ('Book [%(key)s]\n' + + 'TI "%(title)s"\n' + + 'AU %(author)s\n' + + 'IN %(publisher)s, %(year)s') % self + + else: + s = '%(bibtype)s [%(key)s]\n' % self + if self['title']: + s += 'TI "%(title)s"\n' % self + if self['author']: + s += 'AU %(author)s\n' % self + for k, v in self.iteritems(): + if k not in ['title', 'author', 'bibtype', 'key', 'id', 'file', 'body', 'bodytext']: + s += 'MI %s: %s\n' % (k, v) + + return s.rstrip() + + def satisfies(self, filters): + for field, regexp in filters: + if not re.search(regexp, self[field], re.I): + return False + + return True + +class BibFile: + + def __init__(self, filelist=''): + self.bibentries = [] + self.filters = [] + self.macros = {} + self.sortfields = [] + if filelist: + for f in filelist.splitlines(): + self.addfile(f) + + def addfile(self, file): + fields = open(file).read().split('@') + for f in fields: + if not (f and re.match('string', f, re.I)): + continue + + b = Bibliography('@' + f) + self.macros.update(b['macro']) + + for f in fields: + if not f or re.match('string', f, re.I): + continue + + b = Bibliography('@' + f, self.macros) + if b: + b['file'] = file + b['id'] = len(self.bibentries) + self.bibentries += [b] + + + def addfilter(self, filterspec): + self.filters += [filterspec.split()] + + def rmfilters(self): + self.filters = [] + + def __str__(self): + s = '' + for b in self.bibentries: + if b['key'] and b.satisfies(self.filters): + s += '%s\n\n' % b + return s + + def addsortfield(self, field): + self.sortfields += [field] + + def rmsortfields(self): + self.sortfields = [] + + def sort(self): + def cmpfun(b1, b2): + for f in self.sortfields: + c = cmp(b1[f], b2[f]) + if c: + return c + return 0 + self.bibentries.sort(cmp=cmpfun) + +if __name__ == "__main__": + import sys + + bf = BibFile(sys.argv[1]) + print bf diff --git a/.vim/ftplugin/latex-suite/bibtools.pyc b/.vim/ftplugin/latex-suite/bibtools.pyc Binary files differnew file mode 100644 index 0000000..c79961f --- /dev/null +++ b/.vim/ftplugin/latex-suite/bibtools.pyc diff --git a/.vim/ftplugin/latex-suite/brackets.vim b/.vim/ftplugin/latex-suite/brackets.vim new file mode 100644 index 0000000..0669ce4 --- /dev/null +++ b/.vim/ftplugin/latex-suite/brackets.vim @@ -0,0 +1,145 @@ +" ============================================================================== +" History: This was originally part of auctex.vim by Carl Mueller. +" Srinath Avadhanula incorporated it into latex-suite with +" significant modifications. +" Parts of this file may be copyrighted by others as noted. +" CVS: $Id: brackets.vim 997 2006-03-20 09:45:45Z srinathava $ +" Description: +" This ftplugin provides the following maps: +" . <M-b> encloses the previous character in \mathbf{} +" . <M-c> is polymorphic as follows: +" Insert mode: +" 1. If the previous character is a letter or number, then capitalize it and +" enclose it in \mathcal{} +" 2. otherwise insert \cite{} +" Visual Mode: +" 1. Enclose selection in \mathcal{} +" . <M-l> is also polymorphic as follows: +" If the character before typing <M-l> is one of '([{|<q', then do the +" following: +" 1. (<M-l> \left(\right +" similarly for [, | +" {<M-l> \left\{\right\} +" 2. <<M-l> \langle\rangle +" 3. q<M-l> \lefteqn{} +" otherwise insert \label{} +" . <M-i> inserts \item commands at the current cursor location depending on +" the surrounding environment. For example, inside itemize, it will +" insert a simple \item, but within a description, it will insert +" \item[<+label+>] etc. +" +" These functions make it extremeley easy to do all the \left \right stuff in +" latex. +" ============================================================================== + +" Avoid reinclusion. +if exists('b:did_brackets') + finish +endif +let b:did_brackets = 1 + +" define the funtions only once. +if exists('*Tex_MathBF') + finish +endif + +" Tex_MathBF: encloses te previous letter/number in \mathbf{} {{{ +" Description: +function! Tex_MathBF() + return "\<Left>\\mathbf{\<Right>}" +endfunction " }}} +" Tex_MathCal: enclose the previous letter/number in \mathcal {{{ +" Description: +" if the last character is not a letter/number, then insert \cite{} +function! Tex_MathCal() + let line = getline(line(".")) + let char = line[col(".")-2] + + if char =~ '[a-zA-Z0-9]' + return "\<BS>".'\mathcal{'.toupper(char).'}' + else + return IMAP_PutTextWithMovement('\cite{<++>}<++>') + endif +endfunction +" }}} +" Tex_LeftRight: maps <M-l> in insert mode. {{{ +" Description: +" This is a polymorphic function, which maps the behaviour of <M-l> in the +" following way: +" If the character before typing <M-l> is one of '([{|<q', then do the +" following: +" 1. (<M-l> \left(<++>\right<++> +" similarly for [, | +" {<M-l> \left\{<++>\right\}<++> +" 2. <<M-l> \langle<++>\rangle<++> +" 3. q<M-l> \lefteqn{<++>}<++> +" otherwise insert \label{<++>}<++> +function! Tex_LeftRight() + let line = getline(line(".")) + let char = line[col(".")-2] + let previous = line[col(".")-3] + + let matchedbrackets = '()[]{}||' + if char =~ '(\|\[\|{\||' + let add = '' + if char =~ '{' + let add = "\\" + endif + let rhs = matchstr(matchedbrackets, char.'\zs.\ze') + return "\<BS>".IMAP_PutTextWithMovement('\left'.add.char.'<++>\right'.add.rhs.'<++>') + elseif char == '<' + return "\<BS>".IMAP_PutTextWithMovement('langle<++>\rangle<++>') + elseif char == 'q' + return "\<BS>".IMAP_PutTextWithMovement('\lefteqn{<++>}<++>') + else + return IMAP_PutTextWithMovement('\label{<++>}<++>') + endif +endfunction " }}} +" Tex_PutLeftRight: maps <M-l> in normal mode {{{ +" Description: +" Put \left...\right in front of the matched brackets. +function! Tex_PutLeftRight() + let previous = getline(line("."))[col(".") - 2] + let char = getline(line("."))[col(".") - 1] + if previous == '\' + if char == '{' + exe "normal ileft\\\<Esc>l%iright\\\<Esc>l%" + elseif char == '}' + exe "normal iright\\\<Esc>l%ileft\\\<Esc>l%" + endif + elseif char =~ '\[\|(' + exe "normal i\\left\<Esc>l%i\\right\<Esc>l%" + elseif char =~ '\]\|)' + exe "normal i\\right\<Esc>l%i\\left\<Esc>l%" + endif +endfunction " }}} + +" Provide <plug>'d mapping for easy user customization. {{{ +inoremap <silent> <Plug>Tex_MathBF <C-r>=Tex_MathBF()<CR> +inoremap <silent> <Plug>Tex_MathCal <C-r>=Tex_MathCal()<CR> +inoremap <silent> <Plug>Tex_LeftRight <C-r>=Tex_LeftRight()<CR> +vnoremap <silent> <Plug>Tex_MathBF <C-C>`>a}<Esc>`<i\mathbf{<Esc> +vnoremap <silent> <Plug>Tex_MathCal <C-C>`>a}<Esc>`<i\mathcal{<Esc> +nnoremap <silent> <Plug>Tex_LeftRight :call Tex_PutLeftRight()<CR> + +" }}} +" Tex_SetBracketingMaps: create mappings for the current buffer {{{ +function! <SID>Tex_SetBracketingMaps() + + call Tex_MakeMap('<M-b>', '<Plug>Tex_MathBF', 'i', '<buffer> <silent>') + call Tex_MakeMap('<M-c>', '<Plug>Tex_MathCal', 'i', '<buffer> <silent>') + call Tex_MakeMap('<M-l>', '<Plug>Tex_LeftRight', 'i', '<buffer> <silent>') + call Tex_MakeMap('<M-b>', '<Plug>Tex_MathBF', 'v', '<buffer> <silent>') + call Tex_MakeMap('<M-c>', '<Plug>Tex_MathCal', 'v', '<buffer> <silent>') + call Tex_MakeMap('<M-l>', '<Plug>Tex_LeftRight', 'n', '<buffer> <silent>') + +endfunction +" }}} + +augroup LatexSuite + au LatexSuite User LatexSuiteFileType + \ call Tex_Debug('brackets.vim: Catching LatexSuiteFileType event', 'brak') | + \ call <SID>Tex_SetBracketingMaps() +augroup END + +" vim:fdm=marker diff --git a/.vim/ftplugin/latex-suite/compiler.vim b/.vim/ftplugin/latex-suite/compiler.vim new file mode 100644 index 0000000..245f6cd --- /dev/null +++ b/.vim/ftplugin/latex-suite/compiler.vim @@ -0,0 +1,820 @@ +"============================================================================= +" File: compiler.vim +" Author: Srinath Avadhanula +" Created: Tue Apr 23 05:00 PM 2002 PST +" +" Description: functions for compiling/viewing/searching latex documents +" CVS: $Id: compiler.vim 997 2006-03-20 09:45:45Z srinathava $ +"============================================================================= + +" Tex_SetTeXCompilerTarget: sets the 'target' for the next call to Tex_RunLaTeX() {{{ +function! Tex_SetTeXCompilerTarget(type, target) + call Tex_Debug("+Tex_SetTeXCompilerTarget: setting target to [".a:target."] for ".a:type."r", "comp") + + if a:target == '' + let target = Tex_GetVarValue('Tex_DefaultTargetFormat') + let target = input('Enter the target format for '.a:type.'r: ', target) + else + let target = a:target + endif + if target == '' + let target = 'dvi' + endif + + let targetRule = Tex_GetVarValue('Tex_'.a:type.'Rule_'.target) + + if targetRule != '' + if a:type == 'Compile' + let &l:makeprg = escape(targetRule, Tex_GetVarValue('Tex_EscapeChars')) + elseif a:type == 'View' + let s:viewer = targetRule + endif + let s:target = target + + elseif Tex_GetVarValue('Tex_'.a:type.'RuleComplete_'.target) != '' + let s:target = target + + else + let curd = getcwd() + exe 'cd '.expand('%:p:h') + if !Tex_GetVarValue('Tex_UseMakefile') || (glob('makefile*') == '' && glob('Makefile*') == '') + if has('gui_running') + call confirm( + \'No '.a:type.' rule defined for target '.target."\n". + \'Please specify a rule in $VIMRUNTIME/ftplugin/tex/texrc'."\n". + \' :help Tex_'.a:type.'Rule_format'."\n". + \'for more information', + \"&ok", 1, 'Warning') + else + call input( + \'No '.a:type.' rule defined for target '.target."\n". + \'Please specify a rule in $VIMRUNTIME/ftplugin/tex/texrc'."\n". + \' :help Tex_'.a:type.'Rule_format'."\n". + \'for more information' + \) + endif + else + echomsg 'Assuming target is for makefile' + let s:target = target + endif + exe 'cd '.curd + endif +endfunction + +function! SetTeXTarget(...) + if a:0 < 1 + let target = Tex_GetVarValue('Tex_DefaultTargetFormat') + let target = input('Enter the target format for compiler and viewer: ', target) + else + let target = a:1 + endif + if target == '' + let target = 'dvi' + endif + + call Tex_SetTeXCompilerTarget('Compile', target) + call Tex_SetTeXCompilerTarget('View', target) +endfunction + +com! -nargs=1 TCTarget :call Tex_SetTeXCompilerTarget('Compile', <f-args>) +com! -nargs=1 TVTarget :call Tex_SetTeXCompilerTarget('View', <f-args>) +com! -nargs=? TTarget :call SetTeXTarget(<f-args>) + +" }}} +" Tex_CompileLatex: compiles the present file. {{{ +" Description: +function! Tex_CompileLatex() + if &ft != 'tex' + echo "calling Tex_RunLaTeX from a non-tex file" + return + end + + " close any preview windows left open. + pclose! + + let curd = getcwd() + + " Find the main file corresponding to this file. Always cd to the + " directory containing the file to avoid problems with the directory + " containing spaces. + " Latex on linux seems to be unable to handle file names with spaces at + " all! Therefore for the moment, do not attempt to handle spaces in the + " file name. + if exists('b:fragmentFile') + let mainfname = expand('%:p:t') + call Tex_CD(expand('%:p:h')) + else + let mainfname = Tex_GetMainFileName(':p:t') + call Tex_CD(Tex_GetMainFileName(':p:h')) + end + + call Tex_Debug('Tex_CompileLatex: getting mainfname = ['.mainfname.'] from Tex_GetMainFileName', 'comp') + + " if a makefile exists and the user wants to use it, then use that + " irrespective of whether *.latexmain exists or not. mainfname is still + " extracted from *.latexmain (if possible) log file name depends on the + " main file which will be compiled. + if Tex_GetVarValue('Tex_UseMakefile') && (glob('makefile') != '' || glob('Makefile') != '') + let _makeprg = &l:makeprg + call Tex_Debug("Tex_CompileLatex: using the makefile in the current directory", "comp") + let &l:makeprg = 'make $*' + if exists('s:target') + call Tex_Debug('Tex_CompileLatex: execing [make! '.s:target.']', 'comp') + exec 'make! '.s:target + else + call Tex_Debug('Tex_CompileLatex: execing [make!]', 'comp') + exec 'make!' + endif + let &l:makeprg = _makeprg + else + " If &makeprg has something like "$*.ps", it means that it wants the + " file-name without the extension... Therefore remove it. + if &makeprg =~ '\$\*\.\w\+' + let mainfname = fnamemodify(mainfname, ':r') + endif + call Tex_Debug('Tex_CompileLatex: execing [make! '.mainfname.']', 'comp') + exec 'make! '.mainfname + endif + redraw! + + call Tex_CD(curd) +endfunction " }}} +" Tex_RunLaTeX: compilation function {{{ +" this function runs the latex command on the currently open file. often times +" the file being currently edited is only a fragment being \input'ed into some +" master tex file. in this case, make a file called mainfile.latexmain in the +" directory containig the file. in other words, if the current file is +" ~/thesis/chapter.tex +" so that doing "latex chapter.tex" doesnt make sense, then make a file called +" main.tex.latexmain +" in the ~/thesis directory. this will then run "latex main.tex" when +" Tex_RunLaTeX() is called. +function! Tex_RunLaTeX() + call Tex_Debug('+Tex_RunLaTeX, b:fragmentFile = '.exists('b:fragmentFile'), 'comp') + + let dir = expand("%:p:h").'/' + let curd = getcwd() + call Tex_CD(expand("%:p:h")) + + let initTarget = s:target + + " first get the dependency chain of this format. + call Tex_Debug("Tex_RunLaTeX: compiling to target [".s:target."]", "comp") + + if Tex_GetVarValue('Tex_FormatDependency_'.s:target) != '' + let dependency = Tex_GetVarValue('Tex_FormatDependency_'.s:target) + if dependency !~ ','.s:target.'$' + let dependency = dependency.','.s:target + endif + else + let dependency = s:target + endif + + call Tex_Debug('Tex_RunLaTeX: getting dependency chain = ['.dependency.']', 'comp') + + " now compile to the final target format via each dependency. + let i = 1 + while Tex_Strntok(dependency, ',', i) != '' + let s:target = Tex_Strntok(dependency, ',', i) + + call Tex_SetTeXCompilerTarget('Compile', s:target) + call Tex_Debug('Tex_RunLaTeX: setting target to '.s:target, 'comp') + + if Tex_GetVarValue('Tex_MultipleCompileFormats') =~ '\<'.s:target.'\>' + call Tex_Debug("Tex_RunLaTeX: compiling file multiple times via Tex_CompileMultipleTimes", "comp") + call Tex_CompileMultipleTimes() + else + call Tex_Debug("Tex_RunLaTeX: compiling file once via Tex_CompileLatex", "comp") + call Tex_CompileLatex() + endif + + let errlist = Tex_GetErrorList() + call Tex_Debug("Tex_RunLaTeX: errlist = [".errlist."]", "comp") + + " If there are any errors, then break from the rest of the steps + if errlist =~ '\v(error|warning)' + call Tex_Debug('Tex_RunLaTeX: There were errors in compiling, breaking chain...', 'comp') + break + endif + + let i = i + 1 + endwhile + + let s:target = initTarget + let s:origwinnum = winnr() + call Tex_SetupErrorWindow() + + call Tex_CD(curd) + call Tex_Debug("-Tex_RunLaTeX", "comp") +endfunction + +" }}} +" Tex_ViewLaTeX: opens viewer {{{ +" Description: opens the DVI viewer for the file being currently edited. +" Again, if the current file is a \input in a master file, see text above +" Tex_RunLaTeX() to see how to set this information. +function! Tex_ViewLaTeX() + if &ft != 'tex' + echo "calling Tex_ViewLaTeX from a non-tex file" + return + end + + let curd = getcwd() + + " If b:fragmentFile is set, it means this file was compiled as a fragment + " using Tex_PartCompile, which means that we want to ignore any + " *.latexmain or makefile's. + if !exists('b:fragmentFile') + " cd to the location of the file to avoid having to deal with spaces + " in the directory name. + let mainfname = Tex_GetMainFileName(':p:t:r') + call Tex_CD(Tex_GetMainFileName(':p:h')) + else + let mainfname = expand("%:p:t:r") + call Tex_CD(expand("%:p:h")) + endif + + if Tex_GetVarValue('Tex_ViewRuleComplete_'.s:target) != '' + + let execString = Tex_GetVarValue('Tex_ViewRuleComplete_'.s:target) + let execString = substitute(execString, '{v:servername}', v:servername, 'g') + + elseif has('win32') + " unfortunately, yap does not allow the specification of an external + " editor from the command line. that would have really helped ensure + " that this particular vim and yap are connected. + let execString = 'start '.s:viewer.' "$*.'.s:target.'"' + + elseif has('macunix') + if strlen(s:viewer) + let s:viewer = '-a '.s:viewer + endif + let execString = 'open '.s:viewer.' $*.'.s:target + + else + " taken from Dimitri Antoniou's tip on vim.sf.net (tip #225). + " slight change to actually use the current servername instead of + " hardcoding it as xdvi. + " Using an option for specifying the editor in the command line + " because that seems to not work on older bash'es. + if s:target == 'dvi' + + if Tex_GetVarValue('Tex_UseEditorSettingInDVIViewer') == 1 && + \ v:servername != '' && + \ (s:viewer == "xdvi" || s:viewer == "xdvik") + + let execString = s:viewer.' -editor "gvim --servername '.v:servername. + \ ' --remote-silent +\%l \%f" $*.dvi &' + + elseif Tex_GetVarValue('Tex_UseEditorSettingInDVIViewer') == 1 && + \ s:viewer == "kdvi" + + let execString = 'kdvi --unique $*.dvi &' + + else + + let execString = s:viewer.' $*.dvi &' + + endif + + else + + let execString = s:viewer.' $*.'.s:target.' &' + + endif + end + + let execString = substitute(execString, '\V$*', mainfname, 'g') + call Tex_Debug("Tex_ViewLaTeX: execString = ".execString, "comp") + + exec 'silent! !'.execString + + if !has('gui_running') + redraw! + endif + + call Tex_CD(curd) +endfunction + +" }}} +" Tex_ForwardSearchLaTeX: searches for current location in dvi file. {{{ +" Description: if the DVI viewr is compatible, then take the viewer to that +" position in the dvi file. see docs for Tex_RunLaTeX() to set a +" master file if this is an \input'ed file. +" Tip: With YAP on Windows, it is possible to do forward and inverse searches +" on DVI files. to do forward search, you'll have to compile the file +" with the --src-specials option. then set the following as the command +" line in the 'view/options/inverse search' dialog box: +" gvim --servername LATEX --remote-silent +%l "%f" +" For inverse search, if you are reading this, then just pressing \ls +" will work. +function! Tex_ForwardSearchLaTeX() + if &ft != 'tex' + echo "calling Tex_ViewLaTeX from a non-tex file" + return + end + + " only know how to do forward search for yap on windows and xdvik (and + " some newer versions of xdvi) on unices. Therefore forward searching will + " automatically open the DVI viewer irrespective of what the user chose as + " the default view format. + if Tex_GetVarValue('Tex_ViewRule_dvi') == '' + return + endif + let viewer = Tex_GetVarValue('Tex_ViewRule_dvi') + + let curd = getcwd() + + let mainfname = Tex_GetMainFileName(':t') + let mainfnameRoot = fnamemodify(Tex_GetMainFileName(), ':t:r') + " cd to the location of the file to avoid problems with directory name + " containing spaces. + call Tex_CD(Tex_GetMainFileName(':p:h')) + + " inverse search tips taken from Dimitri Antoniou's tip and Benji Fisher's + " tips on vim.sf.net (vim.sf.net tip #225) + if has('win32') + + let execString = 'silent! !start '. viewer.' -s '.line('.').expand('%').' '.mainfnameRoot + + else + if Tex_GetVarValue('Tex_UseEditorSettingInDVIViewer') == 1 && + \ exists('v:servername') && + \ (viewer == "xdvi" || viewer == "xdvik") + + let execString = 'silent! !'.viewer.' -name xdvi -sourceposition '.line('.').expand("%"). + \ ' -editor "gvim --servername '.v:servername.' --remote-silent +\%l \%f" '. + \ mainfnameRoot.'.dvi &' + + elseif Tex_GetVarValue('Tex_UseEditorSettingInDVIViewer') == 1 && viewer == "kdvi" + + let execString = 'silent! !kdvi --unique file:'.mainfnameRoot.'.dvi\#src:'.line('.').expand("%").' &' + + else + + let execString = 'silent! !'.viewer.' -name xdvi -sourceposition '.line('.').expand("%").' '.mainfnameRoot.'.dvi &' + + endif + end + + call Tex_Debug("Tex_ForwardSearchLaTeX: execString = ".execString, "comp") + execute execString + if !has('gui_running') + redraw! + endif + + call Tex_CD(curd) +endfunction + +" }}} + +" ============================================================================== +" Functions for compiling parts of a file. +" ============================================================================== +" Tex_PartCompile: compiles selected fragment {{{ +" Description: creates a temporary file from the selected fragment of text +" prepending the preamble and \end{document} and then asks Tex_RunLaTeX() to +" compile it. +function! Tex_PartCompile() range + call Tex_Debug('+Tex_PartCompile', 'comp') + " Save position + let pos = line('.').' | normal! '.virtcol('.').'|' + + " Get a temporary file in the same directory as the file from which + " fragment is being extracted. This is to enable the use of relative path + " names in the fragment. + let tmpfile = Tex_GetTempName(expand('%:p:h')) + + " Remember all the temp files and for each temp file created, remember + " where the temp file came from. + let s:Tex_NumTempFiles = (exists('s:Tex_NumTempFiles') ? s:Tex_NumTempFiles + 1 : 1) + let s:Tex_TempFiles = (exists('s:Tex_TempFiles') ? s:Tex_TempFiles : '') + \ . tmpfile."\n" + let s:Tex_TempFile_{s:Tex_NumTempFiles} = tmpfile + " TODO: For a function Tex_RestoreFragment which restores a temp file to + " its original location. + let s:Tex_TempFileOrig_{s:Tex_NumTempFiles} = expand('%:p') + let s:Tex_TempFileRange_{s:Tex_NumTempFiles} = a:firstline.','.a:lastline + + " Set up an autocmd to clean up the temp files when Vim exits. + if Tex_GetVarValue('Tex_RemoveTempFiles') + augroup RemoveTmpFiles + au! + au VimLeave * :call Tex_RemoveTempFiles() + augroup END + endif + + " If mainfile exists open it in tiny window and extract preamble there, + " otherwise do it from current file + let mainfile = Tex_GetMainFileName(":p") + exe 'bot 1 split '.escape(mainfile, ' ') + exe '1,/\s*\\begin{document}/w '.tmpfile + wincmd q + + exe a:firstline.','.a:lastline."w! >> ".tmpfile + + " edit the temporary file + exec 'drop '.tmpfile + + " append the \end{document} line. + $ put ='\end{document}' + w + + " set this as a fragment file. + let b:fragmentFile = 1 + + silent! call Tex_RunLaTeX() +endfunction " }}} +" Tex_RemoveTempFiles: cleans up temporary files created during part compilation {{{ +" Description: During part compilation, temporary files containing the +" visually selected text are created. These files need to be +" removed when Vim exits to avoid "file leakage". +function! Tex_RemoveTempFiles() + if !exists('s:Tex_NumTempFiles') || !Tex_GetVarValue('Tex_RemoveTempFiles') + return + endif + let i = 1 + while i <= s:Tex_NumTempFiles + let tmpfile = s:Tex_TempFile_{i} + " Remove the tmp file and all other associated files such as the + " .log files etc. + call Tex_DeleteFile(fnamemodify(tmpfile, ':p:r').'.*') + let i = i + 1 + endwhile +endfunction " }}} + +" ============================================================================== +" Compiling a file multiple times to resolve references/citations etc. +" ============================================================================== +" Tex_CompileMultipleTimes: The main function {{{ +" Description: compiles a file multiple times to get cross-references right. +function! Tex_CompileMultipleTimes() + " Just extract the root without any extension because we want to construct + " the log file names etc from it. + let curd = getcwd() + let mainFileName_root = Tex_GetMainFileName(':p:t:r') + call Tex_CD(Tex_GetMainFileName(':p:h')) + + " First ignore undefined references and the + " "rerun to get cross-references right" message from + " the compiler output. + let origlevel = Tex_GetVarValue('Tex_IgnoreLevel') + let origpats = Tex_GetVarValue('Tex_IgnoredWarnings') + + let g:Tex_IgnoredWarnings = g:Tex_IgnoredWarnings."\n" + \ . 'Reference %.%# undefined'."\n" + \ . 'Rerun to get cross-references right' + TCLevel 1000 + + let idxFileName = mainFileName_root.'.idx' + let auxFileName = mainFileName_root.'.aux' + + let runCount = 0 + let needToRerun = 1 + while needToRerun == 1 && runCount < 5 + " assume we need to run only once. + let needToRerun = 0 + + let idxlinesBefore = Tex_CatFile(idxFileName) + let auxlinesBefore = Tex_GetAuxFile(auxFileName) + + " first run latex. + echomsg "latex run number : ".(runCount+1) + call Tex_Debug("Tex_CompileMultipleTimes: latex run number : ".(runCount+1), "comp") + silent! call Tex_CompileLatex() + + " If there are errors in any latex compilation step, immediately + " return. For now, do not bother with warnings because those might go + " away after compiling again or after bibtex is run etc. + let errlist = Tex_GetErrorList() + call Tex_Debug("Tex_CompileMultipleTimes: errors = [".errlist."]", "comp") + + if errlist =~ 'error' + let g:Tex_IgnoredWarnings = origpats + exec 'TCLevel '.origlevel + + return + endif + + let idxlinesAfter = Tex_CatFile(idxFileName) + + " If .idx file changed, then run makeindex to generate the new .ind + " file and remember to rerun latex. + if runCount == 0 && glob(idxFileName) != '' && idxlinesBefore != idxlinesAfter + echomsg "Running makeindex..." + let temp_mp = &mp | let &mp = Tex_GetVarValue('Tex_MakeIndexFlavor') + exec 'silent! make '.mainFileName_root + let &mp = temp_mp + + let needToRerun = 1 + endif + + " The first time we see if we need to run bibtex and if the .bbl file + " changes, we will rerun latex. + if runCount == 0 && Tex_IsPresentInFile('\\bibdata', mainFileName_root.'.aux') + let bibFileName = mainFileName_root.'.bbl' + + let biblinesBefore = Tex_CatFile(bibFileName) + + echomsg "Running '".Tex_GetVarValue('Tex_BibtexFlavor')."' ..." + let temp_mp = &mp | let &mp = Tex_GetVarValue('Tex_BibtexFlavor') + exec 'silent! make '.mainFileName_root + let &mp = temp_mp + + let biblinesAfter = Tex_CatFile(bibFileName) + + " If the .bbl file changed after running bibtex, we need to + " latex again. + if biblinesAfter != biblinesBefore + echomsg 'Need to rerun because bibliography file changed...' + call Tex_Debug('Tex_CompileMultipleTimes: Need to rerun because bibliography file changed...', 'comp') + let needToRerun = 1 + endif + endif + + " check if latex asks us to rerun + let auxlinesAfter = Tex_GetAuxFile(auxFileName) + if auxlinesAfter != auxlinesBefore + echomsg "Need to rerun because the AUX file changed..." + call Tex_Debug("Tex_CompileMultipleTimes: Need to rerun to get cross-references right...", 'comp') + let needToRerun = 1 + endif + + let runCount = runCount + 1 + endwhile + + call Tex_Debug("Tex_CompileMultipleTimes: Ran latex ".runCount." time(s)", "comp") + echomsg "Ran latex ".runCount." time(s)" + + let g:Tex_IgnoredWarnings = origpats + exec 'TCLevel '.origlevel + " After all compiler calls are done, reparse the .log file for + " errors/warnings to handle the situation where the clist might have been + " emptied because of bibtex/makeindex being run as the last step. + exec 'silent! cfile '.mainFileName_root.'.log' + + call Tex_CD(curd) +endfunction " }}} +" Tex_GetAuxFile: get the contents of the AUX file {{{ +" Description: get the contents of the AUX file recursively including any +" @\input'ted AUX files. +function! Tex_GetAuxFile(auxFile) + if !filereadable(a:auxFile) + return '' + endif + + let auxContents = Tex_CatFile(a:auxFile) + let pattern = '@\input{\(.\{-}\)}' + + let auxContents = substitute(auxContents, pattern, '\=Tex_GetAuxFile(submatch(1))', 'g') + + return auxContents +endfunction " }}} + +" ============================================================================== +" Helper functions for +" . viewing the log file in preview mode. +" . syncing the display between the quickfix window and preview window +" . going to the correct line _and column_ number from from the quick fix +" window. +" ============================================================================== +" Tex_SetupErrorWindow: sets up the cwindow and preview of the .log file {{{ +" Description: +function! Tex_SetupErrorWindow() + let mainfname = Tex_GetMainFileName() + + let winnum = winnr() + + " close the quickfix window before trying to open it again, otherwise + " whether or not we end up in the quickfix window after the :cwindow + " command is not fixed. + cclose + cwindow + " create log file name from mainfname + let mfnlog = fnamemodify(mainfname, ":t:r").'.log' + call Tex_Debug('Tex_SetupErrorWindow: mfnlog = '.mfnlog, 'comp') + " if we moved to a different window, then it means we had some errors. + if winnum != winnr() + if Tex_GetVarValue('Tex_ShowErrorContext') + call Tex_UpdatePreviewWindow(mfnlog) + exe 'nnoremap <buffer> <silent> j j:call Tex_UpdatePreviewWindow("'.mfnlog.'")<CR>' + exe 'nnoremap <buffer> <silent> k k:call Tex_UpdatePreviewWindow("'.mfnlog.'")<CR>' + exe 'nnoremap <buffer> <silent> <up> <up>:call Tex_UpdatePreviewWindow("'.mfnlog.'")<CR>' + exe 'nnoremap <buffer> <silent> <down> <down>:call Tex_UpdatePreviewWindow("'.mfnlog.'")<CR>' + endif + exe 'nnoremap <buffer> <silent> <enter> :call Tex_GotoErrorLocation("'.mfnlog.'")<CR>' + + setlocal nowrap + + " resize the window to just fit in with the number of lines. + exec ( line('$') < 4 ? line('$') : 4 ).' wincmd _' + if Tex_GetVarValue('Tex_GotoError') == 1 + call Tex_GotoErrorLocation(mfnlog) + else + exec s:origwinnum.' wincmd w' + endif + endif + +endfunction " }}} +" Tex_PositionPreviewWindow: positions the preview window correctly. {{{ +" Description: +" The purpose of this function is to count the number of times an error +" occurs on the same line. or in other words, if the current line is +" something like |10 error|, then we want to count the number of +" lines in the quickfix window before this line which also contain lines +" like |10 error|. +" +function! Tex_PositionPreviewWindow(filename) + + if getline('.') !~ '|\d\+ \(error\|warning\)|' + if !search('|\d\+ \(error\|warning\)|') + call Tex_Debug("not finding error pattern anywhere in quickfix window :".bufname(bufnr('%')), + \ 'comp') + pclose! + return + endif + endif + + " extract the error pattern (something like 'file.tex|10 error|') on the + " current line. + let errpat = matchstr(getline('.'), '^\f*|\d\+ \(error\|warning\)|\ze') + let errfile = matchstr(getline('.'), '^\f*\ze|\d\+ \(error\|warning\)|') + " extract the line number from the error pattern. + let linenum = matchstr(getline('.'), '|\zs\d\+\ze \(error\|warning\)|') + + " if we are on an error, then count the number of lines before this in the + " quickfix window with an error on the same line. + if errpat =~ 'error|$' + " our location in the quick fix window. + let errline = line('.') + + " goto the beginning of the quickfix window and begin counting the lines + " which show an error on the same line. + 0 + let numrep = 0 + while 1 + " if we are on the same kind of error line, then means we have another + " line containing the same error pattern. + if getline('.') =~ errpat + let numrep = numrep + 1 + normal! 0 + endif + " if we have reached the original location in the quick fix window, + " then break. + if line('.') == errline + break + else + " otherwise, search for the next line which contains the same + " error pattern again. goto the end of the current line so we + " dont count this line again. + normal! $ + call search(errpat, 'W') + endif + endwhile + else + let numrep = 1 + endif + + if getline('.') =~ '|\d\+ warning|' + let searchpat = escape(matchstr(getline('.'), '|\d\+ warning|\s*\zs.*'), '\ ') + else + let searchpat = 'l\.'.linenum + endif + + " We first need to be in the scope of the correct file in the .log file. + " This is important for example, when a.tex and b.tex both have errors on + " line 9 of the file and we want to go to the error of b.tex. Merely + " searching forward from the beginning of the log file for l.9 will always + " land us on the error in a.tex. + if errfile != '' + exec 'silent! bot pedit +/(\\(\\f\\|\\[\\|\]\\|\\s\\)*'.errfile.'/ '.a:filename + else + exec 'bot pedit +0 '.a:filename + endif + " Goto the preview window + " TODO: This is not robust enough. Check that a wincmd j actually takes + " us to the preview window. + wincmd j + " now search forward from this position in the preview window for the + " numrep^th error of the current line in the quickfix window. + while numrep > 0 + call search(searchpat, 'W') + let numrep = numrep - 1 + endwhile + normal! z. + +endfunction " }}} +" Tex_UpdatePreviewWindow: updates the view of the log file {{{ +" Description: +" This function should be called when focus is in a quickfix window. +" It opens the log file in a preview window and makes it display that +" part of the log file which corresponds to the error which the user is +" currently on in the quickfix window. Control returns to the quickfix +" window when the function returns. +" +function! Tex_UpdatePreviewWindow(filename) + call Tex_PositionPreviewWindow(a:filename) + + if &previewwindow + 6 wincmd _ + wincmd p + endif +endfunction " }}} +" Tex_GotoErrorLocation: goes to the correct location of error in the tex file {{{ +" Description: +" This function should be called when focus is in a quickfix window. This +" function will first open the preview window of the log file (if it is not +" already open), position the display of the preview to coincide with the +" current error under the cursor and then take the user to the file in +" which this error has occured. +" +" The position is both the correct line number and the column number. +function! Tex_GotoErrorLocation(filename) + + " first use vim's functionality to take us to the location of the error + " accurate to the line (not column). This lets us go to the correct file + " without applying any logic. + exec "normal! \<enter>" + " If the log file is not found, then going to the correct line number is + " all we can do. + if glob(a:filename) == '' + return + endif + + let winnum = winnr() + " then come back to the quickfix window + wincmd w + + " find out where in the file we had the error. + let linenum = matchstr(getline('.'), '|\zs\d\+\ze \(warning\|error\)|') + call Tex_PositionPreviewWindow(a:filename) + + if getline('.') =~ 'l.\d\+' + + let brokenline = matchstr(getline('.'), 'l.'.linenum.' \zs.*\ze') + " If the line is of the form + " l.10 ...and then there was some error + " it means (most probably) that only part of the erroneous line is + " shown. In this case, finding the length of the broken line is not + " correct. Instead goto the beginning of the line and search forward + " for the part which is displayed and then go to its end. + if brokenline =~ '^\M...' + let partline = matchstr(brokenline, '^\M...\m\zs.*') + let normcmd = "0/\\V".escape(partline, "\\")."/e+1\<CR>" + else + let column = strlen(brokenline) + 1 + let normcmd = column.'|' + endif + + elseif getline('.') =~ 'LaTeX Warning: \(Citation\|Reference\) `.*' + + let ref = matchstr(getline('.'), "LaTeX Warning: \\(Citation\\|Reference\\) `\\zs[^']\\+\\ze'") + let normcmd = '0/'.ref."\<CR>" + + else + + let normcmd = '0' + + endif + + " go back to the window where we came from. + exec winnum.' wincmd w' + exec 'silent! '.linenum.' | normal! '.normcmd + + if !Tex_GetVarValue('Tex_ShowErrorContext') + pclose! + endif +endfunction " }}} +" Tex_SetCompilerMaps: sets maps for compiling/viewing/searching {{{ +" Description: +function! <SID>Tex_SetCompilerMaps() + if exists('b:Tex_doneCompilerMaps') + return + endif + let s:ml = exists('g:mapleader') ? g:mapleader : "\\" + + nnoremap <buffer> <Plug>Tex_Compile :call Tex_RunLaTeX()<cr> + vnoremap <buffer> <Plug>Tex_Compile :call Tex_PartCompile()<cr> + nnoremap <buffer> <Plug>Tex_View :call Tex_ViewLaTeX()<cr> + nnoremap <buffer> <Plug>Tex_ForwardSearch :call Tex_ForwardSearchLaTeX()<cr> + + call Tex_MakeMap(s:ml."ll", "<Plug>Tex_Compile", 'n', '<buffer>') + call Tex_MakeMap(s:ml."ll", "<Plug>Tex_Compile", 'v', '<buffer>') + call Tex_MakeMap(s:ml."lv", "<Plug>Tex_View", 'n', '<buffer>') + call Tex_MakeMap(s:ml."ls", "<Plug>Tex_ForwardSearch", 'n', '<buffer>') +endfunction +" }}} + +augroup LatexSuite + au LatexSuite User LatexSuiteFileType + \ call Tex_Debug('compiler.vim: Catching LatexSuiteFileType event', 'comp') | + \ call <SID>Tex_SetCompilerMaps() +augroup END + +command! -nargs=0 -range=% TPartCompile :<line1>, <line2> silent! call Tex_PartCompile() +" Setting b:fragmentFile = 1 makes Tex_CompileLatex consider the present file +" the _main_ file irrespective of the presence of a .latexmain file. +command! -nargs=0 TCompileThis let b:fragmentFile = 1 +command! -nargs=0 TCompileMainFile let b:fragmentFile = 0 + +" vim:fdm=marker:ff=unix:noet:ts=4:sw=4 diff --git a/.vim/ftplugin/latex-suite/custommacros.vim b/.vim/ftplugin/latex-suite/custommacros.vim new file mode 100644 index 0000000..1b1c6bd --- /dev/null +++ b/.vim/ftplugin/latex-suite/custommacros.vim @@ -0,0 +1,257 @@ +"============================================================================= +" File: custommacros.vim +" Author: Mikolaj Machowski +" Version: 1.0 +" Created: Tue Apr 23 05:00 PM 2002 PST +" CVS: $Id: custommacros.vim 997 2006-03-20 09:45:45Z srinathava $ +" +" Description: functions for processing custom macros in the +" latex-suite/macros directory +"============================================================================= + +let s:path = expand('<sfile>:p:h') + +" Set path to macros dir dependent on OS {{{ +if has("unix") || has("macunix") + let s:macrodirpath = $HOME."/.vim/ftplugin/latex-suite/macros/" +elseif has("win32") + if exists("$HOME") + let s:macrodirpath = $HOME."/vimfiles/ftplugin/latex-suite/macros/" + else + let s:macrodirpath = $VIM."/vimfiles/ftplugin/latex-suite/macros/" + endif +endif + +" }}} +" SetCustomMacrosMenu: sets up the menu for Macros {{{ +function! <SID>SetCustomMacrosMenu() + let flist = Tex_FindInRtp('', 'macros') + exe 'amenu '.g:Tex_MacrosMenuLocation.'&New :call <SID>NewMacro("FFFromMMMenu")<CR>' + exe 'amenu '.g:Tex_MacrosMenuLocation.'&Redraw :call RedrawMacro()<CR>' + + let i = 1 + while 1 + let fname = Tex_Strntok(flist, ',', i) + if fname == '' + break + endif + exe "amenu ".g:Tex_MacrosMenuLocation."&Delete.&".i.":<tab>".fname." :call <SID>DeleteMacro('".fname."')<CR>" + exe "amenu ".g:Tex_MacrosMenuLocation."&Edit.&".i.":<tab>".fname." :call <SID>EditMacro('".fname."')<CR>" + exe "imenu ".g:Tex_MacrosMenuLocation."&".i.":<tab>".fname." <C-r>=<SID>ReadMacro('".fname."')<CR>" + exe "nmenu ".g:Tex_MacrosMenuLocation."&".i.":<tab>".fname." i<C-r>=<SID>ReadMacro('".fname."')<CR>" + let i = i + 1 + endwhile +endfunction + +if g:Tex_Menus + call <SID>SetCustomMacrosMenu() +endif + +" }}} +" NewMacro: opens new file in macros directory {{{ +function! <SID>NewMacro(...) + " Allow for calling :TMacroNew without argument or from menu and prompt + " for name. + if a:0 > 0 + let newmacroname = a:1 + else + let newmacroname = input("Name of new macro: ") + if newmacroname == '' + return + endif + endif + + if newmacroname == "FFFromMMMenu" + " Check if NewMacro was called from menu and prompt for insert macro + " name + let newmacroname = input("Name of new macro: ") + if newmacroname == '' + return + endif + elseif Tex_FindInRtp(newmacroname, 'macros') != '' + " If macro with this name already exists, prompt for another name. + exe "echomsg 'Macro ".newmacroname." already exists. Try another name.'" + let newmacroname = input("Name of new macro: ") + if newmacroname == '' + return + endif + endif + exec 'split '.Tex_EscapeSpaces(s:macrodirpath.newmacroname) + setlocal filetype=tex +endfunction + +" }}} +" RedrawMacro: refreshes macro menu {{{ +function! RedrawMacro() + aunmenu TeX-Suite.Macros + call <SID>SetCustomMacrosMenu() +endfunction + +" }}} +" ChooseMacro: choose a macro file {{{ +" " Description: +function! s:ChooseMacro(ask) + let filelist = Tex_FindInRtp('', 'macros') + let filename = Tex_ChooseFromPrompt( + \ a:ask."\n" . + \ Tex_CreatePrompt(filelist, 2, ',') . + \ "\nEnter number or filename :", + \ filelist, ',') +endfunction + +" }}} +" DeleteMacro: deletes macro file {{{ +function! <SID>DeleteMacro(...) + if a:0 > 0 + let filename = a:1 + else + let filename = s:ChooseMacro('Choose a macro file for deletion :') + endif + + if !filereadable(s:macrodirpath.filename) + " When file is not in local directory decline to remove it. + call confirm('This file is not in your local directory: '.filename."\n". + \ 'It will not be deleted.' , '&OK', 1) + + else + let ch = confirm('Really delete '.filename.' ?', "&Yes\n&No", 2) + if ch == 1 + call delete(s:macrodirpath.filename) + endif + call RedrawMacro() + endif +endfunction + +" }}} +" EditMacro: edits macro file {{{ +function! <SID>EditMacro(...) + if a:0 > 0 + let filename = a:1 + else + let filename = s:ChooseMacro('Choose a macro file for insertion:') + endif + + if filereadable(s:macrodirpath.filename) + " If file exists in local directory open it. + exec 'split '.Tex_EscapeSpaces(s:macrodirpath.filename) + else + " But if file doesn't exist in local dir it probably is in user + " restricted area. Instead opening try to copy it to local dir. + " Pity VimL doesn't have mkdir() function :) + let ch = confirm("You are trying to edit file which is probably read-only.\n". + \ "It will be copied to your local LaTeX-Suite macros directory\n". + \ "and you will be operating on local copy with suffix -local.\n". + \ "It will succeed only if ftplugin/latex-suite/macros dir exists.\n". + \ "Do you agree?", "&Yes\n&No", 1) + if ch == 1 + " But there is possibility we already created local modification. + " Check it and offer opening this file. + if filereadable(s:macrodirpath.filename.'-local') + let ch = confirm('Local version of '.filename." already exists.\n". + \ 'Do you want to open it or overwrite with original version?', + \ "&Open\nOver&write\n&Cancel", 1) + if ch == 1 + exec 'split '.Tex_EscapeSpaces(s:macrodirpath.filename.'-local') + elseif ch == 2 + new + exe '0read '.Tex_FindInRtp(filename, 'macros') + " This is possible macro was edited before, wipe it out. + if bufexists(s:macrodirpath.filename.'-local') + exe 'bwipe '.s:macrodirpath.filename.'-local' + endif + exe 'write! '.s:macrodirpath.filename.'-local' + else + return + endif + else + " If file doesn't exist, open new file, read in system macro and + " save it in local macro dir with suffix -local + new + exe '0read '.Tex_FindInRtp(filename, 'macros') + exe 'write '.s:macrodirpath.filename.'-local' + endif + endif + + endif + setlocal filetype=tex +endfunction + +" }}} +" ReadMacro: reads in a macro from a macro file. {{{ +" allowing for placement via placeholders. +function! <SID>ReadMacro(...) + + if a:0 > 0 + let filename = a:1 + else + let filelist = Tex_FindInRtp('', 'macros') + let filename = + \ Tex_ChooseFromPrompt("Choose a macro file:\n" . + \ Tex_CreatePrompt(filelist, 2, ',') . + \ "\nEnter number or name of file :", + \ filelist, ',') + endif + + let fname = Tex_FindInRtp(filename, 'macros', ':p') + + let markerString = '<---- Latex Suite End Macro ---->' + let _a = @a + let position = line('.').' | normal! '.virtcol('.').'|' + silent! call append(line('.'), markerString) + silent! exec "read ".fname + silent! exec "normal! V/^".markerString."$/-1\<CR>\"ax" + " This is kind of tricky: At this stage, we are one line after the one we + " started from with the marker text on it. We need to + " 1. remove the marker and the line. + " 2. get focus to the previous line. + " 3. not remove anything from the previous line. + silent! exec "normal! $v0k$\"_x" + + call Tex_CleanSearchHistory() + + let @a = substitute(@a, '['."\n\r\t ".']*$', '', '') + let textWithMovement = IMAP_PutTextWithMovement(@a) + let @a = _a + + return textWithMovement + +endfunction + +" }}} +" commands for macros {{{ +com! -nargs=? TMacroNew :call <SID>NewMacro(<f-args>) + +" This macros had to have 2 versions: +if v:version >= 602 + com! -complete=custom,Tex_CompleteMacroName -nargs=? TMacro + \ :let s:retVal = <SID>ReadMacro(<f-args>) <bar> normal! i<C-r>=s:retVal<CR> + com! -complete=custom,Tex_CompleteMacroName -nargs=? TMacroEdit + \ :call <SID>EditMacro(<f-args>) + com! -complete=custom,Tex_CompleteMacroName -nargs=? TMacroDelete + \ :call <SID>DeleteMacro(<f-args>) + + " Tex_CompleteMacroName: for completing names in TMacro... commands {{{ + " Description: get list of macro names with Tex_FindInRtp(), remove full path + " and return list of names separated with newlines. + " + function! Tex_CompleteMacroName(A,P,L) + " Get name of macros from all runtimepath directories + let macronames = Tex_FindInRtp('', 'macros') + " Separate names with \n not , + let macronames = substitute(macronames,',','\n','g') + return macronames + endfunction + + " }}} + +else + com! -nargs=? TMacro + \ :let s:retVal = <SID>ReadMacro(<f-args>) <bar> normal! i<C-r>=s:retVal<CR> + com! -nargs=? TMacroEdit :call <SID>EditMacro(<f-args>) + com! -nargs=? TMacroDelete :call <SID>DeleteMacro(<f-args>) + +endif + +" }}} + +" vim:fdm=marker:ff=unix:noet:ts=4:sw=4 diff --git a/.vim/ftplugin/latex-suite/diacritics.vim b/.vim/ftplugin/latex-suite/diacritics.vim new file mode 100644 index 0000000..616d30a --- /dev/null +++ b/.vim/ftplugin/latex-suite/diacritics.vim @@ -0,0 +1,124 @@ +"============================================================================= +" File: diacritics.vim +" Author: Lubomir Host +" Created: Tue Apr 23 07:00 PM 2002 PST +" +" Description: shortcuts for all diacritics. +"============================================================================= + +if !g:Tex_Diacritics + finish +endif + +" \'{a} {{{ +call IMAP ('=a', "\\\'{a}", 'tex') +call IMAP ('=b', "\\'{b}", 'tex') +call IMAP ('=c', "\\'{c}", 'tex') +call IMAP ('=d', "\\'{d}", 'tex') +call IMAP ('=e', "\\'{e}", 'tex') +call IMAP ('=f', "\\'{f}", 'tex') +call IMAP ('=g', "\\'{g}", 'tex') +call IMAP ('=h', "\\'{h}", 'tex') +call IMAP ('=i', "\\'{\i}", 'tex') +call IMAP ('=j', "\\'{j}", 'tex') +call IMAP ('=k', "\\'{k}", 'tex') +call IMAP ('=l', "\\'{l}", 'tex') +call IMAP ('=m', "\\'{m}", 'tex') +call IMAP ('=n', "\\'{n}", 'tex') +call IMAP ('=o', "\\'{o}", 'tex') +call IMAP ('=p', "\\'{p}", 'tex') +call IMAP ('=q', "\\'{q}", 'tex') +call IMAP ('=r', "\\'{r}", 'tex') +call IMAP ('=s', "\\'{s}", 'tex') +call IMAP ('=t', "\\'{t}", 'tex') +call IMAP ('=u', "\\'{u}", 'tex') +call IMAP ('=v', "\\'{v}", 'tex') +call IMAP ('=w', "\\'{w}", 'tex') +call IMAP ('=x', "\\'{x}", 'tex') +call IMAP ('=y', "\\'{y}", 'tex') +call IMAP ('=z', "\\'{z}", 'tex') +call IMAP ('=A', "\\'{A}", 'tex') +call IMAP ('=B', "\\'{B}", 'tex') +call IMAP ('=C', "\\'{C}", 'tex') +call IMAP ('=D', "\\'{D}", 'tex') +call IMAP ('=E', "\\'{E}", 'tex') +call IMAP ('=F', "\\'{F}", 'tex') +call IMAP ('=G', "\\'{G}", 'tex') +call IMAP ('=H', "\\'{H}", 'tex') +call IMAP ('=I', "\\'{\I}", 'tex') +call IMAP ('=J', "\\'{J}", 'tex') +call IMAP ('=K', "\\'{K}", 'tex') +call IMAP ('=L', "\\'{L}", 'tex') +call IMAP ('=M', "\\'{M}", 'tex') +call IMAP ('=N', "\\'{N}", 'tex') +call IMAP ('=O', "\\'{O}", 'tex') +call IMAP ('=P', "\\'{P}", 'tex') +call IMAP ('=Q', "\\'{Q}", 'tex') +call IMAP ('=R', "\\'{R}", 'tex') +call IMAP ('=S', "\\'{S}", 'tex') +call IMAP ('=T', "\\'{T}", 'tex') +call IMAP ('=U', "\\'{U}", 'tex') +call IMAP ('=V', "\\'{V}", 'tex') +call IMAP ('=W', "\\'{W}", 'tex') +call IMAP ('=X', "\\'{X}", 'tex') +call IMAP ('=Y', "\\'{Y}", 'tex') +call IMAP ('=Z', "\\'{Z}", 'tex') +" }}} +" \v{a} {{{ +call IMAP ('+a', "\\v{a}", 'tex') +call IMAP ('+b', "\\v{b}", 'tex') +call IMAP ('+c', "\\v{c}", 'tex') +call IMAP ('+d', "\\v{d}", 'tex') +call IMAP ('+e', "\\v{e}", 'tex') +call IMAP ('+f', "\\v{f}", 'tex') +call IMAP ('+g', "\\v{g}", 'tex') +call IMAP ('+h', "\\v{h}", 'tex') +call IMAP ('+i', "\\v{\i}", 'tex') +call IMAP ('+j', "\\v{j}", 'tex') +call IMAP ('+k', "\\v{k}", 'tex') +call IMAP ('+l', "\\q l", 'tex') +call IMAP ('+m', "\\v{m}", 'tex') +call IMAP ('+n', "\\v{n}", 'tex') +call IMAP ('+o', "\\v{o}", 'tex') +call IMAP ('+p', "\\v{p}", 'tex') +call IMAP ('+q', "\\v{q}", 'tex') +call IMAP ('+r', "\\v{r}", 'tex') +call IMAP ('+s', "\\v{s}", 'tex') +call IMAP ('+t', "\\q t", 'tex') +call IMAP ('+u', "\\v{u}", 'tex') +call IMAP ('+v', "\\v{v}", 'tex') +call IMAP ('+w', "\\v{w}", 'tex') +call IMAP ('+x', "\\v{x}", 'tex') +call IMAP ('+y', "\\v{y}", 'tex') +call IMAP ('+z', "\\v{z}", 'tex') +call IMAP ('+A', "\\v{A}", 'tex') +call IMAP ('+B', "\\v{B}", 'tex') +call IMAP ('+C', "\\v{C}", 'tex') +call IMAP ('+D', "\\v{D}", 'tex') +call IMAP ('+E', "\\v{E}", 'tex') +call IMAP ('+F', "\\v{F}", 'tex') +call IMAP ('+G', "\\v{G}", 'tex') +call IMAP ('+H', "\\v{H}", 'tex') +call IMAP ('+I', "\\v{\I}", 'tex') +call IMAP ('+J', "\\v{J}", 'tex') +call IMAP ('+K', "\\v{K}", 'tex') +call IMAP ('+L', "\\v{L}", 'tex') +call IMAP ('+M', "\\v{M}", 'tex') +call IMAP ('+N', "\\v{N}", 'tex') +call IMAP ('+O', "\\v{O}", 'tex') +call IMAP ('+P', "\\v{P}", 'tex') +call IMAP ('+Q', "\\v{Q}", 'tex') +call IMAP ('+R', "\\v{R}", 'tex') +call IMAP ('+S', "\\v{S}", 'tex') +call IMAP ('+T', "\\v{T}", 'tex') +call IMAP ('+U', "\\v{U}", 'tex') +call IMAP ('+V', "\\v{V}", 'tex') +call IMAP ('+W', "\\v{W}", 'tex') +call IMAP ('+X', "\\v{X}", 'tex') +call IMAP ('+Y', "\\v{Y}", 'tex') +call IMAP ('+Z', "\\v{Z}", 'tex') +" }}} +call IMAP ('+}', "\\\"{a}", 'tex') +call IMAP ('+:', "\\^{o}", 'tex') + +" vim:fdm=marker:ff=unix:noet:ts=4:sw=4 diff --git a/.vim/ftplugin/latex-suite/dictionaries/SIunits b/.vim/ftplugin/latex-suite/dictionaries/SIunits new file mode 100644 index 0000000..d4ac081 --- /dev/null +++ b/.vim/ftplugin/latex-suite/dictionaries/SIunits @@ -0,0 +1,289 @@ +addprefix +addunit +ampere +amperemetresecond +amperepermetre +amperepermetrenp +amperepersquaremetre +amperepersquaremetrenp +angstrom +arad +arcminute +arcsecond +are +atomicmass +atto +attod +barn +bbar +becquerel +becquerelbase +bel +candela +candelapersquaremetre +candelapersquaremetrenp +celsius +Celsius +celsiusbase +centi +centid +coulomb +coulombbase +coulombpercubicmetre +coulombpercubicmetrenp +coulombperkilogram +coulombperkilogramnp +coulombpermol +coulombpermolnp +coulombpersquaremetre +coulombpersquaremetrenp +cubed +cubic +cubicmetre +cubicmetreperkilogram +cubicmetrepersecond +curie +dday +deca +decad +deci +decid +degree +degreecelsius +deka +dekad +derbecquerel +dercelsius +dercoulomb +derfarad +dergray +derhenry +derhertz +derjoule +derkatal +derlumen +derlux +dernewton +derohm +derpascal +derradian +dersiemens +dersievert +dersteradian +dertesla +dervolt +derwatt +derweber +electronvolt +exa +exad +farad +faradbase +faradpermetre +faradpermetrenp +femto +femtod +fourth +gal +giga +gigad +gram +graybase +graypersecond +graypersecondnp +hectare +hecto +hectod +henry +henrybase +henrypermetre +henrypermetrenp +hertz +hertzbase +hour +joule +joulebase +joulepercubicmetre +joulepercubicmetrenp +jouleperkelvin +jouleperkelvinnp +jouleperkilogram +jouleperkilogramkelvin +jouleperkilogramkelvinnp +jouleperkilogramnp +joulepermole +joulepermolekelvin +joulepermolekelvinnp +joulepermolenp +joulepersquaremetre +joulepersquaremetrenp +joulepertesla +jouleperteslanp +katal +katalbase +katalpercubicmetre +katalpercubicmetrenp +kelvin +kilo +kilod +kilogram +kilogrammetrepersecond +kilogrammetrepersecondnp +kilogrammetrepersquaresecond +kilogrammetrepersquaresecondnp +kilogrampercubicmetre +kilogrampercubicmetrecoulomb +kilogrampercubicmetrecoulombnp +kilogrampercubicmetrenp +kilogramperkilomole +kilogramperkilomolenp +kilogrampermetre +kilogrampermetrenp +kilogrampersecond +kilogrampersecondcubicmetre +kilogrampersecondcubicmetrenp +kilogrampersecondnp +kilogrampersquaremetre +kilogrampersquaremetrenp +kilogrampersquaremetresecond +kilogrampersquaremetresecondnp +kilogramsquaremetre +kilogramsquaremetrenp +kilogramsquaremetrepersecond +kilogramsquaremetrepersecondnp +kilowatthour +liter +litre +lumen +lumenbase +lux +luxbase +mega +megad +meter +metre +metrepersecond +metrepersecondnp +metrepersquaresecond +metrepersquaresecondnp +micro +microd +milli +millid +minute +mole +molepercubicmetre +molepercubicmetrenp +nano +nanod +neper +newton +newtonbase +newtonmetre +newtonpercubicmetre +newtonpercubicmetrenp +newtonperkilogram +newtonperkilogramnp +newtonpermetre +newtonpermetrenp +newtonpersquaremetre +newtonpersquaremetrenp +NoAMS +no@qsk +ohm +ohmbase +ohmmetre +one +paminute +pascal +pascalbase +pascalsecond +pasecond +per +period@active +persquaremetresecond +persquaremetresecondnp +peta +petad +pico +picod +power +@qsk +quantityskip +rad +radian +radianbase +radianpersecond +radianpersecondnp +radianpersquaresecond +radianpersquaresecondnp +reciprocal +rem +roentgen +rp +rpcubed +rpcubic +rpcubicmetreperkilogram +rpcubicmetrepersecond +rperminute +rpersecond +rpfourth +rpsquare +rpsquared +rpsquaremetreperkilogram +second +siemens +siemensbase +sievert +sievertbase +square +squared +squaremetre +squaremetrepercubicmetre +squaremetrepercubicmetrenp +squaremetrepercubicsecond +squaremetrepercubicsecondnp +squaremetreperkilogram +squaremetrepernewtonsecond +squaremetrepernewtonsecondnp +squaremetrepersecond +squaremetrepersecondnp +squaremetrepersquaresecond +squaremetrepersquaresecondnp +steradian +steradianbase +tera +terad +tesla +teslabase +ton +tonne +unit +unitskip +usk +volt +voltbase +voltpermetre +voltpermetrenp +watt +wattbase +wattpercubicmetre +wattpercubicmetrenp +wattperkilogram +wattperkilogramnp +wattpermetrekelvin +wattpermetrekelvinnp +wattpersquaremetre +wattpersquaremetrenp +wattpersquaremetresteradian +wattpersquaremetresteradiannp +weber +weberbase +yocto +yoctod +yotta +yottad +zepto +zeptod +zetta +zettad diff --git a/.vim/ftplugin/latex-suite/dictionaries/dictionary b/.vim/ftplugin/latex-suite/dictionaries/dictionary new file mode 100644 index 0000000..458dc0b --- /dev/null +++ b/.vim/ftplugin/latex-suite/dictionaries/dictionary @@ -0,0 +1,677 @@ +abbrv +abovedisplayshortskip +abovedisplayskip +abstract +abstract +abstractname +acute +addcontentsline +address +addtime +addtocontents +addtocounter +addtolength +addvspace +align +alph +Alph +alpha +amsmath +amsthm +and +appendix +appendixname +arabic +array +arraycolsep +arrayrulewidth +arraystretch +article +author +a4paper +a5paper +backmatter +bar +bar +baselineskip +baselinestretch +batchmode +begin +belowdisplayshortskip +belowdisplayskip +bezier +bf +bfseries +bibindent +bibitem +bibliography +bibliographystyle +bibname +big +Big +Bigg +bigg +Biggl +biggl +Biggm +biggm +Biggr +biggr +Bigl +bigl +bigm +Bigm +bigr +Bigr +bigskip +bigskipamount +binom +blg +boldmath +boldsymbol +book +botfigrule +bottmofraction +bottomnumber +boxedminipage +bp +breve +b5paper +calc +calc +caption +caption2 +capt-of +cases +cc +ccaption +ccname +cdotscenter +centering +cercle +cfrac +changebar +chapter +chapterbib +chaptername +check +cite +cleardoublepage +clearpage +cline +clock +closing +cm +COLON +columnsep +columnseprule +columnwidth +contentsline +contentsname +copyright +dag +dashbox +date +dbinom +dblfigure +dblfloatpage +dblfloatsep +dbltextfloatsep +dbltopfraction +dbltopnumber +dcolumn +dd +ddag +ddot +ddots +DeclareMathOperator +depth +description +dfrac +displaylimits +displaymath +displaystyle +document +documentclass +dot +dotfill +doublerulesep +downbracefill +draft +dropping +dywiz +em +emph +empty +encl +enclname +end +endfloat +enlargethispage +enskip +enspace +ensuremath +enumerate +enumi +enumii +enumiii +enumiv +eqnarray +equation +errorstopmode +eucal +eufrak +evensidemargin +everyship +ex +executivepaper +expdlist +extracolsep +extramark +fancybox +fancyhdr +fbox +fboxrule +fboxsep +figure +figurename +file +filecontents +final +flafter +fleqn +floatflt +floatpagefraction +floatsep +flushbottom +flushleft +flushright +fnpara +fnsymbol +fn2end +fontenc +footheight +footmisc +footnote +footnotemark +footnoterule +footnotesep +footnotesize +footnotetext +footnpag +footskip +frac +frame +framebox +frenchspacing +frontmatter +ftnright +fussy +gather +genfrac +geometry +glossary +glossaryentry +graphicx +graphpaper +grave +hat +hbox +headheihgt +headings +headsep +height +helvet +hfill +hhline +hline +hrulefill +hspace +huge +Huge +HUGE +hyperref +hyphenation +ifthen +in +include +includeonly +indent +indentfirst +index +indexentry +indexname +indexspace +input +inputenc +intertext +intextsep +invisible +it +item +itemindent +itemize +itemsep +itshape +jot +kill +label +labelenumi +labelenumii +labelenumiii +labelenumiv +labelitemi +labelitemii +labelitemiii +labelitemiv +labelsep +labelwidth +landscape +large +LARGE +Large +LaTeX +LaTeXe +latexsym +ldots +left +leftarrowfill +lefteqn +leftmargin +leftmargini +leftmarginii +leftmarginiii +leftmarginiv +leftmarginv +leftmarginvi +leftmark +legalpaper +leq +leqno +letter +letterpaper +letterspace +lhead +limits +line +linebreak +linethickness +linewidth +list +listfigurename +listfiles +listoffigures +listoftables +listparindent +location +longtable +lq +lrbox +lscape +mainmatter +makeatletter +makeatother +makebox +makeglossary +makeidx +makeindex +makelabel +maketitle +manyfoot +marginpar +marginparpush +marginparsep +marginparwidth +markboth +markleft +markright +math +mathbb +mathbf +mathbin +mathcal +mathclose +mathfrak +mathindent +mathit +mathnormal +mathop +mathopen +mathord +mathpunct +mathrel +mathrm +mathscr +mathsf +mathstrut +mathtt +mathversion +mbox +mdseries +medmuskip +medskip +medskipamount +minipage +minitoc +minus +mkern +mm +moreverbatim +mpfootnote +mu +multicol +multicolumn +multilanguage +multiput +multirow +myheadings +nabla +name +NeedsTeXFormat +newcommand +newcounter +newenvironment +newfont +newlength +newline +newpage +newsavebox +newtheorem +nocite +nofiles +noindent +nolimits +nolinebreak +nomathsymbols +nonfrenchspacing +nonumber +nopagebreak +normalfont +normalsize +not +notag +note +notitlepage +nu +numberline +numline +numprint +oddsidemargin +oldstyle +onecolumn +oneside +onlynotes +onlyslides +openany +openbib +opening +openright +operatorname +oval +overbrace +overlay +overleftarrow +overline +overrightarrow +page +pagebreak +pagenumbering +pageref +pagestyle +paperheight +paperwidth +par +paragraph +parbox +parbox +parindent +parsep +parskip +part +partial +partname +partopsep +pauza +pc +phi +pi +picture +plain +PLdateending +plmath +PLSlash +plus +pmb +pmod +polski +polski +poptabs +pounds +ppauza +prefixing +printindex +protect +providecommand +ps +pt +pushtabs +put +qbezier +qbeziermax +qquad +quad +quotation +quote +raggedbottom +raggedleft +raggedright +ragged2e +raisebox +ratio +real +ref +refname +refstepcounter +relsize +renewcommand +renewenvironment +report +reversemarginpar +rhead +right +rightarrowfill +rightmargin +rightmark +rm +rmfamily +roman +Roman +rotate +rotating +rq +rule +samepage +savebox +sb +sbox +sc +scriptscriptstyle +scriptsize +scriptstyle +scrollmode +scshape +secnumdepth +section +sectionmark +see +seename +selectfont +selectlanguage +setcounter +setlength +settime +settodepth +settoheight +settowidth +sf +sffamily +shadethm +shadow +shapepar +shortstack +showlabels +sidecap +signature +sin +sl +slide +slides +sloppy +sloppybar +slshape +small +smallskip +smallskipamount +soul +sp +space +sqrt +ss +SS +stackrel +startbreaks +stepcounter +stop +stopbreaks +stretch +strut +subfigure +subfigure +subitem +subparagraph +subsection +subsubitem +subsubsection +sum +supressfloats +symbol +symbol +tabbing +tabcolsep +table +tablename +tableofcontents +tabular +tabularx +tag +tan +tbinom +telephone +TeX +textbf +textbullet +textcircled +textcompwordmark +textemdash +textendash +textexclamdown +textfloatsep +textfraction +textheight +textit +textmd +textnormal +textperiodcenter +textquestiondown +textquotedblleft +textquotedblright +textquoteleft +textquoteright +textrm +textsc +textsf +textsl +textstyle +textsuperscript +texttt +textup +textvisiblespace +textwidth +tfrac +thanks +the +thebibliography +theindex +theorem +thepage +thesection +theta +thicklines +thickmuskip +thinlines +thispagestyle +tilde +time +times +tiny +title +titlepage +tocdepth +today +topfigrule +topfraction +topmargin +topmargin +topmargin +topsep +topskip +topskip +totalheight +totalnumber +trivlist +tt +ttfamily +twocolumn +twocolumn +twoside +typein +typein +typeout +typeout +ulem +ulem +unboldmath +underbrace +underline +unsort +unsrt +upbracefill +upshape +upshape +usebox +usebox +usecounter +usefont +usepackage +value +vbox +vdots +vec +vector +verb +verb +verbatim +verse +vfill +visible +vline +vmargin +voffset +vspace +widehat +widetilde +width +wrapfig +xleftarrow +xrightarrow +threeparttable diff --git a/.vim/ftplugin/latex-suite/elementmacros.vim b/.vim/ftplugin/latex-suite/elementmacros.vim new file mode 100644 index 0000000..8960a0f --- /dev/null +++ b/.vim/ftplugin/latex-suite/elementmacros.vim @@ -0,0 +1,338 @@ +"============================================================================= +" File: elementmacros.vim +" Author: Mikolaj Machowski +" Created: Tue Apr 23 06:00 PM 2002 PST +" +" Description: macros for dimensions/fonts/counters. +" and various common commands such ref/label/footnote. +"============================================================================= + +nmap <silent> <script> <plug> i +imap <silent> <script> <C-o><plug> <Nop> + +if exists('s:lastElementsLocation') && g:Tex_ElementsMenuLocation == s:lastElementsLocation + finish +endif + +if exists('s:lastElementsLocation') + exe 'aunmenu '.s:lastElementsLocation.'Font.' + exe 'aunmenu '.s:lastElementsLocation.'Dimension.' + exe 'aunmenu '.s:lastElementsLocation.'Counters.' + exe 'aunmenu '.s:lastElementsLocation.'Various.' +endif + +let s:lastElementsLocation = g:Tex_ElementsMenuLocation + +let s:fontMenuLoc = g:Tex_ElementsMenuLocation.'Font.' +let s:dimensionMenuLoc = g:Tex_ElementsMenuLocation.'Dimension.' +let s:counterMenuLoc = g:Tex_ElementsMenuLocation.'Counters.' +let s:variousMenuLoc = g:Tex_ElementsMenuLocation.'Various.' + +" ============================================================================== +" Set up the functions the first time. +" ============================================================================== +if !exists('s:definedFuncs') " {{{ + let s:definedFuncs = 1 + + " Tex_RemoveElementMenus: remove the elements menu {{{ + " + function! Tex_RemoveElementMenus() + exe 'silent! aunmenu '.s:lastElementsLocation.'Font.' + exe 'silent! aunmenu '.s:lastElementsLocation.'Dimension.' + exe 'silent! aunmenu '.s:lastElementsLocation.'Counters.' + exe 'silent! aunmenu '.s:lastElementsLocation.'Various.' + endfunction + + " }}} + " Tex_FontFamily: sets up font menus {{{ + " + function! <SID>Tex_FontFamily(font,fam) + let vislhs = matchstr(tolower(a:font), '^.\zs.*') + + " avoid redoing imaps and vmaps for every reconfiguration of menus. + if !exists('s:doneOnce') && g:Tex_FontMaps + exe "vnoremap <silent> ".g:Tex_Leader.vislhs. + \" \<C-\\>\<C-N>:call VEnclose('\\text".vislhs."{', '}', '{\\".vislhs.a:fam." ', '}')<CR>" + exe 'call IMAP ("'.a:font.'", "\\text'.vislhs.'{<++>}<++>", "tex")' + endif + + " menu entry. + if g:Tex_Menus && g:Tex_FontMenus + let location = s:fontMenuLoc.substitute(a:fam, '^.', '\u&', '').'.'.vislhs.a:fam.'<tab>'.a:font.'\ ('.g:Tex_Leader.vislhs.')' + exe "amenu ".location. + \" <plug><C-r>=IMAP_PutTextWithMovement('\\text".vislhs."{<++>}<++>')<CR>" + exe "vmenu ".location. + \" \<C-\\>\<C-N>:call VEnclose('\\text".vislhs."{', '}', '{\\".vislhs.a:fam." ', '}')<CR>" + endif + + endfunction + + " }}} + " Tex_FontDiacritics: sets up menus for diacritics. {{{ + " + function! <SID>Tex_FontDiacritics(name, rhs) + let location = s:fontMenuLoc.'&Diacritics.'.a:name.'<tab>' + exe 'amenu '.location. + \" <plug><C-r>=IMAP_PutTextWithMovement('\\".a:rhs."{<++>}<++>')<CR>" + exe 'vmenu '.location. + \" \<C-\\>\<C-n>:call VEnclose('\\".a:rhs."{', '}', '', '')<CR>" + endfunction " }}} + " Tex_FontSize: sets up size fonts {{{ + " + function! <SID>Tex_FontSize(name) + let location = s:fontMenuLoc.'&Size.'.a:name.'<tab>' + exe 'amenu '.location." <plug>\\".a:name + exe 'vunmenu '.location + endfunction " }}} + " Tex_Fontfont: sets up the 'font' part of font menus {{{ + " + function! <SID>Tex_Fontfont(desc, lhs) + let location = s:fontMenuLoc.'&font.'.a:desc.'<tab>' + exe "amenu ".location." <plug><C-r>=IMAP_PutTextWithMovement('".a:lhs."')<CR>" + exe "vunmenu ".location + endfunction " }}} + " Tex_DimMenus: set up dimension menus {{{ + function! <SID>Tex_DimMenus(submenu, rhs) + let location = s:dimensionMenuLoc.a:submenu.'.'.a:rhs.'<tab>' + exe "amenu ".location." <plug>\\".a:rhs + exe "vunmenu ".location + endfunction " }}} + " Tex_CounterMenus: set up counters menus {{{ + function! <SID>Tex_CounterMenus(submenu, rhs) + let location = s:counterMenuLoc.a:submenu.'.'.a:rhs.'<tab>' + exe "amenu ".location." <plug>\\".a:rhs + exe "vunmenu ".location + endfunction " }}} + " Tex_VariousMenus: set up various menus {{{ + function! <SID>Tex_VariousMenus(desc, lhs) + let location = s:variousMenuLoc.a:desc.'<tab>' + exe "amenu ".location." <plug><C-r>=IMAP_PutTextWithMovement('".a:lhs."')<CR>" + exe "vunmenu ".location + endfunction " }}} +endif +" }}} + +" ============================================================================== +" Fonts +" ============================================================================== +" series/family/shape {{{ +call <SID>Tex_FontFamily("FBF","series") +call <SID>Tex_FontFamily("FMD","series") + +call <SID>Tex_FontFamily("FTT","family") +call <SID>Tex_FontFamily("FSF","family") +call <SID>Tex_FontFamily("FRM","family") + +call <SID>Tex_FontFamily("FUP","shape") +call <SID>Tex_FontFamily("FSL","shape") +call <SID>Tex_FontFamily("FSC","shape") +call <SID>Tex_FontFamily("FIT","shape") + +" the \emph is special. +if g:Tex_FontMaps | exe "vnoremap <silent> ".g:Tex_Leader."em \<C-\\>\<C-N>:call VEnclose('\\emph{', '}', '{\\em', '\\/}')<CR>" | endif +if g:Tex_FontMaps | exe 'call IMAP ("FEM", "\\emph{<++>}<++>", "tex")' | endif + +" }}} +if g:Tex_Menus && g:Tex_FontMenus + " {{{ diacritics + call <SID>Tex_FontDiacritics('Acute', '"') + call <SID>Tex_FontDiacritics('Breve', 'u') + call <SID>Tex_FontDiacritics('Circle', 'r') + call <SID>Tex_FontDiacritics('Circumflex', '^') + call <SID>Tex_FontDiacritics('Umlaut', '"') + call <SID>Tex_FontDiacritics('HUmlaut', 'H') + call <SID>Tex_FontDiacritics('Dot\ over', '.') + call <SID>Tex_FontDiacritics('Grave', '`') + call <SID>Tex_FontDiacritics('Hacek', 'v') + call <SID>Tex_FontDiacritics('Makron', '=') + call <SID>Tex_FontDiacritics('Tilde', '~') + call <SID>Tex_FontDiacritics('Underline', 'b') + call <SID>Tex_FontDiacritics('Cedille', 'c') + call <SID>Tex_FontDiacritics('Dot\ under', ' ') + call <SID>Tex_FontDiacritics('Ligature', 't') + " }}} + " {{{ Si&ze. + call <SID>Tex_FontSize('tiny') + call <SID>Tex_FontSize('scriptsize') + call <SID>Tex_FontSize('footnotesize') + call <SID>Tex_FontSize('small') + call <SID>Tex_FontSize('normalsize') + call <SID>Tex_FontSize('large') + call <SID>Tex_FontSize('Large') + call <SID>Tex_FontSize('LARGE') + call <SID>Tex_FontSize('huge') + call <SID>Tex_FontSize('Huge') + " }}} + " {{{ &font. + call s:Tex_Fontfont('fontencoding{}', '\fontencoding{<++>}<++>') + call s:Tex_Fontfont('fontfamily{qtm}', '\fontfamily{<++>}<++>') + call s:Tex_Fontfont('fontseries{m\ b\ bx\ sb\ c}', '\fontseries{<++>}<++>') + call s:Tex_Fontfont('fontshape{n\ it\ sl\ sc\ ui}', '\fontshape{<++>}<++>') + call s:Tex_Fontfont('fontsize{}{}', '\fontsize{<++>}{<++>}<++>') + call s:Tex_Fontfont('selectfont', '\selectfont ') + " }}} +endif + +" ============================================================================== +" Dimensions +" ============================================================================== +if g:Tex_Menus + " {{{ Static1 + call <SID>Tex_DimMenus('Static1', 'arraycolsep') + call <SID>Tex_DimMenus('Static1', 'arrayrulewidth') + call <SID>Tex_DimMenus('Static1', 'bibindent') + call <SID>Tex_DimMenus('Static1', 'columnsep') + call <SID>Tex_DimMenus('Static1', 'columnseprule') + call <SID>Tex_DimMenus('Static1', 'columnwidth') + call <SID>Tex_DimMenus('Static1', 'doublerulesep') + call <SID>Tex_DimMenus('Static1', 'evensidemargin') + call <SID>Tex_DimMenus('Static1', 'fboxrule') + call <SID>Tex_DimMenus('Static1', 'fboxsep') + call <SID>Tex_DimMenus('Static1', 'footheight') + call <SID>Tex_DimMenus('Static1', 'footnotesep') + call <SID>Tex_DimMenus('Static1', 'footskip') + call <SID>Tex_DimMenus('Static1', 'headheight') + call <SID>Tex_DimMenus('Static1', 'headsep') + call <SID>Tex_DimMenus('Static1', 'itemindent') + call <SID>Tex_DimMenus('Static1', 'labelsep') + call <SID>Tex_DimMenus('Static1', 'labelwidth') + call <SID>Tex_DimMenus('Static1', 'leftmargin') + call <SID>Tex_DimMenus('Static1', 'leftmargini') + call <SID>Tex_DimMenus('Static1', 'leftmarginii') + call <SID>Tex_DimMenus('Static1', 'leftmarginiii') + call <SID>Tex_DimMenus('Static1', 'leftmarginiv') + call <SID>Tex_DimMenus('Static1', 'leftmarginv') + call <SID>Tex_DimMenus('Static1', 'leftmarginvi') + call <SID>Tex_DimMenus('Static1', 'linewidth') + call <SID>Tex_DimMenus('Static1', 'listparindent') + call <SID>Tex_DimMenus('Static1', 'marginparpush') + call <SID>Tex_DimMenus('Static1', 'marginparsep') + call <SID>Tex_DimMenus('Static1', 'marginparwidth') + call <SID>Tex_DimMenus('Static1', 'mathindent') + call <SID>Tex_DimMenus('Static1', 'oddsidemargin') + " }}} + " {{{ Static2 + call <SID>Tex_DimMenus('Static2', 'paperheight') + call <SID>Tex_DimMenus('Static2', 'paperwidth') + call <SID>Tex_DimMenus('Static2', 'parindent') + call <SID>Tex_DimMenus('Static2', 'rightmargin') + call <SID>Tex_DimMenus('Static2', 'tabbingsep') + call <SID>Tex_DimMenus('Static2', 'tabcolsep') + call <SID>Tex_DimMenus('Static2', 'textheight') + call <SID>Tex_DimMenus('Static2', 'textwidth') + call <SID>Tex_DimMenus('Static2', 'topmargin') + call <SID>Tex_DimMenus('Static2', 'unitlength') + " }}} + " {{{ Dynamic + call <SID>Tex_DimMenus('Dynamic', 'abovedisplayshortskip') + call <SID>Tex_DimMenus('Dynamic', 'abovedisplayskip') + call <SID>Tex_DimMenus('Dynamic', 'baselineskip') + call <SID>Tex_DimMenus('Dynamic', 'belowdisplayshortskip') + call <SID>Tex_DimMenus('Dynamic', 'belowdisplayskip') + call <SID>Tex_DimMenus('Dynamic', 'dblfloatsep') + call <SID>Tex_DimMenus('Dynamic', 'dbltextfloatsep') + call <SID>Tex_DimMenus('Dynamic', 'floatsep') + call <SID>Tex_DimMenus('Dynamic', 'intextsep') + call <SID>Tex_DimMenus('Dynamic', 'itemsep') + call <SID>Tex_DimMenus('Dynamic', 'parsep') + call <SID>Tex_DimMenus('Dynamic', 'parskip') + call <SID>Tex_DimMenus('Dynamic', 'partopsep') + call <SID>Tex_DimMenus('Dynamic', 'textfloatsep') + call <SID>Tex_DimMenus('Dynamic', 'topsep') + call <SID>Tex_DimMenus('Dynamic', 'topskip') + " }}} + " {{{ Change + call <SID>Tex_DimMenus('Change', 'setlength') + call <SID>Tex_DimMenus('Change', 'addtolength') + call <SID>Tex_DimMenus('Change', 'settoheight') + call <SID>Tex_DimMenus('Change', 'settowidth') + call <SID>Tex_DimMenus('Change', 'settolength') + " }}} +endif + +" ============================================================================== +" Counters +" ============================================================================== +if g:Tex_Menus + " Counters {{{ + call <SID>Tex_CounterMenus('Counters', 'bottomnumber') + call <SID>Tex_CounterMenus('Counters', 'chapter') + call <SID>Tex_CounterMenus('Counters', 'dbltopnumber') + call <SID>Tex_CounterMenus('Counters', 'enumi') + call <SID>Tex_CounterMenus('Counters', 'enumii') + call <SID>Tex_CounterMenus('Counters', 'enumiii') + call <SID>Tex_CounterMenus('Counters', 'enumiv') + call <SID>Tex_CounterMenus('Counters', 'equation') + call <SID>Tex_CounterMenus('Counters', 'figure') + call <SID>Tex_CounterMenus('Counters', 'footnote') + call <SID>Tex_CounterMenus('Counters', 'mpfootnote') + call <SID>Tex_CounterMenus('Counters', 'page') + call <SID>Tex_CounterMenus('Counters', 'paragraph') + call <SID>Tex_CounterMenus('Counters', 'part') + call <SID>Tex_CounterMenus('Counters', 'secnumdepth') + call <SID>Tex_CounterMenus('Counters', 'section') + call <SID>Tex_CounterMenus('Counters', 'subparagraph') + call <SID>Tex_CounterMenus('Counters', 'subsection') + call <SID>Tex_CounterMenus('Counters', 'subsubsection') + call <SID>Tex_CounterMenus('Counters', 'table') + call <SID>Tex_CounterMenus('Counters', 'tocdepth') + call <SID>Tex_CounterMenus('Counters', 'topnumber') + call <SID>Tex_CounterMenus('Counters', 'totalnumber') + " }}} + " theCounters {{{ + call <SID>Tex_CounterMenus('theCounters', 'thebottomnumber') + call <SID>Tex_CounterMenus('theCounters', 'thechapter') + call <SID>Tex_CounterMenus('theCounters', 'thedbltopnumber') + call <SID>Tex_CounterMenus('theCounters', 'theenumi') + call <SID>Tex_CounterMenus('theCounters', 'theenumii') + call <SID>Tex_CounterMenus('theCounters', 'theenumiii') + call <SID>Tex_CounterMenus('theCounters', 'theenumiv') + call <SID>Tex_CounterMenus('theCounters', 'theequation') + call <SID>Tex_CounterMenus('theCounters', 'thefigure') + call <SID>Tex_CounterMenus('theCounters', 'thefootnote') + call <SID>Tex_CounterMenus('theCounters', 'thempfootnote') + call <SID>Tex_CounterMenus('theCounters', 'thepage') + call <SID>Tex_CounterMenus('theCounters', 'theparagraph') + call <SID>Tex_CounterMenus('theCounters', 'thepart') + call <SID>Tex_CounterMenus('theCounters', 'thesecnumdepth') + call <SID>Tex_CounterMenus('theCounters', 'thesection') + call <SID>Tex_CounterMenus('theCounters', 'thesubparagraph') + call <SID>Tex_CounterMenus('theCounters', 'thesubsection') + call <SID>Tex_CounterMenus('theCounters', 'thesubsubsection') + call <SID>Tex_CounterMenus('theCounters', 'thetable') + call <SID>Tex_CounterMenus('theCounters', 'thetocdepth') + call <SID>Tex_CounterMenus('theCounters', 'thetopnumber') + call <SID>Tex_CounterMenus('theCounters', 'thetotalnumber') + " }}} + " Type {{{ + call <SID>Tex_CounterMenus('Type', 'alph') + call <SID>Tex_CounterMenus('Type', 'Alph') + call <SID>Tex_CounterMenus('Type', 'arabic') + call <SID>Tex_CounterMenus('Type', 'roman') + call <SID>Tex_CounterMenus('Type', 'Roman') + " }}} +endif + +" ============================================================================== +" Various +" ============================================================================== +if g:Tex_Menus + " Various {{{ + call <SID>Tex_VariousMenus('ref{}' , '\ref{<++>}<++>') + call <SID>Tex_VariousMenus('pageref{}' , '\pageref{<++>}<++>') + call <SID>Tex_VariousMenus('label{}' , '\label{<++>}<++>') + call <SID>Tex_VariousMenus('footnote{}' , '\footnote{<++>}<++>') + call <SID>Tex_VariousMenus('footnotemark{}', '\footnotemark{<++>}<++>') + call <SID>Tex_VariousMenus('footnotemark{}', '\footnotetext{<++>}<++>') + call <SID>Tex_VariousMenus('cite{}' , '\cite{<++>}<++>') + call <SID>Tex_VariousMenus('nocite{}' , '\nocite{<++>}<++>') + " }}} +endif + +if g:Tex_CatchVisMapErrors + exe "vnoremap ".g:Tex_Leader." :\<C-u>call ExecMap('".g:Tex_Leader."', 'v')\<CR>" +endif +" this is for avoiding reinclusion of imaps from next time on. +let s:doneOnce = 1 + +" vim:fdm=marker:ff=unix:noet:ts=4:sw=4 diff --git a/.vim/ftplugin/latex-suite/envmacros.vim b/.vim/ftplugin/latex-suite/envmacros.vim new file mode 100644 index 0000000..2f41a27 --- /dev/null +++ b/.vim/ftplugin/latex-suite/envmacros.vim @@ -0,0 +1,1167 @@ +"============================================================================= +" File: envmacros.vim +" Author: Mikolaj Machowski +" Created: Tue Apr 23 08:00 PM 2002 PST +" CVS Header: $Id: envmacros.vim 997 2006-03-20 09:45:45Z srinathava $ +" Description: mappings/menus for environments. +"============================================================================= + +if !g:Tex_EnvironmentMaps && !g:Tex_EnvironmentMenus + finish +endif + +exe 'so '.expand('<sfile>:p:h').'/wizardfuncs.vim' + +nmap <silent> <script> <plug> i +imap <silent> <script> <C-o><plug> <Nop> + +" Define environments for IMAP evaluation " {{{ +let s:figure = "\\begin{figure}[<+htpb+>]\<cr>\\begin{center}\<cr>\\psfig{figure=<+eps file+>}\<cr>\\end{center}\<cr>\\caption{<+caption text+>}\<cr>\\label{fig:<+label+>}\<cr>\\end{figure}<++>" +let s:figure_graphicx = "\\begin{figure}[<+htpb+>]\<cr>\\begin{center}\<cr>\\includegraphics{<+file+>}\<cr>\\end{center}\<cr>\\caption{<+caption text+>}\<cr>\\label{fig:<+label+>}\<cr>\\end{figure}<++>" +let s:minipage = "\\begin{minipage}[<+tb+>]{<+width+>}\<cr><++>\<cr>\\end{minipage}<++>" +let s:picture = "\\begin{picture}(<+width+>, <+height+>)(<+xoff+>,<+yoff+>)\<cr>\\put(<+xoff+>,<+yoff+>){\\framebox(<++>,<++>){<++>}}\<cr>\\end{picture}<++>" +let s:list = "\\begin{list}{<+label+>}{<+spacing+>}\<cr>\\item <++>\<cr>\\end{list}<++>" +let s:table = "\\begin{table}\<cr>\\centering\<cr>\\begin{tabular}{<+dimensions+>}\<cr><++>\<cr>\\end{tabular}\<cr>\\caption{<+Caption text+>}\<cr>\\label{tab:<+label+>}\<cr>\\end{table}<++>" +let s:array = "\\left<++>\<cr>\\begin{array}{<+dimension+>}\<cr><+elements+>\<cr>\\end{array}\<cr>\\right<++>" +let s:description ="\\begin{description}\<cr>\\item[<+label+>]<++>\<cr>\\end{description}<++>" +let s:document = "\\documentclass[<+options+>]{<+class+>}\<cr>\<cr>\\begin{document}\<cr><++>\<cr>\\end{document}" +let s:tabular = "\\begin{tabular}[<+hbtp+>]{<+format+>}\<cr><++>\<cr>\\end{tabular}" +let s:tabular_star = "\\begin{tabular*}[<+hbtp+>]{<+format+>}\<cr><++>\<cr>\\end{tabular*}" +let s:frame = "\\begin{frame}{<+title>}\<cr><++>\<cr>\\end{frame}<++>" + +" }}} +" define environments with special behavior in line wise selection. {{{ +if !exists('s:vis_center_left') + let s:vis_center_left = '\centerline{' + let s:vis_center_right = '}' + + let s:vis_verbatim_left = '\verb\|' + let s:vis_verbatim_right = '\|' + + let s:vis_flushright_left = '{\raggedright ' + let s:vis_flushright_right = '}' + + let s:vis_fushleft_left = '{\raggedleft ' + let s:vis_fushleft_right = '}' + + let s:vis_lrbox_left = '\sbox{' + let s:vis_lrbox_right = '}' +endif +" }}} +" Tex_EnvMacros: sets up maps and menus for environments {{{ +" Description: +function! <SID>Tex_EnvMacros(lhs, submenu, name) + + let extra = '' + if a:submenu =~ 'Lists' + let extra = '\item ' + endif + + let vright = '' + let vleft = '' + if exists('s:vis_'.a:name.'_right') + let vright = s:vis_{a:name}_right + let vleft = s:vis_{a:name}_left + endif + let vrhs = "\<C-\\>\<C-N>:call VEnclose('".vleft."', '".vright."', '\\begin{".a:name."}', '\\end{".a:name."}')\<CR>" + let location = g:Tex_EnvMenuLocation.a:submenu.a:name.'<tab>' + + if a:lhs != '' + + let vlhs = g:Tex_Leader2.substitute(tolower(a:lhs), '^.', '', '') + let location = location.a:lhs.'\ ('.vlhs.')' + + if g:Tex_EnvironmentMaps && !exists('s:doneOnce') + call IMAP(a:lhs, "\<C-r>=Tex_PutEnvironment('".a:name."')\<CR>", 'tex') + exec 'vnoremap <silent> '.vlhs.' '.vrhs + endif + + endif + + if g:Tex_Menus && g:Tex_EnvironmentMenus && has("gui_running") + exe 'amenu '.location.' <plug><C-r>=Tex_DoEnvironment("'.a:name.'")<CR>' + exe 'vmenu '.location.' '.vrhs + endif + +endfunction + +" }}} +" Tex_SpecialMacros: macros with special right hand sides {{{ +" Description: +function! <SID>Tex_SpecialMacros(lhs, submenu, name, irhs, ...) + + let wiz = 1 + if a:0 > 0 && a:1 == 0 + let wiz = 0 + endif + + let location = g:Tex_EnvMenuLocation.a:submenu.a:name + + let vright = '' + let vleft = '' + if exists('s:vis_'.a:name.'_right') + let vright = s:vis_{a:name}_right + let vleft = s:vis_{a:name}_left + endif + let vrhs = "\<C-\\>\<C-N>:call VEnclose('".vleft."', '".vright."', '\\begin{".a:name."}', '\\end{".a:name."}')\<CR>" + + if a:lhs != '' + + let vlhs = g:Tex_Leader2.substitute(tolower(a:lhs), '^.', '', '') + let location = location.'<tab>'.a:lhs.'\ ('.vlhs.')' + + if g:Tex_EnvironmentMaps && !exists('s:doneOnce') + call IMAP(a:lhs, a:irhs, 'tex') + exec 'vnoremap '.vlhs.' '.vrhs + endif + + endif + + if g:Tex_Menus && g:Tex_EnvironmentMenus + if wiz + exe 'amenu '.location.' <plug><C-r>=Tex_DoEnvironment("'.a:name.'")<CR>' + else + exe 'amenu '.location." <plug><C-r>=IMAP_PutTextWithMovement('".a:irhs."')<CR>" + endif + exe 'vmenu '.location.' '.vrhs + endif + +endfunction " }}} +" Tex_SectionMacros: creates section maps and menus {{{ +" Description: +function! <SID>Tex_SectionMacros(lhs, name) + + let vlhs = g:Tex_Leader2.substitute(tolower(a:lhs), '^.', '', '') + let vrhs = "\<C-\\>\<C-N>:call VEnclose('\\".a:name."{', '}', '', '')<CR>" + + if g:Tex_SectionMaps && !exists('s:doneOnce') + exe 'vnoremap '.vlhs.' '.vrhs + call IMAP (a:lhs, "\\".a:name.'{<++>}<++>', 'tex') + endif + + if g:Tex_Menus && g:Tex_SectionMenus + let location = g:Tex_EnvMenuLocation.'Sections.'.a:name.'<tab>'.a:lhs.'\ ('.vlhs.')' + let advlocation = g:Tex_EnvMenuLocation.'Sections.Advanced.'.a:name + + let irhs = "\<C-r>=IMAP_PutTextWithMovement('\\".a:name."{<++>}<++>')\<CR>" + + let advirhs = "\<C-r>=Tex_InsSecAdv('".a:name."')\<CR>" + let advvrhs = "\<C-\\>\<C-N>:call Tex_VisSecAdv('".a:name."')\<CR>" + + exe 'amenu '.advlocation.' <plug>'.advirhs + exe 'vnoremenu '.advlocation." ".advvrhs + + exe 'amenu '.location.' <plug>'.irhs + exe 'vnoremenu '.location." ".vrhs + endif +endfunction " }}} + +" NewEnvironments {{{ +call s:Tex_SpecialMacros('', '', 'newenvironment', '\newenvironment{<++>}[<++>][<++>]{<++>}{<++>}<++>', 0) +call s:Tex_SpecialMacros('', '', 'newenvironment*', '\newenvironment*{<++>}[<++>][<++>]{<++>}{<++>}<++>', 0) +call s:Tex_SpecialMacros('', '', 'renewenvironment', '\renewenvironment{<++>}[<++>][<++>]{<++>}{<++>}<++>', 0) +call s:Tex_SpecialMacros('', '', 'renewenvironment*', '\renewenvironment*{<++>}[<++>][<++>]{<++>}{<++>}<++>', 0) +call s:Tex_SpecialMacros('', '', '-sepenv0-', ' :', 0) +" }}} +" Environments specific commands {{{ +call s:Tex_SpecialMacros('', 'Env&Commands.&Lists.', '&item', '\item', 0) +call s:Tex_SpecialMacros('', 'Env&Commands.&Lists.', 'i&tem[]', '\item[<++>]<++>', 0) +call s:Tex_SpecialMacros('', 'Env&Commands.&Lists.', '&bibitem{}', '\bibitem{<++>}<++>', 0) +call s:Tex_SpecialMacros('', 'Env&Commands.&Tabbing.', '\\&=', '\=', 0) +call s:Tex_SpecialMacros('', 'Env&Commands.&Tabbing.', '\\&>', '\>', 0) +call s:Tex_SpecialMacros('', 'Env&Commands.&Tabbing.', '&\\\\', '\\', 0) +call s:Tex_SpecialMacros('', 'Env&Commands.&Tabbing.', '\\&+', '\+', 0) +call s:Tex_SpecialMacros('', 'Env&Commands.&Tabbing.', '\\&-', '\-', 0) +call s:Tex_SpecialMacros('', 'Env&Commands.&Tabbing.', "\\\'", "\\\'", 0) +call s:Tex_SpecialMacros('', 'Env&Commands.&Tabbing.', '\\&`', '\`', 0) +call s:Tex_SpecialMacros('', 'Env&Commands.&Tabbing.', '\\&kill', '\kill', 0) +call s:Tex_SpecialMacros('', 'Env&Commands.&Tabbing.', '&makron\ \\CHAR=', '\<++>=<++>', 0) +call s:Tex_SpecialMacros('', 'Env&Commands.&Tabbing.', "&aigu\ \\CHAR\'", "\\<++>\'<++>", 0) +call s:Tex_SpecialMacros('', 'Env&Commands.&Tabbing.', '&grave\ \\CHAR`', '\<++>`<++>', 0) +call s:Tex_SpecialMacros('', 'Env&Commands.&Tabbing.', 'p&ushtabs', '\pushtabs', 0) +call s:Tex_SpecialMacros('', 'Env&Commands.&Tabbing.', 'p&optabs', '\poptabs', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.&Tabular.', '&hline', '\hline', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.&Tabular.', '&cline', '\cline', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.&Tabular.', '&\&', '&', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.&Tabular.', '&\\\\', '\\', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.&Tabular.', '&multicolumn{}{}{}', '\multicolumn{<++>}{<++>}{<++>}<++>', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.Le&tter.', '&makelabels', '\makelabels', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.Le&tter.', '&address', '\address', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.Le&tter.', '&signature', '\signature', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.Le&tter.', '&date', '\date', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.Le&tter.', '-sepenva4-', ' :', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.Le&tter.', '&opening{}', '\opening{<++>}<++>', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.Le&tter.', '&closing{}', '\closing{<++>}<++>', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.Le&tter.', '&ps{}', '\ps{<++>}<++>', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.Le&tter.', 'cc&{}', '\cc{<++>}<++>', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.&Slides.', '&onlyslides{}', '\onlyslides{<++>}<++>', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.&Slides.', '&onlynotes{}', '\onlynotes{<++>}<++>', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.&Slides.', '-sepenva5-', ' :', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.&Slides.', '&invisible', '\invisible', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.&Slides.', '&visible', '\visible', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.&Slides.', '&settime', '\settime', 0) +call s:Tex_SpecialMacros('', 'EnvCommands.&Slides.', '&addtime', '\addtime', 0) +call s:Tex_SpecialMacros('', '', '-sepenv0-', ' :', 0) +" }}} +" Lists {{{ +call s:Tex_SpecialMacros('ELI', '&Lists.', 'list', s:list) +call s:Tex_SpecialMacros('EDE', '&Lists.', 'description', s:description) +call s:Tex_EnvMacros('EEN', '&Lists.', 'enumerate') +call s:Tex_EnvMacros('EIT', '&Lists.', 'itemize') +call s:Tex_EnvMacros('ETI', '&Lists.', 'theindex') +call s:Tex_EnvMacros('ETL', '&Lists.', 'trivlist') +" }}} +" Tables {{{ +call s:Tex_SpecialMacros('ETE', '&Tables.', 'table', s:table) +call s:Tex_EnvMacros('ETG', '&Tables.', 'tabbing') +call s:Tex_EnvMacros('', '&Tables.', 'table*') +call s:Tex_EnvMacros('', '&Tables.', 'table2') +call s:Tex_SpecialMacros('ETR', '&Tables.', 'tabular', s:tabular) +call s:Tex_SpecialMacros('', '&Tables.', 'tabular*', s:tabular_star) +" }}} +" Math {{{ +call s:Tex_EnvMacros('EAR', '&Math.', 'array') +call s:Tex_EnvMacros('EDM', '&Math.', 'displaymath') +call s:Tex_EnvMacros('EEA', '&Math.', 'eqnarray') +call s:Tex_EnvMacros('', '&Math.', 'eqnarray*') +call s:Tex_EnvMacros('EEQ', '&Math.', 'equation') +call s:Tex_EnvMacros('EMA', '&Math.', 'math') +" }}} +" Structure {{{ +call s:Tex_SpecialMacros('EAR', 'Math.', 'array', s:array) +call s:Tex_EnvMacros('EAB', '&Structure.', 'abstract') +call s:Tex_EnvMacros('EAP', '&Structure.', 'appendix') +call s:Tex_EnvMacros('ECE', '&Structure.', 'center') +call s:Tex_EnvMacros('EDO', '&Structure.', 'document') +call s:Tex_EnvMacros('EFC', '&Structure.', 'filecontents') +call s:Tex_EnvMacros('', '&Structure.', 'filecontents*') +call s:Tex_EnvMacros('EFL', '&Structure.', 'flushleft') +call s:Tex_EnvMacros('EFR', '&Structure.', 'flushright') +call s:Tex_EnvMacros('EQN', '&Structure.', 'quotation') +call s:Tex_EnvMacros('EQE', '&Structure.', 'quote') +call s:Tex_EnvMacros('ESB', '&Structure.', 'sloppybar') +call s:Tex_EnvMacros('ETI', '&Structure.', 'theindex') +call s:Tex_EnvMacros('ETP', '&Structure.', 'titlepage') +call s:Tex_EnvMacros('EVM', '&Structure.', 'verbatim') +call s:Tex_EnvMacros('', '&Structure.', 'verbatim*') +call s:Tex_EnvMacros('EVE', '&Structure.', 'verse') +call s:Tex_EnvMacros('ETB', '&Structure.', 'thebibliography') +call s:Tex_SpecialMacros('', '&Structure.', '-sepstruct0-', ':', 0) +call s:Tex_EnvMacros('ENO', '&Structure.', 'note') +call s:Tex_EnvMacros('EOV', '&Structure.', 'overlay') +call s:Tex_EnvMacros('ESL', '&Structure.', 'slide') +" }}} +" Sections {{{ +call s:Tex_SectionMacros('SPA', 'part') +call s:Tex_SectionMacros('SCH', 'chapter') +call s:Tex_SectionMacros('SSE', 'section') +call s:Tex_SectionMacros('SSS', 'subsection') +call s:Tex_SectionMacros('SS2', 'subsubsection') +call s:Tex_SectionMacros('SPG', 'paragraph') +call s:Tex_SectionMacros('SSP', 'subparagraph') +" }}} +" Miscellaneous {{{ +call s:Tex_SpecialMacros('', '', '-sepenv1-', ' :', 0) +call s:Tex_SpecialMacros('EFI', '', 'figure', "\<C-r>=Tex_PutEnvironment('figure')\<CR>") +call s:Tex_EnvMacros('', '', 'figure*') +call s:Tex_EnvMacros('ELR', '', 'lrbox') +call s:Tex_SpecialMacros('EMP', '', 'minipage', s:minipage) +call s:Tex_SpecialMacros('EPI', '', 'picture', s:picture) +" }}} + +if g:Tex_CatchVisMapErrors + exe 'vnoremap '.g:Tex_Leader2." :\<C-u>call ExecMap('".g:Tex_Leader2."', 'v')\<CR>" +endif + +" ============================================================================== +" Specialized functions for various environments +" +" All these functions are to be used as: +" +" inoremap <lhs> <C-r>=Tex_itemize('enumerate')<CR> +" nnoremap <lhs> i<C-r>=Tex_itemize('enumerate')<CR> +" +" and so on... +" ============================================================================== +" Tex_itemize: {{{ +function! Tex_itemize(env) + return IMAP_PutTextWithMovement('\begin{'.a:env."}\<cr>\\item <++>\<cr>\\end{".a:env."}<++>") +endfunction +" }}} +" Tex_description: {{{ +function! Tex_description(env) + if g:Tex_UseMenuWizard == 1 + let itlabel = input('(Optional) Item label? ') + if itlabel != '' + let itlabel = '['.itlabel.']' + endif + return IMAP_PutTextWithMovement("\\begin{description}\<cr>\\item".itlabel." <++>\<cr>\\end{description}<++>") + else + return IMAP_PutTextWithMovement(s:description) + endif +endfunction +" }}} +" Tex_figure: {{{ +function! Tex_figure(env) + if g:Tex_UseMenuWizard == 1 + let flto = input('Float to (htbp)? ') + let caption = input('Caption? ') + let center = input('Center ([y]/n)? ') + let label = input('Label (for use with \ref)? ') + " additional to AUC Tex since my pics are usually external files + let pic = input('Name of Pic-File? ') + if flto != '' + let flto = '['.flto."]\<cr>" + else + let flto = "\<cr>" + endif + if pic != '' + let pic = '\input{'.pic."}\<cr>" + else + let pic = "<++>\<cr>" + endif + if caption != '' + let caption = '\caption{'.caption."}\<cr>" + endif + if label != '' + let label = '\label{fig:'.label."}\<cr>" + endif + if center == 'y' + let centr = '\begin{center}' . "\<cr>" + let centr = centr . pic + let centr = centr . caption + let centr = centr . label + let centr = centr . '\end{center}' . "\<cr>" + else + let centr = pic + let centr = centr . caption + let centr = centr . label + endif + let figure = '\begin{'.a:env.'}'.flto + let figure = figure . centr + let figure = figure . '\end{'.a:env.'}' + return IMAP_PutTextWithMovement(figure) + else + if g:Tex_package_detected =~ '\<graphicx\>' + return IMAP_PutTextWithMovement(s:figure_graphicx) + else + return IMAP_PutTextWithMovement(s:figure) + endif + endif +endfunction +" }}} +" Tex_table: {{{ +function! Tex_table(env) + if g:Tex_UseMenuWizard == 1 + let flto = input('Float to (htbp)? ') + let caption = input('Caption? ') + let center = input('Center (y/n)? ') + let label = input('Label? ') + if flto != '' + let flto ='['.flto."]\<cr>" + else + let flto = '' + endif + let ret='\begin{table}'.flto + if center == 'y' + let ret=ret."\\begin{center}\<cr>" + endif + let foo = '\begin{tabular}' + let pos = input('(Optional) Position (t b)? ') + if pos != '' + let foo = foo.'['.pos.']' + else + let foo = foo."\<cr>" + endif + let format = input("Format ( l r c p{width} | @{text} )? ") + if format == '' + let format = '<++>' + endif + let ret = ret.foo.'{'.format."}\<cr><++>\<cr>\\end{tabular}<++>\<cr>" + if center == 'y' + let ret=ret."\\end{center}\<cr>" + endif + if caption != '' + let ret=ret.'\caption{'.caption."}\<cr>" + endif + if label != '' + let ret=ret.'\label{tab:'.label."}\<cr>" + endif + let ret=ret.'\end{table}<++>' + return IMAP_PutTextWithMovement(ret) + else + return IMAP_PutTextWithMovement(s:table) + endif +endfunction +" }}} +" Tex_tabular: {{{ +function! Tex_tabular(env) + if g:Tex_UseMenuWizard == 1 + let pos = input('(Optional) Position (t b)? ') + let format = input("Format ( l r c p{width} | @{text} )? ") + if pos != '' + let pos = '['.pos.']' + endif + if format != '' + let format = '{'.format.'}' + endif + return IMAP_PutTextWithMovement('\begin{'.a:env.'}'.pos.format."\<cr> \<cr>\\end{".a:env.'}<++>') + else + return IMAP_PutTextWithMovement('\begin{'.a:env.'}[<+position+>]{<+format+>}'."\<cr><++>\<cr>\\end{".a:env.'}<++>') + endif +endfunction +" }}} +" Tex_eqnarray: {{{ +function! Tex_eqnarray(env) + if g:Tex_UseMenuWizard == 1 + if a:env !~ '\*' + let label = input('Label? ') + if label != '' + let arrlabel = '\label{'.label."}\<cr>" + else + let arrlabel = '' + endif + else + let arrlabel = '' + endif + else + if a:env !~ '\*' + let arrlabel = "\\label{<++>}\<cr>" + else + let arrlabel = "" + endif + endif + return IMAP_PutTextWithMovement('\begin{'.a:env."}\<cr><++>\<cr>".arrlabel."\\end{".a:env."}<++>") +endfunction +" }}} +" Tex_list: {{{ +function! Tex_list(env) + if g:Tex_UseMenuWizard == 1 + let label = input('Label (for \item)? ') + if label != '' + let label = '{'.label.'}' + let addcmd = input('Additional commands? ') + if addcmd != '' + let label = label . '{'.addcmd.'}' + endif + else + let label = '' + endif + return IMAP_PutTextWithMovement('\begin{list}'.label."\<cr>\\item \<cr>\\end{list}<++>") + else + return IMAP_PutTextWithMovement(s:list) + endif +endfunction +" }}} +" Tex_document: {{{ +function! Tex_document(env) + if g:Tex_UseMenuWizard == 1 + let dstyle = input('Document style? ') + let opts = input('(Optional) Options? ') + let foo = '\documentclass' + if opts == '' + let foo = foo.'{'.dstyle.'}' + else + let foo = foo.'['.opts.']'.'{'.dstyle.'}' + endif + return IMAP_PutTextWithMovement(foo."\<cr>\<cr>\\begin{document}\<cr><++>\<cr>\\end{document}") + else + return IMAP_PutTextWithMovement(s:document) + endif +endfunction +" }}} +" Tex_minipage: {{{ +function! Tex_minipage(env) + if g:Tex_UseMenuWizard == 1 + let foo = '\begin{minipage}' + let pos = input('(Optional) Position (t b)? ') + let width = input('Width? ') + if pos == '' + let foo = foo.'{'.width.'}' + else + let foo = foo.'['.pos.']{'.width.'}' + endif + return IMAP_PutTextWithMovement(foo."\<cr><++>\<cr>\\end{minipage}<++>") + else + return IMAP_PutTextWithMovement(s:minipage) + endif +endfunction +" }}} +" Tex_thebibliography: {{{ +function! Tex_thebibliography(env) + if g:Tex_UseMenuWizard == 1 + " AUC Tex: "Label for BibItem: 99" + let indent = input('Indent for BibItem? ') + let foo = '{'.indent.'}' + let biblabel = input('(Optional) Bibitem label? ') + let key = input('Add key? ') + let bar = '\bibitem' + if biblabel != '' + let bar = bar.'['.biblabel.']' + endif + let bar = bar.'{'.key.'}' + return IMAP_PutTextWithMovement('\begin{thebibliography}'.foo."\<cr>".bar." \<cr>\\end{thebibliography}<++>\<Up>") + else + return IMAP_PutTextWithMovement( + \ "\\begin{thebibliography}\<CR>". + \ "\\item[<+biblabel+>]{<+bibkey+>} <++>\<CR>". + \ "<++>\<CR>". + \ "\\end{thebibliography}<++>") + endif +endfunction +" }}} + +" ============================================================================== +" Contributions / suggestions from Carl Mueller (auctex.vim) +" ============================================================================== +" PromptForEnvironment: prompts for an environment {{{ +" Description: +function! PromptForEnvironment(ask) + return Tex_ChooseFromPrompt( + \ a:ask."\n" . + \ Tex_CreatePrompt(g:Tex_PromptedEnvironments, 2, ",") . + \ "\nEnter nae or number of environment :", + \ g:Tex_PromptedEnvironments, ",") +endfunction " }}} +" Tex_DoEnvironment: fast insertion of environments {{{ +" Description: +" The menus call this function with an argument (the name of the environment +" to insert). The maps call this without any arguments. In this case, it +" prompts for an environment to enter if the current line is empty. If +" called without arguments and there is a word on the current line, then use +" that as the name of a new environment. +function! Tex_DoEnvironment(...) + if a:0 < 1 + let env = matchstr(getline('.'), '^\s*\zs\w*\*\=\ze\s*$') + " If in current line is more than one word or in visual mode + " ignore contents of line and prompt for environment + if env == '' || (exists('s:isvisual') && s:isvisual == 'yes') + let env = PromptForEnvironment('Choose which environment to insert: ') + if env != '' + return Tex_PutEnvironment(env) + else + return '' + endif + else + " delete the word on the line into the blackhole register. + normal! 0"_D + return Tex_PutEnvironment(env) + endif + else + return Tex_PutEnvironment(a:1) + endif +endfunction " }}} +" Tex_PutEnvironment: calls various specialized functions {{{ +" Description: +" Based on input argument, it calls various specialized functions. +function! Tex_PutEnvironment(env) + if exists("s:isvisual") && s:isvisual == "yes" + let s:isvisual = 'no' + if a:env == '\[' + return VEnclose('', '', '\[', '\]') + elseif a:env == '$$' + return VEnclose('', '', '$$', '$$') + endif + return VEnclose('\begin{'.a:env.'}', '\end{'.a:env.'}', '\begin{'.a:env.'}', '\end{'.a:env.'}') + else + " The user can define something like + " let g:Tex_Env_theorem = "\\begin{theorem}\<CR><++>\<CR>\\end{theorem}" + " This will effectively over-write the default definition of the + " theorem environment which uses a \label. + if exists("b:Tex_Env_{'".a:env."'}") + return IMAP_PutTextWithMovement(b:Tex_Env_{a:env}) + elseif exists("g:Tex_Env_{'".a:env."'}") + return IMAP_PutTextWithMovement(g:Tex_Env_{a:env}) + elseif a:env =~ 'equation*\|eqnarray*\|theorem\|lemma\|equation\|eqnarray\|align\*\|align\>\|multline' + let g:aa = a:env + return Tex_eqnarray(a:env) + elseif a:env =~ "enumerate\\|itemize\\|theindex\\|trivlist" + return Tex_itemize(a:env) + elseif a:env =~ "table\\|table*" + return Tex_table(a:env) + elseif a:env =~ "tabular\\|tabular*\\|array\\|array*" + return Tex_tabular(a:env) + elseif exists('*Tex_'.a:env) + exe 'return Tex_'.a:env.'(a:env)' + elseif a:env == '$$' + return IMAP_PutTextWithMovement('$$<++>$$') + elseif a:env == '\[' + return IMAP_PutTextWithMovement("\\[\<CR><++>\<CR>\\]<++>") + else + " Look in supported packages if exists template for environment + " given in the line + if exists('g:Tex_package_supported') && g:Tex_package_supported != '' + let i = 1 + while Tex_Strntok(g:Tex_package_supported, ',', i) != '' + let checkpack = Tex_Strntok(g:Tex_package_supported, ',', i) + if g:TeX_package_{checkpack} =~ 'e..:'.a:env + if a:env =~ '*' + " Don't allow * to be treated as wildcard + let aenv = substitute(a:env, '*', '\\*', '') + else + let aenv = a:env + endif + let envcommand = matchstr(g:TeX_package_{checkpack}, '\zse..:'.aenv.'[^,]\{-}\ze,') + return Tex_ProcessPackageCommand(envcommand) + endif + let i = i + 1 + endwhile + endif + " If nothing before us managed to create an environment, then just + " create a bare-bones environment from the name. + return IMAP_PutTextWithMovement('\begin{'.a:env."}\<cr><++>\<cr>\\end{".a:env."}<++>") + endif +endfunction " }}} +" Mapping the <F5> key to insert/prompt for an environment/package {{{ +" and <S-F5> to prompt/replace an environment +" +" g:Tex_PromptedEnvironments is a variable containing a comma seperated list +" of environments. This list defines the prompt which latex-suite sets up when +" the user presses <F5> on an empty line. +" +" Leaving this empty is equivalent to disabling the feature. +if g:Tex_PromptedEnvironments != '' + + let b:DoubleDollars = 0 + + " Provide only <plug>s here. main.vim will create the actual maps. + inoremap <silent> <Plug>Tex_FastEnvironmentInsert <C-r>=Tex_FastEnvironmentInsert("no")<cr> + nnoremap <silent> <Plug>Tex_FastEnvironmentInsert i<C-r>=Tex_FastEnvironmentInsert("no")<cr> + vnoremap <silent> <Plug>Tex_FastEnvironmentInsert <C-\><C-N>:call Tex_FastEnvironmentInsert("yes")<CR> + inoremap <silent> <Plug>Tex_FastEnvironmentChange <C-O>:call Tex_ChangeEnvironments()<CR> + nnoremap <silent> <Plug>Tex_FastEnvironmentChange :call Tex_ChangeEnvironments()<CR> + + " Tex_FastEnvironmentInsert: maps <F5> to prompt for env and insert it " {{{ + " Description: + " This function calculates whether we are in the preamble. If we are + " then inserts a \usepackage line by either reading in a word from the + " current line or prompting to type in one. If not in the preamble, then + " inserts a environment template either by reading in a word from the + " current line or prompting the user to choose one. + " + function! Tex_FastEnvironmentInsert(isvisual) + + let start_line = line('.') + let pos = line('.').' | normal! '.virtcol('.').'|' + let s:isvisual = a:isvisual + + " decide if we are in the preamble of the document. If we are then + " insert a package, otherwise insert an environment. + " + if search('\\documentclass', 'bW') && search('\\begin{document}') + + " If there is a \documentclass line and a \begin{document} line in + " the file, then a part of the file is the preamble. + + " search for where the document begins. + let begin_line = search('\\begin{document}') + " if the document begins after where we are presently, then we are + " in the preamble. + if start_line < begin_line + " return to our original location and insert a package + " statement. + exe pos + return Tex_package_from_line() + else + " we are after the preamble. insert an environment. + exe pos + return Tex_DoEnvironment() + endif + + elseif search('\\documentclass') + " if there is only a \documentclass but no \begin{document}, then + " the entire file is a preamble. Put a package. + + exe pos + return Tex_package_from_line() + + else + " no \documentclass, put an environment. + + exe pos + return Tex_DoEnvironment() + + endif + + endfunction + + " }}} + " Tex_package_from_line: puts a \usepackage line in the current line. " {{{ + " Description: + " + function! Tex_package_from_line() + " Function Tex_PutPackage is defined in packages.vim + " Ignores <F5> in Visual mode + if s:isvisual == "yes" + return 0 + else + let l = getline(".") + let pack = matchstr(l, '^\s*\zs.*') + normal! 0"_D + return Tex_pack_one(pack) + endif + endfunction + + " }}} + " Tex_ChangeEnvironments: calls Change() to change the environment {{{ + " Description: + " Finds out which environment the cursor is positioned in and changes + " that to the chosen new environment. This function knows the changes + " which need to be made to change one env to another and calls + " Change() with the info. + " + function! Tex_ChangeEnvironments() + + let env_line = searchpair('$$\|\\[\|begin{', '', '$$\|\\]\|end{', "bn") + + if env_line != 0 + if getline(env_line) !~ 'begin{' + let env_name = '[' + else + let env_name = matchstr(getline(env_line), 'begin{\zs.\{-}\ze}') + endif + endif + + if !exists('env_name') + echomsg "You are not inside environment" + return 0 + endif + + exe 'echomsg "You are within a '.env_name.' environment."' + let change_env = PromptForEnvironment('What do you want to change it to? ') + + if change_env == 'eqnarray' + call <SID>Change('eqnarray', 1, '', 1) + elseif change_env == 'eqnarray*' + call <SID>Change('eqnarray*', 0, '\\nonumber', 0) + elseif change_env == 'align' + call <SID>Change('align', 1, '', 1) + elseif change_env == 'align*' + call <SID>Change('align*', 0, '\\nonumber', 0) + elseif change_env == 'equation*' + call <SID>Change('equation*', 0, '&\|\\lefteqn{\|\\nonumber\|\\\\', 0) + elseif change_env == '' + return 0 + else + call <SID>Change(change_env, 0, '', '') + return 0 + endif + + endfunction + + " }}} + " Change: changes the current env to the new env {{{ + " Description: + " This function needs to know the changes which need to be made while + " going from an old environment to a new one. This info, it gets from + " Tex_ChangeEnvironments + " + " env : name of the new environment. + " label : if 1, then insert a \label at the end of the environment. + " otherwise, delete any \label line found. + " delete : a pattern which is to be deleted from the original environment. + " for example, going to a eqnarray* environment means we need to + " delete \label's. + " putInNonumber : whether we need to put a \nonumber before the end of the + " environment. + function! s:Change(env, label, delete, putInNonumber) + + let start_line = line('.') + let start_col = virtcol('.') + + if a:env == '[' + if b:DoubleDollars == 0 + let first = '\\[' + let second = '\\]' + else + let first = '$$' + let second = '$$' + endif + else + let first = '\\begin{' . a:env . '}' + let second = '\\end{' . a:env . '}' + endif + + if b:DoubleDollars == 0 + let bottom = searchpair('\\\[\|\\begin{','','\\\]\|\\end{','') + s/\\\]\|\\end{.\{-}}/\=second/ + let top = searchpair('\\\[\|\\begin{','','\\\]\|\\end{','b') + s/\\\[\|\\begin{.\{-}}/\=first/ + else + let bottom = search('\$\$\|\\end{') + s/\$\$\|\\end{.\{-}}/\=second/ + let top = search('\$\$\|\\begin{','b') + s/\$\$\|\\begin{.\{-}}/\=first/ + end + if a:delete != '' + exe 'silent '. top . "," . bottom . 's/' . a:delete . '//e' + endif + + if a:putInNonumber == 1 + exe top + call search('\\end\|\\\\') + if line('.') != bottom + exe '.+1,' . bottom . 's/\\\\/\\nonumber\\\\/e' + exe (bottom-1) . 's/\s*$/ \\nonumber/' + endif + endif + + if a:label == 1 + exe top + if search("\\label", "W") > bottom + exe top + let local_label = input('Label? ') + if local_label != '' + put = '\label{'.local_label.'}' + endif + normal $ + endif + else + exe 'silent '.top . ',' . bottom . ' g/\\label/delete' + endif + + if exists('local_label') && local_label != '' + exe start_line + 1.' | normal! '.start_col.'|' + else + exe start_line.' | normal! '.start_col.'|' + endif + endfunction " }}} + +endif + +" }}} +" Map <S-F1> through <S-F4> to insert environments {{{ +if g:Tex_HotKeyMappings != '' + + " SetUpHotKeys: maps <F1> through <F4> to insert environments + " Description: + function! <SID>SetUpHotKeys() + let i = 1 + let envname = Tex_Strntok(g:Tex_HotKeyMappings, ',', i) + while envname != '' + + exec 'inoremap <silent> <buffer> <S-F'.i.'> <C-r>=Tex_PutEnvironment("'.envname.'")<CR>' + + let i = i + 1 + let envname = Tex_Strntok(g:Tex_HotKeyMappings, ',', i) + + endwhile + + endfunction + +endif + +" }}} +" Tex_SetFastEnvironmentMaps: function for setting up the <F5> and <S-F1>-<S-F4> keys {{{ +" Description: This function is made public so it can be called by the +" SetTeXOptions() function in main.vim +function! Tex_SetFastEnvironmentMaps() + if g:Tex_PromptedEnvironments != '' + call Tex_MakeMap("<F5>", "<Plug>Tex_FastEnvironmentInsert", 'i', '<silent> <buffer>') + call Tex_MakeMap("<F5>", "<Plug>Tex_FastEnvironmentInsert", 'n', '<silent> <buffer>') + call Tex_MakeMap("<F5>", "<Plug>Tex_FastEnvironmentInsert", 'v', '<silent> <buffer>') + call Tex_MakeMap("<S-F5>", "<Plug>Tex_FastEnvironmentChange", 'i', '<silent> <buffer>') + call Tex_MakeMap("<S-F5>", "<Plug>Tex_FastEnvironmentChange", 'n', '<silent> <buffer>') + endif + if g:Tex_HotKeyMappings != '' + call s:SetUpHotKeys() + endif +endfunction " }}} + +" ============================================================================== +" Contributions / Tex_InsertItem() from Johannes Tanzler +" ============================================================================== +" Tex_GetCurrentEnv: gets the current environment in which the cursor lies {{{ +" Description: handles cases such as: +" +" \begin{itemize} +" \item first item +" \item second item +" \begin{description} +" \item first desc +" \item second +" % Tex_GetCurrentEnv will return "description" when called from here +" \end{description} +" \item third item +" % Tex_GetCurrentEnv will return "itemize" when called from here +" \end{itemize} +" % Tex_GetCurrentEnv will return "" when called from here +" +" Author: Alan Schmitt +function! Tex_GetCurrentEnv() + let pos = line('.').' | normal! '.virtcol('.').'|' + let i = 0 + while 1 + let env_line = search('^[^%]*\\\%(begin\|end\){', 'bW') + if env_line == 0 + " we reached the beginning of the file, so we return the empty string + exe pos + return '' + endif + if match(getline(env_line), '^[^%]*\\begin{') == -1 + " we found a \\end, so we keep searching + let i = i + 1 + continue + else + " we found a \\begin which has not been \\end'ed. we are done. + if i == 0 + let env = matchstr(getline(env_line), '\\begin{\zs.\{-}\ze}') + exe pos + return env + else + " this \\begin closes a \\end, continue searching. + let i = i - 1 + continue + endif + endif + endwhile +endfunction +" }}} +" Tex_InsertItem: insert \item into a list {{{ +" Description: Find last \begin line, extract env name, return to the start +" position and insert proper \item, depending on env name. +" Env names are stored in g: variables it can be used by +" package files. + +TexLet g:Tex_ItemStyle_itemize = '\item ' +TexLet g:Tex_ItemStyle_enumerate = '\item ' +TexLet g:Tex_ItemStyle_theindex = '\item ' +TexLet g:Tex_ItemStyle_thebibliography = '\item[<+biblabel+>]{<+bibkey+>} <++>' +TexLet g:Tex_ItemStyle_description = '\item[<+label+>] <++>' + +function! Tex_InsertItem() + " Get current enclosing environment + let env = Tex_GetCurrentEnv() + + if exists('g:Tex_ItemStyle_'.env) + return IMAP_PutTextWithMovement(g:Tex_ItemStyle_{env}) + else + return '' + endif +endfunction +" }}} +" Tex_SetItemMaps: sets the \item inserting maps for current buffer {{{ +" Description: + +inoremap <script> <silent> <Plug>Tex_InsertItemOnThisLine <Esc>a<C-r>=Tex_InsertItem()<CR> +inoremap <script> <silent> <Plug>Tex_InsertItemOnNextLine <ESC>o<C-R>=Tex_InsertItem()<CR> + +function! Tex_SetItemMaps() + if !hasmapto("<Plug>Tex_InsertItem", "i") + imap <buffer> <M-i> <Plug>Tex_InsertItemOnThisLine + endif + if !hasmapto("<Plug>Tex_InsertItemOnNextLine", "i") + imap <buffer> <C-CR> <Plug>Tex_InsertItemOnNextLine + endif +endfunction " }}} + +" ============================================================================== +" Implementation of Fast Environment commands for LaTeX commands +" ============================================================================== +" Define certain commonly used command definitions {{{ + +TexLet g:Tex_Com_{'newtheorem'} = '\newtheorem{<+name+>}{<+caption+>}[<+within+>]' +TexLet g:Tex_Com_{'frac'} = '\frac{<+n+>}{<+d+>}<++>' + +" }}} +" PromptForCommand: prompts for a command {{{ +" Description: +function! PromptForCommand(ask) + let common_com_prompt = + \ Tex_CreatePrompt(g:Tex_PromptedCommands, 2, ',') . "\n" . + \ "Enter number or command name :" + + let inp = input(a:ask."\n".common_com_prompt) + if inp =~ '^[0-9]\+$' + let com = Tex_Strntok(g:Tex_PromptedCommands, ',', inp) + else + let com = inp + endif + + return com +endfunction " }}} +" Tex_DoCommand: fast insertion of commands {{{ +" Description: +" +function! Tex_DoCommand(isvisual) + " If the current line is empty or if a visual selection has been made, + " prompt for a new environment. + if getline('.') == '' || a:isvisual == 'yes' + let com = PromptForCommand('Choose a command to insert: ') + if com != '' + return Tex_PutCommand(com, a:isvisual) + else + return '' + endif + else + " We want to find out the word under the cursor without issuing + " any movement commands. + let presline = getline('.') + let c = col('.') + + let wordbef = matchstr(strpart(presline, 0, c-1), '\k\+\*\?$') + let wordaft = matchstr(strpart(presline, c-1), '^\k\+\*\?') + + let word = wordbef . wordaft + call Tex_Debug("Tex_DoCommand: wordbef = [".wordbef."], wordaft = [".wordaft."], word = [".word."]", 'env') + + " We use \<Del> instead of \<Bs> because \<Bs> does not work + " unless bs=2 + if word != '' + return substitute(wordbef, '.', "\<Left>", 'g') + \ . substitute(word, '.', "\<Del>", 'g') + \ . Tex_PutCommand(word, a:isvisual) + else + let cmd = PromptForCommand('Choose a command to insert: ') + if cmd != '' + return Tex_PutCommand(cmd, a:isvisual) + else + return '' + endif + endif + endif +endfunction " }}} +" Tex_PutCommand: calls various specialized functions {{{ +" Description: +" Based on input argument, it calls various specialized functions. +function! Tex_PutCommand(com, isvisual) + if a:isvisual == "yes" + if a:com == '$' + return VEnclose('$', '$', '$', '$') + elseif a:com == '\\(' + return VEnclose('\\(', '\\)', '\\(', '\\)') + else + return VEnclose("\\".a:com.'{', '}', "\\".a:com.'{', '}') + endif + else + if exists('b:Tex_Com_{"'.a:com.'"}') + return IMAP_PutTextWithMovement(b:Tex_Com_{a:com}) + elseif exists('g:Tex_Com_{"'.a:com.'"}') + return IMAP_PutTextWithMovement(g:Tex_Com_{a:com}) + elseif a:com == '$' + return IMAP_PutTextWithMovement('$<++>$') + else + return IMAP_PutTextWithMovement("\\".a:com.'{<++>}<++>') + endif + endif +endfunction " }}} +" Mapping the <F7> key to prompt/insert for command {{{ +" and <S-F7> to prompt/replace command +" +" g:Tex_PromptedCommands is a variable containing a comma seperated list +" of commands. +" +" Leaving this empty is equivalent to disabling the feature. +if g:Tex_PromptedCommands != '' + + let b:DoubleDollars = 0 + + inoremap <silent> <Plug>Tex_FastCommandInsert <C-r>=Tex_DoCommand('no')<cr> + nnoremap <silent> <Plug>Tex_FastCommandInsert i<C-r>=Tex_DoCommand('no')<cr> + vnoremap <silent> <Plug>Tex_FastCommandInsert <C-\><C-N>:call Tex_DoCommand('yes')<CR> + + inoremap <silent> <Plug>Tex_FastCommandChange <C-O>:call Tex_ChangeCommand('no')<CR> + nnoremap <silent> <Plug>Tex_FastCommandChange :call Tex_ChangeCommand('no')<CR> + + " Tex_ChangeCommand: calls ChangeCommand() to change the environment {{{ + " Description: + " Finds out which environment the cursor is positioned in and changes + " that to the chosen new environment. This function knows the changes + " which need to be made to change one env to another and calls + " ChangeCommand() with the info. + " + function! Tex_ChangeCommand(isvisual) + + let pos_com = line('.').' | normal! '.virtcol('.').'|' + + let com_line = searchpair('\\\k\{-}{', '', '}', 'b') + + if com_line != 0 + normal l + let com_name = expand('<cword>') + endif + + if !exists('com_name') + echomsg "You are not inside command" + exe pos_com + return 0 + endif + + exe 'echomsg "You are within a '.com_name.' command."' + let change_com = PromptForCommand('Do you want to change it to (number or name)? ') + + if change_com == '' + exe pos_com + return 0 + else + call <SID>ChangeCommand(change_com) + exe pos_com + return 0 + endif + + endfunction + + " }}} + " ChangeCommand: Changes current command according to prompt menu {{{ + " Description: + " + function! s:ChangeCommand(newcom) + + exe 'normal! ct{'.a:newcom."\<Esc>" + + endfunction + " }}} + +endif + +" }}} +" Tex_SetFastCommandMaps: function for setting up the <F7> keys {{{ +" Description: This function is made public so it can be called by the +" SetTeXOptions() function in main.vim +function! Tex_SetFastCommandMaps() + if g:Tex_PromptedCommands != '' + if !hasmapto('<Plug>Tex_FastCommandInsert', 'i') + imap <silent> <buffer> <F7> <Plug>Tex_FastCommandInsert + endif + if !hasmapto('<Plug>Tex_FastCommandInsert', 'n') + nmap <silent> <buffer> <F7> <Plug>Tex_FastCommandInsert + endif + if !hasmapto('<Plug>Tex_FastCommandChange', 'i') + imap <silent> <buffer> <S-F7> <Plug>Tex_FastCommandChange + endif + if !hasmapto('<Plug>Tex_FastCommandChange', 'n') + nmap <silent> <buffer> <S-F7> <Plug>Tex_FastCommandChange + endif + if !hasmapto('<Plug>Tex_FastCommandInsert', 'v') + vmap <silent> <buffer> <F7> <Plug>Tex_FastCommandInsert + endif + endif +endfunction " }}} + +" SetEnvMacrosOptions: sets mappings for buffers {{{ +" " Description: +function! <SID>SetEnvMacrosOptions() + if exists('b:doneTexEnvMaps') + return + endif + let b:doneTexEnvMaps = 1 + if g:Tex_PromptedEnvironments != '' || g:Tex_HotKeyMappings != '' + call Tex_SetFastEnvironmentMaps() + endif + if g:Tex_PromptedCommands != '' + call Tex_SetFastCommandMaps() + endif + call Tex_SetItemMaps() +endfunction " }}} +" Catch the Filetype event so we set maps for each buffer {{{ +augroup LatexSuite + au LatexSuite User LatexSuiteFileType + \ call Tex_Debug('envmacros.vim: Catching LatexSuiteFileType event', 'env') | + \ call s:SetEnvMacrosOptions() +augroup END +" }}} + +" this statement has to be at the end. +let s:doneOnce = 1 + +" vim:fdm=marker:nowrap:noet:ff=unix diff --git a/.vim/ftplugin/latex-suite/folding.vim b/.vim/ftplugin/latex-suite/folding.vim new file mode 100644 index 0000000..dfaa450 --- /dev/null +++ b/.vim/ftplugin/latex-suite/folding.vim @@ -0,0 +1,393 @@ +"============================================================================= +" File: folding.vim +" Author: Srinath Avadhanula +" modifications/additions by Zhang Linbo +" CVS: $Id: folding.vim 997 2006-03-20 09:45:45Z srinathava $ +" Created: Tue Apr 23 05:00 PM 2002 PST +" +" Description: functions to interact with Syntaxfolds.vim +"============================================================================= + +nnoremap <unique> <Plug>Tex_RefreshFolds :call MakeTexFolds(1)<cr> + +augroup LatexSuite + au LatexSuite User LatexSuiteFileType + \ call Tex_Debug('folding.vim: catching LatexSuiteFileType', 'fold') | + \ call Tex_SetFoldOptions() +augroup END + +" Tex_SetFoldOptions: sets maps for every buffer {{{ +" Description: +function! Tex_SetFoldOptions() + if exists('b:doneSetFoldOptions') + return + endif + let b:doneSetFoldOptions = 1 + + setlocal foldtext=TexFoldTextFunction() + + if g:Tex_Folding && g:Tex_AutoFolding + call MakeTexFolds(0) + endif + + let s:ml = exists('g:mapleader') ? g:mapleader : "\\" + + call Tex_MakeMap(s:ml."rf", "<Plug>Tex_RefreshFolds", 'n', '<silent> <buffer>') + +endfunction " }}} +" Tex_FoldSections: creates section folds {{{ +" Author: Zhang Linbo +" Description: +" This function takes a comma seperated list of "sections" and creates fold +" definitions for them. The first item is supposed to be the "shallowest" field +" and the last is the "deepest". See g:Tex_FoldedSections for the default +" definition of the lst input argument. +" +" **works recursively** +function! Tex_FoldSections(lst, endpat) + let i = match(a:lst, ',') + if i > 0 + let s = strpart(a:lst, 0, i) + else + let s = a:lst + endif + if s =~ '%%fakesection' + let s = '^\s*' . s + else + let s = '^\s*\\' . s . '\W' + endif + let endpat = s . '\|' . a:endpat + if i > 0 + call Tex_FoldSections(strpart(a:lst,i+1), endpat) + endif + let endpat = '^\s*\\appendix\W\|' . endpat + call AddSyntaxFoldItem(s, endpat, 0, -1) +endfunction +" }}} +" MakeTexFolds: function to create fold items for latex. {{{ +" +" used in conjunction with MakeSyntaxFolds(). +" see ../plugin/syntaxFolds.vim for documentation +function! MakeTexFolds(force) + if exists('g:Tex_Folding') && !g:Tex_Folding + return + endif + if &ft != 'tex' + return + end + + " Setup folded items lists g:Tex_Foldedxxxx + " 1. Use default value if g:Tex_Foldedxxxxxx is not defined + " 2. prepend default value to g:Tex_Foldedxxxxxx if it starts with ',' + " 3. append default value to g:Tex_Foldedxxxxxx if it ends with ',' + + " Folding items which are not caught in any of the standard commands, + " environments or sections. + let s = 'item,slide,preamble,<<<' + if !exists('g:Tex_FoldedMisc') + let g:Tex_FoldedMisc = s + elseif g:Tex_FoldedMisc[0] == ',' + let g:Tex_FoldedMisc = s . g:Tex_FoldedMisc + elseif g:Tex_FoldedMisc =~ ',$' + let g:Tex_FoldedMisc = g:Tex_FoldedMisc . s + endif + + " By default do not fold any commands. It looks like trying to fold + " commands is a difficult problem since commands can be arbitrarily nested + " and the end patterns are not unique unlike the case of environments. + " For this to work well, we need a regexp which will match a line only if + " a command begins on that line but does not end on that line. This + " requires a regexp which will match unbalanced curly braces and that is + " apparently not doable with regexps. + let s = '' + if !exists('g:Tex_FoldedCommands') + let g:Tex_FoldedCommands = s + elseif g:Tex_FoldedCommands[0] == ',' + let g:Tex_FoldedCommands = s . g:Tex_FoldedCommands + elseif g:Tex_FoldedCommands =~ ',$' + let g:Tex_FoldedCommands = g:Tex_FoldedCommands . s + endif + + let s = 'verbatim,comment,eq,gather,align,figure,table,thebibliography,' + \. 'keywords,abstract,titlepage' + if !exists('g:Tex_FoldedEnvironments') + let g:Tex_FoldedEnvironments = s + elseif g:Tex_FoldedEnvironments[0] == ',' + let g:Tex_FoldedEnvironments = s . g:Tex_FoldedEnvironments + elseif g:Tex_FoldedEnvironments =~ ',$' + let g:Tex_FoldedEnvironments = g:Tex_FoldedEnvironments . s + endif + + if !exists('g:Tex_FoldedSections') + let g:Tex_FoldedSections = 'part,chapter,section,%%fakesection,' + \. 'subsection,subsubsection,paragraph' + endif + + " the order in which these calls are made decides the nestedness. in + " latex, a table environment will always be embedded in either an item or + " a section etc. not the other way around. so we first fold up all the + " tables. and then proceed with the other regions. + + let b:numFoldItems = 0 + + " ======================================================================== + " How to add new folding items {{{ + " ======================================================================== + " + " Each of the following function calls defines a syntax fold region. Each + " definition consists of a call to the AddSyntaxFoldItem() function. + " + " The order in which the folds are defined is important. Juggling the + " order of the function calls will create havoc with folding. The + " "deepest" folding item needs to be called first. For example, if + " the \begin{table} environment is a subset (or lies within) the \section + " environment, then add the definition for the \table first. + " + " The AddSyntaxFoldItem() function takes either 4 or 6 arguments. When it + " is called with 4 arguments, it is equivalent to calling it with 6 + " arguments with the last two left blank (i.e as empty strings) + " + " The explanation for each argument is as follows: + " startpat: a line matching this pattern defines the beginning of a fold. + " endpat : a line matching this pattern defines the end of a fold. + " startoff: this is the offset from the starting line at which folding will + " actually start + " endoff : like startoff, but gives the offset of the actual fold end from + " the line satisfying endpat. + " startoff and endoff are necessary when the folding region does + " not have a specific end pattern corresponding to a start + " pattern. for example in latex, + " \begin{section} + " defines the beginning of a section, but its not necessary to + " have a corresponding + " \end{section} + " the section is assumed to end 1 line _before_ another section + " starts. + " startskip: a pattern which defines the beginning of a "skipped" region. + " + " For example, suppose we define a \itemize fold as follows: + " startpat = '^\s*\\item', + " endpat = '^\s*\\item\|^\s*\\end{\(enumerate\|itemize\|description\)}', + " startoff = 0, + " endoff = -1 + " + " This defines a fold which starts with a line beginning with an + " \item and ending one line before a line beginning with an + " \item or \end{enumerate} etc. + " + " Then, as long as \item's are not nested things are fine. + " However, once items begin to nest, the fold started by one + " \item can end because of an \item in an \itemize + " environment within this \item. i.e, the following can happen: + " + " \begin{itemize} + " \item Some text <------- fold will start here + " This item will contain a nested item + " \begin{itemize} <----- fold will end here because next line contains \item... + " \item Hello + " \end{itemize} <----- ... instead of here. + " \item Next item of the parent itemize + " \end{itemize} + " + " Therefore, in order to completely define a folding item which + " allows nesting, we need to also define a "skip" pattern. + " startskip and end skip do that. + " Leave '' when there is no nesting. + " endskip: the pattern which defines the end of the "skip" pattern for + " nested folds. + " + " Example: + " 1. A syntax fold region for a latex section is + " startpat = "\\section{" + " endpat = "\\section{" + " startoff = 0 + " endoff = -1 + " startskip = '' + " endskip = '' + " Note that the start and end patterns are thus the same and endoff has a + " negative value to capture the effect of a section ending one line before + " the next starts. + " 2. A syntax fold region for the \itemize environment is: + " startpat = '^\s*\\item', + " endpat = '^\s*\\item\|^\s*\\end{\(enumerate\|itemize\|description\)}', + " startoff = 0, + " endoff = -1, + " startskip = '^\s*\\begin{\(enumerate\|itemize\|description\)}', + " endskip = '^\s*\\end{\(enumerate\|itemize\|description\)}' + " Note the use of startskip and endskip to allow nesting. + " + " + " }}} + " ======================================================================== + + " {{{ comment lines + if g:Tex_FoldedMisc =~ '\<comments\>' + call AddSyntaxFoldItem ( + \ '^%\([^%]\|[^f]\|[^a]\|[^k]\|[^e]\)', + \ '^[^%]', + \ 0, + \ -1 + \ ) + endif + " }}} + + " {{{ items + if g:Tex_FoldedMisc =~ '\<item\>' + call AddSyntaxFoldItem ( + \ '^\s*\\item', + \ '^\s*\\item\|^\s*\\end{\(enumerate\|itemize\|description\)}', + \ 0, + \ -1, + \ '^\s*\\begin{\(enumerate\|itemize\|description\)}', + \ '^\s*\\end{\(enumerate\|itemize\|description\)}' + \ ) + endif + " }}} + + " {{{ title + if g:Tex_FoldedMisc =~ '\<title\>' + call AddSyntaxFoldItem ( + \ '^\s*\\title\W', + \ '^\s*\\maketitle', + \ 0, + \ 0 + \ ) + endif + " }}} + + " Commands and Environments {{{ + " Fold the commands and environments in 2 passes. + let pass = 0 + while pass < 2 + if pass == 0 + let lst = g:Tex_FoldedCommands + else + let lst = g:Tex_FoldedEnvironments + endif + while lst != '' + let i = match(lst, ',') + if i > 0 + let s = strpart(lst, 0, i) + let lst = strpart(lst, i+1) + else + let s = lst + let lst = '' + endif + if s != '' + if pass == 0 + " NOTE: This pattern ensures that a command which is + " terminated on the same line will not start a fold. + " However, it will also refuse to fold certain commands + " which have not terminated. eg: + " \commandname{something \bf{text} and + " will _not_ start a fold. + " In other words, the pattern is safe, but not exact. + call AddSyntaxFoldItem('^\s*\\'.s.'{[^{}]*$','^[^}]*}',0,0) + else + call AddSyntaxFoldItem('^\s*\\begin{'.s,'^\s*\\end{'.s,0,0) + endif + endif + endwhile + let pass = pass + 1 + endwhile + " }}} + + " Sections {{{ + if g:Tex_FoldedSections != '' + call Tex_FoldSections(g:Tex_FoldedSections, + \ '^\s*\\frontmatter\|^\s*\\mainmatter\|^\s*\\backmatter\|' + \. '^\s*\\begin{thebibliography\|>>>\|^\s*\\endinput\|' + \. '^\s*\\begin{slide\|^\s*\\end{document') + endif + " }}} + + " {{{ slide + if g:Tex_FoldedMisc =~ '\<slide\>' + call AddSyntaxFoldItem ( + \ '^\s*\\begin{slide', + \ '^\s*\\appendix\W\|^\s*\\chapter\W\|^\s*\\end{slide\|^\s*\\end{document', + \ 0, + \ 0 + \ ) + endif + " }}} + + " {{{ preamble + if g:Tex_FoldedMisc =~ '\<preamble\>' + call AddSyntaxFoldItem ( + \ '^\s*\\document\(class\|style\).*{', + \ '^\s*\\begin{document}', + \ 0, + \ -1 + \ ) + endif + " }}} + + " Manually folded regions {{{ + if g:Tex_FoldedMisc =~ '\(^\|,\)<<<\(,\|$\)' + call AddSyntaxFoldItem ( + \ '<<<', + \ '>>>', + \ 0, + \ 0 + \ ) + endif + " }}} + + call MakeSyntaxFolds(a:force) + normal! zv +endfunction + +" }}} +" TexFoldTextFunction: create fold text for folds {{{ +function! TexFoldTextFunction() + let leadingSpace = matchstr(' ', ' \{,'.indent(v:foldstart).'}') + if getline(v:foldstart) =~ '^\s*\\begin{' + let header = matchstr(getline(v:foldstart), + \ '^\s*\\begin{\zs\([:alpha:]*\)[^}]*\ze}') + let caption = '' + let label = '' + let i = v:foldstart + while i <= v:foldend + if getline(i) =~ '\\caption' + " distinguish between + " \caption{fulldesc} - fulldesc will be displayed + " \caption[shortdesc]{fulldesc} - shortdesc will be displayed + if getline(i) =~ '\\caption\[' + let caption = matchstr(getline(i), '\\caption\[\zs[^\]]*') + let caption = substitute(caption, '\zs\]{.*}[^}]*$', '', '') + else + let caption = matchstr(getline(i), '\\caption{\zs.*') + let caption = substitute(caption, '\zs}[^}]*$', '', '') + end + elseif getline(i) =~ '\\label' + let label = matchstr(getline(i), '\\label{\zs.*') + let label = substitute(label, '\zs}[^}]*$', '', '') + end + + let i = i + 1 + endwhile + + let ftxto = foldtext() + " if no caption found, then use the second line. + if caption == '' + let caption = getline(v:foldstart + 1) + end + + let retText = matchstr(ftxto, '^[^:]*').': '.header. + \ ' ('.label.') : '.caption + return leadingSpace.retText + + elseif getline(v:foldstart) =~ '^%' && getline(v:foldstart) !~ '^%%fake' + let ftxto = foldtext() + return leadingSpace.substitute(ftxto, ':', ': % ', '') + elseif getline(v:foldstart) =~ '^\s*\\document\(class\|style\).*{' + let ftxto = leadingSpace.foldtext() + return substitute(ftxto, ':', ': Preamble: ', '') + else + return leadingSpace.foldtext() + end +endfunction +" }}} + +" vim:fdm=marker:ff=unix:noet:ts=4:sw=4 diff --git a/.vim/ftplugin/latex-suite/macros/example b/.vim/ftplugin/latex-suite/macros/example new file mode 100644 index 0000000..395311f --- /dev/null +++ b/.vim/ftplugin/latex-suite/macros/example @@ -0,0 +1,11 @@ +% my long complicated macro. This is an example of how to set up a +% tex-macro for latex-suite. simply type in the lines as you would in +% latex. Place holders are allowed. +% NOTE: if you have filetype indentation turned on, then do not do +% formatting here. the indentation will follow automatically... +\begin{mycomplicatedenvironment} +\mycommand1{<++>} +\mycommand2{<+hint2+>} +\mycommand3{<++>} +\mycommand4{<++>} +\end{mycomplicatedenvironment}<++> diff --git a/.vim/ftplugin/latex-suite/main.vim b/.vim/ftplugin/latex-suite/main.vim new file mode 100644 index 0000000..063c6f6 --- /dev/null +++ b/.vim/ftplugin/latex-suite/main.vim @@ -0,0 +1,1024 @@ +" LaTeX filetype +" Language: LaTeX (ft=tex) +" Maintainer: Srinath Avadhanula +" CVS: $Id: main.vim 999 2006-03-21 05:32:37Z srinathava $ +" URL: + +" line continuation used here. +let s:save_cpo = &cpo +set cpo&vim + +" avoiding re-inclusion {{{ +" the avoiding re-inclusion statement is not provided here because the files +" which call this file should in the normal course of events handle the +" re-inclusion stuff. + +" we definitely dont want to run through the entire file each and every time. +" only once to define the functions. for successive latex files, just set up +" the folding and mappings and quit. +if exists('s:doneFunctionDefinitions') && !exists('b:forceRedoLocalTex') + call s:SetTeXOptions() + finish +endif + +let s:doneFunctionDefinitions = 1 + +" get the place where this plugin resides for setting cpt and dict options. +" these lines need to be outside the function. +let s:path = expand('<sfile>:p:h') +" set up personal defaults. +runtime ftplugin/tex/texrc +" set up global defaults. +exe "so ".s:path.'/texrc' + +" }}} + +nmap <silent> <script> <plug> i +imap <silent> <script> <C-o><plug> <Nop> + +" ============================================================================== +" mappings +" ============================================================================== +" {{{ +" calculate the mapleader character. +let s:ml = exists('g:mapleader') ? g:mapleader : '\' + +if !exists('s:doneMappings') + let s:doneMappings = 1 + " short forms for latex formatting and math elements. {{{ + " taken from auctex.vim or miktexmacros.vim + call IMAP ('__', '_{<++>}<++>', "tex") + call IMAP ('()', '(<++>)<++>', "tex") + call IMAP ('[]', '[<++>]<++>', "tex") + call IMAP ('{}', '{<++>}<++>', "tex") + call IMAP ('^^', '^{<++>}<++>', "tex") + call IMAP ('$$', '$<++>$<++>', "tex") + call IMAP ('==', '&=& ', "tex") + call IMAP ('~~', '&\approx& ', "tex") + call IMAP ('=~', '\approx', "tex") + call IMAP ('::', '\dots', "tex") + call IMAP ('((', '\left( <++> \right)<++>', "tex") + call IMAP ('[[', '\left[ <++> \right]<++>', "tex") + call IMAP ('{{', '\left\{ <++> \right\}<++>', "tex") + call IMAP (g:Tex_Leader.'^', '\hat{<++>}<++>', "tex") + call IMAP (g:Tex_Leader.'_', '\bar{<++>}<++>', "tex") + call IMAP (g:Tex_Leader.'6', '\partial', "tex") + call IMAP (g:Tex_Leader.'8', '\infty', "tex") + call IMAP (g:Tex_Leader.'/', '\frac{<++>}{<++>}<++>', "tex") + call IMAP (g:Tex_Leader.'%', '\frac{<++>}{<++>}<++>', "tex") + call IMAP (g:Tex_Leader.'@', '\circ', "tex") + call IMAP (g:Tex_Leader.'0', '^\circ', "tex") + call IMAP (g:Tex_Leader.'=', '\equiv', "tex") + call IMAP (g:Tex_Leader."\\",'\setminus', "tex") + call IMAP (g:Tex_Leader.'.', '\cdot', "tex") + call IMAP (g:Tex_Leader.'*', '\times', "tex") + call IMAP (g:Tex_Leader.'&', '\wedge', "tex") + call IMAP (g:Tex_Leader.'-', '\bigcap', "tex") + call IMAP (g:Tex_Leader.'+', '\bigcup', "tex") + call IMAP (g:Tex_Leader.'M', '\sum_{<++>}^{<++>}<++>', 'tex') + call IMAP (g:Tex_Leader.'S', '\sum_{<++>}^{<++>}<++>', 'tex') + call IMAP (g:Tex_Leader.'(', '\subset', "tex") + call IMAP (g:Tex_Leader.')', '\supset', "tex") + call IMAP (g:Tex_Leader.'<', '\le', "tex") + call IMAP (g:Tex_Leader.'>', '\ge', "tex") + call IMAP (g:Tex_Leader.',', '\nonumber', "tex") + call IMAP (g:Tex_Leader.'~', '\tilde{<++>}<++>', "tex") + call IMAP (g:Tex_Leader.';', '\dot{<++>}<++>', "tex") + call IMAP (g:Tex_Leader.':', '\ddot{<++>}<++>', "tex") + call IMAP (g:Tex_Leader.'2', '\sqrt{<++>}<++>', "tex") + call IMAP (g:Tex_Leader.'|', '\Big|', "tex") + call IMAP (g:Tex_Leader.'I', "\\int_{<++>}^{<++>}<++>", 'tex') + " }}} + " Greek Letters {{{ + call IMAP(g:Tex_Leader.'a', '\alpha', 'tex') + call IMAP(g:Tex_Leader.'b', '\beta', 'tex') + call IMAP(g:Tex_Leader.'c', '\chi', 'tex') + call IMAP(g:Tex_Leader.'d', '\delta', 'tex') + call IMAP(g:Tex_Leader.'e', '\varepsilon', 'tex') + call IMAP(g:Tex_Leader.'f', '\varphi', 'tex') + call IMAP(g:Tex_Leader.'g', '\gamma', 'tex') + call IMAP(g:Tex_Leader.'h', '\eta', 'tex') + call IMAP(g:Tex_Leader.'k', '\kappa', 'tex') + call IMAP(g:Tex_Leader.'l', '\lambda', 'tex') + call IMAP(g:Tex_Leader.'m', '\mu', 'tex') + call IMAP(g:Tex_Leader.'n', '\nu', 'tex') + call IMAP(g:Tex_Leader.'p', '\pi', 'tex') + call IMAP(g:Tex_Leader.'q', '\theta', 'tex') + call IMAP(g:Tex_Leader.'r', '\rho', 'tex') + call IMAP(g:Tex_Leader.'s', '\sigma', 'tex') + call IMAP(g:Tex_Leader.'t', '\tau', 'tex') + call IMAP(g:Tex_Leader.'u', '\upsilon', 'tex') + call IMAP(g:Tex_Leader.'v', '\varsigma', 'tex') + call IMAP(g:Tex_Leader.'w', '\omega', 'tex') + call IMAP(g:Tex_Leader.'w', '\wedge', 'tex') " AUCTEX style + call IMAP(g:Tex_Leader.'x', '\xi', 'tex') + call IMAP(g:Tex_Leader.'y', '\psi', 'tex') + call IMAP(g:Tex_Leader.'z', '\zeta', 'tex') + " not all capital greek letters exist in LaTeX! + " reference: http://www.giss.nasa.gov/latex/ltx-405.html + call IMAP(g:Tex_Leader.'D', '\Delta', 'tex') + call IMAP(g:Tex_Leader.'F', '\Phi', 'tex') + call IMAP(g:Tex_Leader.'G', '\Gamma', 'tex') + call IMAP(g:Tex_Leader.'Q', '\Theta', 'tex') + call IMAP(g:Tex_Leader.'L', '\Lambda', 'tex') + call IMAP(g:Tex_Leader.'X', '\Xi', 'tex') + call IMAP(g:Tex_Leader.'Y', '\Psi', 'tex') + call IMAP(g:Tex_Leader.'S', '\Sigma', 'tex') + call IMAP(g:Tex_Leader.'U', '\Upsilon', 'tex') + call IMAP(g:Tex_Leader.'W', '\Omega', 'tex') + " }}} + " ProtectLetters: sets up indentity maps for things like ``a {{{ + " " Description: If we simply do + " call IMAP('`a', '\alpha', 'tex') + " then we will never be able to type 'a' after a tex-quotation. Since + " IMAP() always uses the longest map ending in the letter, this problem + " can be avoided by creating a fake map for ``a -> ``a. + " This function sets up fake maps of the following forms: + " ``[aA] -> ``[aA] (for writing in quotations) + " \`[aA] -> \`[aA] (for writing diacritics) + " "`[aA] -> "`[aA] (for writing german quotations) + " It does this for all printable lower ascii characters just to make sure + " we dont let anything slip by. + function! s:ProtectLetters(first, last) + let i = a:first + while i <= a:last + if nr2char(i) =~ '[[:print:]]' + call IMAP('``'.nr2char(i), '``'.nr2char(i), 'tex') + call IMAP('\`'.nr2char(i), '\`'.nr2char(i), 'tex') + call IMAP('"`'.nr2char(i), '"`'.nr2char(i), 'tex') + endif + let i = i + 1 + endwhile + endfunction + call s:ProtectLetters(32, 127) + " }}} + " vmaps: enclose selected region in brackets, environments {{{ + " The action changes depending on whether the selection is character-wise + " or line wise. for example, selecting linewise and pressing \v will + " result in the region being enclosed in \begin{verbatim}, \end{verbatim}, + " whereas in characterise visual mode, the thingie is enclosed in \verb| + " and |. + exec 'vnoremap <silent> '.g:Tex_Leader."( \<C-\\>\<C-N>:call VEnclose('\\left( ', ' \\right)', '\\left(', '\\right)')\<CR>" + exec 'vnoremap <silent> '.g:Tex_Leader."[ \<C-\\>\<C-N>:call VEnclose('\\left[ ', ' \\right]', '\\left[', '\\right]')\<CR>" + exec 'vnoremap <silent> '.g:Tex_Leader."{ \<C-\\>\<C-N>:call VEnclose('\\left\\{ ', ' \\right\\}', '\\left\\{', '\\right\\}')\<CR>" + exec 'vnoremap <silent> '.g:Tex_Leader."$ \<C-\\>\<C-N>:call VEnclose('$', '$', '\\[', '\\]')\<CR>" + " }}} +end + +" }}} + +" ============================================================================== +" Helper functions for debugging +" ============================================================================== +" Tex_Debug: appends the argument into s:debugString {{{ +" Description: +" +" Do not want a memory leak! Set this to zero so that latex-suite always +" starts out in a non-debugging mode. +if !exists('g:Tex_Debug') + let g:Tex_Debug = 0 +endif +function! Tex_Debug(str, ...) + if !g:Tex_Debug + return + endif + if a:0 > 0 + let pattern = a:1 + else + let pattern = '' + endif + if !exists('s:debugString_'.pattern) + let s:debugString_{pattern} = '' + endif + let s:debugString_{pattern} = s:debugString_{pattern}.a:str."\n" + + let s:debugString_ = (exists('s:debugString_') ? s:debugString_ : '') + \ . pattern.' : '.a:str."\n" + + if Tex_GetVarValue('Tex_DebugLog') != '' + exec 'redir! >> '.Tex_GetVarValue('Tex_DebugLog') + silent! echo pattern.' : '.a:str + redir END + endif +endfunction " }}} +" Tex_PrintDebug: prings s:debugString {{{ +" Description: +" +function! Tex_PrintDebug(...) + if a:0 > 0 + let pattern = a:1 + else + let pattern = '' + endif + if exists('s:debugString_'.pattern) + echo s:debugString_{pattern} + endif +endfunction " }}} +" Tex_ClearDebug: clears the s:debugString string {{{ +" Description: +" +function! Tex_ClearDebug(...) + if a:0 > 0 + let pattern = a:1 + else + let pattern = '' + endif + if exists('s:debugString_'.pattern) + let s:debugString_{pattern} = '' + endif +endfunction " }}} +" Tex_ShowVariableValue: debugging help {{{ +" provides a way to examine script local variables from outside the script. +" very handy for debugging. +function! Tex_ShowVariableValue(...) + let i = 1 + while i <= a:0 + exe 'let arg = a:'.i + if exists('s:'.arg) || + \ exists('*s:'.arg) + exe 'let val = s:'.arg + echomsg 's:'.arg.' = '.val + end + let i = i + 1 + endwhile +endfunction + +" }}} + +" ============================================================================== +" Helper functions for grepping +" ============================================================================== +" Tex_Grep: shorthand for :grep or :vimgrep {{{ +function! Tex_Grep(string, where) + if v:version >= 700 + exec 'silent! vimgrep! /'.a:string.'/ '.a:where + else + exec 'silent! grep! '.Tex_EscapeForGrep(a:string).' '.a:where + endif +endfunction + +" }}} +" Tex_Grepadd: shorthand for :grepadd or :vimgrepadd {{{ +function! Tex_Grepadd(string, where) + if v:version >= 700 + exec 'silent! vimgrepadd! /'.a:string.'/ '.a:where + else + exec "silent! grepadd! ".Tex_EscapeForGrep(a:string).' '.a:where + endif +endfunction + +" }}} +" Tex_EscapeForGrep: escapes back-slashes and doublequotes the correct number of times {{{ +" Description: This command escapes the backslash and double quotes in a +" search pattern the correct number of times so it can be used in the ``:grep`` +" command. This command is meant to be used as:: +" +" exec "silent! grep ".Tex_EscapeForGrep(pattern)." file" +" +" The input argument to this function should be the string which you want +" the external command to finally see. For example, to search for a string +" ``'\bibitem'``, the grep command needs to be passed a string like +" ``'\\bibitem'``. Examples:: +" +" Tex_EscapeForGrep('\\bibitem') " correct +" Tex_EscapeForGrep('\bibitem') " wrong +" Tex_EscapeForGrep("\\bibitem") " wrong +" Tex_EscapeForGrep('\<word\>') " correct +" +function! Tex_EscapeForGrep(string) + let retVal = a:string + + " The shell halves the backslashes. + if &shell =~ 'sh' + let retVal = escape(retVal, "\\") + + " If shellxquote is set, then the backslashes are halved yet again. + if &shellxquote == '"' + let retVal = escape(retVal, "\"\\") + endif + + endif + " escape special characters which bash/cmd.exe might interpret + let retVal = escape(retVal, "<>") + + return retVal +endfunction " }}} + +" ============================================================================== +" Uncategorized helper functions +" ============================================================================== +" Tex_Strntok: extract the n^th token from a list {{{ +" example: Strntok('1,23,3', ',', 2) = 23 +fun! Tex_Strntok(s, tok, n) + return matchstr( a:s.a:tok[0], '\v(\zs([^'.a:tok.']*)\ze['.a:tok.']){'.a:n.'}') +endfun + +" }}} +" Tex_CreatePrompt: creates a prompt string {{{ +" Description: +" Arguments: +" promptList: This is a string of the form: +" 'item1,item2,item3,item4' +" cols: the number of columns in the resultant prompt +" sep: the list seperator token +" +" Example: +" Tex_CreatePrompt('item1,item2,item3,item4', 2, ',') +" returns +" "(1) item1\t(2)item2\n(3)item3\t(4)item4" +" +" This string can be used in the input() function. +function! Tex_CreatePrompt(promptList, cols, sep) + + let g:listSep = a:sep + let num_common = GetListCount(a:promptList) + + let i = 1 + let promptStr = "" + + while i <= num_common + + let j = 0 + while j < a:cols && i + j <= num_common + let com = Tex_Strntok(a:promptList, a:sep, i+j) + let promptStr = promptStr.'('.(i+j).') '. + \ com."\t".( strlen(com) < 4 ? "\t" : '' ) + + let j = j + 1 + endwhile + + let promptStr = promptStr."\n" + + let i = i + a:cols + endwhile + return promptStr +endfunction + +" }}} +" Tex_CleanSearchHistory: removes last search item from search history {{{ +" Description: This function needs to be globally visible because its +" called from outside the script during expansion. +function! Tex_CleanSearchHistory() + call histdel("/", -1) + let @/ = histget("/", -1) +endfunction +nmap <silent> <script> <plug>cleanHistory :call Tex_CleanSearchHistory()<CR> + +" }}} +" Tex_GetVarValue: gets the value of the variable {{{ +" Description: +" See if a window-local, buffer-local or global variable with the given name +" exists and if so, returns the corresponding value. If none exist, return +" an empty string. +function! Tex_GetVarValue(varname, ...) + if exists('w:'.a:varname) + return w:{a:varname} + elseif exists('b:'.a:varname) + return b:{a:varname} + elseif exists('g:'.a:varname) + return g:{a:varname} + elseif a:0 > 0 + return a:1 + else + return '' + endif +endfunction " }}} +" Tex_GetMainFileName: gets the name of the main file being compiled. {{{ +" Description: returns the full path name of the main file. +" This function checks for the existence of a .latexmain file +" which might point to the location of a "main" latex file. +" If .latexmain exists, then return the full path name of the +" file being pointed to by it. +" +" Otherwise, return the full path name of the current buffer. +" +" You can supply an optional "modifier" argument to the +" function, which will optionally modify the file name before +" returning. +" NOTE: From version 1.6 onwards, this function always trims +" away the .latexmain part of the file name before applying the +" modifier argument. +function! Tex_GetMainFileName(...) + if a:0 > 0 + let modifier = a:1 + else + let modifier = ':p' + endif + + " If the user wants to use his own way to specify the main file name, then + " use it straight away. + if Tex_GetVarValue('Tex_MainFileExpression') != '' + exec 'let retval = '.Tex_GetVarValue('Tex_MainFileExpression') + return retval + endif + + let curd = getcwd() + + let dirmodifier = '%:p:h' + let dirLast = expand(dirmodifier) + call Tex_CD(dirLast) + + " move up the directory tree until we find a .latexmain file. + " TODO: Should we be doing this recursion by default, or should there be a + " setting? + while glob('*.latexmain') == '' + let dirmodifier = dirmodifier.':h' + " break from the loop if we cannot go up any further. + if expand(dirmodifier) == dirLast + break + endif + let dirLast = expand(dirmodifier) + call Tex_CD(dirLast) + endwhile + + let lheadfile = glob('*.latexmain') + if lheadfile != '' + " Remove the trailing .latexmain part of the filename... We never want + " that. + let lheadfile = fnamemodify(substitute(lheadfile, '\.latexmain$', '', ''), modifier) + else + " If we cannot find any main file, just modify the filename of the + " current buffer. + let lheadfile = expand('%'.modifier) + endif + + call Tex_CD(curd) + + " NOTE: The caller of this function needs to escape spaces in the + " file name as appropriate. The reason its not done here is that + " escaping spaces is not safe if this file is to be used as part of + " an external command on certain platforms. + return lheadfile +endfunction + +" }}} +" Tex_ChooseFromPrompt: process a user input to a prompt string {{{ +" " Description: +function! Tex_ChooseFromPrompt(dialog, list, sep) + let g:Tex_ASDF = a:dialog + let inp = input(a:dialog) + if inp =~ '\d\+' + return Tex_Strntok(a:list, a:sep, inp) + else + return inp + endif +endfunction " }}} +" Tex_ChooseFile: produces a file list and prompts for choice {{{ +" Description: +function! Tex_ChooseFile(dialog) + let files = glob('*') + if files == '' + return '' + endif + let s:incnum = 0 + echo a:dialog + let filenames = substitute(files, "\\v(^|\n)", "\\=submatch(0).Tex_IncrementNumber(1).' : '", 'g') + echo filenames + let choice = input('Enter Choice : ') + let g:choice = choice + if choice == '' + return '' + endif + if choice =~ '^\s*\d\+\s*$' + let retval = Tex_Strntok(files, "\n", choice) + else + let filescomma = substitute(files, "\n", ",", "g") + let retval = GetListMatchItem(filescomma, choice) + endif + if retval == '' + return '' + endif + return retval +endfunction + +" }}} +" Tex_IncrementNumber: returns an incremented number each time {{{ +" Description: +let s:incnum = 0 +function! Tex_IncrementNumber(increm) + let s:incnum = s:incnum + a:increm + return s:incnum +endfunction + +" }}} +" Tex_ResetIncrementNumber: increments s:incnum to zero {{{ +" Description: +function! Tex_ResetIncrementNumber(val) + let s:incnum = a:val +endfunction " }}} +" Tex_FindInRtp: check if file exists in &rtp {{{ +" Description: Checks if file exists in globpath(&rtp, ...) and cuts off the +" rest of returned names. This guarantees that sourced file is +" from $HOME. +" If an optional argument is given, it specifies how to expand +" each filename found. For example, '%:p' will return a list of +" the complete paths to the files. By default returns trailing +" path-names without extenions. +" NOTE: This function is very slow when a large number of +" matches are found because of a while loop which modifies +" each filename found. Some speedup was acheived by using +" a tokenizer approach rather than using Tex_Strntok which +" would have been more obvious. +function! Tex_FindInRtp(filename, directory, ...) + " how to expand each filename. ':p:t:r' modifies each filename to its + " trailing part without extension. + let expand = (a:0 > 0 ? a:1 : ':p:t:r') + " The pattern used... An empty filename should be regarded as '*' + let pattern = (a:filename != '' ? a:filename : '*') + + let filelist = globpath(&rtp, 'ftplugin/latex-suite/'.a:directory.'/'.pattern)."\n" + + if filelist == "\n" + return '' + endif + + if a:filename != '' + return fnamemodify(Tex_Strntok(filelist, "\n", 1), expand) + endif + + " Now cycle through the files modifying each filename in the desired + " manner. + let retfilelist = '' + let i = 1 + while 1 + " Extract the portion till the next newline. Then shorten the filelist + " by removing till the newline. + let nextnewline = stridx(filelist, "\n") + if nextnewline == -1 + break + endif + let filename = strpart(filelist, 0, nextnewline) + let filelist = strpart(filelist, nextnewline+1) + + " The actual modification. + if fnamemodify(filename, expand) != '' + let retfilelist = retfilelist.fnamemodify(filename, expand)."," + endif + let i = i + 1 + endwhile + + return substitute(retfilelist, ',$', '', '') +endfunction + +" }}} +" Tex_GetErrorList: returns vim's clist {{{ +" Description: returns the contents of the error list available via the :clist +" command. +function! Tex_GetErrorList() + let _a = @a + redir @a | silent! clist | redir END + let errlist = @a + let @a = _a + + if errlist =~ 'E42: ' + let errlist = '' + endif + + return errlist +endfunction " }}} +" Tex_GetTempName: get the name of a temporary file in specified directory {{{ +" Description: Unlike vim's native tempname(), this function returns the name +" of a temporary file in the directory specified. This enables +" us to create temporary files in a specified directory. +function! Tex_GetTempName(dirname) + let prefix = 'latexSuiteTemp' + let slash = (a:dirname =~ '\\\|/$' ? '' : '/') + let i = 0 + while filereadable(a:dirname.slash.prefix.i.'.tex') && i < 1000 + let i = i + 1 + endwhile + if filereadable(a:dirname.slash.prefix.i.'.tex') + echoerr "Temporary file could not be created in ".a:dirname + return '' + endif + return expand(a:dirname.slash.prefix.i.'.tex', ':p') +endfunction +" }}} +" Tex_MakeMap: creates a mapping from lhs to rhs if rhs is not already mapped {{{ +" Description: +function! Tex_MakeMap(lhs, rhs, mode, extraargs) + if !hasmapto(a:rhs, a:mode) + exec a:mode.'map '.a:extraargs.' '.a:lhs.' '.a:rhs + endif +endfunction " }}} +" Tex_CD: cds to given directory escaping spaces if necessary {{{ +" " Description: +function! Tex_CD(dirname) + exec 'cd '.Tex_EscapeSpaces(a:dirname) +endfunction " }}} +" Tex_EscapeSpaces: escapes unescaped spaces from a path name {{{ +" Description: +function! Tex_EscapeSpaces(path) + return substitute(a:path, '[^\\]\(\\\\\)*\zs ', '\\ ', 'g') +endfunction " }}} +" Tex_FindFile: finds a file in the vim's 'path' {{{ +" Description: finds a file in vim's 'path' +function! Tex_FindFile(fname, path, suffixesadd) + if exists('*findfile') + let _suffixesadd = &suffixesadd + let &suffixesadd = a:suffixesadd + let retval = findfile(a:fname, a:path) + let &suffixesadd = _suffixesadd + else + " split a new window so we do not screw with the current buffer. We + " want to use the same filename each time so that multiple scratch + " buffers are not created. + let retval = '' + silent! split __HOPEFULLY_THIS_FILE_DOES_NOT_EXIST__ + let _suffixesadd = &suffixesadd + let _path = &path + let &suffixesadd = a:suffixesadd + let &path = a:path + exec 'silent! find '.a:fname + if bufname('%') != '__HOPEFULLY_THIS_FILE_DOES_NOT_EXIST__' + let retval = expand('%:p') + end + silent! bdelete! + let &suffixesadd = _suffixesadd + let &path = _path + endif + return retval +endfunction " }}} + +" ============================================================================== +" Smart key-mappings +" ============================================================================== +" TexQuotes: inserts `` or '' instead of " {{{ +if g:Tex_SmartKeyQuote + + " TexQuotes: inserts `` or '' instead of " + " Taken from texmacro.vim by Benji Fisher <benji@e-math.AMS.org> + " TODO: Deal with nested quotes. + " The :imap that calls this function should insert a ", move the cursor to + " the left of that character, then call this with <C-R>= . + function! s:TexQuotes() + let l = line(".") + let c = col(".") + let restore_cursor = l . "G" . virtcol(".") . "|" + normal! H + let restore_cursor = "normal!" . line(".") . "Gzt" . restore_cursor + execute restore_cursor + " In math mode, or when preceded by a \, just move the cursor past the + " already-inserted " character. + if synIDattr(synID(l, c, 1), "name") =~ "^texMath" + \ || (c > 1 && getline(l)[c-2] == '\') + return "\<Right>" + endif + " Find the appropriate open-quote and close-quote strings. + if exists("b:Tex_SmartQuoteOpen") + let open = b:Tex_SmartQuoteOpen + elseif exists("g:Tex_SmartQuoteOpen") + let open = g:Tex_SmartQuoteOpen + else + let open = "``" + endif + if exists("b:Tex_SmartQuoteClose") + let close = b:Tex_SmartQuoteClose + elseif exists("g:Tex_SmartQuoteClose") + let close = g:Tex_SmartQuoteClose + else + let close = "''" + endif + let boundary = '\|' + " This code seems to be obsolete, since this script variable is never + " set. The idea is that some languages use ",," as an open- or + " close-quote string, and we want to avoid confusing ordinary "," + " with a quote boundary. + if exists("s:TeX_strictquote") + if( s:TeX_strictquote == "open" || s:TeX_strictquote == "both" ) + let boundary = '\<' . boundary + endif + if( s:TeX_strictquote == "close" || s:TeX_strictquote == "both" ) + let boundary = boundary . '\>' + endif + endif + + " Eventually return q; set it to the default value now. + let q = open + let pattern = + \ escape(open, '\~') . + \ boundary . + \ escape(close, '\~') . + \ '\|^$\|"' + + while 1 " Look for preceding quote (open or close), ignoring + " math mode and '\"' . + call search(pattern, "bw") + if synIDattr(synID(line("."), col("."), 1), "name") !~ "^texMath" + \ && strpart(getline('.'), col('.')-2, 2) != '\"' + break + endif + endwhile + + " Now, test whether we actually found a _preceding_ quote; if so, is it + " an open quote? + if ( line(".") < l || line(".") == l && col(".") < c ) + if strpart(getline("."), col(".")-1) =~ '\V\^' . escape(open, '\') + if line(".") == l && col(".") + strlen(open) == c + " Insert "<++>''<++>" instead of just "''". + let q = IMAP_PutTextWithMovement("<++>".close."<++>") + else + let q = close + endif + endif + endif + + " Return to line l, column c: + execute restore_cursor + " Start with <Del> to remove the " put in by the :imap . + return "\<Del>" . q + + endfunction + +endif +" }}} +" SmartBS: smart backspacing {{{ +if g:Tex_SmartKeyBS + + " SmartBS: smart backspacing + " SmartBS lets you treat diacritic characters (those \'{a} thingies) as a + " single character. This is useful for example in the following situation: + " + " \v{s}\v{t}astn\'{y} ('happy' in Slovak language :-) ) + " If you will delete this normally (without using smartBS() function), you + " must press <BS> about 19x. With function smartBS() you must press <BS> only + " 7x. Strings like "\v{s}", "\'{y}" are considered like one character and are + " deleted with one <BS>. + let s:smartBS_pat = Tex_GetVarValue('Tex_SmartBSPattern') + + fun! s:SmartBS_pat() + return s:smartBS_pat + endfun + + " This function comes from Benji Fisher <benji@e-math.AMS.org> + " http://vim.sourceforge.net/scripts/download.php?src_id=409 + " (modified/patched by Lubomir Host 'rajo' <host8 AT keplerDOTfmphDOTuniba.sk>) + function! s:SmartBS(pat) + let init = strpart(getline("."), 0, col(".")-1) + let matchtxt = matchstr(init, a:pat) + if matchtxt != '' + let bstxt = substitute(matchtxt, '.', "\<bs>", 'g') + return bstxt + else + return "\<bs>" + endif + endfun + +endif " }}} +" SmartDots: inserts \cdots instead of ... in math mode otherwise \ldots {{{ +" if amsmath package is detected then just use \dots and let amsmath take care +" of it. +if g:Tex_SmartKeyDot + + function! <SID>SmartDots() + if strpart(getline('.'), col('.')-3, 2) == '..' && + \ g:Tex_package_detected =~ '\<amsmath\>' + return "\<bs>\<bs>\\dots" + elseif synIDattr(synID(line('.'),col('.')-1,0),"name") =~ '^texMath' + \&& strpart(getline('.'), col('.')-3, 2) == '..' + return "\<bs>\<bs>\\cdots" + elseif strpart(getline('.'), col('.')-3, 2) == '..' + return "\<bs>\<bs>\\ldots" + else + return '.' + endif + endfunction + +endif +" }}} + +" source texproject.vim before other files +exe 'source '.s:path.'/texproject.vim' + +" source all the relevant files. +exe 'source '.s:path.'/texmenuconf.vim' +exe 'source '.s:path.'/envmacros.vim' +exe 'source '.s:path.'/elementmacros.vim' + +" source utf-8 or plain math menus +if exists("g:Tex_UseUtfMenus") && g:Tex_UseUtfMenus != 0 && has("gui_running") + exe 'source '.s:path.'/mathmacros-utf.vim' +else + exe 'source '.s:path.'/mathmacros.vim' +endif + +exe 'source '.s:path.'/multicompile.vim' +exe 'source '.s:path.'/compiler.vim' +exe 'source '.s:path.'/folding.vim' +exe 'source '.s:path.'/templates.vim' +exe 'source '.s:path.'/custommacros.vim' +exe 'source '.s:path.'/bibtex.vim' + +" source advanced math functions +if g:Tex_AdvancedMath == 1 + exe 'source '.s:path.'/brackets.vim' + exe 'source '.s:path.'/smartspace.vim' +endif + +if g:Tex_Diacritics != 0 + exe 'source '.s:path.'/diacritics.vim' +endif + +exe 'source '.s:path.'/texviewer.vim' +exe 'source '.s:path.'/version.vim' + +" ============================================================================== +" Finally set up the folding, options, mappings and quit. +" ============================================================================== +" SetTeXOptions: sets options/mappings for this file. {{{ +function! <SID>SetTeXOptions() + " Avoid reinclusion. + if exists('b:doneSetTeXOptions') + return + endif + let b:doneSetTeXOptions = 1 + + exe 'setlocal dict^='.s:path.'/dictionaries/dictionary' + + call Tex_Debug('SetTeXOptions: sourcing maps', 'main') + " smart functions + if g:Tex_SmartKeyQuote + inoremap <buffer> <silent> " "<Left><C-R>=<SID>TexQuotes()<CR> + endif + if g:Tex_SmartKeyBS + inoremap <buffer> <silent> <BS> <C-R>=<SID>SmartBS(<SID>SmartBS_pat())<CR> + endif + if g:Tex_SmartKeyDot + inoremap <buffer> <silent> . <C-R>=<SID>SmartDots()<CR> + endif + + " This line seems to be necessary to source our compiler/tex.vim file. + " The docs are unclear why this needs to be done even though this file is + " the first compiler plugin in 'runtimepath'. + runtime compiler/tex.vim + +endfunction + +augroup LatexSuite + au LatexSuite User LatexSuiteFileType + \ call Tex_Debug('main.vim: Catching LatexSuiteFileType event', 'main') | + \ call <SID>SetTeXOptions() +augroup END + +" }}} + +" ============================================================================== +" Settings for taglist.vim plugin +" ============================================================================== +" Sets Tlist_Ctags_Cmd for taglist.vim and regexps for ctags {{{ +if exists("g:Tex_TaglistSupport") && g:Tex_TaglistSupport == 1 + if !exists("g:tlist_tex_settings") + let g:tlist_tex_settings = 'tex;s:section;c:chapter;l:label;r:ref' + endif + + if exists("Tlist_Ctags_Cmd") + let s:tex_ctags = Tlist_Ctags_Cmd + else + let s:tex_ctags = 'ctags' " Configurable in texrc? + endif + + if exists("g:Tex_InternalTagsDefinitions") && g:Tex_InternalTagsDefinitions == 1 + let Tlist_Ctags_Cmd = s:tex_ctags ." --langdef=tex --langmap=tex:.tex.ltx.latex" + \.' --regex-tex="/\\\\begin{abstract}/Abstract/s,abstract/"' + \.' --regex-tex="/\\\\part[ \t]*\*?\{[ \t]*([^}]*)\}/\1/s,part/"' + \.' --regex-tex="/\\\\chapter[ \t]*\*?\{[ \t]*([^}]*)\}/\1/s,chapter/"' + \.' --regex-tex="/\\\\section[ \t]*\*?\{[ \t]*([^}]*)\}/\1/s,section/"' + \.' --regex-tex="/\\\\subsection[ \t]*\*?\{[ \t]*([^}]*)\}/+ \1/s,subsection/"' + \.' --regex-tex="/\\\\subsubsection[ \t]*\*?\{[ \t]*([^}]*)\}/+ \1/s,subsubsection/"' + \.' --regex-tex="/\\\\paragraph[ \t]*\*?\{[ \t]*([^}]*)\}/+ \1/s,paragraph/"' + \.' --regex-tex="/\\\\subparagraph[ \t]*\*?\{[ \t]*([^}]*)\}/+ \1/s,subparagraph/"' + \.' --regex-tex="/\\\\begin{thebibliography}/BIBLIOGRAPHY/s,thebibliography/"' + \.' --regex-tex="/\\\\tableofcontents/TABLE OF CONTENTS/s,tableofcontents/"' + \.' --regex-tex="/\\\\frontmatter/FRONTMATTER/s,frontmatter/"' + \.' --regex-tex="/\\\\mainmatter/MAINMATTER/s,mainmatter/"' + \.' --regex-tex="/\\\\backmatter/BACKMATTER/s,backmatter/"' + \.' --regex-tex="/\\\\appendix/APPENDIX/s,appendix/"' + \.' --regex-tex="/\\\\label[ \t]*\*?\{[ \t]*([^}]*)\}/\1/l,label/"' + \.' --regex-tex="/\\\\ref[ \t]*\*?\{[ \t]*([^}]*)\}/\1/r,ref/"' + endif +endif + +" }}} + +" commands to completion +let g:Tex_completion_explorer = ',' + +" Mappings defined in package files will overwrite all other +exe 'source '.s:path.'/packages.vim' + +" ============================================================================== +" These functions are used to immitate certain operating system type functions +" (like reading the contents of a file), which are not available in vim. For +" example, in Vim, its not possible to read the contents of a file without +" opening a buffer on it, which means that over time, lots of buffers can open +" up needlessly. +" +" If python is available (and allowed), then these functions utilize python +" library functions without making calls to external programs. +" ============================================================================== +" Tex_GotoTempFile: open a temp file. reuse from next time on {{{ +function! Tex_GotoTempFile() + if !exists('s:tempFileName') + let s:tempFileName = tempname() + endif + exec 'silent! split '.s:tempFileName +endfunction " }}} +" Tex_IsPresentInFile: finds if a string str, is present in filename {{{ +if has('python') && g:Tex_UsePython + function! Tex_IsPresentInFile(regexp, filename) + exec 'python isPresentInFile(r"'.a:regexp.'", r"'.a:filename.'")' + + return retval + endfunction +else + function! Tex_IsPresentInFile(regexp, filename) + call Tex_GotoTempFile() + + silent! 1,$ d _ + let _report = &report + let _sc = &sc + set report=9999999 nosc + exec 'silent! 0r! '.g:Tex_CatCmd.' '.a:filename + set nomod + let &report = _report + let &sc = _sc + + if search(a:regexp, 'w') + let retval = 1 + else + let retval = 0 + endif + silent! bd + return retval + endfunction +endif " }}} +" Tex_CatFile: returns the contents of a file in a <NL> seperated string {{{ +if has('*readfile') + function! Tex_CatFile(filename) + return join(readfile(filename), "\n") + endfunction +elseif has('python') && g:Tex_UsePython + function! Tex_CatFile(filename) + " catFile assigns a value to retval + exec 'python catFile("'.a:filename.'")' + + return retval + endfunction +else + function! Tex_CatFile(filename) + if glob(a:filename) == '' + return '' + endif + + call Tex_GotoTempFile() + + silent! 1,$ d _ + + let _report = &report + let _sc = &sc + set report=9999999 nosc + exec 'silent! 0r! '.g:Tex_CatCmd.' '.a:filename + + set nomod + let _a = @a + silent! normal! ggVG"ay + let retval = @a + let @a = _a + + silent! bd + let &report = _report + let &sc = _sc + return retval + endfunction +endif +" }}} +" Tex_DeleteFile: removes a file if present {{{ +" Description: +if has('python') && g:Tex_UsePython + function! Tex_DeleteFile(filename) + exec 'python deleteFile(r"'.a:filename.'")' + + if exists('retval') + return retval + endif + endfunction +else + function! Tex_DeleteFile(filename) + if filereadable(a:filename) + exec '! '.g:Tex_RmCmd.' '.a:filename + endif + endfunction +endif +" }}} + + +let &cpo = s:save_cpo + +" Define the functions in python if available. +if !has('python') || !g:Tex_UsePython + finish +endif + +exec 'pyfile '.expand('<sfile>:p:h').'/pytools.py' + +" vim:fdm=marker:ff=unix:noet:ts=4:sw=4:nowrap diff --git a/.vim/ftplugin/latex-suite/mathmacros-utf.vim b/.vim/ftplugin/latex-suite/mathmacros-utf.vim new file mode 100644 index 0000000..f5b5b85 --- /dev/null +++ b/.vim/ftplugin/latex-suite/mathmacros-utf.vim @@ -0,0 +1,729 @@ +"============================================================================= +" File: mathmacros.vim +" Author: Mikolaj Machowski +" Created: Tue Apr 23 06:00 PM 2002 PST +" +" Description: macros for everything mathematical in latex. +"============================================================================= + +if !(has('gui_running') && g:Tex_MathMenus && g:Tex_Menus) + finish +endif + +let s:MathMenuName = g:Tex_MenuPrefix.'Ma&th.' + +function! Tex_MathMenuRemove() + exe 'silent! aunmenu '.s:MathMenuName +endfunction + +let s:pA = 'amenu <silent> 85 '.s:MathMenuName + +" brackets and dollars {{{ +exe s:pA.'\\&[\ \\] <plug><C-r>=IMAP_PutTextWithMovement("\\[<++>\\]<++>")<cr>' +exe s:pA.'\\&(\ \\) <plug><C-r>=IMAP_PutTextWithMovement("\\(<++>\\)<++>")<cr>' +exe s:pA.'&$\ $ <plug>$$' +exe s:pA.'-sepmath1- :' +" }}} +" MATH arrows {{{ +let s:pA1 = s:pA."&Arrows." +exe s:pA1.'Leftarrow<Tab>⇠<plug>\Leftarrow ' +exe s:pA1.'leftarrow<Tab>↠<plug>\leftarrow' +exe s:pA1.'longleftarrow<Tab>↠<plug>\longleftarrow ' +exe s:pA1.'Longleftarrow<Tab>⇠<plug>\Longleftarrow ' +exe s:pA1.'rightarrow<Tab>→ <plug>\rightarrow ' +exe s:pA1.'longrightarrow<Tab>→ <plug>\longrightarrow ' +exe s:pA1.'Rightarrow<Tab>⇒ <plug>\Rightarrow ' +exe s:pA1.'Longrightarrow<Tab>⇒ <plug>\Longrightarrow ' +exe s:pA1.'leftrightarrow<Tab>⇆ <plug>\leftrightarrow ' +exe s:pA1.'longleftrightarrow<Tab>↔ <plug>\longleftrightarrow ' +exe s:pA1.'Leftrightarrow<Tab>⇔ <plug>\Leftrightarrow ' +exe s:pA1.'Longleftrightarrow<Tab>⇔ <plug>\Longleftrightarrow ' +exe s:pA1.'uparrow<Tab>↑ <plug>\uparrow ' +exe s:pA1.'Uparrow<Tab>⇑ <plug>\Uparrow ' +exe s:pA1.'downarrow<Tab>↓ <plug>\downarrow ' +exe s:pA1.'Downarrow<Tab>⇓ <plug>\Downarrow ' +exe s:pA1.'updownarrow<Tab>↕ <plug>\updownarrow ' +exe s:pA1.'Updownarrow<Tab>⇕ <plug>\Updownarrow ' +exe s:pA1.'nearrow<Tab>↗ <plug>\nearrow ' +exe s:pA1.'searrow<Tab>↘ <plug>\searrow ' +exe s:pA1.'swarrow<Tab>↙ <plug>\swarrow ' +exe s:pA1.'nwarrow<Tab>↖ <plug>\nwarrow ' +exe s:pA1.'mapsto<Tab>↦ <plug>\mapsto ' +exe s:pA1.'leadsto<Tab>↠<plug>\leadsto ' +exe s:pA1.'longmapsto<Tab>⇖ <plug>\longmapsto ' +exe s:pA1.'hookleftarrow<Tab>↩ <plug>\hookleftarrow ' +exe s:pA1.'hookrightarrow<Tab>↪ <plug>\hookrightarrow ' +exe s:pA1.'leftharpoonup<Tab>↼ <plug>\leftharpoonup ' +exe s:pA1.'leftharpoondown<Tab>↽ <plug>\leftharpoondown ' +exe s:pA1.'rightharpoonup<Tab>⇀ <plug>\rightharpoonup ' +exe s:pA1.'rightharpoondown<Tab>⇠<plug>\rightharpoondown ' +exe s:pA1.'rightleftharpoons<Tab>⇌ <plug>\rightleftharpoons ' +exe s:pA1.'overleftarrow<Tab> <plug>\overleftarrow ' +exe s:pA1.'overrightarrow<Tab> <plug>\overrightarrow ' +exe s:pA1.'overleftrightarrow<Tab> <plug>\overleftrightarrow ' +exe s:pA1.'underleftarrow<Tab> <plug>\underleftarrow ' +exe s:pA1.'underrightarrow<Tab> <plug>\underrightarrow ' +exe s:pA1.'underleftrightarrow<Tab> <plug>\underleftrightarrow ' +exe s:pA1.'xleftarrow<Tab> <plug>\xleftarrow ' +exe s:pA1.'xrightarrow<Tab> <plug>\xrightarrow ' +" }}} +" MATH Arrows2 {{{ +let s:pA1a = s:pA."Arrows2." +exe s:pA1a.'dashleftarrow<Tab>⇠<plug>\dashleftarrow ' +exe s:pA1a.'leftleftarrows<Tab>⇇ <plug>\leftleftarrows ' +exe s:pA1a.'leftrightarrows<Tab>⇆ <plug>\leftrightarrows ' +exe s:pA1a.'Lleftarrow<Tab>⇚ <plug>\Lleftarrow ' +exe s:pA1a.'twoheadleftarrow<Tab>↞ <plug>\twoheadleftarrow ' +exe s:pA1a.'leftarrowtail<Tab>↢ <plug>\leftarrowtail ' +exe s:pA1a.'leftrightharpoons<Tab>⇋ <plug>\leftrightharpoons ' +exe s:pA1a.'Lsh<Tab>↰ <plug>\Lsh ' +exe s:pA1a.'looparrowleft<Tab>↫ <plug>\looparrowleft ' +exe s:pA1a.'curvearrowleft<Tab>↶ <plug>\curvearrowleft ' +exe s:pA1a.'circlearrowleft<Tab>↺ <plug>\circlearrowleft ' +exe s:pA1a.'dashrightarrow<Tab>⇢ <plug>\dashrightarrow ' +exe s:pA1a.'rightrightarrows<Tab>⇉ <plug>\rightrightarrows ' +exe s:pA1a.'rightleftarrows<Tab>⇄ <plug>\rightleftarrows ' +exe s:pA1a.'Rrightarrow<Tab>⇛ <plug>\Rrightarrow ' +exe s:pA1a.'twoheadrightarrow<Tab>↠<plug>\twoheadrightarrow ' +exe s:pA1a.'rightarrowtail<Tab>↣ <plug>\rightarrowtail ' +exe s:pA1a.'rightleftharpoons<Tab>⇌ <plug>\rightleftharpoons ' +exe s:pA1a.'Rsh<Tab>↱ <plug>\Rsh ' +exe s:pA1a.'looparrowright<Tab>↬ <plug>\looparrowright ' +exe s:pA1a.'curvearrowright<Tab>↷ <plug>\curvearrowright ' +exe s:pA1a.'circlearrowright<Tab>↻ <plug>\circlearrowright ' +exe s:pA1a.'multimap<Tab>⊸ <plug>\multimap ' +exe s:pA1a.'upuparrows<Tab>⇈ <plug>\upuparrows ' +exe s:pA1a.'downdownarrows<Tab>⇊ <plug>\downdownarrows ' +exe s:pA1a.'upharpoonleft<Tab>↿ <plug>\upharpoonleft ' +exe s:pA1a.'upharpoonright<Tab>↾ <plug>\upharpoonright ' +exe s:pA1a.'downharpoonleft<Tab>⇃ <plug>\downharpoonleft ' +exe s:pA1a.'downharpoonright<Tab>⇂ <plug>\downharpoonright ' +exe s:pA1a.'rightsquigarrow<Tab>⇠<plug>\rightsquigarrow ' +exe s:pA1a.'leftrightsquigarrow<Tab>↠<plug>\leftrightsquigarrow ' +" }}} +" MATH nArrows {{{ +let s:pA1b = s:pA."&nArrows." +exe s:pA1b.'nleftarrow<Tab>↚ <plug>\nleftarrow ' +exe s:pA1b.'nLeftarrow<Tab>⇠<plug>\nLeftarrow ' +exe s:pA1b.'nleftrightarrow<Tab>↮ <plug>\nleftrightarrow ' +exe s:pA1b.'nLeftrightarrow<Tab>⇎ <plug>\nleftrightarrow ' +exe s:pA1b.'nrightarrow<Tab>↛ <plug>\nrightarrow ' +exe s:pA1b.'nRightarrow<Tab>⇠<plug>\nRightarrow ' +" }}} +" MATH Fonts {{{ +let s:pA2a = s:pA."&MathFonts." +" exe s:pA2a.'mathbf{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathbf{<++>}<++>")<cr>' +exe s:pA2a.'mathrm{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathrm{<++>}<++>")<cr>' +exe s:pA2a.'mathsf{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathsf{<++>}<++>")<cr>' +exe s:pA2a.'mathtt{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathtt{<++>}<++>")<cr>' +exe s:pA2a.'mathit{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathit{<++>}<++>")<cr>' +exe s:pA2a.'mathfrak{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathfrak{<++>}<++>")<cr>' +exe s:pA2a.'mathcal{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathcal{<++>}<++>")<cr>' +exe s:pA2a.'mathscr{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathscr{<++>}<++>")<cr>' +exe s:pA2a.'mathbb{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathbb{<++>}<++>")<cr>' +" }}} +" Greek Letters small {{{ +let s:pA2 = s:pA."&Greek.&Small." +exe s:pA2.'alpha<Tab>`a\ \ α <plug>\alpha ' +exe s:pA2.'beta<Tab>`b\ \ β <plug>\beta ' +exe s:pA2.'gamma<Tab>`g\ \ γ <plug>\gamma ' +exe s:pA2.'delta<Tab>`d\ \ δ <plug>\delta ' +exe s:pA2.'epsilon<Tab>∊ <plug>\epsilon ' +exe s:pA2.'varepsilon<Tab>`e\ \ ε <plug>\varepsilon ' +exe s:pA2.'zeta<Tab>`z\ \ ζ <plug>\zeta ' +exe s:pA2.'eta<Tab>`h\ \ η <plug>\eta ' +exe s:pA2.'theta<Tab>`q\ \ θ <plug>\theta ' +exe s:pA2.'vartheta<Tab>Ï‘ <plug>\vartheta ' +exe s:pA2.'iota<Tab>`i\ \ ι <plug>\iota ' +exe s:pA2.'kappa<Tab>`k\ \ κ <plug>\kappa ' +exe s:pA2.'lambda<Tab>`l\ \ λ <plug>\lambda ' +exe s:pA2.'mu<Tab>`m\ \ μ <plug>\mu ' +exe s:pA2.'nu<Tab>`n\ \ ν <plug>\nu ' +exe s:pA2.'xi<Tab>`x\ \ ξ <plug>\xi ' +exe s:pA2.'pi<Tab>`p\ \ Ï€ <plug>\pi ' +exe s:pA2.'varpi<Tab>Ï– <plug>\varpi ' +exe s:pA2.'rho<Tab>`r\ \ Ï <plug>\rho ' +exe s:pA2.'varrho<Tab>ϱ <plug>\varrho ' +exe s:pA2.'sigma<Tab>`s\ \ σ <plug>\sigma ' +exe s:pA2.'varsigma<Tab>`v\ \ Ï‚ <plug>\varsigma ' +exe s:pA2.'tau<Tab>`t\ \ Ï„ <plug>\tau ' +exe s:pA2.'upsilon<Tab>`u\ \ Ï… <plug>\upsilon ' +exe s:pA2.'phi<Tab>φ <plug>\phi ' +exe s:pA2.'varphi<Tab>`f\ \ Ï• <plug>\varphi ' +exe s:pA2.'chi<Tab>`c\ \ χ <plug>\chi ' +exe s:pA2.'psi<Tab>`y\ \ ψ <plug>\psi ' +exe s:pA2.'omega<Tab>`w\ \ ω <plug>\omega ' +" }}} +" Greek Letters big {{{ +let s:pA3 = s:pA.'&Greek.&Big.' +exe s:pA3.'Alpha<Tab>`A\ \ A <plug>\Alpha ' +exe s:pA3.'Beta<Tab>`B\ \ B <plug>\Beta ' +exe s:pA3.'Gamma<Tab>`G\ \ Γ <plug>\Gamma ' +exe s:pA3.'Delta<Tab>`D\ \ Δ <plug>\Delta ' +exe s:pA3.'Epsilon<Tab>`E\ \ E <plug>\Epsilon ' +exe s:pA3.'Zeta<Tab>`Z\ \ Z <plug>\mathrm{Z} ' +exe s:pA3.'Eta<Tab>`H\ \ H <plug>\Eta ' +exe s:pA3.'Theta<Tab>Θ <plug>\Theta ' +exe s:pA3.'Iota<Tab>I <plug>\mathrm{I} ' +exe s:pA3.'Kappa<Tab>`K\ \ K <plug>\Kappa ' +exe s:pA3.'Lambda<Tab>`L\ \ Λ <plug>\Lambda ' +exe s:pA3.'Mu<Tab>`M\ \ M <plug>\Mu ' +exe s:pA3.'Nu<Tab>`N\ \ N <plug>\Nu ' +exe s:pA3.'Xi<Tab>`X\ \ Ξ <plug>\Xi ' +exe s:pA3.'Pi<Tab>`P\ \ Î <plug>\Pi ' +exe s:pA3.'Rho<Tab>`R\ \ P <plug>\Rho ' +exe s:pA3.'Sigma<Tab>`S\ \ Σ <plug>\Sigma ' +exe s:pA3.'Tau<Tab>`T\ \ T <plug>\Tau ' +exe s:pA3.'Upsilon<Tab>`U\ \ Y <plug>\Upsilon ' +exe s:pA3.'Phi<Tab>Φ <plug>\Phi ' +exe s:pA3.'Chi<Tab>`C\ \ X <plug>\Chi ' +exe s:pA3.'Psi<Tab>`Y\ \ Ψ <plug>\Psi ' +exe s:pA3.'Omega<Tab>`W\ \ Ω <plug>\Omega ' +" }}} +" BinaryRel1 {{{ +let s:pA4 = s:pA."&BinaryRel1." +exe s:pA4.'ll<Tab>≪ <plug>\ll ' +exe s:pA4.'lll<Tab>⋘ <plug>\lll ' +exe s:pA4.'leqslant<Tab>≤ <plug>\leqslant ' +exe s:pA4.'leq<Tab>≤ <plug>\leq ' +exe s:pA4.'leqq<Tab>≦ <plug>\leqq ' +exe s:pA4.'eqslantless<Tab>⋜ <plug>\eqslantless ' +exe s:pA4.'lessdot<Tab>â‹– <plug>\lessdot ' +exe s:pA4.'prec<Tab>≺ <plug>\prec ' +exe s:pA4.'preceq<Tab>≼ <plug>\preceq ' +exe s:pA4.'preccurlyeq<Tab>≼ <plug>\preccurlyeq ' +exe s:pA4.'curlyeqprec<Tab>⋞ <plug>\curlyeqprec ' +exe s:pA4.'lesssim<Tab>≲ <plug>\lesssim ' +exe s:pA4.'lessapprox<Tab> <plug>\lessapprox ' +exe s:pA4.'precsim<Tab>≾ <plug>\precsim ' +exe s:pA4.'precapprox<Tab> <plug>\precapprox ' +exe s:pA4.'in<Tab>∈ <plug>\in ' +exe s:pA4.'subset<Tab>`(\ \ ⊂ <plug>\subset ' +exe s:pA4.'Subset<Tab>`)\ \ â‹ <plug>\Subset ' +exe s:pA4.'subseteq<Tab>⊆ <plug>\subseteq ' +exe s:pA4.'subseteqq<Tab> <plug>\subseteqq ' +exe s:pA4.'sqsubset<Tab>⊠<plug>\sqsubset ' +exe s:pA4.'sqsubseteq<Tab>⊑ <plug>\sqsubseteq ' +exe s:pA4.'smile<Tab>⌣ <plug>\smile ' +exe s:pA4.'smallsmile<Tab>⌣ <plug>\smallsmile ' +exe s:pA4.'parallel<Tab>∥ <plug>\parallel ' +exe s:pA4.'shortparallel<Tab>∥ <plug>\shortparallel ' +exe s:pA4.'dashv<Tab>⊣ <plug>\dashv ' +exe s:pA4.'vdash<Tab>⊢ <plug>\vdash ' +exe s:pA4.'vDash<Tab>⊨ <plug>\vDash ' +exe s:pA4.'models<Tab>⊨ <plug>\models ' +exe s:pA4.'therefore<Tab>∴ <plug>\therefore ' +exe s:pA4.'backepsilon<Tab>∠<plug>\backepsilon ' +" }}} +" nBinaryRel1 {{{ +let s:pA4a = s:pA."&nBinaryRel1." +exe s:pA4a.'nless<Tab>≮ <plug>\nless ' +exe s:pA4a.'nleqslant<Tab>≰ <plug>\nleqslant ' +exe s:pA4a.'nleq<Tab> <plug>\nleq ' +exe s:pA4a.'lneq<Tab> <plug>\lneq ' +exe s:pA4a.'nleqq<Tab> <plug>\nleqq ' +exe s:pA4a.'lneqq<Tab>≨ <plug>\lneqq ' +exe s:pA4a.'lvertneqq<Tab> <plug>\lvertneqq ' +exe s:pA4a.'nprec<Tab>⊀ <plug>\nprec ' +exe s:pA4a.'npreceq<Tab>â‹ <plug>\npreceq ' +exe s:pA4a.'precneqq<Tab> <plug>\precneqq ' +exe s:pA4a.'lnsim<Tab>⋦ <plug>\lnsim ' +exe s:pA4a.'lnapprox<Tab> <plug>\lnapprox ' +exe s:pA4a.'precnsim<Tab>⋨ <plug>\precnsim ' +exe s:pA4a.'precnapprox<Tab> <plug>\precnapprox ' +exe s:pA4a.'notin<Tab>∉ <plug>\notin ' +exe s:pA4a.'nsubseteq<Tab>⊈ <plug>\nsubseteq ' +exe s:pA4a.'varsubsetneq<Tab> <plug>\varsubsetneq ' +exe s:pA4a.'subsetneq<Tab>⊊ <plug>\subsetneq ' +exe s:pA4a.'nsubseteqq<Tab> <plug>\nsubseteqq ' +exe s:pA4a.'varsubsetneqq<Tab> <plug>\varsubsetneqq ' +exe s:pA4a.'subsetneqq<Tab>⊈ <plug>\subsetneqq ' +exe s:pA4a.'nparallel<Tab>∦ <plug>\nparallel ' +exe s:pA4a.'nshortparallel<Tab> <plug>\nshortparallel ' +exe s:pA4a.'nvdash<Tab>⊬ <plug>\nvdash ' +exe s:pA4a.'nvDash<Tab>⊠<plug>\nvDash ' +" }}} +" BinaryRel2 {{{ +let s:pA5 = s:pA."&BinaryRel2." +exe s:pA5.'gg<Tab>≫ <plug>\gg ' +exe s:pA5.'ggg<Tab>â‹™ <plug>\ggg ' +exe s:pA5.'gggtr<Tab>â‹™ <plug>\gggtr ' +exe s:pA5.'geqslant<Tab> <plug>\geqslant ' +exe s:pA5.'geq<Tab>≥ <plug>\geq ' +exe s:pA5.'geqq<Tab>≧ <plug>\geqq ' +exe s:pA5.'eqslantgtr<Tab> <plug>\eqslantgtr ' +exe s:pA5.'gtrdot<Tab>â‹— <plug>\gtrdot ' +exe s:pA5.'succ<Tab>≻ <plug>\succ ' +exe s:pA5.'succeq<Tab>≽ <plug>\succeq ' +exe s:pA5.'succcurlyeq<Tab>≽ <plug>\succcurlyeq ' +exe s:pA5.'curlyeqsucc<Tab>⋟ <plug>\curlyeqsucc ' +exe s:pA5.'gtrsim<Tab>≳ <plug>\gtrsim ' +exe s:pA5.'gtrapprox<Tab> <plug>\gtrapprox ' +exe s:pA5.'succsim<Tab>≿ <plug>\succsim ' +exe s:pA5.'succapprox<Tab> <plug>\succapprox ' +exe s:pA5.'ni<Tab>∋ <plug>\ni ' +exe s:pA5.'owns<Tab> <plug>\owns ' +exe s:pA5.'supset<Tab>⊃ <plug>\supset ' +exe s:pA5.'Supset<Tab>â‹‘ <plug>\Supset ' +exe s:pA5.'supseteq<Tab>⊇ <plug>\supseteq ' +exe s:pA5.'supseteqq<Tab> <plug>\supseteqq ' +exe s:pA5.'sqsupset<Tab>⊠<plug>\sqsupset ' +exe s:pA5.'sqsupseteq<Tab>⊒ <plug>\sqsupseteq ' +exe s:pA5.'frown<Tab>⌢ <plug>\frown ' +exe s:pA5.'smallfrown<Tab>⌢ <plug>\smallfrown ' +exe s:pA5.'mid<Tab>∣ <plug>\mid ' +exe s:pA5.'shortmid<Tab> <plug>\shortmid ' +exe s:pA5.'between<Tab>≬ <plug>\between ' +exe s:pA5.'Vdash<Tab>⊩ <plug>\Vdash ' +exe s:pA5.'bowtie<Tab>⋈ <plug>\bowtie ' +exe s:pA5.'Join<Tab>⋈ <plug>\Join ' +exe s:pA5.'pitchfork<Tab>â‹” <plug>\pitchfork ' +" }}} +" {{{ nBinaryRel2 +let s:pA5a = s:pA."n&BinaryRel2." "TODO: dorobiæ logarytmy +exe s:pA5a.'ngtr<Tab>≯ <plug>\ngtr ' +exe s:pA5a.'ngeqslant<Tab>≱ <plug>\ngeqslant ' +exe s:pA5a.'ngeq<Tab> <plug>\ngeq ' +exe s:pA5a.'gneq<Tab> <plug>\gneq ' +exe s:pA5a.'ngeqq<Tab> <plug>\ngeqq ' +exe s:pA5a.'gneqq<Tab>≩ <plug>\gneqq ' +exe s:pA5a.'nsucc<Tab>⊠<plug>\nsucc ' +exe s:pA5a.'nsucceq<Tab>â‹¡ <plug>\nsucceq ' +exe s:pA5a.'succneqq<Tab> <plug>\succneqq ' +exe s:pA5a.'gnsim<Tab>â‹§ <plug>\gnsim ' +exe s:pA5a.'gnapprox<Tab> <plug>\gnapprox ' +exe s:pA5a.'succnsim<Tab>â‹© <plug>\succnsim ' +exe s:pA5a.'succnapprox<Tab> <plug>\succnapprox ' +exe s:pA5a.'nsupseteq<Tab>⊉ <plug>\nsupseteq ' +exe s:pA5a.'varsupsetneq<Tab> <plug>\varsupsetneq ' +exe s:pA5a.'supsetneq<Tab>⊋ <plug>\supsetneq ' +exe s:pA5a.'nsupseteqq<Tab> <plug>\nsupseteqq ' +exe s:pA5a.'varsupsetneqq<Tab> <plug>\varsupsetneqq ' +exe s:pA5a.'supsetneqq<Tab> <plug>\supsetneqq ' +exe s:pA5a.'nmid<Tab>∤ <plug>\nmid ' +exe s:pA5a.'nshortmid<Tab> <plug>\nshortmid ' +exe s:pA5a.'nVdash<Tab>⊮ <plug>\nVdash ' +" }}} +" {{{ BinaryRel3 +let s:pA6 = s:pA."&BinaryRel3." +exe s:pA6.'doteq<Tab>≠<plug>\doteq ' +exe s:pA6.'circeq<Tab>≗ <plug>\circeq ' +exe s:pA6.'eqcirc<Tab>≖ <plug>\eqcirc ' +exe s:pA6.'risingdotseq<Tab>≓ <plug>\risingdotseq ' +exe s:pA6.'doteqdot<Tab>≑ <plug>\doteqdot ' +exe s:pA6.'Doteq<Tab>≑ <plug>\Doteq ' +exe s:pA6.'fallingdotseq<Tab>≒ <plug>\fallingdotseq ' +exe s:pA6.'triangleq<Tab>≜ <plug>\triangleq ' +exe s:pA6.'bumpeq<Tab>≠<plug>\bumpeq ' +exe s:pA6.'Bumpeq<Tab>≎ <plug>\Bumpeq ' +exe s:pA6.'equiv<Tab>`=\ \ ≡ <plug>\equiv ' +exe s:pA6.'sim<Tab>∼ <plug>\sim ' +exe s:pA6.'thicksim<Tab>∼ <plug>\thicksim ' +exe s:pA6.'backsim<Tab>∽ <plug>\backsim ' +exe s:pA6.'simeq<Tab>≃ <plug>\simeq ' +exe s:pA6.'backsimeq<Tab>â‹ <plug>\backsimeq ' +exe s:pA6.'cong<Tab>≅ <plug>\cong ' +exe s:pA6.'approx<tab>=~\ \ ≈ <plug>\approx ' +exe s:pA6.'thickapprox<Tab>≈ <plug>\thickapprox ' +exe s:pA6.'approxeq<Tab>≊ <plug>\approxeq ' +exe s:pA6.'blacktriangleleft<Tab>â—€ <plug>\blacktriangleleft ' +exe s:pA6.'vartriangleleft<Tab>⊲ <plug>\vartriangleleft ' +exe s:pA6.'trianglelefteq<Tab>⊴ <plug>\trianglelefteq ' +exe s:pA6.'blacktriangleright<Tab>â–¶ <plug>\blacktriangleright ' +exe s:pA6.'vartriangleright<Tab>⊳ <plug>\vartriangleright ' +exe s:pA6.'trianglerighteq<Tab>⊵ <plug>\trianglerighteq ' +exe s:pA6.'perp<Tab>⊥ <plug>\perp ' +exe s:pA6.'asymp<Tab>≠<plug>\asymp ' +exe s:pA6.'Vvdash<Tab>⊪ <plug>\Vvdash ' +exe s:pA6.'propto<Tab>∠<plug>\propto ' +exe s:pA6.'varpropto<Tab>∠<plug>\varpropto ' +exe s:pA6.'because<Tab>∵ <plug>\because ' +" }}} +" {{{ nBinaryRel3 +let s:pA6a = s:pA."&nBinaryRel3." +exe s:pA6a.'neq<Tab>≠<plug>\neq ' +exe s:pA6a.'nsim<Tab>≠<plug>\nsim ' +exe s:pA6a.'ncong<Tab>≆ <plug>\ncong ' +exe s:pA6a.'ntriangleleft<Tab>⋪ <plug>\ntriangleleft ' +exe s:pA6a.'ntrianglelefteq<Tab>⋬ <plug>\ntrianglelefteq ' +exe s:pA6a.'ntriangleright<Tab>â‹« <plug>\ntriangleright ' +exe s:pA6a.'ntrianglerighteq<Tab>â‹ <plug>\ntrianglerighteq ' +" }}} +" {{{ BinaryRel4 +let s:pA7 = s:pA."&BinaryRel4." +exe s:pA7.'lessgtr<Tab>≶ <plug>\lessgtr ' +exe s:pA7.'gtrless<Tab>≷ <plug>\gtrless ' +exe s:pA7.'lesseqgtr<Tab>⋚ <plug>\lesseqgtr ' +exe s:pA7.'gtreqless<Tab>â‹› <plug>\gtreqless ' +exe s:pA7.'lesseqqgtr<Tab> <plug>\lesseqqgtr ' +exe s:pA7.'gtreqqless<Tab> <plug>\gtreqqless ' +" }}} +" {{{ BigOp +let s:pA8a = s:pA."&BigOp." +exe s:pA8a.'limits<Tab> <plug>\limits' +exe s:pA8a.'nolimits<Tab> <plug>\nolimits' +exe s:pA8a.'displaylimits<Tab> <plug>\displaylimits' +exe s:pA8a.'-seplimits- :' +exe s:pA8a.'bigcap<Tab>`-\ \ â‹‚ <plug>\bigcap' +exe s:pA8a.'bigcup<Tab>`+\ \ ⋃ <plug>\bigcup' +exe s:pA8a.'bigodot<Tab>⊙ <plug>\bigodot' +exe s:pA8a.'bigoplus<Tab>⊕ <plug>\bigoplus' +exe s:pA8a.'bigotimes<Tab>⊗ <plug>\bigotimes' +exe s:pA8a.'bigsqcup<Tab>⊔ <plug>\bigsqcup' +exe s:pA8a.'biguplus<Tab>⊎ <plug>\biguplus' +exe s:pA8a.'bigvee<Tab>â‹ <plug>\bigvee' +exe s:pA8a.'bigwedge<Tab>â‹€ <plug>\bigwedge' +exe s:pA8a.'coprod<Tab>∠<plug>\coprod' +exe s:pA8a.'int<Tab>∫ <plug>\int' +exe s:pA8a.'iint<Tab>∬ <plug>\int' +exe s:pA8a.'iiint<Tab>∠<plug>\int' +exe s:pA8a.'oint<Tab>∮ <plug>\oint' +exe s:pA8a.'prod<Tab>∠<plug>\prod' +exe s:pA8a.'sum<Tab>∑ <plug>\sum' +" }}} +" {{{ BinaryOp +let s:pA8 = s:pA."&BinaryOp." +exe s:pA8.'pm<Tab>± <plug>\pm ' +exe s:pA8.'mp<Tab>∓ <plug>\mp ' +exe s:pA8.'dotplus<Tab>∔ <plug>\dotplus ' +exe s:pA8.'cdot<Tab>`.\ \ â‹… <plug>\cdot ' +exe s:pA8.'centerdot<Tab>â‹… <plug>\centerdot ' +exe s:pA8.'times<Tab>`*\ \ × <plug>\times ' +exe s:pA8.'ltimes<Tab>⋉ <plug>\ltimes ' +exe s:pA8.'rtimes<Tab>⋊ <plug>\rtimes ' +exe s:pA8.'leftthreetimes<Tab>â‹‹ <plug>\leftthreetimes ' +exe s:pA8.'rightthreetimes<Tab>⋌ <plug>\rightthreetimes ' +exe s:pA8.'div<Tab>÷ <plug>\div ' +exe s:pA8.'divideontimes<Tab>⋇ <plug>\divideontimes ' +exe s:pA8.'bmod<Tab> <plug>\bmod ' +exe s:pA8.'ast<Tab>∗ <plug>\ast ' +exe s:pA8.'star<Tab>⋆ <plug>\star ' +exe s:pA8.'setminus<Tab>`\\\ \ ∖ <plug>\setminus ' +exe s:pA8.'smallsetminus<Tab>∖ <plug>\smallsetminus ' +exe s:pA8.'diamond<Tab>â‹„ <plug>\diamond ' +exe s:pA8.'wr<Tab>≀ <plug>\wr ' +exe s:pA8.'intercal<Tab>⊺ <plug>\intercal ' +exe s:pA8.'circ<Tab>`@\ \ ∘ <plug>\circ ' +exe s:pA8.'bigcirc<Tab>â—‹ <plug>\bigcirc ' +exe s:pA8.'bullet<Tab>∙ <plug>\bullet ' +exe s:pA8.'cap<Tab>∩ <plug>\cap ' +exe s:pA8.'Cap<Tab>â‹’ <plug>\Cap ' +exe s:pA8.'cup<Tab>∪ <plug>\cup ' +exe s:pA8.'Cup<Tab>â‹“ <plug>\Cup ' +exe s:pA8.'sqcap<Tab>⊓ <plug>\sqcap ' +exe s:pA8.'sqcup<Tab>⊔ <plug>\sqcup' +exe s:pA8.'amalg<Tab> <plug>\amalg ' +exe s:pA8.'uplus<Tab>⊎ <plug>\uplus ' +exe s:pA8.'triangleleft<Tab>â— <plug>\triangleleft ' +exe s:pA8.'triangleright<Tab>â–· <plug>\triangleright ' +exe s:pA8.'bigtriangleup<Tab>â–³ <plug>\bigtriangleup ' +exe s:pA8.'bigtriangledown<Tab>â–½ <plug>\bigtriangledown ' +exe s:pA8.'vee<Tab>∨ <plug>\vee ' +exe s:pA8.'veebar<Tab>⊻ <plug>\veebar ' +exe s:pA8.'curlyvee<Tab>⋎ <plug>\curlyvee ' +exe s:pA8.'wedge<Tab>`&\ \ ∧ <plug>\wedge ' +exe s:pA8.'barwedge<Tab>⊼ <plug>\barwedge ' +exe s:pA8.'doublebarwedge<Tab>⌆ <plug>\doublebarwedge ' +exe s:pA8.'curlywedge<Tab>â‹ <plug>\curlywedge ' +exe s:pA8.'oplus<Tab>⊕ <plug>\oplus ' +exe s:pA8.'ominus<Tab>⊖ <plug>\ominus ' +exe s:pA8.'otimes<Tab>⊗ <plug>\otimes ' +exe s:pA8.'oslash<Tab>⊘ <plug>\oslash ' +exe s:pA8.'boxplus<Tab>⊞ <plug>\boxplus ' +exe s:pA8.'boxminus<Tab>⊟ <plug>\boxminus ' +exe s:pA8.'boxtimes<Tab>⊠<plug>\boxtimes ' +exe s:pA8.'boxdot<Tab>⊡ <plug>\boxdot ' +exe s:pA8.'odot<Tab>⊙ <plug>\odot ' +exe s:pA8.'circledast<Tab>⊛ <plug>\circledast ' +exe s:pA8.'circleddash<Tab>⊠<plug>\circleddash ' +exe s:pA8.'circledcirc<Tab>⊚ <plug>\circledcirc ' +exe s:pA8.'dagger<Tab>†<plug>\dagger ' +exe s:pA8.'ddagger<Tab>‡ <plug>\ddagger ' +exe s:pA8.'lhd<Tab>⊲ <plug>\lhd ' +exe s:pA8.'unlhd<Tab>⊴ <plug>\unlhd ' +exe s:pA8.'rhd<Tab>⊳ <plug>\rhd ' +exe s:pA8.'unrhd<Tab>⊵ <plug>\unrhd ' +" }}} +" {{{ Other1 +let s:pA9 = s:pA."&Other1." +" exe s:pA9.'hat<Tab>â <plug>\hat ' +exe s:pA9.'check<Tab>ÇŽ <plug>\check ' +exe s:pA9.'grave<Tab>à <plug>\grave ' +exe s:pA9.'acute<Tab>á <plug>\acute ' +exe s:pA9.'dot<Tab>ȧ <plug>\dot ' +exe s:pA9.'ddot<Tab>ä <plug>\ddot ' +exe s:pA9.'tilde<Tab>`,\ \ ã <plug>\tilde ' +exe s:pA9.'breve<Tab>ă <plug>\breve ' +exe s:pA9.'bar<Tab>Ä <plug>\bar ' +exe s:pA9.'vec<Tab>a⃗ <plug>\vec ' +exe s:pA9.'aleph<Tab>× <plug>\aleph ' +exe s:pA9.'hbar<Tab>â„ <plug>\hbar ' +exe s:pA9.'imath<Tab> <plug>\imath ' +exe s:pA9.'jmath<Tab> <plug>\jmath ' +exe s:pA9.'ell<Tab>â„“ <plug>\ell ' +exe s:pA9.'wp<Tab>℘ <plug>\wp ' +exe s:pA9.'Re<Tab>ℜ <plug>\Re ' +exe s:pA9.'Im<Tab>â„‘ <plug>\Im ' +exe s:pA9.'partial<Tab>∂ <plug>\partial ' +exe s:pA9.'infty<Tab>`8\ \ ∞ <plug>\infty ' +exe s:pA9.'prime<Tab>′ <plug>\prime ' +exe s:pA9.'emptyset<Tab>∅ <plug>\emptyset ' +exe s:pA9.'nabla<Tab>∇ <plug>\nabla ' +exe s:pA9.'surd<Tab>√ <plug>\surd ' +exe s:pA9.'top<Tab>⊤ <plug>\top ' +exe s:pA9.'bot<Tab>⊥ <plug>\bot ' +exe s:pA9.'angle<Tab>∠<plug>\angle ' +exe s:pA9.'triangle<Tab>â–³ <plug>\triangle ' +exe s:pA9.'backslash<Tab>\\ <plug>\backslash ' +exe s:pA9.'forall<Tab>∀ <plug>\forall ' +exe s:pA9.'exists<Tab>∃ <plug>\exists ' +exe s:pA9.'neg<Tab>¬ <plug>\neg ' +exe s:pA9.'flat<Tab>â™ <plug>\flat ' +exe s:pA9.'natural<Tab>â™® <plug>\natural ' +exe s:pA9.'sharp<Tab>♯ <plug>\sharp ' +exe s:pA9.'clubsuit<Tab>♣ <plug>\clubsuit ' +exe s:pA9.'diamondsuit<Tab>♢ <plug>\diamondsuit ' +exe s:pA9.'heartsuit<Tab>♡ <plug>\heartsuit ' +exe s:pA9.'spadesuit<Tab>â™ <plug>\spadesuit ' +exe s:pA9.'S<Tab>§ <plug>\S ' +exe s:pA9.'P<Tab>¶ <plug>\P' +" }}} +" {{{ MathCreating +let s:pA10 = s:pA."&MathCreating." +exe s:pA10.'not<Tab> <plug>\not' +exe s:pA10.'mkern<Tab> <plug>\mkern' +exe s:pA10.'mathbin<Tab> <plug>\mathbin' +exe s:pA10.'mathrel<Tab> <plug>\mathrel' +exe s:pA10.'stackrel<Tab> <plug>\stackrel' +exe s:pA10.'mathord<Tab> <plug>\mathord' +" }}} +" {{{ Styles +let s:pA11 = s:pA."&Styles." +exe s:pA11.'displaystyle<Tab> <plug>\displaystyle' +exe s:pA11.'textstyle<Tab> <plug>\textstyle' +exe s:pA11.'scritpstyle<Tab> <plug>\scritpstyle' +exe s:pA11.'scriptscriptstyle<Tab> <plug>\scriptscriptstyle' +" }}} +" {{{ MathDiacritics +let s:pA12 = s:pA."&MathDiacritics." +exe s:pA12.'acute{}<Tab>á <plug><C-r>=IMAP_PutTextWithMovement("\\acute{<++>}<++>")<cr>' +exe s:pA12.'bar{}<Tab>`_\ \ Ä <plug><C-r>=IMAP_PutTextWithMovement("\\bar{<++>}<++>")<cr>' +exe s:pA12.'breve{}<Tab>ă <plug><C-r>=IMAP_PutTextWithMovement("\\breve{<++>}<++>")<cr>' +exe s:pA12.'check{}<Tab>ÇŽ <plug><C-r>=IMAP_PutTextWithMovement("\\check{<++>}<++>")<cr>' +exe s:pA12.'ddot{}<Tab>`:\ \ ä <plug><C-r>=IMAP_PutTextWithMovement("\\ddot{<++>}<++>")<cr>' +exe s:pA12.'dot{}<Tab>`;\ \ ȧ <plug><C-r>=IMAP_PutTextWithMovement("\\dot{<++>}<++>")<cr>' +exe s:pA12.'grave{}<Tab>à <plug><C-r>=IMAP_PutTextWithMovement("\\grave{<++>}<++>")<cr>' +" exe s:pA12.'hat{}<Tab>`^\ \ â <plug><C-r>=IMAP_PutTextWithMovement("\\hat{<++>}<++>")<cr>' +exe s:pA12.'tilde{}<tab>`~\ \ ã <plug><C-r>=IMAP_PutTextWithMovement("\\tilde{<++>}<++>")<cr>' +exe s:pA12.'vec{}<Tab>a⃗ <plug><C-r>=IMAP_PutTextWithMovement("\\vec{<++>}<++>")<cr>' +exe s:pA12.'widehat{}<Tab> <plug><C-r>=IMAP_PutTextWithMovement("\\widehat{<++>}<++>")<cr>' +exe s:pA12.'widetilde{}<Tab> <plug><C-r>=IMAP_PutTextWithMovement("\\widetilde{<++>}<++>")<cr>' +exe s:pA12.'imath<Tab> <plug><C-r>=IMAP_PutTextWithMovement("\\imath")<cr>' +exe s:pA12.'jmath<Tab> <plug><C-r>=IMAP_PutTextWithMovement("\\jmath")<cr>' +" }}} +" {{{ OverlineAndCo +let s:pA13 = s:pA."&OverlineAndCo." +exe s:pA13.'overline{} <plug><C-r>=IMAP_PutTextWithMovement("\\overline{}")<cr>' +exe s:pA13.'underline{} <plug><C-r>=IMAP_PutTextWithMovement("\\underline{}")<cr>' +exe s:pA13.'overrightarrow{} <plug><C-r>=IMAP_PutTextWithMovement("\\overrightarrow{}")<cr>' +exe s:pA13.'overleftarrow{} <plug><C-r>=IMAP_PutTextWithMovement("\\overleftarrow{}")<cr>' +exe s:pA13.'overbrace{} <plug><C-r>=IMAP_PutTextWithMovement("\\overbrace{}")<cr>' +exe s:pA13.'underbrace{} <plug><C-r>=IMAP_PutTextWithMovement("\\underbrace{}")<cr>' +" }}} +" {{{ Symbols1 +let s:pA14a = s:pA."&Symbols1." +exe s:pA14a.'forall<Tab>∀ <plug>\forall ' +exe s:pA14a.'exists<Tab>∃ <plug>\exists ' +exe s:pA14a.'nexists<Tab>∄ <plug>\nexists ' +exe s:pA14a.'neg<Tab>¬ <plug>\neg ' +exe s:pA14a.'top<Tab>⊤ <plug>\top ' +exe s:pA14a.'bot<Tab>⊥ <plug>\bot ' +exe s:pA14a.'emptyset<Tab>∅ <plug>\emptyset ' +exe s:pA14a.'varnothing<Tab>⌀ <plug>\varnothing ' +exe s:pA14a.'infty<Tab>∞ <plug>\infty ' +exe s:pA14a.'aleph<Tab>× <plug>\aleph ' +exe s:pA14a.'beth<Tab>ב <plug>\beth ' +exe s:pA14a.'gimel<Tab>×’ <plug>\gimel ' +exe s:pA14a.'daleth<Tab>ד <plug>\daleth ' +exe s:pA14a.'hbar<Tab> <plug>\hbar ' +exe s:pA14a.'hslash<Tab>â„ <plug>\hslash ' +exe s:pA14a.'diagup<Tab>â„ <plug>\diagup ' +exe s:pA14a.'vert<Tab>\| <plug>\vert ' +exe s:pA14a.'Vert<Tab>∥ <plug>\Vert ' +exe s:pA14a.'backslash<Tab>\\ <plug>\backslash ' +exe s:pA14a.'diagdown<Tab> <plug>\diagdown ' +exe s:pA14a.'Bbbk<Tab>ᵕ <plug>\Bbbk ' +exe s:pA14a.'P<Tab>¶ <plug>\P ' +exe s:pA14a.'S<Tab>§ <plug>\S ' +" }}} +" {{{ Symbols2 +let s:pA14b = s:pA."&Symbols2." +exe s:pA14b.'# <plug>\# ' +exe s:pA14b.'% <plug>\% ' +exe s:pA14b.'_<Tab> <plug>\_ ' +exe s:pA14b.'$ <plug>\$ ' +exe s:pA14b.'& <plug>\& ' +exe s:pA14b.'imath<Tab> <plug>\imath ' +exe s:pA14b.'jmath<Tab> <plug>\jmath ' +exe s:pA14b.'ell<Tab>â„“ <plug>\ell ' +exe s:pA14b.'wp<Tab>℘ <plug>\wp ' +exe s:pA14b.'Re<Tab>ℜ <plug>\Re ' +exe s:pA14b.'Im<Tab>â„‘ <plug>\Im ' +exe s:pA14b.'prime<Tab>′ <plug>\prime ' +exe s:pA14b.'backprime<Tab>‵ <plug>\backprime ' +exe s:pA14b.'nabla<Tab>∇ <plug>\nabla ' +exe s:pA14b.'surd<Tab>√ <plug>\surd ' +exe s:pA14b.'flat<Tab>â™ <plug>\flat ' +exe s:pA14b.'sharp<Tab>♯ <plug>\sharp ' +exe s:pA14b.'natural<Tab>â™® <plug>\natural ' +exe s:pA14b.'eth<Tab>ð <plug>\eth ' +exe s:pA14b.'bigstar<Tab>★ <plug>\bigstar ' +exe s:pA14b.'circledS<Tab>Ⓢ <plug>\circledS ' +exe s:pA14b.'Finv<Tab>Ⅎ <plug>\Finv ' +exe s:pA14b.'dag<Tab>†<plug>\dag ' +exe s:pA14b.'ddag<Tab>‡ <plug>\ddag ' +" }}} +" {{{ Symbols3 +let s:pA14c = s:pA."&Symbols3." +exe s:pA14c.'angle<Tab>∠<plug>\angle ' +exe s:pA14c.'measuredangle<Tab>∡ <plug>\measuredangle ' +exe s:pA14c.'sphericalangle<Tab>∢ <plug>\sphericalangle ' +exe s:pA14c.'spadesuit<Tab>â™ <plug>\spadesuit ' +exe s:pA14c.'heartsuit<Tab>♡ <plug>\heartsuit ' +exe s:pA14c.'diamondsuit<Tab>♢ <plug>\diamondsuit ' +exe s:pA14c.'clubsuit<Tab>♣ <plug>\clubsuit ' +exe s:pA14c.'lozenge<Tab>â—Š <plug>\lozenge ' +exe s:pA14c.'blacklozenge<Tab>â—† <plug>\blacklozenge ' +exe s:pA14c.'Diamond<Tab>â—‡ <plug>\Diamond ' +exe s:pA14c.'triangle<Tab>â–³ <plug>\triangle ' +exe s:pA14c.'vartriangle<Tab>â–³ <plug>\vartriangle ' +exe s:pA14c.'blacktriangle<Tab>â–² <plug>\blacktriangle ' +exe s:pA14c.'triangledown<Tab>â–½ <plug>\triangledown ' +exe s:pA14c.'blacktriangledown<Tab>â–¼ <plug>\blacktriangledown ' +exe s:pA14c.'Box<Tab>â–¡ <plug>\Box ' +exe s:pA14c.'square<Tab>â–¡ <plug>\square ' +exe s:pA14c.'blacksquare<Tab>â– <plug>\blacksquare ' +exe s:pA14c.'complement<Tab>∠<plug>\complement ' +exe s:pA14c.'mho<Tab>â„§ <plug>\mho ' +exe s:pA14c.'Game<Tab>â… <plug>\Game ' +exe s:pA14c.'partial<Tab>`6\ \ ∂ <plug>\partial ' +exe s:pA14c.'smallint<Tab>∫ <plug>\smallint ' +" }}} +" {{{ Logic +let s:pA15 = s:pA."&Logic." +exe s:pA15.'lnot<Tab>¬ <plug>\lnot ' +exe s:pA15.'lor<Tab>∨ <plug>\lor ' +exe s:pA15.'land<Tab>∧ <plug>\land ' +" }}} +" {{{ Limits1 +let s:pA16 = s:pA."&Limits1." +exe s:pA16.'left<Tab>( <plug>\left' +exe s:pA16.'right<Tab>) <plug>\right' +exe s:pA16.'-sepbigl- :' +exe s:pA16.'bigl<Tab> <plug>\bigl' +exe s:pA16.'Bigl<Tab> <plug>\Bigl' +exe s:pA16.'biggl<Tab> <plug>\biggl' +exe s:pA16.'Biggl<Tab> <plug>\Biggl' +exe s:pA16.'-sepbigr- :' +exe s:pA16.'bigr<Tab> <plug>\bigr' +exe s:pA16.'Bigr<Tab> <plug>\Bigr' +exe s:pA16.'biggr<Tab> <plug>\biggr' +exe s:pA16.'Biggr<Tab> <plug>\Biggr' +exe s:pA16.'-sepbig- :' +exe s:pA16.'big<Tab> <plug>\big' +exe s:pA16.'bigm<Tab> <plug>\bigm' +exe s:pA16.'-sepfloor- :' +exe s:pA16.'lfloor<Tab>⌊ <plug>\lfloor ' +exe s:pA16.'lceil<Tab>⌈ <plug>\lceil ' +exe s:pA16.'rfloor<Tab>⌋ <plug>\rfloor ' +exe s:pA16.'rceil<Tab>⌉ <plug>\rceil ' +exe s:pA16.'-sepangle- :' +exe s:pA16.'langle<Tab>〈 <plug>\langle ' +exe s:pA16.'rangle<Tab>〉 <plug>\rangle ' +" }}} +" {{{ Limits2 +let s:pA16a = s:pA."&Limits2." +exe s:pA16a.'ulcorner<Tab>⌜ <plug>\ulcorner ' +exe s:pA16a.'urcorner<Tab>⌠<plug>\urcorner ' +exe s:pA16a.'llcorner<Tab>⌞ <plug>\llcorner ' +exe s:pA16a.'rlcorner<Tab>⌟ <plug>\rlcorner ' +exe s:pA16a.'-sepcorner- :' +exe s:pA16a.'vert<Tab>\| <plug>\vert ' +exe s:pA16a.'Vert<Tab>∥ <plug>\Vert ' +exe s:pA16a.'lvert<Tab> <plug>\lvert ' +exe s:pA16a.'lVert<Tab> <plug>\lVert ' +exe s:pA16a.'rvert<Tab> <plug>\rvert ' +exe s:pA16a.'rVert<Tab> <plug>\rVert ' +exe s:pA16a.'uparrow<Tab>↑ <plug>\uparrow ' +exe s:pA16a.'Uparrow<Tab>⇑ <plug>\Uparrow ' +exe s:pA16a.'downarrow<Tab>↓ <plug>\downarrow ' +exe s:pA16a.'Downarrow<Tab>⇓ <plug>\Downarrow ' +exe s:pA16a.'updownarrow<Tab>↕ <plug>\updownarrow ' +exe s:pA16a.'Updownarrow<Tab>⇕ <plug>\Updownarrow ' +exe s:pA16a.'lgroup<Tab> <plug>\lgroup ' +exe s:pA16a.'rgroup<Tab> <plug>\rgroup ' +exe s:pA16a.'lmoustache<Tab>∫ <plug>\lmoustache ' +exe s:pA16a.'rmoustache<Tab> <plug>\rmoustache ' +exe s:pA16a.'arrowvert<Tab> <plug>\arrowvert ' +exe s:pA16a.'Arrowvert<Tab> <plug>\Arrowvert ' +exe s:pA16a.'bracevert<Tab> <plug>\bracevert ' +" }}} +" {{{ Log-likes +let s:pA17 = s:pA."Lo&g-likes." +exe s:pA17.'arccos<Tab> <plug>\arccos ' +exe s:pA17.'arcsin<Tab> <plug>\arcsin ' +exe s:pA17.'arctan<Tab> <plug>\arctan ' +exe s:pA17.'arg<Tab> <plug>\arg ' +exe s:pA17.'cos<Tab> <plug>\cos ' +exe s:pA17.'cosh<Tab> <plug>\cosh ' +exe s:pA17.'cot<Tab> <plug>\cot ' +exe s:pA17.'coth<Tab> <plug>\coth ' +exe s:pA17.'csc<Tab> <plug>\csc ' +exe s:pA17.'deg<Tab> <plug>\deg ' +exe s:pA17.'det<Tab> <plug>\det ' +exe s:pA17.'dim<Tab> <plug>\dim ' +exe s:pA17.'exp<Tab> <plug>\exp ' +exe s:pA17.'gcd<Tab> <plug>\gcd ' +exe s:pA17.'hom<Tab> <plug>\hom ' +exe s:pA17.'inf<Tab> <plug>\inf ' +exe s:pA17.'injlim<Tab> <plug>\injlim ' +exe s:pA17.'ker<Tab> <plug>\ker ' +exe s:pA17.'lg<Tab> <plug>\lg ' +exe s:pA17.'lim<Tab> <plug>\lim ' +exe s:pA17.'liminf<Tab> <plug>\liminf ' +exe s:pA17.'limsup<Tab> <plug>\limsup ' +exe s:pA17.'ln<Tab> <plug>\ln ' +exe s:pA17.'log<Tab> <plug>\log ' +exe s:pA17.'max<Tab> <plug>\max ' +exe s:pA17.'min<Tab> <plug>\min ' +exe s:pA17.'Pr<Tab> <plug>\Pr ' +exe s:pA17.'projlim<Tab> <plug>\projlim ' +exe s:pA17.'sec<Tab> <plug>\sec ' +exe s:pA17.'sin<Tab> <plug>\sin ' +exe s:pA17.'sinh<Tab> <plug>\sinh ' +exe s:pA17.'sup<Tab> <plug>\sup ' +exe s:pA17.'tan<Tab> <plug>\tan ' +exe s:pA17.'tanh<Tab> <plug>\tanh ' +exe s:pA17.'varlimsup<Tab> <plug>\varlimsup ' +exe s:pA17.'varliminf<Tab> <plug>\varliminf ' +exe s:pA17.'varinjlim<Tab> <plug>\varinjlim ' +exe s:pA17.'varprojlim<Tab> <plug>\varprojlim ' +" }}} +" {{{ MathSpacing +let s:pA18 = s:pA."MathSpacing." +exe s:pA18.', <plug>\, ' +exe s:pA18.': <plug>\: ' +exe s:pA18.'; <plug>\; ' +exe s:pA18.'[space] <plug>\ ' +exe s:pA18.'quad<Tab> <plug>\quad ' +exe s:pA18.'qquad<Tab> <plug>\qquad ' +exe s:pA18.'! <plug>\! ' +exe s:pA18.'thinspace<Tab> <plug>\thinspace ' +exe s:pA18.'medspace<Tab> <plug>\medspace ' +exe s:pA18.'thickspace<Tab> <plug>\thickspace ' +exe s:pA18.'negthinspace<Tab> <plug>\negthinspace ' +exe s:pA18.'negmedspace<Tab> <plug>\negmedspace ' +exe s:pA18.'negthickspace<Tab> <plug>\negthickspace ' +" 1}}} + +" vim:fdm=marker:ff=unix:noet:ts=4:sw=4:fenc=utf-8 diff --git a/.vim/ftplugin/latex-suite/mathmacros.vim b/.vim/ftplugin/latex-suite/mathmacros.vim new file mode 100644 index 0000000..f160db5 --- /dev/null +++ b/.vim/ftplugin/latex-suite/mathmacros.vim @@ -0,0 +1,730 @@ +"============================================================================= +" File: mathmacros.vim +" Author: Mikolaj Machowski +" Created: Tue Apr 23 06:00 PM 2002 PST +" +" Description: macros for everything mathematical in latex. +"============================================================================= + +if !(has('gui_running') && g:Tex_MathMenus && g:Tex_Menus) + finish +endif + +let s:MathMenuName = g:Tex_MenuPrefix.'&Math.' + +function! Tex_MathMenuRemove() + exe 'silent! aunmenu '.s:MathMenuName +endfunction + +let s:pA = 'amenu <silent> '.g:Tex_NextMenuLocation.' '.s:MathMenuName +let g:Tex_NextMenuLocation = g:Tex_NextMenuLocation + 1 + +" brackets and dollars {{{ +exe s:pA.'\\&[\ \\] <plug><C-r>=IMAP_PutTextWithMovement("\\[<++>\\]<++>")<cr>' +exe s:pA.'\\&(\ \\) <plug><C-r>=IMAP_PutTextWithMovement("\\(<++>\\)<++>")<cr>' +exe s:pA.'&$\ $ <plug>$$' +exe s:pA.'-sepmath1- :' +" }}} +" MATH arrows {{{ +let s:pA1 = s:pA."&Arrows." +exe s:pA1.'Leftarrow <plug>\leftarrow ' +exe s:pA1.'leftarrow <plug>\leftarrow' +exe s:pA1.'longleftarrow <plug>\longleftarrow ' +exe s:pA1.'Leftarrow <plug>\Leftarrow ' +exe s:pA1.'Longleftarrow <plug>\Longleftarrow ' +exe s:pA1.'rightarrow <plug>\rightarrow ' +exe s:pA1.'longrightarrow <plug>\longrightarrow ' +exe s:pA1.'Rightarrow <plug>\Rightarrow ' +exe s:pA1.'Longrightarrow <plug>\Longrightarrow ' +exe s:pA1.'leftrightarrow <plug>\leftrightarrow ' +exe s:pA1.'longleftrightarrow <plug>\longleftrightarrow ' +exe s:pA1.'Leftrightarrow <plug>\Leftrightarrow ' +exe s:pA1.'Longleftrightarrow <plug>\Longleftrightarrow ' +exe s:pA1.'uparrow <plug>\uparrow ' +exe s:pA1.'Uparrow <plug>\Uparrow ' +exe s:pA1.'downarrow <plug>\downarrow ' +exe s:pA1.'Downarrow <plug>\Downarrow ' +exe s:pA1.'updownarrow <plug>\updownarrow ' +exe s:pA1.'Updownarrow <plug>\Updownarrow ' +exe s:pA1.'nearrow <plug>\nearrow ' +exe s:pA1.'searrow <plug>\searrow ' +exe s:pA1.'swarrow <plug>\swarrow ' +exe s:pA1.'nwarrow <plug>\nwarrow ' +exe s:pA1.'mapsto <plug>\mapsto ' +exe s:pA1.'leadsto <plug>\leadsto ' +exe s:pA1.'longmapsto <plug>\longmapsto ' +exe s:pA1.'hookleftarrow <plug>\hookleftarrow ' +exe s:pA1.'hookrightarrow <plug>\hookrightarrow ' +exe s:pA1.'leftharpoonup <plug>\leftharpoonup ' +exe s:pA1.'leftharpoondown <plug>\leftharpoondown ' +exe s:pA1.'rightharpoonup <plug>\rightharpoonup ' +exe s:pA1.'rightharpoondown <plug>\rightharpoondown ' +exe s:pA1.'rightleftharpoons <plug>\rightleftharpoons ' +exe s:pA1.'overleftarrow <plug>\overleftarrow ' +exe s:pA1.'overrightarrow <plug>\overrightarrow ' +exe s:pA1.'overleftrightarrow <plug>\overleftrightarrow ' +exe s:pA1.'underleftarrow <plug>\underleftarrow ' +exe s:pA1.'underrightarrow <plug>\underrightarrow ' +exe s:pA1.'underleftrightarrow <plug>\underleftrightarrow ' +exe s:pA1.'xleftarrow <plug>\xleftarrow ' +exe s:pA1.'xrightarrow <plug>\xrightarrow ' +" }}} + + +" MATH nArrows {{{ +let s:pA1a = s:pA."&nArrows." +exe s:pA1a.'nleftarrow <plug>\nleftarrow ' +exe s:pA1a.'nLeftarrow <plug>\nLeftarrow ' +exe s:pA1a.'nleftrightarrow <plug>\nleftrightarrow ' +exe s:pA1a.'nrightarrow <plug>\nrightarrow ' +exe s:pA1a.'nRightarrow <plug>\nRightarrow ' +" }}} +" MATH Arrows2 {{{ +let s:pA1a = s:pA."Arrows2." +exe s:pA1a.'dashleftarrow <plug>\dashleftarrow ' +exe s:pA1a.'leftleftarrows <plug>\leftleftarrows ' +exe s:pA1a.'leftrightarrows <plug>\leftrightarrows ' +exe s:pA1a.'Lleftarrow <plug>\Lleftarrow ' +exe s:pA1a.'twoheadleftarrow <plug>\twoheadleftarrow ' +exe s:pA1a.'leftarrowtail <plug>\leftarrowtail ' +exe s:pA1a.'leftrightharpoons <plug>\leftrightharpoons ' +exe s:pA1a.'Lsh <plug>\Lsh ' +exe s:pA1a.'looparrowleft <plug>\looparrowleft ' +exe s:pA1a.'curvearrowleft <plug>\curvearrowleft ' +exe s:pA1a.'circlearrowleft <plug>\circlearrowleft ' +exe s:pA1a.'dashrightarrow <plug>\dashrightarrow ' +exe s:pA1a.'rightrightarrows <plug>\rightrightarrows ' +exe s:pA1a.'rightleftarrows <plug>\rightleftarrows ' +exe s:pA1a.'Rrightarrow <plug>\Rrightarrow ' +exe s:pA1a.'twoheadrightarrow <plug>\twoheadrightarrow ' +exe s:pA1a.'rightarrowtail <plug>\rightarrowtail ' +exe s:pA1a.'rightleftharpoons <plug>\rightleftharpoons ' +exe s:pA1a.'Rsh <plug>\Rsh ' +exe s:pA1a.'looparrowright <plug>\looparrowright ' +exe s:pA1a.'curvearrowright <plug>\curvearrowright ' +exe s:pA1a.'circlearrowright <plug>\circlearrowright ' +exe s:pA1a.'multimap <plug>\multimap ' +exe s:pA1a.'upuparrows <plug>\upuparrows ' +exe s:pA1a.'downdownarrows <plug>\downdownarrows ' +exe s:pA1a.'upharpoonleft <plug>\upharpoonleft ' +exe s:pA1a.'upharpoonright <plug>\upharpoonright ' +exe s:pA1a.'downharpoonleft <plug>\downharpoonleft ' +exe s:pA1a.'downharpoonright <plug>\downharpoonright ' +exe s:pA1a.'rightsquigarrow <plug>\rightsquigarrow ' +exe s:pA1a.'leftrightsquigarrow <plug>\leftrightsquigarrow ' +" }}} +" MATH Fonts {{{ +let s:pA2a = s:pA."&MathFonts." +" exe s:pA2a.'mathbf{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathbf{<++>}<++>")<cr>' +exe s:pA2a.'mathrm{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathrm{<++>}<++>")<cr>' +exe s:pA2a.'mathsf{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathsf{<++>}<++>")<cr>' +exe s:pA2a.'mathtt{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathtt{<++>}<++>")<cr>' +exe s:pA2a.'mathit{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathit{<++>}<++>")<cr>' +exe s:pA2a.'mathfrak{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathfrak{<++>}<++>")<cr>' +exe s:pA2a.'mathcal{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathcal{<++>}<++>")<cr>' +exe s:pA2a.'mathscr{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathscr{<++>}<++>")<cr>' +exe s:pA2a.'mathbb{} <plug><C-r>=IMAP_PutTextWithMovement("\\mathbb{<++>}<++>")<cr>' +" }}} +" Greek Letters small {{{ +let s:pA2 = s:pA."&Greek.&Small." +exe s:pA2.'alpha<Tab>`a <plug>\alpha ' +exe s:pA2.'beta<Tab>`b <plug>\beta ' +exe s:pA2.'gamma<Tab>`g <plug>\gamma ' +exe s:pA2.'delta<Tab>`d <plug>\delta ' +exe s:pA2.'epsilon <plug>\epsilon ' +exe s:pA2.'varepsilon<Tab>`e <plug>\varepsilon ' +exe s:pA2.'zeta<Tab>`z <plug>\zeta ' +exe s:pA2.'eta<Tab>`h <plug>\eta ' +exe s:pA2.'theta<Tab>`q <plug>\theta ' +exe s:pA2.'vartheta <plug>\vartheta ' +exe s:pA2.'iota<Tab>`i <plug>\iota ' +exe s:pA2.'kappa<Tab>`k <plug>\kappa ' +exe s:pA2.'lambda<Tab>`l <plug>\lambda ' +exe s:pA2.'mu<Tab>`m <plug>\mu ' +exe s:pA2.'nu<Tab>`n <plug>\nu ' +exe s:pA2.'xi<Tab>`x <plug>\xi ' +exe s:pA2.'pi<Tab>`p <plug>\pi ' +exe s:pA2.'varpi <plug>\varpi ' +exe s:pA2.'rho<Tab>`r <plug>\rho ' +exe s:pA2.'varrho <plug>\varrho ' +exe s:pA2.'sigma<Tab>`s <plug>\sigma ' +exe s:pA2.'varsigma<Tab>`v <plug>\varsigma ' +exe s:pA2.'tau<Tab>`t <plug>\tau ' +exe s:pA2.'upsilon<Tab>`u <plug>\upsilon ' +exe s:pA2.'phi <plug>\phi ' +exe s:pA2.'varphi<Tab>`f <plug>\varphi ' +exe s:pA2.'chi<Tab>`c <plug>\chi ' +exe s:pA2.'psi<Tab>`y <plug>\psi ' +exe s:pA2.'omega<Tab>`w <plug>\omega ' +" }}} +" Greek Letters big {{{ +let s:pA3 = s:pA.'&Greek.&Big.' +exe s:pA3.'Alpha<Tab>`A <plug>\Alpha ' +exe s:pA3.'Beta<Tab>`B <plug>\Beta ' +exe s:pA3.'Gamma<Tab>`G <plug>\Gamma ' +exe s:pA3.'Delta<Tab>`D <plug>\Delta ' +exe s:pA3.'Epsilon<Tab>`E <plug>\Epsilon ' +exe s:pA3.'Zeta<Tab>`Z <plug>\mathrm{Z} ' +exe s:pA3.'Eta<Tab>`H <plug>\Eta ' +exe s:pA3.'Theta <plug>\Theta ' +exe s:pA3.'Iota <plug>\mathrm{I} ' +exe s:pA3.'Kappa<Tab>`K <plug>\Kappa ' +exe s:pA3.'Lambda<Tab>`L <plug>\Lambda ' +exe s:pA3.'Mu<Tab>`M <plug>\Mu ' +exe s:pA3.'Nu<Tab>`N <plug>\Nu ' +exe s:pA3.'Xi<Tab>`X <plug>\Xi ' +exe s:pA3.'Pi<Tab>`P <plug>\Pi ' +exe s:pA3.'Rho<Tab>`R <plug>\Rho ' +exe s:pA3.'Sigma<Tab>`S <plug>\Sigma ' +exe s:pA3.'Tau<Tab>`T <plug>\Tau ' +exe s:pA3.'Upsilon<Tab>`U <plug>\Upsilon ' +exe s:pA3.'Phi <plug>\Phi ' +exe s:pA3.'Chi<Tab>`C <plug>\Chi ' +exe s:pA3.'Psi<Tab>`Y <plug>\Psi ' +exe s:pA3.'Omega<Tab>`W <plug>\Omega ' +" }}} +" BinaryRel1 {{{ +let s:pA4 = s:pA."&BinaryRel1." +exe s:pA4.'ll <plug>\ll ' +exe s:pA4.'lll <plug>\lll ' +exe s:pA4.'leqslant <plug>\leqslant ' +exe s:pA4.'leq <plug>\leq ' +exe s:pA4.'leqq <plug>\leqq ' +exe s:pA4.'eqslantless <plug>\eqslantless ' +exe s:pA4.'lessdot <plug>\lessdot ' +exe s:pA4.'prec <plug>\prec ' +exe s:pA4.'preceq <plug>\preceq ' +exe s:pA4.'preccurlyeq <plug>\preccurlyeq ' +exe s:pA4.'curlyeqprec <plug>\curlyeqprec ' +exe s:pA4.'lesssim <plug>\lesssim ' +exe s:pA4.'lessapprox <plug>\lessapprox ' +exe s:pA4.'precsim <plug>\precsim ' +exe s:pA4.'precapprox <plug>\precapprox ' +exe s:pA4.'in <plug>\in ' +exe s:pA4.'subset<Tab>`( <plug>\subset ' +exe s:pA4.'Subset<Tab>`) <plug>\Subset ' +exe s:pA4.'subseteq <plug>\subseteq ' +exe s:pA4.'subseteqq <plug>\subseteqq ' +exe s:pA4.'sqsubset <plug>\sqsubset ' +exe s:pA4.'sqsubseteq <plug>\sqsubseteq ' +exe s:pA4.'smile <plug>\smile ' +exe s:pA4.'smallsmile <plug>\smallsmile ' +exe s:pA4.'parallel <plug>\parallel ' +exe s:pA4.'shortparallel <plug>\shortparallel ' +exe s:pA4.'dashv <plug>\dashv ' +exe s:pA4.'vdash <plug>\vdash ' +exe s:pA4.'vDash <plug>\vDash ' +exe s:pA4.'models <plug>\models ' +exe s:pA4.'therefore <plug>\therefore ' +exe s:pA4.'backepsilon <plug>\backepsilon ' +" }}} +" nBinaryRel1 {{{ +let s:pA4a = s:pA."&nBinaryRel1." +exe s:pA4a.'nless <plug>\nless ' +exe s:pA4a.'nleqslant <plug>\nleqslant ' +exe s:pA4a.'nleq <plug>\nleq ' +exe s:pA4a.'lneq <plug>\lneq ' +exe s:pA4a.'nleqq <plug>\nleqq ' +exe s:pA4a.'lneqq <plug>\lneqq ' +exe s:pA4a.'lvertneqq <plug>\lvertneqq ' +exe s:pA4a.'nprec <plug>\nprec ' +exe s:pA4a.'npreceq <plug>\npreceq ' +exe s:pA4a.'precneqq <plug>\precneqq ' +exe s:pA4a.'lnsim <plug>\lnsim ' +exe s:pA4a.'lnapprox <plug>\lnapprox ' +exe s:pA4a.'precnsim <plug>\precnsim ' +exe s:pA4a.'precnapprox <plug>\precnapprox ' +exe s:pA4a.'notin <plug>\notin ' +exe s:pA4a.'nsubseteq <plug>\nsubseteq ' +exe s:pA4a.'varsubsetneq <plug>\varsubsetneq ' +exe s:pA4a.'subsetneq <plug>\subsetneq ' +exe s:pA4a.'nsubseteqq <plug>\nsubseteqq ' +exe s:pA4a.'varsubsetneqq <plug>\varsubsetneqq ' +exe s:pA4a.'subsetneqq <plug>\subsetneqq ' +exe s:pA4a.'nparallel <plug>\nparallel ' +exe s:pA4a.'nshortparallel <plug>\nshortparallel ' +exe s:pA4a.'nvdash <plug>\nvdash ' +exe s:pA4a.'nvDash <plug>\nvDash ' +" }}} +" BinaryRel2 {{{ +let s:pA5 = s:pA."&BinaryRel2." +exe s:pA5.'gg <plug>\gg ' +exe s:pA5.'ggg <plug>\ggg ' +exe s:pA5.'gggtr <plug>\gggtr ' +exe s:pA5.'geqslant <plug>\geqslant ' +exe s:pA5.'geq <plug>\geq ' +exe s:pA5.'geqq <plug>\geqq ' +exe s:pA5.'eqslantgtr <plug>\eqslantgtr ' +exe s:pA5.'gtrdot <plug>\gtrdot ' +exe s:pA5.'succ <plug>\succ ' +exe s:pA5.'succeq <plug>\succeq ' +exe s:pA5.'succcurlyeq <plug>\succcurlyeq ' +exe s:pA5.'curlyeqsucc <plug>\curlyeqsucc ' +exe s:pA5.'gtrsim <plug>\gtrsim ' +exe s:pA5.'gtrapprox <plug>\gtrapprox ' +exe s:pA5.'succsim <plug>\succsim ' +exe s:pA5.'succapprox <plug>\succapprox ' +exe s:pA5.'ni <plug>\ni ' +exe s:pA5.'owns <plug>\owns ' +exe s:pA5.'supset <plug>\supset ' +exe s:pA5.'Supset <plug>\Supset ' +exe s:pA5.'supseteq <plug>\supseteq ' +exe s:pA5.'supseteqq <plug>\supseteqq ' +exe s:pA5.'sqsupset <plug>\sqsupset ' +exe s:pA5.'sqsupseteq <plug>\sqsupseteq ' +exe s:pA5.'frown <plug>\frown ' +exe s:pA5.'smallfrown <plug>\smallfrown ' +exe s:pA5.'mid <plug>\mid ' +exe s:pA5.'shortmid <plug>\shortmid ' +exe s:pA5.'between <plug>\between ' +exe s:pA5.'Vdash <plug>\Vdash ' +exe s:pA5.'bowtie <plug>\bowtie ' +exe s:pA5.'Join <plug>\Join ' +exe s:pA5.'pitchfork <plug>\pitchfork ' +" }}} +" {{{ nBinaryRel2 +let s:pA5a = s:pA."n&BinaryRel2." "TODO: dorobiæ logarytmy +exe s:pA5a.'ngtr <plug>\ngtr ' +exe s:pA5a.'ngeqslant <plug>\ngeqslant ' +exe s:pA5a.'ngeq <plug>\ngeq ' +exe s:pA5a.'gneq <plug>\gneq ' +exe s:pA5a.'ngeqq <plug>\ngeqq ' +exe s:pA5a.'gneqq <plug>\gneqq ' +exe s:pA5a.'nsucc <plug>\nsucc ' +exe s:pA5a.'nsucceq <plug>\nsucceq ' +exe s:pA5a.'succneqq <plug>\succneqq ' +exe s:pA5a.'gnsim <plug>\gnsim ' +exe s:pA5a.'gnapprox <plug>\gnapprox ' +exe s:pA5a.'succnsim <plug>\succnsim ' +exe s:pA5a.'succnapprox <plug>\succnapprox ' +exe s:pA5a.'nsupseteq <plug>\nsupseteq ' +exe s:pA5a.'varsupsetneq <plug>\varsupsetneq ' +exe s:pA5a.'supsetneq <plug>\supsetneq ' +exe s:pA5a.'nsupseteqq <plug>\nsupseteqq ' +exe s:pA5a.'varsupsetneqq <plug>\varsupsetneqq ' +exe s:pA5a.'supsetneqq <plug>\supsetneqq ' +exe s:pA5a.'nmid <plug>\nmid ' +exe s:pA5a.'nshortmid <plug>\nshortmid ' +exe s:pA5a.'nVdash <plug>\nVdash ' +" }}} +" {{{ BinaryRel3 +let s:pA6 = s:pA."&BinaryRel3." +exe s:pA6.'doteq <plug>\doteq ' +exe s:pA6.'circeq <plug>\circeq ' +exe s:pA6.'eqcirc <plug>\eqcirc ' +exe s:pA6.'risingdotseq <plug>\risingdotseq ' +exe s:pA6.'doteqdot <plug>\doteqdot ' +exe s:pA6.'Doteq <plug>\Doteq ' +exe s:pA6.'fallingdotseq <plug>\fallingdotseq ' +exe s:pA6.'triangleq <plug>\triangleq ' +exe s:pA6.'bumpeq <plug>\bumpeq ' +exe s:pA6.'Bumpeq <plug>\Bumpeq ' +exe s:pA6.'equiv<Tab>`= <plug>\equiv ' +exe s:pA6.'sim <plug>\sim ' +exe s:pA6.'thicksim <plug>\thicksim ' +exe s:pA6.'backsim <plug>\backsim ' +exe s:pA6.'simeq <plug>\simeq ' +exe s:pA6.'backsimeq <plug>\backsimeq ' +exe s:pA6.'cong <plug>\cong ' +exe s:pA6.'approx<tab>=~ <plug>\approx ' +exe s:pA6.'thickapprox <plug>\thickapprox ' +exe s:pA6.'approxeq <plug>\approxeq ' +exe s:pA6.'blacktriangleleft <plug>\blacktriangleleft ' +exe s:pA6.'vartriangleleft <plug>\vartriangleleft ' +exe s:pA6.'trianglelefteq <plug>\trianglelefteq ' +exe s:pA6.'blacktriangleright <plug>\blacktriangleright ' +exe s:pA6.'vartriangleright <plug>\vartriangleright ' +exe s:pA6.'trianglerighteq <plug>\trianglerighteq ' +exe s:pA6.'perp <plug>\perp ' +exe s:pA6.'asymp <plug>\asymp ' +exe s:pA6.'Vvdash <plug>\Vvdash ' +exe s:pA6.'propto <plug>\propto ' +exe s:pA6.'varpropto <plug>\varpropto ' +exe s:pA6.'because <plug>\because ' +" }}} +" {{{ nBinaryRel3 +let s:pA6a = s:pA."&nBinaryRel3." +exe s:pA6a.'neq <plug>\neq ' +exe s:pA6a.'nsim <plug>\nsim ' +exe s:pA6a.'ncong <plug>\ncong ' +exe s:pA6a.'ntriangleleft <plug>\ntriangleleft ' +exe s:pA6a.'ntrianglelefteq <plug>\ntrianglelefteq ' +exe s:pA6a.'ntriangleright <plug>\ntriangleright ' +exe s:pA6a.'ntrianglerighteq <plug>\ntrianglerighteq ' +" }}} +" {{{ BinaryRel4 +let s:pA7 = s:pA."&BinaryRel4." +exe s:pA7.'lessgtr <plug>\lessgtr ' +exe s:pA7.'gtrless <plug>\gtrless ' +exe s:pA7.'lesseqgtr <plug>\lesseqgtr ' +exe s:pA7.'gtreqless <plug>\gtreqless ' +exe s:pA7.'lesseqqgtr <plug>\lesseqqgtr ' +exe s:pA7.'gtreqqless <plug>\gtreqqless ' +" }}} +" {{{ BigOp +let s:pA8a = s:pA."&BigOp." +exe s:pA8a.'limits <plug>\limits' +exe s:pA8a.'nolimits <plug>\nolimits' +exe s:pA8a.'displaylimits <plug>\displaylimits' +exe s:pA8a.'-seplimits- :' +exe s:pA8a.'bigcap<Tab>`- <plug>\bigcap' +exe s:pA8a.'bigcup<Tab>`+ <plug>\bigcup' +exe s:pA8a.'bigodot <plug>\bigodot' +exe s:pA8a.'bigoplus <plug>\bigoplus' +exe s:pA8a.'bigotimes <plug>\bigotimes' +exe s:pA8a.'bigsqcup <plug>\bigsqcup' +exe s:pA8a.'biguplus <plug>\biguplus' +exe s:pA8a.'bigvee <plug>\bigvee' +exe s:pA8a.'bigwedge <plug>\bigwedge' +exe s:pA8a.'coprod <plug>\coprod' +exe s:pA8a.'int <plug>\int' +exe s:pA8a.'oint <plug>\oint' +exe s:pA8a.'prod <plug>\prod' +exe s:pA8a.'sum <plug>\sum' +" }}} +" {{{ BinaryOp +let s:pA8 = s:pA."&BinaryOp." +exe s:pA8.'pm <plug>\pm ' +exe s:pA8.'mp <plug>\mp ' +exe s:pA8.'dotplus <plug>\dotplus ' +exe s:pA8.'cdot<Tab>`. <plug>\cdot ' +exe s:pA8.'centerdot <plug>\centerdot ' +exe s:pA8.'times<Tab>`* <plug>\times ' +exe s:pA8.'ltimes <plug>\ltimes ' +exe s:pA8.'rtimes <plug>\rtimes ' +exe s:pA8.'leftthreetimes <plug>\leftthreetimes ' +exe s:pA8.'rightthreetimes <plug>\rightthreetimes ' +exe s:pA8.'div <plug>\div ' +exe s:pA8.'divideontimes <plug>\divideontimes ' +exe s:pA8.'bmod <plug>\bmod ' +exe s:pA8.'ast <plug>\ast ' +exe s:pA8.'star <plug>\star ' +exe s:pA8.'setminus<Tab>`\\ <plug>\setminus ' +exe s:pA8.'smallsetminus <plug>\smallsetminus ' +exe s:pA8.'diamond <plug>\diamond ' +exe s:pA8.'wr <plug>\wr ' +exe s:pA8.'intercal <plug>\intercal ' +exe s:pA8.'circ<Tab>`@ <plug>\circ ' +exe s:pA8.'bigcirc <plug>\bigcirc ' +exe s:pA8.'bullet <plug>\bullet ' +exe s:pA8.'cap <plug>\cap ' +exe s:pA8.'Cap <plug>\Cap ' +exe s:pA8.'cup <plug>\cup ' +exe s:pA8.'Cup <plug>\Cup ' +exe s:pA8.'sqcap <plug>\sqcap ' +exe s:pA8.'sqcup <plug>\sqcup' +exe s:pA8.'amalg <plug>\amalg ' +exe s:pA8.'uplus <plug>\uplus ' +exe s:pA8.'triangleleft <plug>\triangleleft ' +exe s:pA8.'triangleright <plug>\triangleright ' +exe s:pA8.'bigtriangleup <plug>\bigtriangleup ' +exe s:pA8.'bigtriangledown <plug>\bigtriangledown ' +exe s:pA8.'vee <plug>\vee ' +exe s:pA8.'veebar <plug>\veebar ' +exe s:pA8.'curlyvee <plug>\curlyvee ' +exe s:pA8.'wedge<Tab>`& <plug>\wedge ' +exe s:pA8.'barwedge <plug>\barwedge ' +exe s:pA8.'doublebarwedge <plug>\doublebarwedge ' +exe s:pA8.'curlywedge <plug>\curlywedge ' +exe s:pA8.'oplus <plug>\oplus ' +exe s:pA8.'ominus <plug>\ominus ' +exe s:pA8.'otimes <plug>\otimes ' +exe s:pA8.'oslash <plug>\oslash ' +exe s:pA8.'boxplus <plug>\boxplus ' +exe s:pA8.'boxminus <plug>\boxminus ' +exe s:pA8.'boxtimes <plug>\boxtimes ' +exe s:pA8.'boxdot <plug>\boxdot ' +exe s:pA8.'odot <plug>\odot ' +exe s:pA8.'circledast <plug>\circledast ' +exe s:pA8.'circleddash <plug>\circleddash ' +exe s:pA8.'circledcirc <plug>\circledcirc ' +exe s:pA8.'dagger <plug>\dagger ' +exe s:pA8.'ddagger <plug>\ddagger ' +exe s:pA8.'lhd <plug>\lhd ' +exe s:pA8.'unlhd <plug>\unlhd ' +exe s:pA8.'rhd <plug>\rhd ' +exe s:pA8.'unrhd <plug>\unrhd ' +" }}} +" {{{ Other1 +let s:pA9 = s:pA."&Other1." +exe s:pA9.'hat <plug>\hat ' +exe s:pA9.'check <plug>\check ' +exe s:pA9.'grave <plug>\grave ' +exe s:pA9.'acute <plug>\acute ' +exe s:pA9.'dot <plug>\dot ' +exe s:pA9.'ddot <plug>\ddot ' +exe s:pA9.'tilde<Tab>`, <plug>\tilde ' +exe s:pA9.'breve <plug>\breve ' +exe s:pA9.'bar <plug>\bar ' +exe s:pA9.'vec <plug>\vec ' +exe s:pA9.'aleph <plug>\aleph ' +exe s:pA9.'hbar <plug>\hbar ' +exe s:pA9.'imath <plug>\imath ' +exe s:pA9.'jmath <plug>\jmath ' +exe s:pA9.'ell <plug>\ell ' +exe s:pA9.'wp <plug>\wp ' +exe s:pA9.'Re <plug>\Re ' +exe s:pA9.'Im <plug>\Im ' +exe s:pA9.'partial <plug>\partial ' +exe s:pA9.'infty<Tab>`8 <plug>\infty ' +exe s:pA9.'prime <plug>\prime ' +exe s:pA9.'emptyset <plug>\emptyset ' +exe s:pA9.'nabla <plug>\nabla ' +exe s:pA9.'surd <plug>\surd ' +exe s:pA9.'top <plug>\top ' +exe s:pA9.'bot <plug>\bot ' +exe s:pA9.'angle <plug>\angle ' +exe s:pA9.'triangle <plug>\triangle ' +exe s:pA9.'backslash <plug>\backslash ' +exe s:pA9.'forall <plug>\forall ' +exe s:pA9.'exists <plug>\exists ' +exe s:pA9.'neg <plug>\neg ' +exe s:pA9.'flat <plug>\flat ' +exe s:pA9.'natural <plug>\natural ' +exe s:pA9.'sharp <plug>\sharp ' +exe s:pA9.'clubsuit <plug>\clubsuit ' +exe s:pA9.'diamondsuit <plug>\diamondsuit ' +exe s:pA9.'heartsuit <plug>\heartsuit ' +exe s:pA9.'spadesuit <plug>\spadesuit ' +exe s:pA9.'S <plug>\S ' +exe s:pA9.'P <plug>\P' +" }}} +" {{{ MathCreating +let s:pA10 = s:pA."&MathCreating." +exe s:pA10.'not <plug>\not' +exe s:pA10.'mkern <plug>\mkern' +exe s:pA10.'mathbin <plug>\mathbin' +exe s:pA10.'mathrel <plug>\mathrel' +exe s:pA10.'stackrel <plug>\stackrel' +exe s:pA10.'mathord <plug>\mathord' +" }}} +" {{{ Styles +let s:pA11 = s:pA."&Styles." +exe s:pA11.'displaystyle <plug>\displaystyle' +exe s:pA11.'textstyle <plug>\textstyle' +exe s:pA11.'scritpstyle <plug>\scritpstyle' +exe s:pA11.'scriptscriptstyle <plug>\scriptscriptstyle' +" }}} +" {{{ MathDiacritics +let s:pA12 = s:pA."&MathDiacritics." +exe s:pA12.'acute{} <plug><C-r>=IMAP_PutTextWithMovement("\\acute{<++>}<++>")<cr>' +exe s:pA12.'bar{}<Tab>`_ <plug><C-r>=IMAP_PutTextWithMovement("\\bar{<++>}<++>")<cr>' +exe s:pA12.'breve{} <plug><C-r>=IMAP_PutTextWithMovement("\\breve{<++>}<++>")<cr>' +exe s:pA12.'check{} <plug><C-r>=IMAP_PutTextWithMovement("\\check{<++>}<++>")<cr>' +exe s:pA12.'ddot{}<Tab>`: <plug><C-r>=IMAP_PutTextWithMovement("\\ddot{<++>}<++>")<cr>' +exe s:pA12.'dot{}<Tab>`; <plug><C-r>=IMAP_PutTextWithMovement("\\dot{<++>}<++>")<cr>' +exe s:pA12.'grave{} <plug><C-r>=IMAP_PutTextWithMovement("\\grave{<++>}<++>")<cr>' +exe s:pA12.'hat{}<Tab>`^ <plug><C-r>=IMAP_PutTextWithMovement("\\hat{<++>}<++>")<cr>' +exe s:pA12.'tilde{}<tab>`~ <plug><C-r>=IMAP_PutTextWithMovement("\\tilde{<++>}<++>")<cr>' +exe s:pA12.'vec{} <plug><C-r>=IMAP_PutTextWithMovement("\\vec{<++>}<++>")<cr>' +exe s:pA12.'widehat{} <plug><C-r>=IMAP_PutTextWithMovement("\\widehat{<++>}<++>")<cr>' +exe s:pA12.'widetilde{} <plug><C-r>=IMAP_PutTextWithMovement("\\widetilde{<++>}<++>")<cr>' +exe s:pA12.'imath <plug><C-r>=IMAP_PutTextWithMovement("\\imath")<cr>' +exe s:pA12.'jmath <plug><C-r>=IMAP_PutTextWithMovement("\\jmath")<cr>' +" }}} +" {{{ OverlineAndCo +let s:pA13 = s:pA."&OverlineAndCo." +exe s:pA13.'overline{} <plug><C-r>=IMAP_PutTextWithMovement("\\overline{}")<cr>' +exe s:pA13.'underline{} <plug><C-r>=IMAP_PutTextWithMovement("\\underline{}")<cr>' +exe s:pA13.'overrightarrow{} <plug><C-r>=IMAP_PutTextWithMovement("\\overrightarrow{}")<cr>' +exe s:pA13.'overleftarrow{} <plug><C-r>=IMAP_PutTextWithMovement("\\overleftarrow{}")<cr>' +exe s:pA13.'overbrace{} <plug><C-r>=IMAP_PutTextWithMovement("\\overbrace{}")<cr>' +exe s:pA13.'underbrace{} <plug><C-r>=IMAP_PutTextWithMovement("\\underbrace{}")<cr>' +" }}} +" {{{ Symbols1 +let s:pA14a = s:pA."&Symbols1." +exe s:pA14a.'forall <plug>\forall ' +exe s:pA14a.'exists <plug>\exists ' +exe s:pA14a.'nexists <plug>\nexists ' +exe s:pA14a.'neg <plug>\neg ' +exe s:pA14a.'top <plug>\top ' +exe s:pA14a.'bot <plug>\bot ' +exe s:pA14a.'emptyset <plug>\emptyset ' +exe s:pA14a.'varnothing <plug>\varnothing ' +exe s:pA14a.'infty <plug>\infty ' +exe s:pA14a.'aleph <plug>\aleph ' +exe s:pA14a.'beth <plug>\beth ' +exe s:pA14a.'gimel <plug>\gimel ' +exe s:pA14a.'daleth <plug>\daleth ' +exe s:pA14a.'hbar <plug>\hbar ' +exe s:pA14a.'hslash <plug>\hslash ' +exe s:pA14a.'diagup <plug>\diagup ' +exe s:pA14a.'vert <plug>\vert ' +exe s:pA14a.'Vert <plug>\Vert ' +exe s:pA14a.'backslash <plug>\backslash ' +exe s:pA14a.'diagdown <plug>\diagdown ' +exe s:pA14a.'Bbbk <plug>\Bbbk ' +exe s:pA14a.'P <plug>\P ' +exe s:pA14a.'S <plug>\S ' +" }}} +" {{{ Symbols2 +let s:pA14b = s:pA."&Symbols2." +exe s:pA14b.'# <plug>\# ' +exe s:pA14b.'% <plug>\% ' +exe s:pA14b.'_ <plug>\_ ' +exe s:pA14b.'$ <plug>\$ ' +exe s:pA14b.'& <plug>\& ' +exe s:pA14b.'imath <plug>\imath ' +exe s:pA14b.'jmath <plug>\jmath ' +exe s:pA14b.'ell <plug>\ell ' +exe s:pA14b.'wp <plug>\wp ' +exe s:pA14b.'Re <plug>\Re ' +exe s:pA14b.'Im <plug>\Im ' +exe s:pA14b.'prime <plug>\prime ' +exe s:pA14b.'backprime <plug>\backprime ' +exe s:pA14b.'nabla <plug>\nabla ' +exe s:pA14b.'surd <plug>\surd ' +exe s:pA14b.'flat <plug>\flat ' +exe s:pA14b.'sharp <plug>\sharp ' +exe s:pA14b.'natural <plug>\natural ' +exe s:pA14b.'eth <plug>\eth ' +exe s:pA14b.'bigstar <plug>\bigstar ' +exe s:pA14b.'circledS <plug>\circledS ' +exe s:pA14b.'Finv <plug>\Finv ' +exe s:pA14b.'dag <plug>\dag ' +exe s:pA14b.'ddag <plug>\ddag ' +" }}} +" {{{ Symbols3 +let s:pA14c = s:pA."&Symbols3." +exe s:pA14c.'angle <plug>\angle ' +exe s:pA14c.'measuredangle <plug>\measuredangle ' +exe s:pA14c.'sphericalangle <plug>\sphericalangle ' +exe s:pA14c.'spadesuit <plug>\spadesuit ' +exe s:pA14c.'heartsuit <plug>\heartsuit ' +exe s:pA14c.'diamondsuit <plug>\diamondsuit ' +exe s:pA14c.'clubsuit <plug>\clubsuit ' +exe s:pA14c.'lozenge <plug>\lozenge ' +exe s:pA14c.'blacklozenge <plug>\blacklozenge ' +exe s:pA14c.'Diamond <plug>\Diamond ' +exe s:pA14c.'triangle <plug>\triangle ' +exe s:pA14c.'vartriangle <plug>\vartriangle ' +exe s:pA14c.'blacktriangle <plug>\blacktriangle ' +exe s:pA14c.'triangledown <plug>\triangledown ' +exe s:pA14c.'blacktriangledown <plug>\blacktriangledown ' +exe s:pA14c.'Box <plug>\Box ' +exe s:pA14c.'square <plug>\square ' +exe s:pA14c.'blacksquare <plug>\blacksquare ' +exe s:pA14c.'complement <plug>\complement ' +exe s:pA14c.'mho <plug>\mho ' +exe s:pA14c.'Game <plug>\Game ' +exe s:pA14c.'partial<Tab>`6 <plug>\partial ' +exe s:pA14c.'smallint <plug>\smallint ' +" }}} +" {{{ Logic +let s:pA15 = s:pA."&Logic." +exe s:pA15.'lnot <plug>\lnot ' +exe s:pA15.'lor <plug>\lor ' +exe s:pA15.'land <plug>\land ' +" }}} +" {{{ Limits1 +let s:pA16 = s:pA."&Limits1." +exe s:pA16.'left <plug>\left' +exe s:pA16.'right <plug>\right' +exe s:pA16.'-sepbigl- :' +exe s:pA16.'bigl <plug>\bigl' +exe s:pA16.'Bigl <plug>\Bigl' +exe s:pA16.'biggl <plug>\biggl' +exe s:pA16.'Biggl <plug>\Biggl' +exe s:pA16.'-sepbigr- :' +exe s:pA16.'bigr <plug>\bigr' +exe s:pA16.'Bigr <plug>\Bigr' +exe s:pA16.'biggr <plug>\biggr' +exe s:pA16.'Biggr <plug>\Biggr' +exe s:pA16.'-sepbig- :' +exe s:pA16.'big <plug>\big' +exe s:pA16.'bigm <plug>\bigm' +exe s:pA16.'-sepfloor- :' +exe s:pA16.'lfloor <plug>\lfloor ' +exe s:pA16.'lceil <plug>\lceil ' +exe s:pA16.'rfloor <plug>\rfloor ' +exe s:pA16.'rceil <plug>\rceil ' +exe s:pA16.'-sepangle- :' +exe s:pA16.'langle <plug>\langle ' +exe s:pA16.'rangle <plug>\rangle ' +" }}} +" {{{ Limits2 +let s:pA16a = s:pA."&Limits2." +exe s:pA16a.'ulcorner <plug>\ulcorner ' +exe s:pA16a.'urcorner <plug>\urcorner ' +exe s:pA16a.'llcorner <plug>\llcorner ' +exe s:pA16a.'rlcorner <plug>\rlcorner ' +exe s:pA16a.'-sepcorner- :' +exe s:pA16a.'vert <plug>\vert ' +exe s:pA16a.'Vert <plug>\Vert ' +exe s:pA16a.'lvert <plug>\lvert ' +exe s:pA16a.'lVert <plug>\lVert ' +exe s:pA16a.'rvert <plug>\rvert ' +exe s:pA16a.'rVert <plug>\rVert ' +exe s:pA16a.'uparrow <plug>\uparrow ' +exe s:pA16a.'Uparrow <plug>\Uparrow ' +exe s:pA16a.'downarrow <plug>\downarrow ' +exe s:pA16a.'Downarrow <plug>\Downarrow ' +exe s:pA16a.'updownarrow <plug>\updownarrow ' +exe s:pA16a.'Updownarrow <plug>\Updownarrow ' +exe s:pA16a.'lgroup <plug>\lgroup ' +exe s:pA16a.'rgroup <plug>\rgroup ' +exe s:pA16a.'lmoustache <plug>\lmoustache ' +exe s:pA16a.'rmoustache <plug>\rmoustache ' +exe s:pA16a.'arrowvert <plug>\arrowvert ' +exe s:pA16a.'Arrowvert <plug>\Arrowvert ' +exe s:pA16a.'bracevert <plug>\bracevert ' +" }}} +" {{{ Log-likes +let s:pA17 = s:pA."Lo&g-likes." +exe s:pA17.'arccos <plug>\arccos ' +exe s:pA17.'arcsin <plug>\arcsin ' +exe s:pA17.'arctan <plug>\arctan ' +exe s:pA17.'arg <plug>\arg ' +exe s:pA17.'cos <plug>\cos ' +exe s:pA17.'cosh <plug>\cosh ' +exe s:pA17.'cot <plug>\cot ' +exe s:pA17.'coth <plug>\coth ' +exe s:pA17.'csc <plug>\csc ' +exe s:pA17.'deg <plug>\deg ' +exe s:pA17.'det <plug>\det ' +exe s:pA17.'dim <plug>\dim ' +exe s:pA17.'exp <plug>\exp ' +exe s:pA17.'gcd <plug>\gcd ' +exe s:pA17.'hom <plug>\hom ' +exe s:pA17.'inf <plug>\inf ' +exe s:pA17.'injlim <plug>\injlim ' +exe s:pA17.'ker <plug>\ker ' +exe s:pA17.'lg <plug>\lg ' +exe s:pA17.'lim <plug>\lim ' +exe s:pA17.'liminf <plug>\liminf ' +exe s:pA17.'limsup <plug>\limsup ' +exe s:pA17.'ln <plug>\ln ' +exe s:pA17.'log <plug>\log ' +exe s:pA17.'max <plug>\max ' +exe s:pA17.'min <plug>\min ' +exe s:pA17.'Pr <plug>\Pr ' +exe s:pA17.'projlim <plug>\projlim ' +exe s:pA17.'sec <plug>\sec ' +exe s:pA17.'sin <plug>\sin ' +exe s:pA17.'sinh <plug>\sinh ' +exe s:pA17.'sup <plug>\sup ' +exe s:pA17.'tan <plug>\tan ' +exe s:pA17.'tanh <plug>\tanh ' +exe s:pA17.'varlimsup <plug>\varlimsup ' +exe s:pA17.'varliminf <plug>\varliminf ' +exe s:pA17.'varinjlim <plug>\varinjlim ' +exe s:pA17.'varprojlim <plug>\varprojlim ' +" }}} +" {{{ MathSpacing +let s:pA18 = s:pA."MathSpacing." +exe s:pA18.', <plug>\, ' +exe s:pA18.': <plug>\: ' +exe s:pA18.'; <plug>\; ' +exe s:pA18.'[space] <plug>\ ' +exe s:pA18.'quad <plug>\quad ' +exe s:pA18.'qquad <plug>\qquad ' +exe s:pA18.'! <plug>\! ' +exe s:pA18.'thinspace <plug>\thinspace ' +exe s:pA18.'medspace <plug>\medspace ' +exe s:pA18.'thickspace <plug>\thickspace ' +exe s:pA18.'negthinspace <plug>\negthinspace ' +exe s:pA18.'negmedspace <plug>\negmedspace ' +exe s:pA18.'negthickspace <plug>\negthickspace ' +" 1}}} + +" vim:fdm=marker:ff=unix:noet:ts=4:sw=4 diff --git a/.vim/ftplugin/latex-suite/multicompile.vim b/.vim/ftplugin/latex-suite/multicompile.vim new file mode 100644 index 0000000..f5598cc --- /dev/null +++ b/.vim/ftplugin/latex-suite/multicompile.vim @@ -0,0 +1,17 @@ +" ============================================================================ +" File: multicompile.vim +" Author: Srinath Avadhanula +" Created: Sat Jul 05 03:00 PM 2003 +" Description: compile a .tex file multiple times to get cross references +" right. +" License: Vim Charityware License +" Part of vim-latexSuite: http://vim-latex.sourceforge.net +" CVS: $Id: multicompile.vim 997 2006-03-20 09:45:45Z srinathava $ +" ============================================================================ + +" The contents of this file have been moved to compiler.vim, the file which +" contains all functions relevant to compiling and viewing. +" This file is kept empty on purpose so that it will over-write previous +" versions of multicompile.vim, therby preventing conflicts. + +" vim:fdm=marker:nowrap:noet:ff=unix:ts=4:sw=4 diff --git a/.vim/ftplugin/latex-suite/outline.py b/.vim/ftplugin/latex-suite/outline.py new file mode 100644 index 0000000..7bb6896 --- /dev/null +++ b/.vim/ftplugin/latex-suite/outline.py @@ -0,0 +1,186 @@ +#!/usr/bin/python + +# Part of Latex-Suite +# +# Copyright: Srinath Avadhanula +# Description: +# This file implements a simple outline creation for latex documents. + +import re +import os +import sys +import StringIO + +# getFileContents {{{ +def getFileContents(argin, ext=''): + if type(argin) is str: + fname = argin + ext + else: + fname = argin.group(3) + ext + + # This longish thing is to make sure that all files are converted into + # \n seperated lines. + contents = '\n'.join(open(fname).read().splitlines()) + + # TODO what are all the ways in which a tex file can include another? + pat = re.compile(r'^\\(@?)(include|input){(.*?)}', re.M) + contents = re.sub(pat, lambda input: getFileContents(input, ext), contents) + + return ('%%==== FILENAME: %s' % fname) + '\n' + contents + +# }}} +# stripComments {{{ +def stripComments(contents): + # remove all comments except those of the form + # %%==== FILENAME: <filename.tex> + uncomm = [re.sub('%(?!==== FILENAME: ).*', '', line) for line in contents.splitlines()] + # also remove all only-whitespace lines. + nonempty = [line for line in uncomm if line.strip()] + + return nonempty +# }}} +# addFileNameAndNumber {{{ +def addFileNameAndNumber(lines): + filename = '' + retval = '' + for line in lines: + if re.match('%==== FILENAME: ', line): + filename = line.split('%==== FILENAME: ')[1] + else: + retval += '<%s>%s\n' % (filename, line) + + return retval +# }}} +# getSectionLabels_Root {{{ +def getSectionLabels_Root(lineinfo, section_prefix, label_prefix): + prev_txt = '' + inside_env = 0 + prev_env = '' + outstr = StringIO.StringIO('') + pres_depth = len(section_prefix) + + #print '+getSectionLabels_Root: lineinfo = [%s]' % lineinfo + for line in lineinfo.splitlines(): + if not line: + continue + + # throw away leading white-space + m = re.search('<(.*?)>(.*)', line) + + fname = m.group(1) + line = m.group(2).lstrip() + + # we found a label! + m = re.search(r'\\label{(%s.*?)}' % label_prefix, line) + if m: + # add the current line (except the \label command) to the text + # which will be displayed below this label + prev_txt += re.search(r'(^.*?)\\label{', line).group(1) + + # for the figure environment however, just display the caption. + # instead of everything since the \begin command. + if prev_env == 'figure': + cm = re.search(r'\caption(\[.*?\]\s*)?{(.*?)}', prev_txt) + if cm: + prev_txt = cm.group(2) + + # print a nice formatted text entry like so + # + # > eqn:label + # : e^{i\pi} + 1 = 0 + # + # Use the current "section depth" for the leading indentation. + print >>outstr, '>%s%s\t\t<%s>' % (' '*(2*pres_depth+2), + m.group(1), fname) + print >>outstr, ':%s%s' % (' '*(2*pres_depth+4), prev_txt) + prev_txt = '' + + # If we just encoutered the start or end of an environment or a + # label, then do not remember this line. + # NOTE: This assumes that there is no equation text on the same + # line as the \begin or \end command. The text on the same line as + # the \label was already handled. + if re.search(r'\\begin{(equation|eqnarray|align|figure)', line): + prev_txt = '' + prev_env = re.search(r'\\begin{(.*?)}', line).group(1) + inside_env = 1 + + elif re.search(r'\\label', line): + prev_txt = '' + + elif re.search(r'\\end{(equation|eqnarray|align|figure)', line): + inside_env = 0 + prev_env = '' + + else: + # If we are inside an environment, then the text displayed with + # the label is the complete text within the environment, + # otherwise its just the previous line. + if inside_env: + prev_txt += line + else: + prev_txt = line + + return outstr.getvalue() + +# }}} +# getSectionLabels {{{ +def getSectionLabels(lineinfo, + sectypes=['chapter', 'section', 'subsection', 'subsubsection'], + section_prefix='', label_prefix=''): + + if not sectypes: + return getSectionLabels_Root(lineinfo, section_prefix, label_prefix) + + ##print 'sectypes[0] = %s, section_prefix = [%s], lineinfo = [%s]' % ( + ## sectypes[0], section_prefix, lineinfo) + + sections = re.split(r'(<.*?>\\%s{.*})' % sectypes[0], lineinfo) + + # there will 1+2n sections, the first containing the "preamble" and the + # others containing the child sections as paris of [section_name, + # section_text] + + rettext = getSectionLabels(sections[0], sectypes[1:], section_prefix, label_prefix) + + for i in range(1,len(sections),2): + sec_num = (i+1)/2 + section_name = re.search(r'\\%s{(.*?)}' % sectypes[0], sections[i]).group(1) + section_label_text = getSectionLabels(sections[i] + sections[i+1], sectypes[1:], + section_prefix+('%d.' % sec_num), label_prefix) + + if section_label_text: + sec_heading = 2*' '*len(section_prefix) + section_prefix + sec_heading += '%d. %s' % (sec_num, section_name) + sec_heading += '<<<%d\n' % (len(section_prefix)/2+1) + + rettext += sec_heading + section_label_text + + return rettext + +# }}} + +# main {{{ +def main(fname, label_prefix): + [head, tail] = os.path.split(fname) + if head: + os.chdir(head) + + [root, ext] = os.path.splitext(tail) + contents = getFileContents(root, ext) + nonempty = stripComments(contents) + lineinfo = addFileNameAndNumber(nonempty) + + return getSectionLabels(lineinfo, label_prefix=label_prefix) +# }}} + +if __name__ == "__main__": + if len(sys.argv) > 2: + prefix = sys.argv[2] + else: + prefix = '' + + print main(sys.argv[1], prefix) + + +# vim: fdm=marker diff --git a/.vim/ftplugin/latex-suite/outline.pyc b/.vim/ftplugin/latex-suite/outline.pyc Binary files differnew file mode 100644 index 0000000..8049cdc --- /dev/null +++ b/.vim/ftplugin/latex-suite/outline.pyc diff --git a/.vim/ftplugin/latex-suite/packages.vim b/.vim/ftplugin/latex-suite/packages.vim new file mode 100644 index 0000000..c3bf2b1 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages.vim @@ -0,0 +1,669 @@ +"============================================================================= +" File: packages.vim +" Author: Mikolaj Machowski +" Created: Tue Apr 23 06:00 PM 2002 PST +" CVS: $Id: packages.vim 997 2006-03-20 09:45:45Z srinathava $ +" +" Description: handling packages from within vim +"============================================================================= + +" avoid reinclusion. +if !g:Tex_PackagesMenu || exists('s:doneOnce') + finish +endif +let s:doneOnce = 1 + +let s:path = expand("<sfile>:p:h") + +let s:menu_div = 20 + +com! -nargs=0 TPackageUpdate :silent! call Tex_pack_updateall(1) +com! -nargs=0 TPackageUpdateAll :silent! call Tex_pack_updateall(1) + +" Custom command-line completion of Tcommands is very useful but this feature +" is available only in Vim 6.2 and above. Check number of version and choose +" proper command and function. +if v:version >= 602 + com! -complete=custom,Tex_CompletePackageName -nargs=* TPackage let s:retVal = Tex_pack_one(<f-args>) <bar> normal! i<C-r>=s:retVal<CR> + + " Tex_CompletePackageName: for completing names in TPackage command {{{ + " Description: get list of package names with globpath(), remove full path + " and return list of names separated with newlines. + " + function! Tex_CompletePackageName(A,P,L) + " Get name of packages from all runtimepath directories + let packnames = Tex_FindInRtp('', 'packages') + let packnames = substitute(packnames, '^,', '', 'e') + " Separate names with \n not , + let packnames = substitute(packnames,',','\n','g') + return packnames + endfunction + " }}} + +else + com! -nargs=* TPackage let s:retVal = Tex_pack_one(<f-args>) <bar> normal! i<C-r>=s:retVal<CR> + +endif + +imap <silent> <plug> <Nop> +nmap <silent> <plug> i + +let g:Tex_package_supported = '' +let g:Tex_package_detected = '' +" Remember the defaults because we want g:Tex_PromptedEnvironments to contain +" in addition to the default, \newenvironments, and the \newenvironments might +" change... +let g:Tex_PromptedEnvironmentsDefault = g:Tex_PromptedEnvironments +let g:Tex_PromptedCommandsDefault = g:Tex_PromptedCommands + + +" Tex_pack_check: creates the package menu and adds to 'dict' setting. {{{ +" +function! Tex_pack_check(package) + " Use Tex_FindInRtp() function to get first name from packages list in all + " rtp directories conforming with latex-suite directories hierarchy + " Store names in variables to process functions only once. + let packname = Tex_FindInRtp(a:package, 'packages') + if packname != '' + exe 'runtime! ftplugin/latex-suite/packages/' . a:package + if has("gui_running") + call Tex_pack(a:package) + endif + if g:Tex_package_supported !~ a:package + let g:Tex_package_supported = g:Tex_package_supported.','.a:package + endif + endif + " Return full list of dictionaries (separated with ,) for package in &rtp + call Tex_Debug("Tex_pack_check: searching for ".a:package." in dictionaries/ in &rtp", "pack") + let dictname = Tex_FindInRtp(a:package, 'dictionaries', ':p') + if dictname != '' + exe 'setlocal dict^=' . dictname + call Tex_Debug('Tex_pack_check: setlocal dict^=' . dictname, 'pack') + if g:Tex_package_supported !~ a:package + let g:Tex_package_supported = g:Tex_package_supported.','.a:package + endif + endif + if g:Tex_package_detected !~ '\<'.a:package.'\>' + let g:Tex_package_detected = g:Tex_package_detected.','.a:package + endif + let g:Tex_package_detected = substitute(g:Tex_package_detected, '^,', '', '') + let g:Tex_package_supported = substitute(g:Tex_package_supported, '^,', '', '') +endfunction + +" }}} +" Tex_pack_uncheck: removes package from menu and 'dict' settings. {{{ +function! Tex_pack_uncheck(package) + if has("gui_running") && Tex_FindInRtp(a:package, 'packages') != '' + exe 'silent! aunmenu '.g:Tex_PackagesMenuLocation.'-sep'.a:package.'-' + exe 'silent! aunmenu '.g:Tex_PackagesMenuLocation.a:package.'\ Options' + exe 'silent! aunmenu '.g:Tex_PackagesMenuLocation.a:package.'\ Commands' + endif + if Tex_FindInRtp(a:package, 'dictionaries') != '' + exe 'setlocal dict-='.Tex_FindInRtp(a:package, 'dictionaries') + endif +endfunction + +" }}} +" Tex_pack_updateall: updates the TeX-Packages menu {{{ +" Description: +" This function first calls Tex_pack_all to scan for \usepackage's etc if +" necessary. After that, it 'supports' and 'unsupports' packages as needed +" in such a way as to not repeat work. +function! Tex_pack_updateall(force) + call Tex_Debug('+Tex_pack_updateall', 'pack') + + " Find out which file we need to scan. + let fname = Tex_GetMainFileName(':p') + + " If this is the same as last time, don't repeat. + if !a:force && exists('s:lastScannedFile') && + \ s:lastScannedFile == fname + return + endif + " Remember which file we scanned for next time. + let s:lastScannedFile = fname + + " Remember which packages we detected last time. + if exists('g:Tex_package_detected') + let oldpackages = g:Tex_package_detected + else + let oldpackages = '' + endif + + " This sets up a global variable of all detected packages. + let g:Tex_package_detected = '' + " reset the environments and commands. + let g:Tex_PromptedEnvironments = g:Tex_PromptedEnvironmentsDefault + let g:Tex_PromptedCommands = g:Tex_PromptedCommandsDefault + + if expand('%:p') != fname + call Tex_Debug(':Tex_pack_updateall: sview '.Tex_EscapeSpaces(fname), 'pack') + exe 'sview '.Tex_EscapeSpaces(fname) + else + call Tex_Debug(':Tex_pack_updateall: split', 'pack') + split + endif + + call Tex_ScanForPackages() + q + + call Tex_Debug(':Tex_pack_updateall: detected ['.g:Tex_package_detected.'] in first run', 'pack') + + " Now for each package find out if this is a custom package and if so, + " scan that as well. We will use the ':find' command in vim to let vim + " search through the file paths for us. + " + " NOTE: This while loop will also take into account packages included + " within packages to any level of recursion as long as + " g:Tex_package_detected is always padded with new package names + " from the end. + " + " First set the &path setting to the user's TEXINPUTS setting. + let _path = &path + let _suffixesadd = &suffixesadd + + let &path = '.,'.g:Tex_TEXINPUTS + let &suffixesadd = '.sty,.tex' + + let scannedPackages = '' + + let i = 1 + let packname = Tex_Strntok(g:Tex_package_detected, ',', i) + while packname != '' + + call Tex_Debug(':Tex_pack_updateall: scanning package '.packname, 'pack') + + " Scan this package only if we have not scanned it before in this + " run. + if scannedPackages =~ '\<'.packname.'\>' + let i = i + 1 + + call Tex_Debug(':Tex_pack_updateall: '.packname.' already scanned', 'pack') + let packname = Tex_Strntok(g:Tex_package_detected, ',', i) + continue + endif + + " Split this window in two. The packages/files being found will open + " in this new window and we also need not bother with files being + " modified etc. + split + + call Tex_Debug(':Tex_pack_updateall: silent! find '.Tex_EscapeSpaces(packname).'.sty', 'pack') + let thisbufnum = bufnr('%') + exec 'silent! find '.Tex_EscapeSpaces(packname).'.sty' + call Tex_Debug(':Tex_pack_updateall: present file = '.bufname('%'), 'pack') + + " If this file was not found, assume that it means its not a + " custom package and mark it "scanned". + " A package is not found if we stay in the same buffer as before and + " its not the one where we want to go. + if bufnr('%') == thisbufnum && bufnr('%') != bufnr(packname.'.sty') + let scannedPackages = scannedPackages.','.packname + q + + call Tex_Debug(':Tex_pack_updateall: '.packname.' not found anywhere', 'pack') + let i = i + 1 + let packname = Tex_Strntok(g:Tex_package_detected, ',', i) + continue + endif + + " otherwise we are presently editing a custom package, scan it for + " more \usepackage lines from the first line to the last. + let packpath = expand('%:p') + let &complete = &complete.'s'.packpath + + call Tex_Debug(':Tex_pack_updateall: found custom package '.packpath, 'pack') + call Tex_ScanForPackages(line('$'), line('$')) + call Tex_Debug(':Tex_pack_updateall: After scanning, g:Tex_package_detected = '.g:Tex_package_detected, 'pack') + + let scannedPackages = scannedPackages.','.packname + " Do not use bwipe, but that leads to excessive buffer number + " consumption. Besides, its intuitive for a custom package to remain + " on the buffer list. + q + + let i = i + 1 + let packname = Tex_Strntok(g:Tex_package_detected, ',', i) + endwhile + + let &path = _path + let &suffixesadd = _suffixesadd + + " Now only support packages we didn't last time. + " First remove packages which were used last time but are no longer used. + let i = 1 + let oldPackName = Tex_Strntok(oldpackages, ',', i) + while oldPackName != '' + if g:Tex_package_detected !~ oldPackName + call Tex_pack_uncheck(oldPackName) + endif + let i = i + 1 + let oldPackName = Tex_Strntok(oldpackages, ',', i) + endwhile + + " Then support packages which are used this time but weren't used last + " time. + let i = 1 + let newPackName = Tex_Strntok(g:Tex_package_detected, ',', i) + while newPackName != '' + if oldpackages !~ newPackName + call Tex_pack_one(newPackName) + endif + let i = i + 1 + let newPackName = Tex_Strntok(g:Tex_package_detected, ',', i) + endwhile + + " Throw an event that we are done scanning packages. Some packages might + " use this to change behavior based on which options have been used etc. + call Tex_Debug(":Tex_pack_updateall: throwing LatexSuiteScannedPackages event", "pack") + silent! do LatexSuite User LatexSuiteScannedPackages + + call Tex_Debug("-Tex_pack_updateall", "pack") +endfunction + +" }}} +" Tex_pack_one: supports each package in the argument list.{{{ +" Description: +" If no arguments are supplied, then the user is asked to choose from the +" packages found in the packages/ directory +function! Tex_pack_one(...) + if a:0 == 0 || (a:0 > 0 && a:1 == '') + let packlist = Tex_FindInRtp('', 'packages') + let packname = Tex_ChooseFromPrompt( + \ "Choose a package: \n" . + \ Tex_CreatePrompt(packlist, '3', ',') . + \ "\nEnter number or filename :", + \ packlist, ',') + if packname != '' + return Tex_pack_one(packname) + else + return '' + endif + else + " Support the packages supplied. This function can be called with + " multiple arguments in which case, support each of them in turn. + let retVal = '' + let omega = 1 + while omega <= a:0 + let packname = a:{omega} + if Tex_FindInRtp(packname, 'packages') != '' + call Tex_pack_check(packname) + if exists('g:TeX_package_option_'.packname) + \ && g:TeX_package_option_{packname} != '' + let retVal = retVal.'\usepackage[<++>]{'.packname.'}<++>' + else + let retVal = retVal.'\usepackage{'.packname.'}'."\<CR>" + endif + else + let retVal = retVal.'\usepackage{'.packname.'}'."\<CR>" + endif + let omega = omega + 1 + endwhile + return IMAP_PutTextWithMovement(substitute(retVal, "\<CR>$", '', ''), '<+', '+>') + endif +endfunction +" }}} +" Tex_ScanForPackages: scans the current file for \usepackage{} lines {{{ +" and if supported, loads the options and commands found in the +" corresponding package file. Also scans for \newenvironment and +" \newcommand lines and adds names to g:Tex_Prompted variables, they can be +" easy available through <F5> and <F7> shortcuts +function! Tex_ScanForPackages(...) + call Tex_Debug("+Tex_ScanForPackages", "pack") + + let pos = line('.').' | normal! '.virtcol('.').'|' + + " For package files without \begin and \end{document}, we might be told to + " search from beginning to end. + if a:0 < 2 + 0 + let beginline = search('\\begin{document}', 'W') + let endline = search('\\end{document}', 'W') + 0 + else + let beginline = a:1 + let endline = a:2 + endif + + call Tex_Debug(":Tex_ScanForPackages: Begining scans in [".bufname('%')."], beginline = ".beginline, "pack") + + + " Scan the file. First open up all the folds, because the command + " /somepattern + " issued in a closed fold _always_ goes to the first match. + let erm = v:errmsg + silent! normal! ggVGzO + let v:errmsg = erm + + call Tex_Debug(":Tex_ScanForPackages: beginning scan for \\usepackage lines", "pack") + " The wrap trick enables us to match \usepackage on the first line as + " well. + let wrap = 'w' + while search('^\s*\\usepackage\_.\{-}{\_.\+}', wrap) + let wrap = 'W' + + if line('.') > beginline + break + endif + + let saveA = @a + + " If there are options, then find those. + if getline('.') =~ '\\usepackage\[.\{-}\]' + let options = matchstr(getline('.'), '\\usepackage\[\zs.\{-}\ze\]') + elseif getline('.') =~ '\\usepackage\[' + " Entering here means that the user has split the \usepackage + " across newlines. Therefore, use yank. + exec "normal! /{\<CR>\"ayi}" + let options = @a + else + let options = '' + endif + + " The following statement puts the stuff between the { }'s of a + " \usepackage{stuff,foo} into @a. Do not use matchstr() and the like + " because we can have things split across lines and such. + exec "normal! /{\<CR>\"ay/}\<CR>" + + " now remove all whitespace from @a. We need to remove \n and \r + " because we can encounter stuff like + " \usepackage{pack1, + " newpackonanotherline} + let @a = substitute(@a, "[ \t\n\r]", '', 'g') + + " Now we have something like pack1,pack2,pack3 with possibly commas + " and stuff before the first package and after the last package name. + " Remove those. + let @a = substitute(@a, '\(^\W*\|\W*$\)', '', 'g') + + " This gets us a string like 'pack1,pack2,pack3' + " TODO: This will contain duplicates if the user has duplicates. + " Should we bother taking care of this? + let g:Tex_package_detected = g:Tex_package_detected.','.@a + + " For each package found, form a global variable of the form + " g:Tex_{packagename}_options + " which contains a list of the options. + let j = 1 + while Tex_Strntok(@a, ',', j) != '' + let g:Tex_{Tex_Strntok(@a, ',', j)}_options = options + let j = j + 1 + endwhile + + " Finally convert @a into something like '"pack1","pack2"' + let @a = substitute(@a, '^\|$', '"', 'g') + let @a = substitute(@a, ',', '","', 'g') + + call Tex_Debug(":Tex_ScanForPackages: found package(s) [".@a."] on line ".line('.'), "pack") + + " restore @a + let @a = saveA + endwhile + call Tex_Debug(":Tex_ScanForPackages: End scan \\usepackage, detected packages = ".g:Tex_package_detected, "pack") + + " TODO: This needs to be changed. In the future, we might have + " functionality to remember the fold-state before opening up all the folds + " and then re-creating them. Use mkview.vim. + let erm = v:errmsg + silent! normal! ggVGzC + let v:errmsg = erm + + " Because creating list of detected packages gives string + " ',pack1,pack2,pack3' remove leading , + let g:Tex_package_detected = substitute(g:Tex_package_detected, '^,', '', '') + + call Tex_Debug(":Tex_ScanForPackages: Beginning scan for \\newcommand's", "pack") + " Scans whole file (up to \end{document}) for \newcommand and adds this + " commands to g:Tex_PromptedCommands variable, it is easily available + " through <F7> + 0 + while search('^\s*\\newcommand\*\?{.\{-}}', 'W') + + if line('.') > endline + break + endif + + let newcommand = matchstr(getline('.'), '\\newcommand\*\?{\\\zs.\{-}\ze}') + let g:Tex_PromptedCommands = g:Tex_PromptedCommands . ',' . newcommand + + endwhile + + " Scans whole file (up to \end{document}) for \newenvironment and adds this + " environments to g:Tex_PromptedEnvironments variable, it is easily available + " through <F5> + 0 + call Tex_Debug(":Tex_ScanForPackages: Beginning scan for \\newenvironment's", 'pack') + + while search('^\s*\\newenvironment\*\?{.\{-}}', 'W') + call Tex_Debug('found newenvironment on '.line('.'), 'pack') + + if line('.') > endline + break + endif + + let newenvironment = matchstr(getline('.'), '\\newenvironment\*\?{\zs.\{-}\ze}') + let g:Tex_PromptedEnvironments = g:Tex_PromptedEnvironments . ',' . newenvironment + + endwhile + + exe pos + " first make a random search so that we push at least one item onto the + " search history. Since vim puts only one item in the history per function + " call, this way we make sure that one and only item is put into the + " search history. + normal! /^<CR> + " now delete it... + call histdel('/', -1) + + call Tex_Debug("-Tex_ScanForPackages", "pack") +endfunction + +" }}} +" Tex_pack_supp_menu: sets up a menu for package files {{{ +" found in the packages directory groups the packages thus found into groups +" of 20... +function! Tex_pack_supp_menu() + let suplist = Tex_FindInRtp('', 'packages') + + call Tex_MakeSubmenu(suplist, g:Tex_PackagesMenuLocation.'Supported.', + \ '<plug><C-r>=Tex_pack_one("', '")<CR>') +endfunction + +" }}} +" Tex_pack: loads the options (and commands) for the given package {{{ +function! Tex_pack(pack) + if exists('g:TeX_package_'.a:pack) + + let optionList = g:TeX_package_option_{a:pack}.',' + let commandList = g:TeX_package_{a:pack}.',' + + " Don't create separator if in package file are only Vim commands. + " Rare but possible. + if !(commandList == ',' && optionList == ',') + exec 'amenu '.g:Tex_PackagesMenuLocation.'-sep'.a:pack.'- <Nop>' + endif + + if optionList != '' + + let mainMenuName = g:Tex_PackagesMenuLocation.a:pack.'\ Options.' + call s:GroupPackageMenuItems(optionList, mainMenuName, + \ '<plug><C-r>=IMAP_PutTextWithMovement("', ',")<CR>') + + endif + + if commandList != '' + + let mainMenuName = g:Tex_PackagesMenuLocation.a:pack.'\ Commands.' + call s:GroupPackageMenuItems(commandList, mainMenuName, + \ '<plug><C-r>=Tex_ProcessPackageCommand("', '")<CR>', + \ '<SID>FilterPackageMenuLHS') + endif + endif +endfunction + +" }}} + +" ============================================================================== +" Menu Functions +" Creating menu items for the all the package files found in the packages/ +" directory as well as creating menus for each supported package found in the +" preamble. +" ============================================================================== +" Tex_MakeSubmenu: makes a submenu given a list of items {{{ +" Description: +" This function takes a comma seperated list of menu items and creates a +" 'grouped' menu. i.e, it groups the items into s:menu_div items each and +" puts them in submenus of the given mainMenu. +" Each menu item is linked to the HandlerFunc. +" If an additional argument is supplied, then it is used to filter each of +" the menu items to generate better names for the menu display. +" +function! Tex_MakeSubmenu(menuList, mainMenuName, + \ handlerFuncLHS, handlerFuncRHS, ...) + + let extractFunction = (a:0 > 0 ? a:1 : '' ) + let menuList = substitute(a:menuList, '[^,]$', ',', '') + + let doneMenuSubmenu = 0 + + while menuList != '' + + " Extract upto s:menu_div menus at once. + let menuBunch = matchstr(menuList, '\v(.{-},){,'.s:menu_div.'}') + + " The remaining menus go into the list. + let menuList = strpart(menuList, strlen(menuBunch)) + + let submenu = '' + " If there is something remaining, then we got s:menu_div items. + " therefore put these menu items into a submenu. + if strlen(menuList) || doneMenuSubmenu + exec 'let firstMenu = '.extractFunction."(matchstr(menuBunch, '\\v^.{-}\\ze,'))" + exec 'let lastMenu = '.extractFunction."(matchstr(menuBunch, '\\v[^,]{-}\\ze,$'))" + + let submenu = firstMenu.'\ \-\ '.lastMenu.'.' + + let doneMenuSubmenu = 1 + endif + + " Now for each menu create a menu under the submenu + let i = 1 + let menuName = Tex_Strntok(menuBunch, ',', i) + while menuName != '' + exec 'let menuItem = '.extractFunction.'(menuName)' + execute 'amenu '.a:mainMenuName.submenu.menuItem + \ ' '.a:handlerFuncLHS.menuName.a:handlerFuncRHS + + let i = i + 1 + let menuName = Tex_Strntok(menuBunch, ',', i) + endwhile + endwhile +endfunction + +" }}} +" GroupPackageMenuItems: uses the sbr: to split menus into groups {{{ +" Description: +" This function first splits up the menuList into groups based on the +" special sbr: tag and then calls Tex_MakeSubmenu +" +function! <SID>GroupPackageMenuItems(menuList, menuName, + \ handlerFuncLHS, handlerFuncRHS,...) + + if a:0 > 0 + let extractFunction = a:1 + else + let extractFunction = '' + endif + let menuList = a:menuList + + while matchstr(menuList, 'sbr:') != '' + let groupName = matchstr(menuList, '\v^sbr:\zs.{-}\ze,') + let menuList = strpart(menuList, strlen('sbr:'.groupName.',')) + if matchstr(menuList, 'sbr:') != '' + let menuGroup = matchstr(menuList, '\v^.{-},\zesbr:') + else + let menuGroup = menuList + endif + + call Tex_MakeSubmenu(menuGroup, a:menuName.groupName.'.', + \ a:handlerFuncLHS, a:handlerFuncRHS, extractFunction) + + let menuList = strpart(menuList, strlen(menuGroup)) + endwhile + + call Tex_MakeSubmenu(menuList, a:menuName, + \ a:handlerFuncLHS, a:handlerFuncRHS, extractFunction) + +endfunction " }}} +" Definition of what to do for various package commands {{{ +let s:CommandSpec_bra = '\<+replace+>{<++>}<++>' +let s:CommandSpec_brs = '\<+replace+><++>' +let s:CommandSpec_brd = '\<+replace+>{<++>}{<++>}<++>' +let s:CommandSpec_env = '\begin{<+replace+>}'."\<CR><++>\<CR>".'\end{<+replace+>}<++>' +let s:CommandSpec_ens = '\begin{<+replace+>}<+extra+>'."\<CR><++>\<CR>".'\end{<+replace+>}<++>' +let s:CommandSpec_eno = '\begin[<++>]{<+replace+>}'."\<CR><++>\<CR>".'\end{<+replace+>}' +let s:CommandSpec_nor = '\<+replace+>' +let s:CommandSpec_noo = '\<+replace+>[<++>]' +let s:CommandSpec_nob = '\<+replace+>[<++>]{<++>}{<++>}<++>' +let s:CommandSpec_spe = '<+replace+>' +let s:CommandSpec_ = '\<+replace+>' + +let s:MenuLHS_bra = '\\&<+replace+>{}' +let s:MenuLHS_brs = '\\&<+replace+>{}' +let s:MenuLHS_brd = '\\&<+replace+>{}{}' +let s:MenuLHS_env = '&<+replace+>\ (E)' +let s:MenuLHS_ens = '&<+replace+>\ (E)' +let s:MenuLHS_eno = '&<+replace+>\ (E)' +let s:MenuLHS_nor = '\\&<+replace+>' +let s:MenuLHS_noo = '\\&<+replace+>[]' +let s:MenuLHS_nob = '\\&<+replace+>[]{}{}' +let s:MenuLHS_spe = '&<+replace+>' +let s:MenuLHS_sep = '-sep<+replace+>-' +let s:MenuLHS_ = '\\&<+replace+>' +" }}} +" Tex_ProcessPackageCommand: processes a command from the package menu {{{ +" Description: +function! Tex_ProcessPackageCommand(command) + if a:command =~ ':' + let commandType = matchstr(a:command, '^\w\+\ze:') + let commandName = matchstr(a:command, '^\w\+:\zs[^:]\+\ze:\?') + let extrapart = strpart(a:command, strlen(commandType.':'.commandName.':')) + else + let commandType = '' + let commandName = a:command + let extrapart = '' + endif + + let command = s:CommandSpec_{commandType} + let command = substitute(command, '<+replace+>', commandName, 'g') + let command = substitute(command, '<+extra+>', extrapart, 'g') + return IMAP_PutTextWithMovement(command) +endfunction +" }}} +" FilterPackageMenuLHS: filters the command description to provide a better menu item {{{ +" Description: +function! <SID>FilterPackageMenuLHS(command) + let commandType = matchstr(a:command, '^\w\+\ze:') + if commandType != '' + let commandName = strpart(a:command, strlen(commandType.':')) + else + let commandName = a:command + endif + + return substitute(s:MenuLHS_{commandType}, '<+replace+>', commandName, 'g') +endfunction " }}} + +if g:Tex_Menus + exe 'amenu '.g:Tex_PackagesMenuLocation.'&UpdatePackage :call Tex_pack(expand("<cword>"))<cr>' + exe 'amenu '.g:Tex_PackagesMenuLocation.'&UpdateAll :call Tex_pack_updateall(1)<cr>' + + call Tex_pack_supp_menu() +endif + +augroup LatexSuite + au LatexSuite User LatexSuiteFileType + \ call Tex_Debug('packages.vim: Catching LatexSuiteFileType event', 'pack') | + \ call Tex_pack_updateall(0) +augroup END + +" vim:fdm=marker:ts=4:sw=4:noet:ff=unix diff --git a/.vim/ftplugin/latex-suite/packages/SIunits b/.vim/ftplugin/latex-suite/packages/SIunits new file mode 100644 index 0000000..ba110fa --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/SIunits @@ -0,0 +1,315 @@ +if exists("SIunits_package_file") + finish +endif +let SIunits_package_file = 1 + +let g:TeX_package_SIunits = +\'nor:addprefix,'. +\'nor:addunit,'. +\'nor:ampere,'. +\'nor:amperemetresecond,'. +\'nor:amperepermetre,'. +\'nor:amperepermetrenp,'. +\'nor:amperepersquaremetre,'. +\'nor:amperepersquaremetrenp,'. +\'nor:angstrom,'. +\'nor:arad,'. +\'nor:arcminute,'. +\'nor:arcsecond,'. +\'nor:are,'. +\'nor:atomicmass,'. +\'nor:atto,'. +\'nor:attod,'. +\'nor:barn,'. +\'nor:bbar,'. +\'nor:becquerel,'. +\'nor:becquerelbase,'. +\'nor:bel,'. +\'nor:candela,'. +\'nor:candelapersquaremetre,'. +\'nor:candelapersquaremetrenp,'. +\'nor:celsius,'. +\'nor:Celsius,'. +\'nor:celsiusbase,'. +\'nor:centi,'. +\'nor:centid,'. +\'nor:coulomb,'. +\'nor:coulombbase,'. +\'nor:coulombpercubicmetre,'. +\'nor:coulombpercubicmetrenp,'. +\'nor:coulombperkilogram,'. +\'nor:coulombperkilogramnp,'. +\'nor:coulombpermol,'. +\'nor:coulombpermolnp,'. +\'nor:coulombpersquaremetre,'. +\'nor:coulombpersquaremetrenp,'. +\'nor:cubed,'. +\'nor:cubic,'. +\'nor:cubicmetre,'. +\'nor:cubicmetreperkilogram,'. +\'nor:cubicmetrepersecond,'. +\'nor:curie,'. +\'nor:dday,'. +\'nor:deca,'. +\'nor:decad,'. +\'nor:deci,'. +\'nor:decid,'. +\'nor:degree,'. +\'nor:degreecelsius,'. +\'nor:deka,'. +\'nor:dekad,'. +\'nor:derbecquerel,'. +\'nor:dercelsius,'. +\'nor:dercoulomb,'. +\'nor:derfarad,'. +\'nor:dergray,'. +\'nor:derhenry,'. +\'nor:derhertz,'. +\'nor:derjoule,'. +\'nor:derkatal,'. +\'nor:derlumen,'. +\'nor:derlux,'. +\'nor:dernewton,'. +\'nor:derohm,'. +\'nor:derpascal,'. +\'nor:derradian,'. +\'nor:dersiemens,'. +\'nor:dersievert,'. +\'nor:dersteradian,'. +\'nor:dertesla,'. +\'nor:dervolt,'. +\'nor:derwatt,'. +\'nor:derweber,'. +\'nor:electronvolt,'. +\'nor:exa,'. +\'nor:exad,'. +\'nor:farad,'. +\'nor:faradbase,'. +\'nor:faradpermetre,'. +\'nor:faradpermetrenp,'. +\'nor:femto,'. +\'nor:femtod,'. +\'nor:fourth,'. +\'nor:gal,'. +\'nor:giga,'. +\'nor:gigad,'. +\'nor:gram,'. +\'nor:graybase,'. +\'nor:graypersecond,'. +\'nor:graypersecondnp,'. +\'nor:hectare,'. +\'nor:hecto,'. +\'nor:hectod,'. +\'nor:henry,'. +\'nor:henrybase,'. +\'nor:henrypermetre,'. +\'nor:henrypermetrenp,'. +\'nor:hertz,'. +\'nor:hertzbase,'. +\'nor:hour,'. +\'nor:joule,'. +\'nor:joulebase,'. +\'nor:joulepercubicmetre,'. +\'nor:joulepercubicmetrenp,'. +\'nor:jouleperkelvin,'. +\'nor:jouleperkelvinnp,'. +\'nor:jouleperkilogram,'. +\'nor:jouleperkilogramkelvin,'. +\'nor:jouleperkilogramkelvinnp,'. +\'nor:jouleperkilogramnp,'. +\'nor:joulepermole,'. +\'nor:joulepermolekelvin,'. +\'nor:joulepermolekelvinnp,'. +\'nor:joulepermolenp,'. +\'nor:joulepersquaremetre,'. +\'nor:joulepersquaremetrenp,'. +\'nor:joulepertesla,'. +\'nor:jouleperteslanp,'. +\'nor:katal,'. +\'nor:katalbase,'. +\'nor:katalpercubicmetre,'. +\'nor:katalpercubicmetrenp,'. +\'nor:kelvin,'. +\'nor:kilo,'. +\'nor:kilod,'. +\'nor:kilogram,'. +\'nor:kilogrammetrepersecond,'. +\'nor:kilogrammetrepersecondnp,'. +\'nor:kilogrammetrepersquaresecond,'. +\'nor:kilogrammetrepersquaresecondnp,'. +\'nor:kilogrampercubicmetre,'. +\'nor:kilogrampercubicmetrecoulomb,'. +\'nor:kilogrampercubicmetrecoulombnp,'. +\'nor:kilogrampercubicmetrenp,'. +\'nor:kilogramperkilomole,'. +\'nor:kilogramperkilomolenp,'. +\'nor:kilogrampermetre,'. +\'nor:kilogrampermetrenp,'. +\'nor:kilogrampersecond,'. +\'nor:kilogrampersecondcubicmetre,'. +\'nor:kilogrampersecondcubicmetrenp,'. +\'nor:kilogrampersecondnp,'. +\'nor:kilogrampersquaremetre,'. +\'nor:kilogrampersquaremetrenp,'. +\'nor:kilogrampersquaremetresecond,'. +\'nor:kilogrampersquaremetresecondnp,'. +\'nor:kilogramsquaremetre,'. +\'nor:kilogramsquaremetrenp,'. +\'nor:kilogramsquaremetrepersecond,'. +\'nor:kilogramsquaremetrepersecondnp,'. +\'nor:kilowatthour,'. +\'nor:liter,'. +\'nor:litre,'. +\'nor:lumen,'. +\'nor:lumenbase,'. +\'nor:lux,'. +\'nor:luxbase,'. +\'nor:mega,'. +\'nor:megad,'. +\'nor:meter,'. +\'nor:metre,'. +\'nor:metrepersecond,'. +\'nor:metrepersecondnp,'. +\'nor:metrepersquaresecond,'. +\'nor:metrepersquaresecondnp,'. +\'nor:micro,'. +\'nor:microd,'. +\'nor:milli,'. +\'nor:millid,'. +\'nor:minute,'. +\'nor:mole,'. +\'nor:molepercubicmetre,'. +\'nor:molepercubicmetrenp,'. +\'nor:nano,'. +\'nor:nanod,'. +\'nor:neper,'. +\'nor:newton,'. +\'nor:newtonbase,'. +\'nor:newtonmetre,'. +\'nor:newtonpercubicmetre,'. +\'nor:newtonpercubicmetrenp,'. +\'nor:newtonperkilogram,'. +\'nor:newtonperkilogramnp,'. +\'nor:newtonpermetre,'. +\'nor:newtonpermetrenp,'. +\'nor:newtonpersquaremetre,'. +\'nor:newtonpersquaremetrenp,'. +\'nor:NoAMS,'. +\'nor:no@qsk,'. +\'nor:ohm,'. +\'nor:ohmbase,'. +\'nor:ohmmetre,'. +\'nor:one,'. +\'nor:paminute,'. +\'nor:pascal,'. +\'nor:pascalbase,'. +\'nor:pascalsecond,'. +\'nor:pasecond,'. +\'nor:per,'. +\'nor:period@active,'. +\'nor:persquaremetresecond,'. +\'nor:persquaremetresecondnp,'. +\'nor:peta,'. +\'nor:petad,'. +\'nor:pico,'. +\'nor:picod,'. +\'nor:power,'. +\'nor:@qsk,'. +\'nor:quantityskip,'. +\'nor:rad,'. +\'nor:radian,'. +\'nor:radianbase,'. +\'nor:radianpersecond,'. +\'nor:radianpersecondnp,'. +\'nor:radianpersquaresecond,'. +\'nor:radianpersquaresecondnp,'. +\'nor:reciprocal,'. +\'nor:rem,'. +\'nor:roentgen,'. +\'nor:rp,'. +\'nor:rpcubed,'. +\'nor:rpcubic,'. +\'nor:rpcubicmetreperkilogram,'. +\'nor:rpcubicmetrepersecond,'. +\'nor:rperminute,'. +\'nor:rpersecond,'. +\'nor:rpfourth,'. +\'nor:rpsquare,'. +\'nor:rpsquared,'. +\'nor:rpsquaremetreperkilogram,'. +\'nor:second,'. +\'nor:siemens,'. +\'nor:siemensbase,'. +\'nor:sievert,'. +\'nor:sievertbase,'. +\'nor:square,'. +\'nor:squared,'. +\'nor:squaremetre,'. +\'nor:squaremetrepercubicmetre,'. +\'nor:squaremetrepercubicmetrenp,'. +\'nor:squaremetrepercubicsecond,'. +\'nor:squaremetrepercubicsecondnp,'. +\'nor:squaremetreperkilogram,'. +\'nor:squaremetrepernewtonsecond,'. +\'nor:squaremetrepernewtonsecondnp,'. +\'nor:squaremetrepersecond,'. +\'nor:squaremetrepersecondnp,'. +\'nor:squaremetrepersquaresecond,'. +\'nor:squaremetrepersquaresecondnp,'. +\'nor:steradian,'. +\'nor:steradianbase,'. +\'nor:tera,'. +\'nor:terad,'. +\'nor:tesla,'. +\'nor:teslabase,'. +\'nor:ton,'. +\'nor:tonne,'. +\'nor:unit,'. +\'nor:unitskip,'. +\'nor:usk,'. +\'nor:volt,'. +\'nor:voltbase,'. +\'nor:voltpermetre,'. +\'nor:voltpermetrenp,'. +\'nor:watt,'. +\'nor:wattbase,'. +\'nor:wattpercubicmetre,'. +\'nor:wattpercubicmetrenp,'. +\'nor:wattperkilogram,'. +\'nor:wattperkilogramnp,'. +\'nor:wattpermetrekelvin,'. +\'nor:wattpermetrekelvinnp,'. +\'nor:wattpersquaremetre,'. +\'nor:wattpersquaremetrenp,'. +\'nor:wattpersquaremetresteradian,'. +\'nor:wattpersquaremetresteradiannp,'. +\'nor:weber,'. +\'nor:weberbase,'. +\'nor:yocto,'. +\'nor:yoctod,'. +\'nor:yotta,'. +\'nor:yottad,'. +\'nor:zepto,'. +\'nor:zeptod,'. +\'nor:zetta,'. +\'nor:zettad' + +let g:TeX_package_option_SIunits = +\'amssymb,'. +\'binary,'. +\'cdot,'. +\'derived,'. +\'derivedinbase,'. +\'Gray,'. +\'mediumqspace,'. +\'mediumspace,'. +\'noams,'. +\'pstricks,'. +\'squaren,'. +\'textstyle,'. +\'thickqspace,'. +\'thickspace,'. +\'thinqspace,'. +\'thinspace' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/accents b/.vim/ftplugin/latex-suite/packages/accents new file mode 100644 index 0000000..706d95e --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/accents @@ -0,0 +1,28 @@ +if exists("accents_package_file") + finish +endif +let accents_package_file = 1 + +let g:TeX_package_option_accents = +\ 'nonscript,' +\.'single' + +let g:TeX_package_accents = +\ 'bra:grave,' +\.'bra:acute,' +\.'bra:check,' +\.'bra:breve,' +\.'bra:bar,' +\.'bra:ring,' +\.'bra:hat,' +\.'bra:dot,' +\.'bra:tilde,' +\.'bra:undertilde,' +\.'bra:ddot,' +\.'bra:dddot,' +\.'bra:ddddot,' +\.'bra:vec,' +\.'brd:accentset,' +\.'brd:underaccent' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/acromake b/.vim/ftplugin/latex-suite/packages/acromake new file mode 100644 index 0000000..2130f61 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/acromake @@ -0,0 +1,10 @@ +if exists("acromake_package_file") + finish +endif +let acromake_package_file = 1 + +let g:TeX_package_option_acromake = '' + +let g:TeX_package_acromake = 'brs:acromake{<++>}{<++>}{<++>}' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/afterpage b/.vim/ftplugin/latex-suite/packages/afterpage new file mode 100644 index 0000000..5087321 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/afterpage @@ -0,0 +1,10 @@ +if exists("afterpage_package_file") + finish +endif +let afterpage_package_file = 1 + +let g:TeX_package_option_afterpage = '' + +let g:TeX_package_afterpage = 'bra:afterpage' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/alltt b/.vim/ftplugin/latex-suite/packages/alltt new file mode 100644 index 0000000..c30b684 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/alltt @@ -0,0 +1,12 @@ +if exists("alltt_package_file") + finish +endif +let alltt_package_file = 1 + +let g:TeX_package_option_alltt = '' + +let g:TeX_package_alltt = 'env:alltt' + +syn region texZone start="\\begin{alltt}" end="\\end{alltt}\|%stopzone\>" fold + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/amsmath b/.vim/ftplugin/latex-suite/packages/amsmath new file mode 100644 index 0000000..fd7dcda --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/amsmath @@ -0,0 +1,106 @@ +if exists("amsmath_package_file") + finish +endif +let amsmath_package_file = 1 + +let g:TeX_package_option_amsmath = +\ 'centertags,' +\.'tbtags,' +\.'sumlimits,' +\.'nosumlimits,' +\.'intlimits,' +\.'nointlimits,' +\.'namelimits,' +\.'nonamelimits,' +\.'leqno,' +\.'reqno,' +\.'fleqno' + +let g:TeX_package_amsmath = +\ 'sbr:Environments,' +\.'env:equation,' +\.'env:equation*,' +\.'env:align,' +\.'env:align*,' +\.'env:gather,' +\.'env:gather*,' +\.'env:flalign,' +\.'env:flalign*,' +\.'env:multline,' +\.'env:multline*,' +\.'ens:alignat:{<+arg1+>}{<+arg2+>},' +\.'env:alignat,' +\.'ens:alignat*:{<+arg1+>}{<+arg2+>},,' +\.'env:alignat*,' +\.'env:subequations,' +\.'env:subarray,' +\.'env:split,' +\.'env:cases,' +\.'sbr:Matrices,' +\.'env:matrix,' +\.'env:pmatrix,' +\.'env:bmatrix,' +\.'env:Bmatrix,' +\.'env:vmatrix,' +\.'env:Vmatrix,' +\.'env:smallmatrix,' +\.'bra:hdotsfor,' +\.'sbr:Dots,' +\.'dotsc,' +\.'dotsb,' +\.'dotsm,' +\.'dotsi,' +\.'dotso,' +\.'sbr:ItalicGreek,' +\.'nor:varGamma,' +\.'nor:varDelta,' +\.'nor:varTheta,' +\.'nor:varLambda,' +\.'nor:varXi,' +\.'nor:varPi,' +\.'nor:varSigma,' +\.'nor:varUpsilon,' +\.'nor:varPhi,' +\.'nor:varPsi,' +\.'nor:varOmega,' +\.'sbr:Mod,' +\.'nor:mod,' +\.'nor:bmod,' +\.'nor:pmod,' +\.'nor:pod,' +\.'sbr:CreatingSymbols,' +\.'brd:overset,' +\.'brd:underset,' +\.'brd:sideset,' +\.'sbr:Fractions,' +\.'brd:frac,' +\.'brd:dfrac,' +\.'brd:tfrac,' +\.'brd:cfrac,' +\.'brd:binom,' +\.'brd:dbinom,' +\.'brd:tbinom,' +\.'brs:genfrac{<+ldelim+>}{<+rdelim+>}{<+thick+>}{<+style+>}{<+numer+>}{<+denom+>},' +\.'sbr:Commands,' +\.'nob:smash,' +\.'bra:substack,' +\.'bra:tag,' +\.'bra:tag*,' +\.'nor:notag,' +\.'bra:raisetag,' +\.'bra:shoveleft,' +\.'bra:shoveright,' +\.'bra:intertext,' +\.'bra:text,' +\.'nor:displaybreak,' +\.'noo:displaybreak,' +\.'noo:allowdisplaybreaks,' +\.'nor:nobreakdash,' +\.'brs:numberwithin{<+env+>}{<+parent+>},' +\.'bra:leftroot,' +\.'bra:uproot,' +\.'bra:boxed,' +\.'brs:DeclareMathSymbol{<++>}{<++>}{<++>}{<++>},' +\.'bra:eqref' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/amsthm b/.vim/ftplugin/latex-suite/packages/amsthm new file mode 100644 index 0000000..6bae018 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/amsthm @@ -0,0 +1,21 @@ +if exists("amsthm_package_file") + finish +endif +let amsthm_package_file = 1 + +let TeX_package_option_amsthm = '' + +let TeX_package_amsthm = +\ 'env:proof,' +\.'nor:swapnumbers,' +\.'brd:newtheorem,' +\.'brd:newtheorem*,' +\.'nor:theoremstyle{plain},' +\.'nor:theoremstyle{definition},' +\.'nor:theoremstyle{remark},' +\.'nor:newtheoremstyle,' +\.'nor:qedsymbol,' +\.'nor:qed,' +\.'nor:qedhere' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/amsxtra b/.vim/ftplugin/latex-suite/packages/amsxtra new file mode 100644 index 0000000..3875cc3 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/amsxtra @@ -0,0 +1,12 @@ +if exists("amsxtra_package_file") + finish +endif +let amsxtra_package_file = 1 + +let g:TeX_package_option_amsxtra = '' + +let g:TeX_package_amsxtra = +\ 'nor:sphat,' +\.'nor:sptilde' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/arabic b/.vim/ftplugin/latex-suite/packages/arabic new file mode 100644 index 0000000..46f8314 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/arabic @@ -0,0 +1,10 @@ +if exists("arabic_package_file") + finish +endif +let arabic_package_file = 1 + +let g:TeX_package_option_arabic = '' + +let g:TeX_package_arabic = 'bra:arabicnumeral' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/array b/.vim/ftplugin/latex-suite/packages/array new file mode 100644 index 0000000..99f3dbc --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/array @@ -0,0 +1,17 @@ +if exists("array_package_file") + finish +endif +let array_package_file = 1 + +let g:TeX_package_option_array = '' + +let g:TeX_package_array = +\ 'brs:newcolumntype{<+type+>}[<+no+>]{<+preamble+>},' +\.'arraycolsep,' +\.'tabcolsep,' +\.'arrayrulewidth,' +\.'doublerulesep,' +\.'arraystretch,' +\.'extrarowheight' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/babel b/.vim/ftplugin/latex-suite/packages/babel new file mode 100644 index 0000000..cdb76ec --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/babel @@ -0,0 +1,98 @@ +if exists("babel_package_file") + finish +endif +let babel_package_file = 1 + +" This package sets some language specific options. +" Since it needs to find out which options the user used with the babel +" package, it needs to wait till latex-suite is done scanning packages. It +" then catches the LatexSuiteScannedPackages event which +" Tex_pack_updateall() throws at which time g:Tex_pack_detected and +" g:Tex_babel_options contain the necessary information. + +let g:TeX_package_option_babel = +\ 'afrikaans,' +\.'bahasa,' +\.'basque,' +\.'breton,' +\.'bulgarian,' +\.'catalan,' +\.'croatian,' +\.'chech,' +\.'danish,' +\.'dutch,' +\.'english,USenglish,american,UKenglish,british,canadian,' +\.'esperanto,' +\.'estonian,' +\.'finnish,' +\.'french,francais,canadien,acadian,' +\.'galician,' +\.'austrian,german,germanb,ngerman,naustrian,' +\.'greek,polutonikogreek,' +\.'hebrew,' +\.'magyar,hungarian,' +\.'icelandic,' +\.'irish,' +\.'italian,' +\.'latin,' +\.'lowersorbian,' +\.'samin,' +\.'norsk,nynorsk,' +\.'polish,' +\.'portuges,portuguese,brazilian,brazil,' +\.'romanian,' +\.'russian,' +\.'scottish,' +\.'spanish,' +\.'slovak,' +\.'slovene,' +\.'swedish,' +\.'serbian,' +\.'turkish,' +\.'ukrainian,' +\.'uppersorbian,' +\.'welsh' + +let g:TeX_package_babel = +\ 'bra:selectlanguage,' +\.'env:otherlanguage,' +\.'env:otherlanguage*,' +\.'env:hyphenrules,' +\.'brd:foreignlanguage,' +\.'spe:iflanguage{<+name+>}{<+true+>}{<+false+>},' +\.'languagename,' +\.'bra:useshorthands,' +\.'brd:defineshorthand,' +\.'brd:aliasshorthand,' +\.'bra:languageshorthans,' +\.'bra:shorthandon,' +\.'bra:shorthandoff,' +\.'brd:languageattribute' + +" vim:ft=vim:ff=unix: +if exists('s:doneOnce') + finish +endif +let s:doneOnce = 1 + +augroup LatexSuite + au LatexSuite User LatexSuiteScannedPackages + \ call Tex_Debug('babel: catching LatexSuiteScannedPackages event') | + \ call s:SetQuotes() +augroup END + +let s:path = expand('<sfile>:p:h') + +" SetQuotes: sets quotes for various languages {{{ +" Description: +function! <SID>SetQuotes() + if g:Tex_package_detected =~ '\<babel\>' + if g:Tex_babel_options =~ '\<german\>' + exec 'so '.s:path.'/german' + elseif g:Tex_babel_options =~ '\<ngerman\>' + exec 'so '.s:path.'/ngerman' + endif + endif +endfunction " }}} + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/bar b/.vim/ftplugin/latex-suite/packages/bar new file mode 100644 index 0000000..0087b95 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/bar @@ -0,0 +1,27 @@ +if exists("bar_package_file") + finish +endif +let bar_package_file = 1 + +let g:TeX_package_option_bar = '' + +let g:TeX_package_bar = +\ 'env:barenv,' +\.'brs:bar{<+height+>}{<+index+>}[<+desc+>],' +\.'hlineon,' +\.'brs:legend{<+index+>}{<+text+>},' +\.'bra:setdepth,' +\.'bra:sethspace,' +\.'brs:setlinestyle{<+solid-dotted+>},' +\.'brs:setnumberpos{<+empty-axis-down-inside-outside-up+>},' +\.'bra:setprecision,' +\.'bra:setstretch,' +\.'bra:setstyle,' +\.'bra:setwidth,' +\.'brs:setxaxis{<+w1+>}{<+w2+>}{<+step+>},' +\.'brs:setyaxis[<+n+>]{<+w1+>}{<+w2+>}{<+step+>},' +\.'brs:setxname[<+lrbt+>]{<+etiquette+>},' +\.'brs:setyname[<+lrbt+>]{<+etiquette+>},' +\.'brs:setxvaluetyp{<+day-month+>}' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/bm b/.vim/ftplugin/latex-suite/packages/bm new file mode 100644 index 0000000..1cd5109 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/bm @@ -0,0 +1,10 @@ +if exists("bm_package_file") + finish +endif +let bm_package_file = 1 + +let g:TeX_package_option_bm = '' + +let g:TeX_package_bm = 'bra:bm' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/bophook b/.vim/ftplugin/latex-suite/packages/bophook new file mode 100644 index 0000000..16ca8b0 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/bophook @@ -0,0 +1,12 @@ +if exists("bophook_package_file") + finish +endif +let bophook_package_file = 1 + +let g:TeX_package_option_bophook = '' + +let g:TeX_package_bophook = +\ 'bra:AtBeginPage,' +\.'bra:PageLayout' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/boxedminipage b/.vim/ftplugin/latex-suite/packages/boxedminipage new file mode 100644 index 0000000..0917352 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/boxedminipage @@ -0,0 +1,10 @@ +if exists("boxedminipage_package_file") + finish +endif +let boxedminipage_package_file = 1 + +let g:TeX_package_option_boxedminipage = '' + +let g:TeX_package_boxedminipage = 'ens:boxedminipage:[<+pos+>]{<+size+>}' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/caption2 b/.vim/ftplugin/latex-suite/packages/caption2 new file mode 100644 index 0000000..7e16031 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/caption2 @@ -0,0 +1,43 @@ +if exists("caption2_package_file") + finish +endif +let caption2_package_file = 1 + +let g:TeX_package_option_caption2 = +\ 'scriptsize,' +\.'footnotesize,' +\.'small,' +\.'normalsize,' +\.'large,' +\.'Large,' +\.'up,' +\.'it,' +\.'sl,' +\.'sc,' +\.'md,' +\.'bf,' +\.'rm,' +\.'sf,' +\.'tt,' +\.'ruled,' +\.'boxed,' +\.'centerlast,' +\.'anne,' +\.'center,' +\.'flushleft,' +\.'flushright,' +\.'oneline,' +\.'nooneline,' +\.'hang,' +\.'isu,' +\.'indent,' +\.'longtable' + +let g:TeX_package_caption2 = +\ 'bra:captionsize,' +\.'bra:captionfont,' +\.'bra:captionlabelfont,' +\.'bra:setcaptionmargin,' +\.'bra:setcaptionwidth' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/cases b/.vim/ftplugin/latex-suite/packages/cases new file mode 100644 index 0000000..a2deafe --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/cases @@ -0,0 +1,12 @@ +if exists("cases_package_file") + finish +endif +let cases_package_file = 1 + +let g:TeX_package_option_cases = '' + +let g:TeX_package_cases = +\ 'ens:numcases:{<+label+>},' +\.'ens:subnumcases:{<+label+>}' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/ccaption b/.vim/ftplugin/latex-suite/packages/ccaption new file mode 100644 index 0000000..2ec3f2f --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/ccaption @@ -0,0 +1,20 @@ +if exists("ccaption_package_file") + finish +endif +let ccaption_package_file = 1 + +let g:TeX_package_option_ccaption = '' + +let g:TeX_package_ccaption = +\ 'bra:contcaption,' +\.'bra:legend,' +\.'bra:namedlegend,' +\.'abovelegendskip,' +\.'belowlegendskip,' +\.'brd:newfixedcaption,' +\.'brd:renewfixedcaption,' +\.'brd:providefixedcaption,' +\.'brs:newfloatenv[<+counter+>]{<+name+>}{<+ext+>}{<+etiq+>},' +\.'brd:listfloats' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/changebar b/.vim/ftplugin/latex-suite/packages/changebar new file mode 100644 index 0000000..e5002cf --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/changebar @@ -0,0 +1,35 @@ +if exists("changebar_package_file") + finish +endif +let changebar_package_file = 1 + +let g:TeX_package_option_changebar = +\ 'DVItoLN03,' +\.'dvitoln03,' +\.'DVItoPS,' +\.'dvitops,' +\.'DVIps,' +\.'dvips,' +\.'emTeX,' +\.'emtex,' +\.'textures,' +\.'Textures,' +\.'outerbars,' +\.'innerbars,' +\.'leftbars,' +\.'rightbars,' +\.'traceon,' +\.'traceoff' + +let g:TeX_package_changebar = +\ 'ens:changebar:[<+thickness+>],' +\.'noo:cbstart,' +\.'cbend,' +\.'cbdelete,' +\.'changebarwidth,' +\.'deletebarwidth,' +\.'changebarsep,' +\.'spe:changebargrey,' +\.'nochangebars' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/chapterbib b/.vim/ftplugin/latex-suite/packages/chapterbib new file mode 100644 index 0000000..331e901 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/chapterbib @@ -0,0 +1,24 @@ +if exists("chapterbib_package_file") + finish +endif +let chapterbib_package_file = 1 + +let g:TeX_package_option_chapterbib = +\ 'sectionbib,' +\.'rootbib,' +\.'gather,' +\.'duplicate' + +let g:TeX_package_chapterbib = +\ 'env:cbunit,' +\.'brd:sectionbib,' +\.'bra:cbinput,' +\.'sep:redefine,' +\.'bra:citeform,' +\.'bra:citepunct,' +\.'bra:citeleft,' +\.'bra:citeright,' +\.'bra:citemid,' +\.'bra:citedash' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/cite b/.vim/ftplugin/latex-suite/packages/cite new file mode 100644 index 0000000..aa43e5b --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/cite @@ -0,0 +1,32 @@ +if exists("cite_package_file") + finish +endif +let cite_package_file = 1 + +let g:TeX_package_option_cite = +\ 'verbose,' +\.'nospace,' +\.'space,' +\.'nosort,' +\.'sort,' +\.'noadjust' + +let g:TeX_package_cite = +\ 'bra:cite,' +\.'bra:citen,' +\.'bra:citenum,' +\.'bra:citeonline,' +\.'bra:nocite,' +\.'sep:redefine,' +\.'bra:citeform,' +\.'bra:citepunct,' +\.'bra:citeleft,' +\.'bra:citeright,' +\.'bra:citemid,' +\.'bra:citedash' + +syn region texRefZone matchgroup=texStatement start="\\citen\([tp]\*\=\)\={" keepend end="}\|%stopzone\>" contains=texComment,texDelimiter +syn region texRefZone matchgroup=texStatement start="\\citenum\([tp]\*\=\)\={" keepend end="}\|%stopzone\>" contains=texComment,texDelimiter +syn region texRefZone matchgroup=texStatement start="\\citeonline\([tp]\*\=\)\={" keepend end="}\|%stopzone\>" contains=texComment,texDelimiter + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/color b/.vim/ftplugin/latex-suite/packages/color new file mode 100644 index 0000000..7f3aeac --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/color @@ -0,0 +1,43 @@ +if exists("color_package_file") + finish +endif +let color_package_file = 1 + +let g:TeX_package_option_color = +\ 'monochrome,' +\.'debugshow,' +\.'dvips,' +\.'xdvi,' +\.'dvipdf,' +\.'pdftex,' +\.'dvipsone,' +\.'dviwindo,' +\.'emtex,' +\.'dviwin,' +\.'oztex,' +\.'textures,' +\.'pctexps,' +\.'pctexwin,' +\.'pctexhp,' +\.'pctex32,' +\.'truetex,' +\.'tcidvi,' +\.'dvipsnames,' +\.'nodvipsnames,' +\.'usenames' + +let g:TeX_package_color = +\ 'brs:definecolor{<++>}{<++>}{<++>},' +\.'brs:DefineNamedColor{<++>}{<++>}{<++>}{<++>},' +\.'bra:color,' +\.'nob:color,' +\.'brd:textcolor,' +\.'brs:textcolor[<++>]{<++>}{<++>},' +\.'brd:colorbox,' +\.'brs:colorbox[<++>]{<++>}{<++>},' +\.'brs:fcolorbox{<++>}{<++>}{<++>},' +\.'brs:fcolorbox[<++>]{<++>}{<++>}{<++>},' +\.'brd:pagecolor,' +\.'nob:pagecolor' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/comma b/.vim/ftplugin/latex-suite/packages/comma new file mode 100644 index 0000000..5ec8d70 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/comma @@ -0,0 +1,12 @@ +if exists("comma_package_file") + finish +endif +let comma_package_file = 1 + +let g:TeX_package_option_comma = '' + +let g:TeX_package_comma = +\ 'bra:commaform,' +\.'bra:commaformtoken' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/deleq b/.vim/ftplugin/latex-suite/packages/deleq new file mode 100644 index 0000000..58426d2 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/deleq @@ -0,0 +1,36 @@ +if exists("deleq_package_file") + finish +endif +let deleq_package_file = 1 + +let g:TeX_package_option_deleq = '' + +let g:TeX_package_deleq = +\.'env:deqn,' +\.'env:ddeqn,' +\.'env:deqarr,' +\.'env:ddeqar,' +\.'env:deqrarr,' +\.'nor:nydeqno,' +\.'nor:heqno,' +\.'bra:reqno,' +\.'bra:rndeqno,' +\.'bra:rdeqno,' +\.'nob:eqreqno,' +\.'nob:deqreqno,' +\.'nob:ddeqreqno,' +\.'bra:arrlabel,' +\.'nor:where,' +\.'bra:remtext,' +\.'nor:nydeleqno,' +\.'nor:deleqno,' +\.'nor:jotbaseline' + +if !exists("tex_no_math") + syn region texMathZoneA start="\\begin\s*{\s*deqn\*\s*}" end="\\end\s*{\s*deqn\*\s*}" keepend fold contains=@texMathZoneGroup + syn region texMathZoneB start="\\begin\s*{\s*ddeqn\*\s*}" end="\\end\s*{\s*ddeqn\*\s*}" keepend fold contains=@texMathZoneGroup + syn region texMathZoneC start="\\begin\s*{\s*deqarr\s*}" end="\\end\s*{\s*deqarr\s*}" keepend fold contains=@texMathZoneGroup + syn region texMathZoneD start="\\begin\s*{\s*ddeqar\s*}" end="\\end\s*{\s*ddeqar\s*}" keepend fold contains=@texMathZoneGroup + syn region texMathZoneE start="\\begin\s*{\s*deqrarr\*\s*}" end="\\end\s*{\s*deqrarr\*\s*}" keepend fold contains=@texMathZoneGroup +endif +" vim:ft=vim:ff=unix:noet:ts=4: diff --git a/.vim/ftplugin/latex-suite/packages/drftcite b/.vim/ftplugin/latex-suite/packages/drftcite new file mode 100644 index 0000000..8c30447 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/drftcite @@ -0,0 +1,29 @@ +if exists("drftcite_package_file") + finish +endif +let drftcite_package_file = 1 + +let g:TeX_package_option_drftcite = +\ 'verbose,' +\.'nospace,' +\.'space,' +\.'breakcites,' +\.'manualsort,' +\.'tt,' +\.'shownumbers,' +\.'nocitecount' + +let g:TeX_package_drftcite = +\ 'bra:cite,' +\.'bra:citen,' +\.'sep:redefine,' +\.'bra:citeform,' +\.'bra:citepunct,' +\.'bra:citeleft,' +\.'bra:citeright,' +\.'bra:citemid,' +\.'bra:citedash' + +syn region texRefZone matchgroup=texStatement start="\\citen\([tp]\*\=\)\={" keepend end="}\|%stopzone\>" contains=texComment,texDelimiter + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/dropping b/.vim/ftplugin/latex-suite/packages/dropping new file mode 100644 index 0000000..bcfc11f --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/dropping @@ -0,0 +1,12 @@ +if exists("dropping_package_file") + finish +endif +let dropping_package_file = 1 + +let g:TeX_package_option_dropping = '' + +let g:TeX_package_dropping = +\ 'brs:bigdrop{<+indent+>}{<+big+>}{<+font+>}{<+text+>},' +\.'brs:dropping[<+indent+>]{<+big+>}{<+text+>}' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/enumerate b/.vim/ftplugin/latex-suite/packages/enumerate new file mode 100644 index 0000000..40c3f7c --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/enumerate @@ -0,0 +1,10 @@ +if exists("enumerate_package_file") + finish +endif +let enumerate_package_file = 1 + +let g:TeX_package_option_enumerate = '' + +let g:TeX_package_enumerate = 'ens:enumerate:[<+prefix+>]' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/eqlist b/.vim/ftplugin/latex-suite/packages/eqlist new file mode 100644 index 0000000..e1e249e --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/eqlist @@ -0,0 +1,19 @@ +if exists("eqlist_package_file") + finish +endif +let eqlist_package_file = 1 + +let g:TeX_package_option_eqlist = '' + +let g:TeX_package_eqlist = +\ 'env:eqlist,' +\.'env:eqlist*,' +\.'env:Eqlist,' +\.'env:Eqlist*,' +\.'sep:modificators,' +\.'eqlistinit,' +\.'eqliststarinit,' +\.'eqlistinitpar,' +\.'eqlistlabel' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/eqparbox b/.vim/ftplugin/latex-suite/packages/eqparbox new file mode 100644 index 0000000..a05061b --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/eqparbox @@ -0,0 +1,12 @@ +if exists("eqparbox_package_file") + finish +endif +let eqparbox_package_file = 1 + +let g:TeX_package_option_eqparbox = '' + +let g:TeX_package_eqparbox = +\ 'brs:eqparbox[<+pos+>][<+height+>][<+inner-pos+>]{<+tag+>}{<+text+>},' +\.'bra:eqboxwidth' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/everyshi b/.vim/ftplugin/latex-suite/packages/everyshi new file mode 100644 index 0000000..e42a3d5 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/everyshi @@ -0,0 +1,10 @@ +if exists("everyshi_package_file") + finish +endif +let everyshi_package_file = 1 + +let g:TeX_package_option_everyshi = '' + +let g:TeX_package_everyshi = 'bra:EveryShipOut' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/exmpl b/.vim/ftplugin/latex-suite/packages/exmpl new file mode 100644 index 0000000..e9e37fc --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/exmpl @@ -0,0 +1,55 @@ +if exists("exmpl_package_file") + finish +endif +let exmpl_package_file = 1 + +" Author: Mikolaj Machowski +" Date: 10.04.2002 +" Example plugin for packages in latexSuite +" + +" This variable creates Options submenu in package menu. Even when no options are +" given for this package it HAS to exist in form +" let TeX_package_option_exmpl = "" +" Options and commands are delimited with comma , + +let g:TeX_package_option_exmpl = "OpcjaA=,OpcjaB,OpcjaC" + +" Most command should have some definition before. Package menu system can +" recognize type of command and behave in good manner: +" env: (environment) creates simple environment template +" \begin{command} +" x <- cursor here +" \end{command} +" +" bra: (brackets) useful when inserting brackets commands +" \command{x}<<>> <- cursor at x, and placeholders as in other menu entries +" +" nor: (normal) nor: and pla: are `highlighted' in menu with `'' +" \command<Space> +" +" pla: (plain) +" command<Space> +" +" spe: (special) +" command <-literal insertion of command, in future here should go +" commands with special characters +" +" sep: (separator) creates separator. Good for aesthetics and usability :) +" +" Command can be also given with no prefix:. The result is +" \command (as in nor: but without <Space>) + + +let g:TeX_package_exmpl = "env:AEnvFirst,env:aEnvSec,env:BThi," + \ . "sep:a,env:zzzz," + \ . "bra:aBraFirst,bra:bBraSec,bra:cBraThi," + \ . "sep:b," + \ . "nor:aNorPri,nor:bNorSec,nor:cNorTer," + \ . "sep:c," + \ . "pla:aPla1,pla:bPla2,pla:cPla3," + \ . "sep:d," + \ . "spe:aSpe1,spe:bSpe2,spe:cSpe3," + \ . "sep:e," + \ . "aNo1,bNo2,cNo3" +" vim:ft=vim diff --git a/.vim/ftplugin/latex-suite/packages/flafter b/.vim/ftplugin/latex-suite/packages/flafter new file mode 100644 index 0000000..8859397 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/flafter @@ -0,0 +1,10 @@ +if exists("flafter_package_file") + finish +endif +let flafter_package_file = 1 + +let g:TeX_package_option_flafter = '' + +let g:TeX_package_flafter = 'noo:suppressfloats,noo:suppress' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/float b/.vim/ftplugin/latex-suite/packages/float new file mode 100644 index 0000000..7c1cf46 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/float @@ -0,0 +1,16 @@ +if exists("float_package_file") + finish +endif +let float_package_file = 1 + +let g:TeX_package_option_float = '' + +let g:TeX_package_float = +\ 'bra:floatstyle,' +\.'brs:newfloat{<++>}{<++>}{<++>}[<++>],' +\.'brd:floatname,' +\.'brd:listof,' +\.'bra:restylefloat,' +\.'brd:floatplacement' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/floatflt b/.vim/ftplugin/latex-suite/packages/floatflt new file mode 100644 index 0000000..4902d89 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/floatflt @@ -0,0 +1,12 @@ +if exists("floatflt_package_file") + finish +endif +let floatflt_package_file = 1 + +let g:TeX_package_option_floatflt = 'rflt,lflt,vflt' + +let g:TeX_package_floatflt = +\ 'ens:floatingfigure:[<+loc+>]{<+spec+>},' +\.'ens:floatingtable:[<+loc+>]{<+spec+>}' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/fn2end b/.vim/ftplugin/latex-suite/packages/fn2end new file mode 100644 index 0000000..aac4184 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/fn2end @@ -0,0 +1,10 @@ +if exists("fn2end_package_file") + finish +endif +let fn2end_package_file = 1 + +let g:TeX_package_option_fn2end = '' + +let g:TeX_package_fn2end = 'makeendnotes,theendnotes' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/footmisc b/.vim/ftplugin/latex-suite/packages/footmisc new file mode 100644 index 0000000..04723f6 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/footmisc @@ -0,0 +1,21 @@ +if exists("footmisc_package_file") + finish +endif +let footmisc_package_file = 1 + +let g:TeX_package_option_footmisc = +\ 'bottom,' +\.'flushmargin,' +\.'marginal,' +\.'multiple,' +\.'norule,' +\.'para,' +\.'perpage,' +\.'splitrule,' +\.'stable,' +\.'symbol,' +\.'symbol+' + +let g:TeX_package_footmisc = '' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/geometry b/.vim/ftplugin/latex-suite/packages/geometry new file mode 100644 index 0000000..667a289 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/geometry @@ -0,0 +1,93 @@ +if exists("geometry_package_file") + finish +endif +let geometry_package_file = 1 + +let g:TeX_package_option_geometry = +\ 'sbr:Boolean,' +\.'verbose,' +\.'landscape,' +\.'portrait,' +\.'twoside,' +\.'includemp,' +\.'reversemp,' +\.'reversemarginpar,' +\.'nohead,' +\.'nofoot,' +\.'noheadfoot,' +\.'dvips,' +\.'pdftex,' +\.'vtex,' +\.'truedimen,' +\.'reset,' +\.'sbr:BooleanDimensions,' +\.'a0paper,' +\.'a1paper,' +\.'a2paper,' +\.'a3paper,' +\.'a4paper,' +\.'a5paper,' +\.'a6paper,' +\.'b0paper,' +\.'b1paper,' +\.'b2paper,' +\.'b3paper,' +\.'b4paper,' +\.'b5paper,' +\.'b6paper,' +\.'letterpaper,' +\.'executivepaper,' +\.'legalpaper,' +\.'sbr:SingleValueOption,' +\.'paper=,' +\.'papername=,' +\.'paperwidth=,' +\.'paperheight=,' +\.'width=,' +\.'totalwidth=,' +\.'height=,' +\.'totalheight=,' +\.'left=,' +\.'lmargin=,' +\.'right=,' +\.'rmargin=,' +\.'top=,' +\.'tmargin=,' +\.'bottom=,' +\.'bmargin=,' +\.'hscale=,' +\.'vscale=,' +\.'textwidth=,' +\.'textheight=,' +\.'marginparwidth=,' +\.'marginpar=,' +\.'marginparsep=,' +\.'headheight=,' +\.'head=,' +\.'headsep=,' +\.'footskip=,' +\.'hoffset=,' +\.'voffset=,' +\.'twosideshift=,' +\.'mag=,' +\.'columnsep=,' +\.'footnotesep=,' +\.'sbr:TwoValueOptions,' +\.'papersize={<++>},' +\.'total={<++>},' +\.'body={<++>},' +\.'text={<++>},' +\.'scale={<++>},' +\.'hmargin={<++>},' +\.'vmargin={<++>},' +\.'margin={<++>},' +\.'offset={<++>},' +\.'sbr:ThreeValueOptions,' +\.'hdivide={<++>},' +\.'vdivide={<++>},' +\.'divide={<++>}' + +let g:TeX_package_geometry = +\ 'bra:geometry' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/german b/.vim/ftplugin/latex-suite/packages/german new file mode 100644 index 0000000..9aa7519 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/german @@ -0,0 +1,12 @@ +if exists("german_package_file") + finish +endif +let german_package_file = 1 + +let g:TeX_package_german = '' +let g:TeX_package_option_german = '' +" For now just define the smart quotes. +let b:Tex_SmartQuoteOpen = '"`' +let b:Tex_SmartQuoteClose = "\"'" + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/graphicx b/.vim/ftplugin/latex-suite/packages/graphicx new file mode 100644 index 0000000..4aa7571 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/graphicx @@ -0,0 +1,69 @@ +if exists("graphicx_package_file") + finish +endif +let graphicx_package_file = 1 + +let g:TeX_package_option_graphicx = +\ 'sbr:Drivers,' +\.'xdvi,' +\.'dvipdf,' +\.'dvipdfm,' +\.'pdftex,' +\.'dvipsone,' +\.'dviwindo,' +\.'emtex,' +\.'dviwin,' +\.'oztex,' +\.'textures,' +\.'pctexps,' +\.'pctexwin,' +\.'pctexhp,' +\.'pctex32,' +\.'truetex,' +\.'tcidvi,' +\.'vtex,' +\.'sbr:Rest,' +\.'debugshow,' +\.'draft,' +\.'final,' +\.'hiderotate,' +\.'hiresbb,' +\.'hidescale,' +\.'unknownkeysallowed,' +\.'unknownkeyserror' + +let g:TeX_package_graphicx = +\ 'sbr:Includegraphics,' +\.'brs:includegraphics[<++>]{<++>},' +\.'spe:height=,' +\.'spe:width=,' +\.'spe:keepaspectratio=,' +\.'spe:totalheight=,' +\.'spe:angle=,' +\.'spe:scale=,' +\.'spe:origin=,' +\.'spe:clip,' +\.'spe:bb=,' +\.'spe:viewport=,' +\.'spe:trim=,' +\.'spe:draft,' +\.'spe:hiresbb,' +\.'spe:type=,' +\.'spe:ext=,' +\.'spe:read=,' +\.'spe:command=,' +\.'sbr:Rotatebox,' +\.'brs:rotatebox[<++>]{<++>}{<++>},' +\.'spe:origin=,' +\.'spe:x=,' +\.'spe:y=,' +\.'spe:units=,' +\.'sbr:Rest,' +\.'brs:scalebox{<++>}[<++>]{<++>},' +\.'brs:resizebox{<++>}{<++>}{<++>},' +\.'brs:resizebox*{<++>}{<++>}{<++>},' +\.'bra:DeclareGraphicsExtensions,' +\.'brs:DeclareGraphicsRule{<++>}{<++>}{<++>}{<++>},' +\.'bra:graphicspath' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/graphpap b/.vim/ftplugin/latex-suite/packages/graphpap new file mode 100644 index 0000000..ebbd268 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/graphpap @@ -0,0 +1,10 @@ +if exists("graphpap_package_file") + finish +endif +let graphpap_package_file = 1 + +let g:TeX_package_option_graphpap = '' + +let g:TeX_package_graphpap = 'brs:graphpaper[<+step+>](<+x1,y1+>)(<+x2,y2+>)' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/harpoon b/.vim/ftplugin/latex-suite/packages/harpoon new file mode 100644 index 0000000..994801d --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/harpoon @@ -0,0 +1,18 @@ +if exists("harpoon_package_file") + finish +endif +let harpoon_package_file = 1 + +let g:TeX_package_option_harpoon = '' + +let g:TeX_package_harpoon = +\ 'bra:overleftharp,' +\.'bra:overrightharp,' +\.'bra:overleftharpdown,' +\.'bra:overrightharpdown,' +\.'bra:underleftharp,' +\.'bra:underrightharp,' +\.'bra:underleftharpdown,' +\.'bra:underrightharpdown' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/hhline b/.vim/ftplugin/latex-suite/packages/hhline new file mode 100644 index 0000000..a024c19 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/hhline @@ -0,0 +1,21 @@ +if exists("hhline_package_file") + finish +endif +let hhline_package_file = 1 + +let g:TeX_package_option_hhline = '' + +let g:TeX_package_hhline = +\ 'bra:hhline,' +\.'sep:a,' +\.'spe:=,' +\.'spe:-,' +\.'spe:~,' +\."spe:\\\|," +\.'spe::,' +\.'spe:#,' +\.'spe:t,' +\.'spe:b,' +\.'spe:*' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/histogram b/.vim/ftplugin/latex-suite/packages/histogram new file mode 100644 index 0000000..b18fc07 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/histogram @@ -0,0 +1,13 @@ +if exists("histogram_package_file") + finish +endif +let histogram_package_file = 1 + +let g:TeX_package_option_histogram = '' + +let g:TeX_package_histogram = +\ 'histogram,' +\.'noverticallines,' +\.'verticallines' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/hyperref b/.vim/ftplugin/latex-suite/packages/hyperref new file mode 100644 index 0000000..a82aac3 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/hyperref @@ -0,0 +1,167 @@ +if exists("hyperref_package_file") + finish +endif +let hyperref_package_file = 1 + +let g:TeX_package_option_hyperref = +\ '4=,' +\.'a4paper,' +\.'a5paper,' +\.'anchorcolor=,' +\.'b5paper,' +\.'backref=,' +\.'baseurl={<++>},' +\.'bookmarks=,' +\.'bookmarksnumbered=,' +\.'bookmarksopen=,' +\.'bookmarksopenlevel=,' +\.'bookmarkstype=,' +\.'breaklinks=,' +\.'citebordercolor=,' +\.'citecolor=,' +\.'colorlinks=,' +\.'debug=,' +\.'draft,' +\.'dvipdf,' +\.'dvipdfm,' +\.'dvips,' +\.'dvipsone,' +\.'dviwindo,' +\.'executivepaper,' +\.'extension=,' +\.'filebordercolor=,' +\.'filecolor=,' +\.'frenchlinks=,' +\.'hyperfigures=,' +\.'hyperindex=,' +\.'hypertex,' +\.'hypertexnames=,' +\.'implicit=,' +\.'latex2html,' +\.'legalpaper,' +\.'letterpaper,' +\.'linkbordercolor=,' +\.'linkcolor=,' +\.'linktocpage=,' +\.'menubordercolor=,' +\.'menucolor=,' +\.'naturalnames,' +\.'nesting=,' +\.'pageanchor=,' +\.'pagebackref=,' +\.'pagebordercolor=,' +\.'pagecolor=,' +\.'pdfauthor={<++>},' +\.'pdfborder=,' +\.'pdfcenterwindow=,' +\.'pdfcreator={<++>},' +\.'pdffitwindow,' +\.'pdfhighlight=,' +\.'pdfkeywords={<++>},' +\.'pdfmenubar=,' +\.'pdfnewwindow=,' +\.'pdfpagelabels=,' +\.'pdfpagelayout=,' +\.'pdfpagemode=,' +\.'pdfpagescrop=,' +\.'pdfpagetransition=,' +\.'pdfproducer={<++>},' +\.'pdfstartpage={<++>},' +\.'pdfstartview={<++>},' +\.'pdfsubject={<++>},' +\.'pdftex,' +\.'pdftitle={<++>},' +\.'pdftoolbar=,' +\.'pdfusetitle=,' +\.'pdfview,' +\.'pdfwindowui=,' +\.'plainpages=,' +\.'ps2pdf,' +\.'raiselinks=,' +\.'runbordercolor,' +\.'tex4ht,' +\.'textures,' +\.'unicode=,' +\.'urlbordercolor=,' +\.'urlcolor=,' +\.'verbose=,' +\.'vtex' + +let g:TeX_package_hyperref = +\ 'sbr:Preamble,' +\.'bra:hypersetup,' +\.'wwwbrowser,' +\.'sbr:Links,' +\.'bra:hyperbaseurl,' +\.'brs:href{<+URL+>}{<+text+>},' +\.'bra:hyperimage,' +\.'brs:hyperdef{<+category+>}{<+name+>}{<+text+>},' +\.'brs:hyperref{<+URL+>}{<+category+>}{<+name+>}{<+text+>},' +\.'brs:hyperlink{<+name+>}{<+text+>},' +\.'brs:hypertarget{<+name+>}{<+text+>},' +\.'bra:url,' +\.'bra:htmladdnormallink,' +\.'brs:Acrobatmenu{<+option+>}{<+tekst+>},' +\.'brs:pdfbookmark[<++>]{<++>}{<++>},' +\.'bra:thispdfpagelabel,' +\.'sbr:Forms,' +\.'env:Form,' +\.'sep:Forms1,' +\.'brs:TextField[<+parameters+>]{<+label+>},' +\.'brs:CheckBox[<+parameters+>]{<+label+>},' +\.'brs:ChoiceMenu[<+parameters+>]{<+label+>}{<+choices+>},' +\.'brs:PushButton[<+parameters+>]{<+label+>},' +\.'brs:Submit[<+parameters+>]{<+label+>},' +\.'brs:Reset[<+parameters+>]{<+label+>},' +\.'sep:Forms2,' +\.'brs:LayoutTextField{<+label+>}{<+field+>},' +\.'brs:LayoutChoiceField{<+label+>}{<+field+>},' +\.'brs:LayoutCheckboxField{<+label+>}{<+field+>},' +\.'sep:Forms3,' +\.'brs:MakeRadioField{<+width+>}{<+height+>},' +\.'brs:MakeCheckField{<+width+>}{<+height+>},' +\.'brs:MakeTextField{<+width+>}{<+height+>},' +\.'brs:MakeChoiceField{<+width+>}{<+height+>},' +\.'brs:MakeButtonField{<+text+>},' +\.'sbr:Parameters,' +\.'spe:accesskey,' +\.'spe:align,' +\.'spe:backgroundcolor,' +\.'spe:bordercolor,' +\.'spe:bordersep,' +\.'spe:borderwidth,' +\.'spe:charsize,' +\.'spe:checked,' +\.'spe:color,' +\.'spe:combo,' +\.'spe:default,' +\.'spe:disabled,' +\.'spe:height,' +\.'spe:hidden,' +\.'spe:maxlen,' +\.'spe:menulength,' +\.'spe:multiline,' +\.'spe:name,' +\.'spe:onblur,' +\.'spe:onchange,' +\.'spe:onclick,' +\.'spe:ondblclick,' +\.'spe:onfocus,' +\.'spe:onkeydown,' +\.'spe:onkeypress,' +\.'spe:onkeyup,' +\.'spe:onmousedown,' +\.'spe:onmousemove,' +\.'spe:onmouseout,' +\.'spe:onmouseover,' +\.'spe:onmouseup,' +\.'spe:onselect,' +\.'spe:password,' +\.'spe:popdown,' +\.'spe:radio,' +\.'spe:readonly,' +\.'spe:tabkey,' +\.'spe:value,' +\.'spe:width' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/ifthen b/.vim/ftplugin/latex-suite/packages/ifthen new file mode 100644 index 0000000..82dbe69 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/ifthen @@ -0,0 +1,21 @@ +if exists("ifthen_package_file") + finish +endif +let ifthen_package_file = 1 + +let g:TeX_package_option_ifthen = '' + +let g:TeX_package_ifthen = +\ 'brs:ifthenelse{<++>}{<++>}{<++>},' +\.'brd:equal,' +\.'bra:boolean,' +\.'bra:lengthtest,' +\.'bra:isodd,' +\.'brd:whiledo,' +\.'bra:newboolean,' +\.'brd:setboolean,' +\.'nor:and,' +\.'nor:or,' +\.'nor:not' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/inputenc b/.vim/ftplugin/latex-suite/packages/inputenc new file mode 100644 index 0000000..73abe9a --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/inputenc @@ -0,0 +1,29 @@ +if exists("inputenc_package_file") + finish +endif +let inputenc_package_file = 1 + +let g:TeX_package_option_inputenc = +\ 'ascii,' +\.'latin1,' +\.'latin2,' +\.'latin3,' +\.'latin4,' +\.'latin5,' +\.'latin9,' +\.'decmulti,' +\.'cp850,' +\.'cp852,' +\.'cp437,' +\.'cp437de,' +\.'cp865,' +\.'applemac,' +\.'next,' +\.'ansinew,' +\.'cp1250,' +\.'cp1252' + +let g:TeX_package_inputenc = +\ 'bra:inputencoding' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/letterspace b/.vim/ftplugin/latex-suite/packages/letterspace new file mode 100644 index 0000000..9a53eaa --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/letterspace @@ -0,0 +1,10 @@ +if exists("letterspace_package_file") + finish +endif +let letterspace_package_file = 1 + +let g:TeX_package_option_letterspace = '' + +let g:TeX_package_letterspace = 'nor:letterspace' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/lineno b/.vim/ftplugin/latex-suite/packages/lineno new file mode 100644 index 0000000..4567602 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/lineno @@ -0,0 +1,60 @@ +if exists("lineno_package_file") + finish +endif +let lineno_package_file = 1 + +let g:TeX_package_option_lineno = +\ 'left,' +\.'right,' +\.'switch,' +\.'switch*,' +\.'pagewise,' +\.'running,' +\.'modulo,' +\.'mathlines,' +\.'displaymath,' +\.'hyperref' + +let g:TeX_package_lineno = +\ 'sbr:Environments,' +\.'env:linenumbers,' +\.'env:linenumbers*,' +\.'env:numquote,' +\.'env:numquote*,' +\.'env:numquotation,' +\.'env:numquotation*,' +\.'env:bframe,' +\.'env:linenomath,' +\.'env:linenomath*,' +\.'bra:linelabel,' +\.'sbr:Commands,' +\.'nor:linenumbers,' +\.'nor:linenumbers*,' +\.'noo:linenumbers,' +\.'nor:nolinenumbers,' +\.'nor:runninglinenumbers,' +\.'nor:runninglinenumbers*,' +\.'noo:runninglinenumbers,' +\.'nor:pagewiselinenumbers,' +\.'nor:resetlinenumber,' +\.'noo:resetlinenumber,' +\.'nor:setrunninglinenumbers,' +\.'nor:setpagewiselinenumbers,' +\.'nor:switchlinenumbers,' +\.'nor:switchlinenumbers*,' +\.'nor:leftlinenumbers,' +\.'nor:leftlinenumbers*,' +\.'nor:rightlinenumbers,' +\.'nor:rightlinenumbers*,' +\.'nor:runningpagewiselinenumbers,' +\.'nor:realpagewiselinenumbers,' +\.'nor:modulolinenumbers,' +\.'noo:modulolinenumbers,' +\.'nor:linenumberdisplaymath,' +\.'nor:nolinenumberdisplaymath,' +\.'nor:thelinenumber,' +\.'nob:linerefp,' +\.'nob:linerefr,' +\.'nob:lineref' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/longtable b/.vim/ftplugin/latex-suite/packages/longtable new file mode 100644 index 0000000..6644862 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/longtable @@ -0,0 +1,35 @@ +if exists("longtable_package_file") + finish +endif +let longtable_package_file = 1 + +let g:TeX_package_option_longtable = +\ 'errorshow,' +\.'pausing,' +\.'set,' +\.'final' + +let g:TeX_package_longtable = +\ 'sbr:Commands,' +\.'nor:setlongtables,' +\.'bra:LTleft,' +\.'bra:LTright,' +\.'bra:LTpre,' +\.'bra:LTpost,' +\.'bra:LTchunksize,' +\.'bra:LTcapwidth,' +\.'bra:LTcapwidth,' +\.'sbr:Longtable,' +\.'env:longtable,' +\.'sep:lt,' +\.'nor:endhead,' +\.'nor:endfirsthead,' +\.'nor:endfoot,' +\.'nor:endlastfoot,' +\.'nor:kill,' +\.'bra:caption,' +\.'nob:caption,' +\.'bra:caption*,' +\.'nor:newpage' + +" vim:ft=vim:ts=4:sw=4:noet:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/lscape b/.vim/ftplugin/latex-suite/packages/lscape new file mode 100644 index 0000000..33976ea --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/lscape @@ -0,0 +1,10 @@ +if exists("lscape_package_file") + finish +endif +let lscape_package_file = 1 + +let g:TeX_package_option_lscape = '' + +let g:TeX_package_lscape = 'env:landscape' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/manyfoot b/.vim/ftplugin/latex-suite/packages/manyfoot new file mode 100644 index 0000000..7cab55f --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/manyfoot @@ -0,0 +1,15 @@ +if exists("manyfoot_package_file") + finish +endif +let manyfoot_package_file = 1 + +let g:TeX_package_option_manyfoot = 'para' + +let g:TeX_package_manyfoot = +\ 'bra:newfootnote,bra:newfootnote[para],' +\.'bra:footnoteA,bra:footnoteB,' +\.'bra:FootnoteA,bra:FootnoteB,' +\.'bra:Footnotemark,bra:Footnotetext,' +\.'SplitNote' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/moreverb b/.vim/ftplugin/latex-suite/packages/moreverb new file mode 100644 index 0000000..8614e3b --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/moreverb @@ -0,0 +1,28 @@ +if exists("moreverb_package_file") + finish +endif +let moreverb_package_file = 1 + +let g:TeX_package_option_moreverb = '' + +let g:TeX_package_moreverb = +\ 'ens:verbatimwrite:{<++>},' +\.'ens:verbatimtab:[<++>],' +\.'ens:listing:[<+step+>]{<+number+>},' +\.'ens:listing*:[<+step+>]{<+number+>},' +\.'env:boxedverbatim,' +\.'bra:verbatimtabsize,' +\.'bra:listingoffset,' +\.'brs:listinginput[<++>]{<++>}{<++>},' +\.'brs:verbatimtabinput[<++>]{<++>}' + +let g:Tex_completion_explorer = g:Tex_completion_explorer.'verbatimtabinput,' + +syn region texZone start="\\begin{verbatimwrite}" end="\\end{verbatimwrite}\|%stopzone\>" fold +syn region texZone start="\\begin{verbatimtab}" end="\\end{verbatimtab}\|%stopzone\>" fold +syn region texZone start="\\begin{boxedverbatim}" end="\\end{boxedverbatim}\|%stopzone\>" fold +syn region texZone start="\\begin{listing}" end="\\end{listing}\|%stopzone\>" fold +syn region texZone start="\\begin{listing*}" end="\\end{listing*}\|%stopzone\>" fold + + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/multibox b/.vim/ftplugin/latex-suite/packages/multibox new file mode 100644 index 0000000..00bccb2 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/multibox @@ -0,0 +1,10 @@ +if exists("multibox_package_file") + finish +endif +let multibox_package_file = 1 + +let g:TeX_package_option_multibox = '' + +let g:TeX_package_multibox = 'multimake,multiframe' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/multicol b/.vim/ftplugin/latex-suite/packages/multicol new file mode 100644 index 0000000..ca93189 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/multicol @@ -0,0 +1,21 @@ +if exists("multicol_package_file") + finish +endif +let multicol_package_file = 1 + +let g:TeX_package_option_multicol = '' + +let g:TeX_package_multicol = +\ 'ens:multicols:{<+cols+>}[<+text+>][<+sep+>],' +\.'columnbreak,' +\.'premulticols,' +\.'postmulticols,' +\.'multicolsep,' +\.'columnsep,' +\.'linewidth,' +\.'columnseprule,' +\.'flushcolumnt,' +\.'raggedcolumns,' +\.'unbalanced' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/newalg b/.vim/ftplugin/latex-suite/packages/newalg new file mode 100644 index 0000000..1480bb6 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/newalg @@ -0,0 +1,26 @@ +if exists("newalg_package_file") + finish +endif +let newalg_package_file = 1 + +let g:TeX_package_option_newalg = '' + +let g:TeX_package_newalg = +\ 'ens:algorithm:{<+name+>}{<++>},' +\.'ens:IF:{<+cond+>},' +\.'ens:FOR:{<+loop+>},' +\.'ens:WHILE:{<+cond+>},' +\.'bra:ERROR,' +\.'nor:ELSE,' +\.'nor:RETURN,' +\.'nor:NIL,' +\.'nor:TO,' +\.'bra:CALL,' +\.'bra:text,' +\.'env:REPEAT,' +\.'env:SWITCH,' +\.'nor:=,' +\.'bra:item,' +\.'nor:algkey' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/ngerman b/.vim/ftplugin/latex-suite/packages/ngerman new file mode 100644 index 0000000..534ac30 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/ngerman @@ -0,0 +1,10 @@ +if exists("ngerman_package_file") + finish +endif +let ngerman_package_file = 1 + +" For now just define the smart quotes. +let b:Tex_SmartQuoteOpen = '"`' +let b:Tex_SmartQuoteClose = "\"'" + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/numprint b/.vim/ftplugin/latex-suite/packages/numprint new file mode 100644 index 0000000..4eab5a2 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/numprint @@ -0,0 +1,18 @@ +if exists("numprint_package_file") + finish +endif +let numprint_package_file = 1 + +let g:TeX_package_option_numprint = '' + +let g:TeX_package_numprint = +\ 'bra:numprint,' +\.'nob:numprint,' +\.'bra:thousandsep,' +\.'bra:decimalsign,' +\.'bra:productsign,' +\.'bra:unitseparator,' +\.'brd:expnumprint,' +\.'global' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/oldstyle b/.vim/ftplugin/latex-suite/packages/oldstyle new file mode 100644 index 0000000..72b2774 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/oldstyle @@ -0,0 +1,12 @@ +if exists("oldstyle_package_file") + finish +endif +let oldstyle_package_file = 1 + +let g:TeX_package_option_oldstyle = '' + +let g:TeX_package_oldstyle = +\ 'bra:textos,' +\.'bra:mathos' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/outliner b/.vim/ftplugin/latex-suite/packages/outliner new file mode 100644 index 0000000..ca64322 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/outliner @@ -0,0 +1,19 @@ +if exists("outliner_package_file") + finish +endif +let outliner_package_file = 1 + +let g:TeX_package_option_outliner = '' + +let g:TeX_package_outliner = +\ 'env:Outline,' +\.'bra:Level,' +\.'bra:SetBaseLevel,' +\.'sep:preamble,' +\.'bra:OutlinePageBreaks,' +\.'bra:OutlinePageBreaks,' +\.'bra:OutlineLevelStart,' +\.'bra:OutlineLevelCont,' +\.'bra:OutlineLevelEnd' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/overcite b/.vim/ftplugin/latex-suite/packages/overcite new file mode 100644 index 0000000..25bc17d --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/overcite @@ -0,0 +1,34 @@ +if exists("overcite_package_file") + finish +endif +let overcite_package_file = 1 + +let g:TeX_package_option_overcite = +\ 'verbose,' +\.'ref,' +\.'nospace,' +\.'space,' +\.'nosort,' +\.'sort,' +\.'nomove,' +\.'noadjust' + +let g:TeX_package_overcite = +\ 'bra:cite,' +\.'bra:citen,' +\.'bra:citenum,' +\.'bra:citeonline,' +\.'bra:nocite,' +\.'sep:redefine,' +\.'bra:citeform,' +\.'bra:citepunct,' +\.'bra:citeleft,' +\.'bra:citeright,' +\.'bra:citemid,' +\.'bra:citedash' + +syn region texRefZone matchgroup=texStatement start="\\citen\([tp]\*\=\)\={" keepend end="}\|%stopzone\>" contains=texComment,texDelimiter +syn region texRefZone matchgroup=texStatement start="\\citenum\([tp]\*\=\)\={" keepend end="}\|%stopzone\>" contains=texComment,texDelimiter +syn region texRefZone matchgroup=texStatement start="\\citeonline\([tp]\*\=\)\={" keepend end="}\|%stopzone\>" contains=texComment,texDelimiter + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/parallel b/.vim/ftplugin/latex-suite/packages/parallel new file mode 100644 index 0000000..19dfe8e --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/parallel @@ -0,0 +1,15 @@ +if exists("parallel_package_file") + finish +endif +let parallel_package_file = 1 + +let g:TeX_package_option_parallel = '' + +let g:TeX_package_parallel = +\ 'env:Parallel,' +\.'bra:ParallelLText,' +\.'bra:ParallelRText,' +\.'nor:ParallelPar,' +\.'nor:tolerance' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/plain b/.vim/ftplugin/latex-suite/packages/plain new file mode 100644 index 0000000..6a3d092 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/plain @@ -0,0 +1,10 @@ +if exists("plain_package_file") + finish +endif +let plain_package_file = 1 + +let g:TeX_package_option_plain = '' + +let g:TeX_package_plain = 'env:plain' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/plates b/.vim/ftplugin/latex-suite/packages/plates new file mode 100644 index 0000000..e22817e --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/plates @@ -0,0 +1,16 @@ +if exists("plates_package_file") + finish +endif +let plates_package_file = 1 + +let g:TeX_package_option_plates = 'figures,onefloatperpage,memoir' + +let g:TeX_package_plates = +\ 'env:plate,' +\.'listofplates,' +\.'ProcessPlates,' +\.'bra:setplatename,' +\.'bra:setplatename,' +\.'bra:atBeginPlates' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/polski b/.vim/ftplugin/latex-suite/packages/polski new file mode 100644 index 0000000..e2c4efe --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/polski @@ -0,0 +1,165 @@ +" Author: Mikolaj Machowski <mikmach@wp.pl> +" (c) Copyright by Mikolaj Machowski 2002-2003 +" License: Vim Charityware +" Version: 1.6 +" +" Plik jest w kodowaniu iso-8859-2. Je¶li chcesz go uzywac w MS-Windows musisz +" go przekonwertowac na cp-1250. +" +" Plik ten jest czê¶ci± vim-latexSuite, ale: +" Nie u¿ywaj±cy vim-latexSuite (http://vim-latex.sourceforge.net) mog± wyci±æ +" oznaczon± czê¶æ. Reszta mo¿e byæ kopiowana jako osobny plik pod warunkiem +" niezmieniania tej notki i informacji o prawach autorskich. +" +" This file is in iso-8859-2 encoding. If you want to use it in MS-Windows you +" have to convert it to cp-1250. +" +" This file is part of vim-latexSuite but: +" Those who do not use vim-latexSuite (http://vim-latex.sourceforge.net) can +" cut off marked part. Rest of the file can be copied as separate file under +" condition of leaving this notice and information about copyrights unchanged. + +if exists("acromake_package_file") + finish +endif +let acromake_package_file = 1 + +" --------8<------------- +" Czesc odpowiedzialna za menu +let g:TeX_package_option_polski = +\'OT1,OT4,T1,QX,plmath,nomathsymbols,MeX,prefixingverb,noprefixingverb' +let g:TeX_package_polski = +\'sbr:Dywiz&Ska,'. +\'nor:dywiz,'. +\'nor:ppauza,'. +\'nor:pauza,'. +\'nor:prefixing,'. +\'nor:nonprefixing,'. +\'nor:PLdateending,'. +\'sbr:Matematyka,'. +\'nor:arccos,'. +\'nor:arcctan,'. +\'nor:arcsin,'. +\'nor:arctan,'. +\'nor:cot,'. +\'nor:ctanh,'. +\'nor:tan,'. +\'nor:tanh,'. +\'bra:arc,'. +\'nor:ctg,'. +\'nor:ctgh,'. +\'nor:tg,'. +\'nor:tgh,'. +\'nor:nwd' + +" To wymaga calego pakietu vim-latexSuite - zakomentuj lub wytnij je¶li nie +" u¿ywasz (albo go ¶ci±gnij z http://vim-latex.sf.net) +function! TPackagePolskiTylda() + call IMAP (" ---", "~---", "tex") +endfunction +call TPackagePolskiTylda() +" --------8<------------- + +" Polskie znaki cudzyslowow +TexLet g:Tex_SmartQuoteOpen = ",," +TexLet g:Tex_SmartQuoteClose = "''" + +" Zmodyfikowana i rozwinieta funkcja Andrzeja Ostruszki +" Z dodatkiem od Benjiego Fishera (sprawdzanie sk³adni) +" +" Spacja +inoremap <buffer> <silent> <Space> <C-R>=<SID>Tex_polish_space()<CR> +inoremap <buffer> <silent> <CR> <C-R>=<SID>Tex_polish_space()<CR><BS><CR> + +" Wymuszenie tyldy +inoremap <buffer> <silent> <S-Space> ~ + +" Wymuszenie zwyklej spacji +inoremap <buffer> <silent> <C-Space> <Space> + +" Latwe przelaczanie sie miedzy magiczna spacja a zwykla +inoremap <buffer> <silent> <F8> <C-R>=<SID>TogglePolishSpace()<CR> + +function! s:TogglePolishSpace() + if !exists("b:polishspace") + iunmap <buffer> <Space> + iunmap <buffer> <CR> + let b:polishspace = 1 + return '' + else + inoremap <buffer> <silent> <Space> <C-R>=<SID>Tex_polish_space()<CR> + inoremap <buffer> <silent> <CR> <C-R>=<SID>Tex_polish_space()<CR><BS><CR> + unlet b:polishspace + return '' + endif +endfunction + + +function! s:Tex_polish_space() + "Nic magicznego w matematyce + if synIDattr(synID(line('.'),col('.')-1,0),"name") =~ '^texMath\|^texZone\^texRefZone' + return ' ' + else + let s:col = col('.') + let s:linelength = strlen(getline('.')) + 1 + " Wstaw tylde po spojnikach + if strpart(getline('.'), col('.') - 3, 2) =~? '^[[:space:]~(\[{]\?[aiouwz]$' + return '~' + " Wstaw tylde po inicjalach - konkretnie po pojedynczych wielkich + " literach i kropce. Obs³uguje poprawnie wiekszosc sytuacji. + elseif strpart(getline('.'), col('.') - 4, 3) =~? '^[[:space:]~(\[{]\?\u\.$' + return '~' + " Wstaw tylde po tytulach, skrotach bibliograficznych, podpisach + elseif strpart(getline('.'), col('.') - 9, 8) =~? '\(\s\|^\|\~\)\(str\.\|ryc\.\|rys\.\|tab\.\|art\.\|vol\.\|nr\|tabl\.\|rozdz\.\|ss\.\|s\.\|t\.\|z\.\|sir\|prof\.\|hab\.\|red\.\|min\.\|gen\.\|kpt\.\|przew\.\|p³k\|mjr\|mgr\|bp\|ks\.\|o\+\.\|¶w\.\|dr\)$' + return '~' + " Wstaw tylde miedzy rokiem, wiekiem, a odpowiednim skrotem + elseif strpart(getline('.'), col('.') - 8, 7) =~? '[0-9IVXLCM]\s\+\(r\|w\)\.[^a-z±æê³ñó¶¿¼]\{-}$' + s/[0-9IVXLCM]\zs\s\+\ze\(w\|r\)\.[^a-z±æê³ñó¶¿¼]\{-}\%#/\~/ei + exe 'normal '.s:col.'|' + if s:col == s:linelength + startinsert! + else + startinsert + endif + return ' ' + " Wstaw tylde miedzy liczba a miara, itd. + elseif strpart(getline('.'), col('.') - 10, 9) =~? '\(\d\|mln\|mld\|tys\.\)\s\+\(z³\|gr\|ha\|t\|mies\|godz\|min\|sek\|cm\|km\|mln\|mld\|tys\.\)[^a-z±æê³ñó¶¿¼]\{-}$' + s/\(\d\|mln\|mld\|tys\.\)\zs\s\+\ze\(z³\|gr\|ha\|m\|t\|mies\|godz\|min\|sek\|cm\|km\|mln\|mld\|tys\.\)[^a-z±æê³ñó¶¿¼]\{-}\%#/\~/ei + exe 'normal '.s:col.'|' + if s:col == s:linelength + startinsert! + else + startinsert + endif + return ' ' + " Rozwin myslnik w zbitkach w '\dywiz ': + " bialo-czerwony -> bialo\dywiz czerwony + elseif strpart(getline('.'), col('.') - 20, 19) =~? '[a-z±æê³ñó¶¿¼]-[a-z±æê³ñó¶¿¼]\{-}[^a-z±æê³ñó¶¿¼]\{-}$' + s/[a-z±æê³ñó¶¿¼]\zs-\ze[a-z±æê³ñó¶¿¼]\{-}[^a-z±æê³ñó¶¿¼]\{-}\%#/\\dywiz /ei + let colb = s:col + 6 + exe 'normal '.colb.'|' + if s:col == s:linelength + startinsert! + else + startinsert + endif + return ' ' + " Rozwin '--' miedzy liczbami w '\ppauza ': + " 39--45 -> 39\ppauza 45 + elseif strpart(getline('.'), col('.') - 10, 9) =~? '[0-9IVXLCM]--[0-9IVXLCM]\{-}[^0-9IVXLCM]\{-}$' + s/[0-9IVXLCM]\zs--\ze[0-9IVXLCM]\{-}[^0-9IVXLCM]\{-}\%#/\\ppauza /ei + let colb = s:col + 6 + exe 'normal '.colb.'|' + if s:col == s:linelength + startinsert! + else + startinsert + endif + return ' ' + endif + " Tu koncz komentowanie ostatniej sekcji + endif + return " " +endfunction + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/psgo b/.vim/ftplugin/latex-suite/packages/psgo new file mode 100644 index 0000000..1ef852c --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/psgo @@ -0,0 +1,27 @@ +if exists("psgo_package_file") + finish +endif +let psgo_package_file = 1 + +let g:TeX_package_option_psgo = '' + +let g:TeX_package_psgo = +\ 'env:psgogoard,' +\.'env:psgoboard*,' +\.'brs:stone{<+color+>}{<+letter+>}{<+number+>},' +\.'brs:stone[<+marker+>]{<+color+>}{<+letter+>}{<+number+>},' +\.'brs:move{<+letter+>}{<+number+>},' +\.'brs:move*{<+letter+>}{<+number+>},' +\.'brs:goline{<+letter1+>}{<+number1+>}{<+letter2+>}{<+number2+>},' +\.'brs:goarrow{<+letter1+>}{<+number1+>}{<+letter2+>}{<+number2+>},' +\.'sbr:Markers,' +\.'brs:markpos{<+marker+>}{<+letter+>}{<+number+>},' +\.'markma,' +\.'marktr,' +\.'markcr,' +\.'marksq,' +\.'bra:marklb,' +\.'marksl,' +\.'markdd' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/schedule b/.vim/ftplugin/latex-suite/packages/schedule new file mode 100644 index 0000000..7d58f6d --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/schedule @@ -0,0 +1,20 @@ +if exists("schedule_package_file") + finish +endif +let schedule_package_file = 1 + +let g:TeX_package_option_schedule = '' + +let g:TeX_package_schedule = +\ 'ens:schedule:[<+title+>],' +\.'bra:CellHeight,' +\.'bra:CellWidth,' +\.'bra:TimeRange,' +\.'bra:SubUnits,' +\.'bra:BeginOn,' +\.'bra:TextSize,' +\.'nor:FiveDay,' +\.'nor:SevenDay,' +\.'brs:NewAppointment{<+name+>}{<+bg+>}{<+fg+>}' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/textfit b/.vim/ftplugin/latex-suite/packages/textfit new file mode 100644 index 0000000..4d52785 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/textfit @@ -0,0 +1,12 @@ +if exists("textfit_package_file") + finish +endif +let textfit_package_file = 1 + +let g:TeX_package_option_textfit = '' + +let g:TeX_package_textfit = +\ 'brd:scaletowidth,' +\.'brd:scaletoheight' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/times b/.vim/ftplugin/latex-suite/packages/times new file mode 100644 index 0000000..499a13b --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/times @@ -0,0 +1,10 @@ +if exists("times_package_file") + finish +endif +let times_package_file = 1 + +let g:TeX_package_option_times = '' + +let g:TeX_package_times = '' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/tipa b/.vim/ftplugin/latex-suite/packages/tipa new file mode 100644 index 0000000..c89cc5d --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/tipa @@ -0,0 +1,364 @@ +if exists("tipa_package_file") + finish +endif +let tipa_package_file = 1 + +let g:TeX_package_option_tipa = +\ 'T1,' +\.'noenc,' +\.'tone,' +\.'extra,' +\.'safe' + +let g:TeX_package_tipa = +\ 'sbr:Common,' +\.'bra:textipa,' +\.'env:IPA,' +\.'tipaencoding,' +\.'bra:super,' +\.'nor:ipabar,' +\.'brd:tipalowaraccent,' +\.'brd:tipaupperaccent,' +\.'brd:tipaLowaraccent,' +\.'brd:tipaUpperaccent,' +\.'brd:ipaclap,' +\.'sbr:VowelsandConsonants,' +\.'nor:textturna,' +\.'nor:textrhooka,' +\.'nor:textlhookfour,' +\.'nor:textscripta,' +\.'nor:textturnscripta,' +\.'nor:textinvscripta,' +\.'ae,' +\.'nor:textaolig,' +\.'nor:textsca,' +\.'nor:textinvsca,' +\.'nor:textscaolig,' +\.'nor:textturnv,' +\.'nor:textsoftsign,' +\.'nor:texthardsign,' +\.'nor:texthtb,' +\.'nor:textscb,' +\.'nor:textcrb,' +\.'nor:textbarb,' +\.'nor:textbeta,' +\.'nor:textbarc,' +\.'nor:texthtc,' +\.'bra:v,' +\.'bra:c,' +\.'nor:textctc,' +\.'nor:textstretchc,' +\.'nor:textstretchcvar,' +\.'nor:textctstretchc,' +\.'nor:textctstretchcvar,' +\.'nor:textcrd,' +\.'nor:textbard,' +\.'nor:texthtd,' +\.'nor:textrtaild,' +\.'nor:texthtrtaild,' +\.'nor:textctd,' +\.'nor:textfrhookd,' +\.'nor:textfrhookdvar,' +\.'nor:textdblig,' +\.'nor:textdzlig,' +\.'nor:textdctzlig,' +\.'nor:textdyoghlig,' +\.'nor:textctdctzlig,' +\.'nor:textscdelta,' +\.'nor:dh,' +\.'nor:textrhooke,' +\.'nor:textschwa,' +\.'nor:textrhookschwa,' +\.'nor:textreve,' +\.'nor:textsce,' +\.'nor:textepsilon,' +\.'nor:textrhookepsilon,' +\.'nor:textcloseepsilon,' +\.'nor:textrevepsilon,' +\.'nor:textrhookrevepsilon,' +\.'nor:textcloserevepsilon,' +\.'nor:textscf,' +\.'nor:textscriptg,' +\.'nor:textbarg,' +\.'nor:textcrg,' +\.'nor:texthtg,' +\.'nor:textg,' +\.'nor:textscg,' +\.'nor:texthtscg,' +\.'nor:textgamma,' +\.'nor:textgrgamma,' +\.'nor:textfrtailgamma,' +\.'nor:textbktailgamma,' +\.'nor:textbabygamma,' +\.'nor:textramshorns,' +\.'nor:texthvlig,' +\.'nor:textcrh,' +\.'nor:texthth,' +\.'nor:textrtailhth,' +\.'nor:textheng,' +\.'nor:texththeng,' +\.'nor:textturnh,' +\.'nor:textsch,' +\.'nor:i,' +\.'nor:textbari,' +\.'nor:textiota,' +\.'nor:textlhti,' +\.'nor:textlhtlongi,' +\.'nor:textvibyi,' +\.'nor:textraisevibyi,' +\.'nor:textsci,' +\.'nor:j,' +\.'nor:textctj,' +\.'nor:textctjvar,' +\.'nor:textscj,' +\.'bra:v,' +\.'nor:textbardotlessj,' +\.'nor:textObardotlessj,' +\.'nor:texthtbardotlessj,' +\.'nor:texthtbardotlessjvar,' +\.'nor:texthtk,' +\.'nor:textturnk,' +\.'nor:textsck,' +\.'nor:textturnsck,' +\.'nor:textltilde,' +\.'nor:textbarl,' +\.'nor:textbeltl,' +\.'nor:textrtaill,' +\.'nor:textlyoghlig,' +\.'nor:textOlyoghlig,' +\.'nor:textscl,' +\.'nor:textrevscl,' +\.'nor:textlambda,' +\.'nor:textcrlambda,' +\.'nor:textltailm,' +\.'nor:textturnm,' +\.'nor:textturnmrleg,' +\.'nor:texthmlig,' +\.'nor:textscm,' +\.'nor:textnrleg,' +\.'~,' +\.'nor:textltailn,' +\.'nor:textfrbarn,' +\.'nor:ng,' +\.'nor:textrtailn,' +\.'nor:textctn,' +\.'nor:textnrleg,' +\.'nor:textscn,' +\.'nor:textbullseye,' +\.'nor:textObullseye,' +\.'nor:textbaro,' +\.'nor:o,' +\.'nor:textfemale,' +\.'nor:textuncrfemale,' +\.'nor:oe,' +\.'nor:textscoelig,' +\.'nor:textopeno,' +\.'nor:textrhookopeno,' +\.'nor:textturncelig,' +\.'nor:textomega,' +\.'nor:textinvomega,' +\.'nor:textscomega,' +\.'nor:textcloseomega,' +\.'nor:textlhookp,' +\.'nor:textscp,' +\.'nor:textwynn,' +\.'nor:textthorn,' +\.'nor:textthornvari,' +\.'nor:textthornvarii,' +\.'nor:textthornvariii,' +\.'nor:textthornvariv,' +\.'nor:texthtp,' +\.'nor:textphi,' +\.'nor:texthtq,' +\.'nor:textqplig,' +\.'nor:textscq,' +\.'nor:textfishhookr,' +\.'nor:textlonglegr,' +\.'nor:textrtailr,' +\.'nor:textturnr,' +\.'nor:textturnrrtail,' +\.'nor:textturnlonglegr,' +\.'nor:textscr,' +\.'nor:textinvscr,' +\.'nor:textrevscr,' +\.'bra:v,' +\.'nor:textrtails,' +\.'nor:textesh,' +\.'nor:textdoublebaresh,' +\.'nor:textctesh,' +\.'nor:textlooptoprevesh,' +\.'nor:texthtt,' +\.'nor:textlhookt,' +\.'nor:textrtailt,' +\.'nor:textfrhookt,' +\.'nor:textctturnt,' +\.'nor:texttctclig,' +\.'nor:texttslig,' +\.'nor:textteshlig,' +\.'nor:textturnt,' +\.'nor:textctt,' +\.'nor:textcttctclig,' +\.'nor:texttheta,' +\.'nor:textbaru,' +\.'nor:textupsilon,' +\.'nor:textscu,' +\.'nor:textturnscu,' +\.'nor:textscriptv,' +\.'nor:textturnw,' +\.'nor:textchi,' +\.'nor:textturny,' +\.'nor:textscy,' +\.'nor:textlhtlongy,' +\.'nor:textvibyy,' +\.'nor:textcommatailz,' +\.'bra:v,' +\.'nor:textctz,' +\.'nor:textrtailz,' +\.'nor:textcrtwo,' +\.'nor:textturntwo,' +\.'nor:textyogh,' +\.'nor:textbenttailyogh,' +\.'nor:textrevyogh,' +\.'nor:textctyogh,' +\.'nor:textturnthree,' +\.'nor:textglotstop,' +\.'nor:textraiseglotstop,' +\.'nor:textbarglotstop,' +\.'nor:textinvglotstop,' +\.'nor:textcrinvglotstop,' +\.'nor:textctinvglotstop,' +\.'nor:textrevglotstop,' +\.'nor:textturnglotstop,' +\.'nor:textbarrevglotstop,' +\.'nor:textpipe,' +\.'nor:textpipevar,' +\.'nor:textdoublebarpipe,' +\.'nor:textdoublebarpipevar,' +\.'nor:textdoublepipevar,' +\.'nor:textdoublepipe,' +\.'nor:textdoublebarslash,' +\.'sbr:Suprasegmentals,' +\.'nor:textprimstress,' +\.'nor:textsecstress,' +\.'nor:textlengthmark,' +\.'nor:texthalflength,' +\.'nor:textvertline,' +\.'nor:textdoublevertline,' +\.'bra:textbottomtiebar,' +\.'nor:textdownstep,' +\.'nor:textupstep,' +\.'nor:textglobfall,' +\.'nor:textglobrise,' +\.'nor:textspleftarrow,' +\.'nor:textdownfullarrow,' +\.'nor:textupfullarrow,' +\.'nor:textsubrightarrow,' +\.'nor:textsubdoublearrow,' +\.'sbr:AccentsandDiacritics,' +\.'`,' +\."'," +\.'^,' +\.'~,' +\.'",' +\.'bra:H,' +\.'bra:r,' +\.'bra:v,' +\.'bra:u,' +\.'=,' +\.'.,' +\.'bra:c,' +\.'bra:textpolhook,' +\.'nor:textrevpolhook{o,' +\.'bra:textdoublegrave,' +\.'bra:textsubgrave,' +\.'bra:textsubacute,' +\.'bra:textsubcircum,' +\.'bra:textroundcap,' +\.'bra:textacutemacron,' +\.'bra:textgravemacron,' +\.'bra:textvbaraccent,' +\.'bra:textdoublevbaraccent,' +\.'bra:textgravedot,' +\.'bra:textdotacute,' +\.'bra:textcircumdot,' +\.'bra:texttildedot,' +\.'bra:textbrevemacron,' +\.'bra:textringmacron,' +\.'bra:textacutewedge,' +\.'bra:textdotbreve,' +\.'bra:textsubbridge,' +\.'bra:textinvsubbridge,' +\.'sbr:SubscriptSquare,' +\.'bra:textsubrhalfring,' +\.'bra:textsublhalfring,' +\.'bra:textsubw,' +\.'bra:textoverw,' +\.'bra:textseagull,' +\.'bra:textovercross,' +\.'bra:textsubplus,' +\.'bra:textraising,' +\.'bra:textlowering,' +\.'bra:textadvancing,' +\.'bra:textretracting,' +\.'bra:textsubtilde,' +\.'bra:textsubumlaut,' +\.'bra:textsubring,' +\.'bra:textsubwedge,' +\.'bra:textsubbar,' +\.'bra:textsubdot,' +\.'bra:textsubarch,' +\.'bra:textsyllabic,' +\.'bra:textsuperimposetilde,' +\.'nor:textcorner,' +\.'nor:textopencorner,' +\.'nor:textrhoticity,' +\.'nor:textceltpal,' +\.'nor:textlptr,' +\.'nor:textrptr,' +\.'nor:textrectangle,' +\.'nor:textretractingvar,' +\.'bra:texttoptiebar,' +\.'nor:textrevapostrophe,' +\.'nor:texthooktop,' +\.'nor:textrthook,' +\.'nor:textrthooklong,' +\.'nor:textpalhook,' +\.'nor:textpalhooklong,' +\.'nor:textpalhookvar,' +\.'bra:textsuperscript,' +\.'sbr:ToneLetters,' +\.'bra:tone,' +\.'bra:stone,' +\.'bra:rtone,' +\.'nor:tone{55},' +\.'nor:tone{44},' +\.'nor:tone{33},' +\.'nor:tone{22},' +\.'nor:tone{11},' +\.'nor:tone{51},' +\.'nor:tone{15},' +\.'nor:tone{45},' +\.'nor:tone{12},' +\.'nor:tone{454},' +\.'sbr:DiacriticsExtIPA,' +\.'bra:spreadlips,' +\.'bra:overbridge,' +\.'bra:bibridge,' +\.'bra:subdoublebar,' +\.'bra:subdoublevert,' +\.'bra:subcorner,' +\.'bra:whistle,' +\.'bra:sliding,' +\.'bra:crtilde,' +\.'bra:dottedtilde,' +\.'bra:doubletilde,' +\.'bra:partvoiceless,' +\.'bra:inipartvoiceless,' +\.'bra:finpartvoiceless,' +\.'bra:partvoice,' +\.'bra:inipartvoice,' +\.'bra:finpartvoice,' +\.'bra:sublptr,' +\.'bra:subrptr' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/ulem b/.vim/ftplugin/latex-suite/packages/ulem new file mode 100644 index 0000000..9257713 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/ulem @@ -0,0 +1,21 @@ +if exists("ulem_package_file") + finish +endif +let ulem_package_file = 1 + +let g:TeX_package_option_ulem = +\ 'normalem,' +\.'ULforem,' +\.'normalbf,' +\.'UWforbf' + +let g:TeX_package_ulem = +\ 'bra:uwave,' +\.'bra:uline,' +\.'bra:uuline,' +\.'bra:sout,' +\.'bra:xout,' +\.'ULthickness,' +\.'ULdepth' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/url b/.vim/ftplugin/latex-suite/packages/url new file mode 100644 index 0000000..642148a --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/url @@ -0,0 +1,24 @@ +if exists("url_package_file") + finish +endif +let url_package_file = 1 + +let g:TeX_package_option_url = +\ 'hyphens,' +\.'obeyspaces,' +\.'spaces,' +\.'T1' + +let g:TeX_package_url = +\ 'bra:urlstyle,' +\.'bra:url,' +\.'bra:path,' +\.'bra:urldef' + +" TODO uncomment if you figure out +" 1. how to get this syn command to work every time instead of only the +" first time this file is sourced. +" syn region texZone start="\\url{" end="}\|%stopzone\>" +" syn region texZone start="\\path{" end="}\|%stopzone\>" + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/verbatim b/.vim/ftplugin/latex-suite/packages/verbatim new file mode 100644 index 0000000..f2137ff --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/verbatim @@ -0,0 +1,18 @@ +if exists("verbatim_package_file") + finish +endif +let verbatim_package_file = 1 + +let g:TeX_package_option_verbatim = '' + +let g:TeX_package_verbatim = +\ 'env:comment,' +\.'env:verbatim,' +\.'env:verbatim*,' +\.'bra:verbatiminput,' +\.'bra:verbatiminput' + +syn region texZone start="\\begin{comment}" end="\\end{comment}\|%stopzone\>" fold +syn region texZone start="\\begin{verbatim}" end="\\end{verbatim}\|%stopzone\>" fold + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/packages/version b/.vim/ftplugin/latex-suite/packages/version new file mode 100644 index 0000000..4de9da8 --- /dev/null +++ b/.vim/ftplugin/latex-suite/packages/version @@ -0,0 +1,12 @@ +if exists("version_package_file") + finish +endif +let version_package_file = 1 + +let g:TeX_package_option_version = '' + +let g:TeX_package_version = +\ 'bra:includeversion,' +\.'bra:excludeversion' + +" vim:ft=vim:ff=unix: diff --git a/.vim/ftplugin/latex-suite/projecttemplate.vim b/.vim/ftplugin/latex-suite/projecttemplate.vim new file mode 100644 index 0000000..1ab4be0 --- /dev/null +++ b/.vim/ftplugin/latex-suite/projecttemplate.vim @@ -0,0 +1,11 @@ +" Project name +" let g:projName = '' +" +" Project files +" let g:projFiles = '' + + +" Vim settings/maps/abbrs specific for this project + +" Modeline for this file +" vim:fdm=marker:ff=unix:noet:ts=4:sw=4:ft=vim diff --git a/.vim/ftplugin/latex-suite/pytools.py b/.vim/ftplugin/latex-suite/pytools.py new file mode 100644 index 0000000..1934e23 --- /dev/null +++ b/.vim/ftplugin/latex-suite/pytools.py @@ -0,0 +1,52 @@ +import string, vim, re, os, glob +# catFile: assigns a local variable retval to the contents of a file {{{ +def catFile(filename): + try: + file = open(filename) + lines = ''.join(file.readlines()) + file.close() + except: + lines = '' + + # escape double quotes and backslashes before quoting the string so + # everything passes throught. + vim.command("""let retval = "%s" """ % re.sub(r'"|\\', r'\\\g<0>', lines)) + return lines + +# }}} +# isPresentInFile: check if regexp is present in the file {{{ +def isPresentInFile(regexp, filename): + try: + fp = open(filename) + fcontents = string.join(fp.readlines(), '') + fp.close() + if re.search(regexp, fcontents): + vim.command('let retval = 1') + return 1 + else: + vim.command('let retval = 0') + return None + except: + vim.command('let retval = 0') + return None + +# }}} +# deleteFile: deletes a file if present {{{ +# If the file does not exist, check if its a filepattern rather than a +# filename. If its a pattern, then deletes all files matching the +# pattern. +def deleteFile(filepattern): + if os.path.exists(filepattern): + try: + os.remove(filepattern) + except: + vim.command('let retval = -1') + else: + if glob.glob(filepattern): + for filename in glob.glob(filepattern): + os.remove(filename) + else: + vim.command('let retval = -1') + +# }}} +# vim:fdm=marker:ff=unix:noet:ts=4:sw=4:nowrap diff --git a/.vim/ftplugin/latex-suite/smartspace.vim b/.vim/ftplugin/latex-suite/smartspace.vim new file mode 100644 index 0000000..07526d8 --- /dev/null +++ b/.vim/ftplugin/latex-suite/smartspace.vim @@ -0,0 +1,102 @@ +"============================================================================= +" File: smartspace.vim +" Author: Carl Muller +" Created: Fri Dec 06 12:00 AM 2002 PST +" +" Description: +" Maps the <space> key in insert mode so that mathematical formulaes are +" always kept on the same line. i.e, $$'s dont get broken across multiple +" lines. +"============================================================================= + +" Avoid reinclusion or if the user doesn't want us. +if exists('b:done_smartspace') + \ || (exists('g:Tex_SmartKeySpace') && !g:Tex_SmartKeySpace) + finish +endif +let b:done_smartspace = 1 + +" Smart space relies on taking over vim's insertion of carriage returns in +" order to keep $$'s on the same line. The only way to get vim not to break +" lines is to set tw=0. +" +" NOTE: setting tw != 0 will break smartspace +" the user's 'tw' setting is still respected in the insert mode. +" However, normal mode actions which rely on 'tw' such as gqap will be +" broken because of the faulty 'tw' setting. +let b:tw = &l:tw +setlocal tw=0 + +inoremap <buffer> <silent> <Space> <Space><Esc>:call <SID>TexFill(b:tw)<CR>a + +" Do not redefine the function. +if exists('*s:TexFill') + finish +endif + +" TexFormatLine: format line retaining $$'s on the same line. {{{ +function! s:TexFill(width) + if a:width != 0 && col(".") > a:width + " For future use, record the current line and the number of the current column + let current_line = getline(".") + let current_column = col(".") + exe "normal! a##\<Esc>" + call <SID>TexFormatLine(a:width,current_line,current_column) + exe "normal! ?##\<CR>2s\<Esc>" + " Remove ## from the search history. + call histdel("/", -1)|let @/=histget("/", -1) + endif +endfunction + +" }}} +function! s:TexFormatLine(width, current_line, current_column) " {{{ + " get the first non-blank character. + let first = matchstr(getline('.'), '\S') + normal! $ + let length = col('.') + let go = 1 + while length > a:width+2 && go + let between = 0 + let string = strpart(getline('.'), 0, a:width) + " Count the dollar signs + let number_of_dollars = 0 + let evendollars = 1 + let counter = 0 + while counter <= a:width-1 + " Pay attention to '$$'. + if string[counter] == '$' && string[counter-1] != '$' + let evendollars = 1 - evendollars + let number_of_dollars = number_of_dollars + 1 + endif + let counter = counter + 1 + endwhile + " Get ready to split the line. + exe 'normal! ' . (a:width + 1) . '|' + if evendollars + " Then you are not between dollars. + exe "normal! ?\\$\\+\\| \<CR>W" + else + " Then you are between dollars. + normal! F$ + if col(".") == 1 || getline('.')[col(".")-1] != "$" + let go = 0 + endif + endif + if first == '$' && number_of_dollars == 1 + let go = 0 + else + exe "normal! i\<CR>\<Esc>$" + " get the first non-blank character. + let first = matchstr(getline('.'), '\S') + endif + let length = col(".") + endwhile + if go == 0 && strpart(a:current_line, 0, a:current_column) =~ '.*\$.*\$.*' + exe "normal! ^f$a\<CR>\<Esc>" + call <SID>TexFormatLine(a:width, a:current_line, a:current_column) + endif +endfunction + +" }}} + +" vim:fdm=marker:ts=4:sw=4:noet diff --git a/.vim/ftplugin/latex-suite/templates.vim b/.vim/ftplugin/latex-suite/templates.vim new file mode 100644 index 0000000..e28e429 --- /dev/null +++ b/.vim/ftplugin/latex-suite/templates.vim @@ -0,0 +1,149 @@ +"============================================================================= +" File: templates.vim +" Author: Gergely Kontra +" (minor modifications by Srinath Avadhanula) +" (plus other modifications by Mikolaj Machowski) +" Version: 1.0 +" Created: Tue Apr 23 05:00 PM 2002 PST +" CVS: $Id: templates.vim 1002 2006-03-23 04:02:21Z srinathava $ +" +" Description: functions for handling templates in latex-suite/templates +" directory. +"============================================================================= + +let s:path = expand("<sfile>:p:h") + +" SetTemplateMenu: sets up the menu for templates {{{ +function! <SID>SetTemplateMenu() + let flist = Tex_FindInRtp('', 'templates') + let i = 1 + while 1 + let fname = Tex_Strntok(flist, ',', i) + if fname == '' + break + endif + exe "amenu ".g:Tex_TemplatesMenuLocation."&".i.":<Tab>".fname." ". + \":call <SID>ReadTemplate('".fname."')<CR>" + let i = i + 1 + endwhile +endfunction + +if g:Tex_Menus + call <SID>SetTemplateMenu() +endif + +" }}} +" ReadTemplate: reads in the template file from the template directory. {{{ +function! <SID>ReadTemplate(...) + if a:0 > 0 + let filename = a:1 + else + let filelist = Tex_FindInRtp('', 'templates') + let filename = + \ Tex_ChooseFromPrompt("Choose a template file:\n" . + \ Tex_CreatePrompt(filelist, 2, ',') . + \ "\nEnter number or name of file :", + \ filelist, ',') + endif + + let fname = Tex_FindInRtp(filename.'.tex', 'templates', ':p') + call Tex_Debug("0read ".fname, 'templates') + + silent! exe "0read ".fname + + " The first line of the file contains the specifications of what the + " placeholder characters and the other special characters are. + let pattern = '\v(\S+)\t(\S+)\t(\S+)\t(\S+)' + + let s:phsTemp = substitute(getline(1), pattern, '\1', '') + let s:pheTemp = substitute(getline(1), pattern, '\2', '') + let s:exeTemp = substitute(getline(1), pattern, '\3', '') + let s:comTemp = substitute(getline(1), pattern, '\4', '') + + 0 d_ + + call s:ProcessTemplate() + call Tex_pack_updateall(1) + + " Do not handle the placeholders here. Let IMAP_PutTextWithMovement do it + " because it handles UTF-8 character substitutions etc. Therefore delete + " the text into @a and paste it using IMAP_PutTextWithMovement(). + let _a = @a + normal! ggVG"ax + + let _fo = &fo + " Since IMAP_PutTextWithMovement simulates the key-presses, leading + " indendatation can get duplicated in strange ways if ``fo`` is non-empty. + " NOTE: the indentexpr thingie is still respected with an empty fo so that + " environments etc are properly indented. + set fo= + + call Tex_Debug("normal! i\<C-r>=IMAP_PutTextWithMovement(@a, '".s:phsTemp."', '".s:pheTemp."')\<CR>", 'templates') + exec "normal! i\<C-r>=IMAP_PutTextWithMovement(@a, '".s:phsTemp."', '".s:pheTemp."')\<CR>" + + let &fo = _fo + let @a = _a + + call Tex_Debug('phs = '.s:phsTemp.', phe = '.s:pheTemp.', exe = '.s:exeTemp.', com = '.s:comTemp, 'templates') + +endfunction + +" }}} +" ProcessTemplate: processes the special characters in template file. {{{ +" This implementation follows from Gergely Kontra's +" mu-template.vim +" http://vim.sourceforge.net/scripts/script.php?script_id=222 +function! <SID>ProcessTemplate() + if exists('s:phsTemp') && s:phsTemp != '' + + exec 'silent! %s/^'.s:comTemp.'\(\_.\{-}\)'.s:comTemp.'$/\=<SID>Compute(submatch(1))/ge' + exec 'silent! %s/'.s:exeTemp.'\(.\{-}\)'.s:exeTemp.'/\=<SID>Exec(submatch(1))/ge' + exec 'silent! g/'.s:comTemp.s:comTemp.'/d' + + " A function only puts one item into the search history... + call Tex_CleanSearchHistory() + endif +endfunction + +function! <SID>Exec(what) + exec 'return '.a:what +endfunction + +" Back-Door to trojans !!! +function! <SID>Compute(what) + exe a:what + if exists('s:comTemp') + return s:comTemp.s:comTemp + else + return '' + endif +endfunction + +" }}} +" Command definitions {{{ +if v:version >= 602 + com! -complete=custom,Tex_CompleteTemplateName -nargs=? TTemplate :call <SID>ReadTemplate(<f-args>) + \| :startinsert + + " Tex_CompleteTemplateName: for completing names in TTemplate command {{{ + " Description: get list of template names with Tex_FindInRtp(), remove full path + " and return list of names separated with newlines. + " + function! Tex_CompleteTemplateName(A,P,L) + " Get name of macros from all runtimepath directories + let tmplnames = Tex_FindInRtp('', 'templates') + " Separate names with \n not , + let tmplnames = substitute(tmplnames,',','\n','g') + return tmplnames + endfunction + " }}} + +else + com! -nargs=? TTemplate :call <SID>ReadTemplate(<f-args>) + \| :startinsert + +endif + +" }}} + +" vim:fdm=marker:ff=unix:noet:ts=4:sw=4 diff --git a/.vim/ftplugin/latex-suite/templates/IEEEtran.tex b/.vim/ftplugin/latex-suite/templates/IEEEtran.tex new file mode 100644 index 0000000..104f9b2 --- /dev/null +++ b/.vim/ftplugin/latex-suite/templates/IEEEtran.tex @@ -0,0 +1,142 @@ +<+ +> !comp! !exe! +%% Based on <bare_jrnl.tex> in the ieee package available from CTAN, +%% I have changed the options so that most useful ones are clubbed together, +%% Have a look at <bare_jrnl.tex> to understand the function of each package. + +%% This code is offered as-is - no warranty - user assumes all risk. +%% Free to use, distribute and modify. + +% *** Authors should verify (and, if needed, correct) their LaTeX system *** +% *** with the testflow diagnostic prior to trusting their LaTeX platform *** +% *** with production work. IEEE's font choices can trigger bugs that do *** +% *** not appear when using other class files. *** +% Testflow can be obtained at: +% http://www.ctan.org/tex-archive/macros/latex/contrib/supported/IEEEtran/testflow + +% File: !comp!expand("%:p:t")!comp! +% Created: !comp!strftime("%a %b %d %I:00 %p %Y ").substitute(strftime('%Z'), '\<\(\w\)\(\w*\)\>\(\W\|$\)', '\1', 'g')!comp! +% Last Change: !comp!strftime("%a %b %d %I:00 %p %Y ").substitute(strftime('%Z'), '\<\(\w\)\(\w*\)\>\(\W\|$\)', '\1', 'g')!comp! +% +\documentclass[journal]{IEEEtran} + +\usepackage{cite, graphicx, subfigure, amsmath} +\interdisplaylinepenalty=2500 + +% *** Do not adjust lengths that control margins, column widths, etc. *** +% *** Do not use packages that alter fonts (such as pslatex). *** +% There should be no need to do such things with IEEEtran.cls V1.6 and later. + +<++> +% correct bad hyphenation here +\hyphenation{<+op-tical net-works semi-conduc-tor+>} + + +\begin{document} +% +% paper title +\title{<+Skeleton of IEEEtran.cls for Journals in VIM-Latex+>} +% +% +% author names and IEEE memberships +% note positions of commas and nonbreaking spaces ( ~ ) LaTeX will not break +% a structure at a ~ so this keeps an author's name from being broken across +% two lines. +% use \thanks{} to gain access to the first footnote area +% a separate \thanks must be used for each paragraph as LaTeX2e's \thanks +% was not built to handle multiple paragraphs +\author{<+Sumit Bhardwaj+>~\IEEEmembership{<+Student~Member,~IEEE,+>} +<+John~Doe+>,~\IEEEmembership{<+Fellow,~OSA,+>} +<+and~Jane~Doe,+>~\IEEEmembership{<+Life~Fellow,~IEEE+>}}% <-this % stops a space +\thanks{<+Manuscript received January 20, 2002; revised August 13, 2002. +This work was supported by the IEEE.+>}% <-this % stops a space +\thanks{<+S. Bhardwaj is with the Indian Institute of Technology, Delhi.+>} +% +% The paper headers +\markboth{<+Journal of VIM-\LaTeX\ Class Files,~Vol.~1, No.~8,~August~2002+>}{ +<+Bhardwaj \MakeLowercase{\textit{et al.}+>}: <+Skeleton of IEEEtran.cls for Journals in VIM-Latex+>} +% The only time the second header will appear is for the odd numbered pages +% after the title page when using the twoside option. + + +% If you want to put a publisher's ID mark on the page +% (can leave text blank if you just want to see how the +% text height on the first page will be reduced by IEEE) +%\pubid{0000--0000/00\$00.00~\copyright~2002 IEEE} + +% use only for invited papers +%\specialpapernotice{(Invited Paper)} + +% make the title area +\maketitle + + +\begin{abstract} +<+The abstract goes here.+> +\end{abstract} + +\begin{keywords} +<+IEEEtran, journal, \LaTeX, paper, template, VIM, VIM-\LaTeX+>. +\end{keywords} + +\section{Introduction} +\PARstart{<+T+>}{<+his+>} <+demo file is intended to serve as a ``starter file" +for IEEE journal papers produced under \LaTeX\ using IEEEtran.cls version +1.6 and later.+> +% You must have at least 2 lines in the paragraph with the drop letter +% (should never be an issue) +<+May all your publication endeavors be successful.+> + +% needed in second column of first page if using \pubid +%\pubidadjcol + +% trigger a \newpage just before the given reference +% number - used to balance the columns on the last page +% adjust value as needed - may need to be readjusted if +% the document is modified later +%\IEEEtriggeratref{8} +% The "triggered" command can be changed if desired: +%\IEEEtriggercmd{\enlargethispage{-5in}} + +% references section + +%\bibliographystyle{IEEEtran.bst} +%\bibliography{IEEEabrv,../bib/paper} +\begin{thebibliography}{1} + +\bibitem{IEEEhowto:kopka} +H.~Kopka and P.~W. Daly, \emph{A Guide to {\LaTeX}}, 3rd~ed.\hskip 1em plus +0.5em minus 0.4em\relax Harlow, England: Addison-Wesley, 1999. + +\end{thebibliography} + +% biography section +% +\begin{biography}{Sumit Bhardwaj} +Biography text here. +\end{biography} + +% if you will not have a photo +\begin{biographynophoto}{John Doe} +Biography text here. +\end{biographynophoto} + +% insert where needed to balance the two columns on the last page +%\newpage + +\begin{biographynophoto}{Jane Doe} +Biography text here. +\end{biographynophoto} + +% You can push biographies down or up by placing +% a \vfill before or after them. The appropriate +% use of \vfill depends on what kind of text is +% on the last page and whether or not the columns +% are being equalized. + +%\vfill + +% Can be used to pull up biographies so that the bottom of the last one +% is flush with the other column. +%\enlargethispage{-5in} + +\end{document} diff --git a/.vim/ftplugin/latex-suite/templates/article.tex b/.vim/ftplugin/latex-suite/templates/article.tex new file mode 100644 index 0000000..ea7e1d1 --- /dev/null +++ b/.vim/ftplugin/latex-suite/templates/article.tex @@ -0,0 +1,9 @@ +<+ +> !comp! !exe! +% File: !comp!expand("%:p:t")!comp! +% Created: !comp!strftime("%a %b %d %I:00 %p %Y ").substitute(strftime('%Z'), '\<\(\w\)\(\w*\)\>\(\W\|$\)', '\1', 'g')!comp! +% Last Change: !comp!strftime("%a %b %d %I:00 %p %Y ").substitute(strftime('%Z'), '\<\(\w\)\(\w*\)\>\(\W\|$\)', '\1', 'g')!comp! +% +\documentclass[a4paper]{article} +\begin{document} +<++> +\end{document} diff --git a/.vim/ftplugin/latex-suite/templates/report.tex b/.vim/ftplugin/latex-suite/templates/report.tex new file mode 100644 index 0000000..479c7b3 --- /dev/null +++ b/.vim/ftplugin/latex-suite/templates/report.tex @@ -0,0 +1,9 @@ +<+ +> !comp! !exe! +% File: !comp!expand("%")!comp! +% Created: !comp!strftime("%a %b %d %I:00 %p %Y ").substitute(strftime('%Z'), '\<\(\w\)\(\w*\)\>\(\W\|$\)', '\1', 'g')!comp! +% Last Change: !comp!strftime("%a %b %d %I:00 %p %Y ").substitute(strftime('%Z'), '\<\(\w\)\(\w*\)\>\(\W\|$\)', '\1', 'g')!comp! +% +\documentclass[a4paper]{report} +\begin{document} +<++> +\end{document} diff --git a/.vim/ftplugin/latex-suite/templates/report_two_column.tex b/.vim/ftplugin/latex-suite/templates/report_two_column.tex new file mode 100644 index 0000000..15bd95e --- /dev/null +++ b/.vim/ftplugin/latex-suite/templates/report_two_column.tex @@ -0,0 +1,9 @@ +<+ +> !comp! !exe! +% File: !comp!expand("%:p:t")!comp! +% Created: !comp!strftime("%a %b %d %I:00 %p %Y ").substitute(strftime('%Z'), '\<\(\w\)\(\w*\)\>\(\W\|$\)', '\1', 'g')!comp! +% Last Change: !comp!strftime("%a %b %d %I:00 %p %Y ").substitute(strftime('%Z'), '\<\(\w\)\(\w*\)\>\(\W\|$\)', '\1', 'g')!comp! +% +\documentclass[a4paper,twocolumn]{report} +\begin{document} +<++> +\end{document} diff --git a/.vim/ftplugin/latex-suite/texmenuconf.vim b/.vim/ftplugin/latex-suite/texmenuconf.vim new file mode 100644 index 0000000..405e46a --- /dev/null +++ b/.vim/ftplugin/latex-suite/texmenuconf.vim @@ -0,0 +1,131 @@ +"============================================================================= +" File: texmenuconf.vim +" Author: Srinath Avadhanula +" Copyright: Vim charityware license. :help license +" Description: +" CVS: $Id: texmenuconf.vim 997 2006-03-20 09:45:45Z srinathava $ +" +"============================================================================= + +" Paths, crucial for functions +let s:path = expand("<sfile>:p:h") +let s:up_path = expand("<sfile>:p:h:h") +let s:mainmenuname = g:Tex_MenuPrefix.'S&uite.' +let s:mapleader = exists('mapleader') ? mapleader : "\\" + +" This glboal variable is incremented each time a top-level latex-suite menu +" is created. We should always use this variable for setting the locations of +" newly created top-level menus. +let g:Tex_NextMenuLocation = g:Tex_MainMenuLocation + +" The templates and macros menus are always nested within the main latex-suit +" menu. +let g:Tex_TemplatesMenuLocation = g:Tex_MainMenuLocation.'.20 '.s:mainmenuname.'&Templates.' +let g:Tex_MacrosMenuLocation = g:Tex_MainMenuLocation.'.20 '.s:mainmenuname.'&Macros.' + +" The packages menu can either be a child of the main menu or be a top-level +" menu by itself. +if g:Tex_NestPackagesMenu + let g:Tex_PackagesMenuLocation = (g:Tex_MainMenuLocation).'.10 '.s:mainmenuname.'&Packages.' +else + let g:Tex_PackagesMenuLocation = (g:Tex_NextMenuLocation).'.10 '.g:Tex_MenuPrefix.'Packages.' + let g:Tex_NextMenuLocation = g:Tex_NextMenuLocation + 1 +endif + +" Environments are always a top-level menu. +let g:Tex_EnvMenuLocation = (g:Tex_NextMenuLocation).'.20 '.g:Tex_MenuPrefix.'E&nvironments.' +let g:Tex_NextMenuLocation = g:Tex_NextMenuLocation + 1 + +" Elements are always a top-level menu. +" If we choose to nest elements, then the top-level &TeX-Elements menu +" contains <Fonts / Counters / Dimensions> +" otherwise, the Fonts, Counters and Dimensions menus become top-level menus. +if g:Tex_NestElementMenus + let g:Tex_ElementsMenuLocation = (g:Tex_NextMenuLocation).'.20 '.g:Tex_MenuPrefix.'E&lements.' +else + let g:Tex_ElementsMenuLocation = (g:Tex_NextMenuLocation).'.20 '.g:Tex_MenuPrefix +endif +let g:Tex_NextMenuLocation = g:Tex_NextMenuLocation + 1 + + +" Set up the compiler/viewer menus. {{{ +" +if has('gui_running') && g:Tex_Menus + exec 'anoremenu '.g:Tex_MainMenuLocation.'.25 '. s:mainmenuname.'-sepsuite0- :' + + " menus for compiling / viewing etc. + exec 'anoremenu '.g:Tex_MainMenuLocation.'.30 '.s:mainmenuname.'&Compile<tab>'.s:mapleader.'ll'. + \' :silent! call Tex_RunLaTeX()<CR>' + exec 'anoremenu '.g:Tex_MainMenuLocation.'.40 '.s:mainmenuname.'&View<tab>'.s:mapleader.'lv'. + \' :silent! call Tex_ViewLaTeX()<CR>' + exec 'anoremenu '.g:Tex_MainMenuLocation.'.50 '.s:mainmenuname.'&Search<tab>'.s:mapleader.'ls'. + \' :silent! call ForwardSearchLaTeX()<CR>' + exec 'anoremenu '.g:Tex_MainMenuLocation.'.60 '.s:mainmenuname.'&Target\ Format<tab>:TTarget'. + \' :call SetTeXTarget()<CR>' + exec 'anoremenu '.g:Tex_MainMenuLocation.'.70 '.s:mainmenuname.'&Compiler\ Target<tab>:TCTarget'. + \' :call Tex_SetTeXCompilerTarget("Compile", "")<CR>' + exec 'anoremenu '.g:Tex_MainMenuLocation.'.80 '.s:mainmenuname.'&Viewer\ Target<tab>:TVTarget'. + \' :call Tex_SetTeXCompilerTarget("View", "")<CR>' + exec 'anoremenu '.g:Tex_MainMenuLocation.'.90 '.s:mainmenuname.'Set\ &Ignore\ Level<tab>:TCLevel'. + \' :TCLevel<CR>' + exec 'imenu '.g:Tex_MainMenuLocation.'.100 '.s:mainmenuname.'C&omplete\ Ref/Cite'. + \' <Plug>Tex_Completion' + exec 'anoremenu '.g:Tex_MainMenuLocation.'.110 '.s:mainmenuname.'-sepsuite1- :' + " refreshing folds + if g:Tex_Folding + exec 'anoremenu '.g:Tex_MainMenuLocation.'.120 '.s:mainmenuname.'&Refresh\ Folds<tab>'.s:mapleader.'rf'. + \' :call MakeTexFolds(1)<CR>' + exec 'anoremenu '.g:Tex_MainMenuLocation.'.130 '.s:mainmenuname.'-sepsuite2- :' + endif +endif + +" }}} + +" ============================================================================== +" MenuConf: configure the menus as compact/extended, with/without math +" ============================================================================== +function! Tex_MenuConfigure(type, action) " {{{ + let menuloc = s:mainmenuname.'Configure\ Menu.' + if a:type == 'math' + if a:action == 1 + let g:Tex_MathMenus = 1 + exe 'so '.s:path.'/mathmacros.vim' + exe 'amenu disable '.menuloc.'Add\ Math\ Menu' + exe 'amenu enable '.menuloc.'Remove\ Math\ Menu' + elseif a:action == 0 + call Tex_MathMenuRemove() + exe 'amenu enable '.menuloc.'Add\ Math\ Menu' + exe 'amenu disable '.menuloc.'Remove\ Math\ Menu' + endif + elseif a:type == 'elements' + if a:action == 'expand' + let g:Tex_ElementsMenuLocation = '80.20 '.g:Tex_MenuPrefix + exe 'amenu disable '.menuloc.'Expand\ Elements' + exe 'amenu enable '.menuloc.'Compress\ Elements' + elseif a:action == 'nest' + let g:Tex_ElementsMenuLocation = '80.20 '.g:Tex_MenuPrefix.'Elements.' + exe 'amenu enable '.menuloc.'Expand\ Elements' + exe 'amenu disable '.menuloc.'Compress\ Elements' + endif + exe 'source '.s:path.'/elementmacros.vim' + elseif a:type == 'packages' + if a:action == 1 + let g:Tex_PackagesMenu = 1 + exe 'so '.s:path.'/packages.vim' + exe 'amenu disable '.menuloc.'Load\ Packages\ Menu' + endif + endif +endfunction + +" }}} + +" configuration menu. +if g:Tex_Menus + exe 'amenu '.g:Tex_MainMenuLocation.'.900 '.s:mainmenuname.'Configure\ Menu.Add\ Math\ Menu :call Tex_MenuConfigure("math", 1)<cr>' + exe 'amenu '.g:Tex_MainMenuLocation.'.900 '.s:mainmenuname.'Configure\ Menu.Remove\ Math\ Menu :call Tex_MenuConfigure("math", 0)<cr>' + exe 'amenu '.g:Tex_MainMenuLocation.'.900 '.s:mainmenuname.'Configure\ Menu.Expand\ Elements :call Tex_MenuConfigure("elements", "expand")<cr>' + exe 'amenu '.g:Tex_MainMenuLocation.'.900 '.s:mainmenuname.'Configure\ Menu.Compress\ Elements :call Tex_MenuConfigure("elements", "nest")<cr>' + exe 'amenu '.g:Tex_MainMenuLocation.'.900 '.s:mainmenuname.'Configure\ Menu.Load\ Packages\ Menu :call Tex_MenuConfigure("packages", 1)<cr>' +endif + +" vim:fdm=marker:ff=unix:noet:ts=4:sw=4 diff --git a/.vim/ftplugin/latex-suite/texproject.vim b/.vim/ftplugin/latex-suite/texproject.vim new file mode 100644 index 0000000..bed9ed3 --- /dev/null +++ b/.vim/ftplugin/latex-suite/texproject.vim @@ -0,0 +1,54 @@ +"============================================================================= +" File: texproject.vim +" Author: Mikolaj Machowski +" Version: 1.0 +" Created: Wen Apr 16 05:00 PM 2003 +" +" Description: Handling tex projects. +"============================================================================= + +let s:path = expand("<sfile>:p:h") + +command! -nargs=0 TProjectEdit :call <SID>Tex_ProjectEdit() + +" Tex_ProjectEdit: Edit project file " {{{ +" Description: If project file exists (*.latexmain) open it in window created +" with ':split', if no create ':new' window and read there +" project template +" +function! s:Tex_ProjectEdit() + + let file = expand("%:p") + let mainfname = Tex_GetMainFileName() + if glob(mainfname.'.latexmain') != '' + exec 'split '.Tex_EscapeSpaces(mainfname.'.latexmain') + else + echohl WarningMsg + echomsg "Master file not found." + echomsg " :help latex-master-file" + echomsg "for more information" + echohl None + endif + +endfunction " }}} +" Tex_ProjectLoad: loads the .latexmain file {{{ +" Description: If a *.latexmain file exists, then sources it +function! Tex_ProjectLoad() + let curd = getcwd() + call Tex_CD(expand('%:p:h')) + + if glob(Tex_GetMainFileName(':p').'.latexmain') != '' + call Tex_Debug("Tex_ProjectLoad: sourcing [".Tex_GetMainFileName().".latexmain]", "proj") + exec 'source '.Tex_GetMainFileName().'.latexmain' + endif + + call Tex_CD(curd) +endfunction " }}} + +augroup LatexSuite + au LatexSuite User LatexSuiteFileType + \ call Tex_Debug("texproject.vim: catching LatexSuiteFileType event", "proj") | + \ call Tex_ProjectLoad() +augroup END + +" vim:fdm=marker:ff=unix:noet:ts=4:sw=4 diff --git a/.vim/ftplugin/latex-suite/texrc b/.vim/ftplugin/latex-suite/texrc new file mode 100644 index 0000000..79068a8 --- /dev/null +++ b/.vim/ftplugin/latex-suite/texrc @@ -0,0 +1,738 @@ +"============================================================================= +" vim:ft=vim:ts=4:sw=4:noet:fdm=marker:commentstring=\"\ %s:ff=unix +" File: texrc.vim +" Author: Srinath Avadhanula +" Created: Mon Apr 01 11:00 AM 2002 PST +" CVS: $Id: texrc 998 2006-03-20 09:52:12Z srinathava $ +" +" Description: This file contains resource configuration information for the +" latex-suite package. +" +" NOTE: Do NOT be edit this file directly: +" this file will be over-written each time you install a new copy +" of latex-suite. +" +" You can do one of the following: +" 1. Copy this file into $VIMFILES/ftplugin/tex/texrc +" and edit the values in that file. +" $VIMFILES is ~/.vim for UNIX systems and ~/vimfiles for +" WINDOWS systems. +" +" 2. Just set values of each setting individually in your +" $VIMFILES/ftplugin/tex.vim file. (See above for what +" $VIMFILES is). You will need to use :let instead of :TexLet +" in this case. +" +" NOTE: This file is best viewed with Vim-6.0+ with folding turned on. +" CVS: $Id: texrc 998 2006-03-20 09:52:12Z srinathava $ +"============================================================================= + +" ============================================================================== +" SafeLet: checks for value before giving default value {{{ +" Description: The function takes in a single argument and splits it into 2 +" parts, the first being the first <CWORD> found. this is taken +" as a variable name and the next part is assigned to it +" depending on whether the variable already exists or not. +" handles the case where the next part is quoted or not. +" All these calls work: +" TexLet g:varname = 1 +" TexLet g:varname = '1' +" TexLet g:varname = 'foo bar' +" TexLet g:varname = "foo\nbar" +" TexLet g:varname = foo bar +function! <SID>SafeLet(arg) + let name = matchstr(a:arg, '^\s*\zs\(\S\+\)\ze\s*=') + let value = matchstr(a:arg, '=\s*\zs.*\ze') + let value = substitute(value, '\s*$', '', '') + if !exists(name) + if value =~ "^'\\|^\"" + exec "let ".name." = ".value + else + exe "let ".name." = value" + endif + endif +endfunction +com! -nargs=+ TexLet :call <SID>SafeLet(<q-args>) +" }}} +" ============================================================================== + +" ============================================================================== +" General settings {{{ + +TexLet g:Tex_UsePython = 1 + +" the system command which pulls in a file. +if &shell =~ 'sh' + TexLet g:Tex_CatCmd = 'cat' + TexLet g:Tex_RmCmd = 'rm' +else + TexLet g:Tex_CatCmd = 'type' + TexLet g:Tex_RmCmd = 'del' +endif + +" whether to turn on debugging +TexLet g:Tex_Debug = 0 +" If non empty, all the debugging information will be written to a file of +" this name. +TexLet g:Tex_DebugLog = '' + +" }}} +" ============================================================================== +" Rules: specifications of programs for compiling and viewing {{{ +" + +" By default, when you compile a tex file using \ll, then you will be +" generating a .dvi file. Change this line if you want to set another default. +" NOTE: Make sure that a target for this format exists in the 'Compiler rules' +" section below and is set up properly for your system. +if has('macunix') + TexLet g:Tex_DefaultTargetFormat = 'pdf' +else + TexLet g:Tex_DefaultTargetFormat = 'dvi' +endif + +" A comma seperated list of formats which need multiple compilations to be +" correctly compiled. +TexLet g:Tex_MultipleCompileFormats = 'dvi' + +" Uncomment this line if you compile ps files via dvi files. +" TexLet g:Tex_FormatDependency_ps = 'dvi,ps' + +" ------------------------------------------------------------------------------ +" Compiler rules {{{ +" This is the first thing you should customize. It is set up for most common +" values, but if use some other compiler, then you will want to change this. +" As CompileFlags value you'd perhaps like to use, e.g., '-src-specials', +" but it is known that it can sometimes give different results in the output, +" so use it with care. +TexLet g:Tex_CompileRule_dvi = 'latex -interaction=nonstopmode $*' +TexLet g:Tex_EscapeChars = '{}\' + +TexLet g:Tex_CompileRule_ps = 'dvips -Ppdf -o $*.ps $*.dvi' + +" ways to generate pdf files. there are soo many... +" NOTE: pdflatex generates the same output as latex. therefore quickfix is +" possible. +TexLet g:Tex_CompileRule_pdf = 'pdflatex -interaction=nonstopmode $*' + +" TexLet g:Tex_CompileRule_pdf = 'ps2pdf $*.ps' +" TexLet g:Tex_CompileRule_pdf = 'dvipdfm $*.dvi' +" TexLet g:Tex_CompileRule_pdf = 'dvipdf $*.dvi' + +TexLet g:Tex_CompileRule_html = 'latex2html $*.tex' + +TexLet g:Tex_CompileRule_bib = g:Tex_BibtexFlavor . ' $*' + +" Set Tex_UseMakefile to 0 if you want to ignore the presence of a Makefile +" when deciding how to compile +TexLet g:Tex_UseMakefile = 1 + +" }}} +" ------------------------------------------------------------------------------ +" Viewer rules {{{ +" these programs are for viewing other formats. +" NOTE: latex-suite will automatically append file.<format> to these functions +" when calling them. The viewer therefore cannot accept arguments after +" the filename. +" NOTE: Windows users: +" Set your $PATH variable to include the full path to these programs. +if has('win32') + TexLet g:Tex_ViewRule_ps = 'gsview32' + TexLet g:Tex_ViewRule_pdf = 'AcroRd32' + TexLet g:Tex_ViewRule_dvi = 'yap -1' +elseif has('macunix') + " Let the system pick. If you want, you can override the choice here. + TexLet g:Tex_ViewRule_ps = '' + TexLet g:Tex_ViewRule_pdf = '' + " TexLet g:Tex_ViewRule_pdf = 'Acrobat\ Reader\ 5.1' + TexLet g:Tex_ViewRule_dvi = '' +else + TexLet g:Tex_ViewRule_ps = 'ghostview' + TexLet g:Tex_ViewRule_pdf = 'xpdf' + TexLet g:Tex_ViewRule_dvi = 'xdvi' + " the option below specifies an editor for the dvi viewer while starting + " up the dvi viewer according to Dimitri Antoniou's tip on vim.sf.net (tip + " #225) + TexLet g:Tex_UseEditorSettingInDVIViewer = 0 +endif + +" Tex_ViewRuleComplete_{format} +" +" If a variable like this is specified, then it takes precedence over the +" variable with the same suffix defined above. i.e, Tex_ViewRuleComplete_dvi +" takes precedence over Tex_ViewRule_dvi. +" +" If only Tex_ViewRule_{format} is specified, then latex-suite constructs the +" actual system command which calls that program automatically. For example, +" if you specify Tex_ViewRule_dvi = 'kdvi', then latex-suite will issue the +" command +" !kdvi --unique file.dvi & +" +" However, if your viewer program accepts the file to be viewed in a way which +" doesn't fit with the way latex-suite constructs the system command, then +" specify it using this variable. You can use the same format here which +" 'makeprg' accepts. So $* can be used in place of the main file name. +" +" IMPORTANT: Make sure you make the process go into the background otherwise +" vim will wait for the viewer to terminate before letting you edit +" the file again. +" +" Example: +" Suppose you have a latex->html converter which converts a file say foo.tex +" to a file foo/index.html. Then you would use: +" +" let g:Tex_ViewRuleComplete_html = 'MozillaFirebird $*/index.html &' +" +" Doing something like this would not be possible using Tex_ViewRule_html +TexLet g:Tex_ViewRuleComplete_dvi = '' + +" }}} +" ------------------------------------------------------------------------------ +" }}} +" ============================================================================== +" Compiler: latex-suite comes with a customizable compiler plugin. {{{ +" :help latex-compiling for a detailed description of these options. +" +" this is the list of patterns which will be ignored from the compiler output. +" This is a handy way of specifying which warnings/errors to ignore. This is a +" list of patterns seperated by '¡' +TexLet g:Tex_IgnoredWarnings = + \'Underfull'."\n". + \'Overfull'."\n". + \'specifier changed to'."\n". + \'You have requested'."\n". + \'Missing number, treated as zero.'."\n". + \'There were undefined references'."\n". + \'Citation %.%# undefined' + +" the 'ignore level' of the 'efm'. A value of 4 says that the first 4 kinds of +" warnings in the list above will be ignored. Use the command TCLevel to set a +" level dynamically. +TexLet g:Tex_IgnoreLevel = 7 + +" NOTE: The values of g:Tex_Flavor and g:Tex_CompilerFlags are provided as a +" way to make compiler/tex.vim standalone. i.e independent of the rest +" of latex-suite. These variables are NOT used if you have already +" defined g:Tex_CompileRule_dvi above. +" +" specifies the current latex flavor. +TexLet g:Tex_Flavor = 'latex' + +" specifies the BibTeX flavor and if necessary options. If you use $* in this +" setting, it will be replaced by the *root* of the main file name, i.e, if +" the main file is "thesis.tex", $* will be "thesis". +TexLet g:Tex_BibtexFlavor = 'bibtex' + +" specifies the MakeIndedx flavor and if necessary options. $* will be +" replaced by the *root* of the main file name. See above. +TexLet g:Tex_MakeIndexFlavor = 'makeindex $*.idx' + +" By default the program described by g:Tex_Flavor above is called with the +" flags '--src-specials --interaction=nonstopmode'. If your particular version +" of latex does not accept these arguments, you will need to set this variable +" to the appropriate value. +" NOTE: leave commented for using the default flags. +" TODO: Is it necessary (or even desirable) to use 2 variables to specify a +" flavor and flags seperately? --SA +" TexLet g:Tex_CompilerFlags = '' + +" If disabled (set to 0) LaTeX-Suite doesn't go immediately to warnings or +" errors after compilation +TexLet g:Tex_GotoError = 1 + +" If set to 1, then latex-suite shows the context of the error in a preview +" window beneath the window showing the actual errors. +TexLet g:Tex_ShowErrorContext = 1 + +" Remove temp files created during part compilations when vim exits. +TexLet g:Tex_RemoveTempFiles = 1 + +" }}} +" ============================================================================== +" Project: how to deal with multi file projects via latex-suite {{{ + +" Use a valid vim expression here if you want to customize the way latex-suite +" searches for a master file from within another file. +TexLet g:Tex_MainFileExpression = '' + +" }}} +" ============================================================================== +" Macros: latex-suite comes with a large number of macros to speed up typing {{{ +" latex. +" +" Place Holder Options: {{{ +" (See |placeholders| for a description of what place-holders are). +" +" these options are actually used by imaps.vim, therefore the prefix is Imap_ +" and not Tex_. See |placeholders| for a description of how to use +" place-holders. You can either completely disable placeholders (not +" recommended) and/or you can change the place holder characters. + +TexLet g:Imap_UsePlaceHolders = 1 +TexLet g:Imap_PlaceHolderStart = '<+' +TexLet g:Imap_PlaceHolderEnd = '+>' + +" This option when set to 1 makes <C-J> in insert mode delete +" non-descriptive (empty) placeholders and enters insert mode. +" NOTE: This option _has_ to be set in the .vimrc. Setting this in a filetype +" plugin file such as ftplugin/tex.vim will not have any affect. +TexLet g:Imap_DeleteEmptyPlaceHolders = 0 + +" When set to 1, in visual mode, <C-J> takes you to the next placeholder +" without deleting the current placeholder. +" NOTE: This option _has_ to be set in the .vimrc. Setting this in a filetype +" plugin file such as ftplugin/tex.vim will not have any affect. +TexLet g:Imap_StickyPlaceHolders = 1 + + +" }}} +" Menu Wizard Option: {{{ +" If the following variable is set to 1, then when an enviroment is chosen +" from the menu then for selected environments, latex-suite asks a series of +" questions on the command line and inserts a template with the corresponding +" fields already filled in. +" Setting this to zero will insert a template with |placeholders| marking off +" the places where fields need to be filled. +TexLet g:Tex_UseMenuWizard = 0 + +" }}} +" Visual Mode Mapping Correction: {{{ +" With so many visual maps, its helpful to have a way of catching typing +" errors made in visual mode. What this does is to prompt you to correct your +" visual mode mapping if you start out with g:Tex_Leader and then type some +" illegal keys. +" It basically maps just the g:Tex_Leader character to a function +TexLet g:Tex_CatchVisMapErrors = 1 + +" }}} +" Diacritics: {{{ +" whether or not you want to use diacritics +" (diacritics speed up typing some languages. the way they are set up in +" latex-suite is +" =char> = \'{<char>} +" +char> = \v{<char>} +" +} = \"a +" :o = \^o +" Default: 0 +TexLet g:Tex_Diacritics = 0 + +" }}} +" Leader Options: {{{ +" The mappings in latex-suite are by default prefixed with the back-tick +" character. For example, `/ inserts \frac{<++>}{<++>}<++> etc. You can change the +" prefix with the following setting. +" ',', '/', '`' are preferred values. '' or '\' will lead to a _lot_ of +" trouble. +" g:Tex_Leader is also used for visual mode mappings for fonts. +TexLet g:Tex_Leader = '`' + +" In order to avoid ambiguity between the large number of visual mode macros +" provided, the visual mode macros for environments and sections start with a +" character different from '`'. +TexLet g:Tex_Leader2 = ',' + +" }}} +" Environment Macros: {{{ +" These mappings insert LaTeX "environments" such as +" \begin{center} +" <++> +" \end{center}<++> +" with the cursor left at the first place-holder. +" (See |placeholders| for what these are.) +" Mnemonic: +" 1. All environment mappings begin with 'E' +" 2. The next two capital letters are (for the common environments) the +" first 2 letters of the environment name converted into upper case. For +" example, for the center environment above, use ECE. There are a few +" necessary exceptions such as: +" equation --> EEQ +" eqnarray --> EEA +" Please see texmaps.vim for the complete list. +" +" Along with the insert mode mappings, a set of visual mode mappings is +" provided which encloses the visually selected region in an environment. +" These maps are related to the corresponding insert mode mappings by the +" following rule: +" EFI --> ,fi +" and so on. i.e, the leading E becomes '`' and the next 2 letters are small +" case. Some of the visual mode mappings are sensetive to whether you choose +" line-wise or character wise. For example, if you choose a word and press +" `ve, then you get \verb|word|, whereas if you press `ve on a line-wise +" selection, you get: +" \begin{verbatim} +" line +" \end{verbatim} +" +" these 2 options give finer control on which aspect of the macros you want +" to enable. +TexLet g:Tex_EnvironmentMaps = 1 +TexLet g:Tex_EnvironmentMenus = 1 + + +" }}} +" Font Macros: {{{ +" These mappings insert font descriptions such as: +" \textsf{<++>}<++> +" again with the cursor at the first place-holder. +" Mnemonic: +" 1. first letter is always F (F for font) +" 2. next 2 letters are the 2 letters describing the font. +" +" Example: the above mapping is triggered by FSF. +" +" Just like environment mappings, you can visually select an area and press +" `sf to have it enclosed in: +" \textsf{word} +" or +" {\sffamily +" line +" } +" depending on character-wise or line-wise selection. +TexLet g:Tex_FontMaps = 1 +TexLet g:Tex_FontMenus = 1 + +" }}} +" Section Macros: {{{ +" Inserts LaTeX sections: +" \section +" etc. Just as in the case of environments and fonts, can be enclosed with a +" visual selection. The enclosing is not sensetive to character or line-wise +" selection. +" NOTE: In visual mode, you are supposed to select the name of the section +" etc, not the whole section. +" In the following case, select just the first line, not lines 1-3. +" 1 section name +" 2 some lines in this section +" 3 and some more lines +" Mnemonic: (make your own!) +" SPA for part +" SCH for chapter +" SSE for section +" SSS for subsection +" SS2 for subsubsection +" SPG for paragraph +" SSP for subparagraph +TexLet g:Tex_SectionMaps = 1 +TexLet g:Tex_SectionMenus = 1 + +" }}} +" Auctex Style Mappings: {{{ +" Auctex.vim has heavily inspired various portions of latex-suite providing +" various new ways of conviniently inserting environments. +" +" If you press <F5> in the insert mode while on an empty line, latex-suite +" prompts you with a list of environments you might want to insert. You can +" either choose one from the list or type in a new environment name. +" The variable below (which is a comma seperated list of environment names) +" decides the prompt which latex-suite generates. +" You can place as many items as you want here. If the environment name is a +" standard latex environment such as table or figure, then latex-suite will +" insert a template with additional fields, if not, just a bare bones +" \begin{env} +" <++> +" \end{env} +" is inserted. +" \[ and $$ are also recognized. +" NOTE: Setting this variable to the empty string is a way of leaving the +" <F5> key unmapped + +TexLet g:Tex_PromptedEnvironments = + \ 'eqnarray*,eqnarray,equation,equation*,\[,$$,align,align*' + +" Another quick way of inserting environments is to press one of the shifted +" function keys from <F1> through <F4>. +" Each environment in the following list is mapped to a corresponding shifted +" function key. +" NOTE: Setting this variable to the empty string is a way of leaving all the +" shifted function keys untouched by latex-suite. +" NOTE: Only the first 4 items of the list are used. The rest will be silently +" ignored. +" The number of items in this list decides how many shifted function keys are +" mapped. +TexLet g:Tex_HotKeyMappings = + \ 'eqnarray*,eqnarray,bmatrix' + +" Similar to above mechanisms works <F7> key. It prompts for command with list +" of commands from g:Tex_PromptedCommands. There are not HotKeys for commands. +" It works for commands of style \com{}. Changing of current command is done +" with <S-F7> + +TexLet g:Tex_PromptedCommands = + \ 'footnote,cite,pageref,label' + +" }}} +" Smart Key Mappings: {{{ +" Latex-suite shites with a number of 'smart' maps, where the behavior of +" standard keys is modified in a way which makes editing tex files easy. + +" Pressing <BS> in insert mode checks to see whether we are just after +" something like \'{a} and if so, deletes all of it. i.e, diacritics are +" treated as single characters for backspacing. +" Setting this to zero will leave the <BS> key unmapped. +" Default: 1 +TexLet g:Tex_SmartKeyBS = 1 +" The pattern used to detect whether the previous characters comprise a +" diacritic character. This default pattern detects the standard LaTeX +" diacritics +TexLet g:Tex_SmartBSPattern = + \ '\(' . + \ "\\\\[\"^'=v]{\\S}" . '\|' . + \ "\\\\[\"^'=]\\S" . '\|' . + \ '\\v \S' . '\|' . + \ "\\\\[\"^'=v]{\\\\[iI]}" . '\|' . + \ '\\v \\[iI]' . '\|' . + \ '\\q \S' . '\|' . + \ '\\-' . + \ '\)' . "$" + +" Pressing " (english double quote) will insert `` or '' by making an +" intelligent guess about whether we intended to open or close a quote. +" Default: 1 +TexLet g:Tex_SmartKeyQuote = 1 + +" Users of other languages might want to change the quote characters to suit +" their locale. These global values will be ignored if there are buffer-local +" versions, which may be set in the language-specific package files, such as +" ftplugin/latex-suite/packages/german +TexLet g:Tex_SmartQuoteOpen = "``" +TexLet g:Tex_SmartQuoteClose = "''" + +" Latex-suite maps the <space> key in such a way that $ characters are not +" broken across lines. +" NOTE: Setting this to 1 has the side-effect of making the 'tw' setting be 0. +" Default: +TexLet g:Tex_SmartKeySpace = 0 + +" Pressing ... (3 dots) results in \ldots outside math mode and \cdots in math +" mode. +" +" TODO: Make it more intelligent within math mode. For example +" $1+...+3$ should expand to $1+\cdots+n$, whereas $1,...,n$ should expand +" to $1,\ldots,n$. The amsmath package actually provides a command \dots +" which does this. Maybe use that if amsmath is detected? +" Default: 1 +TexLet g:Tex_SmartKeyDot = 1 + +" }}} +" Advanced Math: {{{ +" These mappings allow for fast inserting of math constructions +" brackets, better handling of space in math mode, unfortunately +" they use <M-> mappings which conflicts with some encodings. This is easy way +" of turning them off. +" +" <M-b> encloses the previous character in \mathbf{} +" <M-c> is polymorphic as follows: +" Insert mode: +" 1. If the previous character is a letter or number, then capitalize it and +" enclose it in \mathcal{} +" 2. otherwise insert \cite{} +" Visual Mode: +" 1. Enclose selection in \mathcal{} +" <M-l> is also polymorphic as follows: +" If the character before typing <M-l> is one of '([{|<q', then do the +" following: +" 1. (<M-l> \left(\right +" similarly for [, | +" {<M-l> \left\{\right\} +" 2. <<M-l> \langle\rangle +" 3. q<M-l> \lefteqn{} +" otherwise insert \label{} +" <M-i> inserts \item commands at the current cursor location depending on +" the surrounding environment. For example, inside itemize, it will +" insert a simple \item, but within a description, it will insert +" \item[<+label+>] etc. +" +" Default: 1 +TexLet g:Tex_AdvancedMath = 1 + +" }}} + +" }}} +" ============================================================================== +" TeX Completion: {{{ + +" Options for controlling the window sizes of the completion windows {{{ + +" The height of the window which contains the \label's (when completing a +" \ref) or bibtex entries (when completing a \cite). This option is used in +" the newer methods of completing \ref's and \cite's. +TexLet g:Tex_OutlineWindowHeight = 15 + +" Options for preview window for ref/cite completion. The next two options +" are used only when g:Tex_UseOutlineCompletion = 0 or +" g:Tex_UseCiteCompletionVer2 = 0, i.e, when we use a classic method of +" completing \refs and \cites. +" Height of cwindow +TexLet g:Tex_ViewerCwindowHeight = 5 +" Height of preview window +TexLet g:Tex_ViewerPreviewHeight = 10 + +" Options for explorer completion. +" Height of explorer window +TexLet g:Tex_ExplorerHeight = 10 + +" Directory for images. Read |latex-completion-explorer| before changing +TexLet g:Tex_ImageDir = '' + +" }}} +" Options for completing a \ref {{{ + +" Whether to use the "outline mode" for displaying the \label's while doing +" \ref completion. In this mode, each label is displayed within the +" document element it resides in. The entire thing is folded to ease +" navigation. Should be easier/faster than the classical mode. +TexLet g:Tex_UseOutlineCompletion = 1 + +" This option should be set via the .latexmain file. It should be a newline +" seperated list of files which make up all the "source" files in the +" current project. This enables latex-suite to skip the more complicated +" algorithm of finding the source files by recursively searching for +" \input'ed files from the |latex-master-file|. +" +" Only used when g:Tex_UseOutlineCompletion = 0. +TexLet g:Tex_ProjectSourceFiles = '' + +" Whether latex-suite simply searches for \\label's in all the .tex file +" found in the current directory or whether it will use a more complex +" algorithm. This is used only g:Tex_UseOutlineCompletion = 0 and +" g:Tex_ProjectSourceFiles = ''. +" See +" :help Tex_UseSimpleLabelSearch +" for more information +TexLet g:Tex_UseSimpleLabelSearch = 0 + +" }}} +" Options for completing a \cite'ation {{{ + +" If set to 1, then the newer way of presenting the bibtex entries is used. +" Instead of a |cwindow| showing just the keys and a synced |preview| +" window beneath, show a single window containing a nicely formatted list +" of bibtex entries. This should be faster and easier to use than the +" classic mode +TexLet g:Tex_UseCiteCompletionVer2 = 1 + +" This is a string which is displayed to the user when he wants to sort or +" filter the bibtex entries. This string also serves to define acronyms for +" the various fields of a bibtex entry. +TexLet g:Tex_BibFieldPrompt = + \ "Field acronyms: (`:let g:Tex_EchoBibFields = 0` to avoid this message)\n" . + \ " [t] title [a] author [b] booktitle \n" . + \ " [j] journal [y] year [p] bibtype \n" . + \ " (you can also enter the complete field name) \n" + +" Whether or not to display the string above to aid the user in choosing +" the field to filter/sort with. +TexLet g:Tex_EchoBibFields = 1 + +" A setting of this form defines the letter 'a' as standing for the field +" 'author'. Thus when the user types +" a ellington +" when asked to enter a filter, it is equivalent to the user specifying the +" filter +" author ellington +" TexLet g:Tex_BibAcronym_a = 'author' + +" Whether or not to use Jabref to complete citations +" See +" :help latex-suite-jabref +" for more infomration +TexLet g:Tex_UseJabref = 0 + +" whether or not searches for \cite's are cached. +TexLet g:Tex_RememberCiteSearch = 0 +" Paths to the bibliography files and custom packages. +TexLet g:Tex_BIBINPUTS = '' +TexLet g:Tex_TEXINPUTS = '' + +" }}} + +" }}} +" ============================================================================== +" Menus: set the kinds of menus which you would like to see. {{{ +" +" Setting this variable to zero will immediately disable _all_ menus. +" for finer control set this to 1 and then play with the other options. +" Default: 1 +TexLet g:Tex_Menus = 1 + +" The location of the main menu +TexLet g:Tex_MainMenuLocation = 80 + +" Math contains a large number of tex math elemets such as arrows, +" mathematical fonts (\mathrm), mathematical diacritics (\dot), binary +" relational operators etc. This menu compromises about 75% of the menus. +" Default: 1 +TexLet g:Tex_MathMenus = 1 + +" The following options control the "compactness" of the menus. +" +" Setting this option to 1 makes the Font, Counter and Dimensioning menus to +" be collected together into a single 'Tex-Elements' menu. Setting this to 0 +" creates seperate menus for each of them. +" Default: 1 +TexLet g:Tex_NestElementMenus = 1 + +" Sometimes when you are using a lot of packages with lots of options etc, +" then a lot of time might be spent at startup loading the menus. +" Setting the following variable to 0 will stop autoloading the packages menu. +" You can still goto TeX-Suite.Configure Menu and load this after startup. +" Default: 1 +TexLet g:Tex_PackagesMenu = 1 +" The following option will create the packages option within the TeX-Suite +" menu. +" Default: 1 +TexLet g:Tex_NestPackagesMenu = 1 + +" This is the prefix added to the menu names created by latex suite. Add a +" dot to the following option to nest the menus under the menu name before the +" dot. +" NOTE: With a '.' as the last character of the following setting, every +" single menu created by latex suite will be nested under the same menu. +" Default: 'TeX-' +TexLet g:Tex_MenuPrefix = 'TeX-' + +" Use utf-8 menus. There is plenty of math symbols in LaTeX. It is hard to +" remember them. You can display them with utf-8. Your system/GUI interface +" have to support utf-8. This addition is necessary for resetting 'encoding'. +TexLet g:Tex_UseUtfMenus = 0 + +if g:Tex_UseUtfMenus != 0 && has("gui_running") + set encoding=utf-8 +endif + +" }}} +" ============================================================================== +" Folding: latex-suite comes with 'fake' syntax folding. {{{ +" +" specifies whether the MakeTeXFolds() function will be defined. If this is +" set to zero, then esentially you have disabled all of latex-suite's folding +" functions. no maps for refreshing folds will be set up etc. +" NOTE: However, the function TexFoldTextFunction() is still avaiable +" and 'foldexpr' is set to point to it. This is so you can continue +" using another folding scheme but still use the fold text function. +TexLet g:Tex_Folding = 1 + +" specifies whether a latex file is automatically folded up when opened. +" Setting this to zero means that a file is not folded up as soon as its +" opened. +" NOTE: the MakeTeXFolds() function will still be available (unless disabled +" by g:Tex_Folding), so you can do <F6> or \rf to refresh/create folds. +TexLet g:Tex_AutoFolding = 1 + +" }}} +" ============================================================================== +" Taglist: Support for taglist.vim {{{ +" +" LaTeX-Suite offers now support for taglist.vim, the most popular Vim +" interface for ctags. You should use ctags version >= 5.0 and taglist >= 3.0. +TexLet g:Tex_TaglistSupport = 1 + +" This option turns on definition of tags for LaTeX. +" NOTE: In taglist window you may see duplicate entries for the same tag. It +" means some definitions are repeated somewhere else. You can turn off +" internal definitions or remove external (read ctags description +" where). +TexLet g:Tex_InternalTagsDefinitions = 1 + +" }}} +" ============================================================================== diff --git a/.vim/ftplugin/latex-suite/texviewer.vim b/.vim/ftplugin/latex-suite/texviewer.vim new file mode 100644 index 0000000..4dc8861 --- /dev/null +++ b/.vim/ftplugin/latex-suite/texviewer.vim @@ -0,0 +1,1052 @@ +" ============================================================================ +" File: texviewer.vim +" Author: Mikolaj Machowski +" Created: Sun Jan 26 06:00 PM 2003 +" Description: make a viewer for various purposes: \cite{, \ref{ +" License: Vim Charityware License +" Part of vim-latexSuite: http://vim-latex.sourceforge.net +" CVS: $Id: texviewer.vim 1004 2006-03-25 08:40:15Z srinathava $ +" ============================================================================ +" Tex_SetTexViewerMaps: sets maps for this ftplugin {{{ +function! Tex_SetTexViewerMaps() + inoremap <silent> <Plug>Tex_Completion <Esc>:call Tex_Complete("default","text")<CR> + if !hasmapto('<Plug>Tex_Completion', 'i') + if has('gui_running') + imap <buffer> <silent> <F9> <Plug>Tex_Completion + else + imap <buffer> <F9> <Plug>Tex_Completion + endif + endif +endfunction + +augroup LatexSuite + au LatexSuite User LatexSuiteFileType + \ call Tex_Debug('texviewer.vim: Catching LatexSuiteFileType event', 'view') | + \ call Tex_SetTexViewerMaps() +augroup END + +command -nargs=1 TLook call Tex_Complete(<q-args>, 'tex') +command -nargs=1 TLookAll call Tex_Complete(<q-args>, 'all') +command -nargs=1 TLookBib call Tex_Complete(<q-args>, 'bib') + +" }}} + +" ============================================================================== +" Main completion function +" ============================================================================== +" Tex_Complete: main function {{{ +" Description: +function! Tex_Complete(what, where) + + " Get info about current window and position of cursor in file + let s:winnum = winnr() + + " Change to the directory of the file being edited before running all the + " :grep commands. We will change back to the original directory after we + " finish with the grep. + let s:origdir = getcwd() + cd %:p:h + + let s:pos = line('.').' | normal! '.virtcol('.').'|' + + unlet! s:type + unlet! s:typeoption + + if Tex_GetVarValue('Tex_WriteBeforeCompletion') == 1 + wall + endif + + if a:where == "text" + " What to do after <F9> depending on context + let s:curfile = expand("%:p") + let s:curline = strpart(getline('.'), 0, col('.')) + let s:prefix = matchstr(s:curline, '.*{\zs.\{-}\(}\|$\)') + " a command is of the type + " \psfig[option=value]{figure=} + " Thus + " s:curline = '\psfig[option=value]{figure=' + " (with possibly some junk before \psfig) + " from which we need to extract + " s:type = 'psfig' + " s:typeoption = '[option=value]' + let pattern = '.*\\\(\w\{-}\)\(\[.\{-}\]\)\?{\(\S\+\)\?$' + if s:curline =~ pattern + let s:type = substitute(s:curline, pattern, '\1', 'e') + let s:typeoption = substitute(s:curline, pattern, '\2', 'e') + call Tex_Debug('Tex_Complete: s:type = '.s:type.', typeoption = '.s:typeoption, 'view') + endif + + if exists("s:type") && s:type =~ 'ref' + if Tex_GetVarValue('Tex_UseOutlineCompletion') == 1 + call Tex_Debug("Tex_Complete: using outline search method", "view") + call Tex_StartOutlineCompletion() + + elseif Tex_GetVarValue('Tex_UseSimpleLabelSearch') == 1 + call Tex_Debug("Tex_Complete: searching for \\labels in all .tex files in the present directory", "view") + call Tex_Debug("Tex_Complete: silent! grep! ".Tex_EscapeForGrep('\\label{'.s:prefix)." *.tex", 'view') + call Tex_Grep('\\label{'.s:prefix, '*.tex') + call <SID>Tex_SetupCWindow() + + elseif Tex_GetVarValue('Tex_ProjectSourceFiles') != '' + call Tex_Debug('Tex_Complete: searching for \\labels in all Tex_ProjectSourceFiles', 'view') + call Tex_CD(Tex_GetMainFileName(':p:h')) + call Tex_Grep('\\label{'.s:prefix, Tex_GetVarValue('Tex_ProjectSourceFiles')) + call <SID>Tex_SetupCWindow() + + else + call Tex_Debug("Tex_Complete: calling Tex_GrepHelper", "view") + silent! grep! ____HIGHLY_IMPROBABLE___ % + call Tex_GrepHelper(s:prefix, 'label') + call <SID>Tex_SetupCWindow() + endif + + redraw! + + elseif exists("s:type") && s:type =~ 'cite' + + let s:prefix = matchstr(s:prefix, '\([^,]\+,\)*\zs\([^,]\+\)\ze$') + call Tex_Debug(":Tex_Complete: using s:prefix = ".s:prefix, "view") + + if has('python') && Tex_GetVarValue('Tex_UsePython') + \ && Tex_GetVarValue('Tex_UseCiteCompletionVer2') == 1 + + call Tex_CD(s:origdir) + silent! call Tex_StartCiteCompletion() + + elseif Tex_GetVarValue('Tex_UseJabref') == 1 + + call Tex_CD(s:origdir) + let g:Remote_WaitingForCite = 1 + let citation = input('Enter citation from jabref (<enter> to leave blank): ') + let g:Remote_WaitingForCite = 0 + call Tex_CompleteWord(citation) + + else + " grep! nothing % + " does _not_ clear the search history contrary to what the + " help-docs say. This was expected. So use something improbable. + " TODO: Is there a way to clear the search-history w/o making a + " useless, inefficient search? + silent! grep! ____HIGHLY_IMPROBABLE___ % + if g:Tex_RememberCiteSearch && exists('s:citeSearchHistory') + call <SID>Tex_SetupCWindow(s:citeSearchHistory) + else + call Tex_GrepHelper(s:prefix, 'bib') + redraw! + call <SID>Tex_SetupCWindow() + endif + if g:Tex_RememberCiteSearch && &ft == 'qf' + let _a = @a + silent! normal! ggVG"ay + let s:citeSearchHistory = @a + let @a = _a + endif + endif + + elseif exists("s:type") && (s:type =~ 'includegraphics' || s:type == 'psfig') + call Tex_SetupFileCompletion( + \ '', + \ '^\.\\|\.tex$\\|\.bib$\\|\.bbl$\\|\.zip$\\|\.gz$', + \ 'noext') + + elseif exists("s:type") && s:type == 'bibliography' + call Tex_SetupFileCompletion( + \ '\.b..$', + \ '', + \ 'noext') + + elseif exists("s:type") && s:type =~ 'include\(only\)\=' + call Tex_SetupFileCompletion( + \ '\.t..$', + \ '', + \ 'noext') + + elseif exists("s:type") && s:type == 'input' + call Tex_SetupFileCompletion( + \ '', + \ '', + \ 'ext') + + elseif exists('s:type') && exists("g:Tex_completion_".s:type) + call <SID>Tex_CompleteRefCiteCustom('plugin_'.s:type) + + else + let s:word = expand('<cword>') + if s:word == '' + if col('.') == strlen(getline('.')) + startinsert! + return + else + normal! l + startinsert + return + endif + endif + call Tex_Debug("silent! grep! ".Tex_EscapeForGrep('\<'.s:word.'\>')." *.tex", 'view') + call Tex_Grep('\<'.s:word.'\>', '*.tex') + + call <SID>Tex_SetupCWindow() + endif + + elseif a:where == 'tex' + " Process :TLook command + call Tex_Grep(a:what, "*.tex") + call <SID>Tex_SetupCWindow() + + elseif a:where == 'bib' + " Process :TLookBib command + call Tex_Grep(a:what, "*.bib") + call Tex_Grepadd(a:what, "*.bbl") + call <SID>Tex_SetupCWindow() + + elseif a:where == 'all' + " Process :TLookAll command + call Tex_Grep(a:what, "*") + call <SID>Tex_SetupCWindow() + endif + +endfunction +" }}} +" Tex_CompleteWord: inserts a word at the chosen location {{{ +" Description: This function is meant to be called when the user press +" ``<enter>`` in one of the [Error List] windows which shows the list of +" matches. completeword is the rest of the word which needs to be inserted. +function! Tex_CompleteWord(completeword) + exe s:pos + + " Complete word, check if add closing } + exe 'normal! a'.a:completeword."\<Esc>" + + if getline('.')[col('.')-1] !~ '{' && getline('.')[col('.')] !~ '}' + exe "normal! a}\<Esc>" + endif + + " Return to Insert mode + if col('.') == strlen(getline('.')) + startinsert! + else + normal! l + startinsert + endif +endfunction " }}} + +" ============================================================================== +" File name completion helper functons +" ============================================================================== +" Tex_SetupFileCompletion: {{{ +" Description: +function! Tex_SetupFileCompletion(accept, reject, ext) + call FB_SetVar('FB_AllowRegexp', a:accept) + call FB_SetVar('FB_RejectRegexp', a:reject) + call FB_SetVar('FB_CallBackFunction', 'Tex_CompleteFileName') + call FB_SetVar('FB_CallBackFunctionArgs', '"'.a:ext.'"') + + call FB_OpenFileBrowser('.') +endfunction " }}} +" Tex_CompleteFileName: {{{ +" Description: +function! Tex_CompleteFileName(filename, ext) + call Tex_Debug('+Tex_CompleteFileName: getting filename '.a:filename, 'view') + + if a:ext == 'noext' + let completeword = fnamemodify(a:filename, ':r') + endif + let completeword = Tex_RelPath(completeword, Tex_GetMainFileName(':p:h')) + + call Tex_Debug(":Tex_CompleteFileName: completing with ".completeword, "view") + call Tex_CompleteWord(completeword) +endfunction " }}} +" Tex_Common: common part of strings {{{ +function! s:Tex_Common(path1, path2) + " Assume the caller handles 'ignorecase' + if a:path1 == a:path2 + return a:path1 + endif + let n = 0 + while a:path1[n] == a:path2[n] + let n = n+1 + endwhile + return strpart(a:path1, 0, n) +endfunction " }}} +" Tex_NormalizePath: {{{ +" Description: +function! Tex_NormalizePath(path) + let retpath = a:path + if has("win32") || has("win16") || has("dos32") || has("dos16") + let retpath = substitute(retpath, '\\', '/', 'ge') + endif + if isdirectory(retpath) && retpath !~ '/$' + let retpath = retpath.'/' + endif + return retpath +endfunction " }}} +" Tex_RelPath: ultimate file name {{{ +function! Tex_RelPath(explfilename,texfilename) + let path1 = Tex_NormalizePath(a:explfilename) + let path2 = Tex_NormalizePath(a:texfilename) + + let n = matchend(<SID>Tex_Common(path1, path2), '.*/') + let path1 = strpart(path1, n) + let path2 = strpart(path2, n) + if path2 !~ '/' + let subrelpath = '' + else + let subrelpath = substitute(path2, '[^/]\{-}/', '../', 'ge') + let subrelpath = substitute(subrelpath, '[^/]*$', '', 'ge') + endif + let relpath = subrelpath.path1 + return escape(Tex_NormalizePath(relpath), ' ') +endfunction " }}} + +" ============================================================================== +" Helper functions for dealing with the 'quickfix' and 'preview' windows. +" ============================================================================== +" Tex_SetupCWindow: set maps and local settings for cwindow {{{ +" Description: Set local maps jkJKq<cr> for cwindow. Also size and basic +" settings +" +function! s:Tex_SetupCWindow(...) + call Tex_Debug('+Tex_SetupCWindow', 'view') + cclose + exe 'copen '. g:Tex_ViewerCwindowHeight + " If called with an argument, it means we want to re-use some search + " history from last time. Therefore, just paste it here and proceed. + if a:0 == 1 + set modifiable + % d _ + silent! 0put!=a:1 + $ d _ + endif + setlocal nonumber + setlocal nowrap + + let s:scrollOffVal = &scrolloff + call <SID>Tex_SyncPreviewWindow() + + " If everything went well, then we should be situated in the quickfix + " window. If there were problems, (no matches etc), then we will not be. + " Therefore return. + if &ft != 'qf' + call Tex_Debug('not in quickfix window, quitting', 'view') + return + endif + + nnoremap <buffer> <silent> j j:call <SID>Tex_SyncPreviewWindow()<CR> + nnoremap <buffer> <silent> k k:call <SID>Tex_SyncPreviewWindow()<CR> + nnoremap <buffer> <silent> <up> <up>:call <SID>Tex_SyncPreviewWindow()<CR> + nnoremap <buffer> <silent> <down> <down>:call <SID>Tex_SyncPreviewWindow()<CR> + + " Change behaviour of <cr> only for 'ref' and 'cite' context. + if exists("s:type") && s:type =~ 'ref\|cite' + exec 'nnoremap <buffer> <silent> <cr> ' + \ .':set scrolloff='.s:scrollOffVal.'<CR>' + \ .':cd '.s:origdir.'<CR>' + \ .':silent! call <SID>Tex_CompleteRefCiteCustom("'.s:type.'")<CR>' + + else + " In other contexts jump to place described in cwindow and close small + " windows + exec 'nnoremap <buffer> <silent> <cr> ' + \ .':set scrolloff='.s:scrollOffVal.'<CR>' + \ .':cd '.s:origdir.'<CR>' + \ .':call <SID>Tex_GoToLocation()<cr>' + + endif + + " Scroll the preview window while in the quickfix window + nnoremap <buffer> <silent> J :wincmd j<cr><c-e>:wincmd k<cr> + nnoremap <buffer> <silent> K :wincmd j<cr><c-y>:wincmd k<cr> + + " Exit the quickfix window without doing anything. + exe 'nnoremap <buffer> <silent> q ' + \ .':set scrolloff='.s:scrollOffVal.'<CR>' + \ .':cd '.s:origdir.'<CR>' + \ .':call Tex_CloseSmallWindows()<CR>' + +endfunction " }}} +" Tex_CompleteRefCiteCustom: complete/insert name for current item {{{ +" Description: handle completion of items depending on current context +" +function! s:Tex_CompleteRefCiteCustom(type) + + if a:type =~ 'cite' + if getline('.') =~ '\\bibitem{' + let bibkey = matchstr(getline('.'), '\\bibitem{\zs.\{-}\ze}') + else + let bibkey = matchstr(getline('.'), '{\zs.\{-}\ze\(,\|$\)') + endif + let completeword = strpart(bibkey, strlen(s:prefix)) + + elseif a:type =~ 'ref' + let label = matchstr(getline('.'), '\\label{\zs.\{-}\ze}') + let completeword = strpart(label, strlen(s:prefix)) + + elseif a:type =~ '^plugin_' + let type = substitute(a:type, '^plugin_', '', '') + let completeword = <SID>Tex_DoCompletion(type) + + endif + + call Tex_CloseSmallWindows() + call Tex_Debug(":Tex_CompleteRefCiteCustom: completing with ".completeword, "view") + call Tex_CompleteWord(completeword) +endfunction " }}} +" Tex_SyncPreviewWindow: synchronize quickfix and preview window {{{ +" Description: Usually quickfix engine takes care about most of these things +" but we discard it for better control of events. +" +function! s:Tex_SyncPreviewWindow() + call Tex_Debug('+Tex_SyncPreviewWindow', 'view') + + let viewfile = matchstr(getline('.'), '^\f*\ze|\d') + let viewline = matchstr(getline('.'), '|\zs\d\+\ze') + + " Hilight current line in cwindow + " Normally hightlighting is done with quickfix engine but we use something + " different and have to do it separately + syntax clear + runtime syntax/qf.vim + exe 'syn match vTodo /\%'. line('.') .'l.*/' + hi link vTodo Todo + + " Close preview window and open it again in new place + pclose + exe 'silent! bot pedit +'.viewline.' '.viewfile + + " Vanilla 6.1 has bug. This additional setting of cwindow height prevents + " resizing of this window + exe g:Tex_ViewerCwindowHeight.' wincmd _' + + " Handle situation if there is no item beginning with s:prefix. + " Unfortunately, because we know it late we have to close everything and + " return as in complete process + if v:errmsg =~ 'E32\>' + exe s:winnum.' wincmd w' + pclose! + cclose + if exists("s:prefix") + echomsg 'No bibkey, label or word beginning with "'.s:prefix.'"' + endif + if col('.') == strlen(getline('.')) + startinsert! + else + normal! l + startinsert + endif + let v:errmsg = '' + call Tex_Debug('Tex_SyncPreviewWindow: got error E32, no matches found, quitting', 'view') + return 0 + endif + + " Move to preview window. Really is it under cwindow? + wincmd j + + " Settings of preview window + exe g:Tex_ViewerPreviewHeight.' wincmd _' + setlocal nofoldenable + + if exists('s:type') && s:type =~ 'cite' + " In cite context place bibkey at the top of preview window. + setlocal scrolloff=0 + normal! zt + else + " In other contexts in the middle. Highlight this line? + setlocal scrolloff=100 + normal! z. + endif + + " Return to cwindow + wincmd p + +endfunction " }}} +" Tex_CloseSmallWindows: {{{ +" Description: +" +function! Tex_CloseSmallWindows() + exe s:winnum.' wincmd w' + pclose! + cclose + exe s:pos +endfunction " }}} +" Tex_GoToLocation: Go to chosen location {{{ +" Description: Get number of current line and go to this number +" +function! s:Tex_GoToLocation() + pclose! + let errmsg = v:errmsg + let v:errmsg = '' + exe 'silent! cc ' . line('.') + " If the current buffer is modified, then split + if v:errmsg =~ '^E37:' + split + exe 'silent! cc ' . line('.') + endif + cclose + let v:errmsg = errmsg +endfunction " }}} + +" ============================================================================== +" Functions for finding \\label's or \\bibitem's in the main file. +" ============================================================================== +" Tex_GrepHelper: grep main filename for \\bibitem's or \\label's {{{ +" Description: +function! Tex_GrepHelper(prefix, what) + let _path = &path + let _suffixesadd = &suffixesadd + let _hidden = &hidden + + let mainfname = Tex_GetMainFileName(':p') + " If we are already editing the file, then use :split without any + " arguments so it works even if the file is modified. + " FIXME: If mainfname is being presently edited in another window and + " is 'modified', then the second split statement will not work. + " We will need to travel to that window and back. + if mainfname == expand('%:p') + split + else + exec 'split '.Tex_EscapeSpaces(mainfname) + endif + + let pos = line('.').'| normal! '.virtcol('.').'|' + if a:what =~ 'bib' + call Tex_ScanFileForCite(a:prefix) + else + call Tex_ScanFileForLabels(a:prefix) + endif + exec pos + + q + let &path = _path + let &suffixesadd = _suffixesadd + +endfunction " }}} +" Tex_ScanFileForCite: search for \bibitem's in .bib or .bbl or tex files {{{ +" Description: +" Search for bibliographic entries in the presently edited file in the +" following manner: +" 1. First see if the file has a \bibliography command. +" If YES: +" 1. If a .bib file corresponding to the \bibliography command can be +" found, then search for '@.*'.a:prefix inside it. +" 2. Otherwise, if a .bbl file corresponding to the \bibliography command +" can be found, then search for '\bibitem'.a:prefix inside it. +" 2. Next see if the file has a \thebibliography environment +" If YES: +" 1. Search for '\bibitem'.a:prefix in this file. +" +" If neither a \bibliography or \begin{thebibliography} are found, then repeat +" steps 1 and 2 for every file \input'ed into this file. Abort any searching +" as soon as the first \bibliography or \begin{thebibliography} is found. +function! Tex_ScanFileForCite(prefix) + call Tex_Debug('+Tex_ScanFileForCite: searching for bibkeys in '.bufname('%').' (buffer #'.bufnr('%').')', 'view') + let presBufNum = bufnr('%') + + let foundCiteFile = 0 + " First find out if this file has a \bibliography command in it. If so, + " assume that this is the only file in the project which defines a + " bibliography. + if search('\\\(no\)\?bibliography{', 'w') + call Tex_Debug('Tex_ScanFileForCite: found bibliography command in '.bufname('%'), 'view') + " convey that we have found a bibliography command. we do not need to + " proceed any further. + let foundCiteFile = 1 + + " extract the bibliography filenames from the command. + let bibnames = matchstr(getline('.'), '\\\(no\)\?bibliography{\zs.\{-}\ze}') + let bibnames = substitute(bibnames, '\s', '', 'g') + + call Tex_Debug('trying to search through ['.bibnames.']', 'view') + + let &path = '.,'.g:Tex_BIBINPUTS + + let i = 1 + while 1 + let bibname = Tex_Strntok(bibnames, ',', i) + if bibname == '' + break + endif + + " first try to find if a .bib file exists. If so do not search in + " the corresponding .bbl file. (because the .bbl file will most + " probly be generated automatically from the .bib file with + " bibtex). + + let fname = Tex_FindFile(bibname, '.,'.g:Tex_BIBINPUTS, '.bib') + if fname != '' + call Tex_Debug('finding .bib file ['.bufname('%').']', 'view') + exec 'split '.Tex_EscapeSpaces(fname) + call Tex_Grepadd('@.*{'.a:prefix, "%") + q + else + let fname = Tex_FindFile(bibname, '.,'.g:Tex_BIBINPUTS, '.bbl') + if fname != '' + exec 'split '.Tex_EscapeSpaces(fname) + call Tex_Debug('finding .bbl file ['.bufname('.').']', 'view') + call Tex_Grepadd('\\bibitem{'.a:prefix, "%") + q + endif + endif + + let i = i + 1 + endwhile + + if foundCiteFile + return 1 + endif + endif + + " If we have a thebibliography environment, then again assume that this is + " the only file which defines the bib-keys. Aand convey this information + " upwards by returning 1. + if search('^\s*\\begin{thebibliography}', 'w') + call Tex_Debug('got a thebibliography environment in '.bufname('%'), 'view') + + let foundCiteFile = 1 + + split + lcd %:p:h + call Tex_Debug("silent! grepadd! ".Tex_EscapeForGrep('\\bibitem{'.a:prefix)." %", 'view') + call Tex_Grepadd('\\bibitem{'.a:prefix, "%") + q + + return 1 + endif + + " If we have not found any \bibliography or \thebibliography environment + " in this file, search for these environments in all the files which this + " file includes. + + exec 0 + let wrap = 'w' + while search('^\s*\\\(input\|include\)', wrap) + let wrap = 'W' + + let filename = matchstr(getline('.'), '\\\(input\|include\){\zs.\{-}\ze}') + + let foundfile = Tex_FindFile(filename, '.,'.g:Tex_TEXINPUTS, '.tex') + if foundfile != '' + exec 'split '.Tex_EscapeSpaces(foundfile) + call Tex_Debug('scanning recursively in ['.foundfile.']', 'view') + let foundCiteFile = Tex_ScanFileForCite(a:prefix) + q + endif + + if foundCiteFile + return 1 + endif + endwhile + + + return 0 +endfunction " }}} +" Tex_ScanFileForLabels: greps present file and included files for \\label's {{{ +" Description: +" Grep the presently edited file for \\label's. If the present file \include's +" or \input's other files, then recursively scan those as well, i.e we support +" arbitrary levels of \input'ed-ness. +function! Tex_ScanFileForLabels(prefix) + call Tex_Debug("+Tex_ScanFileForLabels: grepping in file [".bufname('%')."]", "view") + + lcd %:p:h + call Tex_Grepadd('\\label{'.a:prefix, "%") + + " Then recursively grep for all \include'd or \input'ed files. + exec 0 + let wrap = 'w' + while search('^\s*\\\(input\|include\)', wrap) + let wrap = 'W' + + let filename = matchstr(getline('.'), '\\\(input\|include\){\zs.\{-}\ze}') + let foundfile = Tex_FindFile(filename, '.,'.Tex_TEXINPUTS, '.tex') + if foundfile != '' + exec 'split '.Tex_EscapeSpaces(foundfile) + call Tex_Debug('Tex_ScanFileForLabels: scanning recursively in ['.foundfile.']', 'view') + call Tex_ScanFileForLabels(a:prefix) + q + endif + endwhile + +endfunction " }}} + +" ============================================================================== +" Functions for custom command completion +" ============================================================================== +" Tex_completion_{var}: similar variables can be set in package files {{{ +let g:Tex_completion_bibliographystyle = 'abbr,alpha,plain,unsrt' +let g:Tex_completion_addtocontents = 'lof}{,lot}{,toc}{' +let g:Tex_completion_addcontentsline = 'lof}{figure}{,lot}{table}{,toc}{chapter}{,toc}{part}{,'. + \ 'toc}{section}{,toc}{subsection}{,toc}{paragraph}{,'. + \ 'toc}{subparagraph}{' +" }}} +" Tex_PromptForCompletion: prompts for a completion {{{ +" Description: +function! s:Tex_PromptForCompletion(texcommand,ask) + + let common_completion_prompt = + \ Tex_CreatePrompt(g:Tex_completion_{a:texcommand}, 2, ',') . "\n" . + \ 'Enter number or completion: ' + + let inp = input(a:ask."\n".common_completion_prompt) + if inp =~ '^[0-9]\+$' + let completion = Tex_Strntok(g:Tex_completion_{a:texcommand}, ',', inp) + else + let completion = inp + endif + + return completion +endfunction " }}} +" Tex_DoCompletion: fast insertion of completion {{{ +" Description: +" +function! s:Tex_DoCompletion(texcommand) + let completion = <SID>Tex_PromptForCompletion(a:texcommand, 'Choose a completion to insert: ') + if completion != '' + return completion + else + return '' + endif +endfunction " }}} + +" ============================================================================== +" Functions for presenting an outlined version for completion +" ============================================================================== +" Tex_StartOutlineCompletion: sets up an outline window {{{ + +" get the place where this plugin resides for setting cpt and dict options. +" these lines need to be outside the function. +let s:path = expand('<sfile>:p:h') +if has('python') && Tex_GetVarValue('Tex_UsePython') + python import sys, re + exec "python sys.path += [r'". s:path . "']" + python import outline +endif + +function! Tex_StartOutlineCompletion() + let mainfname = Tex_GetMainFileName(':p') + + " open the buffer + let _report = &report + let _cmdheight=&cmdheight + let _lazyredraw = &lazyredraw + set report=1000 + set cmdheight=1 + set lazyredraw + + bot split __OUTLINE__ + exec Tex_GetVarValue('Tex_OutlineWindowHeight', 15).' wincmd _' + + setlocal modifiable + setlocal noswapfile + setlocal buftype=nowrite + setlocal bufhidden=delete + setlocal nowrap + setlocal foldmethod=marker + setlocal foldmarker=<<<,>>> + + " delete everything in it to the blackhole + % d _ + + if has('python') && Tex_GetVarValue('Tex_UsePython') + exec 'python retval = outline.main(' + \. 'r"' . fnamemodify(mainfname, ':p') . '", ' + \. 'r"' . s:prefix . '")' + + " transfer variable from python to a local variable. + python vim.command("""let retval = "%s" """ % re.sub(r'"|\\', r'\\\g<0>', retval)) + + 0put!=retval + else + exec '0r!'.s:path.'/outline.py '.mainfname.' '.s:prefix + endif + + 0 + + call Tex_SetupOutlineSyntax() + + exec 'nnoremap <buffer> <cr> ' + \ .':cd '.s:origdir.'<CR>' + \ .':call Tex_FinishOutlineCompletion()<CR>' + exec 'nnoremap <buffer> q ' + \ .':cd '.s:origdir.'<CR>' + \ .':close<CR>' + + " once the buffer is initialized, go back to the original settings. + setlocal nomodifiable + setlocal nomodified + let &report = _report + let &cmdheight = _cmdheight + let &lazyredraw = _lazyredraw + +endfunction " }}} +" Tex_SetupOutlineSyntax: sets up the syntax items for the outline {{{ +" Description: +function! Tex_SetupOutlineSyntax() + syn match outlineFileName "<\f\+>$" contained + syn match foldMarkers "<<<\d$" contained + syn match firstSemiColon '^:' contained + syn match firstAngle '^>' contained + + syn match sectionNames '\(\d\.\)\+ .*' contains=foldMarkers + syn match previousLine '^:.*' contains=firstSemiColon + syn match labelLine '^>.*' contains=firstAngle,outlineFileName + + hi def link outlineFileName Ignore + hi def link foldMarkers Ignore + hi def link firstSemiColon Ignore + hi def link firstAngle Ignore + + hi def link sectionNames Type + hi def link previousLine Special + hi def link labelLine Comment +endfunction " }}} +" Tex_FinishOutlineCompletion: inserts the reference back in the text {{{ +function! Tex_FinishOutlineCompletion() + if getline('.') !~ '^[>:]' + return + endif + + if getline('.') =~ '^>' + let ref_complete = matchstr(getline('.'), '^>\s\+\zs\S\+\ze') + elseif getline('.') =~ '^:' + let ref_complete = matchstr(getline(line('.')-1), '^>\s\+\zs\S\+\ze') + endif + + let ref_remaining = strpart(ref_complete, strlen(s:prefix)) + close + call Tex_CompleteWord(ref_remaining) +endfunction " }}} + +" ============================================================================== +" Functions for presenting a nicer list of bibtex entries +" ============================================================================== +" Tex_FindBibFiles: finds all .bib files used by the main file {{{ +" Description: +function! Tex_FindBibFiles() + + let mainfname = Tex_GetMainFileName(':p') + wincmd n + exec 'silent! e '.mainfname + + if search('\\\(no\)\?bibliography{', 'w') + + call Tex_Debug('Tex_FindBibFiles: found bibliography command in '.bufname('%'), 'view') + + " extract the bibliography filenames from the command. + let bibnames = matchstr(getline('.'), '\\\(no\)\?bibliography{\zs.\{-}\ze}') + let bibnames = substitute(bibnames, '\s', '', 'g') + + call Tex_Debug(':Tex_FindBibFiles: trying to search through ['.bibnames.']', 'view') + + let bibfiles = '' + let i = 1 + while 1 + let bibname = Tex_Strntok(bibnames, ',', i) + if bibname == '' + break + endif + let fname = Tex_FindFile(bibname, '.,'.g:Tex_BIBINPUTS, '.bib') + if fname != '' + let bibfiles = bibfiles.fname."\n" + endif + let i = i + 1 + endwhile + + call Tex_Debug(":Tex_FindBibFiles: returning [".bibfiles."]", "view") + q + return bibfiles + + else + q + return '' + endif + +endfunction " }}} +" Tex_StartBibtexOutline: sets up an outline window {{{ + +" get the place where this plugin resides for setting cpt and dict options. +" these lines need to be outside the function. +if has('python') && Tex_GetVarValue('Tex_UsePython') + python import sys, re + exec "python sys.path += [r'". s:path . "']" + python import bibtools +endif + +function! Tex_StartCiteCompletion() + let bibfiles = Tex_FindBibFiles() + if bibfiles !~ '\S' + echohl WarningMsg + echomsg 'No bibfiles found! Sorry' + echohl None + return + endif + + bot split __OUTLINE__ + exec Tex_GetVarValue('Tex_OutlineWindowHeight', 15).' wincmd _' + + exec 'python Tex_BibFile = bibtools.BibFile("""'.bibfiles.'""")' + exec 'python Tex_BibFile.addfilter("key ^'.s:prefix.'")' + call Tex_DisplayBibList() + + nnoremap <Plug>Tex_JumpToNextBibEntry :call search('^\S.*\]$', 'W')<CR>:call Tex_EchoBibShortcuts()<CR>z. + nnoremap <Plug>Tex_JumpToPrevBibEntry :call search('^\S.*\]$', 'bW')<CR>:call Tex_EchoBibShortcuts()<CR>z. + nnoremap <Plug>Tex_FilterBibEntries :call Tex_HandleBibShortcuts('filter')<CR> + nnoremap <Plug>Tex_RemoveBibFilters :call Tex_HandleBibShortcuts('remove_filters')<CR> + nnoremap <Plug>Tex_SortBibEntries :call Tex_HandleBibShortcuts('sort')<CR> + nnoremap <Plug>Tex_CompleteCiteEntry :call Tex_CompleteCiteEntry()<CR> + + nmap <buffer> <silent> n <Plug>Tex_JumpToNextBibEntry + nmap <buffer> <silent> p <Plug>Tex_JumpToPrevBibEntry + nmap <buffer> <silent> f <Plug>Tex_FilterBibEntries + nmap <buffer> <silent> s <Plug>Tex_SortBibEntries + nmap <buffer> <silent> a <Plug>Tex_RemoveBibFilters + nmap <buffer> <silent> q :close<CR> + nmap <buffer> <silent> <CR> <Plug>Tex_CompleteCiteEntry + +endfunction " }}} +" Tex_DisplayBibList: displays the list of bibtex entries {{{ +" Description: +function! Tex_DisplayBibList() + " open the buffer + let _report = &report + let _cmdheight=&cmdheight + let _lazyredraw = &lazyredraw + set report=1000 + set cmdheight=1 + set lazyredraw + + setlocal modifiable + setlocal noswapfile + setlocal buftype=nowrite + setlocal bufhidden=delete + setlocal nowrap + setlocal foldmethod=marker + setlocal foldmarker=<<<,>>> + + + " delete everything in it to the blackhole + % d _ + + exec 'python Tex_CurBuf = vim.current.buffer' + exec 'python Tex_CurBuf[:] = str(Tex_BibFile).splitlines()' + + call Tex_SetupBibSyntax() + + 0 + call Tex_EchoBibShortcuts() + + " once the buffer is initialized, go back to the original settings. + setlocal nomodifiable + setlocal nomodified + let &report = _report + let &cmdheight = _cmdheight + let &lazyredraw = _lazyredraw + +endfunction " }}} +" Tex_EchoBibShortcuts: echos all the shortcuts in the status line {{{ +" Description: +function! Tex_EchoBibShortcuts() + echomsg '(a) all (f) filter (s) sort (n) next (p) previous (q) quit (<CR>) choose' +endfunction " }}} +" Tex_SetupBibSyntax: sets up the syntax items for the outline {{{ +" Description: +function! Tex_SetupBibSyntax() + syn match BibTitleHeader "^TI" contained + syn match BibAuthorHeader "^AU" contained + syn match BibLocationHeader "^IN" contained + syn match BibMiscHeader "^MI" contained + + syn match BibKeyLine '^\S.*\]$' contains=BibKey + syn match BibTitle "^TI .*" contains=BibTitleHeader + syn match BibAuthor "^AU .*" contains=BibAuthorHeader + syn match BibLocation "^IN .*" contains=BibLocationHeader + syn match BibMisc "^MI .*" contains=BibMiscHeader + + hi def link BibTitleHeader Ignore + hi def link BibAuthorHeader Ignore + hi def link BibLocationHeader Ignore + hi def link BibMiscHeader Ignore + + hi def link BibKeyLine Visual + hi def link BibTitle Type + hi def link BibAuthor Special + hi def link BibLocation Comment + hi def link BibMisc Comment +endfunction " }}} +" Tex_HandleBibShortcuts: handles user keypresses {{{ +" Description: +function! Tex_HandleBibShortcuts(command) + + if a:command == 'filter' || a:command == 'sort' + + let fieldprompt = + \ "Field acronyms: (`:let g:Tex_EchoBibFields = 0` to avoid this message)\n" . + \ " [t] title [a] author [b] booktitle \n" . + \ " [j] journal [y] year [p] bibtype \n" . + \ " (you can also enter the complete field name) \n" + + let fieldprompt = Tex_GetVarValue('Tex_BibFieldPrompt', fieldprompt) + + if Tex_GetVarValue('Tex_EchoBibFields', 1) == 1 + echo fieldprompt + endif + + let inp = input('Enter '.a:command.' criterion [field<space>value]: ') + if inp !~ '\v^\S+\s+\S.*' + echohl WarningMsg + echomsg 'Invalid filter specification. Use "field<space>value"' + echohl None + return + endif + + if inp != '' + " If the field is specified as a single character, then replace + " it with the corresponding 'full form'. + if inp =~ '^[a-z]\>' + if Tex_GetVarValue('Tex_BibAcronym_'.inp[0]) != '' + let inp = substitute(inp, '.', Tex_GetVarValue('Tex_BibAcronym_'.inp[0]), '') + elseif fieldprompt =~ '\['.inp[0].'\]' + let full = matchstr(fieldprompt, '\['.inp[0].'\] \zs\w\+\ze') + let inp = substitute(inp, '.', full, '') + endif + endif + call Tex_Debug(":Tex_HandleBibShortcuts: using inp = [".inp."]", "view") + if a:command == 'filter' + exec 'python Tex_BibFile.addfilter("'.inp.'")' + elseif a:command == 'sort' + exec "python Tex_BibFile.addsortfield(\"".inp."\")" + exec 'python Tex_BibFile.sort()' + endif + silent! call Tex_DisplayBibList() + endif + + elseif a:command == 'remove_filters' + + exec 'python Tex_BibFile.rmfilters()' + exec 'python Tex_BibFile.addfilter("key ^'.s:prefix.'")' + call Tex_DisplayBibList() + + endif + +endfunction " }}} +" Tex_CompleteCiteEntry: completes cite entry {{{ +" Description: +function! Tex_CompleteCiteEntry() + normal! 0 + call search('\[\S\+\]$', 'W') + if getline('.') !~ '\[\S\+\]$' + call search('\[\S\+\]$', 'bW') + endif + + if getline('.') !~ '\[\S\+\]$' + return + endif + + let ref = matchstr(getline('.'), '\[\zs\S\+\ze\]$') + close + call Tex_Debug(":Tex_CompleteCiteEntry: completing with ".ref, "view") + call Tex_CompleteWord(strpart(ref, strlen(s:prefix))) +endfunction " }}} + +com! -nargs=0 TClearCiteHist unlet! s:citeSearchHistory + +" vim:fdm=marker:nowrap:noet:ff=unix:ts=4:sw=4 diff --git a/.vim/ftplugin/latex-suite/version.vim b/.vim/ftplugin/latex-suite/version.vim new file mode 100644 index 0000000..41089cf --- /dev/null +++ b/.vim/ftplugin/latex-suite/version.vim @@ -0,0 +1,30 @@ +" Tex_Version: returns a string which gives the current version number of latex-suite +" Description: +" Each time a bug fix/addition is done in any source file in latex-suite, +" not just this file, the number below has to be incremented by the author. +" This will ensure that there is a single 'global' version number for all of +" latex-suite. +" +" If a change is done in the doc/ directory, i.e an addition/change in the +" documentation, then this number should NOT be incremented. +" +" Latex-suite will follow a 3-tier system of versioning just as Vim. A +" version number will be of the form: +" +" X.Y.ZZ +" +" 'X' will only be incremented for a major over-haul or feature addition. +" 'Y' will be incremented for significant changes which do not qualify +" as major. +" 'ZZ' will be incremented for bug-fixes and very trivial additions such +" as adding an option etc. Once ZZ reaches 50, then Y will be +" incremented and ZZ will be reset to 01. Each time we have a +" version number of the form X.Y.01, then we'll make a release on +" vim.sf.net and also create a cvs tag at that point. We'll try to +" "stabilize" that version by releasing a few pre-releases and then +" keep that as a stable point. +function! Tex_Version() + return "Latex-Suite: version 1.8.13" +endfunction + +com! -nargs=0 TVersion echo Tex_Version() diff --git a/.vim/ftplugin/latex-suite/wizardfuncs.vim b/.vim/ftplugin/latex-suite/wizardfuncs.vim new file mode 100644 index 0000000..113271c --- /dev/null +++ b/.vim/ftplugin/latex-suite/wizardfuncs.vim @@ -0,0 +1,377 @@ +" File: wizardfuncs.vim +" Author: Mikolaj Machowski <mikmach@wp.pl> +" Description: +" +" Installation: +" History: pluginized by Srinath Avadhanula +"============================================================================= + +if exists('s:doneOnce') + finish +endif +let s:doneOnce = 1 + +let s:mapleader = exists('mapleader') ? mapleader : "\\" +" ============================================================================== +" Specialized functions for handling sections from command line +" ============================================================================== + +com! -nargs=? TSection call Tex_section(<f-args>) +com! -nargs=? TSectionAdvanced call Tex_section_adv(<f-args>) + +" Tex_VisSecAdv: handles visual selection for sections {{{ +function! Tex_VisSecAdv(section) + let shorttitle = input("Short title? ") + let toc = input("Include in table of contents [y]/n ? ") + let sstructure = "\\".a:section + if ( toc == "" || toc == "y" ) + let toc = "" + else + let toc = "*" + endif + if shorttitle != "" + let shorttitle = '['.shorttitle.']' + endif + exe "normal `>a}\<cr>\<esc>`<i".sstructure.toc.shorttitle."{" +endfunction + +" }}} +" Tex_InsSecAdv: section wizard in insert mode {{{ +function! Tex_InsSecAdv(structure) + let ttitle = input("Title? ") + let shorttitle = input("Short title? ") + let toc = input("Include in table of contents [y]/n ? ") + "Structure + let sstructure = "\\".a:structure + "TOC + if ( toc == "" || toc == "y" ) + let toc = "" + else + let toc = "*" + endif + "Shorttitle + if shorttitle != "" + let shorttitle = '['.shorttitle.']' + endif + "Title + let ttitle = '{'.ttitle.'}' + "Happy end? + return sstructure.toc.shorttitle.ttitle +endfunction + + +" }}} +function! Tex_section(...) "{{{ + silent let pos = line('.').' | normal! '.virtcol('.').'|' + silent let last_section_value = s:Tex_section_detection() + if a:0 == 0 + silent let last_section_name = s:Tex_section_name(last_section_value) + silent call s:Tex_section_call(last_section_name) + elseif a:1 =~ "[+=\-]" + silent let sec_arg = a:1 + silent let curr_section_value = s:Tex_section_curr_rel_value(sec_arg, last_section_value) + silent let curr_section_name = s:Tex_section_name(curr_section_value) + silent call s:Tex_section_call(curr_section_name) + elseif a:1 == "?" + echo s:last_section_line + else + silent let curr_section_value = s:Tex_section_curr_value(a:1) + silent let curr_section_name = s:Tex_section_name(curr_section_value) + silent call s:Tex_section_call(curr_section_name) + endif + silent exe pos +endfunction "}}} +function! Tex_section_adv(...) "{{{ + let pos = line('.').' | normal! '.virtcol('.').'|' + silent let last_section_value = s:Tex_section_detection() + if a:0 == 0 + silent let last_section_name = s:Tex_section_name(last_section_value) + let section = Tex_InsSecAdv(last_section_name) + elseif a:1 =~ "[+=\-]" + silent let sec_arg = a:1 + silent let curr_section_value = s:Tex_section_curr_rel_value(sec_arg, last_section_value) + silent let curr_section_name = s:Tex_section_name(curr_section_value) + let section = Tex_InsSecAdv(curr_section_name) + else + silent let curr_section_value = s:Tex_section_curr_value(a:1) + silent let curr_section_name = s:Tex_section_name(curr_section_value) + silent call s:Tex_section_call(curr_section_name) + let section = Tex_InsSecAdv(curr_section_name) + endif + exe "normal i".section + exe pos +endfunction "}}} +function! s:Tex_section_detection() "{{{ + let pos = line('.').' | normal! '.virtcol('.').'|' + let last_section1 = search("\\\\\subparagraph\\|\\\\paragraph\\|\\\\subsubsection\\|\\\\subsection\\|\\\\section\\|\\\\chapter\\|\\\part\)", "b") + exe pos + let last_section2 = search("\\\\\part\\|\\\\chapter\\|\\\\section\\|\\\\subsection\\|\\\\subsubsection\\|\\\\paragraph\\|\\\subparagraph\)", "b") + if last_section1 > last_section2 + let last_section = last_section1 + else + let last_section = last_section2 + endif + if last_section != 0 + exe last_section + if getline(".") =~ "\\\\part" + let last_section_value = 0 + elseif getline(".") =~ "\\\\chapter" + let last_section_value = 1 + elseif getline(".") =~ "\\\\section" + let last_section_value = 2 + elseif getline(".") =~ "\\\\subsection" + let last_section_value = 3 + elseif getline(".") =~ "\\\\subsubsection" + let last_section_value = 4 + elseif getline(".") =~ "\\\\paragraph" + let last_section_value = 5 + elseif getline(".") =~ "\\\\subparagraph" + let last_section_value = 6 + endif + let s:last_section_line = getline(".") + else + let last_section_value = 0 + endif + exe pos + return last_section_value +endfunction "}}} +function! s:Tex_section_curr_value(sec_arg) "{{{ + if a:sec_arg == "pa" || a:sec_arg == "0" || a:sec_arg == "part" + let curr_section_value = 0 + elseif a:sec_arg == "ch" || a:sec_arg == "1" || a:sec_arg == "chapter" + let curr_section_value = 1 + elseif a:sec_arg == "se" || a:sec_arg == "2" || a:sec_arg == "section" + let curr_section_value = 2 + elseif a:sec_arg == "ss" || a:sec_arg == "3" || a:sec_arg == "subsection" + let curr_section_value = 3 + elseif a:sec_arg == "s2" || a:sec_arg == "4" || a:sec_arg == "subsubsection" + let curr_section_value = 4 + elseif a:sec_arg == "pr" || a:sec_arg == "5" || a:sec_arg == "paragraph" + let curr_section_value = 5 + elseif a:sec_arg == "sp" || a:sec_arg == "6" || a:sec_arg == "subparagraph" + let curr_section_value = 6 + endif + return curr_section_value +endfunction "}}} +function! s:Tex_section_curr_rel_value(sec_arg, last_section_value) "{{{ + let last_section_value = a:last_section_value + if a:sec_arg == "+" || a:sec_arg == "+1" + let curr_section_value = last_section_value + 1 + elseif a:sec_arg == "++" || a:sec_arg == "+2" + let curr_section_value = last_section_value + 2 + elseif a:sec_arg == "-" || a:sec_arg == "-1" + let curr_section_value = last_section_value - 1 + elseif a:sec_arg == "--" || a:sec_arg == "-2" + let curr_section_value = last_section_value - 2 + elseif a:sec_arg == "=" + let curr_section_value = last_section_value + else + exe "let curr_section_value = last_section_value".a:sec_arg + endif + if curr_section_value < 0 + let curr_section_value = 0 + elseif curr_section_value > 6 + let curr_section_value = 6 + endif + return curr_section_value +endfunction "}}} +function! s:Tex_section_name(section_value) "{{{ + if a:section_value == 0 + let section_name = "part" + elseif a:section_value == 1 + let section_name = "chapter" + elseif a:section_value == 2 + let section_name = "section" + elseif a:section_value == 3 + let section_name = "subsection" + elseif a:section_value == 4 + let section_name = "subsubsection" + elseif a:section_value == 5 + let section_name = "paragraph" + elseif a:section_value == 6 + let section_name = "subparagraph" + endif + return section_name +endfunction "}}} +function! s:Tex_section_call(section_name) "{{{ + exe "normal! i\\".a:section_name."{<++>}<++>\<Esc>0\<C-j>" +" let ret_section = "\\".a:section_name."{<++>}<++>" +" exe "normal! i\<C-r>=IMAP_PutTextWithMovement(ret_section)\<CR>" +" normal f}i +endfunction "}}} + +" ============================================================================== +" Add looking help into latexhelp.txt +" ============================================================================== + +inoremap <silent> <Plug>Tex_Help <C-o>:call <SID>TexHelp()<CR> +nnoremap <silent> <Plug>Tex_Help :call <SID>TexHelp()<CR> +command! -nargs=0 THelp call <SID>TexHelp() +call Tex_MakeMap('<F1>', '<Plug>Tex_Help', 'i', '') +call Tex_MakeMap('<F1>', '<Plug>Tex_Help', 'n', '') + +" TexHelp: Cursor being on LaTeX item check if exists help tag about it " {{{ +function! s:TexHelp() + let syntax_item = synIDattr(synID(line('.'),col('.')-1,0),"name") + if syntax_item =~ '^tex' + setlocal isk+=\ + let curword = expand('<cword>') + setlocal isk-=\ + let v:errmsg = '' + if curword =~ "^\\" || syntax_item == 'texSectionName' + exe 'silent! help '.curword + if v:errmsg =~ '^E149:' + echohl ErrorMsg + exe "echomsg 'Sorry, no help for LaTeX: ".curword."'" + echohl None + let v:errmsg = '' + endif + else + help + endif + else + help + endif +endfunction " }}} + +" ============================================================================== +" Tables of shortcuts +" ============================================================================== +" +command! -nargs=? Tshortcuts call Tex_shortcuts(<f-args>)<CR> + +" Tex_shortcuts: Show shortcuts in terminal after : command {{{ +function! Tex_shortcuts(...) + if a:0 == 0 + let shorts = input(" Allowed arguments are:" + \."\n g General" + \."\n e Environments" + \."\n f Fonts" + \."\n s Sections" + \."\n m Math" + \."\n a All" + \."\n Enter your choice (<Enter> quits) : ") + call Tex_shortcuts(shorts) + elseif a:1 == 'g' + echo g:generalshortcuts + elseif a:1 == 'e' + echo g:environmentshortcuts + elseif a:1 == 'f' + echo g:fontshortcuts + elseif a:1 == 's' + echo g:sectionshortcuts + elseif a:1 == 'm' + echo g:mathshortcuts + elseif a:1 == 'a' + echo g:generalshortcuts + echo g:environmentshortcuts + echo g:fontshortcuts + echo g:sectionshortcuts + echo g:mathshortcuts + endif + +endfunction +" }}} + +" General shortcuts {{{ +let g:generalshortcuts = '' +\."\n General shortcuts" +\."\n <mapleader> is a value of <Leader>" +\."\n ".s:mapleader.'ll compile whole document' +\."\n ".s:mapleader.'lv view compiled document' +\."\n ".s:mapleader.'ls forward searching (if possible)' +\."\n ".s:mapleader.'rf refresh folds' +" }}} +" Environment shortcuts {{{ +let g:environmentshortcuts = '' +\."\n Environment shortcuts" +\."\n <mapleader> is a value of g:Tex_Leader2" +\."\n I v&V I v&V" +\."\n ELI ".g:Tex_Leader2."li list EQN ".g:Tex_Leader2."qn quotation" +\."\n EDE ".g:Tex_Leader2."de description ESB ".g:Tex_Leader2."sb sloppybar" +\."\n EEN ".g:Tex_Leader2."en enumerate ETI ".g:Tex_Leader2."ti theindex" +\."\n EIT ".g:Tex_Leader2."it itemize ETP ".g:Tex_Leader2."tp titlepage" +\."\n ETI ".g:Tex_Leader2."ti theindex EVM ".g:Tex_Leader2."vm verbatim" +\."\n ETL ".g:Tex_Leader2."tl trivlist EVE ".g:Tex_Leader2."ve verse" +\."\n ETE ".g:Tex_Leader2."te table ETB ".g:Tex_Leader2."tb thebibliography" +\."\n ETG ".g:Tex_Leader2."tg tabbing ENO ".g:Tex_Leader2."no note" +\."\n ETR ".g:Tex_Leader2."tr tabular EOV ".g:Tex_Leader2."ov overlay" +\."\n EAR ".g:Tex_Leader2."ar array ESL ".g:Tex_Leader2."sl slide" +\."\n EDM ".g:Tex_Leader2."dm displaymath EAB ".g:Tex_Leader2."ab abstract" +\."\n EEA ".g:Tex_Leader2."ea eqnarray EAP ".g:Tex_Leader2."ap appendix" +\."\n EEQ ".g:Tex_Leader2."eq equation ECE ".g:Tex_Leader2."ce center" +\."\n EDO ".g:Tex_Leader2."do document EFI ".g:Tex_Leader2."fi figure" +\."\n EFC ".g:Tex_Leader2."fc filecontents ELR ".g:Tex_Leader2."lr lrbox" +\."\n EFL ".g:Tex_Leader2."fl flushleft EMP ".g:Tex_Leader2."mp minipage" +\."\n EFR ".g:Tex_Leader2."fr flushright EPI ".g:Tex_Leader2."pi picture" +\."\n EMA ".g:Tex_Leader2."ma math EQE ".g:Tex_Leader2."qe quote" +" }}} +" Font shortcuts {{{ +let g:fontshortcuts = '' +\."\n Font shortcuts" +\."\n <mapleader> is a value of g:Tex_Leader" +\."\n Shortcuts Effects" +\."\n I v&V I&v V" +\."\n FBF ".g:Tex_Leader."bf \\textbf{} {\\bfseries }" +\."\n FMD ".g:Tex_Leader."md \\textmd{} {\\mdseries }" +\."\n" +\."\n FTT ".g:Tex_Leader."tt \\texttt{} {\\ttfamily }" +\."\n FSF ".g:Tex_Leader."sf \\textsf{} {\\sffamily }" +\."\n FRM ".g:Tex_Leader."rm \\textrm{} {\\rmfamily }" +\."\n" +\."\n FUP ".g:Tex_Leader."up \\textup{} {\\upshape }" +\."\n FSL ".g:Tex_Leader."sl \\textsl{} {\\slshape }" +\."\n FSC ".g:Tex_Leader."sc \\textsc{} {\\scshape }" +\."\n FIT ".g:Tex_Leader."it \\textit{} {\\itshape }" +" }}} +" Section shortcuts {{{ +let g:sectionshortcuts = '' +\."\n Section shortcuts" +\."\n <mapleader> is a value of g:Tex_Leader2" +\."\n I v&V" +\."\n SPA ".g:Tex_Leader2."pa part" +\."\n SCH ".g:Tex_Leader2."ch chapter" +\."\n SSE ".g:Tex_Leader2."se section" +\."\n SSS ".g:Tex_Leader2."ss subsection" +\."\n SS2 ".g:Tex_Leader2."s2 subsubsection" +\."\n SPG ".g:Tex_Leader2."pg paragraph" +\."\n SSP ".g:Tex_Leader2."sp subparagraph" +" }}} +" Math shortcuts {{{ +let g:mathshortcuts = '' +\."\n Math shortcuts - Insert mode" +\."\n `a \\alpha `b \\beta" +\."\n `g \\gamma `d \\delta" +\."\n `e \\varepsilon `z \\zeta" +\."\n `h \\eta `q \\theta" +\."\n `i \\iota `k \\kappa" +\."\n `l \\lambda `m \\mu" +\."\n `n \\nu `x \\xi" +\."\n `p \\pi `r \\rho" +\."\n `s \\sigma `v \\varsigma" +\."\n `t \\tau `u \\upsilon" +\."\n `f \\varphi `c \\chi" +\."\n `y \\psi `w \\omega" +\."\n `A \\Alpha `B \\Beta" +\."\n `G \\Gamma `D \\Delta" +\."\n `E \\Epsilon `Z \\mathrm{Z}" +\."\n `H \\Eta `K \\Kappa" +\."\n `L \\Lambda `M \\Mu" +\."\n `N \\Nu `X \\Xi" +\."\n `P \\Pi `R \\Rho" +\."\n `S \\Sigma `T \\Tau" +\."\n `U \\Upsilon `C \\Chi" +\."\n `Y \\Psi `W \\Omega" +\."\n `( \\subset `) \\Subset" +\."\n `= \\equiv =~ \\approx" +\."\n `- \\bigcap `+ \\bigcup" +\."\n `. \\cdot `* \\times" +\."\n `\\ \\setminus `@ \\circ" +\."\n `& \\wedge `, \\nonumber" +\."\n `8 \\infty `_ \\bar{}" +\."\n `: \\ddot{} `; \\dot{}" +\."\n `^ \\hat{} `~ \\tilde{}" +\."\n `6 \\partial" +" }}} + +" vim:fdm=marker:ff=unix:noet:ts=4:sw=4 diff --git a/.vim/ftplugin/pythoncomplete.vim b/.vim/ftplugin/pythoncomplete.vim new file mode 100644 index 0000000..57add71 --- /dev/null +++ b/.vim/ftplugin/pythoncomplete.vim @@ -0,0 +1,625 @@ +"pythoncomplete.vim - Omni Completion for python +" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com> +" Version: 0.9 +" Last Updated: 18 Jun 2009 +" +" Changes +" TODO: +" 'info' item output can use some formatting work +" Add an "unsafe eval" mode, to allow for return type evaluation +" Complete basic syntax along with import statements +" i.e. "import url<c-x,c-o>" +" Continue parsing on invalid line?? +" +" v 0.9 +" * Fixed docstring parsing for classes and functions +" * Fixed parsing of *args and **kwargs type arguments +" * Better function param parsing to handle things like tuples and +" lambda defaults args +" +" v 0.8 +" * Fixed an issue where the FIRST assignment was always used instead of +" using a subsequent assignment for a variable +" * Fixed a scoping issue when working inside a parameterless function +" +" +" v 0.7 +" * Fixed function list sorting (_ and __ at the bottom) +" * Removed newline removal from docs. It appears vim handles these better in +" recent patches +" +" v 0.6: +" * Fixed argument completion +" * Removed the 'kind' completions, as they are better indicated +" with real syntax +" * Added tuple assignment parsing (whoops, that was forgotten) +" * Fixed import handling when flattening scope +" +" v 0.5: +" Yeah, I skipped a version number - 0.4 was never public. +" It was a bugfix version on top of 0.3. This is a complete +" rewrite. +" + +if !has('python') + echo "Error: Required vim compiled with +python" + finish +endif + +function! pythoncomplete#Complete(findstart, base) + "findstart = 1 when we need to get the text length + if a:findstart == 1 + let line = getline('.') + let idx = col('.') + while idx > 0 + let idx -= 1 + let c = line[idx] + if c =~ '\w' + continue + elseif ! c =~ '\.' + let idx = -1 + break + else + break + endif + endwhile + + return idx + "findstart = 0 when we need to return the list of completions + else + "vim no longer moves the cursor upon completion... fix that + let line = getline('.') + let idx = col('.') + let cword = '' + while idx > 0 + let idx -= 1 + let c = line[idx] + if c =~ '\w' || c =~ '\.' + let cword = c . cword + continue + elseif strlen(cword) > 0 || idx == 0 + break + endif + endwhile + execute "python vimcomplete('" . cword . "', '" . a:base . "')" + return g:pythoncomplete_completions + endif +endfunction + +function! s:DefPython() +python << PYTHONEOF +import sys, tokenize, cStringIO, types +from token import NAME, DEDENT, NEWLINE, STRING + +debugstmts=[] +def dbg(s): debugstmts.append(s) +def showdbg(): + for d in debugstmts: print "DBG: %s " % d + +def vimcomplete(context,match): + global debugstmts + debugstmts = [] + try: + import vim + def complsort(x,y): + try: + xa = x['abbr'] + ya = y['abbr'] + if xa[0] == '_': + if xa[1] == '_' and ya[0:2] == '__': + return xa > ya + elif ya[0:2] == '__': + return -1 + elif y[0] == '_': + return xa > ya + else: + return 1 + elif ya[0] == '_': + return -1 + else: + return xa > ya + except: + return 0 + cmpl = Completer() + cmpl.evalsource('\n'.join(vim.current.buffer),vim.eval("line('.')")) + all = cmpl.get_completions(context,match) + all.sort(complsort) + dictstr = '[' + # have to do this for double quoting + for cmpl in all: + dictstr += '{' + for x in cmpl: dictstr += '"%s":"%s",' % (x,cmpl[x]) + dictstr += '"icase":0},' + if dictstr[-1] == ',': dictstr = dictstr[:-1] + dictstr += ']' + #dbg("dict: %s" % dictstr) + vim.command("silent let g:pythoncomplete_completions = %s" % dictstr) + #dbg("Completion dict:\n%s" % all) + except vim.error: + dbg("VIM Error: %s" % vim.error) + +class Completer(object): + def __init__(self): + self.compldict = {} + self.parser = PyParser() + + def evalsource(self,text,line=0): + sc = self.parser.parse(text,line) + src = sc.get_code() + dbg("source: %s" % src) + try: exec(src) in self.compldict + except: dbg("parser: %s, %s" % (sys.exc_info()[0],sys.exc_info()[1])) + for l in sc.locals: + try: exec(l) in self.compldict + except: dbg("locals: %s, %s [%s]" % (sys.exc_info()[0],sys.exc_info()[1],l)) + + def _cleanstr(self,doc): + return doc.replace('"',' ').replace("'",' ') + + def get_arguments(self,func_obj): + def _ctor(obj): + try: return class_ob.__init__.im_func + except AttributeError: + for base in class_ob.__bases__: + rc = _find_constructor(base) + if rc is not None: return rc + return None + + arg_offset = 1 + if type(func_obj) == types.ClassType: func_obj = _ctor(func_obj) + elif type(func_obj) == types.MethodType: func_obj = func_obj.im_func + else: arg_offset = 0 + + arg_text='' + if type(func_obj) in [types.FunctionType, types.LambdaType]: + try: + cd = func_obj.func_code + real_args = cd.co_varnames[arg_offset:cd.co_argcount] + defaults = func_obj.func_defaults or '' + defaults = map(lambda name: "=%s" % name, defaults) + defaults = [""] * (len(real_args)-len(defaults)) + defaults + items = map(lambda a,d: a+d, real_args, defaults) + if func_obj.func_code.co_flags & 0x4: + items.append("...") + if func_obj.func_code.co_flags & 0x8: + items.append("***") + arg_text = (','.join(items)) + ')' + + except: + dbg("arg completion: %s: %s" % (sys.exc_info()[0],sys.exc_info()[1])) + pass + if len(arg_text) == 0: + # The doc string sometimes contains the function signature + # this works for alot of C modules that are part of the + # standard library + doc = func_obj.__doc__ + if doc: + doc = doc.lstrip() + pos = doc.find('\n') + if pos > 0: + sigline = doc[:pos] + lidx = sigline.find('(') + ridx = sigline.find(')') + if lidx > 0 and ridx > 0: + arg_text = sigline[lidx+1:ridx] + ')' + if len(arg_text) == 0: arg_text = ')' + return arg_text + + def get_completions(self,context,match): + dbg("get_completions('%s','%s')" % (context,match)) + stmt = '' + if context: stmt += str(context) + if match: stmt += str(match) + try: + result = None + all = {} + ridx = stmt.rfind('.') + if len(stmt) > 0 and stmt[-1] == '(': + result = eval(_sanitize(stmt[:-1]), self.compldict) + doc = result.__doc__ + if doc is None: doc = '' + args = self.get_arguments(result) + return [{'word':self._cleanstr(args),'info':self._cleanstr(doc)}] + elif ridx == -1: + match = stmt + all = self.compldict + else: + match = stmt[ridx+1:] + stmt = _sanitize(stmt[:ridx]) + result = eval(stmt, self.compldict) + all = dir(result) + + dbg("completing: stmt:%s" % stmt) + completions = [] + + try: maindoc = result.__doc__ + except: maindoc = ' ' + if maindoc is None: maindoc = ' ' + for m in all: + if m == "_PyCmplNoType": continue #this is internal + try: + dbg('possible completion: %s' % m) + if m.find(match) == 0: + if result is None: inst = all[m] + else: inst = getattr(result,m) + try: doc = inst.__doc__ + except: doc = maindoc + typestr = str(inst) + if doc is None or doc == '': doc = maindoc + + wrd = m[len(match):] + c = {'word':wrd, 'abbr':m, 'info':self._cleanstr(doc)} + if "function" in typestr: + c['word'] += '(' + c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst)) + elif "method" in typestr: + c['word'] += '(' + c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst)) + elif "module" in typestr: + c['word'] += '.' + elif "class" in typestr: + c['word'] += '(' + c['abbr'] += '(' + completions.append(c) + except: + i = sys.exc_info() + dbg("inner completion: %s,%s [stmt='%s']" % (i[0],i[1],stmt)) + return completions + except: + i = sys.exc_info() + dbg("completion: %s,%s [stmt='%s']" % (i[0],i[1],stmt)) + return [] + +class Scope(object): + def __init__(self,name,indent,docstr=''): + self.subscopes = [] + self.docstr = docstr + self.locals = [] + self.parent = None + self.name = name + self.indent = indent + + def add(self,sub): + #print 'push scope: [%s@%s]' % (sub.name,sub.indent) + sub.parent = self + self.subscopes.append(sub) + return sub + + def doc(self,str): + """ Clean up a docstring """ + d = str.replace('\n',' ') + d = d.replace('\t',' ') + while d.find(' ') > -1: d = d.replace(' ',' ') + while d[0] in '"\'\t ': d = d[1:] + while d[-1] in '"\'\t ': d = d[:-1] + dbg("Scope(%s)::docstr = %s" % (self,d)) + self.docstr = d + + def local(self,loc): + self._checkexisting(loc) + self.locals.append(loc) + + def copy_decl(self,indent=0): + """ Copy a scope's declaration only, at the specified indent level - not local variables """ + return Scope(self.name,indent,self.docstr) + + def _checkexisting(self,test): + "Convienance function... keep out duplicates" + if test.find('=') > -1: + var = test.split('=')[0].strip() + for l in self.locals: + if l.find('=') > -1 and var == l.split('=')[0].strip(): + self.locals.remove(l) + + def get_code(self): + str = "" + if len(self.docstr) > 0: str += '"""'+self.docstr+'"""\n' + for l in self.locals: + if l.startswith('import'): str += l+'\n' + str += 'class _PyCmplNoType:\n def __getattr__(self,name):\n return None\n' + for sub in self.subscopes: + str += sub.get_code() + for l in self.locals: + if not l.startswith('import'): str += l+'\n' + + return str + + def pop(self,indent): + #print 'pop scope: [%s] to [%s]' % (self.indent,indent) + outer = self + while outer.parent != None and outer.indent >= indent: + outer = outer.parent + return outer + + def currentindent(self): + #print 'parse current indent: %s' % self.indent + return ' '*self.indent + + def childindent(self): + #print 'parse child indent: [%s]' % (self.indent+1) + return ' '*(self.indent+1) + +class Class(Scope): + def __init__(self, name, supers, indent, docstr=''): + Scope.__init__(self,name,indent, docstr) + self.supers = supers + def copy_decl(self,indent=0): + c = Class(self.name,self.supers,indent, self.docstr) + for s in self.subscopes: + c.add(s.copy_decl(indent+1)) + return c + def get_code(self): + str = '%sclass %s' % (self.currentindent(),self.name) + if len(self.supers) > 0: str += '(%s)' % ','.join(self.supers) + str += ':\n' + if len(self.docstr) > 0: str += self.childindent()+'"""'+self.docstr+'"""\n' + if len(self.subscopes) > 0: + for s in self.subscopes: str += s.get_code() + else: + str += '%spass\n' % self.childindent() + return str + + +class Function(Scope): + def __init__(self, name, params, indent, docstr=''): + Scope.__init__(self,name,indent, docstr) + self.params = params + def copy_decl(self,indent=0): + return Function(self.name,self.params,indent, self.docstr) + def get_code(self): + str = "%sdef %s(%s):\n" % \ + (self.currentindent(),self.name,','.join(self.params)) + if len(self.docstr) > 0: str += self.childindent()+'"""'+self.docstr+'"""\n' + str += "%spass\n" % self.childindent() + return str + +class PyParser: + def __init__(self): + self.top = Scope('global',0) + self.scope = self.top + + def _parsedotname(self,pre=None): + #returns (dottedname, nexttoken) + name = [] + if pre is None: + tokentype, token, indent = self.next() + if tokentype != NAME and token != '*': + return ('', token) + else: token = pre + name.append(token) + while True: + tokentype, token, indent = self.next() + if token != '.': break + tokentype, token, indent = self.next() + if tokentype != NAME: break + name.append(token) + return (".".join(name), token) + + def _parseimportlist(self): + imports = [] + while True: + name, token = self._parsedotname() + if not name: break + name2 = '' + if token == 'as': name2, token = self._parsedotname() + imports.append((name, name2)) + while token != "," and "\n" not in token: + tokentype, token, indent = self.next() + if token != ",": break + return imports + + def _parenparse(self): + name = '' + names = [] + level = 1 + while True: + tokentype, token, indent = self.next() + if token in (')', ',') and level == 1: + if '=' not in name: name = name.replace(' ', '') + names.append(name.strip()) + name = '' + if token == '(': + level += 1 + name += "(" + elif token == ')': + level -= 1 + if level == 0: break + else: name += ")" + elif token == ',' and level == 1: + pass + else: + name += "%s " % str(token) + return names + + def _parsefunction(self,indent): + self.scope=self.scope.pop(indent) + tokentype, fname, ind = self.next() + if tokentype != NAME: return None + + tokentype, open, ind = self.next() + if open != '(': return None + params=self._parenparse() + + tokentype, colon, ind = self.next() + if colon != ':': return None + + return Function(fname,params,indent) + + def _parseclass(self,indent): + self.scope=self.scope.pop(indent) + tokentype, cname, ind = self.next() + if tokentype != NAME: return None + + super = [] + tokentype, next, ind = self.next() + if next == '(': + super=self._parenparse() + elif next != ':': return None + + return Class(cname,super,indent) + + def _parseassignment(self): + assign='' + tokentype, token, indent = self.next() + if tokentype == tokenize.STRING or token == 'str': + return '""' + elif token == '(' or token == 'tuple': + return '()' + elif token == '[' or token == 'list': + return '[]' + elif token == '{' or token == 'dict': + return '{}' + elif tokentype == tokenize.NUMBER: + return '0' + elif token == 'open' or token == 'file': + return 'file' + elif token == 'None': + return '_PyCmplNoType()' + elif token == 'type': + return 'type(_PyCmplNoType)' #only for method resolution + else: + assign += token + level = 0 + while True: + tokentype, token, indent = self.next() + if token in ('(','{','['): + level += 1 + elif token in (']','}',')'): + level -= 1 + if level == 0: break + elif level == 0: + if token in (';','\n'): break + assign += token + return "%s" % assign + + def next(self): + type, token, (lineno, indent), end, self.parserline = self.gen.next() + if lineno == self.curline: + #print 'line found [%s] scope=%s' % (line.replace('\n',''),self.scope.name) + self.currentscope = self.scope + return (type, token, indent) + + def _adjustvisibility(self): + newscope = Scope('result',0) + scp = self.currentscope + while scp != None: + if type(scp) == Function: + slice = 0 + #Handle 'self' params + if scp.parent != None and type(scp.parent) == Class: + slice = 1 + newscope.local('%s = %s' % (scp.params[0],scp.parent.name)) + for p in scp.params[slice:]: + i = p.find('=') + if len(p) == 0: continue + pvar = '' + ptype = '' + if i == -1: + pvar = p + ptype = '_PyCmplNoType()' + else: + pvar = p[:i] + ptype = _sanitize(p[i+1:]) + if pvar.startswith('**'): + pvar = pvar[2:] + ptype = '{}' + elif pvar.startswith('*'): + pvar = pvar[1:] + ptype = '[]' + + newscope.local('%s = %s' % (pvar,ptype)) + + for s in scp.subscopes: + ns = s.copy_decl(0) + newscope.add(ns) + for l in scp.locals: newscope.local(l) + scp = scp.parent + + self.currentscope = newscope + return self.currentscope + + #p.parse(vim.current.buffer[:],vim.eval("line('.')")) + def parse(self,text,curline=0): + self.curline = int(curline) + buf = cStringIO.StringIO(''.join(text) + '\n') + self.gen = tokenize.generate_tokens(buf.readline) + self.currentscope = self.scope + + try: + freshscope=True + while True: + tokentype, token, indent = self.next() + #dbg( 'main: token=[%s] indent=[%s]' % (token,indent)) + + if tokentype == DEDENT or token == "pass": + self.scope = self.scope.pop(indent) + elif token == 'def': + func = self._parsefunction(indent) + if func is None: + print "function: syntax error..." + continue + dbg("new scope: function") + freshscope = True + self.scope = self.scope.add(func) + elif token == 'class': + cls = self._parseclass(indent) + if cls is None: + print "class: syntax error..." + continue + freshscope = True + dbg("new scope: class") + self.scope = self.scope.add(cls) + + elif token == 'import': + imports = self._parseimportlist() + for mod, alias in imports: + loc = "import %s" % mod + if len(alias) > 0: loc += " as %s" % alias + self.scope.local(loc) + freshscope = False + elif token == 'from': + mod, token = self._parsedotname() + if not mod or token != "import": + print "from: syntax error..." + continue + names = self._parseimportlist() + for name, alias in names: + loc = "from %s import %s" % (mod,name) + if len(alias) > 0: loc += " as %s" % alias + self.scope.local(loc) + freshscope = False + elif tokentype == STRING: + if freshscope: self.scope.doc(token) + elif tokentype == NAME: + name,token = self._parsedotname(token) + if token == '=': + stmt = self._parseassignment() + dbg("parseassignment: %s = %s" % (name, stmt)) + if stmt != None: + self.scope.local("%s = %s" % (name,stmt)) + freshscope = False + except StopIteration: #thrown on EOF + pass + except: + dbg("parse error: %s, %s @ %s" % + (sys.exc_info()[0], sys.exc_info()[1], self.parserline)) + return self._adjustvisibility() + +def _sanitize(str): + val = '' + level = 0 + for c in str: + if c in ('(','{','['): + level += 1 + elif c in (']','}',')'): + level -= 1 + elif level == 0: + val += c + return val + +sys.path.extend(['.','..']) +PYTHONEOF +endfunction + +call s:DefPython() +" vim: set et ts=4: diff --git a/.vim/ftplugin/tex.vim b/.vim/ftplugin/tex.vim new file mode 100644 index 0000000..e1d7438 --- /dev/null +++ b/.vim/ftplugin/tex.vim @@ -0,0 +1,10 @@ +" this is mostly a matter of taste. but LaTeX looks good with just a bit +" of indentation. +set sw=2 +" TIP: if you write your \label's as \label{fig:something}, then if you +" type in \ref{fig: and press <C-n> you will automatically cycle through +" all the figure labels. Very useful! +set iskeyword+=: + +" So I can use e-acute +imap <buffer> <leader>it <Plug>Tex_InsertItemOnThisLine diff --git a/.vim/ftplugin/tex_latexSuite.vim b/.vim/ftplugin/tex_latexSuite.vim new file mode 100644 index 0000000..582d014 --- /dev/null +++ b/.vim/ftplugin/tex_latexSuite.vim @@ -0,0 +1,13 @@ +" LaTeX filetype +" Language: LaTeX (ft=tex) +" Maintainer: Srinath Avadhanula +" Email: srinath@fastmail.fm + +if !exists('s:initLatexSuite') + let s:initLatexSuite = 1 + exec 'so '.expand('<sfile>:p:h').'/latex-suite/main.vim' + + silent! do LatexSuite User LatexSuiteInitPost +endif + +silent! do LatexSuite User LatexSuiteFileType diff --git a/.vim/haskellmode-20081031.vba b/.vim/haskellmode-20081031.vba new file mode 100644 index 0000000..1a33424 --- /dev/null +++ b/.vim/haskellmode-20081031.vba @@ -0,0 +1,1850 @@ +" Vimball Archiver by Charles E. Campbell, Jr., Ph.D. +UseVimball +finish +compiler/ghc.vim [[[1 +445 + +" Vim Compiler File +" Compiler: GHC +" Maintainer: Claus Reinke <claus.reinke@talk21.com> +" Last Change: 06/07/2008 +" +" part of haskell plugins: http://www.cs.kent.ac.uk/~cr3/toolbox/haskell/Vim/ + +" ------------------------------ paths & quickfix settings first +" + +if exists("current_compiler") && current_compiler == "ghc" + finish +endif +let current_compiler = "ghc" + +let s:scriptname = "ghc.vim" + +if (!exists("g:ghc") || !executable(g:ghc)) + if !executable('ghc') + echoerr s:scriptname.": can't find ghc. please set g:ghc, or extend $PATH" + finish + else + let g:ghc = 'ghc' + endif +endif +let ghc_version = substitute(system(g:ghc . ' --numeric-version'),'\n','','') +let b:ghc_staticoptions = '' + +" set makeprg (for quickfix mode) +execute 'setlocal makeprg=' . g:ghc .'\ -e\ :q\ %' +"execute 'setlocal makeprg=' . g:ghc .'\ --make\ %' + +" quickfix mode: +" fetch file/line-info from error message +" TODO: how to distinguish multiline errors from warnings? +" (both have the same header, and errors have no common id-tag) +" how to get rid of first empty message in result list? +setlocal errorformat= + \%-Z\ %#, + \%W%f:%l:%c:\ Warning:\ %m, + \%E%f:%l:%c:\ %m, + \%E%>%f:%l:%c:, + \%+C\ \ %#%m, + \%W%>%f:%l:%c:, + \%+C\ \ %#%tarning:\ %m, + +" oh, wouldn't you guess it - ghc reports (partially) to stderr.. +setlocal shellpipe=2> + +" ------------------------- but ghc can do a lot more for us.. +" + +" allow map leader override +if !exists("maplocalleader") + let maplocalleader='_' +endif + +" initialize map of identifiers to their types +" associate type map updates to changedtick +if !exists("b:ghc_types") + let b:ghc_types = {} + let b:my_changedtick = b:changedtick +endif + +if exists("g:haskell_functions") + finish +endif +let g:haskell_functions = "ghc" + +" avoid hit-enter prompts +set cmdheight=3 + +" edit static GHC options +" TODO: add completion for options/packages? +command! GHCStaticOptions call GHC_StaticOptions() +function! GHC_StaticOptions() + let b:ghc_staticoptions = input('GHC static options: ',b:ghc_staticoptions) + execute 'setlocal makeprg=' . g:ghc . '\ ' . escape(b:ghc_staticoptions,' ') .'\ -e\ :q\ %' + let b:my_changedtick -=1 +endfunction + +map <LocalLeader>T :call GHC_ShowType(1)<cr> +map <LocalLeader>t :call GHC_ShowType(0)<cr> +function! GHC_ShowType(addTypeDecl) + let namsym = Haskell_GetNameSymbol(getline('.'),col('.'),0) + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return 0 + endif + let [_,symb,qual,unqual] = namsym + let name = qual=='' ? unqual : qual.'.'.unqual + let pname = ( symb ? '('.name.')' : name ) + call GHC_HaveTypes() + if !has_key(b:ghc_types,name) + redraw + echo pname "type not known" + else + redraw + for type in split(b:ghc_types[name],' -- ') + echo pname "::" type + if a:addTypeDecl + call append( line(".")-1, pname . " :: " . type ) + endif + endfor + endif +endfunction + +" show type of identifier under mouse pointer in balloon +if has("balloon_eval") + set ballooneval + set balloondelay=600 + set balloonexpr=GHC_TypeBalloon() + function! GHC_TypeBalloon() + if exists("b:current_compiler") && b:current_compiler=="ghc" + let [line] = getbufline(v:beval_bufnr,v:beval_lnum) + let namsym = Haskell_GetNameSymbol(line,v:beval_col,0) + if namsym==[] + return '' + endif + let [start,symb,qual,unqual] = namsym + let name = qual=='' ? unqual : qual.'.'.unqual + let pname = name " ( symb ? '('.name.')' : name ) + silent call GHC_HaveTypes() + if has("balloon_multiline") + return (has_key(b:ghc_types,pname) ? split(b:ghc_types[pname],' -- ') : '') + else + return (has_key(b:ghc_types,pname) ? b:ghc_types[pname] : '') + endif + else + return '' + endif + endfunction +endif + +map <LocalLeader>si :call GHC_ShowInfo()<cr> +function! GHC_ShowInfo() + let namsym = Haskell_GetNameSymbol(getline('.'),col('.'),0) + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return 0 + endif + let [_,symb,qual,unqual] = namsym + let name = qual=='' ? unqual : (qual.'.'.unqual) + let output = GHC_Info(name) + redraw + echo output +endfunction + +" fill the type map, unless nothing has changed since the last attempt +function! GHC_HaveTypes() + if b:ghc_types == {} && (b:my_changedtick != b:changedtick) + let b:my_changedtick = b:changedtick + return GHC_BrowseAll() + endif +endfunction + +" update b:ghc_types after successful make +au QuickFixCmdPost make if GHC_CountErrors()==0 | silent call GHC_BrowseAll() | endif + +" count only error entries in quickfix list, ignoring warnings +function! GHC_CountErrors() + let c=0 + for e in getqflist() | if e.type=='E' && e.text !~ "^[ \n]*Warning:" | let c+=1 | endif | endfor + return c +endfunction + +command! GHCReload call GHC_BrowseAll() +function! GHC_BrowseAll() + " let imports = Haskell_GatherImports() + " let modules = keys(imports[0]) + keys(imports[1]) + let imports = {} " no need for them at the moment + let current = GHC_NameCurrent() + let module = current==[] ? 'Main' : current[0] + if GHC_VersionGE([6,8,1]) + return GHC_BrowseBangStar(module) + else + return GHC_BrowseMultiple(imports,['*'.module]) + endif +endfunction + +function! GHC_VersionGE(target) + let current = split(g:ghc_version, '\.' ) + let target = a:target + for i in current + if ((target==[]) || (i>=target[0])) + let target = target[1:] + else + return 0 + endif + endfor + return 1 +endfunction + +function! GHC_NameCurrent() + let last = line("$") + let l = 1 + while l<last + let ml = matchlist( getline(l), '^module\s*\([^ (]*\)') + if ml != [] + let [_,module;x] = ml + return [module] + endif + let l += 1 + endwhile + redraw + echo "cannot find module header for file " . expand("%") + return [] +endfunction + +function! GHC_BrowseBangStar(module) + redraw + echo "browsing module " a:module + let command = ":browse! *" . a:module + let orig_shellredir = &shellredir + let &shellredir = ">" " ignore error/warning messages, only output or lack of it + let output = system(g:ghc . ' ' . b:ghc_staticoptions . ' -v0 --interactive ' . expand("%") , command ) + let &shellredir = orig_shellredir + return GHC_ProcessBang(a:module,output) +endfunction + +function! GHC_BrowseMultiple(imports,modules) + redraw + echo "browsing modules " a:modules + let command = ":browse " . join( a:modules, " \n :browse ") + let command = substitute(command,'\(:browse \(\S*\)\)','putStrLn "-- \2" \n \1','g') + let output = system(g:ghc . ' ' . b:ghc_staticoptions . ' -v0 --interactive ' . expand("%") , command ) + return GHC_Process(a:imports,output) +endfunction + +function! GHC_Info(what) + " call GHC_HaveTypes() + let output = system(g:ghc . ' ' . b:ghc_staticoptions . ' -v0 --interactive ' . expand("%"), ":i ". a:what) + return output +endfunction + +function! GHC_ProcessBang(module,output) + let module = a:module + let b = a:output + let linePat = '^\(.\{-}\)\n\(.*\)' + let contPat = '\s\+\(.\{-}\)\n\(.*\)' + let typePat = '^\(\)\(\S*\)\s*::\(.*\)' + let commentPat = '^-- \(\S*\)' + let definedPat = '^-- defined locally' + let importedPat = '^-- imported via \(.*\)' + if !(b=~commentPat) + echo s:scriptname.": GHCi reports errors (try :make?)" + return 0 + endif + let b:ghc_types = {} + let ml = matchlist( b , linePat ) + while ml != [] + let [_,l,rest;x] = ml + let mlDecl = matchlist( l, typePat ) + if mlDecl != [] + let [_,indent,id,type;x] = mlDecl + let ml2 = matchlist( rest , '^'.indent.contPat ) + while ml2 != [] + let [_,c,rest;x] = ml2 + let type .= c + let ml2 = matchlist( rest , '^'.indent.contPat ) + endwhile + let id = substitute( id, '^(\(.*\))$', '\1', '') + let type = substitute( type, '\s\+', " ", "g" ) + " using :browse! *<current>, we get both unqualified and qualified ids + let qualified = (id =~ '\.') && (id =~ '[A-Z]') + let b:ghc_types[id] = type + if !qualified + for qual in qualifiers + let b:ghc_types[qual.'.'.id] = type + endfor + endif + else + let mlImported = matchlist( l, importedPat ) + let mlDefined = matchlist( l, definedPat ) + if mlImported != [] + let [_,modules;x] = mlImported + let qualifiers = split( modules, ', ' ) + elseif mlDefined != [] + let qualifiers = [module] + endif + endif + let ml = matchlist( rest , linePat ) + endwhile + return 1 +endfunction + +function! GHC_Process(imports,output) + let b = a:output + let imports = a:imports + let linePat = '^\(.\{-}\)\n\(.*\)' + let contPat = '\s\+\(.\{-}\)\n\(.*\)' + let typePat = '^\(\s*\)\(\S*\)\s*::\(.*\)' + let modPat = '^-- \(\S*\)' + " add '-- defined locally' and '-- imported via ..' + if !(b=~modPat) + echo s:scriptname.": GHCi reports errors (try :make?)" + return 0 + endif + let b:ghc_types = {} + let ml = matchlist( b , linePat ) + while ml != [] + let [_,l,rest;x] = ml + let mlDecl = matchlist( l, typePat ) + if mlDecl != [] + let [_,indent,id,type;x] = mlDecl + let ml2 = matchlist( rest , '^'.indent.contPat ) + while ml2 != [] + let [_,c,rest;x] = ml2 + let type .= c + let ml2 = matchlist( rest , '^'.indent.contPat ) + endwhile + let id = substitute(id, '^(\(.*\))$', '\1', '') + let type = substitute( type, '\s\+', " ", "g" ) + " using :browse *<current>, we get both unqualified and qualified ids + if current_module " || has_key(imports[0],module) + if has_key(b:ghc_types,id) && !(matchstr(b:ghc_types[id],escape(type,'[].'))==type) + let b:ghc_types[id] .= ' -- '.type + else + let b:ghc_types[id] = type + endif + endif + if 0 " has_key(imports[1],module) + let qualid = module.'.'.id + let b:ghc_types[qualid] = type + endif + else + let mlMod = matchlist( l, modPat ) + if mlMod != [] + let [_,module;x] = mlMod + let current_module = module[0]=='*' + let module = current_module ? module[1:] : module + endif + endif + let ml = matchlist( rest , linePat ) + endwhile + return 1 +endfunction + +let s:ghc_templates = ["module _ () where","class _ where","class _ => _ where","instance _ where","instance _ => _ where","type family _","type instance _ = ","data _ = ","newtype _ = ","type _ = "] + +" use ghci :browse index for insert mode omnicompletion (CTRL-X CTRL-O) +function! GHC_CompleteImports(findstart, base) + if a:findstart + let namsym = Haskell_GetNameSymbol(getline('.'),col('.'),-1) " insert-mode: we're 1 beyond the text + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return -1 + endif + let [start,symb,qual,unqual] = namsym + return (start-1) + else " find keys matching with "a:base" + let res = [] + let l = len(a:base)-1 + call GHC_HaveTypes() + for key in keys(b:ghc_types) + if key[0 : l]==a:base + let res += [{"word":key,"menu":":: ".b:ghc_types[key],"dup":1}] + endif + endfor + return res + endif +endfunction +set omnifunc=GHC_CompleteImports +set completeopt=menu,menuone,longest + +map <LocalLeader>ct :call GHC_CreateTagfile()<cr> +function! GHC_CreateTagfile() + redraw + echo "creating tags file" + let output = system(g:ghc . ' ' . b:ghc_staticoptions . ' -e ":ctags" ' . expand("%")) + " for ghcs older than 6.6, you would need to call another program + " here, such as hasktags + echo output +endfunction + +command! -nargs=1 GHCi redraw | echo system(g:ghc. ' ' . b:ghc_staticoptions .' '.expand("%").' -e <f-args>') + +" use :make 'not in scope' errors to explicitly list imported ids +" cursor needs to be on import line, in correctly loadable module +map <LocalLeader>ie :call GHC_MkImportsExplicit()<cr> +function! GHC_MkImportsExplicit() + let save_cursor = getpos(".") + let line = getline('.') + let lineno = line('.') + let ml = matchlist(line,'^import\(\s*qualified\)\?\s*\([^( ]\+\)') + if ml!=[] + let [_,q,mod;x] = ml + silent make + if getqflist()==[] + call setline(lineno,'-- '.line) + silent write + silent make + let qflist = getqflist() + call setline(lineno,line) + silent write + let ids = [] + for d in qflist + let ml = matchlist(d.text,'Not in scope: `\([^'']*\)''') + if ml!=[] + let [_,qid;x] = ml + let id = ( qid =~ "^[A-Z]" ? substitute(qid,'.*\.\([^.]*\)$','\1','') : qid ) + let pid = ( id =~ "[a-zA-Z0-9_']\\+" ? id : '('.id.')' ) + let ids += [pid] + endif + endfor + call setline(lineno,'import'.q.' '.mod.'('.join(ids,',').')') + endif + endif + call setpos('.', save_cursor) +endfunction + +if GHC_VersionGE([6,8,2]) + let opts = filter(split(substitute(system(g:ghc . ' -v0 --interactive', ':set'), ' ', '','g'), '\n'), 'v:val =~ "-f"') +else + let opts = ["-fglasgow-exts","-fallow-undecidable-instances","-fallow-overlapping-instances","-fno-monomorphism-restriction","-fno-mono-pat-binds","-fno-cse","-fbang-patterns","-funbox-strict-fields"] +endif + +amenu ]OPTIONS_GHC.- :echo '-'<cr> +aunmenu ]OPTIONS_GHC +for o in opts + exe 'amenu ]OPTIONS_GHC.'.o.' :call append(0,"{-# OPTIONS_GHC '.o.' #-}")<cr>' +endfor +if has("gui_running") + map <LocalLeader>opt :popup ]OPTIONS_GHC<cr> +else + map <LocalLeader>opt :emenu ]OPTIONS_GHC. +endif + +amenu ]LANGUAGES_GHC.- :echo '-'<cr> +aunmenu ]LANGUAGES_GHC +if GHC_VersionGE([6,8]) + let ghc_supported_languages = split(system(g:ghc . ' --supported-languages'),'\n') + for l in ghc_supported_languages + exe 'amenu ]LANGUAGES_GHC.'.l.' :call append(0,"{-# LANGUAGE '.l.' #-}")<cr>' + endfor + if has("gui_running") + map <LocalLeader>lang :popup ]LANGUAGES_GHC<cr> + else + map <LocalLeader>lang :emenu ]LANGUAGES_GHC. + endif +endif +ftplugin/haskell.vim [[[1 +149 + +" todo: allow disabling and undo +" (Claus Reinke, last modified: 18/07/2008) +" +" part of haskell plugins: http://www.cs.kent.ac.uk/~cr3/toolbox/haskell/Vim/ +" please send patches to <claus.reinke@talk21.com> + +" try gf on import line, or ctrl-x ctrl-i, or [I, [i, .. +set include=^import\\s*\\(qualified\\)\\?\\s* +set includeexpr=substitute(v:fname,'\\.','/','g').'.hs' + + +" find start/extent of name/symbol under cursor; +" return start, symbolic flag, qualifier, unqualified id +" (this is used in both haskell_doc.vim and in GHC.vim) +function! Haskell_GetNameSymbol(line,col,off) + let name = "[a-zA-Z0-9_']" + let symbol = "[-!#$%&\*\+/<=>\?@\\^|~:.]" + "let [line] = getbufline(a:buf,a:lnum) + let line = a:line + + " find the beginning of unqualified id or qualified id component + let start = (a:col - 1) + a:off + if line[start] =~ name + let pattern = name + elseif line[start] =~ symbol + let pattern = symbol + else + return [] + endif + while start > 0 && line[start - 1] =~ pattern + let start -= 1 + endwhile + let id = matchstr(line[start :],pattern.'*') + " call confirm(id) + + " expand id to left and right, to get full id + let idPos = id[0] == '.' ? start+2 : start+1 + let posA = match(line,'\<\(\([A-Z]'.name.'*\.\)\+\)\%'.idPos.'c') + let start = posA>-1 ? posA+1 : idPos + let posB = matchend(line,'\%'.idPos.'c\(\([A-Z]'.name.'*\.\)*\)\('.name.'\+\|'.symbol.'\+\)') + let end = posB>-1 ? posB : idPos + + " special case: symbolic ids starting with . + if id[0]=='.' && posA==-1 + let start = idPos-1 + let end = posB==-1 ? start : end + endif + + " classify full id and split into qualifier and unqualified id + let fullid = line[ (start>1 ? start-1 : 0) : (end-1) ] + let symbolic = fullid[-1:-1] =~ symbol " might also be incomplete qualified id ending in . + let qualPos = matchend(fullid, '\([A-Z]'.name.'*\.\)\+') + let qualifier = qualPos>-1 ? fullid[ 0 : (qualPos-2) ] : '' + let unqualId = qualPos>-1 ? fullid[ qualPos : -1 ] : fullid + " call confirm(start.'/'.end.'['.symbolic.']:'.qualifier.' '.unqualId) + + return [start,symbolic,qualifier,unqualId] +endfunction + +function! Haskell_GatherImports() + let imports={0:{},1:{}} + let i=1 + while i<=line('$') + let res = Haskell_GatherImport(i) + if !empty(res) + let [i,import] = res + let prefixPat = '^import\s*\(qualified\)\?\s\+' + let modulePat = '\([A-Z][a-zA-Z0-9_''.]*\)' + let asPat = '\(\s\+as\s\+'.modulePat.'\)\?' + let hidingPat = '\(\s\+hiding\s*\((.*)\)\)\?' + let listPat = '\(\s*\((.*)\)\)\?' + let importPat = prefixPat.modulePat.asPat.hidingPat.listPat ".'\s*$' + + let ml = matchlist(import,importPat) + if ml!=[] + let [_,qualified,module,_,as,_,hiding,_,explicit;x] = ml + let what = as=='' ? module : as + let hidings = split(hiding[1:-2],',') + let explicits = split(explicit[1:-2],',') + let empty = {'lines':[],'hiding':hidings,'explicit':[],'modules':[]} + let entry = has_key(imports[1],what) ? imports[1][what] : deepcopy(empty) + let imports[1][what] = Haskell_MergeImport(deepcopy(entry),i,hidings,explicits,module) + if !(qualified=='qualified') + let imports[0][what] = Haskell_MergeImport(deepcopy(entry),i,hidings,explicits,module) + endif + else + echoerr "Haskell_GatherImports doesn't understand: ".import + endif + endif + let i+=1 + endwhile + if !has_key(imports[1],'Prelude') + let imports[0]['Prelude'] = {'lines':[],'hiding':[],'explicit':[],'modules':[]} + let imports[1]['Prelude'] = {'lines':[],'hiding':[],'explicit':[],'modules':[]} + endif + return imports +endfunction + +function! Haskell_ListElem(list,elem) + for e in a:list | if e==a:elem | return 1 | endif | endfor + return 0 +endfunction + +function! Haskell_ListIntersect(list1,list2) + let l = [] + for e in a:list1 | if index(a:list2,e)!=-1 | let l += [e] | endif | endfor + return l +endfunction + +function! Haskell_ListUnion(list1,list2) + let l = [] + for e in a:list2 | if index(a:list1,e)==-1 | let l += [e] | endif | endfor + return a:list1 + l +endfunction + +function! Haskell_ListWithout(list1,list2) + let l = [] + for e in a:list1 | if index(a:list2,e)==-1 | let l += [e] | endif | endfor + return l +endfunction + +function! Haskell_MergeImport(entry,line,hiding,explicit,module) + let lines = a:entry['lines'] + [ a:line ] + let hiding = a:explicit==[] ? Haskell_ListIntersect(a:entry['hiding'], a:hiding) + \ : Haskell_ListWithout(a:entry['hiding'],a:explicit) + let explicit = Haskell_ListUnion(a:entry['explicit'], a:explicit) + let modules = Haskell_ListUnion(a:entry['modules'], [ a:module ]) + return {'lines':lines,'hiding':hiding,'explicit':explicit,'modules':modules} +endfunction + +" collect lines belonging to a single import statement; +" return number of last line and collected import statement +" (assume opening parenthesis, if any, is on the first line) +function! Haskell_GatherImport(lineno) + let lineno = a:lineno + let import = getline(lineno) + if !(import=~'^import') | return [] | endif + let open = strlen(substitute(import,'[^(]','','g')) + let close = strlen(substitute(import,'[^)]','','g')) + while open!=close + let lineno += 1 + let linecont = getline(lineno) + let open += strlen(substitute(linecont,'[^(]','','g')) + let close += strlen(substitute(linecont,'[^)]','','g')) + let import .= linecont + endwhile + return [lineno,import] +endfunction +ftplugin/haskell_doc.vim [[[1 +734 +" +" use haddock docs and index files +" show documentation, complete & qualify identifiers +" +" (Claus Reinke; last modified: 21/10/2008) +" +" part of haskell plugins: http://www.cs.kent.ac.uk/~cr3/toolbox/haskell/Vim/ +" please send patches to <claus.reinke@talk21.com> + +" :Doc <name> and :IDoc <name> open haddocks for <name> in opera +" +" :Doc needs qualified name (default Prelude) and package (default base) +" :IDoc needs unqualified name, looks up possible links in g:haddock_index +" +" :DocIndex populates g:haddock_index from haddock's index files +" :ExportDocIndex saves g:haddock_index to cache file +" :ImportDocIndex reloads g:haddock_index from cache file +" +" all the following use the haddock index (g:haddock_index) +" +" _? opens haddocks for unqualified name under cursor, +" suggesting alternative full qualifications in popup menu +" +" _. fully qualifies unqualified name under cursor, +" suggesting alternative full qualifications in popup menu +" +" _i add import <module>(<name>) statement for unqualified <name> under cursor, +" _im add import <module> statement for unqualified <name> under cursor, +" suggesting alternative full qualifications in popup menu +" (this currently adds one statement per call, instead of +" merging into existing import statements, but it's a start;-) +" +" CTRL-X CTRL-U (user-defined insert mode completion) +" suggests completions of unqualified names in popup menu + +let s:scriptname = "haskell_doc.vim" + +" script parameters +" g:haddock_browser *mandatory* which browser to call +" g:haddock_browser_callformat [optional] how to call browser +" g:haddock_indexfiledir [optional] where to put 'haddock_index.vim' +" g:haddock_docdir [optional] where to find html docs +" g:ghc [optional] which ghc to call +" g:ghc_pkg [optional] which ghc_pkg to call + +" been here before? +if exists("g:haddock_index") + finish +endif + +" initialise nested dictionary, to be populated +" - from haddock index files via :DocIndex +" - from previous cached version via :ImportDocIndex +let g:haddock_index = {} + +" initialise dictionary, mapping modules with haddocks to their packages, +" populated via MkHaddockModuleIndex() or HaveModuleIndex() +let g:haddock_moduleindex = {} + +" program to open urls, please set this in your vimrc + "examples (for windows): + "let g:haddock_browser = "C:/Program Files/Opera/Opera.exe" + "let g:haddock_browser = "C:/Program Files/Mozilla Firefox/firefox.exe" + "let g:haddock_browser = "C:/Program Files/Internet Explorer/IEXPLORE.exe" +if !exists("g:haddock_browser") + echoerr s:scriptname." WARNING: please set g:haddock_browser!" +endif + +if (!exists("g:ghc") || !executable(g:ghc)) + if !executable('ghc') + echoerr s:scriptname." can't find ghc. please set g:ghc, or extend $PATH" + finish + else + let g:ghc = 'ghc' + endif +endif + +if (!exists("g:ghc_pkg") || !executable(g:ghc_pkg)) + let g:ghc_pkg = substitute(g:ghc,'\(.*\)ghc','\1ghc-pkg','') +endif + +if exists("g:haddock_docdir") && isdirectory(g:haddock_docdir) + let s:docdir = g:haddock_docdir +elseif executable(g:ghc_pkg) +" try to figure out location of html docs +" first choice: where the base docs are + let field = substitute(system(g:ghc_pkg . ' field base haddock-html'),'\n','','') + let field = substitute(field,'haddock-html: \(.*\)libraries.base','\1','') + let field = substitute(field,'\\','/','g') + let alternate = substitute(field,'html','doc/html','') + if isdirectory(field) + let s:docdir = field + elseif isdirectory(alternate) + let s:docdir = alternate + endif +else + echoerr s:scriptname." can't find ghc-pkg (set g:ghc_pkg ?)." +endif + +" second choice: try some known suspects for windows/unix +if !exists('s:docdir') || !isdirectory(s:docdir) + let s:ghc_libdir = substitute(system(g:ghc . ' --print-libdir'),'\n','','') + let location1a = s:ghc_libdir . '/doc/html/' + let location1b = s:ghc_libdir . '/doc/' + let s:ghc_version = substitute(system(g:ghc . ' --numeric-version'),'\n','','') + let location2 = '/usr/share/doc/ghc-' . s:ghc_version . '/html/' + if isdirectory(location1a) + let s:docdir = location1a + elseif isdirectory(location1b) + let s:docdir = location1b + elseif isdirectory(location2) + let s:docdir = location2 + else " give up + echoerr s:scriptname." can't find locaton of html documentation (set g:haddock_docdir)." + finish + endif +endif + +" todo: can we turn s:docdir into a list of paths, and +" include docs for third-party libs as well? + +let s:libraries = s:docdir . 'libraries/' +let s:guide = s:docdir . 'users_guide/' +let s:index = 'index.html' +if exists("g:haddock_indexfiledir") && filewritable(g:haddock_indexfiledir) + let s:haddock_indexfiledir = g:haddock_indexfiledir +elseif filewritable(s:libraries) + let s:haddock_indexfiledir = s:libraries +elseif filewritable($HOME) + let s:haddock_indexfiledir = $HOME.'/' +else "give up + echoerr s:scriptname." can't locate index file. please set g:haddock_indexfiledir" + finish +endif +let s:haddock_indexfile = s:haddock_indexfiledir . 'haddock_index.vim' + +" different browser setups require different call formats; +" you might want to call the browser synchronously or +" asynchronously, and the latter is os-dependent; +" +" by default, the browser is started in the background when on +" windows or if running in a gui, and in the foreground otherwise +" (eg, console-mode for remote sessions, with text-mode browsers). +" +" you can override these defaults in your vimrc, via a format +" string including 2 %s parameters (the first being the browser +" to call, the second being the url). +if !exists("g:haddock_browser_callformat") + if has("win32") || has("win64") + let g:haddock_browser_callformat = 'start %s "file://%s"' + else + if has("gui_running") + let g:haddock_browser_callformat = '%s file://%s '.printf(&shellredir,'/dev/null').' &' + else + let g:haddock_browser_callformat = '%s file://%s' + endif + endif +endif + +" allow map leader override +if !exists("maplocalleader") + let maplocalleader='_' +endif + +command! DocSettings call DocSettings() +function! DocSettings() + for v in ["g:haddock_browser","g:haddock_browser_callformat","g:haddock_docdir","g:haddock_indexfiledir","s:ghc_libdir","s:ghc_version","s:docdir","s:libraries","s:guide","s:haddock_indexfile"] + if exists(v) + echo v '=' eval(v) + else + echo v '=' + endif + endfor +endfunction + +function! DocBrowser(url) + "echomsg "DocBrowser(".url.")" + if (!exists("g:haddock_browser") || !executable(g:haddock_browser)) + echoerr s:scriptname." can't find documentation browser. please set g:haddock_browser" + return + endif + " start browser to open url, according to specified format + silent exe '!'.printf(g:haddock_browser_callformat,g:haddock_browser,escape(a:url,'#%')) +endfunction + +"usage examples: +" :Doc length +" :Doc Control.Monad.when +" :Doc Data.List. +" :Doc Control.Monad.State.runState mtl +" :Doc -top +" :Doc -libs +" :Doc -guide +command! -nargs=+ Doc call Doc('v',<f-args>) +command! -nargs=+ Doct call Doc('t',<f-args>) + +function! Doc(kind,qualname,...) + let suffix = '.html' + let relative = '#'.a:kind.'%3A' + + if a:qualname=="-top" + call DocBrowser(s:docdir . s:index) + return + elseif a:qualname=="-libs" + call DocBrowser(s:libraries . s:index) + return + elseif a:qualname=="-guide" + call DocBrowser(s:guide . s:index) + return + endif + + if a:0==0 " no package specified + let package = 'base/' + else + let package = a:1 . '/' + endif + + if match(a:qualname,'\.')==-1 " unqualified name + let [qual,name] = [['Prelude'],a:qualname] + let file = join(qual,'-') . suffix . relative . name + elseif a:qualname[-1:]=='.' " module qualifier only + let parts = split(a:qualname,'\.') + let quallen = len(parts)-1 + let [qual,name] = [parts[0:quallen],parts[-1]] + let file = join(qual,'-') . suffix + else " qualified name + let parts = split(a:qualname,'\.') + let quallen = len(parts)-2 + let [qual,name] = [parts[0:quallen],parts[-1]] + let file = join(qual,'-') . suffix . relative . name + endif + +" let path = s:libraries . package . file + let path = file + call DocBrowser(path) +endfunction + +" TODO: add commandline completion for :IDoc +" indexed variant of Doc, looking up links in g:haddock_index +" usage: +" 1. :IDoc length +" 2. click on one of the choices, or select by number (starting from 0) +command! -nargs=+ IDoc call IDoc(<f-args>) +function! IDoc(name,...) + let choices = HaddockIndexLookup(a:name) + if choices=={} | return | endif + if a:0==0 + let keylist = map(deepcopy(keys(choices)),'substitute(v:val,"\\[.\\]","","")') + let choice = inputlist(keylist) + else + let choice = a:1 + endif + +" let path = s:libraries . values(choices)[choice] + let path = values(choices)[choice] " assumes same order for keys/values.. + call DocBrowser(path) +endfunction + +let s:flagref = s:guide . 'flag-reference.html' +if filereadable(s:flagref) + " extract the generated fragment ids for the + " flag reference sections + let s:headerPat = '.\{-}<h3 class="title"><a name="\([^"]*\)"><\/a>\([^<]*\)<\/h3>\(.*\)' + let s:flagheaders = [] + let s:flagheaderids = {} + let s:contents = join(readfile(s:flagref)) + let s:ml = matchlist(s:contents,s:headerPat) + while s:ml!=[] + let [_,s:id,s:title,s:r;s:x] = s:ml + let s:flagheaders = add(s:flagheaders, s:title) + let s:flagheaderids[s:title] = s:id + let s:ml = matchlist(s:r,s:headerPat) + endwhile + command! -nargs=1 -complete=customlist,CompleteFlagHeaders + \ FlagReference call FlagReference(<f-args>) + function! FlagReference(section) + let relativeUrl = a:section==""||!exists("s:flagheaderids['".a:section."']") ? + \ "" : "#".s:flagheaderids[a:section] + call DocBrowser(s:flagref.relativeUrl) + endfunction + function! CompleteFlagHeaders(al,cl,cp) + let s:choices = s:flagheaders + return CompleteAux(a:al,a:cl,a:cp) + endfunction +endif + +command! -nargs=1 -complete=customlist,CompleteHaddockModules MDoc call MDoc(<f-args>) +function! MDoc(module) + let suffix = '.html' + call HaveModuleIndex() + if !has_key(g:haddock_moduleindex,a:module) + echoerr a:module 'not found in haddock module index' + return + endif + let package = g:haddock_moduleindex[a:module]['package'] + let file = substitute(a:module,'\.','-','g') . suffix +" let path = s:libraries . package . '/' . file + let path = g:haddock_moduleindex[a:module]['html'] + call DocBrowser(path) +endfunction + +function! CompleteHaddockModules(al,cl,cp) + call HaveModuleIndex() + let s:choices = keys(g:haddock_moduleindex) + return CompleteAux(a:al,a:cl,a:cp) +endfunction + +" create a dictionary g:haddock_index, containing the haddoc index +command! DocIndex call DocIndex() +function! DocIndex() + let files = split(globpath(s:libraries,'doc-index*.html'),'\n') + "let files = [s:libraries.'doc-index-33.html'] + let g:haddock_index = {} + call ProcessHaddockIndexes2(s:libraries,files) + if GHC_VersionGE([6,8,2]) + " TODO: escape * when? + let s:addon_libraries = split(system(g:ghc_pkg . ' field * haddock-html'),'\n') + for addon in s:addon_libraries + let ml = matchlist(addon,'haddock-html: \("\)\?\(file:///\)\?\([^"]*\)\("\)\?') + if ml!=[] + let [_,quote,file,addon_path;x] = ml + let addon_path = substitute(addon_path,'\(\\\\\|\\\)','/','g') + let addon_files = split(globpath(addon_path,'doc-index*.html'),'\n') + call ProcessHaddockIndexes2(addon_path,addon_files) + endif + endfor + endif + return 1 +endfunction + +function! ProcessHaddockIndexes(location,files) + let entryPat= '.\{-}"indexentry"[^>]*>\([^<]*\)<\(\%([^=]\{-}TD CLASS="\%(indexentry\)\@!.\{-}</TD\)*\)[^=]\{-}\(\%(="indexentry\|TABLE\).*\)' + let linkPat = '.\{-}HREF="\([^"]*\)".>\([^<]*\)<\(.*\)' + + redraw + echo 'populating g:haddock_index from haddock index files in ' a:location + for f in a:files + echo f[len(a:location):] + let contents = join(readfile(f)) + let ml = matchlist(contents,entryPat) + while ml!=[] + let [_,entry,links,r;x] = ml + "echo entry links + let ml2 = matchlist(links,linkPat) + let link = {} + while ml2!=[] + let [_,l,m,links;x] = ml2 + "echo l m + let link[m] = a:location . '/' . l + let ml2 = matchlist(links,linkPat) + endwhile + let g:haddock_index[DeHTML(entry)] = deepcopy(link) + "echo entry g:haddock_index[entry] + let ml = matchlist(r,entryPat) + endwhile + endfor +endfunction + +" concatenating all lines is too slow for a big file, process lines directly +function! ProcessHaddockIndexes2(location,files) + let entryPat= '^>\([^<]*\)</' + let linkPat = '.\{-}A HREF="\([^"]*\)"' + let kindPat = '#\(.\)' + + redraw + echo 'populating g:haddock_index from haddock index files in ' a:location + for f in a:files + echo f[len(a:location):] + let isEntry = 0 + let isLink = '' + let link = {} + let entry = '' + for line in readfile(f) + if line=~'CLASS="indexentry' + if (link!={}) && (entry!='') + let g:haddock_index[DeHTML(entry)] = deepcopy(link) + let link = {} + let entry = '' + endif + let isEntry=1 + continue + endif + if isEntry==1 + let ml = matchlist(line,entryPat) + if ml!=[] | let [_,entry;x] = ml | let isEntry=0 | continue | endif + endif + if entry!='' + let ml = matchlist(line,linkPat) + if ml!=[] | let [_,isLink;x]=ml | continue | endif + endif + if isLink!='' + let ml = matchlist(line,entryPat) + if ml!=[] + let [_,module;x] = ml + let [_,kind;x] = matchlist(isLink,kindPat) + let last = a:location[strlen(a:location)-1] + let link[module."[".kind."]"] = a:location . (last=='/'?'':'/') . isLink + let isLink='' + continue + endif + endif + endfor + if link!={} | let g:haddock_index[DeHTML(entry)] = deepcopy(link) | endif + endfor +endfunction + +command! ExportDocIndex call ExportDocIndex() +function! ExportDocIndex() + call HaveIndex() + let entries = [] + for key in keys(g:haddock_index) + let entries += [key,string(g:haddock_index[key])] + endfor + call writefile(entries,s:haddock_indexfile) + redir end +endfunction + +command! ImportDocIndex call ImportDocIndex() +function! ImportDocIndex() + if filereadable(s:haddock_indexfile) + let lines = readfile(s:haddock_indexfile) + let i=0 + while i<len(lines) + let [key,dict] = [lines[i],lines[i+1]] + sandbox let g:haddock_index[key] = eval(dict) + let i+=2 + endwhile + return 1 + else + return 0 + endif +endfunction + +function! HaveIndex() + return (g:haddock_index!={} || ImportDocIndex() || DocIndex() ) +endfunction + +function! MkHaddockModuleIndex() + let g:haddock_moduleindex = {} + call HaveIndex() + for key in keys(g:haddock_index) + let dict = g:haddock_index[key] + for module in keys(dict) + let html = dict[module] + let ml = matchlist(html,'libraries/\([^\/]*\)\/') + if ml!=[] + let [_,package;x] = ml + let g:haddock_moduleindex[module] = {'package':package,'html':html} + endif + let ml = matchlist(html,'/\([^\/]*\)\/html/[A-Z]') + if ml!=[] + let [_,package;x] = ml + let g:haddock_moduleindex[module] = {'package':package,'html':html} + endif + endfor + endfor +endfunction + +function! HaveModuleIndex() + return (g:haddock_moduleindex!={} || MkHaddockModuleIndex() ) +endfunction + +" decode HTML symbol encodings (are these all we need?) +function! DeHTML(entry) + let res = a:entry + let decode = { '<': '<', '>': '>', '&': '\\&' } + for enc in keys(decode) + exe 'let res = substitute(res,"'.enc.'","'.decode[enc].'","g")' + endfor + return res +endfunction + +" find haddocks for word under cursor +" also lists possible definition sites +map <LocalLeader>? :call Haddock()<cr> +function! Haddock() + amenu ]Popup.- :echo '-'<cr> + aunmenu ]Popup + let namsym = Haskell_GetNameSymbol(getline('.'),col('.'),0) + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return 0 + endif + let [start,symb,qual,unqual] = namsym + let imports = Haskell_GatherImports() + let asm = has_key(imports[1],qual) ? imports[1][qual]['modules'] : [] + let name = unqual + let dict = HaddockIndexLookup(name) + if dict=={} | return | endif + let keylist = map(deepcopy(keys(dict)),'substitute(v:val,"\\[.\\]","","")') + let keys = ((qual=='')||(asm==[])||(qual==asm[0])) ? keys(dict) + \ : Haskell_ListIntersect(keylist,asm) + if (qual!='') && (asm!=[]) && (qual==asm[0]) + for key in keys + if key==qual + " call DocBrowser(s:libraries . dict[key]) + call DocBrowser(dict[key]) + endif + endfor + elseif has("gui_running") + let i=0 + for key in keys + exe 'amenu ]Popup.'.escape(key,'\.').' :call IDoc("'.escape(name,'|').'",'.i.')<cr>' + let i+=1 + endfor + popup ]Popup + else + let s:choices = keys + let key = input('browse docs for '.name.' in: ','','customlist,CompleteAux') + if key!='' + " call DocBrowser(s:libraries . dict[key]) + call DocBrowser(dict[key]) + endif + endif +endfunction + +" used to pass on choices to CompleteAux +let s:choices=[] + +" if there's no gui, use commandline completion instead of :popup +" completion function CompleteAux suggests completions for a:al, wrt to s:choices +function! CompleteAux(al,cl,cp) + "echomsg '|'.a:al.'|'.a:cl.'|'.a:cp.'|' + let res = [] + let l = len(a:al)-1 + for r in s:choices + if l==-1 || r[0 : l]==a:al + let res += [r] + endif + endfor + return res +endfunction + +" CamelCase shorthand matching: +" favour upper-case letters and module qualifier separators (.) for disambiguation +function! CamelCase(shorthand,string) + let s1 = a:shorthand + let s2 = a:string + let notFirst = 0 " don't elide before first pattern letter + while ((s1!="")&&(s2!="")) + let head1 = s1[0] + let head2 = s2[0] + let elide = notFirst && ( ((head1=~'[A-Z]') && (head2!~'[A-Z.]')) + \ ||((head1=='.') && (head2!='.')) ) + if elide + let s2=s2[1:] + elseif (head1==head2) + let s1=s1[1:] + let s2=s2[1:] + else + return 0 + endif + let notFirst = (head1!='.')||(head2!='.') " treat separators as new beginnings + endwhile + return (s1=="") +endfunction + +" use haddock name index for insert mode completion (CTRL-X CTRL-U) +function! CompleteHaddock(findstart, base) + if a:findstart + let namsym = Haskell_GetNameSymbol(getline('.'),col('.'),-1) " insert-mode: we're 1 beyond the text + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return -1 + endif + let [start,symb,qual,unqual] = namsym + return (start-1) + else " find keys matching with "a:base" + let res = [] + let l = len(a:base)-1 + let qual = a:base =~ '^[A-Z][a-zA-Z0-9_'']*\(\.[A-Z][a-zA-Z0-9_'']*\)*\(\.[a-zA-Z0-9_'']*\)\?$' + call HaveIndex() + for key in keys(g:haddock_index) + let keylist = map(deepcopy(keys(g:haddock_index[key])),'substitute(v:val,"\\[.\\]","","")') + if (key[0 : l]==a:base) + for m in keylist + let res += [{"word":key,"menu":m,"dup":1}] + endfor + elseif qual " this tends to be slower + for m in keylist + let word = m . '.' . key + if word[0 : l]==a:base + let res += [{"word":word,"menu":m,"dup":1}] + endif + endfor + endif + endfor + if res==[] " no prefix matches, try CamelCase shortcuts + for key in keys(g:haddock_index) + let keylist = map(deepcopy(keys(g:haddock_index[key])),'substitute(v:val,"\\[.\\]","","")') + if CamelCase(a:base,key) + for m in keylist + let res += [{"word":key,"menu":m,"dup":1}] + endfor + elseif qual " this tends to be slower + for m in keylist + let word = m . '.' . key + if CamelCase(a:base,word) + let res += [{"word":word,"menu":m,"dup":1}] + endif + endfor + endif + endfor + endif + return res + endif +endfunction +set completefunc=CompleteHaddock +set completeopt=menu,menuone,longest + +" fully qualify an unqualified name +map <LocalLeader>. :call Qualify()<cr> +function! Qualify() + amenu ]Popup.- :echo '-'<cr> + aunmenu ]Popup + let namsym = Haskell_GetNameSymbol(getline('.'),col('.'),0) + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return 0 + endif + let [start,symb,qual,unqual] = namsym + if qual!='' " TODO: should we support re-qualification? + redraw + echo 'already qualified' + return 0 + endif + let name = unqual + let line = line('.') + let prefix = (start<=1 ? '' : getline(line)[0:start-2] ) + let i=0 + let dict = HaddockIndexLookup(name) + if dict=={} | return | endif + let keylist = map(deepcopy(keys(dict)),'substitute(v:val,"\\[.\\]","","")') + let imports = Haskell_GatherImports() + for qualifiedImport in keys(imports[1]) + let c=0 + for module in imports[1][qualifiedImport]['modules'] + if Haskell_ListElem(keylist,module) | let c+=1 | endif + endfor + if c>0 | let keylist=[qualifiedImport]+keylist | endif + endfor + "let asm = has_key(imports[1],qual) ? imports[1][qual]['modules'] : [] + if has("gui_running") + for key in keylist + let lhs=escape(prefix.name,'/.|\') + let rhs=escape(prefix.key.'.'.name,'/&|\') + exe 'amenu ]Popup.'.escape(key,'\.').' :'.line.'s/'.lhs.'/'.rhs.'/<cr>:noh<cr>' + let i+=1 + endfor + popup ]Popup + else + let s:choices = keylist + let key = input('qualify '.name.' with: ','','customlist,CompleteAux') + if key!='' + let lhs=escape(prefix.name,'/.\') + let rhs=escape(prefix.key.'.'.name,'/&\') + exe line.'s/'.lhs.'/'.rhs.'/' + noh + endif + endif +endfunction + +" create (qualified) import for a (qualified) name +map <LocalLeader>i :call Import(0,0)<cr> +map <LocalLeader>im :call Import(1,0)<cr> +map <LocalLeader>iq :call Import(0,1)<cr> +map <LocalLeader>iqm :call Import(1,1)<cr> +function! Import(module,qualified) + amenu ]Popup.- :echo '-'<cr> + aunmenu ]Popup + let namsym = Haskell_GetNameSymbol(getline('.'),col('.'),0) + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return 0 + endif + let [start,symb,qual,unqual] = namsym + let name = unqual + let pname = ( symb ? '('.name.')' : name ) + let importlist = a:module ? '' : '('.pname.')' + let qualified = a:qualified ? 'qualified ' : '' + + if qual!='' + exe 'call append(search(''\%1c\(\<import\>\|\<module\>\|{-# OPTIONS\|{-# LANGUAGE\)'',''nb''),''import '.qualified.qual.importlist.''')' + return + endif + + let line = line('.') + let prefix = getline(line)[0:start-1] + let dict = HaddockIndexLookup(name) + if dict=={} | return | endif + let keylist = map(deepcopy(keys(dict)),'substitute(v:val,"\\[.\\]","","")') + if has("gui_running") + for key in keylist + " exe 'amenu ]Popup.'.escape(key,'\.').' :call append(search("\\%1c\\(import\\\\|module\\\\|{-# OPTIONS\\)","nb"),"import '.key.importlist.'")<cr>' + exe 'amenu ]Popup.'.escape(key,'\.').' :call append(search(''\%1c\(\<import\>\\|\<module\>\\|{-# OPTIONS\\|{-# LANGUAGE\)'',''nb''),''import '.qualified.key.escape(importlist,'|').''')<cr>' + endfor + popup ]Popup + else + let s:choices = keylist + let key = input('import '.name.' from: ','','customlist,CompleteAux') + if key!='' + exe 'call append(search(''\%1c\(\<import\>\|\<module\>\|{-# OPTIONS\|{-# LANGUAGE\)'',''nb''),''import '.qualified.key.importlist.''')' + endif + endif +endfunction + +function! HaddockIndexLookup(name) + call HaveIndex() + if !has_key(g:haddock_index,a:name) + echoerr a:name 'not found in haddock index' + return {} + endif + return g:haddock_index[a:name] +endfunction + +" copied from ghc.vim :-( should we move everything to using autoload instead? +" we query the ghc version here, as we don't otherwise need it.. +function! GHC_VersionGE(target) + let s:ghc_version = substitute(system(g:ghc . ' --numeric-version'),'\n','','') + let current = split(g:ghc_version, '\.' ) + let target = a:target + for i in current + if ((target==[]) || (i>=target[0])) + let target = target[1:] + else + return 0 + endif + endfor + return 1 +endfunction +ftplugin/haskell_hpaste.vim [[[1 +75 +" rudimentary hpaste support for vim +" (using netrw for reading, wget for posting/annotating) +" +" claus reinke, last modified: 19/08/2007 +" +" part of haskell plugins: http://www.cs.kent.ac.uk/~cr3/toolbox/haskell/Vim/ + +" unless wget is in your PATH, you need to set g:wget +" before loading this script. windows users are out of +" luck, unless they have wget installed (such as the +" cygwin one looked for here), or adapt this script to +" whatever alternative they have at hand (perhaps using +" vim's perl/python bindings?) +if !exists("g:wget") + if executable("wget") + let g:wget = "!wget -q" + else + let g:wget = "!c:\\cygwin\\bin\\wget -q" + endif +endif + +" read (recent) hpaste files +" show index in new buffer, where ,r will open current entry +" and ,p will annotate current entry with current buffer +command! HpasteIndex call HpasteIndex() +function! HpasteIndex() + new + read http://hpaste.org + %s/\_$\_.//g + %s/<tr[^>]*>//g + %s/<\/tr>/
/g + g/<\/table>/d + g/DOCTYPE/d + %s/<td><a href="\/\([0-9]*\)">view<\/a><\/td><td>\([^<]*\)<\/td><td>\([^<]*\)<\/td><td>\([^<]*\)<\/td><td>\([^<]*\)<\/td>/\1 \2 (\3) "\4" \5/ + map <buffer> ,r 0ye:noh<cr>:call HpasteEditEntry('"')<cr> +endfunction + +" load an existing entry for editing +command! -nargs=1 HpasteEditEntry call HpasteEditEntry(<f-args>) +function! HpasteEditEntry(entry) + exe 'edit! http://hpaste.org/'.a:entry.'/0/plain' + exe 'map <buffer> ,p :call HpasteAnnotate('''.a:entry.''')<cr>' +endfunction + +" annotate existing entry (only to be called via ,p in HpasteIndex) +function! HpasteAnnotate(entry) + let nick = input("nick? ") + let title = input("title? ") + if nick=='' || title=='' + echo "nick or title missing. aborting annotation" + return + endif + call HpastePost('annotate/'.a:entry,nick,title) +endfunction + +" post new hpaste entry +" using 'wget --post-data' and url-encoded content +command! HpastePostNew call HpastePost('new',<args>) +function! HpastePost(mode,nick,title,...) + let lines = getbufline("%",1,"$") + let pat = '\([^[:alnum:]]\)' + let code = '\=printf("%%%02X",char2nr(submatch(1)))' + let lines = map(lines,'substitute(v:val."\r\n",'''.pat.''','''.code.''',''g'')') + + let url = 'http://hpaste.org/' . a:mode + let nick = substitute(a:nick,pat,code,'g') + let title = substitute(a:title,pat,code,'g') + if a:0==0 + let announce = 'false' + else + let announce = a:1 + endif + let cmd = g:wget.' --post-data="content='.join(lines,'').'&nick='.nick.'&title='.title.'&announce='.announce.'" '.url + exe escape(cmd,'%') +endfunction +doc/haskellmode.txt [[[1 +434 +*haskellmode.txt* Haskell Mode Plugins 18/07/2008 + +Authors: + Claus Reinke <claus.reinke@talk21.com> ~ + +Homepage: + http://www.cs.kent.ac.uk/people/staff/cr3/toolbox/haskell/Vim/ + +CONTENTS *haskellmode* + + 1. Overview |haskellmode-overview| + 1.1 Runtime Requirements |haskellmode-requirements| + 1.2 Quick Reference |haskellmode-quickref| + 2. Settings |haskellmode-settings| + 2.1 GHC and web browser |haskellmode-settings-main| + 2.2 Fine tuning - more configuration options |haskellmode-settings-fine| + 3. GHC Compiler Integration |haskellmode-compiler| + 4. Haddock Integration |haskellmode-haddock| + 4.1 Indexing |haskellmode-indexing| + 4.2 Lookup |haskellmode-lookup| + 4.3 Editing |haskellmode-editing| + 5. Hpaste Integration |haskellmode-hpaste| + 6. Additional Resources |haskellmode-resources| + +============================================================================== + *haskellmode-overview* +1. Overview ~ + + The Haskell mode plugins provide advanced support for Haskell development + using GHC/GHCi on Windows and Unix-like systems. The functionality is + based on Haddock-generated library indices, on GHCi's interactive + commands, or on simply activating (some of) Vim's built-in program editing + support in Haskell-relevant fashion. These plugins live side-by-side with + the pre-defined |syntax-highlighting| support for |haskell| sources, and + any other Haskell-related plugins you might want to install (see + |haskellmode-resources|). + + The Haskell mode plugins consist of three filetype plugins (haskell.vim, + haskell_doc.vim, haskell_hpaste.vim), which by Vim's |filetype| detection + mechanism will be auto-loaded whenever files with the extension '.hs' are + opened, and one compiler plugin (ghc.vim) which you will need to load from + your vimrc file (see |haskellmode-settings|). + + + *haskellmode-requirements* +1.1 Runtime Requirements ~ + + The plugins require a recent installation of GHC/GHCi. The functionality + derived from Haddock-generated library indices also requires a local + installation of the Haddock documentation for GHC's libraries (if there is + no documentation package for your system, you can download a tar-ball from + haskell.org), as well as an HTML browser (see |haddock_browser|). If you + want to use the experimental hpaste interface, you will also need Wget. + + * GHC/GHCi ~ + Provides core functionality. http://www.haskell.org/ghc + + * HTML library documentation files and indices generated by Haddock ~ + These usually come with your GHC installation, possibly as a separate + package. If you cannot get them this way, you can download a tar-ball + from http://www.haskell.org/ghc/docs/latest/ + + * HTML browser with basic CSS support ~ + For browsing Haddock docs. + + * Wget ~ + For interfacing with http://hpaste.org. + + Wget is widely available for modern Unix-like operating systems. Several + ports also exist for Windows, including: + + - Official GNU Wget (natively compiled for Win32) + http://www.gnu.org/software/wget/#downloading + + - UnxUtils Wget (natively compiled for Win32, bundled with other ported + Unix utilities) + http://sourceforge.net/projects/unxutils/ + + - Cygwin Wget (emulated POSIX in Win32, must be run under Cygwin) + http://cygwin.com/packages/wget/ + + *haskellmode-quickref* +1.2 Quick Reference ~ + +|:make| load into GHCi, show errors (|quickfix| |:copen|) +|_ct| create |tags| file +|_si| show info for id under cursor +|_t| show type for id under cursor +|_T| insert type declaration for id under cursor +|balloon| show type for id under mouse pointer +|_?| browse Haddock entry for id under cursor +|:IDoc| {identifier} browse Haddock entry for unqualified {identifier} +|:MDoc| {module} browse Haddock entry for {module} +|:FlagReference| {s} browse Users Guide Flag Reference for section {s} +|_.| qualify unqualified id under cursor +|_i| add 'import <module>(<identifier>)' for id under cursor +|_im| add 'import <module>' for id under cursor +|_iq| add 'import qualified <module>(<identifier>)' for id under cursor +|_iqm| add 'import qualified <module>' for id under cursor +|_ie| make imports explit for import statement under cursor +|_opt| add OPTIONS_GHC pragma +|_lang| add LANGUAGE pragma +|i_CTRL-X_CTRL-O| insert-mode completion based on imported ids (|haskellmode-XO|) +|i_CTRL-X_CTRL-U| insert-mode completion based on documented ids (|haskellmode-XU|) +|i_CTRL-N| insert-mode completion based on imported sources +|:GHCi|{command/expr} run GHCi command/expr in current module + +|:GHCStaticOptions| edit static GHC options for this buffer +|:DocSettings| show current Haddock-files-related plugin settings +|:DocIndex| populate Haddock index +|:ExportDocIndex| cache current Haddock index to a file +|:HpasteIndex| Read index of most recent entries from hpaste.org +|:HpastePostNew| Submit current buffer as a new hpaste + + +============================================================================== + *haskellmode-settings* +2. Settings ~ + + The plugins try to find their dependencies in standard locations, so if + you're lucky, you will only need to set |compiler| to ghc, and configure + the location of your favourite web browser. Given the variety of things to + guess, however, some dependencies might not be found correctly, or the + defaults might not be to your liking, in which case you can do some more + fine tuning. All of this configuration should happen in your |vimrc|. + + *haskellmode-settings-main* +2.1 GHC and web browser ~ + + *compiler-ghc* *ghc-compiler* + To use the features provided by the GHC |compiler| plugin, use the + following |autocommand| in your vimrc: +> + au BufEnter *.hs compiler ghc +< + *g:ghc* + If the compiler plugin can't locate your GHC binary, or if you have + several versions of GHC installed and have a preference as to which binary + is used, set |g:ghc|: +> + :let g:ghc="/usr/bin/ghc-6.6.1" +< + + *:GHCStaticOptions* +:GHCStaticOptions Edit the static GHC options for the current buffer. + Useful for adding hidden packages (-package ghc). + + *g:haddock_browser* + The preferred HTML browser for viewing Haddock documentation can be set as + follows: +> + :let g:haddock_browser="/usr/bin/firefox" +< + + *haskellmode-settings-fine* +2.2 Fine tuning - more configuration options ~ + + Most of the fine tuning is likely to happen for the haskellmode_doc.vim + plugin, so you can check the current settings for this plugin via the + command |:DocSettings|. If all the settings reported there are to your + liking, you probably won't need to do any fine tuning. + + *g:haddock_browser_callformat* + By default, the web browser|g:haddock_browser| will be started + asynchronously (in the background) on Windows or when vim is running in a + GUI, and synchronously (in the foreground) otherwise. These settings seem + to work fine if you are using a console mode browser (eg, when editing in + a remote session), or if you are starting a GUI browser that will launch + itself in the background. But if these settings do not work for you, you + can change the default browser launching behavior. + + This is controlled by |g:haddock_browser_callformat|. It specifies a + format string which uses two '%s' parameters, the first representing the + path of the browser to launch, and the second is the documentation URL + (minus the protocol specifier, i.e. file://) passed to it by the Haddock + plugin. For instance, to launch a GUI browser on Unix-like systems and + force it to the background (see also |shellredir|): +> + :let g:haddock_browser_callformat = '%s file://%s '.printf(&shellredir,'/dev/null').' &' +< + *g:haddock_docdir* + Your system's installed Haddock documentation for GHC and its libraries + should be automatically detected. If the plugin can't locate them, you + must point |g:haddock_docdir| to the path containing the master index.html + file for the subdirectories 'libraries', 'Cabal', 'users_guide', etc.: +> + :let g:haddock_docdir="/usr/local/share/doc/ghc/html/" +< + *g:haddock_indexfiledir* + The information gathered from Haddock's index files will be stored in a + file called 'haddock_index.vim' in a directory derived from the Haddock + location, or in $HOME. To configure another directory for the index file, + use: +> + :let g:haddock_indexfiledir="~/.vim" +< + *g:wget* + If you also want to try the experimental hpaste functionality, you might + you need to set |g:wget| before the |hpaste| plugin is loaded (unless wget + is in your PATH): +> + :let g:wget="C:\Program Files\wget\wget.exe" +< + + Finally, the mappings actually use|<LocalLeader>|behind the scenes, so if + you have to, you can redefine|maplocalleader|to something other than '_'. + Just remember that the docs still refer to mappings starting with '_', to + avoid confusing the majority of users!-) + +============================================================================== + *haskellmode-compiler* *ghc* +3. GHC Compiler Integration ~ + + The GHC |compiler| plugin sets the basic |errorformat| and |makeprg| to + enable |quickfix| mode using GHCi, and provides functionality for show + info (|_si|), show type (|_t| or mouse |balloon|), add type declaration + (|_T|), create tag file (|_ct|), and insert-mode completion + (|i_CTRL-X_CTRL-O|) based on GHCi browsing of the current and imported + modules. + + To avoid frequent calls to GHCi, type information is cached in Vim. The + cache will be populated the first time a command depends on it, and will + be refreshed every time a |:make| goes through without generating errors + (if the |:make| does not succeed, the old types will remain available in + Vim). You can also unconditionally force reloading of type info using + |:GHCReload| (if GHCi cannot load your file, the type info will be empty). + + + In addition to the standard|quickfix| commands, the GHC compiler plugin + provides: + + *:GHCReload* +:GHCReload Reload modules and unconditionally refresh cache of + type info. Usually, |:make| is prefered, as that will + refresh the cache only if GHCi reports no errors, and + show the errors otherwise. + + *:GHCi* +:GHCi {command/expr} Run GHCi commands/expressions in the current module. + + *_ct* +_ct Create |tags| file for the current Haskell source + file. This uses GHCi's :ctags command, so it will work + recursively, but will only list tags for exported + entities. + + *_opt* +_opt Shows a menu of frequently used GHC compiler options + (selecting an entry adds the option as a pragma to the + start of the file). Uses popup menu (GUI) or :emenu + and command-line completion (CLI). + + *_lang* +_lang Shows a menu of the LANGUAGE options supported by GHC + (selecting an entry adds the language as a pragma to + the start of the file). Uses popup menu (GUI) or + :emenu and command-line completion (CLI). + + *_si* +_si Show extended information for the name under the + cursor. Uses GHCi's :info command. + + *_t* +_t Show type for the name under the cursor. Uses cached + info from GHCi's :browse command. + + *_T* +_T Insert type declaration for the name under the cursor. + Uses cached info from GHCi's :browse command. + + *haskellmode-XO* *haskellmode-omni-completion* +CTRL-X CTRL-O Standard insert-mode omni-completion based on the + cached type info from GHCi browsing current and + imported modules. Only names from the current and from + imported modules are included (the completion menu + also show the type of each identifier). + +============================================================================== + *haskellmode-haddock* *haddock* +4. Haddock Integration ~ + + Haskell mode integrates with Haddock-generated HTML documentation, + providing features such as navigating to the Haddock entry for the + identifier under the cursor (|_?|), completion for the identifier under + the cursor (|i_CTRL-X_CTRL-U|), and adding import statements (|_i| |_im| + |_iq| |_iqm|) or module qualifier (|_.|) for the identifier under the + cursor. + + These commands operate on an internal Haddock index built from the + platform's installed Haddock documentation for GHC's libraries. Since + populating this index takes several seconds, it should be stored as a + file called 'haddock_index.vim' in the directory specified by + |g:haddock_indexfiledir|. + + Some commands present a different interface (popup menu or command-line + completion) according to whether the current Vim instance is graphical or + console-based (actually: whether or not the GUI is running). Such + differences are marked below with the annotations (GUI) and (CLI), + respectively. + + |:DocSettings| shows the settings for this plugin. If you are happy with + them, you can call |:ExportDocIndex| to populate and write out the + documentation index (should be called once for every new version of GHC). + + *:DocSettings* +:DocSettings Show current Haddock-files-related plugin settings. + + + *haskellmode-indexing* +4.1 Indexing ~ + + *:DocIndex* +:DocIndex Populate the Haddock index from the GHC library + documentation. + + *:ExportDocIndex* +:ExportDocIndex Cache the current Haddock index to a file (populate + index first, if empty). + + + *haskellmode-lookup* +4.2 Lookup ~ + + *_?* +_? Open the Haddock entry (in |haddock_browser|) for an + identifier under the cursor, selecting full + qualifications from a popup menu (GUI) or via + command-line completion (CLI), if the identifier is + not qualified. + + *:IDoc* +:IDoc {identifier} Open the Haddock entry for the unqualified + {identifier} in |haddock_browser|, suggesting possible + full qualifications. + + *:MDoc* +:MDoc {module} Open the Haddock entry for {module} in + |haddock_browser| (with command-line completion for + the fully qualified module name). + + *:FlagReference* +:FlagReference {s} Browse Users Guide Flag Reference for section {s} + (with command-line completion for section headers). + + + *haskellmode-editing* +4.3 Editing ~ + + *_.* +_. Fully qualify the unqualified name under the cursor + selecting full qualifications from a popup menu (GUI) + or via command-line completion (CLI). + + *_iq* *_i* +_i _iq Add 'import [qualified] <module>(<identifier>)' + statement for the identifier under the cursor, + selecting fully qualified modules from a popup menu + (GUI) or via command-line completion (CLI), if the + identifier is not qualified. This currently adds one + import statement per call instead of merging into + existing import statements. + + *_iqm* *_im* +_im Add 'import [qualified] <module>' statement for the + identifier under the cursor, selecting fully qualified + modules from a popup menu (GUI) or via command-line + completion (CLI), if the identifier is not qualified. + This currently adds one import statement per call + instead of merging into existing import statements. + + *_ie* +_ie On an 'import <module>' line, in a correctly loadable + module, temporarily comment out import and use :make + 'not in scope' errors to explicitly list imported + identifiers. + + *haskellmode-XU* *haskellmode-user-completion* +CTRL-X CTRL-U User-defined insert mode name completion based on all + names known to the Haddock index, including package + names. Completions are presented in a popup menu which + also displays the fully qualified module from which + each entry may be imported. + + CamelCode shortcuts are supported, meaning that + lower-case letters can be elided, using only + upper-case letters and module qualifier separators (.) + for disambiguation: + + pSL -> putStrLn + C.E.t -> Control.Exception.t + C.M.MP -> Control.Monad.MonadPlus + + To reduce unwanted matches, the first letter of such + shortcuts and the first letter after each '.' have to + match directly. + +============================================================================== + *haskellmode-hpaste* *hpaste* +5. Hpaste Integration ~ + + This experimental feature allows browsing and posting to + http://hpaste.org, a Web-based pastebin tailored for Haskell code. + + + *:HpasteIndex* +:HpasteIndex Read the most recent entries from hpaste.org. Show an + index of the entries in a new buffer, where ',r' will + open the current highlighted entry and ',p' will + annotate it with the current buffer. + + *:HpastePostNew* +:HpastePostNew Submit current buffer as a new hpaste entry. + +============================================================================== + *haskellmode-resources* +6. Additional Resources ~ + + An illustrated walk-through of these plugins is available at: + + http://www.cs.kent.ac.uk/people/staff/cr3/toolbox/haskell/Vim/vim.html + + Other Haskell-related Vim plugins can be found here: + + http://www.haskell.org/haskellwiki/Libraries_and_tools/Program_development#Vim + + Make sure to read about Vim's other program-editing features in its online + |user-manual|. Also have a look at Vim tips and plugins at www.vim.org - + two other plugins I tend to use when editing Haskell are AlignPlugin.vim + (to line up regexps for definitions, keywords, comments, etc. in + consecutive lines) and surround.vim (to surround text with quotes, + brackets, parentheses, comments, etc.). + +============================================================================== + vim:tw=78:ts=8:ft=help: diff --git a/.vim/haskellmode-20090424.vba b/.vim/haskellmode-20090424.vba new file mode 100644 index 0000000..e096c85 --- /dev/null +++ b/.vim/haskellmode-20090424.vba @@ -0,0 +1,2005 @@ +" Vimball Archiver by Charles E. Campbell, Jr., Ph.D. +UseVimball +finish +compiler/ghc.vim [[[1 +470 + +" Vim Compiler File +" Compiler: GHC +" Maintainer: Claus Reinke <claus.reinke@talk21.com> +" Last Change: 21/04/2009 +" +" part of haskell plugins: http://projects.haskell.org/haskellmode-vim + +" ------------------------------ paths & quickfix settings first +" + +if exists("current_compiler") && current_compiler == "ghc" + finish +endif +let current_compiler = "ghc" + +let s:scriptname = "ghc.vim" + +if (!exists("g:ghc") || !executable(g:ghc)) + if !executable('ghc') + echoerr s:scriptname.": can't find ghc. please set g:ghc, or extend $PATH" + finish + else + let g:ghc = 'ghc' + endif +endif +let ghc_version = substitute(system(g:ghc . ' --numeric-version'),'\n','','') +if (!exists("b:ghc_staticoptions")) + let b:ghc_staticoptions = '' +endif + +" set makeprg (for quickfix mode) +execute 'setlocal makeprg=' . g:ghc . '\ ' . escape(b:ghc_staticoptions,' ') .'\ -e\ :q\ %' +"execute 'setlocal makeprg=' . g:ghc .'\ -e\ :q\ %' +"execute 'setlocal makeprg=' . g:ghc .'\ --make\ %' + +" quickfix mode: +" fetch file/line-info from error message +" TODO: how to distinguish multiline errors from warnings? +" (both have the same header, and errors have no common id-tag) +" how to get rid of first empty message in result list? +setlocal errorformat= + \%-Z\ %#, + \%W%f:%l:%c:\ Warning:\ %m, + \%E%f:%l:%c:\ %m, + \%E%>%f:%l:%c:, + \%+C\ \ %#%m, + \%W%>%f:%l:%c:, + \%+C\ \ %#%tarning:\ %m, + +" oh, wouldn't you guess it - ghc reports (partially) to stderr.. +setlocal shellpipe=2> + +" ------------------------- but ghc can do a lot more for us.. +" + +" allow map leader override +if !exists("maplocalleader") + let maplocalleader='_' +endif + +" initialize map of identifiers to their types +" associate type map updates to changedtick +if !exists("b:ghc_types") + let b:ghc_types = {} + let b:my_changedtick = b:changedtick +endif + +if exists("g:haskell_functions") + finish +endif +let g:haskell_functions = "ghc" + +" avoid hit-enter prompts +set cmdheight=3 + +" edit static GHC options +" TODO: add completion for options/packages? +command! GHCStaticOptions call GHC_StaticOptions() +function! GHC_StaticOptions() + let b:ghc_staticoptions = input('GHC static options: ',b:ghc_staticoptions) + execute 'setlocal makeprg=' . g:ghc . '\ ' . escape(b:ghc_staticoptions,' ') .'\ -e\ :q\ %' + let b:my_changedtick -=1 +endfunction + +map <LocalLeader>T :call GHC_ShowType(1)<cr> +map <LocalLeader>t :call GHC_ShowType(0)<cr> +function! GHC_ShowType(addTypeDecl) + let namsym = haskellmode#GetNameSymbol(getline('.'),col('.'),0) + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return 0 + endif + let [_,symb,qual,unqual] = namsym + let name = qual=='' ? unqual : qual.'.'.unqual + let pname = ( symb ? '('.name.')' : name ) + call GHC_HaveTypes() + if !has_key(b:ghc_types,name) + redraw + echo pname "type not known" + else + redraw + for type in split(b:ghc_types[name],' -- ') + echo pname "::" type + if a:addTypeDecl + call append( line(".")-1, pname . " :: " . type ) + endif + endfor + endif +endfunction + +" show type of identifier under mouse pointer in balloon +if has("balloon_eval") + set ballooneval + set balloondelay=600 + set balloonexpr=GHC_TypeBalloon() + function! GHC_TypeBalloon() + if exists("b:current_compiler") && b:current_compiler=="ghc" + let [line] = getbufline(v:beval_bufnr,v:beval_lnum) + let namsym = haskellmode#GetNameSymbol(line,v:beval_col,0) + if namsym==[] + return '' + endif + let [start,symb,qual,unqual] = namsym + let name = qual=='' ? unqual : qual.'.'.unqual + let pname = name " ( symb ? '('.name.')' : name ) + silent call GHC_HaveTypes() + if has("balloon_multiline") + return (has_key(b:ghc_types,pname) ? split(b:ghc_types[pname],' -- ') : '') + else + return (has_key(b:ghc_types,pname) ? b:ghc_types[pname] : '') + endif + else + return '' + endif + endfunction +endif + +map <LocalLeader>si :call GHC_ShowInfo()<cr> +function! GHC_ShowInfo() + let namsym = haskellmode#GetNameSymbol(getline('.'),col('.'),0) + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return 0 + endif + let [_,symb,qual,unqual] = namsym + let name = qual=='' ? unqual : (qual.'.'.unqual) + let output = GHC_Info(name) + pclose | new + setlocal previewwindow + setlocal buftype=nofile + setlocal noswapfile + put =output + wincmd w + "redraw + "echo output +endfunction + +" fill the type map, unless nothing has changed since the last attempt +function! GHC_HaveTypes() + if b:ghc_types == {} && (b:my_changedtick != b:changedtick) + let b:my_changedtick = b:changedtick + return GHC_BrowseAll() + endif +endfunction + +" update b:ghc_types after successful make +au QuickFixCmdPost make if GHC_CountErrors()==0 | silent call GHC_BrowseAll() | endif + +" count only error entries in quickfix list, ignoring warnings +function! GHC_CountErrors() + let c=0 + for e in getqflist() | if e.type=='E' && e.text !~ "^[ \n]*Warning:" | let c+=1 | endif | endfor + return c +endfunction + +command! GHCReload call GHC_BrowseAll() +function! GHC_BrowseAll() + " let imports = haskellmode#GatherImports() + " let modules = keys(imports[0]) + keys(imports[1]) + let imports = {} " no need for them at the moment + let current = GHC_NameCurrent() + let module = current==[] ? 'Main' : current[0] + if GHC_VersionGE([6,8,1]) + return GHC_BrowseBangStar(module) + else + return GHC_BrowseMultiple(imports,['*'.module]) + endif +endfunction + +function! GHC_VersionGE(target) + let current = split(g:ghc_version, '\.' ) + let target = a:target + for i in current + if ((target==[]) || (i>target[0])) + return 1 + elseif (i==target[0]) + let target = target[1:] + else + return 0 + endif + endfor + return 1 +endfunction + +function! GHC_NameCurrent() + let last = line("$") + let l = 1 + while l<last + let ml = matchlist( getline(l), '^module\s*\([^ (]*\)') + if ml != [] + let [_,module;x] = ml + return [module] + endif + let l += 1 + endwhile + redraw + echo "cannot find module header for file " . expand("%") + return [] +endfunction + +function! GHC_BrowseBangStar(module) + redraw + echo "browsing module " a:module + let command = ":browse! *" . a:module + let orig_shellredir = &shellredir + let &shellredir = ">" " ignore error/warning messages, only output or lack of it + let output = system(g:ghc . ' ' . b:ghc_staticoptions . ' -v0 --interactive ' . expand("%") , command ) + let &shellredir = orig_shellredir + return GHC_ProcessBang(a:module,output) +endfunction + +function! GHC_BrowseMultiple(imports,modules) + redraw + echo "browsing modules " a:modules + let command = ":browse " . join( a:modules, " \n :browse ") + let command = substitute(command,'\(:browse \(\S*\)\)','putStrLn "-- \2" \n \1','g') + let output = system(g:ghc . ' ' . b:ghc_staticoptions . ' -v0 --interactive ' . expand("%") , command ) + return GHC_Process(a:imports,output) +endfunction + +function! GHC_Info(what) + " call GHC_HaveTypes() + let output = system(g:ghc . ' ' . b:ghc_staticoptions . ' -v0 --interactive ' . expand("%"), ":i ". a:what) + return output +endfunction + +function! GHC_ProcessBang(module,output) + let module = a:module + let b = a:output + let linePat = '^\(.\{-}\)\n\(.*\)' + let contPat = '\s\+\(.\{-}\)\n\(.*\)' + let typePat = '^\(\)\(\S*\)\s*::\(.*\)' + let commentPat = '^-- \(\S*\)' + let definedPat = '^-- defined locally' + let importedPat = '^-- imported via \(.*\)' + if !(b=~commentPat) + echo s:scriptname.": GHCi reports errors (try :make?)" + return 0 + endif + let b:ghc_types = {} + let ml = matchlist( b , linePat ) + while ml != [] + let [_,l,rest;x] = ml + let mlDecl = matchlist( l, typePat ) + if mlDecl != [] + let [_,indent,id,type;x] = mlDecl + let ml2 = matchlist( rest , '^'.indent.contPat ) + while ml2 != [] + let [_,c,rest;x] = ml2 + let type .= c + let ml2 = matchlist( rest , '^'.indent.contPat ) + endwhile + let id = substitute( id, '^(\(.*\))$', '\1', '') + let type = substitute( type, '\s\+', " ", "g" ) + " using :browse! *<current>, we get both unqualified and qualified ids + let qualified = (id =~ '\.') && (id =~ '[A-Z]') + let b:ghc_types[id] = type + if !qualified + for qual in qualifiers + let b:ghc_types[qual.'.'.id] = type + endfor + endif + else + let mlImported = matchlist( l, importedPat ) + let mlDefined = matchlist( l, definedPat ) + if mlImported != [] + let [_,modules;x] = mlImported + let qualifiers = split( modules, ', ' ) + elseif mlDefined != [] + let qualifiers = [module] + endif + endif + let ml = matchlist( rest , linePat ) + endwhile + return 1 +endfunction + +function! GHC_Process(imports,output) + let b = a:output + let imports = a:imports + let linePat = '^\(.\{-}\)\n\(.*\)' + let contPat = '\s\+\(.\{-}\)\n\(.*\)' + let typePat = '^\(\s*\)\(\S*\)\s*::\(.*\)' + let modPat = '^-- \(\S*\)' + " add '-- defined locally' and '-- imported via ..' + if !(b=~modPat) + echo s:scriptname.": GHCi reports errors (try :make?)" + return 0 + endif + let b:ghc_types = {} + let ml = matchlist( b , linePat ) + while ml != [] + let [_,l,rest;x] = ml + let mlDecl = matchlist( l, typePat ) + if mlDecl != [] + let [_,indent,id,type;x] = mlDecl + let ml2 = matchlist( rest , '^'.indent.contPat ) + while ml2 != [] + let [_,c,rest;x] = ml2 + let type .= c + let ml2 = matchlist( rest , '^'.indent.contPat ) + endwhile + let id = substitute(id, '^(\(.*\))$', '\1', '') + let type = substitute( type, '\s\+', " ", "g" ) + " using :browse *<current>, we get both unqualified and qualified ids + if current_module " || has_key(imports[0],module) + if has_key(b:ghc_types,id) && !(matchstr(b:ghc_types[id],escape(type,'[].'))==type) + let b:ghc_types[id] .= ' -- '.type + else + let b:ghc_types[id] = type + endif + endif + if 0 " has_key(imports[1],module) + let qualid = module.'.'.id + let b:ghc_types[qualid] = type + endif + else + let mlMod = matchlist( l, modPat ) + if mlMod != [] + let [_,module;x] = mlMod + let current_module = module[0]=='*' + let module = current_module ? module[1:] : module + endif + endif + let ml = matchlist( rest , linePat ) + endwhile + return 1 +endfunction + +let s:ghc_templates = ["module _ () where","class _ where","class _ => _ where","instance _ where","instance _ => _ where","type family _","type instance _ = ","data _ = ","newtype _ = ","type _ = "] + +" use ghci :browse index for insert mode omnicompletion (CTRL-X CTRL-O) +function! GHC_CompleteImports(findstart, base) + if a:findstart + let namsym = haskellmode#GetNameSymbol(getline('.'),col('.'),-1) " insert-mode: we're 1 beyond the text + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return -1 + endif + let [start,symb,qual,unqual] = namsym + return (start-1) + else " find keys matching with "a:base" + let res = [] + let l = len(a:base)-1 + call GHC_HaveTypes() + for key in keys(b:ghc_types) + if key[0 : l]==a:base + let res += [{"word":key,"menu":":: ".b:ghc_types[key],"dup":1}] + endif + endfor + return res + endif +endfunction +set omnifunc=GHC_CompleteImports +set completeopt=menu,menuone,longest + +map <LocalLeader>ct :call GHC_CreateTagfile()<cr> +function! GHC_CreateTagfile() + redraw + echo "creating tags file" + let output = system(g:ghc . ' ' . b:ghc_staticoptions . ' -e ":ctags" ' . expand("%")) + " for ghcs older than 6.6, you would need to call another program + " here, such as hasktags + echo output +endfunction + +command! -nargs=1 GHCi redraw | echo system(g:ghc. ' ' . b:ghc_staticoptions .' '.expand("%").' -e "'.escape(<f-args>,'"').'"') + +" use :make 'not in scope' errors to explicitly list imported ids +" cursor needs to be on import line, in correctly loadable module +map <LocalLeader>ie :call GHC_MkImportsExplicit()<cr> +function! GHC_MkImportsExplicit() + let save_cursor = getpos(".") + let line = getline('.') + let lineno = line('.') + let ml = matchlist(line,'^import\(\s*qualified\)\?\s*\([^( ]\+\)') + if ml!=[] + let [_,q,mod;x] = ml + silent make + if getqflist()==[] + if line=~"import[^(]*Prelude" + call setline(lineno,substitute(line,"(.*","","").'()') + else + call setline(lineno,'-- '.line) + endif + silent write + silent make + let qflist = getqflist() + call setline(lineno,line) + silent write + let ids = {} + for d in qflist + let ml = matchlist(d.text,'Not in scope: \([^`]*\)`\([^'']*\)''') + if ml!=[] + let [_,what,qid;x] = ml + let id = ( qid =~ "^[A-Z]" ? substitute(qid,'.*\.\([^.]*\)$','\1','') : qid ) + let pid = ( id =~ "[a-zA-Z0-9_']\\+" ? id : '('.id.')' ) + if what =~ "data" + call GHC_HaveTypes() + if has_key(b:ghc_types,id) + let pid = substitute(b:ghc_types[id],'^.*->\s*\(\S*\).*$','\1','').'('.pid.')' + else + let pid = '???('.pid.')' + endif + endif + let ids[pid] = 1 + endif + endfor + call setline(lineno,'import'.q.' '.mod.'('.join(keys(ids),',').')') + else + copen + endif + endif + call setpos('.', save_cursor) +endfunction + +if GHC_VersionGE([6,8,2]) + let opts = filter(split(substitute(system(g:ghc . ' -v0 --interactive', ':set'), ' ', '','g'), '\n'), 'v:val =~ "-f"') +else + let opts = ["-fglasgow-exts","-fallow-undecidable-instances","-fallow-overlapping-instances","-fno-monomorphism-restriction","-fno-mono-pat-binds","-fno-cse","-fbang-patterns","-funbox-strict-fields"] +endif + +amenu ]OPTIONS_GHC.- :echo '-'<cr> +aunmenu ]OPTIONS_GHC +for o in opts + exe 'amenu ]OPTIONS_GHC.'.o.' :call append(0,"{-# OPTIONS_GHC '.o.' #-}")<cr>' +endfor +if has("gui_running") + map <LocalLeader>opt :popup ]OPTIONS_GHC<cr> +else + map <LocalLeader>opt :emenu ]OPTIONS_GHC. +endif + +amenu ]LANGUAGES_GHC.- :echo '-'<cr> +aunmenu ]LANGUAGES_GHC +if GHC_VersionGE([6,8]) + let ghc_supported_languages = split(system(g:ghc . ' --supported-languages'),'\n') + for l in ghc_supported_languages + exe 'amenu ]LANGUAGES_GHC.'.l.' :call append(0,"{-# LANGUAGE '.l.' #-}")<cr>' + endfor + if has("gui_running") + map <LocalLeader>lang :popup ]LANGUAGES_GHC<cr> + else + map <LocalLeader>lang :emenu ]LANGUAGES_GHC. + endif +endif +ftplugin/haskell.vim [[[1 +13 +" +" general Haskell source settings +" (shared functions are in autoload/haskellmode.vim) +" +" (Claus Reinke, last modified: 21/04/2009) +" +" part of haskell plugins: http://projects.haskell.org/haskellmode-vim +" please send patches to <claus.reinke@talk21.com> + +" try gf on import line, or ctrl-x ctrl-i, or [I, [i, .. +set include=^import\\s*\\(qualified\\)\\?\\s* +set includeexpr=substitute(v:fname,'\\.','/','g').'.hs' + +ftplugin/haskell_doc.vim [[[1 +817 +" +" use haddock docs and index files +" show documentation, complete & qualify identifiers +" +" (Claus Reinke; last modified: 24/04/2009) +" +" part of haskell plugins: http://projects.haskell.org/haskellmode-vim +" please send patches to <claus.reinke@talk21.com> + +" :Doc <name> and :IDoc <name> open haddocks for <name> in opera +" +" :Doc needs qualified name (default Prelude) and package (default base) +" :IDoc needs unqualified name, looks up possible links in g:haddock_index +" +" :DocIndex populates g:haddock_index from haddock's index files +" :ExportDocIndex saves g:haddock_index to cache file +" :ImportDocIndex reloads g:haddock_index from cache file +" +" all the following use the haddock index (g:haddock_index) +" +" _? opens haddocks for unqualified name under cursor, +" suggesting alternative full qualifications in popup menu +" +" _. fully qualifies unqualified name under cursor, +" suggesting alternative full qualifications in popup menu +" +" _i add import <module>(<name>) statement for unqualified <name> under cursor, +" _im add import <module> statement for unqualified <name> under cursor, +" suggesting alternative full qualifications in popup menu +" (this currently adds one statement per call, instead of +" merging into existing import statements, but it's a start;-) +" +" CTRL-X CTRL-U (user-defined insert mode completion) +" suggests completions of unqualified names in popup menu + +let s:scriptname = "haskell_doc.vim" + +" script parameters +" g:haddock_browser *mandatory* which browser to call +" g:haddock_browser_callformat [optional] how to call browser +" g:haddock_indexfiledir [optional] where to put 'haddock_index.vim' +" g:haddock_docdir [optional] where to find html docs +" g:ghc [optional] which ghc to call +" g:ghc_pkg [optional] which ghc_pkg to call + +" been here before? +if exists("g:haddock_index") + finish +endif + +" initialise nested dictionary, to be populated +" - from haddock index files via :DocIndex +" - from previous cached version via :ImportDocIndex +let g:haddock_index = {} + +" initialise dictionary, mapping modules with haddocks to their packages, +" populated via MkHaddockModuleIndex() or HaveModuleIndex() +let g:haddock_moduleindex = {} + +" program to open urls, please set this in your vimrc + "examples (for windows): + "let g:haddock_browser = "C:/Program Files/Opera/Opera.exe" + "let g:haddock_browser = "C:/Program Files/Mozilla Firefox/firefox.exe" + "let g:haddock_browser = "C:/Program Files/Internet Explorer/IEXPLORE.exe" +if !exists("g:haddock_browser") + echoerr s:scriptname." WARNING: please set g:haddock_browser!" +endif + +if (!exists("g:ghc") || !executable(g:ghc)) + if !executable('ghc') + echoerr s:scriptname." can't find ghc. please set g:ghc, or extend $PATH" + finish + else + let g:ghc = 'ghc' + endif +endif + +if (!exists("g:ghc_pkg") || !executable(g:ghc_pkg)) + let g:ghc_pkg = substitute(g:ghc,'\(.*\)ghc','\1ghc-pkg','') +endif + +if exists("g:haddock_docdir") && isdirectory(g:haddock_docdir) + let s:docdir = g:haddock_docdir +elseif executable(g:ghc_pkg) +" try to figure out location of html docs +" first choice: where the base docs are (from the first base listed) + let [field;x] = split(system(g:ghc_pkg . ' field base haddock-html'),'\n') + let field = substitute(field,'haddock-html: \(.*\)libraries.base','\1','') + let field = substitute(field,'\\','/','g') + let alternate = substitute(field,'html','doc/html','') + if isdirectory(field) + let s:docdir = field + elseif isdirectory(alternate) + let s:docdir = alternate + endif +else + echoerr s:scriptname." can't find ghc-pkg (set g:ghc_pkg ?)." +endif + +" second choice: try some known suspects for windows/unix +if !exists('s:docdir') || !isdirectory(s:docdir) + let s:ghc_libdir = substitute(system(g:ghc . ' --print-libdir'),'\n','','') + let location1a = s:ghc_libdir . '/doc/html/' + let location1b = s:ghc_libdir . '/doc/' + let s:ghc_version = substitute(system(g:ghc . ' --numeric-version'),'\n','','') + let location2 = '/usr/share/doc/ghc-' . s:ghc_version . '/html/' + if isdirectory(location1a) + let s:docdir = location1a + elseif isdirectory(location1b) + let s:docdir = location1b + elseif isdirectory(location2) + let s:docdir = location2 + else " give up + echoerr s:scriptname." can't find locaton of html documentation (set g:haddock_docdir)." + finish + endif +endif + +" todo: can we turn s:docdir into a list of paths, and +" include docs for third-party libs as well? + +let s:libraries = s:docdir . 'libraries/' +let s:guide = s:docdir . 'users_guide/' +let s:index = 'index.html' +if exists("g:haddock_indexfiledir") && filewritable(g:haddock_indexfiledir) + let s:haddock_indexfiledir = g:haddock_indexfiledir +elseif filewritable(s:libraries) + let s:haddock_indexfiledir = s:libraries +elseif filewritable($HOME) + let s:haddock_indexfiledir = $HOME.'/' +else "give up + echoerr s:scriptname." can't locate index file. please set g:haddock_indexfiledir" + finish +endif +let s:haddock_indexfile = s:haddock_indexfiledir . 'haddock_index.vim' + +" different browser setups require different call formats; +" you might want to call the browser synchronously or +" asynchronously, and the latter is os-dependent; +" +" by default, the browser is started in the background when on +" windows or if running in a gui, and in the foreground otherwise +" (eg, console-mode for remote sessions, with text-mode browsers). +" +" you can override these defaults in your vimrc, via a format +" string including 2 %s parameters (the first being the browser +" to call, the second being the url). +if !exists("g:haddock_browser_callformat") + if has("win32") || has("win64") + let g:haddock_browser_callformat = 'start %s "%s"' + else + if has("gui_running") + let g:haddock_browser_callformat = '%s %s '.printf(&shellredir,'/dev/null').' &' + else + let g:haddock_browser_callformat = '%s %s' + endif + endif +endif + +" allow map leader override +if !exists("maplocalleader") + let maplocalleader='_' +endif + +command! DocSettings call DocSettings() +function! DocSettings() + for v in ["g:haddock_browser","g:haddock_browser_callformat","g:haddock_docdir","g:haddock_indexfiledir","s:ghc_libdir","s:ghc_version","s:docdir","s:libraries","s:guide","s:haddock_indexfile"] + if exists(v) + echo v '=' eval(v) + else + echo v '=' + endif + endfor +endfunction + +function! DocBrowser(url) + "echomsg "DocBrowser(".url.")" + if (!exists("g:haddock_browser") || !executable(g:haddock_browser)) + echoerr s:scriptname." can't find documentation browser. please set g:haddock_browser" + return + endif + " start browser to open url, according to specified format + let url = a:url=~'^\(file://\|http://\)' ? a:url : 'file://'.a:url + silent exe '!'.printf(g:haddock_browser_callformat,g:haddock_browser,escape(url,'#%')) +endfunction + +"usage examples: +" :Doc length +" :Doc Control.Monad.when +" :Doc Data.List. +" :Doc Control.Monad.State.runState mtl +" :Doc -top +" :Doc -libs +" :Doc -guide +command! -nargs=+ Doc call Doc('v',<f-args>) +command! -nargs=+ Doct call Doc('t',<f-args>) + +function! Doc(kind,qualname,...) + let suffix = '.html' + let relative = '#'.a:kind.'%3A' + + if a:qualname=="-top" + call DocBrowser(s:docdir . s:index) + return + elseif a:qualname=="-libs" + call DocBrowser(s:libraries . s:index) + return + elseif a:qualname=="-guide" + call DocBrowser(s:guide . s:index) + return + endif + + if a:0==0 " no package specified + let package = 'base/' + else + let package = a:1 . '/' + endif + + if match(a:qualname,'\.')==-1 " unqualified name + let [qual,name] = [['Prelude'],a:qualname] + let file = join(qual,'-') . suffix . relative . name + elseif a:qualname[-1:]=='.' " module qualifier only + let parts = split(a:qualname,'\.') + let quallen = len(parts)-1 + let [qual,name] = [parts[0:quallen],parts[-1]] + let file = join(qual,'-') . suffix + else " qualified name + let parts = split(a:qualname,'\.') + let quallen = len(parts)-2 + let [qual,name] = [parts[0:quallen],parts[-1]] + let file = join(qual,'-') . suffix . relative . name + endif + +" let path = s:libraries . package . file + let path = file + call DocBrowser(path) +endfunction + +" TODO: add commandline completion for :IDoc +" indexed variant of Doc, looking up links in g:haddock_index +" usage: +" 1. :IDoc length +" 2. click on one of the choices, or select by number (starting from 0) +command! -nargs=+ IDoc call IDoc(<f-args>) +function! IDoc(name,...) + let choices = HaddockIndexLookup(a:name) + if choices=={} | return | endif + if a:0==0 + let keylist = map(deepcopy(keys(choices)),'substitute(v:val,"\\[.\\]","","")') + let choice = inputlist(keylist) + else + let choice = a:1 + endif + let path = values(choices)[choice] " assumes same order for keys/values.. + call DocBrowser(path) +endfunction + +let s:flagref = s:guide . 'flag-reference.html' +if filereadable(s:flagref) + " extract the generated fragment ids for the + " flag reference sections + let s:headerPat = '.\{-}<h3 class="title"><a name="\([^"]*\)"><\/a>\([^<]*\)<\/h3>\(.*\)' + let s:flagheaders = [] + let s:flagheaderids = {} + let s:contents = join(readfile(s:flagref)) + let s:ml = matchlist(s:contents,s:headerPat) + while s:ml!=[] + let [_,s:id,s:title,s:r;s:x] = s:ml + let s:flagheaders = add(s:flagheaders, s:title) + let s:flagheaderids[s:title] = s:id + let s:ml = matchlist(s:r,s:headerPat) + endwhile + command! -nargs=1 -complete=customlist,CompleteFlagHeaders FlagReference call FlagReference(<f-args>) + function! FlagReference(section) + let relativeUrl = a:section==""||!exists("s:flagheaderids['".a:section."']") ? + \ "" : "#".s:flagheaderids[a:section] + call DocBrowser(s:flagref.relativeUrl) + endfunction + function! CompleteFlagHeaders(al,cl,cp) + let s:choices = s:flagheaders + return CompleteAux(a:al,a:cl,a:cp) + endfunction +endif + +command! -nargs=1 -complete=customlist,CompleteHaddockModules MDoc call MDoc(<f-args>) +function! MDoc(module) + let suffix = '.html' + call HaveModuleIndex() + if !has_key(g:haddock_moduleindex,a:module) + echoerr a:module 'not found in haddock module index' + return + endif + let package = g:haddock_moduleindex[a:module]['package'] + let file = substitute(a:module,'\.','-','g') . suffix +" let path = s:libraries . package . '/' . file + let path = g:haddock_moduleindex[a:module]['html'] + call DocBrowser(path) +endfunction + +function! CompleteHaddockModules(al,cl,cp) + call HaveModuleIndex() + let s:choices = keys(g:haddock_moduleindex) + return CompleteAux(a:al,a:cl,a:cp) +endfunction + +" create a dictionary g:haddock_index, containing the haddoc index +command! DocIndex call DocIndex() +function! DocIndex() + let files = split(globpath(s:libraries,'doc-index*.html'),'\n') + let g:haddock_index = {} + call ProcessHaddockIndexes2(s:libraries,files) + if GHC_VersionGE([6,8,2]) + if &shell =~ 'sh' " unix-type shell + let s:addon_libraries = split(system(g:ghc_pkg . ' field \* haddock-html'),'\n') + else " windows cmd.exe and the like + let s:addon_libraries = split(system(g:ghc_pkg . ' field * haddock-html'),'\n') + endif + for addon in s:addon_libraries + let ml = matchlist(addon,'haddock-html: \("\)\?\(file:///\)\?\([^"]*\)\("\)\?') + if ml!=[] + let [_,quote,file,addon_path;x] = ml + let addon_path = substitute(addon_path,'\(\\\\\|\\\)','/','g') + let addon_files = split(globpath(addon_path,'doc-index*.html'),'\n') + call ProcessHaddockIndexes2(addon_path,addon_files) + endif + endfor + endif + return 1 +endfunction + +function! ProcessHaddockIndexes(location,files) + let entryPat= '.\{-}"indexentry"[^>]*>\([^<]*\)<\(\%([^=]\{-}TD CLASS="\%(indexentry\)\@!.\{-}</TD\)*\)[^=]\{-}\(\%(="indexentry\|TABLE\).*\)' + let linkPat = '.\{-}HREF="\([^"]*\)".>\([^<]*\)<\(.*\)' + + redraw + echo 'populating g:haddock_index from haddock index files in ' a:location + for f in a:files + echo f[len(a:location):] + let contents = join(readfile(f)) + let ml = matchlist(contents,entryPat) + while ml!=[] + let [_,entry,links,r;x] = ml + "echo entry links + let ml2 = matchlist(links,linkPat) + let link = {} + while ml2!=[] + let [_,l,m,links;x] = ml2 + "echo l m + let link[m] = a:location . '/' . l + let ml2 = matchlist(links,linkPat) + endwhile + let g:haddock_index[DeHTML(entry)] = deepcopy(link) + "echo entry g:haddock_index[entry] + let ml = matchlist(r,entryPat) + endwhile + endfor +endfunction + +" concatenating all lines is too slow for a big file, process lines directly +function! ProcessHaddockIndexes2(location,files) + let entryPat= '^>\([^<]*\)</' + let linkPat = '.\{-}A HREF="\([^"]*\)"' + let kindPat = '#\(.\)' + + " redraw + echo 'populating g:haddock_index from haddock index files in ' a:location + for f in a:files + echo f[len(a:location):] + let isEntry = 0 + let isLink = '' + let link = {} + let entry = '' + for line in readfile(f) + if line=~'CLASS="indexentry' + if (link!={}) && (entry!='') + if has_key(g:haddock_index,DeHTML(entry)) + let dict = extend(g:haddock_index[DeHTML(entry)],deepcopy(link)) + else + let dict = deepcopy(link) + endif + let g:haddock_index[DeHTML(entry)] = dict + let link = {} + let entry = '' + endif + let isEntry=1 + continue + endif + if isEntry==1 + let ml = matchlist(line,entryPat) + if ml!=[] | let [_,entry;x] = ml | let isEntry=0 | continue | endif + endif + if entry!='' + let ml = matchlist(line,linkPat) + if ml!=[] | let [_,isLink;x]=ml | continue | endif + endif + if isLink!='' + let ml = matchlist(line,entryPat) + if ml!=[] + let [_,module;x] = ml + let [_,kind;x] = matchlist(isLink,kindPat) + let last = a:location[strlen(a:location)-1] + let link[module."[".kind."]"] = a:location . (last=='/'?'':'/') . isLink + let isLink='' + continue + endif + endif + endfor + if link!={} + if has_key(g:haddock_index,DeHTML(entry)) + let dict = extend(g:haddock_index[DeHTML(entry)],deepcopy(link)) + else + let dict = deepcopy(link) + endif + let g:haddock_index[DeHTML(entry)] = dict + endif + endfor +endfunction + +command! ExportDocIndex call ExportDocIndex() +function! ExportDocIndex() + call HaveIndex() + let entries = [] + for key in keys(g:haddock_index) + let entries += [key,string(g:haddock_index[key])] + endfor + call writefile(entries,s:haddock_indexfile) + redir end +endfunction + +command! ImportDocIndex call ImportDocIndex() +function! ImportDocIndex() + if filereadable(s:haddock_indexfile) + let lines = readfile(s:haddock_indexfile) + let i=0 + while i<len(lines) + let [key,dict] = [lines[i],lines[i+1]] + sandbox let g:haddock_index[key] = eval(dict) + let i+=2 + endwhile + return 1 + else + return 0 + endif +endfunction + +function! HaveIndex() + return (g:haddock_index!={} || ImportDocIndex() || DocIndex() ) +endfunction + +function! MkHaddockModuleIndex() + let g:haddock_moduleindex = {} + call HaveIndex() + for key in keys(g:haddock_index) + let dict = g:haddock_index[key] + for module in keys(dict) + let html = dict[module] + let html = substitute(html ,'#.*$','','') + let module = substitute(module,'\[.\]','','') + let ml = matchlist(html,'libraries/\([^\/]*\)\/') + if ml!=[] + let [_,package;x] = ml + let g:haddock_moduleindex[module] = {'package':package,'html':html} + endif + let ml = matchlist(html,'/\([^\/]*\)\/html/[A-Z]') + if ml!=[] + let [_,package;x] = ml + let g:haddock_moduleindex[module] = {'package':package,'html':html} + endif + endfor + endfor +endfunction + +function! HaveModuleIndex() + return (g:haddock_moduleindex!={} || MkHaddockModuleIndex() ) +endfunction + +" decode HTML symbol encodings (are these all we need?) +function! DeHTML(entry) + let res = a:entry + let decode = { '<': '<', '>': '>', '&': '\\&' } + for enc in keys(decode) + exe 'let res = substitute(res,"'.enc.'","'.decode[enc].'","g")' + endfor + return res +endfunction + +" find haddocks for word under cursor +" also lists possible definition sites +" - needs to work for both qualified and unqualified items +" - for 'import qualified M as A', consider M.item as source of A.item +" - offer sources from both type [t] and value [v] namespaces +" - for unqualified items, list all possible sites +" - for qualified items, list imported sites only +" keep track of keys with and without namespace tags: +" the former are needed for lookup, the latter for matching against source +map <LocalLeader>? :call Haddock()<cr> +function! Haddock() + amenu ]Popup.- :echo '-'<cr> + aunmenu ]Popup + let namsym = haskellmode#GetNameSymbol(getline('.'),col('.'),0) + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return 0 + endif + let [start,symb,qual,unqual] = namsym + let imports = haskellmode#GatherImports() + let asm = has_key(imports[1],qual) ? imports[1][qual]['modules'] : [] + let name = unqual + let dict = HaddockIndexLookup(name) + if dict=={} | return | endif + " for qualified items, narrow results to possible imports that provide qualifier + let filteredKeys = filter(copy(keys(dict)) + \ ,'match(asm,substitute(v:val,''\[.\]'','''',''''))!=-1') + let keys = (qual!='') ? filteredKeys : keys(dict) + if (keys==[]) && (qual!='') + echoerr qual.'.'.unqual.' not found in imports' + return 0 + endif + if len(keys)==1 && exists("g:haskell_avoid_singleton_menus") + call DocBrowser(dict[keys[0]]) + elseif has("gui_running") + for key in keys + exe 'amenu ]Popup.'.escape(key,'\.').' :call DocBrowser('''.dict[key].''')<cr>' + endfor + popup ]Popup + else + let s:choices = keys + let key = input('browse docs for '.name.' in: ','','customlist,CompleteAux') + if key!='' + call DocBrowser(dict[key]) + endif + endif +endfunction + +if !exists("g:haskell_search_engines") + let g:haskell_search_engines = + \ {'hoogle':'http://www.haskell.org/hoogle/?hoogle=%s' + \ ,'hayoo!':'http://holumbus.fh-wedel.de/hayoo/hayoo.html?query=%s' + \ } +endif + +map <LocalLeader>?? :let es=g:haskell_search_engines + \ \|echo "g:haskell_search_engines" + \ \|for e in keys(es) + \ \|echo e.' : '.es[e] + \ \|endfor<cr> +map <LocalLeader>?1 :call HaskellSearchEngine('hoogle')<cr> +map <LocalLeader>?2 :call HaskellSearchEngine('hayoo!')<cr> + +" query one of the Haskell search engines for the thing under cursor +" - unqualified symbols need to be url-escaped +" - qualified ids need to be fed as separate qualifier and id for +" both hoogle (doesn't handle qualified symbols) and hayoo! (no qualified +" ids at all) +" - qualified ids referring to import-qualified-as qualifiers need to be +" translated to the multi-module searches over the list of original modules +function! HaskellSearchEngine(engine) + amenu ]Popup.- :echo '-'<cr> + aunmenu ]Popup + let namsym = haskellmode#GetNameSymbol(getline('.'),col('.'),0) + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return 0 + endif + let [start,symb,qual,unqual] = namsym + let imports = haskellmode#GatherImports() + let asm = has_key(imports[1],qual) ? imports[1][qual]['modules'] : [] + let unqual = haskellmode#UrlEncode(unqual) + if a:engine=='hoogle' + let name = asm!=[] ? unqual.'+'.join(map(copy(asm),'"%2B".v:val'),'+') + \ : qual!='' ? unqual.'+'.haskellmode#UrlEncode('+').qual + \ : unqual + elseif a:engine=='hayoo!' + let name = asm!=[] ? unqual.'+module:('.join(copy(asm),' OR ').')' + \ : qual!='' ? unqual.'+module:'.qual + \ : unqual + else + let name = qual=="" ? unqual : qual.".".unqual + endif + if has_key(g:haskell_search_engines,a:engine) + call DocBrowser(printf(g:haskell_search_engines[a:engine],name)) + else + echoerr "unknown search engine: ".a:engine + endif +endfunction + +" used to pass on choices to CompleteAux +let s:choices=[] + +" if there's no gui, use commandline completion instead of :popup +" completion function CompleteAux suggests completions for a:al, wrt to s:choices +function! CompleteAux(al,cl,cp) + "echomsg '|'.a:al.'|'.a:cl.'|'.a:cp.'|' + let res = [] + let l = len(a:al)-1 + for r in s:choices + if l==-1 || r[0 : l]==a:al + let res += [r] + endif + endfor + return res +endfunction + +" CamelCase shorthand matching: +" favour upper-case letters and module qualifier separators (.) for disambiguation +function! CamelCase(shorthand,string) + let s1 = a:shorthand + let s2 = a:string + let notFirst = 0 " don't elide before first pattern letter + while ((s1!="")&&(s2!="")) + let head1 = s1[0] + let head2 = s2[0] + let elide = notFirst && ( ((head1=~'[A-Z]') && (head2!~'[A-Z.]')) + \ ||((head1=='.') && (head2!='.')) ) + if elide + let s2=s2[1:] + elseif (head1==head2) + let s1=s1[1:] + let s2=s2[1:] + else + return 0 + endif + let notFirst = (head1!='.')||(head2!='.') " treat separators as new beginnings + endwhile + return (s1=="") +endfunction + +" use haddock name index for insert mode completion (CTRL-X CTRL-U) +function! CompleteHaddock(findstart, base) + if a:findstart + let namsym = haskellmode#GetNameSymbol(getline('.'),col('.'),-1) " insert-mode: we're 1 beyond the text + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return -1 + endif + let [start,symb,qual,unqual] = namsym + return (start-1) + else " find keys matching with "a:base" + let res = [] + let l = len(a:base)-1 + let qual = a:base =~ '^[A-Z][a-zA-Z0-9_'']*\(\.[A-Z][a-zA-Z0-9_'']*\)*\(\.[a-zA-Z0-9_'']*\)\?$' + call HaveIndex() + for key in keys(g:haddock_index) + let keylist = map(deepcopy(keys(g:haddock_index[key])),'substitute(v:val,"\\[.\\]","","")') + if (key[0 : l]==a:base) + for m in keylist + let res += [{"word":key,"menu":m,"dup":1}] + endfor + elseif qual " this tends to be slower + for m in keylist + let word = m . '.' . key + if word[0 : l]==a:base + let res += [{"word":word,"menu":m,"dup":1}] + endif + endfor + endif + endfor + if res==[] " no prefix matches, try CamelCase shortcuts + for key in keys(g:haddock_index) + let keylist = map(deepcopy(keys(g:haddock_index[key])),'substitute(v:val,"\\[.\\]","","")') + if CamelCase(a:base,key) + for m in keylist + let res += [{"word":key,"menu":m,"dup":1}] + endfor + elseif qual " this tends to be slower + for m in keylist + let word = m . '.' . key + if CamelCase(a:base,word) + let res += [{"word":word,"menu":m,"dup":1}] + endif + endfor + endif + endfor + endif + return res + endif +endfunction +set completefunc=CompleteHaddock +set completeopt=menu,menuone,longest + +" fully qualify an unqualified name +" TODO: - standardise commandline versions of menus +map <LocalLeader>. :call Qualify()<cr> +function! Qualify() + amenu ]Popup.- :echo '-'<cr> + aunmenu ]Popup + let namsym = haskellmode#GetNameSymbol(getline('.'),col('.'),0) + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return 0 + endif + let [start,symb,qual,unqual] = namsym + if qual!='' " TODO: should we support re-qualification? + redraw + echo 'already qualified' + return 0 + endif + let name = unqual + let line = line('.') + let prefix = (start<=1 ? '' : getline(line)[0:start-2] ) + let dict = HaddockIndexLookup(name) + if dict=={} | return | endif + let keylist = map(deepcopy(keys(dict)),'substitute(v:val,"\\[.\\]","","")') + let imports = haskellmode#GatherImports() + let qualifiedImports = [] + for qualifiedImport in keys(imports[1]) + let c=0 + for module in imports[1][qualifiedImport]['modules'] + if haskellmode#ListElem(keylist,module) | let c+=1 | endif + endfor + if c>0 | let qualifiedImports=[qualifiedImport]+qualifiedImports | endif + endfor + "let asm = has_key(imports[1],qual) ? imports[1][qual]['modules'] : [] + let keylist = filter(copy(keylist),'index(qualifiedImports,v:val)==-1') + if has("gui_running") + " amenu ]Popup.-imported- : + for key in qualifiedImports + let lhs=escape(prefix.name,'/.|\') + let rhs=escape(prefix.key.'.'.name,'/&|\') + exe 'amenu ]Popup.'.escape(key,'\.').' :'.line.'s/'.lhs.'/'.rhs.'/<cr>:noh<cr>' + endfor + amenu ]Popup.-not\ imported- : + for key in keylist + let lhs=escape(prefix.name,'/.|\') + let rhs=escape(prefix.key.'.'.name,'/&|\') + exe 'amenu ]Popup.'.escape(key,'\.').' :'.line.'s/'.lhs.'/'.rhs.'/<cr>:noh<cr>' + endfor + popup ]Popup + else + let s:choices = qualifiedImports+keylist + let key = input('qualify '.name.' with: ','','customlist,CompleteAux') + if key!='' + let lhs=escape(prefix.name,'/.\') + let rhs=escape(prefix.key.'.'.name,'/&\') + exe line.'s/'.lhs.'/'.rhs.'/' + noh + endif + endif +endfunction + +" create (qualified) import for a (qualified) name +" TODO: refine search patterns, to avoid misinterpretation of +" oddities like import'Neither or not'module +map <LocalLeader>i :call Import(0,0)<cr> +map <LocalLeader>im :call Import(1,0)<cr> +map <LocalLeader>iq :call Import(0,1)<cr> +map <LocalLeader>iqm :call Import(1,1)<cr> +function! Import(module,qualified) + amenu ]Popup.- :echo '-'<cr> + aunmenu ]Popup + let namsym = haskellmode#GetNameSymbol(getline('.'),col('.'),0) + if namsym==[] + redraw + echo 'no name/symbol under cursor!' + return 0 + endif + let [start,symb,qual,unqual] = namsym + let name = unqual + let pname = ( symb ? '('.name.')' : name ) + let importlist = a:module ? '' : '('.pname.')' + let qualified = a:qualified ? 'qualified ' : '' + + if qual!='' + exe 'call append(search(''\%1c\(\<import\>\|\<module\>\|{-# OPTIONS\|{-# LANGUAGE\)'',''nb''),''import '.qualified.qual.importlist.''')' + return + endif + + let line = line('.') + let prefix = getline(line)[0:start-1] + let dict = HaddockIndexLookup(name) + if dict=={} | return | endif + let keylist = map(deepcopy(keys(dict)),'substitute(v:val,"\\[.\\]","","")') + if has("gui_running") + for key in keylist + " exe 'amenu ]Popup.'.escape(key,'\.').' :call append(search("\\%1c\\(import\\\\|module\\\\|{-# OPTIONS\\)","nb"),"import '.key.importlist.'")<cr>' + exe 'amenu ]Popup.'.escape(key,'\.').' :call append(search(''\%1c\(\<import\>\\|\<module\>\\|{-# OPTIONS\\|{-# LANGUAGE\)'',''nb''),''import '.qualified.key.escape(importlist,'|').''')<cr>' + endfor + popup ]Popup + else + let s:choices = keylist + let key = input('import '.name.' from: ','','customlist,CompleteAux') + if key!='' + exe 'call append(search(''\%1c\(\<import\>\|\<module\>\|{-# OPTIONS\|{-# LANGUAGE\)'',''nb''),''import '.qualified.key.importlist.''')' + endif + endif +endfunction + +function! HaddockIndexLookup(name) + call HaveIndex() + if !has_key(g:haddock_index,a:name) + echoerr a:name 'not found in haddock index' + return {} + endif + return g:haddock_index[a:name] +endfunction + +" copied from ghc.vim :-( should we move everything to using autoload instead? +" we query the ghc version here, as we don't otherwise need it.. +function! GHC_VersionGE(target) + let s:ghc_version = substitute(system(g:ghc . ' --numeric-version'),'\n','','') + let current = split(g:ghc_version, '\.' ) + let target = a:target + for i in current + if ((target==[]) || (i>target[0])) + return 1 + elseif (i==target[0]) + let target = target[1:] + else + return 0 + endif + endfor + return 1 +endfunction +ftplugin/haskell_hpaste.vim [[[1 +79 +" rudimentary hpaste support for vim +" (using netrw for reading, wget for posting/annotating) +" +" claus reinke, last modified: 07/04/2009 +" +" part of haskell plugins: http://projects.haskell.org/haskellmode-vim + +" unless wget is in your PATH, you need to set g:wget +" before loading this script. windows users are out of +" luck, unless they have wget installed (such as the +" cygwin one looked for here), or adapt this script to +" whatever alternative they have at hand (perhaps using +" vim's perl/python bindings?) +if !exists("g:wget") + if executable("wget") + let g:wget = "!wget -q" + else + let g:wget = "!c:\\cygwin\\bin\\wget -q" + endif +endif + +" read (recent) hpaste files +" show index in new buffer, where ,r will open current entry +" and ,p will annotate current entry with current buffer +command! HpasteIndex call HpasteIndex() +function! HpasteIndex() + new + read http://hpaste.org + %s/\_$\_.//g + %s/<tr[^>]*>//g + %s/<\/tr>/
/g + g/<\/table>/d + g/DOCTYPE/d + %s/<td>\([^<]*\)<\/td><td><a href="\/fastcgi\/hpaste\.fcgi\/view?id=\([0-9]*\)">\([^<]*\)<\/a><\/td><td>\([^<]*\)<\/td><td>\([^<]*\)<\/td><td>\([^<]*\)<\/td>/\2 [\1] "\3" \4 \5 \6/ + map <buffer> ,r 0yE:noh<cr>:call HpasteEditEntry('"')<cr> +endfunction + +" load an existing entry for editing +command! -nargs=1 HpasteEditEntry call HpasteEditEntry(<f-args>) +function! HpasteEditEntry(entry) + new + exe 'Nread http://hpaste.org/fastcgi/hpaste.fcgi/raw?id='.a:entry + "exe 'map <buffer> ,p :call HpasteAnnotate('''.a:entry.''')<cr>' +endfunction + +" " posting temporarily disabled -- needs someone to look into new +" " hpaste.org structure + +" " annotate existing entry (only to be called via ,p in HpasteIndex) +" function! HpasteAnnotate(entry) +" let nick = input("nick? ") +" let title = input("title? ") +" if nick=='' || title=='' +" echo "nick or title missing. aborting annotation" +" return +" endif +" call HpastePost('annotate/'.a:entry,nick,title) +" endfunction +" +" " post new hpaste entry +" " using 'wget --post-data' and url-encoded content +" command! HpastePostNew call HpastePost('new',<args>) +" function! HpastePost(mode,nick,title,...) +" let lines = getbufline("%",1,"$") +" let pat = '\([^[:alnum:]]\)' +" let code = '\=printf("%%%02X",char2nr(submatch(1)))' +" let lines = map(lines,'substitute(v:val."\r\n",'''.pat.''','''.code.''',''g'')') +" +" let url = 'http://hpaste.org/' . a:mode +" let nick = substitute(a:nick,pat,code,'g') +" let title = substitute(a:title,pat,code,'g') +" if a:0==0 +" let announce = 'false' +" else +" let announce = a:1 +" endif +" let cmd = g:wget.' --post-data="content='.join(lines,'').'&nick='.nick.'&title='.title.'&announce='.announce.'" '.url +" exe escape(cmd,'%') +" endfunction +autoload/haskellmode.vim [[[1 +155 +" +" utility functions for haskellmode plugins +" +" (Claus Reinke; last modified: 23/04/2009) +" +" part of haskell plugins: http://projects.haskell.org/haskellmode-vim +" please send patches to <claus.reinke@talk21.com> + + + +" find start/extent of name/symbol under cursor; +" return start, symbolic flag, qualifier, unqualified id +" (this is used in both haskell_doc.vim and in GHC.vim) +function! haskellmode#GetNameSymbol(line,col,off) + let name = "[a-zA-Z0-9_']" + let symbol = "[-!#$%&\*\+/<=>\?@\\^|~:.]" + "let [line] = getbufline(a:buf,a:lnum) + let line = a:line + + " find the beginning of unqualified id or qualified id component + let start = (a:col - 1) + a:off + if line[start] =~ name + let pattern = name + elseif line[start] =~ symbol + let pattern = symbol + else + return [] + endif + while start > 0 && line[start - 1] =~ pattern + let start -= 1 + endwhile + let id = matchstr(line[start :],pattern.'*') + " call confirm(id) + + " expand id to left and right, to get full id + let idPos = id[0] == '.' ? start+2 : start+1 + let posA = match(line,'\<\(\([A-Z]'.name.'*\.\)\+\)\%'.idPos.'c') + let start = posA>-1 ? posA+1 : idPos + let posB = matchend(line,'\%'.idPos.'c\(\([A-Z]'.name.'*\.\)*\)\('.name.'\+\|'.symbol.'\+\)') + let end = posB>-1 ? posB : idPos + + " special case: symbolic ids starting with . + if id[0]=='.' && posA==-1 + let start = idPos-1 + let end = posB==-1 ? start : end + endif + + " classify full id and split into qualifier and unqualified id + let fullid = line[ (start>1 ? start-1 : 0) : (end-1) ] + let symbolic = fullid[-1:-1] =~ symbol " might also be incomplete qualified id ending in . + let qualPos = matchend(fullid, '\([A-Z]'.name.'*\.\)\+') + let qualifier = qualPos>-1 ? fullid[ 0 : (qualPos-2) ] : '' + let unqualId = qualPos>-1 ? fullid[ qualPos : -1 ] : fullid + " call confirm(start.'/'.end.'['.symbolic.']:'.qualifier.' '.unqualId) + + return [start,symbolic,qualifier,unqualId] +endfunction + +function! haskellmode#GatherImports() + let imports={0:{},1:{}} + let i=1 + while i<=line('$') + let res = haskellmode#GatherImport(i) + if !empty(res) + let [i,import] = res + let prefixPat = '^import\s*\(qualified\)\?\s\+' + let modulePat = '\([A-Z][a-zA-Z0-9_''.]*\)' + let asPat = '\(\s\+as\s\+'.modulePat.'\)\?' + let hidingPat = '\(\s\+hiding\s*\((.*)\)\)\?' + let listPat = '\(\s*\((.*)\)\)\?' + let importPat = prefixPat.modulePat.asPat.hidingPat.listPat ".'\s*$' + + let ml = matchlist(import,importPat) + if ml!=[] + let [_,qualified,module,_,as,_,hiding,_,explicit;x] = ml + let what = as=='' ? module : as + let hidings = split(hiding[1:-2],',') + let explicits = split(explicit[1:-2],',') + let empty = {'lines':[],'hiding':hidings,'explicit':[],'modules':[]} + let entry = has_key(imports[1],what) ? imports[1][what] : deepcopy(empty) + let imports[1][what] = haskellmode#MergeImport(deepcopy(entry),i,hidings,explicits,module) + if !(qualified=='qualified') + let imports[0][what] = haskellmode#MergeImport(deepcopy(entry),i,hidings,explicits,module) + endif + else + echoerr "haskellmode#GatherImports doesn't understand: ".import + endif + endif + let i+=1 + endwhile + if !has_key(imports[1],'Prelude') + let imports[0]['Prelude'] = {'lines':[],'hiding':[],'explicit':[],'modules':[]} + let imports[1]['Prelude'] = {'lines':[],'hiding':[],'explicit':[],'modules':[]} + endif + return imports +endfunction + +function! haskellmode#ListElem(list,elem) + for e in a:list | if e==a:elem | return 1 | endif | endfor + return 0 +endfunction + +function! haskellmode#ListIntersect(list1,list2) + let l = [] + for e in a:list1 | if index(a:list2,e)!=-1 | let l += [e] | endif | endfor + return l +endfunction + +function! haskellmode#ListUnion(list1,list2) + let l = [] + for e in a:list2 | if index(a:list1,e)==-1 | let l += [e] | endif | endfor + return a:list1 + l +endfunction + +function! haskellmode#ListWithout(list1,list2) + let l = [] + for e in a:list1 | if index(a:list2,e)==-1 | let l += [e] | endif | endfor + return l +endfunction + +function! haskellmode#MergeImport(entry,line,hiding,explicit,module) + let lines = a:entry['lines'] + [ a:line ] + let hiding = a:explicit==[] ? haskellmode#ListIntersect(a:entry['hiding'], a:hiding) + \ : haskellmode#ListWithout(a:entry['hiding'],a:explicit) + let explicit = haskellmode#ListUnion(a:entry['explicit'], a:explicit) + let modules = haskellmode#ListUnion(a:entry['modules'], [ a:module ]) + return {'lines':lines,'hiding':hiding,'explicit':explicit,'modules':modules} +endfunction + +" collect lines belonging to a single import statement; +" return number of last line and collected import statement +" (assume opening parenthesis, if any, is on the first line) +function! haskellmode#GatherImport(lineno) + let lineno = a:lineno + let import = getline(lineno) + if !(import=~'^import\s') | return [] | endif + let open = strlen(substitute(import,'[^(]','','g')) + let close = strlen(substitute(import,'[^)]','','g')) + while open!=close + let lineno += 1 + let linecont = getline(lineno) + let open += strlen(substitute(linecont,'[^(]','','g')) + let close += strlen(substitute(linecont,'[^)]','','g')) + let import .= linecont + endwhile + return [lineno,import] +endfunction + +function! haskellmode#UrlEncode(string) + let pat = '\([^[:alnum:]]\)' + let code = '\=printf("%%%02X",char2nr(submatch(1)))' + let url = substitute(a:string,pat,code,'g') + return url +endfunction + +doc/haskellmode.txt [[[1 +456 +*haskellmode.txt* Haskell Mode Plugins 23/04/2009 + +Authors: + Claus Reinke <claus.reinke@talk21.com> ~ + +Homepage: + http://projects.haskell.org/haskellmode-vim + +CONTENTS *haskellmode* + + 1. Overview |haskellmode-overview| + 1.1 Runtime Requirements |haskellmode-requirements| + 1.2 Quick Reference |haskellmode-quickref| + 2. Settings |haskellmode-settings| + 2.1 GHC and web browser |haskellmode-settings-main| + 2.2 Fine tuning - more configuration options |haskellmode-settings-fine| + 3. GHC Compiler Integration |haskellmode-compiler| + 4. Haddock Integration |haskellmode-haddock| + 4.1 Indexing |haskellmode-indexing| + 4.2 Lookup |haskellmode-lookup| + 4.3 Editing |haskellmode-editing| + 5. Hpaste Integration |haskellmode-hpaste| + 6. Additional Resources |haskellmode-resources| + +============================================================================== + *haskellmode-overview* +1. Overview ~ + + The Haskell mode plugins provide advanced support for Haskell development + using GHC/GHCi on Windows and Unix-like systems. The functionality is + based on Haddock-generated library indices, on GHCi's interactive + commands, or on simply activating (some of) Vim's built-in program editing + support in Haskell-relevant fashion. These plugins live side-by-side with + the pre-defined |syntax-highlighting| support for |haskell| sources, and + any other Haskell-related plugins you might want to install (see + |haskellmode-resources|). + + The Haskell mode plugins consist of three filetype plugins (haskell.vim, + haskell_doc.vim, haskell_hpaste.vim), which by Vim's |filetype| detection + mechanism will be auto-loaded whenever files with the extension '.hs' are + opened, and one compiler plugin (ghc.vim) which you will need to load from + your vimrc file (see |haskellmode-settings|). + + + *haskellmode-requirements* +1.1 Runtime Requirements ~ + + The plugins require a recent installation of GHC/GHCi. The functionality + derived from Haddock-generated library indices also requires a local + installation of the Haddock documentation for GHC's libraries (if there is + no documentation package for your system, you can download a tar-ball from + haskell.org), as well as an HTML browser (see |haddock_browser|). If you + want to use the experimental hpaste interface, you will also need Wget. + + * GHC/GHCi ~ + Provides core functionality. http://www.haskell.org/ghc + + * HTML library documentation files and indices generated by Haddock ~ + These usually come with your GHC installation, possibly as a separate + package. If you cannot get them this way, you can download a tar-ball + matching your GHC version from http://www.haskell.org/ghc/docs/ + + * HTML browser with basic CSS support ~ + For browsing Haddock docs. + + * Wget ~ + For interfacing with http://hpaste.org. + + Wget is widely available for modern Unix-like operating systems. Several + ports also exist for Windows, including: + + - Official GNU Wget (natively compiled for Win32) + http://www.gnu.org/software/wget/#downloading + + - UnxUtils Wget (natively compiled for Win32, bundled with other ported + Unix utilities) + http://sourceforge.net/projects/unxutils/ + + - Cygwin Wget (emulated POSIX in Win32, must be run under Cygwin) + http://cygwin.com/packages/wget/ + + *haskellmode-quickref* +1.2 Quick Reference ~ + +|:make| load into GHCi, show errors (|quickfix| |:copen|) +|_ct| create |tags| file +|_si| show info for id under cursor +|_t| show type for id under cursor +|_T| insert type declaration for id under cursor +|balloon| show type for id under mouse pointer +|_?| browse Haddock entry for id under cursor +|_?1| search Hoogle for id under cursor +|_?2| search Hayoo! for id under cursor +|:IDoc| {identifier} browse Haddock entry for unqualified {identifier} +|:MDoc| {module} browse Haddock entry for {module} +|:FlagReference| {s} browse Users Guide Flag Reference for section {s} +|_.| qualify unqualified id under cursor +|_i| add 'import <module>(<identifier>)' for id under cursor +|_im| add 'import <module>' for id under cursor +|_iq| add 'import qualified <module>(<identifier>)' for id under cursor +|_iqm| add 'import qualified <module>' for id under cursor +|_ie| make imports explit for import statement under cursor +|_opt| add OPTIONS_GHC pragma +|_lang| add LANGUAGE pragma +|i_CTRL-X_CTRL-O| insert-mode completion based on imported ids (|haskellmode-XO|) +|i_CTRL-X_CTRL-U| insert-mode completion based on documented ids (|haskellmode-XU|) +|i_CTRL-N| insert-mode completion based on imported sources +|:GHCi|{command/expr} run GHCi command/expr in current module + +|:GHCStaticOptions| edit static GHC options for this buffer +|:DocSettings| show current Haddock-files-related plugin settings +|:DocIndex| populate Haddock index +|:ExportDocIndex| cache current Haddock index to a file +|:HpasteIndex| Read index of most recent entries from hpaste.org +|:HpastePostNew| Submit current buffer as a new hpaste + + +============================================================================== + *haskellmode-settings* +2. Settings ~ + + The plugins try to find their dependencies in standard locations, so if + you're lucky, you will only need to set |compiler| to ghc, and configure + the location of your favourite web browser. You will also want to make + sure that |filetype| detection and |syntax| highlighting are on. Given the + variety of things to guess, however, some dependencies might not be found + correctly, or the defaults might not be to your liking, in which case you + can do some more fine tuning. All of this configuration should happen in + your |vimrc|. +> + " enable syntax highlighting + syntax on + + " enable filetype detection and plugin loading + filetype plugin on +< + + *haskellmode-settings-main* +2.1 GHC and web browser ~ + + *compiler-ghc* *ghc-compiler* + To use the features provided by the GHC |compiler| plugin, use the + following |autocommand| in your vimrc: +> + au BufEnter *.hs compiler ghc +< + *g:ghc* + If the compiler plugin can't locate your GHC binary, or if you have + several versions of GHC installed and have a preference as to which binary + is used, set |g:ghc|: +> + :let g:ghc="/usr/bin/ghc-6.6.1" +< + *g:haddock_browser* + The preferred HTML browser for viewing Haddock documentation can be set as + follows: +> + :let g:haddock_browser="/usr/bin/firefox" +< + + *haskellmode-settings-fine* +2.2 Fine tuning - more configuration options ~ + + Most of the fine tuning is likely to happen for the haskellmode_doc.vim + plugin, so you can check the current settings for this plugin via the + command |:DocSettings|. If all the settings reported there are to your + liking, you probably won't need to do any fine tuning. + + *g:haddock_browser_callformat* + By default, the web browser|g:haddock_browser| will be started + asynchronously (in the background) on Windows or when vim is running in a + GUI, and synchronously (in the foreground) otherwise. These settings seem + to work fine if you are using a console mode browser (eg, when editing in + a remote session), or if you are starting a GUI browser that will launch + itself in the background. But if these settings do not work for you, you + can change the default browser launching behavior. + + This is controlled by |g:haddock_browser_callformat|. It specifies a + format string which uses two '%s' parameters, the first representing the + path of the browser to launch, and the second is the documentation URL + (minus the protocol specifier, i.e. file://) passed to it by the Haddock + plugin. For instance, to launch a GUI browser on Unix-like systems and + force it to the background (see also |shellredir|): +> + :let g:haddock_browser_callformat = '%s file://%s '.printf(&shellredir,'/dev/null').' &' +< + *g:haddock_docdir* + Your system's installed Haddock documentation for GHC and its libraries + should be automatically detected. If the plugin can't locate them, you + must point |g:haddock_docdir| to the path containing the master index.html + file for the subdirectories 'libraries', 'Cabal', 'users_guide', etc.: +> + :let g:haddock_docdir="/usr/local/share/doc/ghc/html/" +< + *g:haddock_indexfiledir* + The information gathered from Haddock's index files will be stored in a + file called 'haddock_index.vim' in a directory derived from the Haddock + location, or in $HOME. To configure another directory for the index file, + use: +> + :let g:haddock_indexfiledir="~/.vim/" +< + *g:wget* + If you also want to try the experimental hpaste functionality, you might + you need to set |g:wget| before the |hpaste| plugin is loaded (unless wget + is in your PATH): +> + :let g:wget="C:\Program Files\wget\wget.exe" +< + + Finally, the mappings actually use|<LocalLeader>|behind the scenes, so if + you have to, you can redefine|maplocalleader|to something other than '_'. + Just remember that the docs still refer to mappings starting with '_', to + avoid confusing the majority of users!-) + +============================================================================== + *haskellmode-compiler* *ghc* +3. GHC Compiler Integration ~ + + The GHC |compiler| plugin sets the basic |errorformat| and |makeprg| to + enable |quickfix| mode using GHCi, and provides functionality for show + info (|_si|), show type (|_t| or mouse |balloon|), add type declaration + (|_T|), create tag file (|_ct|), and insert-mode completion + (|i_CTRL-X_CTRL-O|) based on GHCi browsing of the current and imported + modules. + + To avoid frequent calls to GHCi, type information is cached in Vim. The + cache will be populated the first time a command depends on it, and will + be refreshed every time a |:make| goes through without generating errors + (if the |:make| does not succeed, the old types will remain available in + Vim). You can also unconditionally force reloading of type info using + |:GHCReload| (if GHCi cannot load your file, the type info will be empty). + + + In addition to the standard|quickfix| commands, the GHC compiler plugin + provides: + + *:GHCReload* +:GHCReload Reload modules and unconditionally refresh cache of + type info. Usually, |:make| is prefered, as that will + refresh the cache only if GHCi reports no errors, and + show the errors otherwise. + + *:GHCStaticOptions* +:GHCStaticOptions Edit the static GHC options for the current buffer. + Useful for adding hidden packages (-package ghc). + + *:GHCi* +:GHCi {command/expr} Run GHCi commands/expressions in the current module. + + *_ct* +_ct Create |tags| file for the current Haskell source + file. This uses GHCi's :ctags command, so it will work + recursively, but will only list tags for exported + entities. + + *_opt* +_opt Shows a menu of frequently used GHC compiler options + (selecting an entry adds the option as a pragma to the + start of the file). Uses popup menu (GUI) or :emenu + and command-line completion (CLI). + + *_lang* +_lang Shows a menu of the LANGUAGE options supported by GHC + (selecting an entry adds the language as a pragma to + the start of the file). Uses popup menu (GUI) or + :emenu and command-line completion (CLI). + + *_si* +_si Show extended information for the name under the + cursor. Uses GHCi's :info command. Output appears in + |preview-window| (when done, close with |:pclose|). + + *_t* +_t Show type for the name under the cursor. Uses cached + info from GHCi's :browse command. + + *_T* +_T Insert type declaration for the name under the cursor. + Uses cached info from GHCi's :browse command. + + *haskellmode-XO* *haskellmode-omni-completion* +CTRL-X CTRL-O Standard insert-mode omni-completion based on the + cached type info from GHCi browsing current and + imported modules. Only names from the current and from + imported modules are included (the completion menu + also show the type of each identifier). + +============================================================================== + *haskellmode-haddock* *haddock* +4. Haddock Integration ~ + + Haskell mode integrates with Haddock-generated HTML documentation, + providing features such as navigating to the Haddock entry for the + identifier under the cursor (|_?|), completion for the identifier under + the cursor (|i_CTRL-X_CTRL-U|), and adding import statements (|_i| |_im| + |_iq| |_iqm|) or module qualifier (|_.|) for the identifier under the + cursor. + + These commands operate on an internal Haddock index built from the + platform's installed Haddock documentation for GHC's libraries. Since + populating this index takes several seconds, it should be stored as a + file called 'haddock_index.vim' in the directory specified by + |g:haddock_indexfiledir|. + + Some commands present a different interface (popup menu or command-line + completion) according to whether the current Vim instance is graphical or + console-based (actually: whether or not the GUI is running). Such + differences are marked below with the annotations (GUI) and (CLI), + respectively. + + |:DocSettings| shows the settings for this plugin. If you are happy with + them, you can call |:ExportDocIndex| to populate and write out the + documentation index (should be called once for every new version of GHC). + + *:DocSettings* +:DocSettings Show current Haddock-files-related plugin settings. + + + *haskellmode-indexing* +4.1 Indexing ~ + + *:DocIndex* +:DocIndex Populate the Haddock index from the GHC library + documentation. + + *:ExportDocIndex* +:ExportDocIndex Cache the current Haddock index to a file (populate + index first, if empty). + + + *haskellmode-lookup* +4.2 Lookup ~ + + *_?* +_? Open the Haddock entry (in |haddock_browser|) for an + identifier under the cursor, selecting full + qualifications from a popup menu (GUI) or via + command-line completion (CLI), if the identifier is + not qualified. + + *_?1* +_?1 Search Hoogle (using |haddock_browser|) for an + identifier under the cursor. + + + *_?2* +_?2 Search Hayoo! (using |haddock_browser|) for an + identifier under the cursor. + + *:IDoc* +:IDoc {identifier} Open the Haddock entry for the unqualified + {identifier} in |haddock_browser|, suggesting possible + full qualifications. + + *:MDoc* +:MDoc {module} Open the Haddock entry for {module} in + |haddock_browser| (with command-line completion for + the fully qualified module name). + + *:FlagReference* +:FlagReference {s} Browse Users Guide Flag Reference for section {s} + (with command-line completion for section headers). + + + *haskellmode-editing* +4.3 Editing ~ + + *_.* +_. Fully qualify the unqualified name under the cursor + selecting full qualifications from a popup menu (GUI) + or via command-line completion (CLI). + + *_iq* *_i* +_i _iq Add 'import [qualified] <module>(<identifier>)' + statement for the identifier under the cursor, + selecting fully qualified modules from a popup menu + (GUI) or via command-line completion (CLI), if the + identifier is not qualified. This currently adds one + import statement per call instead of merging into + existing import statements. + + *_iqm* *_im* +_im Add 'import [qualified] <module>' statement for the + identifier under the cursor, selecting fully qualified + modules from a popup menu (GUI) or via command-line + completion (CLI), if the identifier is not qualified. + This currently adds one import statement per call + instead of merging into existing import statements. + + *_ie* +_ie On an 'import <module>' line, in a correctly loadable + module, temporarily comment out import and use :make + 'not in scope' errors to explicitly list imported + identifiers. + + *haskellmode-XU* *haskellmode-user-completion* +CTRL-X CTRL-U User-defined insert mode name completion based on all + names known to the Haddock index, including package + names. Completions are presented in a popup menu which + also displays the fully qualified module from which + each entry may be imported. + + CamelCode shortcuts are supported, meaning that + lower-case letters can be elided, using only + upper-case letters and module qualifier separators (.) + for disambiguation: + + pSL -> putStrLn + C.E.t -> Control.Exception.t + C.M.MP -> Control.Monad.MonadPlus + + To reduce unwanted matches, the first letter of such + shortcuts and the first letter after each '.' have to + match directly. + +============================================================================== + *haskellmode-hpaste* *hpaste* +5. Hpaste Integration ~ + + This experimental feature allows browsing and posting to + http://hpaste.org, a Web-based pastebin tailored for Haskell code. + + + *:HpasteIndex* +:HpasteIndex Read the most recent entries from hpaste.org. Show an + index of the entries in a new buffer, where ',r' will + open the current highlighted entry [and ',p' will + annotate it with the current buffer]. + + *:HpastePostNew* +:HpastePostNew Submit current buffer as a new hpaste entry. + [This, and ',p' above, are temporarily disabled, + needs update to new hpaste.org layout] + +============================================================================== + *haskellmode-resources* +6. Additional Resources ~ + + An quick screencast tour through of these plugins is available at: + + http://projects.haskell.org/haskellmode-vim/screencasts.html + + Other Haskell-related Vim plugins can be found here: + + http://www.haskell.org/haskellwiki/Libraries_and_tools/Program_development#Vim + + Make sure to read about Vim's other program-editing features in its online + |user-manual|. Also have a look at Vim tips and plugins at www.vim.org - + two other plugins I tend to use when editing Haskell are AlignPlugin.vim + (to line up regexps for definitions, keywords, comments, etc. in + consecutive lines) and surround.vim (to surround text with quotes, + brackets, parentheses, comments, etc.). + +============================================================================== + vim:tw=78:ts=8:ft=help: diff --git a/.vim/indent/indent-r.vim b/.vim/indent/indent-r.vim new file mode 100644 index 0000000..30c03c5 --- /dev/null +++ b/.vim/indent/indent-r.vim @@ -0,0 +1,50 @@ +" Vim indent file +" Language: R +" Author: Jeremy Stephens <jeremy.f.stephens@vanderbilt.edu> +" URL: +" Last Change: +" Version: +" Notes: +" Changes: +" Options: + +" Only load this indent file when no other was loaded. +if exists("b:did_indent") + finish +endif +let b:did_indent = 1 + +setlocal indentexpr=GetRIndent() +"setlocal indentkeys+=0=,0),=EO +setlocal indentkeys+=0=,0),=EO,=> + +" Only define the function once. +if exists("*GetRIndent") + finish +endif + +function GetRIndent() + " Find a non-blank line above the current line. + let lnum = prevnonblank(v:lnum - 1) + " Hit the start of the file, use zero indent. + if lnum == 0 + return 0 + endif + + let line = getline(lnum) " last line + let cline = getline(v:lnum) " current line + let pline = getline(lnum - 1) " previous to last line + let ind = indent(lnum) + + " Indent blocks enclosed by {} or () + "if line =~ '[{(]\s*\(#[^)}]*\)\=$' + if line =~ '[{(]\s*[^)}]*$' + let ind = ind + &sw + endif + if cline =~ '^\s*[)}]' + let ind = ind - &sw + endif + + return ind +endfunction +" vim: set ts=4 sw=4: diff --git a/.vim/indent/tex.vim b/.vim/indent/tex.vim new file mode 100644 index 0000000..5823dae --- /dev/null +++ b/.vim/indent/tex.vim @@ -0,0 +1,139 @@ +" Vim indent file +" Language: LaTeX +" Maintainer: Johannes Tanzler <jtanzler@yline.com> +" Created: Sat, 16 Feb 2002 16:50:19 +0100 +" Last Change: Sun, 17 Feb 2002 00:09:11 +0100 +" Last Update: 18th feb 2002, by LH : +" (*) better support for the option +" (*) use some regex instead of several '||'. +" Version: 0.02 +" URL: comming soon: http://www.unet.univie.ac.at/~a9925098/vim/indent/tex.vim + +" --> If you're a Vim guru & and you find something that could be done in a +" better (perhaps in a more Vim-ish or Vi-ish) way, please let me know! + +" Options: {{{ +" +" To set the following options (ok, currently it's just one), add a line like +" let g:tex_indent_items = 1 +" to your ~/.vimrc. +" +" * g:tex_indent_items +" +" If this variable is set, item-environments are indented like Emacs does +" it, i.e., continuation lines are indented with a shiftwidth. +" +" NOTE: I've already set the variable below; delete the corresponding line +" if you don't like this behaviour. +" +" Per default, it is unset. +" +" set unset +" ---------------------------------------------------------------- +" \begin{itemize} \begin{itemize} +" \item blablabla \item blablabla +" bla bla bla bla bla bla +" \item blablabla \item blablabla +" bla bla bla bla bla bla +" \end{itemize} \end{itemize} +" +" +" This option applies to itemize, description, enumerate, and +" thebibliography. +" +" }}} + +" Delete the next line to avoid the special indention of items +if !exists("g:tex_indent_items") + let g:tex_indent_items = 1 +endif + +if exists("b:did_indent") | finish +endif +let b:did_indent = 1 + + +setlocal indentexpr=GetTeXIndent() +setlocal nolisp +setlocal nosmartindent +setlocal autoindent +setlocal indentkeys+=},=\\item,=\\bibitem + + +" Only define the function once +if exists("*GetTeXIndent") | finish +endif + + + +function GetTeXIndent() + + " Find a non-blank line above the current line. + let lnum = prevnonblank(v:lnum - 1) + + " At the start of the file use zero indent. + if lnum == 0 | return 0 + endif + + let ind = indent(lnum) + let line = getline(lnum) " last line + let cline = getline(v:lnum) " current line + + " Do not change indentation of commented lines. + if line =~ '^\s*%' + return ind + endif + + " Add a 'shiftwidth' after beginning of environments. + " Don't add it for \begin{document} and \begin{verbatim} + ""if line =~ '^\s*\\begin{\(.*\)}' && line !~ 'verbatim' + " LH modification : \begin does not always start a line + if line =~ '\\begin{\(.*\)}' && line !~ 'verbatim' + \ && line !~ 'document' + + let ind = ind + &sw + + if g:tex_indent_items == 1 + " Add another sw for item-environments + if line =~ 'itemize\|description\|enumerate\|thebibliography' + let ind = ind + &sw + endif + endif + endif + + + " Subtract a 'shiftwidth' when an environment ends + if cline =~ '^\s*\\end' && cline !~ 'verbatim' + \&& cline !~ 'document' + + if g:tex_indent_items == 1 + " Remove another sw for item-environments + if cline =~ 'itemize\|description\|enumerate\|thebibliography' + let ind = ind - &sw + endif + endif + + let ind = ind - &sw + endif + + + " Special treatment for 'item' + " ---------------------------- + + if g:tex_indent_items == 1 + + " '\item' or '\bibitem' itself: + if cline =~ '^\s*\\\(bib\)\=item' + let ind = ind - &sw + endif + + " lines following to '\item' are intented once again: + if line =~ '^\s*\\\(bib\)\=item' + let ind = ind + &sw + endif + + endif + + return ind +endfunction + diff --git a/.vim/kde-devel-vim.vim b/.vim/kde-devel-vim.vim new file mode 100644 index 0000000..7ce39a9 --- /dev/null +++ b/.vim/kde-devel-vim.vim @@ -0,0 +1,1029 @@ +" To use this file, add this line to your ~/.vimrc:, w/o the dquote +" source /path/to/kde/sources/kdesdk/scripts/kde-devel-vim.vim +" +" For CreateChangeLogEntry() : If you don't want to re-enter your +" Name/Email in each vim session then make sure to have the viminfo +" option enabled in your ~/.vimrc, with the '!' flag, enabling persistent +" storage of global variables. Something along the line of +" set viminfo=%,!,'50,\"100,:100,n~/.viminfo +" should do the trick. +" +" To make use of the ,ll and ,lg shortcuts you need to have the files +" GPLHEADER and LGPLHEADER in your home directory. Their content will be +" copied as license header then. + +" Don't include these in filename completions +set suffixes+=.lo,.o,.moc,.la,.closure,.loT + +" Search for headers here +set path=.,/usr/include,/usr/local/include, +if $QTDIR != '' + let &path = &path . $QTDIR . '/include/,' + let &path = &path . $QTDIR . '/include/Qt/,' + let &path = &path . $QTDIR . '/include/QtCore/,' + let &path = &path . $QTDIR . '/include/Qt3Support/,' + let &path = &path . $QTDIR . '/include/QtAssistant/,' + let &path = &path . $QTDIR . '/include/QtDBus/,' + let &path = &path . $QTDIR . '/include/QtDesigner/,' + let &path = &path . $QTDIR . '/include/QtGui/,' + let &path = &path . $QTDIR . '/include/QtNetwork/,' + let &path = &path . $QTDIR . '/include/QtOpenGL/,' + let &path = &path . $QTDIR . '/include/QtSql/,' + let &path = &path . $QTDIR . '/include/QtSvg/,' + let &path = &path . $QTDIR . '/include/QtTest/,' + let &path = &path . $QTDIR . '/include/QtUiTools/,' + let &path = &path . $QTDIR . '/include/QtXml/,' +endif +if $KDEDIR != '' + let &path = &path . $KDEDIR . '/include/,' +endif +if $KDEDIRS != '' + let &path = &path . substitute( $KDEDIRS, '\(:\|$\)', '/include,', 'g' ) +endif +set path+=, + +" Use makeobj to build +set mp=makeobj + +" If TagList is Loaded then get a funny statusline +" Only works if kde-devel-vim.vim is loaded after taglist. +" Droping this script in ~/.vim/plugin works fine +if exists('loaded_taglist') + let Tlist_Process_File_Always=1 + set statusline=%<%f:[\ %{Tlist_Get_Tag_Prototype_By_Line()}\ ]\ %h%m%r%=%-14.(%l,%c%V%)\ %P +endif + +" Insert tab character in whitespace-only lines, complete otherwise +inoremap <Tab> <C-R>=SmartTab()<CR> + +if !exists("DisableSmartParens") +" Insert a space after ( or [ and before ] or ) unless preceded by a matching +" paren/bracket or space or inside a string or comment. Comments are only +" recognized as such if they start on the current line :-( +inoremap ( <C-R>=SmartParens( '(' )<CR> +inoremap [ <C-R>=SmartParens( '[' )<CR> +inoremap ] <C-R>=SmartParens( ']', '[' )<CR> +inoremap ) <C-R>=SmartParens( ')', '(' )<CR> +endif + +" Insert an #include statement for the current/last symbol +inoremap <F5> <C-O>:call AddHeader()<CR> + +" Insert a forward declaration for the current/last symbol +inoremap <S-F5> <C-O>:call AddForward()<CR> + +" Switch between header and implementation files on ,h +nmap <silent> ,h :call SwitchHeaderImpl()<CR> +nmap <silent> ,p :call SwitchPrivateHeaderImpl()<CR> + +" Comment selected lines on ,c in visual mode +vmap ,c :s,^,//X ,<CR>:noh<CR> +" Uncomment selected lines on ,u in visual mode +vmap ,u :s,^//X ,,<CR> + +" Insert an include guard based on the file name on ,i +nmap ,i :call IncludeGuard()<CR> + +" Insert license headers at the top of the file +nmap ,lg :call LicenseHeader( "GPL" )<CR> +nmap ,ll :call LicenseHeader( "LGPL" )<CR> +nmap ,lm :call LicenseHeader( "MIT" )<CR> + +" Insert simple debug statements into each method +nmap ,d :call InsertMethodTracer()<CR> + +" Expand #i to #include <.h> or #include ".h". The latter is chosen +" if the character typed after #i is a dquote +" If the character is > #include <> is inserted (standard C++ headers w/o .h) +iab #i <C-R>=SmartInclude()<CR> + +" Insert a stripped down CVS diff +iab DIFF <Esc>:call RunDiff()<CR> + +" mark 'misplaced' tab characters +set listchars=tab:·\ ,trail:· +set list + +set incsearch + +function! SetCodingStyle() + if &syntax == 'cmake' + call SmartParensOff() + set sw=3 + set ts=3 + set et + set tw=0 + return + endif + if ( &syntax !~ '^\(c\|cpp\|java\)$' ) + return + endif + "the path for the file + let pathfn = expand( '%:p:h' ) + if pathfn =~ 'nmm' + call SmartParensOff() + inoremap ( <C-R>=SpaceBetweenKeywordAndParens()<CR> + let g:need_brace_on_next_line = '\<\(class\|namespace\|struct\)\>' + let g:need_brace_on_same_line = '\<\(if\|else\|while\|switch\|do\|enum\|for\|try\|catch\)\>' + set sw=4 + set ts=4 + set noet + set tw=100 + elseif pathfn =~ 'kdepim' + if strlen(mapcheck('(','i')) > 0 + iunmap ( + endif + call SmartParensOn() + let g:need_brace_on_next_line = '\<\(class\|namespace\|struct\)\>' + let g:need_brace_on_same_line = '\<\(if\|else\|while\|switch\|do\|foreach\|forever\|enum\|for\|try\|catch\)\>' + set sw=2 + set sts=2 + set et + set tw=100 + elseif pathfn =~ 'kdemultimedia\/juk' + call SmartParensOff() + let g:need_brace_on_next_line = '\<\(class\|namespace\|struct\|if\|else\|while\|switch\|do\|foreach\|forever\|enum\|for\|try\|catch\)\>' + let g:need_brace_on_same_line = '' + set sw=4 + set sts=4 + set et + set tw=100 + else "if pathfn =~ '\(kdelibs\|qt-copy\)' + call SmartParensOff() + inoremap ( <C-R>=SpaceBetweenKeywordAndParens()<CR> + let g:need_brace_on_next_line = '\<\(class\|namespace\|struct\)\>' + let g:need_brace_on_same_line = '\<\(if\|else\|while\|switch\|do\|foreach\|forever\|enum\|for\|try\|catch\)\>' + set sw=4 + set sts=4 + set et + set tw=100 + endif + if ( !exists("g:noautobrace") ) + call EnableSmartLineBreak() + endif +endfunction + +function! DisableSmartLineBreak() + iunmap <CR> + iuna else +endfunction +function! EnableSmartLineBreak() + if exists("*pumvisible") + inoremap <CR> <C-R>=pumvisible() ? "\<lt>CR>" : "\<lt>ESC>:call SmartLineBreak()\<lt>CR>a\<lt>CR>"<CR> + else + inoremap <CR> <ESC>:call SmartLineBreak()<CR>a<CR> + endif + iab else <C-R>=SmartElse()<CR> +endfunction + +function! SmartElse() + "let next = nr2char( getchar( 0 ) ) + let prefix = '' + if strlen(g:need_brace_on_same_line) > 0 && 'else' =~ g:need_brace_on_same_line + if getline('.') =~ '^\s*$' + if getline(line('.') - 1) =~ '}$' + let prefix = prefix . "\<ESC>kmMjdd`MA " + elseif getline(line('.') - 1) =~ '}\s*$' + let prefix = prefix . "\<ESC>kmMjdd`MA" + endif + endif + endif + return prefix . "else\<Right>" +endfunction + +" automatic indenting is required for SmartLineBreak to work correctly +filetype indent on + +function! CreateMatchLine() + let linenum = line( '.' ) + let current_line = getline( linenum ) + " don't do magic if the cursor isn't at the end of the line or if it's + " inside a // comment + if col( '.' ) != strlen( current_line ) || match( current_line, '//' ) >= 0 + return '' + endif + " remove whitespace at the end + if match( current_line, '\s\+$' ) >= 0 + :execute ':s/\s*$//' + " the following is needed if return '' is called + :execute "normal $" + endif + let current_line = getline( linenum ) + " remove all /* */ comments + let current_line = substitute( current_line, '/\*.\{-}\*/', '', 'g' ) + " remove all strings + let current_line = substitute( current_line, "'[^']*'", '', 'g' ) + let current_line = substitute( current_line, '"\(\\"\|[^"]\)*"', '', 'g' ) + " remove all ( ) + while current_line =~ '(.*)' + let current_line = substitute( current_line, '([^()]*)', '', 'g' ) + endwhile + " prepend earlier lines until we find a ; or { + while linenum > 1 && current_line !~ ';' && current_line !~ '{.\+$' + let linenum = linenum - 1 + let prev_line = getline(linenum) + if synIDattr(synID(linenum, 1, 1), "name") == 'cComment' "inside a /* */ comment at the beginning of the line + if stridx(prev_line, '*/') == -1 + " next line please + let prev_line = '' + else + " remove everything before */ + let prev_line = substitute(prev_line, '^.*\*/', '*/', '') + endif + endif + " remove // comment + let prev_line = substitute(prev_line, '//.*$', '', '' ) + " concatenate the lines with a space in between + let current_line = prev_line.' '.current_line + " remove all /* */ comments + let current_line = substitute( current_line, '/\*.\{-}\*/', '', 'g' ) + " remove all strings + let current_line = substitute( current_line, "'[^']*'", '', 'g' ) + let current_line = substitute( current_line, '"\(\\"\|[^"]\)*"', '', 'g' ) + " remove all ( ) + while current_line =~ '(.*)' + let current_line = substitute( current_line, '([^()]*)', '', 'g' ) + endwhile + endwhile + " remove everything until the last ; + let current_line = substitute( current_line, '^.*;', '', '' ) + " remove everything until the last { which is not at the end of the line + let current_line = substitute( current_line, '^.*{\(.\+\)$', '\1', '' ) + " remove all [ ] + while current_line =~ '\[.*\]' + let current_line = substitute( current_line, '\[[^\[\]]*\]', '', 'g' ) + endwhile + " if <CR> was pressed inside ( ), [ ] or /* */ don't add braces + if current_line =~ '[(\[]' || current_line =~ '/\*' + return '' + endif + return current_line +endfunction + +function! AddClosingBrace(current_line) + if a:current_line =~ '\<enum\|class\|struct\>' + :execute "normal o};\<ESC>k" + elseif a:current_line =~ '\<namespace\>' + let namespace = substitute( a:current_line, '^.*namespace\s\+', '', '' ) + let namespace = substitute( namespace, '\s.*$', '', '' ) + :execute "normal o} // namespace " . namespace . "\<ESC>k" + else + :execute "normal o}\<ESC>k" + endif +endfunction + +function! SmartLineBreak() + if synIDattr(synID(line("."), col("."), 1), "name") == 'cComment' "inside a /* */ comment at the point where the line break occurs + return + endif + let match_line = CreateMatchLine() + if match_line == '' + return + endif + + let match_position1 = -1 + let match_position2 = -1 + if strlen(g:need_brace_on_same_line) > 0 + let match_position1 = match(match_line, g:need_brace_on_same_line) + if match_position1 > 0 + while strpart(match_line, match_position1 - 1, 1) == '#' + let old_position = match_position1 + let match_position1 = match(match_line, g:need_brace_on_same_line, match_position1 + 1) + if match_position1 == -1 + if strpart(match_line, old_position, 2) == 'if' + :execute "normal o#endif\<ESC>k$" + endif + return + endif + endwhile + endif + endif + if strlen(g:need_brace_on_next_line) > 0 && match_position1 == -1 + let match_position2 = match(match_line, g:need_brace_on_next_line) + if match_position2 > 0 + while strpart(match_line, match_position2 - 1, 1) == '#' + let old_position = match_position2 + let match_position2 = match(match_line, g:need_brace_on_same_line, match_position2 + 1) + if match_position2 == -1 + if strpart(match_line, old_position, 2) == 'if' + :execute "normal o#endif\<ESC>k$" + endif + return + endif + endwhile + endif + endif + + if match_position1 > -1 + if match_line =~ '}\s*else\>' + " make sure else is on the same line as the closing brace + if getline('.') =~ '^\s*else' + if getline(line('.') - 1) =~ '}$' + :execute "normal kA \<ESC>J" + elseif getline(line('.') - 1) =~ '}\s*$' + :execute "normal kJ" + endif + endif + endif + while getline('.') =~ '^\s*{$' + " opening brace is on its own line: move it up + :execute "normal kJ" + endwhile + if match_line =~ '{$' + if getline('.') =~ '[^ ]{$' + :execute ':s/{$/ {/' + endif + else + :execute ':s/$/ {/' + endif + call AddClosingBrace(match_line) + elseif getline('.') =~ '^\s*{$' + call AddClosingBrace('') + elseif match_position2 > -1 + if match_line =~ '{$' + :execute ':s/\s*{$//' + endif + :execute "normal o{" + call AddClosingBrace(match_line) + endif + :execute "normal $" +endfunction + +function! SmartParensOn() + inoremap ( <C-R>=SmartParens( '(' )<CR> + inoremap [ <C-R>=SmartParens( '[' )<CR> + inoremap ] <C-R>=SmartParens( ']', '[' )<CR> + inoremap ) <C-R>=SmartParens( ')', '(' )<CR> +endfunction + +function! SmartParensOff() + if strlen(mapcheck('[','i')) > 0 + iunmap ( + iunmap [ + iunmap ] + iunmap ) + endif +endfunction + +function! SmartTab() + let col = col('.') - 1 + if !col || getline('.')[col-1] !~ '\k' + return "\<Tab>" + else + return "\<C-P>" + endif +endfunction + +function! SmartParens( char, ... ) + if ! ( &syntax =~ '^\(c\|cpp\|java\)$' ) + return a:char + endif + let s = strpart( getline( '.' ), 0, col( '.' ) - 1 ) + if s =~ '//' + return a:char + endif + let s = substitute( s, '/\*\([^*]\|\*\@!/\)*\*/', '', 'g' ) + let s = substitute( s, "'[^']*'", '', 'g' ) + let s = substitute( s, '"\(\\"\|[^"]\)*"', '', 'g' ) + if s =~ "\\([\"']\\|/\\*\\)" + return a:char + endif + if a:0 > 0 + if strpart( getline( '.' ), col( '.' ) - 3, 2 ) == a:1 . ' ' + return "\<BS>" . a:char + endif + if strpart( getline( '.' ), col( '.' ) - 2, 1 ) == ' ' + return a:char + endif + return ' ' . a:char + endif + if !exists("g:DisableSpaceBeforeParen") + if a:char == '(' + if strpart( getline( '.' ), col( '.' ) - 3, 2 ) == 'if' || + \strpart( getline( '.' ), col( '.' ) - 4, 3 ) == 'for' || + \strpart( getline( '.' ), col( '.' ) - 6, 5 ) == 'while' || + \strpart( getline( '.' ), col( '.' ) - 7, 6 ) == 'switch' + return ' ( ' + endif + endif + endif + return a:char . ' ' +endfunction + +function! SpaceBetweenKeywordAndParens() + if ! ( &syntax =~ '^\(c\|cpp\|java\)$' ) + return '(' + endif + let s = strpart( getline( '.' ), 0, col( '.' ) - 1 ) + if s =~ '//' + " text inside a comment + return '(' + endif + let s = substitute( s, '/\*\([^*]\|\*\@!/\)*\*/', '', 'g' ) + let s = substitute( s, "'[^']*'", '', 'g' ) + let s = substitute( s, '"\(\\"\|[^"]\)*"', '', 'g' ) + if s =~ "\\([\"']\\|/\\*\\)" + " text inside a string + return '(' + endif + if a:0 > 0 + if strpart( getline( '.' ), col( '.' ) - 3, 2 ) == a:1 . ' ' + return "\<BS>" . a:char + endif + if strpart( getline( '.' ), col( '.' ) - 2, 1 ) == ' ' + return a:char + endif + return ' ' . a:char + endif + if strpart( getline( '.' ), col( '.' ) - 3, 2 ) == 'if' || + \strpart( getline( '.' ), col( '.' ) - 4, 3 ) == 'for' || + \strpart( getline( '.' ), col( '.' ) - 6, 5 ) == 'while' || + \strpart( getline( '.' ), col( '.' ) - 7, 6 ) == 'switch' || + \strpart( getline( '.' ), col( '.' ) - 8, 7 ) == 'foreach' || + \strpart( getline( '.' ), col( '.' ) - 8, 7 ) == 'forever' + return ' (' + endif + return '(' +endfunction + +function! SwitchHeaderImpl() + let privateheaders = '_p\.\([hH]\|hpp\|hxx\)$' + let headers = '\.\([hH]\|hpp\|hxx\)$' + let impl = '\.\([cC]\|cpp\|cc\|cxx\)$' + let fn = expand( '%' ) + if fn =~ privateheaders + let list = glob( substitute( fn, privateheaders, '.*', '' ) ) + elseif fn =~ headers + let list = glob( substitute( fn, headers, '.*', '' ) ) + elseif fn =~ impl + let list = glob( substitute( fn, impl, '.*', '' ) ) + endif + while strlen( list ) > 0 + let file = substitute( list, "\n.*", '', '' ) + let list = substitute( list, "[^\n]*", '', '' ) + let list = substitute( list, "^\n", '', '' ) + if ( ( fn =~ headers || fn =~ privateheaders ) && file =~ impl ) || ( fn =~ impl && file =~ headers ) + call AskToSave() + execute( "edit " . file ) + return + endif + endwhile + if ( fn =~ headers ) + call AskToSave() + if exists( "$implextension" ) + let file = substitute( fn, headers, '.' . $implextension, '' ) + else + let file = substitute( fn, headers, '.cpp', '' ) + endif + " check for modified state of current buffer and if modified ask: + " save, discard, cancel + execute( 'edit '.file ) + call append( 0, "#include \"".fn."\"" ) + call append( 2, "// vim: sw=4 sts=4 et tw=100" ) + execute( "set sw=4" ) + execute( "set sts=4" ) + execute( "set et" ) + execute( "set tw=100" ) + elseif fn =~ impl + call AskToSave() + let file = substitute( fn, impl, '.h', '' ) + execute( "edit ".file ) + endif +endfunction + +function! SwitchPrivateHeaderImpl() + let privateheaders = '_p\.\([hH]\|hpp\|hxx\)$' + let headers = '\.\([hH]\|hpp\|hxx\)$' + let impl = '\.\([cC]\|cpp\|cc\|cxx\)$' + let fn = expand( '%' ) + if fn =~ privateheaders + let list = glob( substitute( fn, privateheaders, '.*', '' ) ) + elseif fn =~ headers + let list = glob( substitute( fn, headers, '_p.*', '' ) ) + elseif fn =~ impl + let list = glob( substitute( fn, impl, '_p.*', '' ) ) + endif + while strlen( list ) > 0 + let file = substitute( list, "\n.*", '', '' ) + let list = substitute( list, "[^\n]*", '', '' ) + let list = substitute( list, "^\n", '', '' ) + if ( fn =~ privateheaders && file =~ impl ) || ( fn =~ impl && file =~ privateheaders ) || ( fn =~ headers && file =~ privateheaders ) + call AskToSave() + execute( "edit " . file ) + return + endif + endwhile + if ( fn =~ privateheaders ) + call AskToSave() + if exists( "$implextension" ) + let file = substitute( fn, privateheaders, '.' . $implextension, '' ) + else + let file = substitute( fn, privateheaders, '.cpp', '' ) + endif + " check for modified state of current buffer and if modified ask: + " save, discard, cancel + execute( 'edit '.file ) + call append( 0, "#include \"".fn."\"" ) + call append( 2, "// vim: sw=4 ts=4 noet" ) + execute( "set sw=4" ) + execute( "set ts=4" ) + elseif fn =~ impl + let file = substitute( fn, impl, '_p.h', '' ) + call CreatePrivateHeader( file ) + elseif fn =~ headers + let file = substitute( fn, headers, '_p.h', '' ) + call CreatePrivateHeader( file ) + endif +endfunction + +function! AskToSave() + if &modified + let yesorno = input("Save changes before switching file? [Y/n]") + if yesorno == 'y' || yesorno == '' || yesorno == 'Y' + :execute 'w' + return 1 + else + return 0 + endif + endif + return 1 +endfunction + +function! CreatePrivateHeader( privateHeader ) + let privateheaders = '_p\.\([hH]\|hpp\|hxx\)$' + let headers = '\.\([hH]\|hpp\|hxx\)$' + let impl = '\.\([cC]\|cpp\|cc\|cxx\)$' + let fn = expand( '%' ) + if fn =~ headers + let className = ClassNameFromHeader() + elseif fn =~ impl + let className = ClassNameFromImpl() + endif + + if AskToSave() && fn =~ headers + :normal gg + " check whether a Q_DECLARE_PRIVATE is needed + let dp = search( '\(^\|\s\+\)Q_DECLARE_PRIVATE\s*(\s*'.className.'\s*)' ) + if dp == 0 "nothing found + call search( '^\s*class\s\+\([A-Za-z0-9]\+_EXPORT\s\+\)[A-Za-z_]\+\s*\(:\s*[,\t A-Za-z_]\+\)\?\s*\n\?\s*{' ) + call search( '{' ) + let @c = className + if match(getline(line('.')+1), 'Q_OBJECT') + :normal joQ_DECLARE_PRIVATE(c) + else + :normal oQ_DECLARE_PRIVATE(c) + endif + :execute 'w' + endif + endif + execute( "edit ".a:privateHeader ) + let privateClassName = className . 'Private' + let header = substitute( a:privateHeader, privateheaders, '.h', '' ) + + call IncludeGuard() + " FIXME: find out what license to use + call LicenseHeader( "LGPL" ) + :set sw=4 + :set sts=4 + :set et + :set tw=100 + :normal Go// vim: sw=4 sts=4 et tw=100 + let @h = header + let @p = privateClassName + let @c = className + :normal kkko
#include "h"
class p
{
Q_DECLARE_PUBLIC(c)
protected:
c* q_ptr;
}; +endfunction + +function! ClassNameFromHeader() + :normal gg + call search( '^\s*class\s\+\([A-Za-z0-9]\+_EXPORT\s\+\)\?[A-Za-z_]\+\s*\(:\s*[,\t A-Za-z_]\+\)\?\s*\n\?\s*{' ) + "\zs and \ze mark start and end of the matching + return matchstr( getline('.'), '\s\+\zs\w\+\ze\s*\(:\|{\|$\)' ) +endfunction + +function! ClassNameFromImpl() + :normal gg + call search( '\s*\([A-Za-z_]\+\)::\1\s*(' ) + :normal "cye + return @c +endfunction + +function! IncludeGuard() + let guard = toupper( substitute( substitute( expand( '%' ), '\([^.]*\)\.h', '\1_h', '' ), '/', '_', '' ) ) + call append( '^', '#define ' . guard ) + + + call append( '^', '#ifndef ' . guard ) + call append( '$', '#endif // ' . guard ) + + +endfunction + +function! LicenseHeader( license ) + let filename = $HOME . "/" . a:license . "HEADER" + execute ":0r " . filename +" call append( 0, system( "cat " . filename ) ) +endfunction + +function! SmartInclude() + let next = nr2char( getchar( 0 ) ) + if next == '"' + return "#include \".h\"\<Left>\<Left>\<Left>" + endif + if next == '>' + return "#include <>\<Left>" + endif + return "#include <.h>\<Left>\<Left>\<Left>" +endfunction + +function! MapIdentHeader( ident ) + let header = tolower(substitute(a:ident, '::', '/', 'g')).'.h' + if a:ident =~ 'Private$' + let header = substitute(header, 'private', '_p', '') + endif + " always prefer the headers in the same directory + let check = header + let slash = 1 + while slash != -1 + if filereadable( check ) + return '"' . check . '"' + endif + let slash = match( check, '/' ) + let check = strpart( check, slash + 1 ) + endwhile + let check = tolower(substitute(a:ident, '::', '/', 'g')).'_p.h' + let slash = 1 + while slash != -1 + if filereadable(check) + return '"' . check . '"' + endif + let slash = match(check, '/') + let check = strpart(check, slash + 1) + endwhile + + " Qt stuff + if a:ident =~ '^Q[A-Z]' + " let's try to find the module + let module = '' + if $QTDIR != '' + if filereadable($QTDIR.'/include/QtCore/'.a:ident) + let module = 'QtCore/' + elseif filereadable($QTDIR.'/include/QtGui/'.a:ident) + let module = 'QtGui/' + elseif filereadable($QTDIR.'/include/Qt3Support/'.a:ident) + let module = 'Qt3Support/' + elseif filereadable($QTDIR.'/include/QtAssistant/'.a:ident) + let module = 'QtAssistant/' + elseif filereadable($QTDIR.'/include/QtDBus/'.a:ident) + let module = 'QtDBus/' + elseif filereadable($QTDIR.'/include/QtDesigner/'.a:ident) + let module = 'QtDesigner/' + elseif filereadable($QTDIR.'/include/QtNetwork/'.a:ident) + let module = 'QtNetwork/' + elseif filereadable($QTDIR.'/include/QtOpenGL/'.a:ident) + let module = 'QtOpenGL/' + elseif filereadable($QTDIR.'/include/QtSql/'.a:ident) + let module = 'QtSql/' + elseif filereadable($QTDIR.'/include/QtSvg/'.a:ident) + let module = 'QtSvg/' + elseif filereadable($QTDIR.'/include/QtTest/'.a:ident) + let module = 'QtTest/' + elseif filereadable($QTDIR.'/include/QtUiTools/'.a:ident) + let module = 'QtUiTools/' + elseif filereadable($QTDIR.'/include/QtXml/'.a:ident) + let module = 'QtXml/' + endif + endif + return '<'.module.a:ident.'>' + elseif a:ident == 'qDebug' || + \a:ident == 'qWarning' || + \a:ident == 'qCritical' || + \a:ident == 'qFatal' + return '<QtCore/QtDebug>' + elseif a:ident =~ 'Q_DECLARE_INTERFACE' + return '<QtCore/QObject>' + elseif a:ident =~ '^QT_VERSION' || + \a:ident =~ '^Q_\(W\|O\)S_' || + \a:ident =~ '^Q_CC_' || + \a:ident =~ '^Q_.*STRUCTOR_FUNCTION$' || + \a:ident =~ '^qu\?int' || + \a:ident =~ '^Q_.*_RESOURCE$' || + \a:ident == 'qreal' || + \a:ident == 'qAbs' || + \a:ident == 'qRound' || + \a:ident == 'qRound64' || + \a:ident == 'qMin' || + \a:ident == 'qMax' || + \a:ident == 'qBound' || + \a:ident == 'qVersion' || + \a:ident == 'qSharedBuild' || + \a:ident == 'Q_UNUSED' || + \a:ident == 'Q_ASSERT' || + \a:ident == 'qInstallMsgHandler' || + \a:ident == 'Q_GLOBAL_STATIC' || + \a:ident == 'Q_GLOBAL_STATIC_WITH_ARGS' || + \a:ident == 'qFuzzyCompare' || + \a:ident == 'qIsNull' || + \a:ident == 'qSwap' || + \a:ident =~ 'Q_DECLARE_\(FLAGS\|OPERATORS_FOR_FLAGS\|PRIVATE\|PUBLIC\)' || + \a:ident == 'Q_D' || + \a:ident == 'Q_Q' || + \a:ident == 'Q_DISABLE_COPY' || + \a:ident == 'qsrand' || + \a:ident == 'qrand' + return '<QtCore/QtGlobal>' + + " Phonon stuff + elseif a:ident =~ '^Phonon::[A-Z]' + if a:ident =~ '^Phonon::\(NoDisc\|Cd\|Dvd\|Vcd\|.\+MetaData\|.*State\|.*Category\|.\+Error\)' + return '<Phonon/Global>' + endif + return '<'.substitute(a:ident, '::', '/', 'g').'>' + endif + + " KDE stuff + let kdeincdir = substitute(system('kde4-config --prefix'), '[\n\r]*', '', 'g').'/include/KDE/' + let classname = substitute(a:ident, '^.*:', '', '') + let pathfn = expand('%:p:h') + if filereadable(kdeincdir.classname) && !pathfn =~ 'kdelibs' + return '<'.classname.'>' + elseif filereadable(kdeincdir.'Phonon/'.classname) + return '<Phonon/'.classname.'>' + elseif filereadable(kdeincdir.'Solid/'.classname) + return '<Solid/'.classname.'>' + elseif filereadable(kdeincdir.'KIO/'.classname) + return '<KIO/'.classname.'>' + elseif filereadable(kdeincdir.'KParts/'.classname) + return '<KParts/'.classname.'>' + elseif a:ident == 'K\(Double\|Int\)\(NumInput\|SpinBox\)' + return '<knuminput.h>' + elseif a:ident == 'KSharedConfig' + return '<kconfig.h>' + elseif a:ident == 'KConfigGroup' + return '<kconfiggroup.h>' + elseif a:ident == 'KListViewItem' + return '<klistview.h>' + elseif a:ident =~ 'kd\(Debug\|Warning\|Error\|Fatal\|Backtrace\)' + return '<kdebug.h>' + elseif a:ident == 'kapp' + return '<kapplication.h>' + elseif a:ident == 'i18n' || + \a:ident == 'I18N_NOOP' + return '<klocale.h>' + elseif a:ident == 'locate' || + \a:ident == 'locateLocal' + return '<kstandarddirs.h>' + elseif a:ident =~ '\(Small\|Desktop\|Bar\|MainBar\|User\)Icon\(Set\)\?' || + \a:ident == 'IconSize' + return '<kiconloader.h>' + + " aRts stuff + elseif a:ident =~ '\arts_\(debug\|info\|warning\|fatal\)' + return '<debug.h>' + + " Standard Library stuff + elseif a:ident =~ '\(std::\)\?\(cout\|cerr\|endl\)' + return '<iostream>' + elseif a:ident =~ '\(std::\)\?is\(alnum\|alpha\|ascii\|blank\|graph\|lower\|print\|punct\|space\|upper\|xdigit\)' + return '<cctype>' + elseif a:ident == 'printf' + return '<cstdio>' + endif + + let check = header + while 1 + if filereadable( check ) + return '"' . check . '"' + endif + let slash = match( check, '/' ) + if slash == -1 + return '<' . header . '>' + endif + let check = strpart( check, slash + 1 ) + endwhile +endfunction + +" This is a rather dirty hack, but seems to work somehow :-) (malte) +function! AddHeader() + let s = getline( '.' ) + let i = col( '.' ) - 1 + while i > 0 && strpart( s, i, 1 ) !~ '[A-Za-z0-9_:]' + let i = i - 1 + endwhile + while i > 0 && strpart( s, i, 1 ) =~ '[A-Za-z0-9_:]' + let i = i - 1 + endwhile + let start = match( s, '[A-Za-z0-9_]\+\(::[A-Z][A-Za-z0-9_]*\)*', i ) + let end = matchend( s, '[A-Za-z0-9_]\+\(::[A-Z][A-Za-z0-9_]*\)*', i ) +" if end > col( '.' ) +" let end = matchend( s, '[A-Za-z0-9_]\+', i ) +" endif + let ident = strpart( s, start, end - start ) + let header = MapIdentHeader(ident) + let include = '#include '.header + + let line = 1 + let incomment = 0 + let appendpos = 0 + let codestart = 0 + let similarpos = 0 + let similarity = 0 + while line <= line( '$' ) + let s = getline( line ) + if incomment == 1 + let end = matchend( s, '\*/' ) + if end == -1 + let line = line + 1 + continue + else + let s = strpart( s, end ) + let incomment = 0 + endif + endif + let s = substitute( s, '//.*', '', '' ) + let s = substitute( s, '/\*\([^*]\|\*\@!/\)*\*/', '', 'g' ) + if s =~ '/\*' + let incomment = 1 + elseif s =~ '^' . include + break + elseif s =~ '^#include' && s !~ '\.moc"' + let appendpos = line + if s =~ '^#include '.header[0:similarity+1] + let similarpos = line + let similarity = similarity + 1 + while s =~ '^#include '.header[0:similarity+1] + let similarity = similarity + 1 + endwhile + if s[9:strlen(s)-2] > header[0:strlen(header)-2] + let similarpos = similarpos - 1 + let similarity = 100 "this include belongs one line higher (assuming the order of includes already is alphabetically) + endif + endif + elseif codestart == 0 && s !~ '^$' + let codestart = line + endif + let line = line + 1 + endwhile + if similarpos > 0 + let appendpos = similarpos + endif + if line == line( '$' ) + 1 + if appendpos == 0 + call append( codestart - 1, include ) + call append( codestart, '' ) + else + call append( appendpos, include ) + endif + endif +endfunction + +function! AddForward() + let s = getline( '.' ) + let i = col( '.' ) - 1 + while i > 0 && strpart( s, i, 1 ) !~ '[A-Za-z0-9_:]' + let i = i - 1 + endwhile + while i > 0 && strpart( s, i, 1 ) =~ '[A-Za-z0-9_:]' + let i = i - 1 + endwhile + let start = match( s, '[A-Za-z0-9_]\+\(::[A-Za-z0-9_]\+\)*', i ) + let end = matchend( s, '[A-Za-z0-9_]\+\(::[A-Za-z0-9_]\+\)*', i ) + if end > col( '.' ) + let end = matchend( s, '[A-Za-z0-9_]\+', i ) + endif + let ident = strpart( s, start, end - start ) + let forward = 'class ' . ident . ';' + + let line = 1 + let incomment = 0 + let appendpos = 0 + let codestart = 0 + while line <= line( '$' ) + let s = getline( line ) + if incomment == 1 + let end = matchend( s, '\*/' ) + if end == -1 + let line = line + 1 + continue + else + let s = strpart( s, end ) + let incomment = 0 + endif + endif + let s = substitute( s, '//.*', '', '' ) + let s = substitute( s, '/\*\([^*]\|\*\@!/\)*\*/', '', 'g' ) + if s =~ '/\*' + let incomment = 1 + elseif s =~ '^' . forward + break + elseif s =~ '^\s*class [A-za-z0-9_]\+;' || (s =~ '^#include' && s !~ '\.moc"') + let appendpos = line + elseif codestart == 0 && s !~ '^$' + let codestart = line + endif + let line = line + 1 + endwhile + if line == line( '$' ) + 1 + if appendpos == 0 + call append( codestart - 1, forward ) + call append( codestart, '' ) + else + call append( appendpos, forward ) + endif + endif +endfunction + +function! RunDiff() + echo 'Diffing....' + read! cvs diff -bB -I \\\#include | egrep -v '(^Index:|^=+$|^RCS file:|^retrieving revision|^diff -u|^[+-]{3})' +endfunction + +function! CreateChangeLogEntry() + let currentBuffer = expand( "%" ) + + if exists( "g:EMAIL" ) + let mail = g:EMAIL + elseif exists( "$EMAIL" ) + let mail = $EMAIL + else + let mail = inputdialog( "Enter Name/Email for Changelog entry: " ) + if mail == "" + echo "Aborted ChangeLog edit..." + return + endif + let g:EMAIL = mail + endif + + if bufname( "ChangeLog" ) != "" && bufwinnr( bufname( "ChangeLog" ) ) != -1 + execute bufwinnr( bufname( "ChangeLog" ) ) . " wincmd w" + else + execute "split ChangeLog" + endif + + let lastEntry = getline( nextnonblank( 1 ) ) + let newEntry = strftime("%Y-%m-%d") . " " . mail + + if lastEntry != newEntry + call append( 0, "" ) + call append( 0, "" ) + call append( 0, newEntry ) + endif + + " like emacs, prepend the current buffer name to the entry. but unlike + " emacs I have no idea how to figure out the current function name :( + " (Simon) + if currentBuffer != "" + let newLine = "\t* " . currentBuffer . ": " + else + let newLine = "\t* " + endif + + call append( 2, newLine ) + + execute "normal 3G$" +endfunction + +function! AddQtSyntax() + if expand( "<amatch>" ) == "cpp" + syn keyword qtKeywords signals slots emit Q_SLOTS Q_SIGNALS + syn keyword qtMacros Q_OBJECT Q_WIDGET Q_PROPERTY Q_ENUMS Q_OVERRIDE Q_CLASSINFO Q_SETS SIGNAL SLOT Q_DECLARE_PUBLIC Q_DECLARE_PRIVATE Q_D Q_Q Q_DISABLE_COPY Q_DECLARE_METATYPE Q_PRIVATE_SLOT Q_FLAGS Q_INTERFACES Q_DECLARE_INTERFACE Q_EXPORT_PLUGIN2 Q_GADGET Q_SCRIPTABLE Q_INVOKABLE METHOD Q_ARG Q_RETURN_ARG + syn keyword qtCast qt_cast qobject_cast qvariant_cast qstyleoption_cast + syn keyword qtTypedef uchar uint ushort ulong Q_INT8 Q_UINT8 Q_INT16 Q_UINT16 Q_INT32 Q_UINT32 Q_LONG Q_ULONG Q_INT64 Q_UINT64 Q_LLONG Q_ULLONG pchar puchar pcchar qint8 quint8 qint16 quint16 qint32 quint32 qint64 quint64 qlonglong qulonglong qreal + syn keyword kdeKeywords k_dcop k_dcop_signals + syn keyword kdeMacros K_DCOP ASYNC PHONON_ABSTRACTBASE PHONON_OBJECT PHONON_HEIR PHONON_ABSTRACTBASE_IMPL PHONON_OBJECT_IMPL PHONON_HEIR_IMPL PHONON_PRIVATECLASS PHONON_PRIVATEABSTRACTCLASS K_DECLARE_PRIVATE K_D + syn keyword cRepeat foreach + syn keyword cRepeat forever + + hi def link qtKeywords Statement + hi def link qtMacros Type + hi def link qtCast Statement + hi def link qtTypedef Type + hi def link kdeKeywords Statement + hi def link kdeMacros Type + endif +endfunction + +function! InsertMethodTracer() + :normal [[kf(yBjokDebug() << ""()" << endl; +endfunction + +function! UpdateMocFiles() + if &syntax == "cpp" + let i = 1 + while i < 80 + let s = getline( i ) + if s =~ '^#include ".*\.moc"' + let s = substitute( s, '.*"\(.*\)\.moc"', '\1.h', '' ) + if stridx( &complete, s ) == -1 + let &complete = &complete . ',k' . s + endif + break + endif + let i = i + 1 + endwhile + endif +endfunction + +autocmd Syntax * call AddQtSyntax() +autocmd CursorHold * call UpdateMocFiles() +autocmd BufNewFile,BufRead * call SetCodingStyle() + +" vim: sw=4 sts=4 et diff --git a/.vim/ltags b/.vim/ltags new file mode 100644 index 0000000..bec7c56 --- /dev/null +++ b/.vim/ltags @@ -0,0 +1,78 @@ +#!/usr/bin/perl +# Author: Dimitri Antoniou <dimitri@risc2.aecom.yu.edu> +# usage: ltags filename +# handles: \label and \cite{ } with one or more arguments +# fails if arguments of cite spread over more than one line +# also searches in files that are \include or \input in the main file + +# get main LaTeX source file from command line: +$mainfile = shift; + +# get names of included files and store them in an array +open MAIN, $mainfile or die "$!" ; +@mainfile=<MAIN>; +@allsrcfiles = map{ /^\\(?:input|include){(.*?)}/ } @mainfile; +unshift @allsrcfiles, $mainfile; + +# loop over all source files +for $srcfile (@allsrcfiles) { + # if \input{fname} append .tex to fname + unless ( $srcfile =~ m/\.tex/ ) { $srcfile = $srcfile . "\.tex" } + open SRC, $srcfile or die "$!" ; + # store contents of source file in array @texfile + @texfile=<SRC>; + + # store lines with \label and \cite (or \citeonline) in arrays + @labelList = grep{ /\\label{/ } @texfile; + @citeList = grep{ /\\(cite|citeonline){/ } @texfile; + + # see if we use an external database; if yes, store its name in $bibfile + ($dbase) = grep{ /^\\bibliography{/ } @texfile; + if ($dbase) { + $dbase =~ m/\\bibliography{(.*?)}/; + $bibfile = $1; + } + + # write \bibitem in tags file + @mrefs=(); + @refs=(); + @multirefs=(); + foreach (@citeList) { + while ( m/\\(?:cite|citeonline){(.*?)}/g ) { + $refs = $1; + # if \cite has more than one argument, split them: + if ($refs =~ /,/) { + @mrefs = split /,/, $refs; + # there might be more than one \cite in a line: + push (@multirefs, @mrefs); + } + else { + @refs = ($refs); + push (@multirefs, @refs); + } + } + # in BibTeX, format is @ARTICLE{Name, }; in source file, \bibitem{Name} + for $ref (@multirefs) { + if ( $dbase ) { + push @unsorttag, "$ref\t$bibfile\t/{$ref,/\n" + } + else { + push @unsorttag, "$ref\t$srcfile\t/bibitem{$ref}/\n" + } + } + } + + # write \label in tag file + foreach (@labelList) { + m/\\label{(.*?)}/; + push @unsorttag, "$1\t$srcfile\t/label{$1}/\n"; + } +} + +# sort tag file; then, eliminate duplicates +@sortedtag = sort @unsorttag; +%seen = (); +@uniqtag = grep { ! $seen{$_} ++ } @sortedtag; + +open(TAGS, "> tags"); +print TAGS @uniqtag; diff --git a/.vim/moin1_6.vim b/.vim/moin1_6.vim new file mode 100644 index 0000000..f654af6 --- /dev/null +++ b/.vim/moin1_6.vim @@ -0,0 +1,83 @@ +" MoinMoin structured text syntax file +" Filename: moin.vim +" Language: MoinMoin structured text +" Maintainer: Gustavo Niemeyer <niemeyer@conectiva.com> +" Last Change: Sun, 02 Mar 2008 23:42:31 -0300 + +" remove any old syntax stuff hanging around +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +syn sync lines=30 + +syn region moinSettings start="\%^@@ Syntax:" end="^[^@]"me=e-1 end="^$" nextgroup=moinPragma +syn region moinPragma start="^#" end="^$" contained +syn region moinItalic start="''" end="''" +syn region moinBold start="'''" end="'''" +syn region moinUnderline start="__" end="__" +syn match moinSub ",,.{1,40},," +syn match moinSup "\^.\{-}\^" +syn region moinCode start="^{{{\z([^#]*\)" keepend end="\z1}}}" +syn match moinCode "{{{[^$]\{-}}}}" +syn region moinCode start="`" end="`" +syn cluster moinTextMarkup contains=moinItalic,moinBold,moinCode,moinUnderline,moinSup,moinSub +syn match moinComment "^##.*$" +syn region moinInlineComment start="/\*" end="\*/" +syn region moinMacro start="<<" end=">>" +syn region moinStrike start="--(" end=")--" +syn region moinHeader start="^\z(=\{1,5}\) " end=" \z1$" oneline +syn match moinRule "^-\{4,}$" +syn match moinSmileys "\(\s\|\_^\)\(%)\|(!)\|(./)\|/!\\\|:(\|:)\|:))\|:-(\|:-)\|:-))\|:-?\|:D\|:\\\|:o\|;)\|;-)\|<!>\|<:(\|>:>\|B)\|B-)\|X-(\|{\*}\|{1}\|{2}\|{3}\|{OK}\|{X}\|{da}\|{de}\|{en}\|{es}\|{fi}\|{fr}\|{it}\|{i}\|{ja}\|{ko}\|{nl}\|{o}\|{pt}\|{sv}\|{us}\|{zh}\||)\||-)\)\(\s\|\_$\)" +syn match moinLinkMoin "\([^!]\@<=\|^\)\<\(/\?\([[:upper:]][[:lower:][:digit:]]\+\)\{2,}\)\+\>" +syn match moinLinkMoinBang "!\ze\(/\?\([[:upper:]][[:lower:][:digit:]]\+\)\{2,}\)\+" +syn region moinLinkExplicit start="\[\[" end="\]\]" +syn region moinLinkEmbedded start="{{[^{]" end="}}" +syn match moinLinkEmail "<\?[[:alnum:]-._+]\+@[[:alnum:]-]\+\.[[:alnum:]-.]\+>\?" +syn match moinLinkUrl "\(http\|https\|ftp\|file\|mailto\|nntp\|news\|telnet\|irc\|ircs\|xmpp\|drawing\):\([^][:space:]<"'}|:,.)?!]\|[]"'}|:,.)?!][^][:space:]<"'}|:,.)?!]\)\+" +syn match moinLinkInter "[A-Z][a-zA-Z]\+:[^[:space:]'\":<]\([^][:space:]<"'}|:,.)?!]\|[]"'}|:,.)?!][^][:space:]<"'}|:,.)?!]\)\+" +syn cluster moinLinks contains=moinLinkMoin,moinLinkExplicit,moinLinkEmbedded,moinLinkEmail,moinLinkUrl,moinLinkInter +syn cluster moinMarkup contains=@moinTextMarkup,@moinLinks,moinMacro,moinStrike,moinSmileys +syn match moinTableOpt "<[^>]*>" contained +syn match moinTableMark "||\(<[^>]*>\)\?" contained contains=moinTableOpt +syn region moinTable start="^\s*||"rs=s end="||$"re=e oneline contains=moinTableMark,@moinMarkup +syn match moinDefinition "^\s\+.\{-}::\ze\(\s.*\)\?$" +syn match moinList "^\s\+\*\s" + +if !exists("did_dic_syntax_inits") + let did_dic_syntax_inits = 1 + hi link moinComment Comment + hi link moinInlineComment Comment + hi def moinBold term=bold cterm=bold gui=bold + hi def moinItalic ctermfg=darkcyan gui=italic + hi link moinUnderline moinItalic + hi link moinSub moinItalic + hi link moinSup moinItalic + hi def moinSettings ctermfg=green guifg=green + hi def moinPragma ctermfg=darkred guifg=darkred + hi link moinMacro Macro + hi def moinStrike ctermfg=darkgray guifg=darkgray + hi link moinHeader Title + hi def moinTableMark ctermfg=yellow guifg=yellow + hi def moinTableOpt ctermfg=darkyellow guifg=darkyellow + hi link moinDefinition moinBold + hi link moinList moinBold + hi link moinRule Title + hi def moinCode ctermfg=cyan guifg=cyan + hi def moinLink ctermfg=red guifg=red + hi link moinLinkExplicit moinLink + hi link moinLinkEmbedded moinLink + hi link moinLinkMoin moinLink + hi link moinLinkMoinBang moinLink + hi link moinLinkEmail moinLink + hi link moinLinkUrl moinLink + hi link moinLinkBUrl moinLinkUrl + hi link moinLinkQUrl moinLinkUrl + hi link moinLinkInter moinLink + hi def moinSmileys ctermfg=yellow guifg=yellow +endif + +let b:current_syntax = "moin" + diff --git a/.vim/plugin/SyntaxFolds.vim b/.vim/plugin/SyntaxFolds.vim new file mode 100644 index 0000000..27c622c --- /dev/null +++ b/.vim/plugin/SyntaxFolds.vim @@ -0,0 +1,323 @@ +" ============================================================================== +" File: syntaxFolds.vim +" Author: Srinath Avadhanula +" ( srinath@fastmail.fm ) +" Last Change: Sun Oct 27 01:00 AM 2002 PST +" Description: Emulation of the syntax folding capability of vim using manual +" folding +" +" This script provides an emulation of the syntax folding of vim using manual +" folding. Just as in syntax folding, the folds are defined by regions. Each +" region is specified by a call to FoldRegions() which accepts 4 parameters: +" +" call FoldRegions(startpat, endpat, startoff, endoff) +" +" startpat: a line matching this pattern defines the beginning of a fold. +" endpat : a line matching this pattern defines the end of a fold. +" startoff: this is the offset from the starting line at which folding will +" actually start +" endoff : like startoff, but gives the offset of the actual fold end from +" the line satisfying endpat. +" startoff and endoff are necessary when the folding region does +" not have a specific end pattern corresponding to a start +" pattern. for example in latex, +" \begin{section} +" defines the beginning of a section, but its not necessary to +" have a corresponding +" \end{section} +" the section is assumed to end 1 line _before_ another section +" starts. +" startskip: a pattern which defines the beginning of a "skipped" region. +" +" For example, suppose we define a \itemize fold as follows: +" startpat = '^\s*\\item', +" endpat = '^\s*\\item\|^\s*\\end{\(enumerate\|itemize\|description\)}', +" startoff = 0, +" endoff = -1 +" +" This defines a fold which starts with a line beginning with an +" \item and ending one line before a line beginning with an +" \item or \end{enumerate} etc. +" +" Then, as long as \item's are not nested things are fine. +" However, once items begin to nest, the fold started by one +" \item can end because of an \item in an \itemize +" environment within this \item. i.e, the following can happen: +" +" \begin{itemize} +" \item Some text <------- fold will start here +" This item will contain a nested item +" \begin{itemize} <----- fold will end here because next line contains \item... +" \item Hello +" \end{itemize} <----- ... instead of here. +" \item Next item of the parent itemize +" \end{itemize} +" +" Therefore, in order to completely define a folding item which +" allows nesting, we need to also define a "skip" pattern. +" startskip and end skip do that. +" Leave '' when there is no nesting. +" endskip: the pattern which defines the end of the "skip" pattern for +" nested folds. +" +" Example: +" 1. A syntax fold region for a latex section is +" startpat = "\\section{" +" endpat = "\\section{" +" startoff = 0 +" endoff = -1 +" startskip = '' +" endskip = '' +" Note that the start and end patterns are thus the same and endoff has a +" negative value to capture the effect of a section ending one line before +" the next starts. +" 2. A syntax fold region for the \itemize environment is: +" startpat = '^\s*\\item', +" endpat = '^\s*\\item\|^\s*\\end{\(enumerate\|itemize\|description\)}', +" startoff = 0, +" endoff = -1, +" startskip = '^\s*\\begin{\(enumerate\|itemize\|description\)}', +" endskip = '^\s*\\end{\(enumerate\|itemize\|description\)}' +" Note the use of startskip and endskip to allow nesting. +" +" +" Each time a call is made to FoldRegions(), all the regions (which might be +" disjoint, but not nested) are folded up. +" Nested folds can be created by successive calls to FoldRegions(). The first +" call defines the region which is deepest in the folding. See MakeTexFolds() +" for an idea of how this works for latex files. + +" Function: AddSyntaxFoldItem (start, end, startoff, endoff [, skipStart, skipEnd]) {{{ +function! AddSyntaxFoldItem(start, end, startoff, endoff, ...) + if a:0 > 0 + let skipStart = a:1 + let skipEnd = a:2 + else + let skipStart = '' + let skipEnd = '' + end + if !exists('b:numFoldItems') + let b:numFoldItems = 0 + end + let b:numFoldItems = b:numFoldItems + 1 + + exe 'let b:startPat_'.b:numFoldItems.' = a:start' + exe 'let b:endPat_'.b:numFoldItems.' = a:end' + exe 'let b:startOff_'.b:numFoldItems.' = a:startoff' + exe 'let b:endOff_'.b:numFoldItems.' = a:endoff' + exe 'let b:skipStartPat_'.b:numFoldItems.' = skipStart' + exe 'let b:skipEndPat_'.b:numFoldItems.' = skipEnd' +endfunction + + +" }}} +" Function: MakeSyntaxFolds (force) {{{ +" Description: This function calls FoldRegions() several times with the +" parameters specifying various regions resulting in a nested fold +" structure for the file. +function! MakeSyntaxFolds(force, ...) + if exists('b:doneFolding') && a:force == 0 + return + end + + let skipEndPattern = '' + if a:0 > 0 + let line1 = a:1 + let skipEndPattern = '\|'.a:2 + else + let line1 = 1 + let r = line('.') + let c = virtcol('.') + + setlocal fdm=manual + normal! zE + end + if !exists('b:numFoldItems') + b:numFoldItems = 1000000 + end + + let i = 1 + + let maxline = line('.') + + while exists('b:startPat_'.i) && i <= b:numFoldItems + exe 'let startPat = b:startPat_'.i + exe 'let endPat = b:endPat_'.i + exe 'let startOff = b:startOff_'.i + exe 'let endOff = b:endOff_'.i + + let skipStart = '' + let skipEnd = '' + if exists('b:skipStartPat_'.i) + exe 'let skipStart = b:skipStartPat_'.i + exe 'let skipEnd = b:skipEndPat_'.i + end + exe line1 + let lastLoc = line1 + + if skipStart != '' + call InitStack('BeginSkipArray') + call FoldRegionsWithSkip(startPat, endPat, startOff, endOff, skipStart, skipEnd, 1, line('$')) + " call PrintError('done folding ['.startPat.']') + else + call FoldRegionsWithNoSkip(startPat, endPat, startOff, endOff, 1, line('$'), '') + end + + let i = i + 1 + endwhile + + exe maxline + + if a:0 == 0 + exe r + exe "normal! ".c."|" + if foldlevel(r) > 1 + exe "normal! ".(foldlevel(r) - 1)."zo" + end + let b:doneFolding = 0 + end +endfunction + + +" }}} +" FoldRegionsWithSkip: folding things such as \item's which can be nested. {{{ +function! FoldRegionsWithSkip(startpat, endpat, startoff, endoff, startskip, endskip, line1, line2) + exe a:line1 + " count the regions which have been skipped as we go along. do not want to + " create a fold which with a beginning or end line in one of the skipped + " regions. + let skippedRegions = '' + + " start searching for either the starting pattern or the end pattern. + while search(a:startskip.'\|'.a:endskip, 'W') + + if getline('.') =~ a:endskip + + let lastBegin = Pop('BeginSkipArray') + " call PrintError('popping '.lastBegin.' from stack and folding till '.line('.')) + call FoldRegionsWithNoSkip(a:startpat, a:endpat, a:startoff, a:endoff, lastBegin, line('.'), skippedRegions) + let skippedRegions = skippedRegions.lastBegin.','.line('.').'|' + + + " if this is the beginning of a skip region, then, push this line as + " the beginning of a skipped region. + elseif getline('.') =~ a:startskip + + " call PrintError('pushing '.line('.').' ['.getline('.').'] into stack') + call Push('BeginSkipArray', line('.')) + + end + endwhile + + " call PrintError('with skip starting at '.a:line1.' returning at line# '.line('.')) +endfunction + +" }}} +" FoldRegionsWithNoSkip: folding things such as \sections which do not nest. {{{ +function! FoldRegionsWithNoSkip(startpat, endpat, startoff, endoff, line1, line2, skippedRegions) + exe a:line1 + + " call PrintError('line1 = '.a:line1.', searching from '.line('.').'... for ['.a:startpat.'') + let lineBegin = s:MySearch(a:startpat, 'in') + " call PrintError('... and finding it at '.lineBegin) + + while lineBegin <= a:line2 + if IsInSkippedRegion(lineBegin, a:skippedRegions) + let lineBegin = s:MySearch(a:startpat, 'out') + " call PrintError(lineBegin.' is being skipped') + continue + end + let lineEnd = s:MySearch(a:endpat, 'out') + while IsInSkippedRegion(lineEnd, a:skippedRegions) && lineEnd <= a:line2 + let lineEnd = s:MySearch(a:endpat, 'out') + endwhile + if lineEnd > a:line2 + exe (lineBegin + a:startoff).','.a:line2.' fold' + break + else + " call PrintError ('for ['.a:startpat.'] '.(lineBegin + a:startoff).','.(lineEnd + a:endoff).' fold') + exe (lineBegin + a:startoff).','.(lineEnd + a:endoff).' fold' + end + + " call PrintError('line1 = '.a:line1.', searching from '.line('.').'... for ['.a:startpat.'') + let lineBegin = s:MySearch(a:startpat, 'in') + " call PrintError('... and finding it at '.lineBegin) + endwhile + + exe a:line2 + return +endfunction + +" }}} +" InitStack: initialize a stack {{{ +function! InitStack(name) + exe 'let s:'.a:name.'_numElems = 0' +endfunction +" }}} +" Push: push element into stack {{{ +function! Push(name, elem) + exe 'let numElems = s:'.a:name.'_numElems' + let numElems = numElems + 1 + exe 'let s:'.a:name.'_Element_'.numElems.' = a:elem' + exe 'let s:'.a:name.'_numElems = numElems' +endfunction +" }}} +" Pop: pops element off stack {{{ +function! Pop(name) + exe 'let numElems = s:'.a:name.'_numElems' + if numElems == 0 + return '' + else + exe 'let ret = s:'.a:name.'_Element_'.numElems + let numElems = numElems - 1 + exe 'let s:'.a:name.'_numElems = numElems' + return ret + end +endfunction +" }}} +" MySearch: just like search(), but returns large number on failure {{{ +function! <SID>MySearch(pat, opt) + if a:opt == 'in' + if getline('.') =~ a:pat + let ret = line('.') + else + let ret = search(a:pat, 'W') + end + else + normal! $ + let ret = search(a:pat, 'W') + end + + if ret == 0 + let ret = line('$') + 1 + end + return ret +endfunction +" }}} +" Function: IsInSkippedRegion (lnum, regions) {{{ +" Description: finds whether a given line number is within one of the regions +" skipped. +function! IsInSkippedRegion(lnum, regions) + let i = 1 + let subset = s:Strntok(a:regions, '|', i) + while subset != '' + let n1 = s:Strntok(subset, ',', 1) + let n2 = s:Strntok(subset, ',', 2) + if a:lnum >= n1 && a:lnum <= n2 + return 1 + end + + let subset = s:Strntok(a:regions, '|', i) + let i = i + 1 + endwhile + + return 0 +endfunction " }}} +" Function: Strntok (string, tok, n) {{{ +" extract the n^th token from s seperated by tok. +" example: Strntok('1,23,3', ',', 2) = 23 +fun! <SID>Strntok(s, tok, n) + return matchstr( a:s.a:tok[0], '\v(\zs([^'.a:tok.']*)\ze['.a:tok.']){'.a:n.'}') +endfun " }}} + +" vim600:fdm=marker diff --git a/.vim/plugin/c.vim b/.vim/plugin/c.vim new file mode 100644 index 0000000..bb9390f --- /dev/null +++ b/.vim/plugin/c.vim @@ -0,0 +1,2678 @@ +"############################################################################################### +" +" Filename: c.vim +" +" Description: C/C++-IDE. Write programs by inserting complete statements, +" comments, idioms, code snippets, templates and comments. +" Compile, link and run one-file-programs without a makefile. +" See also help file csupport.txt . +" +" GVIM Version: 7.0+ +" +" Configuration: There are some personal details which should be configured +" (see the files README.csupport and csupport.txt). +" +" Author: Dr.-Ing. Fritz Mehner, FH Südwestfalen, 58644 Iserlohn, Germany +" Email: mehner@fh-swf.de +" +" Version: see variable g:C_Version below +" Created: 04.11.2000 +" License: Copyright (c) 2000-2007, Fritz Mehner +" 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 version 2 for more details. +" Revision: $Id: c.vim,v 1.35 2007/11/21 09:14:16 mehner Exp $ +" +"------------------------------------------------------------------------------ +" +if v:version < 700 + echohl WarningMsg | echo 'The plugin c-support.vim needs Vim version >= 7 .'| echohl None + finish +endif +" +" Prevent duplicate loading: +" +if exists("g:C_Version") || &cp + finish +endif +let g:C_Version= "5.0.5" " version number of this script; do not change +" +"############################################################################################### +" +" Global variables (with default values) which can be overridden. +" +" Platform specific items: {{{1 +" - root directory +" - characters that must be escaped for filenames +" +let s:MSWIN = has("win16") || has("win32") || has("win64") || + \ has("win95") || has("win32unix") +" +if s:MSWIN + " + let s:escfilename = '' + let s:plugin_dir = $VIM.'\vimfiles\' + let s:C_CodeSnippets = s:plugin_dir.'c-support/codesnippets/' + let s:C_IndentErrorLog = $HOME.'.indent.errorlog' + let s:installation = 'system' + " + let s:C_Display = '' + " +else + " + let s:escfilename = ' \%#[]' + let s:installation = 'local' + " + " user / system wide installation (Linux/Unix) + " + if match( expand("<sfile>"), $VIM ) >= 0 + " system wide installation + let s:plugin_dir = $VIM.'/vimfiles/' + let s:installation = 'system' + else + " user installation assumed + let s:plugin_dir = $HOME.'/.vim/' + endif + " + let s:C_CodeSnippets = $HOME.'/.vim/c-support/codesnippets/' + let s:C_IndentErrorLog = $HOME.'/.indent.errorlog' + " + let s:C_Display = system("echo -n $DISPLAY") + " +endif +" Use of dictionaries {{{1 +" Key word completion is enabled by the filetype plugin 'c.vim' +" g:C_Dictionary_File must be global +" +if !exists("g:C_Dictionary_File") + let g:C_Dictionary_File = s:plugin_dir.'c-support/wordlists/c-c++-keywords.list,'. + \ s:plugin_dir.'c-support/wordlists/k+r.list,'. + \ s:plugin_dir.'c-support/wordlists/stl_index.list' +endif +" +" Modul global variables (with default values) which can be overridden. {{{1 +" +if s:MSWIN + let s:C_CCompiler = 'gcc.exe' " the C compiler + let s:C_CplusCompiler = 'g++.exe' " the C++ compiler + let s:C_ExeExtension = '.exe' " file extension for executables (leading point required) + let s:C_ObjExtension = '.obj' " file extension for objects (leading point required) +else + let s:C_CCompiler = 'gcc' " the C compiler + let s:C_CplusCompiler = 'g++' " the C++ compiler + let s:C_ExeExtension = '' " file extension for executables (leading point required) + let s:C_ObjExtension = '.o' " file extension for objects (leading point required) +endif +" +let s:C_CExtension = 'c' " C file extension; everything else is C++ +let s:C_CFlags = '-Wall -g -O0 -c' " compiler flags: compile, don't optimize +let s:C_CodeCheckExeName = 'check' +let s:C_CodeCheckOptions = '-K13' +let s:C_LFlags = '-Wall -g -O0' " compiler flags: link , don't optimize +let s:C_Libs = '-lm' " libraries to use +let s:C_LineEndCommColDefault = 49 +let s:C_LoadMenus = 'yes' +let s:C_MenuHeader = 'yes' +let s:C_OutputGvim = 'vim' +let s:C_Printheader = "%<%f%h%m%< %=%{strftime('%x %X')} Page %N" +let s:C_Root = '&C\/C\+\+.' " the name of the root menu of this plugin +let s:C_TypeOfH = 'cpp' +let s:C_Wrapper = s:plugin_dir.'c-support/scripts/wrapper.sh' +let s:C_XtermDefaults = '-fa courier -fs 12 -geometry 80x24' +" +let s:C_GlobalTemplateFile = s:plugin_dir.'c-support/templates/Templates' +let s:C_GlobalTemplateDir = fnamemodify( s:C_GlobalTemplateFile, ":p:h" ).'/' +let s:C_LocalTemplateFile = $HOME.'/.vim/c-support/templates/Templates' +let s:C_LocalTemplateDir = fnamemodify( s:C_LocalTemplateFile, ":p:h" ).'/' +let s:C_TemplateOverwrittenMsg= 'yes' +" +let s:C_FormatDate = '%x' +let s:C_FormatTime = '%X' +let s:C_FormatYear = '%Y' +" +"------------------------------------------------------------------------------ +" +" Look for global variables (if any), to override the defaults. +" +function! C_CheckGlobal ( name ) + if exists('g:'.a:name) + exe 'let s:'.a:name.' = g:'.a:name + endif +endfunction " ---------- end of function C_CheckGlobal ---------- +" +call C_CheckGlobal('C_CCompiler ') +call C_CheckGlobal('C_CExtension ') +call C_CheckGlobal('C_CFlags ') +call C_CheckGlobal('C_CodeCheckExeName ') +call C_CheckGlobal('C_CodeCheckOptions ') +call C_CheckGlobal('C_CodeSnippets ') +call C_CheckGlobal('C_CplusCompiler ') +call C_CheckGlobal('C_ExeExtension ') +call C_CheckGlobal('C_FormatDate ') +call C_CheckGlobal('C_FormatTime ') +call C_CheckGlobal('C_FormatYear ') +call C_CheckGlobal('C_GlobalTemplateFile ') +call C_CheckGlobal('C_IndentErrorLog ') +call C_CheckGlobal('C_LFlags ') +call C_CheckGlobal('C_Libs ') +call C_CheckGlobal('C_LineEndCommColDefault ') +call C_CheckGlobal('C_LoadMenus ') +call C_CheckGlobal('C_LocalTemplateFile ') +call C_CheckGlobal('C_MenuHeader ') +call C_CheckGlobal('C_ObjExtension ') +call C_CheckGlobal('C_OutputGvim ') +call C_CheckGlobal('C_Printheader ') +call C_CheckGlobal('C_Root ') +call C_CheckGlobal('C_TemplateOverwrittenMsg ') +call C_CheckGlobal('C_TypeOfH ') +call C_CheckGlobal('C_XtermDefaults ') +" +"----- some variables for internal use only ----------------------------------- +" +" +" set default geometry if not specified +" +if match( s:C_XtermDefaults, "-geometry\\s\\+\\d\\+x\\d\\+" ) < 0 + let s:C_XtermDefaults = s:C_XtermDefaults." -geometry 80x24" +endif +" +" escape the printheader +" +let s:C_Printheader = escape( s:C_Printheader, ' %' ) +" +let s:C_HlMessage = "" +" +" characters that must be escaped for filenames +" +let s:C_If0_Counter = 0 +let s:C_If0_Txt = "If0Label_" +" +let s:C_SplintIsExecutable = 0 +if executable( "splint" ) + let s:C_SplintIsExecutable = 1 +endif +" +let s:C_CodeCheckIsExecutable = 0 +if executable( s:C_CodeCheckExeName ) + let s:C_CodeCheckIsExecutable = 1 +endif +" +"------------------------------------------------------------------------------ +" Control variables (not user configurable) +"------------------------------------------------------------------------------ +let s:Attribute = { 'below':'', 'above':'', 'start':'', 'append':'', 'insert':'' } +let s:C_Attribute = {} +let s:C_ExpansionLimit = 10 +let s:C_FileVisited = [] +" +let s:C_MacroNameRegex = '\([a-zA-Z][a-zA-Z0-9_]*\)' +let s:C_MacroLineRegex = '^\s*|'.s:C_MacroNameRegex.'|\s*=\s*\(.*\)' +let s:C_ExpansionRegex = '|?'.s:C_MacroNameRegex.'\(:\a\)\?|' +let s:C_NonExpansionRegex = '|'.s:C_MacroNameRegex.'\(:\a\)\?|' +" +let s:C_TemplateNameDelimiter = '-+_,\. ' +let s:C_TemplateLineRegex = '^==\s*\([a-zA-Z][0-9a-zA-Z'.s:C_TemplateNameDelimiter +let s:C_TemplateLineRegex .= ']\+\)\s*==\s*\([a-z]\+\s*==\)\?' +" +let s:C_ExpansionCounter = {} +let s:C_Template = {} +let s:C_Macro = {'|AUTHOR|' : 'first name surname', + \ '|AUTHORREF|' : '', + \ '|EMAIL|' : '', + \ '|COMPANY|' : '', + \ '|PROJECT|' : '', + \ '|COPYRIGHTHOLDER|': '' + \ } +let s:C_MacroFlag = { ':l' : 'lowercase' , + \ ':u' : 'uppercase' , + \ ':c' : 'capitalize' , + \ ':L' : 'legalize name' , + \ } + +"------------------------------------------------------------------------------ +" C : C_InitMenus {{{1 +" Initialization of C support menus +"------------------------------------------------------------------------------ +" +function! C_InitMenus () + " + "=============================================================================================== + "----- Menu : C main menu entry ------------------------------------------- {{{2 + "=============================================================================================== + " + if s:C_Root != "" + if s:C_MenuHeader == 'yes' + exe "amenu ".s:C_Root.'C\/C\+\+ <Esc>' + exe "amenu ".s:C_Root.'-Sep00- :' + endif + endif + " + "=============================================================================================== + "----- Menu : C-Comments -------------------------------------------------- {{{2 + "=============================================================================================== + " + if s:C_MenuHeader == 'yes' + exe "amenu ".s:C_Root.'&Comments.&Comments<Tab>C\/C\+\+ <Esc>' + exe "amenu ".s:C_Root.'&Comments.-Sep00- :' + endif + exe "amenu <silent> ".s:C_Root.'&Comments.end-of-&line\ comment <Esc><Esc><Esc>:call C_LineEndComment( )<CR>' + exe "vmenu <silent> ".s:C_Root.'&Comments.end-of-&line\ comment <Esc><Esc><Esc>:call C_MultiLineEndComments( )<CR>' + + exe "amenu <silent> ".s:C_Root.'&Comments.ad&just\ end-of-line\ com\. <Esc><Esc>:call C_AdjustLineEndComm("a")<CR>' + exe "vmenu <silent> ".s:C_Root.'&Comments.ad&just\ end-of-line\ com\. <Esc><Esc>:call C_AdjustLineEndComm("v")<CR>' + + exe "amenu <silent> ".s:C_Root.'&Comments.&set\ end-of-line\ com\.\ col\. <Esc><Esc>:call C_GetLineEndCommCol()<CR>' + + exe "amenu ".s:C_Root.'&Comments.-SEP10- :' + exe "amenu <silent> ".s:C_Root.'&Comments.code\ ->\ comment\ \/&*\ *\/ <Esc><Esc>:call C_CodeComment("a","yes")<CR><Esc>:nohlsearch<CR>j' + exe "vmenu <silent> ".s:C_Root.'&Comments.code\ ->\ comment\ \/&*\ *\/ <Esc><Esc>:call C_CodeComment("v","yes")<CR><Esc>:nohlsearch<CR>j' + exe "amenu <silent> ".s:C_Root.'&Comments.code\ ->\ comment\ &\/\/ <Esc><Esc>:call C_CodeComment("a","no")<CR><Esc>:nohlsearch<CR>j' + exe "vmenu <silent> ".s:C_Root.'&Comments.code\ ->\ comment\ &\/\/ <Esc><Esc>:call C_CodeComment("v","no")<CR><Esc>:nohlsearch<CR>j' + exe "amenu <silent> ".s:C_Root.'&Comments.c&omment\ ->\ code <Esc><Esc>:call C_CommentCode("a")<CR><Esc>:nohlsearch<CR>' + exe "vmenu <silent> ".s:C_Root.'&Comments.c&omment\ ->\ code <Esc><Esc>:call C_CommentCode("v")<CR><Esc>:nohlsearch<CR>' + + exe "amenu ".s:C_Root.'&Comments.-SEP0- :' + exe "amenu <silent> ".s:C_Root.'&Comments.&frame\ comment <Esc><Esc>:call C_InsertTemplate("comment.frame")<CR>' + exe "amenu <silent> ".s:C_Root.'&Comments.f&unction\ description <Esc><Esc>:call C_InsertTemplate("comment.function")<CR>' + exe "amenu ".s:C_Root.'&Comments.-SEP1- :' + exe "amenu <silent> ".s:C_Root.'&Comments.&method\ description <Esc><Esc>:call C_InsertTemplate("comment.method")<CR>' + exe "amenu <silent> ".s:C_Root.'&Comments.cl&ass\ description <Esc><Esc>:call C_InsertTemplate("comment.class")<CR>' + exe "amenu ".s:C_Root.'&Comments.-SEP2- :' + exe "amenu <silent> ".s:C_Root.'&Comments.file\ description <Esc><Esc>:call C_InsertTemplate("comment.file-description")<CR>' + exe "amenu ".s:C_Root.'&Comments.-SEP3- :' + " + "----- Submenu : C-Comments : file sections ------------------------------------------------------------- + " + exe "amenu ".s:C_Root.'&Comments.&C\/C\+\+-file\ sections.file\ sections<Tab>C\/C\+\+ <Esc>' + exe "amenu ".s:C_Root.'&Comments.&C\/C\+\+-file\ sections.-Sep0- :' + " + exe "amenu ".s:C_Root.'&Comments.&C\/C\+\+-file\ sections.&Header\ File\ Includes <Esc><Esc>:call C_InsertTemplate("comment.file-section-cpp-header-includes")<CR>' + exe "amenu ".s:C_Root.'&Comments.&C\/C\+\+-file\ sections.Local\ &Macros <Esc><Esc>:call C_InsertTemplate("comment.file-section-cpp-macros")<CR>' + exe "amenu ".s:C_Root.'&Comments.&C\/C\+\+-file\ sections.Local\ &Type\ Def\. <Esc><Esc>:call C_InsertTemplate("comment.file-section-cpp-typedefs")<CR>' + exe "amenu ".s:C_Root.'&Comments.&C\/C\+\+-file\ sections.Local\ &Data\ Types <Esc><Esc>:call C_InsertTemplate("comment.file-section-cpp-data-types")<CR>' + exe "amenu ".s:C_Root.'&Comments.&C\/C\+\+-file\ sections.Local\ &Variables <Esc><Esc>:call C_InsertTemplate("comment.file-section-cpp-class-defs")<CR>' + exe "amenu ".s:C_Root.'&Comments.&C\/C\+\+-file\ sections.Local\ &Prototypes <Esc><Esc>:call C_InsertTemplate("comment.file-section-cpp-local-variables")<CR>' + exe "amenu ".s:C_Root.'&Comments.&C\/C\+\+-file\ sections.&Exp\.\ Function\ Def\. <Esc><Esc>:call C_InsertTemplate("comment.file-section-cpp-prototypes")<CR>' + exe "amenu ".s:C_Root.'&Comments.&C\/C\+\+-file\ sections.&Local\ Function\ Def\. <Esc><Esc>:call C_InsertTemplate("comment.file-section-cpp-function-defs-exported")<CR>' + exe "amenu ".s:C_Root.'&Comments.&C\/C\+\+-file\ sections.-SEP6- :' + exe "amenu ".s:C_Root.'&Comments.&C\/C\+\+-file\ sections.Local\ &Class\ Def\. <Esc><Esc>:call C_InsertTemplate("comment.file-section-cpp-function-defs-local")<CR>' + exe "amenu ".s:C_Root.'&Comments.&C\/C\+\+-file\ sections.E&xp\.\ Class\ Impl\. <Esc><Esc>:call C_InsertTemplate("comment.file-section-cpp-class-implementations-exported")<CR>' + exe "amenu ".s:C_Root.'&Comments.&C\/C\+\+-file\ sections.L&ocal\ Class\ Impl\. <Esc><Esc>:call C_InsertTemplate("comment.file-section-cpp-class-implementations-local")<CR>' + exe "amenu ".s:C_Root.'&Comments.&C\/C\+\+-file\ sections.-SEP7- :' + exe "amenu ".s:C_Root.'&Comments.&C\/C\+\+-file\ sections.&All\ sections,\ C ' + \'<Esc><Esc>:call C_Comment_C_SectionAll("c")<CR>' + exe "amenu ".s:C_Root.'&Comments.&C\/C\+\+-file\ sections.All\ §ions,\ C++ ' + \'<Esc><Esc>:call C_Comment_C_SectionAll("cpp")<CR>' + " + " + "----- Submenu : H-Comments : file sections ------------------------------------------------------------- + " + exe "amenu ".s:C_Root.'&Comments.&H-file\ sections.H-file\ sections<Tab>C\/C\+\+ <Esc>' + exe "amenu ".s:C_Root.'&Comments.&H-file\ sections.-Sep0- :' + "' + exe "amenu ".s:C_Root.'&Comments.&H-file\ sections.&Header\ File\ Includes <Esc><Esc>:call C_InsertTemplate("comment.file-section-hpp-header-includes")<CR>' + exe "amenu ".s:C_Root.'&Comments.&H-file\ sections.Exported\ &Macros <Esc><Esc>:call C_InsertTemplate("comment.file-section-hpp-macros")<CR>' + exe "amenu ".s:C_Root.'&Comments.&H-file\ sections.Exported\ &Type\ Def\. <Esc><Esc>:call C_InsertTemplate("comment.file-section-hpp-exported-typedefs")<CR>' + exe "amenu ".s:C_Root.'&Comments.&H-file\ sections.Exported\ &Data\ Types <Esc><Esc>:call C_InsertTemplate("comment.file-section-hpp-exported-data-types")<CR>' + exe "amenu ".s:C_Root.'&Comments.&H-file\ sections.Exported\ &Variables <Esc><Esc>:call C_InsertTemplate("comment.file-section-hpp-exported-class-defs")<CR>' + exe "amenu ".s:C_Root.'&Comments.&H-file\ sections.Exported\ &Funct\.\ Decl\. <Esc><Esc>:call C_InsertTemplate("comment.file-section-hpp-exported-variables")<CR>' + exe "amenu ".s:C_Root.'&Comments.&H-file\ sections.-SEP4- :' + exe "amenu ".s:C_Root.'&Comments.&H-file\ sections.E&xported\ Class\ Def\. <Esc><Esc>:call C_InsertTemplate("comment.file-section-hpp-exported-function-declarations")<CR>' + + exe "amenu ".s:C_Root.'&Comments.&H-file\ sections.-SEP5- :' + exe "amenu ".s:C_Root.'&Comments.&H-file\ sections.&All\ sections,\ C ' + \'<Esc><Esc>:call C_Comment_H_SectionAll("c")<CR>' + exe "amenu ".s:C_Root.'&Comments.&H-file\ sections.All\ §ions,\ C++ ' + \'<Esc><Esc>:call C_Comment_H_SectionAll("cpp")<CR>' + " + exe "amenu ".s:C_Root.'&Comments.-SEP8- :' + " + "----- Submenu : C-Comments : keyword comments ---------------------------------------------------------- + " + exe "amenu ".s:C_Root.'&Comments.&KEYWORD+comm\..keyw\.+comm\.<Tab>C\/C\+\+ <Esc>' + exe "amenu ".s:C_Root.'&Comments.&KEYWORD+comm\..-Sep0- :' +" + exe "amenu ".s:C_Root.'&Comments.&KEYWORD+comm\..\:&BUG\: <Esc><Esc>$<Esc>:call C_InsertTemplate("comment.keyword-bug")<CR>' + exe "amenu ".s:C_Root.'&Comments.&KEYWORD+comm\..\:&COMPILER\: <Esc><Esc>$<Esc>:call C_InsertTemplate("comment.keyword-compiler")<CR>' + exe "amenu ".s:C_Root.'&Comments.&KEYWORD+comm\..\:&TODO\: <Esc><Esc>$<Esc>:call C_InsertTemplate("comment.keyword-todo")<CR>' + exe "amenu ".s:C_Root.'&Comments.&KEYWORD+comm\..\:T&RICKY\: <Esc><Esc>$<Esc>:call C_InsertTemplate("comment.keyword-tricky")<CR>' + exe "amenu ".s:C_Root.'&Comments.&KEYWORD+comm\..\:&WARNING\: <Esc><Esc>$<Esc>:call C_InsertTemplate("comment.keyword-warning")<CR>' + exe "amenu ".s:C_Root.'&Comments.&KEYWORD+comm\..\:W&ORKAROUND\: <Esc><Esc>$<Esc>:call C_InsertTemplate("comment.keyword-workaround")<CR>' + exe "amenu ".s:C_Root.'&Comments.&KEYWORD+comm\..\:&new\ keyword\: <Esc><Esc>$<Esc>:call C_InsertTemplate("comment.keyword-keyword")<CR>' + " + "----- Submenu : C-Comments : special comments ---------------------------------------------------------- + " + exe "amenu ".s:C_Root.'&Comments.&special\ comm\..special\ comm\.<Tab>C\/C\+\+ <Esc>' + exe "amenu ".s:C_Root.'&Comments.&special\ comm\..-Sep0- :' + exe "amenu ".s:C_Root.'&Comments.&special\ comm\..&EMPTY <Esc><Esc>$<Esc>:call C_CommentSpecial("EMPTY") <CR>kgJA' + exe "amenu ".s:C_Root.'&Comments.&special\ comm\..&FALL\ THROUGH <Esc><Esc>$<Esc>:call C_CommentSpecial("FALL THROUGH") <CR>kgJA' + exe "amenu ".s:C_Root.'&Comments.&special\ comm\..&IMPL\.\ TYPE\ CONV <Esc><Esc>$<Esc>:call C_CommentSpecial("IMPLICIT TYPE CONVERSION") <CR>kgJA' + exe "amenu ".s:C_Root.'&Comments.&special\ comm\..&NO\ RETURN <Esc><Esc>$<Esc>:call C_CommentSpecial("NO RETURN") <CR>kgJA' + exe "amenu ".s:C_Root.'&Comments.&special\ comm\..NOT\ &REACHED <Esc><Esc>$<Esc>:call C_CommentSpecial("NOT REACHED") <CR>kgJA' + exe "amenu ".s:C_Root.'&Comments.&special\ comm\..&TO\ BE\ IMPL\. <Esc><Esc>$<Esc>:call C_CommentSpecial("REMAINS TO BE IMPLEMENTED")<CR>kgJA' + exe "amenu ".s:C_Root.'&Comments.&special\ comm\..-SEP81- :' + exe "amenu ".s:C_Root.'&Comments.&special\ comm\..constant\ type\ is\ &long\ (L) <Esc><Esc>$<Esc>:call C_CommentSpecial("constant type is long")<CR>kgJA' + exe "amenu ".s:C_Root.'&Comments.&special\ comm\..constant\ type\ is\ &unsigned\ (U) <Esc><Esc>$<Esc>:call C_CommentSpecial("constant type is unsigned")<CR>kgJA' + exe "amenu ".s:C_Root.'&Comments.&special\ comm\..constant\ type\ is\ unsigned\ l&ong\ (UL) <Esc><Esc>$<Esc>:call C_CommentSpecial("constant type is unsigned long")<CR>kgJA' + + " + "----- Submenu : C-Comments : Tags ---------------------------------------------------------- + " + exe "amenu ".s:C_Root.'&Comments.ta&gs\ (plugin).tags\ (plugin)<Tab>C\/C\+\+ <Esc>' + exe "amenu ".s:C_Root.'&Comments.ta&gs\ (plugin).-Sep0- :' + " + exe "amenu ".s:C_Root.'&Comments.ta&gs\ (plugin).&AUTHOR <Esc><Esc>:call C_InsertMacroValue("AUTHOR")<CR>' + exe "amenu ".s:C_Root.'&Comments.ta&gs\ (plugin).AUTHOR&REF <Esc><Esc>:call C_InsertMacroValue("AUTHORREF")<CR>' + exe "amenu ".s:C_Root.'&Comments.ta&gs\ (plugin).&COMPANY <Esc><Esc>:call C_InsertMacroValue("COMPANY")<CR>' + exe "amenu ".s:C_Root.'&Comments.ta&gs\ (plugin).C&OPYRIGHTHOLDER <Esc><Esc>:call C_InsertMacroValue("COPYRIGHTHOLDER")<CR>' + exe "amenu ".s:C_Root.'&Comments.ta&gs\ (plugin).&EMAIL <Esc><Esc>:call C_InsertMacroValue("EMAIL")<CR>' + exe "amenu ".s:C_Root.'&Comments.ta&gs\ (plugin).&PROJECT <Esc><Esc>:call C_InsertMacroValue("PROJECT")<CR>' + + exe "imenu ".s:C_Root.'&Comments.ta&gs\ (plugin).&AUTHOR <Esc><Esc>:call C_InsertMacroValue("AUTHOR")<CR>a' + exe "imenu ".s:C_Root.'&Comments.ta&gs\ (plugin).AUTHOR&REF <Esc><Esc>:call C_InsertMacroValue("AUTHORREF")<CR>a' + exe "imenu ".s:C_Root.'&Comments.ta&gs\ (plugin).&COMPANY <Esc><Esc>:call C_InsertMacroValue("COMPANY")<CR>a' + exe "imenu ".s:C_Root.'&Comments.ta&gs\ (plugin).C&OPYRIGHTHOLDER <Esc><Esc>:call C_InsertMacroValue("COPYRIGHTHOLDER")<CR>a' + exe "imenu ".s:C_Root.'&Comments.ta&gs\ (plugin).&EMAIL <Esc><Esc>:call C_InsertMacroValue("EMAIL")<CR>a' + exe "imenu ".s:C_Root.'&Comments.ta&gs\ (plugin).&PROJECT <Esc><Esc>:call C_InsertMacroValue("PROJECT")<CR>a' + " + " + exe "amenu ".s:C_Root.'&Comments.-SEP9- :' + " + exe " menu ".s:C_Root.'&Comments.&date a<C-R>=C_InsertDateAndTime("d")<CR>' + exe "imenu ".s:C_Root.'&Comments.&date <C-R>=C_InsertDateAndTime("d")<CR>' + exe " menu ".s:C_Root.'&Comments.date\ &time a<C-R>=C_InsertDateAndTime("dt")<CR>' + exe "imenu ".s:C_Root.'&Comments.date\ &time <C-R>=C_InsertDateAndTime("dt")<CR>' + + exe "amenu ".s:C_Root.'&Comments.-SEP12- :' + exe "amenu <silent> ".s:C_Root.'&Comments.\/\/\ xxx\ \ \ \ \ &->\ \ \/*\ xxx\ *\/ <Esc><Esc>:call C_CommentCppToC()<CR>' + exe "vmenu <silent> ".s:C_Root.'&Comments.\/\/\ xxx\ \ \ \ \ &->\ \ \/*\ xxx\ *\/ <Esc><Esc>:'."'<,'>".'call C_CommentCppToC()<CR>' + exe "amenu <silent> ".s:C_Root.'&Comments.\/*\ xxx\ *\/\ \ -&>\ \ \/\/\ xxx <Esc><Esc>:call C_CommentCToCpp()<CR>' + exe "vmenu <silent> ".s:C_Root.'&Comments.\/*\ xxx\ *\/\ \ -&>\ \ \/\/\ xxx <Esc><Esc>:'."'<,'>".'call C_CommentCToCpp()<CR>' + " + "=============================================================================================== + "----- Menu : C-Statements------------------------------------------------- {{{2 + "=============================================================================================== + " + if s:C_MenuHeader == 'yes' + exe "amenu ".s:C_Root.'&Statements.&Statements<Tab>C\/C\+\+ <Esc>' + exe "amenu ".s:C_Root.'&Statements.-Sep00- :' + endif + " + exe "amenu <silent>".s:C_Root.'&Statements.&do\ \{\ \}\ while <Esc><Esc>:call C_InsertTemplate("statements.do-while")<CR>' + exe "vmenu <silent>".s:C_Root.'&Statements.&do\ \{\ \}\ while <Esc><Esc>:call C_InsertTemplate("statements.do-while", "v")<CR>' + " + exe "amenu <silent>".s:C_Root.'&Statements.f&or <Esc><Esc>:call C_InsertTemplate("statements.for")<CR>' + " + exe "anoremenu <silent>".s:C_Root.'&Statements.fo&r\ \{\ \} <Esc><Esc>:call C_InsertTemplate("statements.for-block")<CR>' + exe "vnoremenu <silent>".s:C_Root.'&Statements.fo&r\ \{\ \} <Esc><Esc>:call C_InsertTemplate("statements.for-block", "v")<CR>' + " + exe "amenu <silent>".s:C_Root.'&Statements.&if <Esc><Esc>:call C_InsertTemplate("statements.if")<CR>' + " + exe "amenu <silent>".s:C_Root.'&Statements.i&f\ \{\ \} <Esc><Esc>:call C_InsertTemplate("statements.if-block")<CR>' + exe "vmenu <silent>".s:C_Root.'&Statements.i&f\ \{\ \} <Esc><Esc>:call C_InsertTemplate("statements.if-block", "v")<CR>' + + exe "amenu <silent>".s:C_Root.'&Statements.if\ &else <Esc><Esc>:call C_InsertTemplate("statements.if-else")<CR>' + exe "vmenu <silent>".s:C_Root.'&Statements.if\ &else <Esc><Esc>:call C_InsertTemplate("statements.if-else", "v")<CR>' + " + exe "amenu <silent>".s:C_Root.'&Statements.if\ \{\ \}\ e&lse\ \{\ \} <Esc><Esc>:call C_InsertTemplate("statements.if-block-else")<CR>' + exe "vmenu <silent>".s:C_Root.'&Statements.if\ \{\ \}\ e&lse\ \{\ \} <Esc><Esc>:call C_InsertTemplate("statements.if-block-else", "v")<CR>' + " + exe "amenu <silent>".s:C_Root.'&Statements.&while <Esc><Esc>:call C_InsertTemplate("statements.while")<CR>' + " + exe "amenu <silent>".s:C_Root.'&Statements.w&hile\ \{\ \} <Esc><Esc>:call C_InsertTemplate("statements.while-block")<CR>' + exe "vmenu <silent>".s:C_Root.'&Statements.w&hile\ \{\ \} <Esc><Esc>:call C_InsertTemplate("statements.while-block", "v")<CR>' + " + exe "amenu <silent>".s:C_Root.'&Statements.&switch\ \{\ \} <Esc><Esc>:call C_InsertTemplate("statements.switch")<CR>' + exe "vmenu <silent>".s:C_Root.'&Statements.&switch\ \{\ \} <Esc><Esc>:call C_InsertTemplate("statements.switch", "v")<CR>' + " + exe "amenu ".s:C_Root.'&Statements.&case\ \.\.\.\ break <<Esc><Esc>:call C_InsertTemplate("statements.case")<CR>' + " + " + exe "amenu <silent>".s:C_Root.'&Statements.&\{\ \} <Esc><Esc>:call C_InsertTemplate("statements.block")<CR>' + exe "vmenu <silent>".s:C_Root.'&Statements.&\{\ \} <Esc><Esc>:call C_InsertTemplate("statements.block", "v")<CR>' + " + " + "=============================================================================================== + "----- Menu : C-Idioms ---------------------------------------------------- {{{2 + "=============================================================================================== + " + if s:C_MenuHeader == 'yes' + exe "amenu ".s:C_Root.'&Idioms.&Idioms<Tab>C\/C\+\+ <Esc>' + exe "amenu ".s:C_Root.'&Idioms.-Sep00- :' + endif + exe "amenu <silent> ".s:C_Root.'&Idioms.&function <Esc><Esc>:call C_InsertTemplate("idioms.function")<CR>' + exe "vmenu <silent> ".s:C_Root.'&Idioms.&function <Esc><Esc>:call C_InsertTemplate("idioms.function", "v")<CR>' + exe "amenu <silent> ".s:C_Root.'&Idioms.s&tatic\ function <Esc><Esc>:call C_InsertTemplate("idioms.function-static")<CR>' + exe "vmenu <silent> ".s:C_Root.'&Idioms.s&tatic\ function <Esc><Esc>:call C_InsertTemplate("idioms.function-static", "v")<CR>' + exe "amenu <silent> ".s:C_Root.'&Idioms.&main <Esc><Esc>:call C_InsertTemplate("idioms.main")<CR>' + exe "vmenu <silent> ".s:C_Root.'&Idioms.&main <Esc><Esc>:call C_InsertTemplate("idioms.main", "v")<CR>' + + exe "amenu ".s:C_Root.'&Idioms.-SEP1- :' + exe "amenu ".s:C_Root.'&Idioms.for(x=&0;\ x<n;\ x\+=1) <Esc><Esc>:call C_CodeFor("up" , "a")<CR>a' + exe "amenu ".s:C_Root.'&Idioms.for(x=&n-1;\ x>=0;\ x\-=1) <Esc><Esc>:call C_CodeFor("down", "a")<CR>a' + exe "vmenu ".s:C_Root.'&Idioms.for(x=&0;\ x<n;\ x\+=1) <Esc><Esc>:call C_CodeFor("up" , "v")<CR>' + exe "vmenu ".s:C_Root.'&Idioms.for(x=&n-1;\ x>=0;\ x\-=1) <Esc><Esc>:call C_CodeFor("down", "v")<CR>' + + exe "amenu ".s:C_Root.'&Idioms.-SEP2- :' + exe "amenu <silent> ".s:C_Root.'&Idioms.&enum\+typedef <Esc><Esc>:call C_InsertTemplate("idioms.enum")<CR>' + exe "amenu <silent> ".s:C_Root.'&Idioms.&struct\+typedef <Esc><Esc>:call C_InsertTemplate("idioms.struct")<CR>' + exe "amenu <silent> ".s:C_Root.'&Idioms.&union\+typedef <Esc><Esc>:call C_InsertTemplate("idioms.union")<CR>' + exe "vmenu <silent> ".s:C_Root.'&Idioms.&enum\+typedef <Esc><Esc>:call C_InsertTemplate("idioms.enum" , "v")<CR>' + exe "vmenu <silent> ".s:C_Root.'&Idioms.&struct\+typedef <Esc><Esc>:call C_InsertTemplate("idioms.struct", "v")<CR>' + exe "vmenu <silent> ".s:C_Root.'&Idioms.&union\+typedef <Esc><Esc>:call C_InsertTemplate("idioms.union" , "v")<CR>' + exe "amenu ".s:C_Root.'&Idioms.-SEP3- :' + " + exe " noremenu ".s:C_Root.'&Idioms.&printf <Esc><Esc>oprintf("\n");<Esc>2F"a' + exe "inoremenu ".s:C_Root.'&Idioms.&printf printf("\n");<Esc>2F"a' + + exe " noremenu ".s:C_Root.'&Idioms.s&canf <Esc><Esc>oscanf("", & );<Esc>F"i' + exe "inoremenu ".s:C_Root.'&Idioms.s&canf scanf("", & );<Esc>F"i' + " + exe "amenu ".s:C_Root.'&Idioms.-SEP4- :' + exe "amenu <silent> ".s:C_Root.'&Idioms.p=ca&lloc\(n,sizeof(type)\) <Esc><Esc>:call C_InsertTemplate("idioms.calloc")<CR>' + exe "amenu <silent> ".s:C_Root.'&Idioms.p=m&alloc\(sizeof(type)\) <Esc><Esc>:call C_InsertTemplate("idioms.malloc")<CR>' + " + exe "anoremenu <silent> ".s:C_Root.'&Idioms.si&zeof(\ \) isizeof()<Left>' + exe "inoremenu <silent> ".s:C_Root.'&Idioms.si&zeof(\ \) sizeof()<Left>' + exe "vnoremenu <silent> ".s:C_Root.'&Idioms.si&zeof(\ \) ssizeof()<Esc>P' + " + exe "anoremenu <silent> ".s:C_Root.'&Idioms.asse&rt(\ \) oassert();<Left><Left>' + exe "vnoremenu <silent> ".s:C_Root.'&Idioms.asse&rt(\ \) sassert();<Esc>F(p' + exe "amenu ".s:C_Root.'&Idioms.-SEP5- :' + exe "amenu <silent> ".s:C_Root.'&Idioms.open\ &input\ file <Esc><Esc>:call C_InsertTemplate("idioms.open-input-file")<CR>' + exe "amenu <silent> ".s:C_Root.'&Idioms.open\ &output\ file <Esc><Esc>:call C_InsertTemplate("idioms.open-output-file")<CR>' + exe "amenu <silent> ".s:C_Root.'&Idioms.fscanf <Esc><Esc>:call C_InsertTemplate("idioms.fscanf")<CR>' + exe "amenu <silent> ".s:C_Root.'&Idioms.fprintf <Esc><Esc>:call C_InsertTemplate("idioms.fprintf")<CR>' + " + "=============================================================================================== + "----- Menu : C-Preprocessor ---------------------------------------------- {{{2 + "=============================================================================================== + " + if s:C_MenuHeader == 'yes' + exe "amenu ".s:C_Root.'&Preprocessor.&Preprocessor<Tab>C\/C\+\+ <Esc>' + exe "amenu ".s:C_Root.'&Preprocessor.-Sep00- :' + endif + " + "----- Submenu : C-Idioms: standard library ------------------------------------------------------- + "' + exe "amenu ".s:C_Root.'&Preprocessor.#include\ &Std\.Lib\..Std\.Lib\.<Tab>C\/C\+\+ <Esc>' + exe "amenu ".s:C_Root.'&Preprocessor.#include\ &Std\.Lib\..-Sep0- :' + " + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ &Std\.Lib\..&assert\.h <Esc><Esc>o#include<Tab><assert.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ &Std\.Lib\..&ctype\.h <Esc><Esc>o#include<Tab><ctype.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ &Std\.Lib\..&errno\.h <Esc><Esc>o#include<Tab><errno.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ &Std\.Lib\..&float\.h <Esc><Esc>o#include<Tab><float.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ &Std\.Lib\..&limits\.h <Esc><Esc>o#include<Tab><limits.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ &Std\.Lib\..l&ocale\.h <Esc><Esc>o#include<Tab><locale.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ &Std\.Lib\..&math\.h <Esc><Esc>o#include<Tab><math.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ &Std\.Lib\..set&jmp\.h <Esc><Esc>o#include<Tab><setjmp.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ &Std\.Lib\..s&ignal\.h <Esc><Esc>o#include<Tab><signal.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ &Std\.Lib\..stdar&g\.h <Esc><Esc>o#include<Tab><stdarg.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ &Std\.Lib\..st&ddef\.h <Esc><Esc>o#include<Tab><stddef.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ &Std\.Lib\..&stdio\.h <Esc><Esc>o#include<Tab><stdio.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ &Std\.Lib\..stdli&b\.h <Esc><Esc>o#include<Tab><stdlib.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ &Std\.Lib\..st&ring\.h <Esc><Esc>o#include<Tab><string.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ &Std\.Lib\..&time\.h <Esc><Esc>o#include<Tab><time.h>' + " + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ C&99.C99<Tab>C\/C\+\+ <Esc>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ C&99.-Sep0- :' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ C&99.&complex\.h <Esc><Esc>o#include<Tab><complex.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ C&99.&fenv\.h <Esc><Esc>o#include<Tab><fenv.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ C&99.&inttypes\.h <Esc><Esc>o#include<Tab><inttypes.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ C&99.is&o646\.h <Esc><Esc>o#include<Tab><iso646.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ C&99.&stdbool\.h <Esc><Esc>o#include<Tab><stdbool.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ C&99.s&tdint\.h <Esc><Esc>o#include<Tab><stdint.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ C&99.tg&math\.h <Esc><Esc>o#include<Tab><tgmath.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ C&99.&wchar\.h <Esc><Esc>o#include<Tab><wchar.h>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ C&99.wct&ype\.h <Esc><Esc>o#include<Tab><wctype.h>' + " + exe "amenu ".s:C_Root.'&Preprocessor.-SEP2- :' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ &\<\.\.\.\> <Esc><Esc>o#include<Tab><><Left>' + exe "anoremenu ".s:C_Root.'&Preprocessor.#include\ &\"\.\.\.\" <Esc><Esc>o#include<Tab>""<Left>' + exe "amenu ".s:C_Root.'&Preprocessor.#&define <Esc><Esc>:call C_InsertTemplate("preprocessor.define")<CR>' + exe "amenu ".s:C_Root.'&Preprocessor.&#undef <Esc><Esc>:call C_InsertTemplate("preprocessor.undefine")<CR>' + " + exe "amenu ".s:C_Root.'&Preprocessor.#&if\ #else\ #endif <Esc><Esc>:call C_InsertTemplate("preprocessor.if-else-endif")<CR>' + exe "amenu ".s:C_Root.'&Preprocessor.#i&fdef\ #else\ #endif <Esc><Esc>:call C_InsertTemplate("preprocessor.ifdef-else-endif")<CR>' + exe "amenu ".s:C_Root.'&Preprocessor.#if&ndef\ #else\ #endif <Esc><Esc>:call C_InsertTemplate("preprocessor.ifndef-else-endif")<CR>' + exe "amenu ".s:C_Root.'&Preprocessor.#ifnd&ef\ #def\ #endif <Esc><Esc>:call C_InsertTemplate("preprocessor.ifndef-def-endif")<CR>' + exe "amenu ".s:C_Root.'&Preprocessor.#if\ &0\ #endif <Esc><Esc>:call C_PPIf0("a")<CR>2ji' + " + exe "vmenu ".s:C_Root.'&Preprocessor.#&if\ #else\ #endif <Esc><Esc>:call C_InsertTemplate("preprocessor.if-else-endif", "v")<CR>' + exe "vmenu ".s:C_Root.'&Preprocessor.#i&fdef\ #else\ #endif <Esc><Esc>:call C_InsertTemplate("preprocessor.ifdef-else-endif", "v")<CR>' + exe "vmenu ".s:C_Root.'&Preprocessor.#if&ndef\ #else\ #endif <Esc><Esc>:call C_InsertTemplate("preprocessor.ifndef-else-endif", "v")<CR>' + exe "vmenu ".s:C_Root.'&Preprocessor.#ifnd&ef\ #def\ #endif <Esc><Esc>:call C_InsertTemplate("preprocessor.ifndef-def-endif", "v")<CR>' + exe "vmenu ".s:C_Root.'&Preprocessor.#if\ &0\ #endif <Esc><Esc>:call C_PPIf0("v")<CR>' + " + exe "amenu <silent> ".s:C_Root.'&Preprocessor.&remove\ #if\ 0\ #endif <Esc><Esc>:call C_PPIf0Remove()<CR>' + " + "=============================================================================================== + "----- Menu : Snippets ---------------------------------------------------- {{{2 + "=============================================================================================== + " + if s:C_MenuHeader == 'yes' + exe "amenu ".s:C_Root.'S&nippets.S&nippets<Tab>C\/C\+\+ <Esc>' + exe "amenu ".s:C_Root.'S&nippets.-Sep00- :' + endif + if s:C_CodeSnippets != "" + exe "amenu <silent> ".s:C_Root.'S&nippets.&read\ code\ snippet <C-C>:call C_CodeSnippet("r")<CR>' + exe "amenu <silent> ".s:C_Root.'S&nippets.&write\ code\ snippet <C-C>:call C_CodeSnippet("w")<CR>' + exe "vmenu <silent> ".s:C_Root.'S&nippets.&write\ code\ snippet <C-C>:call C_CodeSnippet("wv")<CR>' + exe "amenu <silent> ".s:C_Root.'S&nippets.&edit\ code\ snippet <C-C>:call C_CodeSnippet("e")<CR>' + exe " menu <silent> ".s:C_Root.'S&nippets.-SEP1- :' + endif + exe " menu <silent> ".s:C_Root.'S&nippets.&pick\ up\ prototype <C-C>:call C_ProtoPick("n")<CR>' + exe "vmenu <silent> ".s:C_Root.'S&nippets.&pick\ up\ prototype <C-C>:call C_ProtoPick("v")<CR>' + exe " menu <silent> ".s:C_Root.'S&nippets.&insert\ prototype(s) <C-C>:call C_ProtoInsert()<CR>' + exe " menu <silent> ".s:C_Root.'S&nippets.&clear\ prototype(s) <C-C>:call C_ProtoClear()<CR>' + exe " menu <silent> ".s:C_Root.'S&nippets.&show\ prototype(s) <C-C>:call C_ProtoShow()<CR>' + + " + "=============================================================================================== + "----- Menu : C++ --------------------------------------------------------- {{{2 + "=============================================================================================== + " + if s:C_MenuHeader == 'yes' + exe "amenu ".s:C_Root.'C&++.C&\+\+<Tab>C\/C\+\+ <Esc>' + exe "amenu ".s:C_Root.'C&++.-Sep00- :' + endif + exe " noremenu ".s:C_Root.'C&++.c&in <Esc><Esc>ocin<Tab>>> ;<Esc>i' + exe " noremenu ".s:C_Root.'C&++.cout\ &variable <Esc><Esc>ocout<Tab><< << endl;<Esc>2F<hi' + exe " noremenu ".s:C_Root.'C&++.cout\ &string <Esc><Esc>ocout<Tab><< "\n";<Esc>2F"a' + exe " noremenu ".s:C_Root.'C&++.<<\ &\"\" i<< "" <Left><Left>' + " + exe "inoremenu ".s:C_Root.'C&++.c&in cin<Tab>>> ;<Esc>i' + exe "inoremenu ".s:C_Root.'C&++.cout\ &variable cout<Tab><< << endl;<Esc>2F<hi' + exe "inoremenu ".s:C_Root.'C&++.cout\ &string cout<Tab><< "\n";<Esc>2F"a' + exe "inoremenu ".s:C_Root.'C&++.<<\ &\"\" << "" <Left><Left>' + " + "----- Submenu : C++ : output manipulators ------------------------------------------------------- + " + exe "amenu ".s:C_Root.'C&++.&output\ manipulators.output\ manip\.<Tab>C\/C\+\+ <Esc>' + exe "amenu ".s:C_Root.'C&++.&output\ manipulators.-Sep0- :' + " + exe " noremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ &boolalpha i<< boolalpha<Space>' + exe " noremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ &dec i<< dec<Space>' + exe " noremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ &endl i<< endl<Space>' + exe " noremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ &fixed i<< fixed<Space>' + exe " noremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ fl&ush i<< flush<Space>' + exe " noremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ &hex i<< hex<Space>' + exe " noremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ &internal i<< internal<Space>' + exe " noremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ &left i<< left<Space>' + exe " noremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ &oct i<< oct<Space>' + exe " noremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ &right i<< right<Space>' + exe " noremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ s&cientific i<< scientific<Space>' + exe " noremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ &setbase\(\ \) i<< setbase(10) <Left><Left>' + exe " noremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ se&tfill\(\ \) i<< setfill() <Left><Left>' + exe " noremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ setiosfla&g\(\ \) i<< setiosflags() <Left><Left>' + exe " noremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ set&precision\(\ \) i<< setprecision(6) <Left><Left>' + exe " noremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ set&w\(\ \) i<< setw(0) <Left><Left>' + exe " noremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ showb&ase i<< showbase<Space>' + exe " noremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ showpoi&nt i<< showpoint<Space>' + exe " noremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ showpos\ \(&1\) i<< showpos<Space>' + exe " noremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ uppercase\ \(&2\) i<< uppercase<Space>' + " + exe "inoremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ &boolalpha << boolalpha<Space>' + exe "inoremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ &dec << dec<Space>' + exe "inoremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ &endl << endl<Space>' + exe "inoremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ &fixed << fixed<Space>' + exe "inoremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ fl&ush << flush<Space>' + exe "inoremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ &hex << hex<Space>' + exe "inoremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ &internal << internal<Space>' + exe "inoremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ &left << left<Space>' + exe "inoremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ o&ct << oct<Space>' + exe "inoremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ &right << right<Space>' + exe "inoremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ s&cientific << scientific<Space>' + exe "inoremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ &setbase\(\ \) << setbase(10) <Left><Left>' + exe "inoremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ se&tfill\(\ \) << setfill() <Left><Left>' + exe "inoremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ setiosfla&g\(\ \) << setiosflags() <Left><Left>' + exe "inoremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ set&precision\(\ \) << setprecision(6) <Left><Left>' + exe "inoremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ set&w\(\ \) << setw(0) <Left><Left>' + exe "inoremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ showb&ase << showbase<Space>' + exe "inoremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ showpoi&nt << showpoint<Space>' + exe "inoremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ showpos\ \(&1\) << showpos<Space>' + exe "inoremenu ".s:C_Root.'C&++.&output\ manipulators.\<\<\ uppercase\ \(&2\) << uppercase<Space>' + " + "----- Submenu : C++ : ios flag bits ------------------------------------------------------------- + " + exe "amenu ".s:C_Root.'C&++.ios\ flag&bits.ios\ flags<Tab>C\/C\+\+ <Esc>' + exe "amenu ".s:C_Root.'C&++.ios\ flag&bits.-Sep0- :' + " + exe " noremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&adjustfield iios::adjustfield' + exe " noremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::bas&efield iios::basefield' + exe " noremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&boolalpha iios::boolalpha' + exe " noremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&dec iios::dec' + exe " noremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&fixed iios::fixed' + exe " noremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::floa&tfield iios::floatfield' + exe " noremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&hex iios::hex' + exe " noremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&internal iios::internal' + exe " noremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&left iios::left' + exe " noremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&oct iios::oct' + exe " noremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&right iios::right' + exe " noremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::s&cientific iios::scientific' + exe " noremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::sho&wbase iios::showbase' + exe " noremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::showpoint\ \(&1\) iios::showpoint' + exe " noremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::show&pos iios::showpos' + exe " noremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&skipws iios::skipws' + exe " noremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::u&nitbuf iios::unitbuf' + exe " noremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&uppercase iios::uppercase' + " + exe "inoremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&adjustfield ios::adjustfield' + exe "inoremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::bas&efield ios::basefield' + exe "inoremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&boolalpha ios::boolalpha' + exe "inoremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&dec ios::dec' + exe "inoremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&fixed ios::fixed' + exe "inoremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::floa&tfield ios::floatfield' + exe "inoremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&hex ios::hex' + exe "inoremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&internal ios::internal' + exe "inoremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&left ios::left' + exe "inoremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&oct ios::oct' + exe "inoremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&right ios::right' + exe "inoremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::s&cientific ios::scientific' + exe "inoremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::sho&wbase ios::showbase' + exe "inoremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::showpoint\ \(&1\) ios::showpoint' + exe "inoremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::show&pos ios::showpos' + exe "inoremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&skipws ios::skipws' + exe "inoremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::u&nitbuf ios::unitbuf' + exe "inoremenu ".s:C_Root.'C&++.ios\ flag&bits.ios::&uppercase ios::uppercase' + " + "----- Submenu : C++ library (algorithm - locale) ---------------------------------------------- + " + exe "amenu ".s:C_Root.'C&++.#include\ <alg\.\.loc>\ \(&1\).alg\.\.loc<Tab>C\/C\+\+ <Esc>' + exe "amenu ".s:C_Root.'C&++.#include\ <alg\.\.loc>\ \(&1\).-Sep0- :' + " + exe "anoremenu ".s:C_Root.'C&++.#include\ <alg\.\.loc>\ \(&1\).&algorithm <Esc><Esc>o#include<Tab><algorithm>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <alg\.\.loc>\ \(&1\).&bitset <Esc><Esc>o#include<Tab><bitset>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <alg\.\.loc>\ \(&1\).&complex <Esc><Esc>o#include<Tab><complex>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <alg\.\.loc>\ \(&1\).&deque <Esc><Esc>o#include<Tab><deque>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <alg\.\.loc>\ \(&1\).&exception <Esc><Esc>o#include<Tab><exception>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <alg\.\.loc>\ \(&1\).&fstream <Esc><Esc>o#include<Tab><fstream>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <alg\.\.loc>\ \(&1\).f&unctional <Esc><Esc>o#include<Tab><functional>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <alg\.\.loc>\ \(&1\).iomani&p <Esc><Esc>o#include<Tab><iomanip>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <alg\.\.loc>\ \(&1\).&ios <Esc><Esc>o#include<Tab><ios>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <alg\.\.loc>\ \(&1\).iosf&wd <Esc><Esc>o#include<Tab><iosfwd>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <alg\.\.loc>\ \(&1\).io&stream <Esc><Esc>o#include<Tab><iostream>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <alg\.\.loc>\ \(&1\).istrea&m <Esc><Esc>o#include<Tab><istream>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <alg\.\.loc>\ \(&1\).iterato&r <Esc><Esc>o#include<Tab><iterator>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <alg\.\.loc>\ \(&1\).&limits <Esc><Esc>o#include<Tab><limits>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <alg\.\.loc>\ \(&1\).lis&t <Esc><Esc>o#include<Tab><list>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <alg\.\.loc>\ \(&1\).l&ocale <Esc><Esc>o#include<Tab><locale>' + " + "----- Submenu : C++ library (map - vector) ---------------------------------------------------- + " + exe "amenu ".s:C_Root.'C&++.#include\ <map\.\.vec>\ \(&2\).map\.\.vec<Tab>C\/C\+\+ <Esc>' + exe "amenu ".s:C_Root.'C&++.#include\ <map\.\.vec>\ \(&2\).-Sep0- :' + + exe "anoremenu ".s:C_Root.'C&++.#include\ <map\.\.vec>\ \(&2\).&map <Esc><Esc>o#include<Tab><map>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <map\.\.vec>\ \(&2\).memor&y <Esc><Esc>o#include<Tab><memory>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <map\.\.vec>\ \(&2\).&new <Esc><Esc>o#include<Tab><new>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <map\.\.vec>\ \(&2\).numeri&c <Esc><Esc>o#include<Tab><numeric>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <map\.\.vec>\ \(&2\).&ostream <Esc><Esc>o#include<Tab><ostream>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <map\.\.vec>\ \(&2\).&queue <Esc><Esc>o#include<Tab><queue>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <map\.\.vec>\ \(&2\).&set <Esc><Esc>o#include<Tab><set>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <map\.\.vec>\ \(&2\).sst&ream <Esc><Esc>o#include<Tab><sstream>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <map\.\.vec>\ \(&2\).st&ack <Esc><Esc>o#include<Tab><stack>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <map\.\.vec>\ \(&2\).stde&xcept <Esc><Esc>o#include<Tab><stdexcept>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <map\.\.vec>\ \(&2\).stream&buf <Esc><Esc>o#include<Tab><streambuf>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <map\.\.vec>\ \(&2\).str&ing <Esc><Esc>o#include<Tab><string>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <map\.\.vec>\ \(&2\).&typeinfo <Esc><Esc>o#include<Tab><typeinfo>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <map\.\.vec>\ \(&2\).&utility <Esc><Esc>o#include<Tab><utility>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <map\.\.vec>\ \(&2\).&valarray <Esc><Esc>o#include<Tab><valarray>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <map\.\.vec>\ \(&2\).v&ector <Esc><Esc>o#include<Tab><vector>' + " + "----- Submenu : C library (cassert - ctime) ------------------------------------------------- + " + exe "amenu ".s:C_Root.'C&++.#include\ <cX>\ \(&3\).cX<Tab>C\/C\+\+ <Esc>' + exe "amenu ".s:C_Root.'C&++.#include\ <cX>\ \(&3\).-Sep0- :' + " + exe "anoremenu ".s:C_Root.'C&++.#include\ <cX>\ \(&3\).c&assert <Esc><Esc>o#include<Tab><cassert>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <cX>\ \(&3\).c&ctype <Esc><Esc>o#include<Tab><cctype>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <cX>\ \(&3\).c&errno <Esc><Esc>o#include<Tab><cerrno>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <cX>\ \(&3\).c&float <Esc><Esc>o#include<Tab><cfloat>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <cX>\ \(&3\).c&limits <Esc><Esc>o#include<Tab><climits>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <cX>\ \(&3\).cl&ocale <Esc><Esc>o#include<Tab><clocale>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <cX>\ \(&3\).c&math <Esc><Esc>o#include<Tab><cmath>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <cX>\ \(&3\).cset&jmp <Esc><Esc>o#include<Tab><csetjmp>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <cX>\ \(&3\).cs&ignal <Esc><Esc>o#include<Tab><csignal>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <cX>\ \(&3\).cstdar&g <Esc><Esc>o#include<Tab><cstdarg>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <cX>\ \(&3\).cst&ddef <Esc><Esc>o#include<Tab><cstddef>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <cX>\ \(&3\).c&stdio <Esc><Esc>o#include<Tab><cstdio>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <cX>\ \(&3\).cstdli&b <Esc><Esc>o#include<Tab><cstdlib>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <cX>\ \(&3\).cst&ring <Esc><Esc>o#include<Tab><cstring>' + exe "anoremenu ".s:C_Root.'C&++.#include\ <cX>\ \(&3\).c&time <Esc><Esc>o#include<Tab><ctime>' + " + "----- End Submenu : C library (cassert - ctime) --------------------------------------------- + " + exe "amenu <silent> ".s:C_Root.'C&++.-SEP2- :' + exe "amenu <silent> ".s:C_Root.'C&++.&method\ implement\. <Esc><Esc>:call C_InsertTemplate("cpp.method-implementation")<CR>' + + exe "amenu <silent> ".s:C_Root.'C&++.&class <Esc><Esc>:call C_InsertTemplate("cpp.class")<CR>' + exe "amenu <silent> ".s:C_Root.'C&++.class\ (w\.\ &new) <Esc><Esc>:call C_InsertTemplate("cpp.class-using-new")<CR>' + exe "amenu <silent> ".s:C_Root.'C&++.-SEP3- :' + exe "amenu <silent> ".s:C_Root.'C&++.tem&pl\.\ method\ impl\. <Esc><Esc>:call C_InsertTemplate("cpp.template-method-implementation")<CR>' + exe "amenu <silent> ".s:C_Root.'C&++.&templ\.\ class <Esc><Esc>:call C_InsertTemplate("cpp.template-class")<CR>' + exe "amenu <silent> ".s:C_Root.'C&++.templ\.\ class\ (w\.\ ne&w) <Esc><Esc>:call C_InsertTemplate("cpp.template-class-using-new")<CR>' + + exe "amenu <silent> ".s:C_Root.'C&++.-SEP31- :' + exe "amenu <silent> ".s:C_Root.'C&++.templ\.\ &function <Esc><Esc>:call C_InsertTemplate("cpp.template-function")<CR>' + exe "amenu <silent> ".s:C_Root.'C&++.&error\ class <Esc><Esc>:call C_InsertTemplate("cpp.error-class")<CR>' + exe "amenu <silent> ".s:C_Root.'C&++.-SEP4- :' + exe "amenu <silent> ".s:C_Root.'C&++.operator\ &<< <Esc><Esc>:call C_InsertTemplate("cpp.operator-in")<CR>' + exe "amenu <silent> ".s:C_Root.'C&++.operator\ &>> <Esc><Esc>:call C_InsertTemplate("cpp.operator-out")<CR>' + exe "amenu <silent> ".s:C_Root.'C&++.-SEP5- :' + exe "amenu <silent> ".s:C_Root.'C&++.tr&y\ \.\.\ catch <Esc><Esc>:call C_InsertTemplate("cpp.try-catch")<CR>' + exe "vmenu <silent> ".s:C_Root.'C&++.tr&y\ \.\.\ catch <Esc><Esc>:call C_InsertTemplate("cpp.try-catch", "v")<CR>' + exe "amenu <silent> ".s:C_Root.'C&++.catc&h <Esc><Esc>:call C_InsertTemplate("cpp.catch")<CR>' + exe "vmenu <silent> ".s:C_Root.'C&++.catc&h <Esc><Esc>:call C_InsertTemplate("cpp.catch", "v")<CR>' + + exe "amenu <silent> ".s:C_Root.'C&++.catch\(&\.\.\.\) <Esc><Esc>:call C_InsertTemplate("cpp.catch-points")<CR>' + exe "vmenu <silent> ".s:C_Root.'C&++.catch\(&\.\.\.\) <Esc><Esc>:call C_InsertTemplate("cpp.catch-points", "v")<CR>' + + exe "amenu <silent> ".s:C_Root.'C&++.-SEP6- :' + exe "amenu <silent> ".s:C_Root.'C&++.open\ input\ file\ \ \(&4\) <Esc><Esc>:call C_InsertTemplate("cpp.open-input-file")<CR>' + exe "amenu <silent> ".s:C_Root.'C&++.open\ output\ file\ \(&5\) <Esc><Esc>:call C_InsertTemplate("cpp.open-output-file")<CR>' + exe "amenu <silent> ".s:C_Root.'C&++.-SEP7- :' + + exe " menu <silent> ".s:C_Root.'C&++.&using\ namespace\ std; <Esc><Esc>ousing namespace std;<CR>' + exe " menu <silent> ".s:C_Root.'C&++.usin&g\ namespace\ ; <Esc><Esc>ousing namespace ;<Esc>$i' + exe "amenu <silent> ".s:C_Root.'C&++.namespace\ &\{\ \} <Esc><Esc>:call C_InsertTemplate("cpp.namespace")<CR>' + + exe "imenu <silent> ".s:C_Root.'C&++.&using\ namespace\ std; using namespace std;<CR>' + exe "imenu <silent> ".s:C_Root.'C&++.usin&g\ namespace\ ; using namespace ;<Esc>$i' + exe "vmenu <silent> ".s:C_Root.'C&++.namespace\ &\{\ \} <Esc><Esc>:call C_InsertTemplate("cpp.namespace", "v")<CR>' + + exe "amenu <silent> ".s:C_Root.'C&++.-SEP8- :' + " + "----- Submenu : RTTI ---------------------------------------------------------------------------- + " + exe "amenu ".s:C_Root.'C&++.&RTTI.RTTI<Tab>C\/C\+\+ <Esc>' + exe "amenu ".s:C_Root.'C&++.&RTTI.-Sep0- :' + " + exe " noremenu ".s:C_Root.'C&++.&RTTI.&typeid atypeid()<Esc>hr(a' + exe " noremenu ".s:C_Root.'C&++.&RTTI.&static_cast astatic_cast<>()<Left>' + exe " noremenu ".s:C_Root.'C&++.&RTTI.&const_cast aconst_cast<>()<Left>' + exe " noremenu ".s:C_Root.'C&++.&RTTI.&reinterpret_cast areinterpret_cast<>()<Left>' + exe " noremenu ".s:C_Root.'C&++.&RTTI.&dynamic_cast adynamic_cast<>()<Left>' + " + exe "vnoremenu ".s:C_Root.'C&++.&RTTI.&typeid stypeid()<Esc>hr(p' + exe "vnoremenu ".s:C_Root.'C&++.&RTTI.&static_cast sstatic_cast<>()<Esc>P' + exe "vnoremenu ".s:C_Root.'C&++.&RTTI.&const_cast sconst_cast<>()<Esc>P' + exe "vnoremenu ".s:C_Root.'C&++.&RTTI.&reinterpret_cast sreinterpret_cast<>()<Esc>P' + exe "vnoremenu ".s:C_Root.'C&++.&RTTI.&dynamic_cast sdynamic_cast<>()<Esc>P' + " + exe "inoremenu ".s:C_Root.'C&++.&RTTI.&typeid typeid()<Esc>hr(a' + exe "inoremenu ".s:C_Root.'C&++.&RTTI.&static_cast static_cast<>()<Left>' + exe "inoremenu ".s:C_Root.'C&++.&RTTI.&const_cast const_cast<>()<Left>' + exe "inoremenu ".s:C_Root.'C&++.&RTTI.&reinterpret_cast reinterpret_cast<>()<Left>' + exe "inoremenu ".s:C_Root.'C&++.&RTTI.&dynamic_cast dynamic_cast<>()<Left>' + " + "----- End Submenu : RTTI ------------------------------------------------------------------------ + " + exe "amenu <silent>".s:C_Root.'C&++.e&xtern\ \"C\"\ \{\ \} <Esc><Esc>:call C_InsertTemplate("cpp.extern")<CR>' + exe "vmenu <silent>".s:C_Root.'C&++.e&xtern\ \"C\"\ \{\ \} <Esc><Esc>:call C_InsertTemplate("cpp.extern", "v")<CR>' + " + "=============================================================================================== + "----- Menu : run ----- -------------------------------------------------- {{{2 + "=============================================================================================== + " + if s:C_MenuHeader == 'yes' + exe "amenu ".s:C_Root.'&Run.&Run<Tab>C\/C\+\+ <Esc>' + exe "amenu ".s:C_Root.'&Run.-Sep00- :' + endif + " + exe "amenu <silent> ".s:C_Root.'&Run.save\ and\ &compile<Tab>\<A-F9\> <C-C>:call C_Compile()<CR>:redraw<CR>:call C_HlMessage()<CR>' + exe "amenu <silent> ".s:C_Root.'&Run.&link<Tab>\<F9\> <C-C>:call C_Link()<CR>:redraw<CR>:call C_HlMessage()<CR>' + exe "amenu <silent> ".s:C_Root.'&Run.&run<Tab>\<C-F9\> <C-C>:call C_Run()<CR>' + exe "amenu <silent> ".s:C_Root.'&Run.cmd\.\ line\ &arg\.<Tab>\<S-F9\> <C-C>:call C_Arguments()<CR>' + exe "amenu <silent> ".s:C_Root.'&Run.-SEP0- :' + exe "amenu <silent> ".s:C_Root.'&Run.&make <C-C>:call C_Make()<CR>' + exe "amenu <silent> ".s:C_Root.'&Run.cmd\.\ line\ ar&g\.\ for\ make <C-C>:call C_MakeArguments()<CR>' + exe "amenu <silent> ".s:C_Root.'&Run.-SEP1- :' + if s:C_SplintIsExecutable==1 + exe "amenu <silent> ".s:C_Root.'&Run.s&plint <C-C>:call C_SplintCheck()<CR>:redraw<CR>:call C_HlMessage()<CR>' + exe "amenu <silent> ".s:C_Root.'&Run.cmd\.\ line\ arg\.\ for\ spl&int <C-C>:call C_SplintArguments()<CR>' + exe "amenu <silent> ".s:C_Root.'&Run.-SEP2- :' + endif + " + if s:C_CodeCheckIsExecutable==1 + exe "amenu <silent> ".s:C_Root.'&Run.CodeChec&k <C-C>:call C_CodeCheck()<CR>:redraw<CR>:call C_HlMessage()<CR>' + exe "amenu <silent> ".s:C_Root.'&Run.cmd\.\ line\ arg\.\ for\ Cod&eCheck <C-C>:call C_CodeCheckArguments()<CR>' + exe "amenu <silent> ".s:C_Root.'&Run.-SEP3- :' + endif + " + exe "amenu ".s:C_Root.'&Run.in&dent <C-C>:call C_Indent("a")<CR>:redraw<CR>:call C_HlMessage()<CR>' + exe "vmenu ".s:C_Root.'&Run.in&dent <C-C>:call C_Indent("v")<CR>:redraw<CR>:call C_HlMessage()<CR>' + if s:MSWIN + exe "amenu <silent> ".s:C_Root.'&Run.&hardcopy\ to\ printer <C-C>:call C_Hardcopy("n")<CR>' + exe "vmenu <silent> ".s:C_Root.'&Run.&hardcopy\ to\ printer <C-C>:call C_Hardcopy("v")<CR>' + else + exe "amenu <silent> ".s:C_Root.'&Run.&hardcopy\ to\ FILENAME\.ps <C-C>:call C_Hardcopy("n")<CR>' + exe "vmenu <silent> ".s:C_Root.'&Run.&hardcopy\ to\ FILENAME\.ps <C-C>:call C_Hardcopy("v")<CR>' + endif + exe "imenu <silent> ".s:C_Root.'&Run.-SEP4- :' + + exe "amenu <silent> ".s:C_Root.'&Run.rebuild\ &templates <C-C>:call C_RebuildTemplates()<CR>' + exe "amenu <silent> ".s:C_Root.'&Run.&settings <C-C>:call C_Settings()<CR>' + exe "imenu <silent> ".s:C_Root.'&Run.-SEP5- :' + + if !s:MSWIN + exe "amenu <silent> ".s:C_Root.'&Run.&xterm\ size <C-C>:call C_XtermSize()<CR>' + endif + if s:C_OutputGvim == "vim" + exe "amenu <silent> ".s:C_Root.'&Run.&output:\ VIM->buffer->xterm <C-C>:call C_Toggle_Gvim_Xterm()<CR><CR>' + else + if s:C_OutputGvim == "buffer" + exe "amenu <silent> ".s:C_Root.'&Run.&output:\ BUFFER->xterm->vim <C-C>:call C_Toggle_Gvim_Xterm()<CR><CR>' + else + exe "amenu <silent> ".s:C_Root.'&Run.&output:\ XTERM->vim->buffer <C-C>:call C_Toggle_Gvim_Xterm()<CR><CR>' + endif + endif + " + "=============================================================================================== + "----- Menu : help ------------------------------------------------------- {{{2 + "=============================================================================================== + " + if s:C_Root != "" + exe "menu <silent> ".s:C_Root.'&help\ \(plugin\) <C-C><C-C>:call C_HelpCsupport()<CR>' + endif + +endfunction " ---------- end of function C_InitMenus ---------- +" +"=============================================================================================== +"----- Menu Functions -------------------------------------------------------------------------- +"=============================================================================================== +" +"------------------------------------------------------------------------------ +" C_Input: Input after a highlighted prompt {{{1 +"------------------------------------------------------------------------------ +function! C_Input ( promp, text ) + echohl Search " highlight prompt + call inputsave() " preserve typeahead + let retval=input( a:promp, a:text ) " read input + call inputrestore() " restore typeahead + echohl None " reset highlighting + let retval = substitute( retval, '^\s\+', "", "" ) " remove leading whitespaces + let retval = substitute( retval, '\s\+$', "", "" ) " remove trailing whitespaces + return retval +endfunction " ---------- end of function C_Input ---------- +" +"------------------------------------------------------------------------------ +" C_AdjustLineEndComm: adjust line-end comments {{{1 +"------------------------------------------------------------------------------ +function! C_AdjustLineEndComm ( mode ) range + " + if !exists("b:C_LineEndCommentColumn") + let b:C_LineEndCommentColumn = s:C_LineEndCommColDefault + endif + + let save_cursor = getpos(".") + + let save_expandtab = &expandtab + exe ":set expandtab" + + if a:mode == 'v' + let pos0 = line("'<") + let pos1 = line("'>") + else + let pos0 = line(".") + let pos1 = pos0 + endif + + let linenumber = pos0 + exe ":".pos0 + + while linenumber <= pos1 + let line= getline(".") + " look for a C comment + let idx1 = 1 + match( line, '\s*\/\*.\{-}\*\/' ) + let idx2 = 1 + match( line, '\/\*.\{-}\*\/' ) + if idx2 == 0 + " look for a C++ comment + let idx1 = 1 + match( line, '\s*\/\/.*$' ) + let idx2 = 1 + match( line, '\/\/.*$' ) + endif + + let ln = line(".") + call setpos(".", [ 0, ln, idx1, 0 ] ) + let vpos1 = virtcol(".") + call setpos(".", [ 0, ln, idx2, 0 ] ) + let vpos2 = virtcol(".") + + if ! ( vpos2 == b:C_LineEndCommentColumn + \ || vpos1 > b:C_LineEndCommentColumn + \ || idx2 == 0 ) + + exe ":.,.retab" + " insert some spaces + if vpos2 < b:C_LineEndCommentColumn + let diff = b:C_LineEndCommentColumn-vpos2 + call setpos(".", [ 0, ln, vpos2, 0 ] ) + let @" = ' ' + exe "normal ".diff."P" + endif + + " remove some spaces + if vpos1 < b:C_LineEndCommentColumn && vpos2 > b:C_LineEndCommentColumn + let diff = vpos2 - b:C_LineEndCommentColumn + call setpos(".", [ 0, ln, b:C_LineEndCommentColumn, 0 ] ) + exe "normal ".diff."x" + endif + + endif + let linenumber=linenumber+1 + normal j + endwhile + " restore tab expansion settings and cursor position + let &expandtab = save_expandtab + call setpos('.', save_cursor) + +endfunction " ---------- end of function C_AdjustLineEndComm ---------- +" +"------------------------------------------------------------------------------ +" C_GetLineEndCommCol: get line-end comment position {{{1 +"------------------------------------------------------------------------------ +function! C_GetLineEndCommCol () + let actcol = virtcol(".") + if actcol+1 == virtcol("$") + let b:C_LineEndCommentColumn = C_Input( 'start line-end comment at virtual column : ', actcol ) + else + let b:C_LineEndCommentColumn = virtcol(".") + endif + echomsg "line end comments will start at column ".b:C_LineEndCommentColumn +endfunction " ---------- end of function C_GetLineEndCommCol ---------- +" +"------------------------------------------------------------------------------ +" C_LineEndComment: single line-end comment {{{1 +"------------------------------------------------------------------------------ +function! C_LineEndComment ( ) + if !exists("b:C_LineEndCommentColumn") + let b:C_LineEndCommentColumn = s:C_LineEndCommColDefault + endif + " ----- trim whitespaces ----- + exe 's/\s*$//' + let linelength= virtcol("$") - 1 + if linelength < b:C_LineEndCommentColumn + let diff = b:C_LineEndCommentColumn -1 -linelength + exe "normal ".diff."A " + endif + " append at least one blank + if linelength >= b:C_LineEndCommentColumn + exe "normal A " + endif + call C_InsertTemplate('comment.end-of-line-comment') +endfunction " ---------- end of function C_LineEndComment ---------- +" +"------------------------------------------------------------------------------ +" C_MultiLineEndComments: multi line-end comments {{{1 +"------------------------------------------------------------------------------ +function! C_MultiLineEndComments ( ) + " + if !exists("b:C_LineEndCommentColumn") + let b:C_LineEndCommentColumn = s:C_LineEndCommColDefault + endif + " + let pos0 = line("'<") + let pos1 = line("'>") + " + " ----- trim whitespaces ----- + exe pos0.','.pos1.'s/\s*$//' + " + " ----- find the longest line ----- + let maxlength = 0 + let linenumber = pos0 + normal '< + while linenumber <= pos1 + if getline(".") !~ "^\\s*$" && maxlength<virtcol("$") + let maxlength= virtcol("$") + endif + let linenumber=linenumber+1 + normal j + endwhile + " + if maxlength < b:C_LineEndCommentColumn + let maxlength = b:C_LineEndCommentColumn + else + let maxlength = maxlength+1 " at least 1 blank + endif + " + " ----- fill lines with blanks ----- + let linenumber = pos0 + while linenumber <= pos1 + exe ":".linenumber + if getline(".") !~ "^\\s*$" + let diff = maxlength - virtcol("$") + exe "normal ".diff."A " + call C_InsertTemplate('comment.end-of-line-comment') + endif + let linenumber=linenumber+1 + endwhile + " + " ----- back to the begin of the marked block ----- + let diff = pos1-pos0 + normal a + if pos1-pos0 > 0 + exe "normal ".diff."k" + end +endfunction " ---------- end of function C_MultiLineEndComments ---------- +" +"------------------------------------------------------------------------------ +" C_CommentSpecial : special comments {{{1 +"------------------------------------------------------------------------------ +function! C_CommentSpecial (special) + put = ' '.s:C_Com1.' '.a:special.' '.s:C_Com2 +endfunction " ---------- end of function C_CommentSpecial ---------- +" +"------------------------------------------------------------------------------ +" C_Comment_C_SectionAll: Section Comments {{{1 +"------------------------------------------------------------------------------ +" +function! C_Comment_C_SectionAll ( type ) + + call C_InsertTemplate("comment.file-section-cpp-header-includes") + call C_InsertTemplate("comment.file-section-cpp-macros") + call C_InsertTemplate("comment.file-section-cpp-typedefs") + call C_InsertTemplate("comment.file-section-cpp-data-types") + if a:type=="cpp" + call C_InsertTemplate("comment.file-section-cpp-class-defs") + endif + call C_InsertTemplate("comment.file-section-cpp-local-variables") + call C_InsertTemplate("comment.file-section-cpp-prototypes") + call C_InsertTemplate("comment.file-section-cpp-function-defs-exported") + call C_InsertTemplate("comment.file-section-cpp-function-defs-local") + if a:type=="cpp" + call C_InsertTemplate("comment.file-section-cpp-class-implementations-exported") + call C_InsertTemplate("comment.file-section-cpp-class-implementations-local") + endif + +endfunction " ---------- end of function C_Comment_C_SectionAll ---------- +" +function! C_Comment_H_SectionAll ( type ) + + call C_InsertTemplate("comment.file-section-hpp-header-includes") + call C_InsertTemplate("comment.file-section-hpp-macros") + call C_InsertTemplate("comment.file-section-hpp-exported-typedefs") + call C_InsertTemplate("comment.file-section-hpp-exported-data-types") + if a:type=="cpp" + call C_InsertTemplate("comment.file-section-hpp-exported-class-defs") + endif + call C_InsertTemplate("comment.file-section-hpp-exported-variables") + call C_InsertTemplate("comment.file-section-hpp-exported-function-declarations") + +endfunction " ---------- end of function C_Comment_H_SectionAll ---------- +" +"---------------------------------------------------------------------- +" C_CodeComment : Code -> Comment {{{1 +"---------------------------------------------------------------------- +function! C_CodeComment( mode, style ) + + if a:mode=="a" + if a:style == 'yes' + silent exe ":s#^#/\* #" + silent put = ' */' + else + silent exe ":s#^#//#" + endif + endif + + if a:mode=="v" + if a:style == 'yes' + silent exe ":'<,'>s/^/ \* /" + silent exe ":'< s'^ '\/'" + silent exe ":'>" + silent put = ' */' + else + silent exe ":'<,'>s#^#//#" + endif + endif + +endfunction " ---------- end of function C_CodeComment ---------- +" +"---------------------------------------------------------------------- +" C_StartMultilineComment : Comment -> Code {{{1 +"---------------------------------------------------------------------- +let s:C_StartMultilineComment = '^\s*\/\*[\*! ]\=' + +function! C_RemoveCComment( start, end ) + + if a:end-a:start<1 + return 0 " lines removed + endif + " + " Is the C-comment complete ? Get length. + " + let check = getline( a:start ) =~ s:C_StartMultilineComment + let linenumber = a:start+1 + while linenumber < a:end && getline( linenumber ) !~ '^\s*\*\/' + let check = check && getline( linenumber ) =~ '^\s*\*[ ]\=' + let linenumber = linenumber+1 + endwhile + let check = check && getline( linenumber ) =~ '^\s*\*\/' + " + " remove a complete comment + " + if check + exe "silent :".a:start.' s/'.s:C_StartMultilineComment.'//' + let linenumber1 = a:start+1 + while linenumber1 < linenumber + exe "silent :".linenumber1.' s/^\s*\*[ ]\=//' + let linenumber1 = linenumber1+1 + endwhile + exe "silent :".linenumber1.' s/^\s*\*\///' + endif + + return linenumber-a:start+1 " lines removed +endfunction " ---------- end of function C_RemoveCComment ---------- +" +"---------------------------------------------------------------------- +" C_CommentCode : Comment -> Code {{{1 +"---------------------------------------------------------------------- +function! C_CommentCode(mode) + if a:mode=="a" + let pos1 = line(".") + let pos2 = pos1 + endif + if a:mode=="v" + let pos1 = line("'<") + let pos2 = line("'>") + endif + + let removed = 0 + " + let linenumber=pos1 + while linenumber <= pos2 + " Do we have a C++ comment ? + if getline( linenumber ) =~ '^\s*//' + exe "silent :".linenumber.' s#^\s*//##' + let removed = 1 + endif + " Do we have a C comment ? + if removed == 0 && getline( linenumber ) =~ s:C_StartMultilineComment + let removed = C_RemoveCComment(linenumber,pos2) + endif + + if removed!=0 + let linenumber = linenumber+removed + let removed = 0 + else + let linenumber = linenumber+1 + endif + endwhile +endfunction " ---------- end of function C_CommentCode ---------- +" +"---------------------------------------------------------------------- +" C_CommentCppToC : C++ Comment -> C Comment {{{1 +" Removes trailing whitespaces. +"---------------------------------------------------------------------- +function! C_CommentCppToC() + silent! exe ':s#\/\/\s*\(.*\)\s*$#/* \1 */#' +endfunction " ---------- end of function C_CommentCppToC ---------- +" +"---------------------------------------------------------------------- +" C_CommentCToCpp : C Comment -> C++ Comment {{{1 +" Changes the first comment in case of multiple comments: +" xxxx; /* */ /* */ +" xxxx; // /* */ +" Removes trailing whitespaces. +"---------------------------------------------------------------------- +function! C_CommentCToCpp() + silent! exe ':s!\/\*\s*\(.\{-}\)\*\/!\/\/ \1!' + silent! exe ':s!\s*$!!' +endfunction " ---------- end of function C_CommentCToCpp ---------- +" +"===================================================================================== +"----- Menu : Statements ----------------------------------------------------------- +"===================================================================================== +" +"------------------------------------------------------------------------------ +" C_PPIf0 : #if 0 .. #endif {{{1 +"------------------------------------------------------------------------------ +function! C_PPIf0 (mode) + " + let s:C_If0_Counter = 0 + let save_line = line(".") + let actual_line = 0 + " + " search for the maximum option number (if any) + " + normal gg + while actual_line < search( s:C_If0_Txt."\\d\\+" ) + let actual_line = line(".") + let actual_opt = matchstr( getline(actual_line), s:C_If0_Txt."\\d\\+" ) + let actual_opt = strpart( actual_opt, strlen(s:C_If0_Txt),strlen(actual_opt)-strlen(s:C_If0_Txt)) + if s:C_If0_Counter < actual_opt + let s:C_If0_Counter = actual_opt + endif + endwhile + let s:C_If0_Counter = s:C_If0_Counter+1 + silent exe ":".save_line + " + if a:mode=='a' + let zz= "\n#if 0 ".s:C_Com1." ----- #if 0 : ".s:C_If0_Txt.s:C_If0_Counter." ----- ".s:C_Com2."\n" + let zz= zz."\n#endif ".s:C_Com1." ----- #if 0 : ".s:C_If0_Txt.s:C_If0_Counter." ----- ".s:C_Com2."\n\n" + put =zz + if v:version >= 700 + normal 4k + endif + endif + + if a:mode=='v' + let zz= "\n#if 0 ".s:C_Com1." ----- #if 0 : ".s:C_If0_Txt.s:C_If0_Counter." ----- ".s:C_Com2."\n" + :'<put! =zz + let zz= "#endif ".s:C_Com1." ----- #if 0 : ".s:C_If0_Txt.s:C_If0_Counter." ----- ".s:C_Com2."\n\n" + :'>put =zz + :normal '< + endif + +endfunction " ---------- end of function C_PPIf0 ---------- +" +"------------------------------------------------------------------------------ +" C_PPIf0Remove : remove #if 0 .. #endif {{{1 +"------------------------------------------------------------------------------ +function! C_PPIf0Remove () + + let frstline = searchpair( '^\s*#if\s\+0', '', '^\s*#endif\>.\+\<If0Label_', 'bn' ) + if frstline<=0 + echohl WarningMsg | echo 'no #if 0 ... #endif found or cursor not inside such a directive'| echohl None + return + endif + let lastline = searchpair( '^\s*#if\s\+0', '', '^\s*#endif\>.\+\<If0Label_', 'n' ) + if lastline<=0 + echohl WarningMsg | echo 'no #if 0 ... #endif found or cursor not inside such a directive'| echohl None + return + endif + let actualnumber1 = matchstr( getline(frstline), s:C_If0_Txt."\\d\\+" ) + let actualnumber2 = matchstr( getline(lastline), s:C_If0_Txt."\\d\\+" ) + if actualnumber1 != actualnumber2 + echohl WarningMsg | echo 'lines '.frstline.', '.lastline.': comment tags do not match'| echohl None + return + endif + + silent exe ':'.lastline.','.lastline.'d' + silent exe ':'.frstline.','.frstline.'d' + +endfunction " ---------- end of function C_PPIf0Remove ---------- +" +"------------------------------------------------------------------------------- +" C_LegalizeName : replace non-word characters by underscores +" - multiple whitespaces +" - multiple non-word characters +" - multiple underscores +"------------------------------------------------------------------------------- +function! C_LegalizeName ( name ) + let identifier = substitute( a:name, '\s\+', '_', 'g' ) + let identifier = substitute( identifier, '\W\+', '_', 'g' ) + let identifier = substitute( identifier, '_\+', '_', 'g' ) + return identifier +endfunction " ---------- end of function C_LegalizeName ---------- + +"------------------------------------------------------------------------------ +" C_CodeSnippet : read / edit code snippet {{{1 +"------------------------------------------------------------------------------ +function! C_CodeSnippet(mode) + + if isdirectory(s:C_CodeSnippets) + " + " read snippet file, put content below current line and indent + " + if a:mode == "r" + if has("gui_running") + let l:snippetfile=browse(0,"read a code snippet",s:C_CodeSnippets,"") + else + let l:snippetfile=input("read snippet ", s:C_CodeSnippets, "file" ) + end + if filereadable(l:snippetfile) + let linesread= line("$") + let l:old_cpoptions = &cpoptions " Prevent the alternate buffer from being set to this files + setlocal cpoptions-=a + :execute "read ".l:snippetfile + let &cpoptions = l:old_cpoptions " restore previous options + let linesread= line("$")-linesread-1 + if linesread>=0 && match( l:snippetfile, '\.\(ni\|noindent\)$' ) < 0 + endif + endif + if line(".")==2 && getline(1)=~"^$" + silent exe ":1,1d" + endif + endif + " + " update current buffer / split window / edit snippet file + " + if a:mode == "e" + if has("gui_running") + let l:snippetfile = browse(0,"edit a code snippet",s:C_CodeSnippets,"") + else + let l:snippetfile=input("edit snippet ", s:C_CodeSnippets, "file" ) + end + if l:snippetfile != "" + :execute "update! | split | edit ".l:snippetfile + endif + endif + " + " write whole buffer into snippet file + " + if a:mode == "w" || a:mode == "wv" + if has("gui_running") + let l:snippetfile = browse(0,"edit a code snippet",s:C_CodeSnippets,"") + else + let l:snippetfile=input("edit snippet ", s:C_CodeSnippets, "file" ) + end + if l:snippetfile != "" + if filereadable(l:snippetfile) + if confirm("File ".l:snippetfile." exists ! Overwrite ? ", "&Cancel\n&No\n&Yes") != 3 + return + endif + endif + if a:mode == "w" + :execute ":write! ".l:snippetfile + else + :execute ":*write! ".l:snippetfile + end + endif + endif + + else + echo "code snippet directory ".s:C_CodeSnippets." does not exist (please create it)" + endif +endfunction " ---------- end of function C_CodeSnippets ---------- +" +"------------------------------------------------------------------------------ +" C_CodeFor : for (idiom) {{{1 +"------------------------------------------------------------------------------ +function! C_CodeFor( direction, mode ) + if a:direction=="up" + let string = C_Input( " loop var. [ start [ end [ incr. ]]] : ", "" ) + else + let string = C_Input( " loop var. [ start [ end [ decr. ]]] : ", "" ) + endif + let pos = 0 + let jmp = 0 + if string != "" + " + " use internal formatting to avoid conficts when using == below + let equalprg_save = &equalprg + set equalprg= + " + " loop variable + let loopvar = matchstr( string, '\S\+\s*', pos ) + let pos = pos + strlen(loopvar) + let loopvar = substitute( loopvar, '\s*$', "", "" ) + " + " start value + let startval = matchstr( string, '\S\+\s*', pos ) + let pos = pos + strlen(startval) + let startval = substitute( startval, '\s*$', "", "" ) + + " end value + let endval = matchstr( string, '\S\+\s*', pos ) + let pos = pos + strlen(endval) + let endval = substitute( endval, '\s*$', "", "" ) + + " increment + let incval = matchstr( string, '\S\+\s*', pos ) + let pos = pos + strlen(incval) + let incval = substitute( incval, '\s*$', "", "" ) + + if incval=="" + let incval = '1' + let jmp = 10 + endif + + if a:direction=="up" + if endval=="" + let endval = 'n' + let jmp = 7 + endif + if startval=="" + let startval = '0' + let jmp = 4 + endif + let zz= "for ( ".loopvar." = ".startval."; ".loopvar." < ".endval."; ".loopvar." += ".incval." )" + else + if endval=="" + let endval = '0' + let jmp = 7 + endif + if startval=="" + let startval = 'n-1' + let jmp = 4 + endif + let zz= "for ( ".loopvar." = ".startval."; ".loopvar." >= ".endval."; ".loopvar." -= ".incval." )" + endif + + " ----- normal mode ---------------- + if a:mode=="a" + put =zz + normal 2== + if jmp!=0 + exe "normal ".jmp."Wh" + else + exe 'normal $' + endif + endif + + " ----- visual mode ---------------- + if a:mode=="v" + let zz = zz." {" + :'<put! =zz + let zz= "}" + :'>put =zz + :'<-1 + :exe "normal =".(line("'>")-line(".")+3)."+" + endif + " + " restore formatter programm + let &equalprg = equalprg_save + " + endif +endfunction " ---------- end of function C_CodeFor ---------- +" +"------------------------------------------------------------------------------ +" Handle prototypes {{{1 +"------------------------------------------------------------------------------ +" +let s:C_Prototype = [] +let s:C_PrototypeShow = [] +let s:C_PrototypeCounter = 0 +let s:C_CComment = '\/\*.\{-}\*\/\s*' " C comment with trailing whitespaces + " '.\{-}' any character, non-greedy +let s:C_CppComment = '\/\/.*$' " C++ comment +" +"------------------------------------------------------------------------------ +" C_ProtoPick : pick up (normal/visual) {{{1 +"------------------------------------------------------------------------------ +function! C_ProtoPick (mode) + if a:mode=="n" + " --- normal mode ------------------- + let pos1 = line(".") + let pos2 = pos1 + else + " --- visual mode ------------------- + let pos1 = line("'<") + let pos2 = line("'>") + endif + " + " remove C/C++-comments, leading and trailing whitespaces, squeeze whitespaces + " + let prototyp = '' + let linenumber = pos1 + while linenumber <= pos2 + let newline = getline(linenumber) + let newline = substitute( newline, s:C_CppComment, "", "" ) " remove C++ comment + let prototyp = prototyp." ".newline + let linenumber = linenumber+1 + endwhile + " + let prototyp = substitute( prototyp, '^\s\+', "", "" ) " remove leading whitespaces + let prototyp = substitute( prototyp, s:C_CComment, "", "g" ) " remove (multiline) C comments + let prototyp = substitute( prototyp, '\s\+', " ", "g" ) " squeeze whitespaces + let prototyp = substitute( prototyp, '\s\+$', "", "" ) " remove trailing whitespaces + " + " remove template keyword + " + let prototyp = substitute( prototyp, '^template\s*<\s*class \w\+\s*>\s*', "", "" ) + " + let parlist = stridx( prototyp, '(' ) " start of the parameter list + let part1 = strpart( prototyp, 0, parlist ) + let part2 = strpart( prototyp, parlist ) + " + " remove the scope res. operator + " + let part1 = substitute( part1, '<\s*\w\+\s*>', "", "g" ) + let part1 = substitute( part1, '\<std\s*::', 'std##', 'g' ) " remove the scope res. operator + let part1 = substitute( part1, '\<\h\w*\s*::', '', 'g' ) " remove the scope res. operator + let part1 = substitute( part1, '\<std##', 'std::', 'g' ) " remove the scope res. operator + let prototyp = part1.part2 + " + " remove trailing parts of the function body; add semicolon + " + let prototyp = substitute( prototyp, '\s*{.*$', "", "" ) + let prototyp = prototyp.";\n" + " + " bookkeeping + " + let s:C_PrototypeCounter += 1 + let s:C_Prototype += [prototyp] + let s:C_PrototypeShow += ["(".s:C_PrototypeCounter.") ".bufname("%")." # ".prototyp] + " + echo s:C_PrototypeCounter.' prototype(s)' + " +endfunction " --------- end of function C_ProtoPick ---------- +" +"------------------------------------------------------------------------------ +" C_ProtoInsert : insert {{{1 +"------------------------------------------------------------------------------ +function! C_ProtoInsert () + " + " use internal formatting to avoid conficts when using == below + let equalprg_save = &equalprg + set equalprg= + " + if s:C_PrototypeCounter > 0 + for protytype in s:C_Prototype + put =protytype + endfor + let lines = s:C_PrototypeCounter - 1 + silent exe "normal =".lines."-" + call C_ProtoClear() + else + echo "currently no prototypes available" + endif + " + " restore formatter programm + let &equalprg = equalprg_save + " +endfunction " --------- end of function C_ProtoInsert ---------- +" +"------------------------------------------------------------------------------ +" C_ProtoClear : clear {{{1 +"------------------------------------------------------------------------------ +function! C_ProtoClear () + if s:C_PrototypeCounter > 0 + let s:C_Prototype = [] + let s:C_PrototypeShow = [] + let s:C_PrototypeCounter = 0 + echo 'prototypes deleted' + else + echo "currently no prototypes available" + endif +endfunction " --------- end of function C_ProtoClear ---------- +" +"------------------------------------------------------------------------------ +" C_ProtoShow : show {{{1 +"------------------------------------------------------------------------------ +function! C_ProtoShow () + if s:C_PrototypeCounter > 0 + for protytype in s:C_PrototypeShow + echo protytype + endfor + else + echo "currently no prototypes available" + endif +endfunction " --------- end of function C_ProtoShow ---------- +" +"------------------------------------------------------------------------------ +" C_EscapeBlanks : C_EscapeBlanks {{{1 +"------------------------------------------------------------------------------ +function! C_EscapeBlanks (arg) + return substitute( a:arg, " ", "\\ ", "g" ) +endfunction " --------- end of function C_EscapeBlanks ---------- +" +"------------------------------------------------------------------------------ +" C_Compile : C_Compile {{{1 +"------------------------------------------------------------------------------ +" The standard make program 'make' called by vim is set to the C or C++ compiler +" and reset after the compilation (set makeprg=... ). +" The errorfile created by the compiler will now be read by gvim and +" the commands cl, cp, cn, ... can be used. +"------------------------------------------------------------------------------ +function! C_Compile () + + let l:currentbuffer = bufname("%") + let s:C_HlMessage = "" + exe ":cclose" + let Sou = expand("%:p") " name of the file in the current buffer + let Obj = expand("%:p:r").s:C_ObjExtension " name of the object + let SouEsc= escape( Sou, s:escfilename ) + let ObjEsc= escape( Obj, s:escfilename ) + + " update : write source file if necessary + exe ":update" + + " compilation if object does not exist or object exists and is older then the source + if !filereadable(Obj) || (filereadable(Obj) && (getftime(Obj) < getftime(Sou))) + " &makeprg can be a string containing blanks + let makeprg_saved='"'.&makeprg.'"' + if expand("%:e") == s:C_CExtension + exe "set makeprg=".s:C_CCompiler + else + exe "set makeprg=".s:C_CplusCompiler + endif + " + " COMPILATION + " + if s:MSWIN + exe "make ".s:C_CFlags." \"".SouEsc."\" -o \"".ObjEsc."\"" + else + exe "make ".s:C_CFlags." ".SouEsc." -o ".ObjEsc + endif + exe "set makeprg=".makeprg_saved + " + " open error window if necessary + exe ":botright cwindow" + else + let s:C_HlMessage = " '".Obj."' is up to date " + endif + +endfunction " ---------- end of function C_Compile ---------- +" +"------------------------------------------------------------------------------ +" C_Link : C_Link {{{1 +"------------------------------------------------------------------------------ +" The standard make program which is used by gvim is set to the compiler +" (for linking) and reset after linking. +" +" calls: C_Compile +"------------------------------------------------------------------------------ +function! C_Link () + + call C_Compile() + + let s:C_HlMessage = "" + let Sou = expand("%:p") " name of the file in the current buffer + let Obj = expand("%:p:r").s:C_ObjExtension " name of the object file + let Exe = expand("%:p:r").s:C_ExeExtension " name of the executable + let ObjEsc= escape( Obj, s:escfilename ) + let ExeEsc= escape( Exe, s:escfilename ) + + " no linkage if: + " executable exists + " object exists + " source exists + " executable newer then object + " object newer then source + + if filereadable(Exe) && + \ filereadable(Obj) && + \ filereadable(Sou) && + \ (getftime(Exe) >= getftime(Obj)) && + \ (getftime(Obj) >= getftime(Sou)) + let s:C_HlMessage = " '".Exe."' is up to date " + return + endif + + " linkage if: + " object exists + " source exists + " object newer then source + + if filereadable(Obj) && (getftime(Obj) >= getftime(Sou)) + let makeprg_saved='"'.&makeprg.'"' + if expand("%:e") == s:C_CExtension + exe "set makeprg=".s:C_CCompiler + else + exe "set makeprg=".s:C_CplusCompiler + endif + let v:statusmsg="" + if s:MSWIN + silent exe "make ".s:C_LFlags." ".s:C_Libs." -o \"".ExeEsc."\" \"".ObjEsc."\"" + else + silent exe "make ".s:C_LFlags." ".s:C_Libs." -o ".ExeEsc." ".ObjEsc + endif + if v:statusmsg != "" + let s:C_HlMessage = v:statusmsg + endif + exe "set makeprg=".makeprg_saved + endif +endfunction " ---------- end of function C_Link ---------- +" +"------------------------------------------------------------------------------ +" C_Run : C_Run {{{1 +" calls: C_Link +"------------------------------------------------------------------------------ +" +let s:C_OutputBufferName = "C-Output" +let s:C_OutputBufferNumber = -1 +" +function! C_Run () +" + let Sou = expand("%:p") " name of the source file + let Obj = expand("%:p:r").s:C_ObjExtension " name of the object file + let Exe = expand("%:p:r").s:C_ExeExtension " name of the executable + let ExeEsc = escape( Exe, s:escfilename ) " name of the executable, escaped + " + let l:arguments = exists("b:C_CmdLineArgs") ? b:C_CmdLineArgs : '' + " + let l:currentbuffer = bufname("%") + " + "============================================================================== + " run : run from the vim command line + "============================================================================== + if s:C_OutputGvim == "vim" + " + silent call C_Link() + " + if executable(Exe) && getftime(Exe) >= getftime(Obj) && getftime(Obj) >= getftime(Sou) + if s:MSWIN + exe "!\"".ExeEsc."\" ".l:arguments + else + exe "!".ExeEsc." ".l:arguments + endif + else + echomsg "file ".Exe." does not exist / is not executable" + endif + + endif + " + "============================================================================== + " run : redirect output to an output buffer + "============================================================================== + if s:C_OutputGvim == "buffer" + let l:currentbuffernr = bufnr("%") + " + silent call C_Link() + " + if l:currentbuffer == bufname("%") + " + " + if bufloaded(s:C_OutputBufferName) != 0 && bufwinnr(s:C_OutputBufferNumber)!=-1 + exe bufwinnr(s:C_OutputBufferNumber) . "wincmd w" + " buffer number may have changed, e.g. after a 'save as' + if bufnr("%") != s:C_OutputBufferNumber + let s:C_OutputBufferNumber = bufnr(s:C_OutputBufferName) + exe ":bn ".s:C_OutputBufferNumber + endif + else + silent exe ":new ".s:C_OutputBufferName + let s:C_OutputBufferNumber=bufnr("%") + setlocal buftype=nofile + setlocal noswapfile + setlocal syntax=none + setlocal bufhidden=delete + setlocal tabstop=8 + endif + " + " run programm + " + setlocal modifiable + if executable(Exe) && getftime(Exe) >= getftime(Obj) && getftime(Obj) >= getftime(Sou) + if s:MSWIN + exe "%!\"".ExeEsc."\" ".l:arguments + else + exe "%!".ExeEsc." ".l:arguments + endif + endif + setlocal nomodifiable + " + if winheight(winnr()) >= line("$") + exe bufwinnr(l:currentbuffernr) . "wincmd w" + endif + " + endif + endif + " + "============================================================================== + " run : run in a detached xterm (not available for MS Windows) + "============================================================================== + if s:C_OutputGvim == "xterm" + " + silent call C_Link() + " + if executable(Exe) && getftime(Exe) >= getftime(Obj) && getftime(Obj) >= getftime(Sou) + if s:MSWIN + exe "!\"".ExeEsc."\" ".l:arguments + else + silent exe '!xterm -title '.ExeEsc.' '.s:C_XtermDefaults.' -e '.s:C_Wrapper.' '.ExeEsc.' '.l:arguments.' &' + :redraw! + endif + endif + endif + +endfunction " ---------- end of function C_Run ---------- +" +"------------------------------------------------------------------------------ +" C_Arguments : Arguments for the executable {{{1 +"------------------------------------------------------------------------------ +function! C_Arguments () + let Exe = expand("%:r").s:C_ExeExtension + if Exe == "" + redraw + echohl WarningMsg | echo " no file name " | echohl None + return + endif + let prompt = 'command line arguments for "'.Exe.'" : ' + if exists("b:C_CmdLineArgs") + let b:C_CmdLineArgs= C_Input( prompt, b:C_CmdLineArgs ) + else + let b:C_CmdLineArgs= C_Input( prompt , "" ) + endif +endfunction " ---------- end of function C_Arguments ---------- +" +"---------------------------------------------------------------------- +" C_Toggle_Gvim_Xterm : change output destination {{{1 +"---------------------------------------------------------------------- +function! C_Toggle_Gvim_Xterm () + + if s:C_OutputGvim == "vim" + if has("gui_running") + exe "aunmenu <silent> ".s:C_Root.'&Run.&output:\ VIM->buffer->xterm' + exe "amenu <silent> ".s:C_Root.'&Run.&output:\ BUFFER->xterm->vim <C-C>:call C_Toggle_Gvim_Xterm()<CR><CR>' + endif + let s:C_OutputGvim = "buffer" + else + if s:C_OutputGvim == "buffer" + if has("gui_running") + exe "aunmenu <silent> ".s:C_Root.'&Run.&output:\ BUFFER->xterm->vim' + if (!s:MSWIN) + exe "amenu <silent> ".s:C_Root.'&Run.&output:\ XTERM->vim->buffer <C-C>:call C_Toggle_Gvim_Xterm()<CR><CR>' + else + exe "amenu <silent> ".s:C_Root.'&Run.&output:\ VIM->buffer->xterm <C-C>:call C_Toggle_Gvim_Xterm()<CR><CR>' + endif + endif + if (!s:MSWIN) && (s:C_Display != '') + let s:C_OutputGvim = "xterm" + else + let s:C_OutputGvim = "vim" + end + else + " ---------- output : xterm -> gvim + if has("gui_running") + exe "aunmenu <silent> ".s:C_Root.'&Run.&output:\ XTERM->vim->buffer' + exe "amenu <silent> ".s:C_Root.'&Run.&output:\ VIM->buffer->xterm <C-C>:call C_Toggle_Gvim_Xterm()<CR><CR>' + endif + let s:C_OutputGvim = "vim" + endif + endif + echomsg "output destination is '".s:C_OutputGvim."'" + +endfunction " ---------- end of function C_Toggle_Gvim_Xterm ---------- +" +"------------------------------------------------------------------------------ +" C_XtermSize : xterm geometry {{{1 +"------------------------------------------------------------------------------ +function! C_XtermSize () + let regex = '-geometry\s\+\d\+x\d\+' + let geom = matchstr( s:C_XtermDefaults, regex ) + let geom = matchstr( geom, '\d\+x\d\+' ) + let geom = substitute( geom, 'x', ' ', "" ) + let answer= C_Input(" xterm size (COLUMNS LINES) : ", geom ) + while match(answer, '^\s*\d\+\s\+\d\+\s*$' ) < 0 + let answer= C_Input(" + xterm size (COLUMNS LINES) : ", geom ) + endwhile + let answer = substitute( answer, '\s\+', "x", "" ) " replace inner whitespaces + let s:C_XtermDefaults = substitute( s:C_XtermDefaults, regex, "-geometry ".answer , "" ) +endfunction " ---------- end of function C_XtermSize ---------- +" +"------------------------------------------------------------------------------ +" C_MakeArguments : run make(1) {{{1 +"------------------------------------------------------------------------------ + +let s:C_MakeCmdLineArgs = "" " command line arguments for Run-make; initially empty + +function! C_MakeArguments () + let s:C_MakeCmdLineArgs= C_Input("make command line arguments : ",s:C_MakeCmdLineArgs) +endfunction " ---------- end of function C_MakeArguments ---------- +" +function! C_Make() + " update : write source file if necessary + exe ":update" + " run make + exe ":!make ".s:C_MakeCmdLineArgs +endfunction " ---------- end of function C_Make ---------- +" +"------------------------------------------------------------------------------ +" C_SplintArguments : splint command line arguments {{{1 +"------------------------------------------------------------------------------ +function! C_SplintArguments () + if s:C_SplintIsExecutable==0 + let s:C_HlMessage = ' Splint is not executable or not installed! ' + else + let prompt = 'Splint command line arguments for "'.expand("%").'" : ' + if exists("b:C_SplintCmdLineArgs") + let b:C_SplintCmdLineArgs= C_Input( prompt, b:C_SplintCmdLineArgs ) + else + let b:C_SplintCmdLineArgs= C_Input( prompt , "" ) + endif + endif +endfunction " ---------- end of function C_SplintArguments ---------- +" +"------------------------------------------------------------------------------ +" C_SplintCheck : run splint(1) {{{1 +"------------------------------------------------------------------------------ +function! C_SplintCheck () + if s:C_SplintIsExecutable==0 + let s:C_HlMessage = ' Splint is not executable or not installed! ' + return + endif + let l:currentbuffer=bufname("%") + if &filetype != "c" && &filetype != "cpp" + let s:C_HlMessage = ' "'.l:currentbuffer.'" seems not to be a C/C++ file ' + return + endif + let s:C_HlMessage = "" + exe ":cclose" + silent exe ":update" + let makeprg_saved='"'.&makeprg.'"' + " Windows seems to need this: + if s:MSWIN + :compiler splint + endif + :set makeprg=splint + " + let l:arguments = exists("b:C_SplintCmdLineArgs") ? b:C_SplintCmdLineArgs : ' ' + silent exe "make ".l:arguments." ".escape(l:currentbuffer,s:escfilename) + exe "set makeprg=".makeprg_saved + exe ":botright cwindow" + " + " message in case of success + " + if l:currentbuffer == bufname("%") + let s:C_HlMessage = " Splint --- no warnings for : ".l:currentbuffer + endif +endfunction " ---------- end of function C_SplintCheck ---------- +" +"------------------------------------------------------------------------------ +" C_CodeCheckArguments : CodeCheck command line arguments {{{1 +"------------------------------------------------------------------------------ +function! C_CodeCheckArguments () + if s:C_CodeCheckIsExecutable==0 + let s:C_HlMessage = ' CodeCheck is not executable or not installed! ' + else + let prompt = 'CodeCheck command line arguments for "'.expand("%").'" : ' + if exists("b:C_CodeCheckCmdLineArgs") + let b:C_CodeCheckCmdLineArgs= C_Input( prompt, b:C_CodeCheckCmdLineArgs ) + else + let b:C_CodeCheckCmdLineArgs= C_Input( prompt , s:C_CodeCheckOptions ) + endif + endif +endfunction " ---------- end of function C_CodeCheckArguments ---------- +" +"------------------------------------------------------------------------------ +" C_CodeCheck : run CodeCheck {{{1 +"------------------------------------------------------------------------------ +function! C_CodeCheck () + if s:C_CodeCheckIsExecutable==0 + let s:C_HlMessage = ' CodeCheck is not executable or not installed! ' + return + endif + let l:currentbuffer=bufname("%") + if &filetype != "c" && &filetype != "cpp" + let s:C_HlMessage = ' "'.l:currentbuffer.'" seems not to be a C/C++ file ' + return + endif + let s:C_HlMessage = "" + exe ":cclose" + silent exe ":update" + let makeprg_saved='"'.&makeprg.'"' + exe "set makeprg=".s:C_CodeCheckExeName + " + " match the splint error messages (quickfix commands) + " ignore any lines that didn't match one of the patterns + " + :setlocal errorformat=%f(%l)%m + " + let l:arguments = exists("b:C_CodeCheckCmdLineArgs") ? b:C_CodeCheckCmdLineArgs : "" + if l:arguments == "" + let l:arguments = s:C_CodeCheckOptions + endif + exe ":make ".l:arguments." ".escape( l:currentbuffer, s:escfilename ) + exe ':setlocal errorformat=' + exe "set makeprg=".makeprg_saved + exe ":botright cwindow" + " + " message in case of success + " + if l:currentbuffer == bufname("%") + let s:C_HlMessage = " CodeCheck --- no warnings for : ".l:currentbuffer + endif +endfunction " ---------- end of function C_CodeCheck ---------- +" +"------------------------------------------------------------------------------ +" C_Indent : run indent(1) {{{1 +"------------------------------------------------------------------------------ +" +function! C_Indent ( mode ) + if !executable("indent") + let s:C_HlMessage = ' indent is not executable or not installed! ' + return + endif + let l:currentbuffer=bufname("%") + if &filetype != "c" && &filetype != "cpp" + let s:C_HlMessage = ' "'.l:currentbuffer.'" seems not to be a C/C++ file ' + return + endif + let s:C_HlMessage = "" + + if a:mode=="a" + if C_Input("indent whole file [y/n/Esc] : ", "y" ) != "y" + return + endif + exe ":update" + if has("MSWIN") + silent exe ":%!indent" + else + silent exe ":%!indent 2> ".s:C_IndentErrorLog + endif + let s:C_HlMessage = ' File "'.l:currentbuffer.'" reformatted.' + endif + + if a:mode=="v" + if has("MSWIN") + silent exe ":'<,'>!indent" + else + silent exe ":'<,'>!indent 2> ".s:C_IndentErrorLog + endif + let s:C_HlMessage = ' File "'.l:currentbuffer.'" (lines '.line("'<").'-'.line("'>").') reformatted. ' + endif + + if v:shell_error != 0 + let s:C_HlMessage = ' Indent reported an error when processing file "'.l:currentbuffer.'". ' + endif + +endfunction " ---------- end of function C_Indent ---------- +" +"------------------------------------------------------------------------------ +" C_HlMessage : indent message {{{1 +"------------------------------------------------------------------------------ +function! C_HlMessage () + echohl Search + echo s:C_HlMessage + echohl None +endfunction " ---------- end of function C_HlMessage ---------- +" +"------------------------------------------------------------------------------ +" C_Settings : settings {{{1 +"------------------------------------------------------------------------------ +function! C_Settings () + let txt = " C/C++-Support settings\n\n" + let txt = txt.' author : "'.s:C_Macro['|AUTHOR|']."\"\n" + let txt = txt.' initials : "'.s:C_Macro['|AUTHORREF|']."\"\n" + let txt = txt.' email : "'.s:C_Macro['|EMAIL|']."\"\n" + let txt = txt.' company : "'.s:C_Macro['|COMPANY|']."\"\n" + let txt = txt.' project : "'.s:C_Macro['|PROJECT|']."\"\n" + let txt = txt.' copyright holder : "'.s:C_Macro['|COPYRIGHTHOLDER|']."\"\n" + let txt = txt.' C / C++ compiler : '.s:C_CCompiler.' / '.s:C_CplusCompiler."\n" + let txt = txt.' C file extension : "'.s:C_CExtension.'" (everything else is C++)'."\n" + let txt = txt.' extension for objects : "'.s:C_ObjExtension."\"\n" + let txt = txt.'extension for executables : "'.s:C_ExeExtension."\"\n" + let txt = txt.' compiler flags : "'.s:C_CFlags."\"\n" + let txt = txt.' linker flags : "'.s:C_LFlags."\"\n" + let txt = txt.' libraries : "'.s:C_Libs."\"\n" + let txt = txt.' code snippet directory : '.s:C_CodeSnippets."\n" + if s:installation == 'system' + let txt = txt.'global template directory : '.s:C_GlobalTemplateDir."\n" + if filereadable( s:C_LocalTemplateFile ) + let txt = txt.' local template directory : '.s:C_LocalTemplateDir."\n" + endif + else + let txt = txt.' local template directory : '.s:C_GlobalTemplateDir."\n" + endif + if !s:MSWIN + let txt = txt.' xterm defaults : '.s:C_XtermDefaults."\n" + endif + " ----- dictionaries ------------------------ + if g:C_Dictionary_File != "" + let ausgabe= substitute( g:C_Dictionary_File, ",", ",\n + ", "g" ) + let txt = txt." dictionary file(s) : ".ausgabe."\n" + endif + let txt = txt.' current output dest. : '.s:C_OutputGvim."\n" + " ----- splint ------------------------------ + if s:C_SplintIsExecutable==1 + if exists("b:C_SplintCmdLineArgs") + let ausgabe = b:C_SplintCmdLineArgs + else + let ausgabe = "" + endif + let txt = txt." splint options(s) : ".ausgabe."\n" + endif + " ----- code check -------------------------- + if s:C_CodeCheckIsExecutable==1 + if exists("b:C_CodeCheckCmdLineArgs") + let ausgabe = b:C_CodeCheckCmdLineArgs + else + let ausgabe = s:C_CodeCheckOptions + endif + let txt = txt."CodeCheck (TM) options(s) : ".ausgabe."\n" + endif + let txt = txt."\n" + let txt = txt."__________________________________________________________________________\n" + let txt = txt." C/C++-Support, Version ".g:C_Version." / Dr.-Ing. Fritz Mehner / mehner@fh-swf.de\n\n" + echo txt +endfunction " ---------- end of function C_Settings ---------- +" +"------------------------------------------------------------------------------ +" C_Hardcopy : hardcopy {{{1 +" MSWIN : a printer dialog is displayed +" other : print PostScript to file +"------------------------------------------------------------------------------ +function! C_Hardcopy (arg1) + let Sou = expand("%") + if Sou == "" + redraw + echohl WarningMsg | echo " no file name " | echohl None + return + endif + let Sou = escape(Sou,s:escfilename) " name of the file in the current buffer + let old_printheader=&printheader + exe ':set printheader='.s:C_Printheader + " ----- normal mode ---------------- + if a:arg1=="n" + silent exe "hardcopy > ".Sou.".ps" + if !s:MSWIN + echo "file \"".Sou."\" printed to \"".Sou.".ps\"" + endif + endif + " ----- visual mode ---------------- + if a:arg1=="v" + silent exe "*hardcopy > ".Sou.".ps" + if !s:MSWIN + echo "file \"".Sou."\" (lines ".line("'<")."-".line("'>").") printed to \"".Sou.".ps\"" + endif + endif + exe ':set printheader='.escape( old_printheader, ' %' ) +endfunction " ---------- end of function C_Hardcopy ---------- +" +"------------------------------------------------------------------------------ +" C_HelpCsupport : help csupport {{{1 +"------------------------------------------------------------------------------ +function! C_HelpCsupport () + try + :help csupport + catch + exe ':helptags '.s:plugin_dir.'doc' + :help csupport + endtry +endfunction " ---------- end of function C_HelpCsupport ---------- + +"------------------------------------------------------------------------------ +" C_CreateGuiMenus {{{1 +"------------------------------------------------------------------------------ +let s:C_MenuVisible = 0 " state variable controlling the C-menus +" +function! C_CreateGuiMenus () + if s:C_MenuVisible != 1 + aunmenu <silent> &Tools.Load\ C\ Support + amenu <silent> 40.1000 &Tools.-SEP100- : + amenu <silent> 40.1030 &Tools.Unload\ C\ Support <C-C>:call C_RemoveGuiMenus()<CR> + call C_InitMenus() + let s:C_MenuVisible = 1 + endif +endfunction " ---------- end of function C_CreateGuiMenus ---------- + +"------------------------------------------------------------------------------ +" C_ToolMenu {{{1 +"------------------------------------------------------------------------------ +function! C_ToolMenu () + amenu <silent> 40.1000 &Tools.-SEP100- : + amenu <silent> 40.1030 &Tools.Load\ C\ Support <C-C>:call C_CreateGuiMenus()<CR> +endfunction " ---------- end of function C_ToolMenu ---------- + +"------------------------------------------------------------------------------ +" C_RemoveGuiMenus {{{1 +"------------------------------------------------------------------------------ +function! C_RemoveGuiMenus () + if s:C_MenuVisible == 1 + if s:C_Root == "" + aunmenu <silent> Comments + aunmenu <silent> Statements + aunmenu <silent> Preprocessor + aunmenu <silent> Idioms + aunmenu <silent> Snippets + aunmenu <silent> C++ + aunmenu <silent> Run + else + exe "aunmenu <silent> ".s:C_Root + endif + " + aunmenu <silent> &Tools.Unload\ C\ Support + call C_ToolMenu() + " + let s:C_MenuVisible = 0 + endif +endfunction " ---------- end of function C_RemoveGuiMenus ---------- + +"------------------------------------------------------------------------------ +" C_RebuildTemplates +" rebuild commands and the menu from the (changed) template file +"------------------------------------------------------------------------------ +function! C_RebuildTemplates () + let s:C_Template = {} + let s:C_FileVisited = [] + call C_ReadTemplates(s:C_GlobalTemplateFile) + echomsg "templates rebuilt from '".s:C_GlobalTemplateFile."'" + " + if s:installation == 'system' && filereadable( s:C_LocalTemplateFile ) + call C_ReadTemplates( s:C_LocalTemplateFile ) + echomsg " and from '".s:C_LocalTemplateFile."'" + endif +endfunction " ---------- end of function C_RebuildTemplates ---------- + +"------------------------------------------------------------------------------ +" C_ReadTemplates +" read the template file(s), build the macro and the template dictionary +" +"------------------------------------------------------------------------------ +function! C_ReadTemplates ( templatefile ) + + if !filereadable( a:templatefile ) + echohl WarningMsg + echomsg "C/C++ template file '".a:templatefile."' does not exist or is not readable" + echohl None + return + endif + + let skipmacros = 0 + let s:C_FileVisited += [a:templatefile] + + "------------------------------------------------------------------------------ + " read template file, start with an empty template dictionary + "------------------------------------------------------------------------------ + + let item = '' + for line in readfile( a:templatefile ) + " if not a comment : + if line !~ '^\$' + " + " macros and file includes + " + + let string = matchlist( line, s:C_MacroLineRegex ) + if !empty(string) && skipmacros == 0 + let key = '|'.string[1].'|' + let val = string[2] + let val = substitute( val, '\s\+$', '', '' ) + let val = substitute( val, "[\"\']$", '', '' ) + let val = substitute( val, "^[\"\']", '', '' ) + " + if key == '|includefile|' && count( s:C_FileVisited, val ) == 0 + let path = fnamemodify( a:templatefile, ":p:h" ) + call C_ReadTemplates( path.'/'.val ) " recursive call + else + let s:C_Macro[key] = val + endif + continue " next line + endif + " + " template header + " + let name = matchstr( line, s:C_TemplateLineRegex ) + " + if name != '' + let part = split( name, '\s*==\s*') + let item = part[0] + if has_key( s:C_Template, item ) && s:C_TemplateOverwrittenMsg == 'yes' + echomsg "existing C/C++ template '".item."' overwritten" + endif + let s:C_Template[item] = '' + let skipmacros = 1 + " + let s:C_Attribute[item] = 'below' + if has_key( s:Attribute, get( part, 1, 'NONE' ) ) + let s:C_Attribute[item] = part[1] + endif + else + if item != '' + let s:C_Template[item] = s:C_Template[item].line."\n" + endif + endif + endif + endfor + + call C_SetSmallCommentStyle() +endfunction " ---------- end of function C_ReadTemplates ---------- + +"------------------------------------------------------------------------------ +" C_InsertTemplate +" insert a template from the template dictionary +" do macro expansion +"------------------------------------------------------------------------------ +function! C_InsertTemplate ( key, ... ) + + if !has_key( s:C_Template, a:key ) + echomsg "Template '".a:key."' not found. Please check your template file in '".s:C_GlobalTemplateDir."'" + return + endif + + "------------------------------------------------------------------------------ + " insert the user macros + "------------------------------------------------------------------------------ + + " use internal formatting to avoid conficts when using == below + " + let equalprg_save = &equalprg + set equalprg= + + let mode = s:C_Attribute[a:key] + + " remove <SPLIT> and insert the complete macro + " + if a:0 == 0 + let val = C_ExpandUserMacros (a:key) + if val == "" + return + endif + let val = C_ExpandSingleMacro( val, '<SPLIT>', '' ) + + if mode == 'below' + let pos1 = line(".")+1 + put =val + let pos2 = line(".") + " proper indenting + exe ":".pos1 + let ins = pos2-pos1+1 + exe "normal ".ins."==" + endif + + if mode == 'above' + let pos1 = line(".") + put! =val + let pos2 = line(".") + " proper indenting + exe ":".pos1 + let ins = pos2-pos1+1 + exe "normal ".ins."==" + endif + + if mode == 'start' + normal gg + let pos1 = 1 + put! =val + let pos2 = line(".") + " proper indenting + exe ":".pos1 + let ins = pos2-pos1+1 + exe "normal ".ins."==" + endif + + if mode == 'append' + let pos1 = line(".") + put =val + let pos2 = line(".")-1 + exe ":".pos1 + :join! + endif + + if mode == 'insert' + let val = substitute( val, '\n$', '', '' ) + let pos1 = line(".") + let pos2 = pos1 + count( split(val,'\zs'), "\n" ) + exe "normal a".val + endif + " + else + " + " ===== visual mode =============================== + " + if a:1 == 'v' + let val = C_ExpandUserMacros (a:key) + if val == "" + return + endif + + let part = split( val, '<SPLIT>' ) + if len(part) < 2 + let part = [ "" ] + part + echomsg 'SPLIT missing in template '.a:key + endif + + if mode == 'below' + + :'<put! =part[0] + :'>put =part[1] + + let pos1 = line("'<") - len(split(part[0], '\n' )) + let pos2 = line("'>") + len(split(part[1], '\n' )) + "" echo part[0] part[1] pos1 pos2 + " " proper indenting + exe ":".pos1 + let ins = pos2-pos1+1 + exe "normal ".ins."==" + endif + + " + endif + endif + + " restore formatter programm + let &equalprg = equalprg_save + + "------------------------------------------------------------------------------ + " position the cursor + "------------------------------------------------------------------------------ + exe ":".pos1 + let mtch = search( '<CURSOR>', "c", pos2 ) + if mtch != 0 + if matchend( getline(mtch) ,'<CURSOR>') == match( getline(mtch) ,"$" ) + normal 8x + :startinsert! + else + normal 8x + :startinsert + endif + else + " to the end of the block; needed for repeated inserts + if mode == 'below' + exe ":".pos2 + endif + endif + +endfunction " ---------- end of function C_InsertTemplate ---------- + +"------------------------------------------------------------------------------ +" C_ExpandUserMacros +"------------------------------------------------------------------------------ +function! C_ExpandUserMacros ( key ) + + let template = s:C_Template[ a:key ] + let s:C_ExpansionCounter = {} " reset the expansion counter + + "------------------------------------------------------------------------------ + " renew the predefined macros and expand them + " can be replaced, with e.g. |?DATE| + "------------------------------------------------------------------------------ + let s:C_Macro['|BASENAME|'] = toupper(expand("%:t:r")) + let s:C_Macro['|DATE|'] = C_InsertDateAndTime('d') + let s:C_Macro['|FILENAME|'] = expand("%:t") + let s:C_Macro['|PATH|'] = expand("%:p:h") + let s:C_Macro['|SUFFIX|'] = expand("%:e") + let s:C_Macro['|TIME|'] = C_InsertDateAndTime('t') + let s:C_Macro['|YEAR|'] = C_InsertDateAndTime('y') + + "------------------------------------------------------------------------------ + " look for replacements + "------------------------------------------------------------------------------ + while match( template, s:C_ExpansionRegex ) != -1 + let macro = matchstr( template, s:C_ExpansionRegex ) + let replacement = substitute( macro, '?', '', '' ) + let template = substitute( template, macro, replacement, "g" ) + + let match = matchlist( macro, s:C_ExpansionRegex ) + + if match[1] != '' + let macroname = '|'.match[1].'|' + " + " notify flag action, if any + let flagaction = '' + if has_key( s:C_MacroFlag, match[2] ) + let flagaction = ' (-> '.s:C_MacroFlag[ match[2] ].')' + endif + " + " ask for a replacement + if has_key( s:C_Macro, macroname ) + let name = C_Input( match[1].flagaction.' : ', C_ApplyFlag( s:C_Macro[macroname], match[2] ) ) + else + let name = C_Input( match[1].flagaction.' : ', '' ) + endif + if name == "" + return "" + endif + " + " keep the modified name + let s:C_Macro[macroname] = C_ApplyFlag( name, match[2] ) + endif + endwhile + + "------------------------------------------------------------------------------ + " do the actual macro expansion + " loop over the macros found in the template + "------------------------------------------------------------------------------ + while match( template, s:C_NonExpansionRegex ) != -1 + + let macro = matchstr( template, s:C_NonExpansionRegex ) + let match = matchlist( macro, s:C_NonExpansionRegex ) + + if match[1] != '' + let macroname = '|'.match[1].'|' + + if has_key( s:C_Macro, macroname ) + "------------------------------------------------------------------------------- + " check for recursion + "------------------------------------------------------------------------------- + if has_key( s:C_ExpansionCounter, macroname ) + let s:C_ExpansionCounter[macroname] += 1 + else + let s:C_ExpansionCounter[macroname] = 0 + endif + if s:C_ExpansionCounter[macroname] >= s:C_ExpansionLimit + echomsg " recursion terminated for recursive macro ".macroname + return template + endif + "------------------------------------------------------------------------------- + " replace + "------------------------------------------------------------------------------- + let replacement = C_ApplyFlag( s:C_Macro[macroname], match[2] ) + let template = substitute( template, macro, replacement, "g" ) + else + " + " macro not yet defined + let s:C_Macro['|'.match[1].'|'] = '' + endif + endif + + endwhile + + return template +endfunction " ---------- end of function C_ExpandUserMacros ---------- + +"------------------------------------------------------------------------------ +" C_ApplyFlag +"------------------------------------------------------------------------------ +function! C_ApplyFlag ( val, flag ) + " + " l : lowercase + if a:flag == ':l' + return tolower(a:val) + end + " + " u : uppercase + if a:flag == ':u' + return toupper(a:val) + end + " + " c : capitalize + if a:flag == ':c' + return toupper(a:val[0]).a:val[1:] + end + " + " L : legalized name + if a:flag == ':L' + return C_LegalizeName(a:val) + end + " + " flag not valid + return a:val +endfunction " ---------- end of function C_ApplyFlag ---------- +" +"------------------------------------------------------------------------------ +" C_ExpandSingleMacro +"------------------------------------------------------------------------------ +function! C_ExpandSingleMacro ( val, macroname, replacement ) + return substitute( a:val, escape(a:macroname, '$' ), a:replacement, "g" ) +endfunction " ---------- end of function C_ExpandSingleMacro ---------- + +"------------------------------------------------------------------------------ +" C_SetSmallCommentStyle +"------------------------------------------------------------------------------ +function! C_SetSmallCommentStyle () + if has_key( s:C_Template, 'comment.end-of-line-comment' ) + if match( s:C_Template['comment.end-of-line-comment'], '^\s*/\*' ) != -1 + let s:C_Com1 = '/*' " C-style : comment start + let s:C_Com2 = '*/' " C-style : comment end + else + let s:C_Com1 = '//' " C++style : comment start + let s:C_Com2 = '' " C++style : comment end + endif + endif +endfunction " ---------- end of function C_SetSmallCommentStyle ---------- + +"------------------------------------------------------------------------------ +" C_InsertMacroValue +"------------------------------------------------------------------------------ +function! C_InsertMacroValue ( key ) + if col(".") > 1 + exe 'normal a'.s:C_Macro['|'.a:key.'|'] + else + exe 'normal i'.s:C_Macro['|'.a:key.'|'] + end +endfunction " ---------- end of function C_InsertMacroValue ---------- + +"------------------------------------------------------------------------------ +" date and time +"------------------------------------------------------------------------------ +function! C_InsertDateAndTime ( format ) + if a:format == 'd' + return strftime( s:C_FormatDate ) + end + if a:format == 't' + return strftime( s:C_FormatTime ) + end + if a:format == 'dt' + return strftime( s:C_FormatDate ).' '.strftime( s:C_FormatTime ) + end + if a:format == 'y' + return strftime( s:C_FormatYear ) + end +endfunction " ---------- end of function C_InsertDateAndTime ---------- + +"------------------------------------------------------------------------------ +" show / hide the c-support menus +" define key mappings (gVim only) +"------------------------------------------------------------------------------ +" +if has("gui_running") + " + call C_ToolMenu() + " + if s:C_LoadMenus == 'yes' + call C_CreateGuiMenus() + endif + " + nmap <unique> <silent> <Leader>lcs :call C_CreateGuiMenus()<CR> + nmap <unique> <silent> <Leader>ucs :call C_RemoveGuiMenus()<CR> + " +endif + +"------------------------------------------------------------------------------ +" Automated header insertion +" Local settings for the quickfix window +"------------------------------------------------------------------------------ +if has("autocmd") + " + " Automated header insertion (suffixes from the gcc manual) + " + autocmd BufNewFile * if (&filetype=='cpp' || &filetype=='c') | + \ call C_InsertTemplate("comment.file-description") | endif + " + " *.h has filetype 'cpp' by default; this can be changed to 'c' : + " + if s:C_TypeOfH=='c' + autocmd BufNewFile,BufEnter *.h :set filetype=c + endif + " + " C/C++ source code files which should not be preprocessed. + " + autocmd BufNewFile,BufRead *.i :set filetype=c + autocmd BufNewFile,BufRead *.ii :set filetype=cpp + " + " Wrap error descriptions in the quickfix window. + " + autocmd BufReadPost quickfix setlocal wrap | setlocal linebreak + " +endif " has("autocmd") +" +"------------------------------------------------------------------------------ +" READ THE TEMPLATE FILES +"------------------------------------------------------------------------------ +call C_ReadTemplates(s:C_GlobalTemplateFile) +if s:installation == 'system' && filereadable( s:C_LocalTemplateFile ) + call C_ReadTemplates( s:C_LocalTemplateFile ) +endif + +" +"===================================================================================== +" vim: tabstop=2 shiftwidth=2 foldmethod=marker diff --git a/.vim/plugin/filebrowser.vim b/.vim/plugin/filebrowser.vim new file mode 100644 index 0000000..e9de049 --- /dev/null +++ b/.vim/plugin/filebrowser.vim @@ -0,0 +1,251 @@ +" filebrowser.vim: utility file for vim 6.2+ +" +" Copyright: Srinath Avadhanula <srinath AT fastmail DOT fm> +" Parts of this file are taken from explorer.vim which is a plugin file +" distributed with vim under the Vim charityware license. +" License: distributed under the Vim charityware license. +" +" Settings: +" FB_CallBackFunction: the function name which gets called when the user +" presses <cr> on a file-name in the file browser. +" FB_AllowRegexp: A filename has to match this regexp to be displayed. +" FB_RejectRegexp: If a filename matches this regexp, then its not displayed. +" (Both these regexps are '' by default which means no filtering is +" done). + +" line continuation used here. +let s:save_cpo = &cpo +set cpo&vim + +"====================================================================== +" Globally visible functions (API) +"====================================================================== +" FB_OpenFileBrowser: opens a new buffer and displays the file list {{{ +" Description: +function! FB_OpenFileBrowser(dir) + if !isdirectory(a:dir) + return + endif + if exists('s:FB_BufferNumber') + if bufwinnr(s:FB_BufferNumber) != -1 + execute bufwinnr(s:FB_BufferNumber).' wincmd w' + return + endif + execute 'aboveleft split #'.s:FB_BufferNumber + else + aboveleft split __Choose_File__ + let s:FB_BufferNumber = bufnr('%') + endif + call FB_DisplayFiles(a:dir) +endfunction " }}} +" FB_DisplayFiles: displays the files in a given directory {{{ +" Description: +" Call this function only when the cursor is in a temporary buffer +function! FB_DisplayFiles(dir) + if !isdirectory(a:dir) + return + endif + call s:FB_SetSilentSettings() + " make this a "scratch" buffer + call s:FB_SetScratchSettings() + + let allowRegexp = s:FB_GetVar('FB_AllowRegexp', '') + let rejectRegexp = s:FB_GetVar('FB_RejectRegexp', '') + + " change to the directory to make processing simpler. + execute "lcd ".a:dir + " delete everything in the buffer. + " IMPORTANT: we need to be in a scratch buffer + 0,$ d_ + + let allFilenames = glob('*') + let dispFiles = "" + let subDirs = "../\n" + + let i = 1 + while 1 + let filename = s:FB_Strntok(allFilenames, "\n", i) + if filename == '' + break + endif + if isdirectory(filename) + let subDirs = subDirs.filename."/\n" + else + if allowRegexp != '' && filename !~ allowRegexp + elseif rejectRegexp != '' && filename =~ rejectRegexp + else + let dispFiles = dispFiles.filename."\n" + endif + endif + let i = i + 1 + endwhile + 0put!=dispFiles + 0put!=subDirs + " delte the last empty line resulting from the put + $ d_ + + call s:FB_SetHighlighting() + call s:FB_DisplayHelp() + call s:FB_SetMaps() + + " goto the first file/directory + 0 + call search('^"=', 'w') + normal! j:<bs> + + set nomodified nomodifiable + + call s:FB_ResetSilentSettings() +endfunction " }}} +" FB_SetVar: sets script local variables from outside this script {{{ +" Description: +function! FB_SetVar(varname, value) + let s:{a:varname} = a:value +endfunction " }}} + +" FB_SetHighlighting: sets syntax highlighting for the buffer {{{ +" Description: +" Origin: from explorer.vim in vim +function! <SID>FB_SetHighlighting() + " Set up syntax highlighting + " Something wrong with the evaluation of the conditional though... + if has("syntax") && exists("g:syntax_on") && !has("syntax_items") + syn match browseSynopsis "^\"[ -].*" + syn match browseDirectory "[^\"].*/ " + syn match browseDirectory "[^\"].*/$" + syn match browseCurDir "^\"= .*$" + syn match browseSortBy "^\" Sorted by .*$" contains=browseSuffixInfo + syn match browseSuffixInfo "(.*)$" contained + syn match browseFilter "^\" Not Showing:.*$" + syn match browseFiletime "«\d\+$" + + "hi def link browseSynopsis PreProc + hi def link browseSynopsis Special + hi def link browseDirectory Directory + hi def link browseCurDir Statement + hi def link browseSortBy String + hi def link browseSuffixInfo Type + hi def link browseFilter String + hi def link browseFiletime Ignore + hi def link browseSuffixes Type + endif +endfunction " }}} +" FB_SetMaps: sets buffer local maps {{{ +" Description: +function! <SID>FB_SetMaps() + nnoremap <buffer> <silent> q :bdelete<cr> + nnoremap <buffer> <silent> C :call FB_DisplayFiles(getcwd())<CR> + nnoremap <buffer> <silent> <esc> :bdelete<cr> + nnoremap <buffer> <silent> <CR> :call <SID>FB_EditEntry()<CR> + nnoremap <buffer> <silent> ? :call <SID>FB_ToggleHelp()<CR> + + " lock the user in this window + nnoremap <buffer> <C-w> <nop> +endfunction " }}} +" FB_SetSilentSettings: some settings which make things silent {{{ +" Description: +" Origin: from explorer.vim distributed with vim. +function! <SID>FB_SetSilentSettings() + let s:save_report=&report + let s:save_showcmd = &sc + set report=10000 noshowcmd +endfunction +" FB_ResetSilentSettings: reset settings set by FB_SetSilentSettings +" Description: +function! <SID>FB_ResetSilentSettings() + let &report=s:save_report + let &showcmd = s:save_showcmd +endfunction " }}} +" FB_SetScratchSettings: makes the present buffer a scratch buffer {{{ +" Description: +function! <SID>FB_SetScratchSettings() + " Turn off the swapfile, set the buffer type so that it won't get + " written, and so that it will get deleted when it gets hidden. + setlocal noreadonly modifiable + setlocal noswapfile + setlocal buftype=nowrite + setlocal bufhidden=delete + " Don't wrap around long lines + setlocal nowrap +endfunction + +" }}} +" FB_ToggleHelp: toggles verbosity of help {{{ +" Description: +function! <SID>FB_ToggleHelp() + let s:FB_VerboseHelp = 1 - s:FB_GetVar('FB_VerboseHelp', 0) + + call FB_DisplayFiles('.') +endfunction " }}} +" FB_DisplayHelp: displays a helpful header {{{ +" Description: +function! <SID>FB_DisplayHelp() + let verboseHelp = s:FB_GetVar('FB_VerboseHelp', 0) + if verboseHelp + let txt = + \ "\" <cr>: on file, choose the file and quit\n" + \ ."\" on dir, enter directory\n" + \ ."\" q/<esc>: quit without choosing\n" + \ ."\" C: change directory to getcwd()\n" + \ ."\" ?: toggle help verbosity\n" + \ ."\"= ".getcwd() + else + let txt = "\" ?: toggle help verbosity\n" + \ ."\"= ".getcwd() + endif + 0put!=txt +endfunction " }}} + +" Handles various actions in the file-browser +" FB_EditEntry: handles the user pressing <enter> on a line {{{ +" Description: +function! <SID>FB_EditEntry() + let line = getline('.') + + if isdirectory(line) + call FB_DisplayFiles(line) + endif + + " If the user has a call back function defined on choosing a file, handle + " it. + let cbf = s:FB_GetVar('FB_CallBackFunction', '') + if cbf != '' && line !~ '^" ' && filereadable(line) + let fname = fnamemodify(line, ':p') + bdelete + + let arguments = s:FB_GetVar('FB_CallBackFunctionArgs', '') + if arguments != '' + let arguments = ','.arguments + endif + call Tex_Debug('arguments = '.arguments, 'fb') + call Tex_Debug("call ".cbf."('".fname."'".arguments.')', 'fb') + exec "call ".cbf."('".fname."'".arguments.')' + endif +endfunction " }}} + +" FB_Strntok (string, tok, n) {{{ +" extract the n^th token from s seperated by tok. +" example: FB_Strntok('1,23,3', ',', 2) = 23 +fun! <SID>FB_Strntok(s, tok, n) + return matchstr( a:s.a:tok[0], '\v(\zs([^'.a:tok.']*)\ze['.a:tok.']){'.a:n.'}') +endfun " }}} +" FB_GetVar: gets the most local value of a variable {{{ +function! <SID>FB_GetVar(name, default) + if exists('s:'.a:name) + return s:{a:name} + elseif exists('w:'.a:name) + return w:{a:name} + elseif exists('b:'.a:name) + return b:{a:name} + elseif exists('g:'.a:name) + return g:{a:name} + else + return a:default + endif +endfunction + +" }}} + +let &cpo = s:save_cpo + +" vim:fdm=marker:ff=unix:noet:ts=4:sw=4:nowrap diff --git a/.vim/plugin/imaps.vim b/.vim/plugin/imaps.vim new file mode 100644 index 0000000..d871aa1 --- /dev/null +++ b/.vim/plugin/imaps.vim @@ -0,0 +1,831 @@ +" File: imaps.vim +" Authors: Srinath Avadhanula <srinath AT fastmail.fm> +" Benji Fisher <benji AT member.AMS.org> +" +" WWW: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/vim-latex/vimfiles/plugin/imaps.vim?only_with_tag=MAIN +" +" Description: insert mode template expander with cursor placement +" while preserving filetype indentation. +" +" $Id: imaps.vim 997 2006-03-20 09:45:45Z srinathava $ +" +" Documentation: {{{ +" +" Motivation: +" this script provides a way to generate insert mode mappings which do not +" suffer from some of the problem of mappings and abbreviations while allowing +" cursor placement after the expansion. It can alternatively be thought of as +" a template expander. +" +" Consider an example. If you do +" +" imap lhs something +" +" then a mapping is set up. However, there will be the following problems: +" 1. the 'ttimeout' option will generally limit how easily you can type the +" lhs. if you type the left hand side too slowly, then the mapping will not +" be activated. +" 2. if you mistype one of the letters of the lhs, then the mapping is +" deactivated as soon as you backspace to correct the mistake. +" +" If, in order to take care of the above problems, you do instead +" +" iab lhs something +" +" then the timeout problem is solved and so is the problem of mistyping. +" however, abbreviations are only expanded after typing a non-word character. +" which causes problems of cursor placement after the expansion and invariably +" spurious spaces are inserted. +" +" Usage Example: +" this script attempts to solve all these problems by providing an emulation +" of imaps wchich does not suffer from its attendant problems. Because maps +" are activated without having to press additional characters, therefore +" cursor placement is possible. furthermore, file-type specific indentation is +" preserved, because the rhs is expanded as if the rhs is typed in literally +" by the user. +" +" The script already provides some default mappings. each "mapping" is of the +" form: +" +" call IMAP (lhs, rhs, ft) +" +" Some characters in the RHS have special meaning which help in cursor +" placement. +" +" Example One: +" +" call IMAP ("bit`", "\\begin{itemize}\<cr>\\item <++>\<cr>\\end{itemize}<++>", "tex") +" +" This effectively sets up the map for "bit`" whenever you edit a latex file. +" When you type in this sequence of letters, the following text is inserted: +" +" \begin{itemize} +" \item * +" \end{itemize}<++> +" +" where * shows the cursor position. The cursor position after inserting the +" text is decided by the position of the first "place-holder". Place holders +" are special characters which decide cursor placement and movement. In the +" example above, the place holder characters are <+ and +>. After you have typed +" in the item, press <C-j> and you will be taken to the next set of <++>'s. +" Therefore by placing the <++> characters appropriately, you can minimize the +" use of movement keys. +" +" NOTE: Set g:Imap_UsePlaceHolders to 0 to disable placeholders altogether. +" Set +" g:Imap_PlaceHolderStart and g:Imap_PlaceHolderEnd +" to something else if you want different place holder characters. +" Also, b:Imap_PlaceHolderStart and b:Imap_PlaceHolderEnd override the values +" of g:Imap_PlaceHolderStart and g:Imap_PlaceHolderEnd respectively. This is +" useful for setting buffer specific place hoders. +" +" Example Two: +" You can use the <C-r> command to insert dynamic elements such as dates. +" call IMAP ('date`', "\<c-r>=strftime('%b %d %Y')\<cr>", '') +" +" sets up the map for date` to insert the current date. +" +"--------------------------------------%<-------------------------------------- +" Bonus: This script also provides a command Snip which puts tearoff strings, +" '----%<----' above and below the visually selected range of lines. The +" length of the string is chosen to be equal to the longest line in the range. +" Recommended Usage: +" '<,'>Snip +"--------------------------------------%<-------------------------------------- +" }}} + +" line continuation used here. +let s:save_cpo = &cpo +set cpo&vim + +" ============================================================================== +" Script Options / Variables +" ============================================================================== +" Options {{{ +if !exists('g:Imap_StickyPlaceHolders') + let g:Imap_StickyPlaceHolders = 1 +endif +if !exists('g:Imap_DeleteEmptyPlaceHolders') + let g:Imap_DeleteEmptyPlaceHolders = 1 +endif +" }}} +" Variables {{{ +" s:LHS_{ft}_{char} will be generated automatically. It will look like +" s:LHS_tex_o = 'fo\|foo\|boo' and contain all mapped sequences ending in "o". +" s:Map_{ft}_{lhs} will be generated automatically. It will look like +" s:Map_c_foo = 'for(<++>; <++>; <++>)', the mapping for "foo". +" +" }}} + +" ============================================================================== +" functions for easy insert mode mappings. +" ============================================================================== +" IMAP: Adds a "fake" insert mode mapping. {{{ +" For example, doing +" IMAP('abc', 'def' ft) +" will mean that if the letters abc are pressed in insert mode, then +" they will be replaced by def. If ft != '', then the "mapping" will be +" specific to the files of type ft. +" +" Using IMAP has a few advantages over simply doing: +" imap abc def +" 1. with imap, if you begin typing abc, the cursor will not advance and +" long as there is a possible completion, the letters a, b, c will be +" displayed on on top of the other. using this function avoids that. +" 2. with imap, if a backspace or arrow key is pressed before completing +" the word, then the mapping is lost. this function allows movement. +" (this ofcourse means that this function is only limited to +" left-hand-sides which do not have movement keys or unprintable +" characters) +" It works by only mapping the last character of the left-hand side. +" when this character is typed in, then a reverse lookup is done and if +" the previous characters consititute the left hand side of the mapping, +" the previously typed characters and erased and the right hand side is +" inserted + +" IMAP: set up a filetype specific mapping. +" Description: +" "maps" the lhs to rhs in files of type 'ft'. If supplied with 2 +" additional arguments, then those are assumed to be the placeholder +" characters in rhs. If unspecified, then the placeholder characters +" are assumed to be '<+' and '+>' These placeholder characters in +" a:rhs are replaced with the users setting of +" [bg]:Imap_PlaceHolderStart and [bg]:Imap_PlaceHolderEnd settings. +" +function! IMAP(lhs, rhs, ft, ...) + + " Find the place holders to save for IMAP_PutTextWithMovement() . + if a:0 < 2 + let phs = '<+' + let phe = '+>' + else + let phs = a:1 + let phe = a:2 + endif + + let hash = s:Hash(a:lhs) + let s:Map_{a:ft}_{hash} = a:rhs + let s:phs_{a:ft}_{hash} = phs + let s:phe_{a:ft}_{hash} = phe + + " Add a:lhs to the list of left-hand sides that end with lastLHSChar: + let lastLHSChar = a:lhs[strlen(a:lhs)-1] + let hash = s:Hash(lastLHSChar) + if !exists("s:LHS_" . a:ft . "_" . hash) + let s:LHS_{a:ft}_{hash} = escape(a:lhs, '\') + else + let s:LHS_{a:ft}_{hash} = escape(a:lhs, '\') .'\|'. s:LHS_{a:ft}_{hash} + endif + + " map only the last character of the left-hand side. + if lastLHSChar == ' ' + let lastLHSChar = '<space>' + end + exe 'inoremap <silent>' + \ escape(lastLHSChar, '|') + \ '<C-r>=<SID>LookupCharacter("' . + \ escape(lastLHSChar, '\|"') . + \ '")<CR>' +endfunction + +" }}} +" IMAP_list: list the rhs and place holders corresponding to a:lhs {{{ +" +" Added mainly for debugging purposes, but maybe worth keeping. +function! IMAP_list(lhs) + let char = a:lhs[strlen(a:lhs)-1] + let charHash = s:Hash(char) + if exists("s:LHS_" . &ft ."_". charHash) && a:lhs =~ s:LHS_{&ft}_{charHash} + let ft = &ft + elseif exists("s:LHS__" . charHash) && a:lhs =~ s:LHS__{charHash} + let ft = "" + else + return "" + endif + let hash = s:Hash(a:lhs) + return "rhs = " . s:Map_{ft}_{hash} . " place holders = " . + \ s:phs_{ft}_{hash} . " and " . s:phe_{ft}_{hash} +endfunction +" }}} +" LookupCharacter: inserts mapping corresponding to this character {{{ +" +" This function extracts from s:LHS_{&ft}_{a:char} or s:LHS__{a:char} +" the longest lhs matching the current text. Then it replaces lhs with the +" corresponding rhs saved in s:Map_{ft}_{lhs} . +" The place-holder variables are passed to IMAP_PutTextWithMovement() . +function! s:LookupCharacter(char) + if IMAP_GetVal('Imap_FreezeImap', 0) == 1 + return a:char + endif + let charHash = s:Hash(a:char) + + " The line so far, including the character that triggered this function: + let text = strpart(getline("."), 0, col(".")-1) . a:char + " Prefer a local map to a global one, even if the local map is shorter. + " Is this what we want? Do we care? + " Use '\V' (very no-magic) so that only '\' is special, and it was already + " escaped when building up s:LHS_{&ft}_{charHash} . + if exists("s:LHS_" . &ft . "_" . charHash) + \ && text =~ "\\C\\V\\(" . s:LHS_{&ft}_{charHash} . "\\)\\$" + let ft = &ft + elseif exists("s:LHS__" . charHash) + \ && text =~ "\\C\\V\\(" . s:LHS__{charHash} . "\\)\\$" + let ft = "" + else + " If this is a character which could have been used to trigger an + " abbreviation, check if an abbreviation exists. + if a:char !~ '\k' + let lastword = matchstr(getline('.'), '\k\+$', '') + call IMAP_Debug('getting lastword = ['.lastword.']', 'imap') + if lastword != '' + " An extremeley wierd way to get around the fact that vim + " doesn't have the equivalent of the :mapcheck() function for + " abbreviations. + let _a = @a + exec "redir @a | silent! iab ".lastword." | redir END" + let abbreviationRHS = matchstr(@a."\n", "\n".'i\s\+'.lastword.'\s\+@\?\zs.*\ze'."\n") + + call IMAP_Debug('getting abbreviationRHS = ['.abbreviationRHS.']', 'imap') + + if @a =~ "No abbreviation found" || abbreviationRHS == "" + let @a = _a + return a:char + endif + + let @a = _a + let abbreviationRHS = escape(abbreviationRHS, '\<"') + exec 'let abbreviationRHS = "'.abbreviationRHS.'"' + + let lhs = lastword.a:char + let rhs = abbreviationRHS.a:char + let phs = IMAP_GetPlaceHolderStart() + let phe = IMAP_GetPlaceHolderEnd() + else + return a:char + endif + else + return a:char + endif + endif + " Find the longest left-hand side that matches the line so far. + " matchstr() returns the match that starts first. This automatically + " ensures that the longest LHS is used for the mapping. + if !exists('lhs') || !exists('rhs') + let lhs = matchstr(text, "\\C\\V\\(" . s:LHS_{ft}_{charHash} . "\\)\\$") + let hash = s:Hash(lhs) + let rhs = s:Map_{ft}_{hash} + let phs = s:phs_{ft}_{hash} + let phe = s:phe_{ft}_{hash} + endif + + if strlen(lhs) == 0 + return a:char + endif + " enough back-spaces to erase the left-hand side; -1 for the last + " character typed: + let bs = substitute(strpart(lhs, 1), ".", "\<bs>", "g") + return bs . IMAP_PutTextWithMovement(rhs, phs, phe) +endfunction + +" }}} +" IMAP_PutTextWithMovement: returns the string with movement appended {{{ +" Description: +" If a:str contains "placeholders", then appends movement commands to +" str in a way that the user moves to the first placeholder and enters +" insert or select mode. If supplied with 2 additional arguments, then +" they are assumed to be the placeholder specs. Otherwise, they are +" assumed to be '<+' and '+>'. These placeholder chars are replaced +" with the users settings of [bg]:Imap_PlaceHolderStart and +" [bg]:Imap_PlaceHolderEnd. +function! IMAP_PutTextWithMovement(str, ...) + + " The placeholders used in the particular input string. These can be + " different from what the user wants to use. + if a:0 < 2 + let phs = '<+' + let phe = '+>' + else + let phs = escape(a:1, '\') + let phe = escape(a:2, '\') + endif + + let text = a:str + + " The user's placeholder settings. + let phsUser = IMAP_GetPlaceHolderStart() + let pheUser = IMAP_GetPlaceHolderEnd() + + " Problem: depending on the setting of the 'encoding' option, a character + " such as "\xab" may not match itself. We try to get around this by + " changing the encoding of all our strings. At the end, we have to + " convert text back. + let phsEnc = s:Iconv(phs, "encode") + let pheEnc = s:Iconv(phe, "encode") + let phsUserEnc = s:Iconv(phsUser, "encode") + let pheUserEnc = s:Iconv(pheUser, "encode") + let textEnc = s:Iconv(text, "encode") + if textEnc != text + let textEncoded = 1 + else + let textEncoded = 0 + endif + + let pattern = '\V\(\.\{-}\)' .phs. '\(\.\{-}\)' .phe. '\(\.\*\)' + " If there are no placeholders, just return the text. + if textEnc !~ pattern + call IMAP_Debug('Not getting '.phs.' and '.phe.' in '.textEnc, 'imap') + return text + endif + " Break text up into "initial <+template+> final"; any piece may be empty. + let initialEnc = substitute(textEnc, pattern, '\1', '') + let templateEnc = substitute(textEnc, pattern, '\2', '') + let finalEnc = substitute(textEnc, pattern, '\3', '') + + " If the user does not want to use placeholders, then remove all but the + " first placeholder. + " Otherwise, replace all occurences of the placeholders here with the + " user's choice of placeholder settings. + if exists('g:Imap_UsePlaceHolders') && !g:Imap_UsePlaceHolders + let finalEnc = substitute(finalEnc, '\V'.phs.'\.\{-}'.phe, '', 'g') + else + let finalEnc = substitute(finalEnc, '\V'.phs.'\(\.\{-}\)'.phe, + \ phsUserEnc.'\1'.pheUserEnc, 'g') + endif + + " The substitutions are done, so convert back, if necessary. + if textEncoded + let initial = s:Iconv(initialEnc, "decode") + let template = s:Iconv(templateEnc, "decode") + let final = s:Iconv(finalEnc, "decode") + else + let initial = initialEnc + let template = templateEnc + let final = finalEnc + endif + + " Build up the text to insert: + " 1. the initial text plus an extra character; + " 2. go to Normal mode with <C-\><C-N>, so it works even if 'insertmode' + " is set, and mark the position; + " 3. replace the extra character with tamplate and final; + " 4. back to Normal mode and restore the cursor position; + " 5. call IMAP_Jumpfunc(). + let template = phsUser . template . pheUser + " Old trick: insert and delete a character to get the same behavior at + " start, middle, or end of line and on empty lines. + let text = initial . "X\<C-\>\<C-N>:call IMAP_Mark('set')\<CR>\"_s" + let text = text . template . final + let text = text . "\<C-\>\<C-N>:call IMAP_Mark('go')\<CR>" + let text = text . "i\<C-r>=IMAP_Jumpfunc('', 1)\<CR>" + + call IMAP_Debug('IMAP_PutTextWithMovement: text = ['.text.']', 'imap') + return text +endfunction + +" }}} +" IMAP_Jumpfunc: takes user to next <+place-holder+> {{{ +" Author: Luc Hermitte +" Arguments: +" direction: flag for the search() function. If set to '', search forwards, +" if 'b', then search backwards. See the {flags} argument of the +" |search()| function for valid values. +" inclusive: In vim, the search() function is 'exclusive', i.e we always goto +" next cursor match even if there is a match starting from the +" current cursor position. Setting this argument to 1 makes +" IMAP_Jumpfunc() also respect a match at the current cursor +" position. 'inclusive'ness is necessary for IMAP() because a +" placeholder string can occur at the very beginning of a map which +" we want to select. +" We use a non-zero value only in special conditions. Most mappings +" should use a zero value. +function! IMAP_Jumpfunc(direction, inclusive) + + " The user's placeholder settings. + let phsUser = IMAP_GetPlaceHolderStart() + let pheUser = IMAP_GetPlaceHolderEnd() + + let searchString = '' + " If this is not an inclusive search or if it is inclusive, but the + " current cursor position does not contain a placeholder character, then + " search for the placeholder characters. + if !a:inclusive || strpart(getline('.'), col('.')-1) !~ '\V\^'.phsUser + let searchString = '\V'.phsUser.'\_.\{-}'.pheUser + endif + + " If we didn't find any placeholders return quietly. + if searchString != '' && !search(searchString, a:direction) + return '' + endif + + " Open any closed folds and make this part of the text visible. + silent! foldopen! + + " Calculate if we have an empty placeholder or if it contains some + " description. + let template = + \ matchstr(strpart(getline('.'), col('.')-1), + \ '\V\^'.phsUser.'\zs\.\{-}\ze\('.pheUser.'\|\$\)') + let placeHolderEmpty = !strlen(template) + + " If we are selecting in exclusive mode, then we need to move one step to + " the right + let extramove = '' + if &selection == 'exclusive' + let extramove = 'l' + endif + + " Select till the end placeholder character. + let movement = "\<C-o>v/\\V".pheUser."/e\<CR>".extramove + + " First remember what the search pattern was. s:RemoveLastHistoryItem will + " reset @/ to this pattern so we do not create new highlighting. + let g:Tex_LastSearchPattern = @/ + + " Now either goto insert mode or select mode. + if placeHolderEmpty && g:Imap_DeleteEmptyPlaceHolders + " delete the empty placeholder into the blackhole. + return movement."\"_c\<C-o>:".s:RemoveLastHistoryItem."\<CR>" + else + return movement."\<C-\>\<C-N>:".s:RemoveLastHistoryItem."\<CR>gv\<C-g>" + endif + +endfunction + +" }}} +" Maps for IMAP_Jumpfunc {{{ +" +" These mappings use <Plug> and thus provide for easy user customization. When +" the user wants to map some other key to jump forward, he can do for +" instance: +" nmap ,f <plug>IMAP_JumpForward +" etc. + +" jumping forward and back in insert mode. +imap <silent> <Plug>IMAP_JumpForward <c-r>=IMAP_Jumpfunc('', 0)<CR> +imap <silent> <Plug>IMAP_JumpBack <c-r>=IMAP_Jumpfunc('b', 0)<CR> + +" jumping in normal mode +nmap <silent> <Plug>IMAP_JumpForward i<c-r>=IMAP_Jumpfunc('', 0)<CR> +nmap <silent> <Plug>IMAP_JumpBack i<c-r>=IMAP_Jumpfunc('b', 0)<CR> + +" deleting the present selection and then jumping forward. +vmap <silent> <Plug>IMAP_DeleteAndJumpForward "_<Del>i<c-r>=IMAP_Jumpfunc('', 0)<CR> +vmap <silent> <Plug>IMAP_DeleteAndJumpBack "_<Del>i<c-r>=IMAP_Jumpfunc('b', 0)<CR> + +" jumping forward without deleting present selection. +vmap <silent> <Plug>IMAP_JumpForward <C-\><C-N>i<c-r>=IMAP_Jumpfunc('', 0)<CR> +vmap <silent> <Plug>IMAP_JumpBack <C-\><C-N>`<i<c-r>=IMAP_Jumpfunc('b', 0)<CR> + +" }}} +" Default maps for IMAP_Jumpfunc {{{ +" map only if there is no mapping already. allows for user customization. +" NOTE: Default mappings for jumping to the previous placeholder are not +" provided. It is assumed that if the user will create such mappings +" hself if e so desires. +if !hasmapto('<Plug>IMAP_JumpForward', 'i') + imap <C-J> <Plug>IMAP_JumpForward +endif +if !hasmapto('<Plug>IMAP_JumpForward', 'n') + nmap <C-J> <Plug>IMAP_JumpForward +endif +if exists('g:Imap_StickyPlaceHolders') && g:Imap_StickyPlaceHolders + if !hasmapto('<Plug>IMAP_JumpForward', 'v') + vmap <C-J> <Plug>IMAP_JumpForward + endif +else + if !hasmapto('<Plug>IMAP_DeleteAndJumpForward', 'v') + vmap <C-J> <Plug>IMAP_DeleteAndJumpForward + endif +endif +" }}} + +nmap <silent> <script> <plug><+SelectRegion+> `<v`> + +" ============================================================================== +" enclosing selected region. +" ============================================================================== +" VEnclose: encloses the visually selected region with given arguments {{{ +" Description: allows for differing action based on visual line wise +" selection or visual characterwise selection. preserves the +" marks and search history. +function! VEnclose(vstart, vend, VStart, VEnd) + + " its characterwise if + " 1. characterwise selection and valid values for vstart and vend. + " OR + " 2. linewise selection and invalid values for VStart and VEnd + if (visualmode() == 'v' && (a:vstart != '' || a:vend != '')) || (a:VStart == '' && a:VEnd == '') + + let newline = "" + let _r = @r + + let normcmd = "normal! \<C-\>\<C-n>`<v`>\"_s" + + exe "normal! \<C-\>\<C-n>`<v`>\"ry" + if @r =~ "\n$" + let newline = "\n" + let @r = substitute(@r, "\n$", '', '') + endif + + " In exclusive selection, we need to select an extra character. + if &selection == 'exclusive' + let movement = 8 + else + let movement = 7 + endif + let normcmd = normcmd. + \ a:vstart."!!mark!!".a:vend.newline. + \ "\<C-\>\<C-N>?!!mark!!\<CR>v".movement."l\"_s\<C-r>r\<C-\>\<C-n>" + + " this little if statement is because till very recently, vim used to + " report col("'>") > length of selected line when `> is $. on some + " systems it reports a -ve number. + if col("'>") < 0 || col("'>") > strlen(getline("'>")) + let lastcol = strlen(getline("'>")) + else + let lastcol = col("'>") + endif + if lastcol - col("'<") != 0 + let len = lastcol - col("'<") + else + let len = '' + endif + + " the next normal! is for restoring the marks. + let normcmd = normcmd."`<v".len."l\<C-\>\<C-N>" + + " First remember what the search pattern was. s:RemoveLastHistoryItem + " will reset @/ to this pattern so we do not create new highlighting. + let g:Tex_LastSearchPattern = @/ + + silent! exe normcmd + " this is to restore the r register. + let @r = _r + " and finally, this is to restore the search history. + execute s:RemoveLastHistoryItem + + else + + exec 'normal! `<O'.a:VStart."\<C-\>\<C-n>" + exec 'normal! `>o'.a:VEnd."\<C-\>\<C-n>" + if &indentexpr != '' + silent! normal! `<kV`>j= + endif + silent! normal! `> + endif +endfunction + +" }}} +" ExecMap: adds the ability to correct an normal/visual mode mapping. {{{ +" Author: Hari Krishna Dara <hari_vim@yahoo.com> +" Reads a normal mode mapping at the command line and executes it with the +" given prefix. Press <BS> to correct and <Esc> to cancel. +function! ExecMap(prefix, mode) + " Temporarily remove the mapping, otherwise it will interfere with the + " mapcheck call below: + let myMap = maparg(a:prefix, a:mode) + exec a:mode."unmap ".a:prefix + + " Generate a line with spaces to clear the previous message. + let i = 1 + let clearLine = "\r" + while i < &columns + let clearLine = clearLine . ' ' + let i = i + 1 + endwhile + + let mapCmd = a:prefix + let foundMap = 0 + let breakLoop = 0 + echon "\rEnter Map: " . mapCmd + while !breakLoop + let char = getchar() + if char !~ '^\d\+$' + if char == "\<BS>" + let mapCmd = strpart(mapCmd, 0, strlen(mapCmd) - 1) + endif + else " It is the ascii code. + let char = nr2char(char) + if char == "\<Esc>" + let breakLoop = 1 + else + let mapCmd = mapCmd . char + if maparg(mapCmd, a:mode) != "" + let foundMap = 1 + let breakLoop = 1 + elseif mapcheck(mapCmd, a:mode) == "" + let mapCmd = strpart(mapCmd, 0, strlen(mapCmd) - 1) + endif + endif + endif + echon clearLine + echon "\rEnter Map: " . mapCmd + endwhile + if foundMap + if a:mode == 'v' + " use a plug to select the region instead of using something like + " `<v`> to avoid problems caused by some of the characters in + " '`<v`>' being mapped. + let gotoc = "\<plug><+SelectRegion+>" + else + let gotoc = '' + endif + exec "normal ".gotoc.mapCmd + endif + exec a:mode.'noremap '.a:prefix.' '.myMap +endfunction + +" }}} + +" ============================================================================== +" helper functions +" ============================================================================== +" Strntok: extract the n^th token from a list {{{ +" example: Strntok('1,23,3', ',', 2) = 23 +fun! <SID>Strntok(s, tok, n) + return matchstr( a:s.a:tok[0], '\v(\zs([^'.a:tok.']*)\ze['.a:tok.']){'.a:n.'}') +endfun + +" }}} +" s:RemoveLastHistoryItem: removes last search item from search history {{{ +" Description: Execute this string to clean up the search history. +let s:RemoveLastHistoryItem = ':call histdel("/", -1)|let @/=g:Tex_LastSearchPattern' + +" }}} +" s:Hash: Return a version of a string that can be used as part of a variable" {{{ +" name. +" Converts every non alphanumeric character into _{ascii}_ where {ascii} is +" the ASCII code for that character... +fun! s:Hash(text) + return substitute(a:text, '\([^[:alnum:]]\)', + \ '\="_".char2nr(submatch(1))."_"', 'g') +endfun +"" }}} +" IMAP_GetPlaceHolderStart and IMAP_GetPlaceHolderEnd: "{{{ +" return the buffer local placeholder variables, or the global one, or the default. +function! IMAP_GetPlaceHolderStart() + if exists("b:Imap_PlaceHolderStart") && strlen(b:Imap_PlaceHolderEnd) + return b:Imap_PlaceHolderStart + elseif exists("g:Imap_PlaceHolderStart") && strlen(g:Imap_PlaceHolderEnd) + return g:Imap_PlaceHolderStart + else + return "<+" +endfun +function! IMAP_GetPlaceHolderEnd() + if exists("b:Imap_PlaceHolderEnd") && strlen(b:Imap_PlaceHolderEnd) + return b:Imap_PlaceHolderEnd + elseif exists("g:Imap_PlaceHolderEnd") && strlen(g:Imap_PlaceHolderEnd) + return g:Imap_PlaceHolderEnd + else + return "+>" +endfun +" }}} +" s:Iconv: a wrapper for iconv()" {{{ +" Problem: after +" let text = "\xab" +" (or using the raw 8-bit ASCII character in a file with 'fenc' set to +" "latin1") if 'encoding' is set to utf-8, then text does not match itself: +" echo text =~ text +" returns 0. +" Solution: When this happens, a re-encoded version of text does match text: +" echo iconv(text, "latin1", "utf8") =~ text +" returns 1. In this case, convert text to utf-8 with iconv(). +" TODO: Is it better to use &encoding instead of "utf8"? Internally, vim +" uses utf-8, and can convert between latin1 and utf-8 even when compiled with +" -iconv, so let's try using utf-8. +" Arguments: +" a:text = text to be encoded or decoded +" a:mode = "encode" (latin1 to utf8) or "decode" (utf8 to latin1) +" Caution: do not encode and then decode without checking whether the text +" has changed, becuase of the :if clause in encoding! +function! s:Iconv(text, mode) + if a:mode == "decode" + return iconv(a:text, "utf8", "latin1") + endif + if a:text =~ '\V\^' . escape(a:text, '\') . '\$' + return a:text + endif + let textEnc = iconv(a:text, "latin1", "utf8") + if textEnc !~ '\V\^' . escape(a:text, '\') . '\$' + call IMAP_Debug('Encoding problems with text '.a:text.' ', 'imap') + endif + return textEnc +endfun +"" }}} +" IMAP_Debug: interface to Tex_Debug if available, otherwise emulate it {{{ +" Description: +" Do not want a memory leak! Set this to zero so that imaps always +" starts out in a non-debugging mode. +if !exists('g:Imap_Debug') + let g:Imap_Debug = 0 +endif +function! IMAP_Debug(string, pattern) + if !g:Imap_Debug + return + endif + if exists('*Tex_Debug') + call Tex_Debug(a:string, a:pattern) + else + if !exists('s:debug_'.a:pattern) + let s:debug_{a:pattern} = a:string + else + let s:debug_{a:pattern} = s:debug_{a:pattern}.a:string + endif + endif +endfunction " }}} +" IMAP_DebugClear: interface to Tex_DebugClear if avaialable, otherwise emulate it {{{ +" Description: +function! IMAP_DebugClear(pattern) + if exists('*Tex_DebugClear') + call Tex_DebugClear(a:pattern) + else + let s:debug_{a:pattern} = '' + endif +endfunction " }}} +" IMAP_PrintDebug: interface to Tex_DebugPrint if avaialable, otherwise emulate it {{{ +" Description: +function! IMAP_PrintDebug(pattern) + if exists('*Tex_PrintDebug') + call Tex_PrintDebug(a:pattern) + else + if exists('s:debug_'.a:pattern) + echo s:debug_{a:pattern} + endif + endif +endfunction " }}} +" IMAP_Mark: Save the cursor position (if a:action == 'set') in a" {{{ +" script-local variable; restore this position if a:action == 'go'. +let s:Mark = "(0,0)" +let s:initBlanks = '' +function! IMAP_Mark(action) + if a:action == 'set' + let s:Mark = "(" . line(".") . "," . col(".") . ")" + let s:initBlanks = matchstr(getline('.'), '^\s*') + elseif a:action == 'go' + execute "call cursor" s:Mark + let blanksNow = matchstr(getline('.'), '^\s*') + if strlen(blanksNow) > strlen(s:initBlanks) + execute 'silent! normal! '.(strlen(blanksNow) - strlen(s:initBlanks)).'l' + elseif strlen(blanksNow) < strlen(s:initBlanks) + execute 'silent! normal! '.(strlen(s:initBlanks) - strlen(blanksNow)).'h' + endif + endif +endfunction "" }}} +" IMAP_GetVal: gets the value of a variable {{{ +" Description: first checks window local, then buffer local etc. +function! IMAP_GetVal(name, ...) + if a:0 > 0 + let default = a:1 + else + let default = '' + endif + if exists('w:'.a:name) + return w:{a:name} + elseif exists('b:'.a:name) + return b:{a:name} + elseif exists('g:'.a:name) + return g:{a:name} + else + return default + endif +endfunction " }}} + +" ============================================================================== +" A bonus function: Snip() +" ============================================================================== +" Snip: puts a scissor string above and below block of text {{{ +" Desciption: +"-------------------------------------%<------------------------------------- +" this puts a the string "--------%<---------" above and below the visually +" selected block of lines. the length of the 'tearoff' string depends on the +" maximum string length in the selected range. this is an aesthetically more +" pleasing alternative instead of hardcoding a length. +"-------------------------------------%<------------------------------------- +function! <SID>Snip() range + let i = a:firstline + let maxlen = -2 + " find out the maximum virtual length of each line. + while i <= a:lastline + exe i + let length = virtcol('$') + let maxlen = (length > maxlen ? length : maxlen) + let i = i + 1 + endwhile + let maxlen = (maxlen > &tw && &tw != 0 ? &tw : maxlen) + let half = maxlen/2 + exe a:lastline + " put a string below + exe "norm! o\<esc>".(half - 1)."a-\<esc>A%<\<esc>".(half - 1)."a-" + " and above. its necessary to put the string below the block of lines + " first because that way the first line number doesnt change... + exe a:firstline + exe "norm! O\<esc>".(half - 1)."a-\<esc>A%<\<esc>".(half - 1)."a-" +endfunction + +com! -nargs=0 -range Snip :<line1>,<line2>call <SID>Snip() +" }}} + +let &cpo = s:save_cpo + +" vim:ft=vim:ts=4:sw=4:noet:fdm=marker:commentstring=\"\ %s:nowrap diff --git a/.vim/plugin/libList.vim b/.vim/plugin/libList.vim new file mode 100644 index 0000000..7d72c3e --- /dev/null +++ b/.vim/plugin/libList.vim @@ -0,0 +1,249 @@ +" File: libList.vim +" Last Change: 2001 Dec 10 +" Maintainer: Gontran BAERTS <gbcreation@free.fr> +" Version: 0.1 +" +" Please don't hesitate to correct my english :) +" Send corrections to <gbcreation@free.fr> +" +"----------------------------------------------------------------------------- +" Description: libList.vim is a set of functions to work with lists or one +" level arrays. +" +"----------------------------------------------------------------------------- +" To Enable: Normally, this file will reside in your plugins directory and be +" automatically sourced. +" +"----------------------------------------------------------------------------- +" Usage: Lists are strings variable with values separated by g:listSep +" character (comma" by default). You may redefine g:listSep variable as you +" wish. +" +" Here are available functions : +" +" - AddListItem( array, newItem, index ) : +" Add item "newItem" to array "array" at "index" position +" - GetListItem( array, index ) : +" Return item at "index" position in array "array" +" - GetListMatchItem( array, pattern ) : +" Return item matching "pattern" in array "array" +" - GetListCount( array ) : +" Return the number of items in array "array" +" - RemoveListItem( array, index ) : +" Remove item at "index" position from array "array" +" - ReplaceListItem( array, index, item ) : +" Remove item at "index" position by "item" in array "array" +" - ExchangeListItems( array, item1Index, item2Index ) : +" Exchange item "item1Index" with item "item2Index" in array "array" +" - QuickSortList( array, beg, end ) : +" Return array "array" with items between "beg" and "end" sorted +" +" Example: +" let mylist="" +" echo GetListCount( mylist ) " --> 0 +" let mylist = AddListItem( mylist, "One", 0 ) " mylist == "One" +" let mylist = AddListItem( mylist, "Three", 1 ) " mylist == "One,Three" +" let mylist = AddListItem( mylist, "Two", 1 ) " mylist == "One,Two,Three" +" echo GetListCount( mylist ) " --> 3 +" echo GetListItem( mylist, 2 ) " --> Three +" echo GetListMatchItem( mylist, "w" ) " --> two +" echo GetListMatchItem( mylist, "e" ) " --> One +" let mylist = RemoveListItem( mylist, 2 ) " mylist == "One,Two" +" echo GetListCount( mylist ) " --> 2 +" let mylist = ReplaceListItem( mylist, 0, "Three" ) " mylist == "Three,Two" +" let mylist = ExchangeListItems( mylist, 0, 1 ) " mylist == "Two,Three" +" let mylist = AddListItem( mylist, "One", 0 ) " mylist == "One,Two,Three" +" let mylist = QuickSortList( mylist, 0, GetListCount(mylist)-1 ) +" " mylist == "One,Three,Two" +" +"----------------------------------------------------------------------------- +" Updates: +" in version 0.1 +" - First version + +" Has this already been loaded ? +if exists("loaded_libList") + finish +endif +let loaded_libList=1 + +"** +" Separator: +" You may change the separator character et any time. +"** +let g:listSep = "," + +"** +"AddListItem: +" Add new item at given position. +" First item index is 0 (zero). +"Parameters: +" - array : Array/List (string of values) which receives the new item. +" - newItem : String containing the item value to add. +" - index : Integer indicating the position at which the new item is added. +" It must be greater than or equals to 0 (zero). +"Return: +"String containing array values, including newItem. +"** +function AddListItem( array, newItem, index ) + if a:index == 0 + if a:array == "" + return a:newItem + endif + return a:newItem . g:listSep . a:array + endif + return substitute( a:array, '\(\%(^\|' . g:listSep . '\)[^' . g:listSep . ']\+\)\{' . a:index . '\}', '\0' . g:listSep . a:newItem , "" ) +endfunction + +"** +"GetListItem: +" Get item at given position. +"Parameters: +" - array : Array/List (string of values). +" - index : Integer indicating the position of item to return. +" It must be greater than or equals to 0 (zero). +"Return: +"String representing the item. +"** +function GetListItem( array, index ) + if a:index == 0 + return matchstr( a:array, '^[^' . g:listSep . ']\+' ) + else + return matchstr( a:array, "[^" . g:listSep . "]\\+", matchend( a:array, '\(\%(^\|' . g:listSep . '\)[^' . g:listSep . ']\+\)\{' . a:index . '\}' . g:listSep ) ) + endif +endfunction + +"** +"GetListMatchItem: +" Get the first item matching given pattern. +"Parameters: +" - array : Array/List (string of values). +" - pattern : Regular expression to match with items. +" Avoid to use ^, $ and listSep characters in pattern, unless you +" know what you do. +"Return: +"String representing the first item that matches the pattern. +"** +function GetListMatchItem( array, pattern ) + return matchstr( a:array, '[^' . g:listSep . ']*' . a:pattern . '[^' . g:listSep . ']*' ) +endfunction + +"** +"ReplaceListItem: +" Replace item at given position by a new one. +"Parameters: +" - array : Array/List (string of values). +" - index : Integer indicating the position of item to replace. +" It must be greater than or equals to 0 (zero). +" - item : String containing the new value of the replaced item. +"Return: +"String containing array values. +"** +function ReplaceListItem( array, index, item ) + if a:index == 0 + return substitute( a:array, '^[^' .g:listSep. ']\+', a:item, "" ) + else + return substitute( a:array, '\(\%(\%(^\|' . g:listSep . '\)[^' . g:listSep . ']\+\)\{' . a:index . '\}\)' . g:listSep . '[^' . g:listSep . ']\+', '\1' . g:listSep . a:item , "" ) + endif +endfunction + +"** +"RemoveListItem: +" Remove item at given position. +"Parameters: +" - array : Array/List (string of values) from which remove an item. +" - index : Integer indicating the position of item to remove. +" It must be greater than or equals to 0 (zero). +"Return: +"String containing array values, except the removed one. +"** +function RemoveListItem( array, index ) + if a:index == 0 + return substitute( a:array, '^[^' .g:listSep. ']\+\(' . g:listSep . '\|$\)', "", "" ) + else + return substitute( a:array, '\(\%(\%(^\|' . g:listSep . '\)[^' . g:listSep . ']\+\)\{' . a:index . '\}\)' . g:listSep . '[^' . g:listSep . ']\+', '\1', "" ) + endif +endfunction + +"** +"ExchangeListItems: +" Exchange item at position item1Index with item at position item2Index. +"Parameters: +" - array : Array/List (string of values). +" - item1index : Integer indicating the position of the first item to exchange. +" It must be greater than or equals to 0 (zero). +" - item2index : Integer indicating the position of the second item to +" exchange. It must be greater than or equals to 0 (zero). +"Return: +"String containing array values. +"** +function ExchangeListItems( array, item1Index, item2Index ) + let item1 = GetListItem( a:array, a:item1Index ) + let array = ReplaceListItem( a:array, a:item1Index, GetListItem( a:array, a:item2Index ) ) + return ReplaceListItem( array, a:item2Index, item1 ) +endfunction + +"** +"GetListCount: +" Number of items in array. +"Parameters: +" - array : Array/List (string of values). +"Return: +"Integer representing the number of items in array. +"Index of last item is GetListCount(array)-1. +"** +function GetListCount( array ) + if a:array == "" | return 0 | endif + let pos = 0 + let cnt = 0 + while pos != -1 + let pos = matchend( a:array, g:listSep, pos ) + let cnt = cnt + 1 + endwhile + return cnt +endfunction + +"** +"QuickSortList: +" Sort array. +"Parameters: +" - array : Array/List (string of values). +" - beg : Min index of the range of items to sort. +" - end : Max index of the range of items to sort. +"Return: +"String containing array values with indicated range of items sorted. +"** +function QuickSortList( array, beg, end ) + let array = a:array + let pivot = GetListItem( array, a:beg ) + let l = a:beg + let r = a:end + while l < r + while GetListItem( array, r ) > pivot + let r = r - 1 + endwhile + if l != r + let array = ReplaceListItem( array, l, GetListItem( array, r ) ) + let array = ReplaceListItem( array, r, pivot ) + let l = l + 1 + endif + + while GetListItem( array, l ) < pivot + let l = l + 1 + endwhile + if l != r + let array = ReplaceListItem( array, r, GetListItem( array, l ) ) + let array = ReplaceListItem( array, l, pivot ) + let r = r - 1 + endif + endwhile + if a:beg < l-1 + let array = QuickSortList( array, a:beg, l-1 ) + endif + if a:end > l+1 + let array = QuickSortList( array, l+1, a:end ) + endif + return array +endfunction + + diff --git a/.vim/plugin/minibufexpl.vim b/.vim/plugin/minibufexpl.vim new file mode 100644 index 0000000..4e78063 --- /dev/null +++ b/.vim/plugin/minibufexpl.vim @@ -0,0 +1,1838 @@ +" Mini Buffer Explorer <minibufexpl.vim> +" +" HINT: Type zR if you don't know how to use folds +" +" Script Info and Documentation {{{ +"============================================================================= +" Copyright: Copyright (C) 2002 & 2003 Bindu Wavell +" Permission is hereby granted to use and distribute this code, +" with or without modifications, provided that this copyright +" notice is copied with it. Like anything else that's free, +" minibufexplorer.vim is provided *as is* and comes with no +" warranty of any kind, either expressed or implied. In no +" event will the copyright holder be liable for any damamges +" resulting from the use of this software. +" +" Name Of File: minibufexpl.vim +" Description: Mini Buffer Explorer Vim Plugin +" Maintainer: Bindu Wavell <bindu@wavell.net> +" URL: http://vim.sourceforge.net/scripts/script.php?script_id=159 +" Last Change: Sunday, June 21, 2004 +" Version: 6.3.2 +" Derived from Jeff Lanzarotta's bufexplorer.vim version 6.0.7 +" Jeff can be reached at (jefflanzarotta@yahoo.com) and the +" original plugin can be found at: +" http://lanzarotta.tripod.com/vim/plugin/6/bufexplorer.vim.zip +" +" Usage: Normally, this file should reside in the plugins +" directory and be automatically sourced. If not, you must +" manually source this file using ':source minibufexplorer.vim'. +" +" You may use the default keymappings of +" +" <Leader>mbe - Opens MiniBufExplorer +" +" or you may want to add something like the following +" key mapping to your _vimrc/.vimrc file. +" +" map <Leader>b :MiniBufExplorer<cr> +" +" However, in most cases you won't need any key-bindings at all. +" +" <Leader> is usually backslash so type "\mbe" (quickly) to open +" the -MiniBufExplorer- window. +" +" Other keymappings include: <Leader>mbc to close the Explorer +" window, <Leader>mbu to force the Explorer to Update and +" <Leader>mbt to toggle the Explorer window; it will open if +" closed or close if open. Each of these key bindings can be +" overridden (see the notes on <Leader>mbe above.) +" +" You can map these additional commands as follows: +" +" map <Leader>c :CMiniBufExplorer<cr> +" map <Leader>u :UMiniBufExplorer<cr> +" map <Leader>t :TMiniBufExplorer<cr> +" +" NOTE: you can change the key binding used in these mappings +" so that they fit with your configuration of vim. +" +" You can also call each of these features by typing the +" following in command mode: +" +" :MiniBufExplorer " Open and/or goto Explorer +" :CMiniBufExplorer " Close the Explorer if it's open +" :UMiniBufExplorer " Update Explorer without navigating +" :TMiniBufExplorer " Toggle the Explorer window open and +" closed. +" +" To control where the new split window goes relative to the +" current window, use the setting: +" +" let g:miniBufExplSplitBelow=0 " Put new window above +" " current or on the +" " left for vertical split +" let g:miniBufExplSplitBelow=1 " Put new window below +" " current or on the +" " right for vertical split +" +" The default for this is read from the &splitbelow VIM option. +" +" By default we are now (as of 6.0.2) forcing the -MiniBufExplorer- +" window to open up at the edge of the screen. You can turn this +" off by setting the following variable in your .vimrc: +" +" let g:miniBufExplSplitToEdge = 0 +" +" If you would like a vertical explorer you can assign the column +" width (in characters) you want for your explorer window with the +" following .vimrc variable (this was introduced in 6.3.0): +" +" let g:miniBufExplVSplit = 20 " column width in chars +" +" IN HORIZONTAL MODE: +" It is now (as of 6.1.1) possible to set a maximum height for +" the -MiniBufExplorer- window. You can set the max height by +" letting the following variable in your .vimrc: +" +" let g:miniBufExplMaxSize = <max lines: defualt 0> +" +" setting this to 0 will mean the window gets as big as +" needed to fit all your buffers. +" +" NOTE: This was g:miniBufExplMaxHeight before 6.3.0; the old +" setting is backwards compatible if you don't use MaxSize. +" +" As of 6.2.2 it is possible to set a minimum height for the +" -MiniBufExplorer- window. You can set the min height by +" letting the following variable in your .vimrc: +" +" let g:miniBufExplMinSize = <min height: default 1> +" +" NOTE: This was g:miniBufExplMinHeight before 6.3.0; the old +" setting is backwards compatible if you don't use MinSize. +" +" IN VERTICAL MODE: (as of 6.3.0) +" By default the vertical explorer has a fixed width. If you put: +" +" let g:miniBufExplMaxSize = <max width: default 0> +" +" into your .vimrc then MBE will attempt to set the width of the +" MBE window to be as wide as your widest tab. The width will not +" exceed MaxSize even if you have wider tabs. +" +" Accepting the default value of 0 for this will give you a fixed +" width MBE window. +" +" You can specify a MinSize for the vertical explorer window by +" putting the following in your .vimrc: +" +" let g:miniBufExplMinSize = <min width: default 1> +" +" This will have no effect unless you also specivy MaxSize. +" +" By default we are now (as of 6.0.1) turning on the MoreThanOne +" option. This stops the -MiniBufExplorer- from opening +" automatically until more than one eligible buffer is available. +" You can turn this feature off by setting the following variable +" in your .vimrc: +" +" let g:miniBufExplorerMoreThanOne=1 +" +" (The following enhancement is as of 6.2.2) +" Setting this to 0 will cause the MBE window to be loaded even +" if no buffers are available. Setting it to 1 causes the MBE +" window to be loaded as soon as an eligible buffer is read. You +" can also set it to larger numbers. So if you set it to 4 for +" example the MBE window wouldn't auto-open until 4 eligibles +" buffers had been loaded. This is nice for folks that don't +" want an MBE window unless they are editing more than two or +" three buffers. +" +" To enable the optional mapping of Control + Vim Direction Keys +" [hjkl] to window movement commands, you can put the following into +" your .vimrc: +" +" let g:miniBufExplMapWindowNavVim = 1 +" +" To enable the optional mapping of Control + Arrow Keys to window +" movement commands, you can put the following into your .vimrc: +" +" let g:miniBufExplMapWindowNavArrows = 1 +" +" To enable the optional mapping of <C-TAB> and <C-S-TAB> to a +" function that will bring up the next or previous buffer in the +" current window, you can put the following into your .vimrc: +" +" let g:miniBufExplMapCTabSwitchBufs = 1 +" +" To enable the optional mapping of <C-TAB> and <C-S-TAB> to mappings +" that will move to the next and previous (respectively) window, you +" can put the following into your .vimrc: +" +" let g:miniBufExplMapCTabSwitchWindows = 1 +" +" +" NOTE: If you set the ...TabSwitchBufs AND ...TabSwitchWindows, +" ...TabSwitchBufs will be enabled and ...TabSwitchWindows +" will not. +" +" As of MBE 6.3.0, you can put the following into your .vimrc: +" +" let g:miniBufExplUseSingleClick = 1 +" +" If you would like to single click on tabs rather than double +" clicking on them to goto the selected buffer. +" +" NOTE: If you use the single click option in taglist.vim you may +" need to get an updated version that includes a patch I +" provided to allow both explorers to provide single click +" buffer selection. +" +" It is possible to customize the the highlighting for the tabs in +" the MBE by configuring the following highlighting groups: +" +" MBENormal - for buffers that have NOT CHANGED and +" are NOT VISIBLE. +" MBEChanged - for buffers that HAVE CHANGED and are +" NOT VISIBLE +" MBEVisibleNormal - buffers that have NOT CHANGED and are +" VISIBLE +" MBEVisibleChanged - buffers that have CHANGED and are VISIBLE +" +" You can either link to an existing highlighting group by +" adding a command like: +" +" hi link MBEVisibleChanged Error +" +" to your .vimrc or you can specify exact foreground and background +" colors using the following syntax: +" +" hi MBEChanged guibg=darkblue ctermbg=darkblue termbg=white +" +" NOTE: If you set a colorscheme in your .vimrc you should do it +" BEFORE updating the MBE highlighting groups. +" +" If you use other explorers like TagList you can (As of 6.2.8) put: +" +" let g:miniBufExplModSelTarget = 1 +" +" into your .vimrc in order to force MBE to try to place selected +" buffers into a window that does not have a nonmodifiable buffer. +" The upshot of this should be that if you go into MBE and select +" a buffer, the buffer should not show up in a window that is +" hosting an explorer. +" +" There is a VIM bug that can cause buffers to show up without +" their highlighting. The following setting will cause MBE to +" try and turn highlighting back on (introduced in 6.3.1): +" +" let g:miniBufExplForceSyntaxEnable = 1 +" +" MBE has had a basic debugging capability for quite some time. +" However, it has not been very friendly in the past. As of 6.0.8, +" you can put one of each of the following into your .vimrc: +" +" let g:miniBufExplorerDebugLevel = 0 " MBE serious errors output +" let g:miniBufExplorerDebugLevel = 4 " MBE all errors output +" let g:miniBufExplorerDebugLevel = 10 " MBE reports everything +" +" You can also set a DebugMode to cause output to be target as +" follows (default is mode 3): +" +" let g:miniBufExplorerDebugMode = 0 " Errors will show up in +" " a vim window +" let g:miniBufExplorerDebugMode = 1 " Uses VIM's echo function +" " to display on the screen +" let g:miniBufExplorerDebugMode = 2 " Writes to a file +" " MiniBufExplorer.DBG +" let g:miniBufExplorerDebugMode = 3 " Store output in global: +" " g:miniBufExplorerDebugOutput +" +" Or if you are able to start VIM, you might just perform these +" at a command prompt right before you do the operation that is +" failing. +" +" History: Moved to end of file +" +" Known Issues: When debugging is turned on and set to output to a window, there +" are some cases where the window is opened more than once, there +" are other cases where an old debug window can be lost. +" +" Several MBE commands can break the window history so <C-W>[pnw] +" might not take you to the expected window. +" +" Todo: Add the ability to specify a regexp for eligible buffers +" allowing the ability to filter out certain buffers that +" you don't want to control from MBE +" +"============================================================================= +" }}} + +" Startup Check +" +" Has this plugin already been loaded? {{{ +" +if exists('loaded_minibufexplorer') + finish +endif +let loaded_minibufexplorer = 1 +" }}} + +" Mappings and Commands +" +" MBE Keyboard Mappings {{{ +" If we don't already have keyboard mappings for MBE then create them +" +if !hasmapto('<Plug>MiniBufExplorer') + map <unique> <Leader>mbe <Plug>MiniBufExplorer +endif +if !hasmapto('<Plug>CMiniBufExplorer') + map <unique> <Leader>mbc <Plug>CMiniBufExplorer +endif +if !hasmapto('<Plug>UMiniBufExplorer') + map <unique> <Leader>mbu <Plug>UMiniBufExplorer +endif +if !hasmapto('<Plug>TMiniBufExplorer') + map <unique> <Leader>mbt <Plug>TMiniBufExplorer +endif + +" }}} +" MBE <Script> internal map {{{ +" +noremap <unique> <script> <Plug>MiniBufExplorer :call <SID>StartExplorer(1, -1)<CR>:<BS> +noremap <unique> <script> <Plug>CMiniBufExplorer :call <SID>StopExplorer(1)<CR>:<BS> +noremap <unique> <script> <Plug>UMiniBufExplorer :call <SID>AutoUpdate(-1)<CR>:<BS> +noremap <unique> <script> <Plug>TMiniBufExplorer :call <SID>ToggleExplorer()<CR>:<BS> + +" }}} +" MBE commands {{{ +" +if !exists(':MiniBufExplorer') + command! MiniBufExplorer call <SID>StartExplorer(1, -1) +endif +if !exists(':CMiniBufExplorer') + command! CMiniBufExplorer call <SID>StopExplorer(1) +endif +if !exists(':UMiniBufExplorer') + command! UMiniBufExplorer call <SID>AutoUpdate(-1) +endif +if !exists(':TMiniBufExplorer') + command! TMiniBufExplorer call <SID>ToggleExplorer() +endif +if !exists(':MBEbn') + command! MBEbn call <SID>CycleBuffer(1) +endif +if !exists(':MBEbp') + command! MBEbp call <SID>CycleBuffer(0) +endif " }}} + +" Global Configuration Variables +" +" Debug Level {{{ +" +" 0 = no logging +" 1=5 = errors ; 1 is the most important +" 5-9 = info ; 5 is the most important +" 10 = Entry/Exit +if !exists('g:miniBufExplorerDebugLevel') + let g:miniBufExplorerDebugLevel = 0 +endif + +" }}} +" Debug Mode {{{ +" +" 0 = debug to a window +" 1 = use vim's echo facility +" 2 = write to a file named MiniBufExplorer.DBG +" in the directory where vim was started +" THIS IS VERY SLOW +" 3 = Write into g:miniBufExplorerDebugOutput +" global variable [This is the default] +if !exists('g:miniBufExplorerDebugMode') + let g:miniBufExplorerDebugMode = 3 +endif + +" }}} +" Allow auto update? {{{ +" +" We start out with this off for startup, but once vim is running we +" turn this on. +if !exists('g:miniBufExplorerAutoUpdate') + let g:miniBufExplorerAutoUpdate = 0 +endif + +" }}} +" MoreThanOne? {{{ +" Display Mini Buf Explorer when there are 'More Than One' eligible buffers +" +if !exists('g:miniBufExplorerMoreThanOne') + let g:miniBufExplorerMoreThanOne = 2 +endif + +" }}} +" Split below/above/left/right? {{{ +" When opening a new -MiniBufExplorer- window, split the new windows below or +" above the current window? 1 = below, 0 = above. +" +if !exists('g:miniBufExplSplitBelow') + let g:miniBufExplSplitBelow = &splitbelow +endif + +" }}} +" Split to edge? {{{ +" When opening a new -MiniBufExplorer- window, split the new windows to the +" full edge? 1 = yes, 0 = no. +" +if !exists('g:miniBufExplSplitToEdge') + let g:miniBufExplSplitToEdge = 1 +endif + +" }}} +" MaxHeight (depreciated) {{{ +" When sizing the -MiniBufExplorer- window, assign a maximum window height. +" 0 = size to fit all buffers, otherwise the value is number of lines for +" buffer. [Depreciated use g:miniBufExplMaxSize] +" +if !exists('g:miniBufExplMaxHeight') + let g:miniBufExplMaxHeight = 0 +endif + +" }}} +" MaxSize {{{ +" Same as MaxHeight but also works for vertical splits if specified with a +" vertical split then vertical resizing will be performed. If left at 0 +" then the number of columns in g:miniBufExplVSplit will be used as a +" static window width. +if !exists('g:miniBufExplMaxSize') + let g:miniBufExplMaxSize = g:miniBufExplMaxHeight +endif + +" }}} +" MinHeight (depreciated) {{{ +" When sizing the -MiniBufExplorer- window, assign a minumum window height. +" the value is minimum number of lines for buffer. Setting this to zero can +" cause strange height behavior. The default value is 1 [Depreciated use +" g:miniBufExplMinSize] +" +if !exists('g:miniBufExplMinHeight') + let g:miniBufExplMinHeight = 1 +endif + +" }}} +" MinSize {{{ +" Same as MinHeight but also works for vertical splits. For vertical splits, +" this is ignored unless g:miniBufExplMax(Size|Height) are specified. +if !exists('g:miniBufExplMinSize') + let g:miniBufExplMinSize = g:miniBufExplMinHeight +endif + +" }}} +" Horizontal or Vertical explorer? {{{ +" For folks that like vertical explorers, I'm caving in and providing for +" veritcal splits. If this is set to 0 then the current horizontal +" splitting logic will be run. If however you want a vertical split, +" assign the width (in characters) you wish to assign to the MBE window. +" +if !exists('g:miniBufExplVSplit') + let g:miniBufExplVSplit = 0 +endif + +" }}} +" TabWrap? {{{ +" By default line wrap is used (possibly breaking a tab name between two +" lines.) Turning this option on (setting it to 1) can take more screen +" space, but will make sure that each tab is on one and only one line. +" +if !exists('g:miniBufExplTabWrap') + let g:miniBufExplTabWrap = 0 +endif + +" }}} +" Extended window navigation commands? {{{ +" Global flag to turn extended window navigation commands on or off +" enabled = 1, dissabled = 0 +" +if !exists('g:miniBufExplMapWindowNav') + " This is for backwards compatibility and may be removed in a + " later release, please use the ...NavVim and/or ...NavArrows + " settings. + let g:miniBufExplMapWindowNav = 0 +endif +if !exists('g:miniBufExplMapWindowNavVim') + let g:miniBufExplMapWindowNavVim = 0 +endif +if !exists('g:miniBufExplMapWindowNavArrows') + let g:miniBufExplMapWindowNavArrows = 0 +endif +if !exists('g:miniBufExplMapCTabSwitchBufs') + let g:miniBufExplMapCTabSwitchBufs = 0 +endif +" Notice: that if CTabSwitchBufs is turned on then +" we turn off CTabSwitchWindows. +if g:miniBufExplMapCTabSwitchBufs == 1 || !exists('g:miniBufExplMapCTabSwitchWindows') + let g:miniBufExplMapCTabSwitchWindows = 0 +endif + +" +" If we have enabled control + vim direction key remapping +" then perform the remapping +" +" Notice: I left g:miniBufExplMapWindowNav in for backward +" compatibility. Eventually this mapping will be removed so +" please use the newer g:miniBufExplMapWindowNavVim setting. +if g:miniBufExplMapWindowNavVim || g:miniBufExplMapWindowNav + noremap <C-J> <C-W>j + noremap <C-K> <C-W>k + noremap <C-H> <C-W>h + noremap <C-L> <C-W>l +endif + +" +" If we have enabled control + arrow key remapping +" then perform the remapping +" +if g:miniBufExplMapWindowNavArrows + noremap <C-Down> <C-W>j + noremap <C-Up> <C-W>k + noremap <C-Left> <C-W>h + noremap <C-Right> <C-W>l +endif + +" If we have enabled <C-TAB> and <C-S-TAB> to switch buffers +" in the current window then perform the remapping +" +if g:miniBufExplMapCTabSwitchBufs + noremap <C-TAB> :call <SID>CycleBuffer(1)<CR>:<BS> + noremap <C-S-TAB> :call <SID>CycleBuffer(0)<CR>:<BS> +endif + +" +" If we have enabled <C-TAB> and <C-S-TAB> to switch windows +" then perform the remapping +" +if g:miniBufExplMapCTabSwitchWindows + noremap <C-TAB> <C-W>w + noremap <C-S-TAB> <C-W>W +endif + +" }}} +" Modifiable Select Target {{{ +" +if !exists('g:miniBufExplModSelTarget') + let g:miniBufExplModSelTarget = 0 +endif + +"}}} +" Force Syntax Enable {{{ +" +if !exists('g:miniBufExplForceSyntaxEnable') + let g:miniBufExplForceSyntaxEnable = 0 +endif + +" }}} +" Single/Double Click? {{{ +" flag that can be set to 1 in a users .vimrc to allow +" single click switching of tabs. By default we use +" double click for tab selection. +" +if !exists('g:miniBufExplUseSingleClick') + let g:miniBufExplUseSingleClick = 0 +endif + +" +" attempt to perform single click mapping, it would be much +" nicer if we could nnoremap <buffer> ... however vim does +" not fire the <buffer> <leftmouse> when you use the mouse +" to enter a buffer. +" +if g:miniBufExplUseSingleClick == 1 + let s:clickmap = ':if bufname("%") == "-MiniBufExplorer-" <bar> call <SID>MBEClick() <bar> endif <CR>' + if maparg('<LEFTMOUSE>', 'n') == '' + " no mapping for leftmouse + exec ':nnoremap <silent> <LEFTMOUSE> <LEFTMOUSE>' . s:clickmap + else + " we have a mapping + let g:miniBufExplDoneClickSave = 1 + let s:m = ':nnoremap <silent> <LEFTMOUSE> <LEFTMOUSE>' + let s:m = s:m . substitute(substitute(maparg('<LEFTMOUSE>', 'n'), '|', '<bar>', 'g'), '\c^<LEFTMOUSE>', '', '') + let s:m = s:m . s:clickmap + exec s:m + endif +endif " }}} + +" Variables used internally +" +" Script/Global variables {{{ +" Global used to store the buffer list so we don't update the +" UI unless the list has changed. +if !exists('g:miniBufExplBufList') + let g:miniBufExplBufList = '' +endif + +" Variable used as a mutex so that we don't do lots +" of AutoUpdates at the same time. +if !exists('g:miniBufExplInAutoUpdate') + let g:miniBufExplInAutoUpdate = 0 +endif + +" In debug mode 3 this variable will hold the debug output +if !exists('g:miniBufExplorerDebugOutput') + let g:miniBufExplorerDebugOutput = '' +endif + +" In debug mode 3 this variable will hold the debug output +if !exists('g:miniBufExplForceDisplay') + let g:miniBufExplForceDisplay = 0 +endif + +" Variable used to pass maxTabWidth info between functions +let s:maxTabWidth = 0 + +" Variable used to count debug output lines +let s:debugIndex = 0 + + +" }}} +" Setup an autocommand group and some autocommands {{{ +" that keep our explorer updated automatically. +" +augroup MiniBufExplorer +autocmd MiniBufExplorer BufDelete * call <SID>DEBUG('-=> BufDelete AutoCmd', 10) |call <SID>AutoUpdate(expand('<abuf>')) +autocmd MiniBufExplorer BufEnter * call <SID>DEBUG('-=> BufEnter AutoCmd', 10) |call <SID>AutoUpdate(-1) +autocmd MiniBufExplorer VimEnter * call <SID>DEBUG('-=> VimEnter AutoCmd', 10) |let g:miniBufExplorerAutoUpdate = 1 |call <SID>AutoUpdate(-1) +" }}} + +" Functions +" +" StartExplorer - Sets up our explorer and causes it to be displayed {{{ +" +function! <SID>StartExplorer(sticky, delBufNum) + call <SID>DEBUG('===========================',10) + call <SID>DEBUG('Entering StartExplorer()' ,10) + call <SID>DEBUG('===========================',10) + + if a:sticky == 1 + let g:miniBufExplorerAutoUpdate = 1 + endif + + " Store the current buffer + let l:curBuf = bufnr('%') + + " Prevent a report of our actions from showing up. + let l:save_rep = &report + let l:save_sc = &showcmd + let &report = 10000 + set noshowcmd + + call <SID>FindCreateWindow('-MiniBufExplorer-', -1, 1, 1) + + " Make sure we are in our window + if bufname('%') != '-MiniBufExplorer-' + call <SID>DEBUG('StartExplorer called in invalid window',1) + let &report = l:save_rep + let &showcmd = l:save_sc + return + endif + + " !!! We may want to make the following optional -- Bindu + " New windows don't cause all windows to be resized to equal sizes + set noequalalways + " !!! We may want to make the following optional -- Bindu + " We don't want the mouse to change focus without a click + set nomousefocus + + " If folks turn numbering and columns on by default we will turn + " them off for the MBE window + setlocal foldcolumn=0 + setlocal nonumber + + if has("syntax") + syn clear + syn match MBENormal '\[[^\]]*\]' + syn match MBEChanged '\[[^\]]*\]+' + syn match MBEVisibleNormal '\[[^\]]*\]\*+\=' + syn match MBEVisibleChanged '\[[^\]]*\]\*+' + + if !exists("g:did_minibufexplorer_syntax_inits") + let g:did_minibufexplorer_syntax_inits = 1 + hi def link MBENormal Comment + hi def link MBEChanged String + hi def link MBEVisibleNormal Special + hi def link MBEVisibleChanged Special + endif + endif + + " If you press return in the -MiniBufExplorer- then try + " to open the selected buffer in the previous window. + nnoremap <buffer> <CR> :call <SID>MBESelectBuffer()<CR>:<BS> + " If you DoubleClick in the -MiniBufExplorer- then try + " to open the selected buffer in the previous window. + nnoremap <buffer> <2-LEFTMOUSE> :call <SID>MBEDoubleClick()<CR>:<BS> + " If you press d in the -MiniBufExplorer- then try to + " delete the selected buffer. + nnoremap <buffer> d :call <SID>MBEDeleteBuffer()<CR>:<BS> + " If you press w in the -MiniBufExplorer- then switch back + " to the previous window. + nnoremap <buffer> p :wincmd p<CR>:<BS> + " The following allow us to use regular movement keys to + " scroll in a wrapped single line buffer + nnoremap <buffer> j gj + nnoremap <buffer> k gk + nnoremap <buffer> <down> gj + nnoremap <buffer> <up> gk + " The following allows for quicker moving between buffer + " names in the [MBE] window it also saves the last-pattern + " and restores it. + nnoremap <buffer> <TAB> :call search('\[[0-9]*:[^\]]*\]')<CR>:<BS> + nnoremap <buffer> <S-TAB> :call search('\[[0-9]*:[^\]]*\]','b')<CR>:<BS> + + call <SID>DisplayBuffers(a:delBufNum) + + if (l:curBuf != -1) + call search('\['.l:curBuf.':'.expand('#'.l:curBuf.':t').'\]') + else + call <SID>DEBUG('No current buffer to search for',9) + endif + + let &report = l:save_rep + let &showcmd = l:save_sc + + call <SID>DEBUG('===========================',10) + call <SID>DEBUG('Completed StartExplorer()' ,10) + call <SID>DEBUG('===========================',10) + +endfunction + +" }}} +" StopExplorer - Looks for our explorer and closes the window if it is open {{{ +" +function! <SID>StopExplorer(sticky) + call <SID>DEBUG('===========================',10) + call <SID>DEBUG('Entering StopExplorer()' ,10) + call <SID>DEBUG('===========================',10) + + if a:sticky == 1 + let g:miniBufExplorerAutoUpdate = 0 + endif + + let l:winNum = <SID>FindWindow('-MiniBufExplorer-', 1) + + if l:winNum != -1 + exec l:winNum.' wincmd w' + silent! close + wincmd p + endif + + call <SID>DEBUG('===========================',10) + call <SID>DEBUG('Completed StopExplorer()' ,10) + call <SID>DEBUG('===========================',10) + +endfunction + +" }}} +" ToggleExplorer - Looks for our explorer and opens/closes the window {{{ +" +function! <SID>ToggleExplorer() + call <SID>DEBUG('===========================',10) + call <SID>DEBUG('Entering ToggleExplorer()' ,10) + call <SID>DEBUG('===========================',10) + + let g:miniBufExplorerAutoUpdate = 0 + + let l:winNum = <SID>FindWindow('-MiniBufExplorer-', 1) + + if l:winNum != -1 + call <SID>StopExplorer(1) + else + call <SID>StartExplorer(1, -1) + wincmd p + endif + + call <SID>DEBUG('===========================',10) + call <SID>DEBUG('Completed ToggleExplorer()' ,10) + call <SID>DEBUG('===========================',10) + +endfunction + +" }}} +" FindWindow - Return the window number of a named buffer {{{ +" If none is found then returns -1. +" +function! <SID>FindWindow(bufName, doDebug) + if a:doDebug + call <SID>DEBUG('Entering FindWindow()',10) + endif + + " Try to find an existing window that contains + " our buffer. + let l:bufNum = bufnr(a:bufName) + if l:bufNum != -1 + if a:doDebug + call <SID>DEBUG('Found buffer ('.a:bufName.'): '.l:bufNum,9) + endif + let l:winNum = bufwinnr(l:bufNum) + else + let l:winNum = -1 + endif + + return l:winNum + +endfunction + +" }}} +" FindCreateWindow - Attempts to find a window for a named buffer. {{{ +" +" If it is found then moves there. Otherwise creates a new window and +" configures it and moves there. +" +" forceEdge, -1 use defaults, 0 below, 1 above +" isExplorer, 0 no, 1 yes +" doDebug, 0 no, 1 yes +" +function! <SID>FindCreateWindow(bufName, forceEdge, isExplorer, doDebug) + if a:doDebug + call <SID>DEBUG('Entering FindCreateWindow('.a:bufName.')',10) + endif + + " Save the user's split setting. + let l:saveSplitBelow = &splitbelow + + " Set to our new values. + let &splitbelow = g:miniBufExplSplitBelow + + " Try to find an existing explorer window + let l:winNum = <SID>FindWindow(a:bufName, a:doDebug) + + " If found goto the existing window, otherwise + " split open a new window. + if l:winNum != -1 + if a:doDebug + call <SID>DEBUG('Found window ('.a:bufName.'): '.l:winNum,9) + endif + exec l:winNum.' wincmd w' + let l:winFound = 1 + else + + if g:miniBufExplSplitToEdge == 1 || a:forceEdge >= 0 + + let l:edge = &splitbelow + if a:forceEdge >= 0 + let l:edge = a:forceEdge + endif + + if l:edge + if g:miniBufExplVSplit == 0 + exec 'bo sp '.a:bufName + else + exec 'bo vsp '.a:bufName + endif + else + if g:miniBufExplVSplit == 0 + exec 'to sp '.a:bufName + else + exec 'to vsp '.a:bufName + endif + endif + else + if g:miniBufExplVSplit == 0 + exec 'sp '.a:bufName + else + " &splitbelow doesn't affect vertical splits + " so we have to do this explicitly.. ugh. + if &splitbelow + exec 'rightb vsp '.a:bufName + else + exec 'vsp '.a:bufName + endif + endif + endif + + let g:miniBufExplForceDisplay = 1 + + " Try to find an existing explorer window + let l:winNum = <SID>FindWindow(a:bufName, a:doDebug) + if l:winNum != -1 + if a:doDebug + call <SID>DEBUG('Created and then found window ('.a:bufName.'): '.l:winNum,9) + endif + exec l:winNum.' wincmd w' + else + if a:doDebug + call <SID>DEBUG('FindCreateWindow failed to create window ('.a:bufName.').',1) + endif + return + endif + + if a:isExplorer + " Turn off the swapfile, set the buffer type so that it won't get written, + " and so that it will get deleted when it gets hidden and turn on word wrap. + setlocal noswapfile + setlocal buftype=nofile + setlocal bufhidden=delete + if g:miniBufExplVSplit == 0 + setlocal wrap + else + setlocal nowrap + exec('setlocal winwidth='.g:miniBufExplMinSize) + endif + endif + + if a:doDebug + call <SID>DEBUG('Window ('.a:bufName.') created: '.winnr(),9) + endif + + endif + + " Restore the user's split setting. + let &splitbelow = l:saveSplitBelow + +endfunction + +" }}} +" DisplayBuffers - Wrapper for getting MBE window shown {{{ +" +" Makes sure we are in our explorer, then erases the current buffer and turns +" it into a mini buffer explorer window. +" +function! <SID>DisplayBuffers(delBufNum) + call <SID>DEBUG('Entering DisplayBuffers()',10) + + " Make sure we are in our window + if bufname('%') != '-MiniBufExplorer-' + call <SID>DEBUG('DisplayBuffers called in invalid window',1) + return + endif + + " We need to be able to modify the buffer + setlocal modifiable + + call <SID>ShowBuffers(a:delBufNum) + call <SID>ResizeWindow() + + normal! zz + + " Prevent the buffer from being modified. + setlocal nomodifiable + set nobuflisted + +endfunction + +" }}} +" Resize Window - Set width/height of MBE window {{{ +" +" Makes sure we are in our explorer, then sets the height/width for our explorer +" window so that we can fit all of our information without taking extra lines. +" +function! <SID>ResizeWindow() + call <SID>DEBUG('Entering ResizeWindow()',10) + + " Make sure we are in our window + if bufname('%') != '-MiniBufExplorer-' + call <SID>DEBUG('ResizeWindow called in invalid window',1) + return + endif + + let l:width = winwidth('.') + + " Horizontal Resize + if g:miniBufExplVSplit == 0 + + if g:miniBufExplTabWrap == 0 + let l:length = strlen(getline('.')) + let l:height = 0 + if (l:width == 0) + let l:height = winheight('.') + else + let l:height = (l:length / l:width) + " handle truncation from div + if (l:length % l:width) != 0 + let l:height = l:height + 1 + endif + endif + else + exec("setlocal textwidth=".l:width) + normal gg + normal gq} + normal G + let l:height = line('.') + normal gg + endif + + " enforce max window height + if g:miniBufExplMaxSize != 0 + if g:miniBufExplMaxSize < l:height + let l:height = g:miniBufExplMaxSize + endif + endif + + " enfore min window height + if l:height < g:miniBufExplMinSize || l:height == 0 + let l:height = g:miniBufExplMinSize + endif + + call <SID>DEBUG('ResizeWindow to '.l:height.' lines',9) + + exec('resize '.l:height) + + " Vertical Resize + else + + if g:miniBufExplMaxSize != 0 + let l:newWidth = s:maxTabWidth + if l:newWidth > g:miniBufExplMaxSize + let l:newWidth = g:miniBufExplMaxSize + endif + if l:newWidth < g:miniBufExplMinSize + let l:newWidth = g:miniBufExplMinSize + endif + else + let l:newWidth = g:miniBufExplVSplit + endif + + if l:width != l:newWidth + call <SID>DEBUG('ResizeWindow to '.l:newWidth.' columns',9) + exec('vertical resize '.l:newWidth) + endif + + endif + +endfunction + +" }}} +" ShowBuffers - Clear current buffer and put the MBE text into it {{{ +" +" Makes sure we are in our explorer, then adds a list of all modifiable +" buffers to the current buffer. Special marks are added for buffers that +" are in one or more windows (*) and buffers that have been modified (+) +" +function! <SID>ShowBuffers(delBufNum) + call <SID>DEBUG('Entering ShowBuffers()',10) + + let l:ListChanged = <SID>BuildBufferList(a:delBufNum, 1) + + if (l:ListChanged == 1 || g:miniBufExplForceDisplay) + let l:save_rep = &report + let l:save_sc = &showcmd + let &report = 10000 + set noshowcmd + + " Delete all lines in buffer. + 1,$d _ + + " Goto the end of the buffer put the buffer list + " and then delete the extra trailing blank line + $ + put! =g:miniBufExplBufList + $ d _ + + let g:miniBufExplForceDisplay = 0 + + let &report = l:save_rep + let &showcmd = l:save_sc + else + call <SID>DEBUG('Buffer list not update since there was no change',9) + endif + +endfunction + +" }}} +" Max - Returns the max of two numbers {{{ +" +function! <SID>Max(argOne, argTwo) + if a:argOne > a:argTwo + return a:argOne + else + return a:argTwo + endif +endfunction + +" }}} +" BuildBufferList - Build the text for the MBE window {{{ +" +" Creates the buffer list string and returns 1 if it is different than +" last time this was called and 0 otherwise. +" +function! <SID>BuildBufferList(delBufNum, updateBufList) + call <SID>DEBUG('Entering BuildBufferList()',10) + + let l:NBuffers = bufnr('$') " Get the number of the last buffer. + let l:i = 0 " Set the buffer index to zero. + + let l:fileNames = '' + let l:maxTabWidth = 0 + + " Loop through every buffer less than the total number of buffers. + while(l:i <= l:NBuffers) + let l:i = l:i + 1 + + " If we have a delBufNum and it is the current + " buffer then ignore the current buffer. + " Otherwise, continue. + if (a:delBufNum == -1 || l:i != a:delBufNum) + " Make sure the buffer in question is listed. + if(getbufvar(l:i, '&buflisted') == 1) + " Get the name of the buffer. + let l:BufName = bufname(l:i) + " Check to see if the buffer is a blank or not. If the buffer does have + " a name, process it. + if(strlen(l:BufName)) + " Only show modifiable buffers (The idea is that we don't + " want to show Explorers) + if (getbufvar(l:i, '&modifiable') == 1 && BufName != '-MiniBufExplorer-') + + " Get filename & Remove []'s & ()'s + let l:shortBufName = fnamemodify(l:BufName, ":t") + let l:shortBufName = substitute(l:shortBufName, '[][()]', '', 'g') + let l:tab = '['.l:i.':'.l:shortBufName.']' + + " If the buffer is open in a window mark it + if bufwinnr(l:i) != -1 + let l:tab = l:tab . '*' + endif + + " If the buffer is modified then mark it + if(getbufvar(l:i, '&modified') == 1) + let l:tab = l:tab . '+' + endif + + let l:maxTabWidth = <SID>Max(strlen(l:tab), l:maxTabWidth) + let l:fileNames = l:fileNames.l:tab + + " If horizontal and tab wrap is turned on we need to add spaces + if g:miniBufExplVSplit == 0 + if g:miniBufExplTabWrap != 0 + let l:fileNames = l:fileNames.' ' + endif + " If not horizontal we need a newline + else + let l:fileNames = l:fileNames . "\n" + endif + endif + endif + endif + endif + endwhile + + if (g:miniBufExplBufList != l:fileNames) + if (a:updateBufList) + let g:miniBufExplBufList = l:fileNames + let s:maxTabWidth = l:maxTabWidth + endif + return 1 + else + return 0 + endif + +endfunction + +" }}} +" HasEligibleBuffers - Are there enough MBE eligible buffers to open the MBE window? {{{ +" +" Returns 1 if there are any buffers that can be displayed in a +" mini buffer explorer. Otherwise returns 0. If delBufNum is +" any non -1 value then don't include that buffer in the list +" of eligible buffers. +" +function! <SID>HasEligibleBuffers(delBufNum) + call <SID>DEBUG('Entering HasEligibleBuffers()',10) + + let l:save_rep = &report + let l:save_sc = &showcmd + let &report = 10000 + set noshowcmd + + let l:NBuffers = bufnr('$') " Get the number of the last buffer. + let l:i = 0 " Set the buffer index to zero. + let l:found = 0 " No buffer found + + if (g:miniBufExplorerMoreThanOne > 1) + call <SID>DEBUG('More Than One mode turned on',6) + endif + let l:needed = g:miniBufExplorerMoreThanOne + + " Loop through every buffer less than the total number of buffers. + while(l:i <= l:NBuffers && l:found < l:needed) + let l:i = l:i + 1 + + " If we have a delBufNum and it is the current + " buffer then ignore the current buffer. + " Otherwise, continue. + if (a:delBufNum == -1 || l:i != a:delBufNum) + " Make sure the buffer in question is listed. + if (getbufvar(l:i, '&buflisted') == 1) + " Get the name of the buffer. + let l:BufName = bufname(l:i) + " Check to see if the buffer is a blank or not. If the buffer does have + " a name, process it. + if (strlen(l:BufName)) + " Only show modifiable buffers (The idea is that we don't + " want to show Explorers) + if ((getbufvar(l:i, '&modifiable') == 1) && (BufName != '-MiniBufExplorer-')) + + let l:found = l:found + 1 + + endif + endif + endif + endif + endwhile + + let &report = l:save_rep + let &showcmd = l:save_sc + + call <SID>DEBUG('HasEligibleBuffers found '.l:found.' eligible buffers of '.l:needed.' needed',6) + + return (l:found >= l:needed) + +endfunction + +" }}} +" Auto Update - Function called by auto commands for auto updating the MBE {{{ +" +" IF auto update is turned on AND +" we are in a real buffer AND +" we have enough eligible buffers THEN +" Update our explorer and get back to the current window +" +" If we get a buffer number for a buffer that +" is being deleted, we need to make sure and +" remove the buffer from the list of eligible +" buffers in case we are down to one eligible +" buffer, in which case we will want to close +" the MBE window. +" +function! <SID>AutoUpdate(delBufNum) + call <SID>DEBUG('===========================',10) + call <SID>DEBUG('Entering AutoUpdate('.a:delBufNum.') : '.bufnr('%').' : '.bufname('%'),10) + call <SID>DEBUG('===========================',10) + + if (g:miniBufExplInAutoUpdate == 1) + call <SID>DEBUG('AutoUpdate recursion stopped',9) + call <SID>DEBUG('===========================',10) + call <SID>DEBUG('Terminated AutoUpdate()' ,10) + call <SID>DEBUG('===========================',10) + return + else + let g:miniBufExplInAutoUpdate = 1 + endif + + " Don't bother autoupdating the MBE window + if (bufname('%') == '-MiniBufExplorer-') + " If this is the only buffer left then toggle the buffer + if (winbufnr(2) == -1) + call <SID>CycleBuffer(1) + call <SID>DEBUG('AutoUpdate does not run for cycled windows', 9) + else + call <SID>DEBUG('AutoUpdate does not run for the MBE window', 9) + endif + + call <SID>DEBUG('===========================',10) + call <SID>DEBUG('Terminated AutoUpdate()' ,10) + call <SID>DEBUG('===========================',10) + + let g:miniBufExplInAutoUpdate = 0 + return + + endif + + if (a:delBufNum != -1) + call <SID>DEBUG('AutoUpdate will make sure that buffer '.a:delBufNum.' is not included in the buffer list.', 5) + endif + + " Only allow updates when the AutoUpdate flag is set + " this allows us to stop updates on startup. + if g:miniBufExplorerAutoUpdate == 1 + " Only show MiniBufExplorer if we have a real buffer + if ((g:miniBufExplorerMoreThanOne == 0) || (bufnr('%') != -1 && bufname('%') != "")) + if <SID>HasEligibleBuffers(a:delBufNum) == 1 + " if we don't have a window then create one + let l:bufnr = <SID>FindWindow('-MiniBufExplorer-', 0) + if (l:bufnr == -1) + call <SID>DEBUG('About to call StartExplorer (Create MBE)', 9) + call <SID>StartExplorer(0, a:delBufNum) + else + " otherwise only update the window if the contents have + " changed + let l:ListChanged = <SID>BuildBufferList(a:delBufNum, 0) + if (l:ListChanged) + call <SID>DEBUG('About to call StartExplorer (Update MBE)', 9) + call <SID>StartExplorer(0, a:delBufNum) + endif + endif + + " go back to the working buffer + if (bufname('%') == '-MiniBufExplorer-') + wincmd p + endif + else + call <SID>DEBUG('Failed in eligible check', 9) + call <SID>StopExplorer(0) + endif + + " VIM sometimes turns syntax highlighting off, + " we can force it on, but this may cause weird + " behavior so this is an optional hack to force + " syntax back on when we enter a buffer + if g:miniBufExplForceSyntaxEnable + call <SID>DEBUG('Enable Syntax', 9) + exec 'syntax enable' + endif + + else + call <SID>DEBUG('No buffers loaded...',9) + endif + else + call <SID>DEBUG('AutoUpdates are turned off, terminating',9) + endif + + call <SID>DEBUG('===========================',10) + call <SID>DEBUG('Completed AutoUpdate()' ,10) + call <SID>DEBUG('===========================',10) + + let g:miniBufExplInAutoUpdate = 0 + +endfunction + +" }}} +" GetSelectedBuffer - From the MBE window, return the bufnum for buf under cursor {{{ +" +" If we are in our explorer window then return the buffer number +" for the buffer under the cursor. +" +function! <SID>GetSelectedBuffer() + call <SID>DEBUG('Entering GetSelectedBuffer()',10) + + " Make sure we are in our window + if bufname('%') != '-MiniBufExplorer-' + call <SID>DEBUG('GetSelectedBuffer called in invalid window',1) + return -1 + endif + + let l:save_reg = @" + let @" = "" + normal ""yi[ + if @" != "" + let l:retv = substitute(@",'\([0-9]*\):.*', '\1', '') + 0 + let @" = l:save_reg + return l:retv + else + let @" = l:save_reg + return -1 + endif + +endfunction + +" }}} +" MBESelectBuffer - From the MBE window, open buffer under the cursor {{{ +" +" If we are in our explorer, then we attempt to open the buffer under the +" cursor in the previous window. +" +function! <SID>MBESelectBuffer() + call <SID>DEBUG('===========================',10) + call <SID>DEBUG('Entering MBESelectBuffer()' ,10) + call <SID>DEBUG('===========================',10) + + " Make sure we are in our window + if bufname('%') != '-MiniBufExplorer-' + call <SID>DEBUG('MBESelectBuffer called in invalid window',1) + return + endif + + let l:save_rep = &report + let l:save_sc = &showcmd + let &report = 10000 + set noshowcmd + + let l:bufnr = <SID>GetSelectedBuffer() + let l:resize = 0 + + if(l:bufnr != -1) " If the buffer exists. + + let l:saveAutoUpdate = g:miniBufExplorerAutoUpdate + let g:miniBufExplorerAutoUpdate = 0 + " Switch to the previous window + wincmd p + + " If we are in the buffer explorer or in a nonmodifiable buffer with + " g:miniBufExplModSelTarget set then try another window (a few times) + if bufname('%') == '-MiniBufExplorer-' || (g:miniBufExplModSelTarget == 1 && getbufvar(bufnr('%'), '&modifiable') == 0) + wincmd w + if bufname('%') == '-MiniBufExplorer-' || (g:miniBufExplModSelTarget == 1 && getbufvar(bufnr('%'), '&modifiable') == 0) + wincmd w + if bufname('%') == '-MiniBufExplorer-' || (g:miniBufExplModSelTarget == 1 && getbufvar(bufnr('%'), '&modifiable') == 0) + wincmd w + " The following handles the case where -MiniBufExplorer- + " is the only window left. We need to resize so we don't + " end up with a 1 or two line buffer. + if bufname('%') == '-MiniBufExplorer-' + let l:resize = 1 + endif + endif + endif + endif + + exec('b! '.l:bufnr) + if (l:resize) + resize + endif + let g:miniBufExplorerAutoUpdate = l:saveAutoUpdate + call <SID>AutoUpdate(-1) + + endif + + let &report = l:save_rep + let &showcmd = l:save_sc + + call <SID>DEBUG('===========================',10) + call <SID>DEBUG('Completed MBESelectBuffer()',10) + call <SID>DEBUG('===========================',10) + +endfunction + +" }}} +" MBEDeleteBuffer - From the MBE window, delete selected buffer from list {{{ +" +" After making sure that we are in our explorer, This will delete the buffer +" under the cursor. If the buffer under the cursor is being displayed in a +" window, this routine will attempt to get different buffers into the +" windows that will be affected so that windows don't get removed. +" +function! <SID>MBEDeleteBuffer() + call <SID>DEBUG('===========================',10) + call <SID>DEBUG('Entering MBEDeleteBuffer()' ,10) + call <SID>DEBUG('===========================',10) + + " Make sure we are in our window + if bufname('%') != '-MiniBufExplorer-' + call <SID>DEBUG('MBEDeleteBuffer called in invalid window',1) + return + endif + + let l:curLine = line('.') + let l:curCol = virtcol('.') + let l:selBuf = <SID>GetSelectedBuffer() + let l:selBufName = bufname(l:selBuf) + + if l:selBufName == 'MiniBufExplorer.DBG' && g:miniBufExplorerDebugLevel > 0 + call <SID>DEBUG('MBEDeleteBuffer will not delete the debug window, when debugging is turned on.',1) + return + endif + + let l:save_rep = &report + let l:save_sc = &showcmd + let &report = 10000 + set noshowcmd + + + if l:selBuf != -1 + + " Don't want auto updates while we are processing a delete + " request. + let l:saveAutoUpdate = g:miniBufExplorerAutoUpdate + let g:miniBufExplorerAutoUpdate = 0 + + " Save previous window so that if we show a buffer after + " deleting. The show will come up in the correct window. + wincmd p + let l:prevWin = winnr() + let l:prevWinBuf = winbufnr(winnr()) + + call <SID>DEBUG('Previous window: '.l:prevWin.' buffer in window: '.l:prevWinBuf,5) + call <SID>DEBUG('Selected buffer is <'.l:selBufName.'>['.l:selBuf.']',5) + + " If buffer is being displayed in a window then + " move window to a different buffer before + " deleting this one. + let l:winNum = (bufwinnr(l:selBufName) + 0) + " while we have windows that contain our buffer + while l:winNum != -1 + call <SID>DEBUG('Buffer '.l:selBuf.' is being displayed in window: '.l:winNum,5) + + " move to window that contains our selected buffer + exec l:winNum.' wincmd w' + + call <SID>DEBUG('We are now in window: '.winnr().' which contains buffer: '.bufnr('%').' and should contain buffer: '.l:selBuf,5) + + let l:origBuf = bufnr('%') + call <SID>CycleBuffer(1) + let l:curBuf = bufnr('%') + + call <SID>DEBUG('Window now contains buffer: '.bufnr('%').' which should not be: '.l:selBuf,5) + + if l:origBuf == l:curBuf + " we wrapped so we are going to have to delete a buffer + " that is in an open window. + let l:winNum = -1 + else + " see if we have anymore windows with our selected buffer + let l:winNum = (bufwinnr(l:selBufName) + 0) + endif + endwhile + + " Attempt to restore previous window + call <SID>DEBUG('Restoring previous window to: '.l:prevWin,5) + exec l:prevWin.' wincmd w' + + " Try to get back to the -MiniBufExplorer- window + let l:winNum = bufwinnr(bufnr('-MiniBufExplorer-')) + if l:winNum != -1 + exec l:winNum.' wincmd w' + call <SID>DEBUG('Got to -MiniBufExplorer- window: '.winnr(),5) + else + call <SID>DEBUG('Unable to get to -MiniBufExplorer- window',1) + endif + + " Delete the buffer selected. + call <SID>DEBUG('About to delete buffer: '.l:selBuf,5) + exec('silent! bd '.l:selBuf) + + let g:miniBufExplorerAutoUpdate = l:saveAutoUpdate + call <SID>DisplayBuffers(-1) + call cursor(l:curLine, l:curCol) + + endif + + let &report = l:save_rep + let &showcmd = l:save_sc + + call <SID>DEBUG('===========================',10) + call <SID>DEBUG('Completed MBEDeleteBuffer()',10) + call <SID>DEBUG('===========================',10) + +endfunction + +" }}} +" MBEClick - Handle mouse double click {{{ +" +function! s:MBEClick() + call <SID>DEBUG('Entering MBEClick()',10) + call <SID>MBESelectBuffer() +endfunction + +" +" MBEDoubleClick - Double click with the mouse. +" +function! s:MBEDoubleClick() + call <SID>DEBUG('Entering MBEDoubleClick()',10) + call <SID>MBESelectBuffer() +endfunction + +" }}} +" CycleBuffer - Cycle Through Buffers {{{ +" +" Move to next or previous buffer in the current window. If there +" are no more modifiable buffers then stay on the current buffer. +" can be called with no parameters in which case the buffers are +" cycled forward. Otherwise a single argument is accepted, if +" it's 0 then the buffers are cycled backwards, otherwise they +" are cycled forward. +" +function! <SID>CycleBuffer(forward) + + " The following hack handles the case where we only have one + " window open and it is too small + let l:saveAutoUpdate = g:miniBufExplorerAutoUpdate + if (winbufnr(2) == -1) + resize + let g:miniBufExplorerAutoUpdate = 0 + endif + + " Change buffer (keeping track of before and after buffers) + let l:origBuf = bufnr('%') + if (a:forward == 1) + bn! + else + bp! + endif + let l:curBuf = bufnr('%') + + " Skip any non-modifiable buffers, but don't cycle forever + " This should stop us from stopping in any of the [Explorers] + while getbufvar(l:curBuf, '&modifiable') == 0 && l:origBuf != l:curBuf + if (a:forward == 1) + bn! + else + bp! + endif + let l:curBuf = bufnr('%') + endwhile + + let g:miniBufExplorerAutoUpdate = l:saveAutoUpdate + if (l:saveAutoUpdate == 1) + call <SID>AutoUpdate(-1) + endif + +endfunction + +" }}} +" DEBUG - Display debug output when debugging is turned on {{{ +" +" Thanks to Charles E. Campbell, Jr. PhD <cec@NgrOyphSon.gPsfAc.nMasa.gov> +" for Decho.vim which was the inspiration for this enhanced debugging +" capability. +" +function! <SID>DEBUG(msg, level) + + if g:miniBufExplorerDebugLevel >= a:level + + " Prevent a report of our actions from showing up. + let l:save_rep = &report + let l:save_sc = &showcmd + let &report = 10000 + set noshowcmd + + " Debug output to a buffer + if g:miniBufExplorerDebugMode == 0 + " Save the current window number so we can come back here + let l:prevWin = winnr() + wincmd p + let l:prevPrevWin = winnr() + wincmd p + + " Get into the debug window or create it if needed + call <SID>FindCreateWindow('MiniBufExplorer.DBG', 1, 0, 0) + + " Make sure we really got to our window, if not we + " will display a confirm dialog and turn debugging + " off so that we won't break things even more. + if bufname('%') != 'MiniBufExplorer.DBG' + call confirm('Error in window debugging code. Dissabling MiniBufExplorer debugging.', 'OK') + let g:miniBufExplorerDebugLevel = 0 + endif + + " Write Message to DBG buffer + let res=append("$",s:debugIndex.':'.a:level.':'.a:msg) + norm G + "set nomodified + + " Return to original window + exec l:prevPrevWin.' wincmd w' + exec l:prevWin.' wincmd w' + " Debug output using VIM's echo facility + elseif g:miniBufExplorerDebugMode == 1 + echo s:debugIndex.':'.a:level.':'.a:msg + " Debug output to a file -- VERY SLOW!!! + " should be OK on UNIX and Win32 (not the 95/98 variants) + elseif g:miniBufExplorerDebugMode == 2 + if has('system') || has('fork') + if has('win32') && !has('win95') + let l:result = system("cmd /c 'echo ".s:debugIndex.':'.a:level.':'.a:msg." >> MiniBufExplorer.DBG'") + endif + if has('unix') + let l:result = system("echo '".s:debugIndex.':'.a:level.':'.a:msg." >> MiniBufExplorer.DBG'") + endif + else + call confirm('Error in file writing version of the debugging code, vim not compiled with system or fork. Dissabling MiniBufExplorer debugging.', 'OK') + let g:miniBufExplorerDebugLevel = 0 + endif + elseif g:miniBufExplorerDebugMode == 3 + let g:miniBufExplorerDebugOutput = g:miniBufExplorerDebugOutput."\n".s:debugIndex.':'.a:level.':'.a:msg + endif + let s:debugIndex = s:debugIndex + 1 + + let &report = l:save_rep + let &showcmd = l:save_sc + + endif + +endfunc " }}} + +" MBE Script History {{{ +"============================================================================= +" +" History: 6.3.2 o For some reason there was still a call to StopExplorer +" with 2 params. Very old bug. I know I fixed before, +" any way many thanks to Jason Mills for reporting this! +" 6.3.1 o Include folds in source so that it's easier to +" navigate. +" o Added g:miniBufExplForceSyntaxEnable setting for folks +" that want a :syntax enable to be called when we enter +" buffers. This can resolve issues caused by a vim bug +" where buffers show up without highlighting when another +" buffer has been closed, quit, wiped or deleted. +" 6.3.0 o Added an option to allow single click (rather than +" the default double click) to select buffers in the +" MBE window. This feature was requested by AW Law +" and was inspired by taglist.vim. Note that you will +" need the latest version of taglist.vim if you want to +" use MBE and taglist both with singleclick turned on. +" Also thanks to AW Law for pointing out that you can +" make an Explorer not be listed in a standard :ls. +" o Added the ability to have your tabs show up in a +" vertical window rather than the standard horizontal +" one. Just let g:miniBufExplVSplit = <width> in your +" .vimrc and your will get this functionality. +" o If you use the vertical explorer and you want it to +" autosize then let g:miniBufExplMaxSize = <max width> +" in your .vimrc. You may use the MinSize letting in +" addition to the MaxLetting if you don't want a super +" thin window. +" o g:miniBufExplMaxHeight was renamed g:miniBufExplMaxSize +" g:miniBufExplMinHeight was renamed g:miniBufExplMinSize +" the old settings are backwards compatible if you don't +" use the new settings, but they are depreciated. +" 6.2.8 o Add an option to stop MBE from targeting non-modifiable +" buffers when switching buffers. Thanks to AW Law for +" the inspiration for this. This may not work if a user +" has lots of explorer/help windows open. +" 6.2.7 o Very minor bug fix for people who want to set +" loaded_minibufexplorer in their .vimrc in order to +" stop MBE from loading. 99.99% of users do not need +" this update. +" 6.2.6 o Moved history to end of source file +" o Updated highlighting documentation +" o Created global commands MBEbn and MBEbp that can be +" used in mappings if folks want to cycle buffers while +" skipping non-eligible buffers. +" 6.2.5 o Added <Leader>mbt key mapping which will toggle +" the MBE window. I map this to F3 in my .vimrc +" with "map <F3> :TMiniBufExplorer<CR>" which +" means I can easily close the MBE window when I'm +" not using it and get it back when I want it. +" o Changed default debug mode to 3 (write to global +" g:miniBufExplorerDebugOutput) +" o Made a pass through the documentation to clarify +" serveral issues and provide more complete docs +" for mappings and commands. +" 6.2.4 o Because of the autocommand switch (see 6.2.0) it +" was possible to remove the restriction on the +" :set hidden option. It is now possible to use +" this option with MBE. +" 6.2.3 o Added miniBufExplTabWrap option. It is turned +" off by default. When turned on spaces are added +" between tabs and gq} is issued to perform line +" formatting. This won't work very well if filenames +" contain spaces. It would be pretty easy to write +" my own formatter, but I'm too lazy, so if someone +" really needs that feature I'll add it :) +" 6.2.2 o Changed the way the g:miniBufExplorerMoreThanOne +" global is handled. You can set this to the number +" of eligible buffers you want to be loaded before +" the MBE window is loaded. Setting it to 0 causes +" the MBE window to be opened even if there are no +" buffers. Setting it to 4 causes the window to stay +" closed until the 4th eligible buffer is loaded. +" o Added a MinHeight option. This is nice if you want +" the MBE window to always take the same amount of +" space. For example set MaxSize and MinSize to 2 +" and set MoreThanOne to 0 and you will always have +" a 2 row (plus the ruler :) MBE window. +" NOTE: in 6.3.0 we started using MinSize instead of +" Minheight. This will still work if MinSize is not +" specified, but it is depreciated. Use MinSize instead. +" o I now setlocal foldcomun=0 and nonumber in the MBE +" window. This is for those of you that like to have +" these options turned on locally. I'm assuming noone +" outthere wants foldcolumns and line numbers in the +" MBE window? :) +" o Fixed a bug where an empty MBE window was taking half +" of the screen (partly why the MinHeight option was +" added.) +" 6.2.1 o If MBE is the only window (because of :bd for example) +" and there are still eligible buffers then one of them +" will be displayed. +" o The <Leader>mbe mapping now highlights the buffer from +" the current window. +" o The delete ('d') binding in the MBE window now restors +" the cursor position, which can help if you want to +" delete several buffers in a row that are not at the +" beginning of the buffer list. +" o Added a new key binding ('p') in the MBE window to +" switch to the previous window (last edit window) +" 6.2.0 o Major overhaul of autocommand and list updating code, +" we now have much better handling of :bd (which is the +" most requested feature.) As well as resolving other +" issues where the buffer list would not be updated +" automatically. The old version tried to trap specific +" events, this one just updates frequently, but it keeps +" track and only changes the screen if there has been +" a change. +" o Added g:miniBufExplMaxHeight variable so you can keep +" the -MiniBufExplorer- window small when you have lots +" of buffers (or buffers with long names :) +" NOTE: in 6.3.0 we started using MaxSize instead of +" MaxHeight. This will still work if MaxSize is not +" specified, but it is depreciated. Use MaxSize instead. +" o Improvement to internal syntax highlighting code +" I renamed the syntax group names. Anyone who has +" figured out how to use them already shouldn't have +" any trouble with the new Nameing :) +" o Added debug mode 3 which writes to a global variable +" this is fast and doesn't mess with the buffer/window +" lists. +" 6.1.0 o <Leader>mbc was failing because I was calling one of +" my own functions with the wrong number of args. :( +" Thanks to Gerry Patterson for finding this! +" This code is very stable (although it has some +" idiocyncracies.) +" 6.0.9 o Double clicking tabs was overwriting the cliboard +" register on MS Windows. Thanks to Shoeb Bhinderwala +" for reporting this issue. +" 6.0.8 o Apparently some VIM builds are having a hard time with +" line continuation in scripts so the few that were here +" have been removed. +" o Generalized FindExplorer and FindCreateExplorer so +" that they can be used for the debug window. Renaming +" to FindWindow and FindCreateWindow. +" o Updated debugging code so that debug output is put into +" a buffer which can then be written to disk or emailed +" to me when someone is having a major issue. Can also +" write directly to a file (VERY SLOWLY) on UNIX or Win32 +" (not 95 or 98 at the moment) or use VIM's echo function +" to display the output to the screen. +" o Several people have had issues when the hidden option +" is turned on. So I have put in several checks to make +" sure folks know this if they try to use MBE with this +" option set. +" 6.0.7 o Handling BufDelete autocmd so that the UI updates +" properly when using :bd (rather than going through +" the MBE UI.) +" o The AutoUpdate code will now close the MBE window when +" there is a single eligible buffer available. +" This has the usefull side effect of stopping the MBE +" window from blocking the VIM session open when you close +" the last buffer. +" o Added functions, commands and maps to close & update +" the MBE window (<leader>mbc and <leader>mbu.) +" o Made MBE open/close state be sticky if set through +" StartExplorer(1) or StopExplorer(1), which are +" called from the standard mappings. So if you close +" the mbe window with \mbc it won't be automatically +" opened again unless you do a \mbe (or restart VIM). +" o Removed spaces between "tabs" (even more mini :) +" o Simplified MBE tab processing +" 6.0.6 o Fixed register overwrite bug found by Sébastien Pierre +" 6.0.5 o Fixed an issue with window sizing when we run out of +" buffers. +" o Fixed some weird commenting bugs. +" o Added more optional fancy window/buffer navigation: +" o You can turn on the capability to use control and the +" arrow keys to move between windows. +" o You can turn on the ability to use <C-TAB> and +" <C-S-TAB> to open the next and previous (respectively) +" buffer in the current window. +" o You can turn on the ability to use <C-TAB> and +" <C-S-TAB> to switch windows (forward and backwards +" respectively.) +" 6.0.4 o Added optional fancy window navigation: +" o Holding down control and pressing a vim direction +" [hjkl] will switch windows in the indicated direction. +" 6.0.3 o Changed buffer name to -MiniBufExplorer- to resolve +" Issue in filename pattern matching on Windows. +" 6.0.2 o 2 Changes requested by Suresh Govindachar: +" o Added SplitToEdge option and set it on by default +" o Added tab and shift-tab mappings in [MBE] window +" 6.0.1 o Added MoreThanOne option and set it on by default +" MiniBufExplorer will not automatically open until +" more than one eligible buffers are opened. This +" reduces cluter when you are only working on a +" single file. +" NOTE: See change log for 6.2.2 for more details about +" this feature +" 6.0.0 o Initial Release on November 20, 2001 +" +"============================================================================= +" }}} +" vim:ft=vim:fdm=marker:ff=unix:nowrap:tabstop=4:shiftwidth=4:softtabstop=4:smarttab:shiftround:expandtab diff --git a/.vim/plugin/openssl.vim b/.vim/plugin/openssl.vim new file mode 100644 index 0000000..2e2db44 --- /dev/null +++ b/.vim/plugin/openssl.vim @@ -0,0 +1,201 @@ +" openssl.vim version 3.2 2008 Noah Spurrier <noah@noah.org> +" +" == Edit OpenSSL encrypted files and turn Vim into a Password Safe! == +" +" This plugin enables reading and writing of files encrypted using OpenSSL. +" The file must have the extension of one of the ciphers used by OpenSSL. For +" example: +" +" .des3 .aes .bf .bfa .idea .cast .rc2 .rc4 .rc5 (.bfa is base64 ASCII +" encoded blowfish.) +" +" This will turn off the swap file and the .viminfo log. The `openssl` command +" line tool must be in the path. +" +" == Install == +" +" Put this in your plugin directory and Vim will automatically load it: +" +" ~/.vim/plugin/openssl.vim +" +" You can start by editing an empty unencrypted file. Give it one of the +" extensions above. When you write the file you will be asked to give it a new +" password. +" +" == Simple Vim Password Safe == +" +" If you edit any file named '.auth.bfa' (that's the full name, not just the +" extension) then this plugin will add folding features and an automatic quit +" timeout. +" +" Vim will quit automatically after 5 minutes of no typing activity (unless +" the file has been changed). +" +" This plugin will fold on wiki-style headlines in the following format: +" +" == This is a headline == +" +" Any notes under the headline will be inside the fold until the next headline +" is reached. The SPACE key will toggle a fold open and closed. The q key will +" quit Vim. Create the following example file named ~/.auth.bfa: +" +" == Colo server == +" +" username: maryjane password: esydpm +" +" == Office server == +" +" username: peter password: 4m4z1ng +" +" Then create this bash alias: +" +" alias auth='view ~/.auth.bfa' +" +" Now you can view your password safe by typing 'auth'. When Vim starts all +" the password information will be hidden under the headlines. To view the +" password information put the cursor on the headline and press SPACE. When +" you write an encrypted file a backup will automatically be made. +" +" This plugin can also make a backup of an encrypted file before writing +" changes. This helps guard against the situation where you may edit a file +" and write changes with the wrong password. You can still go back to the +" previous backup version. The backup file will have the same name as the +" original file with .bak before the original extension. For example: +" +" .auth.bfa --> .auth.bak.bfa +" +" To turn on backups put the following global definition in your .vimrc file: +" +" let g:openssl_backup = 1 +" +" Thanks to Tom Purl for the original des3 tip. +" +" I release all copyright claims. This code is in the public domain. +" Permission is granted to use, copy modify, distribute, and sell this +" software for any purpose. I make no guarantee about the suitability of this +" software for any purpose and I am not liable for any damages resulting from +" its use. Further, I am under no obligation to maintain or extend this +" software. It is provided on an 'as is' basis without any expressed or +" implied warranty. +" +" $Id: openssl.vim 189 2008-01-28 20:44:44Z root $ + +augroup openssl_encrypted +if exists("openssl_encrypted_loaded") + finish +endif +let openssl_encrypted_loaded = 1 +autocmd! + +function! s:OpenSSLReadPre() + set cmdheight=3 + set viminfo= + set noswapfile + set shell=/bin/sh + set bin +endfunction + +function! s:OpenSSLReadPost() + let l:cipher = expand("%:e") + if l:cipher == "aes" + let l:cipher = "aes-256-cbc" + endif + if l:cipher == "bfa" + let l:cipher = "bf" + let l:expr = "0,$!openssl " . l:cipher . " -d -a -salt" + else + let l:expr = "0,$!openssl " . l:cipher . " -d -salt" + endif + + silent! execute l:expr + if v:shell_error + silent! 0,$y + silent! undo + echo "COULD NOT DECRYPT USING EXPRESSION: " . expr + echo "Note that your version of openssl may not have the given cipher engine built-in" + echo "even though the engine may be documented in the openssl man pages." + echo "ERROR FROM OPENSSL:" + echo @" + echo "COULD NOT DECRYPT" + return + endif + set nobin + set cmdheight& + set shell& + execute ":doautocmd BufReadPost ".expand("%:r") + redraw! +endfunction + +function! s:OpenSSLWritePre() + set cmdheight=3 + set shell=/bin/sh + set bin + + if !exists("g:openssl_backup") + let g:openssl_backup=0 + endif + if (g:openssl_backup) + silent! execute '!cp % %:r.bak.%:e' + endif + + let l:cipher = expand("<afile>:e") + if l:cipher == "aes" + let l:cipher = "aes-256-cbc" + endif + if l:cipher == "bfa" + let l:cipher = "bf" + let l:expr = "0,$!openssl " . l:cipher . " -e -a -salt" + else + let l:expr = "0,$!openssl " . l:cipher . " -e -salt" + endif + + silent! execute l:expr + if v:shell_error + silent! 0,$y + silent! undo + echo "COULD NOT ENCRYPT USING EXPRESSION: " . expr + echo "Note that your version of openssl may not have the given cipher engine built in" + echo "even though the engine may be documented in the openssl man pages." + echo "ERROR FROM OPENSSL:" + echo @" + echo "COULD NOT ENCRYPT" + return + endif +endfunction + +function! s:OpenSSLWritePost() + silent! undo + set nobin + set shell& + set cmdheight& + redraw! +endfunction + +autocmd BufReadPre,FileReadPre *.des3,*.des,*.bf,*.bfa,*.aes,*.idea,*.cast,*.rc2,*.rc4,*.rc5,*.desx call s:OpenSSLReadPre() +autocmd BufReadPost,FileReadPost *.des3,*.des,*.bf,*.bfa,*.aes,*.idea,*.cast,*.rc2,*.rc4,*.rc5,*.desx call s:OpenSSLReadPost() +autocmd BufWritePre,FileWritePre *.des3,*.des,*.bf,*.bfa,*.aes,*.idea,*.cast,*.rc2,*.rc4,*.rc5,*.desx call s:OpenSSLWritePre() +autocmd BufWritePost,FileWritePost *.des3,*.des,*.bf,*.bfa,*.aes,*.idea,*.cast,*.rc2,*.rc4,*.rc5,*.desx call s:OpenSSLWritePost() + +" The following implements a simple password safe for any file named +" '.auth.bfa'. The file is encrypted with Blowfish and base64 encoded. +" Folding is supported for == headlines == style lines. + +function! HeadlineDelimiterExpression(lnum) + if a:lnum == 1 + return ">1" + endif + return (getline(a:lnum)=~"^\\s*==.*==\\s*$") ? ">1" : "=" +endfunction +autocmd BufReadPost,FileReadPost .auth.bfa set foldexpr=HeadlineDelimiterExpression(v:lnum) +autocmd BufReadPost,FileReadPost .auth.bfa set foldlevel=0 +autocmd BufReadPost,FileReadPost .auth.bfa set foldcolumn=0 +autocmd BufReadPost,FileReadPost .auth.bfa set foldmethod=expr +autocmd BufReadPost,FileReadPost .auth.bfa set foldtext=getline(v:foldstart) +autocmd BufReadPost,FileReadPost .auth.bfa nnoremap <silent><space> :exe 'silent! normal! za'.(foldlevel('.')?'':'l')<CR> +autocmd BufReadPost,FileReadPost .auth.bfa nnoremap <silent>q :q<CR> +autocmd BufReadPost,FileReadPost .auth.bfa highlight Folded ctermbg=red ctermfg=black +autocmd BufReadPost,FileReadPost .auth.bfa set updatetime=300000 +autocmd CursorHold .auth.bfa quit + +augroup END + diff --git a/.vim/plugin/remoteOpen.vim b/.vim/plugin/remoteOpen.vim new file mode 100644 index 0000000..cb550ff --- /dev/null +++ b/.vim/plugin/remoteOpen.vim @@ -0,0 +1,163 @@ +" File: remoteOpen.vim +" Author: Srinath Avadhanula <srinath AT fastmail DOT fm> +" $Id: remoteOpen.vim 997 2006-03-20 09:45:45Z srinathava $ +" +" Description: +" Often times, an external program needs to open a file in gvim from the +" command line. However, it will not know if the file is already opened in a +" previous vim session. It is not sufficient to simply specify +" +" gvim --remote-silent <filename> +" +" because this simply opens up <filename> in the first remote gvim session it +" sees. This script provides a command RemoteOpen which is meant to be used +" from the command line as follows: +" +" gvim -c ":RemoteOpen +<lnum> <filename>" +" +" where <lnum> is the line-number you wish <filename> to open to. What will +" happen is that a new gvim will start up and enquire from all previous +" sessions if <filename> is already open in any of them. If it is, then it +" will edit the file in that session and bring it to the foreground and itself +" quit. Otherwise, it will not quit and instead open up the file for editing +" at <lnum>. +" +" This was mainly created to be used with Yap (the dvi previewer in miktex), +" so you can specify the program for "inverse search" as specified above. +" This ensures that the inverse search uses the correct gvim each time. +" +" Ofcourse, this requires vim with +clientserver. If not, then RemoteOpen just +" opens in the present session. + +" Enclose <args> in single quotes so it can be passed as a function argument. +com -nargs=1 RemoteOpen :call RemoteOpen('<args>') +com -nargs=? RemoteInsert :call RemoteInsert('<args>') + +" RemoteOpen: open a file remotely (if possible) {{{ +" Description: checks all open vim windows to see if this file has been opened +" anywhere and if so, opens it there instead of in this session. +function! RemoteOpen(arglist) + + " First construct line number and filename from argument. a:arglist is of + " the form: + " +10 c:\path\to\file + " or just + " c:\path\to\file + if a:arglist =~ '^\s*+\d\+' + let linenum = matchstr(a:arglist, '^\s*+\zs\d\+\ze') + let filename = matchstr(a:arglist, '^\s*+\d\+\s*\zs.*\ze') + else + let linenum = 1 + let filename = matchstr(a:arglist, '^\s*\zs.*\ze') + endif + let filename = escape(filename, ' ') + call Tex_Debug("linenum = ".linenum.', filename = '.filename, "ropen") + + " If there is no clientserver functionality, then just open in the present + " session and return + if !has('clientserver') + call Tex_Debug("-clientserver, opening locally and returning", "ropen") + exec "e ".filename + exec linenum + normal! zv + return + endif + + " Otherwise, loop through all available servers + let servers = serverlist() + " If there are no servers, open file locally. + if servers == '' + call Tex_Debug("no open servers, opening locally", "ropen") + exec "e ".filename + exec linenum + let g:Remote_Server = 1 + normal! zv + return + endif + + let i = 1 + let server = s:Strntok(servers, "\n", i) + let targetServer = v:servername + + while server != '' + " Find out if there was any server which was used by remoteOpen before + " this. If a new gvim session was ever started via remoteOpen, then + " g:Remote_Server will be set. + if remote_expr(server, 'exists("g:Remote_Server")') + let targetServer = server + endif + + " Ask each server if that file is being edited by them. + let bufnum = remote_expr(server, "bufnr('".filename."')") + " If it is... + if bufnum != -1 + " ask the server to edit that file and come to the foreground. + " set a variable g:Remote_Server to indicate that this server + " session has at least one file opened via RemoteOpen + let targetServer = server + break + end + + let i = i + 1 + let server = s:Strntok(servers, "\n", i) + endwhile + + " If none of the servers have the file open, then open this file in the + " first server. This has the advantage if yap tries to make vim open + " multiple vims, then at least they will all be opened by the same gvim + " server. + call remote_send(targetServer, + \ "\<C-\>\<C-n>". + \ ":let g:Remote_Server = 1\<CR>". + \ ":drop ".filename."\<CR>". + \ ":".linenum."\<CR>zv" + \ ) + call remote_foreground(targetServer) + " quit this vim session + if v:servername != targetServer + q + endif +endfunction " }}} +" RemoteInsert: inserts a \cite'ation remotely (if possible) {{{ +" Description: +function! RemoteInsert(...) + + let citation = matchstr(argv(0), "\\[InsText('.cite{\\zs.\\{-}\\ze}');\\]") + if citation == "" + q + endif + + " Otherwise, loop through all available servers + let servers = serverlist() + + let i = 1 + let server = s:Strntok(servers, "\n", i) + let targetServer = v:servername + + while server != '' + if remote_expr(server, 'exists("g:Remote_WaitingForCite")') + call remote_send(server, citation . "\<CR>") + call remote_foreground(server) + if v:servername != server + q + else + return + endif + endif + + let i = i + 1 + let server = s:Strntok(servers, "\n", i) + endwhile + + q + +endfunction " }}} +" Strntok: extract the n^th token from a list {{{ +" example: Strntok('1,23,3', ',', 2) = 23 +fun! <SID>Strntok(s, tok, n) + return matchstr( a:s.a:tok[0], '\v(\zs([^'.a:tok.']*)\ze['.a:tok.']){'.a:n.'}') +endfun + +" }}} + +" vim:ft=vim:ts=4:sw=4:noet:fdm=marker:commentstring=\"\ %s:nowrap diff --git a/.vim/plugin/taglist.vim b/.vim/plugin/taglist.vim new file mode 100644 index 0000000..59901f6 --- /dev/null +++ b/.vim/plugin/taglist.vim @@ -0,0 +1,4546 @@ +" File: taglist.vim +" Author: Yegappan Lakshmanan (yegappan AT yahoo DOT com) +" Version: 4.5 +" Last Modified: September 21, 2007 +" Copyright: Copyright (C) 2002-2007 Yegappan Lakshmanan +" Permission is hereby granted to use and distribute this code, +" with or without modifications, provided that this copyright +" notice is copied with it. Like anything else that's free, +" taglist.vim is provided *as is* and comes with no warranty of any +" kind, either expressed or implied. In no event will the copyright +" holder be liable for any damamges resulting from the use of this +" software. +" +" The "Tag List" plugin is a source code browser plugin for Vim and provides +" an overview of the structure of the programming language files and allows +" you to efficiently browse through source code files for different +" programming languages. You can visit the taglist plugin home page for more +" information: +" +" http://vim-taglist.sourceforge.net +" +" You can subscribe to the taglist mailing list to post your questions +" or suggestions for improvement or to report bugs. Visit the following +" page for subscribing to the mailing list: +" +" http://groups.yahoo.com/group/taglist/ +" +" For more information about using this plugin, after installing the +" taglist plugin, use the ":help taglist" command. +" +" Installation +" ------------ +" 1. Download the taglist.zip file and unzip the files to the $HOME/.vim +" or the $HOME/vimfiles or the $VIM/vimfiles directory. This should +" unzip the following two files (the directory structure should be +" preserved): +" +" plugin/taglist.vim - main taglist plugin file +" doc/taglist.txt - documentation (help) file +" +" Refer to the 'add-plugin', 'add-global-plugin' and 'runtimepath' +" Vim help pages for more details about installing Vim plugins. +" 2. Change to the $HOME/.vim/doc or $HOME/vimfiles/doc or +" $VIM/vimfiles/doc directory, start Vim and run the ":helptags ." +" command to process the taglist help file. +" 3. If the exuberant ctags utility is not present in your PATH, then set the +" Tlist_Ctags_Cmd variable to point to the location of the exuberant ctags +" utility (not to the directory) in the .vimrc file. +" 4. If you are running a terminal/console version of Vim and the +" terminal doesn't support changing the window width then set the +" 'Tlist_Inc_Winwidth' variable to 0 in the .vimrc file. +" 5. Restart Vim. +" 6. You can now use the ":TlistToggle" command to open/close the taglist +" window. You can use the ":help taglist" command to get more +" information about using the taglist plugin. +" +" ****************** Do not modify after this line ************************ + +" Line continuation used here +let s:cpo_save = &cpo +set cpo&vim + +if !exists('loaded_taglist') + " First time loading the taglist plugin + " + " To speed up the loading of Vim, the taglist plugin uses autoload + " mechanism to load the taglist functions. + " Only define the configuration variables, user commands and some + " auto-commands and finish sourcing the file + + " The taglist plugin requires the built-in Vim system() function. If this + " function is not available, then don't load the plugin. + if !exists('*system') + echomsg 'Taglist: Vim system() built-in function is not available. ' . + \ 'Plugin is not loaded.' + let loaded_taglist = 'no' + let &cpo = s:cpo_save + finish + endif + + " Location of the exuberant ctags tool + if !exists('Tlist_Ctags_Cmd') + if executable('exuberant-ctags') + " On Debian Linux, exuberant ctags is installed + " as exuberant-ctags + let Tlist_Ctags_Cmd = 'exuberant-ctags' + elseif executable('exctags') + " On Free-BSD, exuberant ctags is installed as exctags + let Tlist_Ctags_Cmd = 'exctags' + elseif executable('ctags') + let Tlist_Ctags_Cmd = 'ctags' + elseif executable('ctags.exe') + let Tlist_Ctags_Cmd = 'ctags.exe' + elseif executable('tags') + let Tlist_Ctags_Cmd = 'tags' + else + echomsg 'Taglist: Exuberant ctags (http://ctags.sf.net) ' . + \ 'not found in PATH. Plugin is not loaded.' + " Skip loading the plugin + let loaded_taglist = 'no' + let &cpo = s:cpo_save + finish + endif + endif + + + " Automatically open the taglist window on Vim startup + if !exists('Tlist_Auto_Open') + let Tlist_Auto_Open = 0 + endif + + " When the taglist window is toggle opened, move the cursor to the + " taglist window + if !exists('Tlist_GainFocus_On_ToggleOpen') + let Tlist_GainFocus_On_ToggleOpen = 0 + endif + + " Process files even when the taglist window is not open + if !exists('Tlist_Process_File_Always') + let Tlist_Process_File_Always = 0 + endif + + if !exists('Tlist_Show_Menu') + let Tlist_Show_Menu = 0 + endif + + " Tag listing sort type - 'name' or 'order' + if !exists('Tlist_Sort_Type') + let Tlist_Sort_Type = 'order' + endif + + " Tag listing window split (horizontal/vertical) control + if !exists('Tlist_Use_Horiz_Window') + let Tlist_Use_Horiz_Window = 0 + endif + + " Open the vertically split taglist window on the left or on the right + " side. This setting is relevant only if Tlist_Use_Horiz_Window is set to + " zero (i.e. only for vertically split windows) + if !exists('Tlist_Use_Right_Window') + let Tlist_Use_Right_Window = 0 + endif + + " Increase Vim window width to display vertically split taglist window. + " For MS-Windows version of Vim running in a MS-DOS window, this must be + " set to 0 otherwise the system may hang due to a Vim limitation. + if !exists('Tlist_Inc_Winwidth') + if (has('win16') || has('win95')) && !has('gui_running') + let Tlist_Inc_Winwidth = 0 + else + let Tlist_Inc_Winwidth = 1 + endif + endif + + " Vertically split taglist window width setting + if !exists('Tlist_WinWidth') + let Tlist_WinWidth = 30 + endif + + " Horizontally split taglist window height setting + if !exists('Tlist_WinHeight') + let Tlist_WinHeight = 10 + endif + + " Display tag prototypes or tag names in the taglist window + if !exists('Tlist_Display_Prototype') + let Tlist_Display_Prototype = 0 + endif + + " Display tag scopes in the taglist window + if !exists('Tlist_Display_Tag_Scope') + let Tlist_Display_Tag_Scope = 1 + endif + + " Use single left mouse click to jump to a tag. By default this is disabled. + " Only double click using the mouse will be processed. + if !exists('Tlist_Use_SingleClick') + let Tlist_Use_SingleClick = 0 + endif + + " Control whether additional help is displayed as part of the taglist or + " not. Also, controls whether empty lines are used to separate the tag + " tree. + if !exists('Tlist_Compact_Format') + let Tlist_Compact_Format = 0 + endif + + " Exit Vim if only the taglist window is currently open. By default, this is + " set to zero. + if !exists('Tlist_Exit_OnlyWindow') + let Tlist_Exit_OnlyWindow = 0 + endif + + " Automatically close the folds for the non-active files in the taglist + " window + if !exists('Tlist_File_Fold_Auto_Close') + let Tlist_File_Fold_Auto_Close = 0 + endif + + " Close the taglist window when a tag is selected + if !exists('Tlist_Close_On_Select') + let Tlist_Close_On_Select = 0 + endif + + " Automatically update the taglist window to display tags for newly + " edited files + if !exists('Tlist_Auto_Update') + let Tlist_Auto_Update = 1 + endif + + " Automatically highlight the current tag + if !exists('Tlist_Auto_Highlight_Tag') + let Tlist_Auto_Highlight_Tag = 1 + endif + + " Automatically highlight the current tag on entering a buffer + if !exists('Tlist_Highlight_Tag_On_BufEnter') + let Tlist_Highlight_Tag_On_BufEnter = 1 + endif + + " Enable fold column to display the folding for the tag tree + if !exists('Tlist_Enable_Fold_Column') + let Tlist_Enable_Fold_Column = 1 + endif + + " Display the tags for only one file in the taglist window + if !exists('Tlist_Show_One_File') + let Tlist_Show_One_File = 0 + endif + + if !exists('Tlist_Max_Submenu_Items') + let Tlist_Max_Submenu_Items = 20 + endif + + if !exists('Tlist_Max_Tag_Length') + let Tlist_Max_Tag_Length = 10 + endif + + " Do not change the name of the taglist title variable. The winmanager + " plugin relies on this name to determine the title for the taglist + " plugin. + let TagList_title = "__Tag_List__" + + " Taglist debug messages + let s:tlist_msg = '' + + " Define the taglist autocommand to automatically open the taglist window + " on Vim startup + if g:Tlist_Auto_Open + autocmd VimEnter * nested call s:Tlist_Window_Check_Auto_Open() + endif + + " Refresh the taglist + if g:Tlist_Process_File_Always + autocmd BufEnter * call s:Tlist_Refresh() + endif + + if g:Tlist_Show_Menu + autocmd GUIEnter * call s:Tlist_Menu_Init() + endif + + " When the taglist buffer is created when loading a Vim session file, + " the taglist buffer needs to be initialized. The BufFilePost event + " is used to handle this case. + autocmd BufFilePost __Tag_List__ call s:Tlist_Vim_Session_Load() + + " Define the user commands to manage the taglist window + command! -nargs=0 -bar TlistToggle call s:Tlist_Window_Toggle() + command! -nargs=0 -bar TlistOpen call s:Tlist_Window_Open() + " For backwards compatiblity define the Tlist command + command! -nargs=0 -bar Tlist TlistToggle + command! -nargs=+ -complete=file TlistAddFiles + \ call s:Tlist_Add_Files(<f-args>) + command! -nargs=+ -complete=dir TlistAddFilesRecursive + \ call s:Tlist_Add_Files_Recursive(<f-args>) + command! -nargs=0 -bar TlistClose call s:Tlist_Window_Close() + command! -nargs=0 -bar TlistUpdate call s:Tlist_Update_Current_File() + command! -nargs=0 -bar TlistHighlightTag call s:Tlist_Window_Highlight_Tag( + \ fnamemodify(bufname('%'), ':p'), line('.'), 2, 1) + " For backwards compatiblity define the TlistSync command + command! -nargs=0 -bar TlistSync TlistHighlightTag + command! -nargs=* -complete=buffer TlistShowPrototype + \ echo Tlist_Get_Tag_Prototype_By_Line(<f-args>) + command! -nargs=* -complete=buffer TlistShowTag + \ echo Tlist_Get_Tagname_By_Line(<f-args>) + command! -nargs=* -complete=file TlistSessionLoad + \ call s:Tlist_Session_Load(<q-args>) + command! -nargs=* -complete=file TlistSessionSave + \ call s:Tlist_Session_Save(<q-args>) + command! -bar TlistLock let Tlist_Auto_Update=0 + command! -bar TlistUnlock let Tlist_Auto_Update=1 + + " Commands for enabling/disabling debug and to display debug messages + command! -nargs=? -complete=file -bar TlistDebug + \ call s:Tlist_Debug_Enable(<q-args>) + command! -nargs=0 -bar TlistUndebug call s:Tlist_Debug_Disable() + command! -nargs=0 -bar TlistMessages call s:Tlist_Debug_Show() + + " Define autocommands to autoload the taglist plugin when needed. + + " Trick to get the current script ID + map <SID>xx <SID>xx + let s:tlist_sid = substitute(maparg('<SID>xx'), '<SNR>\(\d\+_\)xx$', + \ '\1', '') + unmap <SID>xx + + exe 'autocmd FuncUndefined *' . s:tlist_sid . 'Tlist_* source ' . + \ escape(expand('<sfile>'), ' ') + exe 'autocmd FuncUndefined *' . s:tlist_sid . 'Tlist_Window_* source ' . + \ escape(expand('<sfile>'), ' ') + exe 'autocmd FuncUndefined *' . s:tlist_sid . 'Tlist_Menu_* source ' . + \ escape(expand('<sfile>'), ' ') + exe 'autocmd FuncUndefined Tlist_* source ' . + \ escape(expand('<sfile>'), ' ') + exe 'autocmd FuncUndefined TagList_* source ' . + \ escape(expand('<sfile>'), ' ') + + let loaded_taglist = 'fast_load_done' + + if g:Tlist_Show_Menu && has('gui_running') + call s:Tlist_Menu_Init() + endif + + " restore 'cpo' + let &cpo = s:cpo_save + finish +endif + +if !exists('s:tlist_sid') + " Two or more versions of taglist plugin are installed. Don't + " load this version of the plugin. + finish +endif + +unlet! s:tlist_sid + +if loaded_taglist != 'fast_load_done' + " restore 'cpo' + let &cpo = s:cpo_save + finish +endif + +" Taglist plugin functionality is available +let loaded_taglist = 'available' + +"------------------- end of user configurable options -------------------- + +" Default language specific settings for supported file types and tag types +" +" Variable name format: +" +" s:tlist_def_{vim_ftype}_settings +" +" vim_ftype - Filetype detected by Vim +" +" Value format: +" +" <ctags_ftype>;<flag>:<name>;<flag>:<name>;... +" +" ctags_ftype - File type supported by exuberant ctags +" flag - Flag supported by exuberant ctags to generate a tag type +" name - Name of the tag type used in the taglist window to display the +" tags of this type +" + +" assembly language +let s:tlist_def_asm_settings = 'asm;d:define;l:label;m:macro;t:type' + +" aspperl language +let s:tlist_def_aspperl_settings = 'asp;f:function;s:sub;v:variable' + +" aspvbs language +let s:tlist_def_aspvbs_settings = 'asp;f:function;s:sub;v:variable' + +" awk language +let s:tlist_def_awk_settings = 'awk;f:function' + +" beta language +let s:tlist_def_beta_settings = 'beta;f:fragment;s:slot;v:pattern' + +" c language +let s:tlist_def_c_settings = 'c;d:macro;g:enum;s:struct;u:union;t:typedef;' . + \ 'v:variable;f:function' + +" c++ language +let s:tlist_def_cpp_settings = 'c++;n:namespace;v:variable;d:macro;t:typedef;' . + \ 'c:class;g:enum;s:struct;u:union;f:function' + +" c# language +let s:tlist_def_cs_settings = 'c#;d:macro;t:typedef;n:namespace;c:class;' . + \ 'E:event;g:enum;s:struct;i:interface;' . + \ 'p:properties;m:method' + +" cobol language +let s:tlist_def_cobol_settings = 'cobol;d:data;f:file;g:group;p:paragraph;' . + \ 'P:program;s:section' + +" eiffel language +let s:tlist_def_eiffel_settings = 'eiffel;c:class;f:feature' + +" erlang language +let s:tlist_def_erlang_settings = 'erlang;d:macro;r:record;m:module;f:function' + +" expect (same as tcl) language +let s:tlist_def_expect_settings = 'tcl;c:class;f:method;p:procedure' + +" fortran language +let s:tlist_def_fortran_settings = 'fortran;p:program;b:block data;' . + \ 'c:common;e:entry;i:interface;k:type;l:label;m:module;' . + \ 'n:namelist;t:derived;v:variable;f:function;s:subroutine' + +" HTML language +let s:tlist_def_html_settings = 'html;a:anchor;f:javascript function' + +" java language +let s:tlist_def_java_settings = 'java;p:package;c:class;i:interface;' . + \ 'f:field;m:method' + +" javascript language +let s:tlist_def_javascript_settings = 'javascript;f:function' + +" lisp language +let s:tlist_def_lisp_settings = 'lisp;f:function' + +" lua language +let s:tlist_def_lua_settings = 'lua;f:function' + +" makefiles +let s:tlist_def_make_settings = 'make;m:macro' + +" pascal language +let s:tlist_def_pascal_settings = 'pascal;f:function;p:procedure' + +" perl language +let s:tlist_def_perl_settings = 'perl;c:constant;l:label;p:package;s:subroutine' + +" php language +let s:tlist_def_php_settings = 'php;c:class;d:constant;v:variable;f:function' + +" python language +let s:tlist_def_python_settings = 'python;c:class;m:member;f:function' + +" rexx language +let s:tlist_def_rexx_settings = 'rexx;s:subroutine' + +" ruby language +let s:tlist_def_ruby_settings = 'ruby;c:class;f:method;F:function;' . + \ 'm:singleton method' + +" scheme language +let s:tlist_def_scheme_settings = 'scheme;s:set;f:function' + +" shell language +let s:tlist_def_sh_settings = 'sh;f:function' + +" C shell language +let s:tlist_def_csh_settings = 'sh;f:function' + +" Z shell language +let s:tlist_def_zsh_settings = 'sh;f:function' + +" slang language +let s:tlist_def_slang_settings = 'slang;n:namespace;f:function' + +" sml language +let s:tlist_def_sml_settings = 'sml;e:exception;c:functor;s:signature;' . + \ 'r:structure;t:type;v:value;f:function' + +" sql language +let s:tlist_def_sql_settings = 'sql;c:cursor;F:field;P:package;r:record;' . + \ 's:subtype;t:table;T:trigger;v:variable;f:function;p:procedure' + +" tcl language +let s:tlist_def_tcl_settings = 'tcl;c:class;f:method;m:method;p:procedure' + +" vera language +let s:tlist_def_vera_settings = 'vera;c:class;d:macro;e:enumerator;' . + \ 'f:function;g:enum;m:member;p:program;' . + \ 'P:prototype;t:task;T:typedef;v:variable;' . + \ 'x:externvar' + +"verilog language +let s:tlist_def_verilog_settings = 'verilog;m:module;c:constant;P:parameter;' . + \ 'e:event;r:register;t:task;w:write;p:port;v:variable;f:function' + +" vim language +let s:tlist_def_vim_settings = 'vim;a:autocmds;v:variable;f:function' + +" yacc language +let s:tlist_def_yacc_settings = 'yacc;l:label' + +"------------------- end of language specific options -------------------- + +" Vim window size is changed by the taglist plugin or not +let s:tlist_winsize_chgd = -1 +" Taglist window is maximized or not +let s:tlist_win_maximized = 0 +" Name of files in the taglist +let s:tlist_file_names='' +" Number of files in the taglist +let s:tlist_file_count = 0 +" Number of filetypes supported by taglist +let s:tlist_ftype_count = 0 +" Is taglist part of other plugins like winmanager or cream? +let s:tlist_app_name = "none" +" Are we displaying brief help text +let s:tlist_brief_help = 1 +" List of files removed on user request +let s:tlist_removed_flist = "" +" Index of current file displayed in the taglist window +let s:tlist_cur_file_idx = -1 +" Taglist menu is empty or not +let s:tlist_menu_empty = 1 + +" An autocommand is used to refresh the taglist window when entering any +" buffer. We don't want to refresh the taglist window if we are entering the +" file window from one of the taglist functions. The 'Tlist_Skip_Refresh' +" variable is used to skip the refresh of the taglist window and is set +" and cleared appropriately. +let s:Tlist_Skip_Refresh = 0 + +" Tlist_Window_Display_Help() +function! s:Tlist_Window_Display_Help() + if s:tlist_app_name == "winmanager" + " To handle a bug in the winmanager plugin, add a space at the + " last line + call setline('$', ' ') + endif + + if s:tlist_brief_help + " Add the brief help + call append(0, '" Press <F1> to display help text') + else + " Add the extensive help + call append(0, '" <enter> : Jump to tag definition') + call append(1, '" o : Jump to tag definition in new window') + call append(2, '" p : Preview the tag definition') + call append(3, '" <space> : Display tag prototype') + call append(4, '" u : Update tag list') + call append(5, '" s : Select sort field') + call append(6, '" d : Remove file from taglist') + call append(7, '" x : Zoom-out/Zoom-in taglist window') + call append(8, '" + : Open a fold') + call append(9, '" - : Close a fold') + call append(10, '" * : Open all folds') + call append(11, '" = : Close all folds') + call append(12, '" [[ : Move to the start of previous file') + call append(13, '" ]] : Move to the start of next file') + call append(14, '" q : Close the taglist window') + call append(15, '" <F1> : Remove help text') + endif +endfunction + +" Tlist_Window_Toggle_Help_Text() +" Toggle taglist plugin help text between the full version and the brief +" version +function! s:Tlist_Window_Toggle_Help_Text() + if g:Tlist_Compact_Format + " In compact display mode, do not display help + return + endif + + " Include the empty line displayed after the help text + let brief_help_size = 1 + let full_help_size = 16 + + setlocal modifiable + + " Set report option to a huge value to prevent informational messages + " while deleting the lines + let old_report = &report + set report=99999 + + " Remove the currently highlighted tag. Otherwise, the help text + " might be highlighted by mistake + match none + + " Toggle between brief and full help text + if s:tlist_brief_help + let s:tlist_brief_help = 0 + + " Remove the previous help + exe '1,' . brief_help_size . ' delete _' + + " Adjust the start/end line numbers for the files + call s:Tlist_Window_Update_Line_Offsets(0, 1, full_help_size - brief_help_size) + else + let s:tlist_brief_help = 1 + + " Remove the previous help + exe '1,' . full_help_size . ' delete _' + + " Adjust the start/end line numbers for the files + call s:Tlist_Window_Update_Line_Offsets(0, 0, full_help_size - brief_help_size) + endif + + call s:Tlist_Window_Display_Help() + + " Restore the report option + let &report = old_report + + setlocal nomodifiable +endfunction + +" Taglist debug support +let s:tlist_debug = 0 + +" File for storing the debug messages +let s:tlist_debug_file = '' + +" Tlist_Debug_Enable +" Enable logging of taglist debug messages. +function! s:Tlist_Debug_Enable(...) + let s:tlist_debug = 1 + + " Check whether a valid file name is supplied. + if a:1 != '' + let s:tlist_debug_file = fnamemodify(a:1, ':p') + + " Empty the log file + exe 'redir! > ' . s:tlist_debug_file + redir END + + " Check whether the log file is present/created + if !filewritable(s:tlist_debug_file) + call s:Tlist_Warning_Msg('Taglist: Unable to create log file ' + \ . s:tlist_debug_file) + let s:tlist_debug_file = '' + endif + endif +endfunction + +" Tlist_Debug_Disable +" Disable logging of taglist debug messages. +function! s:Tlist_Debug_Disable(...) + let s:tlist_debug = 0 + let s:tlist_debug_file = '' +endfunction + +" Tlist_Debug_Show +" Display the taglist debug messages in a new window +function! s:Tlist_Debug_Show() + if s:tlist_msg == '' + call s:Tlist_Warning_Msg('Taglist: No debug messages') + return + endif + + " Open a new window to display the taglist debug messages + new taglist_debug.txt + " Delete all the lines (if the buffer already exists) + silent! %delete _ + " Add the messages + silent! put =s:tlist_msg + " Move the cursor to the first line + normal! gg +endfunction + +" Tlist_Log_Msg +" Log the supplied debug message along with the time +function! s:Tlist_Log_Msg(msg) + if s:tlist_debug + if s:tlist_debug_file != '' + exe 'redir >> ' . s:tlist_debug_file + silent echon strftime('%H:%M:%S') . ': ' . a:msg . "\n" + redir END + else + " Log the message into a variable + " Retain only the last 3000 characters + let len = strlen(s:tlist_msg) + if len > 3000 + let s:tlist_msg = strpart(s:tlist_msg, len - 3000) + endif + let s:tlist_msg = s:tlist_msg . strftime('%H:%M:%S') . ': ' . + \ a:msg . "\n" + endif + endif +endfunction + +" Tlist_Warning_Msg() +" Display a message using WarningMsg highlight group +function! s:Tlist_Warning_Msg(msg) + echohl WarningMsg + echomsg a:msg + echohl None +endfunction + +" Last returned file index for file name lookup. +" Used to speed up file lookup +let s:tlist_file_name_idx_cache = -1 + +" Tlist_Get_File_Index() +" Return the index of the specified filename +function! s:Tlist_Get_File_Index(fname) + if s:tlist_file_count == 0 || a:fname == '' + return -1 + endif + + " If the new filename is same as the last accessed filename, then + " return that index + if s:tlist_file_name_idx_cache != -1 && + \ s:tlist_file_name_idx_cache < s:tlist_file_count + if s:tlist_{s:tlist_file_name_idx_cache}_filename == a:fname + " Same as the last accessed file + return s:tlist_file_name_idx_cache + endif + endif + + " First, check whether the filename is present + let s_fname = a:fname . "\n" + let i = stridx(s:tlist_file_names, s_fname) + if i == -1 + let s:tlist_file_name_idx_cache = -1 + return -1 + endif + + " Second, compute the file name index + let nl_txt = substitute(strpart(s:tlist_file_names, 0, i), "[^\n]", '', 'g') + let s:tlist_file_name_idx_cache = strlen(nl_txt) + return s:tlist_file_name_idx_cache +endfunction + +" Last returned file index for line number lookup. +" Used to speed up file lookup +let s:tlist_file_lnum_idx_cache = -1 + +" Tlist_Window_Get_File_Index_By_Linenum() +" Return the index of the filename present in the specified line number +" Line number refers to the line number in the taglist window +function! s:Tlist_Window_Get_File_Index_By_Linenum(lnum) + call s:Tlist_Log_Msg('Tlist_Window_Get_File_Index_By_Linenum (' . a:lnum . ')') + + " First try to see whether the new line number is within the range + " of the last returned file + if s:tlist_file_lnum_idx_cache != -1 && + \ s:tlist_file_lnum_idx_cache < s:tlist_file_count + if a:lnum >= s:tlist_{s:tlist_file_lnum_idx_cache}_start && + \ a:lnum <= s:tlist_{s:tlist_file_lnum_idx_cache}_end + return s:tlist_file_lnum_idx_cache + endif + endif + + let fidx = -1 + + if g:Tlist_Show_One_File + " Displaying only one file in the taglist window. Check whether + " the line is within the tags displayed for that file + if s:tlist_cur_file_idx != -1 + if a:lnum >= s:tlist_{s:tlist_cur_file_idx}_start + \ && a:lnum <= s:tlist_{s:tlist_cur_file_idx}_end + let fidx = s:tlist_cur_file_idx + endif + + endif + else + " Do a binary search in the taglist + let left = 0 + let right = s:tlist_file_count - 1 + + while left < right + let mid = (left + right) / 2 + + if a:lnum >= s:tlist_{mid}_start && a:lnum <= s:tlist_{mid}_end + let s:tlist_file_lnum_idx_cache = mid + return mid + endif + + if a:lnum < s:tlist_{mid}_start + let right = mid - 1 + else + let left = mid + 1 + endif + endwhile + + if left >= 0 && left < s:tlist_file_count + \ && a:lnum >= s:tlist_{left}_start + \ && a:lnum <= s:tlist_{left}_end + let fidx = left + endif + endif + + let s:tlist_file_lnum_idx_cache = fidx + + return fidx +endfunction + +" Tlist_Exe_Cmd_No_Acmds +" Execute the specified Ex command after disabling autocommands +function! s:Tlist_Exe_Cmd_No_Acmds(cmd) + let old_eventignore = &eventignore + set eventignore=all + exe a:cmd + let &eventignore = old_eventignore +endfunction + +" Tlist_Skip_File() +" Check whether tag listing is supported for the specified file +function! s:Tlist_Skip_File(filename, ftype) + " Skip buffers with no names and buffers with filetype not set + if a:filename == '' || a:ftype == '' + return 1 + endif + + " Skip files which are not supported by exuberant ctags + " First check whether default settings for this filetype are available. + " If it is not available, then check whether user specified settings are + " available. If both are not available, then don't list the tags for this + " filetype + let var = 's:tlist_def_' . a:ftype . '_settings' + if !exists(var) + let var = 'g:tlist_' . a:ftype . '_settings' + if !exists(var) + return 1 + endif + endif + + " Skip files which are not readable or files which are not yet stored + " to the disk + if !filereadable(a:filename) + return 1 + endif + + return 0 +endfunction + +" Tlist_User_Removed_File +" Returns 1 if a file is removed by a user from the taglist +function! s:Tlist_User_Removed_File(filename) + return stridx(s:tlist_removed_flist, a:filename . "\n") != -1 +endfunction + +" Tlist_Update_Remove_List +" Update the list of user removed files from the taglist +" add == 1, add the file to the removed list +" add == 0, delete the file from the removed list +function! s:Tlist_Update_Remove_List(filename, add) + if a:add + let s:tlist_removed_flist = s:tlist_removed_flist . a:filename . "\n" + else + let idx = stridx(s:tlist_removed_flist, a:filename . "\n") + let text_before = strpart(s:tlist_removed_flist, 0, idx) + let rem_text = strpart(s:tlist_removed_flist, idx) + let next_idx = stridx(rem_text, "\n") + let text_after = strpart(rem_text, next_idx + 1) + + let s:tlist_removed_flist = text_before . text_after + endif +endfunction + +" Tlist_FileType_Init +" Initialize the ctags arguments and tag variable for the specified +" file type +function! s:Tlist_FileType_Init(ftype) + call s:Tlist_Log_Msg('Tlist_FileType_Init (' . a:ftype . ')') + " If the user didn't specify any settings, then use the default + " ctags args. Otherwise, use the settings specified by the user + let var = 'g:tlist_' . a:ftype . '_settings' + if exists(var) + " User specified ctags arguments + let settings = {var} . ';' + else + " Default ctags arguments + let var = 's:tlist_def_' . a:ftype . '_settings' + if !exists(var) + " No default settings for this file type. This filetype is + " not supported + return 0 + endif + let settings = s:tlist_def_{a:ftype}_settings . ';' + endif + + let msg = 'Taglist: Invalid ctags option setting - ' . settings + + " Format of the option that specifies the filetype and ctags arugments: + " + " <language_name>;flag1:name1;flag2:name2;flag3:name3 + " + + " Extract the file type to pass to ctags. This may be different from the + " file type detected by Vim + let pos = stridx(settings, ';') + if pos == -1 + call s:Tlist_Warning_Msg(msg) + return 0 + endif + let ctags_ftype = strpart(settings, 0, pos) + if ctags_ftype == '' + call s:Tlist_Warning_Msg(msg) + return 0 + endif + " Make sure a valid filetype is supplied. If the user didn't specify a + " valid filetype, then the ctags option settings may be treated as the + " filetype + if ctags_ftype =~ ':' + call s:Tlist_Warning_Msg(msg) + return 0 + endif + + " Remove the file type from settings + let settings = strpart(settings, pos + 1) + if settings == '' + call s:Tlist_Warning_Msg(msg) + return 0 + endif + + " Process all the specified ctags flags. The format is + " flag1:name1;flag2:name2;flag3:name3 + let ctags_flags = '' + let cnt = 0 + while settings != '' + " Extract the flag + let pos = stridx(settings, ':') + if pos == -1 + call s:Tlist_Warning_Msg(msg) + return 0 + endif + let flag = strpart(settings, 0, pos) + if flag == '' + call s:Tlist_Warning_Msg(msg) + return 0 + endif + " Remove the flag from settings + let settings = strpart(settings, pos + 1) + + " Extract the tag type name + let pos = stridx(settings, ';') + if pos == -1 + call s:Tlist_Warning_Msg(msg) + return 0 + endif + let name = strpart(settings, 0, pos) + if name == '' + call s:Tlist_Warning_Msg(msg) + return 0 + endif + let settings = strpart(settings, pos + 1) + + let cnt = cnt + 1 + + let s:tlist_{a:ftype}_{cnt}_name = flag + let s:tlist_{a:ftype}_{cnt}_fullname = name + let ctags_flags = ctags_flags . flag + endwhile + + let s:tlist_{a:ftype}_ctags_args = '--language-force=' . ctags_ftype . + \ ' --' . ctags_ftype . '-types=' . ctags_flags + let s:tlist_{a:ftype}_count = cnt + let s:tlist_{a:ftype}_ctags_flags = ctags_flags + + " Save the filetype name + let s:tlist_ftype_{s:tlist_ftype_count}_name = a:ftype + let s:tlist_ftype_count = s:tlist_ftype_count + 1 + + return 1 +endfunction + +" Tlist_Detect_Filetype +" Determine the filetype for the specified file using the filetypedetect +" autocmd. +function! s:Tlist_Detect_Filetype(fname) + " Ignore the filetype autocommands + let old_eventignore = &eventignore + set eventignore=FileType + + " Save the 'filetype', as this will be changed temporarily + let old_filetype = &filetype + + " Run the filetypedetect group of autocommands to determine + " the filetype + exe 'doautocmd filetypedetect BufRead ' . a:fname + + " Save the detected filetype + let ftype = &filetype + + " Restore the previous state + let &filetype = old_filetype + let &eventignore = old_eventignore + + return ftype +endfunction + +" Tlist_Get_Buffer_Filetype +" Get the filetype for the specified buffer +function! s:Tlist_Get_Buffer_Filetype(bnum) + let buf_ft = getbufvar(a:bnum, '&filetype') + + if bufloaded(a:bnum) + " For loaded buffers, the 'filetype' is already determined + return buf_ft + endif + + " For unloaded buffers, if the 'filetype' option is set, return it + if buf_ft != '' + return buf_ft + endif + + " Skip non-existent buffers + if !bufexists(a:bnum) + return '' + endif + + " For buffers whose filetype is not yet determined, try to determine + " the filetype + let bname = bufname(a:bnum) + + return s:Tlist_Detect_Filetype(bname) +endfunction + +" Tlist_Discard_TagInfo +" Discard the stored tag information for a file +function! s:Tlist_Discard_TagInfo(fidx) + call s:Tlist_Log_Msg('Tlist_Discard_TagInfo (' . + \ s:tlist_{a:fidx}_filename . ')') + let ftype = s:tlist_{a:fidx}_filetype + + " Discard information about the tags defined in the file + let i = 1 + while i <= s:tlist_{a:fidx}_tag_count + let fidx_i = 's:tlist_' . a:fidx . '_' . i + unlet! {fidx_i}_tag + unlet! {fidx_i}_tag_name + unlet! {fidx_i}_tag_type + unlet! {fidx_i}_ttype_idx + unlet! {fidx_i}_tag_proto + unlet! {fidx_i}_tag_searchpat + unlet! {fidx_i}_tag_linenum + let i = i + 1 + endwhile + + let s:tlist_{a:fidx}_tag_count = 0 + + " Discard information about tag type groups + let i = 1 + while i <= s:tlist_{ftype}_count + let ttype = s:tlist_{ftype}_{i}_name + if s:tlist_{a:fidx}_{ttype} != '' + let fidx_ttype = 's:tlist_' . a:fidx . '_' . ttype + let {fidx_ttype} = '' + let {fidx_ttype}_offset = 0 + let cnt = {fidx_ttype}_count + let {fidx_ttype}_count = 0 + let j = 1 + while j <= cnt + unlet! {fidx_ttype}_{j} + let j = j + 1 + endwhile + endif + let i = i + 1 + endwhile + + " Discard the stored menu command also + let s:tlist_{a:fidx}_menu_cmd = '' +endfunction + +" Tlist_Window_Update_Line_Offsets +" Update the line offsets for tags for files starting from start_idx +" and displayed in the taglist window by the specified offset +function! s:Tlist_Window_Update_Line_Offsets(start_idx, increment, offset) + let i = a:start_idx + + while i < s:tlist_file_count + if s:tlist_{i}_visible + " Update the start/end line number only if the file is visible + if a:increment + let s:tlist_{i}_start = s:tlist_{i}_start + a:offset + let s:tlist_{i}_end = s:tlist_{i}_end + a:offset + else + let s:tlist_{i}_start = s:tlist_{i}_start - a:offset + let s:tlist_{i}_end = s:tlist_{i}_end - a:offset + endif + endif + let i = i + 1 + endwhile +endfunction + +" Tlist_Discard_FileInfo +" Discard the stored information for a file +function! s:Tlist_Discard_FileInfo(fidx) + call s:Tlist_Log_Msg('Tlist_Discard_FileInfo (' . + \ s:tlist_{a:fidx}_filename . ')') + call s:Tlist_Discard_TagInfo(a:fidx) + + let ftype = s:tlist_{a:fidx}_filetype + + let i = 1 + while i <= s:tlist_{ftype}_count + let ttype = s:tlist_{ftype}_{i}_name + unlet! s:tlist_{a:fidx}_{ttype} + unlet! s:tlist_{a:fidx}_{ttype}_offset + unlet! s:tlist_{a:fidx}_{ttype}_count + let i = i + 1 + endwhile + + unlet! s:tlist_{a:fidx}_filename + unlet! s:tlist_{a:fidx}_sort_type + unlet! s:tlist_{a:fidx}_filetype + unlet! s:tlist_{a:fidx}_mtime + unlet! s:tlist_{a:fidx}_start + unlet! s:tlist_{a:fidx}_end + unlet! s:tlist_{a:fidx}_valid + unlet! s:tlist_{a:fidx}_visible + unlet! s:tlist_{a:fidx}_tag_count + unlet! s:tlist_{a:fidx}_menu_cmd +endfunction + +" Tlist_Window_Remove_File_From_Display +" Remove the specified file from display +function! s:Tlist_Window_Remove_File_From_Display(fidx) + call s:Tlist_Log_Msg('Tlist_Window_Remove_File_From_Display (' . + \ s:tlist_{a:fidx}_filename . ')') + " If the file is not visible then no need to remove it + if !s:tlist_{a:fidx}_visible + return + endif + + " Remove the tags displayed for the specified file from the window + let start = s:tlist_{a:fidx}_start + " Include the empty line after the last line also + if g:Tlist_Compact_Format + let end = s:tlist_{a:fidx}_end + else + let end = s:tlist_{a:fidx}_end + 1 + endif + + setlocal modifiable + exe 'silent! ' . start . ',' . end . 'delete _' + setlocal nomodifiable + + " Correct the start and end line offsets for all the files following + " this file, as the tags for this file are removed + call s:Tlist_Window_Update_Line_Offsets(a:fidx + 1, 0, end - start + 1) +endfunction + +" Tlist_Remove_File +" Remove the file under the cursor or the specified file index +" user_request - User requested to remove the file from taglist +function! s:Tlist_Remove_File(file_idx, user_request) + let fidx = a:file_idx + + if fidx == -1 + let fidx = s:Tlist_Window_Get_File_Index_By_Linenum(line('.')) + if fidx == -1 + return + endif + endif + call s:Tlist_Log_Msg('Tlist_Remove_File (' . + \ s:tlist_{fidx}_filename . ', ' . a:user_request . ')') + + let save_winnr = winnr() + let winnum = bufwinnr(g:TagList_title) + if winnum != -1 + " Taglist window is open, remove the file from display + + if save_winnr != winnum + let old_eventignore = &eventignore + set eventignore=all + exe winnum . 'wincmd w' + endif + + call s:Tlist_Window_Remove_File_From_Display(fidx) + + if save_winnr != winnum + exe save_winnr . 'wincmd w' + let &eventignore = old_eventignore + endif + endif + + let fname = s:tlist_{fidx}_filename + + if a:user_request + " As the user requested to remove the file from taglist, + " add it to the removed list + call s:Tlist_Update_Remove_List(fname, 1) + endif + + " Remove the file name from the taglist list of filenames + let idx = stridx(s:tlist_file_names, fname . "\n") + let text_before = strpart(s:tlist_file_names, 0, idx) + let rem_text = strpart(s:tlist_file_names, idx) + let next_idx = stridx(rem_text, "\n") + let text_after = strpart(rem_text, next_idx + 1) + let s:tlist_file_names = text_before . text_after + + call s:Tlist_Discard_FileInfo(fidx) + + " Shift all the file variables by one index + let i = fidx + 1 + + while i < s:tlist_file_count + let j = i - 1 + + let s:tlist_{j}_filename = s:tlist_{i}_filename + let s:tlist_{j}_sort_type = s:tlist_{i}_sort_type + let s:tlist_{j}_filetype = s:tlist_{i}_filetype + let s:tlist_{j}_mtime = s:tlist_{i}_mtime + let s:tlist_{j}_start = s:tlist_{i}_start + let s:tlist_{j}_end = s:tlist_{i}_end + let s:tlist_{j}_valid = s:tlist_{i}_valid + let s:tlist_{j}_visible = s:tlist_{i}_visible + let s:tlist_{j}_tag_count = s:tlist_{i}_tag_count + let s:tlist_{j}_menu_cmd = s:tlist_{i}_menu_cmd + + let k = 1 + while k <= s:tlist_{j}_tag_count + let s:tlist_{j}_{k}_tag = s:tlist_{i}_{k}_tag + let s:tlist_{j}_{k}_tag_name = s:tlist_{i}_{k}_tag_name + let s:tlist_{j}_{k}_tag_type = s:Tlist_Get_Tag_Type_By_Tag(i, k) + let s:tlist_{j}_{k}_ttype_idx = s:tlist_{i}_{k}_ttype_idx + let s:tlist_{j}_{k}_tag_proto = s:Tlist_Get_Tag_Prototype(i, k) + let s:tlist_{j}_{k}_tag_searchpat = s:Tlist_Get_Tag_SearchPat(i, k) + let s:tlist_{j}_{k}_tag_linenum = s:Tlist_Get_Tag_Linenum(i, k) + let k = k + 1 + endwhile + + let ftype = s:tlist_{i}_filetype + + let k = 1 + while k <= s:tlist_{ftype}_count + let ttype = s:tlist_{ftype}_{k}_name + let s:tlist_{j}_{ttype} = s:tlist_{i}_{ttype} + let s:tlist_{j}_{ttype}_offset = s:tlist_{i}_{ttype}_offset + let s:tlist_{j}_{ttype}_count = s:tlist_{i}_{ttype}_count + if s:tlist_{j}_{ttype} != '' + let l = 1 + while l <= s:tlist_{j}_{ttype}_count + let s:tlist_{j}_{ttype}_{l} = s:tlist_{i}_{ttype}_{l} + let l = l + 1 + endwhile + endif + let k = k + 1 + endwhile + + " As the file and tag information is copied to the new index, + " discard the previous information + call s:Tlist_Discard_FileInfo(i) + + let i = i + 1 + endwhile + + " Reduce the number of files displayed + let s:tlist_file_count = s:tlist_file_count - 1 + + if g:Tlist_Show_One_File + " If the tags for only one file is displayed and if we just + " now removed that file, then invalidate the current file idx + if s:tlist_cur_file_idx == fidx + let s:tlist_cur_file_idx = -1 + endif + endif +endfunction + +" Tlist_Window_Goto_Window +" Goto the taglist window +function! s:Tlist_Window_Goto_Window() + let winnum = bufwinnr(g:TagList_title) + if winnum != -1 + if winnr() != winnum + call s:Tlist_Exe_Cmd_No_Acmds(winnum . 'wincmd w') + endif + endif +endfunction + +" Tlist_Window_Create +" Create a new taglist window. If it is already open, jump to it +function! s:Tlist_Window_Create() + call s:Tlist_Log_Msg('Tlist_Window_Create()') + " If the window is open, jump to it + let winnum = bufwinnr(g:TagList_title) + if winnum != -1 + " Jump to the existing window + if winnr() != winnum + exe winnum . 'wincmd w' + endif + return + endif + + " If used with winmanager don't open windows. Winmanager will handle + " the window/buffer management + if s:tlist_app_name == "winmanager" + return + endif + + " Create a new window. If user prefers a horizontal window, then open + " a horizontally split window. Otherwise open a vertically split + " window + if g:Tlist_Use_Horiz_Window + " Open a horizontally split window + let win_dir = 'botright' + " Horizontal window height + let win_size = g:Tlist_WinHeight + else + if s:tlist_winsize_chgd == -1 + " Open a vertically split window. Increase the window size, if + " needed, to accomodate the new window + if g:Tlist_Inc_Winwidth && + \ &columns < (80 + g:Tlist_WinWidth) + " Save the original window position + let s:tlist_pre_winx = getwinposx() + let s:tlist_pre_winy = getwinposy() + + " one extra column is needed to include the vertical split + let &columns= &columns + g:Tlist_WinWidth + 1 + + let s:tlist_winsize_chgd = 1 + else + let s:tlist_winsize_chgd = 0 + endif + endif + + if g:Tlist_Use_Right_Window + " Open the window at the rightmost place + let win_dir = 'botright vertical' + else + " Open the window at the leftmost place + let win_dir = 'topleft vertical' + endif + let win_size = g:Tlist_WinWidth + endif + + " If the tag listing temporary buffer already exists, then reuse it. + " Otherwise create a new buffer + let bufnum = bufnr(g:TagList_title) + if bufnum == -1 + " Create a new buffer + let wcmd = g:TagList_title + else + " Edit the existing buffer + let wcmd = '+buffer' . bufnum + endif + + " Create the taglist window + exe 'silent! ' . win_dir . ' ' . win_size . 'split ' . wcmd + + " Save the new window position + let s:tlist_winx = getwinposx() + let s:tlist_winy = getwinposy() + + " Initialize the taglist window + call s:Tlist_Window_Init() +endfunction + +" Tlist_Window_Zoom +" Zoom (maximize/minimize) the taglist window +function! s:Tlist_Window_Zoom() + if s:tlist_win_maximized + " Restore the window back to the previous size + if g:Tlist_Use_Horiz_Window + exe 'resize ' . g:Tlist_WinHeight + else + exe 'vert resize ' . g:Tlist_WinWidth + endif + let s:tlist_win_maximized = 0 + else + " Set the window size to the maximum possible without closing other + " windows + if g:Tlist_Use_Horiz_Window + resize + else + vert resize + endif + let s:tlist_win_maximized = 1 + endif +endfunction + +" Tlist_Ballon_Expr +" When the mouse cursor is over a tag in the taglist window, display the +" tag prototype (balloon) +function! Tlist_Ballon_Expr() + " Get the file index + let fidx = s:Tlist_Window_Get_File_Index_By_Linenum(v:beval_lnum) + if fidx == -1 + return '' + endif + + " Get the tag output line for the current tag + let tidx = s:Tlist_Window_Get_Tag_Index(fidx, v:beval_lnum) + if tidx == 0 + return '' + endif + + " Get the tag search pattern and display it + return s:Tlist_Get_Tag_Prototype(fidx, tidx) +endfunction + +" Tlist_Window_Check_Width +" Check the width of the taglist window. For horizontally split windows, the +" 'winfixheight' option is used to fix the height of the window. For +" vertically split windows, Vim doesn't support the 'winfixwidth' option. So +" need to handle window width changes from this function. +function! s:Tlist_Window_Check_Width() + let tlist_winnr = bufwinnr(g:TagList_title) + if tlist_winnr == -1 + return + endif + + let width = winwidth(tlist_winnr) + if width != g:Tlist_WinWidth + call s:Tlist_Log_Msg("Tlist_Window_Check_Width: Changing window " . + \ "width from " . width . " to " . g:Tlist_WinWidth) + let save_winnr = winnr() + if save_winnr != tlist_winnr + call s:Tlist_Exe_Cmd_No_Acmds(tlist_winnr . 'wincmd w') + endif + exe 'vert resize ' . g:Tlist_WinWidth + if save_winnr != tlist_winnr + call s:Tlist_Exe_Cmd_No_Acmds('wincmd p') + endif + endif +endfunction + +" Tlist_Window_Exit_Only_Window +" If the 'Tlist_Exit_OnlyWindow' option is set, then exit Vim if only the +" taglist window is present. +function! s:Tlist_Window_Exit_Only_Window() + " Before quitting Vim, delete the taglist buffer so that + " the '0 mark is correctly set to the previous buffer. + if v:version < 700 + if winbufnr(2) == -1 + bdelete + quit + endif + else + if winbufnr(2) == -1 + if tabpagenr('$') == 1 + " Only one tag page is present + bdelete + quit + else + " More than one tab page is present. Close only the current + " tab page + close + endif + endif + endif +endfunction + +" Tlist_Window_Init +" Set the default options for the taglist window +function! s:Tlist_Window_Init() + call s:Tlist_Log_Msg('Tlist_Window_Init()') + + " The 'readonly' option should not be set for the taglist buffer. + " If Vim is started as "view/gview" or if the ":view" command is + " used, then the 'readonly' option is set for all the buffers. + " Unset it for the taglist buffer + setlocal noreadonly + + " Set the taglist buffer filetype to taglist + setlocal filetype=taglist + + " Define taglist window element highlighting + syntax match TagListComment '^" .*' + syntax match TagListFileName '^[^" ].*$' + syntax match TagListTitle '^ \S.*$' + syntax match TagListTagScope '\s\[.\{-\}\]$' + + " Define the highlighting only if colors are supported + if has('gui_running') || &t_Co > 2 + " Colors to highlight various taglist window elements + " If user defined highlighting group exists, then use them. + " Otherwise, use default highlight groups. + if hlexists('MyTagListTagName') + highlight link TagListTagName MyTagListTagName + else + highlight default link TagListTagName Search + endif + " Colors to highlight comments and titles + if hlexists('MyTagListComment') + highlight link TagListComment MyTagListComment + else + highlight clear TagListComment + highlight default link TagListComment Comment + endif + if hlexists('MyTagListTitle') + highlight link TagListTitle MyTagListTitle + else + highlight clear TagListTitle + highlight default link TagListTitle Title + endif + if hlexists('MyTagListFileName') + highlight link TagListFileName MyTagListFileName + else + highlight clear TagListFileName + highlight default TagListFileName guibg=Grey ctermbg=darkgray + \ guifg=white ctermfg=white + endif + if hlexists('MyTagListTagScope') + highlight link TagListTagScope MyTagListTagScope + else + highlight clear TagListTagScope + highlight default link TagListTagScope Identifier + endif + else + highlight default TagListTagName term=reverse cterm=reverse + endif + + " Folding related settings + setlocal foldenable + setlocal foldminlines=0 + setlocal foldmethod=manual + setlocal foldlevel=9999 + if g:Tlist_Enable_Fold_Column + setlocal foldcolumn=3 + else + setlocal foldcolumn=0 + endif + setlocal foldtext=v:folddashes.getline(v:foldstart) + + if s:tlist_app_name != "winmanager" + " Mark buffer as scratch + silent! setlocal buftype=nofile + if s:tlist_app_name == "none" + silent! setlocal bufhidden=delete + endif + silent! setlocal noswapfile + " Due to a bug in Vim 6.0, the winbufnr() function fails for unlisted + " buffers. So if the taglist buffer is unlisted, multiple taglist + " windows will be opened. This bug is fixed in Vim 6.1 and above + if v:version >= 601 + silent! setlocal nobuflisted + endif + endif + + silent! setlocal nowrap + + " If the 'number' option is set in the source window, it will affect the + " taglist window. So forcefully disable 'number' option for the taglist + " window + silent! setlocal nonumber + + " Use fixed height when horizontally split window is used + if g:Tlist_Use_Horiz_Window + if v:version >= 602 + set winfixheight + endif + endif + if !g:Tlist_Use_Horiz_Window && v:version >= 700 + set winfixwidth + endif + + " Setup balloon evaluation to display tag prototype + if v:version >= 700 && has('balloon_eval') + setlocal balloonexpr=Tlist_Ballon_Expr() + set ballooneval + endif + + " Setup the cpoptions properly for the maps to work + let old_cpoptions = &cpoptions + set cpoptions&vim + + " Create buffer local mappings for jumping to the tags and sorting the list + nnoremap <buffer> <silent> <CR> + \ :call <SID>Tlist_Window_Jump_To_Tag('useopen')<CR> + nnoremap <buffer> <silent> o + \ :call <SID>Tlist_Window_Jump_To_Tag('newwin')<CR> + nnoremap <buffer> <silent> p + \ :call <SID>Tlist_Window_Jump_To_Tag('preview')<CR> + nnoremap <buffer> <silent> P + \ :call <SID>Tlist_Window_Jump_To_Tag('prevwin')<CR> + if v:version >= 700 + nnoremap <buffer> <silent> t + \ :call <SID>Tlist_Window_Jump_To_Tag('checktab')<CR> + nnoremap <buffer> <silent> <C-t> + \ :call <SID>Tlist_Window_Jump_To_Tag('newtab')<CR> + endif + nnoremap <buffer> <silent> <2-LeftMouse> + \ :call <SID>Tlist_Window_Jump_To_Tag('useopen')<CR> + nnoremap <buffer> <silent> s + \ :call <SID>Tlist_Change_Sort('cmd', 'toggle', '')<CR> + nnoremap <buffer> <silent> + :silent! foldopen<CR> + nnoremap <buffer> <silent> - :silent! foldclose<CR> + nnoremap <buffer> <silent> * :silent! %foldopen!<CR> + nnoremap <buffer> <silent> = :silent! %foldclose<CR> + nnoremap <buffer> <silent> <kPlus> :silent! foldopen<CR> + nnoremap <buffer> <silent> <kMinus> :silent! foldclose<CR> + nnoremap <buffer> <silent> <kMultiply> :silent! %foldopen!<CR> + nnoremap <buffer> <silent> <Space> :call <SID>Tlist_Window_Show_Info()<CR> + nnoremap <buffer> <silent> u :call <SID>Tlist_Window_Update_File()<CR> + nnoremap <buffer> <silent> d :call <SID>Tlist_Remove_File(-1, 1)<CR> + nnoremap <buffer> <silent> x :call <SID>Tlist_Window_Zoom()<CR> + nnoremap <buffer> <silent> [[ :call <SID>Tlist_Window_Move_To_File(-1)<CR> + nnoremap <buffer> <silent> <BS> :call <SID>Tlist_Window_Move_To_File(-1)<CR> + nnoremap <buffer> <silent> ]] :call <SID>Tlist_Window_Move_To_File(1)<CR> + nnoremap <buffer> <silent> <Tab> :call <SID>Tlist_Window_Move_To_File(1)<CR> + nnoremap <buffer> <silent> <F1> :call <SID>Tlist_Window_Toggle_Help_Text()<CR> + nnoremap <buffer> <silent> q :close<CR> + + " Insert mode mappings + inoremap <buffer> <silent> <CR> + \ <C-o>:call <SID>Tlist_Window_Jump_To_Tag('useopen')<CR> + " Windows needs return + inoremap <buffer> <silent> <Return> + \ <C-o>:call <SID>Tlist_Window_Jump_To_Tag('useopen')<CR> + inoremap <buffer> <silent> o + \ <C-o>:call <SID>Tlist_Window_Jump_To_Tag('newwin')<CR> + inoremap <buffer> <silent> p + \ <C-o>:call <SID>Tlist_Window_Jump_To_Tag('preview')<CR> + inoremap <buffer> <silent> P + \ <C-o>:call <SID>Tlist_Window_Jump_To_Tag('prevwin')<CR> + if v:version >= 700 + inoremap <buffer> <silent> t + \ <C-o>:call <SID>Tlist_Window_Jump_To_Tag('checktab')<CR> + inoremap <buffer> <silent> <C-t> + \ <C-o>:call <SID>Tlist_Window_Jump_To_Tag('newtab')<CR> + endif + inoremap <buffer> <silent> <2-LeftMouse> + \ <C-o>:call <SID>Tlist_Window_Jump_To_Tag('useopen')<CR> + inoremap <buffer> <silent> s + \ <C-o>:call <SID>Tlist_Change_Sort('cmd', 'toggle', '')<CR> + inoremap <buffer> <silent> + <C-o>:silent! foldopen<CR> + inoremap <buffer> <silent> - <C-o>:silent! foldclose<CR> + inoremap <buffer> <silent> * <C-o>:silent! %foldopen!<CR> + inoremap <buffer> <silent> = <C-o>:silent! %foldclose<CR> + inoremap <buffer> <silent> <kPlus> <C-o>:silent! foldopen<CR> + inoremap <buffer> <silent> <kMinus> <C-o>:silent! foldclose<CR> + inoremap <buffer> <silent> <kMultiply> <C-o>:silent! %foldopen!<CR> + inoremap <buffer> <silent> <Space> <C-o>:call + \ <SID>Tlist_Window_Show_Info()<CR> + inoremap <buffer> <silent> u + \ <C-o>:call <SID>Tlist_Window_Update_File()<CR> + inoremap <buffer> <silent> d <C-o>:call <SID>Tlist_Remove_File(-1, 1)<CR> + inoremap <buffer> <silent> x <C-o>:call <SID>Tlist_Window_Zoom()<CR> + inoremap <buffer> <silent> [[ <C-o>:call <SID>Tlist_Window_Move_To_File(-1)<CR> + inoremap <buffer> <silent> <BS> <C-o>:call <SID>Tlist_Window_Move_To_File(-1)<CR> + inoremap <buffer> <silent> ]] <C-o>:call <SID>Tlist_Window_Move_To_File(1)<CR> + inoremap <buffer> <silent> <Tab> <C-o>:call <SID>Tlist_Window_Move_To_File(1)<CR> + inoremap <buffer> <silent> <F1> <C-o>:call <SID>Tlist_Window_Toggle_Help_Text()<CR> + inoremap <buffer> <silent> q <C-o>:close<CR> + + " Map single left mouse click if the user wants this functionality + if g:Tlist_Use_SingleClick == 1 + " Contributed by Bindu Wavell + " attempt to perform single click mapping, it would be much + " nicer if we could nnoremap <buffer> ... however vim does + " not fire the <buffer> <leftmouse> when you use the mouse + " to enter a buffer. + let clickmap = ':if bufname("%") =~ "__Tag_List__" <bar> ' . + \ 'call <SID>Tlist_Window_Jump_To_Tag("useopen") ' . + \ '<bar> endif <CR>' + if maparg('<leftmouse>', 'n') == '' + " no mapping for leftmouse + exe ':nnoremap <silent> <leftmouse> <leftmouse>' . clickmap + else + " we have a mapping + let mapcmd = ':nnoremap <silent> <leftmouse> <leftmouse>' + let mapcmd = mapcmd . substitute(substitute( + \ maparg('<leftmouse>', 'n'), '|', '<bar>', 'g'), + \ '\c^<leftmouse>', '', '') + let mapcmd = mapcmd . clickmap + exe mapcmd + endif + endif + + " Define the taglist autocommands + augroup TagListAutoCmds + autocmd! + " Display the tag prototype for the tag under the cursor. + autocmd CursorHold __Tag_List__ call s:Tlist_Window_Show_Info() + " Highlight the current tag periodically + autocmd CursorHold * silent call s:Tlist_Window_Highlight_Tag( + \ fnamemodify(bufname('%'), ':p'), line('.'), 1, 0) + + " Adjust the Vim window width when taglist window is closed + autocmd BufUnload __Tag_List__ call s:Tlist_Post_Close_Cleanup() + " Close the fold for this buffer when leaving the buffer + if g:Tlist_File_Fold_Auto_Close + autocmd BufEnter * silent + \ call s:Tlist_Window_Open_File_Fold(expand('<abuf>')) + endif + " Exit Vim itself if only the taglist window is present (optional) + if g:Tlist_Exit_OnlyWindow + autocmd BufEnter __Tag_List__ nested + \ call s:Tlist_Window_Exit_Only_Window() + endif + if s:tlist_app_name != "winmanager" && + \ !g:Tlist_Process_File_Always && + \ (!has('gui_running') || !g:Tlist_Show_Menu) + " Auto refresh the taglist window + autocmd BufEnter * call s:Tlist_Refresh() + endif + + if !g:Tlist_Use_Horiz_Window + if v:version < 700 + autocmd WinEnter * call s:Tlist_Window_Check_Width() + endif + endif + if v:version >= 700 + autocmd TabEnter * silent call s:Tlist_Refresh_Folds() + endif + augroup end + + " Restore the previous cpoptions settings + let &cpoptions = old_cpoptions +endfunction + +" Tlist_Window_Refresh +" Display the tags for all the files in the taglist window +function! s:Tlist_Window_Refresh() + call s:Tlist_Log_Msg('Tlist_Window_Refresh()') + " Set report option to a huge value to prevent informational messages + " while deleting the lines + let old_report = &report + set report=99999 + + " Mark the buffer as modifiable + setlocal modifiable + + " Delete the contents of the buffer to the black-hole register + silent! %delete _ + + " As we have cleared the taglist window, mark all the files + " as not visible + let i = 0 + while i < s:tlist_file_count + let s:tlist_{i}_visible = 0 + let i = i + 1 + endwhile + + if g:Tlist_Compact_Format == 0 + " Display help in non-compact mode + call s:Tlist_Window_Display_Help() + endif + + " Mark the buffer as not modifiable + setlocal nomodifiable + + " Restore the report option + let &report = old_report + + " If the tags for only one file should be displayed in the taglist + " window, then no need to add the tags here. The bufenter autocommand + " will add the tags for that file. + if g:Tlist_Show_One_File + return + endif + + " List all the tags for the previously processed files + " Do this only if taglist is configured to display tags for more than + " one file. Otherwise, when Tlist_Show_One_File is configured, + " tags for the wrong file will be displayed. + let i = 0 + while i < s:tlist_file_count + call s:Tlist_Window_Refresh_File(s:tlist_{i}_filename, + \ s:tlist_{i}_filetype) + let i = i + 1 + endwhile + + if g:Tlist_Auto_Update + " Add and list the tags for all buffers in the Vim buffer list + let i = 1 + let last_bufnum = bufnr('$') + while i <= last_bufnum + if buflisted(i) + let fname = fnamemodify(bufname(i), ':p') + let ftype = s:Tlist_Get_Buffer_Filetype(i) + " If the file doesn't support tag listing, skip it + if !s:Tlist_Skip_File(fname, ftype) + call s:Tlist_Window_Refresh_File(fname, ftype) + endif + endif + let i = i + 1 + endwhile + endif + + " If Tlist_File_Fold_Auto_Close option is set, then close all the folds + if g:Tlist_File_Fold_Auto_Close + " Close all the folds + silent! %foldclose + endif + + " Move the cursor to the top of the taglist window + normal! gg +endfunction + +" Tlist_Post_Close_Cleanup() +" Close the taglist window and adjust the Vim window width +function! s:Tlist_Post_Close_Cleanup() + call s:Tlist_Log_Msg('Tlist_Post_Close_Cleanup()') + " Mark all the files as not visible + let i = 0 + while i < s:tlist_file_count + let s:tlist_{i}_visible = 0 + let i = i + 1 + endwhile + + " Remove the taglist autocommands + silent! autocmd! TagListAutoCmds + + " Clear all the highlights + match none + + silent! syntax clear TagListTitle + silent! syntax clear TagListComment + silent! syntax clear TagListTagScope + + " Remove the left mouse click mapping if it was setup initially + if g:Tlist_Use_SingleClick + if hasmapto('<LeftMouse>') + nunmap <LeftMouse> + endif + endif + + if s:tlist_app_name != "winmanager" + if g:Tlist_Use_Horiz_Window || g:Tlist_Inc_Winwidth == 0 || + \ s:tlist_winsize_chgd != 1 || + \ &columns < (80 + g:Tlist_WinWidth) + " No need to adjust window width if using horizontally split taglist + " window or if columns is less than 101 or if the user chose not to + " adjust the window width + else + " If the user didn't manually move the window, then restore the window + " position to the pre-taglist position + if s:tlist_pre_winx != -1 && s:tlist_pre_winy != -1 && + \ getwinposx() == s:tlist_winx && + \ getwinposy() == s:tlist_winy + exe 'winpos ' . s:tlist_pre_winx . ' ' . s:tlist_pre_winy + endif + + " Adjust the Vim window width + let &columns= &columns - (g:Tlist_WinWidth + 1) + endif + endif + + let s:tlist_winsize_chgd = -1 + + " Reset taglist state variables + if s:tlist_app_name == "winmanager" + let s:tlist_app_name = "none" + endif + let s:tlist_window_initialized = 0 +endfunction + +" Tlist_Window_Refresh_File() +" List the tags defined in the specified file in a Vim window +function! s:Tlist_Window_Refresh_File(filename, ftype) + call s:Tlist_Log_Msg('Tlist_Window_Refresh_File (' . a:filename . ')') + " First check whether the file already exists + let fidx = s:Tlist_Get_File_Index(a:filename) + if fidx != -1 + let file_listed = 1 + else + let file_listed = 0 + endif + + if !file_listed + " Check whether this file is removed based on user request + " If it is, then don't display the tags for this file + if s:Tlist_User_Removed_File(a:filename) + return + endif + endif + + if file_listed && s:tlist_{fidx}_visible + " Check whether the file tags are currently valid + if s:tlist_{fidx}_valid + " Goto the first line in the file + exe s:tlist_{fidx}_start + + " If the line is inside a fold, open the fold + if foldclosed('.') != -1 + exe "silent! " . s:tlist_{fidx}_start . "," . + \ s:tlist_{fidx}_end . "foldopen!" + endif + return + endif + + " Discard and remove the tags for this file from display + call s:Tlist_Discard_TagInfo(fidx) + call s:Tlist_Window_Remove_File_From_Display(fidx) + endif + + " Process and generate a list of tags defined in the file + if !file_listed || !s:tlist_{fidx}_valid + let ret_fidx = s:Tlist_Process_File(a:filename, a:ftype) + if ret_fidx == -1 + return + endif + let fidx = ret_fidx + endif + + " Set report option to a huge value to prevent informational messages + " while adding lines to the taglist window + let old_report = &report + set report=99999 + + if g:Tlist_Show_One_File + " Remove the previous file + if s:tlist_cur_file_idx != -1 + call s:Tlist_Window_Remove_File_From_Display(s:tlist_cur_file_idx) + let s:tlist_{s:tlist_cur_file_idx}_visible = 0 + let s:tlist_{s:tlist_cur_file_idx}_start = 0 + let s:tlist_{s:tlist_cur_file_idx}_end = 0 + endif + let s:tlist_cur_file_idx = fidx + endif + + " Mark the buffer as modifiable + setlocal modifiable + + " Add new files to the end of the window. For existing files, add them at + " the same line where they were previously present. If the file is not + " visible, then add it at the end + if s:tlist_{fidx}_start == 0 || !s:tlist_{fidx}_visible + if g:Tlist_Compact_Format + let s:tlist_{fidx}_start = line('$') + else + let s:tlist_{fidx}_start = line('$') + 1 + endif + endif + + let s:tlist_{fidx}_visible = 1 + + " Goto the line where this file should be placed + if g:Tlist_Compact_Format + exe s:tlist_{fidx}_start + else + exe s:tlist_{fidx}_start - 1 + endif + + let txt = fnamemodify(s:tlist_{fidx}_filename, ':t') . ' (' . + \ fnamemodify(s:tlist_{fidx}_filename, ':p:h') . ')' + if g:Tlist_Compact_Format == 0 + silent! put =txt + else + silent! put! =txt + " Move to the next line + exe line('.') + 1 + endif + let file_start = s:tlist_{fidx}_start + + " Add the tag names grouped by tag type to the buffer with a title + let i = 1 + let ttype_cnt = s:tlist_{a:ftype}_count + while i <= ttype_cnt + let ttype = s:tlist_{a:ftype}_{i}_name + " Add the tag type only if there are tags for that type + let fidx_ttype = 's:tlist_' . fidx . '_' . ttype + let ttype_txt = {fidx_ttype} + if ttype_txt != '' + let txt = ' ' . s:tlist_{a:ftype}_{i}_fullname + if g:Tlist_Compact_Format == 0 + let ttype_start_lnum = line('.') + 1 + silent! put =txt + else + let ttype_start_lnum = line('.') + silent! put! =txt + endif + silent! put =ttype_txt + + let {fidx_ttype}_offset = ttype_start_lnum - file_start + + " create a fold for this tag type + let fold_start = ttype_start_lnum + let fold_end = fold_start + {fidx_ttype}_count + exe fold_start . ',' . fold_end . 'fold' + + " Adjust the cursor position + if g:Tlist_Compact_Format == 0 + exe ttype_start_lnum + {fidx_ttype}_count + else + exe ttype_start_lnum + {fidx_ttype}_count + 1 + endif + + if g:Tlist_Compact_Format == 0 + " Separate the tag types by a empty line + silent! put ='' + endif + endif + let i = i + 1 + endwhile + + if s:tlist_{fidx}_tag_count == 0 + if g:Tlist_Compact_Format == 0 + silent! put ='' + endif + endif + + let s:tlist_{fidx}_end = line('.') - 1 + + " Create a fold for the entire file + exe s:tlist_{fidx}_start . ',' . s:tlist_{fidx}_end . 'fold' + exe 'silent! ' . s:tlist_{fidx}_start . ',' . + \ s:tlist_{fidx}_end . 'foldopen!' + + " Goto the starting line for this file, + exe s:tlist_{fidx}_start + + if s:tlist_app_name == "winmanager" + " To handle a bug in the winmanager plugin, add a space at the + " last line + call setline('$', ' ') + endif + + " Mark the buffer as not modifiable + setlocal nomodifiable + + " Restore the report option + let &report = old_report + + " Update the start and end line numbers for all the files following this + " file + let start = s:tlist_{fidx}_start + " include the empty line after the last line + if g:Tlist_Compact_Format + let end = s:tlist_{fidx}_end + else + let end = s:tlist_{fidx}_end + 1 + endif + call s:Tlist_Window_Update_Line_Offsets(fidx + 1, 1, end - start + 1) + + " Now that we have updated the taglist window, update the tags + " menu (if present) + if g:Tlist_Show_Menu + call s:Tlist_Menu_Update_File(1) + endif +endfunction + +" Tlist_Init_File +" Initialize the variables for a new file +function! s:Tlist_Init_File(filename, ftype) + call s:Tlist_Log_Msg('Tlist_Init_File (' . a:filename . ')') + " Add new files at the end of the list + let fidx = s:tlist_file_count + let s:tlist_file_count = s:tlist_file_count + 1 + " Add the new file name to the taglist list of file names + let s:tlist_file_names = s:tlist_file_names . a:filename . "\n" + + " Initialize the file variables + let s:tlist_{fidx}_filename = a:filename + let s:tlist_{fidx}_sort_type = g:Tlist_Sort_Type + let s:tlist_{fidx}_filetype = a:ftype + let s:tlist_{fidx}_mtime = -1 + let s:tlist_{fidx}_start = 0 + let s:tlist_{fidx}_end = 0 + let s:tlist_{fidx}_valid = 0 + let s:tlist_{fidx}_visible = 0 + let s:tlist_{fidx}_tag_count = 0 + let s:tlist_{fidx}_menu_cmd = '' + + " Initialize the tag type variables + let i = 1 + while i <= s:tlist_{a:ftype}_count + let ttype = s:tlist_{a:ftype}_{i}_name + let s:tlist_{fidx}_{ttype} = '' + let s:tlist_{fidx}_{ttype}_offset = 0 + let s:tlist_{fidx}_{ttype}_count = 0 + let i = i + 1 + endwhile + + return fidx +endfunction + +" Tlist_Get_Tag_Type_By_Tag +" Return the tag type for the specified tag index +function! s:Tlist_Get_Tag_Type_By_Tag(fidx, tidx) + let ttype_var = 's:tlist_' . a:fidx . '_' . a:tidx . '_tag_type' + + " Already parsed and have the tag name + if exists(ttype_var) + return {ttype_var} + endif + + let tag_line = s:tlist_{a:fidx}_{a:tidx}_tag + let {ttype_var} = s:Tlist_Extract_Tagtype(tag_line) + + return {ttype_var} +endfunction + +" Tlist_Get_Tag_Prototype +function! s:Tlist_Get_Tag_Prototype(fidx, tidx) + let tproto_var = 's:tlist_' . a:fidx . '_' . a:tidx . '_tag_proto' + + " Already parsed and have the tag prototype + if exists(tproto_var) + return {tproto_var} + endif + + " Parse and extract the tag prototype + let tag_line = s:tlist_{a:fidx}_{a:tidx}_tag + let start = stridx(tag_line, '/^') + 2 + let end = stridx(tag_line, '/;"' . "\t") + if tag_line[end - 1] == '$' + let end = end -1 + endif + let tag_proto = strpart(tag_line, start, end - start) + let {tproto_var} = substitute(tag_proto, '\s*', '', '') + + return {tproto_var} +endfunction + +" Tlist_Get_Tag_SearchPat +function! s:Tlist_Get_Tag_SearchPat(fidx, tidx) + let tpat_var = 's:tlist_' . a:fidx . '_' . a:tidx . '_tag_searchpat' + + " Already parsed and have the tag search pattern + if exists(tpat_var) + return {tpat_var} + endif + + " Parse and extract the tag search pattern + let tag_line = s:tlist_{a:fidx}_{a:tidx}_tag + let start = stridx(tag_line, '/^') + 2 + let end = stridx(tag_line, '/;"' . "\t") + if tag_line[end - 1] == '$' + let end = end -1 + endif + let {tpat_var} = '\V\^' . strpart(tag_line, start, end - start) . + \ (tag_line[end] == '$' ? '\$' : '') + + return {tpat_var} +endfunction + +" Tlist_Get_Tag_Linenum +" Return the tag line number, given the tag index +function! s:Tlist_Get_Tag_Linenum(fidx, tidx) + let tline_var = 's:tlist_' . a:fidx . '_' . a:tidx . '_tag_linenum' + + " Already parsed and have the tag line number + if exists(tline_var) + return {tline_var} + endif + + " Parse and extract the tag line number + let tag_line = s:tlist_{a:fidx}_{a:tidx}_tag + let start = strridx(tag_line, 'line:') + 5 + let end = strridx(tag_line, "\t") + if end < start + let {tline_var} = strpart(tag_line, start) + 0 + else + let {tline_var} = strpart(tag_line, start, end - start) + 0 + endif + + return {tline_var} +endfunction + +" Tlist_Parse_Tagline +" Parse a tag line from the ctags output. Separate the tag output based on the +" tag type and store it in the tag type variable. +" The format of each line in the ctags output is: +" +" tag_name<TAB>file_name<TAB>ex_cmd;"<TAB>extension_fields +" +function! s:Tlist_Parse_Tagline(tag_line) + if a:tag_line == '' + " Skip empty lines + return + endif + + " Extract the tag type + let ttype = s:Tlist_Extract_Tagtype(a:tag_line) + + " Make sure the tag type is a valid and supported one + if ttype == '' || stridx(s:ctags_flags, ttype) == -1 + " Line is not in proper tags format or Tag type is not supported + return + endif + + " Update the total tag count + let s:tidx = s:tidx + 1 + + " The following variables are used to optimize this code. Vim is slow in + " using curly brace names. To reduce the amount of processing needed, the + " curly brace variables are pre-processed here + let fidx_tidx = 's:tlist_' . s:fidx . '_' . s:tidx + let fidx_ttype = 's:tlist_' . s:fidx . '_' . ttype + + " Update the count of this tag type + let ttype_idx = {fidx_ttype}_count + 1 + let {fidx_ttype}_count = ttype_idx + + " Store the ctags output for this tag + let {fidx_tidx}_tag = a:tag_line + + " Store the tag index and the tag type index (back pointers) + let {fidx_ttype}_{ttype_idx} = s:tidx + let {fidx_tidx}_ttype_idx = ttype_idx + + " Extract the tag name + let tag_name = strpart(a:tag_line, 0, stridx(a:tag_line, "\t")) + + " Extract the tag scope/prototype + if g:Tlist_Display_Prototype + let ttxt = ' ' . s:Tlist_Get_Tag_Prototype(s:fidx, s:tidx) + else + let ttxt = ' ' . tag_name + + " Add the tag scope, if it is available and is configured. Tag + " scope is the last field after the 'line:<num>\t' field + if g:Tlist_Display_Tag_Scope + let tag_scope = s:Tlist_Extract_Tag_Scope(a:tag_line) + if tag_scope != '' + let ttxt = ttxt . ' [' . tag_scope . ']' + endif + endif + endif + + " Add this tag to the tag type variable + let {fidx_ttype} = {fidx_ttype} . ttxt . "\n" + + " Save the tag name + let {fidx_tidx}_tag_name = tag_name +endfunction + +" Tlist_Process_File +" Get the list of tags defined in the specified file and store them +" in Vim variables. Returns the file index where the tags are stored. +function! s:Tlist_Process_File(filename, ftype) + call s:Tlist_Log_Msg('Tlist_Process_File (' . a:filename . ', ' . + \ a:ftype . ')') + " Check whether this file is supported + if s:Tlist_Skip_File(a:filename, a:ftype) + return -1 + endif + + " If the tag types for this filetype are not yet created, then create + " them now + let var = 's:tlist_' . a:ftype . '_count' + if !exists(var) + if s:Tlist_FileType_Init(a:ftype) == 0 + return -1 + endif + endif + + " If this file is already processed, then use the cached values + let fidx = s:Tlist_Get_File_Index(a:filename) + if fidx == -1 + " First time, this file is loaded + let fidx = s:Tlist_Init_File(a:filename, a:ftype) + else + " File was previously processed. Discard the tag information + call s:Tlist_Discard_TagInfo(fidx) + endif + + let s:tlist_{fidx}_valid = 1 + + " Exuberant ctags arguments to generate a tag list + let ctags_args = ' -f - --format=2 --excmd=pattern --fields=nks ' + + " Form the ctags argument depending on the sort type + if s:tlist_{fidx}_sort_type == 'name' + let ctags_args = ctags_args . '--sort=yes' + else + let ctags_args = ctags_args . '--sort=no' + endif + + " Add the filetype specific arguments + let ctags_args = ctags_args . ' ' . s:tlist_{a:ftype}_ctags_args + + " Ctags command to produce output with regexp for locating the tags + let ctags_cmd = g:Tlist_Ctags_Cmd . ctags_args + let ctags_cmd = ctags_cmd . ' "' . a:filename . '"' + + if &shellxquote == '"' + " Double-quotes within double-quotes will not work in the + " command-line.If the 'shellxquote' option is set to double-quotes, + " then escape the double-quotes in the ctags command-line. + let ctags_cmd = escape(ctags_cmd, '"') + endif + + " In Windows 95, if not using cygwin, disable the 'shellslash' + " option. Otherwise, this will cause problems when running the + " ctags command. + if has('win95') && !has('win32unix') + let old_shellslash = &shellslash + set noshellslash + endif + + if has('win32') && !has('win32unix') && !has('win95') + \ && (&shell =~ 'cmd.exe') + " Windows does not correctly deal with commands that have more than 1 + " set of double quotes. It will strip them all resulting in: + " 'C:\Program' is not recognized as an internal or external command + " operable program or batch file. To work around this, place the + " command inside a batch file and call the batch file. + " Do this only on Win2K, WinXP and above. + " Contributed by: David Fishburn. + let s:taglist_tempfile = fnamemodify(tempname(), ':h') . + \ '\taglist.cmd' + exe 'redir! > ' . s:taglist_tempfile + silent echo ctags_cmd + redir END + + call s:Tlist_Log_Msg('Cmd inside batch file: ' . ctags_cmd) + let ctags_cmd = '"' . s:taglist_tempfile . '"' + endif + + call s:Tlist_Log_Msg('Cmd: ' . ctags_cmd) + + " Run ctags and get the tag list + let cmd_output = system(ctags_cmd) + + " Restore the value of the 'shellslash' option. + if has('win95') && !has('win32unix') + let &shellslash = old_shellslash + endif + + if exists('s:taglist_tempfile') + " Delete the temporary cmd file created on MS-Windows + call delete(s:taglist_tempfile) + endif + + " Handle errors + if v:shell_error + let msg = "Taglist: Failed to generate tags for " . a:filename + call s:Tlist_Warning_Msg(msg) + if cmd_output != '' + call s:Tlist_Warning_Msg(cmd_output) + endif + return fidx + endif + + " Store the modification time for the file + let s:tlist_{fidx}_mtime = getftime(a:filename) + + " No tags for current file + if cmd_output == '' + call s:Tlist_Log_Msg('No tags defined in ' . a:filename) + return fidx + endif + + call s:Tlist_Log_Msg('Generated tags information for ' . a:filename) + + if v:version > 601 + " The following script local variables are used by the + " Tlist_Parse_Tagline() function. + let s:ctags_flags = s:tlist_{a:ftype}_ctags_flags + let s:fidx = fidx + let s:tidx = 0 + + " Process the ctags output one line at a time. The substitute() + " command is used to parse the tag lines instead of using the + " matchstr()/stridx()/strpart() functions for performance reason + call substitute(cmd_output, "\\([^\n]\\+\\)\n", + \ '\=s:Tlist_Parse_Tagline(submatch(1))', 'g') + + " Save the number of tags for this file + let s:tlist_{fidx}_tag_count = s:tidx + + " The following script local variables are no longer needed + unlet! s:ctags_flags + unlet! s:tidx + unlet! s:fidx + else + " Due to a bug in Vim earlier than version 6.1, + " we cannot use substitute() to parse the ctags output. + " Instead the slow str*() functions are used + let ctags_flags = s:tlist_{a:ftype}_ctags_flags + let tidx = 0 + + while cmd_output != '' + " Extract one line at a time + let idx = stridx(cmd_output, "\n") + let one_line = strpart(cmd_output, 0, idx) + " Remove the line from the tags output + let cmd_output = strpart(cmd_output, idx + 1) + + if one_line == '' + " Line is not in proper tags format + continue + endif + + " Extract the tag type + let ttype = s:Tlist_Extract_Tagtype(one_line) + + " Make sure the tag type is a valid and supported one + if ttype == '' || stridx(ctags_flags, ttype) == -1 + " Line is not in proper tags format or Tag type is not + " supported + continue + endif + + " Update the total tag count + let tidx = tidx + 1 + + " The following variables are used to optimize this code. Vim is + " slow in using curly brace names. To reduce the amount of + " processing needed, the curly brace variables are pre-processed + " here + let fidx_tidx = 's:tlist_' . fidx . '_' . tidx + let fidx_ttype = 's:tlist_' . fidx . '_' . ttype + + " Update the count of this tag type + let ttype_idx = {fidx_ttype}_count + 1 + let {fidx_ttype}_count = ttype_idx + + " Store the ctags output for this tag + let {fidx_tidx}_tag = one_line + + " Store the tag index and the tag type index (back pointers) + let {fidx_ttype}_{ttype_idx} = tidx + let {fidx_tidx}_ttype_idx = ttype_idx + + " Extract the tag name + let tag_name = strpart(one_line, 0, stridx(one_line, "\t")) + + " Extract the tag scope/prototype + if g:Tlist_Display_Prototype + let ttxt = ' ' . s:Tlist_Get_Tag_Prototype(fidx, tidx) + else + let ttxt = ' ' . tag_name + + " Add the tag scope, if it is available and is configured. Tag + " scope is the last field after the 'line:<num>\t' field + if g:Tlist_Display_Tag_Scope + let tag_scope = s:Tlist_Extract_Tag_Scope(one_line) + if tag_scope != '' + let ttxt = ttxt . ' [' . tag_scope . ']' + endif + endif + endif + + " Add this tag to the tag type variable + let {fidx_ttype} = {fidx_ttype} . ttxt . "\n" + + " Save the tag name + let {fidx_tidx}_tag_name = tag_name + endwhile + + " Save the number of tags for this file + let s:tlist_{fidx}_tag_count = tidx + endif + + call s:Tlist_Log_Msg('Processed ' . s:tlist_{fidx}_tag_count . + \ ' tags in ' . a:filename) + + return fidx +endfunction + +" Tlist_Update_File +" Update the tags for a file (if needed) +function! Tlist_Update_File(filename, ftype) + call s:Tlist_Log_Msg('Tlist_Update_File (' . a:filename . ')') + " If the file doesn't support tag listing, skip it + if s:Tlist_Skip_File(a:filename, a:ftype) + return + endif + + " Convert the file name to a full path + let fname = fnamemodify(a:filename, ':p') + + " First check whether the file already exists + let fidx = s:Tlist_Get_File_Index(fname) + + if fidx != -1 && s:tlist_{fidx}_valid + " File exists and the tags are valid + " Check whether the file was modified after the last tags update + " If it is modified, then update the tags + if s:tlist_{fidx}_mtime == getftime(fname) + return + endif + else + " If the tags were removed previously based on a user request, + " as we are going to update the tags (based on the user request), + " remove the filename from the deleted list + call s:Tlist_Update_Remove_List(fname, 0) + endif + + " If the taglist window is opened, update it + let winnum = bufwinnr(g:TagList_title) + if winnum == -1 + " Taglist window is not present. Just update the taglist + " and return + call s:Tlist_Process_File(fname, a:ftype) + else + if g:Tlist_Show_One_File && s:tlist_cur_file_idx != -1 + " If tags for only one file are displayed and we are not + " updating the tags for that file, then no need to + " refresh the taglist window. Otherwise, the taglist + " window should be updated. + if s:tlist_{s:tlist_cur_file_idx}_filename != fname + call s:Tlist_Process_File(fname, a:ftype) + return + endif + endif + + " Save the current window number + let save_winnr = winnr() + + " Goto the taglist window + call s:Tlist_Window_Goto_Window() + + " Save the cursor position + let save_line = line('.') + let save_col = col('.') + + " Update the taglist window + call s:Tlist_Window_Refresh_File(fname, a:ftype) + + " Restore the cursor position + if v:version >= 601 + call cursor(save_line, save_col) + else + exe save_line + exe 'normal! ' . save_col . '|' + endif + + if winnr() != save_winnr + " Go back to the original window + call s:Tlist_Exe_Cmd_No_Acmds(save_winnr . 'wincmd w') + endif + endif + + " Update the taglist menu + if g:Tlist_Show_Menu + call s:Tlist_Menu_Update_File(1) + endif +endfunction + +" Tlist_Window_Close +" Close the taglist window +function! s:Tlist_Window_Close() + call s:Tlist_Log_Msg('Tlist_Window_Close()') + " Make sure the taglist window exists + let winnum = bufwinnr(g:TagList_title) + if winnum == -1 + call s:Tlist_Warning_Msg('Error: Taglist window is not open') + return + endif + + if winnr() == winnum + " Already in the taglist window. Close it and return + if winbufnr(2) != -1 + " If a window other than the taglist window is open, + " then only close the taglist window. + close + endif + else + " Goto the taglist window, close it and then come back to the + " original window + let curbufnr = bufnr('%') + exe winnum . 'wincmd w' + close + " Need to jump back to the original window only if we are not + " already in that window + let winnum = bufwinnr(curbufnr) + if winnr() != winnum + exe winnum . 'wincmd w' + endif + endif +endfunction + +" Tlist_Window_Mark_File_Window +" Mark the current window as the file window to use when jumping to a tag. +" Only if the current window is a non-plugin, non-preview and non-taglist +" window +function! s:Tlist_Window_Mark_File_Window() + if getbufvar('%', '&buftype') == '' && !&previewwindow + let w:tlist_file_window = "yes" + endif +endfunction + +" Tlist_Window_Open +" Open and refresh the taglist window +function! s:Tlist_Window_Open() + call s:Tlist_Log_Msg('Tlist_Window_Open()') + " If the window is open, jump to it + let winnum = bufwinnr(g:TagList_title) + if winnum != -1 + " Jump to the existing window + if winnr() != winnum + exe winnum . 'wincmd w' + endif + return + endif + + if s:tlist_app_name == "winmanager" + " Taglist plugin is no longer part of the winmanager app + let s:tlist_app_name = "none" + endif + + " Get the filename and filetype for the specified buffer + let curbuf_name = fnamemodify(bufname('%'), ':p') + let curbuf_ftype = s:Tlist_Get_Buffer_Filetype('%') + let cur_lnum = line('.') + + " Mark the current window as the desired window to open a file when a tag + " is selected. + call s:Tlist_Window_Mark_File_Window() + + " Open the taglist window + call s:Tlist_Window_Create() + + call s:Tlist_Window_Refresh() + + if g:Tlist_Show_One_File + " Add only the current buffer and file + " + " If the file doesn't support tag listing, skip it + if !s:Tlist_Skip_File(curbuf_name, curbuf_ftype) + call s:Tlist_Window_Refresh_File(curbuf_name, curbuf_ftype) + endif + endif + + if g:Tlist_File_Fold_Auto_Close + " Open the fold for the current file, as all the folds in + " the taglist window are closed + let fidx = s:Tlist_Get_File_Index(curbuf_name) + if fidx != -1 + exe "silent! " . s:tlist_{fidx}_start . "," . + \ s:tlist_{fidx}_end . "foldopen!" + endif + endif + + " Highlight the current tag + call s:Tlist_Window_Highlight_Tag(curbuf_name, cur_lnum, 1, 1) +endfunction + +" Tlist_Window_Toggle() +" Open or close a taglist window +function! s:Tlist_Window_Toggle() + call s:Tlist_Log_Msg('Tlist_Window_Toggle()') + " If taglist window is open then close it. + let winnum = bufwinnr(g:TagList_title) + if winnum != -1 + call s:Tlist_Window_Close() + return + endif + + call s:Tlist_Window_Open() + + " Go back to the original window, if Tlist_GainFocus_On_ToggleOpen is not + " set + if !g:Tlist_GainFocus_On_ToggleOpen + call s:Tlist_Exe_Cmd_No_Acmds('wincmd p') + endif + + " Update the taglist menu + if g:Tlist_Show_Menu + call s:Tlist_Menu_Update_File(0) + endif +endfunction + +" Tlist_Process_Filelist +" Process multiple files. Each filename is separated by "\n" +" Returns the number of processed files +function! s:Tlist_Process_Filelist(file_names) + let flist = a:file_names + + " Enable lazy screen updates + let old_lazyredraw = &lazyredraw + set lazyredraw + + " Keep track of the number of processed files + let fcnt = 0 + + " Process one file at a time + while flist != '' + let nl_idx = stridx(flist, "\n") + let one_file = strpart(flist, 0, nl_idx) + + " Remove the filename from the list + let flist = strpart(flist, nl_idx + 1) + + if one_file == '' + continue + endif + + " Skip directories + if isdirectory(one_file) + continue + endif + + let ftype = s:Tlist_Detect_Filetype(one_file) + + echon "\r " + echon "\rProcessing tags for " . fnamemodify(one_file, ':p:t') + + let fcnt = fcnt + 1 + + call Tlist_Update_File(one_file, ftype) + endwhile + + " Clear the displayed informational messages + echon "\r " + + " Restore the previous state + let &lazyredraw = old_lazyredraw + + return fcnt +endfunction + +" Tlist_Process_Dir +" Process the files in a directory matching the specified pattern +function! s:Tlist_Process_Dir(dir_name, pat) + let flist = glob(a:dir_name . '/' . a:pat) . "\n" + + let fcnt = s:Tlist_Process_Filelist(flist) + + let len = strlen(a:dir_name) + if a:dir_name[len - 1] == '\' || a:dir_name[len - 1] == '/' + let glob_expr = a:dir_name . '*' + else + let glob_expr = a:dir_name . '/*' + endif + let all_files = glob(glob_expr) . "\n" + + while all_files != '' + let nl_idx = stridx(all_files, "\n") + let one_file = strpart(all_files, 0, nl_idx) + + let all_files = strpart(all_files, nl_idx + 1) + if one_file == '' + continue + endif + + " Skip non-directory names + if !isdirectory(one_file) + continue + endif + + echon "\r " + echon "\rProcessing files in directory " . fnamemodify(one_file, ':t') + let fcnt = fcnt + s:Tlist_Process_Dir(one_file, a:pat) + endwhile + + return fcnt +endfunction + +" Tlist_Add_Files_Recursive +" Add files recursively from a directory +function! s:Tlist_Add_Files_Recursive(dir, ...) + let dir_name = fnamemodify(a:dir, ':p') + if !isdirectory(dir_name) + call s:Tlist_Warning_Msg('Error: ' . dir_name . ' is not a directory') + return + endif + + if a:0 == 1 + " User specified file pattern + let pat = a:1 + else + " Default file pattern + let pat = '*' + endif + + echon "\r " + echon "\rProcessing files in directory " . fnamemodify(dir_name, ':t') + let fcnt = s:Tlist_Process_Dir(dir_name, pat) + + echon "\rAdded " . fcnt . " files to the taglist" +endfunction + +" Tlist_Add_Files +" Add the specified list of files to the taglist +function! s:Tlist_Add_Files(...) + let flist = '' + let i = 1 + + " Get all the files matching the file patterns supplied as argument + while i <= a:0 + let flist = flist . glob(a:{i}) . "\n" + let i = i + 1 + endwhile + + if flist == '' + call s:Tlist_Warning_Msg('Error: No matching files are found') + return + endif + + let fcnt = s:Tlist_Process_Filelist(flist) + echon "\rAdded " . fcnt . " files to the taglist" +endfunction + +" Tlist_Extract_Tagtype +" Extract the tag type from the tag text +function! s:Tlist_Extract_Tagtype(tag_line) + " The tag type is after the tag prototype field. The prototype field + " ends with the /;"\t string. We add 4 at the end to skip the characters + " in this special string.. + let start = strridx(a:tag_line, '/;"' . "\t") + 4 + let end = strridx(a:tag_line, 'line:') - 1 + let ttype = strpart(a:tag_line, start, end - start) + + return ttype +endfunction + +" Tlist_Extract_Tag_Scope +" Extract the tag scope from the tag text +function! s:Tlist_Extract_Tag_Scope(tag_line) + let start = strridx(a:tag_line, 'line:') + let end = strridx(a:tag_line, "\t") + if end <= start + return '' + endif + + let tag_scope = strpart(a:tag_line, end + 1) + let tag_scope = strpart(tag_scope, stridx(tag_scope, ':') + 1) + + return tag_scope +endfunction + +" Tlist_Refresh() +" Refresh the taglist +function! s:Tlist_Refresh() + call s:Tlist_Log_Msg('Tlist_Refresh (Skip_Refresh = ' . + \ s:Tlist_Skip_Refresh . ', ' . bufname('%') . ')') + " If we are entering the buffer from one of the taglist functions, then + " no need to refresh the taglist window again. + if s:Tlist_Skip_Refresh + " We still need to update the taglist menu + if g:Tlist_Show_Menu + call s:Tlist_Menu_Update_File(0) + endif + return + endif + + " If part of the winmanager plugin and not configured to process + " tags always and not configured to display the tags menu, then return + if (s:tlist_app_name == 'winmanager') && !g:Tlist_Process_File_Always + \ && !g:Tlist_Show_Menu + return + endif + + " Skip buffers with 'buftype' set to nofile, nowrite, quickfix or help + if &buftype != '' + return + endif + + let filename = fnamemodify(bufname('%'), ':p') + let ftype = s:Tlist_Get_Buffer_Filetype('%') + + " If the file doesn't support tag listing, skip it + if s:Tlist_Skip_File(filename, ftype) + return + endif + + let tlist_win = bufwinnr(g:TagList_title) + + " If the taglist window is not opened and not configured to process + " tags always and not displaying the tags menu, then return + if tlist_win == -1 && !g:Tlist_Process_File_Always && !g:Tlist_Show_Menu + return + endif + + let fidx = s:Tlist_Get_File_Index(filename) + if fidx == -1 + " Check whether this file is removed based on user request + " If it is, then don't display the tags for this file + if s:Tlist_User_Removed_File(filename) + return + endif + + " If the taglist should not be auto updated, then return + if !g:Tlist_Auto_Update + return + endif + endif + + let cur_lnum = line('.') + + if fidx == -1 + " Update the tags for the file + let fidx = s:Tlist_Process_File(filename, ftype) + else + let mtime = getftime(filename) + if s:tlist_{fidx}_mtime != mtime + " Invalidate the tags listed for this file + let s:tlist_{fidx}_valid = 0 + + " Update the taglist and the window + call Tlist_Update_File(filename, ftype) + + " Store the new file modification time + let s:tlist_{fidx}_mtime = mtime + endif + endif + + " Update the taglist window + if tlist_win != -1 + " Disable screen updates + let old_lazyredraw = &lazyredraw + set nolazyredraw + + " Save the current window number + let save_winnr = winnr() + + " Goto the taglist window + call s:Tlist_Window_Goto_Window() + + if !g:Tlist_Auto_Highlight_Tag || !g:Tlist_Highlight_Tag_On_BufEnter + " Save the cursor position + let save_line = line('.') + let save_col = col('.') + endif + + " Update the taglist window + call s:Tlist_Window_Refresh_File(filename, ftype) + + " Open the fold for the file + exe "silent! " . s:tlist_{fidx}_start . "," . + \ s:tlist_{fidx}_end . "foldopen!" + + if g:Tlist_Highlight_Tag_On_BufEnter && g:Tlist_Auto_Highlight_Tag + if g:Tlist_Show_One_File && s:tlist_cur_file_idx != fidx + " If displaying tags for only one file in the taglist + " window and about to display the tags for a new file, + " then center the current tag line for the new file + let center_tag_line = 1 + else + let center_tag_line = 0 + endif + + " Highlight the current tag + call s:Tlist_Window_Highlight_Tag(filename, cur_lnum, 1, center_tag_line) + else + " Restore the cursor position + if v:version >= 601 + call cursor(save_line, save_col) + else + exe save_line + exe 'normal! ' . save_col . '|' + endif + endif + + " Jump back to the original window + if save_winnr != winnr() + call s:Tlist_Exe_Cmd_No_Acmds(save_winnr . 'wincmd w') + endif + + " Restore screen updates + let &lazyredraw = old_lazyredraw + endif + + " Update the taglist menu + if g:Tlist_Show_Menu + call s:Tlist_Menu_Update_File(0) + endif +endfunction + +" Tlist_Change_Sort() +" Change the sort order of the tag listing +" caller == 'cmd', command used in the taglist window +" caller == 'menu', taglist menu +" action == 'toggle', toggle sort from name to order and vice versa +" action == 'set', set the sort order to sort_type +function! s:Tlist_Change_Sort(caller, action, sort_type) + call s:Tlist_Log_Msg('Tlist_Change_Sort (caller = ' . a:caller . + \ ', action = ' . a:action . ', sort_type = ' . a:sort_type . ')') + if a:caller == 'cmd' + let fidx = s:Tlist_Window_Get_File_Index_By_Linenum(line('.')) + if fidx == -1 + return + endif + + " Remove the previous highlighting + match none + elseif a:caller == 'menu' + let fidx = s:Tlist_Get_File_Index(fnamemodify(bufname('%'), ':p')) + if fidx == -1 + return + endif + endif + + if a:action == 'toggle' + let sort_type = s:tlist_{fidx}_sort_type + + " Toggle the sort order from 'name' to 'order' and vice versa + if sort_type == 'name' + let s:tlist_{fidx}_sort_type = 'order' + else + let s:tlist_{fidx}_sort_type = 'name' + endif + else + let s:tlist_{fidx}_sort_type = a:sort_type + endif + + " Invalidate the tags listed for this file + let s:tlist_{fidx}_valid = 0 + + if a:caller == 'cmd' + " Save the current line for later restoration + let curline = '\V\^' . getline('.') . '\$' + + call s:Tlist_Window_Refresh_File(s:tlist_{fidx}_filename, + \ s:tlist_{fidx}_filetype) + + exe s:tlist_{fidx}_start . ',' . s:tlist_{fidx}_end . 'foldopen!' + + " Go back to the cursor line before the tag list is sorted + call search(curline, 'w') + + call s:Tlist_Menu_Update_File(1) + else + call s:Tlist_Menu_Remove_File() + + call s:Tlist_Refresh() + endif +endfunction + +" Tlist_Update_Current_File() +" Update taglist for the current buffer by regenerating the tag list +" Contributed by WEN Guopeng. +function! s:Tlist_Update_Current_File() + call s:Tlist_Log_Msg('Tlist_Update_Current_File()') + if winnr() == bufwinnr(g:TagList_title) + " In the taglist window. Update the current file + call s:Tlist_Window_Update_File() + else + " Not in the taglist window. Update the current buffer + let filename = fnamemodify(bufname('%'), ':p') + let fidx = s:Tlist_Get_File_Index(filename) + if fidx != -1 + let s:tlist_{fidx}_valid = 0 + endif + let ft = s:Tlist_Get_Buffer_Filetype('%') + call Tlist_Update_File(filename, ft) + endif +endfunction + +" Tlist_Window_Update_File() +" Update the tags displayed in the taglist window +function! s:Tlist_Window_Update_File() + call s:Tlist_Log_Msg('Tlist_Window_Update_File()') + let fidx = s:Tlist_Window_Get_File_Index_By_Linenum(line('.')) + if fidx == -1 + return + endif + + " Remove the previous highlighting + match none + + " Save the current line for later restoration + let curline = '\V\^' . getline('.') . '\$' + + let s:tlist_{fidx}_valid = 0 + + " Update the taglist window + call s:Tlist_Window_Refresh_File(s:tlist_{fidx}_filename, + \ s:tlist_{fidx}_filetype) + + exe s:tlist_{fidx}_start . ',' . s:tlist_{fidx}_end . 'foldopen!' + + " Go back to the tag line before the list is updated + call search(curline, 'w') +endfunction + +" Tlist_Window_Get_Tag_Type_By_Linenum() +" Return the tag type index for the specified line in the taglist window +function! s:Tlist_Window_Get_Tag_Type_By_Linenum(fidx, lnum) + let ftype = s:tlist_{a:fidx}_filetype + + " Determine to which tag type the current line number belongs to using the + " tag type start line number and the number of tags in a tag type + let i = 1 + while i <= s:tlist_{ftype}_count + let ttype = s:tlist_{ftype}_{i}_name + let start_lnum = + \ s:tlist_{a:fidx}_start + s:tlist_{a:fidx}_{ttype}_offset + let end = start_lnum + s:tlist_{a:fidx}_{ttype}_count + if a:lnum >= start_lnum && a:lnum <= end + break + endif + let i = i + 1 + endwhile + + " Current line doesn't belong to any of the displayed tag types + if i > s:tlist_{ftype}_count + return '' + endif + + return ttype +endfunction + +" Tlist_Window_Get_Tag_Index() +" Return the tag index for the specified line in the taglist window +function! s:Tlist_Window_Get_Tag_Index(fidx, lnum) + let ttype = s:Tlist_Window_Get_Tag_Type_By_Linenum(a:fidx, a:lnum) + + " Current line doesn't belong to any of the displayed tag types + if ttype == '' + return 0 + endif + + " Compute the index into the displayed tags for the tag type + let ttype_lnum = s:tlist_{a:fidx}_start + s:tlist_{a:fidx}_{ttype}_offset + let tidx = a:lnum - ttype_lnum + if tidx == 0 + return 0 + endif + + " Get the corresponding tag line and return it + return s:tlist_{a:fidx}_{ttype}_{tidx} +endfunction + +" Tlist_Window_Highlight_Line +" Highlight the current line +function! s:Tlist_Window_Highlight_Line() + " Clear previously selected name + match none + + " Highlight the current line + if g:Tlist_Display_Prototype == 0 + let pat = '/\%' . line('.') . 'l\s\+\zs.*/' + else + let pat = '/\%' . line('.') . 'l.*/' + endif + + exe 'match TagListTagName ' . pat +endfunction + +" Tlist_Window_Open_File +" Open the specified file in either a new window or an existing window +" and place the cursor at the specified tag pattern +function! s:Tlist_Window_Open_File(win_ctrl, filename, tagpat) + call s:Tlist_Log_Msg('Tlist_Window_Open_File (' . a:filename . ',' . + \ a:win_ctrl . ')') + let prev_Tlist_Skip_Refresh = s:Tlist_Skip_Refresh + let s:Tlist_Skip_Refresh = 1 + + if s:tlist_app_name == "winmanager" + " Let the winmanager edit the file + call WinManagerFileEdit(a:filename, a:win_ctrl == 'newwin') + else + + if a:win_ctrl == 'newtab' + " Create a new tab + exe 'tabnew ' . escape(a:filename, ' ') + " Open the taglist window in the new tab + call s:Tlist_Window_Open() + endif + + if a:win_ctrl == 'checktab' + " Check whether the file is present in any of the tabs. + " If the file is present in the current tab, then use the + " current tab. + if bufwinnr(a:filename) != -1 + let file_present_in_tab = 1 + let i = tabpagenr() + else + let i = 1 + let bnum = bufnr(a:filename) + let file_present_in_tab = 0 + while i <= tabpagenr('$') + if index(tabpagebuflist(i), bnum) != -1 + let file_present_in_tab = 1 + break + endif + let i += 1 + endwhile + endif + + if file_present_in_tab + " Goto the tab containing the file + exe 'tabnext ' . i + else + " Open a new tab + exe 'tabnew ' . escape(a:filename, ' ') + + " Open the taglist window + call s:Tlist_Window_Open() + endif + endif + + let winnum = -1 + if a:win_ctrl == 'prevwin' + " Open the file in the previous window, if it is usable + let cur_win = winnr() + wincmd p + if &buftype == '' && !&previewwindow + exe "edit " . escape(a:filename, ' ') + let winnum = winnr() + else + " Previous window is not usable + exe cur_win . 'wincmd w' + endif + endif + + " Goto the window containing the file. If the window is not there, open a + " new window + if winnum == -1 + let winnum = bufwinnr(a:filename) + endif + + if winnum == -1 + " Locate the previously used window for opening a file + let fwin_num = 0 + let first_usable_win = 0 + + let i = 1 + let bnum = winbufnr(i) + while bnum != -1 + if getwinvar(i, 'tlist_file_window') == 'yes' + let fwin_num = i + break + endif + if first_usable_win == 0 && + \ getbufvar(bnum, '&buftype') == '' && + \ !getwinvar(i, '&previewwindow') + " First non-taglist, non-plugin and non-preview window + let first_usable_win = i + endif + let i = i + 1 + let bnum = winbufnr(i) + endwhile + + " If a previously used window is not found, then use the first + " non-taglist window + if fwin_num == 0 + let fwin_num = first_usable_win + endif + + if fwin_num != 0 + " Jump to the file window + exe fwin_num . "wincmd w" + + " If the user asked to jump to the tag in a new window, then split + " the existing window into two. + if a:win_ctrl == 'newwin' + split + endif + exe "edit " . escape(a:filename, ' ') + else + " Open a new window + if g:Tlist_Use_Horiz_Window + exe 'leftabove split ' . escape(a:filename, ' ') + else + if winbufnr(2) == -1 + " Only the taglist window is present + if g:Tlist_Use_Right_Window + exe 'leftabove vertical split ' . + \ escape(a:filename, ' ') + else + exe 'rightbelow vertical split ' . + \ escape(a:filename, ' ') + endif + + " Go to the taglist window to change the window size to + " the user configured value + call s:Tlist_Exe_Cmd_No_Acmds('wincmd p') + if g:Tlist_Use_Horiz_Window + exe 'resize ' . g:Tlist_WinHeight + else + exe 'vertical resize ' . g:Tlist_WinWidth + endif + " Go back to the file window + call s:Tlist_Exe_Cmd_No_Acmds('wincmd p') + else + " A plugin or help window is also present + wincmd w + exe 'leftabove split ' . escape(a:filename, ' ') + endif + endif + endif + " Mark the window, so that it can be reused. + call s:Tlist_Window_Mark_File_Window() + else + if v:version >= 700 + " If the file is opened in more than one window, then check + " whether the last accessed window has the selected file. + " If it does, then use that window. + let lastwin_bufnum = winbufnr(winnr('#')) + if bufnr(a:filename) == lastwin_bufnum + let winnum = winnr('#') + endif + endif + exe winnum . 'wincmd w' + + " If the user asked to jump to the tag in a new window, then split the + " existing window into two. + if a:win_ctrl == 'newwin' + split + endif + endif + endif + + " Jump to the tag + if a:tagpat != '' + " Add the current cursor position to the jump list, so that user can + " jump back using the ' and ` marks. + mark ' + silent call search(a:tagpat, 'w') + + " Bring the line to the middle of the window + normal! z. + + " If the line is inside a fold, open the fold + if foldclosed('.') != -1 + .foldopen + endif + endif + + " If the user selects to preview the tag then jump back to the + " taglist window + if a:win_ctrl == 'preview' + " Go back to the taglist window + let winnum = bufwinnr(g:TagList_title) + exe winnum . 'wincmd w' + else + " If the user has selected to close the taglist window, when a + " tag is selected, close the taglist window + if g:Tlist_Close_On_Select + call s:Tlist_Window_Goto_Window() + close + + " Go back to the window displaying the selected file + let wnum = bufwinnr(a:filename) + if wnum != -1 && wnum != winnr() + call s:Tlist_Exe_Cmd_No_Acmds(wnum . 'wincmd w') + endif + endif + endif + + let s:Tlist_Skip_Refresh = prev_Tlist_Skip_Refresh +endfunction + +" Tlist_Window_Jump_To_Tag() +" Jump to the location of the current tag +" win_ctrl == useopen - Reuse the existing file window +" win_ctrl == newwin - Open a new window +" win_ctrl == preview - Preview the tag +" win_ctrl == prevwin - Open in previous window +" win_ctrl == newtab - Open in new tab +function! s:Tlist_Window_Jump_To_Tag(win_ctrl) + call s:Tlist_Log_Msg('Tlist_Window_Jump_To_Tag(' . a:win_ctrl . ')') + " Do not process comment lines and empty lines + let curline = getline('.') + if curline =~ '^\s*$' || curline[0] == '"' + return + endif + + " If inside a closed fold, then use the first line of the fold + " and jump to the file. + let lnum = foldclosed('.') + if lnum == -1 + " Jump to the selected tag or file + let lnum = line('.') + else + " Open the closed fold + .foldopen! + endif + + let fidx = s:Tlist_Window_Get_File_Index_By_Linenum(lnum) + if fidx == -1 + return + endif + + " Get the tag output for the current tag + let tidx = s:Tlist_Window_Get_Tag_Index(fidx, lnum) + if tidx != 0 + let tagpat = s:Tlist_Get_Tag_SearchPat(fidx, tidx) + + " Highlight the tagline + call s:Tlist_Window_Highlight_Line() + else + " Selected a line which is not a tag name. Just edit the file + let tagpat = '' + endif + + call s:Tlist_Window_Open_File(a:win_ctrl, s:tlist_{fidx}_filename, tagpat) +endfunction + +" Tlist_Window_Show_Info() +" Display information about the entry under the cursor +function! s:Tlist_Window_Show_Info() + call s:Tlist_Log_Msg('Tlist_Window_Show_Info()') + + " Clear the previously displayed line + echo + + " Do not process comment lines and empty lines + let curline = getline('.') + if curline =~ '^\s*$' || curline[0] == '"' + return + endif + + " If inside a fold, then don't display the prototype + if foldclosed('.') != -1 + return + endif + + let lnum = line('.') + + " Get the file index + let fidx = s:Tlist_Window_Get_File_Index_By_Linenum(lnum) + if fidx == -1 + return + endif + + if lnum == s:tlist_{fidx}_start + " Cursor is on a file name + let fname = s:tlist_{fidx}_filename + if strlen(fname) > 50 + let fname = fnamemodify(fname, ':t') + endif + echo fname . ', Filetype=' . s:tlist_{fidx}_filetype . + \ ', Tag count=' . s:tlist_{fidx}_tag_count + return + endif + + " Get the tag output line for the current tag + let tidx = s:Tlist_Window_Get_Tag_Index(fidx, lnum) + if tidx == 0 + " Cursor is on a tag type + let ttype = s:Tlist_Window_Get_Tag_Type_By_Linenum(fidx, lnum) + if ttype == '' + return + endif + + let ttype_name = '' + + let ftype = s:tlist_{fidx}_filetype + let i = 1 + while i <= s:tlist_{ftype}_count + if ttype == s:tlist_{ftype}_{i}_name + let ttype_name = s:tlist_{ftype}_{i}_fullname + break + endif + let i = i + 1 + endwhile + + echo 'Tag type=' . ttype_name . + \ ', Tag count=' . s:tlist_{fidx}_{ttype}_count + return + endif + + " Get the tag search pattern and display it + echo s:Tlist_Get_Tag_Prototype(fidx, tidx) +endfunction + +" Tlist_Find_Nearest_Tag_Idx +" Find the tag idx nearest to the supplied line number +" Returns -1, if a tag couldn't be found for the specified line number +function! s:Tlist_Find_Nearest_Tag_Idx(fidx, linenum) + let sort_type = s:tlist_{a:fidx}_sort_type + + let left = 1 + let right = s:tlist_{a:fidx}_tag_count + + if sort_type == 'order' + " Tags sorted by order, use a binary search. + " The idea behind this function is taken from the ctags.vim script (by + " Alexey Marinichev) available at the Vim online website. + + " If the current line is the less than the first tag, then no need to + " search + let first_lnum = s:Tlist_Get_Tag_Linenum(a:fidx, 1) + + if a:linenum < first_lnum + return -1 + endif + + while left < right + let middle = (right + left + 1) / 2 + let middle_lnum = s:Tlist_Get_Tag_Linenum(a:fidx, middle) + + if middle_lnum == a:linenum + let left = middle + break + endif + + if middle_lnum > a:linenum + let right = middle - 1 + else + let left = middle + endif + endwhile + else + " Tags sorted by name, use a linear search. (contributed by Dave + " Eggum). + " Look for a tag with a line number less than or equal to the supplied + " line number. If multiple tags are found, then use the tag with the + " line number closest to the supplied line number. IOW, use the tag + " with the highest line number. + let closest_lnum = 0 + let final_left = 0 + while left <= right + let lnum = s:Tlist_Get_Tag_Linenum(a:fidx, left) + + if lnum < a:linenum && lnum > closest_lnum + let closest_lnum = lnum + let final_left = left + elseif lnum == a:linenum + let closest_lnum = lnum + let final_left = left + break + else + let left = left + 1 + endif + endwhile + if closest_lnum == 0 + return -1 + endif + if left >= right + let left = final_left + endif + endif + + return left +endfunction + +" Tlist_Window_Highlight_Tag() +" Highlight the current tag +" cntx == 1, Called by the taglist plugin itself +" cntx == 2, Forced by the user through the TlistHighlightTag command +" center = 1, move the tag line to the center of the taglist window +function! s:Tlist_Window_Highlight_Tag(filename, cur_lnum, cntx, center) + " Highlight the current tag only if the user configured the + " taglist plugin to do so or if the user explictly invoked the + " command to highlight the current tag. + if !g:Tlist_Auto_Highlight_Tag && a:cntx == 1 + return + endif + + if a:filename == '' + return + endif + + " Make sure the taglist window is present + let winnum = bufwinnr(g:TagList_title) + if winnum == -1 + call s:Tlist_Warning_Msg('Error: Taglist window is not open') + return + endif + + let fidx = s:Tlist_Get_File_Index(a:filename) + if fidx == -1 + return + endif + + " If the file is currently not displayed in the taglist window, then retrn + if !s:tlist_{fidx}_visible + return + endif + + " If there are no tags for this file, then no need to proceed further + if s:tlist_{fidx}_tag_count == 0 + return + endif + + " Ignore all autocommands + let old_ei = &eventignore + set eventignore=all + + " Save the original window number + let org_winnr = winnr() + + if org_winnr == winnum + let in_taglist_window = 1 + else + let in_taglist_window = 0 + endif + + " Go to the taglist window + if !in_taglist_window + exe winnum . 'wincmd w' + endif + + " Clear previously selected name + match none + + let tidx = s:Tlist_Find_Nearest_Tag_Idx(fidx, a:cur_lnum) + if tidx == -1 + " Make sure the current tag line is visible in the taglist window. + " Calling the winline() function makes the line visible. Don't know + " of a better way to achieve this. + let lnum = line('.') + + if lnum < s:tlist_{fidx}_start || lnum > s:tlist_{fidx}_end + " Move the cursor to the beginning of the file + exe s:tlist_{fidx}_start + endif + + if foldclosed('.') != -1 + .foldopen + endif + + call winline() + + if !in_taglist_window + exe org_winnr . 'wincmd w' + endif + + " Restore the autocommands + let &eventignore = old_ei + return + endif + + " Extract the tag type + let ttype = s:Tlist_Get_Tag_Type_By_Tag(fidx, tidx) + + " Compute the line number + " Start of file + Start of tag type + offset + let lnum = s:tlist_{fidx}_start + s:tlist_{fidx}_{ttype}_offset + + \ s:tlist_{fidx}_{tidx}_ttype_idx + + " Goto the line containing the tag + exe lnum + + " Open the fold + if foldclosed('.') != -1 + .foldopen + endif + + if a:center + " Move the tag line to the center of the taglist window + normal! z. + else + " Make sure the current tag line is visible in the taglist window. + " Calling the winline() function makes the line visible. Don't know + " of a better way to achieve this. + call winline() + endif + + " Highlight the tag name + call s:Tlist_Window_Highlight_Line() + + " Go back to the original window + if !in_taglist_window + exe org_winnr . 'wincmd w' + endif + + " Restore the autocommands + let &eventignore = old_ei + return +endfunction + +" Tlist_Get_Tag_Prototype_By_Line +" Get the prototype for the tag on or before the specified line number in the +" current buffer +function! Tlist_Get_Tag_Prototype_By_Line(...) + if a:0 == 0 + " Arguments are not supplied. Use the current buffer name + " and line number + let filename = bufname('%') + let linenr = line('.') + elseif a:0 == 2 + " Filename and line number are specified + let filename = a:1 + let linenr = a:2 + if linenr !~ '\d\+' + " Invalid line number + return "" + endif + else + " Sufficient arguments are not supplied + let msg = 'Usage: Tlist_Get_Tag_Prototype_By_Line <filename> ' . + \ '<line_number>' + call s:Tlist_Warning_Msg(msg) + return "" + endif + + " Expand the file to a fully qualified name + let filename = fnamemodify(filename, ':p') + if filename == '' + return "" + endif + + let fidx = s:Tlist_Get_File_Index(filename) + if fidx == -1 + return "" + endif + + " If there are no tags for this file, then no need to proceed further + if s:tlist_{fidx}_tag_count == 0 + return "" + endif + + " Get the tag text using the line number + let tidx = s:Tlist_Find_Nearest_Tag_Idx(fidx, linenr) + if tidx == -1 + return "" + endif + + return s:Tlist_Get_Tag_Prototype(fidx, tidx) +endfunction + +" Tlist_Get_Tagname_By_Line +" Get the tag name on or before the specified line number in the +" current buffer +function! Tlist_Get_Tagname_By_Line(...) + if a:0 == 0 + " Arguments are not supplied. Use the current buffer name + " and line number + let filename = bufname('%') + let linenr = line('.') + elseif a:0 == 2 + " Filename and line number are specified + let filename = a:1 + let linenr = a:2 + if linenr !~ '\d\+' + " Invalid line number + return "" + endif + else + " Sufficient arguments are not supplied + let msg = 'Usage: Tlist_Get_Tagname_By_Line <filename> <line_number>' + call s:Tlist_Warning_Msg(msg) + return "" + endif + + " Make sure the current file has a name + let filename = fnamemodify(filename, ':p') + if filename == '' + return "" + endif + + let fidx = s:Tlist_Get_File_Index(filename) + if fidx == -1 + return "" + endif + + " If there are no tags for this file, then no need to proceed further + if s:tlist_{fidx}_tag_count == 0 + return "" + endif + + " Get the tag name using the line number + let tidx = s:Tlist_Find_Nearest_Tag_Idx(fidx, linenr) + if tidx == -1 + return "" + endif + + return s:tlist_{fidx}_{tidx}_tag_name +endfunction + +" Tlist_Window_Move_To_File +" Move the cursor to the beginning of the current file or the next file +" or the previous file in the taglist window +" dir == -1, move to start of current or previous function +" dir == 1, move to start of next function +function! s:Tlist_Window_Move_To_File(dir) + if foldlevel('.') == 0 + " Cursor is on a non-folded line (it is not in any of the files) + " Move it to a folded line + if a:dir == -1 + normal! zk + else + " While moving down to the start of the next fold, + " no need to do go to the start of the next file. + normal! zj + return + endif + endif + + let fidx = s:Tlist_Window_Get_File_Index_By_Linenum(line('.')) + if fidx == -1 + return + endif + + let cur_lnum = line('.') + + if a:dir == -1 + if cur_lnum > s:tlist_{fidx}_start + " Move to the beginning of the current file + exe s:tlist_{fidx}_start + return + endif + + if fidx != 0 + " Move to the beginning of the previous file + let fidx = fidx - 1 + else + " Cursor is at the first file, wrap around to the last file + let fidx = s:tlist_file_count - 1 + endif + + exe s:tlist_{fidx}_start + return + else + " Move to the beginning of the next file + let fidx = fidx + 1 + + if fidx >= s:tlist_file_count + " Cursor is at the last file, wrap around to the first file + let fidx = 0 + endif + + if s:tlist_{fidx}_start != 0 + exe s:tlist_{fidx}_start + endif + return + endif +endfunction + +" Tlist_Session_Load +" Load a taglist session (information about all the displayed files +" and the tags) from the specified file +function! s:Tlist_Session_Load(...) + if a:0 == 0 || a:1 == '' + call s:Tlist_Warning_Msg('Usage: TlistSessionLoad <filename>') + return + endif + + let sessionfile = a:1 + + if !filereadable(sessionfile) + let msg = 'Taglist: Error - Unable to open file ' . sessionfile + call s:Tlist_Warning_Msg(msg) + return + endif + + " Mark the current window as the file window + call s:Tlist_Window_Mark_File_Window() + + " Source the session file + exe 'source ' . sessionfile + + let new_file_count = g:tlist_file_count + unlet! g:tlist_file_count + + let i = 0 + while i < new_file_count + let ftype = g:tlist_{i}_filetype + unlet! g:tlist_{i}_filetype + + if !exists('s:tlist_' . ftype . '_count') + if s:Tlist_FileType_Init(ftype) == 0 + let i = i + 1 + continue + endif + endif + + let fname = g:tlist_{i}_filename + unlet! g:tlist_{i}_filename + + let fidx = s:Tlist_Get_File_Index(fname) + if fidx != -1 + let s:tlist_{fidx}_visible = 0 + let i = i + 1 + continue + else + " As we are loading the tags from the session file, if this + " file was previously deleted by the user, now we need to + " add it back. So remove the file from the deleted list. + call s:Tlist_Update_Remove_List(fname, 0) + endif + + let fidx = s:Tlist_Init_File(fname, ftype) + + let s:tlist_{fidx}_filename = fname + + let s:tlist_{fidx}_sort_type = g:tlist_{i}_sort_type + unlet! g:tlist_{i}_sort_type + + let s:tlist_{fidx}_filetype = ftype + let s:tlist_{fidx}_mtime = getftime(fname) + + let s:tlist_{fidx}_start = 0 + let s:tlist_{fidx}_end = 0 + + let s:tlist_{fidx}_valid = 1 + + let s:tlist_{fidx}_tag_count = g:tlist_{i}_tag_count + unlet! g:tlist_{i}_tag_count + + let j = 1 + while j <= s:tlist_{fidx}_tag_count + let s:tlist_{fidx}_{j}_tag = g:tlist_{i}_{j}_tag + let s:tlist_{fidx}_{j}_tag_name = g:tlist_{i}_{j}_tag_name + let s:tlist_{fidx}_{j}_ttype_idx = g:tlist_{i}_{j}_ttype_idx + unlet! g:tlist_{i}_{j}_tag + unlet! g:tlist_{i}_{j}_tag_name + unlet! g:tlist_{i}_{j}_ttype_idx + let j = j + 1 + endwhile + + let j = 1 + while j <= s:tlist_{ftype}_count + let ttype = s:tlist_{ftype}_{j}_name + + if exists('g:tlist_' . i . '_' . ttype) + let s:tlist_{fidx}_{ttype} = g:tlist_{i}_{ttype} + unlet! g:tlist_{i}_{ttype} + let s:tlist_{fidx}_{ttype}_offset = 0 + let s:tlist_{fidx}_{ttype}_count = g:tlist_{i}_{ttype}_count + unlet! g:tlist_{i}_{ttype}_count + + let k = 1 + while k <= s:tlist_{fidx}_{ttype}_count + let s:tlist_{fidx}_{ttype}_{k} = g:tlist_{i}_{ttype}_{k} + unlet! g:tlist_{i}_{ttype}_{k} + let k = k + 1 + endwhile + else + let s:tlist_{fidx}_{ttype} = '' + let s:tlist_{fidx}_{ttype}_offset = 0 + let s:tlist_{fidx}_{ttype}_count = 0 + endif + + let j = j + 1 + endwhile + + let i = i + 1 + endwhile + + " If the taglist window is open, then update it + let winnum = bufwinnr(g:TagList_title) + if winnum != -1 + let save_winnr = winnr() + + " Goto the taglist window + call s:Tlist_Window_Goto_Window() + + " Refresh the taglist window + call s:Tlist_Window_Refresh() + + " Go back to the original window + if save_winnr != winnr() + call s:Tlist_Exe_Cmd_No_Acmds('wincmd p') + endif + endif +endfunction + +" Tlist_Session_Save +" Save a taglist session (information about all the displayed files +" and the tags) into the specified file +function! s:Tlist_Session_Save(...) + if a:0 == 0 || a:1 == '' + call s:Tlist_Warning_Msg('Usage: TlistSessionSave <filename>') + return + endif + + let sessionfile = a:1 + + if s:tlist_file_count == 0 + " There is nothing to save + call s:Tlist_Warning_Msg('Warning: Taglist is empty. Nothing to save.') + return + endif + + if filereadable(sessionfile) + let ans = input('Do you want to overwrite ' . sessionfile . ' (Y/N)?') + if ans !=? 'y' + return + endif + + echo "\n" + endif + + let old_verbose = &verbose + set verbose&vim + + exe 'redir! > ' . sessionfile + + silent! echo '" Taglist session file. This file is auto-generated.' + silent! echo '" File information' + silent! echo 'let tlist_file_count = ' . s:tlist_file_count + + let i = 0 + + while i < s:tlist_file_count + " Store information about the file + silent! echo 'let tlist_' . i . "_filename = '" . + \ s:tlist_{i}_filename . "'" + silent! echo 'let tlist_' . i . '_sort_type = "' . + \ s:tlist_{i}_sort_type . '"' + silent! echo 'let tlist_' . i . '_filetype = "' . + \ s:tlist_{i}_filetype . '"' + silent! echo 'let tlist_' . i . '_tag_count = ' . + \ s:tlist_{i}_tag_count + " Store information about all the tags + let j = 1 + while j <= s:tlist_{i}_tag_count + let txt = escape(s:tlist_{i}_{j}_tag, '"\\') + silent! echo 'let tlist_' . i . '_' . j . '_tag = "' . txt . '"' + silent! echo 'let tlist_' . i . '_' . j . '_tag_name = "' . + \ s:tlist_{i}_{j}_tag_name . '"' + silent! echo 'let tlist_' . i . '_' . j . '_ttype_idx' . ' = ' . + \ s:tlist_{i}_{j}_ttype_idx + let j = j + 1 + endwhile + + " Store information about all the tags grouped by their type + let ftype = s:tlist_{i}_filetype + let j = 1 + while j <= s:tlist_{ftype}_count + let ttype = s:tlist_{ftype}_{j}_name + if s:tlist_{i}_{ttype}_count != 0 + let txt = escape(s:tlist_{i}_{ttype}, '"\') + let txt = substitute(txt, "\n", "\\\\n", 'g') + silent! echo 'let tlist_' . i . '_' . ttype . ' = "' . + \ txt . '"' + silent! echo 'let tlist_' . i . '_' . ttype . '_count = ' . + \ s:tlist_{i}_{ttype}_count + let k = 1 + while k <= s:tlist_{i}_{ttype}_count + silent! echo 'let tlist_' . i . '_' . ttype . '_' . k . + \ ' = ' . s:tlist_{i}_{ttype}_{k} + let k = k + 1 + endwhile + endif + let j = j + 1 + endwhile + + silent! echo + + let i = i + 1 + endwhile + + redir END + + let &verbose = old_verbose +endfunction + +" Tlist_Buffer_Removed +" A buffer is removed from the Vim buffer list. Remove the tags defined +" for that file +function! s:Tlist_Buffer_Removed(filename) + call s:Tlist_Log_Msg('Tlist_Buffer_Removed (' . a:filename . ')') + + " Make sure a valid filename is supplied + if a:filename == '' + return + endif + + " Get tag list index of the specified file + let fidx = s:Tlist_Get_File_Index(a:filename) + if fidx == -1 + " File not present in the taglist + return + endif + + " Remove the file from the list + call s:Tlist_Remove_File(fidx, 0) +endfunction + +" When a buffer is deleted, remove the file from the taglist +autocmd BufDelete * silent call s:Tlist_Buffer_Removed(expand('<afile>:p')) + +" Tlist_Window_Open_File_Fold +" Open the fold for the specified file and close the fold for all the +" other files +function! s:Tlist_Window_Open_File_Fold(acmd_bufnr) + call s:Tlist_Log_Msg('Tlist_Window_Open_File_Fold (' . a:acmd_bufnr . ')') + + " Make sure the taglist window is present + let winnum = bufwinnr(g:TagList_title) + if winnum == -1 + call s:Tlist_Warning_Msg('Taglist: Error - Taglist window is not open') + return + endif + + " Save the original window number + let org_winnr = winnr() + if org_winnr == winnum + let in_taglist_window = 1 + else + let in_taglist_window = 0 + endif + + if in_taglist_window + " When entering the taglist window, no need to update the folds + return + endif + + " Go to the taglist window + if !in_taglist_window + call s:Tlist_Exe_Cmd_No_Acmds(winnum . 'wincmd w') + endif + + " Close all the folds + silent! %foldclose + + " Get tag list index of the specified file + let fname = fnamemodify(bufname(a:acmd_bufnr + 0), ':p') + if filereadable(fname) + let fidx = s:Tlist_Get_File_Index(fname) + if fidx != -1 + " Open the fold for the file + exe "silent! " . s:tlist_{fidx}_start . "," . + \ s:tlist_{fidx}_end . "foldopen" + endif + endif + + " Go back to the original window + if !in_taglist_window + call s:Tlist_Exe_Cmd_No_Acmds(org_winnr . 'wincmd w') + endif +endfunction + +" Tlist_Window_Check_Auto_Open +" Open the taglist window automatically on Vim startup. +" Open the window only when files present in any of the Vim windows support +" tags. +function! s:Tlist_Window_Check_Auto_Open() + let open_window = 0 + + let i = 1 + let buf_num = winbufnr(i) + while buf_num != -1 + let filename = fnamemodify(bufname(buf_num), ':p') + let ft = s:Tlist_Get_Buffer_Filetype(buf_num) + if !s:Tlist_Skip_File(filename, ft) + let open_window = 1 + break + endif + let i = i + 1 + let buf_num = winbufnr(i) + endwhile + + if open_window + call s:Tlist_Window_Toggle() + endif +endfunction + +" Tlist_Refresh_Folds +" Remove and create the folds for all the files displayed in the taglist +" window. Used after entering a tab. If this is not done, then the folds +" are not properly created for taglist windows displayed in multiple tabs. +function! s:Tlist_Refresh_Folds() + let winnum = bufwinnr(g:TagList_title) + if winnum == -1 + return + endif + + let save_wnum = winnr() + exe winnum . 'wincmd w' + + " First remove all the existing folds + normal! zE + + " Create the folds for each in the tag list + let fidx = 0 + while fidx < s:tlist_file_count + let ftype = s:tlist_{fidx}_filetype + + " Create the folds for each tag type in a file + let j = 1 + while j <= s:tlist_{ftype}_count + let ttype = s:tlist_{ftype}_{j}_name + if s:tlist_{fidx}_{ttype}_count + let s = s:tlist_{fidx}_start + s:tlist_{fidx}_{ttype}_offset + let e = s + s:tlist_{fidx}_{ttype}_count + exe s . ',' . e . 'fold' + endif + let j = j + 1 + endwhile + + exe s:tlist_{fidx}_start . ',' . s:tlist_{fidx}_end . 'fold' + exe 'silent! ' . s:tlist_{fidx}_start . ',' . + \ s:tlist_{fidx}_end . 'foldopen!' + let fidx = fidx + 1 + endwhile + + exe save_wnum . 'wincmd w' +endfunction + +function! s:Tlist_Menu_Add_Base_Menu() + call s:Tlist_Log_Msg('Adding the base menu') + + " Add the menu + anoremenu <silent> T&ags.Refresh\ menu :call <SID>Tlist_Menu_Refresh()<CR> + anoremenu <silent> T&ags.Sort\ menu\ by.Name + \ :call <SID>Tlist_Change_Sort('menu', 'set', 'name')<CR> + anoremenu <silent> T&ags.Sort\ menu\ by.Order + \ :call <SID>Tlist_Change_Sort('menu', 'set', 'order')<CR> + anoremenu T&ags.-SEP1- : + + if &mousemodel =~ 'popup' + anoremenu <silent> PopUp.T&ags.Refresh\ menu + \ :call <SID>Tlist_Menu_Refresh()<CR> + anoremenu <silent> PopUp.T&ags.Sort\ menu\ by.Name + \ :call <SID>Tlist_Change_Sort('menu', 'set', 'name')<CR> + anoremenu <silent> PopUp.T&ags.Sort\ menu\ by.Order + \ :call <SID>Tlist_Change_Sort('menu', 'set', 'order')<CR> + anoremenu PopUp.T&ags.-SEP1- : + endif +endfunction + +let s:menu_char_prefix = + \ '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' + +" Tlist_Menu_Get_Tag_Type_Cmd +" Get the menu command for the specified tag type +" fidx - File type index +" ftype - File Type +" add_ttype_name - To add or not to add the tag type name to the menu entries +" ttype_idx - Tag type index +function! s:Tlist_Menu_Get_Tag_Type_Cmd(fidx, ftype, add_ttype_name, ttype_idx) + " Curly brace variable name optimization + let ftype_ttype_idx = a:ftype . '_' . a:ttype_idx + + let ttype = s:tlist_{ftype_ttype_idx}_name + if a:add_ttype_name + " If the tag type name contains space characters, escape it. This + " will be used to create the menu entries. + let ttype_fullname = escape(s:tlist_{ftype_ttype_idx}_fullname, ' ') + endif + + " Curly brace variable name optimization + let fidx_ttype = a:fidx . '_' . ttype + + " Number of tag entries for this tag type + let tcnt = s:tlist_{fidx_ttype}_count + if tcnt == 0 " No entries for this tag type + return '' + endif + + let mcmd = '' + + " Create the menu items for the tags. + " Depending on the number of tags of this type, split the menu into + " multiple sub-menus, if needed. + if tcnt > g:Tlist_Max_Submenu_Items + let j = 1 + while j <= tcnt + let final_index = j + g:Tlist_Max_Submenu_Items - 1 + if final_index > tcnt + let final_index = tcnt + endif + + " Extract the first and last tag name and form the + " sub-menu name + let tidx = s:tlist_{fidx_ttype}_{j} + let first_tag = s:tlist_{a:fidx}_{tidx}_tag_name + + let tidx = s:tlist_{fidx_ttype}_{final_index} + let last_tag = s:tlist_{a:fidx}_{tidx}_tag_name + + " Truncate the names, if they are greater than the + " max length + let first_tag = strpart(first_tag, 0, g:Tlist_Max_Tag_Length) + let last_tag = strpart(last_tag, 0, g:Tlist_Max_Tag_Length) + + " Form the menu command prefix + let m_prefix = 'anoremenu <silent> T\&ags.' + if a:add_ttype_name + let m_prefix = m_prefix . ttype_fullname . '.' + endif + let m_prefix = m_prefix . first_tag . '\.\.\.' . last_tag . '.' + + " Character prefix used to number the menu items (hotkey) + let m_prefix_idx = 0 + + while j <= final_index + let tidx = s:tlist_{fidx_ttype}_{j} + + let tname = s:tlist_{a:fidx}_{tidx}_tag_name + + let mcmd = mcmd . m_prefix . '\&' . + \ s:menu_char_prefix[m_prefix_idx] . '\.' . + \ tname . ' :call <SID>Tlist_Menu_Jump_To_Tag(' . + \ tidx . ')<CR>|' + + let m_prefix_idx = m_prefix_idx + 1 + let j = j + 1 + endwhile + endwhile + else + " Character prefix used to number the menu items (hotkey) + let m_prefix_idx = 0 + + let m_prefix = 'anoremenu <silent> T\&ags.' + if a:add_ttype_name + let m_prefix = m_prefix . ttype_fullname . '.' + endif + let j = 1 + while j <= tcnt + let tidx = s:tlist_{fidx_ttype}_{j} + + let tname = s:tlist_{a:fidx}_{tidx}_tag_name + + let mcmd = mcmd . m_prefix . '\&' . + \ s:menu_char_prefix[m_prefix_idx] . '\.' . + \ tname . ' :call <SID>Tlist_Menu_Jump_To_Tag(' . tidx + \ . ')<CR>|' + + let m_prefix_idx = m_prefix_idx + 1 + let j = j + 1 + endwhile + endif + + return mcmd +endfunction + +" Update the taglist menu with the tags for the specified file +function! s:Tlist_Menu_File_Refresh(fidx) + call s:Tlist_Log_Msg('Refreshing the tag menu for ' . s:tlist_{a:fidx}_filename) + " The 'B' flag is needed in the 'cpoptions' option + let old_cpoptions = &cpoptions + set cpoptions&vim + + exe s:tlist_{a:fidx}_menu_cmd + + " Update the popup menu (if enabled) + if &mousemodel =~ 'popup' + let cmd = substitute(s:tlist_{a:fidx}_menu_cmd, ' T\\&ags\.', + \ ' PopUp.T\\\&ags.', "g") + exe cmd + endif + + " The taglist menu is not empty now + let s:tlist_menu_empty = 0 + + " Restore the 'cpoptions' settings + let &cpoptions = old_cpoptions +endfunction + +" Tlist_Menu_Update_File +" Add the taglist menu +function! s:Tlist_Menu_Update_File(clear_menu) + if !has('gui_running') + " Not running in GUI mode + return + endif + + call s:Tlist_Log_Msg('Updating the tag menu, clear_menu = ' . a:clear_menu) + + " Remove the tags menu + if a:clear_menu + call s:Tlist_Menu_Remove_File() + + endif + + " Skip buffers with 'buftype' set to nofile, nowrite, quickfix or help + if &buftype != '' + return + endif + + let filename = fnamemodify(bufname('%'), ':p') + let ftype = s:Tlist_Get_Buffer_Filetype('%') + + " If the file doesn't support tag listing, skip it + if s:Tlist_Skip_File(filename, ftype) + return + endif + + let fidx = s:Tlist_Get_File_Index(filename) + if fidx == -1 || !s:tlist_{fidx}_valid + " Check whether this file is removed based on user request + " If it is, then don't display the tags for this file + if s:Tlist_User_Removed_File(filename) + return + endif + + " Process the tags for the file + let fidx = s:Tlist_Process_File(filename, ftype) + if fidx == -1 + return + endif + endif + + let fname = escape(fnamemodify(bufname('%'), ':t'), '.') + if fname != '' + exe 'anoremenu T&ags.' . fname . ' <Nop>' + anoremenu T&ags.-SEP2- : + endif + + if !s:tlist_{fidx}_tag_count + return + endif + + if s:tlist_{fidx}_menu_cmd != '' + " Update the menu with the cached command + call s:Tlist_Menu_File_Refresh(fidx) + + return + endif + + " We are going to add entries to the tags menu, so the menu won't be + " empty + let s:tlist_menu_empty = 0 + + let cmd = '' + + " Determine whether the tag type name needs to be added to the menu + " If more than one tag type is present in the taglisting for a file, + " then the tag type name needs to be present + let add_ttype_name = -1 + let i = 1 + while i <= s:tlist_{ftype}_count && add_ttype_name < 1 + let ttype = s:tlist_{ftype}_{i}_name + if s:tlist_{fidx}_{ttype}_count + let add_ttype_name = add_ttype_name + 1 + endif + let i = i + 1 + endwhile + + " Process the tags by the tag type and get the menu command + let i = 1 + while i <= s:tlist_{ftype}_count + let mcmd = s:Tlist_Menu_Get_Tag_Type_Cmd(fidx, ftype, add_ttype_name, i) + if mcmd != '' + let cmd = cmd . mcmd + endif + + let i = i + 1 + endwhile + + " Cache the menu command for reuse + let s:tlist_{fidx}_menu_cmd = cmd + + " Update the menu + call s:Tlist_Menu_File_Refresh(fidx) +endfunction + +" Tlist_Menu_Remove_File +" Remove the tags displayed in the tags menu +function! s:Tlist_Menu_Remove_File() + if !has('gui_running') || s:tlist_menu_empty + return + endif + + call s:Tlist_Log_Msg('Removing the tags menu for a file') + + " Cleanup the Tags menu + silent! unmenu T&ags + if &mousemodel =~ 'popup' + silent! unmenu PopUp.T&ags + endif + + " Add a dummy menu item to retain teared off menu + noremenu T&ags.Dummy l + + silent! unmenu! T&ags + if &mousemodel =~ 'popup' + silent! unmenu! PopUp.T&ags + endif + + call s:Tlist_Menu_Add_Base_Menu() + + " Remove the dummy menu item + unmenu T&ags.Dummy + + let s:tlist_menu_empty = 1 +endfunction + +" Tlist_Menu_Refresh +" Refresh the taglist menu +function! s:Tlist_Menu_Refresh() + call s:Tlist_Log_Msg('Refreshing the tags menu') + let fidx = s:Tlist_Get_File_Index(fnamemodify(bufname('%'), ':p')) + if fidx != -1 + " Invalidate the cached menu command + let s:tlist_{fidx}_menu_cmd = '' + endif + + " Update the taglist, menu and window + call s:Tlist_Update_Current_File() +endfunction + +" Tlist_Menu_Jump_To_Tag +" Jump to the selected tag +function! s:Tlist_Menu_Jump_To_Tag(tidx) + let fidx = s:Tlist_Get_File_Index(fnamemodify(bufname('%'), ':p')) + if fidx == -1 + return + endif + + let tagpat = s:Tlist_Get_Tag_SearchPat(fidx, a:tidx) + if tagpat == '' + return + endif + + " Add the current cursor position to the jump list, so that user can + " jump back using the ' and ` marks. + mark ' + + silent call search(tagpat, 'w') + + " Bring the line to the middle of the window + normal! z. + + " If the line is inside a fold, open the fold + if foldclosed('.') != -1 + .foldopen + endif +endfunction + +" Tlist_Menu_Init +" Initialize the taglist menu +function! s:Tlist_Menu_Init() + call s:Tlist_Menu_Add_Base_Menu() + + " Automatically add the tags defined in the current file to the menu + augroup TagListMenuCmds + autocmd! + + if !g:Tlist_Process_File_Always + autocmd BufEnter * call s:Tlist_Refresh() + endif + autocmd BufLeave * call s:Tlist_Menu_Remove_File() + augroup end + + call s:Tlist_Menu_Update_File(0) +endfunction + +" Tlist_Vim_Session_Load +" Initialize the taglist window/buffer, which is created when loading +" a Vim session file. +function! s:Tlist_Vim_Session_Load() + call s:Tlist_Log_Msg('Tlist_Vim_Session_Load') + + " Initialize the taglist window + call s:Tlist_Window_Init() + + " Refresh the taglist window + call s:Tlist_Window_Refresh() +endfunction + +" Tlist_Set_App +" Set the name of the external plugin/application to which taglist +" belongs. +" Taglist plugin is part of another plugin like cream or winmanager. +function! Tlist_Set_App(name) + if a:name == "" + return + endif + + let s:tlist_app_name = a:name +endfunction + +" Winmanager integration + +" Initialization required for integration with winmanager +function! TagList_Start() + " If current buffer is not taglist buffer, then don't proceed + if bufname('%') != '__Tag_List__' + return + endif + + call Tlist_Set_App('winmanager') + + " Get the current filename from the winmanager plugin + let bufnum = WinManagerGetLastEditedFile() + if bufnum != -1 + let filename = fnamemodify(bufname(bufnum), ':p') + let ftype = s:Tlist_Get_Buffer_Filetype(bufnum) + endif + + " Initialize the taglist window, if it is not already initialized + if !exists('s:tlist_window_initialized') || !s:tlist_window_initialized + call s:Tlist_Window_Init() + call s:Tlist_Window_Refresh() + let s:tlist_window_initialized = 1 + endif + + " Update the taglist window + if bufnum != -1 + if !s:Tlist_Skip_File(filename, ftype) && g:Tlist_Auto_Update + call s:Tlist_Window_Refresh_File(filename, ftype) + endif + endif +endfunction + +function! TagList_IsValid() + return 0 +endfunction + +function! TagList_WrapUp() + return 0 +endfunction + +" restore 'cpo' +let &cpo = s:cpo_save +unlet s:cpo_save + diff --git a/.vim/syntax/django.vim b/.vim/syntax/django.vim new file mode 100644 index 0000000..3ad4816 --- /dev/null +++ b/.vim/syntax/django.vim @@ -0,0 +1,93 @@ +" Vim syntax file +" Language: Django template +" Maintainer: Dave Hodder <dmh@dmh.org.uk> +" Last Change: 2007 Apr 21 + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +syntax case match + +" Mark illegal characters +syn match djangoError "%}\|}}\|#}" + +" Django template built-in tags and parameters +" 'comment' doesn't appear here because it gets special treatment +syn keyword djangoStatement contained and as block endblock by cycle debug else +syn keyword djangoStatement contained extends filter endfilter firstof for +syn keyword djangoStatement contained endfor if endif ifchanged endifchanged +syn keyword djangoStatement contained ifequal endifequal ifnotequal +syn keyword djangoStatement contained endifnotequal in include load not now or +syn keyword djangoStatement contained parsed regroup reversed spaceless +syn keyword djangoStatement contained endspaceless ssi templatetag openblock +syn keyword djangoStatement contained closeblock openvariable closevariable +syn keyword djangoStatement contained openbrace closebrace opencomment +syn keyword djangoStatement contained closecomment widthratio url with endwith +syn keyword djangoStatement contained get_current_language trans noop blocktrans +syn keyword djangoStatement contained endblocktrans get_available_languages +syn keyword djangoStatement contained get_current_language_bidi plural + +" Django templete built-in filters +syn keyword djangoFilter contained add addslashes capfirst center cut date +syn keyword djangoFilter contained default default_if_none dictsort +syn keyword djangoFilter contained dictsortreversed divisibleby escape +syn keyword djangoFilter contained filesizeformat first fix_ampersands +syn keyword djangoFilter contained floatformat get_digit join length length_is +syn keyword djangoFilter contained linebreaks linebreaksbr linenumbers ljust +syn keyword djangoFilter contained lower make_list phone2numeric pluralize +syn keyword djangoFilter contained pprint random removetags rjust slice slugify +syn keyword djangoFilter contained stringformat striptags +syn keyword djangoFilter contained time timesince timeuntil title +syn keyword djangoFilter contained truncatewords unordered_list upper urlencode +syn keyword djangoFilter contained urlize urlizetrunc wordcount wordwrap yesno + +" Keywords to highlight within comments +syn keyword djangoTodo contained TODO FIXME XXX + +" Django template constants (always surrounded by double quotes) +syn region djangoArgument contained start=/"/ skip=/\\"/ end=/"/ + +" Mark illegal characters within tag and variables blocks +syn match djangoTagError contained "#}\|{{\|[^%]}}\|[<>!&#]" +syn match djangoVarError contained "#}\|{%\|%}\|[<>!&#%]" + +" Django template tag and variable blocks +syn region djangoTagBlock start="{%" end="%}" contains=djangoStatement,djangoFilter,djangoArgument,djangoTagError display +syn region djangoVarBlock start="{{" end="}}" contains=djangoFilter,djangoArgument,djangoVarError display + +" Django template 'comment' tag and comment block +syn region djangoComment start="{%\s*comment\s*%}" end="{%\s*endcomment\s*%}" contains=djangoTodo +syn region djangoComBlock start="{#" end="#}" contains=djangoTodo + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_django_syn_inits") + if version < 508 + let did_django_syn_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + + HiLink djangoTagBlock PreProc + HiLink djangoVarBlock PreProc + HiLink djangoStatement Statement + HiLink djangoFilter Identifier + HiLink djangoArgument Constant + HiLink djangoTagError Error + HiLink djangoVarError Error + HiLink djangoError Error + HiLink djangoComment Comment + HiLink djangoComBlock Comment + HiLink djangoTodo Todo + + delcommand HiLink +endif + +let b:current_syntax = "django" diff --git a/.vim/syntax/htmldjango.vim b/.vim/syntax/htmldjango.vim new file mode 100644 index 0000000..4b13863 --- /dev/null +++ b/.vim/syntax/htmldjango.vim @@ -0,0 +1,34 @@ +" Vim syntax file +" Language: Django HTML template +" Maintainer: Dave Hodder <dmh@dmh.org.uk> +" Last Change: 2007 Jan 26 + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +if !exists("main_syntax") + let main_syntax = 'html' +endif + +if version < 600 + so <sfile>:p:h/django.vim + so <sfile>:p:h/html.vim +else + runtime! syntax/django.vim + runtime! syntax/html.vim + unlet b:current_syntax +endif + +syn cluster djangoBlocks add=djangoTagBlock,djangoVarBlock,djangoComment,djangoComBlock + +syn region djangoTagBlock start="{%" end="%}" contains=djangoStatement,djangoFilter,djangoArgument,djangoTagError display containedin=ALLBUT,@djangoBlocks +syn region djangoVarBlock start="{{" end="}}" contains=djangoFilter,djangoArgument,djangoVarError display containedin=ALLBUT,@djangoBlocks +syn region djangoComment start="{%\s*comment\s*%}" end="{%\s*endcomment\s*%}" contains=djangoTodo containedin=ALLBUT,@djangoBlocks +syn region djangoComBlock start="{#" end="#}" contains=djangoTodo containedin=ALLBUT,@djangoBlocks + +let b:current_syntax = "htmldjango" diff --git a/.vim/syntax/prolog.vim b/.vim/syntax/prolog.vim new file mode 100644 index 0000000..58de71f --- /dev/null +++ b/.vim/syntax/prolog.vim @@ -0,0 +1,119 @@ +" Vim syntax file +" Language: PROLOG +" Maintainers: Thomas Koehler <jean-luc@picard.franken.de> +" Last Change: 2009 Dec 04 +" URL: http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/prolog.vim + +" There are two sets of highlighting in here: +" If the "prolog_highlighting_clean" variable exists, it is rather sparse. +" Otherwise you get more highlighting. + +" Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" Prolog is case sensitive. +syn case match + +" Very simple highlighting for comments, clause heads and +" character codes. It respects prolog strings and atoms. + +syn region prologCComment start=+/\*+ end=+\*/+ +syn match prologComment +%.*+ + +syn keyword prologKeyword module meta_predicate multifile dynamic +syn match prologCharCode +0'\\\=.+ +syn region prologString start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn region prologAtom start=+'+ skip=+\\\\\|\\'+ end=+'+ +syn region prologClauseHead start=+^[a-z][^(]*(+ skip=+\.[^ ]+ end=+:-\|\.$\|\.[ ]\|-->+ contains=prologComment,prologCComment,prologString + +if !exists("prolog_highlighting_clean") + + " some keywords + " some common predicates are also highlighted as keywords + " is there a better solution? + syn keyword prologKeyword abolish current_output peek_code + syn keyword prologKeyword append current_predicate put_byte + syn keyword prologKeyword arg current_prolog_flag put_char + syn keyword prologKeyword asserta fail put_code + syn keyword prologKeyword assertz findall read + syn keyword prologKeyword at_end_of_stream float read_term + syn keyword prologKeyword atom flush_output repeat + syn keyword prologKeyword atom_chars functor retract + syn keyword prologKeyword atom_codes get_byte set_input + syn keyword prologKeyword atom_concat get_char set_output + syn keyword prologKeyword atom_length get_code set_prolog_flag + syn keyword prologKeyword atomic halt set_stream_position + syn keyword prologKeyword bagof integer setof + syn keyword prologKeyword call is stream_property + syn keyword prologKeyword catch nl sub_atom + syn keyword prologKeyword char_code nonvar throw + syn keyword prologKeyword char_conversion number true + syn keyword prologKeyword clause number_chars unify_with_occurs_check + syn keyword prologKeyword close number_codes var + syn keyword prologKeyword compound once write + syn keyword prologKeyword copy_term op write_canonical + syn keyword prologKeyword current_char_conversion open write_term + syn keyword prologKeyword current_input peek_byte writeq + syn keyword prologKeyword current_op peek_char + + syn match prologOperator "=\\=\|=:=\|\\==\|=<\|==\|>=\|\\=\|\\+\|<\|>\|=" + syn match prologAsIs "===\|\\===\|<=\|=>" + + syn match prologNumber "\<[0123456789]*\>'\@!" + syn match prologCommentError "\*/" + syn match prologSpecialCharacter ";" + syn match prologSpecialCharacter "!" + syn match prologQuestion "?-.*\." contains=prologNumber + + +endif + +syn sync maxlines=50 + + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_prolog_syn_inits") + if version < 508 + let did_prolog_syn_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + + " The default highlighting. + HiLink prologComment Comment + HiLink prologCComment Comment + HiLink prologCharCode Special + + if exists ("prolog_highlighting_clean") + + HiLink prologKeyword Statement + HiLink prologClauseHead Statement + + else + + HiLink prologKeyword Keyword + HiLink prologClauseHead Constant + HiLink prologQuestion PreProc + HiLink prologSpecialCharacter Special + HiLink prologNumber Number + HiLink prologAsIs Normal + HiLink prologCommentError Error + HiLink prologAtom String + HiLink prologString String + HiLink prologOperator Operator + + endif + + delcommand HiLink +endif + +let b:current_syntax = "prolog" + +" vim: ts=8 diff --git a/.vim/syntax/rnc.vim b/.vim/syntax/rnc.vim new file mode 100644 index 0000000..411046f --- /dev/null +++ b/.vim/syntax/rnc.vim @@ -0,0 +1,59 @@ +" Vim syntax file +" Language: RELAX NG Compact Syntax +" Maintainer: Hans Fugal <hans@fugal.net> +" Last Change: $Date: 2003/06/22 03:32:14 $ +" $Id: rnc.vim,v 1.7 2003/06/22 03:32:14 fugalh Exp $ + +if version < 600 + syntax clear +elseif exists ("b:current_syntax") + finish +endif + +" add the character '-' and '.' to iskeyword. +set iskeyword+=45,46 + +" Comments +syn match Comment /^\s*#[^#].*$/ +syn match Documentation /^\s*##.*$/ + +" Literals +syn region literalSegment start=/"/ end=/"/ + +syn match patternSpecial /[,&|?*+\\]/ +syn match Identifier /\k\+\s*\(&=\|=\||=\)\@=/ nextgroup=assignMethod +syn match assignMethod /&=\|=\||=/ +syn match namespace /\k\+\(:\(\k\|\*\)\)\@=/ +syn region Annotation excludenl start=/\[/ end=/\]/ contains=ALLBUT,Identifier,patternName + +" named patterns (element and attribute) +syn keyword patternKeyword element attribute nextgroup=patternName skipwhite skipempty +syn match patternName /\k\+/ contained + +" Keywords +syn keyword patternKeyword list mixed parent empty text notAllowed externalRef grammar +syn keyword grammarContentKeyword div include +syn keyword startKeyword start +syn keyword datatypeNameKeyword string token +syn keyword namespaceUriKeyword inherit +syn keyword inheritKeyword inherit +syn keyword declKeyword namespace default datatypes + +" Links +hi link patternKeyword keyword +hi link patternName Identifier +hi link grammarContentKeyword keyword +hi link startKeyword keyword +hi link datatypeNameKeyword keyword +hi link namespaceUriKeyword keyword +hi link inheritKeyword keyword +hi link declKeyword keyword + +hi link literalSegment String +hi link Documentation Comment + +hi link patternSpecial Special +hi link namespace Type + +let b:current_syntax = "rnc" +" vim: ts=8 sw=4 smarttab diff --git a/.vim/syntax/syntax-r.vim b/.vim/syntax/syntax-r.vim new file mode 100644 index 0000000..a4548a4 --- /dev/null +++ b/.vim/syntax/syntax-r.vim @@ -0,0 +1,621 @@ +" Vim syntax file +" Language: R (GNU S) +" Maintainer: Tom Payne <tom@tompayne.org> +" Last Change: 2003 May 11 +" Filenames: *.r +" URL: http://www.tompayne.org/vim/syntax/r.vim +" +" Modified by Jeremy Stephens and Will Gray. +" +" Options: +" You can set these options in your vimrc file. +" +" For set option do: let OPTION_NAME = 1 +" For clear option do: let OPTION_NAME = 0 +" +" For highlighting internal/primitive functions: +" r_package_internal +" +" For highlighting package 'base' functions: +" r_package_base +" +" For highlighting package 'graphics' functions: +" r_package_graphics +" +" For highlighting package 'stats' functions: +" r_package_stats +" +" For highlighting package 'tools' functions: +" r_package_tools +" +" For highlighting package 'methods' functions: +" r_package_methods +" +" For highlighting package 'utils' functions: +" r_package_utils +" +" If you want all possible R package highlighting: +" r_package_all + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +if version >= 600 + setlocal iskeyword=@,48-57,_,. +else + set iskeyword=@,48-57,_,. +endif + +if !exists("r_package_all") + let r_package_all = 1 +endif +if exists("r_package_all") && r_package_all != 0 + if !exists("r_package_internal") + let r_package_internal = 1 + endif + if !exists("r_package_base") + let r_package_base = 1 + endif + if !exists("r_package_methods") + let r_package_methods = 1 + endif + if !exists("r_package_graphics") + let r_package_graphics = 1 + endif + if !exists("r_package_stats") + let r_package_stats = 1 + endif + if !exists("r_package_utils") + let r_package_utils = 1 + endif + if !exists("r_package_tools") + let r_package_tools = 1 + endif +endif + +syn case match + +" Comment +syn match rComment /\#.*/ + +" Constant +" string enclosed in double quotes +syn region rString matchgroup=rStringDelimiter start=/"/ skip=/\\\\\|\\"/ end=/"/ +" string enclosed in single quotes +syn region rString matchgroup=rStringDelimiter start=/'/ skip=/\\\\\|\\'/ end=/'/ +" number with no fractional part or exponent +syn match rNumber /\d\+/ +" floating point number with integer and fractional parts and optional exponent +syn match rFloat /\d\+\.\d*\([Ee][-+]\=\d\+\)\=/ +" floating point number with no integer part and optional exponent +syn match rFloat /\.\d\+\([Ee][-+]\=\d\+\)\=/ +" floating point number with no fractional part and optional exponent +syn match rFloat /\d\+[Ee][-+]\=\d\+/ + +" Identifier +" identifier with leading letter and optional following keyword characters +syn match rIdentifier /\a\k*/ +" identifier with leading period, one or more digits, and at least one non-digit keyword character +syn match rIdentifier /\.\d*\K\k*/ + +syn match rFunction /\a\k*(/me=e-1 nextgroup=rParenRegion + +" Statement +syn keyword rStatement break next return +syn keyword rConditional if else +syn keyword rRepeat for in repeat while + +" Constant +syn keyword rConstant LETTERS letters month.ab month.name pi +syn keyword rConstant NULL +syn keyword rBoolean FALSE TRUE +syn keyword rNumber NA + +syn match rArrow /<\{1,2}-/ +syn match rArrow /->\{1,2}/ + +" Type +syn keyword rType array category character complex double function integer list logical matrix numeric vector data.frame + +" internal/primitive functions (probably has some duplicates) +if exists("r_package_internal") && r_package_internal != 0 + syn keyword rPrimitiveStatement stop warning gettext ngettext bindtextdomain .addCondHands + syn keyword rPrimitiveStatement .resetCondHands .signalCondition .dfltStop .dfltWarn .addRestart + syn keyword rPrimitiveStatement .getRestart .invokeRestart .addTryHandlers geterrmessage restart + syn keyword rPrimitiveStatement function as.function.default .subset switch browser debug undebug + syn keyword rPrimitiveStatement .primTrace .primUntrace .Internal on.exit Recall delay delayedAssign + syn keyword rPrimitiveStatement .Primitive identical crossprod all any vector complex matrix length row + syn keyword rPrimitiveStatement col c unlist cbind rbind drop oldClass class unclass names dimnames + syn keyword rPrimitiveStatement all.names dim attributes attr comment get mget exists assign remove + syn keyword rPrimitiveStatement duplicated unique which.min which.max match pmatch charmatch match.call + syn keyword rPrimitiveStatement complete.cases attach detach search round atan log signif abs floor + syn keyword rPrimitiveStatement ceiling sqrt sign trunc exp cos sin tan acos asin cosh sinh tanh acosh + syn keyword rPrimitiveStatement asinh atanh lgamma gamma digamma trigamma pentagamma gammaCody lbeta + syn keyword rPrimitiveStatement beta lchoose choose dchisq pchisq qchisq dexp pexp qexp dgeom pgeom + syn keyword rPrimitiveStatement qgeom dpois ppois qpois dt pt qt dsignrank psignrank qsignrank besselJ + syn keyword rPrimitiveStatement besselY psigamma Re Im Mod Arg Conj dbeta pbeta qbeta dbinom pbinom + syn keyword rPrimitiveStatement qbinom dcauchy pcauchy qcauchy df pf qf dgamma pgamma qgamma dlnorm + syn keyword rPrimitiveStatement plnorm qlnorm dlogis plogis qlogis dnbinom pnbinom qnbinom dnorm pnorm + syn keyword rPrimitiveStatement qnorm dunif punif qunif dweibull pweibull qweibull dnchisq pnchisq + syn keyword rPrimitiveStatement qnchisq dnt pnt qnt dwilcox pwilcox qwilcox besselI besselK dhyper + syn keyword rPrimitiveStatement phyper qhyper dnbeta pnbeta qnbeta dnf pnf qnf dtukey ptukey qtukey + syn keyword rPrimitiveStatement rchisq rexp rgeom rpois rt rsignrank rbeta rbinom rcauchy rf rgamma + syn keyword rPrimitiveStatement rlnorm rlogis rnbinom rnchisq rnorm runif rweibull rwilcox rhyper + syn keyword rPrimitiveStatement rmultinom sample RNGkind set.seed sum min max prod range cov cor cumsum + syn keyword rPrimitiveStatement cumprod cummax cummin as.character as.vector paste format format.info + syn keyword rPrimitiveStatement cat call do.call as.call type.convert as.environment nchar substr + syn keyword rPrimitiveStatement substrgets strsplit abbreviate make.names grep sub gsub regexpr + syn keyword rPrimitiveStatement grep.perl sub.perl gsub.perl regexpr.perl agrep tolower toupper chartr + syn keyword rPrimitiveStatement sprintf make.unique charToRaw rawToChar rawShift intToBits rawToBits + syn keyword rPrimitiveStatement packBits encodeString iconv strtrim is.null is.logical is.integer + syn keyword rPrimitiveStatement is.real is.double is.complex is.character is.symbol is.environment + syn keyword rPrimitiveStatement is.list is.pairlist is.expression is.object is.numeric is.matrix + syn keyword rPrimitiveStatement is.array is.atomic is.recursive is.call is.language is.function + syn keyword rPrimitiveStatement is.single is.vector is.na is.nan is.finite is.infinite proc.time gc.time + syn keyword rPrimitiveStatement Version machine commandArgs int.unzip system system unlink help.start + syn keyword rPrimitiveStatement show.help.item flush.console win.version shell.exec winDialog + syn keyword rPrimitiveStatement winDialogString winMenuNames winMenuItems winMenuAdd winMenuDel + syn keyword rPrimitiveStatement memory.size DLL.version bringToTop select.list readClipboard + syn keyword rPrimitiveStatement writeClipboard chooseFiles getIdentification getWindowHandle + syn keyword rPrimitiveStatement getWindowTitle setWindowTitle wsbrowser pkgbrowser data.manager + syn keyword rPrimitiveStatement package.manager flush.console hsbrowser select.list aqua.custom.print + syn keyword rPrimitiveStatement parse save saveToConn load loadFromConn serializeToConn + syn keyword rPrimitiveStatement unserializeFromConn deparse dput dump substitute quote quit interactive + syn keyword rPrimitiveStatement readline menu print.default prmatrix invisible gc gcinfo gctorture + syn keyword rPrimitiveStatement memory.profile rep list split symbol.C symbol.For is.loaded .C .Fortran + syn keyword rPrimitiveStatement .External .Call .External.graphics .Call.graphics recordGraphics + syn keyword rPrimitiveStatement dyn.load dyn.unload ls typeof eval eval.with.vis expression sys.parent + syn keyword rPrimitiveStatement sys.call sys.frame sys.nframe sys.calls sys.frames sys.on.exit + syn keyword rPrimitiveStatement sys.parents sys.function parent.frame sort is.unsorted psort qsort + syn keyword rPrimitiveStatement radixsort order rank missing nargs scan count.fields readTableHead + syn keyword rPrimitiveStatement t.default aperm builtins edit dataentry args formals body bodyCode + syn keyword rPrimitiveStatement globalenv environment reg.finalizer options sink sink.number lib.fixup + syn keyword rPrimitiveStatement pos.to.env eapply lapply apply colSums colMeans rowSums rowMeans Rprof + syn keyword rPrimitiveStatement object.size mem.limits merge capabilities new.env parent.env visibleflag + syn keyword rPrimitiveStatement file.show file.edit file.create file.remove file.rename file.append + syn keyword rPrimitiveStatement codeFiles.append file.symlink list.files file.exists file.choose + syn keyword rPrimitiveStatement file.info file.access dir.create tempfile tempdir R.home date + syn keyword rPrimitiveStatement index.search getenv putenv getwd setwd basename dirname Sys.info + syn keyword rPrimitiveStatement Sys.sleep getlocale setlocale localeconv path.expand getpid + syn keyword rPrimitiveStatement normalizePath fft mvfft nextn polyroot dev.control dev.copy dev.cur + syn keyword rPrimitiveStatement device dev.next dev.off dev.prev dev.set rgb hsv hcl gray colors palette + syn keyword rPrimitiveStatement plot.new plot.window axis plot.xy text mtext title abline box rect + syn keyword rPrimitiveStatement polygon par readonly.pars segments arrows layout locator identify + syn keyword rPrimitiveStatement strheight strwidth contour contourLines image dend dend.window replay + syn keyword rPrimitiveStatement erase persp filledcontour getGPar playDL setGPar getSnapshot + syn keyword rPrimitiveStatement playSnapshot symbols getGraphicsEvent inherits UseMethod NextMethod + syn keyword rPrimitiveStatement standardGeneric nlm fmin zeroin optim optimhess terms.formula + syn keyword rPrimitiveStatement update.formula model.frame model.matrix D deriv.default loadhistory + syn keyword rPrimitiveStatement savehistory Sys.time as.POSIXct as.POSIXlt format.POSIXlt strptime + syn keyword rPrimitiveStatement mkCode bcClose is.builtin.internal disassemble bcVersion load.from.file + syn keyword rPrimitiveStatement save.to.file putconst stdin stdout stderr readLines writeLines readBin + syn keyword rPrimitiveStatement writeBin readChar writeChar open isOpen isIncomplete isSeekable close + syn keyword rPrimitiveStatement flush file url pipe fifo gzfile unz bzfile seek truncate pushBack + syn keyword rPrimitiveStatement clearPushBackLength pushBackLength textConnection socketConnection + syn keyword rPrimitiveStatement sockSelect getAllConnections summary.connection download nsl gzcon + syn keyword rPrimitiveStatement readDCF getNumRtoCConverters getRtoCConverterDescriptions + syn keyword rPrimitiveStatement getRtoCConverterStatus setToCConverterActiveStatus + syn keyword rPrimitiveStatement removeToCConverterActiveStatus lockEnvironment environmentIsLocked + syn keyword rPrimitiveStatement lockBinding unlockBinding bindingIsLocked makeActiveBinding + syn keyword rPrimitiveStatement bindingIsActive mkUnbound isNamespaceEnv registerNamespace + syn keyword rPrimitiveStatement unregisterNamespace getRegisteredNamespace getNamespaceRegistry + syn keyword rPrimitiveStatement importIntoEnv write.table +endif + +" base functions +if exists("r_package_base") && r_package_base != 0 + syn keyword rBaseStatement gammaCody besselI besselK besselJ besselY .Defunct Version provide getenv + syn keyword rBaseStatement read.table.url scan.url source.url httpclient parse.dcf .Alias reshapeWide + syn keyword rBaseStatement reshapeLong piechart machine Machine Platform restart printNoClass print.coefmat + syn keyword rBaseStatement codes codes.factor codes.ordered anovalist.lm lm.fit.null lm.wfit.null glm.fit.null + syn keyword rBaseStatement print.atomic La.eigen tetragamma pentagamma package.description .Deprecated loadURL + syn keyword rBaseStatement delay La.svd La.chol geterrmessage try comment round signif logb beta lbeta gamma + syn keyword rBaseStatement lgamma digamma trigamma psigamma factorial lfactorial choose lchoose R.Version + syn keyword rBaseStatement commandArgs args cbind rbind .deparseOpts deparse do.call drop format.info gc gcinfo + syn keyword rBaseStatement gctorture is.unsorted mem.limits nchar polyroot readline search searchpaths sprintf + syn keyword rBaseStatement t.default typeof memory.profile capabilities inherits NextMethod data.class + syn keyword rBaseStatement is.numeric.factor is.integer.factor encodeString RNGkind set.seed RNGversion .Script + syn keyword rBaseStatement all.equal all.equal.default all.equal.numeric all.equal.character all.equal.factor + syn keyword rBaseStatement all.equal.formula all.equal.language all.equal.list attr.all.equal all.names all.vars + syn keyword rBaseStatement aperm append apply array slice.index as.logical as.logical.default as.integer + syn keyword rBaseStatement as.integer.default as.double as.double.default as.complex as.complex.default + syn keyword rBaseStatement as.single as.single.default as.character.default as.expression as.expression.default + syn keyword rBaseStatement as.list as.list.default as.list.data.frame as.list.environment as.vector as.matrix + syn keyword rBaseStatement as.matrix.default as.null as.null.default as.function as.function.default as.array + syn keyword rBaseStatement as.symbol as.numeric assign attach detach ls autoload autoloader bquote forwardsolve + syn keyword rBaseStatement backsolve lockEnvironment environmentIsLocked lockBinding bindingIsLocked + syn keyword rBaseStatement makeActiveBinding bindingIsActive unlockBinding builtins by by.default by.data.frame + syn keyword rBaseStatement print.by cat strsplit substr substring abbreviate make.names make.unique chartr + syn keyword rBaseStatement tolower toupper casefold sQuote dQuote chol colSums colMeans rowSums rowMeans + syn keyword rBaseStatement tryCatch withCallingHandlers suppressWarnings simpleCondition simpleError + syn keyword rBaseStatement simpleWarning conditionMessage conditionCall conditionMessage.condition + syn keyword rBaseStatement conditionCall.condition print.condition as.character.condition as.character.error + syn keyword rBaseStatement signalCondition restartDescription restartFormals print.restart isRestart findRestart + syn keyword rBaseStatement computeRestarts invokeRestart invokeRestartInteractively withRestarts + syn keyword rBaseStatement .signalSimpleWarning .handleSimpleError conflicts stdin stdout stderr readLines + syn keyword rBaseStatement writeLines open open.connection isOpen isIncomplete isSeekable close close.connection + syn keyword rBaseStatement flush flush.connection file pipe fifo url gzfile unz bzfile socketConnection + syn keyword rBaseStatement textConnection seek seek.connection truncate truncate.connection pushBack + syn keyword rBaseStatement pushBackLength print.connection summary.connection showConnections getAllConnections + syn keyword rBaseStatement getConnection closeAllConnections readBin writeBin readChar writeChar gzcon + syn keyword rBaseStatement socketSelect contributors getNumCConverters getCConverterDescriptions + syn keyword rBaseStatement getCConverterStatus setCConverterStatus removeCConverter cut cut.default data.matrix + syn keyword rBaseStatement row.names row.names.data.frame row.names.default is.na.data.frame is.data.frame I + syn keyword rBaseStatement print.AsIs t.data.frame dim.data.frame dimnames.data.frame as.data.frame + syn keyword rBaseStatement as.data.frame.default as.data.frame.data.frame as.data.frame.list + syn keyword rBaseStatement as.data.frame.vector as.data.frame.ts as.data.frame.character as.data.frame.matrix + syn keyword rBaseStatement as.data.frame.model.matrix as.data.frame.array as.data.frame.AsIs data.frame + syn keyword rBaseStatement xpdrows.data.frame cbind.data.frame rbind.data.frame print.data.frame + syn keyword rBaseStatement as.matrix.data.frame Math.data.frame Ops.data.frame Summary.data.frame Sys.Date + syn keyword rBaseStatement as.Date as.Date.POSIXct as.Date.POSIXlt as.Date.factor as.Date.character + syn keyword rBaseStatement as.Date.default as.Date.date as.Date.dates format.Date print.Date summary.Date + syn keyword rBaseStatement Ops.Date Math.Date Summary.Date as.character.Date c.Date mean.Date seq.Date cut.Date + syn keyword rBaseStatement julian.Date weekdays.Date months.Date quarters.Date round.Date trunc.Date rep.Date + syn keyword rBaseStatement diff.Date Sys.time Sys.timezone as.POSIXlt as.POSIXct as.POSIXct.Date as.POSIXct.date + syn keyword rBaseStatement as.POSIXct.dates as.POSIXct.POSIXlt as.POSIXct.default format.POSIXlt strptime + syn keyword rBaseStatement format.POSIXct print.POSIXct print.POSIXlt summary.POSIXct summary.POSIXlt Ops.POSIXt + syn keyword rBaseStatement Math.POSIXt Summary.POSIXct Summary.POSIXlt as.character.POSIXt str.POSIXt + syn keyword rBaseStatement is.na.POSIXlt c.POSIXct c.POSIXlt all.equal.POSIXct ISOdatetime ISOdate + syn keyword rBaseStatement as.matrix.POSIXlt mean.POSIXct mean.POSIXlt difftime as.difftime print.difftime + syn keyword rBaseStatement round.difftime Ops.difftime Math.difftime mean.difftime Summary.difftime seq.POSIXt + syn keyword rBaseStatement cut.POSIXt julian julian.POSIXt weekdays weekdays.POSIXt months months.POSIXt + syn keyword rBaseStatement quarters quarters.POSIXt trunc.POSIXt round.POSIXt as.data.frame.POSIXlt rep.POSIXct + syn keyword rBaseStatement rep.POSIXlt diff.POSIXt read.dcf write.dcf delayedAssign diag diff diff.default dput + syn keyword rBaseStatement dget dump duplicated duplicated.default duplicated.data.frame duplicated.matrix + syn keyword rBaseStatement unique unique.default unique.data.frame unique.matrix dyn.load dyn.unload + syn keyword rBaseStatement getNativeSymbolInfo getLoadedDLLs getDLLRegisteredRoutines + syn keyword rBaseStatement getDLLRegisteredRoutines.character getDLLRegisteredRoutines.DLLInfo + syn keyword rBaseStatement print.NativeRoutineList print.DLLRegisteredRoutines getCallingDLL print.DLLInfo + syn keyword rBaseStatement print.DLLInfoList eapply eigen environment .GlobalEnv eval eval.parent evalq new.env + syn keyword rBaseStatement parent.env local Recall with with.default force exists expand.grid factor is.factor + syn keyword rBaseStatement as.factor category levels nlevels as.vector.factor as.character.factor print.factor + syn keyword rBaseStatement Math.factor Summary.factor Ops.factor ordered is.ordered as.ordered Ops.ordered + syn keyword rBaseStatement R.home file.show file.append file.remove file.rename list.files file.path file.exists + syn keyword rBaseStatement file.create file.choose file.copy file.symlink file.info file.access dir.create + syn keyword rBaseStatement format.octmode print.octmode system.file getwd setwd basename dirname Sys.info + syn keyword rBaseStatement Sys.sleep path.expand findInterval formals body alist format format.default + syn keyword rBaseStatement format.char format.pval formatC format.factor format.data.frame format.AsIs prettyNum + syn keyword rBaseStatement subset.data.frame subset subset.default subset.matrix transform.data.frame transform + syn keyword rBaseStatement transform.default stack.data.frame stack stack.default unstack.data.frame unstack + syn keyword rBaseStatement unstack.default get mget Sys.getenv Sys.putenv Sys.getpid gl grep sub gsub regexpr + syn keyword rBaseStatement agrep identical isTRUE ifelse interaction is.vector is.primitive jitter kappa + syn keyword rBaseStatement kappa.lm kappa.default kappa.qr kappa.tri kronecker labels labels.default lapply + syn keyword rBaseStatement lapply lazyLoad testPlatformEquivalence library print.libraryIQR library.dynam + syn keyword rBaseStatement library.dynam.unload require .packages .path.package .find.package print.packageInfo + syn keyword rBaseStatement manglePackageName .getRequiredPackages licence load save save.image sys.load.image + syn keyword rBaseStatement sys.save.image Sys.getlocale Sys.setlocale Sys.localeconv lower.tri mapply match + syn keyword rBaseStatement match match.call pmatch match.arg charmatch char.expand match.fun matrix nrow ncol + syn keyword rBaseStatement NROW NCOL rownames colnames row col crossprod t t.data.frame max.col mean + syn keyword rBaseStatement mean.default mean.data.frame merge merge.default merge.data.frame simpleMessage + syn keyword rBaseStatement suppressMessages message trace untrace .isMethodsDispatchOn tracingState mode + syn keyword rBaseStatement storage.mode names names.default getNamespace loadedNamespaces getNamespaceName + syn keyword rBaseStatement getNamespaceVersion getNamespaceExports getNamespaceImports getNamespaceUsers + syn keyword rBaseStatement getExportedValue attachNamespace loadNamespace loadingNamespaceInfo + syn keyword rBaseStatement saveNamespaceImage topenv unloadNamespace .Import .ImportFrom .Export isNamespace + syn keyword rBaseStatement isBaseNamespace getNamespaceInfo setNamespaceInfo asNamespace namespaceImport + syn keyword rBaseStatement namespaceImportFrom namespaceImportClasses namespaceImportMethods importIntoEnv + syn keyword rBaseStatement namespaceExport .mergeExportMethods packageHasNamespace parseNamespaceFile + syn keyword rBaseStatement .NotYetImplemented .NotYetUsed options getOption outer getRversion as.pairlist + syn keyword rBaseStatement pairlist parse paste pmax pmin pretty print print.default prmatrix noquote + syn keyword rBaseStatement as.matrix.noquote c.noquote print.noquote print.listof print.simple.list is.qr qr + syn keyword rBaseStatement qr.coef qr.qy qr.qty qr.resid qr.fitted qr.Q qr.R qr.X quit q range.default rank raw + syn keyword rBaseStatement as.raw charToRaw rawToChar rawShift rawToBits intToBits packBits count.fields + syn keyword rBaseStatement type.convert read.table read.csv read.delim rep rep.default rep.int replace replicate + syn keyword rBaseStatement rev rev.default rle print.rle inverse.rle rm remove rowsum.default rowsum.data.frame + syn keyword rBaseStatement sample sapply scale scale.default scan seq seq.default sequence .saveRDS .readRDS + syn keyword rBaseStatement serialize unserialize union intersect setdiff setequal is.element sink sink.number + syn keyword rBaseStatement solve.qr solve.default solve qr.solve sort order sort.list source sys.source split + syn keyword rBaseStatement split.default split.data.frame unsplit stop stopifnot warning gettext bindtextdomain + syn keyword rBaseStatement ngettext gettextf strtrim strwrap formatDL sum min max prod all any summary + syn keyword rBaseStatement summary.default summary.factor summary.matrix summary.data.frame svd sweep switch + syn keyword rBaseStatement sys.call sys.calls sys.frame sys.function sys.frames sys.nframe sys.parent + syn keyword rBaseStatement sys.parents sys.status sys.on.exit table print.table summary.table + syn keyword rBaseStatement print.summary.table as.data.frame.table is.table as.table as.table.default prop.table + syn keyword rBaseStatement margin.table tabulate tapply addTaskCallback removeTaskCallback getTaskCallbackNames + syn keyword rBaseStatement taskCallbackManager tempfile tempdir system.time date toString toString.default + syn keyword rBaseStatement traceback system unix unlink zip.file.extract unlist unname upper.tri packageEvent + syn keyword rBaseStatement getHook setHook mat.or.vec is.R shQuote vector logical character integer double + syn keyword rBaseStatement complex single warnings which which.min which.max write write.table write.csv xor + syn keyword rBaseStatement zapsmall is.na c +endif + +" graphics functions +if exists("r_package_graphics") && r_package_graphics != 0 + syn keyword rGraphicsStatement abline arrows assocplot axis axTicks barplot barplot.default box boxplot + syn keyword rGraphicsStatement boxplot.default boxplot.formula boxplot.stats bxp chull contourLines contour + syn keyword rGraphicsStatement contour.default co.intervals panel.smooth coplot curve axis.POSIXct plot.POSIXct + syn keyword rGraphicsStatement plot.POSIXlt hist.POSIXt axis.Date plot.Date hist.Date dotchart filled.contour + syn keyword rGraphicsStatement fourfoldplot grid hist hist.default plot.histogram lines.histogram nclass.Sturges + syn keyword rGraphicsStatement nclass.scott nclass.FD identify identify.default image image.default lcm layout + syn keyword rGraphicsStatement layout.show legend lines lines.default locator matpoints matlines matplot mosaicplot + syn keyword rGraphicsStatement mosaicplot.default mosaicplot.formula mtext pairs pairs.formula pairs.default par + syn keyword rGraphicsStatement persp persp.default pie xy.coords plot plot.function plot.default plot.factor + syn keyword rGraphicsStatement plot.table plot.formula lines.formula points.formula plot.xy plot.new plot.window + syn keyword rGraphicsStatement plot.data.frame .newplot.hook plot.design points points.default polygon rect rug + syn keyword rGraphicsStatement .SSget .SSexists .SSassign split.screen screen erase.screen close.screen segments + syn keyword rGraphicsStatement stars stem stripchart strwidth strheight sunflowerplot symbols text text.default + syn keyword rGraphicsStatement title xinch yinch xyinch xyz.coords +endif + +" stats functions +if exists("r_package_stats") && r_package_stats != 0 + syn keyword rStatsStatement AIC AIC.logLik AIC.default ARMAacf ARMAtoMA C HoltWinters predict.HoltWinters + syn keyword rStatsStatement residuals.HoltWinters plot.HoltWinters print.HoltWinters decompose plot.decomposed.ts + syn keyword rStatsStatement KalmanLike KalmanRun KalmanForecast KalmanSmooth StructTS print.StructTS + syn keyword rStatsStatement predict.StructTS tsdiag.StructTS tsSmooth tsSmooth.StructTS TukeyHSD TukeyHSD.aov + syn keyword rStatsStatement print.TukeyHSD plot.TukeyHSD acf pacf pacf.default plot.acf ccf print.acf add.scope + syn keyword rStatsStatement drop.scope factor.scope step extractAIC extractAIC.coxph extractAIC.survreg + syn keyword rStatsStatement extractAIC.glm extractAIC.lm extractAIC.negbin addmargins aggregate aggregate.default + syn keyword rStatsStatement aggregate.data.frame aggregate.ts printCoefmat print.anova ansari.test + syn keyword rStatsStatement ansari.test.default ansari.test.formula aov print.aov summary.aov print.summary.aov + syn keyword rStatsStatement coef.aov alias alias.formula alias.lm print.aovlist summary.aovlist + syn keyword rStatsStatement print.summary.aovlist coef.listof se.contrast se.contrast.aov se.contrast.aovlist + syn keyword rStatsStatement approx approxfun findInterval ar ar.yw ar.yw.default print.ar predict.ar ar.burg + syn keyword rStatsStatement ar.burg.default ar.mle ar.ols arima print.Arima predict.Arima makeARIMA coef.Arima + syn keyword rStatsStatement vcov.Arima logLik.Arima tsdiag.Arima tsdiag ave bw.nrd bw.SJ bw.ucv bw.bcv + syn keyword rStatsStatement bartlett.test bartlett.test.default bartlett.test.formula binom.test biplot + syn keyword rStatsStatement biplot.default biplot.princomp biplot.prcomp qbirthday pbirthday cancor chisq.test + syn keyword rStatsStatement cmdscale complete.cases confint confint.lm confint.glm confint.nls confint.default + syn keyword rStatsStatement constrOptim contr.poly poly predict.poly makepredictcall.poly polym contrasts + syn keyword rStatsStatement contr.helmert contr.treatment contr.sum contr.SAS cor cov var cor.test + syn keyword rStatsStatement cor.test.default cor.test.formula cov.wt cpgram cutree as.dendrogram + syn keyword rStatsStatement as.dendrogram.hclust .memberDend .midDend midcache.dendrogram print.dendrogram + syn keyword rStatsStatement str.dendrogram plot.dendrogram plotNode plotNodeLimit cut.dendrogram is.leaf + syn keyword rStatsStatement order.dendrogram reorder reorder.dendrogram rev.dendrogram labels.dendrogram + syn keyword rStatsStatement dendrapply heatmap density plot.density print.density D deriv deriv.formula + syn keyword rStatsStatement deriv.default diffinv diffinv.vector diffinv.default diffinv.ts toeplitz dist + syn keyword rStatsStatement format.dist as.matrix.dist as.dist as.dist.default print.dist dexp pexp qexp rexp + syn keyword rStatsStatement dunif punif qunif runif dnorm pnorm qnorm rnorm dcauchy pcauchy qcauchy rcauchy + syn keyword rStatsStatement dgamma pgamma qgamma rgamma dlnorm plnorm qlnorm rlnorm dlogis plogis qlogis rlogis + syn keyword rStatsStatement dweibull pweibull qweibull rweibull dbeta pbeta qbeta rbeta dbinom pbinom qbinom + syn keyword rStatsStatement rbinom dmultinom rmultinom dchisq pchisq qchisq rchisq df pf qf rf dgeom pgeom qgeom + syn keyword rStatsStatement rgeom dhyper phyper qhyper rhyper dnbinom pnbinom qnbinom rnbinom dpois ppois qpois + syn keyword rStatsStatement rpois dt pt qt rt ptukey qtukey dwilcox pwilcox qwilcox rwilcox dsignrank psignrank + syn keyword rStatsStatement qsignrank rsignrank dummy.coef dummy.coef.lm dummy.coef.aovlist ecdf print.ecdf + syn keyword rStatsStatement summary.ecdf plot.ecdf embed expand.model.frame factanal factanal.fit.mle + syn keyword rStatsStatement print.loadings print.factanal varimax promax family print.family power make.link + syn keyword rStatsStatement poisson quasipoisson gaussian binomial quasibinomial Gamma inverse.gaussian quasi fft + syn keyword rStatsStatement mvfft nextn convolve filter fisher.test fivenum fligner.test fligner.test.default + syn keyword rStatsStatement fligner.test.formula friedman.test friedman.test.default friedman.test.formula ftable + syn keyword rStatsStatement ftable.default ftable.formula as.table.ftable write.ftable print.ftable read.ftable + syn keyword rStatsStatement glm glm.control glm.fit print.glm anova.glm anova.glmlist stat.anova summary.glm + syn keyword rStatsStatement print.summary.glm deviance.glm effects.glm family.glm residuals.glm model.frame.glm + syn keyword rStatsStatement weights.glm formula.glm hclust plot.hclust plclust as.hclust as.hclust.default + syn keyword rStatsStatement as.hclust.twins print.hclust cophenetic cophenetic.default cophenetic.dendrogram + syn keyword rStatsStatement print.htest rect.hclust identify.hclust integrate print.integrate interaction.plot + syn keyword rStatsStatement isoreg fitted.isoreg residuals.isoreg print.isoreg plot.isoreg kernel print.tskernel + syn keyword rStatsStatement plot.tskernel df.kernel bandwidth.kernel is.tskernel kernapply kernapply.vector + syn keyword rStatsStatement kernapply.default kernapply.ts kernapply.tskernel kmeans print.kmeans kruskal.test + syn keyword rStatsStatement kruskal.test.default kruskal.test.formula ks.test ksmooth lag lag.default lag.plot lm + syn keyword rStatsStatement lm.fit lm.wfit print.lm summary.lm print.summary.lm residuals.lm weights.default + syn keyword rStatsStatement deviance.lm formula.lm family.lm model.frame.lm variable.names.lm case.names.lm + syn keyword rStatsStatement anova.lm anova.lmlist predict.lm effects.lm model.matrix.lm predict.mlm labels.lm hat + syn keyword rStatsStatement weighted.residuals lm.influence influence influence.lm influence.glm hatvalues + syn keyword rStatsStatement hatvalues.lm rstandard rstandard.lm rstandard.glm rstudent rstudent.lm rstudent.glm + syn keyword rStatsStatement dffits dfbeta dfbeta.lm dfbetas dfbetas.lm covratio cooks.distance cooks.distance.lm + syn keyword rStatsStatement cooks.distance.glm influence.measures print.infl summary.infl loess loess.control + syn keyword rStatsStatement simpleLoess predict.loess predLoess pointwise print.loess summary.loess + syn keyword rStatsStatement print.summary.loess scatter.smooth loess.smooth anova.loess logLik print.logLik + syn keyword rStatsStatement str.logLik as.data.frame.logLik logLik.glm logLik.lm loglin lowess lsfit ls.diag + syn keyword rStatsStatement ls.print mad mahalanobis manova summary.manova print.summary.manova mantelhaen.test + syn keyword rStatsStatement mcnemar.test median medpolish print.medpolish plot.medpolish summary.mlm SSD estVar + syn keyword rStatsStatement SSD.mlm estVar.SSD estVar.mlm Tr proj.matrix Rank Thin.row Thin.col mauchley.test + syn keyword rStatsStatement mauchley.test.mlm mauchley.test.SSD sphericity anova.mlm Pillai Wilks HL Roy + syn keyword rStatsStatement anova.mlmlist deviance.mlm plot.mlm model.tables model.tables.aov se.aov + syn keyword rStatsStatement model.tables.aovlist se.aovlist make.tables.aovproj make.tables.aovprojlist + syn keyword rStatsStatement replications eff.aovlist model.frame.aovlist print.mtable formula formula.default + syn keyword rStatsStatement formula.formula formula.terms formula.data.frame print.formula as.formula terms + syn keyword rStatsStatement terms.default terms.terms print.terms labels.terms delete.response reformulate + syn keyword rStatsStatement drop.terms terms.formula coef coef.default residuals residuals.default deviance + syn keyword rStatsStatement deviance.default fitted fitted.default anova effects weights df.residual + syn keyword rStatsStatement df.residual.default variable.names variable.names.default case.names + syn keyword rStatsStatement case.names.default offset .checkMFClasses .MFclass model.frame model.frame.default + syn keyword rStatsStatement model.weights model.offset model.matrix model.matrix.default model.response + syn keyword rStatsStatement model.extract preplot update is.empty.model makepredictcall makepredictcall.default + syn keyword rStatsStatement .getXlevels monthplot monthplot.StructTS monthplot.stl monthplot.ts monthplot.default + syn keyword rStatsStatement mood.test mood.test.default mood.test.formula na.contiguous na.contiguous.default + syn keyword rStatsStatement na.pass na.action na.action.default na.fail na.fail.default na.omit na.omit.default + syn keyword rStatsStatement na.omit.data.frame na.exclude na.exclude.default na.exclude.data.frame naresid + syn keyword rStatsStatement naresid.default naresid.exclude naprint naprint.default naprint.exclude napredict + syn keyword rStatsStatement napredict.default napredict.exclude nlm optimize uniroot profiler profiler.nls + syn keyword rStatsStatement profile.nls plot.profile.nls numericDeriv nlsModel.plinear nlsModel nls.control nls + syn keyword rStatsStatement coef.nls print.nls summary.nls print.summary.nls coef.summary.nls weights.nls + syn keyword rStatsStatement predict.nls fitted.nls formula.nls residuals.nls logLik.nls df.residual.nls + syn keyword rStatsStatement deviance.nls vcov.nls anova.nls anovalist.nls asOneSidedFormula setNames clearNames + syn keyword rStatsStatement oneway.test optim p.adjust pairwise.t.test pairwise.wilcox.test pairwise.prop.test + syn keyword rStatsStatement pairwise.table print.pairwise.htest plot.lm power.t.test power.prop.test + syn keyword rStatsStatement print.power.htest power.anova.test ppoints ppr ppr.formula ppr.default print.ppr + syn keyword rStatsStatement summary.ppr print.summary.ppr plot.ppr predict.ppr prcomp prcomp.default + syn keyword rStatsStatement prcomp.formula plot.prcomp print.prcomp summary.prcomp print.summary.prcomp + syn keyword rStatsStatement predict.prcomp predict predict.default predict.glm predict.princomp summary.princomp + syn keyword rStatsStatement print.summary.princomp plot.princomp screeplot loadings princomp princomp.formula + syn keyword rStatsStatement princomp.default print.princomp profile proj proj.default proj.lm proj.aov + syn keyword rStatsStatement proj.aovlist terms.aovlist prop.test prop.trend.test qqnorm qqnorm.default qqline + syn keyword rStatsStatement qqplot quade.test quade.test.default quade.test.formula quantile quantile.default IQR + syn keyword rStatsStatement relevel relevel.default relevel.ordered relevel.factor reorder.factor reshape runmed + syn keyword rStatsStatement smoothEnds sd selfStart selfStart.default selfStart.formula getInitial + syn keyword rStatsStatement getInitial.formula getInitial.selfStart getInitial.default sortedXyData + syn keyword rStatsStatement sortedXyData.default NLSstClosestX NLSstClosestX.sortedXyData NLSstRtAsymptote + syn keyword rStatsStatement NLSstRtAsymptote.sortedXyData NLSstLfAsymptote NLSstLfAsymptote.sortedXyData + syn keyword rStatsStatement NLSstAsymptotic NLSstAsymptotic.sortedXyData shapiro.test smooth print.tukeysmooth + syn keyword rStatsStatement summary.tukeysmooth smooth.spline print.smooth.spline predict.smooth.spline + syn keyword rStatsStatement predict.smooth.spline.fit supsmu spectrum spec.taper spec.ar spec.pgram plot.spec + syn keyword rStatsStatement plot.spec.coherency plot.spec.phase spline splinefun stepfun is.stepfun as.stepfun + syn keyword rStatsStatement as.stepfun.default knots knots.stepfun print.stepfun summary.stepfun plot.stepfun + syn keyword rStatsStatement lines.stepfun as.stepfun.isoreg stl print.stl summary.stl plot.stl symnum t.test + syn keyword rStatsStatement t.test.default t.test.formula termplot Box.test PP.test start end frequency time + syn keyword rStatsStatement window cycle deltat ts tsp hasTsp is.ts as.ts as.ts.default .cbind.ts .makeNamesTs + syn keyword rStatsStatement Ops.ts cbind.ts ts.union ts.intersect diff.ts na.omit.ts is.mts start.default + syn keyword rStatsStatement end.default frequency.default deltat.default time.default time.ts cycle.default + syn keyword rStatsStatement cycle.ts print.ts plot.ts lines.ts window.default window.ts t.ts ts.plot arima.sim + syn keyword rStatsStatement line update.default update.formula var.test var.test.default var.test.formula vcov + syn keyword rStatsStatement vcov.glm vcov.lm vcov.mlm vcov.gls vcov.lme weighted.mean wilcox.test + syn keyword rStatsStatement wilcox.test.default wilcox.test.formula xtabs print.xtabs SSasymp SSgompertz + syn keyword rStatsStatement SSweibull .onLoad .onUnload +endif + +" tools functions +if exists("r_package_tools") && r_package_tools != 0 + syn keyword rToolsStatement undoc print.undoc codoc print.codoc codocClasses print.codocClasses codocData + syn keyword rToolsStatement print.codocData checkDocFiles print.checkDocFiles checkDocStyle print.checkDocStyle + syn keyword rToolsStatement checkFF print.checkFF checkReplaceFuns print.checkReplaceFuns checkTnF print.checkTnF + syn keyword rToolsStatement as.alist.call as.alist.symbol Rdinfo Rdcontents Rdindex checkVignettes + syn keyword rToolsStatement print.checkVignettes pkgVignettes buildVignettes vignetteMetaRE vignetteInfo + syn keyword rToolsStatement .writeVignetteHtmlIndex vignetteDepends getVigDepMtrx makeLazyLoadDB makeLazyLoading + syn keyword rToolsStatement package.dependencies pkgDepends getDepList isSatisfied buildDepList getDepMtrx + syn keyword rToolsStatement getRemotePkgDepends installedDepends foundDepends compareDependsPkgVersion + syn keyword rToolsStatement reduceDepends depMtrxToStrings installFoundDepends filePathAsAbsolute filePathSansExt + syn keyword rToolsStatement fileTest listFilesWithExts listFilesWithType delimMatch .OStype xgettext + syn keyword rToolsStatement print.xgettext print.xngettext xngettext .onUnload +endif + +" methods functions +if exists("r_package_methods") && r_package_methods != 0 + syn keyword rMethodsStatement .InitBasicClassMethods .BasicFunsList .addBasicGeneric genericForPrimitive + syn keyword rMethodsStatement setGenericForPrimitive .findBasicFuns .InitExtensions .simpleExtCoerce + syn keyword rMethodsStatement .simpleIsCoerce .simpleExtTest .simpleExtReplace .InhSlotNames .dataPartReplace + syn keyword rMethodsStatement .ErrorReplace .objectSlotNames makeExtends .findAll .InitClassUnion setClassUnion + syn keyword rMethodsStatement isClassUnion setGeneric isGeneric removeGeneric getMethods getMethodsForDispatch + syn keyword rMethodsStatement .setIfBase .getMethodsForDispatch .setMethodsForDispatch cacheMethod setMethod + syn keyword rMethodsStatement removeMethod findMethod getMethod dumpMethod selectMethod hasMethod existsMethod + syn keyword rMethodsStatement dumpMethods signature showMethods removeMethodsObject removeMethods resetGeneric + syn keyword rMethodsStatement setReplaceMethod setGroupGeneric isGroup callGeneric initMethodDispatch + syn keyword rMethodsStatement isSealedMethod .lockedForMethods MethodsList makeMethodsList SignatureMethod + syn keyword rMethodsStatement insertMethod MethodsListSelect emptyMethodsList insertMethodInEmptyList + syn keyword rMethodsStatement finalDefaultMethod inheritedSubMethodLists matchSignature showMlist promptMethods + syn keyword rMethodsStatement linearizeMlist print.MethodsList listFromMlist .insertCachedMethods .addMethodFrom + syn keyword rMethodsStatement asMethodDefinition .InitMethodsListClass .InitMethodDefinitions .MakeSignature + syn keyword rMethodsStatement .findNextMethod .hasCallNextMethod callNextMethod loadMethod .doSubNextCall + syn keyword rMethodsStatement testVirtual makePrototypeFromClassDef newEmptyObject completeClassDefinition + syn keyword rMethodsStatement .completeClassSlots .uncompleteClassDefinition .isIndirectExtension .mergeSlots + syn keyword rMethodsStatement getAllSuperClasses superClassDepth isVirtualClass assignClassDef .InitClassDefinition + syn keyword rMethodsStatement .initClassSupport newBasic defaultPrototype reconcilePropertiesAndPrototype tryNew + syn keyword rMethodsStatement empty.dump isClassDef showClass showExtends print.classRepresentation possibleExtends + syn keyword rMethodsStatement .possibleExtends completeExtends completeSubclasses .walkClassGraph classMetaName + syn keyword rMethodsStatement methodsPackageMetaName requireMethods .missingMethod getSlots validSlotNames + syn keyword rMethodsStatement getDataPart setDataPart .validDataPartClass .mergeAttrs .newExternalptr + syn keyword rMethodsStatement .transitiveExtends .transitiveSubclasses .combineExtends .simpleCoerceExpr + syn keyword rMethodsStatement .simpleReplaceExpr newClassRepresentation .tempClassDef .newClassRepresentation + syn keyword rMethodsStatement .insertExpr substituteFunctionArgs .makeValidityMethod .mergeClassDefSlots + syn keyword rMethodsStatement ..mergeClassDefSlots .gblEnv ..isPrototype .isPrototype .className .requirePackage + syn keyword rMethodsStatement ..requirePackage .classDefEnv .asEnvironmentPackage .classEnv ..classEnv .genEnv + syn keyword rMethodsStatement .makeGeneric makeGeneric makeStandardGeneric generic.skeleton defaultDumpName + syn keyword rMethodsStatement getAllMethods mergeMethods doPrimitiveMethod conformMethod rematchDefinition + syn keyword rMethodsStatement unRematchDefinition getGeneric .getGeneric getGroup getMethodsMetaData + syn keyword rMethodsStatement assignMethodsMetaData mlistMetaName getGenerics .getGenerics cacheMetaData + syn keyword rMethodsStatement cacheGenericsMetaData setPrimitiveMethods findUnique MethodAddCoerce missingArg + syn keyword rMethodsStatement balanceMethodsList sigToEnv .methodSignatureMatrix .valueClassTest + syn keyword rMethodsStatement .getOrMakeMethodsList .makeCallString .ValidateValueClass .asGroupArgument + syn keyword rMethodsStatement metaNameUndo .recursiveCallTest .NonstandardGenericTest .GenericInPrimitiveMethods + syn keyword rMethodsStatement .signatureString .ChangeFormals .envSearch .genericName .genericEnv + syn keyword rMethodsStatement .externalCallerEnv .parentEnvList .genericAssign .derivedDefaultMethod .identC + syn keyword rMethodsStatement .matchBasic matchDefaults getGroupMembers deletePrimMethods setClass representation + syn keyword rMethodsStatement prototype .prototype makeClassRepresentation getClassDef getClass slot + syn keyword rMethodsStatement checkSlotAssignment slotNames .slotNames removeClass isClass new getClasses + syn keyword rMethodsStatement validObject setValidity resetClass initialize findClass isSealedClass sealClass + syn keyword rMethodsStatement sessionData traceOn traceOff browseAll functionBody .ff allNames getFunction el + syn keyword rMethodsStatement elNamed formalArgs findFunction existsFunction Quote .message hasArg as + syn keyword rMethodsStatement .quickCoerceSelect .asFromReplace setAs .setCoerceGeneric .basicCoerceMethod + syn keyword rMethodsStatement .makeAsMethod .removePreviousCoerce is extends setIs .validExtends languageEl + syn keyword rMethodsStatement isGrammarSymbol .makeBasicFuns .InitSubsetMethods setOldClass .oldTestFun + syn keyword rMethodsStatement .oldCoerceFun .oldReplaceFun .setOldIs getPackageName setPackageName packageSlot + syn keyword rMethodsStatement .makeCallString showDefault show .InitShowMethods classLabel substituteDirect + syn keyword rMethodsStatement .TraceWithMethods .makeTracedFunction .untracedFunction .InitTraceFunctions + syn keyword rMethodsStatement .doTracePrint .traceClassName trySilent .assignOverBinding .setMethodOverBinding + syn keyword rMethodsStatement .searchNamespaceNames .findFunEnvAndName ..First.lib .onLoad .onUnload .onAttach + syn keyword rMethodsStatement .Last.lib .Last.lib +endif + +" utils functions +if exists("r_package_utils") && r_package_utils != 0 + syn keyword rUtilsStatement RSiteSearch Rprof Sweave SweaveReadFile SweaveGetSyntax SweaveSyntConv + syn keyword rUtilsStatement SweaveParseOptions SweaveHooks RweaveLatex RweaveLatexSetup RweaveLatexRuncode + syn keyword rUtilsStatement RweaveLatexWritedoc RweaveLatexFinish RweaveLatexOptions RweaveChunkPrefix + syn keyword rUtilsStatement RweaveEvalWithOpt RweaveTryStop Stangle Rtangle RtangleSetup RtangleRuncode + syn keyword rUtilsStatement RtangleWritedoc RtangleFinish alarm apropos find citEntry citHeader citFooter + syn keyword rUtilsStatement readCitationFile print.citation print.citationList person as.person as.person.default + syn keyword rUtilsStatement personList as.personList as.personList.person as.personList.default + syn keyword rUtilsStatement as.character.person as.character.personList toBibtex.person toBibtex.personList + syn keyword rUtilsStatement toBibtex.citation toBibtex.citationList citation data browseEnv wsbrowser de.ncols + syn keyword rUtilsStatement de.setup de.restore de data.entry dump.frames debugger limitedLabels recover demo + syn keyword rUtilsStatement dataentry edit edit.default edit.data.frame edit.matrix file.edit vi emacs xemacs + syn keyword rUtilsStatement xedit pico example head head.default head.data.frame head.function tail tail.default + syn keyword rUtilsStatement tail.data.frame tail.matrix tail.function help help.search print.hsearch + syn keyword rUtilsStatement printhsearchInternal loadhistory savehistory history iconv iconvlist localeToCharset + syn keyword rUtilsStatement packageDescription print.packageDescription index.search print.packageIQR menu + syn keyword rUtilsStatement getCRANmirrors checkCRAN object.size findGeneric methods print.MethodsFunction + syn keyword rUtilsStatement getFromNamespace assignInNamespace fixInNamespace getAnywhere print.getAnywhere + syn keyword rUtilsStatement package.skeleton packageStatus summary.packageStatus print.packageStatus + syn keyword rUtilsStatement update.packageStatus upgrade upgrade.packageStatus available.packages CRAN.packages + syn keyword rUtilsStatement simplifyRepos update.packages old.packages new.packages installed.packages + syn keyword rUtilsStatement remove.packages download.packages contrib.url chooseCRANmirror setRepositories + syn keyword rUtilsStatement normalizePath compareVersion install.packages page prompt prompt.default + syn keyword rUtilsStatement prompt.data.frame promptData topicName .helpForCall .tryHelp read.fortran read.fwf + syn keyword rUtilsStatement url.show sessionInfo print.sessionInfo toLatex.sessionInfo print.socket make.socket + syn keyword rUtilsStatement close.socket read.socket write.socket str str.data.frame str.default ls.str lsf.str + syn keyword rUtilsStatement summaryRprof toBibtex print.Bibtex toLatex print.Latex bug.report download.file nsl + syn keyword rUtilsStatement help.start browseURL make.packages.html link.html.help package.contents vignette + syn keyword rUtilsStatement print.vignette edit.vignette select.list flush.console +endif + +" Special +syn match rDelimiter /[,;:]/ + +" Error +syn region rParenRegion matchgroup=rParenDelimiter start=/(/ end=/)/ transparent contains=ALLBUT,rError,rBraceError,rCurlyError +syn region rCurlyRegion matchgroup=rCurlyDelimiter start=/{/ end=/}/ transparent contains=ALLBUT,rError,rBraceError,rParenError fold +syn region rBraceRegion matchgroup=rBraceDelimiter start=/\[/ end=/]/ transparent contains=ALLBUT,rError,rCurlyError,rParenError +syn match rError /[)\]}]/ +syn match rBraceError /[)}]/ contained +syn match rCurlyError /[)\]]/ contained +syn match rParenError /[\]}]/ contained + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_r_syn_inits") + if version < 508 + let did_r_syn_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + HiLink rComment Comment + HiLink rConstant Constant + HiLink rString String + HiLink rNumber Number + HiLink rBoolean Boolean + HiLink rFloat Float + HiLink rStatement Statement + HiLink rBaseStatement Statement + HiLink rStatsStatement Statement + HiLink rGraphicsStatement Statement + HiLink rToolsStatement Statement + HiLink rMethodsStatement Statement + HiLink rUtilsStatement Statement + HiLink rPrimitiveStatement Statement + HiLink rConditional Conditional + HiLink rRepeat Repeat + HiLink rIdentifier Identifier + HiLink rFunction Function + HiLink rArrow Statement + HiLink rType Type + HiLink rDelimiter Delimiter + HiLink rStringDelimiter Delimiter + HiLink rParenDelimiter Delimiter + HiLink rCurlyDelimiter Delimiter + HiLink rBraceDelimiter Delimiter + HiLink rError Error + HiLink rParenError Error + HiLink rCurlyError Error + HiLink rBraceError Error + delcommand HiLink +endif + +let b:current_syntax="r" +" vim: ts=8 sw=2 diff --git a/.vim/syntax/tex.vim b/.vim/syntax/tex.vim new file mode 100644 index 0000000..675a390 --- /dev/null +++ b/.vim/syntax/tex.vim @@ -0,0 +1 @@ +set textwidth=80 @@ -0,0 +1,97 @@ +" p +" Line numbering +"set number +" Set syntax highlighting +syntax on +colorscheme brookstream +" Tabbing +set et +set shiftwidth=4 +set smarttab +set autoindent +" We want a mouse in consoles, so:" +set mouse=a +filetype plugin on +filetype indent on +set textwidth=80 +set bg=dark +set modeline +set modelines=1 +command -nargs=1 Hugged :/<args>/s/\(.*\) ;\(.*\)\(||\)/\1 lightgreen;\2 RyanKavanagh ||/c +""" Don't connect to X clipboard, slow +""" set clipboard=exclude:.* +" For :sp, switching and minimum height +" map <C-H> <C-W>j<C-W>_ +" map <C-L> <C-W>k<C-W>_ +" set wmh=0 +" REQUIRED. This makes vim invoke Latex-Suite when you open a tex file. +filetype plugin on +" IMPORTANT: grep will sometimes skip displaying the file name if you +" search in a singe file. This will confuse Latex-Suite. Set your grep +" program to alway generate a file-name. +set grepprg=grep\ -nH\ $* + +" Haskell crud +au BufEnter *.hs compiler ghc +let g:haddock_browser = "/usr/bin/w3m" +let g:ghc_version = 6.8.2 +let g:ghc = "/usr/bin/ghc" + +" Transparent editing of gpg encrypted files. +" By Wouter Hanegraaff <wouter@blub.net> +augroup encrypted +au! +" First make sure nothing is written to ~/.viminfo while editing +" an encrypted file. +autocmd BufReadPre,FileReadPre *.gpg set viminfo= +" We don't want a swap file, as it writes unencrypted data to disk +autocmd BufReadPre,FileReadPre *.gpg set noswapfile +" Switch to binary mode to read the encrypted file +autocmd BufReadPre,FileReadPre *.gpg set bin +autocmd BufReadPre,FileReadPre *.gpg let ch_save = &ch|set ch=2 +autocmd BufReadPre,FileReadPre *.gpg let shsave=&sh +autocmd BufReadPre,FileReadPre *.gpg let &sh='sh' +autocmd BufReadPre,FileReadPre *.gpg let ch_save = &ch|set ch=2 +autocmd BufReadPost,FileReadPost *.gpg '[,']!gpg --decrypt --default-recipient-self 2> /dev/null +autocmd BufReadPost,FileReadPost *.gpg let &sh=shsave +" Switch to normal mode for editing +autocmd BufReadPost,FileReadPost *.gpg set nobin +autocmd BufReadPost,FileReadPost *.gpg let &ch = ch_save|unlet ch_save +autocmd BufReadPost,FileReadPost *.gpg execute ":doautocmd BufReadPost " . expand("%:r") +" Convert all text to encrypted text before writing +autocmd BufWritePre,FileWritePre *.gpg set bin +autocmd BufWritePre,FileWritePre *.gpg let shsave=&sh +autocmd BufWritePre,FileWritePre *.gpg let &sh='sh' +autocmd BufWritePre,FileWritePre *.gpg '[,']!gpg --encrypt --default-recipient-self 2>/dev/null +autocmd BufWritePre,FileWritePre *.gpg let &sh=shsave +" Undo the encryption so we are back in the normal text, directly +" after the file has been written. +autocmd BufWritePost,FileWritePost *.gpg silent u +autocmd BufWritePost,FileWritePost *.gpg set nobin +augroup END + +" Support my daylog +au BufNewFile,BufRead daylog,daylog.dch setf debchangelog +au BufNewFile,BufRead *.tikz setf tex + +map! i_<help> <Esc> +map! <Help> <Esc> +map! i_<F1> <Esc> +map! <F1> <Esc> + +" minibufexpl.vim +"map \mbe :MiniBufExplorer<cr> +"map \mbc :CMiniBufExplorer<cr> +"map \mbu :UMiniBufExplorer<cr> +"map \mbt :TMiniBufExplorer<cr> + +"let g:miniBufExplMapWindowNavVim = 1 +let g:miniBufExplMapWindowNavArrows = 1 +let g:miniBufExplMapCTabSwitchBufs = 1 + +let g:Tex_CompileRule_dvi = 'latex-mk $*' +let g:Tex_CompileRule_pdf = 'latex-mk --pdflatex $*' +let g:Tex_DefaultTargetFormat = 'pdf' +let g:Tex_ItemStyle_inparaenum = '\item' + +au BufEnter ~/.mutt/tmp/mutt-* set textwidth=72 diff --git a/.xinitrc b/.xinitrc new file mode 100755 index 0000000..bdd51ca --- /dev/null +++ b/.xinitrc @@ -0,0 +1,20 @@ +#!/bin/sh +redshift -l 44.22:-76.48 -t 6500:2500 & +setxkbmap -layout us -variant icd -option -option lv3:ralt_switch_multikey \ + -option ctrl:nocaps +# xcompmgr & +urxvt & +trayer --tint black --edge top --SetDockType true --SetPartialStrut true \ + --expand true --width 10 --transparent true --height 18 --align right & +xautolock -time 2 & +/home/ryan/.dzen/battery.sh & +/home/ryan/.dzen/temperature.sh & +gnome-settings-daemon & +#kmix & +# feh --bg-center /home/ryan/.local/share/wallpapers/skyscraper_at_sunset.bmp +# feh --bg-center /home/ryan/.local/share/wallpapers/totheglory.jpg +urxvtd -q -f -o & +# /home/ryan/.screenlayout/work.sh +/home/ryan/.screenlayout/SCREENLAYOUT.sh +nitrogen --restore +exec /usr/local/bin/xmonad diff --git a/.xmobarrc b/.xmobarrc new file mode 100644 index 0000000..b537cc8 --- /dev/null +++ b/.xmobarrc @@ -0,0 +1,19 @@ +Config { font = "-misc-fixed-*-*-*-*-10-*-*-*-*-*-*-*" + , bgColor = "black" + , fgColor = "grey" + , position = Top + , lowerOnStart = True + , commands = [ Run Weather "CYGK" ["-t","<station>: <tempC>C, pressure: <pressure>hPa","-L","18","-H","25","--normal","green","--high","red","--low","lightblue"] 36000 + , Run Network "eth0" ["-L","0","-H","32","--normal","green","--high","red"] 10 + , Run Network "wlan0" ["-L","0","-H","32","--normal","green","--high","red"] 10 + , Run Cpu ["-L","3","-H","50","--normal","green","--high","red"] 10 + , Run Memory ["-t","Mem: <usedratio>%"] 10 + , Run Swap [] 10 + , Run Com "uname" ["-s","-r"] "" 36000 + , Run Thermal "THRM" ["-t","<temp>C","-L","40","-H","60","--high","red","--low","lightblue"] 5 + , Run Date "%a %b %_d %Y %H:%M:%S" "date" 10 + ] + , sepChar = "%" + , alignSep = "}{" + , template = "%cpu% @ %THRM% | %memory% * %swap% | %eth0% - %wlan0% }{ <fc=#ee9a00>%date%</fc>| %CYGK% | %uname%" + } diff --git a/.xmonad/xmonad.hs b/.xmonad/xmonad.hs new file mode 100644 index 0000000..861640f --- /dev/null +++ b/.xmonad/xmonad.hs @@ -0,0 +1,449 @@ +{-# OPTIONS_GHC -W -fwarn-unused-imports -fno-warn-missing-signatures #-} +import XMonad +-- import XMonad.Config.Kde +import XMonad.Actions.CycleWS +import XMonad.Actions.GridSelect +import XMonad.Actions.PerWorkspaceKeys +import XMonad.Actions.RotSlaves +import XMonad.Actions.UpdatePointer +import XMonad.Config.Desktop +-- import XMonad.Config.Kde +import XMonad.Hooks.DynamicLog hiding (xmobar, xmobarPP, xmobarColor, sjanssenPP, byorgeyPP) +import XMonad.Hooks.EwmhDesktops +import XMonad.Hooks.ManageDocks (avoidStruts) +import XMonad.Hooks.ManageHelpers +import XMonad.Hooks.UrgencyHook +import XMonad.Layout.Accordion +import XMonad.Layout.Combo +import XMonad.Layout.Cross +import XMonad.Layout.Dishes +import XMonad.Layout.FixedColumn +import XMonad.Layout.Grid +import XMonad.Layout.IM +import XMonad.Layout.LimitWindows +import XMonad.Layout.Magnifier +import XMonad.Layout.NoBorders +import XMonad.Layout.NoFrillsDecoration +import XMonad.Layout.PerWorkspace +import XMonad.Layout.PerWorkspace +import XMonad.Layout.Reflect +import XMonad.Layout.ResizableTile +import XMonad.Layout.SimpleDecoration +import XMonad.Layout.Tabbed +import XMonad.Layout.ThreeColumns +import XMonad.Layout.ToggleLayouts +import XMonad.Layout.TwoPane +import XMonad.Layout.WindowNavigation +import XMonad.Prompt +import XMonad.Prompt.Shell +import XMonad.Util.EZConfig (additionalKeys) +import XMonad.Util.Loggers +import XMonad.Util.Run -- for spawnPipe +import XMonad.Util.Themes +import qualified XMonad.Actions.FlexibleResize as Flex +import qualified XMonad.StackSet as W +import qualified Data.Map as M +import Control.Monad +import Data.Ratio ((%)) +import Data.Maybe +import Data.List +import IO (hPutStrLn) + +myMod = mod4Mask -- windows key +myCtrl = controlMask +myTerminal = "urxvtc" + +-- My workspaces + +myWorkspaces = ["term", "web", "chatter", "code", "K/D", "music", "plasma", "LaTeX", "web-nb"] + +-- Mouse bindings: default actions bound to mouse events +myMouseBindings (XConfig {XMonad.modMask = modMask}) = M.fromList $ + + -- mod-button1 %! Set the window to floating mode and move by dragging + [ ((modMask, button1), (\w -> focus w >> mouseMoveWindow w + >> windows W.shiftMaster)) + -- mod-button2 %! Raise the window to the top of the stack + , ((modMask, button2), (\w -> focus w >> windows W.shiftMaster)) + -- mod-button3 %! Set the window to floating mode and resize by dragging + , ((modMask, button3), (\w -> focus w >> mouseResizeWindow w + >> windows W.shiftMaster)) + -- you may also bind events to the mouse scroll wheel (button4 and button5) + , ((modMask, button5), (\_ -> moveTo Next NonEmptyWS)) + , ((modMask, button4), (\_ -> moveTo Prev NonEmptyWS )) + + , ((modMask .|. shiftMask, button5), (\w -> focus w >> kill )) + ] + +-- Theme {{{ +-- Color names are easier to remember: +colorOrange = "#ff7701" +colorDarkGray = "#171717" +colorPink = "#e3008d" +colorGreen = "#00aa4a" +colorBlue = "#008dd5" +colorYellow = "#fee100" +colorWhite = "#cfbfad" +colorBrightGreen = "#00FF00" + +colorNormalBorder = "#1c2636" +colorFocusedBorder = "#2797d8" +barFont = "terminus" +barXFont = "terminus" +xftFont = "xft: inconsolata-14" +--}}} +statusBarCmd = "dzen2" ++ + " -bg '" ++ colorDarkGray ++ "'" ++ + " -fg '" ++ colorBlue ++ "'" ++ + " -sa c" ++ + --" -fn '" ++ barXFont ++ "'" ++ + " -w XMONAD_DZEN_W -x XMONAD_DZEN_X -y XMONAD_DZEN_Y -ta l -e ''" + + +-- Color theme for the window decorations +myTheme = defaultTheme { + activeColor = blue + , inactiveColor = grey + , activeBorderColor = blue + , inactiveBorderColor = grey + , activeTextColor = "white" + , inactiveTextColor = "black" + , decoHeight = 12 + } + where + blue = "#4a708b" -- same color used by gnome pager + grey = "#cccccc" + +myXPConfig = defaultXPConfig { + fgColor = "white" + , bgColor = "black" + , promptBorderWidth = 0 + , position = Bottom + , height = 25 + } + + +myLayout = smartBorders $ toggleLayouts Full perWS + where + -- Per workspace layout selection. + perWS = onWorkspace "web" (noTitles $ (simpleTabbed ||| mySplit ||| myWide)) $ + onWorkspace "term" (noTitles $ (Full ||| myTall2 ||| customRyan)) $ + onWorkspace "chatter" (noTitles $ myChat gridFirst) $ + onWorkspace "code" (noTitles $ codeFirst) $ + onWorkspace "LaTeX" (noTitles $ latexFirst) $ + (noTitles $ customRyan) + + -- Modifies a layout to be desktop friendly with title bars + -- and avoid the panel. + withTitles l = noFrillsDeco shrinkText myTheme (desktopLayoutModifiers l) + -- Modifies a layout to be desktop friendly, but with no title bars + -- and avoid the panel. + noTitles l = desktopLayoutModifiers l + + -- Each of these allows toggling through a set of layouts + -- in the same logical order, but from a different starting point. + codeFirst = myCode ||| myWide ||| myGrid ||| myDish + gridFirst = myGrid ||| myDish ||| myCode ||| myWide + customRyan = myGrid ||| myDish ||| Accordion ||| myCode ||| myWide ||| simpleCross ||| myFixed ||| myTall + latexFirst = myLaTeX ||| myFixed ||| myGrid ||| myTall + + -- This is a tall-like layout with magnification. + -- The master window is fixed at 80 columns wide, making this good + -- for coding. Limited to 3 visible windows at a time to ensure all + -- are a good size. + myCode = limitWindows 3 $ magnifiercz' 1.4 $ FixedColumn 1 20 80 10 + + -- Stack with one large master window. + -- It's easy to overflow a stack to the point that windows are too + -- small, so only show first 5. + myDish = limitWindows 5 $ Dishes nmaster ratio + where + -- The default number of windows in the master pane + nmaster = 1 + -- Default proportion of screen occupied by other panes + ratio = 1/5 + + -- Wide layout with subwindows at the bottom. + myWide = Mirror $ Tall nmaster delta ratio + where + -- The default number of windows in the master pane + nmaster = 1 + -- Percent of screen to increment by when resizing panes + delta = 3/100 + -- Default proportion of screen occupied by master pane + ratio = 80/100 + + -- Split screen, optimized for web browsing. + mySplit = magnifiercz' 1.4 $ Tall nmaster delta ratio + where + -- The default number of windows in the master pane + nmaster = 1 + -- Percent of screen to increment by when resizing panes + delta = 3/100 + -- Default proportion of screen occupied by master pane + ratio = 60/100 + + -- Standard grid. + myGrid = Grid + + myFixed = FixedColumn 1 20 80 10 + + -- The chat workspace has a roster on the right. + myChat base = reflectHoriz $ withIM (1%5) ((And (ClassName "Pidgin") (Role "buddy_list")) `Or` (And (Title "Kopete") (Role "MainWindow#1"))) base + where + role = stringProperty "WM_WINDOW_ROLE" + command = stringProperty "WM_COMMAND" + + -- LaTeX layout with a XPDF, vim window and small console to run pdflatex + -- From + -- http://www.haskell.org/haskellwiki/Xmonad/Config_archive/iderrick_xmonad.hs + myLaTeX = windowNavigation ( + combineTwo + (TwoPane delta 0.45) + (Full) + (combineTwo + (Mirror (TwoPane delta 0.85)) + (Full) + (Full) + ) + ) + where + -- Percent of the screen to increment by when resizing panes + delta = 3/100 + + myTall = ResizableTall nmaster delta ratio [50/100] + where + nmaster = 1 + delta = 3/100 + ratio = 55/100 + + myTall2 = ResizableTall nmaster delta ratio [50/100] + where + nmaster = 1 + delta = 3/100 + ratio = 1/2 + + +-- Pretty printer {{{ +-- dynamiclog pretty printer for dzen +mPP h = defaultPP + { ppCurrent = wrap ("^fg(" ++ colorOrange ++ ")^bg(" ++ colorDarkGray ++ ")^p(2)") "^p(2)^fg()^bg()" + , ppVisible = wrap ("^fg(" ++ colorBlue ++ ")^bg(" ++ colorDarkGray ++ ")^p(2)") "^p(2)^fg()^bg()" + , ppSep = " ^fg(grey60)^r(1x8)^fg() " + , ppLayout = dzenColor colorWhite "" . (\x -> case x of + "myCode" -> pad "^i(/home/ryan/.dzen/icons/layout-threecol.xbm)" + "myDish" -> pad "^i(/home/ryan/.dzen/icons/layout-im-gimp.xbm)" + "myWide" -> pad "^i(/home/ryan/.dzen/icons/layout-mirror-black.xbm)" + "mySplit" -> pad "^i(/home/ryan/.dzen/icons/layout-tall-black.xbm)" + "myGrid" -> pad "^i(/home/ryan/.dzen/icons/layout-gimp.xbm)" + "myChat" -> pad "^i(/home/ryan/.dzen/icons/layout-im.xbm)" + "myLaTeX" -> pad "^i(/home/ryan/.dzen/icons/layoput-gimp.xbm)" + _ -> pad $ shorten 10 x + ) + , ppUrgent = dzenColor colorDarkGray colorYellow . wrap "[" "]" + , ppTitle = dzenColor colorWhite "" . trim + , ppExtras = [dzenColorL colorYellow "". wrapL mailIcon "" . padL $ gmailCheck, dzenColorL colorBrightGreen "" . wrapL mailIcon "" . padL $ queensuCheck] + , ppOutput = hPutStrLn h + } + where + -- logMail = dzenColorL colorPink "" . wrapL mailIcon "". padL $ maildirNew mailDir + mailCheck = mailIcon -- <$> gmailCheck <$> queensuCheck + mailIcon = "^i(/home/ryan/.dzen/icons/mail.xbm)" + --gmailCheck = padL $ (dzenColorL colorRed "" . logCmd "cat /home/ryan/.xmonad/gmailcheck") + --queensuCheck = padL $ (dzenColorL colorYellow "" . logCmd "cat /home/ryan/.xmonad/queensucheck") + gmailCheck = logCmd "cat /home/ryan/.xmonad/gmailcheck" + queensuCheck = logCmd "cat /home/ryan/.xmonad/queensucheck" + +--}}} + +-- Commented out because it exposes a bug in xmonad-contrib: +--myLogHook = ewmhDesktopsLogHookCustom $ filter $ \w -> W.tag w /= "SP" + + +dk :: KeySym -> KeySym +dk k | k == xK_grave = xK_dollar + | k == xK_asciitilde = xK_asciitilde + + | k == xK_1 = xK_ampersand + | k == xK_exclam = xK_percent + + | k == xK_2 = xK_bracketleft + | k == xK_at = xK_7 + + | k == xK_3 = xK_braceleft + | k == xK_numbersign = xK_5 + + | k == xK_4 = xK_braceright + | k == xK_dollar = xK_3 + + | k == xK_5 = xK_parenleft + | k == xK_percent = xK_1 + + | k == xK_6 = xK_equal + | k == xK_asciicircum = xK_9 + + | k == xK_7 = xK_asterisk + | k == xK_ampersand = xK_0 + + | k == xK_8 = xK_parenright + | k == xK_asterisk = xK_2 + + | k == xK_9 = xK_plus + | k == xK_parenleft = xK_4 + + | k == xK_0 = xK_bracketright + | k == xK_parenright = xK_6 + + | k == xK_minus = xK_exclam + | k == xK_underscore = xK_8 + + | k == xK_equal = xK_numbersign + | k == xK_plus = xK_grave + + | k == xK_q = xK_semicolon -- upper row, left side + | k == xK_Q = xK_colon + + | k == xK_w = xK_comma + | k == xK_W = xK_less + + | k == xK_e = xK_period + | k == xK_E = xK_greater + + | k == xK_bracketleft = xK_slash -- upper row, top right + | k == xK_braceleft = xK_question + + | k == xK_bracketright = xK_at + | k == xK_braceright = xK_asciicircum + + + | k == xK_R = xK_P + | k == xK_T = xK_Y + | k == xK_Y = xK_F + | k == xK_U = xK_G + | k == xK_I = xK_C + | k == xK_O = xK_R + | k == xK_P = xK_L + | k == xK_A = xK_A + | k == xK_S = xK_O + | k == xK_D = xK_E + | k == xK_F = xK_U + | k == xK_G = xK_I + | k == xK_H = xK_D + | k == xK_J = xK_H + | k == xK_K = xK_T + | k == xK_L = xK_N + | k == xK_Z = xK_quotedbl + | k == xK_X = xK_Q + | k == xK_C = xK_J + | k == xK_V = xK_K + | k == xK_B = xK_X + | k == xK_N = xK_B + | k == xK_M = xK_M + + | k == xK_r = xK_p + | k == xK_t = xK_y + | k == xK_y = xK_f + | k == xK_u = xK_g + | k == xK_i = xK_c + | k == xK_o = xK_r + | k == xK_p = xK_l + | k == xK_a = xK_a + | k == xK_s = xK_o + | k == xK_d = xK_e + | k == xK_f = xK_u + | k == xK_g = xK_i + | k == xK_h = xK_d + | k == xK_j = xK_h + | k == xK_k = xK_t + | k == xK_l = xK_n + | k == xK_z = xK_apostrophe + | k == xK_x = xK_q + | k == xK_c = xK_j + | k == xK_v = xK_k + | k == xK_b = xK_x + | k == xK_n = xK_b + | k == xK_m = xK_m + + | k == xK_comma = xK_w -- bottom right + | k == xK_less = xK_W + + | k == xK_period = xK_v + | k == xK_greater = xK_V + + | k == xK_slash = xK_z + | k == xK_question = xK_Z + + | otherwise = k + + +main = do + dzenpipe <- spawnPipe statusBarCmd + xmonad $ withUrgencyHookC dzenUrgencyHook { args = ["-bg", "red", "-fg", "yellow", "-x", "1"] } urgencyConfig { remindWhen = Every 30 } --NoUrgencyHook + $ defaultConfig { -- kde4Config { + workspaces = myWorkspaces + , modMask = myMod -- use the Windows button as mod + , terminal = myTerminal + , normalBorderColor = inactiveBorderColor myTheme + , focusedBorderColor = activeBorderColor myTheme + , borderWidth = 1 + , layoutHook = myLayout + , manageHook = manageHook defaultConfig <+> myManageHook -- kde4Config <+> myManageHook + , mouseBindings = myMouseBindings + , keys = \x -> (M.fromList $ mykeys x) `M.union` dvorakify (keys defaultConfig x) + --, logHook = (dynamicLogWithPP $ mPP dzenpipe) >> updatePointer (Relative 0.95 0.95) + , logHook = dynamicLogWithPP $ mPP dzenpipe + -- , logHook = myLogHook + } + where + myManageHook = composeAll . concat $ + [ + --[ [ className =? c --> doFloat | c <- myFloats] + [ title =? t --> doFloat | t <- myOtherFloats] + , [ title =? c --> viewShift "term" | c <- term] + , [ className =? c --> viewShift "term" | c <- term2] + , [ className =? c --> viewShift "web" | c <- web] + , [ className =? c --> viewShift "chatter" | c <- chatter] + -- , [ className =? c --> doF (W.shift "plasma") | c <- plasmaD ] + , [ className =? c --> doIgnore | c <- panel ] + , [ isFullscreen --> doFullFloat ] + ] + viewShift = doF . liftM2 (.) W.greedyView W.shift + mykeys x = [ + -- ((myMod, xK_x), spawn myTerminal) + -- , ((myMod, xK_c), kill) + ((myMod, xK_Left), prevWS) + , ((myMod, xK_Right), nextWS) + , ((myMod, xK_a), myToggle) + , ((myMod, xK_z), shellPrompt myXPConfig) + , ((myMod, xK_g), goToSelected defaultGSConfig) + , ((myMod, xK_F4), spawn "sleep 0.5 && xset dpms force suspend") + , ((myMod, xK_F5), spawn "sleep 0.5 && xset dpms force off") + , ((myMod, xK_l), spawn "xautolock -locknow") + , ((myMod .|. shiftMask, xK_l), spawn "xautolock -toggle") + , ((myMod .|. myCtrl .|. shiftMask, xK_Right), sendMessage $ Move R) + , ((myMod .|. myCtrl .|. shiftMask, xK_Left), sendMessage $ Move L) + , ((myMod .|. myCtrl .|. shiftMask, xK_Up), sendMessage $ Move U) + , ((myMod .|. myCtrl .|. shiftMask, xK_Down), sendMessage $ Move D) + , ((myMod, xK_BackSpace), focusUrgent) + -- , ((myMod, xK_Tab), bindOn [("chat", rotSlavesDown), ("", rotAllDown)]) + -- , ((myMod .|. shiftMask, xK_Tab), bindOn [("chat", rotSlavesUp), ("", rotAllUp)]) + , ((myMod, xK_s), sendMessage $ ToggleLayout)] + dvorakify kl = M.fromList $ map (\((m, k), d) -> ((m, dk k), d)) $ M.toList kl + myFloats = ["MPlayer", "Plasma-netbook", "Plasma-desktop", "plasma-netbook", "plasma-desktop"] + plasmaD = ["Plasma"] + myOtherFloats = ["alsamixer"] + term = ["ryan@localhost", "root@localhost", "ryan@lambda", "ryan@kappa", "ryan@sho", "Konsole"] -- open on desktop 1 + term2 = ["Konsole"] + web = ["Firefox", "Iceweasel", "Opera", "Akregator", "Konqueror", "Chromium-browser"] -- open on desktop 2 + chatter = ["Ksirc", "Krusader", "xchat", "Quassel", "Pidgin", "Kopete", "kopete"] -- open on desktop 3 + games = ["Bzflag"] + panel = ["panel", "trayer"] + +-- Avoid the master window, but otherwise manage new windows normally. +avoidMaster :: W.StackSet i l a s sd -> W.StackSet i l a s sd +avoidMaster = W.modify' $ \c -> case c of + W.Stack t [] (r:rs) -> W.Stack t [r] rs + otherwise -> c + +-- A version of toggleWS that ignores the scratchPad workspaces. +myToggle = windows $ W.view =<< W.tag . head . filter ((\x -> x /= "NSP" && x /= "SP") . W.tag) . W.hidden diff --git a/.zsh/func/prompt_wunjo_setup b/.zsh/func/prompt_wunjo_setup new file mode 100644 index 0000000..0e1ee96 --- /dev/null +++ b/.zsh/func/prompt_wunjo_setup @@ -0,0 +1,311 @@ +# wunjo prompt theme + +autoload -U zgitinit +zgitinit +autoload colors +colors + +prompt_wunjo_help () { + cat <<'EOF' + + prompt wunjo + +EOF +} + +# We want our vim users to be able to see what mode their in. +# From http://www.jukie.net/~bart/conf/zsh.d/S60_prompt + +coloratom() { + local off=$1 atom=$2 + if [[ $atom[1] == [[:upper:]] ]]; then + off=$(( $off + 60 )) + fi + echo $(( $off + $colorcode[${(L)atom}] )) +} +colorword() { + local fg=$1 bg=$2 att=$3 + local -a s + + if [ -n "$fg" ]; then + s+=$(coloratom 30 $fg) + fi + if [ -n "$bg" ]; then + s+=$(coloratom 40 $bg) + fi + if [ -n "$att" ]; then + s+=$attcode[$att] + fi + + echo "%{"$'\e['${(j:;:)s}m"%}" +} + +prompt_wunjo_setup() { + local verbose + if [[ $TERM == screen* ]] && [ -n "$STY" ]; then + # verbose= + # Set to 1 by Ryan... no clue why you wouldn't want it. + verbose=1 + else + verbose=1 + fi + + typeset -A colorcode + colorcode[black]=0 + colorcode[red]=1 + colorcode[green]=2 + colorcode[yellow]=3 + colorcode[blue]=4 + colorcode[magenta]=5 + colorcode[cyan]=6 + colorcode[white]=7 + colorcode[default]=9 + colorcode[k]=$colorcode[black] + colorcode[r]=$colorcode[red] + colorcode[g]=$colorcode[green] + colorcode[y]=$colorcode[yellow] + colorcode[b]=$colorcode[blue] + colorcode[m]=$colorcode[magenta] + colorcode[c]=$colorcode[cyan] + colorcode[w]=$colorcode[white] + colorcode[.]=$colorcode[default] + + typeset -A attcode + attcode[none]=00 + attcode[bold]=01 + attcode[faint]=02 + attcode[standout]=03 + attcode[underline]=04 + attcode[blink]=05 + attcode[reverse]=07 + attcode[conceal]=08 + attcode[normal]=22 + attcode[no-standout]=23 + attcode[no-underline]=24 + attcode[no-blink]=25 + attcode[no-reverse]=27 + attcode[no-conceal]=28 + + local -A pc + pc[default]='default' + pc[date]='cyan' + pc[time]='Blue' + pc[host]='Magenta' + pc[user]='cyan' + pc[punc]='yellow' + pc[line]='magenta' + pc[hist]='green' + pc[path]='Cyan' + pc[shortpath]='default' + pc[rc]='red' + pc[scm_branch]='Cyan' + pc[scm_commitid]='Yellow' + pc[scm_status_dirty]='Red' + pc[scm_status_staged]='Green' + pc[#]='Yellow' + pc[insert]='green' + pc[command]='red' + for cn in ${(k)pc}; do + pc[${cn}]=$(colorword $pc[$cn]) + done + pc[reset]=$(colorword . . 00) + + typeset -Ag wunjo_prompt_colors + wunjo_prompt_colors=(${(kv)pc}) + + local p_date p_line p_rc + + p_date="$pc[date]%D{%Y-%m-%d} $pc[time]%D{%T}$pc[reset]" + + p_line="$pc[line]%y$pc[reset]" + function zle-line-init zle-keymap-select { + VIMODE="${${KEYMAP/vicmd/C}/(main|viins)/I}" + VICOLOR="${${KEYMAP/vicmd/$fg[green]}/(main|viins)/$fg[red]}" + zle reset-prompt + } + + zle -N zle-line-init + zle -N zle-keymap-select + + + vi="${VICOLOR}${VIMODE}" + + PROMPT= + if [ $verbose ]; then + PROMPT+="$pc[host]%m$pc[reset] " + fi + PROMPT+="$pc[path]%(2~.%~.%/)$pc[reset]" + PROMPT+="\$(prompt_wunjo_scm_status)" + PROMPT+="%(?.. $pc[rc]exited %1v$pc[reset])" + PROMPT+=" +" + PROMPT+="$pc[hist]%h$pc[reset] " + PROMPT+="$pc[shortpath]%1~$pc[reset]" + PROMPT+="\$(prompt_wunjo_scm_branch)" + PROMPT+=" $vi" + PROMPT+=" $pc[#]%#$pc[reset] " + + RPROMPT= + if [ $verbose ]; then + RPROMPT+="$p_date " + fi + RPROMPT+="$pc[user]%n$pc[reset]" + RPROMPT+=" $p_line" + + export PROMPT RPROMPT + precmd_functions+='prompt_wunjo_precmd' +} + +prompt_wunjo_precmd() { + local ex=$? + psvar=() + + if [[ $ex -ge 128 ]]; then + sig=$signals[$ex-127] + psvar[1]="sig${(L)sig}" + else + psvar[1]="$ex" + fi + +} + +prompt_wunjo_scm_status() { + zgit_isgit || return + local -A pc + pc=(${(kv)wunjo_prompt_colors}) + + head=$(zgit_head) + gitcommit=$(git describe --always $head 2>/dev/null) + + local -a commits + + if zgit_rebaseinfo; then + orig_commit=$(git describe --always $zgit_info[rb_head]) + orig_name=$(git name-rev --name-only $zgit_info[rb_head]) + orig="$pc[scm_branch]$orig_name$pc[punc]($pc[scm_commitid]$orig_commit$pc[punc])" + onto_commit=$(git describe --always $zgit_info[rb_onto]) + onto_name=$(git name-rev --name-only $zgit_info[rb_onto]) + onto="$pc[scm_branch]$onto_name$pc[punc]($pc[scm_commitid]$onto_commit$pc[punc])" + + if [ -n "$zgit_info[rb_upstream]" ] && [ $zgit_info[rb_upstream] != $zgit_info[rb_onto] ]; then + upstream_commit=$(git describe --always $zgit_info[rb_upstream]) + upstream_name=$(git name-rev --name-only $zgit_info[rb_upstream]) + upstream="$pc[scm_branch]$upstream_name$pc[punc]($pc[scm_commitid]$upstream_commit$pc[punc])" + commits+="rebasing $upstream$pc[reset]..$orig$pc[reset] onto $onto$pc[reset]" + else + commits+="rebasing $onto$pc[reset]..$orig$pc[reset]" + fi + + local -a revs + revs=($(git rev-list $zgit_info[rb_onto]..HEAD)) + if [ $#revs -gt 0 ]; then + commits+="\n$#revs commits in" + fi + + if [ -f $zgit_info[dotest]/message ]; then + mess=$(head -n1 $zgit_info[dotest]/message) + commits+="on $mess" + fi + elif [ -n "$gitcommit" ]; then + commits+="on $pc[scm_branch]$head$pc[punc]($pc[scm_commitid]$gitcommit$pc[punc])$pc[reset]" + local track_merge=$(zgit_tracking_merge) + if [ -n "$track_merge" ]; then + if git rev-parse --verify -q $track_merge >/dev/null; then + local track_remote=$(zgit_tracking_remote) + local tracked=$(git describe --always $track_merge 2>/dev/null) + + local -a revs + revs=($(git rev-list --reverse $track_merge..HEAD)) + if [ $#revs -gt 0 ]; then + local base=$(git describe --always $revs[1]~1) + local base_name=$(git name-rev --name-only $base) + local base_short=$(git describe --always $base) + local word_commits + if [ $#revs -gt 1 ]; then + word_commits='commits' + else + word_commits='commit' + fi + + local conj="since" + if [[ "$base" == "$tracked" ]]; then + conj+=" tracked" + tracked= + fi + commits+="$#revs $word_commits $conj $pc[scm_branch]$base_name$pc[punc]($pc[scm_commitid]$base_short$pc[punc])$pc[reset]" + fi + + if [ -n "$tracked" ]; then + local track_name=$track_merge + if [[ $track_remote == "." ]]; then + track_name=${track_name##*/} + fi + tracked=$(git describe --always $tracked) + commits+="tracking $pc[scm_branch]$track_name$pc[punc]" + if [[ "$tracked" != "$gitcommit" ]]; then + commits[$#commits]+="($pc[scm_commitid]$tracked$pc[punc])" + fi + commits[$#commits]+="$pc[reset]" + fi + fi + fi + fi + + gitsvn=$(git rev-parse --verify -q --short git-svn) + if [ $? -eq 0 ]; then + gitsvnrev=$(zgit_svnhead $gitsvn) + gitsvn=$(git describe --always $gitsvn) + if [ -n "$gitsvnrev" ]; then + local svninfo='' + local -a revs + svninfo+="$pc[default]svn$pc[punc]:$pc[scm_branch]r$gitsvnrev" + revs=($(git rev-list git-svn..HEAD)) + if [ $#revs -gt 0 ]; then + svninfo+="$pc[punc]@$pc[default]HEAD~$#revs" + svninfo+="$pc[punc]($pc[scm_commitid]$gitsvn$pc[punc])" + fi + commits+=$svninfo + fi + fi + + if [ $#commits -gt 0 ]; then + echo -n " ${(j: :)commits}" + fi +} + +prompt_wunjo_scm_branch() { + zgit_isgit || return + local -A pc + pc=(${(kv)wunjo_prompt_colors}) + + echo -n "$pc[punc]:$pc[scm_branch]$(zgit_head)" + + if zgit_inworktree; then + if ! zgit_isindexclean; then + echo -n "$pc[scm_status_staged]+" + fi + + local -a dirty + if ! zgit_isworktreeclean; then + dirty+='!' + fi + + if zgit_hasunmerged; then + dirty+='*' + fi + + if zgit_hasuntracked; then + dirty+='?' + fi + + if [ $#dirty -gt 0 ]; then + echo -n "$pc[scm_status_dirty]${(j::)dirty}" + fi + fi + + echo $pc[reset] +} + +prompt_wunjo_setup "$@" + +# vim:set ft=zsh: diff --git a/.zsh/func/zgitinit b/.zsh/func/zgitinit new file mode 100644 index 0000000..ebc8bff --- /dev/null +++ b/.zsh/func/zgitinit @@ -0,0 +1,248 @@ +## +## Load with `autoload -U zgitinit; zgitinit' +## + +typeset -gA zgit_info +zgit_info=() + +zgit_chpwd_hook() { + zgit_info_update +} + +zgit_preexec_hook() { + if [[ $2 == git\ * ]] || [[ $2 == *\ git\ * ]]; then + zgit_precmd_do_update=1 + fi +} + +zgit_precmd_hook() { + if [ $zgit_precmd_do_update ]; then + unset zgit_precmd_do_update + zgit_info_update + fi +} + +zgit_info_update() { + zgit_info=() + + local gitdir=$(git rev-parse --git-dir 2>/dev/null) + if [ $? -ne 0 ] || [ -z "$gitdir" ]; then + return + fi + + zgit_info[dir]=$gitdir + zgit_info[bare]=$(git rev-parse --is-bare-repository) + zgit_info[inwork]=$(git rev-parse --is-inside-work-tree) +} + +zgit_isgit() { + if [ -z "$zgit_info[dir]" ]; then + return 1 + else + return 0 + fi +} + +zgit_inworktree() { + zgit_isgit || return + if [ "$zgit_info[inwork]" = "true" ]; then + return 0 + else + return 1 + fi +} + +zgit_isbare() { + zgit_isgit || return + if [ "$zgit_info[bare]" = "true" ]; then + return 0 + else + return 1 + fi +} + +zgit_head() { + zgit_isgit || return 1 + + if [ -z "$zgit_info[head]" ]; then + local name='' + name=$(git symbolic-ref -q HEAD) + if [ $? -eq 0 ]; then + if [[ $name == refs/(heads|tags)/* ]]; then + name=${name#refs/(heads|tags)/} + fi + else + name=$(git name-rev --name-only --no-undefined --always HEAD) + if [ $? -ne 0 ]; then + return 1 + elif [[ $name == remotes/* ]]; then + name=${name#remotes/} + fi + fi + zgit_info[head]=$name + fi + + echo $zgit_info[head] +} + +zgit_branch() { + zgit_isgit || return 1 + zgit_isbare && return 1 + + if [ -z "$zgit_info[branch]" ]; then + local branch=$(git symbolic-ref HEAD 2>/dev/null) + if [ $? -eq 0 ]; then + branch=${branch##*/} + else + branch=$(git name-rev --name-only --always HEAD) + fi + zgit_info[branch]=$branch + fi + + echo $zgit_info[branch] + return 0 +} + +zgit_tracking_remote() { + zgit_isgit || return 1 + zgit_isbare && return 1 + + local branch + if [ -n "$1" ]; then + branch=$1 + elif [ -z "$zgit_info[branch]" ]; then + branch=$(zgit_branch) + [ $? -ne 0 ] && return 1 + else + branch=$zgit_info[branch] + fi + + local k="tracking_$branch" + local remote + if [ -z "$zgit_info[$k]" ]; then + remote=$(git config branch.$branch.remote) + zgit_info[$k]=$remote + fi + + echo $zgit_info[$k] + return 0 +} + +zgit_tracking_merge() { + zgit_isgit || return 1 + zgit_isbare && return 1 + + local branch + if [ -z "$zgit_info[branch]" ]; then + branch=$(zgit_branch) + [ $? -ne 0 ] && return 1 + else + branch=$zgit_info[branch] + fi + + local remote=$(zgit_tracking_remote $branch) + [ $? -ne 0 ] && return 1 + if [ -n "$remote" ]; then # tracking branch + local merge=$(git config branch.$branch.merge) + if [ $remote != "." ]; then + merge=$remote/$(basename $merge) + fi + echo $merge + return 0 + else + return 1 + fi +} + +zgit_isindexclean() { + zgit_isgit || return 1 + if git diff --quiet --cached 2>/dev/null; then + return 0 + else + return 1 + fi +} + +zgit_isworktreeclean() { + zgit_isgit || return 1 + if git diff --quiet 2>/dev/null; then + return 0 + else + return 1 + fi +} + +zgit_hasuntracked() { + zgit_isgit || return 1 + local -a flist + flist=($(git ls-files --others --exclude-standard)) + if [ $#flist -gt 0 ]; then + return 0 + else + return 1 + fi +} + +zgit_hasunmerged() { + zgit_isgit || return 1 + local -a flist + flist=($(git ls-files -u)) + if [ $#flist -gt 0 ]; then + return 0 + else + return 1 + fi +} + +zgit_svnhead() { + zgit_isgit || return 1 + + local commit=$1 + if [ -z "$commit" ]; then + commit='HEAD' + fi + + git show --raw $commit | \ + grep git-svn-id | \ + sed -re 's/^\s*git-svn-id: .*@([0-9]+).*$/\1/' +} + +zgit_rebaseinfo() { + zgit_isgit || return 1 + if [ -d $zgit_info[dir]/rebase-merge ]; then + dotest=$zgit_info[dir]/rebase-merge + elif [ -d $zgit_info[dir]/.dotest-merge ]; then + dotest=$zgit_info[dir]/.dotest-merge + elif [ -d .dotest ]; then + dotest=.dotest + else + return 1 + fi + + zgit_info[dotest]=$dotest + + zgit_info[rb_onto]=$(cat "$dotest/onto") + zgit_info[rb_upstream]=$(cat "$dotest/upstream") + if [ -f "$dotest/orig-head" ]; then + zgit_info[rb_head]=$(cat "$dotest/orig-head") + elif [ -f "$dotest/head" ]; then + zgit_info[rb_head]=$(cat "$dotest/head") + fi + zgit_info[rb_head_name]=$(cat "$dotest/head-name") + + return 0 +} + +zgitinit() { + typeset -ga chpwd_functions + typeset -ga preexec_functions + typeset -ga precmd_functions + chpwd_functions+='zgit_chpwd_hook' + preexec_functions+='zgit_preexec_hook' + precmd_functions+='zgit_precmd_hook' +} + +zgitinit +zgit_info_update + +# vim:set ft=zsh: diff --git a/.zsh_logout b/.zsh_logout new file mode 100644 index 0000000..de4f5f7 --- /dev/null +++ b/.zsh_logout @@ -0,0 +1,7 @@ +# ~/.bash_logout: executed by bash(1) when login shell exits. + +# when leaving the console clear the screen to increase privacy + +if [ "$SHLVL" = 1 ]; then + [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q +fi @@ -0,0 +1,754 @@ +# +# ~/.zshrc +# Z shell configuration file. +# CREDITS +# File was first taken from the following location: +# +# http://www.tomaw.net/configs/zshrc +# +# Some additions were made by me, Jonathan Patrick Davies <jpds@ubuntu.com>. +# Among these are the Launchpad, Debian, Wikipedia/Wikitravel, BBC search, +# Demonoid, Lonely Planet, Urbandictionary and other various functions. I also +# implemented a few "if" statements to stop zsh complaining about any missing +# objects and placed the dircolors support. +# +# The forkex() function is thanks to Siegfried-Angel Gevatter Pujals +# <rainct@ubuntu.com>. +# +# Some of this file is thanks to <slarti@gentoo.org>, some is take from +# spider's <spider@gentoo.org> zshrc, and some from the zshwiki.org. +# Some bash functions are nicked from ciaranm's <ciaranm@gentoo.org> +# bashrc. +# +# READ ME +# +# • Remember to change the stuff specific to me! It's all at the top of +# this file. +# +# • You can obviously only get the most out of this file if you take the +# time to read through the comments. Of course, you can still experience +# zsh's superiority by simply plugging this file in and using it. +# + +# BEGIN LOCAL + +#export LC_ALL="en_CA.UTF-8" # Use Canadian English... +#export LANG="en_CA.UTF-8" # ...as default language. +#export LC_ALL="fr_CA.UTF-8" +#export LANG="fr_CA.UTF-8" +export LC_ALL="es_ES.UTF-8" +export LANG="es_ES.UTF-8" +export TZ="America/Toronto" # Force our time zone this location. +export EDITOR="vim" # Long live vim (as our editor). +export NAME="Ryan Kavanagh" # Our name. +export EMAIL="ryanakca@kubuntu.org" # Our email address. +export GPGKEY1="E95EDDC9" # Our old GnuPG key ID. +export GPGKEY="4A11C97A" # Our GnuPG key ID. +export GNUPGHOME="/media/encrypted/.gnupg" +export DEBFULLNAME=$NAME # These are used by Debian packaging... +export DEBEMAIL=$EMAIL # ...programs. +export DEBSIGN_KEYID=$GPGKEY # Key ID for signing Debian packages. +export GIT_AUTHOR_NAME=$NAME # Use our real name for Git. +export GIT_AUTHOR_EMAIL=$EMAIL +export GIT_COMMITTER_NAME=$GIT_AUTHOR_NAME +export GIT_COMMITTER_EMAIL=$GIT_AUTHOR_EMAIL +export BZR_EMAIL="$NAME <$EMAIL>" # Override email for Bazaar. +export GIT_AUTHOR_NAME=$NAME +export GREP_OPTIONS="--color=auto" +export QUILT_PATCHES=debian/patches +export PATH=/usr/lib/ccache:/usr/lib/distcc/bin:$HOME/bin:/sbin:$PATH +export CCACHE_DIR=/ccache +#export HTTP_PROXY="http://localhost:3128/" +export MANWIDTH=80 +export MANOPT="-L en" +export BTS_SENDMAIL_COMMAND="/usr/bin/msmtp" +export PYTHONSTARTUP=~/.pythonrc.py + +alias apt-upgrade='sudo apt-get update && sudo aptitude dist-upgrade' +alias emacs='/usr/bin/emacs -nw' +alias dbuild='GPG_TTY=$(tty) debuild -S -sa -k$GPGKEY' +alias itp='reportbug -M -B debian --email ryanakca@kubuntu.org --paranoid -K $GPGKEY wnpp' +alias sneezymud='nc play.sneezymud.com 7900' +alias news='tin -g pqnews.cogeco.ca' +alias bbcr1='mplayer mms://wmlive.bbc.net.uk/wms/bbc_ami/radio1/radio1_bb_live_int_eq1_sl1' +alias bbcr2='mplayer mms://wmlive.bbc.net.uk/wms/bbc_ami/radio2/radio2_bb_live_int_eq1_sl1' +alias bbcr3='mplayer mms://wmlive.bbc.net.uk/wms/bbc_ami/radio3/radio3_bb_live_int_eq1_sl1' +alias rtvec='mplayer -playlist http://radioclasica.rtve.stream.flumotion.com/rtve/radioclasica.mp3.m3u' +alias rtve3='mplayer -playlist http://radio3.rtve.stream.flumotion.com/rtve/radio3.mp3.m3u' +alias rtve5='mplayer -playlist http://radio5.rtve.stream.flumotion.com/rtve/radio5.mp3.m3u' +alias am740='mplayer -playlist http://provisioning.streamtheworld.com/asx/cfzmam.asx' +alias dismuke='mplayer -playlist http://www.loudcity.com/player/radio-dismuke/pls_mp3.pls\?cache_bust\=1279637216\&max_bitrate\=1000' +alias 1920s='mplayer -playlist http://64.5.130.43/listen.pls' +alias up-theme='rsync -avz --no-p --no-o --no-times -e ssh ~/work/kubuntu-theme-v2/* ryanak.ca:/home/ryan/kubuntu-theme-v2/' +alias startxkde4='startx -nolisten tcp -- :0 &' +alias irssi-notify='ssh -f ryanak.ca -L 2227:127.0.0.1:2227 -N && irssi-notifier &' +alias gpg='gpg-wrapper' +alias i2e='/usr/bin/i2e-cli' +alias mplayer-fb='mplayer -vo fbdev' +alias links2-fb='links2 -driver fb' +alias bzbuild='bzr builddeb -S -- -sa -k$GPGKEY' +alias svbuildi='svn-buildpackage --svn-ignore-new --svn-builder="debuild -S -sa -k$GPGKEY"' +alias svbuild='svn-buildpackage --svn-builder="debuild -S -sa -k$GPGKEY"' +alias gibuild='git-buildpackage --git-builder="debuild -i\.git/ -I.git -S -sa -k$GPGKEY"' +#alias wtau='wakeonlan 00:0d:56:1b:7a:f0' +alias wtau='sudo etherwake tau' +alias pology='python $HOME/work/pology/scripts/posieve.py' +alias daylog='dch --changelog /home/ryan/work/sail/drafts/daylog/daylog' +alias dquilt="quilt --quiltrc=${HOME}/.quiltrc-dpkg" +alias kbd="setxkbmap -layout us -variant icd -option -option lv3:ralt_switch_multikey -option ctrl:nocaps" + +# END LOCAL + +fpath=($fpath + /home/ryan/.zen/zsh/scripts + /home/ryan/.zen/zsh/zle) +autoload -U zen + +# Ensure that we possess a ~/.zsh/ directory. This is required for the +# ~/.zsh/history file. +if [ ! -d $HOME/.zsh/ ]; then + mkdir -p $HOME/.zsh/ +fi + +# Alias/custom commands +# +# Some are just in case - for 'rm', 'cp' and 'mv' - ask about overwriting or +# deleting files. +# Furthermore, be verbose about what each command is performing to be present of +# what is occuring every time. +alias cp="cp -iv" +alias mkdir="mkdir -v" +alias mv="mv -iv" +alias ln="ln -v" +# Only delete files on the current file system to avoid removing recursively +# from bind mounts. +alias rm="rm -iv --one-file-system" + +alias chown="chown -v" +alias chmod="chmod -v" + +# Cause encfs unmount a mounted encrypted partition after twenty minutes of +# inactivity by default. +alias encfs="encfs --idle=20" + +fpath=($fpath $HOME/.zsh/func) + +# Prompt theme. +autoload -U promptinit; promptinit +# prompt walters + +# Colours. +autoload -U colors; colors +setopt promptsubst + +# Give us a prompt along the lines of: +# +# jpds@topr> +# +#export PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[green]%}%m%{$reset_color%}%\> " + +# Change word boundary characters. Nabbed from +# http://zshwiki.org/KeyBindings. + +# By default: export WORDCHARS='*?_-.[]~=/&;!#$%^(){}<>' +# We remove the slash, period, angle brackets, dash here. +export WORDCHARS='*?_-[]~=&;!#$%^(){}' + +# Follow GNU LS_COLORS for completion menus +zmodload -i zsh/complist + +# Should dircolors exist. Fetch LS_COLORS from it. +if [ `which dircolors` ]; then + eval "$(dircolors -b)" +fi + +zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" +zstyle ':completion:*:*:kill:*' list-colors '=%*=01;31' + +alias ls="ls --classify --color=always" # Add all colours and have fancy + # symbols for files, etc. +alias grep="grep --colour=always" # Colour grep too. +# Load the completion system +autoload -U compinit; compinit + +# Very powerful version of mv implemented in zsh. The main feature I +# know of it that seperates it from the standard mv is that it saves you +# time by being able to use patterns which are expanded into positional +# parameters. So: +# +# slarti@pohl % zmv (*)foo ${1}bar +# +# On a series of files like onefoo, twofoo, threefoo, fivefoo would be +# renamed to onebar twobar threebar fourbar. +# +# Although that's nifty enough, I suspect there are other features I +# don't know about yet... +# +# Read $fpath/zmv for some more basic examples of usage, and also use +# run-help on it :) +autoload -U zmv + +# Command line calculator written in zsh, with a complete history +# mechanism and other shell features. +autoload -U zcalc + +# Like xargs, but instead of reading lines of arguments from standard input, +# it takes them from the command line. This is possible/useful because, +# especially with recursive glob operators, zsh often can construct a command +# line for a shell function that is longer than can be accepted by an external +# command. This is what's often referred to as the "shitty Linux exec limit" ;) +# The limitation is on the number of characters or arguments. +# +# slarti@pohl % echo {1..30000} +# zsh: argument list too long: /bin/echo +# zsh: exit 127 /bin/echo {1..30000} +autoload -U zargs + +# Yes, we are as bloated as emacs +autoload -U tetris +zle -N tetris +bindkey "^Xt" tetris + +# Makes it easy to type URLs as command line arguments. As you type, the +# input character is analyzed and, if it mayn eed quoting, the current +# word is checked for a URI scheme. If one is found and the current word +# is not already quoted, a blackslash is inserted before the input +# caracter. +autoload -U url-quote-magic +zle -N self-insert url-quote-magic + +# zed is a tiny command-line editor in pure ZSH; no other shell could do +# this. zed itself is simple as anything, but it's killer feature for +# me is that it can edit functions on the go with zed -f <funcname> (or +# fned <funcname>. This is useful for me when I'm using and defining +# functions interactively, for example, when I'm working through the +# Portage tree in CVS. It allows me to edit a function on the fly, +# without having to call the last definition back up from the history +# and re-edit that in ZLE. It also indents the function, even if it was +# defined on all one line in the line editor, making it easy as anything +# to edit. +# +# ^X^W to save, ^C to abort. +autoload -U zed + +# Incremental completion of a word. After starting this, a list of +# completion choices can be shown after every character you type, which +# can deleted with ^H or delete. Return will accept the current +# completion. Hit tab for normal completion, ^G to get back where you +# came from and ^D to list matches. +autoload -U incremental-complete-word +zle -N incremental-complete-word +bindkey "^Xi" incremental-complete-word + +# This function allows you type a file pattern, and see the results of +# the expansion at each step. When you hit return, they will be +# inserted into the command line. +autoload -U insert-files +zle -N insert-files +bindkey "^Xf" insert-files + +# This set of functions implements a sort of magic history searching. +# After predict-on, typing characters causes the editor to look backward +# in the history for the first line beginning with what you have typed so +# far. After predict-off, editing returns to normal for the line found. +# In fact, you often don't even need to use predict-off, because if the +# line doesn't match something in the history, adding a key performs +# standard completion - though editing in the middle is liable to delete +# the rest of the line. +autoload -U predict-on +zle -N predict-on +zle -N predict-off +bindkey "^X^Z" predict-on +bindkey "^Z" predict-off + +# run-help is a help finder, bound in ZLE to M-h. It doesn't need to be +# autoloaded to work - the non-autoloaded version just looks up a man +# page for the command under the cursor, then when that process is +# finished it pulls your old command line back up from the buffer stack. +# However, with the autoloaded function and: +# +# mkdir ~/zsh-help; cd ~/zsh-help MANPAGER="less" man zshbuiltins | \ +# colcrt | perl /usr/share/zsh/4.2.1/Util/helpfiles +# +# It'll work for zsh builtins too. By the way, I've assumed some things +# in that command. ~/zsh-help can be wherever you like, MANPAGER needs +# to be any standard pager (less, pg, more, just not the MANPAGER I have +# defined in this file), colcrt can be col -bx, and the path to +# helpfiles may be different for you (Util may not even be installed +# with your distribution; fair enough, make install doesn't install it. +# Dig up a source tarball and everything is in there). + +# Load the new one +autoload -U run-help + +# Press Alt-H to show help for command we are currently on. +bindkey '[[A' run-help + +# History file name and maximum size. +HISTFILE="$HOME/.zsh/history" +SAVEHIST=15000 +HISTSIZE=15000 + +# Push History from previous sessions. IF $HISTFILE exists. +if [ -f $HISTFILE ]; then + fc -R $HISTFILE +fi + +## Key bindings +# You may use: +# % autoload -U zkbd +# % zkbd +# to discover your keys. + +bindkey -v # Vi keybindings. + +typeset -U fpath + +prompt wunjo +# Actually, stick with emacs for the moment. The vi keymap just doesn't +# seem to be as complete (even if it's nicer for editing, there's no +# execute-named-cmd bound, for example). +#bindkey -e # Emacs keybindings. + +# Up, down left, right. +# echotc forms part of the zsh/termcap module. It outputs the termcap value +# corresponding to the capability it was given as an argument. man zshmodules. +zmodload -i zsh/termcap +bindkey "$(echotc kl)" backward-char +bindkey "$(echotc kr)" forward-char +bindkey "$(echotc ku)" up-line-or-history +bindkey "$(echotc kd)" down-line-or-history + +bindkey '\e[3~' delete-char # Delete + +if [[ "$TERM" == "rxvt-unicode" || "$TERM" == "screen" ]]; then + bindkey '\e[7~' beginning-of-line # Home + bindkey '\e[8~' end-of-line # End +elif [[ "$TERM" == "linux" ]]; then + bindkey '\e[1~' beginning-of-line # Home + bindkey '\e[4~' end-of-line # End +else # At least xterm; probably other terms too + bindkey '\e[H~' beginning-of-line # Home + bindkey '\e[F~' end-of-line # End +fi + +bindkey '\e[5~' up-history # PageUp +bindkey '\e[6~' down-history # PageDown + +# This function sets the window tile to user@host:/workingdir before each +# prompt. If you're using screen, it sets the window title (works +# wonderfully for 'hardstatus' lines. +# Beware: The two functions below have raw control characters. +precmd() { +# [[ -t 1 ]] || return + case $TERM in + *xterm*|rxvt*) print -Pn "]2;%n@%m:%~\a" + ;; + screen*) print -Pn "\"%n@%m:%~\134" + ;; + esac +} + +# This sets the window title to the last run command. +preexec() { +# [[ -t 1 ]] || return + case $TERM in + *xterm*|rxvt*) + print -Pn "]2;$1\a" + ;; + screen*) + print -Pn "\"$1\134" + ;; + esac +} + +# Custom commands. + +loop() { + while [ 1 -eq 1 ]; do + $@ + done +} + +# +# Debian. +# +debian.bugs.number() { + # Debian Bug Tracker - by number. + w3m "http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=$1" +} + +debian.bugs.package() { + # Debian Bug Tracker - by package. + w3m "http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=$1" +} + +debian.packages() { + # Debian Packages. + # Add 'src:' in front of the package name to search for source packages. + w3m "http://packages.debian.org/$1" +} + +debian.qa.maintainer() { + # Debian QA Maintainer search by email address. + w3m "http://qa.debian.org/developer.php?login=$1" +} + +debian.qa.package() { + # Debian QA Maintainer search by package name. + w3m "http://qa.debian.org/developer.php?package=$1" +} + +debian.qa.pts() { + # Debian Package Tracking system - developers. + w3m "http://packages.qa.debian.org/$1" +} + +debian.qa.task() { + # Debian QA - search for task. + w3m "http://qa.debian.org/developer.php?task=$1" +} + +debian.wiki() { + # Search the Debian Wiki. + w3m "http://wiki.debian.org/?action=fullsearch&value=$@" +} + +# +# Ubuntu. +# + +ubuntu.help() { + # Ubuntu Help site. + w3m "https://help.ubuntu.com/community/?action=fullsearch&value=$@" +} + +ubuntu.packages() { + # Ubuntu packages. + # Again; add: "src:" in order to search for source packages. + w3m "http://packages.ubuntu.com/$1" +} + +ubuntu.wiki() { + # Search the Ubuntu wiki. + w3m "https://wiki.ubuntu.com/?action=fullsearch&value=$@" +} + +# +# Launchpad. +# + +launchpad.answers.number() { + # Display a Launchpad answer by number. + w3m "https://answers.launchpad.net/questions/$1" +} + +launchpad.answers.package() { + # Display list of questions for package in Launchpad. + w3m "https://answers.launchpad.net/ubuntu/+source/$1" +} + +launchpad.answers.search() { + # Search Launchpad answers. + w3m "https://answers.launchpad.net/questions/+questions?field.search_text=$@" +} + +launchpad.blueprints() { + # Search Launchpad blueprints. + w3m "https://blueprints.launchpad.net/?searchtext=$@" +} + +launchpad.bugs.number() { + # Display a Launchpad bug by number. + w3m "https://bugs.launchpad.net/bugs/$1" +} + +launchpad.bugs.package() { + # Display list of bugs for a package. + w3m "https://bugs.launchpad.net/ubuntu/+source/$1" +} + +launchpad.packages() { + # Launchpad packages for Ubuntu. + w3m "http://launchpad.net/ubuntu/+source/$1" +} + +launchpad.project() { + # Display a Launchpad project. + w3m "https://launchpad.net/$1" +} + +launchpad.project.search() { + # Search Launchpad projects. + w3m "https://launchpad.net/projects/+index?text=$@" +} + +# +# Others. +# + +google() { + # Google search. + w3m "http://www.google.com/search?q=$@" +} + +bbc.search() { + # Search the BBC website. + w3m "http://search.bbc.co.uk/cgi-bin/search/results.pl?q=$@" +} + +demonoid() { + # Search Demonoid.com torrents. + w3m "http://www.demonoid.com/files/?query=$@" +} + +freedictonary.acronyms() { + # Look up an acronym on the FreeDictonary. + w3m "http://acronyms.thefreedictionary.com/$1" +} + +imdb() { + # Search IMDb. + w3m "http://www.imdb.com/find?q=$@" +} + +lonelyplanet() { + # Search Lonely Planet. + w3m "http://search.lonelyplanet.com/search.do?Ntt=$@" +} + +urbandictionary() { + # Search Urbandictionary.com. + w3m "http://www.urbandictionary.com/define.php?term=$@" +} + +wikipedia() { + # Wikipedia search. English section. + w3m "http://en.wikipedia.org/wiki/Special:Search?search=$@" +} + +wiktionary() { + # Search Wiktionary for a term. + w3m "http://en.wiktionary.org/wiki/Special:Search?search=$@" +} + +wikitravel() { + # Wikitravel search. English section. + w3m "http://wikitravel.org/en/Special:Search?search=$@" +} + + +forkex() { + # Fork program $@ from console. + nohup "$@" >/dev/null 2>&1 <&1 & disown %% +} + +#conjugate() { +# # Conjugates the verb $@ +# w3m "http://www.mijnwoordenboek.nl/EN/verb/$@" +#} + +conjugate() { + # Conjugates the verb $@ + w3m "http://www.verbix.com/cache/webverbix/1/$@.shtml" +} + +proxy() { + export http_proxy=http://localhost:3128/ +} + +noproxy() { + unset http_proxy +} + +# Pretty menu! +zstyle ':completion:*' menu select=1 +zstyle ':completion:*' select-prompt %SScroll active at %p%s. + +# Completion options. +zstyle ':completion:*' completer _complete _prefix +zstyle ':completion::prefix-1:*' completer _complete +zstyle ':completion:incremental:*' completer _complete _correct +zstyle ':completion:predict:*' completer _complete + +# Completion caching. +zstyle ':completion::complete:*' use-cache 1 +zstyle ':completion::complete:*' cache-path ~/.zsh/cache/$HOST + +# Expand partial paths. +zstyle ':completion:*' expand 'yes' +zstyle ':completion:*' squeeze-slashes 'yes' + +# Include non-hidden directories in globbed file completions +# for certain commands. +zstyle ':completion::complete:*' '\' + +# Use menuselection for PID completion. +zstyle ':completion:*:*:kill:*' menu yes select +zstyle ':completion:*:kill:*' force-list always + +# tag-order 'globbed-files directories' all-files. +zstyle ':completion::complete:*:tar:directories' file-patterns '*~.*(-/)' + +# Do not complete backup files as executables. +zstyle ':completion:*:complete:-command-::commands' ignored-patterns '*\~' + +# Separate matches into groups. +zstyle ':completion:*:matches' group 'yes' + +# With commands like rm, it's annoying if you keep getting offered the same +# file multiple times. This fixes it. Also good for cp, et cetera.. +zstyle ':completion:*:rm:*' ignore-line yes +zstyle ':completion:*:cp:*' ignore-line yes + +# Describe each match group. +zstyle ':completion:*:descriptions' format "%B---- %d%b" + +# Messages/warnings format. +zstyle ':completion:*:messages' format '%B%U---- %d%u%b' +zstyle ':completion:*:warnings' format '%B%U---- no match for: %d%u%b' + +# Describe options in full. +zstyle ':completion:*:options' description 'yes' +zstyle ':completion:*:options' auto-description '%d' + +# Simulate spider's old abbrev-expand 3.0.5 patch +#zstyle ':completion:*:history-words' stop verbose +#zstyle ':completion:*:history-words' remove-all-dups yes +#zstyle ':completion:*:history-words' list false + +# From the zshwiki. Hide CVS files/directories from being completed. +zstyle ':completion:*:(all-|)files' ignored-patterns '(|*/)CVS' +zstyle ':completion:*:cd:*' ignored-patterns '(*/)#CVS' + +# Also from the wiki. Hide uninteresting users from completion. +zstyle ':completion:*:*:*:users' ignored-patterns \ +adm apache bin daemon games gdm halt ident junkbust lp mail mailnull \ +named news nfsnobody nobody nscd ntp operator pcap postgres radvd \ +rpc rpcuser rpm shutdown squid sshd sync uucp vcsa xfs backup bind \ +dictd gnats identd irc man messagebus postfix proxy sys \ +www-data alias amavis at clamav cmd5checkpw cron cyrus dhcp dnscache \ +dnslog foldingathome guest haldaemon jabber ldap mailman mpd mysql \ +nut p2p portage postmaster qmaild qmaill qmailp qmailq qmailr qmails \ +smmsp tinydns vpopmail wasabi zope + +# Pull hosts from $HOME/.ssh/known_hosts, also from the wiki +# local _myhosts. If it exists that is. +if [ -f $HOME/.ssh/known_hosts ]; then + _myhosts=( ${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[0-9]*}%%\ *}%%,*} ) + zstyle ':completion:*' hosts $_myhosts +fi + +# Approximate completion. From the wiki. +zstyle ':completion:*' completer _complete _match _approximate +zstyle ':completion:*:match:*' original only +zstyle ':completion:*:approximate:*' max-errors 1 numeric + +zstyle ':completion:*:sudo:*' command-path /usr/sbin /usr/bin /sbin /bin \ + /usr/X11R6/bin + +# NOTE: Comment this out for now. Breaks preexec and precmd above. +#if [ -f /etc/zsh_command_not_found ]; then +# . /etc/zsh_command_not_found +#fi + +# Options +setopt \ +NO_all_export \ + always_last_prompt \ + always_to_end \ + append_history \ + auto_cd \ + auto_list \ + auto_menu \ + auto_name_dirs \ + auto_param_keys \ + auto_param_slash \ + auto_pushd \ + auto_remove_slash \ +NO_auto_resume \ + bad_pattern \ + bang_hist \ +NO_beep \ + brace_ccl \ + correct_all \ +NO_bsd_echo \ +NO_cdable_vars \ +NO_chase_links \ + clobber \ + complete_aliases \ + complete_in_word \ + correct \ +NO_correct_all \ + csh_junkie_history \ +NO_csh_junkie_loops \ +NO_csh_junkie_quotes \ +NO_csh_null_glob \ + equals \ + extended_glob \ + extended_history \ + function_argzero \ + glob \ +NO_glob_assign \ + glob_complete \ +NO_glob_dots \ +NO_glob_subst \ +NO_hash_cmds \ +NO_hash_dirs \ + hash_list_all \ + hist_allow_clobber \ + hist_beep \ + hist_ignore_dups \ + hist_ignore_space \ +NO_hist_no_store \ + hist_verify \ +NO_hup \ +NO_ignore_braces \ +NO_ignore_eof \ + interactive_comments \ + inc_append_history \ +NO_list_ambiguous \ +NO_list_beep \ + list_types \ + long_list_jobs \ + magic_equal_subst \ +NO_mail_warning \ +NO_mark_dirs \ + menu_complete \ + multios \ + nomatch \ + notify \ +NO_null_glob \ + numeric_glob_sort \ +NO_overstrike \ + path_dirs \ + posix_builtins \ +NO_print_exit_value \ +NO_prompt_cr \ + prompt_subst \ + pushd_ignore_dups \ +NO_pushd_minus \ + pushd_silent \ + pushd_to_home \ + rc_expand_param \ +NO_rc_quotes \ +NO_rm_star_silent \ +NO_sh_file_expansion \ + sh_option_letters \ + share_history \ + short_loops \ +NO_sh_word_split \ +NO_single_line_zle \ +NO_sun_keyboard_hack \ +NO_verbose \ + zle + +# GPG / SSH AGENT + +keychain id_rsa +keychain -Q ${GPGKEY} ${GPGKEY1} +[ -z "$HOSTNAME" ] && HOSTNAME=`uname -n` +[ -f $HOME/.keychain/$HOSTNAME-sh ] && + . $HOME/.keychain/$HOSTNAME-sh +[ -f $HOME/.keychain/$HOSTNAME-sh-gpg ] && + . $HOME/.keychain/$HOSTNAME-sh-gpg diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..e1bd342 --- /dev/null +++ b/Makefile @@ -0,0 +1,108 @@ +SUBSTS_FILE=SUBSTS.local + +# Files that need changes to work locally or that contain sensitive +# information +LOCAL_FILES = \ + .imapfilter/config.lua \ + .mutt/accounts.rc \ + .netrc \ + .offlineimaprc \ + .xmonad/xmonad.hs \ + +# Files that are system independent. +# IMPORTANT: directories must have trailing slash +GLOBAL_FILES = \ + .Xdefaults \ + .config/nitrogen/ \ + .dzen/ \ + .imapfilter/ \ + .inputrc \ + .local/share/wallpapers/ \ + .mailcheckrc \ + .mutt/ \ + .muttrc \ + .notmuch-config \ + .quiltrc-dpkg \ + .screenrc \ + .screenlayout/ \ + .signature \ + .vim/ \ + .vimrc \ + .xinitrc \ + .xmobarrc \ + .xmonad/ \ + .zsh/ \ + .zsh_logout \ + .zshrc \ + bin/ \ + +get-val = $(shell awk '{if (match($$0, /$1/)) { print $$2 } }' $(SUBSTS_FILE)) + +LOCAL_PASS = $(call get-val,LOCAL_PASS) +GMAIL_PASS = $(call get-val,GMAIL_PASS) +QUEENSU_PASS = $(call get-val,QUEENSU_PASS) +PM_EMAIL = $(call get-val,PM_EMAIL) +SCREENLAYOUT = $(call get-val,SCREENLAYOUT) +XMONAD_DZEN_W = $(call get-val,XMONAD_DZEN_W) +XMONAD_DZEN_X = $(call get-val,XMONAD_DZEN_X) +XMONAD_DZEN_Y = $(call get-val,XMONAD_DZEN_Y) + +# This target relies on GLOBAL_FILES being before LOCAL_FILES so that the +# build/LOCAL_FILES targets overwrite what was copied in GLOBAL_FILES. +BUILD = $(patsubst %,build/%,$(GLOBAL_FILES) $(LOCAL_FILES)) + +build: $(BUILD) + +build/.offlineimaprc: .offlineimaprc $(SUBSTS_FILE) + [ -d build ] || mkdir build + sed -e 's/LOCAL_PASS/$(LOCAL_PASS)/g' \ + -e 's/GMAIL_PASS/$(GMAIL_PASS)/g' \ + -e 's/QUEENSU_PASS/$(QUEENSU_PASS)/g' $< > $@ + +build/.imapfilter/config.lua: .imapfilter/config.lua $(SUBSTS_FILE) + [ -d build/.imapfilter ] || mkdir -p build/.imapfilter + sed -e 's/LOCAL_PASS/$(LOCAL_PASS)/g' \ + -e 's/PM_EMAIL/$(PM_EMAIL)/g' $< > $@ + +build/.netrc: .netrc $(SUBSTS_FILES) + [ -d build ] || mkdir build + sed -e 's/LOCAL_PASS/$(LOCAL_PASS)/g' $< > $@ + +build/.mutt/accounts.rc: .mutt/accounts.rc $(SUBSTS_FILE) + [ -d build/.mutt ] || mkdir -p build/.mutt + sed -e 's/LOCAL_PASS/$(LOCAL_PASS)/g' \ + -e 's/GMAIL_PASS/$(GMAIL_PASS)/g' \ + -e 's/QUEENSU_PASS/$(QUEENSU_PASS)/g' $< > $@ + +build/.xinitrc: .xinitrc $(SUBSTS_FILE) + [ -d build ] || mkdir build + sed -e 's/SCREENLAYOUT/$(SCREENLAYOUT)/g' $< > $@ + +build/.xmonad/xmonad.hs: .xmonad/xmonad.hs $(SUBSTS_FILE) + [ -d build/.xmonad ] || mkdir -p build/.xmonad + sed -e 's/XMONAD_DZEN_W/$(XMONAD_DZEN_W)/g' \ + -e 's/XMONAD_DZEN_X/$(XMONAD_DZEN_X)/g' \ + -e 's/XMONAD_DZEN_y/$(XMONAD_DZEN_Y)/g' $< > $@ + +build/%: % + [ -d $(dir $@) ] || mkdir -p $(dir $@) + rsync -a $< $@ + +install: $(BUILD) + rsync -a build/ ~/ + +sha256sums: $(LOCAL_FILES) $(GLOBAL_FILES) Makefile + sha256sum `git ls-files | grep -v sha256sums` > $@ + +sha256sums.asc: sha256sums + rm -f $@ + gpg --clearsign --detach-sign $< + +verify: + sha256sum -c sha256sums + gpg --verify sha256sums.asc + +clean: + rm -fr build + +.PHONY: build install clean verify @@ -0,0 +1,9 @@ +My dotfiles. Copy SUBSTS to SUBSTS.local and edit. Then run 'make install'. This +will copy updated distfiles to $HOME. + +This collection has '/home/ryan' hardcoded in various spots, you can probably +fix this with sed. + +Make sure to run 'make sha256sums.asc' before commiting so that you know nobody +tampers with your dotfiles if remotely hosted and you're using this to share +them between various hosts. 'make verify' will check their integrity. @@ -0,0 +1,14 @@ +# File format: +key value +# Mail passwords +GMAIL_PASS secret +QUEENSU_PASS secret +LOCAL_PASS secret +# xmonad +XMONAD_DZEN_W 808 +XMONAD_DZEN_X 114 +XMONAD_DZEN_Y 0 +# screen dimensions / arandr +SCREENLAYOUT epsilon-SAIL +# Pipe major's email +PM_EMAIL pipemajor@example.org diff --git a/bin/gpg-mounter b/bin/gpg-mounter new file mode 100755 index 0000000..9ab0d95 --- /dev/null +++ b/bin/gpg-mounter @@ -0,0 +1,73 @@ +#!/bin/zsh +# gpg-wrapper for users who put their .gnupg on a LUKS (encrypted) device +# Copyright (C) 2009 Ryan Kavanagh <ryanakca@kubuntu.org> +# +# 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 3 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, see <http://www.gnu.org/licenses/>. + + +# ====== Configure devices here ======= + +# Encrypted decive containing .gnupg/ +device='/dev/epsilon_crypted/gpg' +# Will become /dev/mapper/decrypted_name +decrypted_name='gpg-decrypted' +# Where to mount decrypted device +mount_point='/media/encrypted' +# Path to your GPG +gpg_path='/usr/bin/gpg' +# In how many minutes should we close and unmount your encrypted device? +unmount_time=15 + +# ======= End user config, don't touch below ======= +# ======= unless you know what you're doing. ======= + +if [ ! -b '/dev/mapper/'$decrypted_name ] +then + count=0 + mnt='' + # If the user doesn't know wether or not they want to mount it, give up on + # them. + while [[ $mnt != 'Y' && $count -le 2 ]] + do + echo 'Would you like to mount the encrypted GPG dir? [Y/n]' + read mnt + case '$mnt' in + '' | 'Y' | 'y' ) + mnt='Y' + ;; + 'N' | 'n' ) + break; + ;; + * ) + count=`expr $count + 1` + ;; + esac + done + + if [[ $mnt == 'Y' ]] + then + sudo cryptsetup luksOpen $device $decrypted_name + sudo mount /dev/mapper/$decrypted_name $mount_point + # We'll do this here instead of elsewheres, since if the user has + # already / manually mounted the directory, they might not want us to + # unmount it on them. + echo "cp -f ${mount_point}/.gnupg/pubring.gpg /root/pr.gpg && cp -f ${mount_point}/.gnupg/trustdb.gpg /root/tdb.gpg && && umount ${mount_point} && cryptsetup luksClose ${decrypted_name} && \ + cp /root/pr.gpg ${mount_point}/.gnupg/pubring.gpg && cp /root/tdb.gpg ${mount_point}/.gnupg/trustdb.gpg && chown -R ryan:ryan ${mount_point}" | \ + sudo at now + $unmount_time min + else + exit 0 + fi +fi + +exit 0 diff --git a/bin/gpg-wrapper b/bin/gpg-wrapper new file mode 100755 index 0000000..628f618 --- /dev/null +++ b/bin/gpg-wrapper @@ -0,0 +1,41 @@ +#!/bin/zsh +# gpg-wrapper for users who put their .gnupg on a LUKS (encrypted) device +# Copyright (C) 2009 Ryan Kavanagh <ryanakca@kubuntu.org> +# +# 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 3 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, see <http://www.gnu.org/licenses/>. + + +mount_point='/media/encrypted' +gpg_path='/usr/bin/gpg' +gnupg_dir=${mount_point}/.gnupg/ + +# Is there a .gnupg dir on $mount_point? If so, we ought to tell gpg to use +# $mount_point/.gnupg, just in case the user didn't setup symlinks from +# $HOME/.gnupg/ pointing to $mount_point/.gnupg +if [ -d ${gnupg_dir} ] +then + exec $gpg_path --homedir $gnupg_dir $@ + +else + gpg-mounter + if [ -d ${gnupg_dir} ] + then + exec $gpg_path --homedir $gnupg_dir $@ + else + echo 'No .gnupg dir in $mount_point' + exit 1 + fi +fi + +exit 0 diff --git a/bin/mutt-notmuch b/bin/mutt-notmuch new file mode 100755 index 0000000..a5b339a --- /dev/null +++ b/bin/mutt-notmuch @@ -0,0 +1,190 @@ +#!/usr/bin/perl -w +# +# mutt-notmuch - notmuch (of a) helper for Mutt +# +# Copyright: © 2011 Stefano Zacchiroli <zack@upsilon.cc> +# License: GNU General Public License (GPL), version 3 or above +# +# See the bottom of this file for more documentation. +# A manpage can be obtained by running "pod2man mutt-notmuch > mutt-notmuch.1" + +use strict; +use warnings; + +use File::Path; +use Getopt::Long; +use Mail::Internet; +use Mail::Box::Maildir; +use Pod::Usage; + + +# create an empty maildir (if missing) or empty an existing maildir" +sub empty_maildir($) { + my ($maildir) = (@_); + rmtree($maildir) if (-d $maildir); + my $folder = new Mail::Box::Maildir(folder => $maildir, + create => 1); + $folder->close(); +} + +# search($maildir, $query) +# search mails according to $query with notmuch; store results in $maildir +sub search($$) { + my ($maildir, $query) = @_; + + empty_maildir($maildir); + system("notmuch search --output=files $query" + . " | sed -e 's: :\\\\ :g'" + . " | xargs --no-run-if-empty ln -s -t $maildir/cur/"); +} + +sub search_action($$@) { + my ($interactive, $results_dir, @params) = @_; + + if (! $interactive) { + search($results_dir, join(' ', @params)); + } else { + my $query = ""; + my $done = 0; + while (! $done) { + print "search ('?' for man): "; + chomp($query = <STDIN>); + if ($query eq "?") { + system("man notmuch"); + } elsif ($query eq "") { + $done = 1; # quit doing nothing + } else { + search($results_dir, $query); + $done = 1; + } + } + } +} + +sub thread_action(@) { + my ($results_dir, @params) = @_; + + my $mail = Mail::Internet->new(\*STDIN); + $mail->head->get('message-id') =~ /^<(.*)>$/; # get message-id + my $mid = $1; + my $tid = `notmuch search --output=threads id:$mid`;# get thread id + chomp($tid); + + search($results_dir, $tid); +} + +sub die_usage() { + my %podflags = ( "verbose" => 1, + "exitval" => 2 ); + pod2usage(%podflags); +} + +sub main() { + my $results_dir = "$ENV{HOME}/.cache/mutt_results"; + my $interactive = 0; + my $help_needed = 0; + + my $getopt = GetOptions( + "h|help" => \$help_needed, + "o|output-dir=s" => \$results_dir, + "p|prompt" => \$interactive); + if (! $getopt || $#ARGV < 0) { die_usage() }; + my ($action, @params) = ($ARGV[0], @ARGV[1..$#ARGV]); + + if ($help_needed) { + die_usage(); + } elsif ($action eq "search" && $#ARGV == 0 && ! $interactive) { + print STDERR "Error: no search term provided\n\n"; + die_usage(); + } elsif ($action eq "search") { + search_action($interactive, $results_dir, @params); + } elsif ($action eq "thread") { + thread_action($results_dir, @params); + } else { + die_usage(); + } +} + +main(); + +__END__ + +=head1 NAME + +mutt-notmuch - notmuch (of a) helper for Mutt + +=head1 SYNOPSIS + +=over + +=item B<mutt-notmuch> [I<OPTION>]... search [I<SEARCH-TERM>]... + +=item B<mutt-notmuch> [I<OPTION>]... thread < I<MAIL> + +=back + +=head1 DESCRIPTION + +mutt-notmuch is a frontend to the notmuch mail indexer capable of populating +maildir with search results. + +=head1 OPTIONS + +=over 4 + +=item -o DIR + +=item --output-dir DIR + +Store search results as (symlink) messages under maildir DIR. Beware: DIR will +be overwritten. (Default: F<~/.cache/mutt_results/>) + +=item -p + +=item --prompt + +Instead of using command line search terms, prompt the user for them (only for +"search"). + +=item -h + +=item --help + +Show usage information and exit. + +=back + +=head1 INTEGRATION WITH MUTT + +mutt-notmuch can be used to integrate notmuch with the Mutt mail user agent +(unsurprisingly, given the name). To that end, you should define the following +macros in your F<~/.muttrc> (replacing F<~/bin/mutt-notmuch> for the actual +location of mutt-notmuch on your system): + + macro index <F8> \ + "<enter-command>unset wait_key<enter><shell-escape>~/bin/mutt-notmuch --prompt search<enter><change-folder-readonly>~/.cache/mutt_results<enter>" \ + "search mail (using notmuch)" + macro index <F9> \ + "<enter-command>unset wait_key<enter><pipe-message>~/bin/mutt-notmuch thread<enter><change-folder-readonly>~/.cache/mutt_results<enter><enter-command>set wait_key<enter>" \ + "search and reconstruct owning thread (using notmuch)" + +The first macro (activated by <F8>) will prompt the user for notmuch search +terms and then jump to a temporary maildir showing search results. The second +macro (activated by <F9>) will reconstruct the thread corresponding to the +current mail and show it as search results. + +To keep notmuch index current you should then periodically run C<notmuch +new>. Depending on your local mail setup, you might want to do that via cron, +as a hook triggered by mail retrieval, etc. + +=head1 SEE ALSO + +mutt(1), notmuch(1) + +=head1 AUTHOR + +Copyright: (C) 2011 Stefano Zacchiroli <zack@upsilon.cc> + +License: GNU General Public License (GPL), version 3 or higher + +=cut diff --git a/bin/run-mailcheck b/bin/run-mailcheck new file mode 100755 index 0000000..215aaf7 --- /dev/null +++ b/bin/run-mailcheck @@ -0,0 +1,14 @@ +#!/bin/zsh +MAIL=`mailcheck` +GMAIL=`echo $MAIL | /bin/grep -v QueensU` +QUEENSU=`echo $MAIL | /bin/grep QueensU` +if echo $GMAIL | grep -q new ; then + echo $GMAIL | awk '{printf("%d(%d)"), $6, $3}' > ~/.xmonad/gmailcheck; +else + echo $GMAIL | awk '{printf("%d(%d)"), $3, 0}' > ~/.xmonad/gmailcheck; +fi +if echo $QUEENSU | grep -q new ; then + echo $QUEENSU | awk '{printf("%d(%d)"), $6, $3}' > ~/.xmonad/queensucheck; +else + echo $QUEENSU | awk '{printf("%d(%d)"), $3, 0}' > ~/.xmonad/queensucheck; +fi diff --git a/bin/update-xmonad.sh b/bin/update-xmonad.sh new file mode 100755 index 0000000..d40b597 --- /dev/null +++ b/bin/update-xmonad.sh @@ -0,0 +1,11 @@ +#!/bin/sh +cd /usr/src/xmonad +darcs pull +runhaskell Setup.lhs configure +runhaskell Setup.lhs build +runhaskell Setup.lhs install +cd /usr/src/XMonadContrib +darcs pull +runhaskell Setup.lhs configure +runhaskell Setup.lhs build +runhaskell Setup.lhs install diff --git a/sha256sums b/sha256sums new file mode 100644 index 0000000..5e93803 --- /dev/null +++ b/sha256sums @@ -0,0 +1,437 @@ +d2e251a99a889a1202dda9a48ff982d01348762d6d560ba9181e35f75e599345 .Xdefaults +b6cd24dc05ad7e6c29095e3dd386dd1fb2dc1cdbe9e947ac7a09380706aefd85 .config/nitrogen/bg-saved.cfg +201e7388dfdbd99a1c5399173813234f6f80ee0d0a7119745be7c5bb95900ac4 .config/nitrogen/nitrogen.cfg +93b0d76267a205b2b81d6d280cea76341aba27c713fd8cc95d828834ade1a541 .dzen/battery.sh +0a8611b32e087f7598ebc6cdf07ee3056cff9328ae9223e516e7cc886a19a0e3 .dzen/dzen.sh +56a9e1a7c40a0dc906f778b41725656f84d3c1bcf2ad305d974d4efb937c401e .dzen/icons/arrow_down.xbm +325554896c1c2781525893dbe63fdf3aeddfe296cb2af61369ba095295a82b85 .dzen/icons/arrow_up.xbm +cffe6a5269ad576dd516d957b4b9e995851c28aa56087dc997dedbcaaf743f1d .dzen/icons/bluetooth.xbm +0d9636ff06e2fd9754da6bba8eb158e3529919b58551798909395095f79f0d0c .dzen/icons/corner.xbm +46ab7893c4105092d1bd06424a216a2734c17afa9f81b8c6c5e263d5628806ec .dzen/icons/cpu.xbm +3e48781b0fcc711a3c8df0aae06a5b0edff99093a544f52d6f6ab855414d8233 .dzen/icons/down.xbm +a4b0c0281e9dc106914611d40b97854bf4b1de10bc97e3e5bf70acf7e11a665f .dzen/icons/fwd.xbm +2d6d73c6ba261979ce0442e00ad92bf8025011f3316b4361b2fbc40f7b32158e .dzen/icons/layout-full-black.xbm +66c27816bc81068f8bf01795d58c39b53e37f14e7ad7ec9fcec3bae575aebf46 .dzen/icons/layout-full.xbm +e2301c6d53dc57b5f2fe9ed240b4fd2a8c9647b0e07121d27973f8c93b5c3632 .dzen/icons/layout-gimp.xbm +a5087e037bdc73bd5d2d3b97d35e9b554c22d1e376ac5611cbc7ed4d18d04cd5 .dzen/icons/layout-im-full.xbm +696638c4343e95224818e8538b0c528e2a1b09969288eca5ce50ba40f61cccd3 .dzen/icons/layout-im-mirror.xbm +a46b77da951c3326ccfd9f4071eedd7719b20fd206906004612509b5fb272ad5 .dzen/icons/layout-im-tall.xbm +9a21626fb692f5611cf9a657e1ba8527168bb35ec6ad945f7e1bbbec39782f06 .dzen/icons/layout-im.xbm +f8f3d59384145d4fc9d7fa190b3d98be5affbe6e37e5423119f727d1f92fbd1a .dzen/icons/layout-mirror-black.xbm +c76a45e5d87b5784ff65b9eedd37110c08a6a6b40c6e77f2085411060541d53e .dzen/icons/layout-mirror-bottom.xbm +7f42a46183ab1f34fb610823322eb09edc8a4242a71522534f113ef4bf5040c6 .dzen/icons/layout-mirror-top.xbm +5bccb0f4ddbef8a7a3f7100000f4af29ef446b11ed3e1366ebafad5766177d49 .dzen/icons/layout-tall-black.xbm +a8453c06551390e07cf46606f445cb70cd6b1309b8f979c7f210038025f2a50f .dzen/icons/layout-tall-left.xbm +ce8fabb17740e1bd385423f3ead3d7755903ceaa9a93296aa3c681029917faa4 .dzen/icons/layout-tall-right.xbm +7d3ecfcc9690bb6d06b2c2ba476aca510d0d62a0b9b1ba21f6dba14f32def1a5 .dzen/icons/layout-threecol.xbm +be281d50782c6ad91d522ecce75b482a2019f79eff24acff8471e04b79d089b8 .dzen/icons/load.xbm +cd9c39530193c19b2940ce67dc9f461908a0046856dba8313af2982acf452e73 .dzen/icons/mail.xbm +18fef6cf04dd6d5c1046855a784b8ad4468958f4069d4845f928963f1a17af95 .dzen/icons/mem.xbm +4a6fc2fe23ca2f1194b4e5a43c27fb898c7cbfd3ed53ed68158cc7d212d13da6 .dzen/icons/mpd.xbm +a25f1b8256eb1fb23c24215df5f95c400ca41ae05180ab2beb715417d958591c .dzen/icons/net-wifi.xbm +e5ad63967c62724b4d0dc105325a887f3ba257818cec244ea84a3d2ef521bc7e .dzen/icons/net-wifi3.xbm +51908c2d84ca1e198852357ef86562c50f67bec38c1d5162d55e8918f6afc087 .dzen/icons/net-wifi4.xbm +dbb559ffa818a9975c3272085484eac6eb747ae64eeacd3f49210de3554c68e0 .dzen/icons/net-wifi5.xbm +507a00b172dbe463e0212b3acfb2d19c59bc424d10b2e12f7f325f4e8d2fa4bf .dzen/icons/net-wired.xbm +e73b25928ce0fe93ca0adb9f92448acb1cb6949f7716f195fc567381b38f755e .dzen/icons/net-wired2.xbm +1659c59208d1c3264bf30e2e5383d21c2ba03b5e3a2b994ba166de468553be16 .dzen/icons/next.xbm +c4919859502771653d442e3c423e58f9ed9a73a228beea9996f6ce124afd79e0 .dzen/icons/pause.xbm +d0f18d4493fa4d2f1296063dcd223cc55e564e4747b4f26121bd3afa8c2f5794 .dzen/icons/phones.xbm +3dcfb45f1332bac6feac1507f6e44da06f33ed8058b3d13b7c034f6c2237a814 .dzen/icons/play.xbm +8330804ac10948db5894fae26cee9313e95e1a1ed9583dd692a64126793eaacb .dzen/icons/plus.xbm +ca55b7c818dafb20520a2db071f7d8ef8180ed972963536cf578cdd3e369d54a .dzen/icons/power-ac.xbm +7a070d4769731fbac2c8e2afa822304e7d8ea4cdab6d80aaf32407f4cd123fdb .dzen/icons/power-bat.xbm +02676242d1332ed000a6e8b2be7b3c1d29c46a1196c7c08a65f449025501f5a3 .dzen/icons/power-bat2.xbm +3559504ba4fb91737d84e2e12b5b0254d1b4a6884440d4755af71420d6b92137 .dzen/icons/prev.xbm +4c2622b38e57968f4386d499afb7255349ad1c4f6bfcc6568d7f69fd4367de70 .dzen/icons/rwd.xbm +f1e832e5cbc9ac003baa855c608b14b8da8ce1f0f9a9497cf6e4fb53d6ce2c5d .dzen/icons/spkr_hi.xbm +1b4fc9301a7c1afe854c945b8e6b580a15122d9c4f4a13010f8d5380ec4325a9 .dzen/icons/spkr_mute.xbm +1e7c53d4d529a62d0fdf2c6553c5cd699e72c05a145d684314832e1633c09c70 .dzen/icons/square.xbm +3066cca47a10651cf75147eb93dd7ddfc67c0a4a3ba1e337f70ff26b5377722e .dzen/icons/stop.xbm +663d407ec4d660fe45d7f70b854b4b44f09dc4ba918eacc86bd474fb633b3d25 .dzen/icons/temp.xbm +5dbcd87289e46f054e9f5eaf2192d3ec13ab3ce4ed5fc1b5f265c5c9a3d4b768 .dzen/icons/up.xbm +2785d8d853f04c23a9401b7c156b18a4f2056138d91963e91f5f39de9ebf7349 .dzen/icons/vol-hi.xbm +29738911cd39455fe732289c3eaf17225dfe6eb4297117fbe0d2e1a7f30a5613 .dzen/icons/vol-mute.xbm +ac02c9dbfaaedcf69775fd8289fee7325b78004b2762078f25e571ca0b612269 .dzen/icons/wifi_01.xbm +d83f281d105b849fc7f8b2755dae30d4706221ea8266e5a31b4a94d919db44cd .dzen/icons/wifi_02.xbm +51aeebc80c41efd096f731259876bd34f7252faba7eaeabb4e9e834062dd48a1 .dzen/temperature.sh +4ee9785182a7f5013726009c32411516f4e8b69150db50240335a091571a2a33 .gitignore +c9ac8331a5c6580b2d39200b3545f6126d03e84d3981dd9e2139cfa07ed4383d .imapfilter/config.lua +8a1c44b638de1b2c4c1ec78d16b3acb44c227bd0ed5707054e729a15fa2fe493 .inputrc +a8ed387566ed343cb03d52f125fd36d98a06b20f21cd8a9ab38ef66f24731724 .local/share/wallpapers/atlas.jpg +a0b49564f0c0e8445a71c19c276c947a9d6a4b832f0e4e96dcb63b44c9a47829 .local/share/wallpapers/feh-slideshow.py +1cfdc181bd24d7bd6432523ccb99279a92f5c8256e7194f3437805277c5b5ae1 .local/share/wallpapers/ny1.jpg +3eccec6b927fd77784dbbba9940dcd364c0a856ef72a951a0707313d6332dedf .local/share/wallpapers/ny2.jpg +28ae37302cd1a3ca311ffaee4321157fbdcf780bd5f0913cd55b0c4caee0c6c2 .local/share/wallpapers/skyscraper.bmp +0d2f6b7c2028eafe87fd84a78426eb6781602840367b1d5f708a3c17fd6651b4 .local/share/wallpapers/skyscraper_at_sunset.bmp +289eee67ff574936828f7d22ee62ee06b7cff598d423632042818639c77bc35a .local/share/wallpapers/torre_agba1_2333x1560.jpg +b7e022807d5670ccb137c768f1047c31e2a87a9b3ad565885ef7f5d1ea486840 .local/share/wallpapers/totheglory.jpg +4ed757775be13199d7dfac2c39500b1ee983eaeb684defc2c292e76fe67742de .mailcheckrc +562224f934e118cd679e274e51fc47b63f859662e59c6e397f603d90a3ed5b5e .mutt/accounts.rc +66e0849d979ef955851a131b0c64c80978e4ca31a2316bac9abfe66ce0c2af58 .mutt/certs/594f1775.0 +66e0849d979ef955851a131b0c64c80978e4ca31a2316bac9abfe66ce0c2af58 .mutt/certs/Equifax_Secure_CA.pem +f43726d0e181569f76adc92859a5b7441af1cc6e08bbbe257ece835b9a14d8ed .mutt/certs/SMTP.pem +c88bf3fa0d0941d18f5484010b2cc89e8742386f5cdbf0e5ab25284a7cf08b08 .mutt/certs/Thawte_Premium_Server_CA.pem +c88bf3fa0d0941d18f5484010b2cc89e8742386f5cdbf0e5ab25284a7cf08b08 .mutt/certs/c33a80d4.0 +2ec9cbb1a63903ebb7cfdd55eb523ca73b3b8da4ab026ecdb14826c429cbafea .mutt/certs/ca-bundle.crt +02a56441f5334c8a9509067323ef7ea8679329576531de6407efc3b7d601f14a .mutt/certs/certdata.txt +fe46c2a51a8f148c91f30b0a067b36f7c8352ab0ce3e972dda92dc2fb80a8cd5 .mutt/certs/certificates +2ec9cbb1a63903ebb7cfdd55eb523ca73b3b8da4ab026ecdb14826c429cbafea .mutt/certs/f73e89fd.0 +c9bd90ba85c6df4b0ed094c66483ce061214f1166b197a7b5c253df3fb5493ba .mutt/certs/get_gmail_cert +987c76b23e0cd86fd09b7fcd5a47fbd3af1f6d3488a161eb460e6d783b25d9c7 .mutt/certs/mk-ca-bundle.pl +cabe6c493588868385e308c9ecb7bef8e5cfe336730a03f67a142e9009533756 .mutt/color.rc +1fd52fb324c0060699b8bf69772d0bf6db0f26dbdc48d9330e51f6a935b1b523 .mutt/mailboxes.rc +ae737fb7d5efa33727e0e90455b8b1501801e7521b2dc792998bf64e51b8bd28 .mutt/mailinglists.rc +b8798f6b2d3a7638111dac4ed657198e07aed660dbf4f493852a6c996347cff4 .mutt/savehooks.rc +97478dad63159b2b6d98d5cf8881b1e525aa61dca8852956c7b6942e3dea8dc3 .mutt/score.rc +7ee3f04b74abb1b937886d8a10e4e1366b2d5062e27d215fa98cdf041364fc35 .muttrc +accdd205193db1845cc97400560fb099c09b55828a7b4e8a688532496493452b .netrc +70bad75824d1540d898d967a8246ff26ec8a5f7c181fec34e8da3ed599743f05 .notmuch-config +d340de50e3ec19da705e1b1b45d4d709ad70fea7a8d147c89bc7872e391ecf2d .offlineimaprc +7b0e7f6c0bd7c95d9d2504f3522fd84b74a9b3152db6f38a5f4a14e9b186086a .quiltrc-dpkg +e657c0d12066ec0e59f768f995a50b0abdc90b8441e547f5beec40bac227d6ab .screenlayout/epsilon-SAIL.sh +f94d4174b8ea5dd0a192e962beec2e875b582894b90c621ec17e65b03255ac38 .screenlayout/epsilon-home.sh +effcf5f09a3a59e48e4264c246011026a49291d8b2fce000b33609fcbfa3a5b7 .screenrc +562e14d05620e38c4ad86a32b8265b357c0c2b3bcfbf41fba300f4f81fec776e .signature +688a08be9a46a0acee72d8166388d622062223661b7aa9234e7802f6992669ed .vim/README.csupport +d02f22e4d3bce3f6bfb4f3c7ecf274d9cadb380f507214f08fc97593f8820393 .vim/autoload/haskellmode.vim +adcd438a9679f5d112115a4e6f11da1ff5a026d2f966db7ef3ef74bab6af626b .vim/autoload/pythoncomplete.vim +ffcd47161241f08f689b32afb1154e5cbf7a625c635bbf4edbe0a299ca050634 .vim/c-support/codesnippets/Makefile +9659bf47f6a380d7a896572e2d89cecba351cc9b1e1cee75d91d778d494991ba .vim/c-support/codesnippets/Makefile.multi-target.template +b0e8c58cf376fc7289ba7bc17fa4bae61853558885bdf8308f321e031be663d4 .vim/c-support/codesnippets/calloc_double_matrix.c +50cb03f84ee96a281c79bd272cd5fdb9965690cad695bd83470e41aadc374c5e .vim/c-support/codesnippets/calloc_int_matrix.c +83fd050e02fd4bf7e965a7511d2df78995c8329acfb7af6f0b3546a316ab0855 .vim/c-support/codesnippets/main.c +ed891586e7bf04e890f48b5419bcb15967032c3a4cc830815f44c9c5062b8692 .vim/c-support/codesnippets/main.cc +d51521f97a522d0b7c345f33a8605bfbd28f61ea49d284e6be0efdfba5753313 .vim/c-support/codesnippets/print_double_array.c.noindent +1d78598231070c7548b6fea67e8936a81e7bde78238f8001affa1a64424809ac .vim/c-support/codesnippets/print_int_array.c.noindent +a926149585ec7351dbd6f300e9236fa707432a1c2fdbb4b0e080cfd962e81920 .vim/c-support/doc/ChangeLog +b15e5b498bee1a6b57c874c2990b88c418aaf9af43c35703eef8d2185b73f259 .vim/c-support/doc/c-hotkeys.pdf +5daa2abf952d1d0f757040971be335f7ea474c278f31bdc3cb0e0ba67c8c32ab .vim/c-support/rc/customization.ctags +11d23194efd4d91bfb371b7fc8c80c7969b26a661eb43074632bf37a5a56ba18 .vim/c-support/rc/customization.gvimrc +3316d03d74bd1e04bfc469490f7345795b537e671da93d0f00653801e69ecd61 .vim/c-support/rc/customization.indent.pro +d322688608e140b73d830934341f724fa5b958592e95a6b6cfcede75dd90200d .vim/c-support/rc/customization.vimrc +09acde106a30d00d2de8d71b12dbff29eda2f71fcefe0fc61e7bd3f225f29138 .vim/c-support/scripts/wrapper.sh +ca44bcb9ec787e71cef0767f48544744cd1a1c8c2c6c121fd1a3872c6ce0c5d4 .vim/c-support/syntax/c.vim +81c8a07249a33b22e56851d9ba5269235b8c7760660b872d108d3e6907b7170e .vim/c-support/templates/Templates +4aa5206c34a833062f3568f9893e417f37b0a5c08d7b9cc223ce3ca1d72f6feb .vim/c-support/templates/c.comments.template +b4a899e9043f858aa3b1dff00e48f1ce0e0dba6de4473ebb26a2b2559a0442bc .vim/c-support/templates/c.cpp.template +c9f1f764c1b5456ca351724703cac3367ce0690491aa5f1a50c98ed315617d9b .vim/c-support/templates/c.idioms.template +81bc73aa07b0da8eb911165050178a4d650b9c9fc2f75e973242d0fdd6f511b5 .vim/c-support/templates/c.preprocessor.template +49d219bc266a5131e3533334a2fb9d1c9ab5e8240f458f7122346a83752b6a50 .vim/c-support/templates/c.statements.template +ad58773a11e0ae304f86739f27233728f359f21e4dd036f5fb378936fd8803d7 .vim/c-support/templates/cpp.comments.template +c0d4e3863143329ec01a5b1682de96af5dc453d35221d99040f2e3c51ad5d223 .vim/c-support/templates/cpp.cpp.template +60424ae5e54e2bc1bcd865de56dc1aba7a93907c9f045c5f9db67f8d62ef399d .vim/c-support/templates/cpp.idioms.template +f57eb8e2faa5356c1db1df789c8bc3b0ee168f082e35772d4d41a6ef419f8a00 .vim/c-support/templates/cpp.preprocessor.template +8fc727663b58327e78ac81717845a451afd2e2c002811397c420ae446f80b737 .vim/c-support/templates/cpp.statements.template +113ddd3fc5be6867e28a83a06d65258b7d6a119bd3402503981a182b76670c8c .vim/c-support/wordlists/c-c++-keywords.list +cf0c2f107c2f0b66b080ad152f3a3377caece50a219fb2814c7f694d2a7479c6 .vim/c-support/wordlists/k+r.list +cc136dde33480b166d43889c541238e68c4becad78ed11bf63588a864e6368ff .vim/c-support/wordlists/stl_index.list +3c8f5ee1526af065337e08795c914149e076064909b8dc9943943dce3d322591 .vim/colors/adam.vim +007cdd64b7030e7f48e122df8433c3f417d50e1f511f215057bf603805535795 .vim/colors/adaryn.vim +f4ab5cd8d3b386ec185e7801354435c14ac82e20f36ac6b5d03e7efef16cc486 .vim/colors/adrian.vim +0b1c708dfef8f578186e51b0c8886bb9795f4feeb144e606069b0b122fc1cc52 .vim/colors/af.vim +6fb9dc69c2dba1d21c37dc93ccdb383580239d55f9facd0c6851b30ea3586dd7 .vim/colors/aiseered.vim +bc2230054c50e00910c3f3ea99dfd68a9a463183e033ebc4b99fba01c1acf765 .vim/colors/aqua.vim +bdfd4aef0dfd6ab75cba3126f2c53abce71a06e62526f1f0d41baf8e75780599 .vim/colors/astronaut.vim +2e935177088ee6aee24972a9c35706e7a71dbf82754589b0aaffbcd22a87f51c .vim/colors/asu1dark.vim +846ba14e60e955e96bd23580b1590e0b78026846a5b5dd2980c518fb81dd0c4f .vim/colors/automation.vim +b23c6a2d5cb629a78190296bbf0a2414ccade13bcae39a85b00bf4563a5813ff .vim/colors/autumn.vim +b23c6a2d5cb629a78190296bbf0a2414ccade13bcae39a85b00bf4563a5813ff .vim/colors/autumn2.vim +ef321731269d0757e6d3cab8fe66b6a7a89da4110e9a455d0fda909c29cf53a6 .vim/colors/autumnleaf.vim +10f838fd24f366783b5a4ea0f42610cd95df144a24c23db8589b005b1ae99ef5 .vim/colors/billw.vim +99bd81584b8d5cefb0cff06ccdf6d0f19e47bdd29a0f9373322c1def67c87259 .vim/colors/biogoo.vim +8174f4e8ac747880db656db47ec02aff9b27be534c6739c6dfb9d028c754838a .vim/colors/black_angus.vim +ac5d7ec952e8f763c5814d8ae08f7252622457cc58113a3a5db794568746b8c5 .vim/colors/blackbeauty.vim +813379657b06ce2906cb14232716580a92c595143bdf5214350f0fec581e7f42 .vim/colors/blackdust.vim +e08eb7c30322c59b032ee0dbddba42161e563c8cf48d647f9993268dcb29891a .vim/colors/blacksea.vim +0306429a227b0cef0384a05e076694ac4deb33833dd15cac4ec475d07b44adda .vim/colors/blue.vim +93824b6282b11b86754d2b9ad5f346ec36f012c36f72e4db8c93e89f8017ddd2 .vim/colors/bluegreen.vim +4dbad855a6365cd6441b26d8f9858f65a812d6b4c5e8392216ed8a225d11c32f .vim/colors/blugrine.vim +636c2e8588e1ba2bf86622155a5b7ac6c9e165b857dcc80e7ad6378e5e46ffe8 .vim/colors/bmichaelsen.vim +145af35e17070a93a16303ceea0c6440f41e031c1a04b6e66c1630727bec18d3 .vim/colors/bog.vim +2baf3987bfb7f6880f50b58057bb379dc5dc800b31eda6b4cf9fe5e62834dc09 .vim/colors/borland.vim +3bae4032004168352ec619ac1c345d2c3bc8c9fa12e71923ebc53cd6f25e118c .vim/colors/breeze.vim +b38d9e630536d26961c49a74d50ad30db4c214b2a4df7e847cab559190f911b8 .vim/colors/brookstream.vim +5a006912786f1c299ad255899b66bf2355c92613efd6ecf0f611f07a0e20b018 .vim/colors/brown.vim +ad5c429db36cb1b3a3492adea6d9598a76147adc355e0ce9a479a2ed658aaa0d .vim/colors/buttercream.vim +ff3316d03d72b23d92410569b88f2f901ecdf320c292dff10a4f37bcfa790bbf .vim/colors/bw.vim +5a393a81d97857f44fa8b89f098fd699f2c06ba09665f2c1ce0eda07a9213a37 .vim/colors/c.vim +46dc45fecf5af24ceedf1571d511259146da0f647ad9ab4e31d8ad3ff12daeee .vim/colors/camo.vim +1efe5f366ba21fa0e96422f7f856ce226e9c2d4420a5bbe9109920bdc0ef6767 .vim/colors/campfire.vim +3431998da7a20073186525f3577542691b2d52f19c68be3c154f26f5de54c7d6 .vim/colors/candy.vim +c6bfe906b401f30f4a68ac20b6d680291571163a55aadb58b82157ca6ed138d2 .vim/colors/caramel.vim +601349900c5a14be0f75cebab7da44b5328eb8172c50a019b93ceda41c099d78 .vim/colors/chela_light.vim +05bb744a803ec6bfe34e8cbdc784548287eee9a0263c3edcaeb8424127572b67 .vim/colors/chocolateliquor.vim +7fe3910beb436ec310ae8caf6fc8ed50d70f9ee499d463071f6d90c8c5a2f27a .vim/colors/cleanphp.vim +d5f039cd40d38050dcc96f2a74c7e96f41cab69ef20b83598fe4ce18d6059e35 .vim/colors/coffee.vim +26f6c3e924171b4fdf99b13d0e122e88dd322adbc6436ed65ed812d422071534 .vim/colors/colorer.vim +d51c2c14ed4ef4d91085b4d865ef8415f80a7113bb507f4d208d5dcf5dc01a07 .vim/colors/cool.vim +54e6912922b9100965e8ef4ad3ff54678992495c63c0c5b2a9b424ff953d0aeb .vim/colors/dante.vim +b3e0e5207f8d2af716a13427a3edf91ce9e5b088fb723bea62722030e5943c60 .vim/colors/darkblack.vim +d7e92310563949db32a90ca8da923a51db95eecf665b6e4f0a049b0bc4aa36b5 .vim/colors/darkblue2.vim +8619cd0577d01887f393d0cbd1550c5e5fbe5811d62b5de4b9a4c8c3df0cae3e .vim/colors/darkdot.vim +817fb128e635acab1ab952a17148c26aee9f082c5ebe16a054c3a9a02d322c52 .vim/colors/darkocean.vim +e59fb3eeb721e2c414789d3d0c131ed0ae7abcaa47b6f5a383500f7f91a2e201 .vim/colors/darkslategray.vim +0ba13cb4343c2bda3e38686d295c19f9da58e4a80c26a4ca7e94fc06a2831013 .vim/colors/dawn.vim +d56f663285e3e4a1088e831e698065ab44eff51cb5889b4b687fc13c64ee1932 .vim/colors/delek.vim +53823a032412902107ebc9e1384c4c67ed6230fda760f78187a381268f32ba14 .vim/colors/denim.vim +076f2d3088eefc4a455c9aa5e1dba07181032fcfe155e23fbea80f20dc69ac15 .vim/colors/desert.vim +c175ce34ef2a3ab99102fa4361c817d6288cfaaa7ddc93291a3564c957766f1b .vim/colors/dusk.vim +11717acb76d12b64d81454988db07d622e416564d37a6bec17925d1b3f3cc1dd .vim/colors/earth.vim +84d70456281203190eab0378b39de8b592593a51f486e170706504ffce2f85a3 .vim/colors/edo_sea.vim +aa76d00677c394219ab56fb05ca3fb54d115954ad0a5d4d33d11e6c75e24e9f8 .vim/colors/emacs.vim +6e30744674654e7225aee07c19bb2e2fee9ed74af21a1e446bb8f1d2033e2214 .vim/colors/fine_blue.vim +8850fb7c73bff339fc4f9a4fe97a7a3313484c6fc167f940485f7965d06d4c8f .vim/colors/fnaqevan.vim +980f7e08e75ee107fefcdd9e82cd2b8c86b42834e8c6ebf5a3368dae9d5d1a79 .vim/colors/fog.vim +221c9211caad3ecf763f626584f3b12808dc7479d63268c056d56b4f8dd52e9a .vim/colors/fruit.vim +5b38ce261187aed499a3499440e2cdc7aab28f753e21019f5e36bc56db03f376 .vim/colors/gobo.vim +a8cdc5fe53d11d298979b37b27edc6a216d4bb538ec742e1ec1b474b272f7ac5 .vim/colors/golden.vim +03d9bc2d1ddb590b7c0e363dc9ace3a9587948ac8f919c7cd2083220d040f422 .vim/colors/gor.vim +c9324ec261ccc592f4f8950b64e51e25301d5c0e9e5e7d23712461506a21bcb9 .vim/colors/gothic.vim +da8b4b48ad26a45ebac812c08fa19ccbfa43335f8bf0bd0ba4204aa56dbb5f98 .vim/colors/greyblue.vim +e05740ba2de97588c42ecd924be303893c7faaa8a293e7094717aedad3e5a876 .vim/colors/hhazure.vim +d4fce4a1e23801ba2211cc4c6b2fd7979fe94fb7d90f2bcccf8c4e734ba893cd .vim/colors/hhdblue.vim +cd85e087c1a94b6df623263c960df1bd1797efdeb3488cb76ec4c4f6beed39a9 .vim/colors/hhdcyan.vim +d1648b75f1411b3a540e4b5f6ba0a7479b240bfd49f787d725b29179d132f79a .vim/colors/hhdgray.vim +27cb37a6c1dca7abfc39e8ac6a3decc62a422c30ac8d02f919ef2ca130932d92 .vim/colors/hhdgreen.vim +2de1ce4ef6f9ea5fc1e6185f21d5912ceacba4c00ddd9db75108d558359804ac .vim/colors/hhdmagenta.vim +0e85b435dbc6ff83a1107220a198383daeb6a88f55392c0e68cdfc5d1ce03f48 .vim/colors/hhdred.vim +78b8fa0a70f6e11cad8a666620ce303ed1e5b47c5fd1d43610583191ce90f09b .vim/colors/hhdyellow.vim +ba7a6f4b9dccde11b9d69958942c317b49b132106352fb09c2eafec6f854c9e1 .vim/colors/hhorange.vim +408a8edf23c7cadc4a621c460d969c1fea387f6fc2b91c9ea888eb4e22ea6621 .vim/colors/hhpink.vim +c29cd8103153f0b9426080000e1fec18a0af0ed41a376ab760c71f13a0fc784e .vim/colors/hhspring.vim +4c54de58d69d3a783aedac01c5cc6a1df55b82bf4462f07f162ca2435ed2d3d1 .vim/colors/hhteal.vim +db94d565ede9c1ac89113f33036f2fe1bd618dbd655ba677193cd03bf9d1d030 .vim/colors/hhviolet.vim +72b81dcbe93ff26032185685ae622e6c7a87e07e10259c551a9114789bec29ed .vim/colors/ibmedit.vim +e97ab65da8ebb8b82af881899d05fc64090681f6ae648bb9b13dfeb02407cfce .vim/colors/inkpot.vim +c16c0325b4b8467fd15b47f040bb32739fa2ae93d89250b2b2fca2a87f8c1be2 .vim/colors/ironman.vim +47277b5744ffdbe419758b7e192913c267ca44cae41211b4ab263b1e99e01b7a .vim/colors/jhdark.vim +1646b75eb782ee130c59506cec5e6b8cdc8e6bf563f30db6ea612f88eafef557 .vim/colors/jhlight.vim +fd3343c9846f19ee3b9be1085fa4ead8a54109dbd3fe847a2cc25cd2aaeede13 .vim/colors/less.vim +426400af1be0147a978ae0b706a1475ed38962f8b5276703f648d083e88bee5a .vim/colors/lilac.vim +143c0413c039caa9cc1e15a2beec853e7a593e44c699cd055b2c178e7f5f28c0 .vim/colors/lingodirector.vim +9d1eb378c6ae24064327db2dab9baa5335d67b63a9434bace1cf128790d9bc49 .vim/colors/manxome.vim +816b145585a0e9c77efbbe72e5cb2877654afb68324a8676e0a80c84e7b07b14 .vim/colors/mars.vim +1c215c5c53ecf32c18defd9f7d02bdabae802dd63d23329f9d4439a5dbf1f38d .vim/colors/matrix.vim +7c6aaa4d66364c2dba3a314bb7e4f7dfb2e3bd6057ea845e262439732f65f9b8 .vim/colors/metacosm.vim +5f6226674582ee1fc512f28afffadff43f59649cb2fa641675089eafdfd312eb .vim/colors/midnight.vim +eab18dfd6296b0731454f6334de15dffb120ab3f9f8967266eab42daf96b7e54 .vim/colors/midnight2.vim +bdc224abdb1df16907a4c2b9ca98145637b2c9564ff9161de8060732816847e4 .vim/colors/mod_tcsoft.vim +f727f5b7bd21502f91a48dbcea49d9616655b3a7b292ac468ecfe80dfb2c7727 .vim/colors/navajo-night.vim +75a72880cec2c995c7c48167554d5ed644aaa83aecfcba6426d1262ee36250af .vim/colors/navajo.vim +9fe93c919509cfb981efa4e4af56f49c9af5b0196ba5c4a78a0ebdd04a3536bd .vim/colors/nedit.vim +6cc6c8297ddbb93e47ccfbfaae162eb3bb8dbe9f1500e7eae1760b5659578975 .vim/colors/nedit2.vim +476233899b982b12bbf1f52b0e265dc52f15332e0a3c2c5f933c53d5103b5e78 .vim/colors/neon.vim +4c44e19e1a018d3cfc04a2d9cdb4a395c5d23280f5c89cb9a360821d64809f7e .vim/colors/night.vim +b89fe4e75f06ce37ea8d6da19fb1ce532e82e26e11619a56d33ed65d33b3edee .vim/colors/nightshimmer.vim +d0a6c04b66b98088aef745eccb276a6c5750bf37f88fce5bda9cdfe4b9d0d6a7 .vim/colors/nightwish.vim +b17fde5a36702b677d221570c652ca119d04cd9478b1064cd2a078b4469db5d9 .vim/colors/northsky.vim +e9870c3c5c2c4da5f680c36ceddd05f2c6c4f30618942800918fcac77c3ff994 .vim/colors/nuvola.vim +1ea32a03a3ff91c35624397be39f22cf8026cc21948eba84be820240f30cf009 .vim/colors/oceanblack.vim +8c2f6c976261b0e26f6d036dbc3a2385e4fb6688e1777b551b511e85aaff389a .vim/colors/oceandeep.vim +161e031a656f9d5b3e02d185c77d239b09ab023404a2b5721a0f4edb0739c33d .vim/colors/oceanlight.vim +d95f479bd542a4ff0b9e68eba607ee79dd78769e94993f1a26ba7c3a366514a0 .vim/colors/olive.vim +9d1ef97c6459b4ee663152c105dd4865ed6b9dc73959f395c8b1c959cbf99e3e .vim/colors/papayawhip.vim +2e4b7a797f0362e30a2f6ea6643944740a7c45883a9f0262d0c1ced684b8465e .vim/colors/potts.vim +8d83f204cbc4dedb045ae99d4c625fd2ab85987e18f1c3e6daf612bfc169060b .vim/colors/print_bw.vim +a41b54648272ac07ae859fe20649be8fec51355b94b4d870c8b87dac06a0f2fd .vim/colors/ps_color.vim +0ed84d09ca4e3e6e5a807bd6e6180242403eb4c502652b20171b60ec78108c1c .vim/colors/putty.vim +1676e4de474abf8dfcea44354b02627b1484b13b9c51c42a203b9c09ef986a0d .vim/colors/python.vim +fb39bdc485bcfd710a68846eae55baf5f07dc1bf723f90ec8e00f8990a15b9ca .vim/colors/redblack.vim +9ad83b235bff978758b0d29aae7ab7f892b9ab8e24a22799206e4b594ec7eb49 .vim/colors/relaxedgreen.vim +554e91ad3cac301027a84c12af33d412bf42c6883b7117855e75927dc908ec9e .vim/colors/reloaded.vim +93b1b8aac3a2bad2c87d6b4f45b5014d93ac1a020d98b2da75f3a299426db25d .vim/colors/revolutions.vim +88e7e2c32041606f88c528d68f26bb4ef45730371595ab4ff03eb63cdf205892 .vim/colors/robinhood.vim +d389e4b5f90e77a9a6123271c5ad6eeb1548492257de7eea6588e69ada64bcdf .vim/colors/sand.vim +5b628255e44301bf75d4ecd09d424ff9b04b3663adfcba43bdcaf82ff924c4e1 .vim/colors/scite.vim +2a15faf3e21a6bc4c9ee57ffd7d8e54a366985283599721fa43a73af3ae76594 .vim/colors/sea.vim +c149a0ff58592f1533082637b88738386203c1b1a18fdaca4f9a314c12684668 .vim/colors/sean.vim +70c1551d14ab171daa20a7a066e5d47cf6b4e6cb7ab9e3b0672bea696a015b3c .vim/colors/seashell.vim +79edb2e6cf35a33954388a1e5891319ee4199c367498e5ea8834da1e4d6d97c3 .vim/colors/sf.vim +38dfc4f7b2cff4be6d488eaa8050253e149bb6bae9dec3d9bff0321e3198aadc .vim/colors/simpleandfriendly.vim +aec296eb13ab643028c4ff714e836f1eb72ef2ebb5821b39c73779e8f0b97aab .vim/colors/taqua.vim +46dbb62ce55e2c2db3d909833fec27b8ace3e83ec728ab0ba0698ccab9cf8ddb .vim/colors/tcsoft.vim +2064b98fa22790f0c482759ece74312b495b33b24b19aa6e4be834601b0ad938 .vim/colors/tibet.vim +c112242d35e401a400411690100fc02682f3d4613d3d65656bc35f021988d068 .vim/colors/tolerable.vim +60f639c3899ca5598ecbce194d3fab929edec72c198a3b237191b43e998b1a85 .vim/colors/tomatosoup.vim +87ac82ec2aa8085e038b3c81df613ba62db2f1a4192daba1ff0e7020ab5cfa07 .vim/colors/toothpik.vim +24320526705615a3f3703998ac41a06e5f1eeb12cbbb1690f72ea1e815e5d89e .vim/colors/torte.vim +409e9917436a3229d4e2d03d9aa6948c9e1aca263a80079430642169c65d4c8a .vim/colors/transparent.vim +2a7258f76b7bb423e4766fa097a2ca4004379a17a4be2fb3a6beb8d4127540ad .vim/colors/turbo.vim +54283dfe7e4ba20dbf55730bb8612f167e1333cce1d0c8ecc6ce2a3fb2a41601 .vim/colors/umber-green.vim +3de84011ac0fd712d76724f9fcd7dc805bcecd52a40e97a7585c57e22a38a570 .vim/colors/vc.vim +f771cd19481332fe4c6fb2ebe9559842d62adb17c0a9bdeaa877ebbdf11b5a11 .vim/colors/vcbc.vim +10832d5d679a88cf900d926c9829bdb81f0153f2e0c4507b7184306811305a07 .vim/colors/white.vim +bca5d4a259ad0ef77e3f1ab630c8ef71edafe4373ac8f78a763a55689402117f .vim/colors/whitedust.vim +50692743f6deabb88033c972694a78cc7f8a1a4da8fce5ed2b8fbfc9c1ff794b .vim/colors/wintersday.vim +0179135646935064854143e3e1963c7d643ed25561a29812ccf68503ffc26f9e .vim/colors/wombat.vim +43fb2188d1d0d13f217e5516ad3474ff348da1cfc3551927ef4f72e643325b37 .vim/colors/xemacs.vim +0c47a225ba751cd79220de7914d4304524960c53f5d41ff0026253cb7737e8a4 .vim/colors/xian.vim +f25667653ab00307bc9d5673694663b7cedc125d82c6cd7322873e5acba60d57 .vim/colors/zenburn.vim +6538e1ac0318c2edce168860d730725c8e58db49d2d6f190dbc8972ec116a7d7 .vim/compiler/ghc.vim +137e387e18080514cbc1916075f0c654ca76701386b4f31e39e9fb57476e7eea .vim/compiler/tex.vim +65b124c12b11ee6f1992fd660060c42b1848b91470533e8929a0b65b0dfb6878 .vim/doc/csupport.txt +fb5ce477f6c3e9b85800fd8de2be81b9d0cc436f24970c14304aa66f80d6666e .vim/doc/haskellmode.txt +67e4b89a962102f5f1e1920ea732d8868a0d18e8c824103c8fdbbb0eef31b55a .vim/doc/imaps.txt +663016dfecc1a0b3bae2aab4b2b8172e05c742404943e7981b24582d2d4d6f7d .vim/doc/latex-suite-quickstart.txt +0f91c9295dad36fc944e048234a7ba43b0b38a588aa1f9fc44a12911c219cf52 .vim/doc/latex-suite.txt +d53433220f6e0c2c3104fa3773790f9418b6d6f45cde9924faf697c91373b01a .vim/doc/latexhelp.txt +6785f6e5134a1b7b9b7531bafb14c84462264d1a961a61e9d84dd20a6f6b7a31 .vim/doc/ps_color.txt +0653be352445428b3af6e5bee3385aded524c470618522daae652864bd0c4105 .vim/doc/taglist.txt +63a4a70348480c68dd60cc5d8ebbfc8ed0230ef14560dbb42c7a5a5429575efb .vim/doc/tags +47e74fc900733ceb109d139dae9770ce82f84e7952f5d74d24339d16e1200bbe .vim/filetype.vim +77377136e18b472ab56f8b339e98b4df53e64dcd0068f6827e55cc1ed6b8f3ad .vim/ftplugin/bib_latexSuite.vim +2918e4e0924c1b24042fc15b3d870e9a8daf7f9f1ae125873ac47bc52d121b09 .vim/ftplugin/c.vim +ff65f984c7fe886959a3a88941e9eb4fb2c2dff8610ad969238d06e98ac516e3 .vim/ftplugin/cpp.vim +2e14c7289aefd302f2d328efbe4370bc2fd7d4a33821d37ec4d9b142a60f5b5f .vim/ftplugin/gpg.vim +cb4f576b6745a3d2f64d2912e0e9bb5e73b13dbd719eb99ef31c378aa3dd71f4 .vim/ftplugin/haskell.vim +c1eb34f90cea112f645622a9d8194de86969caa0807065b9f077a32ed0225623 .vim/ftplugin/haskell_doc.vim +c0e50ddccc30b6ef24e14e4a43e72dc8b4967887fdad8ead75802fcdccfe500d .vim/ftplugin/haskell_hpaste.vim +13a7382790dfb980b888e45bac159021821d6c628d93a3c7c2ddd423e73d4002 .vim/ftplugin/latex-suite/bibtex.vim +b64ed475a33534fdd24e7c74957d160506608e69258f9685d91468ff228a6788 .vim/ftplugin/latex-suite/bibtools.py +b0501a351c5aa60ede2db6cfb0e84cb47fe1a7d56887d22b3c1ce61b934adbf9 .vim/ftplugin/latex-suite/bibtools.pyc +b486556b7152ebc8bd8149d0b4014cbc58f7dfd95bcef0ce0f838805de5e20e5 .vim/ftplugin/latex-suite/brackets.vim +0c28d3da048a8620e2eebdc24c7358f25a73bb8da0e26dd13931b370db99da9d .vim/ftplugin/latex-suite/compiler.vim +ac40c901efc20beac985a4353abcc6f228764ce17895e7a763d3220a3ffd0157 .vim/ftplugin/latex-suite/custommacros.vim +56a11236635aa7553f624a5268d302d1b7be81ec8eabd65c844e6a523c62a202 .vim/ftplugin/latex-suite/diacritics.vim +0303e0caf67ebed412b01141f816a3ecf2cc50f9d3d52a7b4c9fc8461ba7b221 .vim/ftplugin/latex-suite/dictionaries/SIunits +29c4cd6543fc9329730acf952b5588796e871a1b6ceae41c308b8048dc709139 .vim/ftplugin/latex-suite/dictionaries/dictionary +8d7a24bd981033ea60067af93db0c17a360d0c6c3d1fd11fd16464763d18aadb .vim/ftplugin/latex-suite/elementmacros.vim +be8cd5b00ad143205fbd0471c05072903a095dd99de48c56faa7f500b3c47f73 .vim/ftplugin/latex-suite/envmacros.vim +991c343b44af2fd3dd6e674f14bf1f0416c49071e348a0249421a86d715f39c4 .vim/ftplugin/latex-suite/folding.vim +80c998b0fe826036ebd785df8e2e7626644eb22de9bdca10bb3ae16a431c1c02 .vim/ftplugin/latex-suite/macros/example +dde7b079c826818490d03b038043ef29424d8ab3dd9111cca516ccc70e25527b .vim/ftplugin/latex-suite/main.vim +dcc59317c0cd33cbcf0ca0d4f0b5a16e2f15eb7d30cde45b4037813bde5910a4 .vim/ftplugin/latex-suite/mathmacros-utf.vim +58cb8ad51a1653985430aa169a2a8a3543bc1d910901bf6e139053b89b59b1ca .vim/ftplugin/latex-suite/mathmacros.vim +c03a306335df27b0409919426324884aa4e3d8439292be502a0f73cbf6eb1622 .vim/ftplugin/latex-suite/multicompile.vim +6ffe27b429733e0decdb8588f0d601aeeafaa1200db306b91dc37bdf71f507b4 .vim/ftplugin/latex-suite/outline.py +9abcfbfe18bd48f96ec428fd9d57f3ffc0580b2c55dbf836e796a7a5965f6c25 .vim/ftplugin/latex-suite/outline.pyc +7fc447839ea2673407b38342264eeb7f92b3a507f39c04765ddf4bbfe3f0184a .vim/ftplugin/latex-suite/packages.vim +637f43ca476c0ab881bbffc470192c06a4db460a3729b36450e35225cb0fdb61 .vim/ftplugin/latex-suite/packages/SIunits +79b5d936427686fce739c6659d20cd78743156d7c350f528bc0162722432d752 .vim/ftplugin/latex-suite/packages/accents +1c4a0003afb36b4a21bc1bf19474fdabda5720d60a05b34bf328ff40978e6938 .vim/ftplugin/latex-suite/packages/acromake +677547aa46abd78676b8628231279a5af5702b998e88af8fc218659942365f83 .vim/ftplugin/latex-suite/packages/afterpage +cbd725d8d8a51a9b9116e7672cc616582cb9590d55f9ac4963a1568e11e05f42 .vim/ftplugin/latex-suite/packages/alltt +d793b666db6ab5fa5e74447916449099785a7cba1ae60ddfdb0a7390f5a6335a .vim/ftplugin/latex-suite/packages/amsmath +f0dabc4cf5a379c7d6ddf77f546c2b0db81d4d397f4a2419bdcf83cc418fd5ec .vim/ftplugin/latex-suite/packages/amsthm +c83d0ef2613827c7c1fa8c49544590df65fe6fdbd2f9a7d544f4f05af6dd1360 .vim/ftplugin/latex-suite/packages/amsxtra +d5777756b44e9d9aa3eb1cb1d3d1fabf70257c5ca62b41639abaaf8b2c05e2c0 .vim/ftplugin/latex-suite/packages/arabic +56966eabe19363eed5811d55a14bf76fbf4622e95231531bd5e60a88813ee840 .vim/ftplugin/latex-suite/packages/array +a92dfe8b038214a314c65dfd7d165862a57247da902d568714ae7a6833550e78 .vim/ftplugin/latex-suite/packages/babel +5b0c5a9e4634b177d6a131bfca7ba5c1c3c6a5852fecc4507196a5452517ced7 .vim/ftplugin/latex-suite/packages/bar +689ae0f01b7eb559654ef8f2137b7c56782924e39c0446b1b115abc6e24b1eaa .vim/ftplugin/latex-suite/packages/bm +1781730c037ee48d6c345186c708345391579d528a32096771290462f471e283 .vim/ftplugin/latex-suite/packages/bophook +3b2923f04a00ddcd922ccb2f20c1f1824c3837e5c18b1ea72d0a246ce95d867d .vim/ftplugin/latex-suite/packages/boxedminipage +6b4a6392d4b3a9620449731d61c9deb4afafe699d27b1e9e675f0fe092a43bed .vim/ftplugin/latex-suite/packages/caption2 +9c9cdc0bba178e7108fb3c6813b818f1b99532915bbb126bbc959cb23050590e .vim/ftplugin/latex-suite/packages/cases +b11d2ddce202814a44dcca9e0df5ea720c18ec153169ff73bfd9dbd439c57a55 .vim/ftplugin/latex-suite/packages/ccaption +1ec2263d88816985656f2f7c7bd76b56d659172b22d9a097950101342564078c .vim/ftplugin/latex-suite/packages/changebar +949c5f8b7e3b3535a67e1609e0e92dd40a1fb1520fb7399f388a2b76888eaa34 .vim/ftplugin/latex-suite/packages/chapterbib +f5e59b969b99d5feaebc4b01989b303250ffa0f4b924e26e500f58f0649454f1 .vim/ftplugin/latex-suite/packages/cite +e4b8a86ac0af9889bb56403d76654e80647080726c76dc4aeb3b4df8edb7857f .vim/ftplugin/latex-suite/packages/color +8db7495dab6092a9469f98f7699e43afbf9c8b8fc8646bce15f8582ae9a950e9 .vim/ftplugin/latex-suite/packages/comma +7b231be487121de250b4439d7e9b9415fbb3708077a83af19dc13a0ff546812d .vim/ftplugin/latex-suite/packages/deleq +20a796b233c6da5bd12e4cb97f169a7414cc19310d947059e0437724793f9f5b .vim/ftplugin/latex-suite/packages/drftcite +1102b1030c00d8302da77c8733cfd84705900a87b07594df63c58b4b4bfc46fc .vim/ftplugin/latex-suite/packages/dropping +5f97d74c74e63d2b35c4cf940e8a1ee5d4642427ed234c03e00a70afe717e506 .vim/ftplugin/latex-suite/packages/enumerate +8739389ff44008b790fac0d7b1aa51f3c797abdace31ee8f4b351333313f15b1 .vim/ftplugin/latex-suite/packages/eqlist +03d3bb9343d2752220b6f822922292c3435313c15d790c6965b5981b24549244 .vim/ftplugin/latex-suite/packages/eqparbox +e5fdfcc6227148e466a2c8bf7c84da229b9a0a09ec944c2f0afd2c84529f84a5 .vim/ftplugin/latex-suite/packages/everyshi +30c54f5da1f34586817e87b707e6c362fb44b1eaf788c7553a91e8f515be9f70 .vim/ftplugin/latex-suite/packages/exmpl +8c6ca6460159895cec39490762f7d548574896caf5bef1a1a06cfedf05f8dbb0 .vim/ftplugin/latex-suite/packages/flafter +01460ce9ae75275d9c8e6339ccd11ec761ea9cbc73db0bc17f7aefa242417a81 .vim/ftplugin/latex-suite/packages/float +475a88962478c3c432c1854a0856dc25027c1ee4501e897ef85a8d217d22220b .vim/ftplugin/latex-suite/packages/floatflt +2dbadaf429d8c5667f42e957764ef88caa369330115b08824528839615891b3c .vim/ftplugin/latex-suite/packages/fn2end +14b5350fa477327f379f201fd213579c88143b58f0f88b5f65714c6039c1aef3 .vim/ftplugin/latex-suite/packages/footmisc +ad744d9d4b98c12823502376b73c0a3290d6b60d988d1a7fc5c9a2b5278dbaa4 .vim/ftplugin/latex-suite/packages/geometry +b88ac941ae70b41da457e90267b691355097bf7273f22327f030bb8175b6df54 .vim/ftplugin/latex-suite/packages/german +5f5b35a7add70eb2d21da9aa3525103438449619d8660b4ad002968fefce1903 .vim/ftplugin/latex-suite/packages/graphicx +e0cbfce47a71e14a60150385979be04dc408c0ca461bc6cbbe46a135896431a2 .vim/ftplugin/latex-suite/packages/graphpap +c691f2702cc20bd867397472b75467bb0726023cde5500868605af178edacdf3 .vim/ftplugin/latex-suite/packages/harpoon +42a7884154d85c608bdd6ed6ba34a8ae48c8760836161470c857350c216fb592 .vim/ftplugin/latex-suite/packages/hhline +6a9b1ea90db1d7283e42a09ad116606c0c0dc52d034e0e000a0f88c1e574164f .vim/ftplugin/latex-suite/packages/histogram +0b8d4ea01f69ced3aec3bb6cb27e3af2311108abaa22e4ce7c14ab893ead9d32 .vim/ftplugin/latex-suite/packages/hyperref +9b64824cb4f2ffd657528e107736b2bd225ebfce8e76fde96de69287c9c0c615 .vim/ftplugin/latex-suite/packages/ifthen +1bbbf78fdf0b0cac5bbf4091c5c15c1b0c879a4018dc5224706f75de63c32d7a .vim/ftplugin/latex-suite/packages/inputenc +1fa03c1f50d572df15041cc2dfb266b5cf76441b80a8fca48d9a7bacb3160196 .vim/ftplugin/latex-suite/packages/letterspace +17036bc205e10126f837cac209f2505655922214b3cbf55bf1e99bec23d7ce8f .vim/ftplugin/latex-suite/packages/lineno +8148df41c3587ec7f3bf015a7cb015f8517a4b4932df1c12663de2a4b92e792d .vim/ftplugin/latex-suite/packages/longtable +cb2a3cf24a43596ec4b532410c77140428be629dfa75301a0b97635b981d4d8b .vim/ftplugin/latex-suite/packages/lscape +66bc43c8cbeca3dc0c9e4c29e07a83ab244d4a21c5ec6b6675e71d737e3db519 .vim/ftplugin/latex-suite/packages/manyfoot +9d7da9448de39210383ffc97589a7ec2aeb655418d5dc19cd26506ce6039cbfb .vim/ftplugin/latex-suite/packages/moreverb +c78c796434d229f68c02c08443f3575a9a0e31d0c3aa82d4191d2d762208cc00 .vim/ftplugin/latex-suite/packages/multibox +a03f52580fe3c2418edbdb7015b01786d1bb5e00dbabac056e2b5380405d5673 .vim/ftplugin/latex-suite/packages/multicol +5ffed693af469a0a12db90456edf4883b722ecf9ae839aa14f025464b03ea4b7 .vim/ftplugin/latex-suite/packages/newalg +ff02c7cd8f23c1c5a157c9766d7210ed715935d258e8ed7a63ed7dd0d2c3a0ff .vim/ftplugin/latex-suite/packages/ngerman +599b20a5bb5fbcb34362e160deb05d1f751bb6c44a7c53157bea8129bb120a1d .vim/ftplugin/latex-suite/packages/numprint +9461616aaf1d687fc9b92fe262be97d24c7c7b0ea47cc274d1817b334567ecdf .vim/ftplugin/latex-suite/packages/oldstyle +b6dc4b47fc27e0537ef018c123b43c0f2176811d5a4260134b9c435dfc260d16 .vim/ftplugin/latex-suite/packages/outliner +5b6241534e75a08551459bf9122c8cfae865a1e809e144a118e49994f5c2ef58 .vim/ftplugin/latex-suite/packages/overcite +5ffaa53f24952823d332c722ec8706bb3b0d9e0d5668ece1e87dcec286d12613 .vim/ftplugin/latex-suite/packages/parallel +32bdeb182ffb96a89082eff3446eca3b1f3a0bf9a444fc5b70014712cf17c948 .vim/ftplugin/latex-suite/packages/plain +c422d092c619e150a4e1f9bca7701fa3a7d9f8bb13116895ef9455cabd616016 .vim/ftplugin/latex-suite/packages/plates +9dc3fd6ce87315eed1a7a01ad36f65a36d27987bf5fbc1b855398d46d630b53c .vim/ftplugin/latex-suite/packages/polski +0c33007de67eb2aeef6e24309583ebb980a4b3986e558b7d5c4a0116410d452d .vim/ftplugin/latex-suite/packages/psgo +63e7ae9605ecb97b952fdbfd9ae7faae4d8ccb6c25ba65349999c809ddd50435 .vim/ftplugin/latex-suite/packages/schedule +d629673098a1272f1e39e8618d2d20f27047530e6cd7fc92b63791b9d0103d9a .vim/ftplugin/latex-suite/packages/textfit +f695b28473641b2b00202dc6f37a5f68503d72b6dbc52a07984be2ac1a06448e .vim/ftplugin/latex-suite/packages/times +172238c73b7d38bc69a265e15299ca70d4e030d072750afbd90bffee89e0b655 .vim/ftplugin/latex-suite/packages/tipa +3e825c4158b9136bb2f2d2b2fddc61238e65414f3b6355fef0515d6aeda0472e .vim/ftplugin/latex-suite/packages/ulem +49381c8def7fefdc9c6a34071535c40344bb01eab1e1f1b24b1286b80fa84277 .vim/ftplugin/latex-suite/packages/url +8c955c40a951f890e977fcc17c8d7ac30845f4681e89fa0c732ceb2e83718b91 .vim/ftplugin/latex-suite/packages/verbatim +69f562079de2dda57e08da01f4142385be3c781ec22ebc5ad1341c858093f7c8 .vim/ftplugin/latex-suite/packages/version +aef6b43f56fe585481d77bec56b73634b30d46b8bd7ee76c0dcca5ff2b0815f2 .vim/ftplugin/latex-suite/projecttemplate.vim +41293688185a7065cc1ded9c3a7c5b7c4e2ab15b35d2ec97b7f9dce76614af31 .vim/ftplugin/latex-suite/pytools.py +6a5d1f08d75b9f5d0124912e741afc040ccdc19f45c599cdf87842fa65173560 .vim/ftplugin/latex-suite/smartspace.vim +c28b5749879eab5793eca631874b65b212f86b676797230fa7176b34b803c937 .vim/ftplugin/latex-suite/templates.vim +f4979a671d21f76e513f507098a3f14f62f3970de4aa90e8f8eda79446dba994 .vim/ftplugin/latex-suite/templates/IEEEtran.tex +c3137fd5cd7f72e0cfa8aa4dac1c4bfa10c96c5eb3753f479e92fa7ee7b4a8c7 .vim/ftplugin/latex-suite/templates/article.tex +e7b755b9d7382e01fafb3573928248ec55d1c2f05359e08ca03f46b573f222e5 .vim/ftplugin/latex-suite/templates/report.tex +9cec5283cccaf9bfc4961187f2c3acd3918d83f0ada02e9e5a236f5f29616f81 .vim/ftplugin/latex-suite/templates/report_two_column.tex +7c4bca820c758595ff4db5748527a64ddcdb8f71e5480d93f012fec5a254cc66 .vim/ftplugin/latex-suite/texmenuconf.vim +77095ee2a6e4e597a4fc073adea6a713de980ca5f7ea6274d0724b76a13fe760 .vim/ftplugin/latex-suite/texproject.vim +7c71ef72a35851f6d4a71e97471f8f9bb4df225a1f0882701f011269d0e78062 .vim/ftplugin/latex-suite/texrc +978d9d1c4a35691f72b61855d8c64d8bffcdb2f04a3002eaa390da3c788cbdc0 .vim/ftplugin/latex-suite/texviewer.vim +697e796bece7ad92ad4ad31555f15c9bf17f9edb60b4649bf3deb8e32be1bf74 .vim/ftplugin/latex-suite/version.vim +6e11c3340de1bd9161e2f2097968cf704e79cf2b7b321bf60066f0481bac0710 .vim/ftplugin/latex-suite/wizardfuncs.vim +adcd438a9679f5d112115a4e6f11da1ff5a026d2f966db7ef3ef74bab6af626b .vim/ftplugin/pythoncomplete.vim +8143f5ff319ab039d921c4d6eb79107486b5694af1f5b45d329cf68568fca903 .vim/ftplugin/tex.vim +33428041046a1a9efa8c53fa05a15c8cba00a03c92297280ca016a8fc9d20e7a .vim/ftplugin/tex_latexSuite.vim +fc052b3afa3704f9a4e663e870bfd904fa289b9d056a477306db023677f14cc6 .vim/haskellmode-20081031.vba +5f1766593401d1a7646648fa50cd479bd787366ba323f9dbffc55cf5774573ef .vim/haskellmode-20090424.vba +b22204322a8efd0fd6f4c22e2e0fcde3a79364b77fd80d04cb1b3b6e4c26f60d .vim/indent/indent-r.vim +e11fa9d3e0806c30334daa51b1d70258136fc8ae5ba5f51c202a0606f8bdfc57 .vim/indent/tex.vim +b2004ce00d8912097659a014f97365f76dfb54e82dd6db9606490b79f2eb1125 .vim/kde-devel-vim.vim +48e8607970b09b1bd4d4fc32bfbde06faea91cc7fbcabe925606378fffcbc1b1 .vim/ltags +1da3b2084d567a2100ea23a7401b74146ba31ea09ee7560622715ec7001c67b7 .vim/moin1_6.vim +1a07a32c0fee4efc8688bb991a751fbb88eed8d641f462e590bf217fbcb7384d .vim/plugin/SyntaxFolds.vim +384bb5f8093651e24945980ec95451b12ace0fd6a00a8f54ad7d7970d9ec01e1 .vim/plugin/c.vim +a5d72d69868610ea7f50493048b11d8ec185e439e215589a10c588595fcbe02e .vim/plugin/filebrowser.vim +fa68ba43affb82e664ee683de54360af1e7167fdcad132627afdf7affef77471 .vim/plugin/imaps.vim +2d0d1df4db06c149fd219927ef0984b2066c3f61671cf65cfaaa10057a9aa0ed .vim/plugin/libList.vim +60f20d52b70b90fa6d97828c40ba0844a0596d9a04a10ac54cce8b6cfe20ed2d .vim/plugin/minibufexpl.vim +c2a61b9b68bb1e2cdcb0084ffb35fc721c4950f544409e70615557aa4d0f72bc .vim/plugin/openssl.vim +d2adb32816e3254ae03ebef88b5bebaf9ffcf414fa7a001262be455fe746c320 .vim/plugin/remoteOpen.vim +1e787f60063780cd7ec8c9311ce1e7748f3430c1f32322a5464ca8d54e349933 .vim/plugin/taglist.vim +32ebe478747bd0d4657398112f9c0dc701e1cbb2cc4e7a498aacc24c49a9d2c2 .vim/syntax/django.vim +ba4cea3e3632c47c91f888c08761aac42d52cf57df6153e07d00b978093ee68d .vim/syntax/htmldjango.vim +2ec13ab83be45521f124e470da96c468f816e62994391fbd346965406efa991d .vim/syntax/prolog.vim +f22e5ddac972af6b24ed4fc81bf51e6d901b34340386008a21c578801490667a .vim/syntax/rnc.vim +450850a3248782deab1c6bb4cb12772dc01d679588f10d3995fbe551fe2991be .vim/syntax/syntax-r.vim +834f67e6539363420a0c9e11ce16d15ca9d9f96bdaab62e5230411ed30864641 .vim/syntax/tex.vim +7f07fe53a981b9e78749d1f33238c8b28317b91ba75138a9755df7cffd4d6d12 .vimrc +78c614d41f5f216ffee49d524eeb8aa183a244daa084c7bda7ec61347f76381b .xinitrc +e78859325cab3e3fdb148db0850f76c8b7396b26c7764275538495c0a0d9a187 .xmobarrc +c08472b208a955be59b39e325b13f715932a649b8a18fb3ab46380c4b92b090f .xmonad/xmonad.hs +d7ca88df2b00187ca2fa3f60065664fddbf1449d192808d8bb9b57af8d27df36 .zsh/func/prompt_wunjo_setup +ebf7af235f15d807b0ccb54eebde31cde3fe24fd389cbdd88c08f4b82bd29e98 .zsh/func/zgitinit +26882b79471c25f945c970f8233d8ce29d54e9d5eedcd2884f88affa84a18f56 .zsh_logout +a0c451b022ca58f94d5115dcd4ba5b7b8ea18ac5f86d37707bfb82c752fddb16 .zshrc +d5af534d5d05a48601d3eb221714367ea0d002a609572f3ca1d9c508ce533edb Makefile +7496fd76af0a3dc71a3b5281c10c1bdcfb24035659a8ca2c32554543109df0f6 README +f986f0834db5f393dc0f32a4420fa130c1097aaaca8d4a21ce5fbb5c76ef392d SUBSTS +9fa3f553f2bb013cd3a572e27dc8d32c46cc7364d2223444209d3c2b2df1582d bin/gpg-mounter +dca4a952c59d58c26a6bf7f8c63c91fc0e7ad1339dcd6fe1cad84c6d989c79fe bin/gpg-wrapper +7dad320fcccf717c10c2babd0fa9a8aca61590055c86bc83a74567576349bca9 bin/mutt-notmuch +c887ea51ee43157e5ec2d94d9f7d7996863ad75dd4d2179ec0734a5fba86409e bin/run-mailcheck +dc38f1b4682c5a471c6b5b1e8d48f97d6321cfb06cbdef43aed177fe75207e94 bin/update-xmonad.sh diff --git a/sha256sums.asc b/sha256sums.asc new file mode 100644 index 0000000..4b3b255 --- /dev/null +++ b/sha256sums.asc @@ -0,0 +1,473 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +d2e251a99a889a1202dda9a48ff982d01348762d6d560ba9181e35f75e599345 .Xdefaults +b6cd24dc05ad7e6c29095e3dd386dd1fb2dc1cdbe9e947ac7a09380706aefd85 .config/nitrogen/bg-saved.cfg +201e7388dfdbd99a1c5399173813234f6f80ee0d0a7119745be7c5bb95900ac4 .config/nitrogen/nitrogen.cfg +93b0d76267a205b2b81d6d280cea76341aba27c713fd8cc95d828834ade1a541 .dzen/battery.sh +0a8611b32e087f7598ebc6cdf07ee3056cff9328ae9223e516e7cc886a19a0e3 .dzen/dzen.sh +56a9e1a7c40a0dc906f778b41725656f84d3c1bcf2ad305d974d4efb937c401e .dzen/icons/arrow_down.xbm +325554896c1c2781525893dbe63fdf3aeddfe296cb2af61369ba095295a82b85 .dzen/icons/arrow_up.xbm +cffe6a5269ad576dd516d957b4b9e995851c28aa56087dc997dedbcaaf743f1d .dzen/icons/bluetooth.xbm +0d9636ff06e2fd9754da6bba8eb158e3529919b58551798909395095f79f0d0c .dzen/icons/corner.xbm +46ab7893c4105092d1bd06424a216a2734c17afa9f81b8c6c5e263d5628806ec .dzen/icons/cpu.xbm +3e48781b0fcc711a3c8df0aae06a5b0edff99093a544f52d6f6ab855414d8233 .dzen/icons/down.xbm +a4b0c0281e9dc106914611d40b97854bf4b1de10bc97e3e5bf70acf7e11a665f .dzen/icons/fwd.xbm +2d6d73c6ba261979ce0442e00ad92bf8025011f3316b4361b2fbc40f7b32158e .dzen/icons/layout-full-black.xbm +66c27816bc81068f8bf01795d58c39b53e37f14e7ad7ec9fcec3bae575aebf46 .dzen/icons/layout-full.xbm +e2301c6d53dc57b5f2fe9ed240b4fd2a8c9647b0e07121d27973f8c93b5c3632 .dzen/icons/layout-gimp.xbm +a5087e037bdc73bd5d2d3b97d35e9b554c22d1e376ac5611cbc7ed4d18d04cd5 .dzen/icons/layout-im-full.xbm +696638c4343e95224818e8538b0c528e2a1b09969288eca5ce50ba40f61cccd3 .dzen/icons/layout-im-mirror.xbm +a46b77da951c3326ccfd9f4071eedd7719b20fd206906004612509b5fb272ad5 .dzen/icons/layout-im-tall.xbm +9a21626fb692f5611cf9a657e1ba8527168bb35ec6ad945f7e1bbbec39782f06 .dzen/icons/layout-im.xbm +f8f3d59384145d4fc9d7fa190b3d98be5affbe6e37e5423119f727d1f92fbd1a .dzen/icons/layout-mirror-black.xbm +c76a45e5d87b5784ff65b9eedd37110c08a6a6b40c6e77f2085411060541d53e .dzen/icons/layout-mirror-bottom.xbm +7f42a46183ab1f34fb610823322eb09edc8a4242a71522534f113ef4bf5040c6 .dzen/icons/layout-mirror-top.xbm +5bccb0f4ddbef8a7a3f7100000f4af29ef446b11ed3e1366ebafad5766177d49 .dzen/icons/layout-tall-black.xbm +a8453c06551390e07cf46606f445cb70cd6b1309b8f979c7f210038025f2a50f .dzen/icons/layout-tall-left.xbm +ce8fabb17740e1bd385423f3ead3d7755903ceaa9a93296aa3c681029917faa4 .dzen/icons/layout-tall-right.xbm +7d3ecfcc9690bb6d06b2c2ba476aca510d0d62a0b9b1ba21f6dba14f32def1a5 .dzen/icons/layout-threecol.xbm +be281d50782c6ad91d522ecce75b482a2019f79eff24acff8471e04b79d089b8 .dzen/icons/load.xbm +cd9c39530193c19b2940ce67dc9f461908a0046856dba8313af2982acf452e73 .dzen/icons/mail.xbm +18fef6cf04dd6d5c1046855a784b8ad4468958f4069d4845f928963f1a17af95 .dzen/icons/mem.xbm +4a6fc2fe23ca2f1194b4e5a43c27fb898c7cbfd3ed53ed68158cc7d212d13da6 .dzen/icons/mpd.xbm +a25f1b8256eb1fb23c24215df5f95c400ca41ae05180ab2beb715417d958591c .dzen/icons/net-wifi.xbm +e5ad63967c62724b4d0dc105325a887f3ba257818cec244ea84a3d2ef521bc7e .dzen/icons/net-wifi3.xbm +51908c2d84ca1e198852357ef86562c50f67bec38c1d5162d55e8918f6afc087 .dzen/icons/net-wifi4.xbm +dbb559ffa818a9975c3272085484eac6eb747ae64eeacd3f49210de3554c68e0 .dzen/icons/net-wifi5.xbm +507a00b172dbe463e0212b3acfb2d19c59bc424d10b2e12f7f325f4e8d2fa4bf .dzen/icons/net-wired.xbm +e73b25928ce0fe93ca0adb9f92448acb1cb6949f7716f195fc567381b38f755e .dzen/icons/net-wired2.xbm +1659c59208d1c3264bf30e2e5383d21c2ba03b5e3a2b994ba166de468553be16 .dzen/icons/next.xbm +c4919859502771653d442e3c423e58f9ed9a73a228beea9996f6ce124afd79e0 .dzen/icons/pause.xbm +d0f18d4493fa4d2f1296063dcd223cc55e564e4747b4f26121bd3afa8c2f5794 .dzen/icons/phones.xbm +3dcfb45f1332bac6feac1507f6e44da06f33ed8058b3d13b7c034f6c2237a814 .dzen/icons/play.xbm +8330804ac10948db5894fae26cee9313e95e1a1ed9583dd692a64126793eaacb .dzen/icons/plus.xbm +ca55b7c818dafb20520a2db071f7d8ef8180ed972963536cf578cdd3e369d54a .dzen/icons/power-ac.xbm +7a070d4769731fbac2c8e2afa822304e7d8ea4cdab6d80aaf32407f4cd123fdb .dzen/icons/power-bat.xbm +02676242d1332ed000a6e8b2be7b3c1d29c46a1196c7c08a65f449025501f5a3 .dzen/icons/power-bat2.xbm +3559504ba4fb91737d84e2e12b5b0254d1b4a6884440d4755af71420d6b92137 .dzen/icons/prev.xbm +4c2622b38e57968f4386d499afb7255349ad1c4f6bfcc6568d7f69fd4367de70 .dzen/icons/rwd.xbm +f1e832e5cbc9ac003baa855c608b14b8da8ce1f0f9a9497cf6e4fb53d6ce2c5d .dzen/icons/spkr_hi.xbm +1b4fc9301a7c1afe854c945b8e6b580a15122d9c4f4a13010f8d5380ec4325a9 .dzen/icons/spkr_mute.xbm +1e7c53d4d529a62d0fdf2c6553c5cd699e72c05a145d684314832e1633c09c70 .dzen/icons/square.xbm +3066cca47a10651cf75147eb93dd7ddfc67c0a4a3ba1e337f70ff26b5377722e .dzen/icons/stop.xbm +663d407ec4d660fe45d7f70b854b4b44f09dc4ba918eacc86bd474fb633b3d25 .dzen/icons/temp.xbm +5dbcd87289e46f054e9f5eaf2192d3ec13ab3ce4ed5fc1b5f265c5c9a3d4b768 .dzen/icons/up.xbm +2785d8d853f04c23a9401b7c156b18a4f2056138d91963e91f5f39de9ebf7349 .dzen/icons/vol-hi.xbm +29738911cd39455fe732289c3eaf17225dfe6eb4297117fbe0d2e1a7f30a5613 .dzen/icons/vol-mute.xbm +ac02c9dbfaaedcf69775fd8289fee7325b78004b2762078f25e571ca0b612269 .dzen/icons/wifi_01.xbm +d83f281d105b849fc7f8b2755dae30d4706221ea8266e5a31b4a94d919db44cd .dzen/icons/wifi_02.xbm +51aeebc80c41efd096f731259876bd34f7252faba7eaeabb4e9e834062dd48a1 .dzen/temperature.sh +4ee9785182a7f5013726009c32411516f4e8b69150db50240335a091571a2a33 .gitignore +c9ac8331a5c6580b2d39200b3545f6126d03e84d3981dd9e2139cfa07ed4383d .imapfilter/config.lua +8a1c44b638de1b2c4c1ec78d16b3acb44c227bd0ed5707054e729a15fa2fe493 .inputrc +a8ed387566ed343cb03d52f125fd36d98a06b20f21cd8a9ab38ef66f24731724 .local/share/wallpapers/atlas.jpg +a0b49564f0c0e8445a71c19c276c947a9d6a4b832f0e4e96dcb63b44c9a47829 .local/share/wallpapers/feh-slideshow.py +1cfdc181bd24d7bd6432523ccb99279a92f5c8256e7194f3437805277c5b5ae1 .local/share/wallpapers/ny1.jpg +3eccec6b927fd77784dbbba9940dcd364c0a856ef72a951a0707313d6332dedf .local/share/wallpapers/ny2.jpg +28ae37302cd1a3ca311ffaee4321157fbdcf780bd5f0913cd55b0c4caee0c6c2 .local/share/wallpapers/skyscraper.bmp +0d2f6b7c2028eafe87fd84a78426eb6781602840367b1d5f708a3c17fd6651b4 .local/share/wallpapers/skyscraper_at_sunset.bmp +289eee67ff574936828f7d22ee62ee06b7cff598d423632042818639c77bc35a .local/share/wallpapers/torre_agba1_2333x1560.jpg +b7e022807d5670ccb137c768f1047c31e2a87a9b3ad565885ef7f5d1ea486840 .local/share/wallpapers/totheglory.jpg +4ed757775be13199d7dfac2c39500b1ee983eaeb684defc2c292e76fe67742de .mailcheckrc +562224f934e118cd679e274e51fc47b63f859662e59c6e397f603d90a3ed5b5e .mutt/accounts.rc +66e0849d979ef955851a131b0c64c80978e4ca31a2316bac9abfe66ce0c2af58 .mutt/certs/594f1775.0 +66e0849d979ef955851a131b0c64c80978e4ca31a2316bac9abfe66ce0c2af58 .mutt/certs/Equifax_Secure_CA.pem +f43726d0e181569f76adc92859a5b7441af1cc6e08bbbe257ece835b9a14d8ed .mutt/certs/SMTP.pem +c88bf3fa0d0941d18f5484010b2cc89e8742386f5cdbf0e5ab25284a7cf08b08 .mutt/certs/Thawte_Premium_Server_CA.pem +c88bf3fa0d0941d18f5484010b2cc89e8742386f5cdbf0e5ab25284a7cf08b08 .mutt/certs/c33a80d4.0 +2ec9cbb1a63903ebb7cfdd55eb523ca73b3b8da4ab026ecdb14826c429cbafea .mutt/certs/ca-bundle.crt +02a56441f5334c8a9509067323ef7ea8679329576531de6407efc3b7d601f14a .mutt/certs/certdata.txt +fe46c2a51a8f148c91f30b0a067b36f7c8352ab0ce3e972dda92dc2fb80a8cd5 .mutt/certs/certificates +2ec9cbb1a63903ebb7cfdd55eb523ca73b3b8da4ab026ecdb14826c429cbafea .mutt/certs/f73e89fd.0 +c9bd90ba85c6df4b0ed094c66483ce061214f1166b197a7b5c253df3fb5493ba .mutt/certs/get_gmail_cert +987c76b23e0cd86fd09b7fcd5a47fbd3af1f6d3488a161eb460e6d783b25d9c7 .mutt/certs/mk-ca-bundle.pl +cabe6c493588868385e308c9ecb7bef8e5cfe336730a03f67a142e9009533756 .mutt/color.rc +1fd52fb324c0060699b8bf69772d0bf6db0f26dbdc48d9330e51f6a935b1b523 .mutt/mailboxes.rc +ae737fb7d5efa33727e0e90455b8b1501801e7521b2dc792998bf64e51b8bd28 .mutt/mailinglists.rc +b8798f6b2d3a7638111dac4ed657198e07aed660dbf4f493852a6c996347cff4 .mutt/savehooks.rc +97478dad63159b2b6d98d5cf8881b1e525aa61dca8852956c7b6942e3dea8dc3 .mutt/score.rc +7ee3f04b74abb1b937886d8a10e4e1366b2d5062e27d215fa98cdf041364fc35 .muttrc +accdd205193db1845cc97400560fb099c09b55828a7b4e8a688532496493452b .netrc +70bad75824d1540d898d967a8246ff26ec8a5f7c181fec34e8da3ed599743f05 .notmuch-config +d340de50e3ec19da705e1b1b45d4d709ad70fea7a8d147c89bc7872e391ecf2d .offlineimaprc +7b0e7f6c0bd7c95d9d2504f3522fd84b74a9b3152db6f38a5f4a14e9b186086a .quiltrc-dpkg +e657c0d12066ec0e59f768f995a50b0abdc90b8441e547f5beec40bac227d6ab .screenlayout/epsilon-SAIL.sh +f94d4174b8ea5dd0a192e962beec2e875b582894b90c621ec17e65b03255ac38 .screenlayout/epsilon-home.sh +effcf5f09a3a59e48e4264c246011026a49291d8b2fce000b33609fcbfa3a5b7 .screenrc +562e14d05620e38c4ad86a32b8265b357c0c2b3bcfbf41fba300f4f81fec776e .signature +688a08be9a46a0acee72d8166388d622062223661b7aa9234e7802f6992669ed .vim/README.csupport +d02f22e4d3bce3f6bfb4f3c7ecf274d9cadb380f507214f08fc97593f8820393 .vim/autoload/haskellmode.vim +adcd438a9679f5d112115a4e6f11da1ff5a026d2f966db7ef3ef74bab6af626b .vim/autoload/pythoncomplete.vim +ffcd47161241f08f689b32afb1154e5cbf7a625c635bbf4edbe0a299ca050634 .vim/c-support/codesnippets/Makefile +9659bf47f6a380d7a896572e2d89cecba351cc9b1e1cee75d91d778d494991ba .vim/c-support/codesnippets/Makefile.multi-target.template +b0e8c58cf376fc7289ba7bc17fa4bae61853558885bdf8308f321e031be663d4 .vim/c-support/codesnippets/calloc_double_matrix.c +50cb03f84ee96a281c79bd272cd5fdb9965690cad695bd83470e41aadc374c5e .vim/c-support/codesnippets/calloc_int_matrix.c +83fd050e02fd4bf7e965a7511d2df78995c8329acfb7af6f0b3546a316ab0855 .vim/c-support/codesnippets/main.c +ed891586e7bf04e890f48b5419bcb15967032c3a4cc830815f44c9c5062b8692 .vim/c-support/codesnippets/main.cc +d51521f97a522d0b7c345f33a8605bfbd28f61ea49d284e6be0efdfba5753313 .vim/c-support/codesnippets/print_double_array.c.noindent +1d78598231070c7548b6fea67e8936a81e7bde78238f8001affa1a64424809ac .vim/c-support/codesnippets/print_int_array.c.noindent +a926149585ec7351dbd6f300e9236fa707432a1c2fdbb4b0e080cfd962e81920 .vim/c-support/doc/ChangeLog +b15e5b498bee1a6b57c874c2990b88c418aaf9af43c35703eef8d2185b73f259 .vim/c-support/doc/c-hotkeys.pdf +5daa2abf952d1d0f757040971be335f7ea474c278f31bdc3cb0e0ba67c8c32ab .vim/c-support/rc/customization.ctags +11d23194efd4d91bfb371b7fc8c80c7969b26a661eb43074632bf37a5a56ba18 .vim/c-support/rc/customization.gvimrc +3316d03d74bd1e04bfc469490f7345795b537e671da93d0f00653801e69ecd61 .vim/c-support/rc/customization.indent.pro +d322688608e140b73d830934341f724fa5b958592e95a6b6cfcede75dd90200d .vim/c-support/rc/customization.vimrc +09acde106a30d00d2de8d71b12dbff29eda2f71fcefe0fc61e7bd3f225f29138 .vim/c-support/scripts/wrapper.sh +ca44bcb9ec787e71cef0767f48544744cd1a1c8c2c6c121fd1a3872c6ce0c5d4 .vim/c-support/syntax/c.vim +81c8a07249a33b22e56851d9ba5269235b8c7760660b872d108d3e6907b7170e .vim/c-support/templates/Templates +4aa5206c34a833062f3568f9893e417f37b0a5c08d7b9cc223ce3ca1d72f6feb .vim/c-support/templates/c.comments.template +b4a899e9043f858aa3b1dff00e48f1ce0e0dba6de4473ebb26a2b2559a0442bc .vim/c-support/templates/c.cpp.template +c9f1f764c1b5456ca351724703cac3367ce0690491aa5f1a50c98ed315617d9b .vim/c-support/templates/c.idioms.template +81bc73aa07b0da8eb911165050178a4d650b9c9fc2f75e973242d0fdd6f511b5 .vim/c-support/templates/c.preprocessor.template +49d219bc266a5131e3533334a2fb9d1c9ab5e8240f458f7122346a83752b6a50 .vim/c-support/templates/c.statements.template +ad58773a11e0ae304f86739f27233728f359f21e4dd036f5fb378936fd8803d7 .vim/c-support/templates/cpp.comments.template +c0d4e3863143329ec01a5b1682de96af5dc453d35221d99040f2e3c51ad5d223 .vim/c-support/templates/cpp.cpp.template +60424ae5e54e2bc1bcd865de56dc1aba7a93907c9f045c5f9db67f8d62ef399d .vim/c-support/templates/cpp.idioms.template +f57eb8e2faa5356c1db1df789c8bc3b0ee168f082e35772d4d41a6ef419f8a00 .vim/c-support/templates/cpp.preprocessor.template +8fc727663b58327e78ac81717845a451afd2e2c002811397c420ae446f80b737 .vim/c-support/templates/cpp.statements.template +113ddd3fc5be6867e28a83a06d65258b7d6a119bd3402503981a182b76670c8c .vim/c-support/wordlists/c-c++-keywords.list +cf0c2f107c2f0b66b080ad152f3a3377caece50a219fb2814c7f694d2a7479c6 .vim/c-support/wordlists/k+r.list +cc136dde33480b166d43889c541238e68c4becad78ed11bf63588a864e6368ff .vim/c-support/wordlists/stl_index.list +3c8f5ee1526af065337e08795c914149e076064909b8dc9943943dce3d322591 .vim/colors/adam.vim +007cdd64b7030e7f48e122df8433c3f417d50e1f511f215057bf603805535795 .vim/colors/adaryn.vim +f4ab5cd8d3b386ec185e7801354435c14ac82e20f36ac6b5d03e7efef16cc486 .vim/colors/adrian.vim +0b1c708dfef8f578186e51b0c8886bb9795f4feeb144e606069b0b122fc1cc52 .vim/colors/af.vim +6fb9dc69c2dba1d21c37dc93ccdb383580239d55f9facd0c6851b30ea3586dd7 .vim/colors/aiseered.vim +bc2230054c50e00910c3f3ea99dfd68a9a463183e033ebc4b99fba01c1acf765 .vim/colors/aqua.vim +bdfd4aef0dfd6ab75cba3126f2c53abce71a06e62526f1f0d41baf8e75780599 .vim/colors/astronaut.vim +2e935177088ee6aee24972a9c35706e7a71dbf82754589b0aaffbcd22a87f51c .vim/colors/asu1dark.vim +846ba14e60e955e96bd23580b1590e0b78026846a5b5dd2980c518fb81dd0c4f .vim/colors/automation.vim +b23c6a2d5cb629a78190296bbf0a2414ccade13bcae39a85b00bf4563a5813ff .vim/colors/autumn.vim +b23c6a2d5cb629a78190296bbf0a2414ccade13bcae39a85b00bf4563a5813ff .vim/colors/autumn2.vim +ef321731269d0757e6d3cab8fe66b6a7a89da4110e9a455d0fda909c29cf53a6 .vim/colors/autumnleaf.vim +10f838fd24f366783b5a4ea0f42610cd95df144a24c23db8589b005b1ae99ef5 .vim/colors/billw.vim +99bd81584b8d5cefb0cff06ccdf6d0f19e47bdd29a0f9373322c1def67c87259 .vim/colors/biogoo.vim +8174f4e8ac747880db656db47ec02aff9b27be534c6739c6dfb9d028c754838a .vim/colors/black_angus.vim +ac5d7ec952e8f763c5814d8ae08f7252622457cc58113a3a5db794568746b8c5 .vim/colors/blackbeauty.vim +813379657b06ce2906cb14232716580a92c595143bdf5214350f0fec581e7f42 .vim/colors/blackdust.vim +e08eb7c30322c59b032ee0dbddba42161e563c8cf48d647f9993268dcb29891a .vim/colors/blacksea.vim +0306429a227b0cef0384a05e076694ac4deb33833dd15cac4ec475d07b44adda .vim/colors/blue.vim +93824b6282b11b86754d2b9ad5f346ec36f012c36f72e4db8c93e89f8017ddd2 .vim/colors/bluegreen.vim +4dbad855a6365cd6441b26d8f9858f65a812d6b4c5e8392216ed8a225d11c32f .vim/colors/blugrine.vim +636c2e8588e1ba2bf86622155a5b7ac6c9e165b857dcc80e7ad6378e5e46ffe8 .vim/colors/bmichaelsen.vim +145af35e17070a93a16303ceea0c6440f41e031c1a04b6e66c1630727bec18d3 .vim/colors/bog.vim +2baf3987bfb7f6880f50b58057bb379dc5dc800b31eda6b4cf9fe5e62834dc09 .vim/colors/borland.vim +3bae4032004168352ec619ac1c345d2c3bc8c9fa12e71923ebc53cd6f25e118c .vim/colors/breeze.vim +b38d9e630536d26961c49a74d50ad30db4c214b2a4df7e847cab559190f911b8 .vim/colors/brookstream.vim +5a006912786f1c299ad255899b66bf2355c92613efd6ecf0f611f07a0e20b018 .vim/colors/brown.vim +ad5c429db36cb1b3a3492adea6d9598a76147adc355e0ce9a479a2ed658aaa0d .vim/colors/buttercream.vim +ff3316d03d72b23d92410569b88f2f901ecdf320c292dff10a4f37bcfa790bbf .vim/colors/bw.vim +5a393a81d97857f44fa8b89f098fd699f2c06ba09665f2c1ce0eda07a9213a37 .vim/colors/c.vim +46dc45fecf5af24ceedf1571d511259146da0f647ad9ab4e31d8ad3ff12daeee .vim/colors/camo.vim +1efe5f366ba21fa0e96422f7f856ce226e9c2d4420a5bbe9109920bdc0ef6767 .vim/colors/campfire.vim +3431998da7a20073186525f3577542691b2d52f19c68be3c154f26f5de54c7d6 .vim/colors/candy.vim +c6bfe906b401f30f4a68ac20b6d680291571163a55aadb58b82157ca6ed138d2 .vim/colors/caramel.vim +601349900c5a14be0f75cebab7da44b5328eb8172c50a019b93ceda41c099d78 .vim/colors/chela_light.vim +05bb744a803ec6bfe34e8cbdc784548287eee9a0263c3edcaeb8424127572b67 .vim/colors/chocolateliquor.vim +7fe3910beb436ec310ae8caf6fc8ed50d70f9ee499d463071f6d90c8c5a2f27a .vim/colors/cleanphp.vim +d5f039cd40d38050dcc96f2a74c7e96f41cab69ef20b83598fe4ce18d6059e35 .vim/colors/coffee.vim +26f6c3e924171b4fdf99b13d0e122e88dd322adbc6436ed65ed812d422071534 .vim/colors/colorer.vim +d51c2c14ed4ef4d91085b4d865ef8415f80a7113bb507f4d208d5dcf5dc01a07 .vim/colors/cool.vim +54e6912922b9100965e8ef4ad3ff54678992495c63c0c5b2a9b424ff953d0aeb .vim/colors/dante.vim +b3e0e5207f8d2af716a13427a3edf91ce9e5b088fb723bea62722030e5943c60 .vim/colors/darkblack.vim +d7e92310563949db32a90ca8da923a51db95eecf665b6e4f0a049b0bc4aa36b5 .vim/colors/darkblue2.vim +8619cd0577d01887f393d0cbd1550c5e5fbe5811d62b5de4b9a4c8c3df0cae3e .vim/colors/darkdot.vim +817fb128e635acab1ab952a17148c26aee9f082c5ebe16a054c3a9a02d322c52 .vim/colors/darkocean.vim +e59fb3eeb721e2c414789d3d0c131ed0ae7abcaa47b6f5a383500f7f91a2e201 .vim/colors/darkslategray.vim +0ba13cb4343c2bda3e38686d295c19f9da58e4a80c26a4ca7e94fc06a2831013 .vim/colors/dawn.vim +d56f663285e3e4a1088e831e698065ab44eff51cb5889b4b687fc13c64ee1932 .vim/colors/delek.vim +53823a032412902107ebc9e1384c4c67ed6230fda760f78187a381268f32ba14 .vim/colors/denim.vim +076f2d3088eefc4a455c9aa5e1dba07181032fcfe155e23fbea80f20dc69ac15 .vim/colors/desert.vim +c175ce34ef2a3ab99102fa4361c817d6288cfaaa7ddc93291a3564c957766f1b .vim/colors/dusk.vim +11717acb76d12b64d81454988db07d622e416564d37a6bec17925d1b3f3cc1dd .vim/colors/earth.vim +84d70456281203190eab0378b39de8b592593a51f486e170706504ffce2f85a3 .vim/colors/edo_sea.vim +aa76d00677c394219ab56fb05ca3fb54d115954ad0a5d4d33d11e6c75e24e9f8 .vim/colors/emacs.vim +6e30744674654e7225aee07c19bb2e2fee9ed74af21a1e446bb8f1d2033e2214 .vim/colors/fine_blue.vim +8850fb7c73bff339fc4f9a4fe97a7a3313484c6fc167f940485f7965d06d4c8f .vim/colors/fnaqevan.vim +980f7e08e75ee107fefcdd9e82cd2b8c86b42834e8c6ebf5a3368dae9d5d1a79 .vim/colors/fog.vim +221c9211caad3ecf763f626584f3b12808dc7479d63268c056d56b4f8dd52e9a .vim/colors/fruit.vim +5b38ce261187aed499a3499440e2cdc7aab28f753e21019f5e36bc56db03f376 .vim/colors/gobo.vim +a8cdc5fe53d11d298979b37b27edc6a216d4bb538ec742e1ec1b474b272f7ac5 .vim/colors/golden.vim +03d9bc2d1ddb590b7c0e363dc9ace3a9587948ac8f919c7cd2083220d040f422 .vim/colors/gor.vim +c9324ec261ccc592f4f8950b64e51e25301d5c0e9e5e7d23712461506a21bcb9 .vim/colors/gothic.vim +da8b4b48ad26a45ebac812c08fa19ccbfa43335f8bf0bd0ba4204aa56dbb5f98 .vim/colors/greyblue.vim +e05740ba2de97588c42ecd924be303893c7faaa8a293e7094717aedad3e5a876 .vim/colors/hhazure.vim +d4fce4a1e23801ba2211cc4c6b2fd7979fe94fb7d90f2bcccf8c4e734ba893cd .vim/colors/hhdblue.vim +cd85e087c1a94b6df623263c960df1bd1797efdeb3488cb76ec4c4f6beed39a9 .vim/colors/hhdcyan.vim +d1648b75f1411b3a540e4b5f6ba0a7479b240bfd49f787d725b29179d132f79a .vim/colors/hhdgray.vim +27cb37a6c1dca7abfc39e8ac6a3decc62a422c30ac8d02f919ef2ca130932d92 .vim/colors/hhdgreen.vim +2de1ce4ef6f9ea5fc1e6185f21d5912ceacba4c00ddd9db75108d558359804ac .vim/colors/hhdmagenta.vim +0e85b435dbc6ff83a1107220a198383daeb6a88f55392c0e68cdfc5d1ce03f48 .vim/colors/hhdred.vim +78b8fa0a70f6e11cad8a666620ce303ed1e5b47c5fd1d43610583191ce90f09b .vim/colors/hhdyellow.vim +ba7a6f4b9dccde11b9d69958942c317b49b132106352fb09c2eafec6f854c9e1 .vim/colors/hhorange.vim +408a8edf23c7cadc4a621c460d969c1fea387f6fc2b91c9ea888eb4e22ea6621 .vim/colors/hhpink.vim +c29cd8103153f0b9426080000e1fec18a0af0ed41a376ab760c71f13a0fc784e .vim/colors/hhspring.vim +4c54de58d69d3a783aedac01c5cc6a1df55b82bf4462f07f162ca2435ed2d3d1 .vim/colors/hhteal.vim +db94d565ede9c1ac89113f33036f2fe1bd618dbd655ba677193cd03bf9d1d030 .vim/colors/hhviolet.vim +72b81dcbe93ff26032185685ae622e6c7a87e07e10259c551a9114789bec29ed .vim/colors/ibmedit.vim +e97ab65da8ebb8b82af881899d05fc64090681f6ae648bb9b13dfeb02407cfce .vim/colors/inkpot.vim +c16c0325b4b8467fd15b47f040bb32739fa2ae93d89250b2b2fca2a87f8c1be2 .vim/colors/ironman.vim +47277b5744ffdbe419758b7e192913c267ca44cae41211b4ab263b1e99e01b7a .vim/colors/jhdark.vim +1646b75eb782ee130c59506cec5e6b8cdc8e6bf563f30db6ea612f88eafef557 .vim/colors/jhlight.vim +fd3343c9846f19ee3b9be1085fa4ead8a54109dbd3fe847a2cc25cd2aaeede13 .vim/colors/less.vim +426400af1be0147a978ae0b706a1475ed38962f8b5276703f648d083e88bee5a .vim/colors/lilac.vim +143c0413c039caa9cc1e15a2beec853e7a593e44c699cd055b2c178e7f5f28c0 .vim/colors/lingodirector.vim +9d1eb378c6ae24064327db2dab9baa5335d67b63a9434bace1cf128790d9bc49 .vim/colors/manxome.vim +816b145585a0e9c77efbbe72e5cb2877654afb68324a8676e0a80c84e7b07b14 .vim/colors/mars.vim +1c215c5c53ecf32c18defd9f7d02bdabae802dd63d23329f9d4439a5dbf1f38d .vim/colors/matrix.vim +7c6aaa4d66364c2dba3a314bb7e4f7dfb2e3bd6057ea845e262439732f65f9b8 .vim/colors/metacosm.vim +5f6226674582ee1fc512f28afffadff43f59649cb2fa641675089eafdfd312eb .vim/colors/midnight.vim +eab18dfd6296b0731454f6334de15dffb120ab3f9f8967266eab42daf96b7e54 .vim/colors/midnight2.vim +bdc224abdb1df16907a4c2b9ca98145637b2c9564ff9161de8060732816847e4 .vim/colors/mod_tcsoft.vim +f727f5b7bd21502f91a48dbcea49d9616655b3a7b292ac468ecfe80dfb2c7727 .vim/colors/navajo-night.vim +75a72880cec2c995c7c48167554d5ed644aaa83aecfcba6426d1262ee36250af .vim/colors/navajo.vim +9fe93c919509cfb981efa4e4af56f49c9af5b0196ba5c4a78a0ebdd04a3536bd .vim/colors/nedit.vim +6cc6c8297ddbb93e47ccfbfaae162eb3bb8dbe9f1500e7eae1760b5659578975 .vim/colors/nedit2.vim +476233899b982b12bbf1f52b0e265dc52f15332e0a3c2c5f933c53d5103b5e78 .vim/colors/neon.vim +4c44e19e1a018d3cfc04a2d9cdb4a395c5d23280f5c89cb9a360821d64809f7e .vim/colors/night.vim +b89fe4e75f06ce37ea8d6da19fb1ce532e82e26e11619a56d33ed65d33b3edee .vim/colors/nightshimmer.vim +d0a6c04b66b98088aef745eccb276a6c5750bf37f88fce5bda9cdfe4b9d0d6a7 .vim/colors/nightwish.vim +b17fde5a36702b677d221570c652ca119d04cd9478b1064cd2a078b4469db5d9 .vim/colors/northsky.vim +e9870c3c5c2c4da5f680c36ceddd05f2c6c4f30618942800918fcac77c3ff994 .vim/colors/nuvola.vim +1ea32a03a3ff91c35624397be39f22cf8026cc21948eba84be820240f30cf009 .vim/colors/oceanblack.vim +8c2f6c976261b0e26f6d036dbc3a2385e4fb6688e1777b551b511e85aaff389a .vim/colors/oceandeep.vim +161e031a656f9d5b3e02d185c77d239b09ab023404a2b5721a0f4edb0739c33d .vim/colors/oceanlight.vim +d95f479bd542a4ff0b9e68eba607ee79dd78769e94993f1a26ba7c3a366514a0 .vim/colors/olive.vim +9d1ef97c6459b4ee663152c105dd4865ed6b9dc73959f395c8b1c959cbf99e3e .vim/colors/papayawhip.vim +2e4b7a797f0362e30a2f6ea6643944740a7c45883a9f0262d0c1ced684b8465e .vim/colors/potts.vim +8d83f204cbc4dedb045ae99d4c625fd2ab85987e18f1c3e6daf612bfc169060b .vim/colors/print_bw.vim +a41b54648272ac07ae859fe20649be8fec51355b94b4d870c8b87dac06a0f2fd .vim/colors/ps_color.vim +0ed84d09ca4e3e6e5a807bd6e6180242403eb4c502652b20171b60ec78108c1c .vim/colors/putty.vim +1676e4de474abf8dfcea44354b02627b1484b13b9c51c42a203b9c09ef986a0d .vim/colors/python.vim +fb39bdc485bcfd710a68846eae55baf5f07dc1bf723f90ec8e00f8990a15b9ca .vim/colors/redblack.vim +9ad83b235bff978758b0d29aae7ab7f892b9ab8e24a22799206e4b594ec7eb49 .vim/colors/relaxedgreen.vim +554e91ad3cac301027a84c12af33d412bf42c6883b7117855e75927dc908ec9e .vim/colors/reloaded.vim +93b1b8aac3a2bad2c87d6b4f45b5014d93ac1a020d98b2da75f3a299426db25d .vim/colors/revolutions.vim +88e7e2c32041606f88c528d68f26bb4ef45730371595ab4ff03eb63cdf205892 .vim/colors/robinhood.vim +d389e4b5f90e77a9a6123271c5ad6eeb1548492257de7eea6588e69ada64bcdf .vim/colors/sand.vim +5b628255e44301bf75d4ecd09d424ff9b04b3663adfcba43bdcaf82ff924c4e1 .vim/colors/scite.vim +2a15faf3e21a6bc4c9ee57ffd7d8e54a366985283599721fa43a73af3ae76594 .vim/colors/sea.vim +c149a0ff58592f1533082637b88738386203c1b1a18fdaca4f9a314c12684668 .vim/colors/sean.vim +70c1551d14ab171daa20a7a066e5d47cf6b4e6cb7ab9e3b0672bea696a015b3c .vim/colors/seashell.vim +79edb2e6cf35a33954388a1e5891319ee4199c367498e5ea8834da1e4d6d97c3 .vim/colors/sf.vim +38dfc4f7b2cff4be6d488eaa8050253e149bb6bae9dec3d9bff0321e3198aadc .vim/colors/simpleandfriendly.vim +aec296eb13ab643028c4ff714e836f1eb72ef2ebb5821b39c73779e8f0b97aab .vim/colors/taqua.vim +46dbb62ce55e2c2db3d909833fec27b8ace3e83ec728ab0ba0698ccab9cf8ddb .vim/colors/tcsoft.vim +2064b98fa22790f0c482759ece74312b495b33b24b19aa6e4be834601b0ad938 .vim/colors/tibet.vim +c112242d35e401a400411690100fc02682f3d4613d3d65656bc35f021988d068 .vim/colors/tolerable.vim +60f639c3899ca5598ecbce194d3fab929edec72c198a3b237191b43e998b1a85 .vim/colors/tomatosoup.vim +87ac82ec2aa8085e038b3c81df613ba62db2f1a4192daba1ff0e7020ab5cfa07 .vim/colors/toothpik.vim +24320526705615a3f3703998ac41a06e5f1eeb12cbbb1690f72ea1e815e5d89e .vim/colors/torte.vim +409e9917436a3229d4e2d03d9aa6948c9e1aca263a80079430642169c65d4c8a .vim/colors/transparent.vim +2a7258f76b7bb423e4766fa097a2ca4004379a17a4be2fb3a6beb8d4127540ad .vim/colors/turbo.vim +54283dfe7e4ba20dbf55730bb8612f167e1333cce1d0c8ecc6ce2a3fb2a41601 .vim/colors/umber-green.vim +3de84011ac0fd712d76724f9fcd7dc805bcecd52a40e97a7585c57e22a38a570 .vim/colors/vc.vim +f771cd19481332fe4c6fb2ebe9559842d62adb17c0a9bdeaa877ebbdf11b5a11 .vim/colors/vcbc.vim +10832d5d679a88cf900d926c9829bdb81f0153f2e0c4507b7184306811305a07 .vim/colors/white.vim +bca5d4a259ad0ef77e3f1ab630c8ef71edafe4373ac8f78a763a55689402117f .vim/colors/whitedust.vim +50692743f6deabb88033c972694a78cc7f8a1a4da8fce5ed2b8fbfc9c1ff794b .vim/colors/wintersday.vim +0179135646935064854143e3e1963c7d643ed25561a29812ccf68503ffc26f9e .vim/colors/wombat.vim +43fb2188d1d0d13f217e5516ad3474ff348da1cfc3551927ef4f72e643325b37 .vim/colors/xemacs.vim +0c47a225ba751cd79220de7914d4304524960c53f5d41ff0026253cb7737e8a4 .vim/colors/xian.vim +f25667653ab00307bc9d5673694663b7cedc125d82c6cd7322873e5acba60d57 .vim/colors/zenburn.vim +6538e1ac0318c2edce168860d730725c8e58db49d2d6f190dbc8972ec116a7d7 .vim/compiler/ghc.vim +137e387e18080514cbc1916075f0c654ca76701386b4f31e39e9fb57476e7eea .vim/compiler/tex.vim +65b124c12b11ee6f1992fd660060c42b1848b91470533e8929a0b65b0dfb6878 .vim/doc/csupport.txt +fb5ce477f6c3e9b85800fd8de2be81b9d0cc436f24970c14304aa66f80d6666e .vim/doc/haskellmode.txt +67e4b89a962102f5f1e1920ea732d8868a0d18e8c824103c8fdbbb0eef31b55a .vim/doc/imaps.txt +663016dfecc1a0b3bae2aab4b2b8172e05c742404943e7981b24582d2d4d6f7d .vim/doc/latex-suite-quickstart.txt +0f91c9295dad36fc944e048234a7ba43b0b38a588aa1f9fc44a12911c219cf52 .vim/doc/latex-suite.txt +d53433220f6e0c2c3104fa3773790f9418b6d6f45cde9924faf697c91373b01a .vim/doc/latexhelp.txt +6785f6e5134a1b7b9b7531bafb14c84462264d1a961a61e9d84dd20a6f6b7a31 .vim/doc/ps_color.txt +0653be352445428b3af6e5bee3385aded524c470618522daae652864bd0c4105 .vim/doc/taglist.txt +63a4a70348480c68dd60cc5d8ebbfc8ed0230ef14560dbb42c7a5a5429575efb .vim/doc/tags +47e74fc900733ceb109d139dae9770ce82f84e7952f5d74d24339d16e1200bbe .vim/filetype.vim +77377136e18b472ab56f8b339e98b4df53e64dcd0068f6827e55cc1ed6b8f3ad .vim/ftplugin/bib_latexSuite.vim +2918e4e0924c1b24042fc15b3d870e9a8daf7f9f1ae125873ac47bc52d121b09 .vim/ftplugin/c.vim +ff65f984c7fe886959a3a88941e9eb4fb2c2dff8610ad969238d06e98ac516e3 .vim/ftplugin/cpp.vim +2e14c7289aefd302f2d328efbe4370bc2fd7d4a33821d37ec4d9b142a60f5b5f .vim/ftplugin/gpg.vim +cb4f576b6745a3d2f64d2912e0e9bb5e73b13dbd719eb99ef31c378aa3dd71f4 .vim/ftplugin/haskell.vim +c1eb34f90cea112f645622a9d8194de86969caa0807065b9f077a32ed0225623 .vim/ftplugin/haskell_doc.vim +c0e50ddccc30b6ef24e14e4a43e72dc8b4967887fdad8ead75802fcdccfe500d .vim/ftplugin/haskell_hpaste.vim +13a7382790dfb980b888e45bac159021821d6c628d93a3c7c2ddd423e73d4002 .vim/ftplugin/latex-suite/bibtex.vim +b64ed475a33534fdd24e7c74957d160506608e69258f9685d91468ff228a6788 .vim/ftplugin/latex-suite/bibtools.py +b0501a351c5aa60ede2db6cfb0e84cb47fe1a7d56887d22b3c1ce61b934adbf9 .vim/ftplugin/latex-suite/bibtools.pyc +b486556b7152ebc8bd8149d0b4014cbc58f7dfd95bcef0ce0f838805de5e20e5 .vim/ftplugin/latex-suite/brackets.vim +0c28d3da048a8620e2eebdc24c7358f25a73bb8da0e26dd13931b370db99da9d .vim/ftplugin/latex-suite/compiler.vim +ac40c901efc20beac985a4353abcc6f228764ce17895e7a763d3220a3ffd0157 .vim/ftplugin/latex-suite/custommacros.vim +56a11236635aa7553f624a5268d302d1b7be81ec8eabd65c844e6a523c62a202 .vim/ftplugin/latex-suite/diacritics.vim +0303e0caf67ebed412b01141f816a3ecf2cc50f9d3d52a7b4c9fc8461ba7b221 .vim/ftplugin/latex-suite/dictionaries/SIunits +29c4cd6543fc9329730acf952b5588796e871a1b6ceae41c308b8048dc709139 .vim/ftplugin/latex-suite/dictionaries/dictionary +8d7a24bd981033ea60067af93db0c17a360d0c6c3d1fd11fd16464763d18aadb .vim/ftplugin/latex-suite/elementmacros.vim +be8cd5b00ad143205fbd0471c05072903a095dd99de48c56faa7f500b3c47f73 .vim/ftplugin/latex-suite/envmacros.vim +991c343b44af2fd3dd6e674f14bf1f0416c49071e348a0249421a86d715f39c4 .vim/ftplugin/latex-suite/folding.vim +80c998b0fe826036ebd785df8e2e7626644eb22de9bdca10bb3ae16a431c1c02 .vim/ftplugin/latex-suite/macros/example +dde7b079c826818490d03b038043ef29424d8ab3dd9111cca516ccc70e25527b .vim/ftplugin/latex-suite/main.vim +dcc59317c0cd33cbcf0ca0d4f0b5a16e2f15eb7d30cde45b4037813bde5910a4 .vim/ftplugin/latex-suite/mathmacros-utf.vim +58cb8ad51a1653985430aa169a2a8a3543bc1d910901bf6e139053b89b59b1ca .vim/ftplugin/latex-suite/mathmacros.vim +c03a306335df27b0409919426324884aa4e3d8439292be502a0f73cbf6eb1622 .vim/ftplugin/latex-suite/multicompile.vim +6ffe27b429733e0decdb8588f0d601aeeafaa1200db306b91dc37bdf71f507b4 .vim/ftplugin/latex-suite/outline.py +9abcfbfe18bd48f96ec428fd9d57f3ffc0580b2c55dbf836e796a7a5965f6c25 .vim/ftplugin/latex-suite/outline.pyc +7fc447839ea2673407b38342264eeb7f92b3a507f39c04765ddf4bbfe3f0184a .vim/ftplugin/latex-suite/packages.vim +637f43ca476c0ab881bbffc470192c06a4db460a3729b36450e35225cb0fdb61 .vim/ftplugin/latex-suite/packages/SIunits +79b5d936427686fce739c6659d20cd78743156d7c350f528bc0162722432d752 .vim/ftplugin/latex-suite/packages/accents +1c4a0003afb36b4a21bc1bf19474fdabda5720d60a05b34bf328ff40978e6938 .vim/ftplugin/latex-suite/packages/acromake +677547aa46abd78676b8628231279a5af5702b998e88af8fc218659942365f83 .vim/ftplugin/latex-suite/packages/afterpage +cbd725d8d8a51a9b9116e7672cc616582cb9590d55f9ac4963a1568e11e05f42 .vim/ftplugin/latex-suite/packages/alltt +d793b666db6ab5fa5e74447916449099785a7cba1ae60ddfdb0a7390f5a6335a .vim/ftplugin/latex-suite/packages/amsmath +f0dabc4cf5a379c7d6ddf77f546c2b0db81d4d397f4a2419bdcf83cc418fd5ec .vim/ftplugin/latex-suite/packages/amsthm +c83d0ef2613827c7c1fa8c49544590df65fe6fdbd2f9a7d544f4f05af6dd1360 .vim/ftplugin/latex-suite/packages/amsxtra +d5777756b44e9d9aa3eb1cb1d3d1fabf70257c5ca62b41639abaaf8b2c05e2c0 .vim/ftplugin/latex-suite/packages/arabic +56966eabe19363eed5811d55a14bf76fbf4622e95231531bd5e60a88813ee840 .vim/ftplugin/latex-suite/packages/array +a92dfe8b038214a314c65dfd7d165862a57247da902d568714ae7a6833550e78 .vim/ftplugin/latex-suite/packages/babel +5b0c5a9e4634b177d6a131bfca7ba5c1c3c6a5852fecc4507196a5452517ced7 .vim/ftplugin/latex-suite/packages/bar +689ae0f01b7eb559654ef8f2137b7c56782924e39c0446b1b115abc6e24b1eaa .vim/ftplugin/latex-suite/packages/bm +1781730c037ee48d6c345186c708345391579d528a32096771290462f471e283 .vim/ftplugin/latex-suite/packages/bophook +3b2923f04a00ddcd922ccb2f20c1f1824c3837e5c18b1ea72d0a246ce95d867d .vim/ftplugin/latex-suite/packages/boxedminipage +6b4a6392d4b3a9620449731d61c9deb4afafe699d27b1e9e675f0fe092a43bed .vim/ftplugin/latex-suite/packages/caption2 +9c9cdc0bba178e7108fb3c6813b818f1b99532915bbb126bbc959cb23050590e .vim/ftplugin/latex-suite/packages/cases +b11d2ddce202814a44dcca9e0df5ea720c18ec153169ff73bfd9dbd439c57a55 .vim/ftplugin/latex-suite/packages/ccaption +1ec2263d88816985656f2f7c7bd76b56d659172b22d9a097950101342564078c .vim/ftplugin/latex-suite/packages/changebar +949c5f8b7e3b3535a67e1609e0e92dd40a1fb1520fb7399f388a2b76888eaa34 .vim/ftplugin/latex-suite/packages/chapterbib +f5e59b969b99d5feaebc4b01989b303250ffa0f4b924e26e500f58f0649454f1 .vim/ftplugin/latex-suite/packages/cite +e4b8a86ac0af9889bb56403d76654e80647080726c76dc4aeb3b4df8edb7857f .vim/ftplugin/latex-suite/packages/color +8db7495dab6092a9469f98f7699e43afbf9c8b8fc8646bce15f8582ae9a950e9 .vim/ftplugin/latex-suite/packages/comma +7b231be487121de250b4439d7e9b9415fbb3708077a83af19dc13a0ff546812d .vim/ftplugin/latex-suite/packages/deleq +20a796b233c6da5bd12e4cb97f169a7414cc19310d947059e0437724793f9f5b .vim/ftplugin/latex-suite/packages/drftcite +1102b1030c00d8302da77c8733cfd84705900a87b07594df63c58b4b4bfc46fc .vim/ftplugin/latex-suite/packages/dropping +5f97d74c74e63d2b35c4cf940e8a1ee5d4642427ed234c03e00a70afe717e506 .vim/ftplugin/latex-suite/packages/enumerate +8739389ff44008b790fac0d7b1aa51f3c797abdace31ee8f4b351333313f15b1 .vim/ftplugin/latex-suite/packages/eqlist +03d3bb9343d2752220b6f822922292c3435313c15d790c6965b5981b24549244 .vim/ftplugin/latex-suite/packages/eqparbox +e5fdfcc6227148e466a2c8bf7c84da229b9a0a09ec944c2f0afd2c84529f84a5 .vim/ftplugin/latex-suite/packages/everyshi +30c54f5da1f34586817e87b707e6c362fb44b1eaf788c7553a91e8f515be9f70 .vim/ftplugin/latex-suite/packages/exmpl +8c6ca6460159895cec39490762f7d548574896caf5bef1a1a06cfedf05f8dbb0 .vim/ftplugin/latex-suite/packages/flafter +01460ce9ae75275d9c8e6339ccd11ec761ea9cbc73db0bc17f7aefa242417a81 .vim/ftplugin/latex-suite/packages/float +475a88962478c3c432c1854a0856dc25027c1ee4501e897ef85a8d217d22220b .vim/ftplugin/latex-suite/packages/floatflt +2dbadaf429d8c5667f42e957764ef88caa369330115b08824528839615891b3c .vim/ftplugin/latex-suite/packages/fn2end +14b5350fa477327f379f201fd213579c88143b58f0f88b5f65714c6039c1aef3 .vim/ftplugin/latex-suite/packages/footmisc +ad744d9d4b98c12823502376b73c0a3290d6b60d988d1a7fc5c9a2b5278dbaa4 .vim/ftplugin/latex-suite/packages/geometry +b88ac941ae70b41da457e90267b691355097bf7273f22327f030bb8175b6df54 .vim/ftplugin/latex-suite/packages/german +5f5b35a7add70eb2d21da9aa3525103438449619d8660b4ad002968fefce1903 .vim/ftplugin/latex-suite/packages/graphicx +e0cbfce47a71e14a60150385979be04dc408c0ca461bc6cbbe46a135896431a2 .vim/ftplugin/latex-suite/packages/graphpap +c691f2702cc20bd867397472b75467bb0726023cde5500868605af178edacdf3 .vim/ftplugin/latex-suite/packages/harpoon +42a7884154d85c608bdd6ed6ba34a8ae48c8760836161470c857350c216fb592 .vim/ftplugin/latex-suite/packages/hhline +6a9b1ea90db1d7283e42a09ad116606c0c0dc52d034e0e000a0f88c1e574164f .vim/ftplugin/latex-suite/packages/histogram +0b8d4ea01f69ced3aec3bb6cb27e3af2311108abaa22e4ce7c14ab893ead9d32 .vim/ftplugin/latex-suite/packages/hyperref +9b64824cb4f2ffd657528e107736b2bd225ebfce8e76fde96de69287c9c0c615 .vim/ftplugin/latex-suite/packages/ifthen +1bbbf78fdf0b0cac5bbf4091c5c15c1b0c879a4018dc5224706f75de63c32d7a .vim/ftplugin/latex-suite/packages/inputenc +1fa03c1f50d572df15041cc2dfb266b5cf76441b80a8fca48d9a7bacb3160196 .vim/ftplugin/latex-suite/packages/letterspace +17036bc205e10126f837cac209f2505655922214b3cbf55bf1e99bec23d7ce8f .vim/ftplugin/latex-suite/packages/lineno +8148df41c3587ec7f3bf015a7cb015f8517a4b4932df1c12663de2a4b92e792d .vim/ftplugin/latex-suite/packages/longtable +cb2a3cf24a43596ec4b532410c77140428be629dfa75301a0b97635b981d4d8b .vim/ftplugin/latex-suite/packages/lscape +66bc43c8cbeca3dc0c9e4c29e07a83ab244d4a21c5ec6b6675e71d737e3db519 .vim/ftplugin/latex-suite/packages/manyfoot +9d7da9448de39210383ffc97589a7ec2aeb655418d5dc19cd26506ce6039cbfb .vim/ftplugin/latex-suite/packages/moreverb +c78c796434d229f68c02c08443f3575a9a0e31d0c3aa82d4191d2d762208cc00 .vim/ftplugin/latex-suite/packages/multibox +a03f52580fe3c2418edbdb7015b01786d1bb5e00dbabac056e2b5380405d5673 .vim/ftplugin/latex-suite/packages/multicol +5ffed693af469a0a12db90456edf4883b722ecf9ae839aa14f025464b03ea4b7 .vim/ftplugin/latex-suite/packages/newalg +ff02c7cd8f23c1c5a157c9766d7210ed715935d258e8ed7a63ed7dd0d2c3a0ff .vim/ftplugin/latex-suite/packages/ngerman +599b20a5bb5fbcb34362e160deb05d1f751bb6c44a7c53157bea8129bb120a1d .vim/ftplugin/latex-suite/packages/numprint +9461616aaf1d687fc9b92fe262be97d24c7c7b0ea47cc274d1817b334567ecdf .vim/ftplugin/latex-suite/packages/oldstyle +b6dc4b47fc27e0537ef018c123b43c0f2176811d5a4260134b9c435dfc260d16 .vim/ftplugin/latex-suite/packages/outliner +5b6241534e75a08551459bf9122c8cfae865a1e809e144a118e49994f5c2ef58 .vim/ftplugin/latex-suite/packages/overcite +5ffaa53f24952823d332c722ec8706bb3b0d9e0d5668ece1e87dcec286d12613 .vim/ftplugin/latex-suite/packages/parallel +32bdeb182ffb96a89082eff3446eca3b1f3a0bf9a444fc5b70014712cf17c948 .vim/ftplugin/latex-suite/packages/plain +c422d092c619e150a4e1f9bca7701fa3a7d9f8bb13116895ef9455cabd616016 .vim/ftplugin/latex-suite/packages/plates +9dc3fd6ce87315eed1a7a01ad36f65a36d27987bf5fbc1b855398d46d630b53c .vim/ftplugin/latex-suite/packages/polski +0c33007de67eb2aeef6e24309583ebb980a4b3986e558b7d5c4a0116410d452d .vim/ftplugin/latex-suite/packages/psgo +63e7ae9605ecb97b952fdbfd9ae7faae4d8ccb6c25ba65349999c809ddd50435 .vim/ftplugin/latex-suite/packages/schedule +d629673098a1272f1e39e8618d2d20f27047530e6cd7fc92b63791b9d0103d9a .vim/ftplugin/latex-suite/packages/textfit +f695b28473641b2b00202dc6f37a5f68503d72b6dbc52a07984be2ac1a06448e .vim/ftplugin/latex-suite/packages/times +172238c73b7d38bc69a265e15299ca70d4e030d072750afbd90bffee89e0b655 .vim/ftplugin/latex-suite/packages/tipa +3e825c4158b9136bb2f2d2b2fddc61238e65414f3b6355fef0515d6aeda0472e .vim/ftplugin/latex-suite/packages/ulem +49381c8def7fefdc9c6a34071535c40344bb01eab1e1f1b24b1286b80fa84277 .vim/ftplugin/latex-suite/packages/url +8c955c40a951f890e977fcc17c8d7ac30845f4681e89fa0c732ceb2e83718b91 .vim/ftplugin/latex-suite/packages/verbatim +69f562079de2dda57e08da01f4142385be3c781ec22ebc5ad1341c858093f7c8 .vim/ftplugin/latex-suite/packages/version +aef6b43f56fe585481d77bec56b73634b30d46b8bd7ee76c0dcca5ff2b0815f2 .vim/ftplugin/latex-suite/projecttemplate.vim +41293688185a7065cc1ded9c3a7c5b7c4e2ab15b35d2ec97b7f9dce76614af31 .vim/ftplugin/latex-suite/pytools.py +6a5d1f08d75b9f5d0124912e741afc040ccdc19f45c599cdf87842fa65173560 .vim/ftplugin/latex-suite/smartspace.vim +c28b5749879eab5793eca631874b65b212f86b676797230fa7176b34b803c937 .vim/ftplugin/latex-suite/templates.vim +f4979a671d21f76e513f507098a3f14f62f3970de4aa90e8f8eda79446dba994 .vim/ftplugin/latex-suite/templates/IEEEtran.tex +c3137fd5cd7f72e0cfa8aa4dac1c4bfa10c96c5eb3753f479e92fa7ee7b4a8c7 .vim/ftplugin/latex-suite/templates/article.tex +e7b755b9d7382e01fafb3573928248ec55d1c2f05359e08ca03f46b573f222e5 .vim/ftplugin/latex-suite/templates/report.tex +9cec5283cccaf9bfc4961187f2c3acd3918d83f0ada02e9e5a236f5f29616f81 .vim/ftplugin/latex-suite/templates/report_two_column.tex +7c4bca820c758595ff4db5748527a64ddcdb8f71e5480d93f012fec5a254cc66 .vim/ftplugin/latex-suite/texmenuconf.vim +77095ee2a6e4e597a4fc073adea6a713de980ca5f7ea6274d0724b76a13fe760 .vim/ftplugin/latex-suite/texproject.vim +7c71ef72a35851f6d4a71e97471f8f9bb4df225a1f0882701f011269d0e78062 .vim/ftplugin/latex-suite/texrc +978d9d1c4a35691f72b61855d8c64d8bffcdb2f04a3002eaa390da3c788cbdc0 .vim/ftplugin/latex-suite/texviewer.vim +697e796bece7ad92ad4ad31555f15c9bf17f9edb60b4649bf3deb8e32be1bf74 .vim/ftplugin/latex-suite/version.vim +6e11c3340de1bd9161e2f2097968cf704e79cf2b7b321bf60066f0481bac0710 .vim/ftplugin/latex-suite/wizardfuncs.vim +adcd438a9679f5d112115a4e6f11da1ff5a026d2f966db7ef3ef74bab6af626b .vim/ftplugin/pythoncomplete.vim +8143f5ff319ab039d921c4d6eb79107486b5694af1f5b45d329cf68568fca903 .vim/ftplugin/tex.vim +33428041046a1a9efa8c53fa05a15c8cba00a03c92297280ca016a8fc9d20e7a .vim/ftplugin/tex_latexSuite.vim +fc052b3afa3704f9a4e663e870bfd904fa289b9d056a477306db023677f14cc6 .vim/haskellmode-20081031.vba +5f1766593401d1a7646648fa50cd479bd787366ba323f9dbffc55cf5774573ef .vim/haskellmode-20090424.vba +b22204322a8efd0fd6f4c22e2e0fcde3a79364b77fd80d04cb1b3b6e4c26f60d .vim/indent/indent-r.vim +e11fa9d3e0806c30334daa51b1d70258136fc8ae5ba5f51c202a0606f8bdfc57 .vim/indent/tex.vim +b2004ce00d8912097659a014f97365f76dfb54e82dd6db9606490b79f2eb1125 .vim/kde-devel-vim.vim +48e8607970b09b1bd4d4fc32bfbde06faea91cc7fbcabe925606378fffcbc1b1 .vim/ltags +1da3b2084d567a2100ea23a7401b74146ba31ea09ee7560622715ec7001c67b7 .vim/moin1_6.vim +1a07a32c0fee4efc8688bb991a751fbb88eed8d641f462e590bf217fbcb7384d .vim/plugin/SyntaxFolds.vim +384bb5f8093651e24945980ec95451b12ace0fd6a00a8f54ad7d7970d9ec01e1 .vim/plugin/c.vim +a5d72d69868610ea7f50493048b11d8ec185e439e215589a10c588595fcbe02e .vim/plugin/filebrowser.vim +fa68ba43affb82e664ee683de54360af1e7167fdcad132627afdf7affef77471 .vim/plugin/imaps.vim +2d0d1df4db06c149fd219927ef0984b2066c3f61671cf65cfaaa10057a9aa0ed .vim/plugin/libList.vim +60f20d52b70b90fa6d97828c40ba0844a0596d9a04a10ac54cce8b6cfe20ed2d .vim/plugin/minibufexpl.vim +c2a61b9b68bb1e2cdcb0084ffb35fc721c4950f544409e70615557aa4d0f72bc .vim/plugin/openssl.vim +d2adb32816e3254ae03ebef88b5bebaf9ffcf414fa7a001262be455fe746c320 .vim/plugin/remoteOpen.vim +1e787f60063780cd7ec8c9311ce1e7748f3430c1f32322a5464ca8d54e349933 .vim/plugin/taglist.vim +32ebe478747bd0d4657398112f9c0dc701e1cbb2cc4e7a498aacc24c49a9d2c2 .vim/syntax/django.vim +ba4cea3e3632c47c91f888c08761aac42d52cf57df6153e07d00b978093ee68d .vim/syntax/htmldjango.vim +2ec13ab83be45521f124e470da96c468f816e62994391fbd346965406efa991d .vim/syntax/prolog.vim +f22e5ddac972af6b24ed4fc81bf51e6d901b34340386008a21c578801490667a .vim/syntax/rnc.vim +450850a3248782deab1c6bb4cb12772dc01d679588f10d3995fbe551fe2991be .vim/syntax/syntax-r.vim +834f67e6539363420a0c9e11ce16d15ca9d9f96bdaab62e5230411ed30864641 .vim/syntax/tex.vim +7f07fe53a981b9e78749d1f33238c8b28317b91ba75138a9755df7cffd4d6d12 .vimrc +78c614d41f5f216ffee49d524eeb8aa183a244daa084c7bda7ec61347f76381b .xinitrc +e78859325cab3e3fdb148db0850f76c8b7396b26c7764275538495c0a0d9a187 .xmobarrc +c08472b208a955be59b39e325b13f715932a649b8a18fb3ab46380c4b92b090f .xmonad/xmonad.hs +d7ca88df2b00187ca2fa3f60065664fddbf1449d192808d8bb9b57af8d27df36 .zsh/func/prompt_wunjo_setup +ebf7af235f15d807b0ccb54eebde31cde3fe24fd389cbdd88c08f4b82bd29e98 .zsh/func/zgitinit +26882b79471c25f945c970f8233d8ce29d54e9d5eedcd2884f88affa84a18f56 .zsh_logout +a0c451b022ca58f94d5115dcd4ba5b7b8ea18ac5f86d37707bfb82c752fddb16 .zshrc +d5af534d5d05a48601d3eb221714367ea0d002a609572f3ca1d9c508ce533edb Makefile +7496fd76af0a3dc71a3b5281c10c1bdcfb24035659a8ca2c32554543109df0f6 README +f986f0834db5f393dc0f32a4420fa130c1097aaaca8d4a21ce5fbb5c76ef392d SUBSTS +9fa3f553f2bb013cd3a572e27dc8d32c46cc7364d2223444209d3c2b2df1582d bin/gpg-mounter +dca4a952c59d58c26a6bf7f8c63c91fc0e7ad1339dcd6fe1cad84c6d989c79fe bin/gpg-wrapper +7dad320fcccf717c10c2babd0fa9a8aca61590055c86bc83a74567576349bca9 bin/mutt-notmuch +c887ea51ee43157e5ec2d94d9f7d7996863ad75dd4d2179ec0734a5fba86409e bin/run-mailcheck +dc38f1b4682c5a471c6b5b1e8d48f97d6321cfb06cbdef43aed177fe75207e94 bin/update-xmonad.sh +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.11 (GNU/Linux) + +iQUcBAEBCgAGBQJOSDxNAAoJEI97+PxKEcl6Lign/jfcDbFB8Ekgv25lz3zU/x/9 +oif8CyfkPR5592CULMO9oQTm13EAy7AaTb39amClgHzr5ABPeYMlH3BnLV+WPFDf +Uw3PkS4gD2SSx5YRV4NRc/2TfRDy9M1uBNb/PWLO1Oaeo9PFFfwGDBgUCmBJmVEt +uP+57RnIj4GOgWIr0wilqifo6kMzxY9B3rCjV8ttJDMNqkRCvoXCOhJkNJCQ8PdH +LhVl07pKj3kiVOKgsh8kRsGdakSETuR/kvIqPk0RX8VycvlWIEupA9QTUHlfwL5I +VJH0oM5koQg4pUCOz5kAhDX+D2wJg3PX1VEkfR+8TzD8xUxdOqu2w+l55KUL/LQ1 +ZGUOk1v+VcNWFWLyT8tXi8TfglSLnDfef/a0ctcSG4OWHAhHUZVpE782sGYDooo+ +Yp1vdoCXTadDyQ6IFEwOnVx87o1+3wxhy3oMw68pIo3LG+XVg+jIACwg5S8NzZy8 +oOB03xR9d5dWuPzNSRy6cycvwhRp0wEBJQT+AeTDtfI0kkiBbivT7vSPWbnR04XR +dulwtdZ9UOJMtWMkvHCYGd5wqkSX8S8WKUmqy9QBsrgwCAVJf/8gs8S5YFsnq5oo +dj0+cFLUeEJk2xwqIbxoSFN59Fgc8LRwbZ+G6RA7mYL3VGibs4of481aIlmm+ggi +s6nPEIXaf7lUTfTF58tPxO/yo2K+/jmnTLqc2g9R16ZH9nl6nZtynyFfgXUjOHXK +6CuiEYwntH8835FsqFlsvmZCo36NgObJR7WvSdJAX+cIhVNEprr8IvLaHJEJRzU2 +pbPdnj95BDE1x1C2Ynw+KWoLEM4RqJeGGkx+sjHOvE18ONRpLMFFrdHDF9ofPxLQ +j3pTqYuo6VdrLA0S6Ge3CdBJORUU5q2REUWef192W7nBmTtp8JLg3o7lgaO00Y1D +H5gH8RKFGp3FimXDa2yUzZdpWktqXT4mbhEmGgxR115b5l64EA8avxyamd6V59HC +iaJ6e7xIChfllShxxHHxe6fJZ9oLCvhcTaCxAR+PRAhWJwJ9MTXEtx7FqivpiWUL +UgCnccQT5r/OF1u14Xa7+37X4FJF7hXPenW+XzucPfAxK2rAosCbdFP+CvhIz29q +n3X2S+94owvCRybIdYTPOP/vqMdL1I7z901Tn/T/ZUhVKKdFMqizwW3bUg8IpoUV +dGAW2LADOT38lDPOgWDLccL+gQoYn7X+T6JuGtxkB0AKnFxtlJkt3W5BgXZuhkeK +/9Dvab6QU5ePGL00y+qS0IGPzWooaWYnesKl4OnXZ7F10H7M03Ti/KFtdy0MDvVU +xCDvJv+iEhL3H4+1ubnjPFWG1uzcM+2ZFx3kGtD4CUn39Gjn/WfxHrtuB99u3UgC +Rp/AMTSP8Zz5/aLLRSB/PFj8Fp8F4sOzasCgZxdfmfmAlEp1IGGVUnnE4Dd6j0ME +G0AuQ+SJ+X18AuqB4T/14e1Ila0zX+Q+BDE2L3kthBG9r795asj3Q480ecdeEoir +iWUrYi+xHuaQPEWV2U7fwVpVxlGo6Rter+WeHWXYIUGwbVQxwWhyLj8bg+Lts9DG +iWVNCkneDGHj8517wJ2/p8T5l3IvshVnI4UOuCnbw8KtxTiYwpYbTBRgR2kkelrp +MYKLTccCii3mbYAjInbGA/gK7jyGFUNpFY38RmYU8y+gm8rCTsIjrF6UzbeV0CMc +2sxLOyeJzNr85yaVnRBc +=1CRZ +-----END PGP SIGNATURE----- |