sec_query 1.0.6 → 1.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +59 -0
- data/lib/sec_query/filing.rb +57 -2
- data/lib/sec_query/sec_uri.rb +23 -0
- data/lib/sec_query/version.rb +1 -1
- data/lib/sec_query.rb +1 -0
- data/sec_query.gemspec +1 -1
- data/spec/sec_query/filing_spec.rb +62 -4
- data/spec/sec_query/sec_uri_spec.rb +12 -0
- data/spec/support/filings/filing.txt +257 -0
- data/spec/support/idx/test.idx +4639 -0
- metadata +8 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8737019e7f023c021d4447299762541c8a22ff84
|
4
|
+
data.tar.gz: 36ae02d170ee5bdee64388b461c17c97ce194ba4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 052b098f0b775cc653afaf7bd7037621a63fc407ee2fe1f638fe41b26da58b4337672c2a41b2f4ae80312d7523e4dd8270512e721152a523b9b234f701efcb37
|
7
|
+
data.tar.gz: 9737a9bbd4c194f58ad6850de0628052a0496ae8d7a5a79ef960e6db5e6e78069e4dc3af1f8a3321b7bccbb48c3b6881ec9e91123475459d38d825b222a039c9
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
sec_query (1.0.7)
|
5
|
+
addressable (~> 2.3)
|
6
|
+
nokogiri (~> 1.6)
|
7
|
+
rest-client (~> 1.6)
|
8
|
+
|
9
|
+
GEM
|
10
|
+
remote: http://rubygems.org/
|
11
|
+
specs:
|
12
|
+
addressable (2.3.6)
|
13
|
+
ast (2.0.0)
|
14
|
+
crack (0.4.2)
|
15
|
+
safe_yaml (~> 1.0.0)
|
16
|
+
diff-lcs (1.2.5)
|
17
|
+
json (1.8.1)
|
18
|
+
mime-types (2.2)
|
19
|
+
mini_portile (0.5.3)
|
20
|
+
nokogiri (1.6.1)
|
21
|
+
mini_portile (~> 0.5.0)
|
22
|
+
parser (2.1.9)
|
23
|
+
ast (>= 1.1, < 3.0)
|
24
|
+
slop (~> 3.4, >= 3.4.5)
|
25
|
+
powerpack (0.0.9)
|
26
|
+
rainbow (2.0.0)
|
27
|
+
rest-client (1.6.7)
|
28
|
+
mime-types (>= 1.16)
|
29
|
+
rspec (2.14.1)
|
30
|
+
rspec-core (~> 2.14.0)
|
31
|
+
rspec-expectations (~> 2.14.0)
|
32
|
+
rspec-mocks (~> 2.14.0)
|
33
|
+
rspec-core (2.14.8)
|
34
|
+
rspec-expectations (2.14.5)
|
35
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
36
|
+
rspec-mocks (2.14.6)
|
37
|
+
rubocop (0.21.0)
|
38
|
+
json (>= 1.7.7, < 2)
|
39
|
+
parser (~> 2.1.9)
|
40
|
+
powerpack (~> 0.0.6)
|
41
|
+
rainbow (>= 1.99.1, < 3.0)
|
42
|
+
ruby-progressbar (~> 1.4)
|
43
|
+
ruby-progressbar (1.4.2)
|
44
|
+
safe_yaml (1.0.3)
|
45
|
+
slop (3.5.0)
|
46
|
+
vcr (2.9.0)
|
47
|
+
webmock (1.17.4)
|
48
|
+
addressable (>= 2.2.7)
|
49
|
+
crack (>= 0.3.2)
|
50
|
+
|
51
|
+
PLATFORMS
|
52
|
+
ruby
|
53
|
+
|
54
|
+
DEPENDENCIES
|
55
|
+
rspec (~> 2.14)
|
56
|
+
rubocop (~> 0.20)
|
57
|
+
sec_query!
|
58
|
+
vcr (~> 2.9)
|
59
|
+
webmock (~> 1.17)
|
data/lib/sec_query/filing.rb
CHANGED
@@ -45,6 +45,50 @@ module SecQuery
|
|
45
45
|
return
|
46
46
|
end
|
47
47
|
|
48
|
+
def self.for_date(date, &blk)
|
49
|
+
ftp = Net::FTP.new('ftp.sec.gov')
|
50
|
+
ftp.login
|
51
|
+
file_name = ftp.nlst("edgar/daily-index/#{ date.to_sec_uri_format }*")[0]
|
52
|
+
ftp.close
|
53
|
+
open("ftp://ftp.sec.gov/#{ file_name }") do |file|
|
54
|
+
if file_name[-2..-1] == 'gz'
|
55
|
+
gz_reader = Zlib::GzipReader.new(file)
|
56
|
+
gz_reader.rewind
|
57
|
+
filings_for_index(gz_reader).each(&blk)
|
58
|
+
else
|
59
|
+
filings_for_index(file).each(&blk)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def self.filings_for_index(index)
|
65
|
+
[].tap do |filings|
|
66
|
+
content_section = false
|
67
|
+
index.each_line do |row|
|
68
|
+
content_section = true if row.include?('-------------')
|
69
|
+
next if !content_section || row.include?('------------')
|
70
|
+
filing = filing_for_index_row(row)
|
71
|
+
filings << filing unless filing.nil?
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def self.filing_for_index_row(row)
|
77
|
+
data = row.split(/ /).reject(&:blank?).map(&:strip)
|
78
|
+
data = row.split(/ /).reject(&:blank?).map(&:strip) if data.count == 4
|
79
|
+
data.delete_at(1) if data[1][0] == '/'
|
80
|
+
return nil unless Regexp.new(/\d{8}/).match(data[3])
|
81
|
+
unless data[4][0..3] == 'http'
|
82
|
+
data[4] = "http://www.sec.gov/Archives/#{ data[4] }"
|
83
|
+
end
|
84
|
+
Filing.new(
|
85
|
+
term: data[1],
|
86
|
+
cik: data[2],
|
87
|
+
date: Date.parse(data[3]),
|
88
|
+
link: data[4]
|
89
|
+
)
|
90
|
+
end
|
91
|
+
|
48
92
|
def self.uri_for_recent(start = 0, count = 100)
|
49
93
|
SecURI.browse_edgar_uri(
|
50
94
|
action: :getcurrent,
|
@@ -69,7 +113,7 @@ module SecQuery
|
|
69
113
|
def self.parse_rss(rss, &blk)
|
70
114
|
feed = RSS::Parser.parse(rss, false)
|
71
115
|
feed.entries.each do |entry|
|
72
|
-
filing = Filing.new(
|
116
|
+
filing = Filing.new(
|
73
117
|
cik: entry.title.content.match(/\((\w{10})\)/)[1],
|
74
118
|
file_id: entry.id.content.split('=').last,
|
75
119
|
term: entry.category.term,
|
@@ -77,7 +121,7 @@ module SecQuery
|
|
77
121
|
summary: entry.summary.content,
|
78
122
|
date: DateTime.parse(entry.updated.content.to_s),
|
79
123
|
link: entry.link.href.gsub('-index.htm', '.txt')
|
80
|
-
|
124
|
+
)
|
81
125
|
blk.call(filing)
|
82
126
|
end
|
83
127
|
end
|
@@ -111,5 +155,16 @@ module SecQuery
|
|
111
155
|
end
|
112
156
|
filings
|
113
157
|
end
|
158
|
+
|
159
|
+
def content(&error_blk)
|
160
|
+
@content ||= RestClient.get(self.link)
|
161
|
+
rescue RestClient::ResourceNotFound => e
|
162
|
+
puts "404 Resource Not Found: Bad link #{ self.link }"
|
163
|
+
if block_given?
|
164
|
+
error_blk.call(e, self)
|
165
|
+
else
|
166
|
+
raise e
|
167
|
+
end
|
168
|
+
end
|
114
169
|
end
|
115
170
|
end
|
data/lib/sec_query/sec_uri.rb
CHANGED
@@ -1,5 +1,20 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
|
3
|
+
class Date
|
4
|
+
def quarter
|
5
|
+
((month / 3.0) - 0.1).floor + 1
|
6
|
+
end
|
7
|
+
|
8
|
+
def to_sec_uri_format
|
9
|
+
today = Date.today
|
10
|
+
if today.quarter == quarter && today.year == year
|
11
|
+
"company.#{ strftime("%Y%m%d") }.idx"
|
12
|
+
else
|
13
|
+
"#{ year }/QTR#{ quarter }/company.#{ strftime("%Y%m%d") }.idx"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
3
18
|
module SecQuery
|
4
19
|
class SecURI
|
5
20
|
attr_accessor :host, :scheme, :path, :query_values
|
@@ -8,6 +23,14 @@ module SecQuery
|
|
8
23
|
build_with_path('/browse-edgar', args)
|
9
24
|
end
|
10
25
|
|
26
|
+
def self.for_date(date)
|
27
|
+
instance = SecURI.new
|
28
|
+
instance.scheme = 'ftp'
|
29
|
+
instance.host = 'ftp.sec.gov'
|
30
|
+
instance.path = "edgar/daily-index/#{ date.to_sec_uri_format }"
|
31
|
+
instance
|
32
|
+
end
|
33
|
+
|
11
34
|
def self.ownership_display_uri(args = nil)
|
12
35
|
build_with_path('/own-disp', args)
|
13
36
|
end
|
data/lib/sec_query/version.rb
CHANGED
data/lib/sec_query.rb
CHANGED
data/sec_query.gemspec
CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.add_development_dependency 'vcr', '~> 2.9'
|
25
25
|
s.add_development_dependency 'webmock', '~> 1.17'
|
26
26
|
s.add_development_dependency 'rubocop', '~> 0.20'
|
27
|
-
s.
|
27
|
+
s.add_runtime_dependency 'addressable', '~> 2.3'
|
28
28
|
s.add_runtime_dependency 'rest-client', '~> 1.6'
|
29
29
|
s.add_runtime_dependency 'nokogiri', '~> 1.6'
|
30
30
|
end
|
@@ -13,10 +13,53 @@ describe SecQuery::Filing do
|
|
13
13
|
.to eq('http://www.sec.gov/cgi-bin/browse-edgar?CIK=testing&action=getcompany&company&count=100&output=atom&owner=include&start=0')
|
14
14
|
end
|
15
15
|
|
16
|
+
describe '::filings_for_index' do
|
17
|
+
let(:index) { File.read('./spec/support/idx/test.idx') }
|
18
|
+
let(:filing1) { SecQuery::Filing.filings_for_index(index).first }
|
19
|
+
|
20
|
+
it 'parses all of the filings' do
|
21
|
+
expect(SecQuery::Filing.filings_for_index(index).count).to eq(4628)
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'correctly parses out the link' do
|
25
|
+
expect(filing1.link)
|
26
|
+
.to eq('http://www.sec.gov/Archives/edgar/data/38723/0000038723-14-000001.txt')
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'correctly parses out the cik' do
|
30
|
+
expect(filing1.cik).to eq('38723')
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'correctly parses out the term' do
|
34
|
+
expect(filing1.term).to eq('424B3')
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe '::for_date' do
|
39
|
+
let(:filings) do
|
40
|
+
[].tap do |filings|
|
41
|
+
SecQuery::Filing.for_date(Date.parse('20121123')) do |f|
|
42
|
+
filings << f
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
let(:filing1) { filings.first }
|
48
|
+
|
49
|
+
it 'correctly parses a filing from a zipped company index' do
|
50
|
+
expect(filing1.term).to eq('4')
|
51
|
+
expect(filing1.cik).to eq('1551138')
|
52
|
+
expect(filing1.date).to eq(Date.parse('20121123'))
|
53
|
+
expect(filing1.link)
|
54
|
+
.to eq('http://www.sec.gov/Archives/edgar/data/1551138/0001144204-12-064668.txt')
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
16
58
|
describe '::recent', vcr: { cassette_name: 'recent' } do
|
17
59
|
let(:filings) { [] }
|
60
|
+
|
18
61
|
before(:each) do
|
19
|
-
SecQuery::Filing.recent(
|
62
|
+
SecQuery::Filing.recent(start: 0, count: 10, limit: 10) do |filing|
|
20
63
|
filings.push filing
|
21
64
|
end
|
22
65
|
end
|
@@ -67,18 +110,33 @@ describe SecQuery::Filing do
|
|
67
110
|
{cik: "0001007844", file_id: "0001104659-03-004723"}
|
68
111
|
]
|
69
112
|
}}
|
70
|
-
|
113
|
+
|
71
114
|
let(:entity) {SecQuery::Entity.find(query[:cik])}
|
72
|
-
|
115
|
+
|
73
116
|
describe "Filings", vcr: { cassette_name: "Steve Jobs"} do
|
74
117
|
it "should respond to filings" do
|
75
118
|
entity.should respond_to(:filings)
|
76
119
|
entity.filings.should be_kind_of(Array)
|
77
120
|
end
|
78
|
-
|
121
|
+
|
79
122
|
it "should be valid filing" do
|
80
123
|
is_valid_filing?(entity.filings.first)
|
81
124
|
end
|
82
125
|
end
|
126
|
+
|
127
|
+
describe '#content', vcr: { cassette_name: 'content' } do
|
128
|
+
it 'returns content of the filing by requesting the link' do
|
129
|
+
f = Filing.new(
|
130
|
+
cik: 123,
|
131
|
+
title: 'test filing title',
|
132
|
+
summary: 'test filing',
|
133
|
+
link: 'http://www.sec.gov/Archives/edgar/data/1572871/000114036114019536/0001140361-14-019536.txt',
|
134
|
+
term: '4',
|
135
|
+
date: Date.today,
|
136
|
+
file_id: 1
|
137
|
+
)
|
138
|
+
expect(f.content).to eq(File.read('./spec/support/filings/filing.txt'))
|
139
|
+
end
|
140
|
+
end
|
83
141
|
end
|
84
142
|
end
|
@@ -34,4 +34,16 @@ describe SecQuery::SecURI do
|
|
34
34
|
.to eq('http://www.sec.gov/cgi-bin/browse-edgar?company=Apple')
|
35
35
|
end
|
36
36
|
end
|
37
|
+
|
38
|
+
describe 'Date additions' do
|
39
|
+
subject(:d) { Date.parse('2012-04-26') }
|
40
|
+
|
41
|
+
it 'calculates the correct quarter' do
|
42
|
+
expect(d.quarter).to eq(2)
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'calculates the correct sec formatted path uri for a date' do
|
46
|
+
expect(d.to_sec_uri_format).to eq('2012/QTR2/company.20120426.idx')
|
47
|
+
end
|
48
|
+
end
|
37
49
|
end
|
@@ -0,0 +1,257 @@
|
|
1
|
+
<SEC-DOCUMENT>0001140361-14-019536.txt : 20140508
|
2
|
+
<SEC-HEADER>0001140361-14-019536.hdr.sgml : 20140508
|
3
|
+
<ACCEPTANCE-DATETIME>20140508143341
|
4
|
+
ACCESSION NUMBER: 0001140361-14-019536
|
5
|
+
CONFORMED SUBMISSION TYPE: 4
|
6
|
+
PUBLIC DOCUMENT COUNT: 2
|
7
|
+
CONFORMED PERIOD OF REPORT: 20140507
|
8
|
+
FILED AS OF DATE: 20140508
|
9
|
+
DATE AS OF CHANGE: 20140508
|
10
|
+
|
11
|
+
ISSUER:
|
12
|
+
|
13
|
+
COMPANY DATA:
|
14
|
+
COMPANY CONFORMED NAME: InfuSystem Holdings, Inc
|
15
|
+
CENTRAL INDEX KEY: 0001337013
|
16
|
+
STANDARD INDUSTRIAL CLASSIFICATION: SURGICAL & MEDICAL INSTRUMENTS & APPARATUS [3841]
|
17
|
+
IRS NUMBER: 203341405
|
18
|
+
STATE OF INCORPORATION: DE
|
19
|
+
FISCAL YEAR END: 1231
|
20
|
+
|
21
|
+
BUSINESS ADDRESS:
|
22
|
+
STREET 1: 31700 RESEARCH PARK DRIVE
|
23
|
+
CITY: MADISON HEIGHTS
|
24
|
+
STATE: MI
|
25
|
+
ZIP: 48071
|
26
|
+
BUSINESS PHONE: (248) 291-1210
|
27
|
+
|
28
|
+
MAIL ADDRESS:
|
29
|
+
STREET 1: 31700 RESEARCH PARK DRIVE
|
30
|
+
CITY: MADISON HEIGHTS
|
31
|
+
STATE: MI
|
32
|
+
ZIP: 48071
|
33
|
+
|
34
|
+
FORMER COMPANY:
|
35
|
+
FORMER CONFORMED NAME: HAPC, Inc.
|
36
|
+
DATE OF NAME CHANGE: 20060425
|
37
|
+
|
38
|
+
FORMER COMPANY:
|
39
|
+
FORMER CONFORMED NAME: Healthcare Acquisition Partners Corp.
|
40
|
+
DATE OF NAME CHANGE: 20050824
|
41
|
+
|
42
|
+
REPORTING-OWNER:
|
43
|
+
|
44
|
+
OWNER DATA:
|
45
|
+
COMPANY CONFORMED NAME: Steen Eric K
|
46
|
+
CENTRAL INDEX KEY: 0001572871
|
47
|
+
|
48
|
+
FILING VALUES:
|
49
|
+
FORM TYPE: 4
|
50
|
+
SEC ACT: 1934 Act
|
51
|
+
SEC FILE NUMBER: 001-35020
|
52
|
+
FILM NUMBER: 14824358
|
53
|
+
|
54
|
+
MAIL ADDRESS:
|
55
|
+
STREET 1: C/O INFUSYSTEM HOLDINGS, INC.
|
56
|
+
STREET 2: 31700 RESEARCH PARK DRIVE
|
57
|
+
CITY: MADISON HEIGHTS
|
58
|
+
STATE: MI
|
59
|
+
ZIP: 48071
|
60
|
+
</SEC-HEADER>
|
61
|
+
<DOCUMENT>
|
62
|
+
<TYPE>4
|
63
|
+
<SEQUENCE>1
|
64
|
+
<FILENAME>doc1.xml
|
65
|
+
<DESCRIPTION>FORM 4
|
66
|
+
<TEXT>
|
67
|
+
<XML>
|
68
|
+
<?xml version="1.0"?>
|
69
|
+
<ownershipDocument>
|
70
|
+
|
71
|
+
<schemaVersion>X0306</schemaVersion>
|
72
|
+
|
73
|
+
<documentType>4</documentType>
|
74
|
+
|
75
|
+
<periodOfReport>2014-05-07</periodOfReport>
|
76
|
+
|
77
|
+
<notSubjectToSection16>0</notSubjectToSection16>
|
78
|
+
|
79
|
+
<issuer>
|
80
|
+
<issuerCik>0001337013</issuerCik>
|
81
|
+
<issuerName>InfuSystem Holdings, Inc</issuerName>
|
82
|
+
<issuerTradingSymbol>INFU</issuerTradingSymbol>
|
83
|
+
</issuer>
|
84
|
+
|
85
|
+
<reportingOwner>
|
86
|
+
<reportingOwnerId>
|
87
|
+
<rptOwnerCik>0001572871</rptOwnerCik>
|
88
|
+
<rptOwnerName>Steen Eric K</rptOwnerName>
|
89
|
+
</reportingOwnerId>
|
90
|
+
<reportingOwnerAddress>
|
91
|
+
<rptOwnerStreet1>C/O INFUSYSTEM HOLDINGS, INC.</rptOwnerStreet1>
|
92
|
+
<rptOwnerStreet2>31700 RESEARCH PARK DRIVE</rptOwnerStreet2>
|
93
|
+
<rptOwnerCity>MADISON HEIGHTS</rptOwnerCity>
|
94
|
+
<rptOwnerState>MI</rptOwnerState>
|
95
|
+
<rptOwnerZipCode>48071</rptOwnerZipCode>
|
96
|
+
<rptOwnerStateDescription></rptOwnerStateDescription>
|
97
|
+
</reportingOwnerAddress>
|
98
|
+
<reportingOwnerRelationship>
|
99
|
+
<isDirector>1</isDirector>
|
100
|
+
<isOfficer>1</isOfficer>
|
101
|
+
<isTenPercentOwner>0</isTenPercentOwner>
|
102
|
+
<isOther>0</isOther>
|
103
|
+
<officerTitle>Chief Executive Officer</officerTitle>
|
104
|
+
<otherText></otherText>
|
105
|
+
</reportingOwnerRelationship>
|
106
|
+
</reportingOwner>
|
107
|
+
|
108
|
+
<nonDerivativeTable>
|
109
|
+
<nonDerivativeTransaction>
|
110
|
+
<securityTitle>
|
111
|
+
<value>Common Stock</value>
|
112
|
+
</securityTitle>
|
113
|
+
<transactionDate>
|
114
|
+
<value>2014-05-07</value>
|
115
|
+
</transactionDate>
|
116
|
+
<deemedExecutionDate></deemedExecutionDate>
|
117
|
+
<transactionCoding>
|
118
|
+
<transactionFormType>4</transactionFormType>
|
119
|
+
<transactionCode>P</transactionCode>
|
120
|
+
<equitySwapInvolved>0</equitySwapInvolved>
|
121
|
+
</transactionCoding>
|
122
|
+
<transactionAmounts>
|
123
|
+
<transactionShares>
|
124
|
+
<value>10000</value>
|
125
|
+
</transactionShares>
|
126
|
+
<transactionPricePerShare>
|
127
|
+
<value>2.80</value>
|
128
|
+
</transactionPricePerShare>
|
129
|
+
<transactionAcquiredDisposedCode>
|
130
|
+
<value>A</value>
|
131
|
+
</transactionAcquiredDisposedCode>
|
132
|
+
</transactionAmounts>
|
133
|
+
<postTransactionAmounts>
|
134
|
+
<sharesOwnedFollowingTransaction>
|
135
|
+
<value>25000</value>
|
136
|
+
</sharesOwnedFollowingTransaction>
|
137
|
+
</postTransactionAmounts>
|
138
|
+
<ownershipNature>
|
139
|
+
<directOrIndirectOwnership>
|
140
|
+
<value>D</value>
|
141
|
+
</directOrIndirectOwnership>
|
142
|
+
</ownershipNature>
|
143
|
+
</nonDerivativeTransaction>
|
144
|
+
</nonDerivativeTable>
|
145
|
+
|
146
|
+
<derivativeTable></derivativeTable>
|
147
|
+
|
148
|
+
<footnotes></footnotes>
|
149
|
+
|
150
|
+
<remarks>Exhibit 24.1- Limited Power of Attorney for Eric K. Steen</remarks>
|
151
|
+
|
152
|
+
<ownerSignature>
|
153
|
+
<signatureName>/s/ Erik K. Steen</signatureName>
|
154
|
+
<signatureDate>2014-05-08</signatureDate>
|
155
|
+
</ownerSignature>
|
156
|
+
</ownershipDocument>
|
157
|
+
</XML>
|
158
|
+
</TEXT>
|
159
|
+
</DOCUMENT>
|
160
|
+
<DOCUMENT>
|
161
|
+
<TYPE>EX-24.1
|
162
|
+
<SEQUENCE>2
|
163
|
+
<FILENAME>poa1.htm
|
164
|
+
<DESCRIPTION>POWER OF ATTORNEY
|
165
|
+
<TEXT>
|
166
|
+
<html>
|
167
|
+
<head>
|
168
|
+
<title>Unassociated Document</title>
|
169
|
+
<!--Licensed to: HB-->
|
170
|
+
<!--Document Created using EDGARizer 2020 5.4.6.0-->
|
171
|
+
<!--Copyright 1995 - 2014 Thomson Reuters. All rights reserved.-->
|
172
|
+
</head>
|
173
|
+
<body bgcolor="#ffffff" style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">
|
174
|
+
<div style="TEXT-ALIGN: right; TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt"><font style="DISPLAY: inline; FONT-FAMILY: times new roman; FONT-SIZE: 10pt; FONT-WEIGHT: bold; TEXT-DECORATION: underline"> </font></div>
|
175
|
+
|
176
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="center"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt"> </font></div>
|
177
|
+
|
178
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="center"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">LIMITED POWER OF ATTORNEY FOR</font></div>
|
179
|
+
|
180
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="center"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">SECTION 16 REPORTING OBLIGATIONS</font></div>
|
181
|
+
|
182
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block"><br>
|
183
|
+
</div>
|
184
|
+
|
185
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify"> </div>
|
186
|
+
|
187
|
+
<div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">KNOW ALL BY THESE PRESENTS, that the undersigned hereby makes, constitutes and appoints each of Trent Smith and Jonathan Foster, signing singly, as the undersigned's true and lawful attorney-in-fact, with full power and authority as hereinafter described on behalf of and in the name, place and stead of the undersigned to:</font></div>
|
188
|
+
|
189
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify"> </div>
|
190
|
+
|
191
|
+
<div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">(1) seek, obtain or maintain filing codes with the United States Securities and Exchange Commission, including submission of Form ID;</font></div>
|
192
|
+
|
193
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify"> </div>
|
194
|
+
|
195
|
+
<div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">(2) prepare, execute, acknowledge, deliver and file Forms 3, 4, and 5 (including any amendments thereto) with respect to the securities of InfuSystem Holdings, Inc., a Delaware corporation (the "Company"), with the United States Securities and Exchange Commission, any national securities exchanges and the Company, as considered necessary or advisable under Section 16(a) of the Securities Exchange Act of 1934 and the rules and regulations promulgated thereunder, as amended from time to time (the "Exchange Act");</font></div>
|
196
|
+
|
197
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify"> </div>
|
198
|
+
|
199
|
+
<div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">(3) seek or obtain, as the undersigned's representative and on the undersigned's behalf, information on transactions in the Company's securities from any third party, including brokers, employee benefit plan administrators and trustees, and the undersigned hereby authorizes any such person to release any such information to the undersigned and approves and ratifies any such release of information; and</font></div>
|
200
|
+
|
201
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify"> </div>
|
202
|
+
|
203
|
+
<div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">(4) perform any and all other acts which in the discretion of such attorney-in-fact are necessary or desirable for and on behalf of the undersigned in connection with the foregoing.</font></div>
|
204
|
+
|
205
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify"> </div>
|
206
|
+
|
207
|
+
<div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">The undersigned acknowledges that:</font></div>
|
208
|
+
|
209
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify"> </div>
|
210
|
+
|
211
|
+
<div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">(1) this Limited Power of Attorney authorizes, but does not require, such attorney-in-fact to act in their discretion on information provided to such attorney-in-fact without independent verification of such information;</font></div>
|
212
|
+
|
213
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify"> </div>
|
214
|
+
|
215
|
+
<div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">(2) any documents prepared and/or executed by such attorney-in-fact on behalf of the undersigned pursuant to this Limited Power of Attorney will be in such form and will contain such information and disclosure as such attorney-in-fact, in his or her discretion, deems necessary or desirable;</font></div>
|
216
|
+
|
217
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify"> </div>
|
218
|
+
|
219
|
+
<div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">(3) neither the Company nor such attorney-in-fact assumes (i) any liability for the undersigned's responsibility to comply with the requirement of the Exchange Act, (ii) any liability of the undersigned for any failure to comply with such requirements, or (iii) any obligation or liability of the undersigned for profit disgorgement under Section 16(b) of the Exchange Act; and</font></div>
|
220
|
+
|
221
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify"> </div>
|
222
|
+
|
223
|
+
<div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">(4) this Limited Power of Attorney does not relieve the undersigned from responsibility for compliance with the undersigned's obligations under the Exchange Act, including without limitation the reporting requirements under Section 16 of the Exchange Act.</font></div>
|
224
|
+
|
225
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify"> </div>
|
226
|
+
|
227
|
+
<div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">The undersigned hereby gives and grants the foregoing attorney-in-fact full power and authority to do and perform all and every act and thing whatsoever requisite, necessary or appropriate to be done in and about the foregoing matters as fully to all intents and purposes as the undersigned might or could do if present, hereby ratifying all that such attorney-in-fact of, for and on behalf of the undersigned, shall lawfully do or cause to be done by virtue of this Limited Power of Attorney.</font></div>
|
228
|
+
|
229
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify"> </div>
|
230
|
+
|
231
|
+
<div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">This Limited Power of Attorney shall remain in full force and effect until revoked by the undersigned in a signed writing delivered to such attorney-in-fact.  This Limited Power of Attorney shall be governed by, and construed in accordance with, the laws of the state of Delaware, excluding its conflicts of laws principles.</font></div>
|
232
|
+
|
233
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify"> </div>
|
234
|
+
|
235
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify"> </div>
|
236
|
+
|
237
|
+
<div style="TEXT-INDENT: 36pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="left"><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">IN WITNESS WHEREOF, the undersigned has caused this Limited Power of Attorney to be executed as of this 8th day of May, 2014.</font></div>
|
238
|
+
|
239
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify"> </div>
|
240
|
+
|
241
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify"> </div>
|
242
|
+
|
243
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block"><br>
|
244
|
+
</div>
|
245
|
+
|
246
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify"> </div>
|
247
|
+
|
248
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify"><font id="TAB2" style="LETTER-SPACING: 9pt">   </font><font id="TAB2" style="LETTER-SPACING: 9pt">   </font><font id="TAB2" style="LETTER-SPACING: 9pt">   </font><font id="TAB2" style="LETTER-SPACING: 9pt">   </font><font id="TAB2" style="LETTER-SPACING: 9pt">   </font><font style="TEXT-DECORATION: underline">/s/ Erik K. Steen</font>___________________</div>
|
249
|
+
|
250
|
+
<div style="TEXT-ALIGN: left; TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt"> <font id="TAB2" style="LETTER-SPACING: 9pt">   </font><font id="TAB2" style="LETTER-SPACING: 9pt">   </font><font id="TAB2" style="LETTER-SPACING: 9pt">   </font><font id="TAB2" style="LETTER-SPACING: 9pt">   </font><font id="TAB2" style="LETTER-SPACING: 9pt">   </font><font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 10pt">Eric K. Steen</font></div>
|
251
|
+
|
252
|
+
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify"> </div>
|
253
|
+
</body>
|
254
|
+
</html>
|
255
|
+
</TEXT>
|
256
|
+
</DOCUMENT>
|
257
|
+
</SEC-DOCUMENT>
|