br_danfe 0.0.9 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +26 -3
  3. data/br_danfe.gemspec +1 -0
  4. data/config/locales/pt-BR.yml +14 -0
  5. data/lib/br_danfe/cce.rb +28 -0
  6. data/lib/br_danfe/cce_lib/barcode.rb +24 -0
  7. data/lib/br_danfe/cce_lib/correction.rb +22 -0
  8. data/lib/br_danfe/cce_lib/document.rb +44 -0
  9. data/lib/br_danfe/cce_lib/footer.rb +15 -0
  10. data/lib/br_danfe/cce_lib/header.rb +15 -0
  11. data/lib/br_danfe/cce_lib/nfe_key.rb +23 -0
  12. data/lib/br_danfe/cce_lib/protocol.rb +23 -0
  13. data/lib/br_danfe/danfe.rb +16 -16
  14. data/lib/br_danfe/danfe_lib/cep.rb +9 -0
  15. data/lib/br_danfe/danfe_lib/consts.rb +6 -0
  16. data/lib/br_danfe/danfe_lib/cst.rb +30 -0
  17. data/lib/br_danfe/danfe_lib/dest.rb +86 -0
  18. data/lib/br_danfe/danfe_lib/det_body.rb +75 -0
  19. data/lib/br_danfe/danfe_lib/det_header.rb +40 -0
  20. data/lib/br_danfe/danfe_lib/document.rb +135 -0
  21. data/lib/br_danfe/danfe_lib/dup.rb +52 -0
  22. data/lib/br_danfe/danfe_lib/emit.rb +23 -0
  23. data/lib/br_danfe/danfe_lib/emit_header.rb +82 -0
  24. data/lib/br_danfe/danfe_lib/helper.rb +64 -0
  25. data/lib/br_danfe/danfe_lib/icmstot.rb +33 -0
  26. data/lib/br_danfe/danfe_lib/infadic.rb +80 -0
  27. data/lib/br_danfe/danfe_lib/issqn.rb +24 -0
  28. data/lib/br_danfe/danfe_lib/options.rb +24 -0
  29. data/lib/br_danfe/danfe_lib/phone.rb +13 -0
  30. data/lib/br_danfe/danfe_lib/plate.rb +9 -0
  31. data/lib/br_danfe/danfe_lib/ticket.rb +17 -0
  32. data/lib/br_danfe/danfe_lib/transp.rb +51 -0
  33. data/lib/br_danfe/danfe_lib/vol.rb +41 -0
  34. data/lib/br_danfe/danfe_lib/xml.rb +38 -0
  35. data/lib/br_danfe/danfe_lib/xprod.rb +48 -0
  36. data/lib/br_danfe/version.rb +1 -1
  37. data/lib/br_danfe.rb +1 -1
  38. data/spec/features/cce_spec.rb +28 -0
  39. data/spec/features/danfe_spec.rb +3 -3
  40. data/spec/fixtures/cce/lib/barcode#render.pdf +511 -0
  41. data/spec/fixtures/cce/lib/correction#render.pdf +100 -0
  42. data/spec/fixtures/cce/lib/document#box.pdf +55 -0
  43. data/spec/fixtures/cce/lib/document#box.with.block.pdf +72 -0
  44. data/spec/fixtures/cce/lib/document#text.align.pdf +70 -0
  45. data/spec/fixtures/cce/lib/document#text.pad.pdf +70 -0
  46. data/spec/fixtures/cce/lib/document#text.simple.pdf +70 -0
  47. data/spec/fixtures/cce/lib/document#text.size.pdf +70 -0
  48. data/spec/fixtures/cce/lib/document#text.style.pdf +70 -0
  49. data/spec/fixtures/cce/lib/footer#render.pdf +114 -0
  50. data/spec/fixtures/cce/lib/header#render.pdf +72 -0
  51. data/spec/fixtures/cce/lib/nfe_key#render.pdf +88 -0
  52. data/spec/fixtures/cce/lib/protocol#render.pdf +88 -0
  53. data/spec/fixtures/cce/v1.00/cce.fixture.pdf +659 -0
  54. data/spec/fixtures/cce/v1.00/cce.xml +1 -0
  55. data/spec/fixtures/{lib → nfe/lib}/dest#render-v2.00.pdf +0 -0
  56. data/spec/fixtures/{lib → nfe/lib}/dest#render-v3.10.pdf +0 -0
  57. data/spec/fixtures/{lib → nfe/lib}/dest#render-with_cnpj.pdf +0 -0
  58. data/spec/fixtures/{lib → nfe/lib}/dest#render-with_cpf.pdf +0 -0
  59. data/spec/fixtures/{lib → nfe/lib}/dest#render-with_ie.pdf +0 -0
  60. data/spec/fixtures/{lib → nfe/lib}/det_body#render-csosn.pdf +0 -0
  61. data/spec/fixtures/{lib → nfe/lib}/det_body#render-cst.pdf +0 -0
  62. data/spec/fixtures/{lib → nfe/lib}/det_body#render-fci.pdf +0 -0
  63. data/spec/fixtures/{lib → nfe/lib}/det_body#render-icms_st.pdf +0 -0
  64. data/spec/fixtures/{lib → nfe/lib}/det_header#render.pdf +0 -0
  65. data/spec/fixtures/{lib → nfe/lib}/document#lcnpj-blank.pdf +0 -0
  66. data/spec/fixtures/{lib → nfe/lib}/document#lcnpj-invalid.pdf +0 -0
  67. data/spec/fixtures/{lib → nfe/lib}/document#lcnpj-valid.pdf +0 -0
  68. data/spec/fixtures/{lib → nfe/lib}/document#lie-blank.pdf +0 -0
  69. data/spec/fixtures/{lib → nfe/lib}/document#lie-invalid.pdf +0 -0
  70. data/spec/fixtures/{lib → nfe/lib}/document#lie-valid.pdf +0 -0
  71. data/spec/fixtures/{lib → nfe/lib}/dup#render.pdf +0 -0
  72. data/spec/fixtures/{lib → nfe/lib}/emit#render.pdf +0 -0
  73. data/spec/fixtures/{lib → nfe/lib}/emit_header#render-with_logo.pdf +0 -0
  74. data/spec/fixtures/{lib → nfe/lib}/emit_header#render-without_logo.pdf +0 -0
  75. data/spec/fixtures/{lib → nfe/lib}/icmstot#render.pdf +0 -0
  76. data/spec/fixtures/{lib → nfe/lib}/infadic#render-extra_volume.pdf +0 -0
  77. data/spec/fixtures/{lib → nfe/lib}/infadic#render.pdf +0 -0
  78. data/spec/fixtures/{lib → nfe/lib}/issqn#render.pdf +0 -0
  79. data/spec/fixtures/{lib → nfe/lib}/ticket#render.pdf +0 -0
  80. data/spec/fixtures/{lib → nfe/lib}/transp#render-modfrete_0.pdf +0 -0
  81. data/spec/fixtures/{lib → nfe/lib}/transp#render-modfrete_1.pdf +0 -0
  82. data/spec/fixtures/{lib → nfe/lib}/transp#render-modfrete_2.pdf +0 -0
  83. data/spec/fixtures/{lib → nfe/lib}/transp#render-modfrete_9.pdf +0 -0
  84. data/spec/fixtures/{lib → nfe/lib}/transp#render.pdf +0 -0
  85. data/spec/fixtures/{lib → nfe/lib}/vol#render-blank-boxes.pdf +0 -0
  86. data/spec/fixtures/{lib → nfe/lib}/vol#render.pdf +0 -0
  87. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_simples_nacional.xml +0 -0
  88. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_simples_nacional.xml.fixture.pdf +0 -0
  89. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_extra_volumes.xml +0 -0
  90. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_extra_volumes.xml.fixture.pdf +0 -0
  91. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_fci.xml +0 -0
  92. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_fci.xml.fixture.pdf +0 -0
  93. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_logo.xml +0 -0
  94. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_ns.xml +0 -0
  95. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_ns.xml.fixture.pdf +0 -0
  96. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_without_ns.xml +0 -0
  97. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_without_ns.xml.fixture.pdf +0 -0
  98. data/spec/fixtures/{v3.10 → nfe/v3.10}/nfe_simples_nacional.xml +0 -0
  99. data/spec/fixtures/{v3.10 → nfe/v3.10}/nfe_simples_nacional.xml.fixture.pdf +0 -0
  100. data/spec/lib/cce_lib/barcode_spec.rb +26 -0
  101. data/spec/lib/cce_lib/correction_spec.rb +26 -0
  102. data/spec/lib/cce_lib/document_spec.rb +115 -0
  103. data/spec/lib/cce_lib/footer_spec.rb +25 -0
  104. data/spec/lib/cce_lib/header_spec.rb +25 -0
  105. data/spec/lib/cce_lib/nfe_key_spec.rb +26 -0
  106. data/spec/lib/cce_lib/protocol_spec.rb +26 -0
  107. data/spec/lib/{cep_spec.rb → danfe_lib/cep_spec.rb} +2 -2
  108. data/spec/lib/{cst_spec.rb → danfe_lib/cst_spec.rb} +3 -3
  109. data/spec/lib/{dest_spec.rb → danfe_lib/dest_spec.rb} +4 -4
  110. data/spec/lib/{det_body_spec.rb → danfe_lib/det_body_spec.rb} +4 -4
  111. data/spec/lib/{det_header_spec.rb → danfe_lib/det_header_spec.rb} +4 -4
  112. data/spec/lib/{document_spec.rb → danfe_lib/document_spec.rb} +3 -3
  113. data/spec/lib/{dup_spec.rb → danfe_lib/dup_spec.rb} +4 -4
  114. data/spec/lib/{emit_header_spec.rb → danfe_lib/emit_header_spec.rb} +4 -4
  115. data/spec/lib/{emit_spec.rb → danfe_lib/emit_spec.rb} +4 -4
  116. data/spec/lib/{helper_spec.rb → danfe_lib/helper_spec.rb} +11 -11
  117. data/spec/lib/{icmstot_spec.rb → danfe_lib/icmstot_spec.rb} +4 -4
  118. data/spec/lib/{infadic_spec.rb → danfe_lib/infadic_spec.rb} +4 -4
  119. data/spec/lib/{issqn_spec.rb → danfe_lib/issqn_spec.rb} +4 -4
  120. data/spec/lib/{options_spec.rb → danfe_lib/options_spec.rb} +3 -3
  121. data/spec/lib/{phone_spec.rb → danfe_lib/phone_spec.rb} +3 -3
  122. data/spec/lib/{plate_spec.rb → danfe_lib/plate_spec.rb} +2 -2
  123. data/spec/lib/{ticket_spec.rb → danfe_lib/ticket_spec.rb} +4 -4
  124. data/spec/lib/{transp_spec.rb → danfe_lib/transp_spec.rb} +4 -4
  125. data/spec/lib/{vol_spec.rb → danfe_lib/vol_spec.rb} +4 -4
  126. data/spec/lib/{xml_spec.rb → danfe_lib/xml_spec.rb} +2 -2
  127. data/spec/lib/{xprod_spec.rb → danfe_lib/xprod_spec.rb} +5 -5
  128. metadata +242 -174
  129. data/lib/br_danfe/cep.rb +0 -7
  130. data/lib/br_danfe/consts.rb +0 -4
  131. data/lib/br_danfe/cst.rb +0 -28
  132. data/lib/br_danfe/dest.rb +0 -84
  133. data/lib/br_danfe/det_body.rb +0 -73
  134. data/lib/br_danfe/det_header.rb +0 -38
  135. data/lib/br_danfe/document.rb +0 -133
  136. data/lib/br_danfe/dup.rb +0 -50
  137. data/lib/br_danfe/emit.rb +0 -21
  138. data/lib/br_danfe/emit_header.rb +0 -80
  139. data/lib/br_danfe/helper.rb +0 -62
  140. data/lib/br_danfe/icmstot.rb +0 -31
  141. data/lib/br_danfe/infadic.rb +0 -78
  142. data/lib/br_danfe/issqn.rb +0 -22
  143. data/lib/br_danfe/options.rb +0 -22
  144. data/lib/br_danfe/phone.rb +0 -11
  145. data/lib/br_danfe/plate.rb +0 -7
  146. data/lib/br_danfe/ticket.rb +0 -15
  147. data/lib/br_danfe/transp.rb +0 -49
  148. data/lib/br_danfe/vol.rb +0 -39
  149. data/lib/br_danfe/xml.rb +0 -36
  150. data/lib/br_danfe/xprod.rb +0 -46
@@ -0,0 +1,38 @@
1
+ module BrDanfe
2
+ module DanfeLib
3
+ class XML
4
+ def css(xpath)
5
+ @xml.css(xpath)
6
+ end
7
+
8
+ def initialize(xml)
9
+ @xml = Nokogiri::XML(xml)
10
+ end
11
+
12
+ def [](xpath)
13
+ node = @xml.css(xpath)
14
+ return node ? node.text : ""
15
+ end
16
+
17
+ def collect(ns, tag, &block)
18
+ result = []
19
+ # Tenta primeiro com uso de namespace
20
+ begin
21
+ @xml.xpath("//#{ns}:#{tag}").each do |det|
22
+ result << yield(det)
23
+ end
24
+ rescue
25
+ # Caso dê erro, tenta sem
26
+ @xml.xpath("//#{tag}").each do |det|
27
+ result << yield(det)
28
+ end
29
+ end
30
+ result
31
+ end
32
+
33
+ def version_310?
34
+ @xml.css("infNFe").attr("versao").to_s == "3.10"
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,48 @@
1
+ module BrDanfe
2
+ module DanfeLib
3
+ class Xprod
4
+ def initialize(det)
5
+ @det = det
6
+ end
7
+
8
+ def render
9
+ xprod = "#{@det.css('prod/xProd').text}"
10
+
11
+ xprod += infAdProd if has_infAdProd?
12
+ xprod += fci if has_fci?
13
+ xprod += st if has_st?
14
+
15
+ xprod
16
+ end
17
+
18
+ private
19
+ def has_infAdProd?
20
+ !@det.css("infAdProd").text.empty?
21
+ end
22
+
23
+ def has_fci?
24
+ !@det.css("prod/nFCI").text.empty?
25
+ end
26
+
27
+ def has_st?
28
+ @det.css("ICMS/*/vBCST").text.to_i > 0
29
+ end
30
+
31
+ def infAdProd
32
+ "\n" + @det.css("infAdProd").text
33
+ end
34
+
35
+ def fci
36
+ "\n" + I18n.t("danfe.det.prod.xProdFCI", nFCI: @det.css('prod/nFCI').text)
37
+ end
38
+
39
+ def st
40
+ "\n" + I18n.t("danfe.det.prod.xProdST",
41
+ pMVAST: Helper.numerify(@det.css('ICMS/*/pMVAST').text, 2),
42
+ pICMSST: Helper.numerify(@det.css('ICMS/*/pICMSST').text, 2),
43
+ vBCST: Helper.numerify(@det.css('ICMS/*/vBCST').text, 2),
44
+ vICMSST: Helper.numerify(@det.css('ICMS/*/vICMSST').text, 2))
45
+ end
46
+ end
47
+ end
48
+ end
@@ -1,3 +1,3 @@
1
1
  module BrDanfe
2
- VERSION = "0.0.9"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/br_danfe.rb CHANGED
@@ -9,7 +9,7 @@ require "yaml"
9
9
  require "ostruct"
10
10
  require "i18n"
11
11
  require "br_documents"
12
- require "br_danfe/consts"
12
+ require "br_danfe/danfe_lib/consts"
13
13
 
14
14
  Dir[File.dirname(__FILE__) + "/**/*.rb"].each { |f| require f }
15
15
  I18n.load_path << File.expand_path("../../config/locales/pt-BR.yml", __FILE__)
@@ -0,0 +1,28 @@
1
+ require "spec_helper"
2
+
3
+ describe BrDanfe::Cce do
4
+ let(:base_dir) { "./spec/fixtures/cce/v1.00/"}
5
+ let(:output_pdf) { "#{base_dir}output.pdf" }
6
+ let(:xml) { File.read("#{base_dir}cce.xml") }
7
+ subject { described_class.new(xml) }
8
+
9
+ describe "#render_pdf" do
10
+ it "renders the correction letter" do
11
+ expected = IO.binread("#{base_dir}cce.fixture.pdf")
12
+
13
+ expect(subject.render_pdf).to eq expected
14
+ end
15
+ end
16
+
17
+ describe "#save_pdf" do
18
+ before { File.delete(output_pdf) if File.exist?(output_pdf) }
19
+
20
+ it "saves the pdf" do
21
+ expect(File.exist?(output_pdf)).to be_falsey
22
+
23
+ subject.save_pdf output_pdf
24
+
25
+ expect("#{base_dir}cce.fixture.pdf").to have_same_content_of file: output_pdf
26
+ end
27
+ end
28
+ end
@@ -4,7 +4,7 @@ describe BrDanfe::Danfe do
4
4
  let(:output_pdf) { "#{base_dir}output.pdf" }
5
5
 
6
6
  describe "#render_pdf" do
7
- let(:base_dir) { "./spec/fixtures/v3.10/"}
7
+ let(:base_dir) { "./spec/fixtures/nfe/v3.10/"}
8
8
 
9
9
  it "renders a Simples Nacional NF-e using CSOSN" do
10
10
  danfe = BrDanfe::Danfe.new(File.read("#{base_dir}nfe_simples_nacional.xml"))
@@ -17,7 +17,7 @@ describe BrDanfe::Danfe do
17
17
 
18
18
  describe "#save_pdf" do
19
19
  context "when xml's version is v2.00" do
20
- let(:base_dir) { "./spec/fixtures/v2.00/"}
20
+ let(:base_dir) { "./spec/fixtures/nfe/v2.00/"}
21
21
 
22
22
  before { File.delete(output_pdf) if File.exist?(output_pdf) }
23
23
 
@@ -68,7 +68,7 @@ describe BrDanfe::Danfe do
68
68
  end
69
69
 
70
70
  context "when xml's version is v3.10" do
71
- let(:base_dir) { "./spec/fixtures/v3.10/"}
71
+ let(:base_dir) { "./spec/fixtures/nfe/v3.10/"}
72
72
 
73
73
  before { File.delete(output_pdf) if File.exist?(output_pdf) }
74
74
 
@@ -0,0 +1,511 @@
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 6957
21
+ >>
22
+ stream
23
+ q
24
+ 0.3 w
25
+ 40.000 766.890 m
26
+ 40.000 806.890 l
27
+ 42.000 806.890 l
28
+ 42.000 766.890 l
29
+ 40.000 766.890 l
30
+ f
31
+ 43.000 766.890 m
32
+ 43.000 806.890 l
33
+ 44.000 806.890 l
34
+ 44.000 766.890 l
35
+ 43.000 766.890 l
36
+ f
37
+ 46.000 766.890 m
38
+ 46.000 806.890 l
39
+ 49.000 806.890 l
40
+ 49.000 766.890 l
41
+ 46.000 766.890 l
42
+ f
43
+ 51.000 766.890 m
44
+ 51.000 806.890 l
45
+ 52.000 806.890 l
46
+ 52.000 766.890 l
47
+ 51.000 766.890 l
48
+ f
49
+ 53.000 766.890 m
50
+ 53.000 806.890 l
51
+ 55.000 806.890 l
52
+ 55.000 766.890 l
53
+ 53.000 766.890 l
54
+ f
55
+ 56.000 766.890 m
56
+ 56.000 806.890 l
57
+ 59.000 806.890 l
58
+ 59.000 766.890 l
59
+ 56.000 766.890 l
60
+ f
61
+ 62.000 766.890 m
62
+ 62.000 806.890 l
63
+ 63.000 806.890 l
64
+ 63.000 766.890 l
65
+ 62.000 766.890 l
66
+ f
67
+ 64.000 766.890 m
68
+ 64.000 806.890 l
69
+ 67.000 806.890 l
70
+ 67.000 766.890 l
71
+ 64.000 766.890 l
72
+ f
73
+ 69.000 766.890 m
74
+ 69.000 806.890 l
75
+ 71.000 806.890 l
76
+ 71.000 766.890 l
77
+ 69.000 766.890 l
78
+ f
79
+ 73.000 766.890 m
80
+ 73.000 806.890 l
81
+ 74.000 806.890 l
82
+ 74.000 766.890 l
83
+ 73.000 766.890 l
84
+ f
85
+ 76.000 766.890 m
86
+ 76.000 806.890 l
87
+ 77.000 806.890 l
88
+ 77.000 766.890 l
89
+ 76.000 766.890 l
90
+ f
91
+ 79.000 766.890 m
92
+ 79.000 806.890 l
93
+ 81.000 806.890 l
94
+ 81.000 766.890 l
95
+ 79.000 766.890 l
96
+ f
97
+ 84.000 766.890 m
98
+ 84.000 806.890 l
99
+ 85.000 806.890 l
100
+ 85.000 766.890 l
101
+ 84.000 766.890 l
102
+ f
103
+ 87.000 766.890 m
104
+ 87.000 806.890 l
105
+ 88.000 806.890 l
106
+ 88.000 766.890 l
107
+ 87.000 766.890 l
108
+ f
109
+ 90.000 766.890 m
110
+ 90.000 806.890 l
111
+ 92.000 806.890 l
112
+ 92.000 766.890 l
113
+ 90.000 766.890 l
114
+ f
115
+ 95.000 766.890 m
116
+ 95.000 806.890 l
117
+ 99.000 806.890 l
118
+ 99.000 766.890 l
119
+ 95.000 766.890 l
120
+ f
121
+ 101.000 766.890 m
122
+ 101.000 806.890 l
123
+ 102.000 806.890 l
124
+ 102.000 766.890 l
125
+ 101.000 766.890 l
126
+ f
127
+ 104.000 766.890 m
128
+ 104.000 806.890 l
129
+ 105.000 806.890 l
130
+ 105.000 766.890 l
131
+ 104.000 766.890 l
132
+ f
133
+ 106.000 766.890 m
134
+ 106.000 806.890 l
135
+ 107.000 806.890 l
136
+ 107.000 766.890 l
137
+ 106.000 766.890 l
138
+ f
139
+ 108.000 766.890 m
140
+ 108.000 806.890 l
141
+ 109.000 806.890 l
142
+ 109.000 766.890 l
143
+ 108.000 766.890 l
144
+ f
145
+ 112.000 766.890 m
146
+ 112.000 806.890 l
147
+ 114.000 806.890 l
148
+ 114.000 766.890 l
149
+ 112.000 766.890 l
150
+ f
151
+ 117.000 766.890 m
152
+ 117.000 806.890 l
153
+ 118.000 806.890 l
154
+ 118.000 766.890 l
155
+ 117.000 766.890 l
156
+ f
157
+ 119.000 766.890 m
158
+ 119.000 806.890 l
159
+ 121.000 806.890 l
160
+ 121.000 766.890 l
161
+ 119.000 766.890 l
162
+ f
163
+ 123.000 766.890 m
164
+ 123.000 806.890 l
165
+ 124.000 806.890 l
166
+ 124.000 766.890 l
167
+ 123.000 766.890 l
168
+ f
169
+ 128.000 766.890 m
170
+ 128.000 806.890 l
171
+ 130.000 806.890 l
172
+ 130.000 766.890 l
173
+ 128.000 766.890 l
174
+ f
175
+ 131.000 766.890 m
176
+ 131.000 806.890 l
177
+ 133.000 806.890 l
178
+ 133.000 766.890 l
179
+ 131.000 766.890 l
180
+ f
181
+ 135.000 766.890 m
182
+ 135.000 806.890 l
183
+ 137.000 806.890 l
184
+ 137.000 766.890 l
185
+ 135.000 766.890 l
186
+ f
187
+ 139.000 766.890 m
188
+ 139.000 806.890 l
189
+ 141.000 806.890 l
190
+ 141.000 766.890 l
191
+ 139.000 766.890 l
192
+ f
193
+ 143.000 766.890 m
194
+ 143.000 806.890 l
195
+ 145.000 806.890 l
196
+ 145.000 766.890 l
197
+ 143.000 766.890 l
198
+ f
199
+ 146.000 766.890 m
200
+ 146.000 806.890 l
201
+ 148.000 806.890 l
202
+ 148.000 766.890 l
203
+ 146.000 766.890 l
204
+ f
205
+ 150.000 766.890 m
206
+ 150.000 806.890 l
207
+ 154.000 806.890 l
208
+ 154.000 766.890 l
209
+ 150.000 766.890 l
210
+ f
211
+ 156.000 766.890 m
212
+ 156.000 806.890 l
213
+ 157.000 806.890 l
214
+ 157.000 766.890 l
215
+ 156.000 766.890 l
216
+ f
217
+ 159.000 766.890 m
218
+ 159.000 806.890 l
219
+ 160.000 806.890 l
220
+ 160.000 766.890 l
221
+ 159.000 766.890 l
222
+ f
223
+ 161.000 766.890 m
224
+ 161.000 806.890 l
225
+ 164.000 806.890 l
226
+ 164.000 766.890 l
227
+ 161.000 766.890 l
228
+ f
229
+ 165.000 766.890 m
230
+ 165.000 806.890 l
231
+ 166.000 806.890 l
232
+ 166.000 766.890 l
233
+ 165.000 766.890 l
234
+ f
235
+ 169.000 766.890 m
236
+ 169.000 806.890 l
237
+ 171.000 806.890 l
238
+ 171.000 766.890 l
239
+ 169.000 766.890 l
240
+ f
241
+ 172.000 766.890 m
242
+ 172.000 806.890 l
243
+ 174.000 806.890 l
244
+ 174.000 766.890 l
245
+ 172.000 766.890 l
246
+ f
247
+ 175.000 766.890 m
248
+ 175.000 806.890 l
249
+ 177.000 806.890 l
250
+ 177.000 766.890 l
251
+ 175.000 766.890 l
252
+ f
253
+ 179.000 766.890 m
254
+ 179.000 806.890 l
255
+ 181.000 806.890 l
256
+ 181.000 766.890 l
257
+ 179.000 766.890 l
258
+ f
259
+ 183.000 766.890 m
260
+ 183.000 806.890 l
261
+ 185.000 806.890 l
262
+ 185.000 766.890 l
263
+ 183.000 766.890 l
264
+ f
265
+ 187.000 766.890 m
266
+ 187.000 806.890 l
267
+ 188.000 806.890 l
268
+ 188.000 766.890 l
269
+ 187.000 766.890 l
270
+ f
271
+ 191.000 766.890 m
272
+ 191.000 806.890 l
273
+ 192.000 806.890 l
274
+ 192.000 766.890 l
275
+ 191.000 766.890 l
276
+ f
277
+ 194.000 766.890 m
278
+ 194.000 806.890 l
279
+ 196.000 806.890 l
280
+ 196.000 766.890 l
281
+ 194.000 766.890 l
282
+ f
283
+ 197.000 766.890 m
284
+ 197.000 806.890 l
285
+ 199.000 806.890 l
286
+ 199.000 766.890 l
287
+ 197.000 766.890 l
288
+ f
289
+ 201.000 766.890 m
290
+ 201.000 806.890 l
291
+ 203.000 806.890 l
292
+ 203.000 766.890 l
293
+ 201.000 766.890 l
294
+ f
295
+ 205.000 766.890 m
296
+ 205.000 806.890 l
297
+ 207.000 806.890 l
298
+ 207.000 766.890 l
299
+ 205.000 766.890 l
300
+ f
301
+ 208.000 766.890 m
302
+ 208.000 806.890 l
303
+ 210.000 806.890 l
304
+ 210.000 766.890 l
305
+ 208.000 766.890 l
306
+ f
307
+ 212.000 766.890 m
308
+ 212.000 806.890 l
309
+ 214.000 806.890 l
310
+ 214.000 766.890 l
311
+ 212.000 766.890 l
312
+ f
313
+ 216.000 766.890 m
314
+ 216.000 806.890 l
315
+ 218.000 806.890 l
316
+ 218.000 766.890 l
317
+ 216.000 766.890 l
318
+ f
319
+ 219.000 766.890 m
320
+ 219.000 806.890 l
321
+ 221.000 806.890 l
322
+ 221.000 766.890 l
323
+ 219.000 766.890 l
324
+ f
325
+ 223.000 766.890 m
326
+ 223.000 806.890 l
327
+ 225.000 806.890 l
328
+ 225.000 766.890 l
329
+ 223.000 766.890 l
330
+ f
331
+ 227.000 766.890 m
332
+ 227.000 806.890 l
333
+ 228.000 806.890 l
334
+ 228.000 766.890 l
335
+ 227.000 766.890 l
336
+ f
337
+ 231.000 766.890 m
338
+ 231.000 806.890 l
339
+ 233.000 806.890 l
340
+ 233.000 766.890 l
341
+ 231.000 766.890 l
342
+ f
343
+ 236.000 766.890 m
344
+ 236.000 806.890 l
345
+ 237.000 806.890 l
346
+ 237.000 766.890 l
347
+ 236.000 766.890 l
348
+ f
349
+ 238.000 766.890 m
350
+ 238.000 806.890 l
351
+ 240.000 806.890 l
352
+ 240.000 766.890 l
353
+ 238.000 766.890 l
354
+ f
355
+ 242.000 766.890 m
356
+ 242.000 806.890 l
357
+ 243.000 806.890 l
358
+ 243.000 766.890 l
359
+ 242.000 766.890 l
360
+ f
361
+ 246.000 766.890 m
362
+ 246.000 806.890 l
363
+ 247.000 806.890 l
364
+ 247.000 766.890 l
365
+ 246.000 766.890 l
366
+ f
367
+ 249.000 766.890 m
368
+ 249.000 806.890 l
369
+ 251.000 806.890 l
370
+ 251.000 766.890 l
371
+ 249.000 766.890 l
372
+ f
373
+ 252.000 766.890 m
374
+ 252.000 806.890 l
375
+ 254.000 806.890 l
376
+ 254.000 766.890 l
377
+ 252.000 766.890 l
378
+ f
379
+ 256.000 766.890 m
380
+ 256.000 806.890 l
381
+ 258.000 806.890 l
382
+ 258.000 766.890 l
383
+ 256.000 766.890 l
384
+ f
385
+ 260.000 766.890 m
386
+ 260.000 806.890 l
387
+ 262.000 806.890 l
388
+ 262.000 766.890 l
389
+ 260.000 766.890 l
390
+ f
391
+ 263.000 766.890 m
392
+ 263.000 806.890 l
393
+ 265.000 806.890 l
394
+ 265.000 766.890 l
395
+ 263.000 766.890 l
396
+ f
397
+ 267.000 766.890 m
398
+ 267.000 806.890 l
399
+ 269.000 806.890 l
400
+ 269.000 766.890 l
401
+ 267.000 766.890 l
402
+ f
403
+ 271.000 766.890 m
404
+ 271.000 806.890 l
405
+ 272.000 806.890 l
406
+ 272.000 766.890 l
407
+ 271.000 766.890 l
408
+ f
409
+ 274.000 766.890 m
410
+ 274.000 806.890 l
411
+ 275.000 806.890 l
412
+ 275.000 766.890 l
413
+ 274.000 766.890 l
414
+ f
415
+ 277.000 766.890 m
416
+ 277.000 806.890 l
417
+ 279.000 806.890 l
418
+ 279.000 766.890 l
419
+ 277.000 766.890 l
420
+ f
421
+ 282.000 766.890 m
422
+ 282.000 806.890 l
423
+ 283.000 806.890 l
424
+ 283.000 766.890 l
425
+ 282.000 766.890 l
426
+ f
427
+ 285.000 766.890 m
428
+ 285.000 806.890 l
429
+ 286.000 806.890 l
430
+ 286.000 766.890 l
431
+ 285.000 766.890 l
432
+ f
433
+ 287.000 766.890 m
434
+ 287.000 806.890 l
435
+ 291.000 806.890 l
436
+ 291.000 766.890 l
437
+ 287.000 766.890 l
438
+ f
439
+ 293.000 766.890 m
440
+ 293.000 806.890 l
441
+ 295.000 806.890 l
442
+ 295.000 766.890 l
443
+ 293.000 766.890 l
444
+ f
445
+ 296.000 766.890 m
446
+ 296.000 806.890 l
447
+ 299.000 806.890 l
448
+ 299.000 766.890 l
449
+ 296.000 766.890 l
450
+ f
451
+ 302.000 766.890 m
452
+ 302.000 806.890 l
453
+ 303.000 806.890 l
454
+ 303.000 766.890 l
455
+ 302.000 766.890 l
456
+ f
457
+ 304.000 766.890 m
458
+ 304.000 806.890 l
459
+ 306.000 806.890 l
460
+ 306.000 766.890 l
461
+ 304.000 766.890 l
462
+ f
463
+ 309.000 766.890 m
464
+ 309.000 806.890 l
465
+ 312.000 806.890 l
466
+ 312.000 766.890 l
467
+ 309.000 766.890 l
468
+ f
469
+ 313.000 766.890 m
470
+ 313.000 806.890 l
471
+ 314.000 806.890 l
472
+ 314.000 766.890 l
473
+ 313.000 766.890 l
474
+ f
475
+ 315.000 766.890 m
476
+ 315.000 806.890 l
477
+ 317.000 806.890 l
478
+ 317.000 766.890 l
479
+ 315.000 766.890 l
480
+ f
481
+ 30.000 761.890 535.280 50.000 re
482
+ S
483
+ Q
484
+
485
+ endstream
486
+ endobj
487
+ 5 0 obj
488
+ << /Type /Page
489
+ /Parent 3 0 R
490
+ /MediaBox [0 0 595.28 841.89]
491
+ /Contents 4 0 R
492
+ /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
493
+ >>
494
+ >>
495
+ endobj
496
+ xref
497
+ 0 6
498
+ 0000000000 65535 f
499
+ 0000000015 00000 n
500
+ 0000000109 00000 n
501
+ 0000000158 00000 n
502
+ 0000000215 00000 n
503
+ 0000007224 00000 n
504
+ trailer
505
+ << /Size 6
506
+ /Root 2 0 R
507
+ /Info 1 0 R
508
+ >>
509
+ startxref
510
+ 7380
511
+ %%EOF