#!/bin/sh
# the next line restarts using tclsh \
exec wish "$0" "$0 $@"

# TkSpider by Steven A. Released under the GPL.
#
# Some code, and the card images, taken from Jeff Godrey's
# "Once in a Lifetime", at http://mini.net/tcl/11193
#
# Spider, based on the card-game shipped with Windows XP
# version 3.5 copyright Mike Griffiths, April 25th 2004

# some common procs for spider, hearts and tktk

package require Tk

proc lreverse {list} {
  set result {}
  foreach i $list {
    set result [linsert $result 0 $i]
  }
  return $result
}

proc initSubWindow {w title transient} {

  # Initilaises a toplevel window offscreen and withdrawn
  # (to allow the user to pack it before centering and being drawn)

  # I tried to use bind <FocusIn|Enter> to raise the window,
  # but using "grab" stops this command taking effect.
  # Additionally, using grab is the only way I know of to disable menus

  catch {destroy $w}
  toplevel $w
  wm title $w $title
  wm withdraw $w
  wm geometry $w +2000+2000
  wm iconbitmap $w @/tmp/icon_bitmap
  wm iconmask   $w @/tmp/icon_mask

  if {$transient} {
    wm transient $w .

    bind . <FocusIn> "raise $w ; focus -force $w"
  }
}

proc grabSubWindow {w} {

  # There is an obscure bug in the grab code that means grab shouldn't be used till window
  # is drawn, so put grab here

  global data

  if { $data(platform) == "unix"} {
    grab set $w
  }
}

proc closeSubWindow {w} {
  bind . <FocusIn> ""
  grab release $w
  destroy $w
}

proc closeDialog {w {cmd ""}} {

  closeSubWindow $w
  .c configure -state normal
  if { $cmd != "" } {
       uplevel #0 $cmd
     }
}

proc center {win} {
  # Center window $win on the screen

  set w [winfo reqwidth $win]
  set h [winfo reqheight $win]
  set parent [winfo parent $win]

  if {"$parent" == "" } {
    set sh [winfo screenheight $win]
    set sw [winfo screenwidth $win]
    set reqX [expr {($sw-$w)/2}]
    set reqY [expr {($sh-$h)/2}]
  } else {
    scan [wm geometry $parent] "%dx%d+%d+%d" a b c d
    set reqX [expr $c + ($a-$w)/2]
    set reqY [expr $d + ($b-$h)/2]
  }
  if {$reqX < 0} {set reqX 0}
  if {$reqY < 0} {set reqY 0}

  wm geometry $win +$reqX+$reqY
  update idletasks
  return;
}

proc exitGame {{quick yes}} {

  global p

  if {$quick == 0} {
    set ans [tk_messageBox -type yesno -icon question \
			   -title "$p(name) - Confirm Exit" \
			   -message "Confirm quit Game"]
    if { $ans == "no" } return
  }

  saveOptions
  exit
}

proc showCardBack {} {

  global cardback data p

  set thisCmd [lindex [info level 0] 0]
  if { [info exists dialog(cmd)] && !($dialog(cmd) == "" || $dialog(cmd) == $thisCmd) } {
       return; # already got another dialog up
  }
  set dialog(cmd) $thisCmd
  set dialog(win) .cardbacks
  set w $dialog(win)

  initSubWindow $w "$p(name) - Playing Cards" 1

  wm protocol $w WM_DELETE_WINDOW "closeDialog $w"
  # set .c disabled, to stop cards reacting
  .c configure -state disabled

  set i 3
  set list [list 1 2 3 0]
  set frame -1
  loadCardbacks
  foreach x [lsort [array names cardback]] {
    set i [lindex $list $i]
    if { $i == "0" } {
      incr frame
      pack [frame $w.fr$frame] -side top -fill both
    }
    lappend data(cardbackIMG) \
      [set this [image create photo -data $cardback($x)]]
    radiobutton $w.fr$frame.$i -text $x -image $this -compound top \
      -variable data(cardback) -value $x -indicatoron false -selectcolor LightSteelBlue \
      -command {::img::back configure -data $cardback($data(cardback)) ; update} \
      -offrelief flat -borderwidth 3
    pack $w.fr$frame.$i -side left -padx 4 -pady 6
  }

  pack [frame $w.frBtn] -side bottom -expand 1 -fill x
  pack [button $w.frBtn.ok -command "closeDialog $w" -text "OK" -width 8] \
    -side left -anchor center -padx 5 -pady 8 -fill none -expand 1

  update
  center $w

  wm deiconify $w
  wm resizable $w 0 0
  update
  grabSubWindow $w
  
  return;
}

proc saveOptions {} {

    global data p

    catch {file attributes $p(config) -hidden 0} ;# unable to open hidden files for writing!
    
    set hFile [open $p(config) w]

    puts $hFile "# Automatically created - do not edit"
    
    set list {canvas_bg canvas_bg2 cardback suits}

    foreach i $list {
      puts $hFile "set data($i) \"$data($i)\""
    }
    
    close $hFile
    catch {file attributes $p(config) -hidden 1}
    
}

proc shuffleList {list} {

  # l is a list of pairs e.g. {{card1 random1} {card2 random2}...}
  # which gets sorted by the random numbers (index 1)
  # doing it twice^H^H^H^H^H more works better

  foreach j {1 2 3 4} {
    set l {}
    foreach i $list {
      lappend l "$i [expr rand()*rand()]"
    }

    set list {}
    foreach i [lsort -real -index 1 $l] {
      lappend list [lindex $i 0]
    }

  }
  return $list
}

### &&& is this best S.A. ?

proc setinter {arg1 arg2} {
# setinter [set cards$suit] {t j q k a}
  set list ""
  foreach x $arg1 {
    if { [lsearch -exact $arg2 $x] != "-1" } {
      lappend list $x
    }
  }
  # S.A.  return [lsort -unique $list];
  return $list
}

proc setinterN {arg1 arg2} {
  set N 0
  foreach x $arg1 {
    if { [lsearch -exact $arg2 $x] != "-1" } {
      incr N
    }
  }
  return $N
}

proc setdiff {arg1 arg2} {
  set list ""
  foreach x $arg1 {
    if { [lsearch -exact $arg2 $x] == "-1" } {
      lappend list $x
    }
  }
  return [lsort -unique $list];
}

proc showColor {} {
  global data p

  set choice [tk_chooseColor -parent . \
    -title "$p(name) - Background Colour" -initialcolor $data(canvas_bg)]
  if {"$choice"!=""} {
    .c configure -background "$choice"
    set data(canvas_bg) "$choice"
  }
}

proc showColor2 {} {
  global data p

  set choice [tk_chooseColor -parent . \
    -title "$p(name) - Panel Colour" -initialcolor $data(canvas_bg2)]
  if {"$choice"!=""} {
    .c.f configure -background "$choice"
    .c.f.l configure -background "$choice"
    ::img::marker put $choice -to 0 0 70 95
    set data(canvas_bg2) "$choice"
  }
}

proc initIcons {} {

  ### Should be able to fix this S.A. ???
  # Unfortunately we have to write these bitmaps to a file to use them

  if {[catch {set fid [open "/tmp/icon_bitmap" w]}]} {
    # f***ing windows is f***d
    return
  }

  puts $fid {
  #define icon_bitmap_width 48
  #define icon_bitmap_height 48
  static unsigned char icon_bitmap_bits[] = {
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
     0x00, 0x00, 0x80, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x70, 0x00, 0x00,
     0x00, 0x00, 0x40, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x60, 0x80, 0x07, 0x00,
     0xff, 0xff, 0xff, 0x1f, 0x0e, 0x00, 0x01, 0x00, 0x00, 0x10, 0x3c, 0x00,
     0x09, 0x00, 0x00, 0x10, 0x70, 0x00, 0x0d, 0x00, 0x00, 0x10, 0xc0, 0x01,
     0x1d, 0x00, 0x00, 0x10, 0x80, 0x03, 0x15, 0x00, 0x00, 0x10, 0x00, 0x0e,
     0x09, 0x00, 0x00, 0x10, 0x00, 0x3c, 0x1d, 0x00, 0x00, 0x10, 0x00, 0x70,
     0x3f, 0x00, 0x00, 0x10, 0x00, 0xc0, 0x3f, 0xf0, 0x01, 0xd0, 0x01, 0xc0,
     0x1d, 0xf8, 0x03, 0xd0, 0x01, 0xc0, 0x1d, 0xfc, 0x07, 0xd0, 0x01, 0x60,
     0x01, 0xfc, 0x07, 0xd0, 0x01, 0x70, 0x01, 0xfc, 0x07, 0xd0, 0x01, 0x30,
     0x01, 0xf8, 0x03, 0xd0, 0x01, 0x18, 0x01, 0xfb, 0x1b, 0xd0, 0x03, 0x18,
     0x81, 0xff, 0x3f, 0xd0, 0x03, 0x0c, 0x81, 0xff, 0x7f, 0xd0, 0x03, 0x0c,
     0xc1, 0xff, 0x7f, 0xd0, 0x03, 0x06, 0xc1, 0xff, 0x7f, 0xd0, 0x01, 0x06,
     0xc1, 0xff, 0x7f, 0x50, 0x00, 0x03, 0x81, 0xff, 0x7f, 0x10, 0x80, 0x01,
     0x81, 0xff, 0x3f, 0x10, 0x80, 0x01, 0x01, 0xe7, 0x1d, 0x10, 0xc0, 0x00,
     0x01, 0xf0, 0x03, 0x10, 0xc0, 0x00, 0x01, 0xf8, 0x07, 0x12, 0x60, 0x00,
     0x01, 0xf8, 0x07, 0x13, 0x62, 0x00, 0x01, 0xf8, 0x07, 0x97, 0x32, 0x00,
     0x01, 0x00, 0x80, 0x54, 0x11, 0x00, 0x01, 0x00, 0x00, 0x52, 0x19, 0x00,
     0x01, 0x00, 0x00, 0xd3, 0x0c, 0x00, 0x01, 0x00, 0x80, 0xd7, 0x0c, 0x00,
     0x01, 0x00, 0xc0, 0xdf, 0x06, 0x00, 0x01, 0x00, 0x80, 0x97, 0x06, 0x00,
     0x01, 0x00, 0x00, 0x13, 0x03, 0x00, 0x01, 0x00, 0x00, 0x30, 0x01, 0x00,
     0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
  }
  close $fid
  set fid [open "/tmp/icon_mask" w]
  puts $fid {
  #define cards_section_mask_width 48
  #define cards_section_mask_height 48
  static unsigned char cards_section_mask_bits[] = {
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
     0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00,
     0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x07, 0x00,
     0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00,
     0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03,
     0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f,
     0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
     0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
     0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f,
     0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
     0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07,
     0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01,
     0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
     0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00,
     0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00,
     0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00,
     0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00,
     0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00,
     0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00,
     0xfe, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
  }
  close $fid

  wm iconbitmap . @/tmp/icon_bitmap
  wm iconmask   . @/tmp/icon_mask
}

namespace eval ::img {}
 
image create photo ::img::blank ;# used for compound [label]s, to get sizes right

### these are base64 encoded gif files
### use these commands to encode new gifs
# package require base64
# set f [open picture.gif r]
# fconfigure $f  -translation binary
# set data [read $f]
# set data64 [base64::encode "$data"]
# set out [open picture.64 w]
# puts -nonewline  $out "$data64"
# close $out

proc loadCardbacks {} {

  global cardback

  set cardback(Original) {
  R0lGODlhRwBgAKIAANnZ2QAAAP///wAA/8DAwP//AP8A/////yH5BAEAAAAA
  LAAAAABHAGAAAAP/CIChy+0Po5wBgQaKLrc/jHIKFBAoutz+MMq5UASKLrc/
  jHIuFIGiy+0Po5wLRaCo4ujyEI4uD+Ho8hCOLg/h6PKgqEasoNHlJRzdJWY2
  EOHoLjGzgUQlYgWNqojg6NLuIMLRFREcXdodRDi6IoKjKiIoESKCMjMjWFKC
  o0urSDi6UoIlOLq0ioSjKyVYMjODohKxgkalxnBKcHRpCUdXatCmBEeXlnB0
  pQZtSmZwREQCQ0RkcKSmBGtKRnB0aAhHR0awpqQGS0ZmcIaGBmdGRrCmpAZL
  ZkRQJEIERWZE0KTEBEdMaHCGZgZJTEbQpMQER0xocIZmBklMRtCkxARl/0ZE
  UCJEBGVGarCkpgRHZmaQhmYGR0ZqsKSmBEdmZpCGZgZHRmqwpKYEZ0REMEJE
  BEelxnBKcHRpCUdXatCmBEeXlnB0pQZtSmZwREQCQ0RkcGakBEtwdGkVCUdX
  SrAER5dWkXB0pQRLZmZQVCJW0KjKCI4uLeEoqSrKCI4uLeEoqSrKCI6qiKBE
  iAgKjq7sIs3MCI4O7aLg6NIOyswM4ejKLopKxAqimRlBk5kZpJkZQZOZGaSZ
  GUGTmRmkmRlBk5kZpJkZQZOZGSQRkcAQERmkmRnB0aFdFBxd2kGZmSEcXdlF
  mpkRHB0aQRGJEBSRGcJR0iEcXRnB0aUlHCVVRf8ZwdGlJRwlFUGRCBEUmRnC
  UaVdlJISHF1aRcLRlRIswdGlVaSZEUGRCBEUmZlBmhnC0ZUatCnB0aUlHF2p
  QZsSHF1awtEREZQIEUHBUaUhHB0ZwZqSGiwZmcEZGhqcGRnBmpIaLBmZwRka
  wlEVEZQIEUHB0aUlFJMRQykxGRQTmsGhmSEUkxFDKTEZFBOawSEcXRFBiRAR
  FBxVGsLRkRGsKanBkpEZnKGhwZmREawpqcGSkRmcoSEcVRFBiRARlJkZwlFS
  VZQam0LB0aUlHF2pQZsSHF1awtEREZQIEUGZGcJRpV2UkhIcXVpFwtGVEizB
  0aVVpJkRQZEIERSZocH/GZoZJBxdGcHRpSUcJVVFGcHRpSUcJRVBkQgRFBma
  wRmZGRzC0ZVdpJkZwdGhXZSRmcGhmRmUmRnCEREJDBERwtERExwd2kExmRkc
  mplBMZkZHJqZQTGZGRyamUExmRkcEhHBCBERHF3ZRZqZERwd2kXB0aUdlJkZ
  wtGVXRSViBU0qjKCo0tLOEqqijKCo0tLOEqqijKCoyoiKBEigjIzI1hSgqNL
  q0g4ulKCJTi6tIqEoyslWDIzg6ISsYJGpcZwSnB0aQlHV2rQpgRHl5ZwdKUG
  bUpmcEREAkNEZHCkpgRrSkZwdGgIR0dGsKakBktGZnCGhgZnRkawpqQGS2ZE
  /1AkQgRFZkTQpMQER0xocIZmBklMRtCkxARHTGhwhmYGSUxG0KTEBGVGRFAi
  RARlRmqwpKYER2ZmkHB0ZQRrSmqwZARHl3ZQRmoKpaZkcEREAkNEZHBGagyn
  BEeXdncgqbEpFBxdJlYkNTaFMjMiKBIhgiIzMyglJTi6tLsLSUkJji4r4ehK
  CZbMzKCoRKygUZURHF1awtFlGRQcXaZFwtGVERxVEUGJEBEUHF3ZRZqZERxd
  FkHB0WVhJBxd2UVRiVhBNDMjaDIzgzQzI2iCoztEKCZEOLojhjIzQzg6YoKj
  QyIoEiGCIkMzOCMzg0M4urK7A4ni6LKwIpqZERwdGv9BEYkQFJEZwlHSIRxd
  GcHRXRkUHN2VQcHRpSUcJRVBkQgRFJkZwlGlXZSSksEZmhmUkpLBGZoZlJIS
  HF1aRZoZERSJEEGRmRmkmSEcXalBm5IZlBmpQZuSGZQZqUGbEhxdWsLRERGU
  CBFBwVGlIRwdGcGakhosFNWaQqkpFNWaQqkpGZSZGcIhHFURQYkQERQcXVpC
  MRkxlBKTQTEZMZQSk0ExGTGUEpNBMaEZHMLRFRGUCBFBwdGlJRSTEUMpMRkU
  kxFDKTEZFJMRQykxGRQTmsEhHF0RQYkQERQcVRrC0ZERrCmpwUJRrSmUmkJR
  rSmUmpJBmZkhHMJRFRGUCBH/QZmZIRwlVUWpsSmUGZlBqbEplBmZQamxKRQc
  XVrC0RERlAgRQZkZwlGlXZSSksEZmhmUkpLBGZoZlJISHF1aRZoZERSJEEGR
  GRqcoZlBwtGVERzdlUHB0V0ZFBxdWsJRUhEUiRBBkaEZnJGZwSEcXdndgURx
  dFlYEc3MCI4OjaCIRAiKCM3gjJgMzgzN4IyY4OgOCYqJEI7uiKHMzBCOjpjg
  6JAIikSIoAiOruwizcwIji6LoODosjASjq7soqhErKBRlREcXVrC0WUZFBxd
  pkXC0ZURHFURQYkQEZSZGcGSEhxd2t2FpKQER5eVcHSlBEtmZlBUIlbQqNQY
  TgmO/y7t7kBSY1MoOLpMrEhqbAplZkRQJEIERWakcEpqCmVkZnAIR1dGsKak
  BktGcHRpB2WkplBqSgZHRCQwREQGR8SkUExGDIVmhnCUxARHTErQZMQEaWZo
  cIbEBEdMStBEZgRFJEJQRGYEa0pqsGRkBmdoaHBmZARrSmqwZGQGZ2hocGZk
  BGtKarBkRgRFIkRQZGYEa2xKcHRpCUdXatCmBEeXlnB0pQZtSmZwREQCQ0Rk
  cGakBEtwdGkVCUdXSrAER5dWkXB0pQRLZmZQVCJW0KjKCI4uLeEoqSrKCI4u
  LeEoqSrKCI6qiKBEiAgKjq7sIs3MCI4O7aLg6NIOyswM4f/oyi6KSsQKopkZ
  QZOZGaSZGUGTmRmkmRlBk5kZpJkZQZOZGaSZGUGTmRkkEZHAEBEZpJkZwdGh
  XRQcXdpBmZkhHF3ZRZqZERwdGkERiRAUkRnCUdIhHF0ZwdGlJRwlVUUZwdGl
  JRwlFUGRCBEUmRnCUaVdlJISHF1aRcLRlRIswdGlVaSZEUGRCBEUmZlBmhnC
  0ZUatCnB0aUlHF2pQZsSHF1awtEREZQIEUHBUaUhHB0ZwZqSGiwZmcEZGhqc
  GRnBmpIaLBmZwRkawlEVEZQIEUHB0aUlFJMRQykxGRQTmsGhmSEUkxFDKTEZ
  FBOawSEcXRFBiRARFBxVGsLRkRH/rCmpwZKRGZyhocGZkRGsKanBkpEZnKEh
  HFURQYkQEZSZGcJRUlWUGptCwdGlJRxdqUGbEhxdWsLRERGUCBFBmRnCUaVd
  lJISHF1aRcLRlRIswdGlVaSZEUGRCBEUmaHBGZoZJBxdGcHRpSUcJVVFGcHR
  pSUcJRVBkQgRFBmawRmZGRzC0ZVdpJkZwdGhXZSRmcGhmRmUmRnCEREJDBER
  wtERExwd2kExmRkcmplBMZkZHJqZQTGZGRyamUExmRkcEhHBCBERHF3ZRZqZ
  ERwd2kXB0aUdlJkZwtGVXRSViBU0qjKCo0tLOEqqijKCo0tLOEqqijKCoyoi
  KBEigjIz/yNYUoKjS6tIOLpSgiU4urSKhKMrJVgyM4OiErGCRqXGcEpwdGkJ
  R1dq0KYER5eWcHSlBm1KZnBERAJDRGRwpKYEa0pGcHRoCEdHRrCmpAZLRmZw
  hoYGZ0ZGsKakBktmRFAkQgRFZkTQpMQER0xocIZmBklMRtCkxARHTGhwhmYG
  SUxG0KTEBGVGRFAiRARlRmqwpKYER2ZmkIZmBkdGarCkpgRHZmaQhmYGR0Zq
  sKSmBGdERDBCRARHpcZwSnB0aQlHV2rQpgRHl5ZwdKUGbUpmcEREAkNEZHBm
  pARLcHRpFQlHV0qwBEeXVpFwdKUES2ZmUFQiVtCoigiOLu0OImocXRHB0aXd
  QYSjKyI4qiKCEiEiKDi6vISju8TMBiIc3SVmNpCoRKyi0eUhHF0ewtHlIRxd
  HsLR5UFRjUDR5faHUc6FIlB0uf1hlHOhCBRdbn8Y5VwoIFB0uf1hlFOgAAAM
  XW5/GOUMCCABADs=
  }

  set cardback(Statue) {
  R0lGODlhRwBgAKUAAAAAAK2hk8yZZsxmZsxmM8wzAMyZAMxmAP/MAP+ZAP//
  AP+ZZv/MzP///8z//5mZzGaZzMzMzAAzmTMzmWZmzGYzZv//zDNmzDMzZpkz
  AJnMzGYzM5kzM//Mmf+ZmTNmmcwzM8yZmZmZmZlmZplmmZkzZszM/2ZmmZlm
  M8yZzNvJydvJydvJydvJydvJydvJydvJydvJydvJydvJydvJydvJydvJydvJ
  ydvJydvJydvJydvJydvJydvJydvJydvJySH5BAEAAD8ALAAAAABHAGAAAAb+
  wN8vQiwaj8ikcslsRoRDp3RKnUZF2Kx2y+16v+CwyCgum89lMnrNPqvb8Pj2
  La+36fa8Ga/vf/l+gVqAgoKEhX6HiHqKYgEBWAFEj49HkH2NZpIRIyNEDaCh
  lpdwmXsRIp5VEaRuRXqQFaqfDVOPrkSlqFoVFUe1TZvCaa9sEcBYrJCXVZRG
  rV2mXEljrZucStWS16xg0lqUyUdeI9vPIttj3bd/xWi76sdFl52yvWMj6qTd
  +uDoc+7Q3BsDSs0Ie7JQyfqXSlUqdNCiBdQkAgMGScAMduokotfGVL265bu1
  MR9DcbnQSMKiClhGkVkqWGw4wqIvkCMbyirHLh7+PJXc0CW5JBNDvl5Fj3o0
  ibDCtIARt7Ab5TMeSHsWMQAAcLCo0U4YetkEmJKS2bNnffKLBIlMV6Raw2a1
  Kcvm2HB00Op1do6l33kdxcadu5UwgLkmUcLby5jVJIUlOy2jV/Sw4cJaLY/N
  8oyx527KUtEdeLLrXItbU6c+Hcmn58bLsgQ4qBkpy8QdT6verTlx59dolU1G
  RRvz4YNfVdVEzXv3ZtfAg4+aXROz1rr2AtSqmLm56rCc5wGXmhIiurcYcgMQ
  i91Ide/fw0+Kflbh5tkeqcddOOKw4yIVwLeafMLRV8l7RsXE1EEmEZHZP5Vw
  IuBhBE6mVzQByGTZQg3+iRbPI/0VdltMAqanmIERLhfWUljIJMs1twUYlkmm
  dcebidC9JhsrSPGH30EVOdWiYTTCxdyNQubITk87EsdgOcQVtVM9WQ04JXJV
  3uibeDpuQpNJJPUI0pFb+RLBUpVluRqOVXkWSS4fmXXViqjZSCFxmVWpW2G4
  5XVJOBBFVpVX9WiYJT6pfBegZswleWJ981GCVD75PPNRi/doyNUu761XF6NZ
  PVWeUNNVdJhMrkEEST3/9HeTaIONIcJhxoFH1mJ//sZdWEqs6lQu97CCpX8A
  WvYdm48yyY1juSLB0q9EHJTLach2SuuKt2pR0oeALRuaZOPgGR9LatJqWZ/+
  AU0KZmukzgcQjIEtutpGlX1n3Zaj9ohbMkB64aW2udlolJd2OkehYrzQta2s
  Tz7EUS1v9ajmh+rBl5WQdLg4mj1dUfqWOiqu6JVNlIRM5rFxIZxFTYJhOSNH
  b21TnU01DubyhNZxpfKzgsk1E00gveKVU7PpudtRBTsX6s48j2wRnC16uZxM
  6SQNAEHbdWfnfgRuQS+1PyVzC6HA2ruVOrDiTHNV2lJ5mseVclqnUahYjVC5
  3s1l5qhfOi1yBaQgV2uWAu85YZZ41OM2tYDrlPTczVmdd5V8TOp3go4XTC3O
  nFM+UbwSO8VglJquuTnnJa7GR8c9hjTJkJpTezL+6oWtCQiaCRXEj9sonz77
  4d/9Bqjix4TSAGXDWic77WYHzyWgDxUvzzle9X4Z85FjIPxJxYtSyzDJm/77
  kZLfqP3zK2Fk/DOvhG+4+Zoxf36klWD9EhK+/o56+ZH/xsQyr1tJ+LBnLtrN
  LxjvqsSq8GZA/h3rf/AoiXb2QS79EfBwB8TfqrYlD7bkjzkOvCBmltA2jgDG
  PM+qUulEaLEMBkRQ7rLQmOo0QBY6Jxsr4wipehKbOW2FXvKyoXXYtxa/iA1Q
  4aAMaoAoRPG5pzz7kk1E2GGa43SFgFtjFDVWxgVlnXBx9MJeL8yXlS2uAXrD
  CiPtwKK80+DvDmkRHEL1aLeT1TgqFm8844VUZI/9MYVkUoiKDgHGFlSkQzRf
  U1uHbkEFLiyMkJwJB1hEZq3IUaqQvcrjbS4FyQgFbmiV5M22IpRJS+SQRV4D
  kzygFKYZBVFLcfIWYPJYKI+kklKvGMeYBJe3jsVtKIqBomkclUpZaRBTobSj
  bWT5OrV8q2dRvCRfdImpV+6mKO0C5izEk8Ln5BBM5tBgFSeXzVJtU5e8dKQO
  p/nGK8KHJ7TI497aqSlijpKZzGqI1aDUvWNKq1dDElExpfi/FjUHWuvrTEyW
  kL/UOPIhqnJCLK5JKuO9pCeqiMIqNspRKUChoyANqRGEEAQAOw==}

  set cardback(Flower) {
  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
  ADs=}

  set cardback(Traditional) {
  R0lGODlhRwBgAKEAAAAAAP///wAAgNvJySH5BAEAAAMALAAAAABHAGAAAAL+
  3ICpy+0PIzAn2Iuz3rz7H0wASJamiZzquqaXAMfyTNf2jdOYG+T+D/xdeDCW
  0Vi0EAW9oPNpaw5HlmKsypRqk9xsFwveepnkbIgqharX2vOLHP6K42O6fZ50
  g9d8Z3vZVDc3KFco+FU29RbY13jzh2Z1Zzh5aGmXB+i4GZUZWXZJGEop2gO5
  yJkqc7pX6VoKi2imqarKmkaaO7rb6olam3orGctL7Oq7B8wpDPqq63yZqPTJ
  qNzHbGqs/Yw3S229iX21XcwtiYwLfo0+bF7+nqyYrM4n7g6Nn2ZPz8YOR57v
  nr9q/PwMHHcPYClpetIVfCIuIDyABx9C2Scx48LdfRaDRFSY8FnFjh5HagwZ
  jSNJHx9Rnozm7ddKISZBTqTEkNZMlgdf+uwmz+HORzVd2uwVc95Qokn1HX0q
  K6iVpTgwQr1ZJ+c3qkyl/jMKNmvTqVxrWA3rU6vMsjNaYv0ZddpatleKvr1q
  aiTdumO/3kWLyytBumf/Gs7bdzBbt3AP692rdl7jtCr3MsZ79LFlu5MpVibc
  EzNazaATIzyc+fPi0IBHm4bMV/DpzgJVl73c+i3p1a9hR25zJDgJf751yH1T
  fNxx4cyN8GgOHUWF6NQ/TDAgIbv27dkNFAAAOw==
  }

  set cardback(Bubble) {
  R0lGODlhRwBgAPcAANnZ2QAAAIKVs3uNqXSFoHCAmWx8lWp5kWh2jqi2xJmt
  wYibuoGVsn2PrHqLp3eJpHWGoXOEnnGBnG9/mGJwhl1rgGFvhH2QrH6QrYCS
  r4SXtoeauYebuoaZuIWYtoSXtYGUsX+Sr3yOqneIo3KDnW59lmp6kmd2jWRz
  iWFvhllnfFhleVlme1tofVxqf25+l3iKpXGCm3GBm2t7k56qt5Knx4qdvYCT
  sHaHonSFn3GCnG+AmWZ1jF5sgXqMqH+RroSYtXuOqXmLpnODnmh3jmV0i19t
  hFhlemBthGl5kmh4kGVzinmKo5+0yJSqy5ClxoqevWh4j3iJpGx7lGNxh2Ny
  iJOoypGmx4+jxIufvnCAmm19loOWs15rgFtpfmd3jo6jw4OWtIWauI+kxY2i
  woicu4aZt3mMp3qMp19tglxpfpit0JClxYugwI2iwXKCnHaHoXuNqmNxiGZ1
  i2l5kKC325mv0pKnyIyhwYmdvHB/mY6hwHWGoqG53pmw04ecu3yNqn6Rq6zF
  7aO64Jyy1pasz46arNHs/rHL9KW945202Jet0JKoydzg5tnz/7XP+KjA55+2
  22p6kfP//8nl/7DK8piu0WV1jGBug42hwqKwxKrC6Zuy1XyNqWFwhp+20qS8
  4WFwhVpnfJ612ZarzVZidVdjeKfA5parzlJecVRfdFVidldkeFRhdFRfc1Nf
  cp+12lpne1VidVVhdkxXaE5Za09bblBcb1FdcFJdcE9abVNgc0VQYEdRYklU
  ZUpVZ0xYaU1YakJLWkBJWENNXEROXkhSYztEUjU9SVRgc67I8KvE61FecVBb
  bqa+5a3G7r3Y/bjT/JWrzMPf/P///6vD3+b7/11sgV9ug52011Zjd4mevU5a
  bFxofXOEnUlTZFdkd21+lpKnxGp5kml6kYWZuGt7lFxqfGBremRvfmRwgE1a
  a2x1gXN6h2t6jHiAjXuDkI2gtFNgdJWqxqq60GJvhWJwhXuOqoaQoZmquv//
  /////////////////////yH5BAEAAAAALAAAAABHAGAAAAj/AAEAABhA4ECC
  BQ0eRJhQ4cIAAAAACCBgAIECBg4gSKBgAYMGDh5AiCBhggEKFSpYuNCgQQMM
  GTRs4LChg4cPAkCEuCDCwQgCJAqUMHECRYoKKlawaOGiQoUXGAbAgBDjAIIA
  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
  gIAAOw==
  }

  set cardback(Purple) {
  R0lGODlhRwBgAPcAANnZ2QAAAIJDu4NEu4RFu4RHu4VIu4VIvIZKvIhMvYpP
  vopRvoxTvo5Vv45Wv49Yv5BZwJFawYtUvolQvIlPvIZLu4NIvYNGuoFDu39A
  u31Aun0+uXw9uXs8uXs6t3k4t3g2t3c2uHc0t3Yzt3c0uHYzuXc0unk1unk2
  uno3uns4unw6un0+u4A/u4BBu4NGvJFavpJbwI1VvopRvIdMu4JFvH9Cu34/
  uX9At3w7t3g1uX49u38/uoBAuYBCvIFEvIRHvIZJvIdMvYhNvpJbv5Jdvo1W
  vY1UvItSvIVKu39AuX09t3o5uXk3uH47un9AvIJDvYRFvYVJvpJcvY5XvIpR
  u4dOuoVKuYFEuoBCuYJDuXo3uXw8u349vIA/vYFCvolOv4xRvY5VvY1Wu4xT
  u4hNu4VJuYFEuX9CuX07vHw5u4pPvZBZvI9YvI5Wuo1Uu4tSu4NGuX4+vYBB
  vINIu3k4uXw5uYxTvHs7uno1uoZHuolOu49Yu4ZJu3s6uYdOvIVLvX0+vH09
  vHo4t4pPu4lQu3s6vIJFvn48uHw7uYBBvoA/t38+vn9CvIZGvIxUuotSv4pR
  uYJDv4RFv4RGwIVHv4ZIv4hLvodMv4ZLuIZHv4VIwIdJwIhKwIdLwIdMwIhN
  wItSwY5VuYNHvohLuYdLv4lOwIlNwopPwIFEvolPuYhMuYpQwYpQwotSwoxT
  wo1WwIRHuI1Uwo5VwZBXwI1Wvn9Avo5Vw41Wwo9YwZBZvoVJt4dMuY5Ww45W
  xI9YwpJbvJFavIJEuIVKv4dOv5BZwpJcwZRfwZRgwZZivZNevZFbwpNewpVg
  wpdjwJlmvoVKwJZhwZlmwZtpwJ1swJNewYlQwI9YxJViwolRwpJcwpRfwpdj
  woxTwJJbwo1VwIlQv3k4uotUwpZhwoxTuY9XuZBZupJbupJcu4xUuYtSuI5X
  wIdOuYxTt4lPt4FEt41WuZFcwnUzuHUztpFcwXc2t3s8uodOwHg1t///////
  /////////////////////yH5BAEAAAAALAAAAABHAGAAAAj/AAEAABhA4ECC
  BQ0eRJhQ4cIAAAAACCBgAIECBg4gQJAggQIFCxg0cPAAQoQIEB44aCCBwQQK
  FSxcwJAhgwYNGzZw4MChg4cPIEKIGEFixIgRJUqQMHECRQoVK1i0cCFgAIEA
  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
  gQQLGjyIMKHChQEAAAgIADs=
  }

  set cardback(Nostalgy) {
  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
  X2AgXHC92Ju92OsFUOAE3vu94Ou9QhAEADs=
  }

  set cardback(Tcl) {
  R0lGODlhRwBgAKUAAAAAAK2hk8yZZsxmZsxmM8wzAMyZAMxmAP/MAP+ZAP//
  AP+ZZv/MzP///8z//5mZzGaZzMzMzAAzmTMzmWZmzGYzZv//zDNmzDMzZpkz
  AJnMzGYzM5kzM//Mmf+ZmTNmmcwzM8yZmZmZmZlmZplmmZkzZszM/2ZmmZlm
  M8yZzK2hk62hk62hk62hk62hk62hk62hk62hk62hk62hk62hk62hk62hk62h
  k62hk62hk62hk62hk62hk62hk62hk62hkyH5BAEAAD8ALAAAAABHAGAAAAb+
  wN8PQCwaj8ikcslsAoTDgHRKrVqv2Kx2G3gCuOCwWEwcm8/nMnrNxqrb8PY7
  TjfP63juPc+/7vuAUn91AgIDBIh9g1eFh4gEBZGSk5STAniLVQKVkgYHnQif
  nJIEho+QkwNgmVSbnAkIkgcKCAajt5WXel9gC6MKogUKCbjFkwurvGC/krDG
  zwVhrFSjsZHAt6jQ0spco8QFBuCVBAwNDQPbyWKjoqGcAw0ODxAR6rvsnO7w
  DQ8S/xPSGeOWb5Q4cg0o/FtY4RnBMLgSBJNk4cLCfxjubZk2BZe1SQwgXPyX
  4VYwAg+X3foYiYCGkRI2UIIlylkBlOsgtmNZgAH+zIyUZtm6FonDPwgbu20x
  Oe6myJElg2KLZG3DP3w69Q2N1AGmzAIDPMhSIEuUVQlYVeqb+HIkhwoQNDRA
  ZYBnpApXkxasdOCkQpgLI7h6Vwnvh7RcQDwT8AEwRgaDR2GQQAHxFm24Qjj+
  V2FugQNNJ03OCQbzLRGbJYxoECn0pAloLWsxPYpEagEMIm2tlFdvGNqcRmzG
  wADSRN6xfZd+VuIibIa5i2WQcFh2FoHFjGJsvDAEcEpGkVrH4ir7QuEXy+My
  mpKLeniRMKJmCI09aS6+cHlgoH2DP4zQFGBVe1u8V4kHJjzFwX8ScBBgBRMQ
  qIWBlHjA4IIMRSCWMRX+XCDhdcV48JQEBDAowQPY4YKBeONdkSInC/wV0IgS
  RPAdJRWQoZQWIxQjwAkYCUCjBdDk+CEWKBQzgG0SYBDCXxJMEB2HOoqRJC4E
  zFfBkwsRB80IVYbhYDGaSVBBBxZxNqWSYYIxZmb/bBBBmjF1AI0qR17x5i0C
  xDnnQhxsaAxO922x5ygCTCYnnSBQyAmhLVpx6KOTVfDnP44+2iYXURUDpKVp
  VnAjOZtqAUGnuAhXQQp/cYBbgKVmQUF9TXKZEQlrFhMrFh9AM52TNNqpkXJb
  SDAoAwNEGcKIEwg6UJ5VGGsMA38NwOAJL+Ky6xXSKpnmCAyKEGA00FIxATT+
  ZXIQQXfjbmvFudCgJuc/J4xaibtUQAAvNCdU4BOJ45JbKBYXABXgBh5MYDCs
  5UqhcMAFGAKxwJFO0eQzYZGSqbYNB3BxJCB8R4CgIDgbIDIDc2uwAMIWEDIp
  zpoMjS4VS2EmzC2JJezIk8i8WMMiNZRzJIVMwrMkAtgLT8MKfXXThjyjcnRL
  G48CqRbTNOZ0AQug4gjVFUJ8dRbTxDkxWGI3bPbZaaccbUyjcCD3BhVgYLfd
  FeS9wd5y9933KGqbSbfdz6VmuGMsBn744ocn7vYUNDIuOUyOV0wnZQtNMGJj
  H3CH+T8UcPcBlKFflMaOVXh+gQZPPfDBfxDE9d+LBQxGAPuID7TVG74eL0T7
  Qhp8oPs8T10wogNPxb5Q7qbbgToVznn+gb4Lhf6c5r7/Nf1CEHieHO+Thw/Y
  6XVAULr4C5EfSAAQXOB9auqvb4X5FxSevvPyi2F+/PkDwlH/a/gfAPk3QEw8
  r4ByOCACA6jABRLQgQmEYB28IEE4PEEITsigBjeYQSEEAQA7}

  set cardback(_Spider) {
  R0lGODlhRwBgAOf/AAADAAcKBgwHChAPEw8RDRQPDRgQFRgUExYVGRUXFBQY
  GxgcHiQZGhscJBseGx4dICIbICIeHSIiICIiJR4lIRomJxgoIigkHisiJCYn
  JScnKzIkISYrIysvLTksLTouKkYpJkgnLD8uJEYrL0QtLTczMjsxOTE4Nkkw
  Kyw+M1QvKTc9N1E0NTs9QU83NVc2KVY2LkU9RUY/Okw9OU09PzdJQ0ZCQVs9
  PFVDP0pIRlZCSkVMRXA8NklMUEdSU1pLR0xRU1ZPSZA2PEpVVk9TVlFTUWlK
  SWtIUFBVV2JPR4dAO1JWWFxSVVVWVHhGS1BZVIZBQ1NXWk9aW1pWVVdYVlVZ
  W1lXW5Y+O6k2NZBBR2pTUldbXVlbWaM9N19aWaA8SV1bX1tdWrY1PG1YUGVc
  Ub00OV1fXGJdXHJXUXVTYJ1DSaw9QYhOU9gpQF9hXsswP2RfXoZRTsY0PHlX
  U5ZLRqlCRGleX2ZhYJVNTtEzPINXUZBSS2djYe8mNoFYVuwnO51MT21hYn9b
  Up5ORWJmaPUjP3peU2tkXopYTsM+ROExOG9jZOYtROguOnJkYHBlZegvQPAs
  PuIzP6tNTPErRG9oYXRmYnhkYrtJR5JbV3doXrZMSXZoY7NMWMJIR+Y3QXdp
  ZG9san1nX7NQSYJlX+U3SLdOT3xoZd47TOE9QKpWUMlISYBpYYhlYZJhXOI9
  Rn5qZ4RoYo9kXbRUUaJcWLFVVoZpY5JlWd5CRt1CS4xoXs1JU51iVYdrZdpH
  RYxpZZBnZdpHS6FhXItsYXN0eJ1kXNlIUo1tXMRSV5BrYtdMS3h1c9ZMUYtu
  aJZqY8tSVJ5mZNNQS5BtaZJtZJxpX89TSptpZNZRR55qWrldV9NRUZVuX5ls
  X5hsZc9UUX14d5VvZp9rYaNpYaVpXMdaUMtYUcRaWspYVphubKhoYqpoXaxo
  WMdbVsReULdiX8NeVqVrY69nXrNlX7VlWrljWrhmU71kUb9hXLJoWsNfXLxk
  VsBiVrxlXJiam+no6f///yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQB
  CgD/ACwAAAAARwBgAAAI/gD//VsCZIhBHwgPAlnIsKHDhxAjSnSIkKEVgQN9
  PGmysUmRjx+JiBxJsqTJkUiQACGyhODJlyQ/qiSy8J+bIkB8EEGypIqVJUis
  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}

  set cardback(_Web) {
  R0lGODlhRwBgAOf/AAADAAYCCAkCAAAFCgcKBhUOBRoMCg8RDhQPDhUPGSYL
  CS4NDhcYFx0YEiEXFToOFCUbER0eHC0ZESsbGSQlIyokHTIiFCUlKisjJS8j
  GzgjDjwgIDwjFzQlJzclH0IjFyssKjgqGj0oGjYqIzMsIzgvMjowKTIzMUIu
  IUMxFUEyG0IvKUEyI0gxHEwwHTc4NkE3KEE3L2glLE80J009Hz9APXQnNEo9
  NE0+KUw+MFg6J1E9M04/PFY/K0ZIRUpGRlVFMVFGOV9DOYwvNpYsP15JQltM
  Pk5QTVhMSmhKKllNQ2RLN2JRO3RMOl5VSFZXVGBTT29RQWRVSm5WR2VZV3tV
  NGNcUHRYPF1eW29bPGxaUWxcS3FcRIZaK2VmY3JkVG9lWnJnS8BAWXZpX2xt
  a4FsSohrQo5oQoprSX5vXIJxVotuWHxzZ3R1c3x8eYZ5bop6ZIh8a5J4Z595
  RqN4UJd/VZx8WJR+ZISGg46DeJKDb5qCYq2ESYeNkoyOi56Ld6yLW7CIYaqJ
  bJyMhMWAV6qMZZeQhbmIV7yIT7CNV7+JR7mOUaaScKaSdpWXlKOWgrOUjqic
  jJ2fnLKceq6fhrudddCYXbWfh8Odbb6dfsqcac2abtCaac2eYsegaqWnpLSk
  lMuiYsSlZrSsnMiqf66vrNanc7usp9CqecStkcKumM+sh8ivjdWtdtWqh9er
  gtmrfdCwfdSufdKug9GxeMSwoc6xhbW3tMK1pdu1hsi6qNS6iM66pL7Avc+/
  odO/m927nM2/s9i/o9zBn9/Cmt7DocfIxdzFnOXBm9XFtOPEluTCouLCqNnG
  rt/Jl9rIqt/Gqd3IpOHGpOTHn+TJp+LLtNDSzt3QvdvQw+HRueTPvunQs+fQ
  uuXTtOfVtuXVvPLQtOrTvO3Ttu/RverVxNna2OXYxenZwO7XwPHXuu/dvfLc
  yO3gy/jbzOHj4O7j1urr6PPr3fDz7/vy5Pfy8/zz7PX38//56vn7+P778vn+
  ///8+/z++//8//7//P///yH5BAEKAP8ALAAAAABHAGAAAAj+AP/9c0GwoMGD
  CBMqXMiwoQuBA2cgOoQoERARVQJlQQFoE6aPM6RkWjVrFqlVJF9lyiFF1bNf
  wphBEyZsZk1hlExgqEXum8+fQH2GC+fz2rsZDwkqQsRUUSIuH5oASYKqkyZM
  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}

  set cardback(_Wrist) {
  R0lGODlhRwBgAOf/AAoICDYPBhobHyIZFTMVBUUPCUsNBj4UBkUVA1ISAyYl
  H00bAyopOVMcFE4gEE0iGFwbFmAdCDgsLFgiDGYeAJUFB0QqJEsqF1AqDUAw
  JDc4N2ErFG0qCnMpD2cwEG4sF3grBHIuBTw/Qz8/PGM4BmwzDUU9RWM1JmA5
  GlVBD0s+PHA2Bk1AM2w1HVs8LFg/J0NFSXA0LEVGQrAYFcgVEUtMSog5C21B
  MXs+IU9OR4E/EWxMCt8RDYdBCU1RVXlIEIRCH1tOT21NJWxKOVNQX19PRVNU
  UZBEBHtIKoVHKfwQE1lbWntROpVQDH1SRWZeVmldX2FiX19iZXNcU6FSEJJU
  NJlUJI9eC5ZULqdUBvArHrlCRvQtFmdnZZRcJ7hPD2Zoa0xxgpNdOKBdFaJg
  AKNeCZJfM+0zLG9qYbBbA5JfQo1gTodkSY1kQXlpYb1cCLhfBoFqYrFlC7Fn
  GuVHO6xtGKJrRbBpLbJwBatpS4Z4a59wX5F2aaZwUap7EKR1QXCDhYZ7dn58
  iK51NGGKmbJyQ/VUNb92E8B0J5d6fNF5CcqABN5nWfpcSbN9Z8B5XbZ/Xp+I
  e8qJAvBnVK6Dc8SFLsiCQ8mBTMKKRMSPJvduTcOJTsOQOcqZAcaLWvVzbLOV
  gsORb8yNbG2vwK+Yi8WQer6Ue76TheSVFNKZMtqbEvKCW8mePtGaP62dm/SF
  aO6OfOKcVs6oV72ml9+ebc2iifWmB9ihdtakbNahf/CrCOixBM6jmNijjMyo
  l/6zAPCwN/megtKum+WugtKxqOGundezoOaxi5HN3eGylLm/vqzEz9u3pdu3
  rN64oPmtneO3pd+6qNe/p+y9g/HBYO6/kOS/rODBtPG7ru2/qejCqfi3u+vA
  sPi9oPHCmejDsfLBo+6+vu3FpfjIe/28uOzHtPrCr/nCu/PHt/DKsfbIsvDL
  uPzFuPjOo//HverQ0ffPtv7Lvf3Nt/rQsvbQvvvRrPzPvvrSufrQxfXVuP/R
  uvPWwvzUu/vVw+rl4/jOuCH5BAEKAP8ALAAAAABHAGAAAAj+AP/9O0SwoMGD
  CBMqXMiw4SGBAxFdSWMJEytOsbxMKBChx5he+Ojps2ePHj1w9fJlE2WJVjZ+
  /fCZm0YN2C9bv27e1PWL566eqhaRqVOmTA8dNmwcqePnCglED6GSGIOnUitW
  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
  A/sP6aOTPrrpQ/B4OmqnlYZqaqsrwrqiogMCADs=}


  set cardback(_Drop) {
  R0lGODlhRwBgAOf/ACU9IUcvFUczDEg3IzFHK1k7J2E/E1dHOUBTO19ETGdH
  KGtLN0hdQEddRU1bRXZKNXNRI1FkR3hMYlFlTntbFlZlTn1UTXdbP1drTWRi
  ZldsVH5YW21ddnZdX4pZQ4plF4FcaJpbM3loSGBzVWNyW5FjNF91XI9jQItd
  dG9tcZFgXW1pkY9oPYBxPmh5Z2h7XXJuimh+ZYZtcm59ZqFvLYpyZJduW26C
  ZJBwa22DanZ+bZ1uc417WnF9oatxR7F2IXKIb3mCfXWJanJ+sKl8J557TXmI
  cHmHdol7jpl1g4OBf4h/hY+Ba7x1M4GBlqh/OXeNdJZ7gI2HZ6R9cYGQeJqD
  en2TeYeNg7eHJYiQeYaRgJmKeKCDjpGSaISVg7yDT4OZf4iXf5mOgseEPJCM
  qaWLfoyXh5OTisqLN5qdYqeUcLGQbMCQRKCViY+gh6CbdaCbe5Cij5WgjqGc
  hauafZSilqqah6Cbop6embmdWJuhl6OfkaWdl9CcK6mjfbCfgtKcPKmnc6+a
  qamll92fL62mkK+kl6uko5uumrKkkaypiLugkp+soLilgq2kqqKtm+WgLaep
  pqWso7WirbGnoamprayroselrKy0qrmzjLevqLets62ytLesv6m5oKu1sLOx
  tay4prexsLyxpL6zlLWytrq0oLC1uLO1srazuLiyvcOzmrm2p7e2rbe0ucav
  rK68sLO4urO6sLi2ury1wbq4vMK0wbu5vbLAtLXArrbAu767wMq7o7y+u7rA
  tsPBprvAw8jApse/uMu/rsLAxMbCscy9vr7GtcXCx7vJvcDHvL7Iw82/zcHG
  ysTGw9HBvMjGysXMwczKzsrMyc/MxNnLu9LPu8rP0c/N0dvLxszUyc/Sz9rS
  t9TR1dTWzNTX09jV2tvW1ODT2tTZ3Njb2ODaytzZ3trf4t/d4d3g3Obc4+Lf
  5N7k5uTi5uPl4ubj6OXm2+Hm6evh6ufk6erk4+Tl7+7k2tzo9uLo6ujl6uXm
  8Onm6+bp5ePq7uvo7f///yH5BAEKAP8ALAAAAABHAGAAAAj+AP/9A0CwoMGD
  CBMqXMiwIQCBAwHkezevosWLGCu2m7fvHbp2+dq9o0hx30SK+dbt27cx30SO
  JzNmzDePYER6OHPq3IlzXst3ItGZcznP3zyeOMMhzal06c6iBcH5w4ePXbyr
  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
  Ow==}
}

image create photo ::img::logo -data {
  R0lGODlhOABCAOcAAP////z8/Lu7u4iIiGRkZK6ursHBwYODg8vLy4CAgMLC
  wu7u7pmZmf7+/uvr683NzZqamv39/tPT019fX97e3r29vfLy8rOzs/n5+c/P
  z4aGht3d3fr6+sXFxYqKiuDg4KysrHJycqenp/Dw8ZCQkMjIyPb29ltbW9DQ
  0KmoqDAwMCYmJnx8fJycnJaYmC4uLgAAAEVFReXl5bW1tY+Pj0tLS7CxsXR0
  dJ6enlhYWHFxcB8fH+Pj411dXTIyMm5ublZWVr29vzk5OT09PczMyz4+PgcH
  B2trayQkJNjZ2Ts7O+jp6Xl5edbX135+fkxMTIyMjP7//7m6w+bn57+/vyIi
  IuTj45OTkFhDAqqnoGZmZpWVlff4+aOjo008AtLU3Hp6eqmqqlhYW398ctXU
  1Onr9VRHF417Me/x+ZaVkjQpA5OTkz0xBYaAZ2xsbGNeTpuDKPLz96qqqrmr
  nZaWlsfHx6GhoV5cWSUZABANAWRlZ5CQkvX19bi4uPn//42WlpyUlOr8/JaE
  hIsAAMkAAIQoKJKRkRobG9vm5pEaGv8AAPkAAH88PM/Z2YF3d8DMzGFhYVFR
  UbO/v7IAAGscHKICAnMXF8jS0qSkpPAAANwAAFg4OP3//ywsLJN3dxkYGOzs
  7F8aGmI3N1hFRf0AAGUAAHwBAcRZWfL4+JmennF6ernOzikpKXV1c6Odg+Dh
  5fDy+T89NqaQNePn+MfFuY+Jb2hoaB0dHeXl5uPm8pOOfbi5uujp5m5YBdey
  CPvGAK+JAmprcfP1/aGhpqukfMiYAI93GYxvBZaJU4WDeKSkpp6iozU1NW1s
  aPX17uXn7nd3dwsKBGBYOkU8GMjIw+jr+Tc4OH6EhJyfnzk9PZqZkq2xwfn6
  /+Pq6nZVVcO9vbOoqLaHh2clJXZgYFVVVfDy/J+emkYPD/D09D9FRQ8FBXB0
  dOjs7O/09DonJ2VsbNrc6aSii9a7N/b6+nUlJaKnp3dzY+jn5+7t7VJSUmJi
  YkdHR05OTgkJCYWFhf///yH5BAEKAP8ALAAAAAA4AEIAAAj+AP8JHEiwoMF/
  BgQMeFDgoMOHECMSNHAAQQIFDxggkMix48EHDyAYAEASgIQJHlNypFABQcmX
  AC5UUEnzYAYNG2DCFFCz578OHj7o1AkihE+VDEQMXUpCwtGOJR4sFbD0BIqn
  Eg2kWKpixYAEYFm0APBgAFaJLkbqfAGjrVsYMQA0PBsRggyYM97q7QCABt2I
  NRy8tKH3LdUbOP4+zMHipY7CbXfwAPABpWKHPTSU9AFZcskKPy47BBKEpJDO
  k0sOESH6YJGcBdwaOYIkcpLPBFofVLIEABEmLJoAcOL2yUsoBuhKmQKRhk4e
  VWAguV3SigqnT69gyQJRS2OYErb+DB3QBasUL1i+QDyhZalOMGHOisEyJmKC
  9u5JzthCt4yZMxJpgR9JG3hAw4Fb3FAEAjJ8cFYaanA0IAA3bEDBhRsssYUT
  CWpBQwYZHMVGGxK5gd8FOuTHwwcfxOcEETW9AQdHR8gBAAnU5VdSAS3UdN4c
  HB1AAB06wlSHHT3dgUdHTJBR5HEh1kREHnpIhIJ4T5LUwRpH7YGERD70QdIf
  gASi4xEzHbVDRAUoQZIggxBSiJNLGbLmU4f0AJEOFwCASCKKKLIII4E04sgj
  MEEyA1ZQRPIQCjmQJMkkgSpCCSOVEGLJJSV50ONZA8jgECY2SEppoJNkEqgm
  mxDoxF/+JThoEAInlDRppbgqUghJPuhWUCdO2Hpqrpp4AoAAkPg6UBifgFIS
  IqHkqogmolD2qbL/eCDcS6NoUikplYgSiBVAYDtQnzBJUkomg5hyCqcA0GGu
  QDPUMVQqnqiySkkGsDLvP+gWuUSvNLXiygBmeRSwjgkkS1MsWHghyxh6yIEw
  RBc496RRPQ1ASy062PLJLVU4ccEFDkExwBa45IdJRwjrsgtECA9QARQnJ1zQ
  Gra4wcBdeJUnUQK9+PILMGoEs5FEOh/EAx22HJGBFSQ9kNhDwxAjCzDFAGPM
  Mcgko8xlIhwRQghMOLTMGLKw0YsXb+gSxCy5KMtiQVYwwMz+J4c048o/uTzz
  70EO0KBDmoMnrrjiA+hQwuISQYPEDYhD7hAEnURDy18sds6ihReGzmLoGRY0
  gC7STFPLWUuwmIo1n4BBhwvLtLAGCYb8cQ02B2KSTTYFgFKQNm4bk8w2Pp3Q
  jSPefNMbAEkIAk5J4YgzPQDgbDLOBOT8XJA5vQADdk0ISHIOIaaMQlI6g1Si
  zjoAPJIpJewA4I4ppbxjEhR1mB6PPMdQCQSEcglGiAIRJUkBPQSRI3BcjyT1
  oBNJnFCExxFkAPZIg0dYoIApbOAeiGjEFD5AgQ8koREkgYIbbpCAa9zAA1vA
  gQ3CEIZ8rOAFLyjCE47iAn2koAX5QMSBHYAIRDvQATiQyAEQavCEfeCgBCGo
  QST4oYMDJEAD5OiH0GpCgxrIwQ5gtAMICkDGAszAAz5QwhCEYIALkFEELbBF
  DyaQAzmQIQMdIIIykNQTCGDCABUIZAUmsI8n8GOKkLCiAQzggS5gogAX2MIQ
  ikBJZqiAFUy4QAwY4BMoDMEGylBGF+zgjwQcABo5qMENSrDIVtpBivnQAljA
  4g8N4AAE+bhaTQyxAg+ApQWOVAYIGiaAAoQRjF0QSQ8W2YFF1mGRCchBP67i
  EyHUgIkgAGQFFACBCTgBDDEkYgtaSU5yggUrLQjjFtbAzi3U7J3wjKc8ORIQ
  ADs=}

# these card images are 2d=two diamonds , ....

image create photo ::img::2d -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbXAMPsTLtCjNP6acuWvwt6bBmg8JghvozIpvLGbCKVseNAmhwtr8Iq
  1tLzRU84Lja8pJXHwXB5tvY6tdA3K87WPXd4+XGv1ufXRvfDJyhFNLjSd0ZnB4fn+LOmE/flcm
  mZg6mluWk2SbkI93WhmGdaU3ijKuqqCgj7xzo7Z2sqi6tXu0vom9gLvDo8JVzccozMo7xcoutM
  Ah39MU3dYX29ka2d1Z38rcIdHtJMjjEenv693t2u/X4dTz0fXe98v5yPvF/cP/wPWEBfA3cVxH
  XQVsJZC2E1dPUwlrluocqd2+BnYcVAbnISklKh6SCkSHYKfrpTyaKURhyBDGTJEd1EMogseUMi
  6OOMgDmDYYEJMqXKJkBpQjIplJEZlzOV6iQhhqmqp0ZlutpI8ubFURoigtrWFBkbr4HSgAlb7B
  PZlqHW+txarQJcDhMMSLiLN+9dAwUAADs=}
image create photo ::img::2h -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbXAMPsTLtCjNP6acuWvwt6bBmg8JghvozIpvLGbCKVMV3uV52OlgMr
  rvvtHnu+KCgMDo+30OUKDV9zryc4Wo79vu164dPLlxX0B8inJRVoNkOWJrZn57SVQ6cCGZmnNn
  Mn5WKpSXkItUkjyMk2aiWFQdSneolR6ooHK6tKWPuKW3ur68fWa/sLnDtMXDx7jJw8KLysw+vM
  0xzNAk1NYn39ka3dwd298Q2eND0OIm5ugZ6+bt4+/g4e3z2vXX99T50fve/cv/wvWcBjA4sVHH
  YQWMJeC3U1xPVwV7l03iZSdHQhYpBYfhoLYWyIkcWohbHqxAlhcUerSicPojJhqaAnmFWuDAz0
  SFTGlI8MKduYKNSRRCUX8TRJFCmdf0QVcRh5lGZSmm7URS1x5+WHMkACqsmUc6cqOqCkkqO4oW
  THTyGtoi3S1u3bqm3kzhW19Cq1lWtN3T1X4S+HCQYkGD6M2LCBAgA7}
image create photo ::img::2c -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbXwsayGzLyfdL6iPcfnQH6hhihJUFMFnlLpjIpRPakz1rTB6vueEaU
  7bl7OVUNLbMcQyu3ilsWPJ6mkNRhdyaBxuslCd899tbnF4cX1JZDSBSFmEhX8wcoBmnleHR0Zw
  jpkJYph/nAIqgHyln1CRpCeYp6xWq35/maOPsqWyuJa6a7y7tW6JsbDDu8CFzccoxMu4xz2/yj
  DA3yPM1Rba2Bnb3EnexNJg1+OO5VPnhOsg2+7t3O/Z4dbz0/XQ9935y/vI/cX/xvWMBgA30V5H
  VQV0I9sdKJaXjuEZWFziBgOjVqUKhKambEXbPIERaXVLTonPHoRWKjlIyM+QnH5x8hlA9biswD
  UxtNdTiJMaQUSdivoBobHVST7M3RL6JOToKT0dyqkAz31VlI1FI3h1OfpotEEQuwsK3COFRDVs
  7VnezYuqvAdcMEAzPr2r07twAAOw==}
image create photo ::img::2s -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbXwsayGzLyfdL6iPcfnQH6hhihJUFMFnlLpjIpRPqcT6C0d60ypcac
  4nncimc27avccpjDsPRD2SVHoFScpH6Ls+76tAZPwge4R5WFwkdk9aViM4KGJdbm5cKzOESpJg
  cWxvbIaAlXmbkJeRZSQ3pZ2Jf6GcTaehhLCjsbU2vrlxu6y9ubOPirK1xKXGycF4wcqLz80+zc
  gRv9B01dfT2cXTK9jerNbQ3evU2ebX6NTq0eze7svgyPLG9MT2wvjP+r38u/658LoC2BswjGMg
  hsFbhqChdycjTG4ZtvWgxNKkPQ4sU2YPoWiTLXwJSqLxBBhcuCTxChhlMQ7cE2UgIwOnNmJoRA
  J9TET5L87eRpCWDIWxEp6nSHqWjFkUtSiXvGUqIRhJDwULUD6GoykUbHodGaDOXTcmPPVXAojY
  KgtWzbTgBQAAA7}
image create photo ::img::3d -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbWAMcDS9OuIMf1ft7wO+MJQbfLb4jsFHHBpDNTzD2noZFRymtSl9fs
  cWvVfFnYqa85VuXSyHNZvWYLo7JaXM7jeu/aod7Op5O01LcSWJgXxoR4wmcW9mZ49wgUCWfpZx
  W3hzenuSYkCHYlmkV1Qcd4ukO4Sunq+gfbpjj7JGubmDu6e1vb6wnshCusQlyM8ovMcrxMpOzc
  Ax1d0mwXOx3aGUyFmdkN+urk6DtFPpxNFliedLjdki55Tms+yT5ujw7urbv/XmNNnSpupwYSpA
  YPoY14CjcEbIiKIUQMDydWhHixYUaFhxsRdqT2MVpIZyN39SlpqxRKDgZNlFkp5h+ITVUK1tlB
  EyapmzRySmyUT+AXnYvCAdKi85Apij9JuGsp7YlSfVKDXhpDdB7Ql01dGpXUxQLRSjI74BlbyQ
  sHtC+08aw5MabKrsvSsMWn4S6SI0PpAqMJN+5OUXqxCa5W4bCHCQYkOH4M2bGBAgA7}
image create photo ::img::3h -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbWAMcDS9OuIMf1ft7wO+MJQbfLb4jsFHHBpDNTzD2noZFRypJdj8jl
  NSvNNYVe4Eo8Q3etzK8KDV9vtW+4WD4fm+z3YbnGh0XGhhTINfhkqLfj86MDZufkokV3FidpFU
  mj9jR5uVmJCcQJeCg6GgpIZRGVusqz9PiKh7E4y0h4O/Wn65fbm8QLjDu8+1sMe4xcI7ys0uyM
  ohz9PE0tfZ2cTZwo68qddNfn66RGqh2uaMsCfaK+3mJtqUg79F5vbxgsP8+3PxXoVLdz5KgQLG
  jwG6JXsjrx4wFv4TZ2DyduaGdRA8aMmRg2cmRV8SNIkdhIkvD4ESVHlRlZWnS5bBHMYg2rmKwV
  aiaJiDvH6fxQ092lnx0E1eFEdMPBnkhDCl0KVAedpDg1PWXShCoqqxIL6cMHUR3YHfeeHtJatg
  QptGL3NOHCNsy4nhy0YpVqlO5Fp2q9BQUx127ChoJXmSoMUCZfZ0fgLka29jFNn5InIu4l4qaH
  CQYkeP4M2rOBAgA7}
image create photo ::img::3c -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqZWw8axGzLyfdIujfce/xr5hh0gkIgMYhbJZm3JvCWcys0xp6BenzNb
  UyfksmDfMHnsTfKiMrY6PJzKt214T2LHHacqPL1l50bil1eXIQhCSGSU1Zc1gihlBpnyZ7UTVC
  iZ6dCl6bMDgcZXxnlGZZgZUvOJipJH6qoHaylbUmubmlu6y9uLhPuLJQzcSux4HGecfLvMnOj8
  /BMtzRE8inrtGFvsdLpIjRV5F/46PqvV6KtM2f5WHNHNLgEOjlc/H68MX8mqDf1GiMB/ANOVG+
  ZN3btqXRg2dAgIYkSJCCk2s/gK40WNhQU5TvP4gSAxbmI4khS5Sw6rCyht6WsZUqG5TiUDeqIJ
  85JAVcPmsDw4TeW5IjJzQrknjpE9ekkDAbXmBxAtfg/k2VtJEl3CrE2hbJXZFMxXroMm/Rzbco
  tRqGTLQs2WM01NjG7W5lIKcq5dV6HOejyz16C6wMII/xKR1woFQowbO54AoAAAOw==}
image create photo ::img::3s -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqZWw8axGzLyfdIujfce/xr5hh0gkIgMYhbJZm3JxAmdz81RlaBWNVeU
  gqqbdkmwZjjacpintSwrkhy/JUh5Gk605yR6L3fGxyYl6IYVmMeG5vU1YjN09mW4E9Tn1+YIKF
  gn9CCjuEmJqXUTFrI1SkpYiQpitMr6own7KDvb82pbgpvbWssL+IsYTDvss1vM5Yusq7zc6+zZ
  LDV6zCwdDRa55lQWdy0pSrzZCYqIJ057bvxNdoh+675uTvc+yHhZbcXePnlZzp3vGcBC3qABM5
  gGYUKFexg2dMgMYkSJAinGsvgh4DKNfLMInqLokSOqFI3E7PtFTqQ+j3vKqFyZyuXJjG44seyF
  5qWNktoW8dAZr2UGoHxmJJunbtA4CP/WJVW6tBu4RDNxhvNZ6CWUTw+3aN0asMvXrVCPaqk6VN
  HYNQTXAkyLUQlcjDtM0sXkFmmpuBzyshLBlwuFQIQLG15goAAAOw==}
image create photo ::img::4d -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbaMLDy7GJwPOdnbd24DvzwfL+gUVO7CWDHZsalXBadRygxypnKtKiR
  9MrtMXNYFe8yzvpmRNZZ3AGz5GavrYwGh+P6+gsvRmeit8fx5kGYBpJYiGS3yNgYmNiVUcg4SF
  mZd9l3Qug3uQf66bkp+Ne2glpipaoGmBkL4rqGqDiHu/mluyFJ8mv4OEsFdBZc3PKYzHzI7OT8
  XLUsDU1dPY2dHK2dw90t8w2uPN4kXr6LrnOuTnvdHgpP8y7fSl/vjh9+r9/B3o/hH0ALAgcWBH
  iwX0J9C/E1rPdQXkR4E9tVVHcRXcZyphvHdQT3sVtIbSOxlax2UlrKZyub8QM4pWWQMg2RIQJm
  K8RLWDqIiRqT8NWqnL6uENxpyehQoUlVFSQlS2lRLE9NlYA6NSDSn0xvYX3xZGukX2PTQfrq1W
  q+UqzOSr2jq2rbD2h5OVpKNCqxXkHzsu2VZ8NCnzhHeao5M63Tre3GRJFJJgZVxuqEQmaD5/KW
  uJTR8e2sEDTDCgNJTDAgIbXq1akNFAAAOw==}
image create photo ::img::4h -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbaMLDy7GJwPOdnbd24DvzwfL+gUVO7CWDHZsalXBadRygxevFlsSBt
  jwuyXotXqfdTLpd428zYfOa83yT21z2md/J64QjPtMUXtzFItPZnw2VI+MIYGJaI9jjl+Ihoct
  nFiCI5aUiiWZeoBAbX95m386fVyKfyuvqFOtsYqiZ7ans6c9jCqioHKWOKWVtsE1TZqYhMlcPm
  /EzjuTRNZXeNXa3tlN1dxQ1u9D0OVG4OLZ6uzu697s6CHq8yT898fw6fb8xP7d8OoAx7AjkQLI
  hkH8INBxdeaOgwhMKIDydSlHhxVMZIvRv9dPQA0WHIhSMRlix4UmBKgCv9teT3Ml/MezPp1Yx3
  013Oa5V2PgPj04kvCymXrTAq6MxJabeQxio59Oiupxab7UpVjCqsYJm4JoVDtKquqFhxCTJTsS
  uoTWs1lhDlAa7HppziUupXNtaeu1+fWKSE9Nggqwnf8t0rd1hauqXMFkrjWHFYtY2vWmViVivl
  vnQ5C44StEkg0GLvYYYU+kjU1EYIsVYm+TUQyRg/GixNsoLtJxQk+P4N3LeBAgA7}
image create photo ::img::4c -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqaay8YsfCXyrdKhjfcgvfAJOzCbboh08Y5IodLh4cWkudGuQVRMtS1r
  hlljdIPVDdiCrZJPR65ZrHajvOHz1R6Vz9XXPsmYQvVDNxhRCLH31SZhx4gXpijoSBgpUaKzhu
  aYx3hJmKlpdEf5ojUCmgcJGIkW6mkF+4jx9MAhyDcTW1t6+ypbGgrV5OQl2ju8xYvctEi6LPP7
  fBMtnVz9TH1dpo2cze35Pewd/jFOnnU+ZJ4OzN6z7g4ZP+08D25vjd+ln8u/78+mHsA3AxMVHH
  Twj8CEmhiWW8gQ3jyJ8Si6s8gOYzqNpuc4kvMYDuQ3kdxIajOpbpFDP7MgXgzEEiW9XeZQ+aJk
  aAc0eL1yZlviSiGsoA1XNZxjTM+bpJL0RJvEyVIdTC6D5bS1aeqnqqMQZenUEifXrmmi7lLIB1
  BVtSzR5jp2qJ7ScWWRKg3WLg7cr3ePKnrb1+wZJjUDPzxGcyyrnXKFyfRBy2/CQEUUb5Tz+F3T
  lbcy4yBsmZ/nbhVWvqAwKbXq1RMAFAAAOw==}
image create photo ::img::4s -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqaay8YsfCXyrdKhjfcgvfAJOzCbboh08Y5IodLhGfWkM+mDyDzxWlRM
  1hKMhXPdWtnLqI5RZ8XmqoXGX1sznBSZlyTnt4TNlvfzt9fnx/fB95Vx1KdoaEc4yNiomGiJ17
  W24zaSFhXkuYkVWcdpBWbK4RaSukjp+nmIo1oYO3orgzt5utukS5Ui+tukU0tMW3aMDMzsnPrs
  /Bp9M00tBnldna2N3V3M/U0mPmRNnnnuY54Oyp7svg3fLF9FX28/jq+nb8vf788L4CWBAQmuCi
  dwHT+F+hjic2gPIj2J8ijCs+gOIzuNn+k4nvNIDqQ0YwgvkjQobIcZgnAg+hp0rGVJOjMPQpIZ
  CNWpTEpiURpjLo0oVlg69VJGVCVPSTaZuoK1VFBRp2DoFEIECmvBS1KzQgB09StMsehyNjArK5
  LVOGfZplUL1e0yr8uYuExKZq7dmmj40pwahqLfN3RZiUT2xMrgb8KKLO625jAxvJJ/qaoMzo/B
  dptXVejMiMKj0aRLTwBQAAA7}
image create photo ::img::5d -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbCAMcDS9euHNe6es/7zxu9fMAiqCczKjXI5PLpysBARF01uJl6clZt
  S+j1Zp0sHKt3EUtx1xK7fQSzOW81tY61mOn4Ux3uEUXyZ9dBCMgh+HFYqMGIyCSUtkVocngiyM
  X3pvKXN6Tp2Gc5WtIUurbXOZfHaUi2ooopJzsGOdgYlwZrCHQbKAn6NBwS/EI8rIicbLwM1eys
  pBxtNE0NZH29k61tA92tww3+NV79XU6O/iOuTsJutfxOgyp9vlNrPuy6JO9XWtSP1L58Si7VK8
  joIEJPCheyamiEIcSIDydSpAfQ3r1ctOs03ovnsd2HgCIjlfR2kgbJlBZWsnSZEuZJmSVpirTZ
  Dqc6neh4lvMZ7QrQZaFk/hqESxNMjP5uuXKJTyDHpyFT8XJT0SoXkhKxDtR6geu/O19TYQhoMO
  lYDEKrgqpEFq47t2/Lvuqqq2nWuFHrnqVb9+qitftW2uXbKAwRqIK95lIcFvCuo5QgNTLqa3Ai
  yeAKc+6saqgzL6KJLv6szTPLTWRKX3NNTcRqFBQk2L6N27aBAgA7}
image create photo ::img::5h -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbWAMcDS9OuIMf1ft4wD1T5ZsEiaCgzKjPI5HJ5y/ykuleV5MRdSVHM
  9JKbhbE5bfY4soKJ1nKYzXmbz57h2vuWe/J69Lr8x7e1IQjoFwg3V/hRSNfR1dE4qCH59QEZ2U
  i2WIIZpwkiiZJmVkrFZ8LZmZbkiHryOto2Rkmr0ier6DibCLt7GFvbe2vZQ4pLGDS8ijf5BNTl
  /MwDuTy943mtlK1dxN0NTQr+9D1eU27Ogp4uJM4etP7OLO/tTn9uf6+er9++lPULn5IxtuDxYy
  EHGbaDKypZa8GQmKh6RhwaiReq0sWIzxIFbePoS5XBfx4/PglG8WTBjdMMQQFJQ9rIaw/D9aMG
  8yYHjDqZ5OzpE+g+oRCJ+jOaCymXn0Z5EnUqFCq9XlLfDaqazmXVmiVq9pEqs2uxZrSguuy47J
  VThZt2qWWKMqPCVlUwimRUspmpEDkn4r1bpy+ov3kPyR38ye8lmBb3aCQLZ13jTIq/Mn5MGfGX
  L5IJrhRG1+VmNvE8B4Qs5uxYC3avnD7FxtUyrOMsK4XNmenN3Lc/XaANznZvXaR1RzUOVMTwRx
  QkOH8O3bmBAgA7}
image create photo ::img::5c -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqZWw8axGzLyfdI0zpf62AuCfgqhMUMsHo87TFOTuEVZzxeQs5gpVb9L
  1Zrl2sTe67cWzo3V5TR0jYL7rugz2O5xx8Wj6HSY4oeHRAcYYQixR1hYd9gh8ffRpAdpV8mIVU
  hZmcdJMrnVFtiI2Ec6V4ZWs/gCNgcEO+gU+5CJGXcLeAfzFqnmi9ootyRDFKJK3PMEnCzFyNys
  FT0tO12ca81Tnd2CzX39vbQdHkweNG4u6Z2uyI6D7r4B/5s8/2qvXj+sva6lp9yPyr53AQVCIy
  gukMKCnxg2dATQyKVzDtVBoijREz8mukX6hELIEZYrIfge6mv2L2I8ZytZtpT2UmBMmTPJ1GRz
  s11OXTsb9vT5c+SsoEJT9fSDbNVOR/ZSPlyWSKlBZ5iYOpxC61WrpKsEGb1nyukspJt8bZv4SO
  Opr6Wi2pIwFhQuuGkvjn3zy21dvfnoCQr4lyvPbgctWgo1j1deaIoTD+zktIsVgx+fMjaD2V/T
  ymyH+qPaKRPRxhXNrSlpOjNRz1KPni4djvTqtLOxVKjthMKl3bx7TwBQAAA7}
image create photo ::img::5s -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqYhw8ay28i2So/3jusuDwTlFMGiZkg0Kn8YJkd3g7akF+fR2qOifFBs
  NclahLnfTm0q7lnOV3bpoV6DM5EtfGuHkCRac/8psRf49tc26MdHeLTB5/WVKEhn1VgoBykklf
  aYEPIyxyg2AhNp+ZnE5djE2elZKVmq2RaV6oEUq7o6lnti+6k0Wybq+hv3SGzktHu8Q7vMPOxs
  0xw9A009dv07nV3MDbTtrRj+bT2OuVyOTaxcBJ7lzpuex84DL+hGjqzXLv9xWd+v1iGAQSgVDA
  joHzByCqUhBEVEmK9q/GiU4neMXj5ttBMJmnv2EWRIhyNJloxh76QclepYxnPZDeY5meJozrTp
  7yE3ZSnD8dRJLYWwMjjvpLwVT6NRhBrtIBoF7tRFTBZbSdK0DYbEprBEtUo2J2ujnA1/Emp4dW
  CVK2fVGqpD6t4+snNvUq379E5cufgE6sXFBN5fvhPZ2OtL+M+PxQGRzvND9AXKnsYgg5pRLycg
  nF27AA2K9fNOz5zZruRsWDS6UZJLW3bNqAJsOhQo2b6NewKAAgA7}
image create photo ::img::6d -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbYAA/sTLtWDNO6asf7f+rJgESQEFdMZo5IpVJ4yXWGQCpvdKNKN75f
  9xrVWl9NGm5Mgma5Z7Sp7fYwv2E4C75NY7P0evuOF7QHgtdHWBi3YfOBmHfYWLIokAh5UqlHRh
  m4UijoF9fJuRmJZcd2ZvbnOal66ihqaFTaelr1isl3m5HIObMY6wQkyRusI1lcfIzspLyc1OxM
  BB39M01tPHhdZK3Nwt0NBr6dLY5dLk1+7p2uHt5LRNzxrQGsUi/H7oGqs7/6RmsPoCxLowiaIm
  VQIIlQCEtccogIRb5dDx9FxLXw4j+GzwM3KrTYD2PGgwlDdvR4j9FHeRM5mISlCx+geCPXzaDp
  0FfLdid52vSpE2hQoS12EtUw7+iFpEpDGG1qgalSqUepErUqFGu5MVrB0cGKcyHIpU8phtUXk9
  U+qi8D1jMllaTbMmabMOWIkm6mLXcL5n2bJ2lFkCu5Pm10FjFOwRoh4pX5N+0Uv7ms9JXrWODB
  uCsJu9nCt+ynHW1ZhSE705am01FFvyjCCzSVrtQ2u97aj7bX2bfVfdEdLSRwZ3qHlzMuTgRUIx
  QkOH8O3bmBAgA7}
image create photo ::img::6h -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbYAA/sTLtWDNO6asf7f+rJgESQEFdMZo5IpVJ4yWWaAiqIajWObsNq
  l4vEST9iWRm19Ua/ZfPZ0/aKS1Duqx2H49/a9dy/56MXKNgH+CVHiKihWPhhQ9a4OCVJl3alSN
  KIZrKJScgJJscY2FkaGuYIxleyx7PlSvqnkhcEi8cxu6KLips7NqMamig8BTRpeVfstAM5yvx0
  eQPt5EzNbH0drX2dzU3k/f0TLq5DXj5zjt4ivd7c7l4DH8+iTk9if/84/zuWNdjln4d8xNwIlO
  WD1b5WZ2r1S8WrQz5JyA6dMvQpE0BQ6fj4UfLUgWIyTZU2XlzIkGMklRgzxlp5EmVKXyRfdqRF
  c2ZEmaZ2ugQ2EueymkCDCt0xlCetY/L0vXNqziNUpVOHVbV1lV3WV1uxdjX6daDUsBYIdjWrbx
  FaeqrWutPldtqPiqsKxU1aM6Qvtz6JIou11mFPgYDHflT4UxjEIWZZwhQ8yq7hujn1OhY72Kbl
  mJj9cj58mcPEkpsdw50s0qTNWqNBPmTpr0vrxXjjOIx9gWDDvsoS8sJddvIqQIOJU1qTWzhbPn
  HRMVcOdUzzt9KhxztN1njy7FS5YxDhfcMEAxLKmz9f3kABADs=}
image create photo ::img::6c -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqaYwsayay3yrdIJzp/62AuCfjCh8QUMMY7M34XG2c2gvqSzY2Nlc9Yu
  dsndory1pKbRAlef6nO7hOYipV96mAo3k3Z8fDTVp/fhVwcxJDHmJihhp4i4pyemxOjBSOiWIW
  kpOPd4mFnUOTIaWjg6eYlZNqkECvSaOldTxvlF6/BXm6c7CPuwITnWmHcbx8RDFMJ63IM3zHzj
  HAu9Rk09bR3Nm42Dza21/R3jLV5dLkR+DqmOHs5O/I7sHt87NZ87fu+aLgoOHnwIYL00Aiu9WU
  ew1C6FCBPq65cmDKtnwABZ1JeOUq8I14kWcjRlqGFATxU1fvIYMhdJg1X4oApngxTFihKVLQs4
  66bImvkesunJj81MlvS0FTV6NF9SpUsjNpXz1FzUnVOJVj15dWBWnau2cm111SWdoN8+kn0JdF
  HIs19blsQFVljOobJs2rkYNyMMmdNiooX4E+UvkIOLgRK2ct9Hw0gQL377+KveyJDhUt040Vug
  trb+nS34t+sdupVrGSNrzDGhK3FbMhxJkfXn15BmyvYpVBuv215P4z6nhi071l5vCi9b6jg3hc
  rjNX8nojgwCpuqW78+AUABADs=}
image create photo ::img::6s -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqaYwsayay3yrdIJzp/62AuCfjCh8QUMMY7M34XGSd6kuaSzs5tCfdYu
  tsiytbw16nM5FnPPamSj+l6zt+UHCiInScyb/f0eoSfxJ+jnsUcXZcaHyOc2KJiR9Rh4iFgC1a
  YEM4L2xbk5+UEEVgd0Kvp5akpop+gIGOPiqqHJlYqJGscU5NQJyxtGhRuMs0VcPAOc3JPILOT8
  3LwsrVzNG31trW2UzT32DU0dnjvTvJ1m7P0ljFy43jcu6XlbWl5vO+pQhU+vTxspV6V/eO69A6
  gKoSWBkBIWHCKvEcGB+hhSjGcIosVOyqG8Lflljx3DGqwgzioZMJ0WebVYUlLmbiE5HvBmVrSp
  BWdOnbJc8kTyU1hQcEPzFE15VGNSpEtFNq0z7ymbqE9T/DpTdZ+SdjUxOnPVdZ7PlrDAsiyiax
  xalKYm1fzYcRlcf23eXrKUcSrQgw9fNXzRcqNCsX9l8t2Ft+/Nw/78DlbUL5/jxoYFh42LrO5Y
  xIBCtr0C5/JLyGWwtlMHDLToJ+cMg16qeiy3Xatnq6lN7rVUt7Jti8J9zR5wnCKkRqHQKLny5R
  MAFAAAOw==}
image create photo ::img::7d -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbWAMcDS9OuIMf1ft7w9eMJPzdMcIjcFIGzpBOzxDWf1OixMxVme6PM
  daPTfkvLsVfGy7W6TE/OXHpvQeU5U86Swzl1rD7/h8IGohdmUrinEcWBmKjR6HhR5leo0ihotF
  e5sknGpgYWaClK4oIXCgqY6vnyRhn5scoqJXtmxwmr+IkWm3RLN2hI9TTpOyw5+CRMnOzLW9U8
  dMpM1Zm0mEaKhF1z6cStivgdveN9TV6uPQROY72Nnl67Dh+fu3ZMi8+ehh9Cj2WMxT5U0uxB+f
  foWTuFsw65WijPw8A7D0dNK4WQYsRY3eokZqTV0Y24hhxHxoFEsmTIVxeJfAS5UWRLlyfcnZzp
  0SLDmhVTkoj5cycwVQV/5cwT8F6/fhOX2njpVEXTqFKhUvV5VcjUrBi5jvN6Duw7sfPIarVqNs
  NWs1vWihXmFkdSlsiIijF6ai1QQkJbgdqK82bfvC9tBg2caqphvoHz1RXcmJHJR2ozonRojibk
  nodX6uIZmWXfVgdBc9687Exp06kxjyb9mHW21qpjgy7Kt3K7uX50pz3p+zfHz8KHBy8eqo0/5K
  KbxM1KmHlV6T0qUKdDQYL27dy1GygAADs=}
image create photo ::img::7h -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbWAMcDS9OuIMf1ft7w9eMJPzdMcIjcFIGzpBOzxDWf1OgxI2NeP9mX
  DjXCTo05aZdbzo2JYeZGPYOj0+rScuuF1z16Oem+ltf31TFY9tfm9WZIyMHY6BHl+Bgo9miXOD
  dIcolp0qnZB6ZlpmH4uTlqFge5eojqpypquqcSK6s32QqLhyj4Slt5suv722s0JFz8S3N2hgSo
  HMr6LGTVXHfLI4kNap25Qymtws0inlS+cg4NHs7olK7+jt7uPktPdY+fXwtfLwTMHxVSA0P8S1
  bQQryEQxaSOVKND6GIkQ5a0tGvEB2K/xwcuvqhLViWkB0tapmn0VvFEutSomTDktI0fSs5yZSo
  soPHjyRF0qxp8xSInDpNPswV8yfQpBmHIlU1rGlQjkt5jcN5DKa5rEltGHWE0CvDsTvHsihrlt
  zXtC3Wsu3h9q0nuQLp7rPbMC7eonvz9v32d5gGtHshEbYL7PCLsC4JKSYGq3GXwwGjEptFuOfM
  RX7QKsVaeeSXskKnhsR4ZCdRn09BqH4pWfPgry11weZrOlXs1m6g0L65m+QWj7U535aSgXg2qU
  dRV0bu2yo1yM2n98JDeiL1iycnzQ4c8zt4NEr0Iq6k+C3EKenZxmqf9r358Qbpn61gHwUFCfz7
  +wTnb0ABADs=}
image create photo ::img::7c -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqZWw8axGzLyfdL6iPcfjQH6hhnhi0dMXoxG5ZCJ9CRuUxYUtJgprNEa
  1qaChbvNIjh3RpG7GzE6OzaT4K1tfTyaVr/51H7OJiXBB6Gm8XckEbikuHi4htjoWKNYIkSXON
  ghaQkJpUdZFrTVhyjISOk1ysMqasaaiJbp9krlehpKy2jayfs1m+ZkuxuSKuzziXwrk4yDSbSs
  9ax8rEstbN0TLb0dp6Tn1w34rXn91HiexGmuXMne7pcLPSn9Ejt/fO8kXssxre+tji9C9PwVbB
  MM0L8fBx8tFPRwU8NXdt5UNMRlIEON6BLxpOJIDNxEVb0KbTQ5rmQEiOUYqnFnEKZLlSgRysSl
  sljEWTovznxpzxifoCBHMePX705GpDyV5nvK9KksqfmiUk15dd/IrBi5qtvq9VdYfGPTlX13du
  OjtEDlsIXYE4lVqStJ4ok6ra7VohID6d1apVXDwADD9UH1Mt5OeaUu+ey2LmbLZ5DR9Z38eGJk
  my2FIqaZjeKDrr0+bhPpWaxAvD4Rur3Ld1Xr10eWxt4126hu2EhDf65tmxu9K/WOFiT+VvXv5A
  ZdM8e5+/la4Haly94z96qb7Gy5pxVhHQUFSeTLm58AoAAAOw==}
image create photo ::img::7s -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqZWw8axGzLyfdL6iPcfjQH6hhnhi0dMXoxG5ZCJ9ERl01y1WcSitL8p
  95igKljCL6xlU5WrQYfabc12IttHvCRha/LbOoTEh6e3lzcIJiG4t1FoWBMIsnZV2PXY1RZ2GT
  aSNrcQ4ogJiXS2hMkzJupyGip66MnBSvbV6YpKGGuFC7hK6uSz8znre1faiDJ8lGW8uzzTjKb7
  +5xrmyT81vs0zQxHdC1I571N+ScuXonznYqofc4u7Z6y+Qrv/nJoPV6HrF4kVa3ImTN9lwRC65
  dJH8Js4ADuwsapIb1Efhh2stNHYrd/4OEearR4q5zHdR1hTRpJruSik624qQz50qTGYBNXjpnn
  UGbDe6C48cypE1o6hMkOEgSl8CiyjEv5KW3aEqovolJRVjV3VQnVrLS4YvVaD2yPrVljkb1q9i
  lUeTVKif2oKmk0lybPUJ0L7mKab6h4LeuLLyEwl5uQNrKBMy2ra4xSiiwmhzBGvTElwQVZ7J2l
  y0CVPd4sOSLljaBD4/UMEgrEmiQ7q15NFHPbyKvFnH4t9MZtNlvVfirt9i1F2sL/BS3elRBy40
  WbL4cJ5GzTXtLfVhcr4rkaCoy6e/8+AUABADs=}
image create photo ::img::8d -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbXAMPsTLtCjNP6acuWvwt6eoNXUYjcEI3JJsZ2yzmnRNyRcw1meaPf
  FaiJCcWtbpS5se7UqqU3bd2e4vJPVYqhg036egfKltHHMohiBtK3h5hoWJJIRvKoyAF10/Gogl
  kCOOlFR6jHZQQpGLpSuNn1CRd4Gtem+oqFN9Oa6kkb1pm5O2Rmm5bkB8I5PLVTaXx6fFHZROrk
  jASMJK0lG304bdpkrYOa5F3L2K29JlnupBlufr2ars7NfvwOP0UtJH6urKN/GQmQhT9WY3r9af
  cBH59cJAbmweZKISWEs+ottGiHIiuI/xc5ZuyIMSG5hhofrot00pejlCJZTgTpsaW8jzChrQx5
  cM7MmzFz6pQo0ybNnwYXCR36syA/JSX/IQpYhlmUpTMcRixatSkooFnv7QxitSZWWPHA5dMqlq
  uoZyOroSWqlmzZnv3ewh0r1+tRsHZ5URXYN9OzDGGlosxS+IUwo0AST1XqYVXiuJcYjpJSGOdh
  y1Mx2zXLE1+gsKA3KyRl1WXktoIIo5X0F/at0HQrfn2ZdmvMVqRvB2X4LnPt33WANA5M2bYf41
  cc7006C02IwD8WVx5N3fBGxNm1P5Tu2Pv3NxbCiyd/pnz388HXs6dl/rxK+dEq0K9GQYL+/fz1
  GwIoAAA7}
image create photo ::img::8h -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbXAMPsTLtCjNP6acuWvwt6eoNXUYjcEI3JJsZ2yzmnRNwRI40CQdks
  afm7hnNWcaesjaFGYabRmlZ7ykV6CRzF0u3zPfrLFrfl93dG6DUUGJdxiKjRKAcC1Qf5AbmVaF
  LJ1bim2cl56Dmm9Uj46cfDRhb5VliSqjr26tqK6ii5uscBN9Or4hK7YbtCfBfIdyZkJls7RaVY
  +uw0eTMNfZ1tUa3dxN2N9M0biTsOVM4hbsqKrsdunB5tCJds/g6voe4OOs//oV/rFCV/mUhcYs
  bo0jFYCgeKAnRLmMNdCxk+tESwoEWK/wYFVozYbhjHjyARhgqpRF5HfCdN/lO5cgdLjcWW1YAJ
  LgjAnCx28gSG8+cMn8NsDg1KSSamUSp+FUOZ8qnTki2QrqPVEuoTq/vqYZSYqyRWkRfDbgRrD2
  0Hnwe/Zox31mNauTQnqu1Kdy1XQXcD9s3AFo3Xq2oGw40raGXhqXXdurr1mKlQIUQnm7Wscy9m
  LPk0b5Z2oTJmp6I5B3E5K1JpUjrwxVrNOOJcOaUNZ0X42jPfpW4Zv9vmuWxvrIuvEN003HbUuM
  rxNge8t63dkY1nUydMl3T0hv3KJguM3Hq9c8a30xvrnK8eNyE0C46NPfH6NsBPdJm5L3L6+p8V
  iylZ/RN5oek2mYD89dcHewDy9B2BBXqxIIIR9icCgj1RIEGGGm6YoQEFAAA7}
image create photo ::img::8c -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbXwsayGzLyfdL6iPff/uL5hhqghUZM1jAwpXPX5CRwU5ZxKVXMtC3h
  NdOw2lRXJHNMRqO86nM01yYh30WuuJqGj6Z4ED/V5yckGCEnsVY3WCOhmHhoCGa3+NjBaFap+G
  bZGMlYYkYHsyeJyTfJmRW0iHXkwhPoUfV6GTv7sAGbhirYettJ+0ka3OvgNAQVsmrsc5m7vJX4
  TAQsPb1bzXxdq00YQ739/SMMqTtOaF7bRRe8zlvuLN4ufhcOzo17HzS6v8YPj98PgqFCwwZSyu
  KJ3DmCpQ6mM8gQoUNMAfecgphMHsB+/0d6cUymrKA6KvVSqSspMV8kbM9Qsuzy0pjLmIhOqnR0
  U9Udkjl1susYshvIf3UqZkTnBtBFkfEm/or4cKFAe1PdSfXVECpFdlWphmHa7Y9KsUGt6pn5VI
  xNtMSIbjzrFp/GrXDZnmJrd27Tnqx08fTGl2ZUwdkIj1xpWE/RxGFD2mVJMC/SvTjHPI67TW6x
  vkJtffSs6o/PhUfjilqqD1S+TXu7hlptqTVW1K24an3atSxnr3E0z57HkexP4WBtb/mnqefXd8
  CW4+191SSr53pTNmcz2ihgeGUCYy7lNTtje2fGK/xiXjr69IunB47p/D18SY/Z108vgn0LCpv6
  +wb/PwEABQAAOw==}
image create photo ::img::8s -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbXwsayGzLyfdL6iPff/uL5hhqghUZM1jAwpXPX7AhvU5VxKUWyErGr
  lqmYhVvCa6axtVnL6rNjjc5No+AHCiK/R0iSquebtQfSd1fSB1gnYejnV0P4d7joxhgJ+Tg4Nx
  YUNtLGYdNJB7mpecQVYoo4ycN6ytcat+HapfoD65nYuDhb6IjrhAMUCpykxUvcY1yLTMbsvOwc
  rMvnM41Ja/2anZV2rActu130q10qKRe7Sz76nW5r11sO/453Lv+GKfiqrv9ZeX1vnr9LtvjVC6
  Ro3z1U60ilCGWOm7ojqcSNuRUPjjRx/OG6gRv40U00ZCFHrjEJrCRKe+hU5kqDbSOtbxR9lasZ
  UWI+LhC95erk66PQfyD7sdtpdBzBo/SSrnLa0aC7ovgUBmz4c6rOqz7DCQTYLqclrFFbdh171p
  9Hjl5dYiHDduDMLtXErFTi9u5WvXpE8tUI5m+hYaYEcy0MN29Qqqfyps2HsEnIixVvorKZNYhB
  hqKU8gxahc7QpZ6T8hqdMPJBJuOkVmX8mmnT2LA770VLu+1X2bNt1wYkOi7ox09zxnKpFSkiL8
  IrNneo0ww6mdHZzKiL27pheYG3F0T81rta8IpNMhefXTP6yN3X53GfowJ8PhQO2b+Pf4GBAgA7}
image create photo ::img::9d -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbXAMPsTLtCjNP6acuWvwt6eoNXUYjcEI3JJmb5OzqbRJx0c91lUSNj
  jhMThltdDTBj1X55ZcwYbd2a4vJhO22m1z/6vfL+BkfH0sc21+eHhchVghjI55h4YfPT4ahyWU
  L56KZH6MkYxSka9zkYepqHZ7qm2ZWqesYqqeECqyom6+qla5ZE+9cJPEWGRnxMeaycrEzM3Oz0
  TDIMQv3UdmgN1gsi7bE6A757ckteaph9jgk63shuXm6XHv+92A6ZOR15j/+uX8ivnzh39Dh4U1
  RwD8CAArndcFjQILZ/EFsJctjhoKWK/wO9sNBoaWPCGSBXLExSEp6/ICkJ2kPS0mXEjxODnIRZ
  U81MmuHqdXxBMic+nxhHdRMqsqhSo/JUMr1B9GmweRZlVm1qVeq2ndeo/kzK1ULKSMPIMty6su
  HXWkhjrQV7NWPbi2/R1u3qFKNaFTFJaaNbzKRegjwJ/QoKrVnfxOgYT1nsGEsGyJGF4TV5WOCk
  uQhz+Tm1+G5UuEf6hkUYFzRnXqLppl4T82ZWjpervZzNNMvYfbjjsvXq2666o3m1ov7ZKnZa2/
  HAmR6+ruOo0MEp1uEG2ThzuLXJZRYuhXJkIEDEOyYffnVlOEzEql/f/uFm+NFhv6f/MJB5/PP5
  7w4Q4V8NFEhAYIEGEmhAAQA7}
image create photo ::img::9h -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbXAMPsTLtCjNP6acuWvwt6eoNXUYjcEI3JJmb5OzqbRJzUCMyVtLcY
  b4T1YqxFMslsLtkywK7VzeWQy2nQGjuezz/6PWn9ltcXtzEYaAcW1aZoeFXYuNhx1wEZyVaplg
  gCedaIosnnuSn6l+glJqhnYvjFCKfRpxLbCneYinriRzsLS5jrW8poe+m4gktbazkmVPx5OzV1
  dwwtNNlMvTOJHQ26ze29rU2JCixHPj3UPZ5T54E2nL71Dk/M3h7fyemOGZxPaq4PkbyAAP/hG0
  XwUUJJ6gry2scq0yqDDlVJnPgwVMYP/+LW3UP4kWNDiOU0lmTIYhgXQvQEplw07xi6finrnbp3
  jWaQSjlbjDTGr9pPWUGDdAS6sMZQd70iLptxFKJNi3hYRHU4VeVJlES16hKm7OBAnGS/6gRp1i
  vVsyQzyqTI1d/GYkk5XAW7MetasW0HmXQqcixghXCVLMW7t2lhDXeT0WkZ5ibkDI2TWUb7eKbh
  X1k0Kw6DDNw30dAqkw59uiblw6kBrm79EpdpNsz+ApldlYbmWbhr6S7Hm/WtsH2bBe8asngkez
  5MD1Y+TfKFynX1Tn4tODHhvHZZ87TNnbH3otv91nsyvjritHEaf4feDp37mJ4d22eyOftl2/vB
  ojnnLMVWqYCW1XTCwRYFfiEciGBnBiL4i4K9peagBROepsuFGLbHIITdeWhUBSBCRYEEJp6Ioo
  kGFAAAOw==}
image create photo ::img::9c -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbXwsayGzLyfdL6iPff/uL5hhqghUZM1oJMpXIH6yRwUxbSxolaFdus
  MNPYalHfYNnMbWFz3zF4zXaTrlVpWowkx2ujOmgKmPdzZhcxJ6H3Vibht8Eo6KVIxzhIeSjZ9l
  iJeInhBtN35wHKBxl5FBrq6cLTOMqKSmgX6+BoSib71wpRJKoi12no5AMVwjc8JOiKfKN8y6wG
  Lf0s3UNdSHV9+usbp92rBqwr/hrefUg+y51eeD6Ilzv+/bYXGK94vKyOziv/kOivX6xVlnSVeC
  REC8KD99AIC1NKmEGGgCI6hJIi1bx5/8eMdaTlp8quhqti6LPohaQtePjsYepCpCAxlfwkWqMZ
  8F8ynJtsZmPp0NgYdtvW9Wo1EB9MikeSEjza9GOnmkJFDeWikea3ha9klqspMCWniTlrdR37jm
  LYdjqnosu3MaNcnByDmnSX1tvJs3uLqu0rFjC4dXj51l1ijifBw4jDZVOMqhozxpLdVnZM7/Ld
  M5QlV6zTeVo/xkTZHjVLWXBXWzo5inQ6LmrIVI3jfi4cNOvLkmDbBg77SSVXtsB9bdVk2LfUyH
  /N9nRO9q1LptMZAr0ulrde0nB2M98OGSLUweDhmTofHjdf4tqNNnsmPrTnhPQ1LzVin02Txvmt
  fxuXX018kNl3VX87GUhMBQjOQAFCDj4I4QQAFAAAOw==}
image create photo ::img::9s -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbXwsayGzLyfdL6iPff/uL5hhqghUZM1oJMpXIH8whvUxXS1kngtCwk
  xvtVzMSt6hF8jlqxuak681g31mF0LV6KtFESksScBcjx59eXJ1j0h5hmCAIGqLh41/hTxVVHuR
  F5iGkJM8I2+Dlplxj0NnnEWOjCQ1bIiFq3VVoZ+wqHK1cbeHvp5AMEKglMN1uc5PWL3MPL3Eyc
  FTwWs1wWrYmda83H7ah9qnso+71LLuVgPJ6+PsfXDcEaz9nOXqlH/02Ivl8uj/9iW6Ze/+al6W
  TQVsEQpISosTFMnCh4qlL5CldR4sQu/2jwbKsGLpwnj7E4JhtIJeS9hNCIbBriDB7AljAVuVQZ
  SExEbyZvtlp1kyPPoRoVXstZiqdRfa6ArsyoNFc9hqGy6WyYb+VMqyiz1SPJdStBpmIFlvX6ta
  qos2gLutNqz1/aqAjPbZRZdK3apV+F5r3bhi5SnDGt0sK5pNo0kM9qemocTBliyGeoOpwMGU9h
  s2O8aUYsmN9gMptJO+XX1KJII2RBYUWdYqfkX4VfjgZ7R6rbuGFZVgwzd29d3mNbv4VNvDjc47
  eFt90duuE5XJt9VZdu58116X49dyT8F7byJkdTLgq1PWCz5eQplyGf3n3i+fHds65P+T7mzGzw
  5xanvp98pgjoUgUENkNBJAouyOAEABQAADs=}
image create photo ::img::ad -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbZwMay5WLwjJ+1NfT5D9oJejegUbPz+Y5M2uiiLDaNteVQOs1VicQs
  9ckNe38uKw87ZqW40G5atnZfzW+VsP7FT+9ovf3Z1udXksQ22AIYRncYlKjIqOMoBkkIOLdI2S
  Ekl9moIdi5cReKYkkaeapmmkoyyurh+soRK4u0Wjt7i2u769kLq/vrJKwZDASqZZzDeUSLM8nk
  LKOIHCPNQo05c72SXY3Y5K1trdwtPg7OdN5cjp0d3W5ODZ81T19veI//TZ7G309MVLxa3AgOlF
  UQ4cFXCRkuZNUQ4sNUESlOPFUR40VSZRkPoenohxlIPNBCbCT5aFgveyZ/sRxZpyTMmHRmxuQV
  EGdODDbDyTHUU91PN0GFvihS9Ii3C0mVplSJy4qZpk6vZKBqJMrVkyg/cqXplVgfrEoF7tx6lm
  eFtBMMSHgLN+5bAwUAADs=}
image create photo ::img::ah -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbawMZyOL7zfbrYwOP+p7vwYL+iJijo9YxMWkZJbBaDy2RUiqMOh9if
  bgvuZmvW51XMcm2FXHRM3bZW3SokfUq+G+36MRsW15dTs7YmOGgBZnhYAqd4xujhqBjZSPZYab
  mzmAmUJ9ep+RQqStryaVqaioK66umKCKsqK9lKe2R7i8Gnu5vb6wTMwStMLLPI6WdESen1u4KJ
  6WMM/Sit/GN9fUOtot2M7fMdNv1cPY7HND7HbX5uvef+Tp4ute3cRR8vFrjP39XtVkBaA2UVhH
  XQVcJVC1M1NPWQVMRQEztVzHTxDqSMYm76ceTH6SOWayKbaLNQUh28YLROspRVqE1KlYCqzLxz
  k05ONztnIJMp79DPJT19nrEZVOjKl7C2FTXKxlcvKBmeQmVn1ejGpJH6MW25IavPsFwZlnVYQV
  hVChLaun3b1kABADs=}
image create photo ::img::ac -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbayMaym8HyfdJXgvekbuH5hhxgCkgkGkfIpE9HazpvUMY0GXVch9ma
  bUuFKXZC8ExcHpvPa7O0/fwG3/DSslxvyRf52J3e19HFAxjoNfdgaIeWqAjiEuH4aEMYUiiJhC
  f5kXm5afkZFso2yuJZeoiqcqo615oj9+rB2kqraouKW6q7GMvl+6v5u9Uwxctp5XQ8m4wFHCcc
  Z3xE/WxqfR05rCSxTObcvR0sIT7OZBnth50dhOjs5l20fpaOE+94r5hvuB/Y3/cvT8A6A+EUbH
  NwTUJ4srzEWthDGER159LM0wfBlSxtVxP1NOqoBx0ojQ3RLSmJ6CRKPhhAUnxxcWPMVy5RWIQ0
  E+BNNCVVjpRZjCRQNUJpUvpScxWTPTn5LU21shNKd1BXbkja4mrTXFt3VZh6lUK3sWTLPjBQAA
  A7}
image create photo ::img::as -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbZyMZyCGP1jJfuleQ+uLP0fsRNMBUsFo+jpPK3i96ePumCuoQ9sFDt
  1MllIYc0cPg0tk7PKjO7un535VRnnI7+uvHA25XfUtMA2OY1SKhjyICYKOSQcwfH00QDuTeTRI
  apUKcXibKodBnDyZn1VFr2GSja46qJM5qXRjvXRfsq23fblNur6wEc7BuiarxpWUtsSrrap9xr
  zMwqU/paDC1s49xhPVZW6c2toT2ZDb4MS1Iu7Ut5JV4YiPuLq1oLOn+fi02fllfoHzx099Cp6z
  bOXMFvDKPBA6bNnTSC4n7lA1XPkUCD3y68NcLI0d5DfgeNJOTYLkJKcOtOkhQJ02JJci7xLcRW
  UKPFlrP2jQw5aOaLmvUWbYHAchfGou6MBhW6LaBORSGnary41FPHrbD+8AyI9OrUR1hnkc3pc9
  pXMaHMZWoLsJNXIuxazrXV6hDdk4m27GVkCXAsvoKHFrZr+DAQmooR9pvU2OShunL8Un5jmTAf
  vZcrT+vsWU/kYIxHlzX9ATQj1XIFDWGNiowp2LETV0Kd1jXusX4005ESdXc40cK/BS9uxzcedb
  S5xGmO5bnywtB/VxDOYYIBCdy7e+duoAAAOw==}
image create photo ::img::jd -format gif -data {
  R0lGODlhRwBgAMIAAH//1AAAAP////8AAP8A////AP///////yH5BAEAAAAALAAAAABHAGAAAA
  P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5vyw30AN+4vNU27q+6Xe9HJAU1tKJSdBQkl9BO
  8xmtTodV6HVj6XolI9mTegIFbDUneq12Ns3h8nhYNrOTeLS7Pvvw/XI8dGFDVG17H2lScUKGbx
  xngpI0f0g8i0yVUo8aX5UEggSQjJkFmp0OpmZ8oJKinaQ7m6qrAaa0HkGtoVyxalgMuLm3ticN
  JQ20k5clsbuvyMJ8xcTGLckny4LNmRq7NK/BdUHUxaOdyto9p1yB29HW0sTSXLjfNdDsqN68yM
  nCJeZNq1fnHrhe3fgd7DSggMNjkAS2K2Nuwz1o3EIEUYTK/xTEiOXMeKzzDqHGP1hKNGwSTCIq
  YwJu4eJoclUcgAEFesxli1ifXL78rBwmrpiNgQN64twUlCdOpT0jUWrA44HGpE2lDN0EQV1SYy
  OJ6kN2c9qZYw8mQVD1MSDWhFdpYft6zQK8ljKKjeXUMYIpunUj+DMXlW6BtycJjXzwF0IzmFSL
  iquhNyskvWdTZa6Q9OvDnAySHt5Lui5go6HPdlZ9NmCqh5XhwnncWPPXhrgP6x4a1d/D0ZYnxt
  s8OfXq4/F2aiYd5iWx07VZI/cNGyxim5lCi8Zm27h0a9Gq75Tth+z2h9Az584NPvmt64DKUh65
  svt3rHUXx05cSk453P+MbTZdYKgBR14uK81HlW75qccaWVGxNR5/Jynz32hp1cYeWpOJBh9Pik
  mFWX2+0aAhcRGe4Rpz/SHxX1e2mOigNXNRYiCFdvxlo1VpxZggjM+hwxdZLZ4H420+hhWMYSLe
  iF1ckWA22G6pYegAgEGuGFxfrn12DXJnKRejlTp6yCKU23GoEmtVZmjkOhM+uYp+Yq4JZprJMK
  ngmTlCBZl1u2GIZ5VBXrPlXX5CiNxqYQbYoQOHnsFWS0ouKiBmbYaVkZyALBbel/c5qF+ag0W6
  UnWguRXoem1eSRgsB85CqWZ2horkqASaWpuXsDHKGaabxRlff3sWRddjj/WoX57/fApFX2+YDs
  ajq8vux6lTFEVVlLRgUAtRjM0iKM01y6oFaWTTCAtii1xN6hUYUjg57FXspEUZVfPJ9JS6TMUa
  EXqbZqOXR/t+2K9GiYAEG7bz7Dvkwx5wFGGy4zTMErgdpATxDMz4dko5T3HHMTB7cXARSC8R5N
  NlSiH2TDvNKdSPazWB/Ie2EJ1MJMIy85APLumGRBBYYkiyDxOWaCNkzS4draUAOkPsVRJScth0
  wBO+7PRsXgnJIdEr+xEnTRtDPQlGj5TDibVOHDyb2a5cJpJVc4eLSc8DYPRSF9lFmnHHkExNiS
  8dl90IID0YQoXB5/yiiOGy8KRHHm3goQ9JTYmvUzIKoVV+xxpo1CuEJVsD4snpdpHudhZKGFI6
  60S4vjPsRcg+JO0r2D4W7iroznvsNM3+OwyACz+8ErcfH0MGyiOPAerQR0+BAgkAADs=}
image create photo ::img::jh -format gif -data {
  R0lGODlhRwBgAMIAAH//1AAAAP////8AAP8A////AAAA/////yH5BAEAAAAALAAAAABHAGAAAA
  P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5vyw30AN+4vNU27q+6Xe9HJAU1tKJSdBQkl9BO
  8xmtTodV6HVj6XolI9mTegIFkjWn08ZGl1Fvc3k8lDU457YavXbOaQQbBGkacR9iPHUDZQEFcX
  k7MzstiYGDPIVhb5hci4UFjp2JozSUo2uJJZphniWgb1+mpKeGHk1SDq6hn429u1xIs7Sra5ZP
  J2y8XI7MvYUnf8KYtbiobUnIas+8zaEt0BqX0gOB1HjIs6rgrozdzh0GguOBqkzopCW5jbu+/Y
  fh8zLZEyCOR7lW+2C5+yUl2Cx69UIgSlUC4atl/X61MKBD/xgeYtYUtXu0EJodD/g+DhSC5YxJ
  WAxK2vpAUaVEQ1gq1trnKOOjW6iACbzJylBCd+9sony2aB1RJq0wvnJH6FkuWzWcyikq5dVRBo
  kaTL2IlRFIM1GXgWqWh1TCpPnAml0pMa1VB17d8tTYae7Tuj/Z7F0LgbDXoVYjboXK6IGNmGsj
  Sz7ctLE6xYfM9UXk4DHkyT3vXX2A2ZbmQouorOnsR8K1zggznc6nqYHqUrb36M5quw7p2UDVhr
  5d2SWE4rfv+F0scWxP4rZhVYZuuXQ1JszGgsWC25Nx6t5oAx8fcx9y7nKbcm9K+Nz4MGrZ5x2i
  HuyMzxdfvqdrfDIkJP+5BTMYWYnRZYZs5bk2CX0ThHfVX8zpQs1/d6x2CEMVQpgZOAnF9U0e0j
  XlITQOZhjhhnh449WHcYknloo/7XfTN+xIaFlbJj2TX4nBbWMPjc68tQ2OtOWzI4cunYUiRjay
  qJx+RzLFUGa1ceiNPiCK8qFyKw5A4ImmkTThMZxd+NxhBm5o5QQMMijBmaEpGWaK/lExnRADgr
  WijHIAKZl9k3yHJ096htZjkTPS+Rx6Lqk3A3IrfkklE+Kx85+ASX63HmQvTmkafEVu92h0m126
  GqeSfkqpOoBiKtdxsI0q1qG0jrjJecnk2pqog5o4qUT1MILbdoIpeN6odqkKLGn/HqbRqX+UxB
  pXstcty6pVnoGmbbTMJpnmTL425tWe+BFWLB7UngOqtxENRixv5DbBLpgN6WRiL4T2Bu9eO6XL
  BXCoTWhYYOy9Jem8vx5I5Jzy+jSVUf76uKxxSABrS0kHR4zogUNVhYshSLUnhV051dpBTUpx04
  8OyqXlsckscaISlz6lKOytVcEcksxPSuXPJ/y0khLMBZ1iHTvuqHUzQaSUAzDT0tAjcM0Sjriz
  s08XPQpEO8lU42X30AKw1k3LJp7XHakRtjUb/zMOJzki/fPXyfxhTA+1vk2IUV5XzayGM+mNTS
  xKByxnQ/jg8640CgUdB89PVwI11vRJIqDNXoY7tPfTqEAkDmp96CF6WhV21AOZoMJxzR65ouHv
  rcFI3GcstFcghLJZLKGa7LkXsXvbvf/w+6HBrzD8bMWrcHzyRMjMO/MvOA889EUQT30MGVyvxA
  UK1O799xQokAAAOw==}
image create photo ::img::jc -format gif -data {
  R0lGODlhRwBgAMIAAH//1AAAAP////8AAAD/AP//AAD//////yH5BAEAAAAALAAAAABHAGAAAA
  P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5vyzlwbcsbbe8rnp+8IMqnIQqPHaMRyVQCmdDi
  8xetOn+WrBYyknmf01lgMBiTx2Y0uVxmdYFf6odxrqfZ7HBpqU/CHzltHg1ndA5lhoM6M29YU2
  lJBARma5WWRBFJjSKUj5NbepmMnH1ii5JLJQUBq6uKgKMhPg0zBbZgqKWsu66vSpt7tFK3WKu0
  x627psHMRcCwqsS1xy0Myb3BFM6kzsfD2EXYj9d/WSWNE9Hg1mDTyVLmpVTp1uLv2+G85Rbn3P
  S29pQ1U6Vv34mDOuRJWYgQnjh2IApKE1YuBzABBgIYqDXx/1aBc8II1nPSR+GeZcXgtDKmaCUX
  eL+4cQKo8haaGWWMGTvYr8vFOTTL4Tl0JuhJRDJlmYS4Jw8lRGsiuIpaEtycpT2bqrGFCM0fgg
  LIFBhwMoc0pW9oqKETtVk1YgMAkn1A8+eghVrZcIXDsC5XW9lYnY24lOnapzje7gwrN3DdpBHB
  5h2zt9qJnHXFknE8+OqbiU4rIbwsmIYlzlYV+VR2mPLYansAZo67mW5n1aRsGiIUtQ2aZLTick
  VduEtQCMJzrpXtdyxg26n9GLfJDPEu5TuDy+UtOLqY6eKKJO/enflU2ng83pY+kxgY6yOzU2Mr
  +jHa9ix5usZsnrkXsf9jFbXed/jp1xRVr+20SlxgWNKVfYSBB9tle9EkSAlIBcIVUuTZlURd+o
  nWoTc4iQYShJ4VqN9+u1TT1nvjgdQhZEDpRkhlfHUS24I4OoAibrKAiKGJ8yhmjIn6/chekO6Z
  sZcYF/52S3Ig7eidHEzu5CAYCTbAI30cnjgglhFZCOAZZvXnX4wrKklglk8VQoFLvBVi0Yz3wb
  mhk7WpuRKPr+GDZ4QFyincWIHpoxxi1Q2aIpw0/PVReRb+xqJUY+IFqXbD+XjdQXjI6dVIxakY
  HHrqGIXQeIb45kqpm7Zwmo8LVidiHuGwROMgx8mKanljnHTja07lk9WjZdpIYaf/I5V1YCG4ig
  RrsvIJIKk6DfXDYrFlTVtjtYfO1SQ8Q0J700t5JvsIhX0mNOp43Hbj4TRXrSEtUVBRxW2L85Kp
  yFwImdnVHRQ5CmRkJKzY4oKPIPKYwUsibEpitvHrh0cqhTSQsxKjJIZuD/HkUq5WhZGKReRq64
  VN9/AaUotfZXvyNoCM9gU5WORjT5OZzCyjOQS13JM+aVrWM1Zb6CyQoLqSbHPNSGuh9DpmmUzd
  zyr7lKgoQfM7X8n2QePze6NtrM+rRsNcNNkUaz1xVURfhUqa68yC1dtK4Cw3AY6MfXffJGkxSY
  kXEiqLH9BI4eDiZcxd4rptc+JLKF0NXHlXVXNECcvYV1FOsB11ZAhkHBzPwUKoauTRm+ia4EW6
  UqDEzo+m/lYhxBW2NxGKSbm7gHvvt+8O/BG/D3+DxqUbHwPyPitfQ/POx5BB9MRjIPv12FOgQA
  IAOw==}
image create photo ::img::js -format gif -data {
  R0lGODlhRwBgAMIAAH//1AAAAP////8AAP//AAAA/wD//////yH5BAEAAAAALAAAAABHAGAAAA
  P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5vyzlwbcsbbe8rnp+8IMqnIQqPHaMRyVQCmdDi
  8xetOn+WrBYyknmfYPAgMCiTyeO02dzrAr+5IoEgRp/XdvZnOnNLdSUldAN0OWMMh4gNeh4Ne3
  5/UycBg4WGZZiZmXyRnJxJn32UZJadFY1cfSJLqpSlRUl0sqOoEaohRHxhjSVvs7OgE3Grkj6+
  r4GTk7+0praBxFg4y6RTBY3MpVmw0b0P3K6Se9lvWtC4yra7w9ijwN4W5yAtwsfrLdfu+s4S8n
  vpXKgREtcrHzlTyb6FotIrIaxRA2/lyEYHIDhH/lBxMBDA/4CoSsXAzNE3Z2SwR93+tDIpUZAs
  imEwttS4Cl6xDodgIsMFiecuB9cEbKo4K1yKhVK6JLW5aFO4lxWP9pwHjcYWYUpTUk2X8Co9bz
  W1PnJklZxZrjKTTP2XKBnTbZN6HeIlttGhMfBKaNqrCS0mjGn/uTnzVRmhMgQQKz4cd1IiM6OQ
  NiSW0yKagYkzU/oLtimDkqwY4qpcqHG1zHMws2kMeSSgeZIbFLVZCfHmw6vpyS5ZMbZvZsp6k9
  WtzO3uBztBdQEu+3Nj48aR8ybq203RyuHQEjf91EHUurFcC43s3Ovn6dSrr+pthijoGCOFD1KP
  rsWY9BD56r+P/jMj2P+DtXceaObp450da6GSGHmR9RbVT8H1lxhn4M0wIWb9FTdNLw6W5xxkCS
  aBGXIMXjXdh21VOFGD/e2nH3nUDcAhffPcdyBLPfCGYnkhzsDiiQXKR8aMyflo3Y29daVdhOWR
  FtpSuLino0LQPdcgie+gs5x0ZDk0HEA8Ojebin8ASZxei8miWIlEBkZTfechghdrqpWkWmGCRI
  YXmRy6BplftmWmWm70VDQXn00+ZiVuEza6ppWKPDlZfX9wRpaLe1l2F40o+TgXd1dFR1iP7JxE
  1lkHWfUVosSAGipaGSkXVqsFbvcQqdyQMKA7hjqVihe4xjoOdTFiokEBqsbBKV3/ur5EEiKydi
  KsaFQFM018vBrVkrYhGTmrj7ro+Is2xixY2kYdectTXlUNh22WpW5GSzkOTboVlb8ehOwbFtqo
  pEKxvdVPnswIkA+9clgCZrI1bSHHs9VCufBwSjlM8D7MusTvW1BWu83DBXcQlBz+xjRNwAJ/A/
  I+eFqoMLjqRnyKhRA35AkYasXcacrthFyqxrkC+C3H1sYzUcnB3uwmmpjuSfK84K6z7kl7/JkI
  YWccDTVC9u48UxFrpJHH2BO9vBQcQ3cRtth4/OX0hmcjDGetdJ/8ZhVIXIF3EzfvzffdfvOgd+
  BBDE74DYFJeriuiUu2eA2KPx5DBpIfcYECB3VnXrcCCQAAOw==}
image create photo ::img::qd -format gif -data {
  R0lGODlhRwBgAMIAAH//1AAAAP////8AAP//AP8A/////////yH5BAEAAAAALAAAAABHAGAAAA
  P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5vqw00Dd94eQp1n/+snW02ABpHsiGveGx6ksyl
  c7qBbpTUppWYnW6lOot4DEEKo8NTgMButwO0nVpH2MXM3LzcXV/DB3OBbHYgURyEH1A9THt8g3
  FVagx1IjVPeESWGnZrb36QJZthlB+LHYhPqJqcjgyAOocOpBwFiwWHmB1pVZ51caglgH4dtYsD
  t6IiMlenvG6uci0OwsMbxbZVuUuGrH2+r5Lhv7PGpqHKdtfI5yXPcMvJwdSU5cbsIDLXNMiNk3
  9z2TbV8JepXjx8Z8w1GvQuFKcqA6sJ0FdjHbBYGijya1en/w+kZQ0EjktXzmIudQE7uXp171QP
  ghmxBQwBT1O8BqAabpL2TdisbVhaptLVDCJLHUf3rIR5JajQUxdn/nMWkmowpswuoUMi8gHHPr
  IoyYpalCZZh7/ChOvEcK3ESIjOwkv0L1DVnSClvZ3UB9dWZR/d3oU7Cp4flQ61JQIkNqReCQ6Z
  sh2EV3Eqgl7Xqg3XjhPMw5ah+mksLbFdxwyhcpw7FB1YUo4db1bTNi5ouXI9+hP8WMZovXB9h4
  71bvTrCTu9afYM0KwZn8Vr021L2ndp3Eigu6JTOyzOYWNFlf5r9rCwImFbmb+tUk5i8giVn+dx
  GIIn9K/BBnqKUdnxhv/o1cfXbvh1JBYs7sGXSGS+wMFDZ/RN5hF9npRxEF1mjPVKgPTstt47YJ
  mWoHPKmDYhfif45M4/ykGGHToP+PKghxHUQABjIF4XxnDZ2CUjivUM0AaOKQrolYKX2eegP0Ky
  EeQwRRBpGo+V+ZijkBFJ0FeURrKmWokTyDePOyg+CN2USBalYwMNRsfmdqChR6QDVLKj5SMR8g
  EnPfRJ2RxCXEXm0CCUadfdllfV9xOGYEY2IIF86adhhET2lSYuAD1Kh5sSVlgkpy/ShOAm+nU2
  5p1bvqkTiaJytllnmibJEJHC1Omqo7TthpeSA+rmZX+ivrrTprDR6eKHi7bWKmj/xCFWxnK+/W
  ers7ZRltmUy3U0GKNmwRYiqZxlJltmpV5K2FeUgXsdcr2ZGio+gyoXS4jbzgbcVOYeFKu6O+7a
  bGRp5dtSvUaO4qlaSIFjawoCrhajtdOw9O6CHhiiLjjp4pUxvvxFEigHNl18pp21duVXVh6XCL
  IPvKyEY79XdQXSytzIRYtMsL4UbF3pkrRPysFOVFLLf0iclzz+WBtTD/zYvDTO5oFiJ1qRwlbQ
  Kk4HmYZHUhOiRhzeWC0008OWqLUl9XUNlYobW1MR0PACVQ7Rv4SLdNgPNVXzxxT9THRxjwlU9S
  yIWPzrTH0fc4pudIEdad5OwaLy034fIilGeNHpGVDIZQd9NT70JsNi1XnLDTfFNPsXm1Gd9nx1
  Gk4T5d+BgTguYYJKwP6xC7edw6IjSoMBxuG7kmG8BXkMf1YXLuTOyPLMq+B859H/ML3k1VuPxv
  PZA3E98d2jMDf24d9gDvnlHwF++jFkwL4RFyhw/Pz0i6FAAgA7}
image create photo ::img::qh -format gif -data {
  R0lGODlhRwBgAMIAAH//1AAAAP////8AAP//AP8A/////////yH5BAEAAAAALAAAAABHAGAAAA
  P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5vqw00Dd94eQp1n/+snW02ABpHsiGveGx6ksyl
  c7qBbpTUppWYnW6lOot4DEEKo8NdqHXaNQaEeFyNon++aRG7xH8TAnNXNAUbBTVVZkQ9THYcDj
  pVDHByZzWEhj58emqLiCCAbRpqkn9/ij6LNo0dMhyHmk+gdGwBNIFLqbmwn6t5dwQDqw6Tlbmd
  q47InqyAwQ1hYbamxrrKomeXvqzAzm20b3AnmNSDu3cnqIeNDNyjjtFq48aE5rG4qfXN4ct9z4
  XkA+hZg0QtHzdTot6FoUOOXj1mAuRZMmjLTat+/k514ndO/6M2UQcR3rmW8d4rjvY0ctT351sV
  hA9cZVK4hiEWO/rYuXkpsoyikZs6REnoCJgskSXmtIow41MiPdtOtJTFbmrPmFCDZo1EIGkDOV
  NBwXoUCRLRmkiSlSoS9gEwAVP5ASoF8+kannO6znVACa6EojXcab0bpuXapH2JldzV7NbAiyPn
  gs0bp0gtSt4SZuZrKtRgXl+/hgXLd08VGpJDe0arZzJpi6plJUPdV0dnu6CpivVWumU/1FgRr+
  aFxLXShddKyahFO5DbnZ/PKddJS7PsNrQDlwhm9mGy4sZD1Voue3uwg84gLcV9DpThZzlBis8O
  XDzRx4+N+66KGpp5lv/pmQYdazWNRgtd3SxHX3/+NMjeE+F5Y5gzSklyHhwMjsUdfmYYFhc75x
  lVVUsXdgONhelFByFpJjaT02htARfNIhxuolOGRxlFl4fM7YMdjTWuQUlgEs51nj7hWIjZj8Ah
  1VFrKG44Yn3chPMHMfv1mNqDzKQiXpV7pXalUrcxpxuXjnhJS31VlVaRj5JIdguBvBB5opLjpU
  bKmN+QCVlKd42HyI/AXJmgUklmGR6anjTIRg+Gwrbndbr5piIr96l32ZvcnSjNgYteqtBOvNUQ
  aR8wVVSYTnGJukx1pHBqkaVxohoqnUCpt6GpZvaz3zWrsvonRFnp1saQ/dlW3iP/I04WpFN7RT
  JMgMq29WVpiwEKLa3IXkSdscnp92xkVHX7zrdychbbsN9BdWxY6mkCqlE8UCKud2UVWxlSOIlm
  GWn1HuWgq2f1yG8Eei0Z7Y49MXofZbNI21WSCAds6VnEbVWdtO5UuqQpF2P8JGE1keVVm7EljJ
  PD3jHiU2H8vrcPTU21S7JMUbwc7cN4YirIUOyitBFJy13F20ErqwTsVh4BTZYyRs7siS7dOfUz
  PhwP1yDST0SUCyFBnyXR0Mgx9pKqmBYUtiZjL+IQchGDhPY7aj+mQds9OJSn1qcl2XU6qtiNt9
  tJscnbjE4SVQ4mS98FkA9Rw/fNZcOO+/fji2lUZnKaiSs+VL6OY85IZQHOUl7XuGg7ki5Uu2ei
  vF6RPPTaxQTkdSZyvq5p0LWnYbciDo3Dk4t7iGfNGYI0bnUKcopIatVAKeG7GWRUPwYX2K/dhQ
  vSu7x9E90r/30O4UM//g3la38+CekPtD77WKv/vgizuz9/DPbfv4IJ+h9xgQLWC6AAxaCABAAA
  Ow==}
image create photo ::img::qc -format gif -data {
  R0lGODlhRwBgAMIAAH//1AAAAP//////AP8AAAD//////////yH5BAEAAAAALAAAAABHAGAAAA
  P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5vqz1wbZcnTt98Ksu4nnD0ywWHSE9xA0w6lzOj
  Mwk9Tqk5YNHC7UKIWeNvQC6bCQxCad2SxsBRZthMRwfUbR2p8XErwzsnAXQMA3Z4cU19DkpwUX
  wzM2aDBIdskX4cER2Zmn6QWXWHeFKQiztMjpxZTGeWa6shm5qqeqmShXZ3jzp3nb2fqqhiA5Sj
  bIBof4JtWsKMkSVllQ1qsNdppRbRsqx8rNJk1HeItzjKj9u/iRJsxeRp1qVyvukV1yDNm4XF47
  v4oNBQA0YB3yKC387pqsRNCbWBNJiBcpTnBz1yM9DpqRZP/2I0U+usCCgQoAAtetbOiUk3Slum
  kE1MYYsX5V0pm77g2WskQhHPaqQIGCqGs584ePWI1Oqjg2EWoZWIGjtaYpxGnzCzZosg1FClqE
  cdPHxq52Q3MHfKREwrSpA0X8pyDmx4sOcgomTAcdxac1A9cl/n2SUySSoyQYF7qdWSbeNSh1/R
  LK4I1a1fm8U4hXv3mFNkank5I4Z4t18hfeHyDO75edwksQ6kum4w2eJqWVL7zX5dGrOdd2qxGf
  wDJrdff3RqGzsNjVFWwn65CqUA3N9Yt5du54ue/F3U2My9PtSgK2JnTXhxlkZKm3vgfgLGpnpu
  N+9pzEYf+JbsPXDz8/9M6GIccKa1V51kd/0j0Era9TGbfrIBZyB/D6jhD13EsRZfPP7x44t6lF
  ymG2ALDheLhhumBJpUEOonVkbkQXOWXZExs2F7gdUYWoKI7CJfgw5hFNeGO6pVI2gvtlEjfd2k
  EWOM7bUIXl4MxWiNRtspBVeOFOYHIoVA+Wchk/k8wlB5PEp4H4L2gacTkJplpGCCumEW3YcSGt
  cYnCdV6B+V00WZS4L30cYZn/MFKORx3xUK1Hqx7QggJlxZ+ZWdhHrFDyHRTZodMwItFOidEGga
  gWGIUroFc40amtyjA/p0oizCQeodfm0WxuFlfnkKyKZRrogTmq+1hmVdtHq4UXT//ImWGDN4kT
  jXjN0E58adhiFmiGWuSksmU9/oQk9tVZFmWW7BpQrQZ4jxGsZCE21GqK8BHtIugmyAdYY+m4qr
  rjZzbVnhNJGFBUF59M4qV1xdfUdUVOiccOG3PLHWUcOkPrytxP5SHKcnAdnbHsiHXtiQTLKaBb
  ImVv0npxH+NkSSSXIoxQss4YrskZzkIfwRt3H0tJNESob6Sw7WlUX0Wlp2UW5SKEMJj30INdM0
  Fy8zGI1Vv3G7D0xVz1KVM6lwna43qqV8C9aKao00UGdfJAbYvHyDVcdumd0rN8PQDbLaOaF2Y1
  qnmWNL0LT+LdOst4wyydov+W0P4DFxHA8hcD9/IjlCQntzo8Nx74R4massTpxFhxBo7eRh2Fz6
  HhVJnEZ3VFtRBek12Jj37LRnZnvrdnkhvNO/j36FEIwZfzwPyYu0PPNzK/987tE7Pz31NVt/fQ
  xfaL+9C31/f4Xa4ttgQvlIXKDA8Oy3z4UCCQAAOw==}
image create photo ::img::qs -format gif -data {
  R0lGODlhRwBgAMIAAH//1AAAAP////8AAP//AAD//////////yH5BAEAAAAALAAAAABHAGAAAA
  P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5vqz1wbZcnTt98Ksu4nnD0ywWHSE9xA0w6lzOj
  Mwk9Tqk5YNHC7UKIWeNP1CqXBIMAgUFor1ngKDM7UzrOrXRbvf9IOX92UTt0HWZjem59hk1McY
  NadYwnhQF6bG+TjWdkgQ11an+UUpSJfKJfgI+MoJlynpaJbmISqp2GuKGAAzqjDAOXp5ARjrdz
  pCWuJbyfzcCXmVySIVp3UbNMzMVnwMLDtZzUYYShrpbhpM+6vRXhIGW1mNHA6Krq4xbufr5flO
  bM43Z1w9cuEKsJeP5ZUYKm2zc8NAwCCgPxIUR4YtI01NhL/5I1iXM4FAhQYCK2cx+z5RloxyBI
  OcdUfVqmQ1mDNSfuTZxpSxyYk8xw4mRT7o1OFC8X7jt5U2g5TDyVaqC37V1SX5AUPZgVIY2UgV
  SvXl2GlaiiPUOjPNMz1RQ9sUSSER2FtuiWZ3JzgAW46p3cAXscnA2sY21enG1ncPTZKRQwxGZP
  +cKbl8+bLAQWWwXjGDAEraMM/20KmWjffZ0Jy4NnuNvQrbBPtzTqGePlWLw2dvYadR1jcaFiBY
  aKA++94KmYKNvH+fLjm89xN9y6Zq2n5YIaI34s9LnxmTcJXdPMXHtowGsye6bHe2d1jV3hmi/F
  /dTbXzDDCyZmDPjlZf/14QfeR0SZMhR2rMyHx1rWbTJJemhxJduDlFzkBQVnmdafVcEtyOCHII
  b4GWIbovZfMxjpoCKKvoDm4EScWZYWiyumyOJ+L4bUyXANhOjjjxXOJR81Qrl4IUJBplWiHVrN
  oiRwIkL05GZkHGgfcsMMgkZT6iQUVXnA4agfRVuudEobXQo54S7ExILlMby49hyaXlW2ZjYkEq
  Rkj7qpV+R9U4L5Dna4meIAewP5CR18gWZHJCqf9YioVxAKpp6aSxpi06GuSafbmIK91WiCj4oJ
  26R1rmZppznCVKqlQ13SFkvyvMYGq0O+U1tCw2VyHA512XrpqDCSUWdYwdE2EF3/g1Ena66o7X
  VNTsvWlJ5dOP6X6USuvafBe7SG16ytpVS4bTHSzsEbdcJytYU+jvq1AVUHURdZkXdY1qpUuCCF
  G1TX6meUP4SdO80xTfwCaG9pcdTMTsVSg5odeP0iBiRbJlOwBiOVpKPEHXHykXWL3SgyORXxK1
  NE7GRRsU8lnxjPWF6o5VBMQcQc5Mxx1VzcWz1Ri5lqPJPRMkJ/3TxNTmIE/A2ZIEsDrLcX1xHz
  xjuoXIw0kaWZoma6kJLwWE9/FNh7+X4CtrZVaX0w0hrPwpIhdSpnroP7QmqNcpXCx60o2n7pNr
  xZ811gJSr2SwtPeU+saYbaBDEKQyejbLQfU0xGiNLOgldCi6vyklBrgXhI/hLUVXB45OpIVwP6
  FUK4PjjsLsi+L+0r2J4U7ix8Pjvv/up4O/CipzI88TH6jvwTuy8fQwbOD3GBAqxXb30ECiQAAD
  s=}
image create photo ::img::kd -format gif -data {
  R0lGODlhRwBgAMIAAH//1AAAAP////8AAP//AP8A/wAA/////yH5BAEAAAAALAAAAABHAGAAAA
  P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5vO8yDQNdwDsu03etA1smnmQWPqRbRiGyKlDen
  FARlTq+bqhU7rRKzlrA4MvJ+S6gAYU1Qr93seHzooVOHVqZ9g+O4G20Mb3JsdA0aSiE8RlF7Pn
  1ZNzeBf4VZbYgDjh2LNY0dkpwSk4BKf5mbfqlZHAWSBaIUkoZvqGWriBuukgOwrKIlZCW1D7eg
  nLq8vX7BrCfCang2aE92P7mPyn2HQ89o3t10ntSKdLvLudqhAgZ13+/dmPDGAuczvnjqOJvg88
  OYxaoV4YWtnjJ8VOZ5Q1SrhCZ69tCZO4goQDt3/Raecoir/5mGc77IGbwRsmKLbgrJRbMlkM+W
  PeuYBTOU0tDJhy35IAO1RdWHjO844SxX5gMkmapQAhXaMVHCmfQKAl3oZ+idouCcNtvzTKm/qk
  2bbg36zVGiqT+t/gyLVmSdMWCjXqVaUR4YCA3/hQtI9AnZmYIqBCMmSN6psEWpPZgRmAFjbs/e
  nCQsWe5PMJqiPdYcYPOYyW7fYu18I1rXNowzE1pNCYLlt7OiBdr8uKbi1g5eC6VReBBp0x39oM
  5cUXdV1YVKBb4rgaFm4lpFP9E05wFAgHBWR3Y8PHfOO8khUwokGe/2NwO6Rwf2JLxN4PBLGyaP
  Wr3xS+ptjm/AayV83P+HfPcTar+ZAhyApTjnQHqdEXhfXQRostlM5JE2y3UO1NdgZ4hVk16EBZ
  7WmHkKzkCgawLWkdoamU1gl4ITfCihWtIpwluLEaoWD1f7LSghixw+CBh/ajw2XwQ9zrQiiB3a
  WOSTrWGnjWmUKPljIEJyCCKTCQ5pXmMmpbZSirFYl+F2/Y2IZZjUvbjWLYxtWaFzpSk3InOWkJ
  lUnG36h+AfB56UYWV6MsfnctkRcuaIgBRCI3tEOUbdmILBGGVyjGUZTpzB3dVdG9WVpimJtnVF
  m46z1TkqXqzJ4dhvWAYWW2iQJoTdZ5Jqyd+kHNJUKIST3UoYYJulWowpWerFUJX/gHpppncm0e
  pTNQFtpJcwl2iVVZZWfeZXTetN6+RlS3nkE03bNkkFjW2dhIy27tL15nRm2VaQuXeg9CtHGPkT
  IFLHuLNvkO+mVCNPR7l1VLiRdIWuwVCFFtO91+Cb1o7OGOzwHhGVNNE9YJSB00ZobWKAEhGBjE
  3HxdG77MPl7pQyOtQo03I53DRU8mXZ2EwNyxb3i3GpHlykTw8f08xwOtO0vHNZ4uhD8UtijTPM
  XrlR5W4yvIQEU61r5WwYGdHZMbPX3MZjl4WeNdfKKwDPO66ygwFSJ7YDVYxGFI00NfLahZSXY3
  8e6L13D33T82+igfdorU4C57GPWAO22jioRnkm9oUebOHq+QQcMDI5F1hEETTpSPywNOowmL46
  6yuIfjPsQDDBOe21I450p7iDwPfuvV/xevAumEB8Exco8PnyzEegQAIAOw==}
image create photo ::img::kh -format gif -data {
  R0lGODlhRwBgAMIAAH//1AAAAP////8AAP//AP8A/////////yH5BAEAAAAALAAAAABHAGAAAA
  P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5vO8yDQNdwDsu03etA1smnmQWPqRbRiGyKlDen
  FARlTq+bqhU7rRKzlrA4MvJ+SyxCgMBet9lqOHzooVOHViadVtgUfg1qDIJrgYN2HYh1J1FReD
  d9f1ElcpVzbUNKHIqJjD2OPjc1onqkNJWZbYllnJuhpqIaFKKphFmsZa+wgHcSarKZuD6Rerq7
  OK0nymiUqctPnkagkscDfQ8lDmjKg4SFzCE8pszUsNfZ3Nzb6Jiy7tDGPUPlpud0dsv5qu+tYA
  L0M85pADjpGbh1z8gc/KClIIddt+65SijrRjB4RSYtHOfu/54mhNvI9AP2cIuiWBGfdMw2IEDL
  lx8ZIsJxy8OPTfli5ithqoGwcCBoYlsIMpNLi+/CjSSK06USgzslomvpY2nMOjIftHyKUFMLj0
  evdsrVlCpLqlyD+cS5VRtGoCR5epzxVJ2bi05bevtJBd02tMDoHuI2h5lLNW0F8ZXJBrBTw4Lj
  dNtXEfGDX2+pEKDx1GzgrYJQ3dvs1JtVq4LXPs7EeXJhWaS3DsB0ukxbBmjphoyMquPL2+0yM2
  7Amafno3rlfP3sYAblO2U2zyaeWzduN3OOh6XuvPYT542x4d6aTTTz5rP1eg83u017t2O2oz+F
  WWl094bcbqgWwXlysf843YeYcvXZEAY649GnmHB1ZGdIgYkgBcZ4pM0BoD9PZEcgJz4Vl85hCu
  oHHTQamgYBgk59SBx2Ky62CHYmrlWeckaNB+OK61EB2mXKgWEZZspYQltYLkYInJAJ/eiVaPl5
  NqJSiWV3GzDmARMBjTkyFKVlJ16nTQXhWVhkU9idcttX8ohViBzJQbgIKyymd2YWEjIk2XWv2U
  diYxbFh9smccDRZpaLuCddf8d0kl9pz8l0Hy1anVmBlW606aSjGYJ4pmBU0njWV80JeumbGfZp
  4z1t4qeMh6lJ5+ZYGR5KXVowIqZbRdUldmFcSg1JF2CUiMbpqrlpRaii4eVVX63/hBT3V402jj
  nhIS8tW+tgnNJp1CnHAmosaYBaeOetq+bzXrc+rgjuNmIOtp1vORn0ZC+FwMSPKqCepy2v6FLq
  paKGGUZsZzImNa9MqUUEFkhTKbQKg0bK5ZNEO63EUsFYQeyKca2tJC8/+tH0sJ5KIYdUxROGZN
  MWNe0HK5R5pbgOUyntp1HLoQSokgRFNVVzPCOjlA1ZJuM1c1IGQVQTR7sKPFRUG898TB/uEHSN
  VUjjyzDSaBAEiTsQNY3XXcvZBeoyXvMBNixD7+wNbV1NrE3aX0czSpq5fNOMxzQ/Uo0RjxCDDN
  ZtFzJBX/Gw3S84gQAJKc+Jj7M4InfBxiYscn43QgoamgNOuM7dMGtJ5tb8g5Ldr7QNl53uEuL6
  WmoPdNMjNvOKeIOoXPLGG0tFzYQep/kpPAUlfdE0FzkU1DvyMACyPPMrKA+9E9IMPj0Sv1t/vQ
  6d13D89iF0rzr4TnxP/gomnN/EBQoM7/77ESiQAAA7}
image create photo ::img::kc -format gif -data {
  R0lGODlhRwBgAMIAAH//1AAAAP//////AP8AAAD//////////yH5BAEAAAAALAAAAABHAGAAAA
  P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5v65QNbNtyPd88e9KaVm+IEuaIyJGxlmx+lj+n
  dAONTp1LINXC7UaUv2xwFRiYy2fzAK1WW6ngYNT4FHbKjTVDj2a/4SI5gid/D08EiImKiHl/gC
  GDNDJ3EHUUiY4lmoGZj3KGHl6OO5CdYxxflCCEpHABBKZan6ihrWOZhJKhJbBxn3Zzgrq3OjO5
  hbyxwKRhFr+srJq5d8m+0JvQztObt9K7r8rZhuIU3qfd2669nJKV5BPm3N7pt+ul7ePP0jvTTP
  Py9cLJ2XeOSbMwswYeGxbQl4YCAQrQqlXIILB/3AjZW2XF/x9AfN9WYSMobWMdJT4WEtvHCpYM
  k7VQFkH3b5JGTNXYBUrRr+Y2BgQG4ATnUCSnixr7uXwVVCijnPd2WpoAC5NLRUwT6YHKUeYWpn
  1Y6Vm0CKjTp0mLPkFFNmwjoGXNOl3TUCckOQQE5N1b4gyhNXwY7cn6FAhRuyIbkMXkdzCfRoro
  6jocFdJSvZj5wmoM+PGZoEN1wFQVaOliTGWW6lktt7Cx0aiUmc5MO4/Lzm0I0wX6UmBpxVgV8+
  YTGHho0b5L+d3b8QHrNmtAS+adFvGT3K6bMWJNvSnacbC3gGncCyw+PHjcRH5HuetRd98ZDwZH
  uDwdWe5LCbb4zLEfRP9C7dacHflxJEFsXXhnnywEnqTTQQ4UFgRqEQIYjT7WUbRMXxQa19F+/A
  yUIWmG3WTGUlwgmEplBjbHoVN+AJZKFWAl595BvAR322Co5ciejYccmBpjacz3WnmqbTUiW+Tk
  eCJ16EXnkohg5aZWKPZN+eJmuXHXyit67aEki0GCVJ9wRkYH5Zm8XXlHljKcxWWXZtWgWWbCuc
  lkOxN6N5+XQcF1Wp5LUmHfSwBy6UCRYoJ5Z16EkonlNRzK5xx6jZ52GZCTanFmYKrhQcMZtDGH
  UKET9jOXUMZR+FgfbU0k6ZvHRHaVpvONKqVHH5G4in1yVoWasFU5sxaq1WR1omn/CBH1E6+7IO
  usVloStFCzPOlp6E1oWVvTSDNJe+iUOhjmCkMkcEorNirRcy4l0A4YmxLlAXLtV79QdKwn+JUp
  77XBnGpQQuyS1GCnyKg0TD/GgMSSO7K5e+8jx3Tx8DgRfzRxQReX82O/CIeUzhwdw9PsJCCvm7
  C1g0AIT0bMZLyyOHwGPNlFGKa8Z0UKU8PzwfKK95vGDTuoIq/qqjiVsfDakvS7WIJ4oIZI11yM
  V6GAqulooNBizNVSZZ0GcW+Jqm+0G+rMbxDQueH22JJlS2UzYIhiN9MlingFFvztLUXffifBTy
  yBk3HhwYXDIAbiiaeUjdqNp1vMEZHzXTkWDhlcTsQFCtzt+ecUKJAAADs=}
image create photo ::img::ks -format gif -data {
  R0lGODlhRwBgAMIAAH//1AAAAP//////AP8AAAD//////////yH5BAEAAAAALAAAAABHAGAAAA
  P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5v65QNbNtyPd88e9KaVm+IEuaIyJGxlmx+lj+n
  dAONTp1LINXC7UaUv2yQNSibz2i0lbP2iLXtsTs9CNTv9nxcHsr5T3FMHQx4dQQBh4mIe3wgfz
  QybjsciokEl5iYjFp9myWDEG6ZhxOdnkJ9bBKgD46BdadrslulVJ+Ajp+DsGCqVmEWtritM216
  vUGTwBXCt4CPc6iuya3OXGPDbM270k/PX9/Bt+O22NGxkKHhzOO45eRsvCJ/xOmRoe26kObc6E
  DPcnYsi5INoDlj8jpxKBCggDZJxu61yyLt2LxfFSFmzLfH/x3BhNPmpShIjmBJKiC9KSGhI4wz
  jsl4WVQo0lRClzihyJwZMpU3Q7Ba6hpmiJCMQyklrWSlR0/QekajpksKamlMp0ZJFYJQVKYmqq
  qWMrj0oCsiUg7wNPXaAOyWlYjKRF17lsCZsou8fu2m9OIAsmmjGroUtAzZwkcD++tj96/RrUjP
  pjkstS7lxY4I4537NIJZQGir0ezzV2seM1hNXq2MFDXfqvMMB0ach08YWGwLy0XGWO5pO3LN5i
  uBO/Fu4JifaG5L1+i7PJEbAPbD21Hpx8CDOzdJN+ioST0zO2b+tLgE87X0hVduV3B2rHR8dxYE
  XuXFRbOZN+X6mLa+5P9uYAMfHu2NNR16vlVRnTdVJIieJoREpt0xLl1k1TO6peYZZ/vhByBTtO
  DVXnzFoWbedQsGSI1+7p0XHXbSOZYiU9/BWBt3JZqoh2Yz+pLOdNDVZhttv7VFVo8o1UFcUTQU
  dxBxeb2nlmxIBuFakE0695+VHD7V2Ie+3HVIllLZNuBWkoEZogNjZtUhfxymdaSFflnWJlaEoU
  GZhEU2NiadnXiJIXN5GnkZega6lQwYgx3pZmdn7BUnlWqutgiZ8EGwZ4eANWJfoHUN+iJ5O6am
  1kOjufIUpjudFydflWZ5JyyRTfSPnDyhup4kOwVFzVDAWlpTqj8NipOtHn3DUpX3WZaTTUAwef
  LOrqAoCW1Hw2EkyLTbvqaKtYtCES2sr1nBkENv1RmgO/8Ml05ATADzEieqGjMUKiTZMwxUq3i7
  BbjbqJevF9aoEwvA/AicbRcFE3Owvao9ORAzE79RL4PKSkSQOBvT9/C6LekAzzUCV/TxIApL7M
  sqnspyMmwabatvt8zKvLKmmUQkmqd9ETvIKN9VEjPIj/jLMxuVLMInVTYX/K7R6lX7WyFpBJIL
  JxY/YR2JXEv7nLz0YuzF2OKEC/YVWMTrNdoxZM32EAKt/XYRBkE990hg2333feGEvfcKxQj1d9
  qDY5FB4URcoADZjDfOhQIJAAA7}
image create photo ::img::td -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbCMFgwzNa1S8+zzaPjG6MBe8QPLhgbFpeao1LIjIZ+uSRUunQKr5lk
  0avSWsGYHdEcpiJlZDa6pmuDxGxNnHu6yz1iXVe/9wEYuOEEhDfIkuhjMogn6MhI4vgGSVnich
  F4mReJ+ePWsagySpIZx1HaCHhyhLqh50EY26r2Cusn+qiZW+vWizsLbLdrBHorKnsnewN62KNa
  lClzxio1/eXJhA1NSdjinB3dw12yaQ3brLg7/gy+gly2HFzcUa4cz1upPzwXbjmP2J52HO6lQm
  dHF61PqwgedJjB4B9Ok7wxNKcNI0QM/xIFBuy00NQ/fB8bljRG6qTJfShTsgRZr+BIEC9dsuiY
  bMk3ezOx+MTpM0vPoFGAEiU39Ki0pEqRwmGyU+a6qDRjSnVpFSBVjkwn9luZlSvMfBVD+hv7ta
  rZlmURtl3LU2NGrW7jyoVLEm+hrvzIUnuo0u7dtC83ikU7kHBgwSsBF07Lh+9Ex4q3HoancLHl
  yzrnEjE6WO9NyaEhq5NiWFBE0qU3C+ScJ2+9nbdAyxNW0x3lJLZ/4c6b2Uxv0bgr57Kd2qvf2q
  ST39Z8BTTF1sXIGPW2FfvFt4t3m16NOKzyfrmEIK/LvdIy86xF022zZc0UeN/VPoqvpHeoaonr
  sDl/qpMu/vHGWlN/DGiBfgbyguB8C67ToIIP4vffg/T5UaGFWNXhoIZCebhNBSCSQ4EEJp6Ioo
  kGFAAAOw==}
image create photo ::img::th -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbCMFgwzNa1S8+zzaPjG6MBe8QPLhgbFpeao1LIjIZ+uSRUunQKr0Co
  zvSV7XziZ1L81XE5amSYpLWe2+43u921e+JlNF398UdXEvcmiOdxCAhHJXelqKcBOQbiAjK5lo
  F5ZvRDMvkJSVYCeilK6LlDeaEIdnhyVLUmyEpp+KcSi6i5i9e7O0q7sZin+rsajHvHuYmBPFqc
  6cxbympjWbzSnOWJxrJdhC1jUx3eTVROJI7+GrXOPij13nH7CFzPWXmeCHhv50tMHymAAVcNii
  cwVLp84DoNTCcJE6qHp+hJZESxFT+I/xzmDau4sR3GjMoCgXToSpjCkiNTAlsZsKXLZzCl7dkH
  k1wkmSdo9rSJ8luRfLBwYjk6BalSDB6XcnO6tGmgodeMmiKqwmfCrDszspD6MSZJrEHHAg37cm
  tNsRZV8gzptq1ItSY11p1bFi7eiBw3gPVjd9nJDn+jxeU7uKNVaicZXqQr11hBe/3SKp5Zh7Jm
  WVqbLEZca7Pm0GQvSzms7rO2vT0Km2VbNUrfT56ZNEyZwfXVxHc56dbEOPCL3lB+h3b2uEvkMM
  azAeZsq6sw4wgJRmc7XXVwfKRJi00zRrdwvd9lXXA9G/l4wtqfIyRv2fTu9ep5117LEm3gMEIK
  32FGbBdAFviXnH4ibYHEgO0dFJ930HkhhxLoVdbVdtEgV0Z/7fnRHUUd1pJhEs1BBeIQGpKoU4
  gKolgDghJuyCKGJooIY4zPvWjjai4mleNTPYZTwY88TGCABEYeiaSRBhQAADs=}
image create photo ::img::tc -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbh+Lrs3MIpQ+eoPbqyDuT4erygcTN8WX7HYzLZjD6LQmYNVlsStdUE
  bcGacjWNME4lVpLPaPaO676Ur4qsut617rz2kvev1xUz+OYnQSKBBWLFJ5eoiPRomAHmmPjxCN
  nBVKl16ZE5idHpeRPDifp3qrmJdfM66uNJiWe5NFsYEcm6GtjYVjoX+2tZOxyIyfNAR2wko9ps
  GB3EiJxMhC2lOX0N0WTd9knNayYOBN6qGGprVv4Dhv1uXHgiTKh8zN3K7NtPKlovTrBd8xCRA1
  VwD7pIAbPpo+VwoSOFyxYdAthNF0Jz/wilXUz3MZlHjSBJihwZYpVBaAmrNLxFaCXMh7Rm0Lxm
  82DJLy1PRvnpEqjQmkOLqjEqVCJEpWtursmp02LUoNJmKuWDj55UU//y9FCJcWNIgiY7rhzbFC
  3VjN7Elt030sHZigZfApo6625Ad3jJtguXsGuvvhMBTzss0CI/dbJiDu7TUB7LX4IVl8vXFhdk
  HevGOZHkjPBWui+Jfo4oml2spD1xZhujrbLbM0yLsbJnO+2c2qqXIr7dlilWzQOHWWU86FlfeG
  B7q4wH6Z/Ezl4zN4fNljRZ69LxUt+uvdlVtbrlhnX9anl6x5YN8+SGB0pkp7714JBPkffjp0rw
  x0NNvR9RsBw133v9wEHFFZwhk4Z+SBU2oIMP3rEFgRPu1V+CF2IYIYAX3qfhhgqNIaGIDJnoTA
  UockZBJi6+COMEABQAADs=}
image create photo ::img::ts -format gif -data {
  R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
  uz3rz7L0wBSJamiZzquqbh+Lrs3MIpQ+eoPbqyDuT4erygcTN8WX7HYzLZjD6LHZjOWlsStVVm
  DXuacpEK2oIlVmoaaJxqWs483g76OI6J7Oa7PYQkAebh1aUHEtgHGCgot1jixbjImOeo2CgoKX
  cp8Yh1RllGhBcDmhASY2qp9XkRx/PDirq0OklGG3sp5LZGqMrHm1qKi1o7+Lrrx9Ykc6MWxukE
  FkxnaMQ0nfxnXUwNHdTbhrhtttmMfDoD/oHtSpvbFg6OLQzfPU9MNnzIDXy+r5yo069/dQISHF
  hImypF1Yw1XMfvlkJd4vYJ9EYRo7GL/w/7ddTFsQcxbjhE3bN1cZYsgipHQUynjiHMeBEz1mwU
  JedGnTxx9vzpDKjOmDbNuOwE8ybFmSnRHc1nwx1ShqZMxiw5curBiVA/otyK0CPXLiHDlhsLsq
  y/rgUXgl0rFqDFbPpswk1Ll+jZk2TtEdInV+szvoSfzv2yqSU7vV9bnD11TqnPb5UoR6sIhDFV
  rxClSe6MVialZRotbRlzuW1eKvbiQjLMR/O7uEvtptLcbuWtUoqv7WKMFdm04LhiAa+sshXyVZ
  NBc5ZoFlPNTA5L431bd+9dXqsNa8/OvfvNjq5Yq5UctqT5sjT/FoHSOmmvNLJBXZH3fn2Ybztv
  6DEX+gwX8AGYhRIDEhiggf8hOJd/qDGYjRr1QbjSgRTmMOGFQlSgIYYUSAJiiCJOAEABADs=}

image create photo ::img::spider -format gif -data {
  R0lGODlheABwAOf/AGxGPHhHNIJINYVNL3pPRIZMQXlRTIFRPIBRQXtVPH1W
  OHpWQoJVM4lQPoNUOYhTOoxROpVRN4ZYQo9WN5NWLoVYTYtXQ4pYSYdaSZNU
  SnxfTpxQS4xcOo5XUoFgSJNYRpVYQYliMZFeMoRfUpRbPZFcQoxeR4phPZhb
  OIdgTKhSP6FZL4liQ49fQ4phSDOFdVF2dXhrRkZ+aaNVSIBkWp5aPpNeSkh8
  drBWLa1ZK0t+cY9iUI5hWaRcOJ9fN5RgUYhnUKBhMpZkPplmMZ1iREWGeKtg
  L7NaPKBjQK5cQUCJf7FdN7daOKphNqhfTEqJc51rN5JtTLRgP5BvV6JnU61l
  QVCJgkuNfphtWEeOhbFmO1WJfJRuYleKd6prO45yZZJwbqtsQqNvSGCJeKht
  Sp9uYmKJfmaHgl+Lhp5wbHeGZVmQgq9yOVqRi516YKR5U554bZl8aaZ4X5d9
  cF+YiF6Yk7J3Y2+ViWmYi5+Hd6aGa6aFdnCcmZ+Jg2ihmniamcKCUHifhHOh
  kmmmlrCHe7SIcbiIabuLU4OdjXugk4CelbCOgKqRgY+bnIWlm3mrnKWdd4Wq
  kISqnXevqa+ai3+urZqjn8GYc6ufkNOVXX+zo8aWgbKdlLubh7ubk76fgJCu
  rZSvoIyzpcSckZSyqNGiaMueoY67sr2noMelkMGpmp+7sqe4sLq2lb6yoJzB
  sJ3DqqXAsZXGv6LBv8izpOGqk9uumM+0nNOxpdutp6jGveGzjbPCvc26uMm+
  rtO3ut23n9K9sKbRv57UycnButy8tbPPxr7NxarWzrnP0LLT0dLIubrTw9HJ
  w+3CntrHxL3Xzs/PyOXJstzOteHKv8fXztbTw97Sw+bSzrjp3+Pav/vOvurV
  yePX2dLg2ubZytDg4cjl3t7ezdzd2Nbh1dDn2NXozuTf3+jg2d7l6url1N7q
  3tzq5Njr7OTp1+bn4PDk1vnh0/3hyvbk4t315uP13frt3OX08O7z4en16N35
  9fTz6vD08/j04/v08P///yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQB
  CgD/ACwAAAAAeABwAAAI/gCzCBxIsKDBgwgTKlzIsKHDhxAjShR4paLFixcn
  atzIUSJGhx87ihw5MSPBii9QqryS8kpBjC5Jypxp8WTLmAxZojRYc6ZPjRUH
  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
  VHNOPQftC8sqBwK0TEIX1elLG+9klKGAAAA7}

  proc initSpider {} {

  global p data

  menu .m -tearoff 0
  . configure -menu .m
  menu .m.g -tearoff 0
  menu .m.a -tearoff 0
  menu .m.o -tearoff 0
  menu .m.help -tearoff 0
  .m add cascade -label "Game" -menu .m.g -underline 0
  .m add cascade -label "Options" -menu .m.o -underline 0
  .m add cascade -label "Actions" -menu .m.a -underline 0
  .m add command -label "Deal!" -command dealRow -underline 0
  .m add cascade -label "Help" -menu .m.help -underline 0

  .m.g add command -label "New Game" -command newGameSpider -underline 0
  .m.g add command -label "Save Game" -command saveGameSpider -underline 0
  .m.g add command -label "Load Game" -command loadGameSpider -underline 0
  .m.g add command -label "Restart Game" -command "newGameSpider 1" -underline 0
  .m.g add command -label "Quit" -command exitGame -underline 0

  .m.a add command -label "Undo" -command undoMove -accelerator "Cntrl+Z" -underline 0
  .m.a add command -label "Redo" -command redoMove -accelerator "Cntrl+R" -underline 0
  .m.a add command -label "Deal Row"  -command dealRow -accelerator "D" -underline 0
  .m.a add command -label "Show Move" -command showGoodMoves -accelerator M -underline 0

  .m.help add command -label "Help"  -command showHelp -underline 0
  .m.help add command -label "Changes" -command {showHelp 1} -underline 0
  .m.help add command -label "About" -command {showHelp 2} -underline 0

  if { $data(platform) != "unix" } {
    .m.help add separator
    .m.help add command -label "Show Console"  -command {console show} -underline 0
  }

  .m.o add command -label "Difficulty" -command setDifficulty 
  .m.o add command -label "Playing Cards" -underline 0 -command showCardBack 
  .m.o add command -label "Background Colour" -underline 0 -command showColor 
  .m.o add command -label "Panel Colour" -underline 0 -command showColor2 

  canvas .c -bg $data(canvas_bg) -width 800 -height 580 -borderwidth 0 -highlightthickness 0

  ### bindings ###

  .c bind card <ButtonPress-3>      {displayCard}
  .c bind card <ButtonRelease-3>    {restoreCard}

  # .c bind topcard <ButtonPress-2>   {dragStart %x %y}
  # .c bind topcard <ButtonRelease-2>   {dragToEmpty %x %y}

  .c bind topcard <ButtonPress-1>   {dragStart %x %y}
  .c bind topcard <B1-Motion>       {dragging  %x %y}
  .c bind topcard <Shift-Control-ButtonRelease-1> {dragEnd %x %y 1}
  .c bind topcard <ButtonRelease-1> {dragEnd %x %y}
  .c bind newdeck <ButtonPress-1>   {dealRow}

  bind . <Control-d>     {cheat}
  bind . <F1>            {showHelp}
  bind . <F2>            {newGameSpider}
  bind . <F5>            {newGameSpider 1}
  bind . <n>             {newGameSpider}
  bind . <F3>            {setDifficulty}
  bind . <KeyPress-q>    {exitGame}
  bind . <KeyPress-m>    {showGoodMoves}
  bind . <Control-z>     {undoMove}
  bind . <KeyPress-Left> {undoMove}
  bind . <Control-r>     {redoMove}
  bind . <KeyPress-Right> {redoMove}

  if {$::tcl_platform(platform) == "windows"} {
    bind . <MouseWheel> {
      if {[expr -%D] < 0} {undoMove}
      if {[expr -%D] > 0} {redoMove}
    }
  } else {
    bind . <Button-4> {undoMove}
    bind . <Button-5> {redoMove}
  }

  pack .c -expand 1 -fill both

  # wm geometry . 800x600; # 800x550
  # decide geometry when initialising the canvas
  wm resizable . 0 0
  wm title . "$p(name) $p(version)"
  wm protocol . WM_DELETE_WINDOW exitGame
  catch {wm iconbitmap . -default ./16.ico}

  # catch {wm state . zoomed}
  frame .c.f -height 100 -width 200 -bg $data(canvas_bg2) \
	     -highlightthickness 2 -highlightbackground black \
	     -highlightcolor black
  place .c.f   -in .c -relx .5 -rely 1 -x -100 -y -125
  label .c.f.l -foreground darkslategrey -font $data(font_large) -bg $data(canvas_bg2)
  # setPanel "Score: < Not Playing >\nMoves: < Not Playing>"
  
  bind .c.f   <ButtonPress-1> {showGoodMoves}
  bind .c.f.l <ButtonPress-1> {showGoodMoves}

  if { [package vsatisfies $::tk_version 8.4] } {
    trace add variable data(score) write setBoard
    trace add variable data(moves) write setBoard
    trace add variable data(undo)  write chkUndos
    interp alias {} lsearchall {} lsearch -all
  } else {
    trace variable data(score) w setBoard
    trace variable data(moves) w setBoard
    trace variable data(undo)  w chkUndos
    proc lset {var at with} {
	       upvar $var upd
	       set upd [lreplace $upd $at $at $with]
	      }
    proc lsearchall {args} {
      set ret {}
      if { [llength $args] > 2 } {
	set op   [lindex $args 0]
	set list [lindex $args 1]
	set find [lindex $args 2]
      } else {
	set op "-glob"
	set list [lindex $args 0]
	set find [lindex $args 1]
      }
      for { set i 0 } { $i<[llength $list] } {incr i} {
	if { [lsearch $op [list [list "[lindex $list $i]"]] [list $find]] != "-1" } {
	  lappend ret $i
	}
      }
      return $ret;
     }

   }
  focus -force .c

  for {set i 1} {$i <= 10} {incr i} {
    makeTray $i
  }
  dealRow 10 -1 0 0

}

proc setPanel {text} {
  .c.f.l configure -text "$text"
  place .c.f.l -in .c.f -relx .5 -rely .45 \
    -x -[expr {[winfo reqwidth .c.f.l]/2}] -y -[expr {[winfo reqheight .c.f.l]/2}]
  # pack .c.f.l -expand 1 -fill both
}

# borrow tkhearts help listbox widget

proc initHelp {} {

  global help p data tcl_patchLevel

  # basically each help text ("k") is just a list of {text format text format ....}
  # where format is the text "tag" that determines any special formatting

  foreach {i j k} {

    0 TkSpider {

{Spider is a thoughtful game of solitaire played with the equivalent of 2 decks of cards.  There are initially 10 columns, made up of either 1, 2, or 4 different suits.  The aim of the game is to remove all the cards.

Cards are moved between columns with the aim of forming descending runs in any suit (eg 6,5,4 spades). When complete suits are formed (eg KQJ1098765432A hearts) they are removed from the table, and thus the table is cleared. A card ~may~ be moved onto another of a different suit, but that card can no longer be moved. (eg you can move a 5,4 hearts onto a 6 Spades, but the 6 Spades can no longer be moved till the 5,4, hearts have been taken from it).

When there are no moves available, you can deal another row with the 'Deal' button (or by clicking on the extra cards in the bottom-right) and play will proceed again. If there remain cards on the table, and no more cards to deal, then the games is lost.} {} \n\n {}

Features title \n\n {}

{Right clicking on a face-up card will momentarily raise it or the topmost card in the same run. Another hint is you can see if there are  any available moves by clicking the Score Card (the box in the bottom-center of the screen).} {} \n\n {}

Scoring title \n\n {}

{You start the game with 500 points. Every time you move a card, or undo, you lose one point. Dealing a row does not cost any points. You gain 100 points for every stack you successfully clear.} {} \n\n {}

Undo title \n\n {}

{Undo is selected from the actions menu, by pressing left-arrow, control+z or wheel-mouse. Multiple undos are allowed - but not prior to dealing a new row or removing a stack. The right-arrow or control+r will redo previous moves.} {} \n\n {}
 
Difficulty title \n\n {}

{There are three difficulties: Easy (1 suit), Medium (2 suits), and Hard (4 suits), Changing the game difficulty is done in the 'options' menu - which will then restart the game.} {} \n\n {}

- title \n\n {}
{Spider is a relatively interesting variation of solitaire, and winning with four suits is not impossible. Have fun.} {} \n {} }

  1 Changes {

{1.1.1 Bug fix for Tk canvas nonsense} indent \n {}
{1.1  Add wheel-mouse support, simple game saves and loads, and move config files to a directory "~/.tkspider". 8-Feb-2011 } indent \n {}
{1.06 Help menu up/down key bindings 26-Oct-08 } indent \n {}
{1.05 Replaced Control-n newgame binding with 'n'. Changelog typos fixed. 17-Feb-2008. Removed circle from end-of-game picture 12-Apr-2008 } indent \n {}
{1.04 Restructured 'help' and 'about' widgets, adding a 'changes' widget. Re-did some code indentation and removed old showGoodMoves code. 09-Nov-07 } indent \n {}

{1.03 Cool new spider cardbacks (thanks www.fotosearch.com), looked at tidying the ugly panel widget.. but only changed the font a little. Removed sound support till libsnack works properly :-< Added an end of game dialog 15-Oct-07  } indent \n {}

{1.02 Changed right click feature to work with all face-up cards, which necessitated a new "cleared" tag, fixed bug of right clicking on complete stacks, gave "help" a tweak 31-July-07 } indent \n {}

{1.01 Fixed a typo in rules, changed "Rules" to "Help" added a cheat (shift+cntl moves cards to anywhere) 4-July-07 } indent \n {}

{1.0a Little bug, small edit of "rules" 28-June-07 } indent \n {}

{1.0 Change cardback widget behaviour 3-June-07 } indent \n {}

{0.99  Added mini feature: right clicking on bottom card will raise the topmost card in run - useful for when cards are packed up added mini feature: right clicking on bottom card will raise the topmost card Feb-07 } indent \n {}

{0.98a Fix last card mini-bug and changes undo/redo keys to left/right Jan-07 } indent \n {}

{0.98 Basic sound support with libsnack, added a window manager bitmap Dec-06 } indent \n {}

{0.97 Redo feature} indent \n {}

{0.96 Bug-fixes and changes on Mikes feedback, including "rewriting the rules".  gave the card spacing algorithm a little rewrite removed end of game and confirm quit dialog removed some menu separators,bindings and added an actions menu fixed the little "grab two cards" bug merged hearts and spider, then undid merge ! May-06 } indent \n {}

{0.90 There's still bugs here, but they are fairly minor. Increased deck spacing. Changed "move", "shuffle", "dragend" procs. 23-Mar-06 } indent \n\n {}

{The below changes are some of the many to Mike's original Spider program, at the Tcl Wiki. At one stage someone broke all the games by moving the card-backs to another file... Wiki's are definately not the place to write games.. Laugh!} italic \n\n {}

{Aug 29th 2005 Mike's 3.5 release} indent \n\n {}

{July 29 2005 ... And just a quick note: Please don't comment out things if you haven't looked to make sure you know what you're doing. Someone made a change and commented out the set app(author) "Mike Griffiths" line, thus breaking the 'About' dialog. Presumably this was someone who wanted to point out that they'd made some changes to the code - there's a "credits" section in the help. Please feel free to add your name into it, but don't make unthoughtout changes elsewhere and break it for everyone. Thank you.} indent \n\n {}

{July 16 2004 - Updated the canvas-animation code so that it actually works ;) Anyways, enough rambling. Here's the code (written and tested only on Win XP Home)...  LES: Tested on Windows 98 SE. Impressive!} indent \n {}

{July 15 - Added some animation when dealing a new row, and clearing a complete column/stack, with the code from the extremely long-titled Move an item on a Canvas Widget in a Straight Line (animated)} indent \n {}

{July 6 04 - UPDATED: Some major changes to the code, hopefully completely removing every last bug (famous last words). Tested (albeit briefly) on WinXP, there appears to be absolutely no point at which you can pick up a card when you shouldn't be able to, put a card in the wrong place, etc. Just don't quote me on that :) Should still work with Tcl/Tk 8.3+ . If anyone uses this newer version and finds a bug, please let me know. :)} indent \n {}

{June 11 - Several new fixes, mostly stopping you picking up cards when you shouldn't (like while you're dealing a new row). Also, a change to the scoring - you now get 100 points when you clear a stack/suit, the same as in MS Win XP's version. The help has also been updating w/the scoring changes. Generally less buggy, hopefully :) It also now works in Tcl/Tk 8.3, as well as 8.4, by supplying a (very crude) version of "lset" and "lsearch -all", as well as checking which order the arguments for trace should be in.} indent \n {}

{May 18 - fixed the bug found by KBK (see below code). Changed to version 2.0, and will now make a conscious effort to change the version number every time the code changes, since I hadn't been :P} indent \n {}

{May 17 - Another fix; now you can only deal one row at a time, too, whereas before clicking on the new decks rapidly and repeatedly started dealing several times at once.} indent \n {}

{May 17 - Changed the way the Show Good Move feature works, since the old style looked a little crude, IMHO. The code for the old way's still in there; the $animatetype variable set near the start (which should be 1 for the new, 0 for the old) controls which is used. Also fixed a 'bug' in the same feature that allowed it to show multiple moves at once, thus making it totally unusable. Now it refuses to show a second, while the first is still playing (win XP's version queues them, but this was a heck of a lot easier:) The bug reported by LES mentioned previously is also fixed, now.} indent {}

{Apr 28 - Updated so that when a column has more than 12 cards face-up, the (vertical) spacing between each card in that column is smaller. That stops the problem with the last cards in a column disappearing behind the scoreboard, or blocking out the new cards to be dealt. Also fixed a bug which appeared if you clicked to deal a new row quickly, which made it try to deal more rows than there actually were.} indent \n {}

{April 27 2004 - Ever since I started learning Tcl, I avoided the [canvas] widget like the plague; when I first started, it looked far more complicated than other things, and I just never got around to learning. But then it turned out to be the only way to do something I needed, so I learned, and sorely regret not doing so before; I've been missing a lot. So, to practice my skills with the widget a little -- and after seeing Jeff Godfrey's cardgame, Once in a Lifetime, which looked (deceptively:) easy once I read the code (reading it is always easier than writing it, alas...;) -- I decided to code a version of Microsoft XP's Spider Solitaire game. A few of the routines are taken, more or less directly, from Once in a Lifetime, as are the card images (originally from scat, and [1] before that, according to Jeff's page). Although it got easier as I went on, I was kind of lost at the start, and would've been totally so if not for Jeff Godfrey's code as an example, so thanks very much :) With nearly all the features of Microsoft's Spider Solitaire (apart from sound effects, as I couldn't be bothered finding decent .wav files, decent animation (what's there is poor), and the ability to save games (quite easily added, but for when I've not been spending 7 hours straight on it), it's quite complete. It has rules/help, but they're terrible - I'm no good with help-files at the best of times.  There's also a hidden cheat which lets you see what all the cards are (and toggles it off again). Though, given that the code's not compiled, it's not all that hidden, I guess... :)} indent \n {} }

  2 About {}
} {
      set help($i) ""
      set help(title,$i) "$j"
      set help(text,$i) "$k"
  }

  # end foreach
  # now mix the variables into the about / change

  set help(text,2) [list "$p(name) $p(version) ($p(date)) by Steven A (with feedback from Mike). Available at the $p(web).\n\n" {} "Based on: Mike's Spider Solitaire $p(mike_release) is a Tcl/Tk version of the solitaire game shipped with MS Windows XP.  Code by Mike Griffiths, with some code (and card images) taken from the game 'Once in a Lifetime', by Jeff Godrey. $p(mike_email)\n\n" {} "Tcl Version $tcl_patchLevel.\n" {} ]


}

proc showHelp {{topic 0}} {

  global p help data

  set w .help

  if { [winfo exists $w] } {
    showHelpTopic  $w $topic
    wm deiconify $w
    raise $w
    focus $w
    return
  }

  initSubWindow $w "$p(name) - Help" 0

  pack [listbox $w.l -selectmode single -font $data(font_default) -width 12] \
    -expand 0 -fill y -side left -anchor nw
  bind $w.l <<ListboxSelect>> "showHelpTopic $w"
  pack [text $w.t -width 50 -height 25 -yscrollcommand "$w.s set" \
                  -wrap word -font $data(font_default) -padx 5 -pady 8] \
        -expand 1 -fill both -side left -anchor nw
  $w.t tag configure "title" -font $data(font_large) -justify center
  $w.t tag configure "indent" -lmargin2 15
  $w.t tag configure "indent2" -lmargin1 8 -lmargin2 20
  $w.t tag configure "italic" -font "[font actual [$w.t cget -font]] -slant italic"
  $w.t tag configure "link" -font "[font actual [$w.t cget -font]] -underline 1" \
                            -foreground blue 
  $w.t tag bind link <Enter> "%W configure -cursor hand2"
  $w.t tag bind link <Leave> "%W configure -cursor {}"
  pack [scrollbar $w.s -command "$w.t yview"] -fill y -side left -anchor ne

  # populate list, show index topic
  foreach x [lsort [array names help -regexp {^[0-9]+$}]] {
    $w.l insert end $help(title,$x)
    $w.t tag bind goto$x <Button-1> "showHelpTopic $w $x"
  }

  bind $w <KeyPress-q> "destroy $w"
  # there's a minor unresolved issue with wish8.5 and focus
  bind $w <KeyPress-Up> "$w.t yview scroll -1 unit"
  bind $w <KeyPress-Down> "$w.t yview scroll +1 unit"
  bind $w <KeyPress-Prior> "$w.t yview scroll -1 page"
  bind $w <KeyPress-Next> "$w.t yview scroll +1 page"
  focus $w
  update
  center $w
  wm deiconify $w
  showHelpTopic $w $topic
  $w.t configure -state disabled
}

proc showHelpTopic {w {topic {}}} {

  global help

  # show a specific help topic in the window
  # $w is toplevel, $w.t is the text frame

  if { $topic != {}} {
    $w.l selection clear 0 end
    $w.l selection set $topic
    $w.l activate $topic
  }

  $w.t configure -state normal
  $w.t delete 1.0 end
  set helpFile [$w.l curselection]
  $w.t insert end $help(title,$helpFile) title
  $w.t image create end -image ::img::logo -align center -padx 20
  $w.t insert end "\n\n"
  foreach {text tags} $help(text,$helpFile) {
    $w.t insert end $text $tags
  }
  $w.t configure -state disabled

}

proc move {c item tox toy} {

  set steps 10
  set time 1

  scan [$c coords $item] "%s %s" origx origy

  if { ![info exists origx] } {
    puts "Error! \[[info level 0]\] / [$c coords $item]"
    parray ::data *,$who
  }

  ### move card
  set dx [expr ($tox - $origx)/($steps)]
  set dy [expr ($toy - $origy)/($steps)]

  if {($dx != 0 || $dy != 0) && $steps > 1} {
    # do (steps - 1) moves in loop, then the final move alone (to end up exactly on spot)
    for {set i 1} {$i < $steps} {incr i} {
      $c move $item $dx $dy
      update idletasks
      after $time
    }
  }
  scan [$c coords $item] "%s %s" nowx nowy
  $c move $item [expr $tox - $nowx] [expr $toy - $nowy]
  update idletasks
  after $time

}

proc setBoard {args} {
  global data

  setPanel "Score: $data(score)\nMoves: $data(moves)"
}

proc makeTray {col} {
  global data

  # Make a 'tray' for each stack of cards. This is a totally invisible
  # rectangle on the canvas, just so we can tell when we're hovering over
  # an area of cards.

  set x1 $data(col$col)
  set x2 [expr $x1+[image width ::img::back]]
  .c create rectangle $x1 10 $x2 800 -outline {} -fill {} -tags "tray.$col immortal"

}

proc cheat {} {
  global data

  if { !$data(cheating) } {
    foreach x [.c find withtag backcard] {
     .c itemconfigure $x -image ::img::$data(card,$x)
    }
    set data(cheating) 1
  } else {
    foreach x [.c find withtag backcard] {
      .c itemconfigure $x -image ::img::back
    }
    set data(cheating) 0
  }

}

proc clearBindings {{rtag 1}} {

  # --- remove the bindings from all cards
  if { $rtag } {
    foreach id [.c find withtag topcard] {
      .c dtag $id topcard
    }
  }
  .c bind topcard <ButtonPress-1> {}
  .c bind newdeck <ButtonPress-1> {}
  .m.a entryconfigure "Deal Row" -state disabled
  .m entryconfigure "Deal!" -state disabled

}

proc updateBindings {{clear 1}} {
  global data

  if { $clear } {
       clearBindings
     }

  # --- add bindings to only the top cards
  foreach card [getTopCards] {
    .c addtag topcard withtag $card
  }

  if { [info exists data(newdecks)] } {
    foreach x $data(newdecks) {
      .c raise $x
    }
  }
  .c bind topcard <ButtonPress-1> "dragStart %x %y"
  .c bind newdeck <ButtonPress-1> "dealRow"
  resetDealOptions

}

proc generateGoodMoves {} {
  global data

  # Work out which cards (if any) can still be moved.

  set data(goodmoves) {}

  for {set i 1} {$i <= 10} {incr i} {
    if { [set temp [lindex [getTopCards $i] 0]] != "" } {
      lappend fullList [cardInfo $temp]
    } else {
      lappend fullList [list 0 X]
    }
  }

  for {set i 1} {$i <= 10} {incr i} {
    set top(i) [lindex [getTopCards $i] end]
    if { $top(i) == "" } {continue;}
    scan [cardInfo $top(i)] "%d %s" top(v) top(s)
    incr top(v)
    set search [lsearchall $fullList [list $top(v) $top(s)]]
    if { $search != "-1" && $search != "" } {
      foreach x $search {
	incr x
	lappend data(goodmoves) [list $i $x]
      }
    } else {
      set search [lsearchall -glob $fullList [list $top(v) ?]]
      if { $search != "" && $search != "-1" } {
	foreach x $search {
	  incr x
	  lappend data(goodmoves) [list $i $x]
	}
      }
    }
  }

}

proc showGoodMoves {} {
  global data

  if { $data(goodmoves) == "" || $data(showingmove) || $data(dealing) } {
    bell -displayof .
    return;
  }
  set data(showingmove) 1
  set timer 300
  set thismove [lindex $data(goodmoves) 0]
  set data(goodmoves) [lrange $data(goodmoves) 1 end]
  lappend data(goodmoves) $thismove
  set card0 [getTopCards [lindex $thismove 0]]
  set card1 [lindex [getTopCards [lindex $thismove 1]] 0]
  set img1 [.c itemcget $card1 -image]
  foreach x $card0 {
    set img0($x) [.c itemcget $x -image]
    ### I tried messing around with colours without success S.A.
    # .c itemconfigure $x -image ::img::anim
    .c move $x 10 10
  }
  update
  after $timer
  # .c itemconfigure $card1 -image ::img::anim
  .c move $card1 10 10
  update
  after $timer
  foreach x $card0 {
   # .c itemconfigure $x -image $img0($x)
   .c move $x -10 -10
  }
  update
  after $timer
  # .c itemconfigure $card1 -image $img1
  .c move $card1 -10 -10
  update
  set data(showingmove) 0

}

# This isn't very elegant. We have to have pause for some time as if not,
# setBoard is still being called somehow after end of game, and our panel is redrawn
# (setBoard is bound to data(score) and data(moves))
proc checkForFinish {} {
  global data

  if { $data(clears) == "8" && $data(clearing) == "0" } {
    gameWon
  }
}

proc gameWon {} {
  global data p
  # game won
  update

  set w .gameover
  initSubWindow $w "$p(name) - GameOver" 1
  set destroyCmd "closeSubWindow $w"
  wm resizable $w 0 0
  wm protocol $w WM_DELETE_WINDOW $destroyCmd
  bind $w <Key-q> $destroyCmd

  switch -- $data(suits) {
    4 { set message "Amazing !" }
    2 { set message "Well Done !" }
    1 { set message "You Won !" }
  }
  pack [label $w.spider -image ::img::spider -bg $data(canvas_bg2)] -side top
  # pack [label $w.message -text $message -font $data(font_medium) -fg darkslategrey \
    -bg $data(canvas_bg2)] -side top -expand 1 -fill x

  frame  $w.f
  pack   $w.f -side top -pady 8
  button $w.f.b -text $message -command $destroyCmd
  pack   $w.f.b

  # pack [button $w.message -text $message -font $data(font_medium) -command $destroyCmd] -side top

  center $w
  wm deiconify $w
  update
  grabSubWindow $w
}

# checkForWins returns 1 if column complete
proc checkForWins {} {
  global data p

  # if there're any complete sets of cards, get rid of them.
  foreach x {1 2 3 4 5 6 7 8 9 10} {
    if { [llength [getTopCards $x]] == "13" } {
      clearWinCol $x
      return 1
    }
  }
  return 0;
}

# column "col" has a complete row; remove it
proc clearWinCol {col} {
  global data

  incr data(clearing)

  set list [lrange $data(col$col,cards) end-11 end]
  set top  [lindex $data(col$col,cards) end-12]
  set data(col$col,cards) [lrange $data(col$col,cards) 0 end-13]
  set data(undo) {}
  set data(redo) {}
  set x [expr {25+($data(deck_spacing)*$data(clears))}]
  #set y 420
  set y [expr {[winfo y .c.f]+0}]  ;# 420 --> 470
  incr data(clears)

  foreach i [lreverse $list] {
    #.c coords $i $x $y
    move .c $i $x $y
    .c raise $i
    update
    after 18
  }
  .c dtag $top topcard
  .c addtag cleared withtag $top 
  # we don't need the 'cleared' tag, but should instead confine right click to topcard...
  # but for some reason it doesn't work ?! Seems some of Mike's "tags" code is a mess

  #.c coords $top $x $y
  move .c $top $x $y
  foreach i $list {
           .c delete $i
          }
  set last [lindex [getTopCards $col] 0]
  if { $last != "" } {
    .c itemconfigure $last -image ::img::$data(card,$last)
    .c dtag $last backcard
  }
  putCol $col 0
  after 10
  incr data(score) 100

  incr data(clearing) -1
}

proc whereIs {id} {
  global data

  foreach x {1 2 3 4 5 6 7 8 9 10} {
    if { [lsearch $data(col$x,cards) $id] != "-1" } {
      return $x;
    }
  }

}

proc putCol {col {bind 1}} {
  global data

  set i [llength $data(col$col,cards)]
  foreach x $data(col$col,cards) {
    .c coords $x $data(col$col) [colHeight $col $i]
    .c raise $x
    incr i -1
  }
  if { $bind } {
    generateGoodMoves
    updateBindings
  }
}

proc putCard {card col {undo 0}} {
  global data

  if { $undo != "1" && $undo != "0" } {
       info default [info level 0] undo undo
     }
  set x [whereIs [lindex $card 0]]
  set num [llength $card]
  set data(col$x,cards) [lrange $data(col$x,cards) 0 end-$num]
  set last [lindex $data(col$x,cards) end]
  if { !$undo } {
       if { $last != "" && [lsearch [.c gettags $last] backcard] != "-1" } {
            set bws 1
          } else {
            set bws 0
          }
       lappend data(undo) [list $card $x $bws]
       set data(redo) {}
     }
  if { $last != ""} {
       .c itemconfigure $last -image ::img::$data(card,$last)
       .c dtag $last backcard
     }
  foreach x $card {
           lappend data(col$col,cards) $x
          }
  incr data(moves)
  putCol $col
  if { !$undo } {
    # needed to simultaneously clear more than one column
    while { [checkForWins] } continue;

    checkForFinish
  }
  generateGoodMoves
  updateBindings
}

proc getTopCards {{cols "1 2 3 4 5 6 7 8 9 10"}} {
  global data

  set ret {}
  foreach x $cols {
    set list [set data(col$x,cards)]
    if { [llength $list] > 0 } {
      lappend ret [lindex $list end]
      while { 1 } {
	set end [cardInfo [lindex $list end]]
	set endm [cardInfo [lindex $list end-1]]
	if { [lsearch [.c gettags [lindex $list end-1]] "backcard"] != "-1" } {
	  set hidden 1
	} else {
	  set hidden 0
	}
	if { [lindex $end 1] == [lindex $endm 1] && \
	  [expr [lindex $end 0]+1] == [lindex $endm 0] && !$hidden } {
	  set list [lrange $list 0 end-1]
	  lappend ret [lindex $list end]
	} else {
	  break;
	}
      }
    }
  }
  return $ret;
}

proc setDifficulty {} {
  global p data

  set def [expr $data(suits) >> 1]
  set ans [tk_dialog .suits $p(name) \
     "Select difficulty (game will restart)" \
      question {} {1 suit} {2 suits} {4 suits} Cancel]
  if { $ans == "-1" || $ans == "3" } {
    return;
  }
  clearGame
  set data(suits) [lindex "1 2 4" $ans]
  newGameSpider
}

proc clearGame {} {
  global data

  set delList [setdiff [.c find all] [.c find withtag immortal]]
  foreach x $delList {
    .c delete $x
  }
  for {set i 0} {$i<=10} {incr i} {
    set data(col$i,cards) {}
  }
  set data(playing)   0
  set data(moves)     0
  set data(score)   500
  set data(undo)     {}
  set data(redo)     {}
  set data(clears)    0
  set data(clearing)  0
  set data(cheating)  0
  set data(newdecks) {}

}

proc newGameSpider {{restart 0}} {
  global data p

  clearGame
 #set data(playing) 1
  if { !$restart } {
    set data(allcards) {}
    set list { {h h h h h h h h} {h h h h s s s s} {h h s s c c d d} }
    foreach i [lindex $list [expr $data(suits)>>1]] {
      foreach x {a 2 3 4 5 6 7 8 9 t j q k} {
	lappend data(allcards) "$x$i"
      }
    }
    set data(deck) [shuffleList $data(allcards)]
    set data(rdeck) $data(deck)
  } else {
    set data(deck) $data(rdeck)
  }

  set data(dealing) 1
  set numnewgames [incr data(numnewgames)]
  set moves {{dealRow 10 -1 0 0} {dealRow 10 0 0 0} {dealRow 10 0 0 0} {dealRow 10 0 0 0} {dealRow 10 0 0 0} {dealRow 4 0 0 0} {dealRow 10 1 0 0} {addDecks 5}}
  foreach x $moves {
    if { $numnewgames == $data(numnewgames) } {
      eval $x;
    } else {
      return;
    }
  }
  set data(dealing) 0
}

# Loadgame/ Savegame only has basic implemntation which saves the game's initial position

set ftype {
  { {TkSpider save game} {.tks} }
  { {All files}          {*}    }
}

proc saveGameSpider {} {
  global data p

  set fname [tk_getSaveFile -initialdir $::savedir -filetypes $::ftype -title "Save Game"]

  if {$fname == ""} { return }

  if {[catch {set tempfile [open $fname w]}]} {
    tk_messageBox -title "$p(name) error" -type ok -icon warning -message "Unable to save file $fname\n\n"
  } else {
    puts $tempfile "set ::data(suits) $::data(suits)"
    puts $tempfile "set ::data(rdeck) \{$::data(rdeck)\}"
    close $tempfile
  }
}

proc loadGameSpider {} {
  global data p

  set fname [tk_getOpenFile -initialdir $::savedir -filetypes $::ftype  -title "Restore Game"]

  if {$fname == ""} { return }

  if {![file exists $fname]} {
    tk_messageBox -title "$p(name) error" -type ok -icon warning -message "File \"$fname\" doesn't exist\n\n"
  } else {
    if {[catch {set tempfile [open $fname r]}]} {
      tk_messageBox -title "$p(name) error" -type ok -icon warning -message "File \"$fname\" isn't readable\n\n"
    } else {
      if {[catch {source $fname}]} {
	tk_messageBox -title "$p(name) error" -type ok -icon warning -message "Error loading game.\n\n"
      } else {
        newGameSpider 1
	# success
      }
    }
  }
}

proc addDecks {num} {

  global data

  set data(newdecks) {}
  set x 720
  set y [expr {[winfo y .c.f] -0}]   ;# 420 --> 470
  for {set i 1} {$i <= $num} {incr i} {
    set x [expr {$x-$data(deck_spacing)}]
    set id [.c create image $x $y -image ::img::back -tags newdeck -anchor nw]
    lappend data(newdecks) $id
    update idletasks
    after 95
  }
  resetDealOptions
}

proc dealRow {{num 10} {show 1} {clear 1} {remove 1}} {

  global data p

  set thisdealtime [incr data(alldeals)]
  set data(dealtime) $thisdealtime

  clearBindings
  if { $show != "-1" && [llength $data(deck)] == "0" } {
    updateBindings 0
    return;
  }

  if { $clear } {
    set inplay 0
    for {set i 1} {$i<=10} {incr i} {
      incr inplay [llength $data(col$i,cards)]
    }
    if { $inplay >= 10 } {
      for {set i 1} {$i<=10} {incr i} {
	if { [getTopCards $i] == "" } {
	  tk_messageBox -icon error -title $p(name) \
	       -message "You can't deal a new row while there are empty columns."
	  updateBindings 0
	  return;
	}
      }
    }
  }

  if { $show == "-1" } {
    # we're showing the markers...
    for {set i 1} {$i <= $num} {incr i} {
      if { $thisdealtime != $data(dealtime) } {
	updateBindings 0
	return;
      }
      .c create image $data(col$i) 10 -image ::img::marker \
         -anchor nw -tags [list marker col$i immortal]
    }
    updateBindings 0
    return;
  } else {
    for {set i 1} {$i <= $num} {incr i} {
      if { $thisdealtime != $data(dealtime) } {
	updateBindings 0
	return;
      }
      set card [lindex $data(deck) 0]
      set data(deck) [lrange $data(deck) 1 end]
      if { $show == "0" } {
	set img ::img::back
	set tags [list card backcard]
      } else {
	set img ::img::$card
	set tags [list card]
      }
      set y [colHeight $i]
      set decks [lindex $data(newdecks) end]
      if { $decks == "" } {
	set sx $data(col$i) ; set sy $y
      } else {
	scan [.c coords [lindex $data(newdecks) end]] "%s %s" sx sy
      }
      set id [.c create image $sx $sy \
        -image $img -anchor nw -tags $tags]
      set data(card,$id) $card
      lappend data(col$i,cards) $id
      move .c $id $data(col$i) $y
      putCol $i 0
      update
      if { $i != $num } { after $data(speed) }
    }
  }

  if { $remove } {
    set img [lindex $data(newdecks) end]
    set data(newdecks) [lrange $data(newdecks) 0 end-1]
    .c delete $img
  }
  set data(undo) {}
  set data(redo) {}

  # needed to simultaneously clear more than one column
  while { [checkForWins] } continue;

  checkForFinish
  generateGoodMoves
  resetDealOptions
  updateBindings
}

proc resetDealOptions {} {
  global data

  if { $data(newdecks) == "" } {
    bind . <KeyPress-d> {}
    set state disabled
  } else {
    bind . <KeyPress-d> {dealRow}
    set state normal
  }
  .m   entryconfigure "Deal!" -state $state
  .m.a entryconfigure "Deal Row" -state $state
}

proc chkUndos {args} {
  global data

  if { [llength $data(undo)] } {
    .m.a entryconfigure "Undo" -state normal
  } else {
    .m.a entryconfigure "Undo" -state disabled
  }

  if { [llength $data(redo)] } {
    .m.a entryconfigure "Redo" -state normal
  } else {
    .m.a entryconfigure "Redo" -state disabled
  }

}

proc redoMove {} {
  global data

  if { [llength $data(redo)] } {
    set do [lindex $data(redo) end]

    # the order here is of note, as only data(undo) is traced
    set cards [lindex $do 0]
    set data(redo) [lrange $data(redo) 0 end-1]

    lappend data(undo) [list $cards [whereIs [lindex $cards 0]] [lindex $do 2]]

    set col [lindex $do 1]
    set coltop [getTopCards $col]
    .c dtag $coltop topcard
    putCard $cards $col 1
  } else {
    bell -displayof .
  }
}

proc undoMove {} {
  global data

  if { [llength $data(undo)] } {
    set do [lindex $data(undo) end]
    set cards [lindex $do 0]

    lappend data(redo) [list $cards [whereIs [lindex $cards 0]] [lindex $do 2]]

    set data(undo) [lrange $data(undo) 0 end-1]

    set col [lindex $do 1]
    set coltop [getTopCards $col]
    if { [lindex $do 2] == "1" } {
      .c itemconfigure $coltop -image ::img::back
      .c addtag backcard withtag $coltop
    }
    .c dtag $coltop topcard
    putCard $cards $col 1

  } else {
    bell -displayof .
  }

}

# Calculates card "num"'s y-position in column "col"
# colHeight is called way too often.
proc colHeight {col {num 0}} {
  global data

  set offset 10.0 ; # force real numbers for more precision
  set spacefacedown 10 
  set spacefaceup 25
  set numfaceup [llength [setdiff $data(col$col,cards) [.c find withtag backcard]]]
  set numfacedown [llength [setinter $data(col$col,cards) [.c find withtag backcard]]]

  # Pack cards up a little tighter if we have to:
  # what we do here is give the facedown cards 10 pixels and split the remaining
  # 365 space amongst the face up cards (with a max of 25)
  # Sorry for the french, but Mike does so much redundant processing here.
  if {$numfaceup <= 12} {
    set spacefaceup 25
  } else {
    set spacefaceup [expr (365.0-$spacefacedown*$numfacedown)/$numfaceup]
    if {$spacefaceup > 25} {
      set spacefaceup 25
    }
  }

  # return [expr int($offset + $spacefacedown * $numfacedown + $spacefaceup*($numfaceup-$num))]
  # f-me-dead, the above doesn't work!, and we still need to count the fuckers
  set count_facedown 0
  set count_faceup 0

  foreach x [lrange $data(col$col,cards) 0 end-$num] {
    if { [lsearch [.c gettags $x] "backcard"] != "-1" } {
      incr count_facedown
    } else {
      incr count_faceup
    }
  }
  return [expr int($offset + $spacefacedown * $count_facedown + $spacefaceup*$count_faceup)]

}

proc cardInfo {card} {
  global data

  if { $card == "" } {return;}
  if { [string is integer -strict $card] } {
       set card $data(card,$card)
     }
  foreach {value suit} [split $card ""] {break}
  if {$value == "t"} {set value 10}
  if {$value == "j"} {set value 11}
  if {$value == "q"} {set value 12}
  if {$value == "k"} {set value 13}
  if {$value == "a"} {set value  1}
  return [list $value $suit];

}

proc displayCard {} {
    global data
    # right click on card , so raise momentarily (or raise highest card in same run)
  
    set data(raiseCard) [.c find withtag current]

    if {[lsearch -regexp [.c gettags $data(raiseCard)] {backcard|cleared}] != -1} {
      set data(raiseCard) 0
      return
    }

    set x [whereIs $data(raiseCard)]
    set list $data(col$x,cards)
    # discard cards below raiseCard
    set list [lrange $list 0 [lsearch $list $data(raiseCard)]]
    set last $data(raiseCard)

    # they have right clicked on a card...
    # so show the last card in the same run
    set suit [lindex [cardInfo $last] 1]
    set val  [lindex [cardInfo $last] 0]

    set list [lreplace $list end end]
    set newlast [lindex $list end]
    foreach {newval newsuit} [cardInfo $newlast] {}
    # set newsuit [lindex [cardInfo $newlast] 1]
    # set newval  [lindex [cardInfo $newlast] 0]

    while {"$newlast" != "" && $suit == $newsuit && \
      [lsearch [.c gettags $newlast] "backcard"] == "-1" && [expr $newval - $val] == 1} {

      set suit $newsuit
      set val  $newval
      set last $newlast
      set list [lreplace $list end end]
      set newlast [lindex $list end]
      foreach {newval newsuit} [cardInfo $newlast] {}
    }
    set data(raiseCard) $last

    set data(belowCard) [.c find above $data(raiseCard)]
   .c raise $data(raiseCard)
}

proc restoreCard {} {
    global data
    if {$data(raiseCard)} {
      .c lower $data(raiseCard) $data(belowCard)
    }
}

proc dragStart {x y} {
  global data

  clearBindings 0
  ### set id [.c find closest $x $y] 
  ### two bugs dead after changing this - S.A.
  set id [.c find withtag current]
  set data(drag,topcard) $id
  set col [whereIs $id]
  if { $col == "" || $data(drag,bad) } {
    set data(drag,bad) 1
    return;
  }
  set data(drag,homecol) $col
  if { [getTopCards $col] != $id } {
    set cardList [lrange $data(col$col,cards) [lsearch $data(col$col,cards) $id] end]
  } else {
    set cardList $id
  }
  set data(drag,allcards) $cardList
  set data(drag,orgCoords) [.c coords $id]
  set data(drag,xLoc) $x
  set data(drag,yLoc) $y
  foreach i $cardList {
    .c raise $i
  }
}

proc dragging {x y} {
  global data

  if { $data(drag,bad) } {
    return;
  }

  if { ![info exists data(drag,allcards)] } {
    set data(drag,bad) 1
    return;
  }

  set cards $data(drag,allcards)
  foreach id $cards {
    .c move $id [expr {$x - $data(drag,xLoc)}] [expr {$y - $data(drag,yLoc)}]
  }
  set data(drag,xLoc) $x
  set data(drag,yLoc) $y

}

proc dragEnd {x y {cheat 0}} {
  global data
  set data(playing) 1
  if { $data(drag,bad) || ![info exists data(drag,allcards)] } {
    catch {putCol $data(drag,homecol)}
    set data(drag,bad) 0
    updateBindings
    return;
  }
  # ids is a list of canvas items being dragged
  set ids $data(drag,allcards)
  set topInfo [cardInfo [lindex $ids 0]]
  set bb1 [.c bbox [lindex $ids 0]]
  set bb2 [.c bbox [lindex $ids end]]

  ### if { [catch {eval .c find overlapping $bb1 } tagList] } 
  # don't know how this could fail S.A.
  if { [catch {eval .c find overlapping [lindex $bb1 0] [lindex $bb1 1] [lindex $bb2 2] [lindex $bb2 3]} tagList] } {
    putCol $data(drag,homecol)
    updateBindings
    return;
  }

  foreach x $tagList {
    if { [.c type $x] == "rectangle" } {
      lappend trays $x
    } elseif { [.c type $x] == "image" } {
      lappend cards $x
    }
  }

  if { [setdiff $cards $ids] == "" || ![info exists trays] } {
    putCol $data(drag,homecol)
    updateBindings
    return;
    # we only have the card(s) we're moving, and the tray
  }

  ### click to algorithm &&&

  # trays is a 1|2 element list of trays the cards are over (in X plane)
  if {[llength $trays] > 1} {
    set tray0 [lindex $trays 0]
    set tray1 [lindex $trays 1]
    # if second tray is not empty...
    if {[getTopCards $tray1] != "" } {
      set tray1_bb [.c coords $tray0]
      set tray2_bb [.c coords $tray1]
      # and closer to second tray, or first is empty ->  swap tray order
      # (check top left hand X value)
      if {[expr abs([lindex $bb1 0]-[lindex $tray1_bb 0])  \
	      > abs([lindex $bb1 0]-[lindex $tray2_bb 0])] \
	     || [getTopCards $tray0] == "" } {
        set trays "$tray1 $tray0"
      }
    }
  }

  foreach x $trays {
    set x [string range [file extension [lindex [.c gettags $x] 0]] 1 end]
    set top [cardInfo [lindex [getTopCards $x] 0]]
    set topC [getTopCards $x]

    # topInfo is the {rank suit} of the card being moved
    ## only check this tray if the top card is actually overlapped ?
    ## if {[lsearch $cards [lindex $data(col$x,cards) end]] != -1 || $topC == ""} 
    if { [lindex $top 0] == [expr [lindex $topInfo 0]+1] || $topC == "" \
	|| ( $cheat && $data(drag,homecol) != $x ) } {
	putCard $ids $x
	incr data(score) -1
	break
    }
  }

  # if sucessful, refresh spacing on the original column, else replace column where its from &&&
  putCol $data(drag,homecol)
  updateBindings
}

########
# main #
########

set p(name)       "TkSpider"
set p(version)    "1.1.1"
set p(date)       "June 28, 2014"
set p(web)        "Sourceforge TkGames Project (http://tkgames.sf.net)"
set p(mike_email) "talvo@talvo.com"
set p(mike_release) "3.5 (Aug 29th 2004)"

set data(canvas_bg)  #7bae7b ;# Mike likes #000077770000
set data(canvas_bg2) #bdbead ;# Mike likes #000088880000 or Light "grass" green
set data(cardback)   Traditional

# minus indicates size is pixels, not points (more consistant across win/unix)
set data(font_default)   {Arial -16}
set data(font_medium) {Arial -18}
set data(font_large) {Arial -20}
set data(font_button)    {Helvetica -12}
set data(platform)       $tcl_platform(platform)

set data(speed)      10 ;# card speed for initial setup
set data(cheating)    0
set data(playing)     0
set data(suits)       1
set data(moves)       0
set data(clears)      0
set data(clearing)    0
set data(score)     500
set data(undo)       {}
set data(redo)       {}
set data(goodmoves)  {}
set data(newdecks)   {}
set data(drag,bad)    0
set data(showingmove) 0
set data(dealing)     1
set data(alldeals)    0
set data(numnewgames) 0

# spacing between row decks and finished decks
set data(deck_spacing) 20

for {set i 1} {$i <= 10} {incr i} {
  set data(col$i) [expr {10 + (78 * ($i - 1))}]
  set data(col$i,cards) {}
}

set savedir "~/.tkspider"
if ![file isdirectory "$savedir"] {
    file mkdir "$savedir"
}

if { $data(platform) == "unix" } {
  set p(config) $::savedir/config
} else {
  set p(config) $::savedir/spider.ini
}

catch {source $p(config)}

image create photo ::img::marker -width 71 -height 96
::img::marker put $data(canvas_bg2) -to 0 0 70 95 

loadCardbacks

initIcons

if {![info exists cardback($data(cardback))]} { set data(cardback) Purple }

image create photo ::img::back -data $cardback($data(cardback))
array unset cardback

initHelp
initSpider
newGameSpider
