br_danfe 0.0.9 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +26 -3
- data/br_danfe.gemspec +1 -0
- data/config/locales/pt-BR.yml +14 -0
- data/lib/br_danfe/cce.rb +28 -0
- data/lib/br_danfe/cce_lib/barcode.rb +24 -0
- data/lib/br_danfe/cce_lib/correction.rb +22 -0
- data/lib/br_danfe/cce_lib/document.rb +44 -0
- data/lib/br_danfe/cce_lib/footer.rb +15 -0
- data/lib/br_danfe/cce_lib/header.rb +15 -0
- data/lib/br_danfe/cce_lib/nfe_key.rb +23 -0
- data/lib/br_danfe/cce_lib/protocol.rb +23 -0
- data/lib/br_danfe/danfe.rb +16 -16
- data/lib/br_danfe/danfe_lib/cep.rb +9 -0
- data/lib/br_danfe/danfe_lib/consts.rb +6 -0
- data/lib/br_danfe/danfe_lib/cst.rb +30 -0
- data/lib/br_danfe/danfe_lib/dest.rb +86 -0
- data/lib/br_danfe/danfe_lib/det_body.rb +75 -0
- data/lib/br_danfe/danfe_lib/det_header.rb +40 -0
- data/lib/br_danfe/danfe_lib/document.rb +135 -0
- data/lib/br_danfe/danfe_lib/dup.rb +52 -0
- data/lib/br_danfe/danfe_lib/emit.rb +23 -0
- data/lib/br_danfe/danfe_lib/emit_header.rb +82 -0
- data/lib/br_danfe/danfe_lib/helper.rb +64 -0
- data/lib/br_danfe/danfe_lib/icmstot.rb +33 -0
- data/lib/br_danfe/danfe_lib/infadic.rb +80 -0
- data/lib/br_danfe/danfe_lib/issqn.rb +24 -0
- data/lib/br_danfe/danfe_lib/options.rb +24 -0
- data/lib/br_danfe/danfe_lib/phone.rb +13 -0
- data/lib/br_danfe/danfe_lib/plate.rb +9 -0
- data/lib/br_danfe/danfe_lib/ticket.rb +17 -0
- data/lib/br_danfe/danfe_lib/transp.rb +51 -0
- data/lib/br_danfe/danfe_lib/vol.rb +41 -0
- data/lib/br_danfe/danfe_lib/xml.rb +38 -0
- data/lib/br_danfe/danfe_lib/xprod.rb +48 -0
- data/lib/br_danfe/version.rb +1 -1
- data/lib/br_danfe.rb +1 -1
- data/spec/features/cce_spec.rb +28 -0
- data/spec/features/danfe_spec.rb +3 -3
- data/spec/fixtures/cce/lib/barcode#render.pdf +511 -0
- data/spec/fixtures/cce/lib/correction#render.pdf +100 -0
- data/spec/fixtures/cce/lib/document#box.pdf +55 -0
- data/spec/fixtures/cce/lib/document#box.with.block.pdf +72 -0
- data/spec/fixtures/cce/lib/document#text.align.pdf +70 -0
- data/spec/fixtures/cce/lib/document#text.pad.pdf +70 -0
- data/spec/fixtures/cce/lib/document#text.simple.pdf +70 -0
- data/spec/fixtures/cce/lib/document#text.size.pdf +70 -0
- data/spec/fixtures/cce/lib/document#text.style.pdf +70 -0
- data/spec/fixtures/cce/lib/footer#render.pdf +114 -0
- data/spec/fixtures/cce/lib/header#render.pdf +72 -0
- data/spec/fixtures/cce/lib/nfe_key#render.pdf +88 -0
- data/spec/fixtures/cce/lib/protocol#render.pdf +88 -0
- data/spec/fixtures/cce/v1.00/cce.fixture.pdf +659 -0
- data/spec/fixtures/cce/v1.00/cce.xml +1 -0
- data/spec/fixtures/{lib → nfe/lib}/dest#render-v2.00.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/dest#render-v3.10.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/dest#render-with_cnpj.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/dest#render-with_cpf.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/dest#render-with_ie.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/det_body#render-csosn.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/det_body#render-cst.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/det_body#render-fci.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/det_body#render-icms_st.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/det_header#render.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/document#lcnpj-blank.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/document#lcnpj-invalid.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/document#lcnpj-valid.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/document#lie-blank.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/document#lie-invalid.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/document#lie-valid.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/dup#render.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/emit#render.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/emit_header#render-with_logo.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/emit_header#render-without_logo.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/icmstot#render.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/infadic#render-extra_volume.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/infadic#render.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/issqn#render.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/ticket#render.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/transp#render-modfrete_0.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/transp#render-modfrete_1.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/transp#render-modfrete_2.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/transp#render-modfrete_9.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/transp#render.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/vol#render-blank-boxes.pdf +0 -0
- data/spec/fixtures/{lib → nfe/lib}/vol#render.pdf +0 -0
- data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_simples_nacional.xml +0 -0
- data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_simples_nacional.xml.fixture.pdf +0 -0
- data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_extra_volumes.xml +0 -0
- data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_extra_volumes.xml.fixture.pdf +0 -0
- data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_fci.xml +0 -0
- data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_fci.xml.fixture.pdf +0 -0
- data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_logo.xml +0 -0
- data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_ns.xml +0 -0
- data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_ns.xml.fixture.pdf +0 -0
- data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_without_ns.xml +0 -0
- data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_without_ns.xml.fixture.pdf +0 -0
- data/spec/fixtures/{v3.10 → nfe/v3.10}/nfe_simples_nacional.xml +0 -0
- data/spec/fixtures/{v3.10 → nfe/v3.10}/nfe_simples_nacional.xml.fixture.pdf +0 -0
- data/spec/lib/cce_lib/barcode_spec.rb +26 -0
- data/spec/lib/cce_lib/correction_spec.rb +26 -0
- data/spec/lib/cce_lib/document_spec.rb +115 -0
- data/spec/lib/cce_lib/footer_spec.rb +25 -0
- data/spec/lib/cce_lib/header_spec.rb +25 -0
- data/spec/lib/cce_lib/nfe_key_spec.rb +26 -0
- data/spec/lib/cce_lib/protocol_spec.rb +26 -0
- data/spec/lib/{cep_spec.rb → danfe_lib/cep_spec.rb} +2 -2
- data/spec/lib/{cst_spec.rb → danfe_lib/cst_spec.rb} +3 -3
- data/spec/lib/{dest_spec.rb → danfe_lib/dest_spec.rb} +4 -4
- data/spec/lib/{det_body_spec.rb → danfe_lib/det_body_spec.rb} +4 -4
- data/spec/lib/{det_header_spec.rb → danfe_lib/det_header_spec.rb} +4 -4
- data/spec/lib/{document_spec.rb → danfe_lib/document_spec.rb} +3 -3
- data/spec/lib/{dup_spec.rb → danfe_lib/dup_spec.rb} +4 -4
- data/spec/lib/{emit_header_spec.rb → danfe_lib/emit_header_spec.rb} +4 -4
- data/spec/lib/{emit_spec.rb → danfe_lib/emit_spec.rb} +4 -4
- data/spec/lib/{helper_spec.rb → danfe_lib/helper_spec.rb} +11 -11
- data/spec/lib/{icmstot_spec.rb → danfe_lib/icmstot_spec.rb} +4 -4
- data/spec/lib/{infadic_spec.rb → danfe_lib/infadic_spec.rb} +4 -4
- data/spec/lib/{issqn_spec.rb → danfe_lib/issqn_spec.rb} +4 -4
- data/spec/lib/{options_spec.rb → danfe_lib/options_spec.rb} +3 -3
- data/spec/lib/{phone_spec.rb → danfe_lib/phone_spec.rb} +3 -3
- data/spec/lib/{plate_spec.rb → danfe_lib/plate_spec.rb} +2 -2
- data/spec/lib/{ticket_spec.rb → danfe_lib/ticket_spec.rb} +4 -4
- data/spec/lib/{transp_spec.rb → danfe_lib/transp_spec.rb} +4 -4
- data/spec/lib/{vol_spec.rb → danfe_lib/vol_spec.rb} +4 -4
- data/spec/lib/{xml_spec.rb → danfe_lib/xml_spec.rb} +2 -2
- data/spec/lib/{xprod_spec.rb → danfe_lib/xprod_spec.rb} +5 -5
- metadata +242 -174
- data/lib/br_danfe/cep.rb +0 -7
- data/lib/br_danfe/consts.rb +0 -4
- data/lib/br_danfe/cst.rb +0 -28
- data/lib/br_danfe/dest.rb +0 -84
- data/lib/br_danfe/det_body.rb +0 -73
- data/lib/br_danfe/det_header.rb +0 -38
- data/lib/br_danfe/document.rb +0 -133
- data/lib/br_danfe/dup.rb +0 -50
- data/lib/br_danfe/emit.rb +0 -21
- data/lib/br_danfe/emit_header.rb +0 -80
- data/lib/br_danfe/helper.rb +0 -62
- data/lib/br_danfe/icmstot.rb +0 -31
- data/lib/br_danfe/infadic.rb +0 -78
- data/lib/br_danfe/issqn.rb +0 -22
- data/lib/br_danfe/options.rb +0 -22
- data/lib/br_danfe/phone.rb +0 -11
- data/lib/br_danfe/plate.rb +0 -7
- data/lib/br_danfe/ticket.rb +0 -15
- data/lib/br_danfe/transp.rb +0 -49
- data/lib/br_danfe/vol.rb +0 -39
- data/lib/br_danfe/xml.rb +0 -36
- 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
|
data/lib/br_danfe/version.rb
CHANGED
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
|
data/spec/features/danfe_spec.rb
CHANGED
|
@@ -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
|