<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div style="" class="markdown-here-wrapper" data-md-url="null">
<p style="margin: 1.2em 0px ! important;">Glen,</p>
<p style="margin: 1.2em 0px ! important;">Sorry for sitting on
this e-mail. It’s actually given me a lot to chew on, and drove
me to even take a look at some of the A/P interfaces of current
systems. More thoughts inline.</p>
<p style="margin: 1.2em 0px ! important;">On 09/01/2016 06:01 AM,
Glen Whitney wrote:</p>
<p style="margin: 1.2em 0px ! important;"></p>
<div class="markdown-here-exclude">
<p></p>
<blockquote
cite="mid:1472724106.20599.26.camel@post.harvard.edu"
type="cite">
<pre wrap="">I don't see either of the paragraphs below as undermining that point of
view; rather they reinforce it. Indeed, I think one of the great
potential benefits of npoacct is to provide a low-cost, easy-to-begin-
with system for small NFPs, who may well not have significant
accounting expertise in-house. Hence the ability for an A/P component
to present itself without accounting jargon (but perhaps with technical
terminology accessible for experts) is a terrific plus.</pre>
</blockquote>
<p></p>
</div>
<p style="margin: 1.2em 0px ! important;"></p>
<p style="margin: 1.2em 0px ! important;">I agree with all of
this, but I do want to be careful about that parenthetical.
Everything I’ve done and read makes me think that building
interfaces that adapt to the user’s experience level, at a very
fundamental level, is a fundamentally hard problem. I won’t
speak for others on the list, but I know I myself am not the
kind of UI/UX expert who’s in a position to break new ground on
that.</p>
<p style="margin: 1.2em 0px ! important;"></p>
<div class="markdown-here-exclude">
<p></p>
<blockquote
cite="mid:1472724106.20599.26.camel@post.harvard.edu"
type="cite">
<pre wrap="">As for the second paragraph, if I understand the roadmap, it is to
develop npoacct as a collection of interoperating modules, so that it
can be approached piecemeal.</pre>
</blockquote>
<p></p>
</div>
<p style="margin: 1.2em 0px ! important;"></p>
<p style="margin: 1.2em 0px ! important;">I agree that’s the
current thinking, and right now I’m not aware of any reason we
wouldn’t do it that way, but I don’t think we necessarily have a
hard commitment to that approach. If other considerations like a
choice of framework made it difficult, it’s something we might
consider trading off for other benefits.</p>
<p style="margin: 1.2em 0px ! important;">It also depends a little
bit on your definition of “module.” The first release of the
reimbursement system is expected to talk to ledgers through
export functionality. If it continues to work that way, even as
we build out the rest of the NPO Accounting software, is it
still a “module?” I can understand different people answering
that differently, and I don’t think it matters too much as long
as we’re on the same page about functionality.</p>
<p style="margin: 1.2em 0px ! important;"></p>
<div class="markdown-here-exclude">
<p></p>
<blockquote
cite="mid:1472724106.20599.26.camel@post.harvard.edu"
type="cite">
<pre wrap=""> So the idea that A/P qua Reimbursements
can operate independently from the eventual General Ledger module seems
to me completely consistent with such an architecture, and reinforce
the idea that a Reimbursement module now be conceived as suitable to be
the eventual A/P module. Moreover it seems to imply conversely that
A/P components of existing systems, such as the one Steven described,
should be candidates for (the foundation of) this Reimbursement
module, if they can be extracted as an independent
module/service/library -- as has been stated before as a likely path
for the npoacct project, to take an existing system or systems and
reconstrue them as a library or toolkit.</pre>
</blockquote>
<p></p>
</div>
<p style="margin: 1.2em 0px ! important;"></p>
<p style="margin: 1.2em 0px ! important;">I agree with all this.
So I went to evaluate some of the systems out there.</p>
<p style="margin: 1.2em 0px ! important;">I know it’s been a while
since the project’s earlier evaluation of accounting systems,
and given what I’ve said about priorities for the first release,
the emphasis is a little different than the core accounting
functionality that had center stage there. So I started from
Wikipedia’s <a
href="https://en.wikipedia.org/wiki/Comparison_of_accounting_software#Free_and_open_source_software">list
of FOSS accounting software</a>.</p>
<p style="margin: 1.2em 0px ! important;">The reimbursement system
needs to let requestors file requests through the web, so
anything that requires a dedicated client was out. Long-term, I
think it’s important for the health of the project that all our
components be at least GPL-compatible, so that ruled out a
couple more too.</p>
<p style="margin: 1.2em 0px ! important;">From there, I went
through some of the more popular options. As much as possible, I
tried to go through demos, to get a high level picture as
quickly as possible. I spent some good time with ADempiere and
LedgerSMB, and a little with FrontAccounting. I think there are
a couple of features that we’ve identified as really core for
the reimbursement system that would be difficult for all of them
to support, which makes me think they’re not especially suitable
for the job we have in mind.</p>
<p style="margin: 1.2em 0px ! important;">The first is that all
program customization tends to be done through code. One of the
ways we want the reimbursement system to save us time is by
asking requestors the right questions about what they’re filing,
to help them as much as possible to submit a complete report.
Because of that, it’s important to be able to adapt the form, as
either reimbursement policies change, or we find out that
current forms aren’t giving users the right guidance. Requiring
code changes to be able to do this is more overhead than we
really want, especially since collecting information not
anticipated by the system might require database schema changes.</p>
<p style="margin: 1.2em 0px ! important;">The second is that the
systems don’t really seem to have much of a concept of
collaborating to build a purchase order. For most businesses, I
think this makes perfect sense: usually you’re sending purchase
orders outside your organization, and you can’t expect those
parties to log into your own systems to ask for corrections or
changes. But that’s the core of the workflow for the
reimbursement system. For some of the systems, it’s not clear
that you can edit a purchase order at all after it’s finalized.
Even when it is, it doesn’t provide the same tight feedback loop
we’d like, where a requestor can see comments from the
organization that say, “We can’t accept your request because of
these reasons; please correct them and resubmit.”</p>
<p style="margin: 1.2em 0px ! important;">If I’m mistaken in these
evaluations, I’m happy to be corrected. They’re large systems,
and I’d have no trouble believing there might be a particular
angle I missed. But that’s what I’ve found so far, and without
at least some indication that the system can provide the core
functionality without too much revision, I can only justify
spending so much time on further evaluation.</p>
<p style="margin: 1.2em 0px ! important;">I think this is all very
understandable given that the reimbursement system we want to
build has a very different emphasis from accounting software
generally. Part of the reason we decided to prioritize it is
exactly <em>because</em> the core of the software is not
accounting: it’s useful to accounting departments, and needs to
talk to an organization’s general ledger, but the core
functionality is really more about filling out forms than
bookkeeping. It’s something we can make progress on without
getting into larger accounting issues.</p>
<p style="margin: 1.2em 0px ! important;">I share the impulse to
build on what’s already there. Given that, I’m seriously looking
at whether it makes sense to build this as a CiviCRM extension.
CiviCRM already has a lot of the building blocks that we expect
the system to have: forms defined by system administrators
through the interface rather than code; and multiple parties
having different views into that form by their role. And CiviCRM
integration is a feature that we’ve already heard other NPOs say
would be valuable, so we have a reason to build on top of it
that’s unfortunately not there for the accounting systems. In
the best case, the extension might be able to simply define the
workflow and help build common forms; but even if the reality
isn’t that rosy, it’s at least clearer that the core CiviCRM
building blocks suit what we’re trying to build.</p>
<p style="margin: 1.2em 0px ! important;">I’m going to be digging
into that more over the next couple of days, and I’ll follow up
with what I find. But that’s the current direction I’m
exploring.</p>
<div
title="MDH:PGRpdiBjbGFzcz0ibW96LWNpdGUtcHJlZml4Ij5HbGVuLDxicj48YnI+U29ycnkgZm9yIHNpdHRpbmcgb24gdGhpcyBlLW1haWwuJm5ic3A7IEl0J3MgYWN0dWFsbHkgZ2l2ZW4gbWUgYSBsb3QgdG8g
Y2hldyBvbiwgYW5kIGRyb3ZlIG1lIHRvIGV2ZW4gdGFrZSBhIGxvb2sgYXQgc29tZSBvZiB0aGUg
QS9QIGludGVyZmFjZXMgb2YgY3VycmVudCBzeXN0ZW1zLiZuYnNwOyBNb3JlIHRob3VnaHRzIGlu
bGluZS48YnI+PGJyPk9uIDA5LzAxLzIwMTYgMDY6MDEgQU0sIEdsZW4gV2hpdG5leSB3cm90ZTo8
YnI+PC9kaXY+PGJsb2NrcXVvdGUgY2l0ZT0ibWlkOjE0NzI3MjQxMDYuMjA1OTkuMjYuY2FtZWxA
cG9zdC5oYXJ2YXJkLmVkdSIgdHlwZT0iY2l0ZSI+PHByZSB3cmFwPSIiPkkgZG9uJ3Qgc2VlIGVp
dGhlciBvZiB0aGUgcGFyYWdyYXBocyBiZWxvdyBhcyB1bmRlcm1pbmluZyB0aGF0IHBvaW50IG9m
CnZpZXc7IHJhdGhlciB0aGV5IHJlaW5mb3JjZSBpdC4gJm5ic3A7SW5kZWVkLCBJIHRoaW5rIG9u
ZSBvZiB0aGUgZ3JlYXQKcG90ZW50aWFsIGJlbmVmaXRzIG9mIG5wb2FjY3QgaXMgdG8gcHJvdmlk
ZSBhIGxvdy1jb3N0LCBlYXN5LXRvLWJlZ2luLQp3aXRoIHN5c3RlbSBmb3Igc21hbGwgTkZQcywg
d2hvIG1heSB3ZWxsIG5vdCBoYXZlIHNpZ25pZmljYW50CmFjY291bnRpbmcgZXhwZXJ0aXNlIGlu
LWhvdXNlLiAmbmJzcDtIZW5jZSB0aGUgYWJpbGl0eSBmb3IgYW4gQS9QIGNvbXBvbmVudAp0byBw
cmVzZW50IGl0c2VsZiB3aXRob3V0IGFjY291bnRpbmcgamFyZ29uIChidXQgcGVyaGFwcyB3aXRo
IHRlY2huaWNhbAp0ZXJtaW5vbG9neSBhY2Nlc3NpYmxlIGZvciBleHBlcnRzKSBpcyBhIHRlcnJp
ZmljIHBsdXMuPC9wcmU+PC9ibG9ja3F1b3RlPkkgYWdyZWUgd2l0aCBhbGwgb2YgdGhpcywgYnV0
IEkgZG8gd2FudCB0byBiZSBjYXJlZnVsIGFib3V0IHRoYXQgcGFyZW50aGV0aWNhbC7CoCBFdmVy
eXRoaW5nIEkndmUgZG9uZSBhbmQgcmVhZCBtYWtlcyBtZSB0aGluayB0aGF0IGJ1aWxkaW5nIGlu
dGVyZmFjZXMgdGhhdCBhZGFwdCB0byB0aGUgdXNlcidzIGV4cGVyaWVuY2UgbGV2ZWwsIGF0IGEg
dmVyeSBmdW5kYW1lbnRhbCBsZXZlbCwgaXMgYSBmdW5kYW1lbnRhbGx5IGhhcmQgcHJvYmxlbS7C
oCBJIHdvbid0IHNwZWFrIGZvciBvdGhlcnMgb24gdGhlIGxpc3QsIGJ1dCBJIGtub3cgSSBteXNl
bGYgYW0gbm90IHRoZSBraW5kIG9mIFVJL1VYIGV4cGVydCB3aG8ncyBpbiBhIHBvc2l0aW9uIHRv
IGJyZWFrIG5ldyBncm91bmQgb24gdGhhdC48YnI+PGJsb2NrcXVvdGUgY2l0ZT0ibWlkOjE0NzI3
MjQxMDYuMjA1OTkuMjYuY2FtZWxAcG9zdC5oYXJ2YXJkLmVkdSIgdHlwZT0iY2l0ZSI+PHByZSB3
cmFwPSIiPkFzIGZvciB0aGUgc2Vjb25kIHBhcmFncmFwaCwgaWYgSSB1bmRlcnN0YW5kIHRoZSBy
b2FkbWFwLCBpdCBpcyB0bwpkZXZlbG9wIG5wb2FjY3QgYXMgYSBjb2xsZWN0aW9uIG9mIGludGVy
b3BlcmF0aW5nIG1vZHVsZXMsIHNvIHRoYXQgaXQKY2FuIGJlIGFwcHJvYWNoZWQgcGllY2VtZWFs
LjwvcHJlPjwvYmxvY2txdW90ZT5JIGFncmVlIHRoYXQncyB0aGUgY3VycmVudCB0aGlua2luZywg
YW5kIHJpZ2h0IG5vdyBJJ20gbm90IGF3YXJlIG9mIGFueSByZWFzb24gd2Ugd291bGRuJ3QgZG8g
aXQgdGhhdCB3YXksIGJ1dCBJIGRvbid0IHRoaW5rIHdlIG5lY2Vzc2FyaWx5IGhhdmUgYSBoYXJk
IGNvbW1pdG1lbnQgdG8gdGhhdCBhcHByb2FjaC7CoCBJZiBvdGhlciBjb25zaWRlcmF0aW9ucyBs
aWtlIGEgY2hvaWNlIG9mIGZyYW1ld29yayBtYWRlIGl0IGRpZmZpY3VsdCwgaXQncyBzb21ldGhp
bmcgd2UgbWlnaHQgY29uc2lkZXIgdHJhZGluZyBvZmYgZm9yIG90aGVyIGJlbmVmaXRzLjxicj48
YnI+SXQgYWxzbyBkZXBlbmRzIGEgbGl0dGxlIGJpdCBvbiB5b3VyIGRlZmluaXRpb24gb2YgIm1v
ZHVsZS4iwqAgVGhlIGZpcnN0IHJlbGVhc2Ugb2YgdGhlIHJlaW1idXJzZW1lbnQgc3lzdGVtIGlz
IGV4cGVjdGVkIHRvIHRhbGsgdG8gbGVkZ2VycyB0aHJvdWdoIGV4cG9ydCBmdW5jdGlvbmFsaXR5
LsKgIElmIGl0IGNvbnRpbnVlcyB0byB3b3JrIHRoYXQgd2F5LCBldmVuIGFzIHdlIGJ1aWxkIG91
dCB0aGUgcmVzdCBvZiB0aGUgTlBPIEFjY291bnRpbmcgc29mdHdhcmUsIGlzIGl0IHN0aWxsIGEg
Im1vZHVsZT8iwqAgSSBjYW4gdW5kZXJzdGFuZCBkaWZmZXJlbnQgcGVvcGxlIGFuc3dlcmluZyB0
aGF0IGRpZmZlcmVudGx5LCBhbmQgSSBkb24ndCB0aGluayBpdCBtYXR0ZXJzIHRvbyBtdWNoIGFz
IGxvbmcgYXMgd2UncmUgb24gdGhlIHNhbWUgcGFnZSBhYm91dCBmdW5jdGlvbmFsaXR5Ljxicj48
YmxvY2txdW90ZSBjaXRlPSJtaWQ6MTQ3MjcyNDEwNi4yMDU5OS4yNi5jYW1lbEBwb3N0LmhhcnZh
cmQuZWR1IiB0eXBlPSJjaXRlIj48cHJlIHdyYXA9IiI+ICZuYnNwO1NvIHRoZSBpZGVhIHRoYXQg
QS9QIHF1YSBSZWltYnVyc2VtZW50cwpjYW4gb3BlcmF0ZSBpbmRlcGVuZGVudGx5IGZyb20gdGhl
IGV2ZW50dWFsIEdlbmVyYWwgTGVkZ2VyIG1vZHVsZSBzZWVtcwp0byBtZSBjb21wbGV0ZWx5IGNv
bnNpc3RlbnQgd2l0aCBzdWNoIGFuIGFyY2hpdGVjdHVyZSwgYW5kIHJlaW5mb3JjZQp0aGUgaWRl
YSB0aGF0IGEgUmVpbWJ1cnNlbWVudCBtb2R1bGUgbm93IGJlIGNvbmNlaXZlZCBhcyBzdWl0YWJs
ZSB0byBiZQp0aGUgZXZlbnR1YWwgQS9QIG1vZHVsZS4gJm5ic3A7TW9yZW92ZXIgaXQgc2VlbXMg
dG8gaW1wbHkgY29udmVyc2VseSB0aGF0CkEvUCBjb21wb25lbnRzIG9mIGV4aXN0aW5nIHN5c3Rl
bXMsIHN1Y2ggYXMgdGhlIG9uZSBTdGV2ZW4gZGVzY3JpYmVkLApzaG91bGQgYmUgY2FuZGlkYXRl
cyBmb3IgJm5ic3A7KHRoZSBmb3VuZGF0aW9uIG9mKSB0aGlzIFJlaW1idXJzZW1lbnQKbW9kdWxl
LCBpZiB0aGV5IGNhbiBiZSBleHRyYWN0ZWQgYXMgYW4gaW5kZXBlbmRlbnQKbW9kdWxlL3NlcnZp
Y2UvbGlicmFyeSAtLSBhcyBoYXMgYmVlbiBzdGF0ZWQgYmVmb3JlIGFzIGEgbGlrZWx5IHBhdGgK
Zm9yIHRoZSBucG9hY2N0IHByb2plY3QsIHRvIHRha2UgYW4gZXhpc3Rpbmcgc3lzdGVtIG9yIHN5
c3RlbXMgYW5kCnJlY29uc3RydWUgdGhlbSBhcyBhIGxpYnJhcnkgb3IgdG9vbGtpdC48L3ByZT48
L2Jsb2NrcXVvdGU+SSBhZ3JlZSB3aXRoIGFsbCB0aGlzLsKgIFNvIEkgd2VudCB0byBldmFsdWF0
ZSBzb21lIG9mIHRoZSBzeXN0ZW1zIG91dCB0aGVyZS48YnI+PGJyPkkga25vdyBpdCdzIGJlZW4g
YSB3aGlsZSBzaW5jZSB0aGUgcHJvamVjdCdzIGVhcmxpZXIgZXZhbHVhdGlvbiBvZiBhY2NvdW50
aW5nIHN5c3RlbXMsIGFuZCBnaXZlbiB3aGF0IEkndmUgc2FpZCBhYm91dCBwcmlvcml0aWVzIGZv
ciB0aGUgZmlyc3QgcmVsZWFzZSwgdGhlIGVtcGhhc2lzIGlzIGEgbGl0dGxlIGRpZmZlcmVudCB0
aGFuIHRoZSBjb3JlIGFjY291bnRpbmcgZnVuY3Rpb25hbGl0eSB0aGF0IGhhZCBjZW50ZXIgc3Rh
Z2UgdGhlcmUuwqAgU28gSSBzdGFydGVkIGZyb20gV2lraXBlZGlhJ3MgW2xpc3Qgb2YgRk9TUyBh
Y2NvdW50aW5nIHNvZnR3YXJlXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db21wYXJp
c29uX29mX2FjY291bnRpbmdfc29mdHdhcmUjRnJlZV9hbmRfb3Blbl9zb3VyY2Vfc29mdHdhcmUp
Ljxicj48YnI+VGhlIHJlaW1idXJzZW1lbnQgc3lzdGVtIG5lZWRzIHRvIGxldCByZXF1ZXN0b3Jz
IGZpbGUgcmVxdWVzdHMgdGhyb3VnaCB0aGUgd2ViLCBzbyBhbnl0aGluZyB0aGF0IHJlcXVpcmVz
IGEgZGVkaWNhdGVkIGNsaWVudCB3YXMgb3V0LsKgIExvbmctdGVybSwgSSB0aGluayBpdCdzIGlt
cG9ydGFudCBmb3IgdGhlIGhlYWx0aCBvZiB0aGUgcHJvamVjdCB0aGF0IGFsbCBvdXIgY29tcG9u
ZW50cyBiZSBhdCBsZWFzdCBHUEwtY29tcGF0aWJsZSwgc28gdGhhdCBydWxlZCBvdXQgYSBjb3Vw
bGUgbW9yZSB0b28uPGJyPjxicj5Gcm9tIHRoZXJlLCBJIHdlbnQgdGhyb3VnaCBzb21lIG9mIHRo
ZSBtb3JlIHBvcHVsYXIgb3B0aW9ucy7CoCBBcyBtdWNoIGFzIHBvc3NpYmxlLCBJIHRyaWVkIHRv
IGdvIHRocm91Z2ggZGVtb3MsIHRvIGdldCBhIGhpZ2ggbGV2ZWwgcGljdHVyZSBhcyBxdWlja2x5
IGFzIHBvc3NpYmxlLsKgIEkgc3BlbnQgc29tZSBnb29kIHRpbWUgd2l0aCBBRGVtcGllcmUgYW5k
IExlZGdlclNNQiwgYW5kIGEgbGl0dGxlIHdpdGggRnJvbnRBY2NvdW50aW5nLsKgIEkgdGhpbmsg
dGhlcmUgYXJlIGEgY291cGxlIG9mIGZlYXR1cmVzIHRoYXQgd2UndmUgaWRlbnRpZmllZCBhcyBy
ZWFsbHkgY29yZSBmb3IgdGhlIHJlaW1idXJzZW1lbnQgc3lzdGVtIHRoYXQgd291bGQgYmUgZGlm
ZmljdWx0IGZvciBhbGwgb2YgdGhlbSB0byBzdXBwb3J0LCB3aGljaCBtYWtlcyBtZSB0aGluayB0
aGV5J3JlIG5vdCBlc3BlY2lhbGx5IHN1aXRhYmxlIGZvciB0aGUgam9iIHdlIGhhdmUgaW4gbWlu
ZC48YnI+PGJyPlRoZSBmaXJzdCBpcyB0aGF0IGFsbCBwcm9ncmFtIGN1c3RvbWl6YXRpb24gdGVu
ZHMgdG8gYmUgZG9uZSB0aHJvdWdoIGNvZGUuwqAgT25lIG9mIHRoZSB3YXlzIHdlIHdhbnQgdGhl
IHJlaW1idXJzZW1lbnQgc3lzdGVtIHRvIHNhdmUgdXMgdGltZSBpcyBieSBhc2tpbmcgcmVxdWVz
dG9ycyB0aGUgcmlnaHQgcXVlc3Rpb25zIGFib3V0IHdoYXQgdGhleSdyZSBmaWxpbmcsIHRvIGhl
bHAgdGhlbSBhcyBtdWNoIGFzIHBvc3NpYmxlIHRvIHN1Ym1pdCBhIGNvbXBsZXRlIHJlcG9ydC7C
oCBCZWNhdXNlIG9mIHRoYXQsIGl0J3MgaW1wb3J0YW50IHRvIGJlIGFibGUgdG8gYWRhcHQgdGhl
IGZvcm0sIGFzIGVpdGhlciByZWltYnVyc2VtZW50IHBvbGljaWVzIGNoYW5nZSwgb3Igd2UgZmlu
ZCBvdXQgdGhhdCBjdXJyZW50IGZvcm1zIGFyZW4ndCBnaXZpbmcgdXNlcnMgdGhlIHJpZ2h0IGd1
aWRhbmNlLsKgIFJlcXVpcmluZyBjb2RlIGNoYW5nZXMgdG8gYmUgYWJsZSB0byBkbyB0aGlzIGlz
IG1vcmUgb3ZlcmhlYWQgdGhhbiB3ZSByZWFsbHkgd2FudCwgZXNwZWNpYWxseSBzaW5jZSBjb2xs
ZWN0aW5nIGluZm9ybWF0aW9uIG5vdCBhbnRpY2lwYXRlZCBieSB0aGUgc3lzdGVtIG1pZ2h0IHJl
cXVpcmUgZGF0YWJhc2Ugc2NoZW1hIGNoYW5nZXMuPGJyPjxicj5UaGUgc2Vjb25kIGlzIHRoYXQg
dGhlIHN5c3RlbXMgZG9uJ3QgcmVhbGx5IHNlZW0gdG8gaGF2ZSBtdWNoIG9mIGEgY29uY2VwdCBv
ZiBjb2xsYWJvcmF0aW5nIHRvIGJ1aWxkIGEgcHVyY2hhc2Ugb3JkZXIuwqAgRm9yIG1vc3QgYnVz
aW5lc3NlcywgSSB0aGluayB0aGlzIG1ha2VzIHBlcmZlY3Qgc2Vuc2U6IHVzdWFsbHkgeW91J3Jl
IHNlbmRpbmcgcHVyY2hhc2Ugb3JkZXJzIG91dHNpZGUgeW91ciBvcmdhbml6YXRpb24sIGFuZCB5
b3UgY2FuJ3QgZXhwZWN0IHRob3NlIHBhcnRpZXMgdG8gbG9nIGludG8geW91ciBvd24gc3lzdGVt
cyB0byBhc2sgZm9yIGNvcnJlY3Rpb25zIG9yIGNoYW5nZXMuwqAgQnV0IHRoYXQncyB0aGUgY29y
ZSBvZiB0aGUgd29ya2Zsb3cgZm9yIHRoZSByZWltYnVyc2VtZW50IHN5c3RlbS7CoCBGb3Igc29t
ZSBvZiB0aGUgc3lzdGVtcywgaXQncyBub3QgY2xlYXIgdGhhdCB5b3UgY2FuIGVkaXQgYSBwdXJj
aGFzZSBvcmRlciBhdCBhbGwgYWZ0ZXIgaXQncyBmaW5hbGl6ZWQuwqAgRXZlbiB3aGVuIGl0IGlz
LCBpdCBkb2Vzbid0IHByb3ZpZGUgdGhlIHNhbWUgdGlnaHQgZmVlZGJhY2sgbG9vcCB3ZSdkIGxp
a2UsIHdoZXJlIGEgcmVxdWVzdG9yIGNhbiBzZWUgY29tbWVudHMgZnJvbSB0aGUgb3JnYW5pemF0
aW9uIHRoYXQgc2F5LCAiV2UgY2FuJ3QgYWNjZXB0IHlvdXIgcmVxdWVzdCBiZWNhdXNlIG9mIHRo
ZXNlIHJlYXNvbnM7IHBsZWFzZSBjb3JyZWN0IHRoZW0gYW5kIHJlc3VibWl0LiI8YnI+PGJyPklm
IEknbSBtaXN0YWtlbiBpbiB0aGVzZSBldmFsdWF0aW9ucywgSSdtIGhhcHB5IHRvIGJlIGNvcnJl
Y3RlZC7CoCBUaGV5J3JlIGxhcmdlIHN5c3RlbXMsIGFuZCBJJ2QgaGF2ZSBubyB0cm91YmxlIGJl
bGlldmluZyB0aGVyZSBtaWdodCBiZSBhIHBhcnRpY3VsYXIgYW5nbGUgSSBtaXNzZWQuwqAgQnV0
IHRoYXQncyB3aGF0IEkndmUgZm91bmQgc28gZmFyLCBhbmQgd2l0aG91dCBhdCBsZWFzdCBzb21l
IGluZGljYXRpb24gdGhhdCB0aGUgc3lzdGVtIGNhbiBwcm92aWRlIHRoZSBjb3JlIGZ1bmN0aW9u
YWxpdHkgd2l0aG91dCB0b28gbXVjaCByZXZpc2lvbiwgSSBjYW4gb25seSBqdXN0aWZ5IHNwZW5k
aW5nIHNvIG11Y2ggdGltZSBvbiBmdXJ0aGVyIGV2YWx1YXRpb24uPGJyPjxicj5JIHRoaW5rIHRo
aXMgaXMgYWxsIHZlcnkgdW5kZXJzdGFuZGFibGUgZ2l2ZW4gdGhhdCB0aGUgcmVpbWJ1cnNlbWVu
dCBzeXN0ZW0gd2Ugd2FudCB0byBidWlsZCBoYXMgYSB2ZXJ5IGRpZmZlcmVudCBlbXBoYXNpcyBm
cm9tIGFjY291bnRpbmcgc29mdHdhcmUgZ2VuZXJhbGx5LsKgIFBhcnQgb2YgdGhlIHJlYXNvbiB3
ZSBkZWNpZGVkIHRvIHByaW9yaXRpemUgaXQgaXMgZXhhY3RseSAqYmVjYXVzZSogdGhlIGNvcmUg
b2YgdGhlIHNvZnR3YXJlIGlzIG5vdCBhY2NvdW50aW5nOiBpdCdzIHVzZWZ1bCB0byBhY2NvdW50
aW5nIGRlcGFydG1lbnRzLCBhbmQgbmVlZHMgdG8gdGFsayB0byBhbiBvcmdhbml6YXRpb24ncyBn
ZW5lcmFsIGxlZGdlciwgYnV0IHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgaXMgcmVhbGx5IG1vcmUg
YWJvdXQgZmlsbGluZyBvdXQgZm9ybXMgdGhhbiBib29ra2VlcGluZy7CoCBJdCdzIHNvbWV0aGlu
ZyB3ZSBjYW4gbWFrZSBwcm9ncmVzcyBvbiB3aXRob3V0IGdldHRpbmcgaW50byBsYXJnZXIgYWNj
b3VudGluZyBpc3N1ZXMuPGJyPjxicj5JIHNoYXJlIHRoZSBpbXB1bHNlIHRvIGJ1aWxkIG9uIHdo
YXQncyBhbHJlYWR5IHRoZXJlLsKgIEdpdmVuIHRoYXQsIEknbSBzZXJpb3VzbHkgbG9va2luZyBh
dCB3aGV0aGVyIGl0IG1ha2VzIHNlbnNlIHRvIGJ1aWxkIHRoaXMgYXMgYSBDaXZpQ1JNIGV4dGVu
c2lvbi7CoCBDaXZpQ1JNIGFscmVhZHkgaGFzIGEgbG90IG9mIHRoZSBidWlsZGluZyBibG9ja3Mg
dGhhdCB3ZSBleHBlY3QgdGhlIHN5c3RlbSB0byBoYXZlOiBmb3JtcyBkZWZpbmVkIGJ5IHN5c3Rl
bSBhZG1pbmlzdHJhdG9ycyB0aHJvdWdoIHRoZSBpbnRlcmZhY2UgcmF0aGVyIHRoYW4gY29kZTsg
YW5kIG11bHRpcGxlIHBhcnRpZXMgaGF2aW5nIGRpZmZlcmVudCB2aWV3cyBpbnRvIHRoYXQgZm9y
bSBieSB0aGVpciByb2xlLsKgIEFuZCBDaXZpQ1JNIGludGVncmF0aW9uIGlzIGEgZmVhdHVyZSB0
aGF0IHdlJ3ZlIGFscmVhZHkgaGVhcmQgb3RoZXIgTlBPcyBzYXkgd291bGQgYmUgdmFsdWFibGUs
IHNvIHdlIGhhdmUgYSByZWFzb24gdG8gYnVpbGQgb24gdG9wIG9mIGl0IHRoYXQncyB1bmZvcnR1
bmF0ZWx5IG5vdCB0aGVyZSBmb3IgdGhlIGFjY291bnRpbmcgc3lzdGVtcy7CoCBJbiB0aGUgYmVz
dCBjYXNlLCB0aGUgZXh0ZW5zaW9uIG1pZ2h0IGJlIGFibGUgdG8gc2ltcGx5IGRlZmluZSB0aGUg
d29ya2Zsb3cgYW5kIGhlbHAgYnVpbGQgY29tbW9uIGZvcm1zOyBidXQgZXZlbiBpZiB0aGUgcmVh
bGl0eSBpc24ndCB0aGF0IHJvc3ksIGl0J3MgYXQgbGVhc3QgY2xlYXJlciB0aGF0IHRoZSBjb3Jl
IENpdmlDUk0gYnVpbGRpbmcgYmxvY2tzIHN1aXQgd2hhdCB3ZSdyZSB0cnlpbmcgdG8gYnVpbGQu
PGJyPjxicj5JJ20gZ29pbmcgdG8gYmUgZGlnZ2luZyBpbnRvIHRoYXQgbW9yZSBvdmVyIHRoZSBu
ZXh0IGNvdXBsZSBvZiBkYXlzLCBhbmQgSSdsbCBmb2xsb3cgdXAgd2l0aCB3aGF0IEkgZmluZC7C
oCBCdXQgdGhhdCdzIHRoZSBjdXJyZW50IGRpcmVjdGlvbiBJJ20gZXhwbG9yaW5nLjxicj48YnI+"
style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0;"></div>
</div>
<div class="moz-signature markdown-here-signature">-- <br>
Brett Smith</div>
</body>
</html>