check_writer 0.4.3 → 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. data/Gemfile +2 -4
  2. data/Gemfile.lock +17 -17
  3. data/README.rdoc +7 -10
  4. data/Rakefile +0 -1
  5. data/VERSION +1 -1
  6. data/check_writer.gemspec +11 -33
  7. data/lib/check_writer/attribute_formatting.rb +3 -1
  8. data/lib/check_writer/check.rb +51 -25
  9. data/spec/assets/blank-0.12.0.pdf +177 -0
  10. data/spec/assets/two_in_one-0.12.0.pdf +0 -0
  11. data/spec/assets/void-0.12.0.pdf +0 -0
  12. data/spec/assets/with_second_signature_line-0.12.0.pdf +0 -0
  13. data/spec/assets/with_signature_image-0.12.0.pdf +0 -0
  14. data/spec/assets/with_stub_table_data-0.12.0.pdf +23 -24
  15. data/spec/assets/with_stubs-0.12.0.pdf +0 -0
  16. data/spec/assets/with_two_thirds_stub-0.12.0.pdf +0 -0
  17. data/spec/check_spec.rb +53 -2
  18. data/spec/spec_helper.rb +1 -1
  19. metadata +24 -62
  20. data/Appraisals +0 -11
  21. data/gemfiles/prawn0.12.0.gemfile +0 -14
  22. data/gemfiles/prawn0.12.0.gemfile.lock +0 -54
  23. data/gemfiles/prawn0.6.1.gemfile +0 -14
  24. data/gemfiles/prawn0.6.1.gemfile.lock +0 -55
  25. data/gemfiles/prawn0.6.3.gemfile +0 -14
  26. data/gemfiles/prawn0.6.3.gemfile.lock +0 -55
  27. data/spec/assets/test-0.6.1.pdf +0 -0
  28. data/spec/assets/test-0.6.3.pdf +0 -0
  29. data/spec/assets/two_in_one-0.6.1.pdf +0 -0
  30. data/spec/assets/two_in_one-0.6.3.pdf +0 -0
  31. data/spec/assets/with_second_signature_line-0.6.1.pdf +0 -0
  32. data/spec/assets/with_second_signature_line-0.6.3.pdf +0 -0
  33. data/spec/assets/with_signature_image-0.6.1.pdf +0 -0
  34. data/spec/assets/with_signature_image-0.6.3.pdf +0 -0
  35. data/spec/assets/with_stub_table_data-0.6.1.pdf +0 -939
  36. data/spec/assets/with_stub_table_data-0.6.3.pdf +0 -939
  37. data/spec/assets/with_stubs-0.6.1.pdf +0 -0
  38. data/spec/assets/with_stubs-0.6.3.pdf +0 -0
data/Gemfile CHANGED
@@ -4,17 +4,15 @@ source "http://rubygems.org"
4
4
  # gem "activesupport", ">= 2.3.5"
5
5
 
6
6
  gem 'activesupport'
7
- gem 'prawn'
7
+ gem 'prawn', '>= 0.12.0'
8
8
  gem 'linguistics'
9
9
 
10
10
  # Add dependencies to develop your gem here.
11
11
  # Include everything needed to run rake, tests, features, etc.
12
12
  group :development do
13
- gem 'appraisal'
14
13
  gem 'rake'
15
14
  gem "jeweler", "~> 1.8.3"
16
- gem 'appraisal'
17
15
  gem "rspec", "~> 2.8.0"
18
16
  gem "rdoc", "~> 3.12"
19
- gem "bundler", "~> 1.1.0"
17
+ gem "bundler", ">= 1.1.0"
20
18
  end
data/Gemfile.lock CHANGED
@@ -1,14 +1,14 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ Ascii85 (1.0.2)
4
5
  activesupport (3.2.1)
5
6
  i18n (~> 0.6)
6
7
  multi_json (~> 1.0)
7
- appraisal (0.4.1)
8
- bundler
9
- rake
8
+ afm (0.2.0)
10
9
  diff-lcs (1.1.3)
11
10
  git (1.2.5)
11
+ hashery (2.1.0)
12
12
  i18n (0.6.0)
13
13
  jeweler (1.8.3)
14
14
  bundler (~> 1.0)
@@ -18,17 +18,16 @@ GEM
18
18
  json (1.7.1)
19
19
  linguistics (1.0.9)
20
20
  multi_json (1.1.0)
21
- prawn (0.6.1)
22
- prawn-core (>= 0.6.1, < 0.7)
23
- prawn-format (>= 0.2.2, < 0.3)
24
- prawn-layout (>= 0.3.1, < 0.4)
25
- prawn-security (>= 0.1.1, < 0.2)
26
- prawn-core (0.6.3)
27
- prawn-format (0.2.3)
28
- prawn-core
29
- prawn-layout (0.3.2)
30
- prawn-security (0.1.1)
31
- rake (0.9.2.2)
21
+ pdf-reader (1.3.0)
22
+ Ascii85 (~> 1.0.0)
23
+ afm (~> 0.2.0)
24
+ hashery (~> 2.0)
25
+ ruby-rc4
26
+ ttfunk
27
+ prawn (0.12.0)
28
+ pdf-reader (>= 0.9.0)
29
+ ttfunk (~> 1.0.2)
30
+ rake (10.0.3)
32
31
  rdoc (3.12)
33
32
  json (~> 1.4)
34
33
  rspec (2.8.0)
@@ -39,17 +38,18 @@ GEM
39
38
  rspec-expectations (2.8.0)
40
39
  diff-lcs (~> 1.1.2)
41
40
  rspec-mocks (2.8.0)
41
+ ruby-rc4 (0.1.5)
42
+ ttfunk (1.0.3)
42
43
 
43
44
  PLATFORMS
44
45
  ruby
45
46
 
46
47
  DEPENDENCIES
47
48
  activesupport
48
- appraisal
49
- bundler (~> 1.1.0)
49
+ bundler (>= 1.1.0)
50
50
  jeweler (~> 1.8.3)
51
51
  linguistics
52
- prawn
52
+ prawn (>= 0.12.0)
53
53
  rake
54
54
  rdoc (~> 3.12)
55
55
  rspec (~> 2.8.0)
data/README.rdoc CHANGED
@@ -57,7 +57,7 @@ Here's an example[https://github.com/rylwin/check_writer/raw/master/spec/assets/
57
57
 
58
58
  It is also possible to include additional data in the stubs in the form of a table. If +with_stubs+ is true,
59
59
  then passing a 2D array to +stub_table_data+ will generate a table within each stub. To pass options to Prawn's
60
- #table method, set +stub_table_options+ with a hash of options.
60
+ #table method, set +stub_table_options+ with a hash of options. You can also use +stub_table_lambda+ to provide a block that is sent to the #table method.
61
61
  Example here[https://github.com/rylwin/check_writer/raw/master/spec/assets/with_stub_table_data-0.12.0.pdf].
62
62
 
63
63
  Instead of just returning a PDF, you can access the Prawn PDF writer object
@@ -76,17 +76,14 @@ reference a JPG or PNG image. The recommended dimensions for a signature image a
76
76
 
77
77
  If you need a second signature line on the check, +:second_signature_line+ to true.
78
78
 
79
- == Tests
79
+ == Void and Blank Checks
80
80
 
81
- check_writer uses the appraisal gem to facilitate testing of various versions of prawn. To run the tests using appraisal:
81
+ There are times where you may want to print a check that is clearly marked as a
82
+ void check. Setting +void+ to a truish value will place "void" in place of the
83
+ amount, check number, and the signature line.
82
84
 
83
- $ rake appraisal
84
-
85
- Note that if you need modify the Gemfile and need to re-bundle, you will also have to reinstall the appraisal gemfiles as well. To do this, your must first remove the +:development+ group from the Gemfile (i.e., the gems in the development group need to be bundled along with the rest of the gems, so they cannot be isolated in the dev group). Once you have done this, run:
86
-
87
- $ rake appraisal:install
88
-
89
- After appraisal installs its gemfiles, you can revert your Gemfile to as it was before.
85
+ If you want the PDF to include everything except the lower one-third of the
86
+ page (the actual check part), set +blank+ to a truish value.
90
87
 
91
88
  == Contributing to check_writer
92
89
 
data/Rakefile CHANGED
@@ -10,7 +10,6 @@ rescue Bundler::BundlerError => e
10
10
  exit e.status_code
11
11
  end
12
12
  require 'rake'
13
- require 'appraisal'
14
13
 
15
14
  require 'jeweler'
16
15
  Jeweler::Tasks.new do |gem|
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.3
1
+ 0.4.4
data/check_writer.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "check_writer"
8
- s.version = "0.4.3"
8
+ s.version = "0.4.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ryan Winograd"]
12
- s.date = "2012-12-12"
12
+ s.date = "2013-03-08"
13
13
  s.description = "Ruby library for generating PDF checks that you can take to the bank"
14
14
  s.email = "ryan@thewinograds.com"
15
15
  s.extra_rdoc_files = [
@@ -19,7 +19,6 @@ Gem::Specification.new do |s|
19
19
  s.files = [
20
20
  ".document",
21
21
  ".rspec",
22
- "Appraisals",
23
22
  "Gemfile",
24
23
  "Gemfile.lock",
25
24
  "LICENSE.txt",
@@ -27,34 +26,19 @@ Gem::Specification.new do |s|
27
26
  "Rakefile",
28
27
  "VERSION",
29
28
  "check_writer.gemspec",
30
- "gemfiles/prawn0.12.0.gemfile",
31
- "gemfiles/prawn0.12.0.gemfile.lock",
32
- "gemfiles/prawn0.6.1.gemfile",
33
- "gemfiles/prawn0.6.1.gemfile.lock",
34
- "gemfiles/prawn0.6.3.gemfile",
35
- "gemfiles/prawn0.6.3.gemfile.lock",
36
29
  "lib/check_writer.rb",
37
30
  "lib/check_writer/attribute_formatting.rb",
38
31
  "lib/check_writer/check.rb",
32
+ "spec/assets/blank-0.12.0.pdf",
39
33
  "spec/assets/sample-signature.png",
40
34
  "spec/assets/test-0.12.0.pdf",
41
- "spec/assets/test-0.6.1.pdf",
42
- "spec/assets/test-0.6.3.pdf",
43
35
  "spec/assets/two_in_one-0.12.0.pdf",
44
- "spec/assets/two_in_one-0.6.1.pdf",
45
- "spec/assets/two_in_one-0.6.3.pdf",
36
+ "spec/assets/void-0.12.0.pdf",
46
37
  "spec/assets/with_second_signature_line-0.12.0.pdf",
47
- "spec/assets/with_second_signature_line-0.6.1.pdf",
48
- "spec/assets/with_second_signature_line-0.6.3.pdf",
49
38
  "spec/assets/with_signature_image-0.12.0.pdf",
50
- "spec/assets/with_signature_image-0.6.1.pdf",
51
- "spec/assets/with_signature_image-0.6.3.pdf",
52
39
  "spec/assets/with_stub_table_data-0.12.0.pdf",
53
- "spec/assets/with_stub_table_data-0.6.1.pdf",
54
- "spec/assets/with_stub_table_data-0.6.3.pdf",
55
40
  "spec/assets/with_stubs-0.12.0.pdf",
56
- "spec/assets/with_stubs-0.6.1.pdf",
57
- "spec/assets/with_stubs-0.6.3.pdf",
41
+ "spec/assets/with_two_thirds_stub-0.12.0.pdf",
58
42
  "spec/check_spec.rb",
59
43
  "spec/spec_helper.rb",
60
44
  "vendor/GnuMICR-0.30/AUTHORS",
@@ -86,38 +70,32 @@ Gem::Specification.new do |s|
86
70
 
87
71
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
88
72
  s.add_runtime_dependency(%q<activesupport>, [">= 0"])
89
- s.add_runtime_dependency(%q<prawn>, [">= 0"])
73
+ s.add_runtime_dependency(%q<prawn>, [">= 0.12.0"])
90
74
  s.add_runtime_dependency(%q<linguistics>, [">= 0"])
91
- s.add_development_dependency(%q<appraisal>, [">= 0"])
92
75
  s.add_development_dependency(%q<rake>, [">= 0"])
93
76
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
94
- s.add_development_dependency(%q<appraisal>, [">= 0"])
95
77
  s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
96
78
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
97
- s.add_development_dependency(%q<bundler>, ["~> 1.1.0"])
79
+ s.add_development_dependency(%q<bundler>, [">= 1.1.0"])
98
80
  else
99
81
  s.add_dependency(%q<activesupport>, [">= 0"])
100
- s.add_dependency(%q<prawn>, [">= 0"])
82
+ s.add_dependency(%q<prawn>, [">= 0.12.0"])
101
83
  s.add_dependency(%q<linguistics>, [">= 0"])
102
- s.add_dependency(%q<appraisal>, [">= 0"])
103
84
  s.add_dependency(%q<rake>, [">= 0"])
104
85
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
105
- s.add_dependency(%q<appraisal>, [">= 0"])
106
86
  s.add_dependency(%q<rspec>, ["~> 2.8.0"])
107
87
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
108
- s.add_dependency(%q<bundler>, ["~> 1.1.0"])
88
+ s.add_dependency(%q<bundler>, [">= 1.1.0"])
109
89
  end
110
90
  else
111
91
  s.add_dependency(%q<activesupport>, [">= 0"])
112
- s.add_dependency(%q<prawn>, [">= 0"])
92
+ s.add_dependency(%q<prawn>, [">= 0.12.0"])
113
93
  s.add_dependency(%q<linguistics>, [">= 0"])
114
- s.add_dependency(%q<appraisal>, [">= 0"])
115
94
  s.add_dependency(%q<rake>, [">= 0"])
116
95
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
117
- s.add_dependency(%q<appraisal>, [">= 0"])
118
96
  s.add_dependency(%q<rspec>, ["~> 2.8.0"])
119
97
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
120
- s.add_dependency(%q<bundler>, ["~> 1.1.0"])
98
+ s.add_dependency(%q<bundler>, [">= 1.1.0"])
121
99
  end
122
100
  end
123
101
 
@@ -21,6 +21,7 @@ module CheckWriter
21
21
  #
22
22
  # amount = 1000 => $1,000.00
23
23
  def formatted_amount
24
+ return "VOID" if void
24
25
  separated_dollars = dollars.to_s.gsub(/(\d)(?=(\d\d\d)+(?!\d))/, "\\1,")
25
26
  cents_string = (cents < 10) ? "0#{cents}" : cents
26
27
  "$#{separated_dollars}.#{cents_string}"
@@ -30,7 +31,8 @@ module CheckWriter
30
31
  #
31
32
  # amount = 1.12 => One Dollar and Twelve Cents
32
33
  def amount_in_words
33
- # Wrap cents in string before calling numwords to avoid
34
+ return "VOID" if void
35
+ # Wrap cents in string before calling numwords to avoid
34
36
  # SafeBuffer cannot modify string in place error
35
37
  cents = "#{self.cents}".en.numwords
36
38
 
@@ -5,22 +5,30 @@ module CheckWriter
5
5
 
6
6
  include CheckWriter::AttributeFormatting
7
7
 
8
+ STUB_FORMATS = [:one_third, :two_thirds]
9
+
8
10
  attr_accessor :number, :date,
9
11
  :payee_name, :payor_name,
10
12
  :payee_address, :payor_address,
11
13
  :bank_name, :bank_address, :bank_fraction,
12
14
  :routing_number, :account_number,
13
- :amount, :memo,
15
+ :amount, :memo, :void, :blank,
14
16
  :with_stubs, :stub_table_data, :stub_table_options,
17
+ :stub_table_lambda,
15
18
  :second_signature_line,
16
- :signature_image_file
19
+ :signature_image_file,
20
+ :stub_format
17
21
 
18
22
  def initialize(attributes={})
19
23
  attributes.reverse_merge!(
20
24
  :date => Date.today,
25
+ :void => false,
26
+ :blank => false,
21
27
  :with_stubs => false,
22
28
  :stub_table_data => [],
23
- :stub_table_options => {}
29
+ :stub_table_options => {},
30
+ :stub_table_lambda => nil,
31
+ :stub_format => :one_third
24
32
  )
25
33
 
26
34
  _assign_attributes(attributes)
@@ -43,6 +51,14 @@ module CheckWriter
43
51
  @pdf
44
52
  end
45
53
 
54
+ def stub_format=(val)
55
+ if !STUB_FORMATS.include?(val.to_sym)
56
+ raise "Invalid stub_format '#{val}'. Must be one of #{STUB_FORMATS}."
57
+ end
58
+
59
+ @stub_format = val
60
+ end
61
+
46
62
  private
47
63
 
48
64
  def _assign_attributes(attr)
@@ -56,7 +72,7 @@ module CheckWriter
56
72
 
57
73
  if with_stubs
58
74
  check_stub(true) # top 1/3 stub
59
- check_stub(false) # middle 1/3 stub
75
+ check_stub(false) if stub_format == :one_third # middle 1/3 stub
60
76
  end
61
77
 
62
78
  @pdf.bounding_box [@pdf.bounds.left,@pdf.bounds.top - extra_top_margin_height - box_height*2 - between_box_height*2],
@@ -72,7 +88,20 @@ module CheckWriter
72
88
  _payee_address
73
89
  signature
74
90
  micr
75
- end
91
+
92
+ if void
93
+ if Gem::Version.new(Prawn::VERSION) >= Gem::Version.new("0.12.0")
94
+ @pdf.draw_text "VOID",
95
+ :at => [@pdf.bounds.left + 400, @pdf.bounds.top - 200],
96
+ :size => 40
97
+ else
98
+ @pdf.text "VOID",
99
+ :at => [@pdf.bounds.left + 400, @pdf.bounds.top - 200],
100
+ :size => 40
101
+ end
102
+ end # end void
103
+
104
+ end unless blank # end check bounding box
76
105
 
77
106
  # calling stroke here seems to flush the writer. When we don't call stroke, some lines aren't output
78
107
  @pdf.stroke
@@ -167,7 +196,7 @@ module CheckWriter
167
196
  box_at = [@pdf.bounds.right - inches(2.5), @pdf.bounds.bottom + inches(0.7)]
168
197
  sig_at = [@pdf.bounds.right - inches(2.5), @pdf.bounds.bottom + inches(0.7) + 40]
169
198
 
170
- @pdf.image @signature_image_file, :at => sig_at if @signature_image_file
199
+ @pdf.image @signature_image_file, :scale => 0.25, :at => sig_at if @signature_image_file
171
200
 
172
201
  second_sig_box_at = box_at.dup
173
202
  second_sig_box_at[1] += inches(0.6)
@@ -194,7 +223,7 @@ module CheckWriter
194
223
  def check_stub(top_stub=true)
195
224
  check_number(!top_stub)
196
225
  top = top_stub ? @pdf.bounds.top - extra_top_margin_height : @pdf.bounds.top - extra_top_margin_height - box_height - between_box_height
197
- @pdf.bounding_box [@pdf.bounds.left, top], :width => @pdf.bounds.right - @pdf.bounds.left, :height => box_height do
226
+ @pdf.bounding_box [@pdf.bounds.left, top], :width => @pdf.bounds.right - @pdf.bounds.left, :height => stub_height do
198
227
  @pdf.stroke_bounds
199
228
 
200
229
  stub_table
@@ -206,26 +235,14 @@ module CheckWriter
206
235
  unless stub_table_data.empty?
207
236
  width = @pdf.bounds.right - @pdf.bounds.left
208
237
 
209
- # Pass different default options to #table depending on version of
210
- # prawn being used
211
- if Gem.loaded_specs["prawn"].version <= Gem::Version.new('0.6.3')
212
- headers = stub_table_data.shift
238
+ opts = stub_table_options.reverse_merge(
239
+ :header => true,
240
+ :width => width
241
+ )
213
242
 
214
- opts = stub_table_options.reverse_merge(
215
- :headers => headers,
216
- :border_style => :underline_header,
217
- :width => width
218
- )
219
-
220
- @pdf.table(stub_table_data, opts)
221
-
222
- stub_table_data.insert(0, headers)
243
+ if stub_table_lambda
244
+ @pdf.table(stub_table_data, opts, &stub_table_lambda)
223
245
  else
224
- opts = stub_table_options.reverse_merge(
225
- :header => true,
226
- :width => width
227
- )
228
-
229
246
  @pdf.table(stub_table_data, opts)
230
247
  end
231
248
  end
@@ -243,6 +260,15 @@ module CheckWriter
243
260
  180 # 2.5in
244
261
  end
245
262
 
263
+ def stub_height
264
+ case stub_format
265
+ when :one_third
266
+ box_height
267
+ when :two_thirds
268
+ box_height * 2.5
269
+ end
270
+ end
271
+
246
272
  def between_box_height
247
273
  54 # 3/4in
248
274
  end
@@ -0,0 +1,177 @@
1
+ %PDF-1.3
2
+ %����
3
+ 1 0 obj
4
+ << /Creator <feff0050007200610077006e>
5
+ /Producer <feff0050007200610077006e>
6
+ >>
7
+ endobj
8
+ 2 0 obj
9
+ << /Type /Catalog
10
+ /Pages 3 0 R
11
+ >>
12
+ endobj
13
+ 3 0 obj
14
+ << /Type /Pages
15
+ /Count 1
16
+ /Kids [5 0 R]
17
+ >>
18
+ endobj
19
+ 4 0 obj
20
+ << /Length 1432
21
+ >>
22
+ stream
23
+ q
24
+
25
+ BT
26
+ 484.008 733.884 Td
27
+ /F1.0 12 Tf
28
+ [<43686563> 20 <6b204e6f> 40 <2e203132333435>] TJ
29
+ ET
30
+
31
+ 36.000 540.000 540.000 180.000 re
32
+ S
33
+ 36.000 576.000 m
34
+ 576.000 576.000 l
35
+
36
+ BT
37
+ 44 561.384 Td
38
+ /F1.0 12 Tf
39
+ [<50> 40 <61> 30 <79> 20 <6f72> -30 <3a2050> 40 <61> 30 <79> 20 <6f7220436f6d70616e> 15 <79204e616d65>] TJ
40
+ ET
41
+
42
+
43
+ BT
44
+ 44 547.512 Td
45
+ /F1.0 12 Tf
46
+ [<50> 40 <61> 30 <79> 20 <65653a204a6f686e20536d697468>] TJ
47
+ ET
48
+
49
+ 432.000 576.000 m
50
+ 432.000 540.000 l
51
+
52
+ BT
53
+ 447.324 561.384 Td
54
+ /F1.0 12 Tf
55
+ [<416d6f756e74>] TJ
56
+ ET
57
+
58
+
59
+ BT
60
+ 441.312 547.512 Td
61
+ /F1.0 12 Tf
62
+ [<24312c3030332e3233>] TJ
63
+ ET
64
+
65
+ 504.000 576.000 m
66
+ 504.000 540.000 l
67
+
68
+ BT
69
+ 527.328 561.384 Td
70
+ /F1.0 12 Tf
71
+ [<44617465>] TJ
72
+ ET
73
+
74
+
75
+ BT
76
+ 509.976 547.512 Td
77
+ /F1.0 12 Tf
78
+ [<30372f30352f32303132>] TJ
79
+ ET
80
+
81
+
82
+ BT
83
+ 484.008 504.384 Td
84
+ /F1.0 12 Tf
85
+ [<43686563> 20 <6b204e6f> 40 <2e203132333435>] TJ
86
+ ET
87
+
88
+ 36.000 306.000 540.000 180.000 re
89
+ S
90
+ 36.000 342.000 m
91
+ 576.000 342.000 l
92
+
93
+ BT
94
+ 44 327.384 Td
95
+ /F1.0 12 Tf
96
+ [<50> 40 <61> 30 <79> 20 <6f72> -30 <3a2050> 40 <61> 30 <79> 20 <6f7220436f6d70616e> 15 <79204e616d65>] TJ
97
+ ET
98
+
99
+
100
+ BT
101
+ 44 313.512 Td
102
+ /F1.0 12 Tf
103
+ [<50> 40 <61> 30 <79> 20 <65653a204a6f686e20536d697468>] TJ
104
+ ET
105
+
106
+ 432.000 342.000 m
107
+ 432.000 306.000 l
108
+
109
+ BT
110
+ 447.324 327.384 Td
111
+ /F1.0 12 Tf
112
+ [<416d6f756e74>] TJ
113
+ ET
114
+
115
+
116
+ BT
117
+ 441.312 313.512 Td
118
+ /F1.0 12 Tf
119
+ [<24312c3030332e3233>] TJ
120
+ ET
121
+
122
+ 504.000 342.000 m
123
+ 504.000 306.000 l
124
+
125
+ BT
126
+ 527.328 327.384 Td
127
+ /F1.0 12 Tf
128
+ [<44617465>] TJ
129
+ ET
130
+
131
+
132
+ BT
133
+ 509.976 313.512 Td
134
+ /F1.0 12 Tf
135
+ [<30372f30352f32303132>] TJ
136
+ ET
137
+
138
+ S
139
+ Q
140
+
141
+ endstream
142
+ endobj
143
+ 5 0 obj
144
+ << /Type /Page
145
+ /Parent 3 0 R
146
+ /MediaBox [0 0 612.0 792.0]
147
+ /Contents 4 0 R
148
+ /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
149
+ /Font << /F1.0 6 0 R
150
+ >>
151
+ >>
152
+ >>
153
+ endobj
154
+ 6 0 obj
155
+ << /Type /Font
156
+ /Subtype /Type1
157
+ /BaseFont /Helvetica
158
+ /Encoding /WinAnsiEncoding
159
+ >>
160
+ endobj
161
+ xref
162
+ 0 7
163
+ 0000000000 65535 f
164
+ 0000000015 00000 n
165
+ 0000000109 00000 n
166
+ 0000000158 00000 n
167
+ 0000000215 00000 n
168
+ 0000001699 00000 n
169
+ 0000001877 00000 n
170
+ trailer
171
+ << /Size 7
172
+ /Root 2 0 R
173
+ /Info 1 0 R
174
+ >>
175
+ startxref
176
+ 1974
177
+ %%EOF