@  @D* @ "b@ @@# @@h/(" @K \@K O^a K`dh/H   @4 d  @+/t"@# h /H  @ p#|##b#`#`d#  |  G        @/usr/lib/ld.so/dev/zerocrt0: no /usr/lib/ld.so &crt0: /usr/lib/ld.so mapping failure crt0: no /dev/zero ?c#< "c<#< "<" * 㸐 @l?c'DD'#'J@* + \*'K*' '`'' L (〢 )ဢ \#?c''#@`@`'"`" '"@J  '  !`cC@?@ '#_@>#j@#@@#@#@2#@ '@" 9@ r@"   *  b $%(%`%'''䀐J@  ) @ @'䀐J   @s @m @g" @a @[!@U"   *  c &''('@&!,@?@l@x @@ @ p@    *k p b%,~#2r@;9@EKyQC"[["ck.i8qzv@_etext_edata_endstartstart_float__exit_main_environ__DYNAMIC_exit_gets_get_line_escape_printf__iob_fprintf_postscript_header c@ @$ @\@` L T@`㿠㿠㿠㿠㿠㿠%! PS-Adobe-1.0 -*- Mode:Text -*- %% Orientation of spine and face labelling %% CHANGE THESE TO SUIT YOUR TASTES /flip-spinebox false def /flip-facebox true def /inch {72 mul} def %% Font Definitions /big-title-font /Helvetica-Bold findfont 18 scalefont def /little-title-font /Helvetica-Bold findfont 14 scalefont def /song-font /Helvetica findfont 11 scalefont def /linefeed-amount 19 def /select-big-title-font { big-title-font setfont /linefeed-amount 19 store } def /select-little-title-font { little-title-font setfont /linefeed-amount 15 store } def /select-song-font { song-font setfont /linefeed-amount 10.5 store } def %% Cassette Label Dimensions /label-width 4.0 inch def /gray-height 0.625 inch def /spine-height 0.5 inch def /face-height 2.625 inch def /label-height gray-height spine-height face-height add add def /label-center label-width 2 div def /distance-from-edge 4 def %% Distance from either margin to closest text /distance-between-items 10 def %% Distance between two pieces of text on same line /flip {translate 180.0 rotate} def /assign-params { %% actual1 actual2 ... [formal1 formal2 ...] assign-params - dup length 1 sub -1 0 {1 index exch get 3 2 roll def} for pop } def %% defparams: name [params] body defparams - : Perform a def, binding parameters to params /defparams { 4 dict begin /body exch cvlit def /params exch def /name exch def %% /dictionary-size params calculate-dictionary-size def /dictionary-size params length def [ 0 /begin cvx params /assign-params cvx body aload pop /end cvx ] %% Place function definition between {0 begin [params] assign-params} and {end} dup 0 dictionary-size dict put %% Allocate the dictionary, and jam it into the function definition cvx name exch end def %% Don't define the function until you're in the right dictionary } def /rectangle [/width /height] { %% width height rectangle - : rectangle originating at (0,0) 0 0 moveto 0 height lineto width height lineto width 0 lineto 0 0 lineto } defparams /graybox { %% No translation necessary label-width gray-height rectangle gsave 0.4 setgray fill grestore stroke } def /spinebox { %% labeling-routine spinebox - gsave 0 gray-height translate label-width spine-height rectangle stroke flip-spinebox { label-width spine-height flip } if 0 spine-height translate cvx exec %% Execute the code to draw the labels grestore } def /facebox { %% labeling-routine facebox - gsave 0 gray-height spine-height add translate label-width face-height rectangle stroke flip-facebox { label-width face-height flip } if 0 face-height translate cvx exec grestore } def /move-horizontally-to { currentpoint exch pop moveto } def /middle-left { distance-from-edge exch 2 div neg linefeed-amount 2 div sub 2 add moveto } def /newline { currentpoint linefeed-amount sub distance-from-edge exch moveto pop } def /end-of-line { label-width distance-from-edge sub move-horizontally-to } def /show-centered { dup stringwidth pop 2 div neg 0 rmoveto show } def /show-to-left { dup stringwidth pop neg 0 rmoveto show } def /if-it-fits { %% string max-width {code-if-it-fits} {code-if-it-doesn't} if-it-fits - %% The code will be applied to the string and the max-width. 3 index stringwidth pop 3 index gt %% See if it fits {exch} if pop %% Delete the proper piece of code exec %% Do it } def /one-artist-no-title-spine [/artist] { select-big-title-font spine-height middle-left artist show } defparams /one-artist-one-title-spine [/artist /title] { select-big-title-font spine-height middle-left artist show artist stringwidth pop select-little-title-font end-of-line label-width exch sub distance-from-edge sub distance-between-items sub title exch { pop show-to-left } { gsave title stringwidth pop div 1 scale show-to-left grestore } if-it-fits } defparams /one-artist-two-titles-spine [/artist /title1 /title2] { select-big-title-font spine-height middle-left artist show artist stringwidth pop dup select-little-title-font 0 0 moveto newline end-of-line label-width exch sub distance-from-edge sub distance-between-items sub title1 exch { pop show-to-left } { gsave title1 stringwidth pop div 1 scale show-to-left grestore } if-it-fits newline end-of-line label-width exch sub distance-from-edge sub distance-between-items sub title2 exch { pop show-to-left } { gsave title2 stringwidth pop div 1 scale show-to-left grestore } if-it-fits } defparams /two-artists-spine [/artist1 /title1 /artist2 /title2] { select-little-title-font 0 0 moveto newline artist1 show end-of-line title1 artist1 stringwidth pop label-width exch sub distance-from-edge sub distance-between-items sub { pop show-to-left } { gsave title1 stringwidth pop div 1 scale show-to-left grestore } if-it-fits newline artist2 show end-of-line title2 artist2 stringwidth pop label-width exch sub distance-from-edge sub distance-between-items sub { pop show-to-left } { gsave title2 stringwidth pop div 1 scale show-to-left grestore } if-it-fits } defparams %% FACE ROUTINES: %% artist title [side-a-songs] [side-b-songs] face-? - %% artist title [side-a-songs] title [side-b-songs] face-? - %% artist title [side-a-songs] artist title [side-b-songs] face-? - /song { newline dup stringwidth pop 1.9 inch gt %% Is the song title too wide? %% It is too wide { gsave dup stringwidth pop 1.9 inch exch div 1 scale show grestore } { show } ifelse } def /songs [/songs1 /songs2] { gsave 2 inch -0.5 inch moveto 2 inch face-height neg lineto stroke grestore select-song-font gsave songs1 length dup 14 le {pop} {14 exch div 1 exch scale} ifelse songs1 {song} forall grestore gsave 2 inch 0 translate songs2 length dup 14 le {pop} {14 exch div dup scale} ifelse songs2 {song} forall grestore } defparams /one-artist-no-title-face [/artist /songs1 /songs2] { select-big-title-font 0.5 inch middle-left label-center move-horizontally-to artist show-centered 0 -0.5 inch moveto label-width 0 rlineto stroke 0 -0.5 inch moveto songs1 songs2 songs } defparams /one-artist-one-title-face [/artist /title /songs1 /songs2] { 0 0 moveto select-big-title-font 0.5 inch middle-left artist show artist stringwidth pop select-little-title-font end-of-line label-width exch sub distance-from-edge sub distance-between-items sub title exch { pop title show-to-left } { gsave 1 index stringwidth pop div 1 scale title show-to-left grestore } if-it-fits 0 -0.5 inch moveto label-width 0 rlineto stroke 0 -0.5 inch moveto songs1 songs2 songs } defparams /one-artist-two-titles-face [/artist /title1 /title2 /songs1 /songs2] { 0 0 moveto select-little-title-font newline artist label-center move-horizontally-to show-centered newline select-little-title-font title1 stringwidth pop 1.9 inch gt %% Is first title too big? title2 stringwidth pop 1.9 inch gt %% Is second title too big? or %% Is either title too big? %% If either title is too long, display differently { 3 dict begin /titles-length title1 stringwidth pop title2 stringwidth pop add def %% Length of titles /available-space label-width distance-from-edge sub distance-between-items sub def %% Available space titles-length available-space gt { /ratio available-space titles-length div def gsave ratio 1 scale title1 show grestore end-of-line gsave ratio 1 scale title2 show-to-left grestore } { title1 show end-of-line title2 show-to-left } ifelse end } %% Otherwise, go ahead and display them centered { title1 1 inch move-horizontally-to show-centered title2 3 inch move-horizontally-to show-centered } ifelse 0 -0.5 inch moveto label-width 0 rlineto stroke 0 -0.5 inch moveto songs1 songs2 songs } defparams /two-artists-face [/artist1 /artist2 /title1 /title2 /songs1 /songs2] { select-little-title-font artist1 artist2 title1 title2 false %% Assume no string too long to start 4 {exch stringwidth pop 1.9 inch gt or} repeat %% See if any string is too long %% If any string is too long, display differently { 0 0 moveto newline artist1 show newline artist2 show 0 0 moveto newline title1 end-of-line show-to-left newline title2 end-of-line show-to-left 0 -0.5 inch moveto label-width 0 rlineto stroke 0 -0.5 inch moveto songs1 songs2 songs } %% Otherwise, go ahead and display them centered { 0 0 moveto newline artist1 1 inch move-horizontally-to show-centered newline artist2 1 inch move-horizontally-to show-centered 0 0 moveto newline title1 3 inch move-horizontally-to show-centered newline title2 3 inch move-horizontally-to show-centered } ifelse 0 -0.5 inch moveto label-width 0 rlineto stroke 0 -0.5 inch moveto songs1 songs2 songs } defparams /label-number 1 def %% Variable to keep track of position of label to be printed /first-label true def %% Variable to do something different when the first label is printed /new-label { first-label not {grestore} if label-number 1 eq first-label not and {showpage} if /first-label false store label-number 1 eq { 8 inch 0.25 inch translate 90 rotate 2 setlinewidth 2 setlinecap newpath } if gsave label-number 2 eq { label-width 0 translate } if label-number 3 eq { 0 label-height translate } if label-number 4 eq { label-width label-height translate } if /label-number label-number 4 mod 1 add store } def %sBad header format after %s new-label graybox (%s) /one-artist-no-title-spine spinebox (%s) [ graybox (%s) (%s) /one-artist-one-title-spine spinebox (%s) (%s) [ graybox (%s) (%s) (%s) /one-artist-two-titles-spine spinebox (%s) (%s) (%s) [ graybox (%s) (%s) (%s) (%s) /two-artists-spine spinebox (%s) (%s) (%s) (%s) [ (%s) ] [ (%s) ] /one-artist-no-title-face facebox /one-artist-one-title-face facebox /one-artist-two-titles-face facebox /two-artists-face facebox showpage @ "'#**k1 p6 <~#Br@KC"U["].i8cv@v__DYNAMICcrt0.olabel.oiob.o_etext_edata_endstart_main_environ_get_line_escape__iob_postscript_header