\start
Date: Tue, 2 Aug 2016 09:03:11 -0400
From: Tim Daly <axiomcas@gmail.com>
To: oldk1331 <oldk1331@gmail.com>, axiom-developer@nongnu.org
Subject: Re: [Axiom-developer] Axiom project goals

I'm reading some of the debate surrounding literate programming
in the devel logs...

One of the primary reasons mentioned for not doing LP, indeed
\begin{verbatim}for not writing any prose at all, is that there is no academic benefit.

Having worked at 3 Universities and chased a PhD at another I can
fully understand that line of reasoning. However, Axiom isn't being
developed as a stepstone for academics. Research is important
and will continue to play a role. But for Axiom to live there has to
be a way to teach it.

The target audience for Axiom is teaching. That implies that there
should be proper explanations for WHY we call certain functions
(e.g. the resultant for common subexpressions) so the student
or future developers have a clue.

The current crop of developers are experts in the field and see
no need to explain why they choose to call resultant. Indeed, the
attitude extends upward to all their code which, as the developer
they fully understand, so that they see no need to explain any
facet of their work. The focus is on "the bigger picture" they are
trying to solve (and, likely, a "publish" for academic credit).

Of COURSE everyone understands regular chains, right?
If not, go read Kalkbrener's PhD thesis. ... as if anyone ever
read a PhD thesis as part of a class assignment. Everyone
understands Hensel lifting or field extensions or branch cuts.
If not, go read the code (ha).

So there is a fundamental divide that won't ever be crossed.
That divide has long term implications.

If what you care about is tenure, money, promotions, and a
career then a CAS algorithm is just a tool, not a goal. Once
the publish occurs it doesn't matter if the code or the whole
CAS dies, which it will.

If what you care about is survival and adoption of Axiom
then an LP algorithm is a goal, not a tool. Literate Programming
is about communicating ideas to people as well as machines.
Literate Programming is about writing code that lives.

Either motivation is legitimate but only one is about the long term.

Tim


On Mon, Aug 1, 2016 at 8:23 AM, oldk1331 <oldk1331@gmail.com> wrote:

> To Ralf:
>
> > So subscription is not a big issue, I think.
>
> Once signin github, one can config to use email to reply to github
> issues, instead of web interface.
>
> > Do you have a more concret pointer? Would be nice to be able to
> > automatically download and commit a new issue when it comes in from some
> > user. Actually, I am somewhat sure that behind the scenes github already
> > ehandles issues as git repositories internally.
>
> https://github.com/joeyh/github-backup can backup github issues,
> it's written in Haskell, and I haven't used it before.
> For "automatically doing things", there are github APIs.
> BTW, github wiki is a git repo itself.
>
>
> To Tim:
>
> > That said, it might help to realize that a bug report is a major time
> sink
> > for a lead developer. People expect a fix, or at least a response, rather
> > immediately. Often bug reports don't contain enough information to
> > reproduce the bug. And, if you can reproduce it, you might not understand
> > it enough to decide IF it is a bug. Responding to a bug report can cost
> at
> > least one-half day.
>
> The bug tacker not necessarily be a lead developer's thing, it's intend to
> be community driven.  False bugs posted by novice users can be quickly
> replied by more experienced users.  And details of the bug can be filled
> when more and more users reply.
>
> > More issues arise if a "fix" is posted. Does the fix compile? Not
> everyone
> > does a full system build to check before posting. Does the fix actually
> > fix the bug? Perhaps the bug is deeper than the surface fix. Is there a
> > failing test case and does the fix 'fix' it?
>
> There's a thing called CI (continuous integration), and it can be
> integrated
> with github.
>
> > Ideally there should be someone who is a "second-in-command" that
> > handles things like bugs... but I can tell you from experience that
> > a "second-in-command" can undermine a project from within and is
> > a very risky decision.
>
> If you have some experience with github bug tracker and its culture,
> you will find bug tracker is actually a community thing, and very
> "democracy".
>

\start
Date: Thu, 4 Aug 2016 16:17:41 -0400
From: Tim Daly <axiomcas@gmail.com>
To: oldk1331 <oldk1331@gmail.com>, axiom-developer@nongnu.org
Subject: Re: [Axiom-developer] Axiom project goals

In the spirit of the game I'm moving the buglist to be a full
literate volume, published like all the others. This will allow
automation, extraction and testing of various bugs
during build time and keep the bug list up to date and public.

I'm also re-ordering it so that the various bugs/warnings/etc
are grouped logically (e.g. interpreter, category, domain, etc)
rather than the prior "stack by most recent" orientation. That
will make it easier to find duplicates as well as simplify the
focus of any debugging effort.

This will be followed by a review of all outstanding bugs to
see if they are still valid.

There goes another few weeks.



On Mon, Aug 1, 2016 at 8:23 AM, oldk1331 <oldk1331@gmail.com> wrote:

> To Ralf:
>
> > So subscription is not a big issue, I think.
>
> Once signin github, one can config to use email to reply to github
> issues, instead of web interface.
>
> > Do you have a more concret pointer? Would be nice to be able to
> > automatically download and commit a new issue when it comes in from some
> > user. Actually, I am somewhat sure that behind the scenes github already
> > ehandles issues as git repositories internally.
>
> https://github.com/joeyh/github-backup can backup github issues,
> it's written in Haskell, and I haven't used it before.
> For "automatically doing things", there are github APIs.
> BTW, github wiki is a git repo itself.
>
>
> To Tim:
>
> > That said, it might help to realize that a bug report is a major time
> sink
> > for a lead developer. People expect a fix, or at least a response, rather
> > immediately. Often bug reports don't contain enough information to
> > reproduce the bug. And, if you can reproduce it, you might not understand
> > it enough to decide IF it is a bug. Responding to a bug report can cost
> at
> > least one-half day.
>
> The bug tacker not necessarily be a lead developer's thing, it's intend to
> be community driven.  False bugs posted by novice users can be quickly
> replied by more experienced users.  And details of the bug can be filled
> when more and more users reply.
>
> > More issues arise if a "fix" is posted. Does the fix compile? Not
> everyone
> > does a full system build to check before posting. Does the fix actually
> > fix the bug? Perhaps the bug is deeper than the surface fix. Is there a
> > failing test case and does the fix 'fix' it?
>
> There's a thing called CI (continuous integration), and it can be
> integrated
> with github.
>
> > Ideally there should be someone who is a "second-in-command" that
> > handles things like bugs... but I can tell you from experience that
> > a "second-in-command" can undermine a project from within and is
> > a very risky decision.
>
> If you have some experience with github bug tracker and its culture,
> you will find bug tracker is actually a community thing, and very
> "democracy".
>

\start
Date: Fri, 5 Aug 2016 07:30:57 -0400
From: Tim Daly <axiomcas@gmail.com>
To: oldk1331 <oldk1331@gmail.com>
Subject: Re: [Axiom-developer] Axiom project goals

> Bug tracker in book form? I don't think that's a good idea.

Because?

I can already see benefits.

Organizing bugs in book form makes it easier to search. The
chapter (e.g. hyperdoc), section (e.g. content, typo, wishlist),
and cross-reference (e.g. to the other books) make it easier
to find already-reported bugs.

The ability to intertwine words with the bugs means that what
appears to be a bug (e.g. lack of simplification) can be explained.

The ability to extract literate chunks means that the testing of
bugs can be automated. They can be extracted at build time,
added to the test suite, and run with the other test cases. Using
Axiom's --SRE testing markup, the "expected bad results" can
be tested against the actual results to highlight changed behavior.
So a bug that "succeeds", that is, one that still exists, can be
tested to see if the behavior has changed ("fixed").

Known bugs are just another volume in the series. They can
be cited and cross-referenced from the interpreter or the algebra.
So when an algorithm has a known bug but no-one can agree
on the "proper fix", the discussion can be cited. This will be
especially useful in the Computer Algebra Test Suite where
bug are mostly "limitations" (e.g. can't simplify nested sqrts).

Promoting bugs to book form also means that they get regular
review. They are not "someplace else", such as a bug tracker
on a website. Submitting a bug report is the same process as
submitting a patch.

I've always thought of bugs as something-but-not-code. I have
come to understand that all systems always have bugs. Why not
make bugs "first class", just like code?

On Fri, Aug 5, 2016 at 6:58 AM, oldk1331 <oldk1331@gmail.com> wrote:

> Bug tracker in book form? I don't think that's a good idea.
>
> On Fri, Aug 5, 2016 at 4:17 AM, Tim Daly <axiomcas@gmail.com> wrote:
> > In the spirit of the game I'm moving the buglist to be a full
> > literate volume, published like all the others. This will allow
> > automation, extraction and testing of various bugs
> > during build time and keep the bug list up to date and public.
> >
> > I'm also re-ordering it so that the various bugs/warnings/etc
> > are grouped logically (e.g. interpreter, category, domain, etc)
> > rather than the prior "stack by most recent" orientation. That
> > will make it easier to find duplicates as well as simplify the
> > focus of any debugging effort.
> >
> > This will be followed by a review of all outstanding bugs to
> > see if they are still valid.
> >
> > There goes another few weeks.
> >
>

\start
Date: Fri, 5 Aug 2016 18:58:32 +0800
From: oldk1331 <oldk1331@gmail.com>
To: Tim Daly <axiomcas@gmail.com>
Subject: Re: [Axiom-developer] Axiom project goals

Bug tracker in book form? I don't think that's a good idea.

On Fri, Aug 5, 2016 at 4:17 AM, Tim Daly <axiomcas@gmail.com> wrote:
> In the spirit of the game I'm moving the buglist to be a full
> literate volume, published like all the others. This will allow
> automation, extraction and testing of various bugs
> during build time and keep the bug list up to date and public.
>
> I'm also re-ordering it so that the various bugs/warnings/etc
> are grouped logically (e.g. interpreter, category, domain, etc)
> rather than the prior "stack by most recent" orientation. That
> will make it easier to find duplicates as well as simplify the
> focus of any debugging effort.
>
> This will be followed by a review of all outstanding bugs to
> see if they are still valid.
>
> There goes another few weeks.
>

\start
Date: Fri, 5 Aug 2016 16:55:56 -0400
From: Tim Daly <axiomcas@gmail.com>
To: axiom-developer@nongnu.org, Old K <oldk1331@gmail.com>, 
	Ralf Hemmecke <ralf@hemmecke.org>, Tim Daly <daly@axiom-developer.org>
Subject: [Axiom-developer] Under-appreciated aspects of literate programming

The bug list brings out several aspects of literate programming
that are not obvious at first glance but make a qualitative
difference in maintaining code. Previously people have turned
to IDEs to provide these features. IDEs are just more code to
maintain, often with very task-specific hacks that are, sigh,
undocumented. IDEs also require more learning to be effective.

In particular, if we contrast bug tracking using an online bug
tracker like github/savannah/sourceforge and a literate form
we can see some differences.

1) Organizing bugs in book form makes it easier to search.

No search tool is needed. We know how to search books,
by chapter/section titles or by index or by provided tables.
Search tools can be used if necessary because the latex
sources are just ascii text and some tools can search PDFs.

2) The ability to intertwine words with the bugs

Here we have the full power of latex rather than restrictions
like "no html". If the issue is mathematics we can include
equations. If the issue is html we can use verbatim. We
can use hyperlinks to external sources (just like bug trackers).
We can also include images for things like graphics bugs.

3) Bugs can be organized

Traditional bug trackers tend to use a stack architecture so
that the latest bugs appear on top. Time is not necessarily
the most useful organization.

They do have a useful feature of capturing discussions from
emails but this could be achieved using patch on the literate
document. They also track severity which is useful. This
could be achieved with simple color-coding in the literate doc.

4) The ability to extract literate chunks

Since sources are maintained in literate documents it is trivial
to extract bugs from a literate document. These can be pulled
into test files at build time and checked for changes. So a
change that fixes multiple bugs can all be highlighted at once.
Axiom uses a character-compare mechanism so any behavior
change will be obvious. Thus bug review is part of the build
process.

5) Bugs can be cited and hyperlinked

Bugs can be cited in the source code so a known issue can
refer to the particular bug. Hyperlinking between documents
means that it is possible to link from code-to-bug or
bug-to-code in the actual sources.

6) Bugs are part of the source tree

Promoting bugs to book form also means that they get regular
review. They are not "someplace else", such as a bug tracker
on a website. Submitting a bug report is the same process as
submitting a patch. So bug review is part of the release process.

7) Bugs are part of every program

Bugs are just another aspect of programming, like testing,
build systems, and documentation. It makes sense to treat them
as first-class source control objects. Having a "bug book" makes
it obvious where to look for bug reports.

Some points in the diatribe are bug-specific. But literate
programming in a pervasive form really does enhance the many
ways that code can be organized, maintained, tested, searched,
explained, and understood.

\start
Date: Fri, 5 Aug 2016 23:18:03 +0200
From: Ralf Hemmecke <ralf@hemmecke.org>
To: Tim Daly <axiomcas@gmail.com>, axiom-developer@nongnu.org,
	Old K <oldk1331@gmail.com>, Tim Daly <daly@axiom-developer.org>
Subject: Re: [Axiom-developer] Under-appreciated aspects of literate
 programming

> 6) Bugs are part of the source tree

To me, it would be sufficient, if fixed bug come with a commit message
that describes the bug that is fixed and the source code contains a test
that corresponds to the bug.

I don't necessarily need open bugs in the source tree. They could live
in the same repository (note that git allows non-connected DAGs
(directed acyclic graphs) of commits in one repository), but I wouldn't
want open bugs hanging in the source repo.

Ralf

\start
Date: Fri, 5 Aug 2016 20:51:24 -0400
From: Tim Daly <axiomcas@gmail.com>
To: Ralf Hemmecke <ralf@hemmecke.org>
Subject: Re: [Axiom-developer] Under-appreciated aspects of literate
 programming

Fixed bugs seem uninteresting. Several things failed on my
car, for instance, that were fixed. There is rarely the need
to revisit failures, except possibly in regression tests, like
brakes :-)

Except for release notes, why would anyone want to know about
fixed bugs? At most someone running an old version might
want to know.

On the other hand, a known bug is an intrinsic part of the
system (mis-)behavior and is something worth noting. Why
would you want to keep that in, say github? Axiom has a git
repo at savannah, sourceforge, and axiom-developer. Which
of these should be "the master bug list?".

If the bugs are kept in a repo, what happens when it changes?
Axiom was originally maintained in CVS and in Arch. Then it
was in SVN, now git. I don't think the bug trackers were
interchangeable.

It just seems reasonable to me to keep the known bugs with
the source code. git allows "disconnected development" because
it is a complete source tree and history. If you're disconnected
you can't reach the bug list on github.

Additionally you maintain your own fork of the project. That
fork will have its own bug trail. If someone forks your code,
shouldn't they also fork the bug list?

It is mildly surprising that the tools to maintain repos (e.g.
git) don't have "git bugnote" or some such support built in.
Or at least a "git bugfetch" to get the current bug list.

Bugs are just another (unintended) developer product.
Of all of the things developers do, they seem to consider
bugs "foreign" despite finding them in every project.
How odd.



On Fri, Aug 5, 2016 at 5:18 PM, Ralf Hemmecke <ralf@hemmecke.org> wrote:

> > 6) Bugs are part of the source tree
>
> To me, it would be sufficient, if fixed bug come with a commit message
> that describes the bug that is fixed and the source code contains a test
> that corresponds to the bug.
>
> I don't necessarily need open bugs in the source tree. They could live
> in the same repository (note that git allows non-connected DAGs
> (directed acyclic graphs) of commits in one repository), but I wouldn't
> want open bugs hanging in the source repo.
>
> Ralf
>


\start
Date: Sat, 6 Aug 2016 10:23:20 +0200
From: Ralf Hemmecke <ralf@hemmecke.org>
To: Tim Daly <axiomcas@gmail.com>
Subject: Re: [Axiom-developer] Under-appreciated aspects of literate
 programming

On 08/06/2016 02:51 AM, Tim Daly wrote:
> Fixed bugs seem uninteresting. Several things failed on my car, for 
> instance, that were fixed. There is rarely the need to revisit 
> failures, except possibly in regression tests, like brakes :-)

I don't understand your comment. You are in favour of even writing a
book about the bugs in AXIOM and complain about documenting fixed bugs?
Do I misunderstand something?

> Except for release notes, why would anyone want to know about fixed 
> bugs? At most someone running an old version might want to know.

Not everyone is always up-to-date with the latest version of the
program. Of course, it would be good if developers can tell of a
misbehaviour of the program is because of the old version and that the
bug is already fixed in a newer version.

Furthermore, a bugfix is not always a bugfix. It might fix the
misbehaviour, but at the same time introduce another misbehaviour,
because the bugfixer did not completely understand that part of the
program. Then it would be good for the next developer (or even for the
same developer---since people tend to forget) to know the underlying
assumptions for the old bugfix.

> On the other hand, a known bug is an intrinsic part of the system 
> (mis-)behavior and is something worth noting. Why would you want to 
> keep that in, say github?

If you understood my argument, I actually have nothing against putting
bugs into the same repo, but my suggestion is more that they live on a
disconnected DAG and not directly in the DAG of the source code commits.
I think bugs have a different life cycle than source code.

> Axiom has a git repo at savannah, sourceforge, and axiom-developer.
> Which of these should be "the master bug list?".

As with git, one has to declare one to be the master repo. It's only a
small thing to declare one bugtracker as the master. And if the
bugtracker would manage the bugs via git in a separate DAG, then one
could also have the bugs offline. It would probably a bit of a problem
to merge different (half-on/half-offline) discussion lines about a bug,
but I consider that a problem of the specific bugtracker tool.
Unfortunately, I haven't seen a nice and easy to use bugtracker with
underlying git.

> It is mildly surprising that the tools to maintain repos (e.g. git) 
> don't have "git bugnote" or some such support built in. Or at least
> a "git bugfetch" to get the current bug list.

True. I think that https://git-scm.com/docs/git-notes is also not the
right thing.

Maybe http://bugseverywhere.org/ is close to what I have in mind, but
I've never tried it and it looks unmaintained (same for ticgit-ng
https://github.com/jeffWelling/ticgit).

Ralf

\start
Date: Sat, 6 Aug 2016 07:28:20 -0400
From: Tim Daly <axiomcas@gmail.com>
To: Ralf Hemmecke <ralf@hemmecke.org>
Subject: Re: [Axiom-developer] Under-appreciated aspects of literate
 programming

Methinks I mis-understood your DAG suggestion.

Are you suggesting that the source code is in one DAG
(src/doc/build/etc) and that bugs are in a parallel DAG?

Are you also suggesting that the "bug DAG" be a git repo
separate from the source repo?

In a pile-of-sand (POS) project organized by a directory
structure would it be just as easy to have a bugs directory
in every sub-directory? That would seem to fulfill the goal
but can git have overlapping git-managed directories?

Your bugseverywhere.org link seems to cover most of my
suggestions (except certain LP-specific ones).


On Sat, Aug 6, 2016 at 4:23 AM, Ralf Hemmecke <ralf@hemmecke.org> wrote:

> On 08/06/2016 02:51 AM, Tim Daly wrote:
> > Fixed bugs seem uninteresting. Several things failed on my car, for
> > instance, that were fixed. There is rarely the need to revisit
> > failures, except possibly in regression tests, like brakes :-)
>
> I don't understand your comment. You are in favour of even writing a
> book about the bugs in AXIOM and complain about documenting fixed bugs?
> Do I misunderstand something?
>
> > Except for release notes, why would anyone want to know about fixed
> > bugs? At most someone running an old version might want to know.
>
> Not everyone is always up-to-date with the latest version of the
> program. Of course, it would be good if developers can tell of a
> misbehaviour of the program is because of the old version and that the
> bug is already fixed in a newer version.
>
> Furthermore, a bugfix is not always a bugfix. It might fix the
> misbehaviour, but at the same time introduce another misbehaviour,
> because the bugfixer did not completely understand that part of the
> program. Then it would be good for the next developer (or even for the
> same developer---since people tend to forget) to know the underlying
> assumptions for the old bugfix.
>
> > On the other hand, a known bug is an intrinsic part of the system
> > (mis-)behavior and is something worth noting. Why would you want to
> > keep that in, say github?
>
> If you understood my argument, I actually have nothing against putting
> bugs into the same repo, but my suggestion is more that they live on a
> disconnected DAG and not directly in the DAG of the source code commits.
> I think bugs have a different life cycle than source code.
>
> > Axiom has a git repo at savannah, sourceforge, and axiom-developer.
> > Which of these should be "the master bug list?".
>
> As with git, one has to declare one to be the master repo. It's only a
> small thing to declare one bugtracker as the master. And if the
> bugtracker would manage the bugs via git in a separate DAG, then one
> could also have the bugs offline. It would probably a bit of a problem
> to merge different (half-on/half-offline) discussion lines about a bug,
> but I consider that a problem of the specific bugtracker tool.
> Unfortunately, I haven't seen a nice and easy to use bugtracker with
> underlying git.
>
> > It is mildly surprising that the tools to maintain repos (e.g. git)
> > don't have "git bugnote" or some such support built in. Or at least
> > a "git bugfetch" to get the current bug list.
>
> True. I think that https://git-scm.com/docs/git-notes is also not the
> right thing.
>
> Maybe http://bugseverywhere.org/ is close to what I have in mind, but
> I've never tried it and it looks unmaintained (same for ticgit-ng
> https://github.com/jeffWelling/ticgit).
>
> Ralf
>


\start
Date: Sun, 7 Aug 2016 00:21:17 +0200
From: Ralf Hemmecke <ralf@hemmecke.org>
To: Tim Daly <axiomcas@gmail.com>, axiom-dev <axiom-developer@nongnu.org>
Subject: Re: [Axiom-developer] Under-appreciated aspects of literate
 programming

On 08/06/2016 01:28 PM, Tim Daly wrote:
> Methinks I mis-understood your DAG suggestion.
> 
> Are you suggesting that the source code is in one DAG
> (src/doc/build/etc) and that bugs are in a parallel DAG?

More or less yes. I think it is a bit like when you document a project
on github.

https://help.github.com/articles/creating-project-pages-manually/

The gh-pages branch is disconnected from the source code (ie, there are
two DAGs, but they live in the same repository.

> Are you also suggesting that the "bug DAG" be a git repo
> separate from the source repo?

Of course, if that are disjoint DAGs, it's easy to make them live in
different repositories. But git allows to handle several disjoint DAGs
in one repository. (My Definition: A "repository" is simply a collection
of git-objects (and the pointers to form DAGs) under a common name).

> In a pile-of-sand (POS) project organized by a directory
> structure would it be just as easy to have a bugs directory
> in every sub-directory? That would seem to fulfill the goal
> but can git have overlapping git-managed directories?

I don't think that a bug directory in every sub-dir would make sense.
Bugs sometimes touch different parts of a program and usually the
submitter of the bug has no idea, in which part of program the bug might
be hidden.

Otherwise I don't understand "overlapping git-managed directories" to be
able to give a good answer.

> Your bugseverywhere.org <http://bugseverywhere.org> link seems to cover most of my
> suggestions (except certain LP-specific ones).

Well, that's what I found and what (I think) would be good, but read
also
http://travisbrown.ca/blog.html#TooMuchAboutDistributedBugTracking2013-04-20
There are lots of things to consider before one embarks on a particular
distributed bugtracker. Obviously, in contrast to distributed version
control systems, the world hasn't yet seen a great acceptance of
distributed bugtrackers.

Ralf

\start
Date: Sat, 6 Aug 2016 19:49:46 -0400
From: Tim Daly <axiomcas@gmail.com>
To: Ralf Hemmecke <ralf@hemmecke.org>
Subject: Re: [Axiom-developer] Under-appreciated aspects of literate
 programming

Hmmm. Your link distinguishes 3 cases, out-of-tree (such as
in a github bug tracker), off-branch (which appears to be what
you are suggesting, right?), and on-branch (part of the sources
in the Axiom scheme).

He raises the question of merging bugs where systems might
have custom software to do things like maintain state (fixed?
diagnosed? open?). In the abstract this is a simple task that
really doesn't need much automation. The github-style out-of-tree
systems seem to have the most (and incompatible) automation.

He also raises issues of distributed bug tracking where there are
multiple sites and/or multiple VCS. This tends to undermine
things like bug state since it is not universal. So any system
that is multiple sites/VCS such as Axiom runs into the state
problem. If there are 3 states on one site and 7 on another,
how are bugs classified?

He raises the problem of a GUI, potentially two versions,
one local and one remote. If there are multiple sites he raises
the distributed database issue. More code, more work, less gain.
Books don't need a GUI, just a PDF reader.

For most of its life Axiom stored bugs in the mailing list.

These were collected into a single "buglist" file a couple years
ago. The recent discussion caused a revisit of the buglist and
made it "first-class" as a literate source, enabling the features
I previously mentioned. Now it is a live object, not just a list of
bug reports and comments.

Axiom's literate version is "on-branch", uses no special state code,
and is "distributed" in that it can be used disconnected since
it is part of the source distribution. It is a single book so there
are no issues about DAGs or directories. Bugs can be attached
to sources (where the connection is known) using hyperlinks
between documents.Bugs can be automatically checked at
build time. I don't see all of these features in any of the DCVS
bug trackers he reviewed.

Everything in Axiom is moving to book form. For example,
Hyperdoc now fetches pages directly from the book, not from
a directory of files. Eventually everything will be in books.So
it makes sense that bugs are literate and cross-linked to the
source books.

Scraping through the forums for bugs is time consuming.
How to handle that collection seems to have many aspects.
Your link seems to have covered them well but he didn't seem
to converge on a solution.




On Sat, Aug 6, 2016 at 6:21 PM, Ralf Hemmecke <ralf@hemmecke.org> wrote:

> On 08/06/2016 01:28 PM, Tim Daly wrote:
> > Methinks I mis-understood your DAG suggestion.
> >
> > Are you suggesting that the source code is in one DAG
> > (src/doc/build/etc) and that bugs are in a parallel DAG?
>
> More or less yes. I think it is a bit like when you document a project
> on github.
>
> https://help.github.com/articles/creating-project-pages-manually/
>
> The gh-pages branch is disconnected from the source code (ie, there are
> two DAGs, but they live in the same repository.
>
> > Are you also suggesting that the "bug DAG" be a git repo
> > separate from the source repo?
>
> Of course, if that are disjoint DAGs, it's easy to make them live in
> different repositories. But git allows to handle several disjoint DAGs
> in one repository. (My Definition: A "repository" is simply a collection
> of git-objects (and the pointers to form DAGs) under a common name).
>
> > In a pile-of-sand (POS) project organized by a directory
> > structure would it be just as easy to have a bugs directory
> > in every sub-directory? That would seem to fulfill the goal
> > but can git have overlapping git-managed directories?
>
> I don't think that a bug directory in every sub-dir would make sense.
> Bugs sometimes touch different parts of a program and usually the
> submitter of the bug has no idea, in which part of program the bug might
> be hidden.
>
> Otherwise I don't understand "overlapping git-managed directories" to be
> able to give a good answer.
>
> > Your bugseverywhere.org <http://bugseverywhere.org> link seems to cover
> most of my
> > suggestions (except certain LP-specific ones).
>
> Well, that's what I found and what (I think) would be good, but read
> also
> http://travisbrown.ca/blog.html#TooMuchAboutDistributedBugTrac
> king2013-04-20
> There are lots of things to consider before one embarks on a particular
> distributed bugtracker. Obviously, in contrast to distributed version
> control systems, the world hasn't yet seen a great acceptance of
> distributed bugtrackers.
>
> Ralf
>


\start
Date: Mon, 8 Aug 2016 22:27:52 -0400
From: Tim Daly <axiomcas@gmail.com>
To: axiom-dev <axiom-developer@nongnu.org>, Tim Daly <daly@axiom-developer.org>
Subject: [Axiom-developer] autoconf revisited

John,

...[snip]...

re: why doesn't Axiom use autoconf.

Poul-Henning Kamp wrote an essay that contains the essence
of the reply:
A Generation Lost in the Bazaar
http://queue.acm.org/detail.cfm?id=2349257

  "Even more maddening is that 31,085 of those lines are in a
   single unreadably ugly shell script called configure. The idea
   is that the configure script performs approximately 200
   automated tests, so that the user is not burdened with
   configuring libtool manually. This is a horribly bad idea,
   already much criticized back in the 1980s when it appeared,
   as it allows source code to pretend to be portable behind the
   veneer of the configure script, rather than actually having the
   quality of portability to begin with. It is a travesty that the
   configure idea survived."

autoconf adds languages like M4, shell scripts, and makefiles.
It hardens the shape of the source tree. New versions are
released that break old versions. The "new" is added and
the "old" is never removed. It is complexity by accretion,
black paint over veneer.

Axiom's goal has been, and continues to be, removing
dependencies. Meta is gone. Boot is gone. Noweb is gone.
The directory-based pile-of-sand (POS) is disappearing into
books.

In the reasonable future C will be gone. Work is underway
to build hyperdoc and graphics in the browser (with
minimal standards-based javascript/xhtml).

Make will be gone as more of the work is merged into lisp.

Latex exists with only minimal chunk support macro
extensions (a few dozen lines).

The eventual goal is Axiom as a literate, common lisp
program built using lisp with an optional browser front-end
served from lisp.

Simplify, simplify...

Tim

\start
Date: Wed, 10 Aug 2016 06:50:21 -0400
From: Tim Daly <axiomcas@gmail.com>
To: axiom-dev <axiom-developer@nongnu.org>, Tim Daly <daly@axiom-developer.org>,
	miked@nag.co.uk, James Davenport <J.H.Davenport@bath.ac.uk>, 
	Richard Fateman <fateman@berkeley.edu>,
	Ralf Hemmecke <ralf@hemmecke.org>, vdhoeven@lix.polytechnique.fr
Subject: [Axiom-developer] Semantic Latex

There has been an effort in the past to extract mathematics from
latex. It seems that the usual latex markup does not carry enough
semantic information to disambiguate expressions.

Axiom has a similar problem occasionally where the interpreter
tries to guess and the compiler insists on type specifications.

Axiom provides an abbreviation for each type, such as FRAC for
Fraction and INT for Integer.

Might it be possible to create latex macros that take advantage
of this to provide unambiguous markup. For instance, instead of

\frac{3x+b}{2x}

we might have a latex markup of

\FRAC[\INT]{3x+b}{2x}

where there was a latex macro for each Axiom type. This would
turn into an latex \usepackage{AxiomType}

There would be a map from the \FRAC[\INT] form to the \frac
form which seems reasonably easy to do in latex. There would
be a parser that maps \FRAC[\INT] to the Axiom input syntax.

The problem would be to take the NIST Math Handbook sources
(is the latex available?) and decorate them with additional markup
so they could parse to valid Axiom input and valid latex input
(which they already are, but would validate the mapping back to
latex).

Comments?

Tim

\start
Date: Sun, 14 Aug 2016 10:08:43 -0700
From: Arthur Ralfs <arthur@mathbrane.ca>
To: axiom-developer@nongnu.org
Subject: Re: [Axiom-developer] autoconf revisited

On 08/08/2016 07:27 PM, Tim Daly wrote:
>
> In the reasonable future C will be gone. Work is underway
> to build hyperdoc and graphics in the browser (with
> minimal standards-based javascript/xhtml).
>
>

Just a note but I don't think you need xhtml anymore since html 5 allows 
embedding mathml, canvas and svg directly without elaborate incantations.

Arthur

\start
Date: Sun, 14 Aug 2016 16:05:16 -0700
From: Richard Fateman <fateman@berkeley.edu>
To: James Davenport <J.H.Davenport@bath.ac.uk>, Tim Daly <axiomcas@gmail.com>
Subject: Re: [Axiom-developer] Semantic Latex
Cc: axiom-dev <axiom-developer@nongnu.org>,
	Tim Daly <daly@axiom-developer.org>, "miked@nag.co.uk" <miked@nag.co.uk>,
	Ralf Hemmecke <ralf@hemmecke.org>,
	"vdhoeven@lix.polytechnique.fr" <vdhoeven@lix.polytechnique.fr>

On 8/14/2016 11:05 AM, James Davenport wrote:
> Indeed, the semantics of LaTeX is pretty weak. I REALLY wouldn't like to start from there - even (good) MathML-P, with &InvisibleTimes; etc. is much better.
> However, LaTeX is what we have, and what we are likely to have in the near future, so we must live with it, and yours seems like as good an accommodation as any.
Face it:  Mathematicians do it all the time.  They read journal articles 
with
no more information than the position of glyphs on a piece of paper.

There are poorly printed papers and reference books in which it is 
impossible
to be sure what the glyphs are  (esp. books printed on crude paper in 
Moscow...)

And there are poorly written papers which cannot be read in isolation --
the authors (and reviewers, editors) have so much absorbed the context of
their field that they neglect to define their peculiar notation.

Nevertheless, that's what the literature looks like.

when I was trying to scan Gradshteyn & Rhyzik or similar books, we stumbled
over it page by page. I recall finding a place where we  figured out what
the typeset integration result was by trying out our various
semantic opinions and differentiating.

Talking with run-of-the-mill professional academic applied mathematicians is
sometimes revealing.  At one demonstration (in Essen, Germany, a conference
on "Retrodigitalization" of mathematics -- {It may sound better in 
German}, A
program of mine read in a page or two from  Archiv der Mathematik, and spit
it out -- but with a modern font,  and in two-columns, other changes 
too.  The mathematicians in
the audience were thunderstruck, because they thought that the program must
have understood the mathematics to make that kind of transformation.

Of course all it did was guess at the
appropriate TeX to produce the equivalent spacing, and "knew" nothing of
the semantics.

Actually, I was amazed by the result when I saw it, but for two reasons.
  (a) Someone else had actually used my program;
  (b) There were no errors.

[The reason for (b)  is that the recognition program had been trained on 
exactly
-- maybe only -- that page -- it was trained so that 
defective/broken/linked characters were
mapped to the right answers].

But the point remains that if we wrote a program that was as smart as
(the collection of...) smartest human mathematicians,  then TeX would be 
enough
semantics.





>   
> Another problem is that mathematicians do not mean what they write: $\frac{x+1}2$ is logically an element of Z(x), but the mathematician probably intended Q[x].
I think that most people using DLMF.nist.gov  would not know or care. 
It's not their part of mathematics.

It is probably unfortunate if Axiom (or Openmath or MathML) cares and 
consequently requires such users to know.

RJF
> James
>
> Sent from my iPhone
>
>> On 10 Aug 2016, at 11:50, "Tim Daly" <axiomcas@gmail.com> wrote:
>>
>> There has been an effort in the past to extract mathematics from
>> latex. It seems that the usual latex markup does not carry enough
>> semantic information to disambiguate expressions.
>>
>> Axiom has a similar problem occasionally where the interpreter
>> tries to guess and the compiler insists on type specifications.
>>
>> Axiom provides an abbreviation for each type, such as FRAC for
>> Fraction and INT for Integer.
>>
>> Might it be possible to create latex macros that take advantage
>> of this to provide unambiguous markup. For instance, instead of
>>
>> \frac{3x+b}{2x}
>>
>> we might have a latex markup of
>>
>> \FRAC[\INT]{3x+b}{2x}
>>
>> where there was a latex macro for each Axiom type. This would
>> turn into an latex \usepackage{AxiomType}
>>
>> There would be a map from the \FRAC[\INT] form to the \frac
>> form which seems reasonably easy to do in latex. There would
>> be a parser that maps \FRAC[\INT] to the Axiom input syntax.
>>
>> The problem would be to take the NIST Math Handbook sources
>> (is the latex available?) and decorate them with additional markup
>> so they could parse to valid Axiom input and valid latex input
>> (which they already are, but would validate the mapping back to
>> latex).
>>
>> Comments?
>>
>> Tim
>>

\start
Date: Mon, 15 Aug 2016 08:39:35 -0400
From: Tim Daly <axiomcas@gmail.com>
To: Richard Fateman <fateman@berkeley.edu>
Subject: Re: [Axiom-developer] Semantic Latex
Cc: James Davenport <J.H.Davenport@bath.ac.uk>,
	axiom-dev <axiom-developer@nongnu.org>, 
	Tim Daly <daly@axiom-developer.org>, "miked@nag.co.uk" <miked@nag.co.uk>,
	Ralf Hemmecke <ralf@hemmecke.org>, 
	"vdhoeven@lix.polytechnique.fr" <vdhoeven@lix.polytechnique.fr>

>>Another problem is that mathematicians do not mean what they write:
>> $\frac{x+1}2$ is logically an element of Z(x), but the mathematician
probably intended Q[x].

>I think that most people using DLMF.nist.gov  would not know or care.
> It's not their part of mathematics

I think this is the fundamental change that Axiom (and computational
mathematics
in general) adds to the question. I've previoiusly called this the
"provisos" question.
What are the conditions on a formula for it to be valid and applicable?

What "semantic latex" would introduce is explicit conditions on the
formulas such as
"Fraction Integer" or "Complex", as well as conditions on the analytic
continuations
for branch cuts.

The likely result would be that one formula in G&R might turn into several
because
a simplification that is available over C might not be available over R.

This adds to the size of the tables but makes their computational
mathematics
use much easier. Suppose that 3.7.14 was split based on provisos into one
formula valid over R and one valid over C (based on a simplification).

A "computational mathematics G&R" would be quite useful, possibly leading
to a
normalization of assumptions made by the various systems....as in, "Oh, we
were
using 3.7.14a (valid only over R) and you were using 3.7.14b (valid over C)"

It would also highlight research questions as "we can handle integration of
3.7.14a but not 3.7.14b


On Sun, Aug 14, 2016 at 7:05 PM, Richard Fateman <fateman@berkeley.edu>
wrote:

> On 8/14/2016 11:05 AM, James Davenport wrote:
>
>> Indeed, the semantics of LaTeX is pretty weak. I REALLY wouldn't like to
>> start from there - even (good) MathML-P, with &InvisibleTimes; etc. is much
>> better.
>> However, LaTeX is what we have, and what we are likely to have in the
>> near future, so we must live with it, and yours seems like as good an
>> accommodation as any.
>>
> Face it:  Mathematicians do it all the time.  They read journal articles
> with
> no more information than the position of glyphs on a piece of paper.
>
> There are poorly printed papers and reference books in which it is
> impossible
> to be sure what the glyphs are  (esp. books printed on crude paper in
> Moscow...)
>
> And there are poorly written papers which cannot be read in isolation --
> the authors (and reviewers, editors) have so much absorbed the context of
> their field that they neglect to define their peculiar notation.
>
> Nevertheless, that's what the literature looks like.
>
> when I was trying to scan Gradshteyn & Rhyzik or similar books, we stumbled
> over it page by page. I recall finding a place where we  figured out what
> the typeset integration result was by trying out our various
> semantic opinions and differentiating.
>
> Talking with run-of-the-mill professional academic applied mathematicians
> is
> sometimes revealing.  At one demonstration (in Essen, Germany, a conference
> on "Retrodigitalization" of mathematics -- {It may sound better in
> German}, A
> program of mine read in a page or two from  Archiv der Mathematik, and spit
> it out -- but with a modern font,  and in two-columns, other changes too.
> The mathematicians in
> the audience were thunderstruck, because they thought that the program must
> have understood the mathematics to make that kind of transformation.
>
> Of course all it did was guess at the
> appropriate TeX to produce the equivalent spacing, and "knew" nothing of
> the semantics.
>
> Actually, I was amazed by the result when I saw it, but for two reasons.
>  (a) Someone else had actually used my program;
>  (b) There were no errors.
>
> [The reason for (b)  is that the recognition program had been trained on
> exactly
> -- maybe only -- that page -- it was trained so that
> defective/broken/linked characters were
> mapped to the right answers].
>
> But the point remains that if we wrote a program that was as smart as
> (the collection of...) smartest human mathematicians,  then TeX would be
> enough
> semantics.
>
>
>
>
>
>   Another problem is that mathematicians do not mean what they write:
>> $\frac{x+1}2$ is logically an element of Z(x), but the mathematician
>> probably intended Q[x].
>>
> I think that most people using DLMF.nist.gov  would not know or care.
> It's not their part of mathematics.
>
> It is probably unfortunate if Axiom (or Openmath or MathML) cares and
> consequently requires such users to know.
>
> RJF
>
> James
>>
>> Sent from my iPhone
>>
>> On 10 Aug 2016, at 11:50, "Tim Daly" <axiomcas@gmail.com> wrote:
>>>
>>> There has been an effort in the past to extract mathematics from
>>> latex. It seems that the usual latex markup does not carry enough
>>> semantic information to disambiguate expressions.
>>>
>>> Axiom has a similar problem occasionally where the interpreter
>>> tries to guess and the compiler insists on type specifications.
>>>
>>> Axiom provides an abbreviation for each type, such as FRAC for
>>> Fraction and INT for Integer.
>>>
>>> Might it be possible to create latex macros that take advantage
>>> of this to provide unambiguous markup. For instance, instead of
>>>
>>> \frac{3x+b}{2x}
>>>
>>> we might have a latex markup of
>>>
>>> \FRAC[\INT]{3x+b}{2x}
>>>
>>> where there was a latex macro for each Axiom type. This would
>>> turn into an latex \usepackage{AxiomType}
>>>
>>> There would be a map from the \FRAC[\INT] form to the \frac
>>> form which seems reasonably easy to do in latex. There would
>>> be a parser that maps \FRAC[\INT] to the Axiom input syntax.
>>>
>>> The problem would be to take the NIST Math Handbook sources
>>> (is the latex available?) and decorate them with additional markup
>>> so they could parse to valid Axiom input and valid latex input
>>> (which they already are, but would validate the mapping back to
>>> latex).
>>>
>>> Comments?
>>>
>>> Tim
>>>
>>>
>

\start
Date: Sun, 14 Aug 2016 18:05:32 +0000
From: James Davenport <J.H.Davenport@bath.ac.uk>
To: Tim Daly <axiomcas@gmail.com>
Subject: Re: [Axiom-developer] Semantic Latex
CC: axiom-dev <axiom-developer@nongnu.org>, Tim Daly
	<daly@axiom-developer.org>, "miked@nag.co.uk" <miked@nag.co.uk>, "James
	Davenport" <J.H.Davenport@bath.ac.uk>, Richard Fateman
	<fateman@berkeley.edu>, Ralf Hemmecke <ralf@hemmecke.org>,
	"vdhoeven@lix.polytechnique.fr" <vdhoeven@lix.polytechnique.fr>

Indeed, the semantics of LaTeX is pretty weak. I REALLY wouldn't like to st=
art from there - even (good) MathML-P, with &InvisibleTimes; etc. is much b=
etter.
However, LaTeX is what we have, and what we are likely to have in the near =
future, so we must live with it, and yours seems like as good an accommodat=
ion as any.
Another problem is that mathematicians do not mean what they write: $\frac{=
x+1}2$ is logically an element of Z(x), but the mathematician probably inte=
nded Q[x].
James

Sent from my iPhone

> On 10 Aug 2016, at 11:50, "Tim Daly" <axiomcas@gmail.com> wrote:
>
> There has been an effort in the past to extract mathematics from
> latex. It seems that the usual latex markup does not carry enough
> semantic information to disambiguate expressions.
>
> Axiom has a similar problem occasionally where the interpreter
> tries to guess and the compiler insists on type specifications.
>
> Axiom provides an abbreviation for each type, such as FRAC for
> Fraction and INT for Integer.
>
> Might it be possible to create latex macros that take advantage
> of this to provide unambiguous markup. For instance, instead of
>
> \frac{3x+b}{2x}
>
> we might have a latex markup of
>
> \FRAC[\INT]{3x+b}{2x}
>
> where there was a latex macro for each Axiom type. This would
> turn into an latex \usepackage{AxiomType}
>
> There would be a map from the \FRAC[\INT] form to the \frac
> form which seems reasonably easy to do in latex. There would
> be a parser that maps \FRAC[\INT] to the Axiom input syntax.
>
> The problem would be to take the NIST Math Handbook sources
> (is the latex available?) and decorate them with additional markup
> so they could parse to valid Axiom input and valid latex input
> (which they already are, but would validate the mapping back to
> latex).
>
> Comments?
>
> Tim
>

\start
Date: Wed, 17 Aug 2016 08:41:42 -0400
From: Tim Daly <axiomcas@gmail.com>
To: axiom-dev <axiom-developer@nongnu.org>, Tim Daly <daly@axiom-developer.org>,
	Mike Dewar <miked@nag.co.uk>, James Davenport <J.H.Davenport@bath.ac.uk>,
	Richard Fateman <fateman@berkeley.edu>,
	Ralf Hemmecke <ralf@hemmecke.org>, vdhoeven@lix.polytechnique.fr,
	D Zwillinger <zwilling@az-tec.com>, albert_rich@msn.com
Subject: [Axiom-developer] Design Thoughts on Semantic Latex (SELATEX)

The design goal of semantic latex markup would be to decorate
existing formulas with type information. This would greatly benefit
computational mathematics. A single formula would be explicit
about its domain and range. Indeed, a single formula might have
more general form over C than over R, for example. Semantic
markup would result in multiple versions of the same formula.

Assumptions, such as branch cuts, could be made explicit and
available to the community. This might not set a standard but it might
encourage machinery to handle different decisions explicitly.

Provisos, such as limitations on the range (x in [1,2]), would be made
available for things like cylindrical algebraic decomposition (CAD)
algorithms.

The CRC and NIST collections with semantic markup would create
a "computer algebra test suite" (CATS) that all of the systems could
use as a reference.

Pattern matching systems, such as Albert Rich's RUBI matcher or
Richard Fateman's TILU would have much more information on
which to base patterns.

============
Consideration 0: Where are semantics inserted?

A search of the TeX package name space shows that selatex is unused.
This allows \usepackage{selatex} without conflict.

Axiom has 1177 categories/domains/packages (hereafter just called 'types'
except when being more specific).

A zero-th attempt at selatex markup amounts to a file (selatex.sty) that
contains a \newcommand for each type, for instance,

\newcommand{\INT}[1]{#1}

which would allow 'raw' markup anywhere since latex simply ends up
removing all the type decorations, as in

\INT{3}  becomes just 3

============
Consideration 1: Where are semantics processed?

These markups are essentially invisible to tex so they could be inserted
anywhere. The associated semantics would be given by a program that
reads the tex. This makes it possible to mark up formulas from the NIST
and CRC books without any change to the result.

Axiom 'pamphlet' files are just raw latex files. There is no "weave" step
which Knuth used to extract latex. This is a feature we want to be
careful to preserve. Only a "tangle" program exists and it only extracts
a named chunk so it is trivial.

If a formula is in a named chunk it can be extracted as raw text so that

\begin{chunk}{formula1}
\INT{3}
\end{chunk}

when given the command "tangle formula.file formula1" we would see

\INT{3}

on standard output.

This implies that all semantic processing is done by an external program.

============
Consideration 2: Some latex semantics might help

The INT type has only a single argument but many types have more than
one. We could modify selatex.sty to include multiple "required" arguments
where they are appropriate, as in,

\newcommand{\SQMATRIX}[2] ...

so that we could requires the correct number of arguments. This could
eliminate trivial errors.

============
Consideration 3: More latex semantics might help?

The first argument of SQMATRIX is a non-negative integer. The second
is anything of category Ring so we would see
SQMATRIX(3,INT)
SQMATRIX(3,COMPLEX(FLOAT))

It might be possible to let latex check that the second argument is in
the correct category. It is not clear how to encode such information
(or whether it is a good idea) in selatex. Some experiments need to
be done.

Ideas? Considerations? Suggestions?

Tim

\start
Date: Thu, 18 Aug 2016 14:45:10 -0400
From: Tim Daly <axiomcas@gmail.com>
To: axiom-dev <axiom-developer@nongnu.org>, Tim Daly <daly@axiom-developer.org>,
	Ralf Hemmecke <ralf@hemmecke.org>,
	James Davenport <J.H.Davenport@bath.ac.uk>, 
	Richard Fateman <fateman@berkeley.edu>, Mike Dewar <miked@nag.co.uk>,
	vdhoeven@lix.polytechnique.fr, 
	albert_rich@msn.com, D Zwillinger <zwilling@az-tec.com>
Subject: [Axiom-developer] Design Thoughts on Semantic Latex (SELATEX)

Fateman [0] raised a set of issues with the OpenMath
approach. We are not trying to be cross-platform in this
effort. Axiom does provide an algebraic scaffold so it is
possible that the selatex markup might be useful elsewhere
but that is not a design criterion.

Fateman[1] also raises some difficult cross-platform issues
that are not part of this design.

Fateman[2] shows that parsing tex with only syntactic markup
succeeded on only 43% of 10740 inputs. It ought to be posible
to increase this percentage given proper semantic markup.
(Perhaps there should be a competition similar to the deep
learning groups? PhDs have been awarded on incremental
improvements of the percentage)

This is a design-by-crawl approach to the semantic markup
idea. The hope is to get something running this week that
'works' but giving due consideration to global and long-term
issues. A first glance at CRC/NIST raises more questions
than answers as is usual with any research.

It IS a design goal to support a Computer Algebra Test Suite
(http://axiom-developer.org/axiom-website/CATS). It is very
tedious to hand construct test suites. It will be even more
tedious to construct them "second-level" by doing semantic
markup and then trying to use them as input, but the hope is
that eventually the CRC/NIST/G&R, etc will eventually be
published with semantics so computational mathematics can
stop working from syntax.

===========
Consideration 4: I/O transparency

Assume for the moment that we take a latex file containing
only formulas. We would like to be able to read this file so
it has computational mathematics (CM) semantics.

It is clear that there needs to be semantic tags that carry the
information but these tags have to be carefully designed NOT
to change the syntactic display. They may, as noted before,
require multiple semantic versions for a single syntax.

It is also clear that we would like to be able to output formulas
with CM semantics where currently we only output syntax.

===========
Consideration 5: I/O isomorphism

An important property of selatex is an isomorphism with
input/output. Axiom allows output forms to be defined for a
variety of targets so this does not seem to be a problem. For
input, however, this means that the reader has to know how
to expand \INT{3} into the correct domain. This could be done
with a stand-alone pre-processor from selatex->inputform.

It should be possible to read-then-write an selatex formula,
or write-then-read an selatex formula with identical semantics.

That might not mean that the I/O is identical though due to
things like variable ordering, etc.

===========
Consideration 6: Latex semantic macros

Semantic markup would be greatly simplified if selatex provided
a mechanism similar to Axiom's ability to define types "on the fly"
using either assignment

   TYP:=FRAC(POLY(INT))

or macro form

   TYP ==> FRAC(POLY(INT))

Latex is capable of doing this and selatex should probably include
a set of pre-defined common markups, such as

  \FRINT ==> \FRAC\INT

===========
Consideration 7: selatex \begin{semantic} environment?

Currently Axiom provides a 'chunk' environment which surrounds
source code. The chunks are named so they can be extracted
individually or in groups

   \begin{chunk}{a name for the chunk}
      anything
   \end{chunk}

We could provide a similar environment for semantics such as

  \begin{semantics}{a name for the block}
  \end{semantics}

which would provide a way to encapsulate markup and also allow
a particular block to be extracted in literate programming style.

===========
Consideration 8: Latex-time processing

Axiom currently creates specific files using \write to create
intermediate files (e.g. for tables). This technique can be used
to enhance latex-time debugging (where did it fail?).

It can be used to create Axiom files which pre-construct domains
needed when the input file with semantic markup is read.

This would help a stand-alone selatex->inputform preprocessor.

===========
Consideration 9: Design sketches

It is all well-and-good to hand-wave at this idea but a large
amount of this machinery already exists.

It would seem useful to develop an incremental test suite that
starts with "primitive" domains (e.g. INT), creating selatex I/O.

Once these are in place we could work on "type tower" markup
such as \FRAC\INT or \POLY\COMPLEX\FLOAT.

Following that might be pre-existing latex functions like \int, \sum,
\cos, etc.

To validate these ideas Axiom will include an selatex.sty file and
some unit tests files on primitive domain markup. That should be
enough to start the bikeshed discussions.

Ideas? Considerations? Suggestions?

Tim

[0] Fateman, Richard J.
"A Critique of OpenMath and Thoughts on
Encoding Mathematics, January, 2001"
https://people.eecs.berkeley.edu/~fateman/papers/openmathcrit.pdf

[1] Fateman, Richard J.
"Verbs, Nouns, and Computer Algebra, or What's Grammar Got to
do with Math? ", December 18, 2008
https://people.eecs.berkeley.edu/~fateman/papers/nounverbmac.pdf

[2] Fateman, Richard J.
"Parsing TeX into Mathematics",
https://people.eecs.berkeley.edu/~fateman/papers/parsing_tex.pdf

\start
Date: Thu, 18 Aug 2016 17:07:51 -0400
From: Raymond Rogers <raymond.rogers72@gmail.com>
To: axiom-developer@nongnu.org
Subject: Re: [Axiom-developer] Design Thoughts on Semantic Latex (SELATEX)

I agree that this is doable and would be useful; but I would include a 
built-in (or separate) lint that gives a context for troubleshooting 
when the 57% (or whatever) occurs.

Ray


On 08/18/2016 02:45 PM, Tim Daly wrote:
> Fateman [0] raised a set of issues with the OpenMath
> approach. We are not trying to be cross-platform in this
> effort. Axiom does provide an algebraic scaffold so it is
> possible that the selatex markup might be useful elsewhere
> but that is not a design criterion.
>
> Fateman[1] also raises some difficult cross-platform issues
> that are not part of this design.
>
> Fateman[2] shows that parsing tex with only syntactic markup
> succeeded on only 43% of 10740 inputs. It ought to be posible
> to increase this percentage given proper semantic markup.
> (Perhaps there should be a competition similar to the deep
> learning groups? PhDs have been awarded on incremental
> improvements of the percentage)
>
> This is a design-by-crawl approach to the semantic markup
> idea. The hope is to get something running this week that
> 'works' but giving due consideration to global and long-term
> issues. A first glance at CRC/NIST raises more questions
> than answers as is usual with any research.
>
> It IS a design goal to support a Computer Algebra Test Suite
> (http://axiom-developer.org/axiom-website/CATS). It is very
> tedious to hand construct test suites. It will be even more
> tedious to construct them "second-level" by doing semantic
> markup and then trying to use them as input, but the hope is
> that eventually the CRC/NIST/G&R, etc will eventually be
> published with semantics so computational mathematics can
> stop working from syntax.
>
> ===========
> Consideration 4: I/O transparency
>
> Assume for the moment that we take a latex file containing
> only formulas. We would like to be able to read this file so
> it has computational mathematics (CM) semantics.
>
> It is clear that there needs to be semantic tags that carry the
> information but these tags have to be carefully designed NOT
> to change the syntactic display. They may, as noted before,
> require multiple semantic versions for a single syntax.
>
> It is also clear that we would like to be able to output formulas
> with CM semantics where currently we only output syntax.
>
> ===========
> Consideration 5: I/O isomorphism
>
> An important property of selatex is an isomorphism with
> input/output. Axiom allows output forms to be defined for a
> variety of targets so this does not seem to be a problem. For
> input, however, this means that the reader has to know how
> to expand \INT{3} into the correct domain. This could be done
> with a stand-alone pre-processor from selatex->inputform.
>
> It should be possible to read-then-write an selatex formula,
> or write-then-read an selatex formula with identical semantics.
>
> That might not mean that the I/O is identical though due to
> things like variable ordering, etc.
>
> ===========
> Consideration 6: Latex semantic macros
>
> Semantic markup would be greatly simplified if selatex provided
> a mechanism similar to Axiom's ability to define types "on the fly"
> using either assignment
>
>    TYP:=FRAC(POLY(INT))
>
> or macro form
>
>    TYP ==> FRAC(POLY(INT))
>
> Latex is capable of doing this and selatex should probably include
> a set of pre-defined common markups, such as
>
>   \FRINT ==> \FRAC\INT
>
> ===========
> Consideration 7: selatex \begin{semantic} environment?
>
> Currently Axiom provides a 'chunk' environment which surrounds
> source code. The chunks are named so they can be extracted
> individually or in groups
>
>    \begin{chunk}{a name for the chunk}
>       anything
>    \end{chunk}
>
> We could provide a similar environment for semantics such as
>
>   \begin{semantics}{a name for the block}
>   \end{semantics}
>
> which would provide a way to encapsulate markup and also allow
> a particular block to be extracted in literate programming style.
>
> ===========
> Consideration 8: Latex-time processing
>
> Axiom currently creates specific files using \write to create
> intermediate files (e.g. for tables). This technique can be used
> to enhance latex-time debugging (where did it fail?).
>
> It can be used to create Axiom files which pre-construct domains
> needed when the input file with semantic markup is read.
>
> This would help a stand-alone selatex->inputform preprocessor.
>
> ===========
> Consideration 9: Design sketches
>
> It is all well-and-good to hand-wave at this idea but a large
> amount of this machinery already exists.
>
> It would seem useful to develop an incremental test suite that
> starts with "primitive" domains (e.g. INT), creating selatex I/O.
>
> Once these are in place we could work on "type tower" markup
> such as \FRAC\INT or \POLY\COMPLEX\FLOAT.
>
> Following that might be pre-existing latex functions like \int, \sum,
> \cos, etc.
>
> To validate these ideas Axiom will include an selatex.sty file and
> some unit tests files on primitive domain markup. That should be
> enough to start the bikeshed discussions.
>
> Ideas? Considerations? Suggestions?
>
> Tim
>
> [0] Fateman, Richard J.
> "A Critique of OpenMath and Thoughts on
> Encoding Mathematics, January, 2001"
> https://people.eecs.berkeley.edu/~fateman/papers/openmathcrit.pdf 
> <https://people.eecs.berkeley.edu/%7Efateman/papers/openmathcrit.pdf>
>
> [1] Fateman, Richard J.
> "Verbs, Nouns, and Computer Algebra, or What's Grammar Got to
> do with Math? ", December 18, 2008
> https://people.eecs.berkeley.edu/~fateman/papers/nounverbmac.pdf 
> <https://people.eecs.berkeley.edu/%7Efateman/papers/nounverbmac.pdf>
>
> [2] Fateman, Richard J.
> "Parsing TeX into Mathematics",
> https://people.eecs.berkeley.edu/~fateman/papers/parsing_tex.pdf 
> <https://people.eecs.berkeley.edu/%7Efateman/papers/parsing_tex.pdf>
>
Raymond Rogers



\start
Date: Thu, 18 Aug 2016 14:30:22 -0700
From: Richard Fateman <fateman@berkeley.edu>
To: Tim Daly <axiomcas@gmail.com>, axiom-dev <axiom-developer@nongnu.org>,
	Tim Daly <daly@axiom-developer.org>, Ralf Hemmecke <ralf@hemmecke.org>, 
	James Davenport <J.H.Davenport@bath.ac.uk>, Mike Dewar <miked@nag.co.uk>,
	vdhoeven@lix.polytechnique.fr, albert_rich@msn.com,
	D Zwillinger <zwilling@az-tec.com>
Subject: Re: [Axiom-developer] Design Thoughts on Semantic Latex (SELATEX)

thanks for all the references :)

I'm not sure if I'm going to repeat comments I  made already somewhere.
First,  has Dan Zwillinger weighed in?  I think that it would be useful
to see what he has done.

Next, there are ambiguities among CAS and even within a single CAS.

For example, in Macsyma/ Maxima  there is generally no semantics
associated with "=" or ">".   But in some contexts, there is some meaning.

x>2*y

is a tree expression.  It is not associated with x or with y.

assume(x>2*y)   does mean something ... it puts info in a database.
Somehow encoding the method to extract this information into SEALATEX
(SeLaTeX?) in a CAS-independent way -- that's quite a task.   In
particular, it would seem to require an understanding of what assume()
does in Maxima, and what is() does also.

x and not x   has no particular meaning,  but if x is explicitly true or 
false,
Maxima simplifies it to false.  If SEALATEX has a semantics -- are you
defining yet another CAS?  Or perhaps you should link it 100% to Axiom's
semantics, which you presumably know about and can modify.

As far as recording stuff in DLMF -- there are presumably scope issues
("in this chapter n,m are natural numbers....")  and maybe even a need
to make value assignments.
I think you need to model these in SEALATEX too.

Just musing about where you are heading.

RJF



On 8/18/2016 11:45 AM, Tim Daly wrote:
> Fateman [0] raised a set of issues with the OpenMath
> approach. We are not trying to be cross-platform in this
> effort. Axiom does provide an algebraic scaffold so it is
> possible that the selatex markup might be useful elsewhere
> but that is not a design criterion.
>
> Fateman[1] also raises some difficult cross-platform issues
> that are not part of this design.
>
> Fateman[2] shows that parsing tex with only syntactic markup
> succeeded on only 43% of 10740 inputs. It ought to be posible
> to increase this percentage given proper semantic markup.
> (Perhaps there should be a competition similar to the deep
> learning groups? PhDs have been awarded on incremental
> improvements of the percentage)
>
> This is a design-by-crawl approach to the semantic markup
> idea. The hope is to get something running this week that
> 'works' but giving due consideration to global and long-term
> issues. A first glance at CRC/NIST raises more questions
> than answers as is usual with any research.
>
> It IS a design goal to support a Computer Algebra Test Suite
> (http://axiom-developer.org/axiom-website/CATS). It is very
> tedious to hand construct test suites. It will be even more
> tedious to construct them "second-level" by doing semantic
> markup and then trying to use them as input, but the hope is
> that eventually the CRC/NIST/G&R, etc will eventually be
> published with semantics so computational mathematics can
> stop working from syntax.
>
> ===========
> Consideration 4: I/O transparency
>
> Assume for the moment that we take a latex file containing
> only formulas. We would like to be able to read this file so
> it has computational mathematics (CM) semantics.
>
> It is clear that there needs to be semantic tags that carry the
> information but these tags have to be carefully designed NOT
> to change the syntactic display. They may, as noted before,
> require multiple semantic versions for a single syntax.
>
> It is also clear that we would like to be able to output formulas
> with CM semantics where currently we only output syntax.
>
> ===========
> Consideration 5: I/O isomorphism
>
> An important property of selatex is an isomorphism with
> input/output. Axiom allows output forms to be defined for a
> variety of targets so this does not seem to be a problem. For
> input, however, this means that the reader has to know how
> to expand \INT{3} into the correct domain. This could be done
> with a stand-alone pre-processor from selatex->inputform.
>
> It should be possible to read-then-write an selatex formula,
> or write-then-read an selatex formula with identical semantics.
>
> That might not mean that the I/O is identical though due to
> things like variable ordering, etc.
>
> ===========
> Consideration 6: Latex semantic macros
>
> Semantic markup would be greatly simplified if selatex provided
> a mechanism similar to Axiom's ability to define types "on the fly"
> using either assignment
>
>    TYP:=FRAC(POLY(INT))
>
> or macro form
>
>    TYP ==> FRAC(POLY(INT))
>
> Latex is capable of doing this and selatex should probably include
> a set of pre-defined common markups, such as
>
>   \FRINT ==> \FRAC\INT
>
> ===========
> Consideration 7: selatex \begin{semantic} environment?
>
> Currently Axiom provides a 'chunk' environment which surrounds
> source code. The chunks are named so they can be extracted
> individually or in groups
>
>    \begin{chunk}{a name for the chunk}
>       anything
>    \end{chunk}
>
> We could provide a similar environment for semantics such as
>
>   \begin{semantics}{a name for the block}
>   \end{semantics}
>
> which would provide a way to encapsulate markup and also allow
> a particular block to be extracted in literate programming style.
>
> ===========
> Consideration 8: Latex-time processing
>
> Axiom currently creates specific files using \write to create
> intermediate files (e.g. for tables). This technique can be used
> to enhance latex-time debugging (where did it fail?).
>
> It can be used to create Axiom files which pre-construct domains
> needed when the input file with semantic markup is read.
>
> This would help a stand-alone selatex->inputform preprocessor.
>
> ===========
> Consideration 9: Design sketches
>
> It is all well-and-good to hand-wave at this idea but a large
> amount of this machinery already exists.
>
> It would seem useful to develop an incremental test suite that
> starts with "primitive" domains (e.g. INT), creating selatex I/O.
>
> Once these are in place we could work on "type tower" markup
> such as \FRAC\INT or \POLY\COMPLEX\FLOAT.
>
> Following that might be pre-existing latex functions like \int, \sum,
> \cos, etc.
>
> To validate these ideas Axiom will include an selatex.sty file and
> some unit tests files on primitive domain markup. That should be
> enough to start the bikeshed discussions.
>
> Ideas? Considerations? Suggestions?
>
> Tim
>
> [0] Fateman, Richard J.
> "A Critique of OpenMath and Thoughts on
> Encoding Mathematics, January, 2001"
> https://people.eecs.berkeley.edu/~fateman/papers/openmathcrit.pdf 
> <https://people.eecs.berkeley.edu/%7Efateman/papers/openmathcrit.pdf>
>
> [1] Fateman, Richard J.
> "Verbs, Nouns, and Computer Algebra, or What's Grammar Got to
> do with Math? ", December 18, 2008
> https://people.eecs.berkeley.edu/~fateman/papers/nounverbmac.pdf 
> <https://people.eecs.berkeley.edu/%7Efateman/papers/nounverbmac.pdf>
>
> [2] Fateman, Richard J.
> "Parsing TeX into Mathematics",
> https://people.eecs.berkeley.edu/~fateman/papers/parsing_tex.pdf 
> <https://people.eecs.berkeley.edu/%7Efateman/papers/parsing_tex.pdf>



\start
Date: Fri, 19 Aug 2016 00:45:34 -0400
From: Tim Daly <axiomcas@gmail.com>
To: Richard Fateman <fateman@berkeley.edu>
Subject: Re: [Axiom-developer] Design Thoughts on Semantic Latex (SELATEX)
Cc: axiom-dev <axiom-developer@nongnu.org>, Tim Daly <daly@axiom-developer.org>,
	Ralf Hemmecke <ralf@hemmecke.org>,
	James Davenport <J.H.Davenport@bath.ac.uk>, 
	Mike Dewar <miked@nag.co.uk>, vdhoeven@lix.polytechnique.fr,
	albert_rich@msn.com, D Zwillinger <zwilling@az-tec.com>

One of the Axiom project goals is to develop a "Computer Algebra Test
Suite" (CATS). Albert Rich has done this with RUBI and integration. That
work is already partially in the test suite and work has been done on the
pattern matching. Large datasets (like Kamke) are always welcome. Some,
such as Schaums were hand-developed. This is tedious.

As Axiom develops more explanations and documentation it would be
useful to execute the formulas directly so there is a local incentive to be
clear about semantics.

In the long term the hope is that we can just grab formulas directly from
their sources (ala literate programming). Your work makes it plain that raw
latex does not carry sufficient semantics. There is a global question of
how to make this work. Unfortunately a general cross-platform solution
is difficult (cite Dewar/Davenport/et al. for OpenMath).

Since Axiom is literate and extracting formulas is trivial it seems that
literate markup is a natural goal. Since Axiom uses abstract algebra
as a scaffold the type tower already has a lot of axiomatic semantics.
The natural join of literate latex and abstract algebra is clearly
semantic markup, aka selatex.

===========
Consideration 10: semantic->inputform translation (weaver? :-) )

>x and not x   has no particular meaning,  but if x is explicitly true or
false,
>Maxima simplifies it to false.  If SEALATEX has a semantics -- are you
>defining yet another CAS?  Or perhaps you should link it 100% to Axiom's
>semantics, which you presumably know about and can modify.

I am NOT defining another CAS. The goal is a "well-designed hack" using
universally understood latex, a latex package, and a translation program.

The selatex idea is only partially Axiom specific. \INT, for instance,
seems
pretty generic. However, if the idea is to read formulas and disambiguate
a=b (boolean) vs a=b (equation) then the markup needs to be grounded
to have meaning. Axiom's domains (BOOLEAN) and (EQ) as the ground

\BOOLEAN(a=b)
\EQ(a=b)

are unambiguous relative to each other in Axiom. I don't know enough
about Maxima to understand how this might translate.

The extracted formulas with the decorated semantics still needs a
semantics->inputform (weaver) pre-processor which could be Maxima
specific. This would lead to debate about what "equality" means, of course.

Axiom has tried to create a first-order "rosetta stone" to translate between
systems (rosetta.pdf [1]) but it is too shallow to consider providing
cross-platform semantics.

=============
Consideration 11: \scope in selatex

>As far as recording stuff in DLMF -- there are presumably scope issues
>("in this chapter n,m are natural numbers....")  and maybe even a need
>to make value assignments.
>I think you need to model these in SEALATEX too.

(See Consideration 6)

Clearly there are scoping issues. My current thinking is to create a
\scope markup that would manage the environment(s). This is not
a new issue (see "Lisp in Small Pieces" [0])

There seem to be three concerns.

First is the scope name, with something like 'global' as a keyword.
Second is the "closure chain" of other scopes.
Third is the symbol being scoped.

\scope{name}{chain}{symbol}

The weaver program would walk this chain to create the proper
file syntax for system input.

============
Consideration 12: System specific commands \axiom

Along with the formulas it is clear that some system specific
input may be required, such as loading files, clearing workspaces,
etc. Some of these may be done in the weaver program, such as
between formulas. Others may need to be added to the semantics
block. So a markup that provides verbatim quoting per system
might be defined, e.g.

\axiom{)clear all}  %clear the workspace

which would simply quote an input line.

==============

Note that so far all that is being suggested is transparent formula
markups which do not impact the presentation, some special tags
(\scope, \axiom,...) and a weaver program, along with the ability to
read the latex and extract named formulas (aka a literate program,
which Axiom already can do).

It ought to be possible (by design) to create a semantic version of
CRC that any system could import, assuming a "sufficiently clever
weaver".

On a more ambitious note, I am trying to find a way to keep the selatex
markup "hidden" in a pdf and use it as the clipboard paste when the
formula is selected. Anyone with a clue, please help.

===============

[0] Queinnec, Christopher, "Lisp in Small Pieces" ISBN 978-0521545662
(2003)

[1] Wester, Michael J. and Daly, TImothy "Rosetta"
http://axiom-developer.org/axiom-website/rosetta.pdf




On Thu, Aug 18, 2016 at 5:30 PM, Richard Fateman <fateman@berkeley.edu>
wrote:

> thanks for all the references :)
>
> I'm not sure if I'm going to repeat comments I  made already somewhere.
> First,  has Dan Zwillinger weighed in?  I think that it would be useful
> to see what he has done.
>
> Next, there are ambiguities among CAS and even within a single CAS.
>
> For example, in Macsyma/ Maxima  there is generally no semantics
> associated with "=" or ">".   But in some contexts, there is some meaning.
>
> x>2*y
>
> is a tree expression.  It is not associated with x or with y.
>
> assume(x>2*y)   does mean something ... it puts info in a database.
> Somehow encoding the method to extract this information into SEALATEX
> (SeLaTeX?) in a CAS-independent way -- that's quite a task.   In
> particular, it would seem to require an understanding of what assume()
> does in Maxima, and what is() does also.
>
> x and not x   has no particular meaning,  but if x is explicitly true or
> false,
> Maxima simplifies it to false.  If SEALATEX has a semantics -- are you
> defining yet another CAS?  Or perhaps you should link it 100% to Axiom's
> semantics, which you presumably know about and can modify.
>
> As far as recording stuff in DLMF -- there are presumably scope issues
> ("in this chapter n,m are natural numbers....")  and maybe even a need
> to make value assignments.
> I think you need to model these in SEALATEX too.
>
> Just musing about where you are heading.
>
> RJF
>
>
>
>
> On 8/18/2016 11:45 AM, Tim Daly wrote:
>
> Fateman [0] raised a set of issues with the OpenMath
> approach. We are not trying to be cross-platform in this
> effort. Axiom does provide an algebraic scaffold so it is
> possible that the selatex markup might be useful elsewhere
> but that is not a design criterion.
>
> Fateman[1] also raises some difficult cross-platform issues
> that are not part of this design.
>
> Fateman[2] shows that parsing tex with only syntactic markup
> succeeded on only 43% of 10740 inputs. It ought to be posible
> to increase this percentage given proper semantic markup.
> (Perhaps there should be a competition similar to the deep
> learning groups? PhDs have been awarded on incremental
> improvements of the percentage)
>
> This is a design-by-crawl approach to the semantic markup
> idea. The hope is to get something running this week that
> 'works' but giving due consideration to global and long-term
> issues. A first glance at CRC/NIST raises more questions
> than answers as is usual with any research.
>
> It IS a design goal to support a Computer Algebra Test Suite
> (http://axiom-developer.org/axiom-website/CATS). It is very
> tedious to hand construct test suites. It will be even more
> tedious to construct them "second-level" by doing semantic
> markup and then trying to use them as input, but the hope is
> that eventually the CRC/NIST/G&R, etc will eventually be
> published with semantics so computational mathematics can
> stop working from syntax.
>
> ===========
> Consideration 4: I/O transparency
>
> Assume for the moment that we take a latex file containing
> only formulas. We would like to be able to read this file so
> it has computational mathematics (CM) semantics.
>
> It is clear that there needs to be semantic tags that carry the
> information but these tags have to be carefully designed NOT
> to change the syntactic display. They may, as noted before,
> require multiple semantic versions for a single syntax.
>
> It is also clear that we would like to be able to output formulas
> with CM semantics where currently we only output syntax.
>
> ===========
> Consideration 5: I/O isomorphism
>
> An important property of selatex is an isomorphism with
> input/output. Axiom allows output forms to be defined for a
> variety of targets so this does not seem to be a problem. For
> input, however, this means that the reader has to know how
> to expand \INT{3} into the correct domain. This could be done
> with a stand-alone pre-processor from selatex->inputform.
>
> It should be possible to read-then-write an selatex formula,
> or write-then-read an selatex formula with identical semantics.
>
> That might not mean that the I/O is identical though due to
> things like variable ordering, etc.
>
> ===========
> Consideration 6: Latex semantic macros
>
> Semantic markup would be greatly simplified if selatex provided
> a mechanism similar to Axiom's ability to define types "on the fly"
> using either assignment
>
>    TYP:=FRAC(POLY(INT))
>
> or macro form
>
>    TYP ==> FRAC(POLY(INT))
>
> Latex is capable of doing this and selatex should probably include
> a set of pre-defined common markups, such as
>
>   \FRINT ==> \FRAC\INT
>
> ===========
> Consideration 7: selatex \begin{semantic} environment?
>
> Currently Axiom provides a 'chunk' environment which surrounds
> source code. The chunks are named so they can be extracted
> individually or in groups
>
>    \begin{chunk}{a name for the chunk}
>       anything
>    \end{chunk}
>
> We could provide a similar environment for semantics such as
>
>   \begin{semantics}{a name for the block}
>   \end{semantics}
>
> which would provide a way to encapsulate markup and also allow
> a particular block to be extracted in literate programming style.
>
> ===========
> Consideration 8: Latex-time processing
>
> Axiom currently creates specific files using \write to create
> intermediate files (e.g. for tables). This technique can be used
> to enhance latex-time debugging (where did it fail?).
>
> It can be used to create Axiom files which pre-construct domains
> needed when the input file with semantic markup is read.
>
> This would help a stand-alone selatex->inputform preprocessor.
>
> ===========
> Consideration 9: Design sketches
>
> It is all well-and-good to hand-wave at this idea but a large
> amount of this machinery already exists.
>
> It would seem useful to develop an incremental test suite that
> starts with "primitive" domains (e.g. INT), creating selatex I/O.
>
> Once these are in place we could work on "type tower" markup
> such as \FRAC\INT or \POLY\COMPLEX\FLOAT.
>
> Following that might be pre-existing latex functions like \int, \sum,
> \cos, etc.
>
> To validate these ideas Axiom will include an selatex.sty file and
> some unit tests files on primitive domain markup. That should be
> enough to start the bikeshed discussions.
>
> Ideas? Considerations? Suggestions?
>
> Tim
>
> [0] Fateman, Richard J.
> "A Critique of OpenMath and Thoughts on
> Encoding Mathematics, January, 2001"
> https://people.eecs.berkeley.edu/~fateman/papers/openmathcrit.pdf
>
> [1] Fateman, Richard J.
> "Verbs, Nouns, and Computer Algebra, or What's Grammar Got to
> do with Math? ", December 18, 2008
> https://people.eecs.berkeley.edu/~fateman/papers/nounverbmac.pdf
>
> [2] Fateman, Richard J.
> "Parsing TeX into Mathematics",
> https://people.eecs.berkeley.edu/~fateman/papers/parsing_tex.pdf
>

\start
Date: Sat, 20 Aug 2016 23:30:32 -0400
From: Tim Daly <axiomcas@gmail.com>
To: Richard Fateman <fateman@berkeley.edu>
Subject: Re: [Axiom-developer] Design Thoughts on Semantic Latex (SELATEX)
Cc: axiom-dev <axiom-developer@nongnu.org>, Tim Daly <daly@axiom-developer.org>,
	Ralf Hemmecke <ralf@hemmecke.org>,
	James Davenport <J.H.Davenport@bath.ac.uk>, 
	Mike Dewar <miked@nag.co.uk>, vdhoeven@lix.polytechnique.fr,
	albert_rich@msn.com, D Zwillinger <zwilling@az-tec.com>

The game is to define latex markup that is transparent to the syntax
but adds semantics for post processing.

Some simple tests show that this works. Suppose selatex.sty contains:

\newcommand{\INT}[1]{#1}
\newcommand{\VARIABLE}[1]{#1}
\newcommand{\POLY}[1]{#1}
\newcommand{\INTEG}[2]{\int{#1}}

This defines 4 new latex markups. The number in the square brackets
defines the number of expected arguments. The brace argument
delimites the characters that will occur during expansion with the #1
replaced by the first argument.

(As an aside, INT, VARIABLE, and POLY just happen to be valid
Axiom domain abbreviations, hence the name choice. This choice
of names gives grounding to the semantics.)

Notice that \INTEG takes two arguments but will display only one.
This allows the variable of integration to be passed in the semantics
without showing up in the output. This allows the semantics to carry
additional, non-display information needed by the CAS.

Some examples follow.

An integer 3 can be wrapped as \INT{3} but will still display as 3.

A variable x can be wrapped as \VARIABLE{x}, displayed as x.

$\POLY{\INT{3}\VARIABLE{x}}$ will display as 3*x

$\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x} will be the same result
as $\int{3x~dx}$, that is, an
  (integralsign) 3x dx
but notice that the variable of integration is in the semantic markup.

These trivial macros can be made less verbose and certainly
more clever but that's not the point being made here.

A 'weaver' program would see the integration expression as

$\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x}$

with all of the semantic tags. The weaver's job is to rewrite this
expression into an inputform for the CAS. In Axiom that would be

integrate(3*x,x)

The semantics markup makes the display pretty and the semantic
parsing possible. Depending on the system, more or less parsing
markup can exist. Axiom, for example, would not need the \INT or
\VARIABLE to get a correct parse so the expression could be
$\INTEG{3x~dx}{x}$

This validates the fundamental idea.

The next step is to write a simple weaver program. The clever path
would be to embed a declarative form of the parser syntax (BNF?)
as comments in selatex.sty. That way the latex semantics and the
weaver syntax are kept in sync.

Weaver would read the BNF comments from selatex.sty and
the formula with semantic markup as input and parse the semantic
markup into inputforms. (Wish I thought of this homework problem
when I taught the compiler course :-) ).

Note that, depending on the BNF, weaver could be used to
generate output for Maxima's tree-based representation.

An alternative next step is to look at a CRC book, re-create the
syntactic latex and then create the selatex.sty entries necessary
to generate weaver input.

Infinitesimal progress, but progress non-the-less.

Tim


On Fri, Aug 19, 2016 at 12:45 AM, Tim Daly <axiomcas@gmail.com> wrote:

>
> One of the Axiom project goals is to develop a "Computer Algebra Test
> Suite" (CATS). Albert Rich has done this with RUBI and integration. That
> work is already partially in the test suite and work has been done on the
> pattern matching. Large datasets (like Kamke) are always welcome. Some,
> such as Schaums were hand-developed. This is tedious.
>
> As Axiom develops more explanations and documentation it would be
> useful to execute the formulas directly so there is a local incentive to be
> clear about semantics.
>
> In the long term the hope is that we can just grab formulas directly from
> their sources (ala literate programming). Your work makes it plain that raw
> latex does not carry sufficient semantics. There is a global question of
> how to make this work. Unfortunately a general cross-platform solution
> is difficult (cite Dewar/Davenport/et al. for OpenMath).
>
> Since Axiom is literate and extracting formulas is trivial it seems that
> literate markup is a natural goal. Since Axiom uses abstract algebra
> as a scaffold the type tower already has a lot of axiomatic semantics.
> The natural join of literate latex and abstract algebra is clearly
> semantic markup, aka selatex.
>
> ===========
> Consideration 10: semantic->inputform translation (weaver? :-) )
>
> >x and not x   has no particular meaning,  but if x is explicitly true or
> false,
> >Maxima simplifies it to false.  If SEALATEX has a semantics -- are you
> >defining yet another CAS?  Or perhaps you should link it 100% to Axiom's
> >semantics, which you presumably know about and can modify.
>
> I am NOT defining another CAS. The goal is a "well-designed hack" using
> universally understood latex, a latex package, and a translation program.
>
> The selatex idea is only partially Axiom specific. \INT, for instance,
> seems
> pretty generic. However, if the idea is to read formulas and disambiguate
> a=b (boolean) vs a=b (equation) then the markup needs to be grounded
> to have meaning. Axiom's domains (BOOLEAN) and (EQ) as the ground
>
> \BOOLEAN(a=b)
> \EQ(a=b)
>
> are unambiguous relative to each other in Axiom. I don't know enough
> about Maxima to understand how this might translate.
>
> The extracted formulas with the decorated semantics still needs a
> semantics->inputform (weaver) pre-processor which could be Maxima
> specific. This would lead to debate about what "equality" means, of course.
>
> Axiom has tried to create a first-order "rosetta stone" to translate
> between
> systems (rosetta.pdf [1]) but it is too shallow to consider providing
> cross-platform semantics.
>
> =============
> Consideration 11: \scope in selatex
>
> >As far as recording stuff in DLMF -- there are presumably scope issues
> >("in this chapter n,m are natural numbers....")  and maybe even a need
> >to make value assignments.
> >I think you need to model these in SEALATEX too.
>
> (See Consideration 6)
>
> Clearly there are scoping issues. My current thinking is to create a
> \scope markup that would manage the environment(s). This is not
> a new issue (see "Lisp in Small Pieces" [0])
>
> There seem to be three concerns.
>
> First is the scope name, with something like 'global' as a keyword.
> Second is the "closure chain" of other scopes.
> Third is the symbol being scoped.
>
> \scope{name}{chain}{symbol}
>
> The weaver program would walk this chain to create the proper
> file syntax for system input.
>
> ============
> Consideration 12: System specific commands \axiom
>
> Along with the formulas it is clear that some system specific
> input may be required, such as loading files, clearing workspaces,
> etc. Some of these may be done in the weaver program, such as
> between formulas. Others may need to be added to the semantics
> block. So a markup that provides verbatim quoting per system
> might be defined, e.g.
>
> \axiom{)clear all}  %clear the workspace
>
> which would simply quote an input line.
>
> ==============
>
> Note that so far all that is being suggested is transparent formula
> markups which do not impact the presentation, some special tags
> (\scope, \axiom,...) and a weaver program, along with the ability to
> read the latex and extract named formulas (aka a literate program,
> which Axiom already can do).
>
> It ought to be possible (by design) to create a semantic version of
> CRC that any system could import, assuming a "sufficiently clever
> weaver".
>
> On a more ambitious note, I am trying to find a way to keep the selatex
> markup "hidden" in a pdf and use it as the clipboard paste when the
> formula is selected. Anyone with a clue, please help.
>
> ===============
>
> [0] Queinnec, Christopher, "Lisp in Small Pieces" ISBN 978-0521545662
> (2003)
>
> [1] Wester, Michael J. and Daly, TImothy "Rosetta"
> http://axiom-developer.org/axiom-website/rosetta.pdf
>
>
>
>
> On Thu, Aug 18, 2016 at 5:30 PM, Richard Fateman <fateman@berkeley.edu>
> wrote:
>
>> thanks for all the references :)
>>
>> I'm not sure if I'm going to repeat comments I  made already somewhere.
>> First,  has Dan Zwillinger weighed in?  I think that it would be useful
>> to see what he has done.
>>
>> Next, there are ambiguities among CAS and even within a single CAS.
>>
>> For example, in Macsyma/ Maxima  there is generally no semantics
>> associated with "=" or ">".   But in some contexts, there is some meaning.
>>
>> x>2*y
>>
>> is a tree expression.  It is not associated with x or with y.
>>
>> assume(x>2*y)   does mean something ... it puts info in a database.
>> Somehow encoding the method to extract this information into SEALATEX
>> (SeLaTeX?) in a CAS-independent way -- that's quite a task.   In
>> particular, it would seem to require an understanding of what assume()
>> does in Maxima, and what is() does also.
>>
>> x and not x   has no particular meaning,  but if x is explicitly true or
>> false,
>> Maxima simplifies it to false.  If SEALATEX has a semantics -- are you
>> defining yet another CAS?  Or perhaps you should link it 100% to Axiom's
>> semantics, which you presumably know about and can modify.
>>
>> As far as recording stuff in DLMF -- there are presumably scope issues
>> ("in this chapter n,m are natural numbers....")  and maybe even a need
>> to make value assignments.
>> I think you need to model these in SEALATEX too.
>>
>> Just musing about where you are heading.
>>
>> RJF
>>
>>
>>
>>
>> On 8/18/2016 11:45 AM, Tim Daly wrote:
>>
>> Fateman [0] raised a set of issues with the OpenMath
>> approach. We are not trying to be cross-platform in this
>> effort. Axiom does provide an algebraic scaffold so it is
>> possible that the selatex markup might be useful elsewhere
>> but that is not a design criterion.
>>
>> Fateman[1] also raises some difficult cross-platform issues
>> that are not part of this design.
>>
>> Fateman[2] shows that parsing tex with only syntactic markup
>> succeeded on only 43% of 10740 inputs. It ought to be posible
>> to increase this percentage given proper semantic markup.
>> (Perhaps there should be a competition similar to the deep
>> learning groups? PhDs have been awarded on incremental
>> improvements of the percentage)
>>
>> This is a design-by-crawl approach to the semantic markup
>> idea. The hope is to get something running this week that
>> 'works' but giving due consideration to global and long-term
>> issues. A first glance at CRC/NIST raises more questions
>> than answers as is usual with any research.
>>
>> It IS a design goal to support a Computer Algebra Test Suite
>> (http://axiom-developer.org/axiom-website/CATS). It is very
>> tedious to hand construct test suites. It will be even more
>> tedious to construct them "second-level" by doing semantic
>> markup and then trying to use them as input, but the hope is
>> that eventually the CRC/NIST/G&R, etc will eventually be
>> published with semantics so computational mathematics can
>> stop working from syntax.
>>
>> ===========
>> Consideration 4: I/O transparency
>>
>> Assume for the moment that we take a latex file containing
>> only formulas. We would like to be able to read this file so
>> it has computational mathematics (CM) semantics.
>>
>> It is clear that there needs to be semantic tags that carry the
>> information but these tags have to be carefully designed NOT
>> to change the syntactic display. They may, as noted before,
>> require multiple semantic versions for a single syntax.
>>
>> It is also clear that we would like to be able to output formulas
>> with CM semantics where currently we only output syntax.
>>
>> ===========
>> Consideration 5: I/O isomorphism
>>
>> An important property of selatex is an isomorphism with
>> input/output. Axiom allows output forms to be defined for a
>> variety of targets so this does not seem to be a problem. For
>> input, however, this means that the reader has to know how
>> to expand \INT{3} into the correct domain. This could be done
>> with a stand-alone pre-processor from selatex->inputform.
>>
>> It should be possible to read-then-write an selatex formula,
>> or write-then-read an selatex formula with identical semantics.
>>
>> That might not mean that the I/O is identical though due to
>> things like variable ordering, etc.
>>
>> ===========
>> Consideration 6: Latex semantic macros
>>
>> Semantic markup would be greatly simplified if selatex provided
>> a mechanism similar to Axiom's ability to define types "on the fly"
>> using either assignment
>>
>>    TYP:=FRAC(POLY(INT))
>>
>> or macro form
>>
>>    TYP ==> FRAC(POLY(INT))
>>
>> Latex is capable of doing this and selatex should probably include
>> a set of pre-defined common markups, such as
>>
>>   \FRINT ==> \FRAC\INT
>>
>> ===========
>> Consideration 7: selatex \begin{semantic} environment?
>>
>> Currently Axiom provides a 'chunk' environment which surrounds
>> source code. The chunks are named so they can be extracted
>> individually or in groups
>>
>>    \begin{chunk}{a name for the chunk}
>>       anything
>>    \end{chunk}
>>
>> We could provide a similar environment for semantics such as
>>
>>   \begin{semantics}{a name for the block}
>>   \end{semantics}
>>
>> which would provide a way to encapsulate markup and also allow
>> a particular block to be extracted in literate programming style.
>>
>> ===========
>> Consideration 8: Latex-time processing
>>
>> Axiom currently creates specific files using \write to create
>> intermediate files (e.g. for tables). This technique can be used
>> to enhance latex-time debugging (where did it fail?).
>>
>> It can be used to create Axiom files which pre-construct domains
>> needed when the input file with semantic markup is read.
>>
>> This would help a stand-alone selatex->inputform preprocessor.
>>
>> ===========
>> Consideration 9: Design sketches
>>
>> It is all well-and-good to hand-wave at this idea but a large
>> amount of this machinery already exists.
>>
>> It would seem useful to develop an incremental test suite that
>> starts with "primitive" domains (e.g. INT), creating selatex I/O.
>>
>> Once these are in place we could work on "type tower" markup
>> such as \FRAC\INT or \POLY\COMPLEX\FLOAT.
>>
>> Following that might be pre-existing latex functions like \int, \sum,
>> \cos, etc.
>>
>> To validate these ideas Axiom will include an selatex.sty file and
>> some unit tests files on primitive domain markup. That should be
>> enough to start the bikeshed discussions.
>>
>> Ideas? Considerations? Suggestions?
>>
>> Tim
>>
>> [0] Fateman, Richard J.
>> "A Critique of OpenMath and Thoughts on
>> Encoding Mathematics, January, 2001"
>> https://people.eecs.berkeley.edu/~fateman/papers/openmathcrit.pdf
>>
>> [1] Fateman, Richard J.
>> "Verbs, Nouns, and Computer Algebra, or What's Grammar Got to
>> do with Math? ", December 18, 2008
>> https://people.eecs.berkeley.edu/~fateman/papers/nounverbmac.pdf
>>
>> [2] Fateman, Richard J.
>> "Parsing TeX into Mathematics",
>> https://people.eecs.berkeley.edu/~fateman/papers/parsing_tex.pdf
>>
>>
>>
>


\start
Subject: Re: [Axiom-developer] Design Thoughts on Semantic Latex (SELATEX)
Date: Sun, 21 Aug 2016 10:16:22 -0400
From: Dan Zwillinger <zwilling@az-tec.com>
To: Tim Daly <axiomcas@gmail.com>, Richard Fateman <fateman@berkeley.edu>
Cc: axiom-dev <axiom-developer@nongnu.org>,
	Tim Daly <daly@axiom-developer.org>, Ralf Hemmecke <ralf@hemmecke.org>, 
	James Davenport <J.H.Davenport@bath.ac.uk>, Mike Dewar <miked@nag.co.uk>,
	vdhoeven@lix.polytechnique.fr, albert_rich@msn.com,
	D Zwillinger <zwilling@az-tec.com>

All

I began reading this topic's emails when they first appeared, and then 
fell behind.
Sorry for my late comments.

I admire your efforts.
They may be somewhat related to what I have done in the past.
My experience is as follows:

(1) CRC SMTF (Standard Mathematical Tables and Formula)

I put the ~700 integrals in CRC's SMTF into a format from which
(A) they could be typeset in LaTeX
(B) they could be converted into Mathematica (which either did a 
symbolic or numeric computation) - and this was done

I let Richard Fateman use them for his experiments.


(2) Elsevier's GR (Gradshteyn and Ryzhik's "Table of Integrals, Series, 
and Products")

I put the ~12,000 (if my memory is correct) integrals into a format from 
which
(A) they could be beautifully typeset in LaTeX
(B) they could be converted into Mathematica - and this was NOT done
Enclosed is a PDF file describing the work and the resulting format.


A different format was used for SMTF and GR.
While the SMTF work was not too arduous, the GR work was more than I had 
anticipated.
The input (the previous version of GR) had little syntactic structure 
and it took much effort to get it into shape.
I used (many different) regular expressions (in perl) to translate the 
bulk of the book, and then lots of hand tuning.

While I think you are well beyond my thinking on these topics, please 
let me know if I can help.
I am friends with Howard Cohl at NIST, who may be the current lead for 
DLMF ("Digital Library of Mathematical Functions" at dlmf.nist.gov).
Let me know if you need an introduction.


Dan Zwillinger
zwilling@az-tec.com
617-388-2382

On 8/20/2016 11:30 PM, Tim Daly wrote:
> The game is to define latex markup that is transparent to the syntax
> but adds semantics for post processing.
>
> Some simple tests show that this works. Suppose selatex.sty contains:
>
> \newcommand{\INT}[1]{#1}
> \newcommand{\VARIABLE}[1]{#1}
> \newcommand{\POLY}[1]{#1}
> \newcommand{\INTEG}[2]{\int{#1}}
>
> This defines 4 new latex markups. The number in the square brackets
> defines the number of expected arguments. The brace argument
> delimites the characters that will occur during expansion with the #1
> replaced by the first argument.
>
> (As an aside, INT, VARIABLE, and POLY just happen to be valid
> Axiom domain abbreviations, hence the name choice. This choice
> of names gives grounding to the semantics.)
>
> Notice that \INTEG takes two arguments but will display only one.
> This allows the variable of integration to be passed in the semantics
> without showing up in the output. This allows the semantics to carry
> additional, non-display information needed by the CAS.
>
> Some examples follow.
>
> An integer 3 can be wrapped as \INT{3} but will still display as 3.
>
> A variable x can be wrapped as \VARIABLE{x}, displayed as x.
>
> $\POLY{\INT{3}\VARIABLE{x}}$ will display as 3*x
>
> $\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x} will be the same result
> as $\int{3x~dx}$, that is, an
>   (integralsign) 3x dx
> but notice that the variable of integration is in the semantic markup.
>
> These trivial macros can be made less verbose and certainly
> more clever but that's not the point being made here.
>
> A 'weaver' program would see the integration expression as
>
> $\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x}$
>
> with all of the semantic tags. The weaver's job is to rewrite this
> expression into an inputform for the CAS. In Axiom that would be
>
> integrate(3*x,x)
>
> The semantics markup makes the display pretty and the semantic
> parsing possible. Depending on the system, more or less parsing
> markup can exist. Axiom, for example, would not need the \INT or
> \VARIABLE to get a correct parse so the expression could be
> $\INTEG{3x~dx}{x}$
>
> This validates the fundamental idea.
>
> The next step is to write a simple weaver program. The clever path
> would be to embed a declarative form of the parser syntax (BNF?)
> as comments in selatex.sty. That way the latex semantics and the
> weaver syntax are kept in sync.
>
> Weaver would read the BNF comments from selatex.sty and
> the formula with semantic markup as input and parse the semantic
> markup into inputforms. (Wish I thought of this homework problem
> when I taught the compiler course :-) ).
>
> Note that, depending on the BNF, weaver could be used to
> generate output for Maxima's tree-based representation.
>
> An alternative next step is to look at a CRC book, re-create the
> syntactic latex and then create the selatex.sty entries necessary
> to generate weaver input.
>
> Infinitesimal progress, but progress non-the-less.
>
> Tim
>
>
> On Fri, Aug 19, 2016 at 12:45 AM, Tim Daly <axiomcas@gmail.com 
> <mailto:axiomcas@gmail.com>> wrote:
>
>
>     One of the Axiom project goals is to develop a "Computer Algebra Test
>     Suite" (CATS). Albert Rich has done this with RUBI and
>     integration. That
>     work is already partially in the test suite and work has been done
>     on the
>     pattern matching. Large datasets (like Kamke) are always welcome.
>     Some,
>     such as Schaums were hand-developed. This is tedious.
>
>     As Axiom develops more explanations and documentation it would be
>     useful to execute the formulas directly so there is a local
>     incentive to be
>     clear about semantics.
>
>     In the long term the hope is that we can just grab formulas
>     directly from
>     their sources (ala literate programming). Your work makes it plain
>     that raw
>     latex does not carry sufficient semantics. There is a global
>     question of
>     how to make this work. Unfortunately a general cross-platform solution
>     is difficult (cite Dewar/Davenport/et al. for OpenMath).
>
>     Since Axiom is literate and extracting formulas is trivial it
>     seems that
>     literate markup is a natural goal. Since Axiom uses abstract algebra
>     as a scaffold the type tower already has a lot of axiomatic semantics.
>     The natural join of literate latex and abstract algebra is clearly
>     semantic markup, aka selatex.
>
>     ===========
>     Consideration 10: semantic->inputform translation (weaver? :-) )
>
>     >x and not x   has no particular meaning,  but if x is explicitly
>     true or false,
>     >Maxima simplifies it to false.  If SEALATEX has a semantics --
>     are you
>     >defining yet another CAS?  Or perhaps you should link it 100% to
>     Axiom's
>     >semantics, which you presumably know about and can modify.
>
>     I am NOT defining another CAS. The goal is a "well-designed hack"
>     using
>     universally understood latex, a latex package, and a translation
>     program.
>
>     The selatex idea is only partially Axiom specific. \INT, for
>     instance, seems
>     pretty generic. However, if the idea is to read formulas and
>     disambiguate
>     a=b (boolean) vs a=b (equation) then the markup needs to be grounded
>     to have meaning. Axiom's domains (BOOLEAN) and (EQ) as the ground
>
>     \BOOLEAN(a=b)
>     \EQ(a=b)
>
>     are unambiguous relative to each other in Axiom. I don't know enough
>     about Maxima to understand how this might translate.
>
>     The extracted formulas with the decorated semantics still needs a
>     semantics->inputform (weaver) pre-processor which could be Maxima
>     specific. This would lead to debate about what "equality" means,
>     of course.
>
>     Axiom has tried to create a first-order "rosetta stone" to
>     translate between
>     systems (rosetta.pdf [1]) but it is too shallow to consider providing
>     cross-platform semantics.
>
>     =============
>     Consideration 11: \scope in selatex
>
>     >As far as recording stuff in DLMF -- there are presumably scope
>     issues
>     >("in this chapter n,m are natural numbers....") and maybe even a need
>     >to make value assignments.
>     >I think you need to model these in SEALATEX too.
>
>     (See Consideration 6)
>
>     Clearly there are scoping issues. My current thinking is to create a
>     \scope markup that would manage the environment(s). This is not
>     a new issue (see "Lisp in Small Pieces" [0])
>
>     There seem to be three concerns.
>
>     First is the scope name, with something like 'global' as a keyword.
>     Second is the "closure chain" of other scopes.
>     Third is the symbol being scoped.
>
>     \scope{name}{chain}{symbol}
>
>     The weaver program would walk this chain to create the proper
>     file syntax for system input.
>
>     ============
>     Consideration 12: System specific commands \axiom
>
>     Along with the formulas it is clear that some system specific
>     input may be required, such as loading files, clearing workspaces,
>     etc. Some of these may be done in the weaver program, such as
>     between formulas. Others may need to be added to the semantics
>     block. So a markup that provides verbatim quoting per system
>     might be defined, e.g.
>
>     \axiom{)clear all}  %clear the workspace
>
>     which would simply quote an input line.
>
>     ==============
>
>     Note that so far all that is being suggested is transparent formula
>     markups which do not impact the presentation, some special tags
>     (\scope, \axiom,...) and a weaver program, along with the ability to
>     read the latex and extract named formulas (aka a literate program,
>     which Axiom already can do).
>
>     It ought to be possible (by design) to create a semantic version of
>     CRC that any system could import, assuming a "sufficiently clever
>     weaver".
>
>     On a more ambitious note, I am trying to find a way to keep the
>     selatex
>     markup "hidden" in a pdf and use it as the clipboard paste when the
>     formula is selected. Anyone with a clue, please help.
>
>     ===============
>
>     [0] Queinnec, Christopher, "Lisp in Small Pieces" ISBN 978-0521545662
>     (2003)
>
>     [1] Wester, Michael J. and Daly, TImothy "Rosetta"
>     http://axiom-developer.org/axiom-website/rosetta.pdf
>     <http://axiom-developer.org/axiom-website/rosetta.pdf>
>
>
>
>
>     On Thu, Aug 18, 2016 at 5:30 PM, Richard Fateman
>     <fateman@berkeley.edu <mailto:fateman@berkeley.edu>> wrote:
>
>         thanks for all the references :)
>
>         I'm not sure if I'm going to repeat comments I  made already
>         somewhere.
>         First,  has Dan Zwillinger weighed in?  I think that it would
>         be useful
>         to see what he has done.
>
>         Next, there are ambiguities among CAS and even within a single
>         CAS.
>
>         For example, in Macsyma/ Maxima  there is generally no semantics
>         associated with "=" or ">".   But in some contexts, there is
>         some meaning.
>
>         x>2*y
>
>         is a tree expression.  It is not associated with x or with y.
>
>         assume(x>2*y)   does mean something ... it puts info in a
>         database.
>         Somehow encoding the method to extract this information into
>         SEALATEX
>         (SeLaTeX?) in a CAS-independent way -- that's quite a task.   In
>         particular, it would seem to require an understanding of what
>         assume()
>         does in Maxima, and what is() does also.
>
>         x and not x   has no particular meaning,  but if x is
>         explicitly true or false,
>         Maxima simplifies it to false.  If SEALATEX has a semantics --
>         are you
>         defining yet another CAS?  Or perhaps you should link it 100%
>         to Axiom's
>         semantics, which you presumably know about and can modify.
>
>         As far as recording stuff in DLMF -- there are presumably
>         scope issues
>         ("in this chapter n,m are natural numbers....")  and maybe
>         even a need
>         to make value assignments.
>         I think you need to model these in SEALATEX too.
>
>         Just musing about where you are heading.
>
>         RJF
>
>
>
>
>         On 8/18/2016 11:45 AM, Tim Daly wrote:
>>         Fateman [0] raised a set of issues with the OpenMath
>>         approach. We are not trying to be cross-platform in this
>>         effort. Axiom does provide an algebraic scaffold so it is
>>         possible that the selatex markup might be useful elsewhere
>>         but that is not a design criterion.
>>
>>         Fateman[1] also raises some difficult cross-platform issues
>>         that are not part of this design.
>>
>>         Fateman[2] shows that parsing tex with only syntactic markup
>>         succeeded on only 43% of 10740 inputs. It ought to be posible
>>         to increase this percentage given proper semantic markup.
>>         (Perhaps there should be a competition similar to the deep
>>         learning groups? PhDs have been awarded on incremental
>>         improvements of the percentage)
>>
>>         This is a design-by-crawl approach to the semantic markup
>>         idea. The hope is to get something running this week that
>>         'works' but giving due consideration to global and long-term
>>         issues. A first glance at CRC/NIST raises more questions
>>         than answers as is usual with any research.
>>
>>         It IS a design goal to support a Computer Algebra Test Suite
>>         (http://axiom-developer.org/axiom-website/CATS
>>         <http://axiom-developer.org/axiom-website/CATS>). It is very
>>         tedious to hand construct test suites. It will be even more
>>         tedious to construct them "second-level" by doing semantic
>>         markup and then trying to use them as input, but the hope is
>>         that eventually the CRC/NIST/G&R, etc will eventually be
>>         published with semantics so computational mathematics can
>>         stop working from syntax.
>>
>>         ===========
>>         Consideration 4: I/O transparency
>>
>>         Assume for the moment that we take a latex file containing
>>         only formulas. We would like to be able to read this file so
>>         it has computational mathematics (CM) semantics.
>>
>>         It is clear that there needs to be semantic tags that carry the
>>         information but these tags have to be carefully designed NOT
>>         to change the syntactic display. They may, as noted before,
>>         require multiple semantic versions for a single syntax.
>>
>>         It is also clear that we would like to be able to output formulas
>>         with CM semantics where currently we only output syntax.
>>
>>         ===========
>>         Consideration 5: I/O isomorphism
>>
>>         An important property of selatex is an isomorphism with
>>         input/output. Axiom allows output forms to be defined for a
>>         variety of targets so this does not seem to be a problem. For
>>         input, however, this means that the reader has to know how
>>         to expand \INT{3} into the correct domain. This could be done
>>         with a stand-alone pre-processor from selatex->inputform.
>>
>>         It should be possible to read-then-write an selatex formula,
>>         or write-then-read an selatex formula with identical semantics.
>>
>>         That might not mean that the I/O is identical though due to
>>         things like variable ordering, etc.
>>
>>         ===========
>>         Consideration 6: Latex semantic macros
>>
>>         Semantic markup would be greatly simplified if selatex provided
>>         a mechanism similar to Axiom's ability to define types "on
>>         the fly"
>>         using either assignment
>>
>>         TYP:=FRAC(POLY(INT))
>>
>>         or macro form
>>
>>            TYP ==> FRAC(POLY(INT))
>>
>>         Latex is capable of doing this and selatex should probably
>>         include
>>         a set of pre-defined common markups, such as
>>
>>           \FRINT ==> \FRAC\INT
>>
>>         ===========
>>         Consideration 7: selatex \begin{semantic} environment?
>>
>>         Currently Axiom provides a 'chunk' environment which surrounds
>>         source code. The chunks are named so they can be extracted
>>         individually or in groups
>>
>>         \begin{chunk}{a name for the chunk}
>>               anything
>>            \end{chunk}
>>
>>         We could provide a similar environment for semantics such as
>>
>>         \begin{semantics}{a name for the block}
>>           \end{semantics}
>>
>>         which would provide a way to encapsulate markup and also allow
>>         a particular block to be extracted in literate programming style.
>>
>>         ===========
>>         Consideration 8: Latex-time processing
>>
>>         Axiom currently creates specific files using \write to create
>>         intermediate files (e.g. for tables). This technique can be used
>>         to enhance latex-time debugging (where did it fail?).
>>
>>         It can be used to create Axiom files which pre-construct domains
>>         needed when the input file with semantic markup is read.
>>
>>         This would help a stand-alone selatex->inputform preprocessor.
>>
>>         ===========
>>         Consideration 9: Design sketches
>>
>>         It is all well-and-good to hand-wave at this idea but a large
>>         amount of this machinery already exists.
>>
>>         It would seem useful to develop an incremental test suite that
>>         starts with "primitive" domains (e.g. INT), creating selatex I/O.
>>
>>         Once these are in place we could work on "type tower" markup
>>         such as \FRAC\INT or \POLY\COMPLEX\FLOAT.
>>
>>         Following that might be pre-existing latex functions like
>>         \int, \sum,
>>         \cos, etc.
>>
>>         To validate these ideas Axiom will include an selatex.sty
>>         file and
>>         some unit tests files on primitive domain markup. That should be
>>         enough to start the bikeshed discussions.
>>
>>         Ideas? Considerations? Suggestions?
>>
>>         Tim
>>
>>         [0] Fateman, Richard J.
>>         "A Critique of OpenMath and Thoughts on
>>         Encoding Mathematics, January, 2001"
>>         https://people.eecs.berkeley.edu/~fateman/papers/openmathcrit.pdf
>>         <https://people.eecs.berkeley.edu/%7Efateman/papers/openmathcrit.pdf>
>>
>>         [1] Fateman, Richard J.
>>         "Verbs, Nouns, and Computer Algebra, or What's Grammar Got to
>>         do with Math? ", December 18, 2008
>>         https://people.eecs.berkeley.edu/~fateman/papers/nounverbmac.pdf
>>         <https://people.eecs.berkeley.edu/%7Efateman/papers/nounverbmac.pdf>
>>
>>         [2] Fateman, Richard J.
>>         "Parsing TeX into Mathematics",
>>         https://people.eecs.berkeley.edu/~fateman/papers/parsing_tex.pdf
>>         <https://people.eecs.berkeley.edu/%7Efateman/papers/parsing_tex.pdf>
>
>
>


--------------75B8A8A409371D377A31895A
Content-Type: application/pdf;
 name="Zwillinger_GR6_essay.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="Zwillinger_GR6_essay.pdf"

JVBERi0xLjIKNyAwIG9iago8PAovVHlwZS9FbmNvZGluZwovRGlmZmVyZW5jZXNbMC9HYW1t
YS9EZWx0YS9UaGV0YS9MYW1iZGEvWGkvUGkvU2lnbWEvVXBzaWxvbi9QaGkvUHNpL09tZWdh
L2ZmL2ZpL2ZsL2ZmaS9mZmwvZG90bGVzc2kvZG90bGVzc2ovZ3JhdmUvYWN1dGUvY2Fyb24v
YnJldmUvbWFjcm9uL3JpbmcvY2VkaWxsYS9nZXJtYW5kYmxzL2FlL29lL29zbGFzaC9BRS9P
RS9Pc2xhc2gvc3VwcHJlc3MvZXhjbGFtL3F1b3RlZGJscmlnaHQvbnVtYmVyc2lnbi9kb2xs
YXIvcGVyY2VudC9hbXBlcnNhbmQvcXVvdGVyaWdodC9wYXJlbmxlZnQvcGFyZW5yaWdodC9h
c3Rlcmlzay9wbHVzL2NvbW1hL2h5cGhlbi9wZXJpb2Qvc2xhc2gvemVyby9vbmUvdHdvL3Ro
cmVlL2ZvdXIvZml2ZS9zaXgvc2V2ZW4vZWlnaHQvbmluZS9jb2xvbi9zZW1pY29sb24vZXhj
bGFtZG93bi9lcXVhbC9xdWVzdGlvbmRvd24vcXVlc3Rpb24vYXQvQS9CL0MvRC9FL0YvRy9I
L0kvSi9LL0wvTS9OL08vUC9RL1IvUy9UL1UvVi9XL1gvWS9aL2JyYWNrZXRsZWZ0L3F1b3Rl
ZGJsbGVmdC9icmFja2V0cmlnaHQvY2lyY3VtZmxleC9kb3RhY2NlbnQvcXVvdGVsZWZ0L2Ev
Yi9jL2QvZS9mL2cvaC9pL2ovay9sL20vbi9vL3AvcS9yL3MvdC91L3Yvdy94L3kvei9lbmRh
c2gvZW1kYXNoL2h1bmdhcnVtbGF1dC90aWxkZS9kaWVyZXNpcy9zdXBwcmVzcwoxNjAvc3Bh
Y2UvR2FtbWEvRGVsdGEvVGhldGEvTGFtYmRhL1hpL1BpL1NpZ21hL1Vwc2lsb24vUGhpL1Bz
aSAxNzMvT21lZ2EvZmYvZmkvZmwvZmZpL2ZmbC9kb3RsZXNzaS9kb3RsZXNzai9ncmF2ZS9h
Y3V0ZS9jYXJvbi9icmV2ZS9tYWNyb24vcmluZy9jZWRpbGxhL2dlcm1hbmRibHMvYWUvb2Uv
b3NsYXNoL0FFL09FL09zbGFzaC9zdXBwcmVzcy9kaWVyZXNpc10KPj4KZW5kb2JqCjEwIDAg
b2JqCjw8Ci9FbmNvZGluZyA3IDAgUgovVHlwZS9Gb250Ci9TdWJ0eXBlL1R5cGUxCi9OYW1l
L0YxCi9Gb250RGVzY3JpcHRvciA5IDAgUgovQmFzZUZvbnQvWVNETFBVK0NNUjE3Ci9GaXJz
dENoYXIgMzMKL0xhc3RDaGFyIDE5NgovV2lkdGhzWzI0OS42IDQ1OC42IDc3Mi4xIDQ1OC42
IDc3Mi4xIDcxOS44IDI0OS42IDM1NC4xIDM1NC4xIDQ1OC42IDcxOS44IDI0OS42IDMwMS45
CjI0OS42IDQ1OC42IDQ1OC42IDQ1OC42IDQ1OC42IDQ1OC42IDQ1OC42IDQ1OC42IDQ1OC42
IDQ1OC42IDQ1OC42IDQ1OC42IDI0OS42IDI0OS42CjI0OS42IDcxOS44IDQzMi41IDQzMi41
IDcxOS44IDY5My4zIDY1NC4zIDY2Ny42IDcwNi42IDYyOC4yIDYwMi4xIDcyNi4zIDY5My4z
IDMyNy42CjQ3MS41IDcxOS40IDU3NiA4NTAgNjkzLjMgNzE5LjggNjI4LjIgNzE5LjggNjgw
LjUgNTEwLjkgNjY3LjYgNjkzLjMgNjkzLjMgOTU0LjUgNjkzLjMKNjkzLjMgNTYzLjEgMjQ5
LjYgNDU4LjYgMjQ5LjYgNDU4LjYgMjQ5LjYgMjQ5LjYgNDU4LjYgNTEwLjkgNDA2LjQgNTEw
LjkgNDA2LjQgMjc1LjgKNDU4LjYgNTEwLjkgMjQ5LjYgMjc1LjggNDg0LjcgMjQ5LjYgNzcy
LjEgNTEwLjkgNDU4LjYgNTEwLjkgNDg0LjcgMzU0LjEgMzU5LjQgMzU0LjEKNTEwLjkgNDg0
LjcgNjY3LjYgNDg0LjcgNDg0LjcgNDA2LjQgNDU4LjYgOTE3LjIgNDU4LjYgNDU4LjYgNDU4
LjYgMCAwIDAgMCAwIDAgMCAwCjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw
IDAgMCAwIDAgMCAwIDAgNTc2IDc3Mi4xIDcxOS44IDY0MS4xIDYxNS4zIDY5My4zCjY2Ny42
IDcxOS44IDY2Ny42IDcxOS44IDAgMCA2NjcuNiA1MjUuNCA0OTkuMyA0OTkuMyA3NDguOSA3
NDguOSAyNDkuNiAyNzUuOCA0NTguNgo0NTguNiA0NTguNiA0NTguNiA0NTguNiA2OTMuMyA0
MDYuNCA0NTguNiA2NjcuNiA3MTkuOCA0NTguNiA4MzcuMiA5NDEuNyA3MTkuOCAyNDkuNgo0
NTguNl0KPj4KZW5kb2JqCjEzIDAgb2JqCjw8Ci9FbmNvZGluZyA3IDAgUgovVHlwZS9Gb250
Ci9TdWJ0eXBlL1R5cGUxCi9OYW1lL0YyCi9Gb250RGVzY3JpcHRvciAxMiAwIFIKL0Jhc2VG
b250L1pJRk5JWStDTUJYMTIKL0ZpcnN0Q2hhciAzMwovTGFzdENoYXIgMTk2Ci9XaWR0aHNb
MzQyLjYgNTgxIDkzNy41IDU2Mi41IDkzNy41IDg3NSAzMTIuNSA0MzcuNSA0MzcuNSA1NjIu
NSA4NzUgMzEyLjUgMzc1IDMxMi41CjU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDU2
Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDMxMi41IDMxMi41IDM0Mi42Cjg3
NSA1MzEuMiA1MzEuMiA4NzUgODQ5LjUgNzk5LjggODEyLjUgODYyLjMgNzM4LjQgNzA3LjIg
ODg0LjMgODc5LjYgNDE5IDU4MSA4ODAuOAo2NzUuOSAxMDY3LjEgODc5LjYgODQ0LjkgNzY4
LjUgODQ0LjkgODM5LjEgNjI1IDc4Mi40IDg2NC42IDg0OS41IDExNjIgODQ5LjUgODQ5LjUK
Njg3LjUgMzEyLjUgNTgxIDMxMi41IDU2Mi41IDMxMi41IDMxMi41IDU0Ni45IDYyNSA1MDAg
NjI1IDUxMy4zIDM0My43IDU2Mi41IDYyNSAzMTIuNQozNDMuNyA1OTMuNyAzMTIuNSA5Mzcu
NSA2MjUgNTYyLjUgNjI1IDU5My43IDQ1OS41IDQ0My44IDQzNy41IDYyNSA1OTMuNyA4MTIu
NSA1OTMuNwo1OTMuNyA1MDAgNTYyLjUgMTEyNSA1NjIuNSA1NjIuNSA1NjIuNSAwIDAgMCAw
IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMAowIDAgMCAwIDAgMCAwIDAgMCAw
IDAgMCA2NzUuOSA5MzcuNSA4NzUgNzg3IDc1MCA4NzkuNiA4MTIuNSA4NzUgODEyLjUgODc1
IDAgMCA4MTIuNQo2NTYuMiA2MjUgNjI1IDkzNy41IDkzNy41IDMxMi41IDM0My43IDU2Mi41
IDU2Mi41IDU2Mi41IDU2Mi41IDU2Mi41IDg0OS41IDUwMCA1NzQuMQo4MTIuNSA4NzUgNTYy
LjUgMTAxOC41IDExNDMuNSA4NzUgMzEyLjUgNTYyLjVdCj4+CmVuZG9iagoxNiAwIG9iago8
PAovRW5jb2RpbmcgNyAwIFIKL1R5cGUvRm9udAovU3VidHlwZS9UeXBlMQovTmFtZS9GMwov
Rm9udERlc2NyaXB0b3IgMTUgMCBSCi9CYXNlRm9udC9OWkpPVFErQ01SOAovRmlyc3RDaGFy
IDMzCi9MYXN0Q2hhciAxOTYKL1dpZHRoc1syOTUuMSA1MzEuMyA4ODUuNCA1MzEuMyA4ODUu
NCA4MjYuNCAyOTUuMSA0MTMuMiA0MTMuMiA1MzEuMyA4MjYuNCAyOTUuMSAzNTQuMgoyOTUu
MSA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEu
MyA1MzEuMyA1MzEuMyAyOTUuMSAyOTUuMQoyOTUuMSA4MjYuNCA1MDEuNyA1MDEuNyA4MjYu
NCA3OTUuOCA3NTIuMSA3NjcuNCA4MTEuMSA3MjIuNiA2OTMuMSA4MzMuNSA3OTUuOCAzODIu
Ngo1NDUuNSA4MjUuNCA2NjMuNiA5NzIuOSA3OTUuOCA4MjYuNCA3MjIuNiA4MjYuNCA3ODEu
NiA1OTAuMyA3NjcuNCA3OTUuOCA3OTUuOCAxMDkxCjc5NS44IDc5NS44IDY0OS4zIDI5NS4x
IDUzMS4zIDI5NS4xIDUzMS4zIDI5NS4xIDI5NS4xIDUzMS4zIDU5MC4zIDQ3Mi4yIDU5MC4z
IDQ3Mi4yCjMyNC43IDUzMS4zIDU5MC4zIDI5NS4xIDMyNC43IDU2MC44IDI5NS4xIDg4NS40
IDU5MC4zIDUzMS4zIDU5MC4zIDU2MC44IDQxNC4xIDQxOS4xCjQxMy4yIDU5MC4zIDU2MC44
IDc2Ny40IDU2MC44IDU2MC44IDQ3Mi4yIDUzMS4zIDEwNjIuNSA1MzEuMyA1MzEuMyA1MzEu
MyAwIDAgMCAwCjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAg
MCAwIDAgMCAwIDAgMCA2NjMuNiA4ODUuNCA4MjYuNCA3MzYuOAo3MDguMyA3OTUuOCA3Njcu
NCA4MjYuNCA3NjcuNCA4MjYuNCAwIDAgNzY3LjQgNjE5LjggNTkwLjMgNTkwLjMgODg1LjQg
ODg1LjQgMjk1LjEKMzI0LjcgNTMxLjMgNTMxLjMgNTMxLjMgNTMxLjMgNTMxLjMgNzk1Ljgg
NDcyLjIgNTMxLjMgNzY3LjQgODI2LjQgNTMxLjMgOTU4LjcgMTA3Ni44CjgyNi40IDI5NS4x
IDUzMS4zXQo+PgplbmRvYmoKMTkgMCBvYmoKPDwKL0VuY29kaW5nIDcgMCBSCi9UeXBlL0Zv
bnQKL1N1YnR5cGUvVHlwZTEKL05hbWUvRjQKL0ZvbnREZXNjcmlwdG9yIDE4IDAgUgovQmFz
ZUZvbnQvTllHSUNGK0NNUjYKL0ZpcnN0Q2hhciAzMwovTGFzdENoYXIgMTk2Ci9XaWR0aHNb
MzUxLjggNjExLjEgMTAwMCA2MTEuMSAxMDAwIDkzNS4yIDM1MS44IDQ4MS41IDQ4MS41IDYx
MS4xIDkzNS4yIDM1MS44IDQxNi43CjM1MS44IDYxMS4xIDYxMS4xIDYxMS4xIDYxMS4xIDYx
MS4xIDYxMS4xIDYxMS4xIDYxMS4xIDYxMS4xIDYxMS4xIDYxMS4xIDM1MS44IDM1MS44CjM1
MS44IDkzNS4yIDU3OC43IDU3OC43IDkzNS4yIDg5Ni4zIDg1MC45IDg3MC40IDkxNS43IDgx
OC41IDc4Ni4xIDk0MS43IDg5Ni4zIDQ0Mi42CjYyNC4xIDkyOC43IDc1My43IDEwOTAuNyA4
OTYuMyA5MzUuMiA4MTguNSA5MzUuMiA4ODMuMyA2NzUuOSA4NzAuNCA4OTYuMyA4OTYuMyAx
MjIwLjQKODk2LjMgODk2LjMgNzQwLjcgMzUxLjggNjExLjEgMzUxLjggNjExLjEgMzUxLjgg
MzUxLjggNjExLjEgNjc1LjkgNTQ2LjMgNjc1LjkgNTQ2LjMKMzg0LjMgNjExLjEgNjc1Ljkg
MzUxLjggMzg0LjMgNjQzLjUgMzUxLjggMTAwMCA2NzUuOSA2MTEuMSA2NzUuOSA2NDMuNSA0
ODEuNSA0ODgKNDgxLjUgNjc1LjkgNjQzLjUgODcwLjQgNjQzLjUgNjQzLjUgNTQ2LjMgNjEx
LjEgMTIyMi4yIDYxMS4xIDYxMS4xIDYxMS4xIDAgMCAwIDAKMCAwIDAgMCAwIDAgMCAwIDAg
MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDc1My43IDEwMDAgOTM1
LjIgODMxLjUKODA1LjUgODk2LjMgODcwLjQgOTM1LjIgODcwLjQgOTM1LjIgMCAwIDg3MC40
IDczNi4xIDcwMy43IDcwMy43IDEwNTUuNSAxMDU1LjUgMzUxLjgKMzg0LjMgNjExLjEgNjEx
LjEgNjExLjEgNjExLjEgNjExLjEgODk2LjMgNTQ2LjMgNjExLjEgODcwLjQgOTM1LjIgNjEx
LjEgMTA3Ny44IDEyMDcuNAo5MzUuMiAzNTEuOCA2MTEuMV0KPj4KZW5kb2JqCjIwIDAgb2Jq
Cjw8Ci9UeXBlL0VuY29kaW5nCi9EaWZmZXJlbmNlc1swL0dhbW1hL0RlbHRhL1RoZXRhL0xh
bWJkYS9YaS9QaS9TaWdtYS9VcHNpbG9uL1BoaS9Qc2kvT21lZ2EvYXJyb3d1cC9hcnJvd2Rv
d24vcXVvdGVzaW5nbGUvZXhjbGFtZG93bi9xdWVzdGlvbmRvd24vZG90bGVzc2kvZG90bGVz
c2ovZ3JhdmUvYWN1dGUvY2Fyb24vYnJldmUvbWFjcm9uL3JpbmcvY2VkaWxsYS9nZXJtYW5k
YmxzL2FlL29lL29zbGFzaC9BRS9PRS9Pc2xhc2gvdmlzaWJsZXNwYWNlL2V4Y2xhbS9xdW90
ZWRibC9udW1iZXJzaWduL2RvbGxhci9wZXJjZW50L2FtcGVyc2FuZC9xdW90ZXJpZ2h0L3Bh
cmVubGVmdC9wYXJlbnJpZ2h0L2FzdGVyaXNrL3BsdXMvY29tbWEvaHlwaGVuL3BlcmlvZC9z
bGFzaC96ZXJvL29uZS90d28vdGhyZWUvZm91ci9maXZlL3NpeC9zZXZlbi9laWdodC9uaW5l
L2NvbG9uL3NlbWljb2xvbi9sZXNzL2VxdWFsL2dyZWF0ZXIvcXVlc3Rpb24vYXQvQS9CL0Mv
RC9FL0YvRy9IL0kvSi9LL0wvTS9OL08vUC9RL1IvUy9UL1UvVi9XL1gvWS9aL2JyYWNrZXRs
ZWZ0L2JhY2tzbGFzaC9icmFja2V0cmlnaHQvYXNjaWljaXJjdW0vdW5kZXJzY29yZS9xdW90
ZWxlZnQvYS9iL2MvZC9lL2YvZy9oL2kvai9rL2wvbS9uL28vcC9xL3Ivcy90L3Uvdi93L3gv
eS96L2JyYWNlbGVmdC9iYXIvYnJhY2VyaWdodC9hc2NpaXRpbGRlL2RpZXJlc2lzL3Zpc2li
bGVzcGFjZQoxNjAvc3BhY2UvR2FtbWEvRGVsdGEvVGhldGEvTGFtYmRhL1hpL1BpL1NpZ21h
L1Vwc2lsb24vUGhpL1BzaSAxNzMvT21lZ2EvYXJyb3d1cC9hcnJvd2Rvd24vcXVvdGVzaW5n
bGUvZXhjbGFtZG93bi9xdWVzdGlvbmRvd24vZG90bGVzc2kvZG90bGVzc2ovZ3JhdmUvYWN1
dGUvY2Fyb24vYnJldmUvbWFjcm9uL3JpbmcvY2VkaWxsYS9nZXJtYW5kYmxzL2FlL29lL29z
bGFzaC9BRS9PRS9Pc2xhc2gvdmlzaWJsZXNwYWNlL2RpZXJlc2lzXQo+PgplbmRvYmoKMjMg
MCBvYmoKPDwKL0VuY29kaW5nIDIwIDAgUgovVHlwZS9Gb250Ci9TdWJ0eXBlL1R5cGUxCi9O
YW1lL0Y1Ci9Gb250RGVzY3JpcHRvciAyMiAwIFIKL0Jhc2VGb250L1FDSlhXTCtDTVRUOAov
Rmlyc3RDaGFyIDMzCi9MYXN0Q2hhciAxOTYKL1dpZHRoc1s1MzEuMyA1MzEuMyA1MzEuMyA1
MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1
MzEuMwo1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1
MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMwo1MzEuMyA1MzEuMyA1MzEuMyA1
MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1
MzEuMyA1MzEuMwo1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1
MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMwo1MzEuMyA1MzEuMyA1
MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1
MzEuMyA1MzEuMyA1MzEuMwo1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1
MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMwo1MzEuMyA1
MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1
MzEuMyA1MzEuMyAwIDAgMCAwIDAKMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw
IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMwo1
MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyAwIDAgNTMxLjMgNTMxLjMgNTMxLjMgNTMx
LjMgNTMxLjMgNTMxLjMgNTMxLjMgNTMxLjMKNTMxLjMgNTMxLjMgNTMxLjMgNTMxLjMgNTMx
LjMgNTMxLjMgNTMxLjMgNTMxLjMgNTMxLjMgNTMxLjMgNTMxLjMgNTMxLjMgNTMxLjMgNTMx
LjMKNTMxLjMgNTMxLjNdCj4+CmVuZG9iagoyNiAwIG9iago8PAovRW5jb2RpbmcgNyAwIFIK
L1R5cGUvRm9udAovU3VidHlwZS9UeXBlMQovTmFtZS9GNgovRm9udERlc2NyaXB0b3IgMjUg
MCBSCi9CYXNlRm9udC9TVUZYRlUrQ01SMTAKL0ZpcnN0Q2hhciAzMwovTGFzdENoYXIgMTk2
Ci9XaWR0aHNbMjc3LjggNTAwIDgzMy4zIDUwMCA4MzMuMyA3NzcuOCAyNzcuOCAzODguOSAz
ODguOSA1MDAgNzc3LjggMjc3LjggMzMzLjMgMjc3LjgKNTAwIDUwMCA1MDAgNTAwIDUwMCA1
MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCAyNzcuOCAyNzcuOCAyNzcuOCA3NzcuOCA0NzIuMiA0
NzIuMiA3NzcuOAo3NTAgNzA4LjMgNzIyLjIgNzYzLjkgNjgwLjYgNjUyLjggNzg0LjcgNzUw
IDM2MS4xIDUxMy45IDc3Ny44IDYyNSA5MTYuNyA3NTAgNzc3LjgKNjgwLjYgNzc3LjggNzM2
LjEgNTU1LjYgNzIyLjIgNzUwIDc1MCAxMDI3LjggNzUwIDc1MCA2MTEuMSAyNzcuOCA1MDAg
Mjc3LjggNTAwIDI3Ny44CjI3Ny44IDUwMCA1NTUuNiA0NDQuNCA1NTUuNiA0NDQuNCAzMDUu
NiA1MDAgNTU1LjYgMjc3LjggMzA1LjYgNTI3LjggMjc3LjggODMzLjMgNTU1LjYKNTAwIDU1
NS42IDUyNy44IDM5MS43IDM5NC40IDM4OC45IDU1NS42IDUyNy44IDcyMi4yIDUyNy44IDUy
Ny44IDQ0NC40IDUwMCAxMDAwIDUwMAo1MDAgNTAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw
IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDYyNSA4MzMuMwo3
NzcuOCA2OTQuNCA2NjYuNyA3NTAgNzIyLjIgNzc3LjggNzIyLjIgNzc3LjggMCAwIDcyMi4y
IDU4My4zIDU1NS42IDU1NS42IDgzMy4zIDgzMy4zCjI3Ny44IDMwNS42IDUwMCA1MDAgNTAw
IDUwMCA1MDAgNzUwIDQ0NC40IDUwMCA3MjIuMiA3NzcuOCA1MDAgOTAyLjggMTAxMy45IDc3
Ny44CjI3Ny44IDUwMF0KPj4KZW5kb2JqCjI5IDAgb2JqCjw8Ci9FbmNvZGluZyA3IDAgUgov
VHlwZS9Gb250Ci9TdWJ0eXBlL1R5cGUxCi9OYW1lL0Y3Ci9Gb250RGVzY3JpcHRvciAyOCAw
IFIKL0Jhc2VGb250L1NIRlhVTitDTVI3Ci9GaXJzdENoYXIgMzMKL0xhc3RDaGFyIDE5Ngov
V2lkdGhzWzMyMy40IDU2OS40IDkzOC41IDU2OS40IDkzOC41IDg3NyAzMjMuNCA0NDYuNCA0
NDYuNCA1NjkuNCA4NzcgMzIzLjQgMzg0LjkKMzIzLjQgNTY5LjQgNTY5LjQgNTY5LjQgNTY5
LjQgNTY5LjQgNTY5LjQgNTY5LjQgNTY5LjQgNTY5LjQgNTY5LjQgNTY5LjQgMzIzLjQgMzIz
LjQKMzIzLjQgODc3IDUzOC43IDUzOC43IDg3NyA4NDMuMyA3OTguNiA4MTUuNSA4NjAuMSA3
NjcuOSA3MzcuMSA4ODMuOSA4NDMuMyA0MTIuNyA1ODMuMwo4NzQgNzA2LjQgMTAyNy44IDg0
My4zIDg3NyA3NjcuOSA4NzcgODI5LjQgNjMxIDgxNS41IDg0My4zIDg0My4zIDExNTAuOCA4
NDMuMyA4NDMuMwo2OTIuNSAzMjMuNCA1NjkuNCAzMjMuNCA1NjkuNCAzMjMuNCAzMjMuNCA1
NjkuNCA2MzEgNTA3LjkgNjMxIDUwNy45IDM1NC4yIDU2OS40IDYzMQozMjMuNCAzNTQuMiA2
MDAuMiAzMjMuNCA5MzguNSA2MzEgNTY5LjQgNjMxIDYwMC4yIDQ0Ni40IDQ1Mi42IDQ0Ni40
IDYzMSA2MDAuMiA4MTUuNQo2MDAuMiA2MDAuMiA1MDcuOSA1NjkuNCAxMTM4LjkgNTY5LjQg
NTY5LjQgNTY5LjQgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMAowIDAgMCAwIDAg
MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNzA2LjQgOTM4LjUgODc3IDc4MS44IDc1NCA4NDMu
MyA4MTUuNSA4NzcgODE1LjUKODc3IDAgMCA4MTUuNSA2NzcuNiA2NDYuOCA2NDYuOCA5NzAu
MiA5NzAuMiAzMjMuNCAzNTQuMiA1NjkuNCA1NjkuNCA1NjkuNCA1NjkuNCA1NjkuNAo4NDMu
MyA1MDcuOSA1NjkuNCA4MTUuNSA4NzcgNTY5LjQgMTAxMy45IDExMzYuOSA4NzcgMzIzLjQg
NTY5LjRdCj4+CmVuZG9iagozMCAwIG9iago8PAovVHlwZS9FbmNvZGluZwovRGlmZmVyZW5j
ZXNbMC9taW51cy9wZXJpb2RjZW50ZXJlZC9tdWx0aXBseS9hc3Rlcmlza21hdGgvZGl2aWRl
L2RpYW1vbmRtYXRoL3BsdXNtaW51cy9taW51c3BsdXMvY2lyY2xlcGx1cy9jaXJjbGVtaW51
cy9jaXJjbGVtdWx0aXBseS9jaXJjbGVkaXZpZGUvY2lyY2xlZG90L2NpcmNsZWNvcHlydC9v
cGVuYnVsbGV0L2J1bGxldC9lcXVpdmFzeW1wdG90aWMvZXF1aXZhbGVuY2UvcmVmbGV4c3Vi
c2V0L3JlZmxleHN1cGVyc2V0L2xlc3NlcXVhbC9ncmVhdGVyZXF1YWwvcHJlY2VkZXNlcXVh
bC9mb2xsb3dzZXF1YWwvc2ltaWxhci9hcHByb3hlcXVhbC9wcm9wZXJzdWJzZXQvcHJvcGVy
c3VwZXJzZXQvbGVzc211Y2gvZ3JlYXRlcm11Y2gvcHJlY2VkZXMvZm9sbG93cy9hcnJvd2xl
ZnQvYXJyb3dyaWdodC9hcnJvd3VwL2Fycm93ZG93bi9hcnJvd2JvdGgvYXJyb3dub3J0aGVh
c3QvYXJyb3dzb3V0aGVhc3Qvc2ltaWxhcmVxdWFsL2Fycm93ZGJsbGVmdC9hcnJvd2RibHJp
Z2h0L2Fycm93ZGJsdXAvYXJyb3dkYmxkb3duL2Fycm93ZGJsYm90aC9hcnJvd25vcnRod2Vz
dC9hcnJvd3NvdXRod2VzdC9wcm9wb3J0aW9uYWwvcHJpbWUvaW5maW5pdHkvZWxlbWVudC9v
d25lci90cmlhbmdsZS90cmlhbmdsZWludi9uZWdhdGlvbnNsYXNoL21hcHN0by91bml2ZXJz
YWwvZXhpc3RlbnRpYWwvbG9naWNhbG5vdC9lbXB0eXNldC9SZnJhY3R1ci9JZnJhY3R1ci9s
YXR0aWNldG9wL3BlcnBlbmRpY3VsYXIvYWxlcGgvQS9CL0MvRC9FL0YvRy9IL0kvSi9LL0wv
TS9OL08vUC9RL1IvUy9UL1UvVi9XL1gvWS9aL3VuaW9uL2ludGVyc2VjdGlvbi91bmlvbm11
bHRpL2xvZ2ljYWxhbmQvbG9naWNhbG9yL3R1cm5zdGlsZWxlZnQvdHVybnN0aWxlcmlnaHQv
Zmxvb3JsZWZ0L2Zsb29ycmlnaHQvY2VpbGluZ2xlZnQvY2VpbGluZ3JpZ2h0L2JyYWNlbGVm
dC9icmFjZXJpZ2h0L2FuZ2JyYWNrZXRsZWZ0L2FuZ2JyYWNrZXRyaWdodC9iYXIvYmFyZGJs
L2Fycm93Ym90aHYvYXJyb3dkYmxib3Rodi9iYWNrc2xhc2gvd3JlYXRocHJvZHVjdC9yYWRp
Y2FsL2NvcHJvZHVjdC9uYWJsYS9pbnRlZ3JhbC91bmlvbnNxL2ludGVyc2VjdGlvbnNxL3N1
YnNldHNxZXF1YWwvc3VwZXJzZXRzcWVxdWFsL3NlY3Rpb24vZGFnZ2VyL2RhZ2dlcmRibC9w
YXJhZ3JhcGgvY2x1Yi9kaWFtb25kL2hlYXJ0L3NwYWRlL2Fycm93bGVmdAoxNjEvbWludXMv
cGVyaW9kY2VudGVyZWQvbXVsdGlwbHkvYXN0ZXJpc2ttYXRoL2RpdmlkZS9kaWFtb25kbWF0
aC9wbHVzbWludXMvbWludXNwbHVzL2NpcmNsZXBsdXMvY2lyY2xlbWludXMKMTczL2NpcmNs
ZW11bHRpcGx5L2NpcmNsZWRpdmlkZS9jaXJjbGVkb3QvY2lyY2xlY29weXJ0L29wZW5idWxs
ZXQvYnVsbGV0L2VxdWl2YXN5bXB0b3RpYy9lcXVpdmFsZW5jZS9yZWZsZXhzdWJzZXQvcmVm
bGV4c3VwZXJzZXQvbGVzc2VxdWFsL2dyZWF0ZXJlcXVhbC9wcmVjZWRlc2VxdWFsL2ZvbGxv
d3NlcXVhbC9zaW1pbGFyL2FwcHJveGVxdWFsL3Byb3BlcnN1YnNldC9wcm9wZXJzdXBlcnNl
dC9sZXNzbXVjaC9ncmVhdGVybXVjaC9wcmVjZWRlcy9mb2xsb3dzL2Fycm93bGVmdC9zcGFk
ZV0KPj4KZW5kb2JqCjMzIDAgb2JqCjw8Ci9FbmNvZGluZyAzMCAwIFIKL1R5cGUvRm9udAov
U3VidHlwZS9UeXBlMQovTmFtZS9GOAovRm9udERlc2NyaXB0b3IgMzIgMCBSCi9CYXNlRm9u
dC9YSk5JQUcrQ01TWTEwCi9GaXJzdENoYXIgMzMKL0xhc3RDaGFyIDE5NgovV2lkdGhzWzEw
MDAgNTAwIDUwMCAxMDAwIDEwMDAgMTAwMCA3NzcuOCAxMDAwIDEwMDAgNjExLjEgNjExLjEg
MTAwMCAxMDAwIDEwMDAgNzc3LjgKMjc1IDEwMDAgNjY2LjcgNjY2LjcgODg4LjkgODg4Ljkg
MCAwIDU1NS42IDU1NS42IDY2Ni43IDUwMCA3MjIuMiA3MjIuMiA3NzcuOCA3NzcuOAo2MTEu
MSA3OTguNSA2NTYuOCA1MjYuNSA3NzEuNCA1MjcuOCA3MTguNyA1OTQuOSA4NDQuNSA1NDQu
NSA2NzcuOCA3NjIgNjg5LjcgMTIwMC45CjgyMC41IDc5Ni4xIDY5NS42IDgxNi43IDg0Ny41
IDYwNS42IDU0NC42IDYyNS44IDYxMi44IDk4Ny44IDcxMy4zIDY2OC4zIDcyNC43IDY2Ni43
CjY2Ni43IDY2Ni43IDY2Ni43IDY2Ni43IDYxMS4xIDYxMS4xIDQ0NC40IDQ0NC40IDQ0NC40
IDQ0NC40IDUwMCA1MDAgMzg4LjkgMzg4LjkgMjc3LjgKNTAwIDUwMCA2MTEuMSA1MDAgMjc3
LjggODMzLjMgNzUwIDgzMy4zIDQxNi43IDY2Ni43IDY2Ni43IDc3Ny44IDc3Ny44IDQ0NC40
IDQ0NC40CjQ0NC40IDYxMS4xIDc3Ny44IDc3Ny44IDc3Ny44IDc3Ny44IDAgMCAwIDAgMCAw
IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMAowIDAgMCAwIDAgMCAwIDAgMCAw
IDc3Ny44IDI3Ny44IDc3Ny44IDUwMCA3NzcuOCA1MDAgNzc3LjggNzc3LjggNzc3LjggNzc3
LjggMCAwIDc3Ny44Cjc3Ny44IDc3Ny44IDEwMDAgNTAwIDUwMCA3NzcuOCA3NzcuOCA3Nzcu
OCA3NzcuOCA3NzcuOCA3NzcuOCA3NzcuOCA3NzcuOCA3NzcuOCA3NzcuOAo3NzcuOCA3Nzcu
OCAxMDAwIDEwMDAgNzc3LjggNzc3LjggMTAwMCA3NzcuOF0KPj4KZW5kb2JqCjM2IDAgb2Jq
Cjw8Ci9FbmNvZGluZyAyMCAwIFIKL1R5cGUvRm9udAovU3VidHlwZS9UeXBlMQovTmFtZS9G
OQovRm9udERlc2NyaXB0b3IgMzUgMCBSCi9CYXNlRm9udC9ZUEdGWEwrQ01UVDEwCi9GaXJz
dENoYXIgMzMKL0xhc3RDaGFyIDE5NgovV2lkdGhzWzUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1
IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNQo1
MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1
IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNQo1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1
MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1
IDUyNQo1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1
MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNQo1MjUgNTI1IDUyNSA1MjUgNTI1
IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgMCAwIDAgMCAwIDAgMCAwIDAgMCAw
IDAgMCAwIDAKMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNTI1IDUyNSA1
MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDAgMCA1MjUKNTI1IDUyNSA1MjUgNTI1
IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1
MjUgNTI1IDUyNSA1MjUKNTI1IDUyNV0KPj4KZW5kb2JqCjM3IDAgb2JqCjw8Ci9UeXBlL0Vu
Y29kaW5nCi9EaWZmZXJlbmNlc1swL0dhbW1hL0RlbHRhL1RoZXRhL0xhbWJkYS9YaS9QaS9T
aWdtYS9VcHNpbG9uL1BoaS9Qc2kvT21lZ2EvYWxwaGEvYmV0YS9nYW1tYS9kZWx0YS9lcHNp
bG9uMS96ZXRhL2V0YS90aGV0YS9pb3RhL2thcHBhL2xhbWJkYS9tdS9udS94aS9waS9yaG8v
c2lnbWEvdGF1L3Vwc2lsb24vcGhpL2NoaS9wc2kvb21lZ2EvZXBzaWxvbi90aGV0YTEvcGkx
L3JobzEvc2lnbWExL3BoaTEvYXJyb3dsZWZ0dG9waGFsZi9hcnJvd2xlZnRib3RoYWxmL2Fy
cm93cmlnaHR0b3BoYWxmL2Fycm93cmlnaHRib3RoYWxmL2Fycm93aG9va2xlZnQvYXJyb3do
b29rcmlnaHQvdHJpYW5nbGVyaWdodC90cmlhbmdsZWxlZnQvemVyb29sZHN0eWxlL29uZW9s
ZHN0eWxlL3R3b29sZHN0eWxlL3RocmVlb2xkc3R5bGUvZm91cm9sZHN0eWxlL2ZpdmVvbGRz
dHlsZS9zaXhvbGRzdHlsZS9zZXZlbm9sZHN0eWxlL2VpZ2h0b2xkc3R5bGUvbmluZW9sZHN0
eWxlL3BlcmlvZC9jb21tYS9sZXNzL3NsYXNoL2dyZWF0ZXIvc3Rhci9wYXJ0aWFsZGlmZi9B
L0IvQy9EL0UvRi9HL0gvSS9KL0svTC9NL04vTy9QL1EvUi9TL1QvVS9WL1cvWC9ZL1ovZmxh
dC9uYXR1cmFsL3NoYXJwL3NsdXJiZWxvdy9zbHVyYWJvdmUvbHNjcmlwdC9hL2IvYy9kL2Uv
Zi9nL2gvaS9qL2svbC9tL24vby9wL3Evci9zL3QvdS92L3cveC95L3ovZG90bGVzc2kvZG90
bGVzc2ovd2VpZXJzdHJhc3MvdmVjdG9yL3RpZS9wc2kKMTYwL3NwYWNlL0dhbW1hL0RlbHRh
L1RoZXRhL0xhbWJkYS9YaS9QaS9TaWdtYS9VcHNpbG9uL1BoaS9Qc2kgMTczL09tZWdhL2Fs
cGhhL2JldGEvZ2FtbWEvZGVsdGEvZXBzaWxvbjEvemV0YS9ldGEvdGhldGEvaW90YS9rYXBw
YS9sYW1iZGEvbXUvbnUveGkvcGkvcmhvL3NpZ21hL3RhdS91cHNpbG9uL3BoaS9jaGkvcHNp
L3RpZV0KPj4KZW5kb2JqCjQwIDAgb2JqCjw8Ci9FbmNvZGluZyAzNyAwIFIKL1R5cGUvRm9u
dAovU3VidHlwZS9UeXBlMQovTmFtZS9GMTAKL0ZvbnREZXNjcmlwdG9yIDM5IDAgUgovQmFz
ZUZvbnQvTU9OVk5KK0NNTUkxMAovRmlyc3RDaGFyIDMzCi9MYXN0Q2hhciAxOTYKL1dpZHRo
c1s2MjIuNSA0NjYuMyA1OTEuNCA4MjguMSA1MTcgMzYyLjggNjU0LjIgMTAwMCAxMDAwIDEw
MDAgMTAwMCAyNzcuOCAyNzcuOCA1MDAKNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUw
MCA1MDAgNTAwIDUwMCAyNzcuOCAyNzcuOCA3NzcuOCA1MDAgNzc3LjggNTAwIDUzMC45Cjc1
MCA3NTguNSA3MTQuNyA4MjcuOSA3MzguMiA2NDMuMSA3ODYuMiA4MzEuMyA0MzkuNiA1NTQu
NSA4NDkuMyA2ODAuNiA5NzAuMSA4MDMuNQo3NjIuOCA2NDIgNzkwLjYgNzU5LjMgNjEzLjIg
NTg0LjQgNjgyLjggNTgzLjMgOTQ0LjQgODI4LjUgNTgwLjYgNjgyLjYgMzg4LjkgMzg4LjkK
Mzg4LjkgMTAwMCAxMDAwIDQxNi43IDUyOC42IDQyOS4yIDQzMi44IDUyMC41IDQ2NS42IDQ4
OS42IDQ3NyA1NzYuMiAzNDQuNSA0MTEuOCA1MjAuNgoyOTguNCA4NzggNjAwLjIgNDg0Ljcg
NTAzLjEgNDQ2LjQgNDUxLjIgNDY4LjcgMzYxLjEgNTcyLjUgNDg0LjcgNzE1LjkgNTcxLjUg
NDkwLjMKNDY1IDMyMi41IDM4NCA2MzYuNSA1MDAgMjc3LjggMCAwIDAgMCAwIDAgMCAwIDAg
MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwCjAgMCAwIDAgMCAwIDAgNjE1LjMg
ODMzLjMgNzYyLjggNjk0LjQgNzQyLjQgODMxLjMgNzc5LjkgNTgzLjMgNjY2LjcgNjEyLjIg
MCAwIDc3Mi40CjYzOS43IDU2NS42IDUxNy43IDQ0NC40IDQwNS45IDQzNy41IDQ5Ni41IDQ2
OS40IDM1My45IDU3Ni4yIDU4My4zIDYwMi41IDQ5NCA0MzcuNQo1NzAgNTE3IDU3MS40IDQz
Ny4yIDU0MC4zIDU5NS44IDYyNS43IDY1MS40IDI3Ny44XQo+PgplbmRvYmoKNDMgMCBvYmoK
PDwKL0VuY29kaW5nIDcgMCBSCi9UeXBlL0ZvbnQKL1N1YnR5cGUvVHlwZTEKL05hbWUvRjEx
Ci9Gb250RGVzY3JpcHRvciA0MiAwIFIKL0Jhc2VGb250L0lGRk5DTitDTVNTOAovRmlyc3RD
aGFyIDMzCi9MYXN0Q2hhciAxOTYKL1dpZHRoc1szMzYuOCA1MzEuMyA4ODUuNCA1MzEuMyA4
ODUuNCA4MDUuNiAyOTUuMSA0MTMuMiA0MTMuMiA1MzEuMyA4MjYuNCAyOTUuMSAzNTQuMgoy
OTUuMSA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1MzEuMyA1
MzEuMyA1MzEuMyA1MzEuMyAyOTUuMSAyOTUuMQozMzYuOCA4MjYuNCA1MDEuNyA1MDEuNyA3
MDguMyA3MDguMyA3MDguMyA2NzguOCA3NjcuNCA2MzcuMiA2MDcuNiA3MDguMyA3NTAgMjk1
LjEKNTAxLjcgNzM3LjkgNTc4LjEgOTI3LjEgNzUwIDc4NC43IDY3OC44IDc4NC43IDY4Ny41
IDU5MC4zIDcyNS43IDcyOS4yIDcwOC4zIDEwMDMuNQo3MDguMyA3MDguMyA2NDkuMyAzMDkg
NTMxLjMgMzA5IDUzMS4zIDI5NS4xIDI5NS4xIDUxMC40IDU0OC42IDQ3Mi4yIDU0OC42IDQ3
Mi4yIDMyNC43CjUzMS4zIDU0OC42IDI1My41IDI4MyA1MTkuMSAyNTMuNSA4NDMuOCA1NDgu
NiA1MzEuMyA1NDguNiA1NDguNiAzNjIuOSA0MDcuMyAzODMuNwo1NDguNiA0ODkuNiA3MjUu
NyA0ODkuNiA0ODkuNiA0NjEuOCA1MzEuMyAxMDYyLjUgNTMxLjMgNTMxLjMgNTMxLjMgMCAw
IDAgMCAwIDAgMAowIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw
IDAgMCAwIDAgNTc4LjEgODg1LjQgODI2LjQgNjQ5LjMgNzA4LjMKNzUwIDc2Ny40IDgyNi40
IDc2Ny40IDgyNi40IDAgMCA3NjcuNCA2MTkuOCA1NjkuNSA1NjkuNSA4NjQuNiA4NjQuNiAy
NTMuNSAyODMgNTMxLjMKNTMxLjMgNTMxLjMgNTMxLjMgNTMxLjMgNzA4LjMgNDcyLjIgNTEw
LjQgNzY3LjQgODI2LjQgNTMxLjMgOTE0LjkgMTAzMyA4MjYuNCAyNTMuNQo1MzEuM10KPj4K
ZW5kb2JqCjQ1IDAgb2JqCjw8Ci9GaWx0ZXJbL0ZsYXRlRGVjb2RlXQovTGVuZ3RoIDI3NzEK
Pj4Kc3RyZWFtCnjaxVpLc9vIEb7nV6D2ErDKnMU8AfjmrGzHKW92y1KqnIQ5QOSIRAwCDABK
Vjb+7+meHgzARyy7JFUuwmAwj2+6v35MU1HCkiRaR+7xNvrD1Y9veCQUS7Po6ibi3LBURXMh
GM+jq4u/x+9n/7j6kxuTMGNwjGFJHgmWCff9Vfge1khYzmGJYcQVjoi4YKmO5ppJ6Xpfh14Z
hc6Ps7lMeHzZ7NulxbaIb5qWGm8/GNpKRFwxqXCrOdc5EwI2S1mSuiV+auqZ5HFv6dHRHBml
LE8dOtgR5qVM0vn4bM5zLuJ39Uzkcd82szk8V/tlX8JKcwmLsNlcn3+Ip/x2plNkMgGETlI5
UwAc/maEmwFykSgR/9ra27LZdwBWq/h2JrLYth2h1zJegOT0YjabZ7n+PoCT3RO3s5cYE+PO
nSW5hc3zsLkR/MnF4yAJB2l+LBHhNXlRdst9NwhAxc0NPZcNEileAbFylT2Bdh7UnJjIjjBK
j/F9cTXLQE8fCVrnCP9yNlepiKsGpXg3ryyJsyI9Lj0z0S609nYBc+3nHagBjwsMENoM2x6L
RwbC/FwskeZSqLgutmW9xjZuUCN3bmeA3GuVZCgGK4QJN/t6OXfro8nlbn0yvD4IvLW7kRgF
9etMPIHlgFQ5yPBEqoysgYP0LmxflJVdgaATEDTi7Uk28C7jol656RK8FXdLGEK/saUXaNGu
91vrZAHuA7iSfj+6+bj+CFF4iG9Q9SMuKXMHC+YkAQc0Ecf8CCyJeutlC5N1bp7cPznufuUc
0p/jcucMyi7LoiLRTaStBhP7NjejzipVBaW25e1MZzGwifiJeklIbLnicUkCsesWoJzT7wRZ
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
BsnCUC2FKRAW1j9Qc/Q6MMrbRSKHn/VlWBQU6TJiGDVohSejWjK46fvTnqgiGy/jDWXN7idw
WkwMPjjLmeFTBfwFa7z9vi56WzlzfIG0zcYrzsF5IbOLS8/6EowOnBddWXQgmZuDbVcsbqij
onybRk6Ygt82xQiXemo/y6daOKe1VTFer/qGnsHFutvZ8IvLSbZPdRwpR7caft302dAQhsFh
2tJfrMfx6oAUOKg5HjBRoA8jrf/iDkHBRY4yI328vooSpqI7hKtzzdI82kZKK5fn+Y4quqT/
T+GhqAKjDVgoZcJ/uysrMOq1bf/zxhUSr/FG3u4LfGnvqc7G0xdUKhBJgkVICGhiLJKsJv8r
wHOdpPGvrtC/tn724b8QUIUAwP/uv2dSYU4KZW5kc3RyZWFtCmVuZG9iago0NyAwIG9iago8
PAovRjEgMTAgMCBSCi9GMiAxMyAwIFIKL0YzIDE2IDAgUgovRjQgMTkgMCBSCi9GNSAyMyAw
IFIKL0Y2IDI2IDAgUgovRjcgMjkgMCBSCi9GOCAzMyAwIFIKL0Y5IDM2IDAgUgovRjEwIDQw
IDAgUgovRjExIDQzIDAgUgo+PgplbmRvYmoKNiAwIG9iago8PAovUHJvY1NldFsvUERGL1Rl
eHQvSW1hZ2VDXQovRm9udCA0NyAwIFIKPj4KZW5kb2JqCjUyIDAgb2JqCjw8Ci9FbmNvZGlu
ZyA3IDAgUgovVHlwZS9Gb250Ci9TdWJ0eXBlL1R5cGUxCi9OYW1lL0YxMgovRm9udERlc2Ny
aXB0b3IgNTEgMCBSCi9CYXNlRm9udC9IV1VNVlErQ01SOQovRmlyc3RDaGFyIDMzCi9MYXN0
Q2hhciAxOTYKL1dpZHRoc1syODUuNSA1MTMuOSA4NTYuNSA1MTMuOSA4NTYuNSA3OTkuNCAy
ODUuNSAzOTkuNyAzOTkuNyA1MTMuOSA3OTkuNCAyODUuNSAzNDIuNgoyODUuNSA1MTMuOSA1
MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1
MTMuOSAyODUuNSAyODUuNQoyODUuNSA3OTkuNCA0ODUuMyA0ODUuMyA3OTkuNCA3NzAuNyA3
MjcuOSA3NDIuMyA3ODUgNjk5LjQgNjcwLjggODA2LjUgNzcwLjcgMzcxIDUyOC4xCjc5OS4y
IDY0Mi4zIDk0MiA3NzAuNyA3OTkuNCA2OTkuNCA3OTkuNCA3NTYuNSA1NzEgNzQyLjMgNzcw
LjcgNzcwLjcgMTA1Ni4yIDc3MC43Cjc3MC43IDYyOC4xIDI4NS41IDUxMy45IDI4NS41IDUx
My45IDI4NS41IDI4NS41IDUxMy45IDU3MSA0NTYuOCA1NzEgNDU3LjIgMzE0IDUxMy45CjU3
MSAyODUuNSAzMTQgNTQyLjQgMjg1LjUgODU2LjUgNTcxIDUxMy45IDU3MSA1NDIuNCA0MDIg
NDA1LjQgMzk5LjcgNTcxIDU0Mi40IDc0Mi4zCjU0Mi40IDU0Mi40IDQ1Ni44IDUxMy45IDEw
MjcuOCA1MTMuOSA1MTMuOSA1MTMuOSAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw
CjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA2NDIuMyA4NTYuNSA3OTkuNCA3
MTMuNiA2ODUuMiA3NzAuNyA3NDIuMyA3OTkuNAo3NDIuMyA3OTkuNCAwIDAgNzQyLjMgNTk5
LjUgNTcxIDU3MSA4NTYuNSA4NTYuNSAyODUuNSAzMTQgNTEzLjkgNTEzLjkgNTEzLjkgNTEz
LjkKNTEzLjkgNzcwLjcgNDU2LjggNTEzLjkgNzQyLjMgNzk5LjQgNTEzLjkgOTI3LjggMTA0
MiA3OTkuNCAyODUuNSA1MTMuOV0KPj4KZW5kb2JqCjU1IDAgb2JqCjw8Ci9FbmNvZGluZyAy
MCAwIFIKL1R5cGUvRm9udAovU3VidHlwZS9UeXBlMQovTmFtZS9GMTMKL0ZvbnREZXNjcmlw
dG9yIDU0IDAgUgovQmFzZUZvbnQvQ1NCUEFCK0NNVFQ5Ci9GaXJzdENoYXIgMzMKL0xhc3RD
aGFyIDE5NgovV2lkdGhzWzUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUy
NSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNQo1MjUgNTI1IDUyNSA1MjUg
NTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUy
NSA1MjUgNTI1IDUyNQo1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUg
NTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNQo1MjUgNTI1IDUy
NSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUg
NTI1IDUyNSA1MjUgNTI1IDUyNQo1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUy
NSA1MjUgNTI1IDUyNSA1MjUgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAKMCAwIDAg
MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUg
NTI1IDUyNSA1MjUgNTI1IDAgMCA1MjUKNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUy
NSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUgNTI1IDUyNSA1MjUK
NTI1IDUyNV0KPj4KZW5kb2JqCjU2IDAgb2JqCjw8Ci9GaWx0ZXJbL0ZsYXRlRGVjb2RlXQov
TGVuZ3RoIDIxNjgKPj4Kc3RyZWFtCnjapVhbk+PEFX7Pr1DNC3IFN1K3rlB52AWGhNraUOBU
qI156JF7bAVZcqmlnZ3a7H/n3CRr7FkIMA+j1tHpPrfvXNpBpKIo2Af0+CZ4ufnsNtZBocos
2NwHaa7KYB0nqkyCzVf/Cbfht6MfVmuT6PC+63Fhwqo7nmxf+679lL/ULX/45vuMF8Oh9vzJ
vTv1zvu6E5aJ3juku3al83BwOyTGofWrnzbfgkJmVigCbSJaozbbN7f/ev3l5h//fP2i379f
vDbth/cf/zrs6et9b6v37z681x/gTySdTTcmUSA4IkkKPwdroZEKKX34u+sdWzAcHJtk+/14
REuKUDzV3fMXZyukHph6tLAF/tWVbcSjY1sNV66pGmf75lGI7Q74wUNqu2KVs6AUjdepVlER
rHWsypi0K9RqrXUahxtUTmc69Cd4FqGrahSqMzML9cxge8f0thuYsqv9ULf7sfYHDAySMMDI
M8zHdmNfOZCW6Di8XRVgc49fYgi4PZ4aB8jQeR6+XD/Uw2Ft136881Vfn0RG7fnA0YMIdLWJ
VJyDo+Mp1oy2Ig1tg94qMvYqPC0/Xrq+7camqZkN/J+F4xH9fYeyQ9cjOsviWf4sZL90zWPb
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
IDAgb2JqCjw8Ci9Qcm9jU2V0Wy9QREYvVGV4dC9JbWFnZUNdCi9Gb250IDU3IDAgUgo+Pgpl
bmRvYmoKNjIgMCBvYmoKPDwKL0VuY29kaW5nIDMwIDAgUgovVHlwZS9Gb250Ci9TdWJ0eXBl
L1R5cGUxCi9OYW1lL0YxNAovRm9udERlc2NyaXB0b3IgNjEgMCBSCi9CYXNlRm9udC9YQlJE
SU8rQ01TWTcKL0ZpcnN0Q2hhciAzMwovTGFzdENoYXIgMTk2Ci9XaWR0aHNbMTEzOC45IDU4
NS4zIDU4NS4zIDExMzguOSAxMTM4LjkgMTEzOC45IDg5Mi45IDExMzguOSAxMTM4LjkgNzA4
LjMgNzA4LjMgMTEzOC45CjExMzguOSAxMTM4LjkgODkyLjkgMzI5LjQgMTEzOC45IDc2OS44
IDc2OS44IDEwMTUuOSAxMDE1LjkgMCAwIDY0Ni44IDY0Ni44IDc2OS44CjU4NS4zIDgzMS40
IDgzMS40IDg5Mi45IDg5Mi45IDcwOC4zIDkxNy42IDc1My40IDYyMC4yIDg4OS41IDYxNi4x
IDgxOC40IDY4OC41IDk3OC42CjY0Ni41IDc4Mi4xIDg3MS43IDc5MS43IDEzNDIuNyA5MzUu
NiA5MDUuOCA4MDkuMiA5MzUuOSA5ODEgNzAyLjIgNjQ3LjggNzE3LjggNzE5LjkKMTEzNS4x
IDgxOC45IDc2NC40IDgyMy4xIDc2OS44IDc2OS44IDc2OS44IDc2OS44IDc2OS44IDcwOC4z
IDcwOC4zIDUyMy44IDUyMy44IDUyMy44CjUyMy44IDU4NS4zIDU4NS4zIDQ2Mi4zIDQ2Mi4z
IDMzOS4zIDU4NS4zIDU4NS4zIDcwOC4zIDU4NS4zIDMzOS4zIDkzOC41IDg1OS4xIDk1NC40
CjQ5My42IDc2OS44IDc2OS44IDg5Mi45IDg5Mi45IDUyMy44IDUyMy44IDUyMy44IDcwOC4z
IDg5Mi45IDg5Mi45IDg5Mi45IDg5Mi45IDAgMAowIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw
IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDg5Mi45IDMzOS4zIDg5Mi45
IDU4NS4zCjg5Mi45IDU4NS4zIDg5Mi45IDg5Mi45IDg5Mi45IDg5Mi45IDAgMCA4OTIuOSA4
OTIuOSA4OTIuOSAxMTM4LjkgNTg1LjMgNTg1LjMgODkyLjkKODkyLjkgODkyLjkgODkyLjkg
ODkyLjkgODkyLjkgODkyLjkgODkyLjkgODkyLjkgODkyLjkgODkyLjkgODkyLjkgMTEzOC45
IDExMzguOSA4OTIuOQo4OTIuOSAxMTM4LjkgODkyLjldCj4+CmVuZG9iago2MyAwIG9iago8
PAovVHlwZS9FbmNvZGluZwovRGlmZmVyZW5jZXNbMC9HYW1tYS9EZWx0YS9UaGV0YS9MYW1i
ZGEvWGkvUGkvU2lnbWEvVXBzaWxvbi9QaGkvUHNpL09tZWdhL2ZmL2ZpL2ZsL2ZmaS9mZmwv
ZG90bGVzc2kvZG90bGVzc2ovZ3JhdmUvYWN1dGUvY2Fyb24vYnJldmUvbWFjcm9uL3Jpbmcv
Y2VkaWxsYS9nZXJtYW5kYmxzL2FlL29lL29zbGFzaC9BRS9PRS9Pc2xhc2gvc3VwcHJlc3Mv
ZXhjbGFtL3F1b3RlZGJscmlnaHQvbnVtYmVyc2lnbi9zdGVybGluZy9wZXJjZW50L2FtcGVy
c2FuZC9xdW90ZXJpZ2h0L3BhcmVubGVmdC9wYXJlbnJpZ2h0L2FzdGVyaXNrL3BsdXMvY29t
bWEvaHlwaGVuL3BlcmlvZC9zbGFzaC96ZXJvL29uZS90d28vdGhyZWUvZm91ci9maXZlL3Np
eC9zZXZlbi9laWdodC9uaW5lL2NvbG9uL3NlbWljb2xvbi9leGNsYW1kb3duL2VxdWFsL3F1
ZXN0aW9uZG93bi9xdWVzdGlvbi9hdC9BL0IvQy9EL0UvRi9HL0gvSS9KL0svTC9NL04vTy9Q
L1EvUi9TL1QvVS9WL1cvWC9ZL1ovYnJhY2tldGxlZnQvcXVvdGVkYmxsZWZ0L2JyYWNrZXRy
aWdodC9jaXJjdW1mbGV4L2RvdGFjY2VudC9xdW90ZWxlZnQvYS9iL2MvZC9lL2YvZy9oL2kv
ai9rL2wvbS9uL28vcC9xL3Ivcy90L3Uvdi93L3gveS96L2VuZGFzaC9lbWRhc2gvaHVuZ2Fy
dW1sYXV0L3RpbGRlL2RpZXJlc2lzL3N1cHByZXNzCjE2MC9zcGFjZS9HYW1tYS9EZWx0YS9U
aGV0YS9MYW1iZGEvWGkvUGkvU2lnbWEvVXBzaWxvbi9QaGkvUHNpIDE3My9PbWVnYS9mZi9m
aS9mbC9mZmkvZmZsL2RvdGxlc3NpL2RvdGxlc3NqL2dyYXZlL2FjdXRlL2Nhcm9uL2JyZXZl
L21hY3Jvbi9yaW5nL2NlZGlsbGEvZ2VybWFuZGJscy9hZS9vZS9vc2xhc2gvQUUvT0UvT3Ns
YXNoL3N1cHByZXNzL2RpZXJlc2lzXQo+PgplbmRvYmoKNjYgMCBvYmoKPDwKL0VuY29kaW5n
IDYzIDAgUgovVHlwZS9Gb250Ci9TdWJ0eXBlL1R5cGUxCi9OYW1lL0YxNQovRm9udERlc2Ny
aXB0b3IgNjUgMCBSCi9CYXNlRm9udC9RV0VGUlIrQ01USTEwCi9GaXJzdENoYXIgMzMKL0xh
c3RDaGFyIDE5NgovV2lkdGhzWzMwNi43IDUxNC40IDgxNy44IDc2OS4xIDgxNy44IDc2Ni43
IDMwNi43IDQwOC45IDQwOC45IDUxMS4xIDc2Ni43IDMwNi43IDM1Ny44CjMwNi43IDUxMS4x
IDUxMS4xIDUxMS4xIDUxMS4xIDUxMS4xIDUxMS4xIDUxMS4xIDUxMS4xIDUxMS4xIDUxMS4x
IDUxMS4xIDMwNi43IDMwNi43CjMwNi43IDc2Ni43IDUxMS4xIDUxMS4xIDc2Ni43IDc0My4z
IDcwMy45IDcxNS42IDc1NSA2NzguMyA2NTIuOCA3NzMuNiA3NDMuMyAzODUuNgo1MjUgNzY4
LjkgNjI3LjIgODk2LjcgNzQzLjMgNzY2LjcgNjc4LjMgNzY2LjcgNzI5LjQgNTYyLjIgNzE1
LjYgNzQzLjMgNzQzLjMgOTk4LjkKNzQzLjMgNzQzLjMgNjEzLjMgMzA2LjcgNTE0LjQgMzA2
LjcgNTExLjEgMzA2LjcgMzA2LjcgNTExLjEgNDYwIDQ2MCA1MTEuMSA0NjAgMzA2LjcKNDYw
IDUxMS4xIDMwNi43IDMwNi43IDQ2MCAyNTUuNiA4MTcuOCA1NjIuMiA1MTEuMSA1MTEuMSA0
NjAgNDIxLjcgNDA4LjkgMzMyLjIgNTM2LjcKNDYwIDY2NC40IDQ2My45IDQ4NS42IDQwOC45
IDUxMS4xIDEwMjIuMiA1MTEuMSA1MTEuMSA1MTEuMSAwIDAgMCAwIDAgMCAwIDAgMCAwIDAK
MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA2MjcuMiA4MTcu
OCA3NjYuNyA2OTIuMiA2NjQuNCA3NDMuMyA3MTUuNgo3NjYuNyA3MTUuNiA3NjYuNyAwIDAg
NzE1LjYgNjEzLjMgNTYyLjIgNTg3LjggODgxLjcgODk0LjQgMzA2LjcgMzMyLjIgNTExLjEg
NTExLjEKNTExLjEgNTExLjEgNTExLjEgODMxLjMgNDYwIDUzNi43IDcxNS42IDcxNS42IDUx
MS4xIDg4Mi44IDk4NSA3NjYuNyAyNTUuNiA1MTEuMV0KPj4KZW5kb2JqCjY5IDAgb2JqCjw8
Ci9FbmNvZGluZyA3IDAgUgovVHlwZS9Gb250Ci9TdWJ0eXBlL1R5cGUxCi9OYW1lL0YxNgov
Rm9udERlc2NyaXB0b3IgNjggMCBSCi9CYXNlRm9udC9RWllXTUQrQ01CWDEwCi9GaXJzdENo
YXIgMzMKL0xhc3RDaGFyIDE5NgovV2lkdGhzWzM1MCA2MDIuOCA5NTguMyA1NzUgOTU4LjMg
ODk0LjQgMzE5LjQgNDQ3LjIgNDQ3LjIgNTc1IDg5NC40IDMxOS40IDM4My4zIDMxOS40CjU3
NSA1NzUgNTc1IDU3NSA1NzUgNTc1IDU3NSA1NzUgNTc1IDU3NSA1NzUgMzE5LjQgMzE5LjQg
MzUwIDg5NC40IDU0My4xIDU0My4xIDg5NC40Cjg2OS40IDgxOC4xIDgzMC42IDg4MS45IDc1
NS42IDcyMy42IDkwNC4yIDkwMCA0MzYuMSA1OTQuNCA5MDEuNCA2OTEuNyAxMDkxLjcgOTAw
Cjg2My45IDc4Ni4xIDg2My45IDg2Mi41IDYzOC45IDgwMCA4ODQuNyA4NjkuNCAxMTg4Ljkg
ODY5LjQgODY5LjQgNzAyLjggMzE5LjQgNjAyLjgKMzE5LjQgNTc1IDMxOS40IDMxOS40IDU1
OSA2MzguOSA1MTEuMSA2MzguOSA1MjcuMSAzNTEuNCA1NzUgNjM4LjkgMzE5LjQgMzUxLjQg
NjA2LjkKMzE5LjQgOTU4LjMgNjM4LjkgNTc1IDYzOC45IDYwNi45IDQ3My42IDQ1My42IDQ0
Ny4yIDYzOC45IDYwNi45IDgzMC42IDYwNi45IDYwNi45CjUxMS4xIDU3NSAxMTUwIDU3NSA1
NzUgNTc1IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw
IDAgMCAwCjAgMCAwIDAgMCAwIDY5MS43IDk1OC4zIDg5NC40IDgwNS42IDc2Ni43IDkwMCA4
MzAuNiA4OTQuNCA4MzAuNiA4OTQuNCAwIDAgODMwLjYgNjcwLjgKNjM4LjkgNjM4LjkgOTU4
LjMgOTU4LjMgMzE5LjQgMzUxLjQgNTc1IDU3NSA1NzUgNTc1IDU3NSA4NjkuNCA1MTEuMSA1
OTcuMiA4MzAuNiA4OTQuNAo1NzUgMTA0MS43IDExNjkuNCA4OTQuNCAzMTkuNCA1NzVdCj4+
CmVuZG9iago3MiAwIG9iago8PAovRW5jb2RpbmcgNyAwIFIKL1R5cGUvRm9udAovU3VidHlw
ZS9UeXBlMQovTmFtZS9GMTcKL0ZvbnREZXNjcmlwdG9yIDcxIDAgUgovQmFzZUZvbnQvTFZa
RklWK0NNU0wxMAovRmlyc3RDaGFyIDMzCi9MYXN0Q2hhciAxOTYKL1dpZHRoc1syNzcuOCA1
MDAgODMzLjMgNTAwIDgzMy4zIDc3Ny44IDI3Ny44IDM4OC45IDM4OC45IDUwMCA3NzcuOCAy
NzcuOCAzMzMuMyAyNzcuOAo1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1
MDAgNTAwIDI3Ny44IDI3Ny44IDI3Ny44IDc3Ny44IDQ3Mi4yIDQ3Mi4yIDc3Ny44Cjc1MCA3
MDguMyA3MjIuMiA3NjMuOSA2ODAuNiA2NTIuOCA3ODQuNyA3NTAgMzYxLjEgNTEzLjkgNzc3
LjggNjI1IDkxNi43IDc1MCA3NzcuOAo2ODAuNiA3NzcuOCA3MzYuMSA1NTUuNiA3MjIuMiA3
NTAgNzUwIDEwMjcuOCA3NTAgNzUwIDYxMS4xIDI3Ny44IDUwMCAyNzcuOCA1MDAgMjc3LjgK
Mjc3LjggNTAwIDU1NS42IDQ0NC40IDU1NS42IDQ0NC40IDMwNS42IDUwMCA1NTUuNiAyNzcu
OCAzMDUuNiA1MjcuOCAyNzcuOCA4MzMuMyA1NTUuNgo1MDAgNTU1LjYgNTI3LjggMzkxLjcg
Mzk0LjQgMzg4LjkgNTU1LjYgNTI3LjggNzIyLjIgNTI3LjggNTI3LjggNDQ0LjQgNTAwIDEw
MDAgNTAwCjUwMCA1MDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw
IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNjI1IDgzMy4zCjc3Ny44IDY5NC40IDY2Ni43
IDc1MCA3MjIuMiA3NzcuOCA3MjIuMiA3NzcuOCAwIDAgNzIyLjIgNTgzLjMgNTU1LjYgNTU1
LjYgODMzLjMgODMzLjMKMjc3LjggMzA1LjYgNTAwIDUwMCA1MDAgNTAwIDUwMCA4MDguNiA0
NDQuNCA1MDAgNzIyLjIgNzc3LjggNTAwIDkwMi44IDEwMTMuOSA3NzcuOAoyNzcuOCA1MDBd
Cj4+CmVuZG9iago3NSAwIG9iago8PAovRW5jb2RpbmcgMzcgMCBSCi9UeXBlL0ZvbnQKL1N1
YnR5cGUvVHlwZTEKL05hbWUvRjE4Ci9Gb250RGVzY3JpcHRvciA3NCAwIFIKL0Jhc2VGb250
L1hLUFlCUytDTU1JNwovRmlyc3RDaGFyIDMzCi9MYXN0Q2hhciAxOTYKL1dpZHRoc1s3MTku
NyA1MzkuNyA2ODkuOSA5NTAgNTkyLjcgNDM5LjIgNzUxLjQgMTEzOC45IDExMzguOSAxMTM4
LjkgMTEzOC45IDMzOS4zCjMzOS4zIDU4NS4zIDU4NS4zIDU4NS4zIDU4NS4zIDU4NS4zIDU4
NS4zIDU4NS4zIDU4NS4zIDU4NS4zIDU4NS4zIDU4NS4zIDU4NS4zIDMzOS4zCjMzOS4zIDg5
Mi45IDU4NS4zIDg5Mi45IDU4NS4zIDYxMC4xIDg1OS4xIDg2My4yIDgxOS40IDkzNC4xIDgz
OC43IDcyNC41IDg4OS40IDkzNS42CjUwNi4zIDYzMiA5NTkuOSA3ODMuNyAxMDg5LjQgOTA0
LjkgODY4LjkgNzI3LjMgODk5LjcgODYwLjYgNzAxLjUgNjc0LjggNzc4LjIgNjc0LjYKMTA3
NC40IDkzNi45IDY3MS41IDc3OC40IDQ2Mi4zIDQ2Mi4zIDQ2Mi4zIDExMzguOSAxMTM4Ljkg
NDc4LjIgNjE5LjcgNTAyLjQgNTEwLjUKNTk0LjcgNTQyIDU1Ny4xIDU1Ny4zIDY2OC44IDQw
NC4yIDQ3Mi43IDYwNy4zIDM2MS4zIDEwMTMuNyA3MDYuMiA1NjMuOSA1ODguOSA1MjMuNgo1
MzAuNCA1MzkuMiA0MzEuNiA2NzUuNCA1NzEuNCA4MjYuNCA2NDcuOCA1NzkuNCA1NDUuOCAz
OTguNiA0NDIgNzMwLjEgNTg1LjMgMzM5LjMKMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw
IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNjkzLjggOTU0LjQgODY4
LjkKNzk3LjYgODQ0LjUgOTM1LjYgODg2LjMgNjc3LjYgNzY5LjggNzE2LjkgMCAwIDg4MCA3
NDIuNyA2NDcuOCA2MDAuMSA1MTkuMiA0NzYuMSA1MTkuOAo1ODguNiA1NDQuMSA0MjIuOCA2
NjguOCA2NzcuNiA2OTQuNiA1NzIuOCA1MTkuOCA2NjggNTkyLjcgNjYyIDUyNi44IDYzMi45
IDY4Ni45IDcxMy44Cjc1NiAzMzkuM10KPj4KZW5kb2JqCjc4IDAgb2JqCjw8Ci9FbmNvZGlu
ZyAzMCAwIFIKL1R5cGUvRm9udAovU3VidHlwZS9UeXBlMQovTmFtZS9GMTkKL0ZvbnREZXNj
cmlwdG9yIDc3IDAgUgovQmFzZUZvbnQvQVlWVERGK0NNU1k2Ci9GaXJzdENoYXIgMzMKL0xh
c3RDaGFyIDE5NgovV2lkdGhzWzEyMjIuMiA2MzguOSA2MzguOSAxMjIyLjIgMTIyMi4yIDEy
MjIuMiA5NjMgMTIyMi4yIDEyMjIuMiA3NjguNSA3NjguNSAxMjIyLjIKMTIyMi4yIDEyMjIu
MiA5NjMgMzY1LjcgMTIyMi4yIDgzMy4zIDgzMy4zIDEwOTIuNiAxMDkyLjYgMCAwIDcwMy43
IDcwMy43IDgzMy4zIDYzOC45Cjg5OC4xIDg5OC4xIDk2MyA5NjMgNzY4LjUgOTg5LjkgODEz
LjMgNjc4LjQgOTYxLjIgNjcxLjMgODc5LjkgNzQ2LjcgMTA1OS4zIDcwOS4zCjg0Ni4zIDkz
OC44IDg1NC41IDE0MjcuMiAxMDA1LjcgOTczIDg3OC40IDEwMDguMyAxMDYxLjQgNzYyIDcx
MS4zIDc3NC40IDc4NS4yIDEyMjIuNwo4ODMuNyA4MjMuOSA4ODQgODMzLjMgODMzLjMgODMz
LjMgODMzLjMgODMzLjMgNzY4LjUgNzY4LjUgNTc0LjEgNTc0LjEgNTc0LjEgNTc0LjEKNjM4
LjkgNjM4LjkgNTA5LjMgNTA5LjMgMzc5LjYgNjM4LjkgNjM4LjkgNzY4LjUgNjM4LjkgMzc5
LjYgMTAwMCA5MjQuMSAxMDI3LjggNTQxLjcKODMzLjMgODMzLjMgOTYzIDk2MyA1NzQuMSA1
NzQuMSA1NzQuMSA3NjguNSA5NjMgOTYzIDk2MyA5NjMgMCAwIDAgMCAwIDAgMCAwIDAgMCAw
CjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgOTYzIDM3OS42
IDk2MyA2MzguOSA5NjMgNjM4LjkgOTYzIDk2Mwo5NjMgOTYzIDAgMCA5NjMgOTYzIDk2MyAx
MjIyLjIgNjM4LjkgNjM4LjkgOTYzIDk2MyA5NjMgOTYzIDk2MyA5NjMgOTYzIDk2MyA5NjMg
OTYzCjk2MyA5NjMgMTIyMi4yIDEyMjIuMiA5NjMgOTYzIDEyMjIuMiA5NjNdCj4+CmVuZG9i
ago3OSAwIG9iago8PAovRmlsdGVyWy9GbGF0ZURlY29kZV0KL0xlbmd0aCAyMjE4Cj4+CnN0
cmVhbQp42u1ayXLjRhK9z1fgCEY0y6gVQN8ktWVPh6enY1qOcPRoDhAJUYgGlwEIqx0a/ftk
VgJgEQsFWfJy8IUECrXk8vJlJkgvYEHgrTz79Z13fvXNpfA4Z7H2rm69wJtzxWLlXb37ty8Z
n805F9r/R7IotrO5DLW/SdbZZkXXi+1mJrn/M36k9nKfwRA8U/7ttqBJt9Vm0Qxrv0h3RVri
5MDfJ3b8P1fvv7k0Xsxi04gQMRlZET5U67TYVuVsLnQI563XyWZZ393PhPHTIsU74y/Taxjc
pEu8jfxsQ5N+oO1Dz7A4xO25UUyFnmABKXnWPV8xGXvz9vkVPvc00xIHubaD3x4G27Gf6MD9
lgRoFRUwRiKmX3GoBJ1LNpsrEfhXdzCF1jkPaYN7XNmqV6agud0rWyR5/osVYM5DkFrAN7fC
gxRgol2e7mGVlNIHY9HFIkH7S+XfwHawLd2kSZnBVnbGvkg2ZZ7s03oFGBDMi9pIKfzylzUe
Tqu3ebagSSBTtqvypPYvbJknm1WVrFLQECUkMM1rfKE57+BsZTQsBUiVeG0QU2lJw0mR0th6
W+5RNhxcFCkJhg9ui+2arhJ6WqZ7ut/e0sAXa7l6rTXjtljW+5f7okL44vV+u0r3d2kBzoiU
aJzh7HBYS9buKpNtFnm1TN8ShKIWQsKwAODCrXNw4rUwgibF7ST7PQ+Ypr3OipsfQJEOGEPN
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
IFIKL0YxOSA3OCAwIFIKL0YzIDE2IDAgUgovRjExIDQzIDAgUgo+PgplbmRvYmoKNTkgMCBv
YmoKPDwKL1Byb2NTZXRbL1BERi9UZXh0L0ltYWdlQ10KL0ZvbnQgODAgMCBSCj4+CmVuZG9i
ago4NSAwIG9iago8PAovVHlwZS9Gb250Ci9TdWJ0eXBlL1R5cGUxCi9OYW1lL0YyMAovRm9u
dERlc2NyaXB0b3IgODQgMCBSCi9CYXNlRm9udC9KVUJPQlMrQ01FWDEwCi9GaXJzdENoYXIg
MzMKL0xhc3RDaGFyIDE5NgovV2lkdGhzWzc5MS43IDU4My4zIDU4My4zIDYzOC45IDYzOC45
IDYzOC45IDYzOC45IDgwNS42IDgwNS42IDgwNS42IDgwNS42IDEyNzcuOAoxMjc3LjggODEx
LjEgODExLjEgODc1IDg3NSA2NjYuNyA2NjYuNyA2NjYuNyA2NjYuNyA2NjYuNyA2NjYuNyA4
ODguOSA4ODguOSA4ODguOQo4ODguOSA4ODguOSA4ODguOSA4ODguOSA2NjYuNyA4NzUgODc1
IDg3NSA4NzUgNjExLjEgNjExLjEgODMzLjMgMTExMS4xIDQ3Mi4yIDU1NS42CjExMTEuMSAx
NTExLjEgMTExMS4xIDE1MTEuMSAxMTExLjEgMTUxMS4xIDEwNTUuNiA5NDQuNCA0NzIuMiA4
MzMuMyA4MzMuMyA4MzMuMyA4MzMuMwo4MzMuMyAxNDQ0LjQgMTI3Ny44IDU1NS42IDExMTEu
MSAxMTExLjEgMTExMS4xIDExMTEuMSAxMTExLjEgOTQ0LjQgMTI3Ny44IDU1NS42IDEwMDAK
MTQ0NC40IDU1NS42IDEwMDAgMTQ0NC40IDQ3Mi4yIDQ3Mi4yIDUyNy44IDUyNy44IDUyNy44
IDUyNy44IDY2Ni43IDY2Ni43IDEwMDAgMTAwMAoxMDAwIDEwMDAgMTA1NS42IDEwNTUuNiAx
MDU1LjYgNzc3LjggNjY2LjcgNjY2LjcgNDUwIDQ1MCA0NTAgNDUwIDc3Ny44IDc3Ny44IDAg
MAowIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAg
MCAwIDAgMCAwIDQ1OC4zIDQ1OC4zIDQxNi43IDQxNi43CjQ3Mi4yIDQ3Mi4yIDQ3Mi4yIDQ3
Mi4yIDU4My4zIDU4My4zIDAgMCA0NzIuMiA0NzIuMiAzMzMuMyA1NTUuNiA1NzcuOCA1Nzcu
OCA1OTcuMgo1OTcuMiA3MzYuMSA3MzYuMSA1MjcuOCA1MjcuOCA1ODMuMyA1ODMuMyA1ODMu
MyA1ODMuMyA3NTAgNzUwIDc1MCA3NTAgMTA0NC40IDEwNDQuNAo3OTEuNyA3NzcuOF0KPj4K
ZW5kb2JqCjg4IDAgb2JqCjw8Ci9FbmNvZGluZyAzNyAwIFIKL1R5cGUvRm9udAovU3VidHlw
ZS9UeXBlMQovTmFtZS9GMjEKL0ZvbnREZXNjcmlwdG9yIDg3IDAgUgovQmFzZUZvbnQvSFNU
R09GK0NNTUk1Ci9GaXJzdENoYXIgMzMKL0xhc3RDaGFyIDE5NgovV2lkdGhzWzg4Ni40IDY3
NC43IDg1NS4zIDExNDQuOCA3MjYgNTc4LjEgOTE4LjEgMTM2MS4xIDEzNjEuMSAxMzYxLjEg
MTM2MS4xIDQ1OC4zCjQ1OC4zIDczNi4xIDczNi4xIDczNi4xIDczNi4xIDczNi4xIDczNi4x
IDczNi4xIDczNi4xIDczNi4xIDczNi4xIDczNi4xIDczNi4xIDQ1OC4zCjQ1OC4zIDEwODMu
MyA3MzYuMSAxMDgzLjMgNzM2LjEgNzQ5IDEwMzYuMSAxMDM3IDk5NiAxMTA5LjkgMTAwNyA4
NjcuNCAxMDY0IDExMTAuNAo2MjYuNyA3NzIuOSAxMTM4LjkgOTU1LjYgMTI4NCAxMDc1Ljcg
MTA0Ny41IDg3NS40IDEwODIuMiAxMDMwIDg1Ni4zIDgzMi4zIDk0My45IDgyNy44CjEyNzku
MiAxMTEyLjkgODI0LjMgOTQzLjEgNTk3LjIgNTk3LjIgNTk3LjIgMTM2MS4xIDEzNjEuMSA1
OTcuMiA3NzQuNCA2MzMuMyA2NDkuNAo3MzkuNyA2NzcgNjg0IDcwMC42IDgyNy42IDUzMy42
IDU4OC4yIDc1OC4xIDQ4MC4zIDEyMjggODgwLjggNzAyLjggNzM5LjcgNjU4LjkgNjcxLjMK
NjcwLjEgNTYzLjcgODQ2LjEgNzIyLjIgMTAwOSA3OTEuNyA3MzAuNiA2ODguNyA1MzMuNiA1
NTMuNSA4ODkuMiA3MzYuMSA0NTguMyAwIDAKMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw
IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA4MzIuNiAxMTUyLjggMTA0Ny41
Cjk2Ni43IDEwMTcuNyAxMTEwLjQgMTA2NS4zIDg0MC4zIDk0NC41IDg5My41IDAgMCAxMDYw
LjYgOTEzLjMgNzkwLjYgNzQ2LjkgNjU0LjIgNjEzLjUKNjY2LjcgNzQzLjggNjc3LjEgNTQ5
LjggODI3LjYgODQwLjMgODQ5LjggNzEyIDY2Ni43IDgzMS4xIDcyNiA4MTUuMiA2ODEuNiA3
OTEuNyA4NDEuNwo4NjQuNiA5MzAuNiA0NTguM10KPj4KZW5kb2JqCjg5IDAgb2JqCjw8Ci9G
aWx0ZXJbL0ZsYXRlRGVjb2RlXQovTGVuZ3RoIDE3NDEKPj4Kc3RyZWFtCnja7Zlbc+M0FIDf
+RV+dGaI1rpLywtNbywDS9lmB1jKQ2jcbpg0yTgJpVP2v3OOJTtO5LhONh06DC9NKkuyzqdz
T5SQJIluo/zjPOr1X52ZyBKrov5NxBRJeNSlglgR9U9+ja+YYp3f+t++OrPlpPwzcY+vPpy9
f3vcf/PD24tsdJfmf46y28ejT4+9T26hKhdSZQgTful9h5l4uhwPO13OeTyYzTpdGEkHmR+Y
u+U0KdcbQaj1y4/8UxEpYjU+1UToiBNF8+dJEiyXJLFRt5zRcxNWwneZBrkliE/xY1/xn2Bg
BeFmxUCXDNgzMAghaMKbIfCE51MOAOFy+XvJ4fEqPr7qBDgYV4TRVjjE4XCYckYSdRXhqspC
rbNiRHsMcfB2Toz2Lz8OFxteEOqElCWcgDnKam/KbQBTMHT93PrG1m2uJV9FjES+ooGv2ZMv
Twj7HFNugZYajndYg7ZwZ/oAuuvR7kxWPUV2X81N4Nj7gW3DVGqiD+wezTrTLiXCNihk+fig
Csm0xq/7cruY3qfZCt4x8jup42cturvn5Ff605yA10P5+Xp4srnYEMka9JAlRJj/LNAnDFu+
OKCXy1kbnMYSKg8b718oTgy8e0b4F4aT7YpTPC/O3bVzthZ6XgTOXoDz+H+c+xt7LwhGz46T
qmq+CZUz5JtMEuOyB04o4R0ALGx8CbKCzOn1aDCGb0bEN8vJ9WI0ncw33wMSUIMVIu7R/5i6
wPIR4T34lDK7Tad36SIbXbuHxV6e48SnoIti8ffp6I/UUz4Pl3B3NWlWvAt2GKd+k3k6G2SD
RTp+eL2pQ75XwEQBfKVBqk6DzjqGx1M4B5NJnP41uJuN09ebGidthfNK5ZwI5z+NFh9B7+Yr
xTv59Hga1jxwJloTs/HFa3rHJK3VO0o0SJYQ63TrPNA9izmiwKPW657XVpZU9YdGFDSsQMVr
+hO++ZCs+YPKJvlrYYIogEtdvFrmJwsHzdrgmhD5+QWWMKXG4yKNSTCOnNa8n7KIijJBZkoE
nkUwRkRuCGI3tZCJ3aoWKte1QC2+eZhVrOHMK3VLLeEJlBo1WoLnGMy6OY4u1xwdRsVPbqvr
Kly1u8gC01Fw0woTrYRI4wmErk1b1D8/oVfrjJ6oU9qUd1/VtIe0bOECGxeehm+0Tb6TyoRw
vek7hfedJ2k2+rOjIGIs4BO9KHpQ5v0c6M5o0uE0XqS3mXOufNO5hu3N0sE+HfTeTNzObybD
9GY0GS3SIMoxSqjZsavJNqOcwXCMO7wLS0cqCUdPy7Aftduxv8My5/0MzGRLO1IyIuWO5U3d
4Xn18BVVVkShNyCikjKibVgYteilKxZSlVlSks/QLXPn4ejmpl5ELdBr7dh0XglgJJGYZ1gn
4TA/a3TaB/sV0T3UhxLtME+oDIvuIgbeu/hvHF1GvX5ljiqyj2HYeKXKIiV0NZy3E/puJTW4
ucDJypXTbF251gju9HLo755iyDAufkByx0lCq36msoHMvVg5YQMcAxiCYtkp0c8BOM7QHxcD
nl05jVM8TpVd5SiAGxs31laPUlWnJMHOTRcCMGct2c4a4VLYkakD0HVX/XUNXWUivhUtCMNr
sYI3QovjIkFuiNXkXS8/UGAtpwFef4KuSuIatJCPiGa2YOMucdEtS4lZg7VazKEarLU59iJW
tVJaFIoFiODqNMMePFQPGhHh0VU5UCAqp0FOasvtaMGoGsKKuax0dBjCZJH+L+9c1l/GrFk2
zSuC4fJ60S5mMU5kS6/w4SKbDosmNhRrWzw/z+uh3YqzqueXmCfaQt5fggY2ZXkWTVH76lvY
DB0EPN/IojHc2W1xQRgMOF0weK13wNFIguaX95kxUBdy/lhXLdAgBuaZtt0qJ2TZDGzcrNL6
lmKCjIewqR3ly2/EyxdKQw0j/tLUTtLMnED/6qXpiputXlpv66WBAtO2twa+oYWp5s56/wsE
UxUrU/05NFXhfvItZtSZqkFLpaGlmq2WChGM72apAKORQ5LnUYe684tASkwjai11q5CwApIg
NFO1k4x1VrpHnrqHcE12igqs8RcyhvVja3lmqMBBt81gNbf/XRXhRTforAnDC4t8qe4zaooR
XBeFBicMYzKT8TGE2sXAlY4tm3A30/F4ipLcjya3TpJrvwtTuEs+tN5MG6bYepmkw9frOQg2
Z2yeIN9FQoq8/vUDLv0AWSkWzuVvvZBluTj54X40HsMJ0uzvsw6zcfp7hydxthzgP9lDB9OY
mOov8YuIITNRKLKhLD5/p9zgcDS/Xs7neQMQipNEg7rAfQxuU7dauGnTG/dJhT/8F/8AadXZ
ZAplbmRzdHJlYW0KZW5kb2JqCjkwIDAgb2JqCjw8Ci9GOCAzMyAwIFIKL0Y5IDM2IDAgUgov
RjYgMjYgMCBSCi9GMTAgNDAgMCBSCi9GMTQgNjIgMCBSCi9GMTggNzUgMCBSCi9GMTYgNjkg
MCBSCi9GMjAgODUgMCBSCi9GMjEgODggMCBSCi9GMiAxMyAwIFIKL0YxMSA0MyAwIFIKPj4K
ZW5kb2JqCjgyIDAgb2JqCjw8Ci9Qcm9jU2V0Wy9QREYvVGV4dC9JbWFnZUNdCi9Gb250IDkw
IDAgUgo+PgplbmRvYmoKOTUgMCBvYmoKPDwKL0VuY29kaW5nIDYzIDAgUgovVHlwZS9Gb250
Ci9TdWJ0eXBlL1R5cGUxCi9OYW1lL0YyMgovRm9udERlc2NyaXB0b3IgOTQgMCBSCi9CYXNl
Rm9udC9KWkNLR00rQ01CWFRJMTAKL0ZpcnN0Q2hhciAzMwovTGFzdENoYXIgMTk2Ci9XaWR0
aHNbMzg2LjEgNjIwLjYgOTQ0LjQgODY4LjUgOTQ0LjQgODg1LjUgMzU1LjYgNDczLjMgNDcz
LjMgNTkxLjEgODg1LjUgMzU1LjYgNDE0LjQKMzU1LjYgNTkxLjEgNTkxLjEgNTkxLjEgNTkx
LjEgNTkxLjEgNTkxLjEgNTkxLjEgNTkxLjEgNTkxLjEgNTkxLjEgNTkxLjEgMzU1LjYgMzU1
LjYKMzg2LjEgODg1LjUgNTkxLjEgNTkxLjEgODg1LjUgODY1LjUgODE2LjcgODI2LjcgODc1
LjUgNzU2LjcgNzI3LjIgODk1LjMgODk2LjEgNDcxLjcKNjEwLjUgODk1IDY5Ny44IDEwNzIu
OCA4OTYuMSA4NTUgNzg3LjIgODU1IDg1OS40IDY1MCA3OTYuMSA4ODAuOCA4NjUuNSAxMTYw
IDg2NS41Cjg2NS41IDcwOC45IDM1Ni4xIDYyMC42IDM1Ni4xIDU5MS4xIDM1NS42IDM1NS42
IDU5MS4xIDUzMi4yIDUzMi4yIDU5MS4xIDUzMi4yIDQwMAo1MzIuMiA1OTEuMSAzNTUuNiAz
NTUuNiA1MzIuMiAyOTYuNyA5NDQuNCA2NTAgNTkxLjEgNTkxLjEgNTMyLjIgNTAxLjcgNDg2
LjkgMzg1IDYyMC42CjUzMi4yIDc2Ny44IDU2MC42IDU2MS43IDQ5MC42IDU5MS4xIDExODIu
MiA1OTEuMSA1OTEuMSA1OTEuMSAwIDAgMCAwIDAgMCAwIDAgMCAwCjAgMCAwIDAgMCAwIDAg
MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA2OTcuOCA5NDQuNCA4ODUuNSA4MDYu
NyA3NjcuOCA4OTYuMQo4MjYuNyA4ODUuNSA4MjYuNyA4ODUuNSAwIDAgODI2LjcgNzU1LjYg
Njc0LjQgNzAzLjkgMTA0NC43IDEwNTkuNCAzNTUuNiAzODUgNTkxLjEKNTkxLjEgNTkxLjEg
NTkxLjEgNTkxLjEgOTQ4LjkgNTMyLjIgNjY1IDgyNi43IDgyNi43IDU5MS4xIDEwMjIuOCAx
MTQwLjUgODg1LjUgMjk2LjcKNTkxLjFdCj4+CmVuZG9iago5OCAwIG9iago8PAovRW5jb2Rp
bmcgMzAgMCBSCi9UeXBlL0ZvbnQKL1N1YnR5cGUvVHlwZTEKL05hbWUvRjIzCi9Gb250RGVz
Y3JpcHRvciA5NyAwIFIKL0Jhc2VGb250L0hGV1hEWitDTVNZOQovRmlyc3RDaGFyIDMzCi9M
YXN0Q2hhciAxOTYKL1dpZHRoc1sxMDI3LjggNTEzLjkgNTEzLjkgMTAyNy44IDEwMjcuOCAx
MDI3LjggNzk5LjQgMTAyNy44IDEwMjcuOCA2MjguMSA2MjguMSAxMDI3LjgKMTAyNy44IDEw
MjcuOCA3OTkuNCAyNzkuMyAxMDI3LjggNjg1LjIgNjg1LjIgOTEzLjYgOTEzLjYgMCAwIDU3
MSA1NzEgNjg1LjIgNTEzLjkKNzQyLjMgNzQyLjMgNzk5LjQgNzk5LjQgNjI4LjEgODIxLjEg
NjczLjYgNTQyLjYgNzkzLjggNTQyLjQgNzM2LjMgNjEwLjkgODcxIDU2Mi43CjY5Ni42IDc4
Mi4yIDcwNy45IDEyMjkuMiA4NDIuMSA4MTYuMyA3MTYuOCA4MzkuMyA4NzMuOSA2MjIuNCA1
NjMuMiA2NDIuMyA2MzIuMSAxMDE3LjUKNzMyLjQgNjg1IDc0MiA2ODUuMiA2ODUuMiA2ODUu
MiA2ODUuMiA2ODUuMiA2MjguMSA2MjguMSA0NTYuOCA0NTYuOCA0NTYuOCA0NTYuOCA1MTMu
OQo1MTMuOSAzOTkuNyAzOTkuNyAyODUuNSA1MTMuOSA1MTMuOSA2MjguMSA1MTMuOSAyODUu
NSA4NTYuNSA3NzAuNyA4NTYuNSA0MjguMiA2ODUuMgo2ODUuMiA3OTkuNCA3OTkuNCA0NTYu
OCA0NTYuOCA0NTYuOCA2MjguMSA3OTkuNCA3OTkuNCA3OTkuNCA3OTkuNCAwIDAgMCAwIDAg
MCAwIDAKMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAg
MCA3OTkuNCAyODUuNSA3OTkuNCA1MTMuOSA3OTkuNCA1MTMuOQo3OTkuNCA3OTkuNCA3OTku
NCA3OTkuNCAwIDAgNzk5LjQgNzk5LjQgNzk5LjQgMTAyNy44IDUxMy45IDUxMy45IDc5OS40
IDc5OS40IDc5OS40Cjc5OS40IDc5OS40IDc5OS40IDc5OS40IDc5OS40IDc5OS40IDc5OS40
IDc5OS40IDc5OS40IDEwMjcuOCAxMDI3LjggNzk5LjQgNzk5LjQgMTAyNy44Cjc5OS40XQo+
PgplbmRvYmoKMTAxIDAgb2JqCjw8Ci9FbmNvZGluZyAzNyAwIFIKL1R5cGUvRm9udAovU3Vi
dHlwZS9UeXBlMQovTmFtZS9GMjQKL0ZvbnREZXNjcmlwdG9yIDEwMCAwIFIKL0Jhc2VGb250
L1JGWk1BRCtDTU1JOQovRmlyc3RDaGFyIDMzCi9MYXN0Q2hhciAxOTYKL1dpZHRoc1s2Mzku
NCA0NzcuMSA2MDkuNSA4NTIuNSA1MjkuNCAzNzQuNCA2NzEuMSAxMDI3LjggMTAyNy44IDEw
MjcuOCAxMDI3LjggMjg1LjUKMjg1LjUgNTEzLjkgNTEzLjkgNTEzLjkgNTEzLjkgNTEzLjkg
NTEzLjkgNTEzLjkgNTEzLjkgNTEzLjkgNTEzLjkgNTEzLjkgNTEzLjkgMjg1LjUKMjg1LjUg
Nzk5LjQgNTEzLjkgNzk5LjQgNTEzLjkgNTQzLjcgNzcwLjcgNzc3LjcgNzMzLjYgODQ3LjUg
NzU2LjMgNjU2LjIgODA0LjggODUwLjIKNDQ5LjMgNTY2LjMgODcwLjQgNjk5LjQgOTkyLjkg
ODIxLjYgNzgyLjEgNjU2LjIgODEwLjYgNzc3LjYgNjI3LjkgNTk5LjYgNjk5LjEgNTk5LjQK
OTcwLjUgODQ5IDU5Ni41IDY5OS4yIDM5OS43IDM5OS43IDM5OS43IDEwMjcuOCAxMDI3Ljgg
NDI0LjQgNTQ0LjUgNDQwLjQgNDQ0LjkgNTMyLjUKNDc3LjggNDk4LjggNDkwLjEgNTkyLjIg
MzUxLjcgNDIwLjEgNTM1LjEgMzA2LjcgOTA1LjUgNjIwIDQ5Ny41IDUxNS45IDQ1OS4yIDQ2
My43CjQ3OC44IDM3MS4xIDU5MS40IDQ5OS4yIDczNi42IDU4Mi42IDUwNi4yIDQ3OCAzMzQu
NSAzOTEuNiA2NTMuMyA1MTMuOSAyODUuNSAwIDAgMAowIDAgMCAwIDAgMCAwIDAgMCAwIDAg
MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA2MjcuNyA4NTYuNSA3ODIu
MSA3MTMuNgo3NjAuNiA4NTAuMiA3OTkuMiA1OTkuNSA2ODUuMiA2MzEuMSAwIDAgNzkyLjEg
NjU4LjcgNTc5LjIgNTMwLjggNDU1LjkgNDE2LjQgNDUwLjYKNTEzLjIgNDgxLjEgMzYzLjgg
NTkyLjIgNTk5LjUgNjE5LjIgNTA2LjkgNDUwLjYgNTg4LjIgNTI5LjQgNTg3LjcgNDUyLjQg
NTU2LjMgNjExLjcKNjQwLjggNjcwLjUgMjg1LjVdCj4+CmVuZG9iagoxMDQgMCBvYmoKPDwK
L0VuY29kaW5nIDM3IDAgUgovVHlwZS9Gb250Ci9TdWJ0eXBlL1R5cGUxCi9OYW1lL0YyNQov
Rm9udERlc2NyaXB0b3IgMTAzIDAgUgovQmFzZUZvbnQvUktaU1lBK0NNTUk2Ci9GaXJzdENo
YXIgMzMKL0xhc3RDaGFyIDE5NgovV2lkdGhzWzc3OS45IDU4Ni43IDc1MC43IDEwMjEuOSA2
MzkgNDg3LjggODExLjYgMTIyMi4yIDEyMjIuMiAxMjIyLjIgMTIyMi4yIDM3OS42CjM3OS42
IDYzOC45IDYzOC45IDYzOC45IDYzOC45IDYzOC45IDYzOC45IDYzOC45IDYzOC45IDYzOC45
IDYzOC45IDYzOC45IDYzOC45IDM3OS42CjM3OS42IDk2MyA2MzguOSA5NjMgNjM4LjkgNjU4
LjcgOTI0LjEgOTI2LjYgODgzLjcgOTk4LjMgODk5LjggNzc1IDk1Mi45IDk5OS41IDU0Ny43
CjY4MS42IDEwMjUuNyA4NDYuMyAxMTYxLjYgOTY3LjEgOTM0LjEgNzgwIDk2Ni41IDkyMi4x
IDc1Ni43IDczMS4xIDgzOC4xIDcyOS42IDExNTAuOQoxMDAxLjQgNzI2LjQgODM3LjcgNTA5
LjMgNTA5LjMgNTA5LjMgMTIyMi4yIDEyMjIuMiA1MTguNSA2NzQuOSA1NDcuNyA1NTkuMSA2
NDIuNQo1ODkgNjAwLjcgNjA3LjcgNzI1LjcgNDQ1LjYgNTExLjYgNjYwLjkgNDAxLjYgMTA5
My43IDc2OS43IDYxMi41IDY0Mi41IDU3MC43IDU3OS45CjU4NC41IDQ3Ni44IDczNy4zIDYy
NSA4OTMuMiA2OTcuOSA2MzMuMSA1OTYuMSA0NDUuNiA0NzkuMiA3ODcuMiA2MzguOSAzNzku
NiAwIDAgMAowIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAg
MCAwIDAgMCAwIDAgMCA3NDIuNiAxMDI3LjggOTM0LjEgODU5LjMKOTA3LjQgOTk5LjUgOTUx
LjYgNzM2LjEgODMzLjMgNzgxLjIgMCAwIDk0NiA4MDQuNSA2OTggNjUyIDU2Ni4yIDUyMy4z
IDU3MS44IDY0NCA1OTAuMwo0NjYuNCA3MjUuNyA3MzYuMSA3NTAgNjIxLjUgNTcxLjggNzI2
LjcgNjM5IDcxNi41IDU4Mi4xIDY4OS44IDc0Mi4xIDc2Ny40IDgxOS40IDM3OS42XQo+Pgpl
bmRvYmoKMTA3IDAgb2JqCjw8Ci9FbmNvZGluZyA3IDAgUgovVHlwZS9Gb250Ci9TdWJ0eXBl
L1R5cGUxCi9OYW1lL0YyNgovRm9udERlc2NyaXB0b3IgMTA2IDAgUgovQmFzZUZvbnQvTUZV
Rk5LK0NNQlg5Ci9GaXJzdENoYXIgMzMKL0xhc3RDaGFyIDE5NgovV2lkdGhzWzM2MC4yIDYx
Ny42IDk4Ni4xIDU5MS43IDk4Ni4xIDkyMC40IDMyOC43IDQ2MC4yIDQ2MC4yIDU5MS43IDky
MC40IDMyOC43IDM5NC40CjMyOC43IDU5MS43IDU5MS43IDU5MS43IDU5MS43IDU5MS43IDU5
MS43IDU5MS43IDU5MS43IDU5MS43IDU5MS43IDU5MS43IDMyOC43IDMyOC43CjM2MC4yIDky
MC40IDU1OC44IDU1OC44IDkyMC40IDg5Mi45IDg0MC45IDg1NC42IDkwNi42IDc3Ni41IDc0
My43IDkyOS45IDkyNC40IDQ0Ni4zCjYxMC44IDkyNS44IDcxMC44IDExMjEuNiA5MjQuNCA4
ODguOSA4MDggODg4LjkgODg2LjcgNjU3LjQgODIzLjEgOTA4LjYgODkyLjkgMTIyMS42Cjg5
Mi45IDg5Mi45IDcyMy4xIDMyOC43IDYxNy42IDMyOC43IDU5MS43IDMyOC43IDMyOC43IDU3
NS4yIDY1Ny40IDUyNS45IDY1Ny40IDU0MwozNjEuNiA1OTEuNyA2NTcuNCAzMjguNyAzNjEu
NiA2MjQuNSAzMjguNyA5ODYuMSA2NTcuNCA1OTEuNyA2NTcuNCA2MjQuNSA0ODguMSA0NjYu
OAo0NjAuMiA2NTcuNCA2MjQuNSA4NTQuNiA2MjQuNSA2MjQuNSA1MjUuOSA1OTEuNyAxMTgz
LjMgNTkxLjcgNTkxLjcgNTkxLjcgMCAwIDAgMAowIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw
IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNzEwLjggOTg2LjEgOTIwLjQgODI3
LjIKNzg4LjkgOTI0LjQgODU0LjYgOTIwLjQgODU0LjYgOTIwLjQgMCAwIDg1NC42IDY5MC4z
IDY1Ny40IDY1Ny40IDk4Ni4xIDk4Ni4xIDMyOC43CjM2MS42IDU5MS43IDU5MS43IDU5MS43
IDU5MS43IDU5MS43IDg5Mi45IDUyNS45IDYxNi44IDg1NC42IDkyMC40IDU5MS43IDEwNzEg
MTIwMi41CjkyMC40IDMyOC43IDU5MS43XQo+PgplbmRvYmoKMTEwIDAgb2JqCjw8Ci9FbmNv
ZGluZyA2MyAwIFIKL1R5cGUvRm9udAovU3VidHlwZS9UeXBlMQovTmFtZS9GMjcKL0ZvbnRE
ZXNjcmlwdG9yIDEwOSAwIFIKL0Jhc2VGb250L01XTE9IVCtDTVRJOQovRmlyc3RDaGFyIDMz
Ci9MYXN0Q2hhciAxOTYKL1dpZHRoc1szMTQuOCA1MjcuOCA4MzkuNSA3ODYuMSA4MzkuNSA3
ODcgMzE0LjggNDE5LjggNDE5LjggNTI0LjcgNzg3IDMxNC44IDM2Ny4zCjMxNC44IDUyNC43
IDUyNC43IDUyNC43IDUyNC43IDUyNC43IDUyNC43IDUyNC43IDUyNC43IDUyNC43IDUyNC43
IDUyNC43IDMxNC44IDMxNC44CjMxNC44IDc4NyA1MjQuNyA1MjQuNyA3ODcgNzYzIDcyMi41
IDczNC42IDc3NSA2OTYuMyA2NzAuMSA3OTQuMSA3NjMgMzk1LjcgNTM4LjkgNzg5LjIKNjQz
LjggOTIwLjQgNzYzIDc4NyA2OTYuMyA3ODcgNzQ4LjggNTc3LjIgNzM0LjYgNzYzIDc2MyAx
MDI1LjMgNzYzIDc2MyA2MjkuNiAzMTQuOAo1MjcuOCAzMTQuOCA1MjQuNyAzMTQuOCAzMTQu
OCA1MjQuNyA0NzIuMiA0NzIuMiA1MjQuNyA0NzIuMiAzMTQuOCA0NzIuMiA1MjQuNyAzMTQu
OAozMTQuOCA0NzIuMiAyNjIuMyA4MzkuNSA1NzcuMiA1MjQuNyA1MjQuNyA0NzIuMiA0MzIu
OSA0MTkuOCAzNDEuMSA1NTAuOSA0NzIuMiA2ODIuMQo0NzMuOCA0OTguNSA0MTkuOCA1MjQu
NyAxMDQ5LjQgNTI0LjcgNTI0LjcgNTI0LjcgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw
IDAgMAowIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNjQzLjggODM5LjUgNzg3
IDcxMC41IDY4Mi4xIDc2MyA3MzQuNiA3ODcgNzM0LjYKNzg3IDAgMCA3MzQuNiA2MjkuNiA1
NzcuMiA2MDMuNCA5MDUuMSA5MTguMiAzMTQuOCAzNDEuMSA1MjQuNyA1MjQuNyA1MjQuNyA1
MjQuNyA1MjQuNwo4NTAuOSA0NzIuMiA1NTAuOSA3MzQuNiA3MzQuNiA1MjQuNyA5MDYuMiAx
MDExLjEgNzg3IDI2Mi4zIDUyNC43XQo+PgplbmRvYmoKMTEzIDAgb2JqCjw8Ci9UeXBlL0Zv
bnQKL1N1YnR5cGUvVHlwZTEKL05hbWUvRjI4Ci9Gb250RGVzY3JpcHRvciAxMTIgMCBSCi9C
YXNlRm9udC9CT1laTkUrRVVGTTcKL0ZpcnN0Q2hhciAzMwovTGFzdENoYXIgMTk2Ci9XaWR0
aHNbMzc4LjMgMCAwIDAgMCA4NTYuNCAyODcuNyA0NzguNyA0NzguNyAzNTguNyA4NzYuMyAz
NTguNyA4NzYuMyAzNTguNyA2MDEuMQo2MDEuMSA2MDEuMSA2MDEuMSA2MDEuMSA2MDEuMSA2
MDEuMSA2MDEuMSA2MDEuMSA2MDEuMSA2MDEuMSAyOTIuMSAyOTIuMSAwIDg3Ni4zIDAKNDUw
LjQgMCA4MzQuNSAxMDE0LjUgNzIwLjkgOTU3LjggNzc1LjIgNzE5LjQgOTA3LjggODM3LjQg
NjU4LjEgNjU1LjggNzgxLjQgNzc4LjcKMTE5My41IDk1OC40IDk1Mi44IDk1My40IDk1Mi44
IDk1NCA5NTQuNiA3ODEuOSA3NTYuOCA5NTcuNSAxMTg5LjcgODM2LjMgOTU5LjIgNzA5LjUK
MzU4LjcgMCAzNTguNyA1OTguOCAwIDAgNTk5LjcgNjEzLjQgNDc5LjYgNTk3LjYgNDkxLjYg
NDExLjMgNjAzLjIgNjIyLjIgMzYwLjIgMzYyLjIKNDc5LjYgMzYwLjcgODg3LjcgNjI4IDU4
Ny4xIDU5OS43IDU4Ny40IDQ3OS4zIDUzNy4yIDQxOC42IDYxNy44IDYxMS45IDg5NSA0Nzgu
NyA1OTcuOQo0ODAuOCAwIDAgMjkwLjYgMCA0NjcuNCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAg
MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAKMCAwIDAgMCA1OTYuNSA1OTcu
MyA0MTguOSA0MTQuNSA2MDIuOSA0MTguNiA0MTkuNyA2MDAgMCAwIDAgMCAwIDAgMCAwIDAg
MCAwIDAgMjkwLjYKMjkwLjYgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA0NjcuNF0KPj4K
ZW5kb2JqCjExNiAwIG9iago8PAovVHlwZS9Gb250Ci9TdWJ0eXBlL1R5cGUxCi9OYW1lL0Yy
OQovRm9udERlc2NyaXB0b3IgMTE1IDAgUgovQmFzZUZvbnQvWkVKWVNLK0NNTUlCNwovRmly
c3RDaGFyIDMzCi9MYXN0Q2hhciAxOTYKL1dpZHRoc1s4MTMuOCA1OTUuNCA3OTAuNiAxMTAx
IDY3OS43IDQ5My4xIDg0MS43IDEyOTQuNCAxMjk0LjQgMTI5NC40IDEyOTQuNCAzNzEKMzcx
IDY1NS4yIDY1NS4yIDY1NS4yIDY1NS4yIDY1NS4yIDY1NS4yIDY1NS4yIDY1NS4yIDY1NS4y
IDY1NS4yIDY1NS4yIDY1NS4yIDM3MSAzNzEKMTAxMC4zIDY1NS4yIDEwMTAuMyA2NTUuMiA3
MDAuNyA5NzUuOCA5NjguNiA5MjAuMyAxMDQyLjEgOTAzLjMgNzU4LjkgOTg4LjMgMTA4Ni45
CjU2MC4yIDcwMS40IDEwNzkuMyA4NTIuNCAxMjY0LjQgMTA1MS4zIDkzOC4zIDgwMi4xIDk3
My44IDk2OS4xIDc3Ni40IDcxOC42IDg5My41Cjc2Mi43IDEyMjQuNCAxMDUyLjcgNzU5LjEg
ODY1LjIgNTEzLjEgNTEzLjEgNTEzLjEgMTI5NC40IDEyOTQuNCA1MjYuNCA3MjIuMiA1ODUu
OQo1ODQuMyA2ODYuNiA2MjQuNyA2MzEuNiA2MTguOSA3NTkuMSA0NjcuNyA1MjEuMiA2ODgg
NDAzLjkgMTE3OCA4MjIuOSA2NTYuOSA2ODYuNgo2MTEuOCA2MDUuOSA1OTUuMyA0ODguMSA3
ODcuNCA2NTEgOTQ0LjQgNzM3LjQgNjc3IDYzMy41IDQ2Ny43IDQ4NS43IDgzMCA2NTUuMiAz
NzEKMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw
IDAgMCAwIDAgMCAwIDAgNzIzLjQgMTA4MS40IDk3Mi40CjkwNC44IDk0MS42IDEwODYuOSA5
OTAuMiA3NjEuNyA4NjguMyA4MTcuNCAwIDAgOTg1LjkgODY0LjIgNzM4LjMgNjY2LjYgNTg5
LjUgNTQ3LjYKNTg0LjkgNjkwLjMgNjI4LjcgNDc0LjkgNzU5LjEgNzYxLjcgNzk4LjIgNjQ4
LjcgNTg0LjkgNzc5LjggNjc5LjcgNzcxLjYgNjA4LjcgNzIyCjc5OSA4MDYuNiA4NjQuMSAz
NzFdCj4+CmVuZG9iagoxMTcgMCBvYmoKPDwKL0ZpbHRlclsvRmxhdGVEZWNvZGVdCi9MZW5n
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
rkC0ueFJT/zfOzQJseOx/MyjqVJh+C79O/GorXMc/TvosMOakw5U5WjpsIto1elCA8oaYucH
DV0GqmqyA5aWBuThV5PfnJLYXcZxenZQsw0V0Vmffoo4c8xrG7xYOON/NT2D/+1/WiQ/EQpl
bmRzdHJlYW0KZW5kb2JqCjExOCAwIG9iago8PAovRjEyIDUyIDAgUgovRjIyIDk1IDAgUgov
RjIzIDk4IDAgUgovRjEzIDU1IDAgUgovRjI0IDEwMSAwIFIKL0Y2IDI2IDAgUgovRjI1IDEw
NCAwIFIKL0YxOSA3OCAwIFIKL0YyIDEzIDAgUgovRjI2IDEwNyAwIFIKL0YyNyAxMTAgMCBS
Ci9GMjggMTEzIDAgUgovRjI5IDExNiAwIFIKL0YxMSA0MyAwIFIKPj4KZW5kb2JqCjkyIDAg
b2JqCjw8Ci9Qcm9jU2V0Wy9QREYvVGV4dC9JbWFnZUNdCi9Gb250IDExOCAwIFIKPj4KZW5k
b2JqCjEyMSAwIG9iago8PAovRmlsdGVyWy9GbGF0ZURlY29kZV0KL0xlbmd0aCAxNzE4Cj4+
CnN0cmVhbQp42r2bXW/bNhSG7/crBOzGBmqVXxKlyzVr2g5IWzQegnXdhSLTshBZCiR5aYvt
v4/6tOyS0okp7MqKTPM8fM/h0SGpWMhGyIqs+uON9Wr98hoTy7N911pvLYxt5FsrzGyfWetf
/1xwbC//Wv9mEXnHWiHbI/XtL8TB1f2X14T2P2auTVyrb5M2DfCgge1iC9Vf3vyyfvtxF7dN
jgAr7ticSwJU36gIiI6A/Ejg2IRNEAwBivgqS7fJQaTl22+PIo9EthdlHocKLmZz1nA5DRdV
cn0Sxrp0XYzLwuzWEO9bnaHcGpPchrsk2Cbxxyz5lmb7OEhGyVphHKUwt+bC3IKEcdXmY3Pz
oHDlnV/cH/1C6yZv9SQUSFLmh78FxBeeZvIwaizHeifKAKKIP6nIa2NF7sS9yK8PaVjGWQoQ
xkOT0+fGWKG7XVyWwcMR7AYgl4cnye7mJ7uDaEZGyBo/XRk78o/skEYQmYbpF9kU13eDvQZg
1TeZJOj6GDfPTs03ugd5GGaFCEcggA467WncLef5lg9YdnqH8OeQ7CCauEqX1L+fwS2Dfsb1
4Gd6eEeOckQP7xkcJUiPs+TrDIKk1HI4z4mQEoLR599jX7Ksw10lBLJURgDlfaQJgPEpAQ+A
qQnRDNjHuglRxOksE+LYz7geZ6UrdwcgWo62FZADogfV6VEG8+hx7GdcD6abELKDOSZE3824
HsOEKSdClx8iXYz2bQAMkGeX7yodcr9cEW8hYmOP3IsY4g0+RpHPQJFDtPC67MROiwrULfO4
jgSKUQbPKAx9/3/gAeiCEVK6J9wYO6brYsI+VlU4oTCvbULIygUjoh7/UkbnznyOhKDNB4yo
MoWHsXH6DmOQCkz1SA1T88dpmILGry4um9q08oS5I6qudiAWVxmR8xTc0GobI65TZBYtYEp4
yqiYo8yG1dgY+RoVyjlUAJXXGJ9lSKeTYaS4BqtQQlTAWOmHOdxQgBRQ58hNaOyDTQiyTzUP
yyPLF+JicxqRTDw0O4cwtSCpOcKP6RI7rs0sVq2lWuvqZLkpLrI+NK6JBvfUG+qyUuTb0BTg
2IcGodOf6xBmIABp4J3W9n5j/+vjSG3vwwC6PiYUUCfGrTAVYCsg4ydIMyP7NYyckOiyhc4A
Jgr2++BdGmb7x0SUMDKsJ/MhZD6cDOIoInPnynfQIto8f3tkaHADGj1VxWUkzMcrQINV58Xd
hYvNgf2dbq15Nn5HA5CbA+QgBVzlruDDcmLJDZsPD0AV1OmxgTBW4mFCiQ7CAzy0OTKlSYL9
/QY2E9UpMzGOzQTkFKpeaCepsfkUMnqK2zyUZJFRIpK/fxUUoFxMyXw2QfbodO7n2DgX7g8g
wZVL6vTCHeqB+TQEaaHOhOnGNNzSDWj0ykOatDAfPahGpVy3vdbZkZFAzGFgkTCx90gRff5e
34DisYAlIF/lksI8IAtQQDJ1/iuMA7IABSRTn9YY7S8NIbSbS2cqEKUTxAxeEKClE6NqgBns
g8bPVIciRZQarxX6PiYAHH1m6N5a4e5lG31DmjiCrQ/YaaLErT/iaGTvFWMoA0wSdbl48Snm
CUK6A6ngKfe/Lz2/PCUAaeBrAMztQ8w7SLXnXKTmcQgqDh11crz43HYAoD+zPVOAKHdZR09s
MZQApMH0JuPPxmLo32U7U4Op1ciNxciDELSUd5ypHZ5/jVP20yNIC3fiqJSblU9fYTOUT1C4
ZhTfpyKj84vyTOZ7avz87rpwLb+zThGzkSc/id1Yv8ryXBSPyxXhi6zYxGkkL32yKLPqky5E
IKspLqsp+RdebLvj8LpNGuxFc5Vt21/t2hvbLG9fhvN74wSz6h3xVt0vN0G522bZOSKrX5du
Gsnu8rbDp4oiKBqMICmy5nbQUG5PjumPJqvTJs/tTX6+/v391frdh/cKuy63fa9t2fhjxWQS
dbH0Fe58td7FEoFKi7I2y+S6qb6uB1tf9ZRUsh0K0TaQD6z6880nGfgrl7DFu7K5EwZJ0rWq
xDuXjEg/8UnJnKNk+yDMsx7r2HF9EYTlIUia61w8SseLdElcmZIbp9LWlQMaa0Vcrwq4gQqd
2i9kS1pJkVbDrkZEiRxrJUfXIWV1JFXNGgpaqbERX180X4oybMR+vZahz6wnOYyV48sB+dZe
DozZlPc3Euu2+bcDbEln8WrosrWL5LSouT4/xUkiI1jk/1wvib8Q90uKFvkhqP7Iv0mLDl1g
Xpl22IIg5C7lqDxMKsc0NzdxER6KoobHvoP44mO1mAgi0fy6bVaLJD8xa+F/+g9fUZHNCmVu
ZHN0cmVhbQplbmRvYmoKMTIyIDAgb2JqCjw8Ci9GMTIgNTIgMCBSCi9GMjMgOTggMCBSCi9G
MTMgNTUgMCBSCi9GMjcgMTEwIDAgUgovRjI2IDEwNyAwIFIKL0YyNCAxMDEgMCBSCi9GNiAy
NiAwIFIKL0Y5IDM2IDAgUgovRjExIDQzIDAgUgo+PgplbmRvYmoKMTIwIDAgb2JqCjw8Ci9Q
cm9jU2V0Wy9QREYvVGV4dC9JbWFnZUNdCi9Gb250IDEyMiAwIFIKPj4KZW5kb2JqCjEyNyAw
IG9iago8PAovVHlwZS9Gb250Ci9TdWJ0eXBlL1R5cGUxCi9OYW1lL0YzMAovRm9udERlc2Ny
aXB0b3IgMTI2IDAgUgovQmFzZUZvbnQvREpXRURVK01TQk03Ci9GaXJzdENoYXIgMAovTGFz
dENoYXIgMTI3Ci9XaWR0aHNbODkyLjkgODkyLjkgODkyLjkgODkyLjkgODkyLjkgODkyLjkg
ODkyLjkgODkyLjkgODkyLjkgODkyLjkgODkyLjkgODkyLjkgODkyLjkKODkyLjkgODkyLjkg
ODkyLjkgODkyLjkgODkyLjkgODkyLjkgODkyLjkgODkyLjkgODkyLjkgODkyLjkgODkyLjkg
ODkyLjkgODkyLjkgODkyLjkKODkyLjkgODkyLjkgODkyLjkgMTAxNS45IDEwMTUuOSA4OTIu
OSA4OTIuOSA4OTIuOSA4OTIuOSA4OTIuOSA4OTIuOSA4OTIuOSA4OTIuOSA4OTIuOQo4OTIu
OSA4OTIuOSA4OTIuOSA1ODUuMyAzMzkuMyAyNzcuOCA0NjIuMyA3MDguMyA4MzEuNCA3MDgu
MyA4MzEuNCA4OTIuOSA4OTIuOSA4OTIuOQo4OTIuOSAxMTM4LjkgMTEzOC45IDExMzguOSAx
MTM4LjkgMTEzOC45IDExMzguOSA4OTIuOSA4OTIuOSA2NDYuOCA3MjIuMiA2NjYuNyA3MjIu
Mgo3MjIuMiA2NjYuNyA2MTEuMSA3NzcuOCA3NzcuOCAzODguOSA1MDAgNzc3LjggNjY2Ljcg
OTQ0LjQgNzIyLjIgNzc3LjggNjExLjEgNzc3LjgKNzIyLjIgNTU1LjYgNjY2LjcgNzIyLjIg
NzIyLjIgMTAwMCA3MjIuMiA3MjIuMiA2NjYuNyAyMTIzIDI2MTUuMSAyMTIzIDI2MTUuMSAw
IDY0Ni44CjczOS4xIDAgMCAwIDAgODMxLjQgNjQ2LjggODkyLjkgNzY5LjggNTIzLjggNzY5
LjggODkyLjkgODkyLjkgODkyLjkgODkyLjkgMjc3LjggNDYyLjMKODkyLjkgODkyLjkgODky
LjkgODkyLjkgODkyLjkgODkyLjkgMTEzOC45IDExMzguOSA4OTIuOSA3NjkuOCA1NTUuNiA2
MzIuOSA2MzIuOSA1MDYuOV0KPj4KZW5kb2JqCjEyOCAwIG9iago8PAovRmlsdGVyWy9GbGF0
ZURlY29kZV0KL0xlbmd0aCAyMTM0Cj4+CnN0cmVhbQp42sVbW3PbthJ+769g36SZCCUAgpe+
NclRk9M6TWM3bVW3M5AE24wpUiWpyPb0x3dBkLQkigRkuJMX8QZgv/12sVhc5LjIdZ1rp7p8
77y8+GZKHIxRxJyLK8d1JthDkedcvP5jRJE3nmBM2Oi1SOKVKEVejP+8+P83U9+JUOQ3FUJE
w6rC+zEJRjwX6ZiEo/JGFHHxYjyhLBzNc76QH2/ljyib1zxdyhtPFlY3SayKyCcKr3kp75hs
VRXg63USi6Zapq7ibp2LooiztFAvtlUjed1MLtYJXzSVtnF5o+4W2WoFEOo6lyN4GBN/dC+V
rDTDlZag2XWeyRa3UJKSUZzKKx0V8YOUQAFVod6kQizF8nL8bdUE1HcjZ0I8pAjFCPgMCAFR
ikfstkSSEAUBCJXl+CHLDJHm2+VYfQzbjzRAtPmaqo9R+xGMGdbfZsUmz7MNUH7QgBcg168L
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
MCBSCi9GMTAgNDAgMCBSCi9GOCAzMyAwIFIKL0Y5IDM2IDAgUgovRjEyIDUyIDAgUgovRjQg
MTkgMCBSCi9GMjMgOTggMCBSCi9GMTMgNTUgMCBSCi9GMjQgMTAxIDAgUgovRjI2IDEwNyAw
IFIKL0YyOSAxMTYgMCBSCi9GMjUgMTA0IDAgUgovRjI4IDExMyAwIFIKL0YzMCAxMjcgMCBS
Ci9GMTEgNDMgMCBSCj4+CmVuZG9iagoxMjQgMCBvYmoKPDwKL1Byb2NTZXRbL1BERi9UZXh0
L0ltYWdlQ10KL0ZvbnQgMTI5IDAgUgo+PgplbmRvYmoKMTMyIDAgb2JqCjw8Ci9GaWx0ZXJb
L0ZsYXRlRGVjb2RlXQovTGVuZ3RoIDE5NzcKPj4Kc3RyZWFtCnjarRnJktu28p6vYOVEVUYI
sXFxlQ9ZZFsp1zjl0ctz+SkHjgRJzEikiqQ8niz//rrRIEVRy8zYuQgg0Gj0vkBewILAW3p2
eO39OPn+FRdezJLQmyw8zlmQeEOuWKK8yc//8zkb/D755ftXQrUwAjbhuOQWYCrCyIHIFkSF
TITesAXKCYJ3IFjIvcBuznbl+uEu3W5TB7UnZxhpFkVAT2AXAFicoWfImRQW4s5hSTzNkhgB
NAtCT7KYaAmOqeVMeEPBVPI4sXe/ltnGXCRUW0D5KKH5CUK1JfQcnQGLLJ3x43Tmp+nkOmTK
E5wlJAzFjm6JOONhg+XUFW5vu8nyXXVaEmFXZfq8CYmnmJB4lJRPaXnBfsKuWkJ2JHVLjGBR
Sww/R0wLdImYP+dmWRrjJCM88CWpLDGSJywASwN705LEPxhyLpT/Np0MEuGbD4OhjJRfFbty
Zl4MhjoI/FW2XA3X5tNAct+sCWBWwCj8ucFP7S+Ksp1s0rrO8iXdHnqJoy8A6nnjApMVHhSx
/5bAIi9kSWRlIVkQgTAC8v4f+miAlxjl4PYnuI9mq3CRk4hHzaL02rUPdN8mnZVFhfPE31Vm
TrO6oHFWmrQ2NH/9PqRJaWbFMs/+dBTXq7SmjTSnsbgFOYX+H2ZWE8gqdTcUuUNmxQPjpiib
lYW7euUWFsV6XQxE5N+j8CyeWbHZDoawVAwtR0MZMw3qgxjpLDs3OR6pqxckp7iVkwhZIAEU
vluzEn1h2pGMJoUrpfQtut1mALff2qtNSRtTv6qBeBSYVACNhCJUij8PBHOf1Su6Immv4AKs
PHGXTKcffzaL693m1pR/Mcb+6RMUSxZGDfCgzxMYUMJCJwD9JK5yoiwjMYFfpGjAYLlfzI+0
vtPlZ5wT4pMcJYpBODjPkdQYMp/BEZE2K/KqLlPH19eyFGLY77L0U4O+PskUDxTT8QWuNITw
5zNVmoUpTT4zX2lyqCJ9wM/7BvNpHSVM6gvcQNqLw+ezszaLmmarNHdcVNnccWdjDoxkoso3
n7elqaqsyI+5ly33UYd7cZJ7QZ7f5f7tm5uTfIcRJqCzfMtAYlB+vhohX3TM8l9hPuyr/gzz
EjLkoeafzDswDI4QRt2gOYYoLYSwdOJ4GEeE4MDdHCcSMylCdJin7XxOG8h8dQVzpTHoO4Qw
e6DZPTJZ7NZzOojRN/aNO+uEYUk5sgQEt8JoMNIEsscGbq/6MpIRuDs/EFK5qt5dj85G5Ea/
V31UQxUGjEfdjNQinPz33fMRRoyrPmWTN+9Ho0djK0hWSczJ8yObiJgM+0hfvfvP+9PkxSxu
0hUbDMMk9segK8Vjf2lyA3p3N9mSB5frVVGZZgq5u2rmUCeQWQW8FRL5EegI6wClMJBblePU
Vgt2sqCRqgW7UuKtESfF20WwimJjaqixK4KhcgZnKQ7gbjssJT+3OPtyARdowx6o/yjIQ2aK
Lyiq2QNFnzqaPOUoqrZ/GOJXawSXDqMKj84G6LlPODv+bfSlZ2/GH75UVDej30bXp/jV5z0M
UulhgTAav34zeZbQQhY1FFyPr08yzp9w9ohtzYS8cK4JxB/Gx/UDU+GTTo4vm9ZQBcJ5YuBC
H06m06nQUVnV+Am2byvZGbT5rrqwiwuCtV6Efvttg6QsdhDDLRDmqR7muk1GZr2oLRy3N8SH
Nwjnctj72Vako8L9naxt0miT+qSIxbHrjrlt0LT/psD26566ryynPovyJbRd9wMZ+LbrgF3I
LfBVG0wZx00YB69PXO8EUnnYZrN0vX4YxArliemWmrle1Vy1Sy4lU4mTVfWVq8/cjutIstKl
+n5q3xxWB2sSXXFHWNbZnY1wL476WyQ9bpuZ6cesNhsr36Db6p+pyE8BHdeEDZS+XAkfIfs4
L7L6lKhbeu8p4EvIJnlR0wSkThNqAZOk0+/Zvi6Evg43ImjzbCmUxPuyAD9QsA4QXYFLn0qt
Ls6inNsWDtamYCFUgcHHoiw2e9B+iaCsBQZ9WXf5g8ZFqrbNOs66Ab40BBdFhOXWvgSzxGQV
+QxkWBarrpwzcC18hNAaTQ0bcUZp7geQ6KppU9EvunYWNnbWCO5rzKpbR5+yFVdGvRwMtVD+
JdvbW1W37jqDEyupl5ewtUUSfALmOst3NjbcbNOZfUxAcr7DQRNVdvays3AesS2UzuGFPjDx
h5fIb53soOC6LJKToPqiJdFzcbdwd9EGoqyLXLO0MlfNInkjRq0mTNVtWV2QwVzsYiqHiR54
8Hh6h8ZmKoJ24bECKa1NE9kaWIepPa3odNSehhRkOqcq1gqiLbPpAU25B62+8+lgnyTPiQya
2qBx8RnevqI0CcUskqGapymFr1aYSXGWbrdlsS0zeiVTSfe9r/nuHV5mnyxvOdG7TwfovgkH
TqyGdOBn7t45yOVqnzqjg+qnSUDbtKydEm5tHqP53GDmz4kejAJp3t2FajnHu6u2zTROKbn5
XDv9mhka+XRAYh9NPKhWvHuUv06AnMTbeEorJqN2Ye3d0P8YHKo9escE6DAIGVnjx/tsDZpc
mvLvVwOR+OYWM3S5S/GjROK09HmE/GjliyAIMevHXLhXSFicZ9Vs59IoT3QQ+b/ahnhp6HRM
YPZZEUauHPHf/B9JFnDNCmVuZHN0cmVhbQplbmRvYmoKMTMzIDAgb2JqCjw8Ci9GMTIgNTIg
MCBSCi9GMjQgMTAxIDAgUgovRjIzIDk4IDAgUgovRjEzIDU1IDAgUgovRjE5IDc4IDAgUgov
RjIgMTMgMCBSCi9GNiAyNiAwIFIKL0Y3IDI5IDAgUgovRjggMzMgMCBSCi9GOSAzNiAwIFIK
L0YxMSA0MyAwIFIKPj4KZW5kb2JqCjEzMSAwIG9iago8PAovUHJvY1NldFsvUERGL1RleHQv
SW1hZ2VDXQovRm9udCAxMzMgMCBSCj4+CmVuZG9iagoxMzYgMCBvYmoKPDwKL0ZpbHRlclsv
RmxhdGVEZWNvZGVdCi9MZW5ndGggMTg5MAo+PgpzdHJlYW0KeNq1WVFv2zYQft+vEPYkAzUr
UhIl7W1tky5DmxSJgQKZ96BYtK1NFg1SQlJgP35HHmXLtpIobfoSU9Tx7uPd8buj4gUkCLyV
Z38+eu9mb8+ZRynJYm+29AJvSiOSRd7sw19+RNhkSimL/Q/lRtS6lLWe/D378+059zKS8W5B
SsLULpitxWQaxZG/kPWEJX6jZGUmQl8u8UXTSci22bYNju+NbK5R0i7ldmklCpy7MwLfcLzJ
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
IG9iago8PAovUHJvY1NldFsvUERGL1RleHQvSW1hZ2VDXQovRm9udCAxMzcgMCBSCj4+CmVu
ZG9iagoxNDAgMCBvYmoKPDwKL0ZpbHRlclsvRmxhdGVEZWNvZGVdCi9MZW5ndGggMTczMgo+
PgpzdHJlYW0KeNqlWFuT2zQUfudXmM4w4wyNsC6+McNDKbu0TGmZJkxnSnhQHGVjcOzgC7sl
5L9zjiRfYmfbdHiyIh99+s5F35HjeMTznDtHP350vl9+c8udkMShs9w63Cdx7MypILFwlj/8
5q5cuZrNfl/+9M2t31kxSmLqeMZg9T7ZyUOtysXy2Vtj2ePNjek8JiKweOtr8a7ASj6JVamk
Tot88eLN2+VHAEMLuLkW8F1a7xa1vIakuhazLpIr4LazeRi512KOARn1CAscERJOLeDdp7Ga
9TCO1/HcfS7sFZjpZ2BekaE26398BuwVLP+8Cm6EGDgxiQODGEYkjpw55yQymJzM5jRkzL2d
RdwtytmcidBVD4dSVRVAVDgRufVO1mZ0P2OBq0plDPOinYaYpLmZlGYqS6v6KQyDAJhXhXmn
gTStuKPFhE880fuQ1mo/po6MWxOgAJtUIwZNpfCMWbrKDJJiv5f5xnqxLbKswMX3aX6HO0BE
fK4jQiGMvkY3a0PP3agV88M8rW0YYKrYmqfMMjPojEFV9taopxfEroK4tILTe0zDkIRR7/H7
TZHWE5djwmJrU0whKPHDAcJzlXfK1mOImIR+a+XqBCHDXZogyZ3hmMhKjdwpmvrQ1GZc7Yom
29hwQQHxeBiuNRq5sIxz4SYqR1wggrkgdg1IvllhSk60JffO1gzn3OyMg71MysKgVUVTJurp
yMAmMTBJhCnmyvW6VH+n0mYKrfoyRQOsjW9NbKI+vgGJfCAGjYmbALGAjcOsnyZ+r5tJVdKY
eO3h2+Lhwa1XK7SEMNjQlE/GO89ZhKd3EMVPbP18epYf2Rosq7qUqcnDR3cOrtn5rdpeuTNY
QrzzRP1/d1/m9ZWbvrT1dlfK7Ikpt8AnERum1W/r7Rnkg8duru5RDqCwrUrqWSwRM7Li4bka
G1MZdak0L6wytAug8iaS5kUk5P3x/EFtoSjW0wPqh8Rn1g54Csrdl1vLQz3UZtSXPHIx20Y9
zzM/OtKm/oKONChvPqYJLyjh/lk9gJYYqsudypfIYUQ5ZiRgYynmodAhBB98kBT0AackPnzd
Csyol+DWFTQzhxted67gbI4un8cfxSDyL/rC8DwPFbH34hVuP+6FnEFjPZOy3hkrGRMBM3ZB
W1CLYq/qdK9gieAUnRWwstrr9oAzVXMA4uBnWSVleqiNQZpv0gTECuVrsA4lrNLO4+RObsx0
XZiJtUEyP9I8yZqNDncISV/u0spYdz6g1aBODQK8+6B9GrvUVEZMBcMeN4oshxrtm9XPxSbd
pmqDpbFQk7hGIfHaLNiswXlVE0xvkKlLDV94/YG/0P0YYdHFXD9SsfyjUPHVZTOAam9MukaE
BxcUPgypepD7Q4bty+fCBni0dUiJEI8F9hidJiLoCcLC4dHTnXkuYg7VUzUZFljs6z4vYn36
8HGhCmEW7zL4XK2iJ2aZPBxMwmRpahPmihYqN37S0CchHfqZDiTYHJ0LEvTUdPRWuAvb9aVt
9N2ph7kLqvvIRSJszyEkq7S3A9kNDHSG10N9ryjaNxtVyzSrvjTRZQ58knKhJQGgvRiVoWsd
sAFlwl3oVBqJWuhbiRk/x5sKA8QOy4RlCzkCNSYRtR2IaqALi2m3uE+zp7tXFOu1y9G9Jxzc
e6qWVndZMqZJofO9Ud+OvxZCwrA3hkQYB5GXF7CzFnXkhPJAFx9S6b5mWG974ZBYU/tV0Zuu
1V2a30wsxGTG79e0enD2PrDvv5oQC8+cePVicZwsjqzJEWzgdqGL9VVxr8pfDwfweG4vTjIH
Vd7WH07H5nSagMQA4sd47Xi/LWWCWHBi9a2nTmV23DycTjh5++vr58uXb15Xf5U1/j7gRseV
K+cPq9npyE9WMgjjA3Tq9fDtivXZiiEXSqfWSWt9Ok2zR9lZlMpd9eb1zTRQFFIXiTh2v2u9
ZKdzH9a4B7vASFzin1hrEEHqfjQ2Sct9ityWxoVXl6rCvgrHDi/fvTlO4xL1ZlADkP9Gf0cs
DjJpvxLPYOPO3rT+sQEb5LFqyjXE8M82FODn1+s5s38unS8bJLQN0rPyblhPN1kG6p0mt02u
9fL2H0gN2MvssJNPTYgPEMU5m6KzM1Jl0eSbPvwJpujr7qc8/7nGn3O5nstkvk4u6AL/bOY3
jzC3yb9ZOh4Rzj1u48fQcGJn7wgfdDrsJjJnof9hpLQTN7AOvIAwzer9fQqb5neq/Pd2xuBD
fD3jnls2En+UH0AofQ41go3JF5A0DyuJRpS5P74NzOQmrZKmMlcyGsVh4P6CXUneKbvaM3bY
SfFJhWX/xX+cqJKYCmVuZHN0cmVhbQplbmRvYmoKMTQxIDAgb2JqCjw8Ci9GMyAxNiAwIFIK
L0Y1IDIzIDAgUgovRjYgMjYgMCBSCi9GOSAzNiAwIFIKL0Y4IDMzIDAgUgovRjIgMTMgMCBS
Ci9GMTEgNDMgMCBSCj4+CmVuZG9iagoxMzkgMCBvYmoKPDwKL1Byb2NTZXRbL1BERi9UZXh0
L0ltYWdlQ10KL0ZvbnQgMTQxIDAgUgo+PgplbmRvYmoKMTQ0IDAgb2JqCjw8Ci9GaWx0ZXJb
L0ZsYXRlRGVjb2RlXQovTGVuZ3RoIDg4NAo+PgpzdHJlYW0KeNqVVltv2zYYfd+v4MsACqlU
8SpxwAKsrd2mKJIicTEsdR4oWfaEOZKrC5JO038vKSqyXEpr+kSRPDz8dL4bge/5PtiBbngL
Xq1eLhkIPBGA1RZgTwjgIuoJClZvPkNMHRf5HMNfnbvVe+ADV3iUmy3Wb63Xt2+SbfF3uXp3
vVg0NpAfga/zrEqzWlZpnt0cZJxmuxE+MPigx5+pA9tCxg3+HK+hdOO1cxbpj2jtuPUaYrWk
v+/axnEZQbDf67G2IaEiZoJoQw75Q1I0axhpZNvgtmdY3y4/Xb5eXVxdll+KqtFUtWaMzBDr
oW1tatHbbG8Rf1ZCgk4kVOKUVSHTrGoGa8q6iJQE/zTyPDqPz+uJuwmeuMBIScjJBdfJNimS
LE6aV389KYYJ8hBVP2XzzvuejHx/u8nTykZweyk4Hkqr5N62Njyx9sO7GzuYyJPQjQJdZFWy
K+T+g3bmp8NBebRu1UYnpNSRtq2+TihG/WMgdAGmxk267cSpUrlvNo+t5vkuFo5R8+hKHTVk
ghrZMfaog3IajafQsUG3J5YbiSiZ9Qml3+fj1eVENlLlupAKAX8fsqsd/5o0xuIJY/nPp8+Y
d/K3eupgNoRpaJWZP68mfkscjfv/ImPwzB9oq/Q+KW3AyJFDEg4FRpWeaLLGsJFHn6T4o9iN
g2mx36eHKo2XdRZrE5f/KgcofFa/MCp+UUK52KYmJxYVeZ1tjgpL7YWzYRqdTmM9dWXkSlUx
YzuuGP1psxdTZk/4lrHZkGX8mS2EBc9tIT0+tFuIahjyLHKx8prKXhOPypkmhO9+mAO9TirM
SIBC2BP0x+22UesKoYfIDPFk2+D+bNvgaFY2jp/fNurzrnFM3U1mc47TZ7SN0EN8qm3weX9z
/qO2wQN7aVQAkmyz0ICXSwwQ8gTTbxbXPFpw4IWhcZKnBUKYwaWjQjov7mVVJRvtOQrzujrU
lSHhQHiCaw51IQo9IrrzF6WCEgK3o5NqKrtlqpb3+9zBAXwofzM86JRoeD0RD/V9cLFS7y0K
HvQ+E8wLBLgHlFGPBMPCHtx0rzGEhueYQnOfe7hju31IVQpmu6T4b+lgAZPIIT4saqknxVdl
HCMQBS/0B4XY97XaKEQYvr3mZnGTlnFdlipz1FYoAg4/OjiEcpf0p5HB5VszItpb/8s3HV7K
hAplbmRzdHJlYW0KZW5kb2JqCjE0NSAwIG9iago8PAovRjUgMjMgMCBSCi9GMiAxMyAwIFIK
L0Y2IDI2IDAgUgovRjE2IDY5IDAgUgovRjExIDQzIDAgUgo+PgplbmRvYmoKMTQzIDAgb2Jq
Cjw8Ci9Qcm9jU2V0Wy9QREYvVGV4dC9JbWFnZUNdCi9Gb250IDE0NSAwIFIKPj4KZW5kb2Jq
CjE1MCAwIG9iago8PAovRW5jb2RpbmcgNyAwIFIKL1R5cGUvRm9udAovU3VidHlwZS9UeXBl
MQovTmFtZS9GMzEKL0ZvbnREZXNjcmlwdG9yIDE0OSAwIFIKL0Jhc2VGb250L0hQQkJVUCtD
TVNTOQovRmlyc3RDaGFyIDMzCi9MYXN0Q2hhciAxOTYKL1dpZHRoc1szMjUuNiA1MTMuOSA4
NTYuNSA1MTMuOSA4NTYuNSA3NzkuMyAyODUuNSAzOTkuNyAzOTkuNyA1MTMuOSA3OTkuNCAy
ODUuNSAzNDIuNgoyODUuNSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1
MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSA1MTMuOSAyODUuNSAyODUuNQozMjUuNiA3OTkuNCA0
ODUuMyA0ODUuMyA2ODUuMiA2ODYuNyA2ODYgNjU2LjYgNzQzLjEgNjE3LjMgNTg4LjcgNjg1
LjIgNzI2LjggMjg3IDQ4Ni4xCjcxNS4zIDU2MC4yIDg5OC4xIDcyNi44IDc1OS4zIDY1Ny40
IDc1OS4zIDY2NS45IDU3MSA3MDIuMiA3MDYuOCA2ODYuNyA5NzIuMiA2ODYuNwo2ODYuNyA2
MjguMSAyOTguNiA1MTMuOSAyOTguNiA1MTMuOSAyODUuNSAyODUuNSA0OTMuOCA1MzAuOSA0
NTYuOCA1MzAuOSA0NTYuOCAzMTQKNTEzLjkgNTMwLjkgMjQ1LjQgMjczLjkgNTAyLjMgMjQ1
LjQgODE2LjQgNTMwLjkgNTEzLjkgNTMwLjkgNTMwLjkgMzUxLjEgMzk0IDM3MS4xCjUzMC45
IDQ3My44IDcwMi4yIDQ3My44IDQ3My44IDQ0Ni44IDUxMy45IDEwMjcuOCA1MTMuOSA1MTMu
OSA1MTMuOSAwIDAgMCAwIDAgMCAwCjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAg
MCAwIDAgMCAwIDAgMCAwIDAgMCA1NjAuMiA4NTYuNSA3OTkuNCA2MjkuNiA2ODUuMgo3MjYu
OCA3NDIuMyA3OTkuNCA3NDIuMyA3OTkuNCAwIDAgNzQyLjMgNTk5LjUgNTUwLjkgNTUwLjkg
ODM2LjQgODM2LjQgMjQ1LjQgMjczLjkKNTEzLjkgNTEzLjkgNTEzLjkgNTEzLjkgNTEzLjkg
Njg2LjcgNDU2LjggNDkzLjggNzQyLjMgNzk5LjQgNTEzLjkgODg1LjggMTAwMCA3OTkuNAoy
NDUuNCA1MTMuOV0KPj4KZW5kb2JqCjE1MyAwIG9iago8PAovRW5jb2RpbmcgNyAwIFIKL1R5
cGUvRm9udAovU3VidHlwZS9UeXBlMQovTmFtZS9GMzIKL0ZvbnREZXNjcmlwdG9yIDE1MiAw
IFIKL0Jhc2VGb250L01JTlhYVytDTUJYOAovRmlyc3RDaGFyIDMzCi9MYXN0Q2hhciAxOTYK
L1dpZHRoc1szNzIuOSA2MzYuMSAxMDIwLjggNjEyLjUgMTAyMC44IDk1Mi44IDM0MC4zIDQ3
Ni40IDQ3Ni40IDYxMi41IDk1Mi44IDM0MC4zCjQwOC4zIDM0MC4zIDYxMi41IDYxMi41IDYx
Mi41IDYxMi41IDYxMi41IDYxMi41IDYxMi41IDYxMi41IDYxMi41IDYxMi41IDYxMi41IDM0
MC4zCjM0MC4zIDM3Mi45IDk1Mi44IDU3OC41IDU3OC41IDk1Mi44IDkyMi4yIDg2OS41IDg4
NC43IDkzNy41IDgwMi44IDc2OC44IDk2Mi4yIDk1NC45CjQ1OSA2MzEuMyA5NTYuMyA3MzQu
NyAxMTU5IDk1NC45IDkyMC4xIDgzNS40IDkyMC4xIDkxNS4zIDY4MC42IDg1Mi4xIDkzOC41
IDkyMi4yCjEyNjIuNSA5MjIuMiA5MjIuMiA3NDguNiAzNDAuMyA2MzYuMSAzNDAuMyA2MTIu
NSAzNDAuMyAzNDAuMyA1OTUuNSA2ODAuNiA1NDQuNCA2ODAuNgo1NjEuMSAzNzQuMyA2MTIu
NSA2ODAuNiAzNDAuMyAzNzQuMyA2NDYuNSAzNDAuMyAxMDIwLjggNjgwLjYgNjEyLjUgNjgw
LjYgNjQ2LjUgNTA2LjMKNDgzLjIgNDc2LjQgNjgwLjYgNjQ2LjUgODg0LjcgNjQ2LjUgNjQ2
LjUgNTQ0LjQgNjEyLjUgMTIyNSA2MTIuNSA2MTIuNSA2MTIuNSAwIDAKMCAwIDAgMCAwIDAg
MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA3MzQu
NyAxMDIwLjggOTUyLjgKODU0LjIgODE2LjcgOTU0LjkgODg0LjcgOTUyLjggODg0LjcgOTUy
LjggMCAwIDg4NC43IDcxNC42IDY4MC42IDY4MC42IDEwMjAuOCAxMDIwLjgKMzQwLjMgMzc0
LjMgNjEyLjUgNjEyLjUgNjEyLjUgNjEyLjUgNjEyLjUgOTIyLjIgNTQ0LjQgNjM3LjggODg0
LjcgOTUyLjggNjEyLjUgMTEwNy42CjEyNDMuOCA5NTIuOCAzNDAuMyA2MTIuNV0KPj4KZW5k
b2JqCjE1NCAwIG9iago8PAovRmlsdGVyWy9GbGF0ZURlY29kZV0KL0xlbmd0aCAyMjg0Cj4+
CnN0cmVhbQp42tVaW4/jthV+76/QW2W04ooUb9oiBRJkJ2iwCILsBEia2QeNRztjRL5UtrM7
QH98zyEpWRJlWb7NpC/jEXlInsvHc5OCmMRx8BiYn++Cb27f3MggJakMbj8FgmgWRDQlsQ5u
v/0tpGTy8fb7NzcsrkmSmFAV0IQIaUj+bSmoDiRJFVIYyogRbgm2joDXBBEnPAEKsxOS3DFO
qSPbnSQ1YTqgwBM1VA9fkCR4dwu88+BzIBRJNHAriUiDeUAVNdva5yL4YGRrcF7Ra6KsdP9p
7ydhnpt5oZv7medqv52uHHlCSWKFCD0JEqJVEJvZzE7qek4Rrt0ciu+tNb92/oudbJqp2vZu
YudUrVxzpiCx1VnSXQqqV0FUzw8zfd9lWhKens60TF+E66nPtUheg+soAUK4T4xXQP/KIE5y
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
yhtJ6hsPm1QgME7F5sF82Oni706AxUMLJ2/bRXOMr/0FAmEecAEnq3qgKpjBvlXVAdQSyx/7
Fv3zrCjAq+flf28mLA3zeyx5ym2GDwZ3IgmpQj4ED1kcm0JJU+Z8r0CQrqfb9drca6pTJcMf
McpBFu9WM0tn7jv8Uu64/8v/AOVUmNMKZW5kc3RyZWFtCmVuZG9iagoxNTUgMCBvYmoKPDwK
L0Y2IDI2IDAgUgovRjIwIDg1IDAgUgovRjE4IDc1IDAgUgovRjE0IDYyIDAgUgovRjEwIDQw
IDAgUgovRjggMzMgMCBSCi9GNyAyOSAwIFIKL0YxNSA2NiAwIFIKL0YzMSAxNTAgMCBSCi9G
MiAxMyAwIFIKL0YzMiAxNTMgMCBSCi9GOSAzNiAwIFIKL0YxNiA2OSAwIFIKL0YxMSA0MyAw
IFIKPj4KZW5kb2JqCjE0NyAwIG9iago8PAovUHJvY1NldFsvUERGL1RleHQvSW1hZ2VDXQov
Rm9udCAxNTUgMCBSCj4+CmVuZG9iagoxNTggMCBvYmoKPDwKL0ZpbHRlclsvRmxhdGVEZWNv
ZGVdCi9MZW5ndGggMjMzMAo+PgpzdHJlYW0KeNqtWm2P3LYR/t5fsUAKRAtkeSKpVxcokLZx
0CItivYKBO62hlbi7gmnlRS95HJBf3xnSEqitKc1DcuGseSIfDgzHM4Mh965xHV3l538+X73
h8eH99EuJnGwezzvWEBcvjtQj8Te7vFP/3aOLGD7/zz+5eF9PA6Sv678/C/Rn/2QnDM1ZgI6
yMaBUhL7VkDXNtkI5lP8BJZAp234OW2inwSA2lfSdq8bIJ2rsms3wrqIciOka9I9vQVF3YBQ
tot9ElBLqKreiqn29XraCKoTv3SfgLIyzdMzdUlaVF/K0qmqngGn/VKc9Jp1TZI+b6GmtLpe
RdltAXXui6JOLmILrLzMxC+rtsntbbNI2m4rpoqqvHTJqdgE7JqXeVelCEUuv36piV77osvT
qtiCs6rILqK5bgHV9rVoQGV9kTRb4HX5VWziR7vXWtB0Exn7tYj8uW603yYi9xYR2RbotEFg
77eKyH2ziXn3r+cmeR75ocGExCOPMG93CBj6GBwcEEZuwLivob7/x8P7P//t2x9ukDzY82HQ
kflhIaTT3x0iFz8caER4PC1A6B7492IADPYHHvhOW/VNKhTuBEspI16scR+fRCNgNA2cvMXf
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
Tfu2lZGHRnEYOH9Hl6LCC87mapwMWPBLPc39b/4PDvEAwgplbmRzdHJlYW0KZW5kb2JqCjE1
OSAwIG9iago8PAovRjggMzMgMCBSCi9GOSAzNiAwIFIKL0YxNiA2OSAwIFIKL0Y2IDI2IDAg
UgovRjMgMTYgMCBSCi9GNSAyMyAwIFIKL0YxNSA2NiAwIFIKL0Y3IDI5IDAgUgovRjExIDQz
IDAgUgo+PgplbmRvYmoKMTU3IDAgb2JqCjw8Ci9Qcm9jU2V0Wy9QREYvVGV4dC9JbWFnZUNd
Ci9Gb250IDE1OSAwIFIKPj4KZW5kb2JqCjE2NCAwIG9iago8PAovRW5jb2RpbmcgMzAgMCBS
Ci9UeXBlL0ZvbnQKL1N1YnR5cGUvVHlwZTEKL05hbWUvRjMzCi9Gb250RGVzY3JpcHRvciAx
NjMgMCBSCi9CYXNlRm9udC9SQU5QWkErQ01TWTgKL0ZpcnN0Q2hhciAzMwovTGFzdENoYXIg
MTk2Ci9XaWR0aHNbMTA2Mi41IDUzMS4zIDUzMS4zIDEwNjIuNSAxMDYyLjUgMTA2Mi41IDgy
Ni40IDEwNjIuNSAxMDYyLjUgNjQ5LjMgNjQ5LjMgMTA2Mi41CjEwNjIuNSAxMDYyLjUgODI2
LjQgMjg4LjIgMTA2Mi41IDcwOC4zIDcwOC4zIDk0NC41IDk0NC41IDAgMCA1OTAuMyA1OTAu
MyA3MDguMyA1MzEuMwo3NjcuNCA3NjcuNCA4MjYuNCA4MjYuNCA2NDkuMyA4NDkuNSA2OTQu
NyA1NjIuNiA4MjEuNyA1NjAuOCA3NTguMyA2MzEgOTA0LjIgNTg1LjUKNzIwLjEgODA3LjQg
NzMwLjcgMTI2NC41IDg2OS4xIDg0MS42IDc0My4zIDg2Ny43IDkwNi45IDY0My40IDU4Ni4z
IDY2Mi44IDY1Ni4yIDEwNTQuNgo3NTYuNCA3MDUuOCA3NjMuNiA3MDguMyA3MDguMyA3MDgu
MyA3MDguMyA3MDguMyA2NDkuMyA2NDkuMyA0NzIuMiA0NzIuMiA0NzIuMiA0NzIuMgo1MzEu
MyA1MzEuMyA0MTMuMiA0MTMuMiAyOTUuMSA1MzEuMyA1MzEuMyA2NDkuMyA1MzEuMyAyOTUu
MSA4ODUuNCA3OTUuOCA4ODUuNCA0NDMuNgo3MDguMyA3MDguMyA4MjYuNCA4MjYuNCA0NzIu
MiA0NzIuMiA0NzIuMiA2NDkuMyA4MjYuNCA4MjYuNCA4MjYuNCA4MjYuNCAwIDAgMCAwIDAK
MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAg
MCA4MjYuNCAyOTUuMSA4MjYuNCA1MzEuMyA4MjYuNAo1MzEuMyA4MjYuNCA4MjYuNCA4MjYu
NCA4MjYuNCAwIDAgODI2LjQgODI2LjQgODI2LjQgMTA2Mi41IDUzMS4zIDUzMS4zIDgyNi40
IDgyNi40CjgyNi40IDgyNi40IDgyNi40IDgyNi40IDgyNi40IDgyNi40IDgyNi40IDgyNi40
IDgyNi40IDgyNi40IDEwNjIuNSAxMDYyLjUgODI2LjQgODI2LjQKMTA2Mi41IDgyNi40XQo+
PgplbmRvYmoKMTY1IDAgb2JqCjw8Ci9GaWx0ZXJbL0ZsYXRlRGVjb2RlXQovTGVuZ3RoIDE0
NzEKPj4Kc3RyZWFtCnjavVhbb9s2FH7frxDaFZWBmBEvIqXtad2aoEOBDasfhs1DQduULUSW
BElGWmz97yPFiyn50jZO6gAReUx+53yHhx8pBxGIomAd9I/b4NXs+iYOGEhZMMuCKJhCAlIS
zH75O6xFU0ymMYbhtM7Bgt+ZjtDPl+31u+Wm4FmR9435/N95/3nGPynb+seXaiAK1w3oxAfA
iwKU2YfJP7NflZ8UEPp0blbfxs3SuoEJSHHvZ8vvRF6uxAeD3+qnnJa3nbFVh1DLlRu3t0kM
GFEUPtfjl1W5FLUB0T7GLB/oPTviPRt5z3blssursvU5o97r8+mDPgfRP9dRZLkJv9uY1cmq
stNRVOXoK8k2XwrDcx52hp1KhBlgeC9Mfz5vs4xv8+LjfOJFwB6VyeerbR7emITqgHlp1kCu
ctvx0l/m+eRalaKNW3/zPbw+UpNdtXxQMLeiFA0vNN4XOIVHnF7fQBqkIKVGSnAMcNxHQAGS
f1gWFCRp+JtcvGYyxQkJ5yhmhWj17P1kWXcAJxJDTZ6ppcYYm8F6bOrGYgpiZIaaOh+hYQKY
GbDhrcbqLGhWNVveubZqkP23bpf5KjmFjAEqHzLDegO80CmZbXJTiPZpytSkVNva7mNh6zrX
fAbLZcDedEOobbUShViZask6lcLBTnjLZ+JP3fy52ta8dLU1D2u+NqMwhUfq/sUFRb/XgRc2
IhtzvetMi+tICt7YQArROQ4/Xennqys9THRLu2nlmogRUV7XTVU3Oe9McluhN9JBJqcXfw4w
N4Kv8nL9vm6E06ln/VnxVnFTjUXWiiYXrWpv5BLLXYVhwsJnB2m3YO0u24O5aZ9Uq6zU2i0a
we9kxww5FVX7Piv42ug2/KoFKjSCTuiqsmatp17ybSWhsNxtF6JpL8r6QUZkjefb99FkimhM
dS5kMDqJx6nrGfCrZ6DzMwZy1N+JvP0uJUlVJUrSkNsGVCGkUa9S612jjiRlzkv97BOovl+o
fijTilhY3V0pYxoKvpzI/kZ9l/RbXg3l5VjsYJIoFlrMgKgPlBNhYHVTyyWYTAlKw9fKAbUO
bIw6NKOrvcvchF2qcHZb9V8FTENJeGUJSONHDXRvEqFmdiYhdd0zFNzUxhQhBpCXf5WSgQbv
UyL/36mICbGyT/yEqsEy4T9o1hg7SUYUsER6kuxjQ54iM8oNSgGCXm7WgPTxvZ7JyzAJ7oMY
gQipYysBLA22QUxATF2/CN7J27JvTFN9uEE4xKEMMObhsAhgOMbxjAYH7tfTYzYlGMTYy94l
zGgCUOwx0/0RM2kk8XlmFseSGOB4RoODPseMXcxMnsgMecx0f8RMGo0QUoiOM7M4lsQAxzMa
nG+wZgkDMPGY6f6ImTTK+9JZZhbHkhjgeEaDg56eWUoBJR4z3R8xk8aEGGb4ODOLY0kMcDyj
wXn6NSPy+gr3xHR3yEvZ8FlaFsQQGIB4NnxmtSCEal8SpkY/lBOSThJPzVCUAkzGcuZbnS6O
iCGEQEx8KBSDKDmA8qwGCp9eMnThkll6VtIckYGm+VYnjqfoOShLZAjlWQ0U+Rw9djE9q2uO
yEDYfKtTyBNRycNcHbWPknSrSc7/QJR8q1O3+Omjsnri/A8Exbc6ZaKPGFVyNCorB9b9QA98
oxYEDKPj1elwTBkOcTzjYwgLOkdMvomC2L8nYUoAPLgo+VYjB2R8xqm6xf7VDbMUJAd3N99q
Reqiw+DL+Fk9cEwGeuBbrR6gU/wclGUyhPKsj3L1+jJ+Vlsck4G2+FajLQThE/wclGUyhPKs
Bgo94vqlJ/hZlXJMBirlW41KxdCFtYeTb6BxGuvyJPIWgJkzaKTrGwnj/RJP5SbUJP+6l++m
8uVcNP/dTOTLnFhMcBQ2O646jXwVwzEOIbtSDRKiKKLql7YEovD2D6qNq7xd7tq2/0kIJimj
4e8T+bbVv8z3s4keV2X6Ca02fvc/I6LAGwplbmRzdHJlYW0KZW5kb2JqCjE2NiAwIG9iago8
PAovRjUgMjMgMCBSCi9GMTYgNjkgMCBSCi9GNiAyNiAwIFIKL0Y5IDM2IDAgUgovRjMzIDE2
NCAwIFIKL0YzIDE2IDAgUgovRjExIDQzIDAgUgo+PgplbmRvYmoKMTYxIDAgb2JqCjw8Ci9Q
cm9jU2V0Wy9QREYvVGV4dC9JbWFnZUNdCi9Gb250IDE2NiAwIFIKPj4KZW5kb2JqCjkgMCBv
YmoKPDwKL1R5cGUvRm9udERlc2NyaXB0b3IKL0NhcEhlaWdodCA4NTAKL0FzY2VudCA4NTAK
L0Rlc2NlbnQgLTIwMAovRm9udEJCb3hbLTMzIC0yNTAgOTQ1IDc0OV0KL0ZvbnROYW1lL1lT
RExQVStDTVIxNwovSXRhbGljQW5nbGUgMAovU3RlbVYgNTMKL0ZvbnRGaWxlIDggMCBSCi9G
bGFncyA0Cj4+CmVuZG9iago4IDAgb2JqCjw8Ci9GaWx0ZXJbL0ZsYXRlRGVjb2RlXQovTGVu
Z3RoMSA3MTQKL0xlbmd0aDIgMzQ3OAovTGVuZ3RoMyA1MzMKL0xlbmd0aCA0MDIyCj4+CnN0
cmVhbQp42u2SZ1hT27aGkU5gA4IUKRKa0gIJvXdBpEgTJNSQLCAQkhhC772KUkWKKG5FkS4g
vUhHBaUrSO9Ir4LAwb3vPve5+9w/5zn/7nPX/LPGN775zXeOtQR5jc0gGiicI6CDwxIhMHGY
IljL0BQmB4aJQ0GCgloEAEFE47DaCCKgCIYpKMDAGp7OYEkoGCarKCWvKCkNAgmCtXB4XwLa
2YUIFtIS/uWSA2u4AwQ0EoEFGyKILoD7eQgSgQGb4ZBogOgrDgZrYDBg019bPMCmgAdA8AJQ
4iAQDAZGoZFEsCPgjMaCJH4x6WGdcGC5P2WUJ/6vlhdA8DjnAgudcwqDzylROCzGF4wCnEAS
Rrjz04Bzln8b63+h+nu4jicGY4Rw/xX/a07/0ka4ozG+/2XAueM9iQABbIhDAQTs362WwJ9s
hgAK7en+964eEYFBIzWwzhgADP1TQnvooH0AlDGaiHQBOyEwHsAfOoBF/R3ifG5/IEhYmWkb
GN8W/fOT/tk0RqCxRHNf/D9jf7n/qGH/XZ+Ph4D2AVtDxaFQ2LnxfP31Zvu3w65jkTgUGusM
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
L0Rlc2NlbnQgLTIwMAovRm9udEJCb3hbLTUzIC0yNTEgMTEzOSA3NTBdCi9Gb250TmFtZS9a
SUZOSVkrQ01CWDEyCi9JdGFsaWNBbmdsZSAwCi9TdGVtViAxMDkKL0ZvbnRGaWxlIDExIDAg
UgovRmxhZ3MgNAo+PgplbmRvYmoKMTEgMCBvYmoKPDwKL0ZpbHRlclsvRmxhdGVEZWNvZGVd
Ci9MZW5ndGgxIDcxNgovTGVuZ3RoMiA4MzA3Ci9MZW5ndGgzIDUzMwovTGVuZ3RoIDg4NTgK
Pj4Kc3RyZWFtCnja7ZZVVB2BtmXx4MFdDsHd3d0dgkOAc3DnoMHd3d0JGtwDBHd3dye4W+fe
+97r0ff1T4/+69FVP7XXXrX2rF31UZRkKuqMokB7E5CUvR2YkZWJlQ8griimzcoGYGViQaSk
FHcCGYMt7e0kjMEgPgArLy8rQNTFHMDGAmDl4mPn4OPkQESkBIjbO3g4WZpbgAE04rT/cHED
RG1BTpamxnYARWOwBcj2b4ipsQ1A3d7UEgT2YAIARG1sAGr/uMUZoAZyBjm5goBMiIisrACg
pSkYYAIyt7RDZP4HlKydmT2A+18y0MXhP1uuICfnv1wAmr+ctIC/lEB7OxsPABBkhsisZP93
Gugvy/8x1v+G6t/DpVxsbJSMbf8R/89F/be+sa2ljcd/OOxtHVzAICeAoj0Q5GT371Yt0L/g
xOxt/tsYWbCxjaWpqJ25DQjA8i/J0lnK0h0EVLEEm1oAzIxtnEH/1EF2wH9H+Lu2fwIw68pK
Kcnq0P/HK/1XV8XY0g6s4eHwX7n/sP+zZv2f9d/1OFm6A/RYmFhYWP8a/57/eWXwb9Mk7Uzt
gZZ25gB1sLEd0NgJ+F/Cf6cSE7N3/87IyQ5gZONkBbCysvMCuDlZvP9Xo6adpaMLSFYCwMnC
wsLNxftP1dTFyQlkB/7nZ/D3if+zNrP8ux8QyB1kipiZhW0JacRATH/37bZ7/otW2/iCCuKv
4vM0zvs8nMmhSyQbWKZFq9Bga5XbJZTnU5Wo1EcaUuGwWh9F/rjue8NeDw+CyjUcOrPRDr2d
O76q6EPGacxGXSjmrj+gqFYjvXr6PM7vhrCf16+BeWCHzqt+Mvyml/lBn85lYKUufefwUv1e
xH47BJ/pvKSbfAJ9ttF9DZzdhDhQFxPPo4YN09s2gD34XfNGhFHTd7ZBxvowDn36rqtan1Ta
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
QkJveFstMzYgLTI1MCAxMDcwIDc1MF0KL0ZvbnROYW1lL05aSk9UUStDTVI4Ci9JdGFsaWNB
bmdsZSAwCi9TdGVtViA3NgovRm9udEZpbGUgMTQgMCBSCi9GbGFncyA0Cj4+CmVuZG9iagox
NCAwIG9iago8PAovRmlsdGVyWy9GbGF0ZURlY29kZV0KL0xlbmd0aDEgNzEyCi9MZW5ndGgy
IDEwMTA5Ci9MZW5ndGgzIDUzMwovTGVuZ3RoIDEwNjYzCj4+CnN0cmVhbQp42u2XVVAl0bKm
gaZxd2027u7u7o277Y27u7tD4+7u7u7u2jgNjTfucPucM/dOzLnzMjFvE1P1Upl/1r++ylqx
IpKcWEmFXhhoZwySsLN1pmdmYOYBiMp/5wIwMzDBkZOLOoKMnC3sbMWMnEE8AGZubmaAsIsZ
gIUJwMzBw8rNw8YEB0cOELWz93C0MDN3BlCJUv+jihMgbANytDAxsgXIGzmbg2z+mpgYWQNU
7EwsQM4eDACAsLU14Ps/XnECfAc5gRxdQUAGODhmZgDQwsQZYAwys7CFY/wHkrStqR2A819p
oIv9f0quIEenv1wAqr+c1IC/lEA7W2sPABBkCseoYPd3NdBflv9jrP8N1b+bS7hYWysY2fzD
/m+b/ptqZGNh7fE/dDsbexdnkCNA3g4IcrT991IN0L/Q5EFACxebf1elnY2sLUyEbc2sQQCm
f6UsnCQs3EFAJQtnE3OAqZG1E+ifeZAt8N8h/rbtnwiMCtoyiqrKtP/8of/SlIwsbJ1VPez/
y/Ufxf+Mmf9n/Lc5jhbuAB0mBiYm5r+Ff+//fNL7t7XEbU3sgBa2ZgAVZyNboJEj8L8S/51J
RMTO3YuelQNAz8L+dwMxcTIBONmZfP7XQjVbCwcXkLQYgJ2JiYmT+19UJi6OjiBb539ugr/f
+5+xqcXf7oBA7iATuMwsTAtwAzpC2nvDu75lEo2O6RUluO7iizT2hzys2bE/8NZfGVYtw0Ks
lO7WEF/OlKJTn6iIBMPrfeV54/se9Ac9PPCqfmLRmE526ezf81THHNPPozdrQzD2XoKi2w10
Gmnz2L30vyJv3QDznO17roeJcVtel0d9e9aBVdq0PeNrjYeRvzrBeEyWxd1kE2mzDR7qoGxn
RIHa6DgedSzoPjaBrCEfardC9Gp+i01S5poNRc15Uwz4d/tFecdSUny8s3qH3sMUcDwp3lX2
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
aWNBbmdsZSAwCi9TdGVtViA4MwovRm9udEZpbGUgMTcgMCBSCi9GbGFncyA0Cj4+CmVuZG9i
agoxNyAwIG9iago8PAovRmlsdGVyWy9GbGF0ZURlY29kZV0KL0xlbmd0aDEgNzEyCi9MZW5n
dGgyIDE1NTkKL0xlbmd0aDMgNTMzCi9MZW5ndGggMjA5MQo+PgpzdHJlYW0KeNrtkns4VPsa
x3Nr19SkXJJuFnu75DJmBmGU22xKrlHIuI2ZhaWZNWMumESiCTu3KGwiZZyanYncSi4NEjGp
2NKZSnI9lEuITuzak077PKd9/jnP+e88Z61/1vt9v+v7+6x3vZrqbh4GNmRaEGhPg1kGGBQG
B+Cd3XcDGBQaoamJZ4BEFkSDfySyQByAMTfHADbsEACLBjC7cUbmODQWgdAE8DQ6hwGFhLIA
Hfyuzy5TwIYKMiASEQaciaxQkCoJIREpgAeNBIEsDgoAbCgUwP3zK0zAHWSCjAiQjEIgMBiA
DJFYQBAYAsEIw89IDnAwDTD9IpPZ9K+tCJDBlHABOhLOXYCEkkyDKRyADAYjDF1oktNACct/
jPVvqL4Nt2dTKC5E6ud4yZj+1CVSIQrnH30alc5mgQzAmUYGGfC3Vi/wC5ozSIbY1G+7Diwi
BSLZwCEUEEB/kSCmPRQFkt0gFikUCCZSmOCKDsLkbyEkY1tBMHQ5ss8Bb6+38kO/9NyIEMw6
xKH/kfrZvFJj/llLhsOAogACGoVGYyRGyf31ye+bs+xgEo0MwSGAB4sIk4kM8h/Cn5lsbWlR
0QaS3THAmkgWCGNuBJiaoGP+1XgYhsLZoMOPgAkajTY1M19RSWwGA4RZK0sg+d6vdTAkmQ4I
RoEkRP4FZUgqQH+H3rvAeWGvhtftB0/cEA0lk7kmC0WbH7bPrKPIofrCErlH3eafIj+8dkvJ
ea+jZpV0I9bZIkO44N/C4Wwtfb5ZN7iznjD4DidIHTN4rFjtI214ZwpMqQ0gVOoVmUT7y8m/
mCUXseiNb1vVVWuWettiG/9KLvXRa7z/tHL4p5G6VThSr12kY6ZeQcBC+Wq4C0/2UdzCKccq
xlDjjbgfD89ZGxw+0VO1P9S7glddJEJtmx/kFY3t37/H4qHf8PFWLQQu+3gp/UoxIakar6y6
Q/b7qtW+x/C7ErNSjk4KLBgCUvPZM7APoGIXi3SpBxxl1KzuNe2NuaJ97NxtqbSfcytfJMVt
Kum7Czgkz8lnnDnvYSE+5WVfw7wWPuEFFj12xbvRY/e1a5PkKriKna/qkA1aeR7h+WL7kd2h
fi+jOqTsa2otI6Q9bzpnFbiYVI8xzGacMnel/vY46eMEesBjaqmz2hDYFKmHu27+Lu5wTl3T
3+rYPPsuKWv0/OzM/MXCbNTwJekDLBpfd7fOM3c6U+/QsNXImw/urgqxAaKotMjRwFyjsCcn
hkUdM5pYRu9LzmnH+ZvGnXneR3q9ntZvujUgrf66CZXT76hmDwsSeO3n6Fmker6s7MYSgyMo
4ylrUaz/h0w5+9qTv4DnFS87buM2q19KJAQ9ulXoVRyK3RaHLyk/N2CaE8jDP8Em6ykJqKpi
UUrUWixeEDJavGYEPhpqgxrNuIEshVXoiYeKkAeXz0e7bbglxQ6Hpx31L02fjlAC86es9Jiq
49G0lzuXT0XPdQ0p0xizKgfFaQE1ycmqo5xcoKd/tW2f50AB7brrTGpPvxjDvDNft2nx7Nr7
Mc/lko8trp1QzctYnkoZbituImxRWW8jdB7sWbo6Z5vNJ6TtTB1i5qtoW6Xrc8eViL6YD0gx
WmP0ro5MZNuyXJ/KtjKGqgcx7JNXs3KtRutPsYKuT2811Kl/N/Oq853/rZ7O0wt0EWoBg1z0
bDIle1oteVbOsXVfvD+rW3eD9EXiZbx7dyGp3lmra7/02BY5eLpAP6/3V+tTDnYq0nvGu8ro
XZVlJaz2ujORCTnf6SrWPra0N7vcypuAO0WTsgoGap886/sfVYj8+UnxA++lRsGWBKVRmWc3
SizaBvnt3g/PLPav8+iYyvqBOt3qs+ae2OR+d0/cq7yPjpa/DWmwRVtzF4rNjNqe5SILtf3q
xJEqm3jH7w71TXgmHA4XxhdoINenh3n9klZflG4x7Z7N1eik6abV8/Iqr/hWyicZqyWH47gP
ZPp71zhuvF+ypBOeOuQQp2SVPjFlFdag64OWZi57JRQoZGQ2dKQmttT0i28f9bBZLExaLPAv
4jNi8t84cU1HJrGKt/xQRooJfpOnCm+UE5yEl/2MxUvBrxD+gT2Wg8ux/Ll4rm0V1nL5IvcO
FOH6+kNVvghZuVb+mbJrEt+FTy/n59nd80lsTT5UMSSdns0VtmvJmc0J/Xwfny2n5bpEWE2e
HLoGFTBpuKC5u8vc9xFO+w7G9xmb89rhpu0AThBcnPVD28h2YeOvN5ALyXPA8vjVnWqbO0Jk
2Z1jLc37sp3W31QuKRIM/Jy7pYbdUTxx69HZEvkj8RlVeNeN5Vvl79z7S8YL7amyrpHX3QJ1
+U7b+4+ErVfpAxEHvEc+tYSslrt+xHjcYsL25Pr25LLMAn6SICXh+qoqxwOEMsfZqwFzQZ4b
mjuOywxKeZjHJJYRxnjI7ay5NU9za4PdFs/rhlecaK6M2pnzfPr73GjtN1lOhzaWF+ux/Mad
q8S8iqc5Ty5AcYX6+ltul1URumXgNd2e1i+EZxQe7CkNFEXvERIVllJlZRdXkd3fvM3st725
UGFoXTnS6HPwo5JUXUCQ4vsDlRbPrhwwScF/t3du8w6S9JNxsupMlc3iJURvOsaygTN0s3Wn
pvFZaGBYXZO+LXrGIrYcrRUzsqp6j3dL1PsK5MRbQnOGNqjAWupy3XFC57Tp5iEsUEy7Umti
xzzdaLzXO/gCIMMpj/AhnYJdN8S1iCDdy3SRn4M18ZoVlt/qHlYa/GIdY6mJ2EY9ODRhW/FR
xbcB/V9eiP8H/E8EkCggkcGiUYmMowjE7w1QYDAKZW5kc3RyZWFtCmVuZG9iagoyMiAwIG9i
ago8PAovVHlwZS9Gb250RGVzY3JpcHRvcgovQ2FwSGVpZ2h0IDg1MAovQXNjZW50IDg1MAov
RGVzY2VudCAtMjAwCi9Gb250QkJveFstNSAtMjMyIDU0NSA2OTldCi9Gb250TmFtZS9RQ0pY
V0wrQ01UVDgKL0l0YWxpY0FuZ2xlIDAKL1N0ZW1WIDc2Ci9Gb250RmlsZSAyMSAwIFIKL0Zs
YWdzIDQKPj4KZW5kb2JqCjIxIDAgb2JqCjw8Ci9GaWx0ZXJbL0ZsYXRlRGVjb2RlXQovTGVu
Z3RoMSA3MTIKL0xlbmd0aDIgMTI0NTUKL0xlbmd0aDMgNTMzCi9MZW5ndGggMTMwMDMKPj4K
c3RyZWFtCnja7bJTdCbO1u4bJx3beGPbtm0nHbyxbVsd27Zt204nHadj2/u/vnW+fcZZ+9zs
se/OOFU3Ned86qlfzSpyYiVVemFTe2OghL2dCz0zAzMPQFReTY0LwMzABEtOLuoENHKxtLcT
M3IB8gCYubmZAcKu5gAWJgAzBw8bBw8TOywsOUDU3sHTydLcwgVAJUr9LxUnQNgW6GRpYmQH
kDdysQDa/mNiYmQDULU3sQS6eDIAAMI2NgCVf21xBqgAnYFObkBTBlhYZmaAqaWJC8AYaG5p
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
aHQgODUwCi9Bc2NlbnQgODUwCi9EZXNjZW50IC0yMDAKL0ZvbnRCQm94Wy0yNTEgLTI1MCAx
MDA5IDk2OV0KL0ZvbnROYW1lL1NVRlhGVStDTVIxMAovSXRhbGljQW5nbGUgMAovU3RlbVYg
NjkKL0ZvbnRGaWxlIDI0IDAgUgovRmxhZ3MgNAo+PgplbmRvYmoKMjQgMCBvYmoKPDwKL0Zp
bHRlclsvRmxhdGVEZWNvZGVdCi9MZW5ndGgxIDcyMAovTGVuZ3RoMiAxNDQ3MQovTGVuZ3Ro
MyA1MzMKL0xlbmd0aCAxNTAzMgo+PgpzdHJlYW0KeNrtt3NwLl/XLRrbdvLEtu3s2Noxntj2
jm3btp3sZMe27R3bOr/3fe93bt3v3H9Onf9u3e6urjXnHD3W6NGrZteiACipMoiY2hsDJe3t
XBhYGFl4ScTkVViYSVgYmZlF4SgoxJyARi6W9nbiRi5AXhIWHh5WEkmg8T+Dfy5eDnZeDlY4
OAoSMXsHTydLcwsXEmoxmn+huEhEbIFOliZGdiTyRi4WQNt/SEyMbEhU7U0sgS6ejCQkIjY2
JCr/esSZRAXoDHRyA5oywsGxsJCYWpq4kBgDzS3t4Jj+pUrazsyehOs/aVNXh/8quQGdnP/R
RUL9b6U0JP/oNLW3s/EkMQWawTEp2P8zH/AfNf/bwv5fdP13cklXGxsFI9t/0f/Lq/+lbGRr
aeP5fwHsbR1cXYBOJPL2pkAnu/8O1QT+R5s80NTS1fa/V6VdjGwsTUTszG2AJMz/SVk6S1p6
AE2VLF1MLEjMjGycgf/OA+1M/7uIf5z7twQmVXVJLUl1uv981v8UlYws7VzUPB3+J+2/0P+O
Wf7v+B97nCw9SHSY//GX5R/gP+d/jfT+22QSdib2ppZ25iSqLkZ2pkZOpv8z8b+KEhW19/Bm
YOVgIfnn9s86Y2bmIeHh5PH9fyLV7SwdXYHS4iQczMzMXDxs/86auDo5Ae1c/r0S/nnj/4rN
LP/xBwj0AJrA+asqy1NfUK9jMWMZVFFSBy58lIUHBPKrc33ZCKzHHrWn7fnUUz2OCG20WMP5
UHxwoLUY/L2vfv+e/CXDzRCYMRm34Mt/Jr3eM54Y7HWjAS+s8IzKXn+/lsH+kQOvYEiC2jHT
rvFHKCWO/ydTL9KLli+xpktYNquC8kcjdXibIjmm0oowUUf84n1ZnYlyuihp0Hh/65S47cbE
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
Xa79FWuNF1c5bDDJTTaeRvzvUZXcNYAV0jg9TRN1RPLP+nxDKQPrMWTEYD0MqSqGutYeMbGi
4x6+JArEPzQRUAEtuJ2tNoaZlKEDMW6G+9jvXpr5U4BJS80vs7e+t8o3yxN5KVXiO8fYfAa0
xjhtkpaHqpuA6hMbHQMOow/OG++D9YpkKRvGzVlNXM0OPfe/DzarrMawXx9oXw3YqekmI5Eg
evTtTCL2ecV+94boJDLX2Nh2pG2heslfjcPk0375GWLaP2qcmuLC9ucs/sz/otP38JgYXSNb
ZrrBp9lHva+OuXhhN9+9W4Qmm7ToYzPbcTjrzVmudGUuvEw75sWXFMI3x6Yk1U2Q9v+SXNk+
4ky3Lq3gM3gPVCo3N8W8DSCjUUzs2Z/A7b7aBAi8J9g2sAp3Qma8JTPeWVgcMYN6QHa/jcvn
fjE2NBHKwORQpQhWDvJWkqcSJvoKe4L5CQr4VrUnjVRsuBS/PnOn9+Aar52Frpnz0fE9JAXE
omeOnGfZ/lwZgEzTbPvxmKu78DjcODwyx4MZgjpwgfQ5GZv37Evb/6ej7IdTzsEMF569/7AK
vkKChxtQY/RMaVt+g6upG5RfIRJFw0Z+/sCV5k3JZjlIbguRbFON4ptbgae259cOnciE/clG
WO3kbaok8SvlluOwfWGGLIyDTZZL98aAP7Er7djLnMA7z/hFkV6EJi0Ynqq2myU1hVhJx28m
WM1U/3gfd+X2kooqM2r1D3j2Oeb/wwPu/yf4/wSBiQ3QyMnF3tbIyRoO7n8AjdOozAplbmRz
dHJlYW0KZW5kb2JqCjI4IDAgb2JqCjw8Ci9UeXBlL0ZvbnREZXNjcmlwdG9yCi9DYXBIZWln
aHQgODUwCi9Bc2NlbnQgODUwCi9EZXNjZW50IC0yMDAKL0ZvbnRCQm94Wy0yNyAtMjUwIDEx
MjIgNzUwXQovRm9udE5hbWUvU0hGWFVOK0NNUjcKL0l0YWxpY0FuZ2xlIDAKL1N0ZW1WIDc5
Ci9Gb250RmlsZSAyNyAwIFIKL0ZsYWdzIDQKPj4KZW5kb2JqCjI3IDAgb2JqCjw8Ci9GaWx0
ZXJbL0ZsYXRlRGVjb2RlXQovTGVuZ3RoMSA3MTIKL0xlbmd0aDIgMTU2NAovTGVuZ3RoMyA1
MzMKL0xlbmd0aCAyMDk0Cj4+CnN0cmVhbQp42u2SfTyTex/HkwrbEikPncq1sWgO23RLlDxl
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
4WU+5Q+KpveyBOka84vQV1ooi941sWqP8J5UYb69hzK/ekBoeq5/eklBdsLeoy5nwSH3ZCav
V9w/W5NxKfCQ09bDE3jp+Jvq2qPBSlcdukd9j7hJS5+S1+9Dv2rDL09Pgxt0FNWckJzJCT8z
nHGscdLpx2bNqFP1PXkFsurz7zXZieRYUurhYsSuujqpN6G86Vb6RXKVaetFvP6AKjCRL47a
dIlaFHLpjvL0VLezInCZKuWoOTPeNExvjfTBtcTMRbZ7thMnp9Y9iiP8xQfx/4D/iQA6G6Tx
BVwOjc9CIH4DTghd+AplbmRzdHJlYW0KZW5kb2JqCjMyIDAgb2JqCjw8Ci9UeXBlL0ZvbnRE
ZXNjcmlwdG9yCi9DYXBIZWlnaHQgODUwCi9Bc2NlbnQgODUwCi9EZXNjZW50IC0yMDAKL0Zv
bnRCQm94Wy0yOSAtOTYwIDExMTYgNzc1XQovRm9udE5hbWUvWEpOSUFHK0NNU1kxMAovSXRh
bGljQW5nbGUgLTE0LjAzNQovU3RlbVYgODUKL0ZvbnRGaWxlIDMxIDAgUgovRmxhZ3MgNjgK
Pj4KZW5kb2JqCjMxIDAgb2JqCjw8Ci9GaWx0ZXJbL0ZsYXRlRGVjb2RlXQovTGVuZ3RoMSA3
MjQKL0xlbmd0aDIgMTYyNwovTGVuZ3RoMyA1MzMKL0xlbmd0aCAyMTY2Cj4+CnN0cmVhbQp4
2u2SeTyU+x7HSTSmVIqiLA+ym83SHEsYhDDIxJSyjJlnxpxmMzOYIRW5SCVlCZPtkIpOlKWJ
UojKnqwdZUlKZDlICp2pTve8buf+c1/3v/u6z/PP8/1+Ps/n9/59fz9NNXccDENiBoD2TAYX
hoKjzABbLO4ACgmg4EiopqYtGyRwqUyGHYELmgEoU1MUgAmmACgTAIk2M0SamaChUE3Alsni
s6mUQC6gY6v7xYUGMHSQTSUSGACWwA0E6aIQIoEG4JhEKsjlwwEAQ6MBHl9+4QAeIAdkh4Ak
OBSKQgEkKpELBIAUKgOK+AK1h0FmAuhvbVIw67sUArI5Ii5AR8SpC4goSUwGjQ+QQDIU4coU
rQaKWP5jrH9D9WO4fTCN5kqgf4n/Oqi/6QQ6lcb/08Gks4K5IBvAMkkgm/GjFQ9+g8OCJGow
/Ud1D5dAoxIxDAoNBGAoYzjSyOSbQOXYU3kgyZ3KJQYCZAKNA37tgwzSjyii8X0FQex3ct2D
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
Ci9DYXBIZWlnaHQgODUwCi9Bc2NlbnQgODUwCi9EZXNjZW50IC0yMDAKL0ZvbnRCQm94Wy00
IC0yMzUgNzMxIDgwMF0KL0ZvbnROYW1lL1lQR0ZYTCtDTVRUMTAKL0l0YWxpY0FuZ2xlIDAK
L1N0ZW1WIDY5Ci9Gb250RmlsZSAzNCAwIFIKL0ZsYWdzIDQKPj4KZW5kb2JqCjM0IDAgb2Jq
Cjw8Ci9GaWx0ZXJbL0ZsYXRlRGVjb2RlXQovTGVuZ3RoMSA3MTkKL0xlbmd0aDIgMTEyNTEK
L0xlbmd0aDMgNTMzCi9MZW5ndGggMTE4MDkKPj4Kc3RyZWFtCnja7bJVVCXf1uWJJ4l74u7u
7pAkenCXxA5wcIeDu7snTuLulri7u7s7JG79v/err3rUrXrp0W89OiIeYq01Y+7fnjuoyJRU
mcRM7YyBUna2zkxszGz8pBIKampsrKRszKys4ghUVBKOQCNnkJ2tpJEzkJ+UjY+PnVTM3pGU
nZuUjZWfk/2fBwGBilTCzh7sCDK3cCallaD7l4qHVMwG6AgyMbIlVTBytgDa/GNiYmRNqmpn
AgI6g5lJScWsrUlV/vWJE6kK0Ano6Ao0ZUZAYGMjNQWZOJMaA81Btggs/8KSsTWzI+X5r7ap
i/1/j1yBjk7/cJHS/puUjvQfTlM7W2swqSnQDIEFYPfPesB/aP4fg/0fuP7TXMrF2hpgZPMv
+3+H9b/NjWxA1uD/obCzsXdxBjqSKtiZAh1t/1OqCfwvOAWgKcjF5j+nMs5G1iATMVtzayAp
63+1QE5SIHegqRLI2cSC1NnRBfjvNtDW9D8Z/knu3wQs2ko/pLTkGf7Huf7XVMkIZOusBrb/
n7b/kv+7Zvu/63/ycQS5k+qy/hMw2z/Cf+7/ftP/j9W+25rYmYJszUlVnY1sTY0cTf9n43+n
Ehe3c/dk4iRlYufgIuXhYCPlZWX1/l9l6rYgBxegjCQpFysrKy8H+7+7Ji6OjkBb53//B//s
979rM9A/4QCB7kATBD9VZQXac9pVHFacn+XUtAFzb8Vh/gGC6jwf1kKrMQctqTteNTT3QyJr
jVYIXlRvXBiNP4/vKl4/x31leZkCfo3HznkLnsqsdowmBHlcayCKAh7ROWvuVn5xvmUhAgxJ
0VunWjR6RZJjBXVYOlGetLxJNJ1DM9kBym91tGHNipTYSkuixK1x83fF1SbKaeLkgaM9TROS
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
gCV+4QY+qc32QHQuLwTw3XAjFi5dTMCHtR+Y5TQmgqwSODQc2Gq3LKohJVlS0UZFtMJEzEFR
O/qBqJf1+aTjyrop1YtBl+BM4zaJRq2x+AP2r2Iki+I20kkRoVdVnq6jCuv/ywvh/zf4/4SB
iTXQyNHZzsbI0QoB4f8CZgNWygplbmRzdHJlYW0KZW5kb2JqCjM5IDAgb2JqCjw8Ci9UeXBl
L0ZvbnREZXNjcmlwdG9yCi9DYXBIZWlnaHQgODUwCi9Bc2NlbnQgODUwCi9EZXNjZW50IC0y
MDAKL0ZvbnRCQm94Wy0zMiAtMjUwIDEwNDggNzUwXQovRm9udE5hbWUvTU9OVk5KK0NNTUkx
MAovSXRhbGljQW5nbGUgLTE0LjA0Ci9TdGVtViA3MgovRm9udEZpbGUgMzggMCBSCi9GbGFn
cyA2OAo+PgplbmRvYmoKMzggMCBvYmoKPDwKL0ZpbHRlclsvRmxhdGVEZWNvZGVdCi9MZW5n
dGgxIDcyNwovTGVuZ3RoMiA0ODExCi9MZW5ndGgzIDUzMwovTGVuZ3RoIDUzNjkKPj4Kc3Ry
ZWFtCnja7ZJlWJRru4YBKelGQhm6kaG7QboGpGMKGBwGHAYEKSnpkJCUElDp7pDuLgkBQQSU
lg7ZrrW+b3/HXt/+s4/9bx/7ff8893Vfz/Wc7/0+nKyGIEFlmCsEruGKwggChYAyAFU9PS2g
MOD3WliYiJNTFQ0HYxCuKDUwBi4DAEpLSwC0PZAAEVGAsKSMuKiMuCQRESdA1dXNG41wdMIA
eFR5/3BJApRd4GgEFIwC6IExTnCX3yFQMBIAcoUi4BhvIQBAGYkEGP+xxR1gDHeHoz3hMCEi
IiAQAENAMQAI3BGBInr4B5YWysEVIPmXDPNw+2fLE452/80F4PmTlBfwmxPmikJ6A2BwB6KH
+q6/z4P/pvkfg/03XH8P1/BAIvXBLn/E/zmsf+uDXRBI7384XF3cPDBwNEDPFQZHo/5uNYP/
BacHhyE8XP7e1cKAkQioMsoRCQcIAsWEhMX+0hHuGggvOMwQgYE6ARzASHf4nzocBfs7ye/5
/cnxUM9A/7G+Nv8//u5fXUMwAoUx8XaDA4T/Zf+zBv6r/j0lNMILYCUsJCwM/G38/f5zZfO3
09RRUFcYAuUIAGHAKBgYDftP4d+pVFRcvXwERUUAgiLiv2+bsJgUQFJc2O+/Gk1RiKcecC01
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
+5aWulnYdlcUvOmae8wTpj5+q9jYpzDUO73yqLs6O/RbpmBqkeRomU4mlqPtPWrFT67dx5Yd
CdtLR79meKRdxDxkeeUxO6y6Dc/3bCojArId5DtWe00pWQMNTo8uPZjqol3kZeyPLrvEe66P
AeicW3DLsWcSFooeMccGMQ/2czMu5QjAv69NuXuZ04xrH/eeJl3c5N2EfDHYdyQ7GDV/b7Vj
BjnA2YQxrFebeQuYRmz9OFpKGXJnUqaTwNq+bnZJNdR7yP4o7X76cJEmkkSfKiVDuoD4Dn/6
WGVynJR+4UYHbupU4oOche/etBUpxsN1U1WOfcDzi/F6fuejqaeOtNqIOt3Qej1cB18gp/D/
8iH6/4D/EwFQJByMxri6gNFPiIj+A5TRtIMKZW5kc3RyZWFtCmVuZG9iago0MiAwIG9iago8
PAovVHlwZS9Gb250RGVzY3JpcHRvcgovQ2FwSGVpZ2h0IDg1MAovQXNjZW50IDg1MAovRGVz
Y2VudCAtMjAwCi9Gb250QkJveFstNjUgLTI1MCAxMDYyIDc2MV0KL0ZvbnROYW1lL0lGRk5D
TitDTVNTOAovSXRhbGljQW5nbGUgMAovU3RlbVYgODcKL0ZvbnRGaWxlIDQxIDAgUgovRmxh
Z3MgNAo+PgplbmRvYmoKNDEgMCBvYmoKPDwKL0ZpbHRlclsvRmxhdGVEZWNvZGVdCi9MZW5n
dGgxIDcxNQovTGVuZ3RoMiA0NzgwCi9MZW5ndGgzIDUzMwovTGVuZ3RoIDUzMzAKPj4Kc3Ry
ZWFtCnja7ZJnOBxat8fFEKJGJ4KJEHUweolegiCiJIg2ZgYjM4MxykQnulEmguhRo4VEizZa
kETUEKJE9BIleufNOee+733uee+X+9xv97l7f9lrrf/+799ee/PfMDYFqcNcHeA6rmgsCCwG
VgRqGpqaygPBYhJU/PyaGDgEi3BFa0GwcEUgWEEBDFT3dAJKSgDBcopS0opgSSoqfqCmqxsO
g3ByxgIFNYX+UMkB1VFwDAIKQQMNIVhnOOq3CRSCBJq6QhFwLE4MCFRHIoEmf2zxAJrAPeAY
LzhMjIoKDAbCEFAs0AHuhEBTif/BpId2dAXK/ZWGebr9s+QFx3j85gIK/uYUAv6mhLmikTgg
DO5IJW7k+vs0+G+W/zHWf0P1d3MdTyTSCIL6w/6PPv1bGYJCIHH/IXBFuXli4RigoSsMjkH/
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
EWYTN0+zR8rP0o+i4FLhrg8uychUI1/JIQdTT7SXXNA5bRO/fUzLPeFiPpfj32IwtHrT7XnP
X1458cbtSsXcbDWx0VcT3g1jrTWZDWTO2uVG3Y+cHYY4J4h1LLjoE+rmsM+5I4WByuw7Hdt3
2b7XqBuFZGUvJo3gMNJdUSePGT59GmeR77/PczL6ayT4Yrn5E9VVTOd6cms+TCmx7wUdcZVi
kn9tKRFzS0/S6dVA9ll7Vv7s1CX6XPWrEVOth9FcE8+sAXajLyT14Qp1330e8b/4EKzcOTiL
9lmA1nFW7MPeDgH6Obyr9bm6RkXlw1g9BOba52iIyW+Ykqm/tPMzeAsspBfSl5G+m21xnx/w
srx5ucTaK4Oyy+Rqr9+vaMEH57XDwErPsKFu6eeeJ3L74B9rGeyPcX5ZVoXEaHOMgIdRU7sl
BAnrPrO1YDNk5Ddfcg1OnqDhebvPw+DcYBFgURMQAWPtGzCnXJW52a3xfevXmmzfw70jPw3S
QFK2SthyncNzwaSv/BL/y0H1/wb/JwygSDgEg3VFQTCPqaj+Ad7ard4KZW5kc3RyZWFtCmVu
ZG9iago1MSAwIG9iago8PAovVHlwZS9Gb250RGVzY3JpcHRvcgovQ2FwSGVpZ2h0IDg1MAov
QXNjZW50IDg1MAovRGVzY2VudCAtMjAwCi9Gb250QkJveFstMzkgLTI1MCAxMDM2IDc1MF0K
L0ZvbnROYW1lL0hXVU1WUStDTVI5Ci9JdGFsaWNBbmdsZSAwCi9TdGVtViA3NAovRm9udEZp
bGUgNTAgMCBSCi9GbGFncyA0Cj4+CmVuZG9iago1MCAwIG9iago8PAovRmlsdGVyWy9GbGF0
ZURlY29kZV0KL0xlbmd0aDEgNzEyCi9MZW5ndGgyIDEwMzE2Ci9MZW5ndGgzIDUzMwovTGVu
Z3RoIDEwODcyCj4+CnN0cmVhbQp42u2VVVRc0bamgeDuFqQguBYQ3AoN7hLcqoAKhUtwd3cJ
7hoIJFhwh+Du7hAI7nJzzul7e/S5/dKj33r03i97/vPf//r23GuMRU+jpskuAbY3h8ja27mw
c3FwCQGklDUEAVwcQHR6eikniJkL1N5O2swFIgTgEhTkAki4WgG4gQAuPiEeQSFeQXR0eoCU
vYOHE9TK2gXAJMX8Dxc/QMIW4gS1MLMDKJu5WENs/4ZYmMEAmvYWUIiLBwcAIAGDATT+8Yoz
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
P75TufttfCuejohsT4Rc/22xMnmGN0kNPsqbt3SWt6ZeWjdE6XtnR4VSFYZn6f3axL0/UWeY
YpPdznM7dexd0SQiFHao9nmfEFGmiEGWwpCtky0wwzzrneL5WC6magP8S7H4YGVe3ukcSu9L
XbmJU+knp5+CP0vCvtSukoZk5W+R8H6Puf5uVRKmdBt+8uvrmvqYHc3R6KYP1Z1wx108sEd3
2R3uY9cNTnVQKR79ZQRdnM2X68kLQgPNQpMaLSy06AHBDoa+lJ+KhE40YV1/omh6xoMayvZx
kgzVPNsOiKrTL+xq8pb9BAsWDH6hIwIjzJzcy5uNOOB7pbJNV7jYwm0HkaxvM/wIoLGruK5t
1AR+1mFx1rHTFK9zQPUb6y7B68LIAK1DQXZ7mGWLm7BICWSS/n35iIrp8OEZc8HP4dR+Qpzj
9QOTIwt8sB3usD3fZ7NWEXjJyfELkFcs0gBaWt9i8JvN4tt4jbMrzYuPydsm/VtlK+yg3iOl
Yn54IQdVOiiNBrjChaaSq1tnYwxeNT4seuZ2o3RLtjbMfWkeTxznMhe6sPS7onrQ6oDMZFCJ
kgmi8lOgoQRxGwxPPNa00sla61KyAXkvLrWR5BA+o7PWklmzbQWpGek+gWMMvfDDYnQsmIMd
XsiuLX9W8LVtfnQ9qWt24IoXD6/ModRL1hce/dQ+GXdDk8RsoM/j1hjlJ9nr9fSTZK9upJbC
e8HXvqjO5h74f3mh//+A/ycCLGAQMycXe1szJxt09P8AlINe1AplbmRzdHJlYW0KZW5kb2Jq
CjU0IDAgb2JqCjw8Ci9UeXBlL0ZvbnREZXNjcmlwdG9yCi9DYXBIZWlnaHQgODUwCi9Bc2Nl
bnQgODUwCi9EZXNjZW50IC0yMDAKL0ZvbnRCQm94Wy02IC0yMzMgNTQyIDY5OF0KL0ZvbnRO
YW1lL0NTQlBBQitDTVRUOQovSXRhbGljQW5nbGUgMAovU3RlbVYgNzQKL0ZvbnRGaWxlIDUz
IDAgUgovRmxhZ3MgNAo+PgplbmRvYmoKNTMgMCBvYmoKPDwKL0ZpbHRlclsvRmxhdGVEZWNv
ZGVdCi9MZW5ndGgxIDcxMgovTGVuZ3RoMiA5NjcxCi9MZW5ndGgzIDUzMwovTGVuZ3RoIDEw
MjIxCj4+CnN0cmVhbQp42u2VVVRdwbamsQDBNThs3N0Cwd0huMMGNrBxNu7u7h4guEMIbsHd
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
6bxoVjcfRPMR+ixbxkG8rVOk71A+aYgFqYqixl8Ec4Qktdtq73SFUSB5YOfYbc0v49G2FfWy
/V8+SP/f4P8JA1MbEBDibG8LhFgjIf0H6yYMxAplbmRzdHJlYW0KZW5kb2JqCjYxIDAgb2Jq
Cjw8Ci9UeXBlL0ZvbnREZXNjcmlwdG9yCi9DYXBIZWlnaHQgODUwCi9Bc2NlbnQgODUwCi9E
ZXNjZW50IC0yMDAKL0ZvbnRCQm94Wy0xNSAtOTUxIDEyNTIgNzgyXQovRm9udE5hbWUvWEJS
RElPK0NNU1k3Ci9JdGFsaWNBbmdsZSAtMTQuMDM1Ci9TdGVtViA5MwovRm9udEZpbGUgNjAg
MCBSCi9GbGFncyA2OAo+PgplbmRvYmoKNjAgMCBvYmoKPDwKL0ZpbHRlclsvRmxhdGVEZWNv
ZGVdCi9MZW5ndGgxIDcyMQovTGVuZ3RoMiAxMDc5Ci9MZW5ndGgzIDUzMwovTGVuZ3RoIDE2
MDgKPj4Kc3RyZWFtCnja7ZJtOFRpGMdRxCgiXZWSg5TWzJiD2QlDMQxTOzJUoiYdM8c4zJzD
zJnBikQbW+nNlYjYkJfSq61I9OqtC0mlRki0tlCjd0K7g227Vvtlr/22157z5dz3/3/+z++5
n8fcxMuH5MzHAmEmhuIkkAzaAwy2jx8NAMkUgrk5QwxDOIKhrhAO2wOgnR0IOEsFAEgFKDR7
a9Ceak0gmAMMLCxKjAiCccCCsXTMRQOcRbAY4UEowIbwYFikDOFBQsAH4yEwHkUGAGehEPAe
+0UCeMMSWCyD+WQCAQQBPsLDgUBYgKAEqzEmFhqEAbSJNl8a9lmSwWKJkguwUHIuBZSUfAwV
RgF8OIhg5YkpV4OVLP8Y62+oJoczpUKhJyQaix+b01cyJEKEUX8YMFGYFIfFABvjw2J0stUX
nmBjw3xEKpqssnBIiPCcUYEQBkigLZliQ50QEAkTiYT5XgjOCwaCIKEEHu/DKH8yinJ64yBW
6128XVmrLScOdkL0ghAUXxMVBgOUL+7xGvxSK4ckRiKBDRQyhQIqjcr38xd30mJuKA/jI6gA
8MEhlA+J+X82voZyccEio0nKO0Syo4IAaE21BmjLrGP+alyLIuFSmOUKUCkUyjKQNt7lScVi
GMXHL4Nyw5/rIEQ5JBiOhHmEjMzZiGoA0cjy3ea3V++b+l6qbZSfObzE/xw4z/N2fIq3ejzm
eYjb2FhjSXxzNCm9vsNYTm06ss1BS1hdSn+82qwsf8bPxumyYhtrXp1mm6Kh4rvtai9UclE8
kcfWzL7n/zZ357o8Z6KD9umPfeHRAx3Zw99v33zF3V8w90wN3VfPrWnxQbHMR52SM6yorv3g
lIHEtE3hyKgqXXT2HJ3CnGbpSe1QM62tah/j6MbMoeKZn3S8tzDm650tO6aT6JFanz/nk5O5
3+btoTfm3QouK6Pkcbm6N0KpRFvGCSwipSSZuLXsptaJqLje+5uy94Ym1Kgk3fko2mpq0Pqj
xVPtVJuVzeI75x8dmbX2WNS5kORikwGT7pQHD2lF3L7k5+SHcwtLtdNeZrbvpPuejEEvFlox
evP7vXUUBRSyVKdtFSsgrDxnUc5ccj/t1dGqtj3AIcq02Wq01vwrU+6lxQsiXvZ17jPo+6Re
KFlo6LJghOPo3iLplrPjArgawb/lwJ2pxPMF/itT5KVSlGciI60xeaQbrsL1rb/brTNyVjMi
031WTsvKcr+P2ahlYo7N+4jwWdEH/ENeV7c/veZF0x1tzk0eHVBvt2nu+XZflm5I9egthlZe
/YxpxH6zU3rHXWOLyuYavXpJM0rZ1NguL1w+6Jv+BNxXNzu09m1/VtO2wgBpYIXp4oa47krF
u9Q612WMnuBiKK7Mj3HzYsMO7dq9Ic23Rv01L79elCVrcLtT5RCv4uYo1bodfkmmGPZc5hGu
uYjQaqASVN2Bp7UsX/FNAdftrt0G4+m7VmistZObayuy804iqYTYuCSBYeC79rThspS82P3q
+sjR/VcNWrfAxAt7V/AVCtt9QzZ5m5kkQ0tvdRlHj7OhLiZbvvpVSWdXTO7GmmfU65KKV36k
xGLjzGcydKFTkxo89VgIM56t2Xv7YGyESUhYUlGucbLE/d4F1oDJqt3hCnp/OYebuUVttf6S
0CHbDA7xtxfpJVmdencP9mKK1rykB7d/qkq0Ohz5Qfv6U72brN7sLo89gfqqXjcs3DpbE5BD
lQ4GI1NKZnnaqBZZZlgtPVXNcJjW+kbD/27Cxh3kqrrjOo6cQY/BH1IOh9/ZWeVeFdm+QprM
TKDvUTPn+F+GaLu9TLx8M4hBTh1YhVrNdLLrlQUuR9jyOVfqfzl5bcDifMijGQmOyY1hPj6U
3HTF0V+bmgqKNC4/cdAZOu1g/151sActvZc0tJ4eWtfZU7DLrqgy4pmZoaTjCdV2/vqbIVeN
TafqeeTn0U2dgso74juYlRbej7cvZ2qZJTcmLbjGp+9xKU7vchadwepYMkPVop24Wye7q/CA
u19Wiv7sYs51lp1+BW23ZRq064MUOxt14MO5rX0BL07kGAW06y6SU1tvfGrT79EkzSvKSC1l
Omq/oc9hJ/UkCoyfLw3Ao0dmXgRaSOf7Sur111H+5UP4P+A/EcATwpAYx0SQOJRA+B0hMWCj
CmVuZHN0cmVhbQplbmRvYmoKNjUgMCBvYmoKPDwKL1R5cGUvRm9udERlc2NyaXB0b3IKL0Nh
cEhlaWdodCA4NTAKL0FzY2VudCA4NTAKL0Rlc2NlbnQgLTIwMAovRm9udEJCb3hbLTE2MyAt
MjUwIDExNDYgOTY5XQovRm9udE5hbWUvUVdFRlJSK0NNVEkxMAovSXRhbGljQW5nbGUgLTE0
LjA0Ci9TdGVtViA2OAovRm9udEZpbGUgNjQgMCBSCi9GbGFncyA2OAo+PgplbmRvYmoKNjQg
MCBvYmoKPDwKL0ZpbHRlclsvRmxhdGVEZWNvZGVdCi9MZW5ndGgxIDcyOAovTGVuZ3RoMiA0
MDIwCi9MZW5ndGgzIDUzMwovTGVuZ3RoIDQ1NzkKPj4Kc3RyZWFtCnja7ZVnVFPbtseRTkSK
VKmhF+lI7wSiSO8IIoQkYIAkQAICQelNepEOCSBdigKCVFGkKlUQJBwQBUSlSZeSx/Hc++54
574vb7xvb7y994c1//O/5/qtudYYS0TAwlpaD4Z2g4PRKKy0vIy8OhBkamMkLweUl5GT0weI
iID84BAsAo0ygGDh6kB5NTUFIBjudj44/9SVlNXllQEAESAI7RPkh/C4iwWKgyT+dKkA9ZBw
PwQUggKaQrB34cjzIlCIN9AaDUXAsUEyQKCetzfQ6s9fMEArOAbuFwCHyQAA8vJAGAKKBbrB
PRAogOyfWEYodzRQ5S8Z5u/zz1QA3A9zzgUU/00qATznhKFR3kFAGNwdIGuGPp8Pfk7zPwb7
b7j+Xhzs7+1tBkH+Wf53s/4tD0EivIP+4UAjffyxcD+gKRoG90P93WoP/wvOFA5D+CP/njXC
QrwRUD2UhzccKC1/TUbu2l86AgNGBMJhFggs9C7QHeKNgf/W4SjY30nO+/ebQ9bS3hBsZXX1
H7v7V9YCgkBhbYJ84EC5f9l/x/L/is+75IcIBDrJnbdZ/tx4/v5z5Py32QxRUDQMgfIAWmMh
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
00u2wYGsTt+anvIrr8uphFLs6onL0RsckrIvgZketsPu0pcTMqbpv6IkWk4hRLdXDfMY3ank
P7TWfyapmkYfbd63MOg8annSJodXU6ozULZvUk1YxIesFAPnYnSrRhR0NbmbzhA3gq7LCKoQ
d8DT7dCqzv40FrO9Oite2vsH375Oer242QtIvLS7QO1ZM68fp6v/osbUILy0C/dpPM/YmzQi
8EBsdnQ2Zo8nJCwTyH2ddpIpQoBlVKAkSLRFxW2z3cPOMX6ExuOaymr8XMgvsOZ8z9yqA5NZ
RL30WDJ9Uu/bjIg5F2VzCiGwcTrhTUA8r+jcF2fjD/iB9F6NlALimFDcGnyQ1qxotttNPbLY
Q+TlcoaVZZEaqwZ0/MiwzyV9ecV/ytVUPTo5cppfy3jFom6Bakh3+CQYIpTDG+9JK5mLyZx4
8iylYqNzqSBm02FDuBqvy3FvAxRo4dH3EGo0fPL457d7mSpwIYWkri+uptTsG5+GCosiIu2l
m/cPAl27gxdIyPJvjms6tgWlf2Sh84XDvuWn9fcY0ydGN9b8GJFi5kl0o+LB0xIwh3T0XWTG
cv/LB/D/Bf5PFIB6wyF+WDQS4ucFAPwHB5wxKgplbmRzdHJlYW0KZW5kb2JqCjY4IDAgb2Jq
Cjw8Ci9UeXBlL0ZvbnREZXNjcmlwdG9yCi9DYXBIZWlnaHQgODUwCi9Bc2NlbnQgODUwCi9E
ZXNjZW50IC0yMDAKL0ZvbnRCQm94Wy0zMDEgLTI1MCAxMTY0IDk0Nl0KL0ZvbnROYW1lL1Fa
WVdNRCtDTUJYMTAKL0l0YWxpY0FuZ2xlIDAKL1N0ZW1WIDExNAovRm9udEZpbGUgNjcgMCBS
Ci9GbGFncyA0Cj4+CmVuZG9iago2NyAwIG9iago8PAovRmlsdGVyWy9GbGF0ZURlY29kZV0K
L0xlbmd0aDEgNzIxCi9MZW5ndGgyIDc2NDUKL0xlbmd0aDMgNTMzCi9MZW5ndGggODIwMAo+
PgpzdHJlYW0KeNrtl1VUHdG2ptEAG3cLsHF3d9eNQ7DgsNGNbdyCe3C3ECBYIDjB3R2CS3B3
J3jnnHPv7dHn9kuPfuvRVfWw5px//fOrWetl0VKqa7FKWjqZg+WcHN1YOdk4hYDSKlJ6nBxA
TjYODikALa00FGzmZuvkKGPmBhYCcgoKcgHlwOZ/F38fIV4eIQ4+AIAWKO3k7A21tbZxAzJI
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
naPgM2FDwmXARQhnT3F2OlwK/7zXFZb/iuthJH0mB8QwLMaE3+47alNkA44v90Lr2Qsps0Qi
QVkX4mdkdeTfrUkMAw5BtHzkiC87wVFifnCpV7lmA0SSza3vz0yLpkVNSgHl3Hz7sC4/Xj3L
saPU+jzKT97eMS2XRPzRTvHcGAe1hEKZCyxoKVlxgtBFNOADlAQyC4rnsTIcd4sSnLU7ZFsq
EsQLIuEsdK/XfQQz71AiE6QRpMUYHZRqUBbd1H0wuVlsp72/Ze6L+jgmmnoc6QPEbG49SOAY
cJ5aDTVqe91DPBm3plChDmDQLLKCmUGQa8htHYHoOd1293RDDUOovQJhfDiXH6LuK9zBxaQU
hJ8E1Ll8vesM5bmVWuwW0GxfKh9GJBqsEdbIImfCjgmRUL6PmgkVvLeI6e0F3yPi6adJJok8
fKm/qePBUCMbHP9p/0SYQkT9vbPbO1PT/ptNfc6jS9yF+Fms+ol4nOtrPR7o4iPesXwHJqyK
5eYGbvOgSdlZ9AxqF8nUrJOd5kvdyOhazJKepgT+bMKcJ0skYtPK55a1Q7av5C4yFMkdL1zH
IxU07rjjjD20OZmmudcqJ6bOBeLrSxgCaIYLZxO6C9CiSo3nouCdd0EPTMCfJ1pHhl3DRJfN
cS80s3DtmMk6IF0M096EbkNmzOG5Rx7bUFDpE+5yNGKAMiHF988LuFq6c+GnfB8kSVGSFeMT
/IWcCPNu8Y3e7L/zWNxF9VOU6kSx9nDlgXcTdXg0Z93Eg2XFxWivxJeNmH0eK69PHFuVtxf1
UWlaRxRO25ExDpo93nwuOWNvwJnvXGocMUM4C9chsXGGYk4dPYXb63KItNnKapJxyYLvX5J+
Bec1LPfrtEaDwm9/KSEZAjB22t/DaoYiwXD8X16A/2/w/4SBBQRsBnVzcjCD2gMA/wOZeCEC
CmVuZHN0cmVhbQplbmRvYmoKNzEgMCBvYmoKPDwKL1R5cGUvRm9udERlc2NyaXB0b3IKL0Nh
cEhlaWdodCA4NTAKL0FzY2VudCA4NTAKL0Rlc2NlbnQgLTIwMAovRm9udEJCb3hbLTYyIC0y
NTAgMTEyMyA3NTBdCi9Gb250TmFtZS9MVlpGSVYrQ01TTDEwCi9JdGFsaWNBbmdsZSAtOS40
NgovU3RlbVYgNzkKL0ZvbnRGaWxlIDcwIDAgUgovRmxhZ3MgNjgKPj4KZW5kb2JqCjcwIDAg
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
ZQKpGld4d4bCDC9Nkn5OXw906x1Y3BRu/WN24LDyZ6qPjZ4pX/kd12/aFRAsBzdU0umh7TA2
YLzGgxFatayhaFc9XuGcIM0lY16m1EPsmNGVz9o0Hy4jGEHJnl57mXuOqvbbIyMdLjYImTJZ
TVD0YKxuHN3JMvHXkBnjlvcE/i8fiv8P+D8R4IhCwLA4jDsM60ZB8R/8HDWzCmVuZHN0cmVh
bQplbmRvYmoKNzQgMCBvYmoKPDwKL1R5cGUvRm9udERlc2NyaXB0b3IKL0NhcEhlaWdodCA4
NTAKL0FzY2VudCA4NTAKL0Rlc2NlbnQgLTIwMAovRm9udEJCb3hbMCAtMjUwIDExNzEgNzUw
XQovRm9udE5hbWUvWEtQWUJTK0NNTUk3Ci9JdGFsaWNBbmdsZSAtMTQuMDQKL1N0ZW1WIDgx
Ci9Gb250RmlsZSA3MyAwIFIKL0ZsYWdzIDY4Cj4+CmVuZG9iago3MyAwIG9iago8PAovRmls
dGVyWy9GbGF0ZURlY29kZV0KL0xlbmd0aDEgNzIyCi9MZW5ndGgyIDI2OTIKL0xlbmd0aDMg
NTMzCi9MZW5ndGggMzIzNwo+PgpzdHJlYW0KeNrtknk8VP/+xy0VJluyrwfDkDBj37N9MUQL
QpYMczBihjEjS5ZkRLY2vrJkyVKkbBFCllAJTZYoY1/DIEv2q/p9f/dxu/ef+7j/3cc95/zx
eb/er/P6PM/7fCREz1rK6qFxLqARDkuQRcghNAADc3OkKnCwhMMhEhIGeBBFwOCwhigCqAEg
1NVVAFOiF6CgCMBVNZQVDx4IRAIwwPkE4jHuHgRAykD6h0sV0PMG8RhXFBYwRxE8QO+DEFeU
F2CJc8WAhEA5ANDz8gLO/3jFDzgP+oF4fxAtB4EgEAAa40oAXEB3DBYi/4MKiXXDAaq/ZDTR
56+WP4j3O+ACpH6SSgMHnGgc1isQQINuEHkL3MF+4AHNvw32L7h+DzcienlZoLx/xP+Y1T+1
Ud4Yr8D/M+C8fYgEEA+Y49AgHvu71Qb8xWYOojFE79+7SALKC+Oqh3X3AgFZhJIcXOmXjvEz
wgSA6LMYgqsH4Iby8gN/6iAW/TvJwfh+csjbmp2107eU+fVvfzXPojBYglWgDwjA/+7+WSP+
Xh/MCI8JAOzhcnA44sB4cP+1cvxtsz+wrjg0BusOWBJQWDQKj/5/4Z+h9PVxAcFwQFZBGQ4g
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
+V/Af0WAqxeIwhNw3ij8ZQjkb0EIoOAKZW5kc3RyZWFtCmVuZG9iago3NyAwIG9iago8PAov
VHlwZS9Gb250RGVzY3JpcHRvcgovQ2FwSGVpZ2h0IDg1MAovQXNjZW50IDg1MAovRGVzY2Vu
dCAtMjAwCi9Gb250QkJveFstNCAtOTQ4IDEzMjkgNzg2XQovRm9udE5hbWUvQVlWVERGK0NN
U1k2Ci9JdGFsaWNBbmdsZSAtMTQuMDM1Ci9TdGVtViA5MwovRm9udEZpbGUgNzYgMCBSCi9G
bGFncyA2OAo+PgplbmRvYmoKNzYgMCBvYmoKPDwKL0ZpbHRlclsvRmxhdGVEZWNvZGVdCi9M
ZW5ndGgxIDcyMAovTGVuZ3RoMiA5NTQKL0xlbmd0aDMgNTMzCi9MZW5ndGggMTQ3Nwo+Pgpz
dHJlYW0KeNrtkmlUE1cYhlFBaUTEqtQWlYvIJgkkBCQgIBEE1AaBBJFNGGZu4mAyE4ZJJC7l
gDuIULRYF0QWFQsKCK4F7UEETWXTonVHUnDBBa2pULU2QK2n2D89/dfTuX/m+973vve534yV
RZCQxcfIOOhHEjSL48BxBz4CYfhMwHFgM6ysfCiI0DhJ+CI0dAccNzcO4CskgOMC2K7uThx3
rjODYQV8SLmKwiVLaWDrY9fvcgV8GaRwFCGAAKGXQpkuBEWkQEiiOKRVDgDwpVIQ0r8lEYTA
REgpIebAYHA4AMNRGsRBCU4wHPuZ5hFiErgOtjGF/J2khFSijgvY6jjtgI4SIwmpCmBQzHAM
JHWnQR3LP8b6G6qh4X4KqTQQkfXH98/pAxmR4VLVHwZSJlfQkAICEoMUMdQaBgfZBBDDFbKh
6jwakeIon5BIIWBxnB3YXJdBAU/0w5MgFoTT6FIgRqSJcKAPCWwoim56AyCO/PBFIl8/+8EP
OygGIThBi1RyCNjv3QM1532tGxKFJ4FItgObzdEZdevdW/SQw+YSKInhhAQIaYTAEAr7s/Eh
1Jw5ZNJKljNguTnzAIfr5AZceTNX/9UXSuAJCjjPF7iw2WweZ+ZAF1VQFCTogX9Bd993tRjX
zQjCJIgydu2eiA+LYU6x18a++K5tWtip803XynfaRBzhfBrYnLo1xCCVDNwe3dTUYM/8OX/j
jou3za+5tOSmzPpIWn/C485Cy5P7x1SZ71CWcp3QC4Y3nzbWfL52+GO9QoLegAoM836IeFGY
tqiIz5w1uuzX7oSVPbfzXq1YG3vGP0IyqbzBI2zc3Bbrryil0IBd8Opp/fmecEN+krYk/K5Z
/KTteVbpm4nLF8uqLUqLwIXzXg9dP7sJ2nlVV0+Ustn65d+AGP3xwd5Kb8p0hOOtaV0WucXP
ltmqPw4RdK9Uj/I4170/ymTGknVvArpa4hrnrHkSxlhOh38R2aPxHr3sHqt8XIxHBeu4Ufsa
ylbeeOfQk4QYk2evy0A76SEq61RbrnM703E0ZxyxRutq/ixzn57nOp9p0jfeVn3bRsDK7OLF
l5JHZbhXv/0pX3RvszK7tdC+zyVnFdZjNj0ps9cpGpmwhDU/IO/a+lfLeV1HRCHM5Wqb7fv0
Dzb5KQ98cer74YR6263ObOZWcktWnZdtcFZE37DFaoPRBZlHDqzqbo6U7w3Lv/qw3XWsV0kQ
3hFRpHH2zXjeHJhal7yJyftNtN2yd59pq9eCPTy3rz0epxxQ7hqpanmBp67J3Mm0M51Tpc80
SzdYoc5XSYYfalH1VlpFBCfr19rfvILGjSGwsyJZWsD4eN4UzZvMPMy4dVHtzj1d95i5I+oO
liYvUj7YdU9qLU95/iC6wGSt3mPJ83yXkJcWoS65rWcQuqWF2bC7lpuyoDQrapRRCXtHbkfn
YaOcMfiM42byc+KNFRbm0f7HZmw4miZ0nj29bNJ8PddZP9b3Gczm7dw7WRNQQFneiFYc/+WK
xtzItiaXCwvqS6JsGW0jA7mmRV2KqHLnJZ6eSoPrIw17F4bTqTcEfdmXe7W+vvNOIOqAbPJ6
Q97reGW90xbN6ZLmbOHh9fuxiubQhSuUS192b7sbLBsRavWtRbHYzPhRkLtdzCf3Leser8rw
Uod6xSVMwGuMK7vfruW5Bb+yLhb35NxlGT5sYN52itWvLkxFVW2tWsHYjgA0UlLsdX89KrRp
0jhpqwC8UzJVYWyfUHF2Hasd2lSrLmYrJ7KoWrFIanHdW/M0Y5z/ycq22DtV3a+d3yCoqXWJ
cedRdqLmtPZpWnkNlQQ5DdHuesxR2pQsMT4h3TqTf6xl8yUs97I/q/jL5fLJqzYpjYTc9Fif
ogPnTntGenZ0NpY/Ko8PnjpWv8DkbGVuxtRbW+/2iLnJq0Uhdm6N2YqsMXUxyh6FwDBno5b9
Lx/G/wH/iQBUChGKJmUItYzB+B02KCEXCmVuZHN0cmVhbQplbmRvYmoKODQgMCBvYmoKPDwK
L1R5cGUvRm9udERlc2NyaXB0b3IKL0NhcEhlaWdodCA4NTAKL0FzY2VudCA4NTAKL0Rlc2Nl
bnQgLTIwMAovRm9udEJCb3hbLTI0IC0yOTYwIDE0NTQgNzcyXQovRm9udE5hbWUvSlVCT0JT
K0NNRVgxMAovSXRhbGljQW5nbGUgMAovU3RlbVYgNDcKL0ZvbnRGaWxlIDgzIDAgUgovRmxh
Z3MgNAo+PgplbmRvYmoKODMgMCBvYmoKPDwKL0ZpbHRlclsvRmxhdGVEZWNvZGVdCi9MZW5n
dGgxIDExNTEKL0xlbmd0aDIgMzA2NwovTGVuZ3RoMyA1MzQKL0xlbmd0aCAzNzk4Cj4+CnN0
cmVhbQp42u1TeTxU/dtO2ZpCIqTUyZZtjBnG2Pdd9t0jDHOGYRbNDAbZFZKyJFsiKdmyJEqh
bJUlJbJmCw8eQrZQeUfP0vK8/7yf97/f53fOP+e+r/u+vtf3uu8jcsLcCqqJIbmBeiQiFQqX
hisB2ia69nAZAC4tIwMREdEmg2gqjkTUQVNBJQCuqIgAjHzxAEIWQMCVEAglOQUIRATQJvkE
kHEenlRATFt8pwoFaBJAMs4dTQRM0FRPkEAncUfjASuSOw6kBkgDgCYeD1jutFAAS5ACkv1A
jDQEAocDGJw7FXADPXBECGxHlSERSwJQf6Yxvj5/Q34gmULXBYjtCBUH6DIxJCI+AMCAWAjM
lEQ/DqSL+T/r+l9k/Uqu54vHm6IJO/TfrPoXjibg8AF/VZAIPr5UkAyYkDAgmfhrqR34pzgT
EIPzJfyKGlLReJy7JtEDDwIyf6ZwFD0cDcSY46jungAWjaeA3/IgEfOrCLpz3yTAjGy0zLSs
JP8a65+oORpHpFoH+PzDu1P+LYZ/j+kGkXE04DcZusFweiH9/fvr9C+n6RLdSRgc0QNAIOUB
NJmMDoDQN4geIYEgOIAjYkAaANLokmHSRBKV3gLQXQkGsCQyZGekcHk4APNBk0EiHsRS3XAe
O/BfCOIv5NsYf4ZkAZgbGe3uDVL/3Sb3D/bvRhQSoK8PjUp3jYL75u53SPEHIVo/NinI/Cjk
R2gHofgSCN/+Eyqd9zuycy0yCePrTv05T78UfQCgBxmN/xlQ+IEKg6P44NEB30HFf9h+hRRl
vhP+isHh9NPIaMzOnv9kA1z2n/zf1/n3DmlpkWhBUIQcAEUoytNnKoeUA1AoRPDPlTZE3Blf
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
IpjHJA8odx6FCAs0vPr9tF57frL9+PM97EaHZVBL/cBDHVO52RTbiPRLzzCfId5OOClP4YiT
8x2Mn7TkdSKj+5BB+rbzc7bCNZGsCglynGi2i24g48OUipuZG3MQo3SUCGZadeqotOUDaXO2
Y6hagRkVW7lzXg+Hj0/wNoqbpjcJBfEerU7GNpZtXeLmg2WuD2TsrtCs8x839AWCgjju+7lW
Ya/U1VtQePr5uDpTTCyyT+bGesbyMt1hCH52P8Eg7gWe4Rbv8x55PYIsg8chNhUhbZRRUlIV
PMsq/6GMq1fPW8PHUOcT8Jsq3gg7f9HzuOcRj46gpKVGYgfNM5VqKCxnr/wWtC2W76CiEeWw
zJkxL/Z48HTpkqwKOY7ltwb3h1X8oxf4J8/OHiy73cWtzBHRIe2KKnzZZBYxy4xb2YILi5iz
EjrqssPXe5dYkkh+JLOAy07TmxnCDx3surIvETZE1po+Ms4stShWePGd4CdErLdZQGT+n89/
Cf4zCNzxIJpMJRHQZG8I5H8AQi7H6wplbmRzdHJlYW0KZW5kb2JqCjg3IDAgb2JqCjw8Ci9U
eXBlL0ZvbnREZXNjcmlwdG9yCi9DYXBIZWlnaHQgODUwCi9Bc2NlbnQgODUwCi9EZXNjZW50
IC0yMDAKL0ZvbnRCQm94WzM3IC0yNTAgMTM0OSA3NTBdCi9Gb250TmFtZS9IU1RHT0YrQ01N
STUKL0l0YWxpY0FuZ2xlIC0xNC4wNAovU3RlbVYgOTAKL0ZvbnRGaWxlIDg2IDAgUgovRmxh
Z3MgNjgKPj4KZW5kb2JqCjg2IDAgb2JqCjw8Ci9GaWx0ZXJbL0ZsYXRlRGVjb2RlXQovTGVu
Z3RoMSA3MjMKL0xlbmd0aDIgMTMyMAovTGVuZ3RoMyA1MzMKL0xlbmd0aCAxODU1Cj4+CnN0
cmVhbQp42u2SaVRTSRbHBZTloRFkGRYhjyUQIJCEACFRYNiXAUHBiQzQ8EhewpNshATZVESb
xggiiEGlEVllEWXRAWm2ERcERTF0oyhNAyLDprbSw0HRngDj9Bl6vvTpb3Om6kvde//1r1/d
KoxRULC1K4MXDXvxuEJrog2RCroHBPjag7IlgQBgMO4CGBIiPK4HJISpIJFCcQBdRSyQYAsS
HKm2RCqRAAAY0J3HTxIgrBghiHW3WFGRQVcOLEDoEBcMgIQxMEdmQofYYDCPjsDCJBsQdGWz
wT0rW+LBPXA8LEiAGTYAQCSCDIQuBKNhFsIF8CtUvlwmDySvpRki/udSAiyIl3GB2FVSC1DG
yeBx2UkgA2YC+F082XmwjOY3g/0XrvXmXiI2exfEWbFf6dWvyhAHYSf9S8Dj8EVCWAAG8Biw
gLteSoPX2AJgBiLirK/6CiE2QnflstgwaE20syHYreWReC8kEWYEIUJ6DMiE2PHwah7mMtaT
yNq3yoH3CQ7xDvSyWnvbtWIQhHCFIUl8GCT8ol6Nib/Esh4JkEQwjGBDIBBlQtn8vIpYd5gn
l85jIFwWGCyEuAxIwPh34tdQbm68xBQSGbS2tSeARJIdBSTbEw7+p24vF4kTwb4eoD3BkUxy
XIOkiwQCmCtc/Qyy+36OmYisRTCcCNOBNLuk9FqK21PCD8ilLVt8iIYYY7tv/+A6lt1UeVI8
IO9mMXkkWW1KcikbdzgVHSTRP0+rifIvTjfo/EveGd2UO0wiK/sg7hA6x2h3/2aL1/1e5pv4
C4TtEXX6jpnetpNOdZtGu2PlUQJ2hWgRvbH27bULaAOOpXL5ATirujxne1a/piMecAMNJrlY
o1dWqNwqnYbm4Cdqc6bY4UmtHcyrzHw3XdC046GQmhPNqBCrUqtMdgO+tIHWprEWor0DNtOZ
gvfNY8RVyaOf+dBTrgJt77ZtbGjUXMg6t+C3mGhiggwJrgT6dgSXdO7z9u60uBEYvCW0oiOY
3zKimDthadRatCUU9+6boOrzzg90vrul7n/t4dytgk3Dp4bmG1BU7NJs+Wnvi0XEVz2St6Un
JUpPi9xy/Wa0Q8K1xxzaHzVHvsiAxv2TLxSaUBNE/gnKxo+qsmhfKF9xdlE2SPmQNuevcPni
CfgDQ7iIvheeahr9dpYc8tL7Zv5ZbA5uXlVa2lbRjU+rRFey0qzJ7MvSgLElmrU+tb6IZ28e
9MwvISdD4lglpGWer5D/cqP5NdS2/NutpJcNItvGgR2RQVNa6UtONSaGGaGJgtLqmG3JH7Y6
YJIT+g0bd7EDLZbHa/4RjL/+cPTYsMIbqucNLbCYJT1799ZiWX00OQhz6qvyxOeVxxovVDX/
BEa1TlPckfntc3c8BzTulx2wzO5mc3Jjw7+APf0BHTGJEikdZtUBxJHa/cfsRtLetKNKSitt
5rqJT044O5zZM1xyW1Sd83f3oyEZZn8Nm7rpNzULaRVrnhU8fJK6yNZL1QqPy7gbhdrXB7X0
bY6YOWsmpkxjO3m3KV/OXKJbYf8265T+QvrJeI/JghnHCvKe8Kh5PJjpd1q55nmi3NVKxaPH
MROTqKmaRRcV1SvLH3fZNZ95kPdkZ35Abnn+Vvy9vUPmM2FDvM1ptAYzo7lZFe/6ihG1Z323
LWgjBdkH6+/mM4GPg9NeTUPL+pUqSh9cRPtrNyp2TbVNlprkNI3ZKI13XVqApzfQGNZ8D7sr
qrR2r56Z3FpLap+ulk2ku5YgdVrzog9eS6x5rz2sPu4HTuidBVMPubrC7w9T9DZcIL/XzFEd
33E6o8ZUY0LUnq0d7QK7JiX3DE4fswQJpGRsyX5N/qcCTI9FFNnjff/9o6pLy2H630S3jLxZ
DjLR650OvmysjiIxW9/uy9L1vQtWSaW918HkuLzCnbpd+WQXA6OYI4T4SN5Co8aCYaBW6QP8
5X65PnF5Egu6PjTTQZg2Jdm22SrstX+3tfH7n4/Pe/ZjSpurtxYaaaTXhD6fEGsr7v/IxHba
iNGz1D6hifZcxbNhOVPe89Dj5kUbNAYVCmqb3ny9waFLzdnphvLA+SH+/I9WPtAn/7beOies
rpL68rJanmR4+pXtS4veHT3AqFDeAl8Qgy7DnQh5pO7NKvRBPT73urgMF0dqMIg952roqEdT
SFG2dNTzIA2P6hSqiymO8Emxzh8l31KishRxr3si8jKL+A+Kv3qBjqdMVwWkvk5gmwdBQ3fQ
kdeX7uMjqnRiXx5i7w6QRpTgOrZ3txawHSQ336cHlqXvlbYcRbvy/lxUGo7Lq/tucBTYiXr8
JylJdeYIw230yIRqLrmWUquS9Vjd6IycpLif2aQi4ndLXkVf/BpzuI8aD2gvEkXyXfdwPxpP
TRzCYft2tyvHXP3Jo4jZ9lTRStPu51MOcOc7JAlVu+1AuV5O2gklfC/ZDG8ql9A4flOTRPid
A/i/wf+EAZ0NQwIhjwMJYgHgnxMGvPAKZW5kc3RyZWFtCmVuZG9iago5NCAwIG9iago8PAov
VHlwZS9Gb250RGVzY3JpcHRvcgovQ2FwSGVpZ2h0IDg1MAovQXNjZW50IDg1MAovRGVzY2Vu
dCAtMjAwCi9Gb250QkJveFstMjkgLTI1MCAxMjc0IDc1NF0KL0ZvbnROYW1lL0paQ0tHTStD
TUJYVEkxMAovSXRhbGljQW5nbGUgLTE0LjA0Ci9TdGVtViAxMDcKL0ZvbnRGaWxlIDkzIDAg
UgovRmxhZ3MgNjgKPj4KZW5kb2JqCjkzIDAgb2JqCjw8Ci9GaWx0ZXJbL0ZsYXRlRGVjb2Rl
XQovTGVuZ3RoMSA3MjcKL0xlbmd0aDIgMjA5OQovTGVuZ3RoMyA1MzMKL0xlbmd0aCAyNjQx
Cj4+CnN0cmVhbQp42u2SeTzU3R7HsxQNWgg9hB+3sSTMMIxdY42QJctMJdPMDz/LzBhj7KGy
NSrro8aSNVuWJ6HGnlJ4skbWki0qlceSLa7qWV635/5zX/e/+7rn/HO+3/M5n+/7fM+BS1rZ
KmCI5POgMZlEU0AqIjUBAwt9x1OmSASAVETA4HADKoinQWSSIZ4GagJIDQ0kgPF1BZDqABKt
iVLTVEHAYHDAgEwJoEKubjRA1kDuqwoNYLxAKkTAkwALPM0N9No2IeA9AVsyAQJpAYoAgPH0
BGy+HvEBbEAfkEoHiYowGBIJECECDTgPukIkmNJXLFOSCxlAf08TfSl/bNFBqs82FyC7zSkH
bFMSySTPAIAIusCULMnb1cBtlv8Y699Q/Whu7OvpaYn3+mr/e6v+psB7QZ4Bv2vIXhRfGkgF
LMhEkEr6UeoAfsfTJ3v+rZApDe8JETAkV08QUECiFBGo73nIxxjyB4lWEI3gBrjgPX3Ab3mQ
RPyRY7t73yiUzHAGJ0ws5P982+/7VniIRDsVQAEBxF8HvsXIv+LtPlEhf+A0QhGBQG4Lt+cf
q7M/1DMiEchEiOQK2NLwJCKeSvwz8XcufX2yf5CCsgagoKy6/deU0SgArYoK+VehHQny9gVN
DQFVBAKBRn+nIvhSqSCJ9u0/bN/5j9gF2m4TCPqDBFhqmiDEdu6omPyS82Jjn5QDq2PqUl6r
hoYumwzXvQu8ErkhsmbiI+lsuSkvqLUFjw3Ur3k1do8/SjI5ZrJn94Flp3UudHmEqHy+QGEm
j1pXyO3aSjngQWXGpqMfij1Q2wl0KepV3iTXdnRj/NkvHtEK7z/o7yut41GXeaJ2eTJq74cS
53nOGm0c3WXf6P7S22Ye+4J4OA1uZUczYpsTlGsufYZwrPBP0rx9hxkZxLThwnjz+/0vfPoD
NpqNdVOXDjQGXcHWnAqTX3qwKBXLYLgnLrWTzN/PLcyZixo9V8tP37Wz+HSeq+hiVoJV/+4g
hco5Tpx1ePYzblW57jFUbHVuK/F5rvsNZ31tSdmZzdsPN3uFFZsPX29Vb2hLA3SNk7RQHxds
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
E88HWToKZW5kc3RyZWFtCmVuZG9iago5NyAwIG9iago8PAovVHlwZS9Gb250RGVzY3JpcHRv
cgovQ2FwSGVpZ2h0IDg1MAovQXNjZW50IDg1MAovRGVzY2VudCAtMjAwCi9Gb250QkJveFst
MzAgLTk1OCAxMTQ2IDc3N10KL0ZvbnROYW1lL0hGV1hEWitDTVNZOQovSXRhbGljQW5nbGUg
LTE0LjAzNQovU3RlbVYgODcKL0ZvbnRGaWxlIDk2IDAgUgovRmxhZ3MgNjgKPj4KZW5kb2Jq
Cjk2IDAgb2JqCjw8Ci9GaWx0ZXJbL0ZsYXRlRGVjb2RlXQovTGVuZ3RoMSA3MjEKL0xlbmd0
aDIgMTY4NAovTGVuZ3RoMyA1MzMKL0xlbmd0aCAyMjIxCj4+CnN0cmVhbQp42u2SZ1hTaRqG
saAYug5IlSNI6JCAEAlSA0gLNQgiLeUAB0OCISAQFRTEBFRUehNFqusAiwx1pax0pIgD0kUG
FcTQixR1oq471zr7Z6/9t9ee8+e87/Oc57u/9/vkD9s7qRmTqATQnEqhqyHVkWgAg3U6pQsg
1REweXkMDcTTISrFFE8H0QBSVxcJGAf7AkhtAIFCa2qiNVEwmDyAoQaG0SBfPzqgiFH64kIB
xgEgDSLiKQAWT/cDAzghRDwZcKISIZAepg4AxmQy4PjllyDAEQwCaSEgSR0GQyIBEkSkAwTQ
F6LANL4wWVJ8qADqW5sUHPhdCgFpQRwuQJHDqQRwKElUCjkMIIE+MA1bKmc1kMPyH2P9G6of
w82DyWRbfMCX+C9z+pOMD4DIYf8wUAMCg+kgDcBSSSCN8qPVBfzGhgVJUHDAj6olHU+GiMYU
XzIIqCGPqiO0tL8JUJA5FAqS7CE60Q/wwZODwK99kEL6EYUzva8gGhbmLq6mbirfDvabaI+H
KHRcWCAIIP5wf62Rf9ScIdGgUOA0Qh2BQHKMnPf7l8cPi5lRiFQSRPEFnOh4CglPI/2z8Wco
ExNqKENNCwGo6WofA5DIozoACoW68K9GZwp0Nhi0NAW0EQjEMaTu1y4xmEYDKfSvl4Gz4e+1
D8QZEgiGgkRYRqYItMNLVVpl1XuloV/Wpaate6g0XcGtDClu23M5wZH7MtU2xaO7u1VFdfke
M+3puMyQdm/WJb195Jaq4y/t5Krz+ctl0kIeamkS23lG57se20TvZHPdp9CvErE82b+6rdyP
PZlrrKrHW7I5e5axMJ69FR7tXX/CzVestPW4i7BZLzyJFuLEjcjZmm9pWwt0DL3hu6vWcypJ
6ypvh4wwehBl359SZTI4RDbRu6egP0qcxSzbFQkUoOWslr2Gymwr7cQJlFtHXoZ33iZktjFU
P0hZscroJyIDHmESxhaMlFwnh+d4rZdFNh7A4PZ9rw5Nsj4Xtxv1logKvl1KFG5scoWePdTr
mSzGFhyRxd1MWtzOfu9NYCGpQpSz6VaTH83mYuLHFsIjZ/LhtZiujw+yuoA45se0EqAsIuuM
+7C/YeF1t57uOM/ZR0wc6tr7J/XDzXAHO8mZLcViAkusJlHZgLvyGvpz5LUV0Tz2jjrFnchK
t/A5Pp9SXMqBurVHnY3MN/I1caX7x5QfTJ2T1uXTfAvfqLYC4mIsYlZ/Pm2ng0KzW+fLkiua
x3UPDvA4T+Qg2F43meenWFip2CuYLU2tQS/RhqObOjMBj21ynrcbRrLmtx4nw8bw5YTtrGe9
uLpDWRkDmwaha7v0n2dT71zJi0i4D+dvO7DtfN3X32jcHCXpGlbBZhtUlsGmJK93rBf5tc3F
fBjmblk5oFLpfmkWqSdpRMkCo96NeYzEISiDOEbStJBJgQEz6ZTvrZ1K63U9Hm1c6DylQaPu
D2bguMQSwNz0U55eZcwp1xqejD62kH3kTTH8wrupwOm77gqYyz7bFtwmsNz5XRHekSVuqym5
yyGpxsYyDQOO+HGdyNLUSMm7pgLB1RdwqcEqCJfylrCnHs+sCDXyAhbRoe8KFgIZ6p8sRquq
wp+osu1IAy9nSuUL+raWBFA1hcKiOnbajyQSRqxmLrJCP3lv6RU/b+MvGk4w1eaNujyxFlJP
OzZ4P8oOvRzGHpKOlvrcIdKS3IH9xCc71YIfVca1Xzk8trzoDc2vHvWPK0kpt2pWV0u7WwL2
nplXasBFPc0E9Tsh4Yl8M8EEx64AVZ73EZ2gh1B9Z1Nsn7weVCh2ZndVetcEvCExT2Gp1UI3
Ua6QYd+IsulsPeJf9SbViDaBF6092Wgw8vCnkTlBtrhIs1MVQS8It1+8pH4oWXJ/3wu0X56s
lLKX9WxmbV9Dd3OrJc9Zeyw9fkmykBmgPLHn05706vK0PolzRSQej7uo3H21IsmeFR7uEQ7y
N37DnBJYIBhZ+r9NjTvursmoPhzoHFu/LsfVDEs1jLaPOylrhfxrXVu3gGb6NrJcZvAjpJMH
2LkUz9qUrzEYf5PSTtBf1EpG0t5nsvXgidwZjrDHihfV4WcYp6858AoGWJe5NwCobAQkkiuk
bOYdh2I4aZa+lvBknY/UYHpW1D0ixpsfr6/Q5snVTiVlhF1Yk7rZZO7xk0ZjnblbTcV1t26G
xmJxee/rUBuVVIP20iYR0XnnT9JrhjF2NlY1yjZPLK87rFr73DgUzwO77P4L61YBD130XqXY
jgg7OVv7Af2D2E1HuPK2fruRxKCQ3PLeE91lglXbrFcTwgeq9vr/pb8hqs48kJGCfl0Ok2HN
aW+gVYSMDANRZ6XPSW5YxT/F5W0WcYv6jxqG74u+t1dmZrCBy3E8OyZZLS8awTzt4RetNO0Q
mfh+fXpvndVWho6ci3AfVwlhKnCtoF49X/LnkRRzx+RfC8WySlIKhe0MFwsThe/k6XV2ThEx
8CtKFkLisu7pZY0HsDcLD1Wp2PZ7w016+GbbamWKoIOHy7arG6MyttSHO1/IkGQzjqBUb/d0
34ps+hgf/9bGS3MrMf9OFWx3FrPGsnHPA2Ajw0vMPylNtFkj1lI66OBiZfHIyKx60ZzNJKad
l8mbl2d28+/h0yPkfGvxXdNthqz+sR0rcYJCdwiLXdcy1PjLbN3UOjA9OK5To/Ev7mqwT2D7
t3YvhefMTGUXD1p253u9lh33dhkJUsxkz1f3pWkvV+4a9uSGDfjVbbvGunDu2O6Oq022t0RZ
M7VeYkp6Jkx754E1EyMuB8HVhUFa6Mpwcpopf25Vdw47ddx+cvjVL3P6Udanhw+9S77i6vz6
dl1GznGcVX2yKPvtOn8vjXGuKJ6RstFbkVhj2aI0R+r43Cp/NZitdtFrXOJS0dqqwnO+izsU
pG4Pr9cXmUr9php3nsCnWTJ6r1PyRDaI+C8f2P8D/icCiGQQT6NTA/C0MzDY783HniUKZW5k
c3RyZWFtCmVuZG9iagoxMDAgMCBvYmoKPDwKL1R5cGUvRm9udERlc2NyaXB0b3IKL0NhcEhl
aWdodCA4NTAKL0FzY2VudCA4NTAKL0Rlc2NlbnQgLTIwMAovRm9udEJCb3hbLTI5IC0yNTAg
MTA3NSA3NTBdCi9Gb250TmFtZS9SRlpNQUQrQ01NSTkKL0l0YWxpY0FuZ2xlIC0xNC4wNAov
U3RlbVYgNzQKL0ZvbnRGaWxlIDk5IDAgUgovRmxhZ3MgNjgKPj4KZW5kb2JqCjk5IDAgb2Jq
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
5AdZ0U51yfusbkNSRK115fR7qtdALQJfo/ErrujgLCz0hVCcrFfyWnC3TiqClvPW4WvWM75E
57TYSYcCdfp6BnnptSo8rP0HsI644wWQQGgozgVIbee2PX8Tb57nd3xVJjAtew+PDur4fAbV
LA/NI3Q0JD/5Tfj0KGRcvarw3Teay2EzeYMQOJIiHmTVGOxATPOSxic72y9YZMyhFyPbEenI
OwFLYp98UAxVFEjd4Kfx8jjEjzcg+1H2PvDtd+00Zt96FgGvdafy15WZt+1X54PgQAN/YvN1
KZiz8/mbqnj25ZMeVjnlsLG7daN6g1x3AiLftf1IJSHCe6WH3BVp91MUhG10e5dbUxJWY1UE
r6rLIgUxy4Uv6qydDq7ZW3WKN6TJU4xu+5gfovJtp8jZ70wDggLEsuWc/eHfghDVuwQKP9kj
gGmiPERlKqMh+0gEESSYnW97hTgtOLf60NE+hxx5Y1LKyuBHyGBnoH09XoJlDfjp2lLGY2oB
2jWHF0Yw9ZxY2g4iclfZ3R6RSJ8hRPzR92AKUsZHv0C2NNgXvw6Y449WYU47YlYaboU5uYB0
TjYGpCQHSFqvKSTi0RaEVvV7f/yUdPhExZOYL94nPF+roX/HTCiDPVf850KIzyVHGxLtZbck
NsGkr2BHsf4KQSR4+G7g0JoEmc2XSFxrONDsVTkeYHLtVfkyxdp8furKm6NIwlvDc0cWcw4W
7v/hwPj/Bv9PGFg7gS3dPFycLd0cMTD+A5yuqUAKZW5kc3RyZWFtCmVuZG9iagoxMDMgMCBv
YmoKPDwKL1R5cGUvRm9udERlc2NyaXB0b3IKL0NhcEhlaWdodCA4NTAKL0FzY2VudCA4NTAK
L0Rlc2NlbnQgLTIwMAovRm9udEJCb3hbMTEgLTI1MCAxMjQxIDc1MF0KL0ZvbnROYW1lL1JL
WlNZQStDTU1JNgovSXRhbGljQW5nbGUgLTE0LjA0Ci9TdGVtViA4NQovRm9udEZpbGUgMTAy
IDAgUgovRmxhZ3MgNjgKPj4KZW5kb2JqCjEwMiAwIG9iago8PAovRmlsdGVyWy9GbGF0ZURl
Y29kZV0KL0xlbmd0aDEgNzIzCi9MZW5ndGgyIDE1ODMKL0xlbmd0aDMgNTMzCi9MZW5ndGgg
MjEyMgo+PgpzdHJlYW0KeNrtkns8lNsax3dITCSXCUf0uiUJM8YYRm4zyG1m1wxNUm2zZ168
jHcYM5pJLsUgFdFOSrsLySU6Ebtdicm4tpHarlEpkchly2WL2FNOZ39O+/xzPue/8zlr/bOe
5/mt3/quZy1D3Z1UUycm+3vQlQ1zTdFmaDxAJJHcrQDJEoVCGBoSOSCdC7FhZzoXxANoGxsr
wIPHAiwwAAqHx2LwWAsEwhAgssMEHCgwiAtsIRp/UuEAp1CQAzHoMECic4PAUIkJg84CqGwG
BHIFZgDgxGIBlE9bIgAKGAFyIkGmGQKBRgNMiMEFvgcDIRhh/onKHQ5gA7iVNJMX9qUUCXIi
JFzAls+kxoCEk8mGWQKACQYgzMlsyXmghOY/Bvs3XF+bu/JYLDI99JP9p179pUwPhViCfwjY
oWE8LsgBSGwmyIG/ltLAFTYSyIR4oV9X3bl0FsRwggNZIGCKtjRDWa7koQhXiA8yd0JcRhAQ
QGdFgJ/zIMz8mkTSvs8c5hTPvVRfJ5OVt10p7qRDMNdbEAYCqD/Vn2P0n7GkRxyID/ihzFAo
tEQomV9W+786zAVmsJkQHAhQuXSYSecw/5n4KxSBwOZHSd7a1AKLAtAWlmgAh0VF/6vOB4bC
eaC7M4BFWeMw1itQDB6HA8Lcz59Bct8vcQAkaREI8kEGIs5ScPS6DaEH1Q/lKyq6obU5B+IV
N0YuXDFTcYOzLmRxayqMJjNoevwwo2nnsPaEzdusFF48e2FFo+Jp9zbModyq7y3exoMyCau8
nT424kp6PBoXnkiZ2Tf+hmwvvxcVi7RO02umZ028Cbp/qfWWM/y6oM+oswVpILQmz8ycPrL8
lDj1RCHtZkrOobJVfgdJpYrFH1swQ0rqJ1yRVLXgcqP7XU9VqJ6X+SV2fBm10+s4usdRvIx9
LzXNlReFqMWOAelUfHBoWd/CDVtX6pt+IxSaLFXhoWMcajKRInDSzjB82lU+1Dn/SDb5p+wc
5dPVamfiYg7pBI7FODUbFot2SM2mzkkPtNP0HhRuej63HuHG+JvUtcmtcvWl8+Uv4tdb+yUm
WoSndYdr5mCmNHucVONvf7hkvyOuuybG7Fj/w+H4TqZ4pO4QfuJYcs7byd8bZuwRcfcXXYFX
KkltNus0eTZC51j7a8xVUp4jvJfltcSoqNLkOXbmHY3iw8FdwzdidbtrBEpyza1NMktuEzaD
Z8dIBNyDxzOZM6dCNEdQccBc7r4NqRYxYoMQ7Q9V6eYhoUWic9ykUJvMwWgNKbqy4s3vkAPD
4/dye9bSmCK799J4nU7+aL1g93nzsrO444ZELyWAqvru50LKJIfw63iElkKfXLDzEfUUO1Dl
wg5Rtt7bWvRLLdyOO16b82nik7LfqGfV5wWh7LxVhQaemdG26oljI7N+Fdu9zN8c8NRC1jSc
PL2WkNmoJHe321/FRacv9ZKct/jWqSuwUamWnUvhnNny8ZIxPUJfRgo9aL+gP/NIE9fQ79TV
LLrXjP8HP3WNLNXkzcdzZAuhY0NtFe3CnuI8X4+h6K5bpBSr872yzNiU5WS1zp4WkYcbNj3V
J5xbV/XuWhsp1rVQlx/v9Uu87EQxyRHb7K9Dh2LcTa4N/tIwK0ecz5nJax90vn0+0WpQpalV
FGTwZJf+8paWPT8fbksg794g4NDqpmtr8zFvl8oV5NJXFyb6JFSPl7eLR3wiblpr1ZPuE/Sf
h5n6P88djuRavvUO8cxuyDLP3XNWXnFeqejiA40k+QIfmTWeR3cZ9P54puMJKxa551TXAUX2
D26mJqX11Wg0nbLR9vWJ2oJJlrimXPacL6ewmk1jwP4bvJYMPlxvtbP1YkTN6yQYK78QEgXy
VbXIEYG8J+XSwU2kjNi5j0J/55lRU3zGGI3v46+WtkEjDD9pJL7eIAMld4/0CiaoNx1q0oP6
T2BHm0/YrNa9u2x5d6fAeuBR98lxBiCOnr08cVX1wnes0dj0wqPXq4eMY3XPO1Qzsh+HeG9T
GhCB2q/XTkVvfKM+dBjjimIWbQp7sePBUxP7/ekF4iWd7qL9ZM0Ohy1XDFrk3wTXIXWU8oRa
m6Pd6ppp7gGtrGovoSLmllZCQUTzWlY5MlA2YZIRXIFD++YWtHuf7lgnutCW2ROfdKqncnDm
DgVbeQmArAu3D8WhEtIsp0nkoG/uGNzQUourvZveUEKYhq++F/wqbXPM0sIYc2B3qfQUQdHK
5dAoTt/FuhH3Nmn3ukXqekNFn845aT//yT0l4vxdscQq3mYN2bHIvF6HRLLm9r/3hek4DoeL
PHwPcElVP2X79L57aMlTzqCE7RP1kX0Ngxnw7LPGYzHyBIomU29deN3DzKliddVHTZ1rLHU+
ppS9fzm11dZO94zpat1dMuPeF7Niwtd8y7/Wdj0feELemnS7YvqsY3odsFfV89Wrx89vdVZi
9ckV5JmO18r+easVjs8WwY+KxNbSVduPPFpMV2/Av7ca4c4uY1NxPcNT8j61tQrPMJE2J89h
ylOUm9258MRSnfzAGXyZerWjH/u+zd41SQ+DrH5sAm/eHlfpny8RXvWRcmQfnHWnuhzu2HSQ
uYDI4M9FVI4qV42ucdGUE9J37bEU/JawMW04i01JKAtMGKLktxAj1aJy7VmF4zTr+UpReX5B
o2NTFVO7xE+Evjw0fdeMBbv3a2cjTV5ejBNCRr6ixpPvCa+RdZSASF70AkVvW+tg/isrkn4K
+K2ZbpePS8/EgnjL8laH+gd2OvGHeodrSq4Y6tvS0sacR4SA/sdK+4YxU2LJ7z/E2IVcmcNk
vVoaRf2XA/F/g/8JAwYLpHO47FA6JwSB+AOPd1urCmVuZHN0cmVhbQplbmRvYmoKMTA2IDAg
b2JqCjw8Ci9UeXBlL0ZvbnREZXNjcmlwdG9yCi9DYXBIZWlnaHQgODUwCi9Bc2NlbnQgODUw
Ci9EZXNjZW50IC0yMDAKL0ZvbnRCQm94Wy01OCAtMjUwIDExOTUgNzUwXQovRm9udE5hbWUv
TUZVRk5LK0NNQlg5Ci9JdGFsaWNBbmdsZSAwCi9TdGVtViAxMTcKL0ZvbnRGaWxlIDEwNSAw
IFIKL0ZsYWdzIDQKPj4KZW5kb2JqCjEwNSAwIG9iago8PAovRmlsdGVyWy9GbGF0ZURlY29k
ZV0KL0xlbmd0aDEgNzEzCi9MZW5ndGgyIDczNDUKL0xlbmd0aDMgNTMzCi9MZW5ndGggNzkw
MAo+PgpzdHJlYW0KeNrtl2VUHGvXpnFp3EmQdCAQnG7cgru7W0M30EjjwQKEAMHdHUKwIMFd
AgQNbsEJ7u4Wvpxz5v1mzfvOn1nzb9ZU/am99/3c+6pdT61axfBSXYtdAupoAZN1RLixgznA
QkApFUl9QSCYAwRgYJBygUHc4I4IaYgbTAgIFhQEAyXcrYFcICCYT4ibT4iLFwBgAEo5Onm5
wK1t3IBMUsx/qfiBEg4wF7glBAFUgbjZwBz+mFhC7IFajpZwmJsXBxAoYW8P1PxriStQE+YK
c3kLg3IAAGAwEAq3dANawKzhCADnX0wKCCtHIP8/aai7079Kb2Eurn+4gEx/OJmBfyihjgh7
LyAUZgXgVHX80w32h+X/GOt/Q/Xv5rLu9vaqEIe/7P+a03+UIQ5we6//IXB0cHJ3g7kAVRyh
MBfEv0v1YP+wSTra/0cXBTeIPdxSAmFtDwOC/knBXWXhnjCoOtzN0gZoBbF3hf2dhyGg/47w
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
jIVNsmypzAJRqT+PcSi0fG3IO4MCFV1wF8VVT0ru2E3mfyZy9yShCxr1fsyDQF8dsr7M4lBa
0cU8XVa0Gr+ZqHfw6KOSicKpl362npOLTFMfS9uLR640/Az7OLstvX9xN03Ea9KSiDQzR3Jk
w3JHhoRrLRb19PH8z+/Hc+nLvdle8TehRRIBm8lde+t0ju/so4wlwzpAzM7wGvIyrS1sDtD/
5QH4/wb/TxhY2sMgLm6ODhAXOwDgvwBp2J1yCmVuZHN0cmVhbQplbmRvYmoKMTA5IDAgb2Jq
Cjw8Ci9UeXBlL0ZvbnREZXNjcmlwdG9yCi9DYXBIZWlnaHQgODUwCi9Bc2NlbnQgODUwCi9E
ZXNjZW50IC0yMDAKL0ZvbnRCQm94Wy0zNSAtMjUwIDExNDggNzUwXQovRm9udE5hbWUvTVdM
T0hUK0NNVEk5Ci9JdGFsaWNBbmdsZSAtMTQuMDQKL1N0ZW1WIDcwCi9Gb250RmlsZSAxMDgg
MCBSCi9GbGFncyA2OAo+PgplbmRvYmoKMTA4IDAgb2JqCjw8Ci9GaWx0ZXJbL0ZsYXRlRGVj
b2RlXQovTGVuZ3RoMSA3MjAKL0xlbmd0aDIgNTc4MQovTGVuZ3RoMyA1MzMKL0xlbmd0aCA2
MzQxCj4+CnN0cmVhbQp42u2UVVRcW7etkSDBXQNUsECQ4K6FuwcnFFQBhRRWFA7BNbgEl6AJ
Fiy4a5Agwd3dNQQ52Xvf/552/3NfTjtvt901X9boo68+vznWaovppaYOhzTY0QIi7wiDc3Bz
cosAZNR0lYQB3JxcWExMMi4QEBzqCJMFwSEiAG5hYW6AtJs1gFsIwMMtwiUkwiWIhcUEkHF0
8nSBWtvAASwyrH+5BAHSDhAXqCUIBlADwW0gDn9CLEH2AB1HSygE7skJAEjb2wO0/3rEFaAN
cYW4ICBgTiwsbm4AGGoJB1hArKEwrDd/MSnBrBwBgv/IYDenf7UQEBfXP1wAlj+crIA/lGBH
mL0nAAyxwnqj7vhnN8gflv821v+F6t/D5d3s7dVBDn/F/zWn/9IGOUDtPf+XwdHByQ0OcQGo
OYIhLrB/t+pD/mFTg4Chbg7/3lWCg+yhltIwa3sIgIObj5OL7x8d6ioP9YCANaFwSxuAFcje
FfK3DoGB/53kz/D+5nijpq+qoajL9s97/aepCYLC4LqeThAA13+6/665/7P+MyMXqAfAmIuT
i4v7j/HP+ted6b9tJgezdARDYdYAHTgIBga5gP+38F+hgEBHD28OXn4ABw8/F4Cbm08IIMjP
5ft/GvVgUGc3iJIsgJ+Li0uIR/Bv1dLNxQUCg//9Lfw58L9qK+ifGUEgHhBLrIxMUijyO3Ya
tivzy44pev2m0a2gwkFhYQnkVxi1fjh0Bb4syrSLWcgFqTMuLSW9MkIxDh3j6z1JClIKeM9J
rs1+YwhWhVCzFROX5mILjPkWtdSxAhrrsh8N3PlQvMTMIFafJ3keHVtGx6U9UAJfiwZMU3i4
MYvbteaqtFxvhuEfl5ufPWsWM0JYESwRVhQp2xF4Yz+TyckPj4ruTuBpDrqBGjUFnDLjTDFG
ZYMzZ5Faapjkoz2fyhpHuATOj7zrTYfDRZ4+WGpO71ZSZdJw+I8squqp+vHjMwIMHGXWieQJ
FX0WyB3khHTrXjT8IsA+l47IaLv11T8jNjP4SJxmohY6Gr/AJqifFCugFdpVcMER/A6SHpOM
EpuJbBNCmUpsYj2K0D1f1qC/Iib87HEptXXPbnC9Ekc35lw9Jcqc2j7aIvMohxkYpfD2oI1O
IoRIS9qipllWSQRyRlXnsH+m/YDcEgXmNH9ZiZwWs4ioz0vIac4peKCSwX6QBddJumG8s+pn
vkf17xI7TSePvTePi3Wf3c/a9+xcpxsysk1TN4ox6ZtmpYhfQSQvGOSv/BAdzPMI70o2HI0V
XOLvqOBfvtidL5qdgl/qVwmZPZARdig2jiKEJdtz0R8YZoA/dpDN+d/t6aB8ZS1h7PdUztr0
kxfxXwQ+uDTOS37p3jaNY4oc7DxsFdD9iloQ7vwuGw+coU9i52H7Ka3vSfjCIsASPW+1LKhg
gI8AFReOR0r2NmhX5jrZ85CCsRvKf6SAlvJGSVWKBIlL1BCdZGu+ZFHnYR5TckB3i/9+yq0m
skBc3ERZaMquspT5d7b/dMZaJZsmi5ImeuL80jukGgqjKIrceg2WHN6rs8MDkukkI/qx5XND
DPvGrzQRiRQhAJ25aIFRLOwNhaNKWnV3Hy5RZTRa8eIKLanRrDvkyFBoVZ0WFEapNqWaa7FP
d4n+Pcw9bmV8kaLMgiX66VbpZx5w6AVV711uBdqp8MbIIWxZL/bT3UHV5HFjwBboYTciy1T9
aRaE9fLrcRru8yAHt+/+kStvR4VQmuXu0vGSlH6nHlHyXthAGXwdM6KKdpbmqqm7tkSuYCxd
i5GbdELQYjoGK6/aMLqX7Fx7sffDRBocqeOWbwO9jykY5ZhWS3gv5+5u9XERY87faFsHC1oG
OK6kJVc3TusVAGebEcRtxWAbp2pgJ933YL2ZC9WBPQ7mR0lyL4lRopG9zOU0ygJtfSYhrdXK
hZvi67zLA82PlkEjxfX++T01Yqgnl5fGfLhqA7mUgiGfteSf+xS3LIucV0TYMdLatu4i3r/z
H+qOHVDlpZuRyw+QNnJij8XAV91UzAva0xNv4/3onOgkwSKWESoy+J3D3ed9jxCuGmqwwIkG
SYH8yuqaz2Ix1GVYp/sHJoRwKuHS1/nTFoqnsHflxon5D1KNeRqDzc3FBzJ+snBy2ljLGqky
9ek6fnshotsiDGxAN+SsZEIR3CSFsJ5viI2oIiAp/42jSIHpPmr7Ow44ROOO7I2PIaK8iXdg
9qDi0RzgQOm+cHMRDXv/3uTZx5uginCVhKZhCdnFZtHEx+IB92DPRf0zce4bTo0vTUm+cEf1
qv3dFnEA1kjwZ/VHBcO38gbNita6xEU8qp1XoqThtLfjmKUoDsHQNqo+x4FsskLYZLVc0bGA
1UI8h4WaPynGNRu3ICN7arsaHTCSnmF/q+n8/qL/7Q39m6Zeqbv4aCbDOfPfEpbcu35fzHiT
7hj7cTi98XZ6chu++DwuNmOeErlTetk0hhByGriSQEOWf7Y/gJdz9qdVaumr3+nn2XTmbPtG
GFEOTB+9VvAnT2QmajMMc/CI5iaatvVRjlv2lLuE3XDGHka9kyvl1FTFSpE7+EyqFYTabmp3
PbUXMGq8xE2Z/EMxvYNiV6Vct8l3rZv8TLyxbhaLjpegF39mqtrtdDLr0thvn+4T6vM9+PJM
pYo+oNF+VLoCzvBRfyV9jWbSgIKH37dAHdMH/1RSw9cAMuT3xvyElA17g0ZpqZKSzZOXXYo4
B10zXlcW+XePx83dtYqtNCCmSJh7jWUh2b6c/SN0w68rVw8DEsHcnm0HPigT8JH9PryJk0Is
eGgsVkVmg/Z2P36ee42nInMDn+fcRyTqcEGeWjbLr4Z6Ebhw6q7QBZE0KP85/ZXLpR9BhlQ1
q7ZNCFy+X4MCWRkwwK/ZmB/aryXwBa1C+NIPd6712LvVAQcy84VDJW8kCljvxpgV0YKZrUwX
2tMdIPUBKB65L19yHFGQ9cd8rHLOAiWTEQP4wI/zHYqZVeWp6fM34C8xjCMOjOK5a5syejQZ
4b+2h+tguh7PNnpfvYwvrqYKK4UP2mFaLs64ppll1m6vgereClub+x4KLYSnUHNIUCGfwDz9
GE/19o1XPDy/Fbgv5szsL0HRQpiPej7yAnf493+Uq/V0XzdSzHIwJR3SDzPi2lUI9rqFxDmg
ZOg0bqephAQMI6fF7a+kdVMPdr0tMmXyxfBGwi6RcY8GyKrlU3i/rrxVsn6iz0jRPDI/L/GP
U6bzzWATGm4FdC+sVphwRgSij2FNYrnr9rX6NA2QDQoFrGfWnOEc4/gizQnBz2TLzegvvNsi
mosNLi1UX1PN2lS6jdSMFc1/QSMzJVWt3krV8d6F2Y0O5cQGtlcoF04v9EwCP84AtL60LnG/
9kLNfdtizAbaXvtGjnUyL85R4f8CmYeiaZRdbJUhq6A8E0yQt1sZapDRZpCx/HYoPNoOocbK
Uq9T5aIuYpyX7dAhtxy0jLdhCNmV2Izs8R7qOQdG5BWnNZ7waMfBK1jwM3te9xuVPu9B2nbG
/P5mZoIjMet9XkcGn3bjIoOpG29JLPL18yX6nJGIzZ0ylEXzytrXLV/NGI2HeG+/VIi2UNUO
07ygzrqBLYhKi7xCJOkZghgHl9dQQOI7m2tGkdik9VSWcReitiwkLIAUo7Voyov3OCkEvP6A
OMddl5+BQgcpujluimJVSSxAEKJeoFJct/JokdCpmz71JLMyukmLabNzCkyWEqOcsJ3hER1T
MV++O8mkaF5khrL5EEs3W9OZ4IYYSStRdjmTKIhmPrTGnbufHYnQolNYqMDxb89BngDEynVe
K5r0SU+jSdDb04IHi6NlFa+IlPzlfAuASsMSADz45rw8LofHzmBZYsDS1WTkDC4Zf5OAfbQF
Tivhe/eqIm0GArzdXBRebKPB7Pe9tFkchju/TdZ/lj9GclM1j5NsOPxarkErISncwU8ktCi7
QHNW7FkWRp47o01KZ8cauK1Q8VRD1gvtWA2L+mJ4SO5zsKSV1t8VCDI0LpD12q4lZNhk6jns
+0W0YPMluDLUduv9V66648qkroNZuwirDHcBlx88/FgNyqWC4a6xrxgayFAwH+3tfDh/HDPh
4L5S1AiQ1La64/J94yZFtl4KBx+JEia2umWFq3/36UOb7UqZ6r4xDSNCr3u+9Glc9+LebeFw
X8GV7fOwMFpMbBcRh5QE/kEYzJrgi9HndcnCO/0YIkYvWQ0LrPCwUpx6P/qeWU/SrCW8/vn8
BZnU/Y1Ppv3814u0+KopEiex8CHeGHx+JTIF9crQok5GAQJKob31qYSWLmye5VMb0wzGPvxe
H4GuF+QlOy90VWf1zVwxQBzqSFnv6XykLt93YtJ8JiL7VbhkYzM4iMmTnzmnKL3BXFqkgO7C
AJ0bP+zmnF9huVux8j5f77vLvAzz/0K3/kLONgVUp5FVYzzWlnv255cuu6RfYV7WyrxjEyJO
JanYGoW0cnZ3OlbYsfpVfTqgXNGlOh2gvTaGDErDMh7BGUXVRPgCqXTR1VMHHds0aUaTj0LE
Ile4w4CJYreB98DjZ9mv3rXL9DsfmbHBUqEvQBqB2gYEzwpFblLnllnRc6bla9sWkVEG26y/
kwamBAfuvtJVwGe9+4CpcZnac29rGoon0lKI7FpLd5pRC8YqQY4I+Z4XStyZUFrB9coijmoP
h2EdUSCSDuGbmCMvZ8pEJs2rFk3zXZDwf2nO3+0U/3S3ibumV7zVWbqgO7ui7Kmidrv9xlOS
0fWFk1lWd1ImNFsA4Lp12sSdocsduz1AS4U/WN9XSLXx2KEvqNsngBR5vV/0O8+slHlxpheJ
CsFUuEqVa6XJYl+pGDuzZHZ0HBKkIOG3Or6u14EcvwPEQ6Yi7mTd0lNPoPZ3lVS8lz2WKCCj
fTXWHZZeK72mQTnkwuMfNpPi5WTsPyvYwFkk3vlxkyogYQz+s4EK7qu7EJ40g/vKUTQtKVBx
O2lx6jnCMLU8qN3pQyfwnSfvT0NMCMsbaLPCq6qb65nw7ohVmgymhQ/GAH75TK5U1UqNQRRy
Wa0gghyB3bJBGjw2N08sHIt0D0yKHc1d4cyOdPFi0Us+PJVNEoXXJcr9xb1iWcQWD4pEkky6
pYCbtzVv0S1QTBEvkwU7acVeSXHJny7CKPI1thvZqU1/jqPNrT+njcZBGdX/CEyBbeK6TAdG
fazUzX2GubJNm4Rpd5/2Id9TMk9JnIJrci8I27q9smjimfbukH8DtbWXwrPK37HZqp81I3Yz
0oooZUd/TJwsN0VB59hxZyhs0lBoSGYixJXaa4vebfVhMLC4MoaZt/a2puSGUV7g9d88uAep
1Tjgxk/IrdnJDxXHlo0PL50e/0Iqfo/bH8Wgyk/vbKuC7VSYj+lavXJuo6LvjgxSo5ERXOfK
D2+tF/+KK0OjhNe73g1l/A3POb0qe4a965EWme9AHK71c5Ixlc8gRdy7LQv2pqxl2DK1sTBs
pdcPhVW1lrTgdp85v0Fn4hdDWu49ykvnrOfcKhud4/4tDb/SVKI0GTkUvDW3bjEwDVPZrIk6
TuC/BVFJo+1iZIzY6WilZ02ssQYnaFEYWe/jkjBFVCUFT80GFqPuJR6rNUn6jBbt4TxTgaE3
9RMKykTrb2kq5H7vc4lJISi1Owvs++2tJszo5IPB9ETYGIKAcsqvTaozcaXEHyQv0mS3NuiT
7ZEaxysIDRp6zl+Spi7wiJOl9T9chSAuUg0IF00CAk7c8K/P8GRNUT9van5ERBWKpW1GSBKd
+Rfk21KYhkkrOiqfzWDmjVslf1HaIQZSO6tiRgV1l0bO4EsaWkjNTo7dVLIfNZgvqRkB+QSG
s5rYab7ZKTcxptTFJGV1Qy5Gie/DE5B0AcANVpGvzJYSPAR8gs0xdXJYHJ/ICYxi2RuK8Myf
z5meo9WhOb5erYq5vFP9mpPCV+/Ka//a6Y72bqNX8cL37CNl4uCFzTGSoXzMB7wYhePgo1PE
GbR5HnQl7pPkthaCnrG0zoqeHrWLTCpEdxMIFqT2aBG3AxQdcJtU2euCb9yJQUgM8Sj73ZZ+
YvT3wiRYMfvBHYssies6ghlRgWedzsBfVbuxeIpFVqrGQhv16pNkJTEHqA2LCC6RKoIEdEwv
mtNlMrlMq6jTsA0P4pEuk+hqSSmfDG1vv9A2BnHkqEvKldeXjyq7SaWEJuInV5jFCFeEWUVQ
30rWvkXMQAKcZmBHFJ/xPmakCxz72hDt2RlhMPrO84O40FtnHjQlXDQyGvwNkDH55/hSeeRY
7SXswf4XjcwL5pOAHL4XT+CxvY59a0mDE96kh977AzS2MmpXrcm4LQ71+DV+NUTvZXAh97W4
CsuenznhwlNCBR8OtAPNYPOrG6aAcWqeNXAuayQHS76z2aTBlHI+suAFR9fuyl273UmbB1ir
HeUlexm7u7eaGKWWAJ9rnHcxXTqJ0fs3cAL1za9P4HkR3bhx4FcTM6p4gm0MfN/QjtqBLttb
bCVxpHOfNdybwjQbMc+G3ckcHFSyvUZKEf2CG7z7MISHQwBdYYgHN3VEcKnkKJLASf6vIf+k
dfOYKDKTitkZN95g5LPE6VtC48xbBlaVst4zXDoFrm/iXcu2vKUJzLDsT96xSr9Y9AuhZq2f
hOTsAvr3T/KIvAin+RcxWosJtOCmz8i6ca5yaXBFzRTF3zXHbfrhoITOr414j0oLIeniK7Ra
D288BuWjPyZYQ5h3bCfMAvYEWKn2s/mcWpR//k71KTbv9fwgIEhbYoxu5RzlvprBelXUVLxW
Y0eVK4Ln17kwT4weFNjMqWLyK1OrfneRfqv6tyDrGkeO+rH8J+6gFeJP6JPIw19u+Ryanmu8
xRNyqJwM0Ned894VHxt9uUWTHiFpd79C5oHReLgrgDKjYee6lxT+WMp29sZ6pF241w8iZ0eB
P7HQ2YI0pEBKbsC71EpOyifv5xC42k9d4f8kbANbO9dZ5FjHflLkYc4RouOjwHRjYpJUyWaY
J7ZSfXSfE/exCz7gZVk9+CzU3s2wNU4/FnqQkZmQwzb/M7MooauhJrLLdhLRHufX/zHZ/cUx
D0/OS/NHmhVyv3lh2cKx+4GHB2KgF17w5m1tkT5lEfuq2mnA9A+DDiXGPkw2DSilUL+2Conv
jVdHGodSSc7VtHycW7sWj3x7Yy4/L93ROYFx5NqeXJogu6vOj+QRQQvG76Qvyz7d3n1wj9Rr
fbPAqUJbhRIk9cOb90RadGI/nqKMXM2qDXFeghmyX49eFXdkNV8CFuzuQmAEeu13D7XAETbC
Vket751R5V+cADk63p1EJWLhGjm6A4JqP/WtUcHvqZHjrWJIic2c+VEtE7YriZ6Qj+58ib7q
UCGptwu8wGAK/CJAqBXjh6P7rRj0yY2epPjpCjQ1tLR9j9fhysFcU6+8LFGx2jjmM/6EvEHW
mMpskn+Y1kYZ0CyHQ8wVH6Dts2vJaUf08dOoMgFhog+uyTJVcoC5brZMQD/7BM5uePUzmTjI
c1AbGvb68aSTD365YXk1936b4icNUZG9nM6uwlE26TIOvd90JhuxFwFfVCjhXt/FV65gjXLI
icGs85HMMjhAF97cxuTVPPz5XJ7LKxl4JH0xQSg4+TLZ6dqcvCuyth0J9q3abcXetV0Gv7P6
46T2N/uDE4qoxVGd124aph/67nShGhmF1Nbxe0Xq1IWnZ17AOo4BrNKmjR66kkV01yjWVf95
p/3tuQWUN6oPnfh9ud4SJadXZCXu3s93nfNwEm5CpUtj+JMLxBi5+tWlZ9Z6ey5/fcgQvh8T
S2F6MOnpHV/gn9xJnR+Wb9UI2+/6IcdENsKycZDdGvOlIREy4XP5OPvdtrR7kszeG8k3mRWE
RdTlVV11SRBUzAPm+cbbrLvii46daY4AOhZXTwPCoUcZ8qthDxjchVig1kRkoAh3+asnC/EJ
JiVl5b1Ox3PM7SKz00O5XCreN5RAo4SLgdWfnx1L1ZHQg3rGq8tfmap04Y5I5ySpIfHwW4gP
ZRGkcuXX+7Rpq92quvg0cLZi93UMvi4IaS/hyEj1+q6ugv8k+m3yMfUdrTq+YsPPTRIxWx5x
GbIyFfOjY2Unqe6rI1kVOwBFAIrdIJc5ZKRLdkiH/EMmxfUv4S3bz71SL9b81FCz7wgvcR9y
s0WJ62rJrFBwy01hOd7ds/TCFdFInhi0wjhSWJVc6GWRWfryFdaZrZvCYmIt32bsLHqrlJx1
ilfr9WCyWR3SqfrrWrsK35YXS2LsSmYa3k81vFdWJ2Mj0CBYpZ5oyLyX4aBbMhUBFckVXczd
Ylebzgh/nQQ2Gc/ae6Vj6jXZv8uQ0G2rmS9Y5/stiSiL0/q1f485FXLg9jIz99WwfTR9Lr1M
guxrGp6nhfYfF0dMb2UvSmNHP7eiDtkIqzwbl372mEx3F58AiBt05USJvQouQwDmCGJteCEF
gmentNyCklz/wwvr/wf8PxFgaQ8BucAdHUAudlhY/wGCvnfCCmVuZHN0cmVhbQplbmRvYmoK
MTEyIDAgb2JqCjw8Ci9UeXBlL0ZvbnREZXNjcmlwdG9yCi9DYXBIZWlnaHQgODUwCi9Bc2Nl
bnQgODUwCi9EZXNjZW50IC0yMDAKL0ZvbnRCQm94WzAgLTI1MCAxMTkzIDc1MF0KL0ZvbnRO
YW1lL0JPWVpORStFVUZNNwovSXRhbGljQW5nbGUgMAovU3RlbVYgODIKL0ZvbnRGaWxlIDEx
MSAwIFIKL0ZsYWdzIDQKPj4KZW5kb2JqCjExMSAwIG9iago8PAovRmlsdGVyWy9GbGF0ZURl
Y29kZV0KL0xlbmd0aDEgODA5Ci9MZW5ndGgyIDE2NzcKL0xlbmd0aDMgNTMzCi9MZW5ndGgg
MjI3OQo+PgpzdHJlYW0KeNrtUnk8lO0ajqPUMJXQZspbQnwNszZMi32NIZEtU9PMO+Ot8Q6z
MKPs9FEplH2pJCpCaflISLYUOlLJJ/tOZCii+s7Q6Zzf6Tv/nN/57/zO+/zzXvd9P9d93ddz
q2+xP4A2YnCOguYcmI/G6mDJgJmTuS0JwOlgEerqJlyQxoc4sCmND5IBrL4+DqBwfAEcBsCS
yPidZBwRgVAHzARskAswJQw8wA/kggAD5EEsGGQAR0WAJcj1osEw4EbzZupIik043iIuxPLk
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
I88ZHzQDz1CuUI3JbQ0a0TUyfo3loQ7vPBxrY0jrq7+AXSJ/pWTok9nrmP5QBhNzvRz76Opx
i17vrmdDxXvaPGzEq4fnccbFhTqE+tYpow3EoGKU5ystC9/kp1WpYWGoZ3DZ5Or5jtTZiAkb
Sgi1Qugs4wFnzvjJSw0Snb6Q+8NWTVvK9zSRP0+L1WTqGrBFdnlYGGhW0yQ0nw6ZU2IN4kNW
zDjuEd3Y4KH+zdHvvMlkJj5mgHbDZuWtbjuNWXX6XLBXOlXWahQf8J4Qyy/MkkadfljzDvNf
foj/E/xPENDZII3L53jRuMcRiL8BbvWtFAplbmRzdHJlYW0KZW5kb2JqCjExNSAwIG9iago8
PAovVHlwZS9Gb250RGVzY3JpcHRvcgovQ2FwSGVpZ2h0IDg1MAovQXNjZW50IDg1MAovRGVz
Y2VudCAtMjAwCi9Gb250QkJveFswIC0yNTAgMTI5NCA3NTBdCi9Gb250TmFtZS9aRUpZU0sr
Q01NSUI3Ci9JdGFsaWNBbmdsZSAtMTQuMDM1Ci9TdGVtViA2MwovRm9udEZpbGUgMTE0IDAg
UgovRmxhZ3MgNjgKPj4KZW5kb2JqCjExNCAwIG9iago8PAovRmlsdGVyWy9GbGF0ZURlY29k
ZV0KL0xlbmd0aDEgOTAwCi9MZW5ndGgyIDM1MjIKL0xlbmd0aDMgNTMzCi9MZW5ndGggNDE5
MAo+PgpzdHJlYW0KeNrtUnk4lH3bRooGIco2cisiMjOWMQaFsW8hS0lkjGFGszAzdtJiV/Yk
GdmXUNnKLpI12UKWyRqtStZk+aae53mf433e75/v+P77ju++/7nP6zp/53Ve5/2TlrS0VtBx
JbtgDcgkmoIiRFEd0DU3N0YhABiMiWAwkLS0LgWLpuHJJD00DasOKCKRqoCJNwFQYnIQ6spw
dTgMBJIGdMlET28algKYk12xFBLgxhSkAr5YChZwxVLx7iSsK+DiD+iRSWiCK6APAUxJ3jQc
5PdJT38K3h1HA2R1T/zSRwA6RCwFj0GTAHM0DYclMsdj0ATAmozBY2n+EADQIRCAs7+OUIGz
WCqW4oN1hYBAioqAKx5DA1yw7ngSCPprJWOSGxlA/FF29fb8q+WDpVCZGwGyf255AmDu6Eom
EfyZZt1A0DNk5kQs08//2Np/4+yf4gbeBMIZNPGX/O+o/6OPJuIJ/n8y/j3Vf1LPYf8whyIT
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
79nIlNShxbQDLHP8Kx8udV1ukkK83GVNCNf0GYMMe9+M2N+Oi21nK0wj1/6AWLAPHou2filg
abh+eaJLSyyWtbLXARp0g+4g4gwsnuetSEB49753vqTalisa+aJENcKkUNvxzEfuBPK7iXho
1GzYMWXexRu6k1dZkXsYsP/lA/p/gf8TAhgCFk2hkYloymUQ6L8AWKBZ6AplbmRzdHJlYW0K
ZW5kb2JqCjEyNiAwIG9iago8PAovVHlwZS9Gb250RGVzY3JpcHRvcgovQ2FwSGVpZ2h0IDg1
MAovQXNjZW50IDg1MAovRGVzY2VudCAtMjAwCi9Gb250QkJveFswIC01MDQgMjYxNSAxMDA0
XQovRm9udE5hbWUvREpXRURVK01TQk03Ci9JdGFsaWNBbmdsZSAwCi9TdGVtViA0OQovRm9u
dEZpbGUgMTI1IDAgUgovRmxhZ3MgNAo+PgplbmRvYmoKMTI1IDAgb2JqCjw8Ci9GaWx0ZXJb
L0ZsYXRlRGVjb2RlXQovTGVuZ3RoMSA4NTIKL0xlbmd0aDIgMjI4MwovTGVuZ3RoMyA1MzMK
L0xlbmd0aCAyOTA1Cj4+CnN0cmVhbQp42u1SaTiUjRomfDKlCJFUr7JEMTNkMNmZYfIxYmTJ
NsxrTMYMs8SYooWRJVlKyRaSpcVeEUW2D2UbRLJ8QklJjl10Jl3fd87pnOs617nOv3Od9/3z
3s9y3/fzvI+ivI2dmjGB6gmiqRSGGlwdjgSs7EystAENdThEUdGUBuIZJCrFDM8AkQBcV1cD
wHoxALg2ANNBasKQWjAIRBGwwjN8ADuWnyeVDHjzeOhAIEgDAQJIJxEpIAHwZAEMHxAw9gNp
JC88ZaMe9OMRe+HJgB3ViwQyWOo8HlOqP4tGIvowgIOmKt/VtP9NDwAYk8mA7fcWOmAL0kHa
aZCgDoHA4QCBxPPpCRJJFAj0+2wYijcV0P4RJjD9/0idBml03nzAQd68KgBvWgKVQmbxrHtD
oNZUnhrI8/If2/oXrn4mRzPJZGu8H49+Y9//lMb7kcisHwUoJhmk/VzgAP5wZAUSSEy/n7MY
Bp5M8jKmEMkgAPsRItHRpCCQYENiePkA3ngyHdyIgxTCz9K8bW0IQ82OOaDM7A/9OIgfSRs8
icLAsfz/pP1evYHhf8O8pdBIQcBJmDoMBucV8t4/vlx/EkNRvKgEEoUIaGghADyNhmdBYDwq
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
ONZyNSmpyvfukt2qCu55IKV4ol70IZsyIbMlIPrF8iVijWKw7doFxuvQqfm/zNUeX6mU5pOQ
lGvFSVln76TaWCYZDbt/scpU6hyYvUWzzkRn5NQJZlmnx9cUlA5pu1xuUJVTGH8ZMCKQCjJD
8FE33zP2O+oENBFSlQ1e68zZ3Ziw3J63BzwzZS2FvbJiw735trtW7dDcglqEwUIvrklCADJu
nPja40J3V73l8JFbYMbAesgXoTZ4LsIz2WyoEh+japHKV8c5yxd4c6DFNufUrPuLuCCJbmdf
oxHvG9GM+0+VDsQY+bvUX+sofNZQ0p7pnHHnXdOpHL0eKfOjOzHqxcqzfcMCt5OAQfZky/71
4Kb8GV+clEibtsDUOWG/9n3o+8rSPrjakOJ2s3dYO9fa64b8LAWN+g/HzNRrEwzFqA4Vo/Jc
67lnH7G+/m02d2ey9d3y+YoE2r0eB4akvZlvK5drrt9y3oyVstk3QIoLWBMG6yvCCXwJu630
N7WfADkPZBbvTkskn0cKruL2BpmiZ5k27RXfCoGym8b+mJSW3lEWS+xO175DBuunnbqniCn5
RLaDh8cE9LfYGbHzDnmo/N3uWPf6K+WwqVYD8JlrU5/ORIFL2UTp5NW/jLZZ2qgE9cUoVzfQ
BSj3QlebLXGZa+qGQ1JmJmOZdwzOF+LR7flfpS07RdIcmk9ua/qotnCes8k2JPpWOWZqUhEd
HRXf2CTCcqh+IrmjOW3cR1Kv79lWLRHDpSp+muG05ywniZtQUI+F/ZcP5P8E/xMEXmQQT2NQ
/fA0XwjkrxqQ8cUKZW5kc3RyZWFtCmVuZG9iagoxNDkgMCBvYmoKPDwKL1R5cGUvRm9udERl
c2NyaXB0b3IKL0NhcEhlaWdodCA4NTAKL0FzY2VudCA4NTAKL0Rlc2NlbnQgLTIwMAovRm9u
dEJCb3hbLTYzIC0yNTAgMTAyNyA3NjBdCi9Gb250TmFtZS9IUEJCVVArQ01TUzkKL0l0YWxp
Y0FuZ2xlIDAKL1N0ZW1WIDgzCi9Gb250RmlsZSAxNDggMCBSCi9GbGFncyA0Cj4+CmVuZG9i
agoxNDggMCBvYmoKPDwKL0ZpbHRlclsvRmxhdGVEZWNvZGVdCi9MZW5ndGgxIDcxNQovTGVu
Z3RoMiAyMjU0Ci9MZW5ndGgzIDUzMwovTGVuZ3RoIDI3OTMKPj4Kc3RyZWFtCnja7ZJ5PJTt
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
deUA/L98IP8P+J8IwBFBLJVOIWGpARDI3wFJ1cAeCmVuZHN0cmVhbQplbmRvYmoKMTUyIDAg
b2JqCjw8Ci9UeXBlL0ZvbnREZXNjcmlwdG9yCi9DYXBIZWlnaHQgODUwCi9Bc2NlbnQgODUw
Ci9EZXNjZW50IC0yMDAKL0ZvbnRCQm94Wy01OSAtMjUwIDEyMzUgNzUwXQovRm9udE5hbWUv
TUlOWFhXK0NNQlg4Ci9JdGFsaWNBbmdsZSAwCi9TdGVtViAxMjIKL0ZvbnRGaWxlIDE1MSAw
IFIKL0ZsYWdzIDQKPj4KZW5kb2JqCjE1MSAwIG9iago8PAovRmlsdGVyWy9GbGF0ZURlY29k
ZV0KL0xlbmd0aDEgNzEzCi9MZW5ndGgyIDEyMTIKL0xlbmd0aDMgNTMzCi9MZW5ndGggMTc0
Mwo+PgpzdHJlYW0KeNrtkmtUE3caxkGuG6HIpRpFcEAwQCQXMCBgjwTQFm1CAJEsIklIJjAS
MjCZYFKKIBIRDxa0UEXRgwgFJRokqNwFPFZEsVxWwCKgcrGHykXuwoIboHbP6n7Z0289O/Nl
3ud95nl/887f2oLhb0/lwaHgbliI2pMJZFfAk+bB3A6QCSSMtbUnAnJQCBZ6cVDQFSC7uJAB
qjgMcCABZCdXRydXkjMGYw14wlFSBAoLRwEbT9sllzNAjQQRiMsRAjQOGg5GqkK4HAHgD3Mh
EJUSAIAqEAB+S6+IAD9QBCIxII+AwZDJAA/iokAoGAYJMcQlJm8hHwacV2SeOOpDKwZERCou
wEbFaQuoKHmwUCAFeCAfQ6TDqmmgiuV/xvovVB+H7xYLBHRO5FL80p4+aXMiIYH0dwMcGSVG
QQSgwTwQEX5sDQRX2DxgwSdTvFGOAOJShWECECCtSJBoNyQBeQwI5YYDfI5ABC7roJD3MYJq
a8sARJo3nckMxK/80JUmgwMJ0X3SqD9il9zLNfnftWo5CCQBDpAIJBJZZVTdH54OfjRsl5AL
8yBhGOCPcoQ8DsL7Q/gUysMDlsTaU1wAeweK6gA5OFIAZwop7j+NAUIoWgx6ewEUEonk7OS0
rHLFCAIK0eVDoPrgDzUfUq0HBCUgF3Mh+3NInbXVDD/Fnqx9ahlY0dTOwFTnD5+jTOes/blh
bLVAi9BxKFkWwZjs1J/7jZF6dtZm084TN4/Q3NJrp0PuSaUb5M/X2vEfVR14NeV6/dRr+xbj
W0GriHdHwNRy1gElPocSG6Jl0D3Oy0Gjat7et1h/e/7pgyM1z3jyIHzNw05l/8mBSjVX7tNd
h/eewV9kTRdrC5948oKMsdJiB+O4yERH2WLAhLt9QHxb6VcRL9+ZFWy3PWZY56R3lNm+8c42
3A6LqoELBgSz7fXztee+HszxOejWQN+i7oJmXT1aoqbUOWxITWBtCu64iR99AcwYmddpPMcr
1o3JLzejemcKuzlGc9n6pKYbPnYzgeUzxnW49sZVo2Q/rTLz96GnNUtMQte1Fs9uNnZ73KB3
yV0/3L2L1ZuYluRvbGswPKKpv23ib2mmQREp1AYzc3bcI/Jqk7XZpY4OWRmlLXJTb3PU8inW
Lk1xpO1R/asdzNy+Nbci8318nbT2t8YxJU4Z9zcoQq/kdp2Wn5rV0LgXvMBwpKoxgPyfGZtq
b/tMTp7NNJtuYowZKIq/tG5163biCL7Vbkr3I+1PnL49YHHC1tI51luaOzhGLje1O97JNT/a
s+6dOrNRSzPYLfGLwpLWGwvOV3A2uyqeiDOeXJt7c5fjboFLUX7/jVVTZ08f7uG2q8V9NgvH
Lt+iPKscgldpPgl5/fU9HUhE87nSrSd3Oe6rl1WhbRN+RmYiqOE1FmbXvz3JeWb1esJoDnsJ
099Tbjy8sXdo0JRu8IqFExeWDBdd/62IXvJmEmHWFUSrN6x53OSmzXXRmQH/mVC5wRo3m5/t
F2PwvqhSbgZeXqd7pSYvIN7KP0zUErfw2Uj/K6K7UDMmeCqxvdHLZNzLFJ7k3mdj+/fkLjxU
7NRM+CVLduja2YGIvfWnzqODHfRgzZGOI4vjqbHYx415dj0SSwObfuzdhI2aI0VnmBM/hEl2
Fjy3IuoaeeEH+DZnTfNMuIV9Y/WgL3bO5h67o6HYT5fuJrPQbd/b21ewOkUWeQJ9k2PnXl3B
mj2V9PfKtDLLLWq0+Bb1Ew55PfjyrPFfv8tnZ4qKCYsxXTKxo6cyJIPd8k5pyTSuStD9sbHS
rmJUY0TnfiAuyBEpmwzO5NLj/1ESkDQ1f7wyYMjw2g+fx+Z6bMU23yEeu9Cv1VpaRXxRFJBc
aO7Qw+5VTHYTqEAzf3NWnNjnPKH118SDVSWp39w8VPvIW+xd7RNOkey4jtU5P5quRfOTWcIZ
rPK87uYpX4VWKkbpft507eFq+2aCcfSlWreLGasH1fISkrrWF0X3ts+9lb+kWv0UeDFJqeE6
f8Pv7RaWoR4ym/7AfkoEx468Vk8ZutTtsz8vbQv8Wbazt24m8/SLsgdrJCHJ/K2pD7TBeXle
t+xkhW80W/+xWntRVCfDNzt282aRYUPlYs++pKom5sZfFNrjrvt+/J4r1JtpHLibpRjs9/wp
eei2WDqa8nJiNipqYdy8Iml4uk1iIG+q/sLdD6fGSKn9qgNXZ3exTsnPXVTEB9NivPaE7ClI
RvBlV9teDu6LzmW3ZeJ9S787935eM9O/tmu9I/Alhk1MH92hFW/UEY83wIV+i4TO1CqVPMYd
0p+8MP8P+EsEcAUgB0HhSA4SgcH8CzWopisKZW5kc3RyZWFtCmVuZG9iagoxNjMgMCBvYmoK
PDwKL1R5cGUvRm9udERlc2NyaXB0b3IKL0NhcEhlaWdodCA4NTAKL0FzY2VudCA4NTAKL0Rl
c2NlbnQgLTIwMAovRm9udEJCb3hbLTMwIC05NTUgMTE4NSA3NzldCi9Gb250TmFtZS9SQU5Q
WkErQ01TWTgKL0l0YWxpY0FuZ2xlIC0xNC4wMzUKL1N0ZW1WIDg5Ci9Gb250RmlsZSAxNjIg
MCBSCi9GbGFncyA2OAo+PgplbmRvYmoKMTYyIDAgb2JqCjw8Ci9GaWx0ZXJbL0ZsYXRlRGVj
b2RlXQovTGVuZ3RoMSA3MjEKL0xlbmd0aDIgNjA3Ci9MZW5ndGgzIDUzMwovTGVuZ3RoIDEx
MTcKPj4Kc3RyZWFtCnjaU1UMCNZ1TMlPSnXLzyvRNdQztFJw9g2OtFAw1DPgUlV1LkpNLMnM
z3NJLEm1UjC0tDRUcCxNVzA0VTAwtzIysjI04OJSVXDOL6gsykzPKFHQcNYEqTJXcMxNLcpM
TsxT8E0syUjNBRqSnJijEJyfnJlaUqmnoOCYk6MQBNJSrBCUWpxaVJaaosfFZWiokJKZXKKQ
lJqemcelD3KTZ15avoI5RDiltAAmVZZaVAx0l4IG0J2aCkBXpuTn5VQqpKSmcen75QNtSwW6
hWRnYXEVuuFupTk5fom5IONB4YQhnZibmVMJVZCfW1Baklqk4JufklqUh640PBXiNt/UlMzS
XHRZz5LEnMxkx7z0nFQFXUMTPQNjU4hEZrFbZkVqSkBmSXKGQlpiTnEqWDw1LwXdKcDQAztE
P8jRLyDKURsSsRDJgMTMvJKQyoJUBQOEajDfEMEHBlJRZoVCtIGegYEhUCEQwlixaJa55iXn
p2TmpSsElyTmpSQWpcAFMB3l5JRfUa1rbKCga2lqqmBoaGGqYG5uWYuqMDQvs7A01dNFwdTA
wMDC0AIsmlxaVJSaVwJODEAPw/hpmcBASk2tSE3mmj1HNJMxXkdW+2vClwNXlcJ3nTh3c8Ms
9ahNhpJ+55smB7E25ftNjz137ri2zueFHTPP3JO/aXphbqM1Z86xHTb3/ZV3LuPdIj+zbI2x
UfJJjjvvz+71aWF6y7A4r6Q92Zdj/pWoL4u7wpY46lhzr//1urD6w735v6taEva7R6VLbDhu
Ey7oekFtalFZMKvBot/vj534EMnhWPF1deRD6bSwnKW7nDZOlIqtl/7szBj35mXH9pXW53iq
lgm7XOl6O2fSicxe75qZgSdqBexVRDbPEzH/eekpj9/TTxKfnhVmqi2ft7Lio7V8a7CrpOz1
y7L9TYcem9hURUy5GX3HU0dDKcPk/ekYoX+Ls46ecebjWsYyTc6ko+t+jrxlyOlDnn1KsVNt
vmZEBIkpu30pidIqaL96fa1H7sNcnRUPY96pPRBKl1689/jNmBMnu7eXfOVIipvW9U79f60U
2zPr81tXeZQd/vHR2uDMmXfFh099ec4749lbfSfd3Z4B+yumNTxIEeWcOkVqvu+1rvBIz5aq
WkbtnQL7mZcvSrZrW9JzsXmdBJe18R+WVw2/Yrt5JAVsjP5eTkvXmMGQ9KupyO7zsTuuTl87
21wPeWSL/zHPP9LGIW2i0MQUbFS1X+eYxvuAoF7316/YJhjXFb37c+Ty7W2x19fL/GiJ0dbk
0dRNe7Vwov3Gmq5Fq1L82R+J60942fJVw97H0H36r9cLJ6m4Hw6ed7hO+Mv3/JbMhJbwKSlH
py3+Vz7/+IY9modTvQK3btP9kVwcy/WZ6zJnD/+i6KrDt2Z1adl8nx6l8TLKXurai2fe/XVX
LvyTEn3Q4bp/eQHDDtfpe1+xfghVMqAQcI0aMCwMSM5JTSwqyc9NLMrm4gIA4sV4DwplbmRz
dHJlYW0KZW5kb2JqCjEgMCBvYmoKPDwKL0NyZWF0b3IoIFRlWCBvdXRwdXQgMjAwNi4wMi4x
NzowNjEzKQovUHJvZHVjZXIoZHZpcGRmbSAwLjEzLjJjLCBDb3B5cmlnaHQgXDI1MSAxOTk4
LCBieSBNYXJrIEEuIFdpY2tzKQovQ3JlYXRpb25EYXRlKEQ6MjAwNjAyMTcwNjEzNTktMDUn
MDAnKQo+PgplbmRvYmoKNSAwIG9iago8PAovVHlwZS9QYWdlCi9SZXNvdXJjZXMgNiAwIFIK
L0NvbnRlbnRzWzQ0IDAgUiA0IDAgUiA0NSAwIFIgNDYgMCBSXQovUGFyZW50IDE2NyAwIFIK
Pj4KZW5kb2JqCjQ4IDAgb2JqCjw8Ci9UeXBlL1BhZ2UKL1Jlc291cmNlcyA0OSAwIFIKL0Nv
bnRlbnRzWzQ0IDAgUiA0IDAgUiA1NiAwIFIgNDYgMCBSXQovUGFyZW50IDE2NyAwIFIKPj4K
ZW5kb2JqCjU4IDAgb2JqCjw8Ci9UeXBlL1BhZ2UKL1Jlc291cmNlcyA1OSAwIFIKL0NvbnRl
bnRzWzQ0IDAgUiA0IDAgUiA3OSAwIFIgNDYgMCBSXQovUGFyZW50IDE2NyAwIFIKPj4KZW5k
b2JqCjE2NyAwIG9iago8PAovVHlwZS9QYWdlcwovQ291bnQgMwovS2lkc1s1IDAgUiA0OCAw
IFIgNTggMCBSXQovUGFyZW50IDMgMCBSCj4+CmVuZG9iago4MSAwIG9iago8PAovVHlwZS9Q
YWdlCi9SZXNvdXJjZXMgODIgMCBSCi9Db250ZW50c1s0NCAwIFIgNCAwIFIgODkgMCBSIDQ2
IDAgUl0KL1BhcmVudCAxNjggMCBSCj4+CmVuZG9iago5MSAwIG9iago8PAovVHlwZS9QYWdl
Ci9SZXNvdXJjZXMgOTIgMCBSCi9Db250ZW50c1s0NCAwIFIgNCAwIFIgMTE3IDAgUiA0NiAw
IFJdCi9QYXJlbnQgMTY4IDAgUgo+PgplbmRvYmoKMTE5IDAgb2JqCjw8Ci9UeXBlL1BhZ2UK
L1Jlc291cmNlcyAxMjAgMCBSCi9Db250ZW50c1s0NCAwIFIgNCAwIFIgMTIxIDAgUiA0NiAw
IFJdCi9QYXJlbnQgMTY4IDAgUgo+PgplbmRvYmoKMTIzIDAgb2JqCjw8Ci9UeXBlL1BhZ2UK
L1Jlc291cmNlcyAxMjQgMCBSCi9Db250ZW50c1s0NCAwIFIgNCAwIFIgMTI4IDAgUiA0NiAw
IFJdCi9QYXJlbnQgMTY4IDAgUgo+PgplbmRvYmoKMTY4IDAgb2JqCjw8Ci9UeXBlL1BhZ2Vz
Ci9Db3VudCA0Ci9LaWRzWzgxIDAgUiA5MSAwIFIgMTE5IDAgUiAxMjMgMCBSXQovUGFyZW50
IDMgMCBSCj4+CmVuZG9iagoxMzAgMCBvYmoKPDwKL1R5cGUvUGFnZQovUmVzb3VyY2VzIDEz
MSAwIFIKL0NvbnRlbnRzWzQ0IDAgUiA0IDAgUiAxMzIgMCBSIDQ2IDAgUl0KL1BhcmVudCAx
NjkgMCBSCj4+CmVuZG9iagoxMzQgMCBvYmoKPDwKL1R5cGUvUGFnZQovUmVzb3VyY2VzIDEz
NSAwIFIKL0NvbnRlbnRzWzQ0IDAgUiA0IDAgUiAxMzYgMCBSIDQ2IDAgUl0KL1BhcmVudCAx
NjkgMCBSCj4+CmVuZG9iagoxMzggMCBvYmoKPDwKL1R5cGUvUGFnZQovUmVzb3VyY2VzIDEz
OSAwIFIKL0NvbnRlbnRzWzQ0IDAgUiA0IDAgUiAxNDAgMCBSIDQ2IDAgUl0KL1BhcmVudCAx
NjkgMCBSCj4+CmVuZG9iagoxNjkgMCBvYmoKPDwKL1R5cGUvUGFnZXMKL0NvdW50IDMKL0tp
ZHNbMTMwIDAgUiAxMzQgMCBSIDEzOCAwIFJdCi9QYXJlbnQgMyAwIFIKPj4KZW5kb2JqCjE0
MiAwIG9iago8PAovVHlwZS9QYWdlCi9SZXNvdXJjZXMgMTQzIDAgUgovQ29udGVudHNbNDQg
MCBSIDQgMCBSIDE0NCAwIFIgNDYgMCBSXQovUGFyZW50IDE3MCAwIFIKPj4KZW5kb2JqCjE0
NiAwIG9iago8PAovVHlwZS9QYWdlCi9SZXNvdXJjZXMgMTQ3IDAgUgovQ29udGVudHNbNDQg
MCBSIDQgMCBSIDE1NCAwIFIgNDYgMCBSXQovUGFyZW50IDE3MCAwIFIKPj4KZW5kb2JqCjE1
NiAwIG9iago8PAovVHlwZS9QYWdlCi9SZXNvdXJjZXMgMTU3IDAgUgovQ29udGVudHNbNDQg
MCBSIDQgMCBSIDE1OCAwIFIgNDYgMCBSXQovUGFyZW50IDE3MCAwIFIKPj4KZW5kb2JqCjE2
MCAwIG9iago8PAovVHlwZS9QYWdlCi9SZXNvdXJjZXMgMTYxIDAgUgovQ29udGVudHNbNDQg
MCBSIDQgMCBSIDE2NSAwIFIgNDYgMCBSXQovUGFyZW50IDE3MCAwIFIKPj4KZW5kb2JqCjE3
MCAwIG9iago8PAovVHlwZS9QYWdlcwovQ291bnQgNAovS2lkc1sxNDIgMCBSIDE0NiAwIFIg
MTU2IDAgUiAxNjAgMCBSXQovUGFyZW50IDMgMCBSCj4+CmVuZG9iagozIDAgb2JqCjw8Ci9U
eXBlL1BhZ2VzCi9Db3VudCAxNAovS2lkc1sxNjcgMCBSIDE2OCAwIFIgMTY5IDAgUiAxNzAg
MCBSXQovTWVkaWFCb3hbMCAwIDU5NSA4NDJdCj4+CmVuZG9iago0NCAwIG9iago8PAovTGVu
Z3RoIDEKPj4Kc3RyZWFtCgplbmRzdHJlYW0KZW5kb2JqCjQ2IDAgb2JqCjw8Ci9MZW5ndGgg
MQo+PgpzdHJlYW0KCmVuZHN0cmVhbQplbmRvYmoKNCAwIG9iago8PAovTGVuZ3RoIDMzCj4+
CnN0cmVhbQoxLjAwMDI4IDAgMCAxLjAwMDI4IDcyIDc2OS44MiBjbQplbmRzdHJlYW0KZW5k
b2JqCjE3MSAwIG9iago8PAo+PgplbmRvYmoKMTcyIDAgb2JqCm51bGwKZW5kb2JqCjE3MyAw
IG9iago8PAo+PgplbmRvYmoKMiAwIG9iago8PAovVHlwZS9DYXRhbG9nCi9QYWdlcyAzIDAg
UgovT3V0bGluZXMgMTcxIDAgUgovVGhyZWFkcyAxNzIgMCBSCi9OYW1lcyAxNzMgMCBSCj4+
CmVuZG9iagp4cmVmCjAgMTc0CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDI1MjMwMSAwMDAw
MCBuIAowMDAwMjU0NjgyIDAwMDAwIG4gCjAwMDAyNTQzMjcgMDAwMDAgbiAKMDAwMDI1NDUz
MiAwMDAwMCBuIAowMDAwMjUyNDY1IDAwMDAwIG4gCjAwMDAwMTc5MDEgMDAwMDAgbiAKMDAw
MDAwMDAwOSAwMDAwMCBuIAowMDAwMDY4MzI3IDAwMDAwIG4gCjAwMDAwNjgxNDMgMDAwMDAg
biAKMDAwMDAwMDkxMyAwMDAwMCBuIAowMDAwMDcyNjUxIDAwMDAwIG4gCjAwMDAwNzI0NjIg
MDAwMDAgbiAKMDAwMDAwMTkwNiAwMDAwMCBuIAowMDAwMDgxODA5IDAwMDAwIG4gCjAwMDAw
ODE2MjMgMDAwMDAgbiAKMDAwMDAwMjg1MiAwMDAwMCBuIAowMDAwMDkyNzc0IDAwMDAwIG4g
CjAwMDAwOTI1ODggMDAwMDAgbiAKMDAwMDAwMzg1MiAwMDAwMCBuIAowMDAwMDA0ODUyIDAw
MDAwIG4gCjAwMDAwOTUxNjQgMDAwMDAgbiAKMDAwMDA5NDk3OSAwMDAwMCBuIAowMDAwMDA1
ODI5IDAwMDAwIG4gCjAwMDAxMDg0NzEgMDAwMDAgbiAKMDAwMDEwODI4MyAwMDAwMCBuIAow
MDAwMDA2ODMwIDAwMDAwIG4gCjAwMDAxMjM4MDUgMDAwMDAgbiAKMDAwMDEyMzYxOSAwMDAw
MCBuIAowMDAwMDA3NzQ3IDAwMDAwIG4gCjAwMDAwMDg3MTEgMDAwMDAgbiAKMDAwMDEyNjIw
OCAwMDAwMCBuIAowMDAwMTI2MDEzIDAwMDAwIG4gCjAwMDAwMTAzMjcgMDAwMDAgbiAKMDAw
MDEyODY3NCAwMDAwMCBuIAowMDAwMTI4NDg4IDAwMDAwIG4gCjAwMDAwMTEyNzggMDAwMDAg
biAKMDAwMDAxMjAyMiAwMDAwMCBuIAowMDAwMTQwNzkzIDAwMDAwIG4gCjAwMDAxNDA1OTkg
MDAwMDAgbiAKMDAwMDAxMjk3NiAwMDAwMCBuIAowMDAwMTQ2NDYzIDAwMDAwIG4gCjAwMDAx
NDYyNzYgMDAwMDAgbiAKMDAwMDAxMzkyMyAwMDAwMCBuIAowMDAwMjU0NDMyIDAwMDAwIG4g
CjAwMDAwMTQ5MTEgMDAwMDAgbiAKMDAwMDI1NDQ4MiAwMDAwMCBuIAowMDAwMDE3NzU2IDAw
MDAwIG4gCjAwMDAyNTI1NjggMDAwMDAgbiAKMDAwMDAyMjAzMCAwMDAwMCBuIAowMDAwMTUy
MDkzIDAwMDAwIG4gCjAwMDAxNTE5MDcgMDAwMDAgbiAKMDAwMDAxNzk2MiAwMDAwMCBuIAow
MDAwMTYzMjY2IDAwMDAwIG4gCjAwMDAxNjMwODEgMDAwMDAgbiAKMDAwMDAxODkzMSAwMDAw
MCBuIAowMDAwMDE5Njc1IDAwMDAwIG4gCjAwMDAwMjE5MTcgMDAwMDAgbiAKMDAwMDI1MjY3
MyAwMDAwMCBuIAowMDAwMDMxMjYwIDAwMDAwIG4gCjAwMDAxNzM3OTYgMDAwMDAgbiAKMDAw
MDE3MzYwMiAwMDAwMCBuIAowMDAwMDIyMDkyIDAwMDAwIG4gCjAwMDAwMjMxMDIgMDAwMDAg
biAKMDAwMDE3NTcxMyAwMDAwMCBuIAowMDAwMTc1NTE4IDAwMDAwIG4gCjAwMDAwMjQwMDkg
MDAwMDAgbiAKMDAwMDE4MDU5NiAwMDAwMCBuIAowMDAwMTgwNDA2IDAwMDAwIG4gCjAwMDAw
MjQ5OTEgMDAwMDAgbiAKMDAwMDE4OTEwMyAwMDAwMCBuIAowMDAwMTg4OTEwIDAwMDAwIG4g
CjAwMDAwMjU5MjggMDAwMDAgbiAKMDAwMDE5NDA2MCAwMDAwMCBuIAowMDAwMTkzODY5IDAw
MDAwIG4gCjAwMDAwMjY4NDkgMDAwMDAgbiAKMDAwMDE5NzYwNCAwMDAwMCBuIAowMDAwMTk3
NDExIDAwMDAwIG4gCjAwMDAwMjc4NDQgMDAwMDAgbiAKMDAwMDAyODc4NCAwMDAwMCBuIAow
MDAwMDMxMDc2IDAwMDAwIG4gCjAwMDAyNTI4NjMgMDAwMDAgbiAKMDAwMDAzNTI2OSAwMDAw
MCBuIAowMDAwMTk5MzgzIDAwMDAwIG4gCjAwMDAxOTkxOTQgMDAwMDAgbiAKMDAwMDAzMTMy
MiAwMDAwMCBuIAowMDAwMjAzNDg4IDAwMDAwIG4gCjAwMDAyMDMyOTYgMDAwMDAgbiAKMDAw
MDAzMjI5OSAwMDAwMCBuIAowMDAwMDMzMzA0IDAwMDAwIG4gCjAwMDAwMzUxMTkgMDAwMDAg
biAKMDAwMDI1Mjk2OCAwMDAwMCBuIAowMDAwMDQ1MzAxIDAwMDAwIG4gCjAwMDAyMDU2NTQg
MDAwMDAgbiAKMDAwMDIwNTQ1NyAwMDAwMCBuIAowMDAwMDM1MzMxIDAwMDAwIG4gCjAwMDAy
MDg2MDMgMDAwMDAgbiAKMDAwMDIwODQwOSAwMDAwMCBuIAowMDAwMDM2MzIzIDAwMDAwIG4g
CjAwMDAyMTExMzIgMDAwMDAgbiAKMDAwMDIxMDkzOCAwMDAwMCBuIAowMDAwMDM3MzIzIDAw
MDAwIG4gCjAwMDAyMTgzNDcgMDAwMDAgbiAKMDAwMDIxODE1MyAwMDAwMCBuIAowMDAwMDM4
MzI3IDAwMDAwIG4gCjAwMDAyMjA3NzQgMDAwMDAgbiAKMDAwMDIyMDU4NCAwMDAwMCBuIAow
MDAwMDM5MzE4IDAwMDAwIG4gCjAwMDAyMjg5ODQgMDAwMDAgbiAKMDAwMDIyODc4OSAwMDAw
MCBuIAowMDAwMDQwMzIwIDAwMDAwIG4gCjAwMDAyMzU2MjcgMDAwMDAgbiAKMDAwMDIzNTQ0
MCAwMDAwMCBuIAowMDAwMDQxMjg5IDAwMDAwIG4gCjAwMDAyMzgyMTYgMDAwMDAgbiAKMDAw
MDIzODAyMSAwMDAwMCBuIAowMDAwMDQyMTI3IDAwMDAwIG4gCjAwMDAwNDMxMDYgMDAwMDAg
biAKMDAwMDA0NTEwNiAwMDAwMCBuIAowMDAwMjUzMDc0IDAwMDAwIG4gCjAwMDAwNDcyODkg
MDAwMDAgbiAKMDAwMDA0NTM2NCAwMDAwMCBuIAowMDAwMDQ3MTU3IDAwMDAwIG4gCjAwMDAy
NTMxODIgMDAwMDAgbiAKMDAwMDA1MDY3NSAwMDAwMCBuIAowMDAwMjQyNzA5IDAwMDAwIG4g
CjAwMDAyNDI1MjEgMDAwMDAgbiAKMDAwMDA0NzM1MyAwMDAwMCBuIAowMDAwMDQ4MjUwIDAw
MDAwIG4gCjAwMDAwNTA0NTkgMDAwMDAgbiAKMDAwMDI1MzM4NSAwMDAwMCBuIAowMDAwMDUy
OTQyIDAwMDAwIG4gCjAwMDAwNTA3MzkgMDAwMDAgbiAKMDAwMDA1Mjc5MSAwMDAwMCBuIAow
MDAwMjUzNDkzIDAwMDAwIG4gCjAwMDAwNTUwNzUgMDAwMDAgbiAKMDAwMDA1MzAwNiAwMDAw
MCBuIAowMDAwMDU0OTcxIDAwMDAwIG4gCjAwMDAyNTM2MDEgMDAwMDAgbiAKMDAwMDA1NzA0
NyAwMDAwMCBuIAowMDAwMDU1MTM5IDAwMDAwIG4gCjAwMDAwNTY5NDYgMDAwMDAgbiAKMDAw
MDI1Mzc5OCAwMDAwMCBuIAowMDAwMDU4MTQ5IDAwMDAwIG4gCjAwMDAwNTcxMTEgMDAwMDAg
biAKMDAwMDA1ODA2OSAwMDAwMCBuIAowMDAwMjUzOTA2IDAwMDAwIG4gCjAwMDAwNjI3NjEg
MDAwMDAgbiAKMDAwMDI0NTkxOCAwMDAwMCBuIAowMDAwMjQ1NzI5IDAwMDAwIG4gCjAwMDAw
NTgyMTMgMDAwMDAgbiAKMDAwMDI0OTAxNiAwMDAwMCBuIAowMDAwMjQ4ODI2IDAwMDAwIG4g
CjAwMDAwNTkyMDYgMDAwMDAgbiAKMDAwMDA2MDIxNCAwMDAwMCBuIAowMDAwMDYyNTczIDAw
MDAwIG4gCjAwMDAyNTQwMTQgMDAwMDAgbiAKMDAwMDA2NTM1NSAwMDAwMCBuIAowMDAwMDYy
ODI1IDAwMDAwIG4gCjAwMDAwNjUyMzAgMDAwMDAgbiAKMDAwMDI1NDEyMiAwMDAwMCBuIAow
MDAwMDY4MDc5IDAwMDAwIG4gCjAwMDAyNTEwNzAgMDAwMDAgbiAKMDAwMDI1MDg3NCAwMDAw
MCBuIAowMDAwMDY1NDE5IDAwMDAwIG4gCjAwMDAwNjY0MjkgMDAwMDAgbiAKMDAwMDA2Nzk3
NSAwMDAwMCBuIAowMDAwMjUyNzc4IDAwMDAwIG4gCjAwMDAyNTMyOTAgMDAwMDAgbiAKMDAw
MDI1MzcwOSAwMDAwMCBuIAowMDAwMjU0MjMwIDAwMDAwIG4gCjAwMDAyNTQ2MTQgMDAwMDAg
biAKMDAwMDI1NDYzNyAwMDAwMCBuIAowMDAwMjU0NjU5IDAwMDAwIG4gCnRyYWlsZXIKPDwK
L1NpemUgMTc0Ci9Sb290IDIgMCBSCi9JbmZvIDEgMCBSCj4+CnN0YXJ0eHJlZgoyNTQ3ODAK
JSVFT0YK
--------------75B8A8A409371D377A31895A--

\start
Date: Sun, 21 Aug 2016 16:17:01 -0400
From: Tim Daly <axiomcas@gmail.com>
To: Dan Zwillinger <zwilling@az-tec.com>
Subject: Re: [Axiom-developer] Design Thoughts on Semantic Latex (SELATEX)
Cc: Richard Fateman <fateman@berkeley.edu>,
	axiom-dev <axiom-developer@nongnu.org>, 
	Tim Daly <daly@axiom-developer.org>, Ralf Hemmecke <ralf@hemmecke.org>, 
	James Davenport <J.H.Davenport@bath.ac.uk>, Mike Dewar <miked@nag.co.uk>,
	vdhoeven@lix.polytechnique.fr, albert_rich@msn.com

Dan,

Welcome.

Re: Howard Cohl. Yes, I'd like an introduction. It seems important to
make DLMF, CRC, and other sources contain enough semantics that
they can be read by a computer algebra system. There are an
enormous number of issues, such as what to do with functions
unknown to the CAS, which need to be thought through.

I believe that NIST/CRC/G&R collections with semantic markup will
have a great normalizing effect on CAS development since it will raise
cross-platform questions like "What percent of G&R do you handle?".
Albert Rich (RUBI)[0] has been doing this for integration using patterns.
This can only benefit computational mathematics in the long term.

I've also campaigned for associating algorithms with published tables.
It is important in the long term to have reference versions. The ACM
used to do this years ago. I'd like to see a Gruntz algorithm for limits
where it can be applied, for instance. It would also provide a focus on
"missing algorithms" or edge cases. Davenport/Trager/Bronstein
algorithms promise a decision procedure but there are no existing
complete implementations. The tables could highlight missing cases,
giving focus to efforts to complete the procedure.

It will also put back-pressure on the tables to define different versions
of the same formulas based on domains (C, R, etc).


"The GR work was more than I had anticipated"... wins the award for
understatement of the decade.

The goal of this effort is to make it possible to read those
formulas directly into a CAS. Axiom is my primary target but
it should be done in a somewhat system agnostic form.

I've spent well over a year creating the computer algebra test suite.
It would be so much easier and more useful if the original sources
could be read directly.

I read your paper. There is an interesting mix of syntax and semantics.

I guess the difference in this effort is that the semantic markup is
intended to be transparent and grounded. The transparent aspect
keeps the tables unchanged in print form. The grounded aspect keeps
the semantics based on some algorithmic base. This implies, of
course, that there IS an algorithmic base which does not yet exist
for some of the work.

As you can see from the CATS work I've been trying to validate
Axiom's results with respect to published texts. This has found both
Axiom bugs and misprints in published texts.

The Kamke[1] suite was the first effort for differential equations.

The Spiegel[2] chapter 14 on indefinite integrals for integration.

The von Seggern[3] book on curves and surfaces for graphics.

The Legendre and Grazini[4] on Pasta by Design for 3D graphics.

The RUBI work on integration.

and, currently I'm re-creating the numerics that were lost when NAG
released the open source version, leaving me swimming through
Luke's[5] Algorithms book.

which, to quote a famous phrase "was more than I had anticipated".

Your Handbook of Integration[6] has a section on various known
"Caveats, How an integration result may be incorrect". This raises the
wonderful topic of branch cuts yet again. I did some testing and it
seems that Axiom and Mathematica share one set while Maple and
Maxima share another.

All of which leads to a need to create better reference materials that
are generally available (unlike the ACM algorithms for non-paying
customers) and directly useful for computational mathematics.

The current plan is to take some tables, find or re-create the latex,
invent a semantic markup, and then write the "weaver". At this point
the research is still at the "proof of concept" stage. (tex formula
sources are most welcome).

Ultimately I'd really like to see a book of formulas and algorithms
that I can just drag-and-drop into Axiom and be able to use them
without lifetimes of work.

Actually, that 's only the penultimate goal. I have augmented
Axiom to include proofs (ACL2,COQ) so I'd also like to see proofs,
(this IS mathematics, after all) but maybe we'll leave that for
next month :-)

Tim

[0] Rich, Albert "Rule-based Mathematics"
http://www.apmaths.uwo.ca/~arich/

[1] Kamke. E. "Differentialgleichungen Losungsmethoden und Losungen"
Chelsea Publishing Company, New York, 1959

[2] Spiegel, Murray R. "Mathematical Handbook", Schaum's Outline
Series; McGraw-Hill Book Company 1968

[3] von Seggern, David "CRC Standard Curves and Surfaces",
CRC Press, 1993 ISBN 0-8493-0196-3

[4] Legendre, George L. and Grazini, Stefano "Pasta by Design",
Thames and Hudson, 2001

[5] Luke, Yudell "Algorithms for the Computation of Mathematical
Functions", Academic Press, 1977 ISBN 0-12-459940-6

[6] Zwillinger, Daniel "Handbook of Integration" Jones and Bartlett,
London, 1992



On Sun, Aug 21, 2016 at 10:16 AM, Dan Zwillinger <zwilling@az-tec.com>
wrote:

> All
>
> I began reading this topic's emails when they first appeared, and then
> fell behind.
> Sorry for my late comments.
>
> I admire your efforts.
> They may be somewhat related to what I have done in the past.
> My experience is as follows:
>
> (1) CRC SMTF (Standard Mathematical Tables and Formula)
>
> I put the ~700 integrals in CRC's SMTF into a format from which
> (A) they could be typeset in LaTeX
> (B) they could be converted into Mathematica (which either did a symbolic
> or numeric computation) - and this was done
>
> I let Richard Fateman use them for his experiments.
>
>
> (2) Elsevier's GR (Gradshteyn and Ryzhik's "Table of Integrals, Series,
> and Products")
>
> I put the ~12,000 (if my memory is correct) integrals into a format from
> which
> (A) they could be beautifully typeset in LaTeX
> (B) they could be converted into Mathematica - and this was NOT done
> Enclosed is a PDF file describing the work and the resulting format.
>
>
> A different format was used for SMTF and GR.
> While the SMTF work was not too arduous, the GR work was more than I had
> anticipated.
> The input (the previous version of GR) had little syntactic structure and
> it took much effort to get it into shape.
> I used (many different) regular expressions (in perl) to translate the
> bulk of the book, and then lots of hand tuning.
>
> While I think you are well beyond my thinking on these topics, please let
> me know if I can help.
> I am friends with Howard Cohl at NIST, who may be the current lead for
> DLMF ("Digital Library of Mathematical Functions" at dlmf.nist.gov).
> Let me know if you need an introduction.
>
>
> Dan Zwillingerzwilling@az-tec.com617-388-2382
>
> On 8/20/2016 11:30 PM, Tim Daly wrote:
>
> The game is to define latex markup that is transparent to the syntax
> but adds semantics for post processing.
>
> Some simple tests show that this works. Suppose selatex.sty contains:
>
> \newcommand{\INT}[1]{#1}
> \newcommand{\VARIABLE}[1]{#1}
> \newcommand{\POLY}[1]{#1}
> \newcommand{\INTEG}[2]{\int{#1}}
>
> This defines 4 new latex markups. The number in the square brackets
> defines the number of expected arguments. The brace argument
> delimites the characters that will occur during expansion with the #1
> replaced by the first argument.
>
> (As an aside, INT, VARIABLE, and POLY just happen to be valid
> Axiom domain abbreviations, hence the name choice. This choice
> of names gives grounding to the semantics.)
>
> Notice that \INTEG takes two arguments but will display only one.
> This allows the variable of integration to be passed in the semantics
> without showing up in the output. This allows the semantics to carry
> additional, non-display information needed by the CAS.
>
> Some examples follow.
>
> An integer 3 can be wrapped as \INT{3} but will still display as 3.
>
> A variable x can be wrapped as \VARIABLE{x}, displayed as x.
>
> $\POLY{\INT{3}\VARIABLE{x}}$ will display as 3*x
>
> $\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x} will be the same result
> as $\int{3x~dx}$, that is, an
>   (integralsign) 3x dx
> but notice that the variable of integration is in the semantic markup.
>
> These trivial macros can be made less verbose and certainly
> more clever but that's not the point being made here.
>
> A 'weaver' program would see the integration expression as
>
> $\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x}$
>
> with all of the semantic tags. The weaver's job is to rewrite this
> expression into an inputform for the CAS. In Axiom that would be
>
> integrate(3*x,x)
>
> The semantics markup makes the display pretty and the semantic
> parsing possible. Depending on the system, more or less parsing
> markup can exist. Axiom, for example, would not need the \INT or
> \VARIABLE to get a correct parse so the expression could be
> $\INTEG{3x~dx}{x}$
>
> This validates the fundamental idea.
>
> The next step is to write a simple weaver program. The clever path
> would be to embed a declarative form of the parser syntax (BNF?)
> as comments in selatex.sty. That way the latex semantics and the
> weaver syntax are kept in sync.
>
> Weaver would read the BNF comments from selatex.sty and
> the formula with semantic markup as input and parse the semantic
> markup into inputforms. (Wish I thought of this homework problem
> when I taught the compiler course :-) ).
>
> Note that, depending on the BNF, weaver could be used to
> generate output for Maxima's tree-based representation.
>
> An alternative next step is to look at a CRC book, re-create the
> syntactic latex and then create the selatex.sty entries necessary
> to generate weaver input.
>
> Infinitesimal progress, but progress non-the-less.
>
> Tim
>
>
> On Fri, Aug 19, 2016 at 12:45 AM, Tim Daly <axiomcas@gmail.com> wrote:
>
>>
>> One of the Axiom project goals is to develop a "Computer Algebra Test
>> Suite" (CATS). Albert Rich has done this with RUBI and integration. That
>> work is already partially in the test suite and work has been done on the
>> pattern matching. Large datasets (like Kamke) are always welcome. Some,
>> such as Schaums were hand-developed. This is tedious.
>>
>> As Axiom develops more explanations and documentation it would be
>> useful to execute the formulas directly so there is a local incentive to
>> be
>> clear about semantics.
>>
>> In the long term the hope is that we can just grab formulas directly from
>> their sources (ala literate programming). Your work makes it plain that
>> raw
>> latex does not carry sufficient semantics. There is a global question of
>> how to make this work. Unfortunately a general cross-platform solution
>> is difficult (cite Dewar/Davenport/et al. for OpenMath).
>>
>> Since Axiom is literate and extracting formulas is trivial it seems that
>> literate markup is a natural goal. Since Axiom uses abstract algebra
>> as a scaffold the type tower already has a lot of axiomatic semantics.
>> The natural join of literate latex and abstract algebra is clearly
>> semantic markup, aka selatex.
>>
>> ===========
>> Consideration 10: semantic->inputform translation (weaver? :-) )
>>
>> >x and not x   has no particular meaning,  but if x is explicitly true or
>> false,
>> >Maxima simplifies it to false.  If SEALATEX has a semantics -- are you
>> >defining yet another CAS?  Or perhaps you should link it 100% to Axiom's
>> >semantics, which you presumably know about and can modify.
>>
>> I am NOT defining another CAS. The goal is a "well-designed hack" using
>> universally understood latex, a latex package, and a translation program.
>>
>> The selatex idea is only partially Axiom specific. \INT, for instance,
>> seems
>> pretty generic. However, if the idea is to read formulas and disambiguate
>> a=b (boolean) vs a=b (equation) then the markup needs to be grounded
>> to have meaning. Axiom's domains (BOOLEAN) and (EQ) as the ground
>>
>> \BOOLEAN(a=b)
>> \EQ(a=b)
>>
>> are unambiguous relative to each other in Axiom. I don't know enough
>> about Maxima to understand how this might translate.
>>
>> The extracted formulas with the decorated semantics still needs a
>> semantics->inputform (weaver) pre-processor which could be Maxima
>> specific. This would lead to debate about what "equality" means, of
>> course.
>>
>> Axiom has tried to create a first-order "rosetta stone" to translate
>> between
>> systems (rosetta.pdf [1]) but it is too shallow to consider providing
>> cross-platform semantics.
>>
>> =============
>> Consideration 11: \scope in selatex
>>
>> >As far as recording stuff in DLMF -- there are presumably scope issues
>> >("in this chapter n,m are natural numbers....")  and maybe even a need
>> >to make value assignments.
>> >I think you need to model these in SEALATEX too.
>>
>> (See Consideration 6)
>>
>> Clearly there are scoping issues. My current thinking is to create a
>> \scope markup that would manage the environment(s). This is not
>> a new issue (see "Lisp in Small Pieces" [0])
>>
>> There seem to be three concerns.
>>
>> First is the scope name, with something like 'global' as a keyword.
>> Second is the "closure chain" of other scopes.
>> Third is the symbol being scoped.
>>
>> \scope{name}{chain}{symbol}
>>
>> The weaver program would walk this chain to create the proper
>> file syntax for system input.
>>
>> ============
>> Consideration 12: System specific commands \axiom
>>
>> Along with the formulas it is clear that some system specific
>> input may be required, such as loading files, clearing workspaces,
>> etc. Some of these may be done in the weaver program, such as
>> between formulas. Others may need to be added to the semantics
>> block. So a markup that provides verbatim quoting per system
>> might be defined, e.g.
>>
>> \axiom{)clear all}  %clear the workspace
>>
>> which would simply quote an input line.
>>
>> ==============
>>
>> Note that so far all that is being suggested is transparent formula
>> markups which do not impact the presentation, some special tags
>> (\scope, \axiom,...) and a weaver program, along with the ability to
>> read the latex and extract named formulas (aka a literate program,
>> which Axiom already can do).
>>
>> It ought to be possible (by design) to create a semantic version of
>> CRC that any system could import, assuming a "sufficiently clever
>> weaver".
>>
>> On a more ambitious note, I am trying to find a way to keep the selatex
>> markup "hidden" in a pdf and use it as the clipboard paste when the
>> formula is selected. Anyone with a clue, please help.
>>
>> ===============
>>
>> [0] Queinnec, Christopher, "Lisp in Small Pieces" ISBN 978-0521545662
>> (2003)
>>
>> [1] Wester, Michael J. and Daly, TImothy "Rosetta"
>> http://axiom-developer.org/axiom-website/rosetta.pdf
>>
>>
>>
>>
>> On Thu, Aug 18, 2016 at 5:30 PM, Richard Fateman <fateman@berkeley.edu>
>> wrote:
>>
>>> thanks for all the references :)
>>>
>>> I'm not sure if I'm going to repeat comments I  made already somewhere.
>>> First,  has Dan Zwillinger weighed in?  I think that it would be useful
>>> to see what he has done.
>>>
>>> Next, there are ambiguities among CAS and even within a single CAS.
>>>
>>> For example, in Macsyma/ Maxima  there is generally no semantics
>>> associated with "=" or ">".   But in some contexts, there is some
>>> meaning.
>>>
>>> x>2*y
>>>
>>> is a tree expression.  It is not associated with x or with y.
>>>
>>> assume(x>2*y)   does mean something ... it puts info in a database.
>>> Somehow encoding the method to extract this information into SEALATEX
>>> (SeLaTeX?) in a CAS-independent way -- that's quite a task.   In
>>> particular, it would seem to require an understanding of what assume()
>>> does in Maxima, and what is() does also.
>>>
>>> x and not x   has no particular meaning,  but if x is explicitly true or
>>> false,
>>> Maxima simplifies it to false.  If SEALATEX has a semantics -- are you
>>> defining yet another CAS?  Or perhaps you should link it 100% to Axiom's
>>> semantics, which you presumably know about and can modify.
>>>
>>> As far as recording stuff in DLMF -- there are presumably scope issues
>>> ("in this chapter n,m are natural numbers....")  and maybe even a need
>>> to make value assignments.
>>> I think you need to model these in SEALATEX too.
>>>
>>> Just musing about where you are heading.
>>>
>>> RJF
>>>
>>>
>>>
>>>
>>> On 8/18/2016 11:45 AM, Tim Daly wrote:
>>>
>>> Fateman [0] raised a set of issues with the OpenMath
>>> approach. We are not trying to be cross-platform in this
>>> effort. Axiom does provide an algebraic scaffold so it is
>>> possible that the selatex markup might be useful elsewhere
>>> but that is not a design criterion.
>>>
>>> Fateman[1] also raises some difficult cross-platform issues
>>> that are not part of this design.
>>>
>>> Fateman[2] shows that parsing tex with only syntactic markup
>>> succeeded on only 43% of 10740 inputs. It ought to be posible
>>> to increase this percentage given proper semantic markup.
>>> (Perhaps there should be a competition similar to the deep
>>> learning groups? PhDs have been awarded on incremental
>>> improvements of the percentage)
>>>
>>> This is a design-by-crawl approach to the semantic markup
>>> idea. The hope is to get something running this week that
>>> 'works' but giving due consideration to global and long-term
>>> issues. A first glance at CRC/NIST raises more questions
>>> than answers as is usual with any research.
>>>
>>> It IS a design goal to support a Computer Algebra Test Suite
>>> (http://axiom-developer.org/axiom-website/CATS). It is very
>>> tedious to hand construct test suites. It will be even more
>>> tedious to construct them "second-level" by doing semantic
>>> markup and then trying to use them as input, but the hope is
>>> that eventually the CRC/NIST/G&R, etc will eventually be
>>> published with semantics so computational mathematics can
>>> stop working from syntax.
>>>
>>> ===========
>>> Consideration 4: I/O transparency
>>>
>>> Assume for the moment that we take a latex file containing
>>> only formulas. We would like to be able to read this file so
>>> it has computational mathematics (CM) semantics.
>>>
>>> It is clear that there needs to be semantic tags that carry the
>>> information but these tags have to be carefully designed NOT
>>> to change the syntactic display. They may, as noted before,
>>> require multiple semantic versions for a single syntax.
>>>
>>> It is also clear that we would like to be able to output formulas
>>> with CM semantics where currently we only output syntax.
>>>
>>> ===========
>>> Consideration 5: I/O isomorphism
>>>
>>> An important property of selatex is an isomorphism with
>>> input/output. Axiom allows output forms to be defined for a
>>> variety of targets so this does not seem to be a problem. For
>>> input, however, this means that the reader has to know how
>>> to expand \INT{3} into the correct domain. This could be done
>>> with a stand-alone pre-processor from selatex->inputform.
>>>
>>> It should be possible to read-then-write an selatex formula,
>>> or write-then-read an selatex formula with identical semantics.
>>>
>>> That might not mean that the I/O is identical though due to
>>> things like variable ordering, etc.
>>>
>>> ===========
>>> Consideration 6: Latex semantic macros
>>>
>>> Semantic markup would be greatly simplified if selatex provided
>>> a mechanism similar to Axiom's ability to define types "on the fly"
>>> using either assignment
>>>
>>>    TYP:=FRAC(POLY(INT))
>>>
>>> or macro form
>>>
>>>    TYP ==> FRAC(POLY(INT))
>>>
>>> Latex is capable of doing this and selatex should probably include
>>> a set of pre-defined common markups, such as
>>>
>>>   \FRINT ==> \FRAC\INT
>>>
>>> ===========
>>> Consideration 7: selatex \begin{semantic} environment?
>>>
>>> Currently Axiom provides a 'chunk' environment which surrounds
>>> source code. The chunks are named so they can be extracted
>>> individually or in groups
>>>
>>>    \begin{chunk}{a name for the chunk}
>>>       anything
>>>    \end{chunk}
>>>
>>> We could provide a similar environment for semantics such as
>>>
>>>   \begin{semantics}{a name for the block}
>>>   \end{semantics}
>>>
>>> which would provide a way to encapsulate markup and also allow
>>> a particular block to be extracted in literate programming style.
>>>
>>> ===========
>>> Consideration 8: Latex-time processing
>>>
>>> Axiom currently creates specific files using \write to create
>>> intermediate files (e.g. for tables). This technique can be used
>>> to enhance latex-time debugging (where did it fail?).
>>>
>>> It can be used to create Axiom files which pre-construct domains
>>> needed when the input file with semantic markup is read.
>>>
>>> This would help a stand-alone selatex->inputform preprocessor.
>>>
>>> ===========
>>> Consideration 9: Design sketches
>>>
>>> It is all well-and-good to hand-wave at this idea but a large
>>> amount of this machinery already exists.
>>>
>>> It would seem useful to develop an incremental test suite that
>>> starts with "primitive" domains (e.g. INT), creating selatex I/O.
>>>
>>> Once these are in place we could work on "type tower" markup
>>> such as \FRAC\INT or \POLY\COMPLEX\FLOAT.
>>>
>>> Following that might be pre-existing latex functions like \int, \sum,
>>> \cos, etc.
>>>
>>> To validate these ideas Axiom will include an selatex.sty file and
>>> some unit tests files on primitive domain markup. That should be
>>> enough to start the bikeshed discussions.
>>>
>>> Ideas? Considerations? Suggestions?
>>>
>>> Tim
>>>
>>> [0] Fateman, Richard J.
>>> "A Critique of OpenMath and Thoughts on
>>> Encoding Mathematics, January, 2001"
>>> https://people.eecs.berkeley.edu/~fateman/papers/openmathcrit.pdf
>>>
>>> [1] Fateman, Richard J.
>>> "Verbs, Nouns, and Computer Algebra, or What's Grammar Got to
>>> do with Math? ", December 18, 2008
>>> https://people.eecs.berkeley.edu/~fateman/papers/nounverbmac.pdf
>>>
>>> [2] Fateman, Richard J.
>>> "Parsing TeX into Mathematics",
>>> https://people.eecs.berkeley.edu/~fateman/papers/parsing_tex.pdf
>>>
>>>
>>>
>>
>
>


\start
Date: Sun, 21 Aug 2016 22:40:28 -0400
From: Tim Daly <axiomcas@gmail.com>
To: Dan Zwillinger <zwilling@az-tec.com>
Subject: Re: [Axiom-developer] Design Thoughts on Semantic Latex (SELATEX)
Cc: Richard Fateman <fateman@berkeley.edu>,
	axiom-dev <axiom-developer@nongnu.org>, 
	Tim Daly <daly@axiom-developer.org>, Ralf Hemmecke <ralf@hemmecke.org>, 
	James Davenport <J.H.Davenport@bath.ac.uk>, Mike Dewar <miked@nag.co.uk>,
	vdhoeven@lix.polytechnique.fr, albert_rich@msn.com

Like any research problem it is a struggle to get a useful grip on this.
Looking at G&R (I just ordered the latest, mine is 4th edition), the
task quickly gets out of hand.

The CATS tests in the past were created by reading the printed latex
in various volumes and hand-translating them to Axiom input.

It is not difficult to re-create the latex input for these examples.
Doing so and combining the results gives a set of examples with
matching input latex and output Axiom. The homework problem is
to write the necessary markup and weaver.

It is immediately obvious that this is more challenging than it seems.
For example, when writing y'(x)=0, Axiom needs y:=operator 'y
so it knows about the symbol as an operator. This falls under
"Consideration 12: System Specific Commands"... which implies
that the latex environment and quoting macros have to be
implemented. Sigh.

There is no such thing as a simple job.

Anyway, at least there is a way to make a proof of concept
prototype that reproduces existing results.

Tim


On Sun, Aug 21, 2016 at 4:17 PM, Tim Daly <axiomcas@gmail.com> wrote:

> Dan,
>
> Welcome.
>
> Re: Howard Cohl. Yes, I'd like an introduction. It seems important to
> make DLMF, CRC, and other sources contain enough semantics that
> they can be read by a computer algebra system. There are an
> enormous number of issues, such as what to do with functions
> unknown to the CAS, which need to be thought through.
>
> I believe that NIST/CRC/G&R collections with semantic markup will
> have a great normalizing effect on CAS development since it will raise
> cross-platform questions like "What percent of G&R do you handle?".
> Albert Rich (RUBI)[0] has been doing this for integration using patterns.
> This can only benefit computational mathematics in the long term.
>
> I've also campaigned for associating algorithms with published tables.
> It is important in the long term to have reference versions. The ACM
> used to do this years ago. I'd like to see a Gruntz algorithm for limits
> where it can be applied, for instance. It would also provide a focus on
> "missing algorithms" or edge cases. Davenport/Trager/Bronstein
> algorithms promise a decision procedure but there are no existing
> complete implementations. The tables could highlight missing cases,
> giving focus to efforts to complete the procedure.
>
> It will also put back-pressure on the tables to define different versions
> of the same formulas based on domains (C, R, etc).
>
>
> "The GR work was more than I had anticipated"... wins the award for
> understatement of the decade.
>
> The goal of this effort is to make it possible to read those
> formulas directly into a CAS. Axiom is my primary target but
> it should be done in a somewhat system agnostic form.
>
> I've spent well over a year creating the computer algebra test suite.
> It would be so much easier and more useful if the original sources
> could be read directly.
>
> I read your paper. There is an interesting mix of syntax and semantics.
>
> I guess the difference in this effort is that the semantic markup is
> intended to be transparent and grounded. The transparent aspect
> keeps the tables unchanged in print form. The grounded aspect keeps
> the semantics based on some algorithmic base. This implies, of
> course, that there IS an algorithmic base which does not yet exist
> for some of the work.
>
> As you can see from the CATS work I've been trying to validate
> Axiom's results with respect to published texts. This has found both
> Axiom bugs and misprints in published texts.
>
> The Kamke[1] suite was the first effort for differential equations.
>
> The Spiegel[2] chapter 14 on indefinite integrals for integration.
>
> The von Seggern[3] book on curves and surfaces for graphics.
>
> The Legendre and Grazini[4] on Pasta by Design for 3D graphics.
>
> The RUBI work on integration.
>
> and, currently I'm re-creating the numerics that were lost when NAG
> released the open source version, leaving me swimming through
> Luke's[5] Algorithms book.
>
> which, to quote a famous phrase "was more than I had anticipated".
>
> Your Handbook of Integration[6] has a section on various known
> "Caveats, How an integration result may be incorrect". This raises the
> wonderful topic of branch cuts yet again. I did some testing and it
> seems that Axiom and Mathematica share one set while Maple and
> Maxima share another.
>
> All of which leads to a need to create better reference materials that
> are generally available (unlike the ACM algorithms for non-paying
> customers) and directly useful for computational mathematics.
>
> The current plan is to take some tables, find or re-create the latex,
> invent a semantic markup, and then write the "weaver". At this point
> the research is still at the "proof of concept" stage. (tex formula
> sources are most welcome).
>
> Ultimately I'd really like to see a book of formulas and algorithms
> that I can just drag-and-drop into Axiom and be able to use them
> without lifetimes of work.
>
> Actually, that 's only the penultimate goal. I have augmented
> Axiom to include proofs (ACL2,COQ) so I'd also like to see proofs,
> (this IS mathematics, after all) but maybe we'll leave that for
> next month :-)
>
> Tim
>
> [0] Rich, Albert "Rule-based Mathematics"
> http://www.apmaths.uwo.ca/~arich/
>
> [1] Kamke. E. "Differentialgleichungen Losungsmethoden und Losungen"
> Chelsea Publishing Company, New York, 1959
>
> [2] Spiegel, Murray R. "Mathematical Handbook", Schaum's Outline
> Series; McGraw-Hill Book Company 1968
>
> [3] von Seggern, David "CRC Standard Curves and Surfaces",
> CRC Press, 1993 ISBN 0-8493-0196-3
>
> [4] Legendre, George L. and Grazini, Stefano "Pasta by Design",
> Thames and Hudson, 2001
>
> [5] Luke, Yudell "Algorithms for the Computation of Mathematical
> Functions", Academic Press, 1977 ISBN 0-12-459940-6
>
> [6] Zwillinger, Daniel "Handbook of Integration" Jones and Bartlett,
> London, 1992
>
>
>
> On Sun, Aug 21, 2016 at 10:16 AM, Dan Zwillinger <zwilling@az-tec.com>
> wrote:
>
>> All
>>
>> I began reading this topic's emails when they first appeared, and then
>> fell behind.
>> Sorry for my late comments.
>>
>> I admire your efforts.
>> They may be somewhat related to what I have done in the past.
>> My experience is as follows:
>>
>> (1) CRC SMTF (Standard Mathematical Tables and Formula)
>>
>> I put the ~700 integrals in CRC's SMTF into a format from which
>> (A) they could be typeset in LaTeX
>> (B) they could be converted into Mathematica (which either did a symbolic
>> or numeric computation) - and this was done
>>
>> I let Richard Fateman use them for his experiments.
>>
>>
>> (2) Elsevier's GR (Gradshteyn and Ryzhik's "Table of Integrals, Series,
>> and Products")
>>
>> I put the ~12,000 (if my memory is correct) integrals into a format from
>> which
>> (A) they could be beautifully typeset in LaTeX
>> (B) they could be converted into Mathematica - and this was NOT done
>> Enclosed is a PDF file describing the work and the resulting format.
>>
>>
>> A different format was used for SMTF and GR.
>> While the SMTF work was not too arduous, the GR work was more than I had
>> anticipated.
>> The input (the previous version of GR) had little syntactic structure and
>> it took much effort to get it into shape.
>> I used (many different) regular expressions (in perl) to translate the
>> bulk of the book, and then lots of hand tuning.
>>
>> While I think you are well beyond my thinking on these topics, please let
>> me know if I can help.
>> I am friends with Howard Cohl at NIST, who may be the current lead for
>> DLMF ("Digital Library of Mathematical Functions" at dlmf.nist.gov).
>> Let me know if you need an introduction.
>>
>>
>> Dan Zwillingerzwilling@az-tec.com617-388-2382
>>
>> On 8/20/2016 11:30 PM, Tim Daly wrote:
>>
>> The game is to define latex markup that is transparent to the syntax
>> but adds semantics for post processing.
>>
>> Some simple tests show that this works. Suppose selatex.sty contains:
>>
>> \newcommand{\INT}[1]{#1}
>> \newcommand{\VARIABLE}[1]{#1}
>> \newcommand{\POLY}[1]{#1}
>> \newcommand{\INTEG}[2]{\int{#1}}
>>
>> This defines 4 new latex markups. The number in the square brackets
>> defines the number of expected arguments. The brace argument
>> delimites the characters that will occur during expansion with the #1
>> replaced by the first argument.
>>
>> (As an aside, INT, VARIABLE, and POLY just happen to be valid
>> Axiom domain abbreviations, hence the name choice. This choice
>> of names gives grounding to the semantics.)
>>
>> Notice that \INTEG takes two arguments but will display only one.
>> This allows the variable of integration to be passed in the semantics
>> without showing up in the output. This allows the semantics to carry
>> additional, non-display information needed by the CAS.
>>
>> Some examples follow.
>>
>> An integer 3 can be wrapped as \INT{3} but will still display as 3.
>>
>> A variable x can be wrapped as \VARIABLE{x}, displayed as x.
>>
>> $\POLY{\INT{3}\VARIABLE{x}}$ will display as 3*x
>>
>> $\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x} will be the same result
>> as $\int{3x~dx}$, that is, an
>>   (integralsign) 3x dx
>> but notice that the variable of integration is in the semantic markup.
>>
>> These trivial macros can be made less verbose and certainly
>> more clever but that's not the point being made here.
>>
>> A 'weaver' program would see the integration expression as
>>
>> $\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x}$
>>
>> with all of the semantic tags. The weaver's job is to rewrite this
>> expression into an inputform for the CAS. In Axiom that would be
>>
>> integrate(3*x,x)
>>
>> The semantics markup makes the display pretty and the semantic
>> parsing possible. Depending on the system, more or less parsing
>> markup can exist. Axiom, for example, would not need the \INT or
>> \VARIABLE to get a correct parse so the expression could be
>> $\INTEG{3x~dx}{x}$
>>
>> This validates the fundamental idea.
>>
>> The next step is to write a simple weaver program. The clever path
>> would be to embed a declarative form of the parser syntax (BNF?)
>> as comments in selatex.sty. That way the latex semantics and the
>> weaver syntax are kept in sync.
>>
>> Weaver would read the BNF comments from selatex.sty and
>> the formula with semantic markup as input and parse the semantic
>> markup into inputforms. (Wish I thought of this homework problem
>> when I taught the compiler course :-) ).
>>
>> Note that, depending on the BNF, weaver could be used to
>> generate output for Maxima's tree-based representation.
>>
>> An alternative next step is to look at a CRC book, re-create the
>> syntactic latex and then create the selatex.sty entries necessary
>> to generate weaver input.
>>
>> Infinitesimal progress, but progress non-the-less.
>>
>> Tim
>>
>>
>> On Fri, Aug 19, 2016 at 12:45 AM, Tim Daly <axiomcas@gmail.com> wrote:
>>
>>>
>>> One of the Axiom project goals is to develop a "Computer Algebra Test
>>> Suite" (CATS). Albert Rich has done this with RUBI and integration. That
>>> work is already partially in the test suite and work has been done on the
>>> pattern matching. Large datasets (like Kamke) are always welcome. Some,
>>> such as Schaums were hand-developed. This is tedious.
>>>
>>> As Axiom develops more explanations and documentation it would be
>>> useful to execute the formulas directly so there is a local incentive to
>>> be
>>> clear about semantics.
>>>
>>> In the long term the hope is that we can just grab formulas directly from
>>> their sources (ala literate programming). Your work makes it plain that
>>> raw
>>> latex does not carry sufficient semantics. There is a global question of
>>> how to make this work. Unfortunately a general cross-platform solution
>>> is difficult (cite Dewar/Davenport/et al. for OpenMath).
>>>
>>> Since Axiom is literate and extracting formulas is trivial it seems that
>>> literate markup is a natural goal. Since Axiom uses abstract algebra
>>> as a scaffold the type tower already has a lot of axiomatic semantics.
>>> The natural join of literate latex and abstract algebra is clearly
>>> semantic markup, aka selatex.
>>>
>>> ===========
>>> Consideration 10: semantic->inputform translation (weaver? :-) )
>>>
>>> >x and not x   has no particular meaning,  but if x is explicitly true
>>> or false,
>>> >Maxima simplifies it to false.  If SEALATEX has a semantics -- are you
>>> >defining yet another CAS?  Or perhaps you should link it 100% to Axiom's
>>> >semantics, which you presumably know about and can modify.
>>>
>>> I am NOT defining another CAS. The goal is a "well-designed hack" using
>>> universally understood latex, a latex package, and a translation program.
>>>
>>> The selatex idea is only partially Axiom specific. \INT, for instance,
>>> seems
>>> pretty generic. However, if the idea is to read formulas and
>>> disambiguate
>>> a=b (boolean) vs a=b (equation) then the markup needs to be grounded
>>> to have meaning. Axiom's domains (BOOLEAN) and (EQ) as the ground
>>>
>>> \BOOLEAN(a=b)
>>> \EQ(a=b)
>>>
>>> are unambiguous relative to each other in Axiom. I don't know enough
>>> about Maxima to understand how this might translate.
>>>
>>> The extracted formulas with the decorated semantics still needs a
>>> semantics->inputform (weaver) pre-processor which could be Maxima
>>> specific. This would lead to debate about what "equality" means, of
>>> course.
>>>
>>> Axiom has tried to create a first-order "rosetta stone" to translate
>>> between
>>> systems (rosetta.pdf [1]) but it is too shallow to consider providing
>>> cross-platform semantics.
>>>
>>> =============
>>> Consideration 11: \scope in selatex
>>>
>>> >As far as recording stuff in DLMF -- there are presumably scope issues
>>> >("in this chapter n,m are natural numbers....")  and maybe even a need
>>> >to make value assignments.
>>> >I think you need to model these in SEALATEX too.
>>>
>>> (See Consideration 6)
>>>
>>> Clearly there are scoping issues. My current thinking is to create a
>>> \scope markup that would manage the environment(s). This is not
>>> a new issue (see "Lisp in Small Pieces" [0])
>>>
>>> There seem to be three concerns.
>>>
>>> First is the scope name, with something like 'global' as a keyword.
>>> Second is the "closure chain" of other scopes.
>>> Third is the symbol being scoped.
>>>
>>> \scope{name}{chain}{symbol}
>>>
>>> The weaver program would walk this chain to create the proper
>>> file syntax for system input.
>>>
>>> ============
>>> Consideration 12: System specific commands \axiom
>>>
>>> Along with the formulas it is clear that some system specific
>>> input may be required, such as loading files, clearing workspaces,
>>> etc. Some of these may be done in the weaver program, such as
>>> between formulas. Others may need to be added to the semantics
>>> block. So a markup that provides verbatim quoting per system
>>> might be defined, e.g.
>>>
>>> \axiom{)clear all}  %clear the workspace
>>>
>>> which would simply quote an input line.
>>>
>>> ==============
>>>
>>> Note that so far all that is being suggested is transparent formula
>>> markups which do not impact the presentation, some special tags
>>> (\scope, \axiom,...) and a weaver program, along with the ability to
>>> read the latex and extract named formulas (aka a literate program,
>>> which Axiom already can do).
>>>
>>> It ought to be possible (by design) to create a semantic version of
>>> CRC that any system could import, assuming a "sufficiently clever
>>> weaver".
>>>
>>> On a more ambitious note, I am trying to find a way to keep the selatex
>>> markup "hidden" in a pdf and use it as the clipboard paste when the
>>> formula is selected. Anyone with a clue, please help.
>>>
>>> ===============
>>>
>>> [0] Queinnec, Christopher, "Lisp in Small Pieces" ISBN 978-0521545662
>>> (2003)
>>>
>>> [1] Wester, Michael J. and Daly, TImothy "Rosetta"
>>> http://axiom-developer.org/axiom-website/rosetta.pdf
>>>
>>>
>>>
>>>
>>> On Thu, Aug 18, 2016 at 5:30 PM, Richard Fateman <fateman@berkeley.edu>
>>> wrote:
>>>
>>>> thanks for all the references :)
>>>>
>>>> I'm not sure if I'm going to repeat comments I  made already somewhere.
>>>> First,  has Dan Zwillinger weighed in?  I think that it would be useful
>>>> to see what he has done.
>>>>
>>>> Next, there are ambiguities among CAS and even within a single CAS.
>>>>
>>>> For example, in Macsyma/ Maxima  there is generally no semantics
>>>> associated with "=" or ">".   But in some contexts, there is some
>>>> meaning.
>>>>
>>>> x>2*y
>>>>
>>>> is a tree expression.  It is not associated with x or with y.
>>>>
>>>> assume(x>2*y)   does mean something ... it puts info in a database.
>>>> Somehow encoding the method to extract this information into SEALATEX
>>>> (SeLaTeX?) in a CAS-independent way -- that's quite a task.   In
>>>> particular, it would seem to require an understanding of what assume()
>>>> does in Maxima, and what is() does also.
>>>>
>>>> x and not x   has no particular meaning,  but if x is explicitly true
>>>> or false,
>>>> Maxima simplifies it to false.  If SEALATEX has a semantics -- are you
>>>> defining yet another CAS?  Or perhaps you should link it 100% to Axiom's
>>>> semantics, which you presumably know about and can modify.
>>>>
>>>> As far as recording stuff in DLMF -- there are presumably scope issues
>>>> ("in this chapter n,m are natural numbers....")  and maybe even a need
>>>> to make value assignments.
>>>> I think you need to model these in SEALATEX too.
>>>>
>>>> Just musing about where you are heading.
>>>>
>>>> RJF
>>>>
>>>>
>>>>
>>>>
>>>> On 8/18/2016 11:45 AM, Tim Daly wrote:
>>>>
>>>> Fateman [0] raised a set of issues with the OpenMath
>>>> approach. We are not trying to be cross-platform in this
>>>> effort. Axiom does provide an algebraic scaffold so it is
>>>> possible that the selatex markup might be useful elsewhere
>>>> but that is not a design criterion.
>>>>
>>>> Fateman[1] also raises some difficult cross-platform issues
>>>> that are not part of this design.
>>>>
>>>> Fateman[2] shows that parsing tex with only syntactic markup
>>>> succeeded on only 43% of 10740 inputs. It ought to be posible
>>>> to increase this percentage given proper semantic markup.
>>>> (Perhaps there should be a competition similar to the deep
>>>> learning groups? PhDs have been awarded on incremental
>>>> improvements of the percentage)
>>>>
>>>> This is a design-by-crawl approach to the semantic markup
>>>> idea. The hope is to get something running this week that
>>>> 'works' but giving due consideration to global and long-term
>>>> issues. A first glance at CRC/NIST raises more questions
>>>> than answers as is usual with any research.
>>>>
>>>> It IS a design goal to support a Computer Algebra Test Suite
>>>> (http://axiom-developer.org/axiom-website/CATS). It is very
>>>> tedious to hand construct test suites. It will be even more
>>>> tedious to construct them "second-level" by doing semantic
>>>> markup and then trying to use them as input, but the hope is
>>>> that eventually the CRC/NIST/G&R, etc will eventually be
>>>> published with semantics so computational mathematics can
>>>> stop working from syntax.
>>>>
>>>> ===========
>>>> Consideration 4: I/O transparency
>>>>
>>>> Assume for the moment that we take a latex file containing
>>>> only formulas. We would like to be able to read this file so
>>>> it has computational mathematics (CM) semantics.
>>>>
>>>> It is clear that there needs to be semantic tags that carry the
>>>> information but these tags have to be carefully designed NOT
>>>> to change the syntactic display. They may, as noted before,
>>>> require multiple semantic versions for a single syntax.
>>>>
>>>> It is also clear that we would like to be able to output formulas
>>>> with CM semantics where currently we only output syntax.
>>>>
>>>> ===========
>>>> Consideration 5: I/O isomorphism
>>>>
>>>> An important property of selatex is an isomorphism with
>>>> input/output. Axiom allows output forms to be defined for a
>>>> variety of targets so this does not seem to be a problem. For
>>>> input, however, this means that the reader has to know how
>>>> to expand \INT{3} into the correct domain. This could be done
>>>> with a stand-alone pre-processor from selatex->inputform.
>>>>
>>>> It should be possible to read-then-write an selatex formula,
>>>> or write-then-read an selatex formula with identical semantics.
>>>>
>>>> That might not mean that the I/O is identical though due to
>>>> things like variable ordering, etc.
>>>>
>>>> ===========
>>>> Consideration 6: Latex semantic macros
>>>>
>>>> Semantic markup would be greatly simplified if selatex provided
>>>> a mechanism similar to Axiom's ability to define types "on the fly"
>>>> using either assignment
>>>>
>>>>    TYP:=FRAC(POLY(INT))
>>>>
>>>> or macro form
>>>>
>>>>    TYP ==> FRAC(POLY(INT))
>>>>
>>>> Latex is capable of doing this and selatex should probably include
>>>> a set of pre-defined common markups, such as
>>>>
>>>>   \FRINT ==> \FRAC\INT
>>>>
>>>> ===========
>>>> Consideration 7: selatex \begin{semantic} environment?
>>>>
>>>> Currently Axiom provides a 'chunk' environment which surrounds
>>>> source code. The chunks are named so they can be extracted
>>>> individually or in groups
>>>>
>>>>    \begin{chunk}{a name for the chunk}
>>>>       anything
>>>>    \end{chunk}
>>>>
>>>> We could provide a similar environment for semantics such as
>>>>
>>>>   \begin{semantics}{a name for the block}
>>>>   \end{semantics}
>>>>
>>>> which would provide a way to encapsulate markup and also allow
>>>> a particular block to be extracted in literate programming style.
>>>>
>>>> ===========
>>>> Consideration 8: Latex-time processing
>>>>
>>>> Axiom currently creates specific files using \write to create
>>>> intermediate files (e.g. for tables). This technique can be used
>>>> to enhance latex-time debugging (where did it fail?).
>>>>
>>>> It can be used to create Axiom files which pre-construct domains
>>>> needed when the input file with semantic markup is read.
>>>>
>>>> This would help a stand-alone selatex->inputform preprocessor.
>>>>
>>>> ===========
>>>> Consideration 9: Design sketches
>>>>
>>>> It is all well-and-good to hand-wave at this idea but a large
>>>> amount of this machinery already exists.
>>>>
>>>> It would seem useful to develop an incremental test suite that
>>>> starts with "primitive" domains (e.g. INT), creating selatex I/O.
>>>>
>>>> Once these are in place we could work on "type tower" markup
>>>> such as \FRAC\INT or \POLY\COMPLEX\FLOAT.
>>>>
>>>> Following that might be pre-existing latex functions like \int, \sum,
>>>> \cos, etc.
>>>>
>>>> To validate these ideas Axiom will include an selatex.sty file and
>>>> some unit tests files on primitive domain markup. That should be
>>>> enough to start the bikeshed discussions.
>>>>
>>>> Ideas? Considerations? Suggestions?
>>>>
>>>> Tim
>>>>
>>>> [0] Fateman, Richard J.
>>>> "A Critique of OpenMath and Thoughts on
>>>> Encoding Mathematics, January, 2001"
>>>> https://people.eecs.berkeley.edu/~fateman/papers/openmathcrit.pdf
>>>>
>>>> [1] Fateman, Richard J.
>>>> "Verbs, Nouns, and Computer Algebra, or What's Grammar Got to
>>>> do with Math? ", December 18, 2008
>>>> https://people.eecs.berkeley.edu/~fateman/papers/nounverbmac.pdf
>>>>
>>>> [2] Fateman, Richard J.
>>>> "Parsing TeX into Mathematics",
>>>> https://people.eecs.berkeley.edu/~fateman/papers/parsing_tex.pdf
>>>>
>>>>
>>>>
>>>
>>
>>
>


\start
Subject: Re: [Axiom-developer] Design Thoughts on Semantic Latex (SELATEX)
Date: Sun, 21 Aug 2016 23:02:41 -0400
From: Tim Daly <axiomcas@gmail.com>
To: Dan Zwillinger <zwilling@az-tec.com>
Cc: Richard Fateman <fateman@berkeley.edu>,
	axiom-dev <axiom-developer@nongnu.org>, 
	Tim Daly <daly@axiom-developer.org>, Ralf Hemmecke <ralf@hemmecke.org>, 
	James Davenport <J.H.Davenport@bath.ac.uk>, Mike Dewar <miked@nag.co.uk>,
	vdhoeven@lix.polytechnique.fr, albert_rich@msn.com

Dan,

While paging through the CRC 31st Standard Mathematical
Tables I landed on page 219, section 3.4.1.2 Graph Invariants.

It would be a vast improvement if there were algorithms
associated with these invariants. Clearly they exist somewhere.

To "cross the gap" between tables and computational mathematics
it would be valuable to include implementations of these invariants.

It is hard to walk away from that page. An Axiom implementation
would be fun to write, especially given the next section that lists
different kinds of graphs which, presumably, would all have the
invariants. Even better, the graph algorithms are likely good
candidates for proof technology (ACL2 if done in Lisp, COQ if
done in Spad). Lisp has the advantage of an ANSI standard.

It seems worthwhile to take sections like this, expand them
across computational and proof tools, and publish them in a
form that is generally useful. It is "nice to know" that a graph
has a radius but it would be even better if I could "just point and
click" to import the algorithm.

Axiom has been pushing literate programming for years. The
tools exist to "make it so", as the saying goes.

Tim




On Sun, Aug 21, 2016 at 10:40 PM, Tim Daly <axiomcas@gmail.com> wrote:

> Like any research problem it is a struggle to get a useful grip on this.
> Looking at G&R (I just ordered the latest, mine is 4th edition), the
> task quickly gets out of hand.
>
> The CATS tests in the past were created by reading the printed latex
> in various volumes and hand-translating them to Axiom input.
>
> It is not difficult to re-create the latex input for these examples.
> Doing so and combining the results gives a set of examples with
> matching input latex and output Axiom. The homework problem is
> to write the necessary markup and weaver.
>
> It is immediately obvious that this is more challenging than it seems.
> For example, when writing y'(x)=0, Axiom needs y:=operator 'y
> so it knows about the symbol as an operator. This falls under
> "Consideration 12: System Specific Commands"... which implies
> that the latex environment and quoting macros have to be
> implemented. Sigh.
>
> There is no such thing as a simple job.
>
> Anyway, at least there is a way to make a proof of concept
> prototype that reproduces existing results.
>
> Tim
>
>
> On Sun, Aug 21, 2016 at 4:17 PM, Tim Daly <axiomcas@gmail.com> wrote:
>
>> Dan,
>>
>> Welcome.
>>
>> Re: Howard Cohl. Yes, I'd like an introduction. It seems important to
>> make DLMF, CRC, and other sources contain enough semantics that
>> they can be read by a computer algebra system. There are an
>> enormous number of issues, such as what to do with functions
>> unknown to the CAS, which need to be thought through.
>>
>> I believe that NIST/CRC/G&R collections with semantic markup will
>> have a great normalizing effect on CAS development since it will raise
>> cross-platform questions like "What percent of G&R do you handle?".
>> Albert Rich (RUBI)[0] has been doing this for integration using patterns.
>> This can only benefit computational mathematics in the long term.
>>
>> I've also campaigned for associating algorithms with published tables.
>> It is important in the long term to have reference versions. The ACM
>> used to do this years ago. I'd like to see a Gruntz algorithm for limits
>> where it can be applied, for instance. It would also provide a focus on
>> "missing algorithms" or edge cases. Davenport/Trager/Bronstein
>> algorithms promise a decision procedure but there are no existing
>> complete implementations. The tables could highlight missing cases,
>> giving focus to efforts to complete the procedure.
>>
>> It will also put back-pressure on the tables to define different versions
>> of the same formulas based on domains (C, R, etc).
>>
>>
>> "The GR work was more than I had anticipated"... wins the award for
>> understatement of the decade.
>>
>> The goal of this effort is to make it possible to read those
>> formulas directly into a CAS. Axiom is my primary target but
>> it should be done in a somewhat system agnostic form.
>>
>> I've spent well over a year creating the computer algebra test suite.
>> It would be so much easier and more useful if the original sources
>> could be read directly.
>>
>> I read your paper. There is an interesting mix of syntax and semantics.
>>
>> I guess the difference in this effort is that the semantic markup is
>> intended to be transparent and grounded. The transparent aspect
>> keeps the tables unchanged in print form. The grounded aspect keeps
>> the semantics based on some algorithmic base. This implies, of
>> course, that there IS an algorithmic base which does not yet exist
>> for some of the work.
>>
>> As you can see from the CATS work I've been trying to validate
>> Axiom's results with respect to published texts. This has found both
>> Axiom bugs and misprints in published texts.
>>
>> The Kamke[1] suite was the first effort for differential equations.
>>
>> The Spiegel[2] chapter 14 on indefinite integrals for integration.
>>
>> The von Seggern[3] book on curves and surfaces for graphics.
>>
>> The Legendre and Grazini[4] on Pasta by Design for 3D graphics.
>>
>> The RUBI work on integration.
>>
>> and, currently I'm re-creating the numerics that were lost when NAG
>> released the open source version, leaving me swimming through
>> Luke's[5] Algorithms book.
>>
>> which, to quote a famous phrase "was more than I had anticipated".
>>
>> Your Handbook of Integration[6] has a section on various known
>> "Caveats, How an integration result may be incorrect". This raises the
>> wonderful topic of branch cuts yet again. I did some testing and it
>> seems that Axiom and Mathematica share one set while Maple and
>> Maxima share another.
>>
>> All of which leads to a need to create better reference materials that
>> are generally available (unlike the ACM algorithms for non-paying
>> customers) and directly useful for computational mathematics.
>>
>> The current plan is to take some tables, find or re-create the latex,
>> invent a semantic markup, and then write the "weaver". At this point
>> the research is still at the "proof of concept" stage. (tex formula
>> sources are most welcome).
>>
>> Ultimately I'd really like to see a book of formulas and algorithms
>> that I can just drag-and-drop into Axiom and be able to use them
>> without lifetimes of work.
>>
>> Actually, that 's only the penultimate goal. I have augmented
>> Axiom to include proofs (ACL2,COQ) so I'd also like to see proofs,
>> (this IS mathematics, after all) but maybe we'll leave that for
>> next month :-)
>>
>> Tim
>>
>> [0] Rich, Albert "Rule-based Mathematics"
>> http://www.apmaths.uwo.ca/~arich/
>>
>> [1] Kamke. E. "Differentialgleichungen Losungsmethoden und Losungen"
>> Chelsea Publishing Company, New York, 1959
>>
>> [2] Spiegel, Murray R. "Mathematical Handbook", Schaum's Outline
>> Series; McGraw-Hill Book Company 1968
>>
>> [3] von Seggern, David "CRC Standard Curves and Surfaces",
>> CRC Press, 1993 ISBN 0-8493-0196-3
>>
>> [4] Legendre, George L. and Grazini, Stefano "Pasta by Design",
>> Thames and Hudson, 2001
>>
>> [5] Luke, Yudell "Algorithms for the Computation of Mathematical
>> Functions", Academic Press, 1977 ISBN 0-12-459940-6
>>
>> [6] Zwillinger, Daniel "Handbook of Integration" Jones and Bartlett,
>> London, 1992
>>
>>
>>
>> On Sun, Aug 21, 2016 at 10:16 AM, Dan Zwillinger <zwilling@az-tec.com>
>> wrote:
>>
>>> All
>>>
>>> I began reading this topic's emails when they first appeared, and then
>>> fell behind.
>>> Sorry for my late comments.
>>>
>>> I admire your efforts.
>>> They may be somewhat related to what I have done in the past.
>>> My experience is as follows:
>>>
>>> (1) CRC SMTF (Standard Mathematical Tables and Formula)
>>>
>>> I put the ~700 integrals in CRC's SMTF into a format from which
>>> (A) they could be typeset in LaTeX
>>> (B) they could be converted into Mathematica (which either did a
>>> symbolic or numeric computation) - and this was done
>>>
>>> I let Richard Fateman use them for his experiments.
>>>
>>>
>>> (2) Elsevier's GR (Gradshteyn and Ryzhik's "Table of Integrals, Series,
>>> and Products")
>>>
>>> I put the ~12,000 (if my memory is correct) integrals into a format from
>>> which
>>> (A) they could be beautifully typeset in LaTeX
>>> (B) they could be converted into Mathematica - and this was NOT done
>>> Enclosed is a PDF file describing the work and the resulting format.
>>>
>>>
>>> A different format was used for SMTF and GR.
>>> While the SMTF work was not too arduous, the GR work was more than I had
>>> anticipated.
>>> The input (the previous version of GR) had little syntactic structure
>>> and it took much effort to get it into shape.
>>> I used (many different) regular expressions (in perl) to translate the
>>> bulk of the book, and then lots of hand tuning.
>>>
>>> While I think you are well beyond my thinking on these topics, please
>>> let me know if I can help.
>>> I am friends with Howard Cohl at NIST, who may be the current lead for
>>> DLMF ("Digital Library of Mathematical Functions" at dlmf.nist.gov).
>>> Let me know if you need an introduction.
>>>
>>>
>>> Dan Zwillingerzwilling@az-tec.com617-388-2382
>>>
>>> On 8/20/2016 11:30 PM, Tim Daly wrote:
>>>
>>> The game is to define latex markup that is transparent to the syntax
>>> but adds semantics for post processing.
>>>
>>> Some simple tests show that this works. Suppose selatex.sty contains:
>>>
>>> \newcommand{\INT}[1]{#1}
>>> \newcommand{\VARIABLE}[1]{#1}
>>> \newcommand{\POLY}[1]{#1}
>>> \newcommand{\INTEG}[2]{\int{#1}}
>>>
>>> This defines 4 new latex markups. The number in the square brackets
>>> defines the number of expected arguments. The brace argument
>>> delimites the characters that will occur during expansion with the #1
>>> replaced by the first argument.
>>>
>>> (As an aside, INT, VARIABLE, and POLY just happen to be valid
>>> Axiom domain abbreviations, hence the name choice. This choice
>>> of names gives grounding to the semantics.)
>>>
>>> Notice that \INTEG takes two arguments but will display only one.
>>> This allows the variable of integration to be passed in the semantics
>>> without showing up in the output. This allows the semantics to carry
>>> additional, non-display information needed by the CAS.
>>>
>>> Some examples follow.
>>>
>>> An integer 3 can be wrapped as \INT{3} but will still display as 3.
>>>
>>> A variable x can be wrapped as \VARIABLE{x}, displayed as x.
>>>
>>> $\POLY{\INT{3}\VARIABLE{x}}$ will display as 3*x
>>>
>>> $\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x} will be the same result
>>> as $\int{3x~dx}$, that is, an
>>>   (integralsign) 3x dx
>>> but notice that the variable of integration is in the semantic markup.
>>>
>>> These trivial macros can be made less verbose and certainly
>>> more clever but that's not the point being made here.
>>>
>>> A 'weaver' program would see the integration expression as
>>>
>>> $\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x}$
>>>
>>> with all of the semantic tags. The weaver's job is to rewrite this
>>> expression into an inputform for the CAS. In Axiom that would be
>>>
>>> integrate(3*x,x)
>>>
>>> The semantics markup makes the display pretty and the semantic
>>> parsing possible. Depending on the system, more or less parsing
>>> markup can exist. Axiom, for example, would not need the \INT or
>>> \VARIABLE to get a correct parse so the expression could be
>>> $\INTEG{3x~dx}{x}$
>>>
>>> This validates the fundamental idea.
>>>
>>> The next step is to write a simple weaver program. The clever path
>>> would be to embed a declarative form of the parser syntax (BNF?)
>>> as comments in selatex.sty. That way the latex semantics and the
>>> weaver syntax are kept in sync.
>>>
>>> Weaver would read the BNF comments from selatex.sty and
>>> the formula with semantic markup as input and parse the semantic
>>> markup into inputforms. (Wish I thought of this homework problem
>>> when I taught the compiler course :-) ).
>>>
>>> Note that, depending on the BNF, weaver could be used to
>>> generate output for Maxima's tree-based representation.
>>>
>>> An alternative next step is to look at a CRC book, re-create the
>>> syntactic latex and then create the selatex.sty entries necessary
>>> to generate weaver input.
>>>
>>> Infinitesimal progress, but progress non-the-less.
>>>
>>> Tim
>>>
>>>
>>> On Fri, Aug 19, 2016 at 12:45 AM, Tim Daly <axiomcas@gmail.com> wrote:
>>>
>>>>
>>>> One of the Axiom project goals is to develop a "Computer Algebra Test
>>>> Suite" (CATS). Albert Rich has done this with RUBI and integration. That
>>>> work is already partially in the test suite and work has been done on
>>>> the
>>>> pattern matching. Large datasets (like Kamke) are always welcome. Some,
>>>> such as Schaums were hand-developed. This is tedious.
>>>>
>>>> As Axiom develops more explanations and documentation it would be
>>>> useful to execute the formulas directly so there is a local incentive
>>>> to be
>>>> clear about semantics.
>>>>
>>>> In the long term the hope is that we can just grab formulas directly
>>>> from
>>>> their sources (ala literate programming). Your work makes it plain that
>>>> raw
>>>> latex does not carry sufficient semantics. There is a global question
>>>> of
>>>> how to make this work. Unfortunately a general cross-platform solution
>>>> is difficult (cite Dewar/Davenport/et al. for OpenMath).
>>>>
>>>> Since Axiom is literate and extracting formulas is trivial it seems that
>>>> literate markup is a natural goal. Since Axiom uses abstract algebra
>>>> as a scaffold the type tower already has a lot of axiomatic semantics.
>>>> The natural join of literate latex and abstract algebra is clearly
>>>> semantic markup, aka selatex.
>>>>
>>>> ===========
>>>> Consideration 10: semantic->inputform translation (weaver? :-) )
>>>>
>>>> >x and not x   has no particular meaning,  but if x is explicitly true
>>>> or false,
>>>> >Maxima simplifies it to false.  If SEALATEX has a semantics -- are you
>>>> >defining yet another CAS?  Or perhaps you should link it 100% to
>>>> Axiom's
>>>> >semantics, which you presumably know about and can modify.
>>>>
>>>> I am NOT defining another CAS. The goal is a "well-designed hack" using
>>>> universally understood latex, a latex package, and a translation
>>>> program.
>>>>
>>>> The selatex idea is only partially Axiom specific. \INT, for instance,
>>>> seems
>>>> pretty generic. However, if the idea is to read formulas and
>>>> disambiguate
>>>> a=b (boolean) vs a=b (equation) then the markup needs to be grounded
>>>> to have meaning. Axiom's domains (BOOLEAN) and (EQ) as the ground
>>>>
>>>> \BOOLEAN(a=b)
>>>> \EQ(a=b)
>>>>
>>>> are unambiguous relative to each other in Axiom. I don't know enough
>>>> about Maxima to understand how this might translate.
>>>>
>>>> The extracted formulas with the decorated semantics still needs a
>>>> semantics->inputform (weaver) pre-processor which could be Maxima
>>>> specific. This would lead to debate about what "equality" means, of
>>>> course.
>>>>
>>>> Axiom has tried to create a first-order "rosetta stone" to translate
>>>> between
>>>> systems (rosetta.pdf [1]) but it is too shallow to consider providing
>>>> cross-platform semantics.
>>>>
>>>> =============
>>>> Consideration 11: \scope in selatex
>>>>
>>>> >As far as recording stuff in DLMF -- there are presumably scope issues
>>>> >("in this chapter n,m are natural numbers....")  and maybe even a need
>>>> >to make value assignments.
>>>> >I think you need to model these in SEALATEX too.
>>>>
>>>> (See Consideration 6)
>>>>
>>>> Clearly there are scoping issues. My current thinking is to create a
>>>> \scope markup that would manage the environment(s). This is not
>>>> a new issue (see "Lisp in Small Pieces" [0])
>>>>
>>>> There seem to be three concerns.
>>>>
>>>> First is the scope name, with something like 'global' as a keyword.
>>>> Second is the "closure chain" of other scopes.
>>>> Third is the symbol being scoped.
>>>>
>>>> \scope{name}{chain}{symbol}
>>>>
>>>> The weaver program would walk this chain to create the proper
>>>> file syntax for system input.
>>>>
>>>> ============
>>>> Consideration 12: System specific commands \axiom
>>>>
>>>> Along with the formulas it is clear that some system specific
>>>> input may be required, such as loading files, clearing workspaces,
>>>> etc. Some of these may be done in the weaver program, such as
>>>> between formulas. Others may need to be added to the semantics
>>>> block. So a markup that provides verbatim quoting per system
>>>> might be defined, e.g.
>>>>
>>>> \axiom{)clear all}  %clear the workspace
>>>>
>>>> which would simply quote an input line.
>>>>
>>>> ==============
>>>>
>>>> Note that so far all that is being suggested is transparent formula
>>>> markups which do not impact the presentation, some special tags
>>>> (\scope, \axiom,...) and a weaver program, along with the ability to
>>>> read the latex and extract named formulas (aka a literate program,
>>>> which Axiom already can do).
>>>>
>>>> It ought to be possible (by design) to create a semantic version of
>>>> CRC that any system could import, assuming a "sufficiently clever
>>>> weaver".
>>>>
>>>> On a more ambitious note, I am trying to find a way to keep the selatex
>>>> markup "hidden" in a pdf and use it as the clipboard paste when the
>>>> formula is selected. Anyone with a clue, please help.
>>>>
>>>> ===============
>>>>
>>>> [0] Queinnec, Christopher, "Lisp in Small Pieces" ISBN 978-0521545662
>>>> (2003)
>>>>
>>>> [1] Wester, Michael J. and Daly, TImothy "Rosetta"
>>>> http://axiom-developer.org/axiom-website/rosetta.pdf
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, Aug 18, 2016 at 5:30 PM, Richard Fateman <fateman@berkeley.edu>
>>>> wrote:
>>>>
>>>>> thanks for all the references :)
>>>>>
>>>>> I'm not sure if I'm going to repeat comments I  made already somewhere.
>>>>> First,  has Dan Zwillinger weighed in?  I think that it would be useful
>>>>> to see what he has done.
>>>>>
>>>>> Next, there are ambiguities among CAS and even within a single CAS.
>>>>>
>>>>> For example, in Macsyma/ Maxima  there is generally no semantics
>>>>> associated with "=" or ">".   But in some contexts, there is some
>>>>> meaning.
>>>>>
>>>>> x>2*y
>>>>>
>>>>> is a tree expression.  It is not associated with x or with y.
>>>>>
>>>>> assume(x>2*y)   does mean something ... it puts info in a database.
>>>>> Somehow encoding the method to extract this information into SEALATEX
>>>>> (SeLaTeX?) in a CAS-independent way -- that's quite a task.   In
>>>>> particular, it would seem to require an understanding of what assume()
>>>>> does in Maxima, and what is() does also.
>>>>>
>>>>> x and not x   has no particular meaning,  but if x is explicitly true
>>>>> or false,
>>>>> Maxima simplifies it to false.  If SEALATEX has a semantics -- are you
>>>>> defining yet another CAS?  Or perhaps you should link it 100% to
>>>>> Axiom's
>>>>> semantics, which you presumably know about and can modify.
>>>>>
>>>>> As far as recording stuff in DLMF -- there are presumably scope issues
>>>>> ("in this chapter n,m are natural numbers....")  and maybe even a need
>>>>> to make value assignments.
>>>>> I think you need to model these in SEALATEX too.
>>>>>
>>>>> Just musing about where you are heading.
>>>>>
>>>>> RJF
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On 8/18/2016 11:45 AM, Tim Daly wrote:
>>>>>
>>>>> Fateman [0] raised a set of issues with the OpenMath
>>>>> approach. We are not trying to be cross-platform in this
>>>>> effort. Axiom does provide an algebraic scaffold so it is
>>>>> possible that the selatex markup might be useful elsewhere
>>>>> but that is not a design criterion.
>>>>>
>>>>> Fateman[1] also raises some difficult cross-platform issues
>>>>> that are not part of this design.
>>>>>
>>>>> Fateman[2] shows that parsing tex with only syntactic markup
>>>>> succeeded on only 43% of 10740 inputs. It ought to be posible
>>>>> to increase this percentage given proper semantic markup.
>>>>> (Perhaps there should be a competition similar to the deep
>>>>> learning groups? PhDs have been awarded on incremental
>>>>> improvements of the percentage)
>>>>>
>>>>> This is a design-by-crawl approach to the semantic markup
>>>>> idea. The hope is to get something running this week that
>>>>> 'works' but giving due consideration to global and long-term
>>>>> issues. A first glance at CRC/NIST raises more questions
>>>>> than answers as is usual with any research.
>>>>>
>>>>> It IS a design goal to support a Computer Algebra Test Suite
>>>>> (http://axiom-developer.org/axiom-website/CATS). It is very
>>>>> tedious to hand construct test suites. It will be even more
>>>>> tedious to construct them "second-level" by doing semantic
>>>>> markup and then trying to use them as input, but the hope is
>>>>> that eventually the CRC/NIST/G&R, etc will eventually be
>>>>> published with semantics so computational mathematics can
>>>>> stop working from syntax.
>>>>>
>>>>> ===========
>>>>> Consideration 4: I/O transparency
>>>>>
>>>>> Assume for the moment that we take a latex file containing
>>>>> only formulas. We would like to be able to read this file so
>>>>> it has computational mathematics (CM) semantics.
>>>>>
>>>>> It is clear that there needs to be semantic tags that carry the
>>>>> information but these tags have to be carefully designed NOT
>>>>> to change the syntactic display. They may, as noted before,
>>>>> require multiple semantic versions for a single syntax.
>>>>>
>>>>> It is also clear that we would like to be able to output formulas
>>>>> with CM semantics where currently we only output syntax.
>>>>>
>>>>> ===========
>>>>> Consideration 5: I/O isomorphism
>>>>>
>>>>> An important property of selatex is an isomorphism with
>>>>> input/output. Axiom allows output forms to be defined for a
>>>>> variety of targets so this does not seem to be a problem. For
>>>>> input, however, this means that the reader has to know how
>>>>> to expand \INT{3} into the correct domain. This could be done
>>>>> with a stand-alone pre-processor from selatex->inputform.
>>>>>
>>>>> It should be possible to read-then-write an selatex formula,
>>>>> or write-then-read an selatex formula with identical semantics.
>>>>>
>>>>> That might not mean that the I/O is identical though due to
>>>>> things like variable ordering, etc.
>>>>>
>>>>> ===========
>>>>> Consideration 6: Latex semantic macros
>>>>>
>>>>> Semantic markup would be greatly simplified if selatex provided
>>>>> a mechanism similar to Axiom's ability to define types "on the fly"
>>>>> using either assignment
>>>>>
>>>>>    TYP:=FRAC(POLY(INT))
>>>>>
>>>>> or macro form
>>>>>
>>>>>    TYP ==> FRAC(POLY(INT))
>>>>>
>>>>> Latex is capable of doing this and selatex should probably include
>>>>> a set of pre-defined common markups, such as
>>>>>
>>>>>   \FRINT ==> \FRAC\INT
>>>>>
>>>>> ===========
>>>>> Consideration 7: selatex \begin{semantic} environment?
>>>>>
>>>>> Currently Axiom provides a 'chunk' environment which surrounds
>>>>> source code. The chunks are named so they can be extracted
>>>>> individually or in groups
>>>>>
>>>>>    \begin{chunk}{a name for the chunk}
>>>>>       anything
>>>>>    \end{chunk}
>>>>>
>>>>> We could provide a similar environment for semantics such as
>>>>>
>>>>>   \begin{semantics}{a name for the block}
>>>>>   \end{semantics}
>>>>>
>>>>> which would provide a way to encapsulate markup and also allow
>>>>> a particular block to be extracted in literate programming style.
>>>>>
>>>>> ===========
>>>>> Consideration 8: Latex-time processing
>>>>>
>>>>> Axiom currently creates specific files using \write to create
>>>>> intermediate files (e.g. for tables). This technique can be used
>>>>> to enhance latex-time debugging (where did it fail?).
>>>>>
>>>>> It can be used to create Axiom files which pre-construct domains
>>>>> needed when the input file with semantic markup is read.
>>>>>
>>>>> This would help a stand-alone selatex->inputform preprocessor.
>>>>>
>>>>> ===========
>>>>> Consideration 9: Design sketches
>>>>>
>>>>> It is all well-and-good to hand-wave at this idea but a large
>>>>> amount of this machinery already exists.
>>>>>
>>>>> It would seem useful to develop an incremental test suite that
>>>>> starts with "primitive" domains (e.g. INT), creating selatex I/O.
>>>>>
>>>>> Once these are in place we could work on "type tower" markup
>>>>> such as \FRAC\INT or \POLY\COMPLEX\FLOAT.
>>>>>
>>>>> Following that might be pre-existing latex functions like \int, \sum,
>>>>> \cos, etc.
>>>>>
>>>>> To validate these ideas Axiom will include an selatex.sty file and
>>>>> some unit tests files on primitive domain markup. That should be
>>>>> enough to start the bikeshed discussions.
>>>>>
>>>>> Ideas? Considerations? Suggestions?
>>>>>
>>>>> Tim
>>>>>
>>>>> [0] Fateman, Richard J.
>>>>> "A Critique of OpenMath and Thoughts on
>>>>> Encoding Mathematics, January, 2001"
>>>>> https://people.eecs.berkeley.edu/~fateman/papers/openmathcrit.pdf
>>>>>
>>>>> [1] Fateman, Richard J.
>>>>> "Verbs, Nouns, and Computer Algebra, or What's Grammar Got to
>>>>> do with Math? ", December 18, 2008
>>>>> https://people.eecs.berkeley.edu/~fateman/papers/nounverbmac.pdf
>>>>>
>>>>> [2] Fateman, Richard J.
>>>>> "Parsing TeX into Mathematics",
>>>>> https://people.eecs.berkeley.edu/~fateman/papers/parsing_tex.pdf
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>


\start
Date: Tue, 23 Aug 2016 19:27:10 -0400
From: Tim Daly <axiomcas@gmail.com>
To: Dan Zwillinger <zwilling@az-tec.com>
Subject: Re: [Axiom-developer] Design Thoughts on Semantic Latex (SELATEX)
Cc: Richard Fateman <fateman@berkeley.edu>,
	axiom-dev <axiom-developer@nongnu.org>, 
	Tim Daly <daly@axiom-developer.org>, Ralf Hemmecke <ralf@hemmecke.org>, 
	James Davenport <J.H.Davenport@bath.ac.uk>, Mike Dewar <miked@nag.co.uk>,
	vdhoeven@lix.polytechnique.fr, albert_rich@msn.com

For those of you at home wishing to play along, there is a
selatex.test1 file at
http://axiom-developer.org/axiom-website/selatex.test1
containing 620 integrals.

Each line is a call of the form

  weaver(latex-string,axiom-string)

The goal is to transform the latex into Axiom.

Implicit is the idea that weaver will use the selatex tokens
to disambiguate the input. The current file has no selatex
tokens. They will be added as needed. The idea is to keep
the problem simple by adding print-invisible sematics to the
latex-string. In the ideal case the weaver program is trivial,
as is the markup. Any tradeoff should prioritize simplicity.
Another priority is to align the semantic markup with
Axiom domains in order to ground the semantics with code.

Once all of these calls translate correctly the Axiom output
routines need to output the latex-string with the added
semantic markup so the mapping is bi-directional.

The current file only looks at integration as I already have
the latex->axiom text available. Future test files will look
at other areas of interest. The long term goal is to parse
NIST/CRC/etc formulas.

Tim


On Sun, Aug 21, 2016 at 11:02 PM, Tim Daly <axiomcas@gmail.com> wrote:

> Dan,
>
> While paging through the CRC 31st Standard Mathematical
> Tables I landed on page 219, section 3.4.1.2 Graph Invariants.
>
> It would be a vast improvement if there were algorithms
> associated with these invariants. Clearly they exist somewhere.
>
> To "cross the gap" between tables and computational mathematics
> it would be valuable to include implementations of these invariants.
>
> It is hard to walk away from that page. An Axiom implementation
> would be fun to write, especially given the next section that lists
> different kinds of graphs which, presumably, would all have the
> invariants. Even better, the graph algorithms are likely good
> candidates for proof technology (ACL2 if done in Lisp, COQ if
> done in Spad). Lisp has the advantage of an ANSI standard.
>
> It seems worthwhile to take sections like this, expand them
> across computational and proof tools, and publish them in a
> form that is generally useful. It is "nice to know" that a graph
> has a radius but it would be even better if I could "just point and
> click" to import the algorithm.
>
> Axiom has been pushing literate programming for years. The
> tools exist to "make it so", as the saying goes.
>
> Tim
>
>
>
>
> On Sun, Aug 21, 2016 at 10:40 PM, Tim Daly <axiomcas@gmail.com> wrote:
>
>> Like any research problem it is a struggle to get a useful grip on this.
>> Looking at G&R (I just ordered the latest, mine is 4th edition), the
>> task quickly gets out of hand.
>>
>> The CATS tests in the past were created by reading the printed latex
>> in various volumes and hand-translating them to Axiom input.
>>
>> It is not difficult to re-create the latex input for these examples.
>> Doing so and combining the results gives a set of examples with
>> matching input latex and output Axiom. The homework problem is
>> to write the necessary markup and weaver.
>>
>> It is immediately obvious that this is more challenging than it seems.
>> For example, when writing y'(x)=0, Axiom needs y:=operator 'y
>> so it knows about the symbol as an operator. This falls under
>> "Consideration 12: System Specific Commands"... which implies
>> that the latex environment and quoting macros have to be
>> implemented. Sigh.
>>
>> There is no such thing as a simple job.
>>
>> Anyway, at least there is a way to make a proof of concept
>> prototype that reproduces existing results.
>>
>> Tim
>>
>>
>> On Sun, Aug 21, 2016 at 4:17 PM, Tim Daly <axiomcas@gmail.com> wrote:
>>
>>> Dan,
>>>
>>> Welcome.
>>>
>>> Re: Howard Cohl. Yes, I'd like an introduction. It seems important to
>>> make DLMF, CRC, and other sources contain enough semantics that
>>> they can be read by a computer algebra system. There are an
>>> enormous number of issues, such as what to do with functions
>>> unknown to the CAS, which need to be thought through.
>>>
>>> I believe that NIST/CRC/G&R collections with semantic markup will
>>> have a great normalizing effect on CAS development since it will raise
>>> cross-platform questions like "What percent of G&R do you handle?".
>>> Albert Rich (RUBI)[0] has been doing this for integration using patterns.
>>> This can only benefit computational mathematics in the long term.
>>>
>>> I've also campaigned for associating algorithms with published tables.
>>> It is important in the long term to have reference versions. The ACM
>>> used to do this years ago. I'd like to see a Gruntz algorithm for limits
>>> where it can be applied, for instance. It would also provide a focus on
>>> "missing algorithms" or edge cases. Davenport/Trager/Bronstein
>>> algorithms promise a decision procedure but there are no existing
>>> complete implementations. The tables could highlight missing cases,
>>> giving focus to efforts to complete the procedure.
>>>
>>> It will also put back-pressure on the tables to define different versions
>>> of the same formulas based on domains (C, R, etc).
>>>
>>>
>>> "The GR work was more than I had anticipated"... wins the award for
>>> understatement of the decade.
>>>
>>> The goal of this effort is to make it possible to read those
>>> formulas directly into a CAS. Axiom is my primary target but
>>> it should be done in a somewhat system agnostic form.
>>>
>>> I've spent well over a year creating the computer algebra test suite.
>>> It would be so much easier and more useful if the original sources
>>> could be read directly.
>>>
>>> I read your paper. There is an interesting mix of syntax and semantics.
>>>
>>> I guess the difference in this effort is that the semantic markup is
>>> intended to be transparent and grounded. The transparent aspect
>>> keeps the tables unchanged in print form. The grounded aspect keeps
>>> the semantics based on some algorithmic base. This implies, of
>>> course, that there IS an algorithmic base which does not yet exist
>>> for some of the work.
>>>
>>> As you can see from the CATS work I've been trying to validate
>>> Axiom's results with respect to published texts. This has found both
>>> Axiom bugs and misprints in published texts.
>>>
>>> The Kamke[1] suite was the first effort for differential equations.
>>>
>>> The Spiegel[2] chapter 14 on indefinite integrals for integration.
>>>
>>> The von Seggern[3] book on curves and surfaces for graphics.
>>>
>>> The Legendre and Grazini[4] on Pasta by Design for 3D graphics.
>>>
>>> The RUBI work on integration.
>>>
>>> and, currently I'm re-creating the numerics that were lost when NAG
>>> released the open source version, leaving me swimming through
>>> Luke's[5] Algorithms book.
>>>
>>> which, to quote a famous phrase "was more than I had anticipated".
>>>
>>> Your Handbook of Integration[6] has a section on various known
>>> "Caveats, How an integration result may be incorrect". This raises the
>>> wonderful topic of branch cuts yet again. I did some testing and it
>>> seems that Axiom and Mathematica share one set while Maple and
>>> Maxima share another.
>>>
>>> All of which leads to a need to create better reference materials that
>>> are generally available (unlike the ACM algorithms for non-paying
>>> customers) and directly useful for computational mathematics.
>>>
>>> The current plan is to take some tables, find or re-create the latex,
>>> invent a semantic markup, and then write the "weaver". At this point
>>> the research is still at the "proof of concept" stage. (tex formula
>>> sources are most welcome).
>>>
>>> Ultimately I'd really like to see a book of formulas and algorithms
>>> that I can just drag-and-drop into Axiom and be able to use them
>>> without lifetimes of work.
>>>
>>> Actually, that 's only the penultimate goal. I have augmented
>>> Axiom to include proofs (ACL2,COQ) so I'd also like to see proofs,
>>> (this IS mathematics, after all) but maybe we'll leave that for
>>> next month :-)
>>>
>>> Tim
>>>
>>> [0] Rich, Albert "Rule-based Mathematics"
>>> http://www.apmaths.uwo.ca/~arich/
>>>
>>> [1] Kamke. E. "Differentialgleichungen Losungsmethoden und Losungen"
>>> Chelsea Publishing Company, New York, 1959
>>>
>>> [2] Spiegel, Murray R. "Mathematical Handbook", Schaum's Outline
>>> Series; McGraw-Hill Book Company 1968
>>>
>>> [3] von Seggern, David "CRC Standard Curves and Surfaces",
>>> CRC Press, 1993 ISBN 0-8493-0196-3
>>>
>>> [4] Legendre, George L. and Grazini, Stefano "Pasta by Design",
>>> Thames and Hudson, 2001
>>>
>>> [5] Luke, Yudell "Algorithms for the Computation of Mathematical
>>> Functions", Academic Press, 1977 ISBN 0-12-459940-6
>>>
>>> [6] Zwillinger, Daniel "Handbook of Integration" Jones and Bartlett,
>>> London, 1992
>>>
>>>
>>>
>>> On Sun, Aug 21, 2016 at 10:16 AM, Dan Zwillinger <zwilling@az-tec.com>
>>> wrote:
>>>
>>>> All
>>>>
>>>> I began reading this topic's emails when they first appeared, and then
>>>> fell behind.
>>>> Sorry for my late comments.
>>>>
>>>> I admire your efforts.
>>>> They may be somewhat related to what I have done in the past.
>>>> My experience is as follows:
>>>>
>>>> (1) CRC SMTF (Standard Mathematical Tables and Formula)
>>>>
>>>> I put the ~700 integrals in CRC's SMTF into a format from which
>>>> (A) they could be typeset in LaTeX
>>>> (B) they could be converted into Mathematica (which either did a
>>>> symbolic or numeric computation) - and this was done
>>>>
>>>> I let Richard Fateman use them for his experiments.
>>>>
>>>>
>>>> (2) Elsevier's GR (Gradshteyn and Ryzhik's "Table of Integrals, Series,
>>>> and Products")
>>>>
>>>> I put the ~12,000 (if my memory is correct) integrals into a format
>>>> from which
>>>> (A) they could be beautifully typeset in LaTeX
>>>> (B) they could be converted into Mathematica - and this was NOT done
>>>> Enclosed is a PDF file describing the work and the resulting format.
>>>>
>>>>
>>>> A different format was used for SMTF and GR.
>>>> While the SMTF work was not too arduous, the GR work was more than I
>>>> had anticipated.
>>>> The input (the previous version of GR) had little syntactic structure
>>>> and it took much effort to get it into shape.
>>>> I used (many different) regular expressions (in perl) to translate the
>>>> bulk of the book, and then lots of hand tuning.
>>>>
>>>> While I think you are well beyond my thinking on these topics, please
>>>> let me know if I can help.
>>>> I am friends with Howard Cohl at NIST, who may be the current lead for
>>>> DLMF ("Digital Library of Mathematical Functions" at dlmf.nist.gov).
>>>> Let me know if you need an introduction.
>>>>
>>>>
>>>> Dan Zwillingerzwilling@az-tec.com617-388-2382
>>>>
>>>> On 8/20/2016 11:30 PM, Tim Daly wrote:
>>>>
>>>> The game is to define latex markup that is transparent to the syntax
>>>> but adds semantics for post processing.
>>>>
>>>> Some simple tests show that this works. Suppose selatex.sty contains:
>>>>
>>>> \newcommand{\INT}[1]{#1}
>>>> \newcommand{\VARIABLE}[1]{#1}
>>>> \newcommand{\POLY}[1]{#1}
>>>> \newcommand{\INTEG}[2]{\int{#1}}
>>>>
>>>> This defines 4 new latex markups. The number in the square brackets
>>>> defines the number of expected arguments. The brace argument
>>>> delimites the characters that will occur during expansion with the #1
>>>> replaced by the first argument.
>>>>
>>>> (As an aside, INT, VARIABLE, and POLY just happen to be valid
>>>> Axiom domain abbreviations, hence the name choice. This choice
>>>> of names gives grounding to the semantics.)
>>>>
>>>> Notice that \INTEG takes two arguments but will display only one.
>>>> This allows the variable of integration to be passed in the semantics
>>>> without showing up in the output. This allows the semantics to carry
>>>> additional, non-display information needed by the CAS.
>>>>
>>>> Some examples follow.
>>>>
>>>> An integer 3 can be wrapped as \INT{3} but will still display as 3.
>>>>
>>>> A variable x can be wrapped as \VARIABLE{x}, displayed as x.
>>>>
>>>> $\POLY{\INT{3}\VARIABLE{x}}$ will display as 3*x
>>>>
>>>> $\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x} will be the same result
>>>> as $\int{3x~dx}$, that is, an
>>>>   (integralsign) 3x dx
>>>> but notice that the variable of integration is in the semantic markup.
>>>>
>>>> These trivial macros can be made less verbose and certainly
>>>> more clever but that's not the point being made here.
>>>>
>>>> A 'weaver' program would see the integration expression as
>>>>
>>>> $\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x}$
>>>>
>>>> with all of the semantic tags. The weaver's job is to rewrite this
>>>> expression into an inputform for the CAS. In Axiom that would be
>>>>
>>>> integrate(3*x,x)
>>>>
>>>> The semantics markup makes the display pretty and the semantic
>>>> parsing possible. Depending on the system, more or less parsing
>>>> markup can exist. Axiom, for example, would not need the \INT or
>>>> \VARIABLE to get a correct parse so the expression could be
>>>> $\INTEG{3x~dx}{x}$
>>>>
>>>> This validates the fundamental idea.
>>>>
>>>> The next step is to write a simple weaver program. The clever path
>>>> would be to embed a declarative form of the parser syntax (BNF?)
>>>> as comments in selatex.sty. That way the latex semantics and the
>>>> weaver syntax are kept in sync.
>>>>
>>>> Weaver would read the BNF comments from selatex.sty and
>>>> the formula with semantic markup as input and parse the semantic
>>>> markup into inputforms. (Wish I thought of this homework problem
>>>> when I taught the compiler course :-) ).
>>>>
>>>> Note that, depending on the BNF, weaver could be used to
>>>> generate output for Maxima's tree-based representation.
>>>>
>>>> An alternative next step is to look at a CRC book, re-create the
>>>> syntactic latex and then create the selatex.sty entries necessary
>>>> to generate weaver input.
>>>>
>>>> Infinitesimal progress, but progress non-the-less.
>>>>
>>>> Tim
>>>>
>>>>
>>>> On Fri, Aug 19, 2016 at 12:45 AM, Tim Daly <axiomcas@gmail.com> wrote:
>>>>
>>>>>
>>>>> One of the Axiom project goals is to develop a "Computer Algebra Test
>>>>> Suite" (CATS). Albert Rich has done this with RUBI and integration.
>>>>> That
>>>>> work is already partially in the test suite and work has been done on
>>>>> the
>>>>> pattern matching. Large datasets (like Kamke) are always welcome. Some,
>>>>> such as Schaums were hand-developed. This is tedious.
>>>>>
>>>>> As Axiom develops more explanations and documentation it would be
>>>>> useful to execute the formulas directly so there is a local incentive
>>>>> to be
>>>>> clear about semantics.
>>>>>
>>>>> In the long term the hope is that we can just grab formulas directly
>>>>> from
>>>>> their sources (ala literate programming). Your work makes it plain
>>>>> that raw
>>>>> latex does not carry sufficient semantics. There is a global question
>>>>> of
>>>>> how to make this work. Unfortunately a general cross-platform solution
>>>>> is difficult (cite Dewar/Davenport/et al. for OpenMath).
>>>>>
>>>>> Since Axiom is literate and extracting formulas is trivial it seems
>>>>> that
>>>>> literate markup is a natural goal. Since Axiom uses abstract algebra
>>>>> as a scaffold the type tower already has a lot of axiomatic semantics.
>>>>> The natural join of literate latex and abstract algebra is clearly
>>>>> semantic markup, aka selatex.
>>>>>
>>>>> ===========
>>>>> Consideration 10: semantic->inputform translation (weaver? :-) )
>>>>>
>>>>> >x and not x   has no particular meaning,  but if x is explicitly true
>>>>> or false,
>>>>> >Maxima simplifies it to false.  If SEALATEX has a semantics -- are you
>>>>> >defining yet another CAS?  Or perhaps you should link it 100% to
>>>>> Axiom's
>>>>> >semantics, which you presumably know about and can modify.
>>>>>
>>>>> I am NOT defining another CAS. The goal is a "well-designed hack" using
>>>>> universally understood latex, a latex package, and a translation
>>>>> program.
>>>>>
>>>>> The selatex idea is only partially Axiom specific. \INT, for instance,
>>>>> seems
>>>>> pretty generic. However, if the idea is to read formulas and
>>>>> disambiguate
>>>>> a=b (boolean) vs a=b (equation) then the markup needs to be grounded
>>>>> to have meaning. Axiom's domains (BOOLEAN) and (EQ) as the ground
>>>>>
>>>>> \BOOLEAN(a=b)
>>>>> \EQ(a=b)
>>>>>
>>>>> are unambiguous relative to each other in Axiom. I don't know enough
>>>>> about Maxima to understand how this might translate.
>>>>>
>>>>> The extracted formulas with the decorated semantics still needs a
>>>>> semantics->inputform (weaver) pre-processor which could be Maxima
>>>>> specific. This would lead to debate about what "equality" means, of
>>>>> course.
>>>>>
>>>>> Axiom has tried to create a first-order "rosetta stone" to translate
>>>>> between
>>>>> systems (rosetta.pdf [1]) but it is too shallow to consider providing
>>>>> cross-platform semantics.
>>>>>
>>>>> =============
>>>>> Consideration 11: \scope in selatex
>>>>>
>>>>> >As far as recording stuff in DLMF -- there are presumably scope issues
>>>>> >("in this chapter n,m are natural numbers....")  and maybe even a need
>>>>> >to make value assignments.
>>>>> >I think you need to model these in SEALATEX too.
>>>>>
>>>>> (See Consideration 6)
>>>>>
>>>>> Clearly there are scoping issues. My current thinking is to create a
>>>>> \scope markup that would manage the environment(s). This is not
>>>>> a new issue (see "Lisp in Small Pieces" [0])
>>>>>
>>>>> There seem to be three concerns.
>>>>>
>>>>> First is the scope name, with something like 'global' as a keyword.
>>>>> Second is the "closure chain" of other scopes.
>>>>> Third is the symbol being scoped.
>>>>>
>>>>> \scope{name}{chain}{symbol}
>>>>>
>>>>> The weaver program would walk this chain to create the proper
>>>>> file syntax for system input.
>>>>>
>>>>> ============
>>>>> Consideration 12: System specific commands \axiom
>>>>>
>>>>> Along with the formulas it is clear that some system specific
>>>>> input may be required, such as loading files, clearing workspaces,
>>>>> etc. Some of these may be done in the weaver program, such as
>>>>> between formulas. Others may need to be added to the semantics
>>>>> block. So a markup that provides verbatim quoting per system
>>>>> might be defined, e.g.
>>>>>
>>>>> \axiom{)clear all}  %clear the workspace
>>>>>
>>>>> which would simply quote an input line.
>>>>>
>>>>> ==============
>>>>>
>>>>> Note that so far all that is being suggested is transparent formula
>>>>> markups which do not impact the presentation, some special tags
>>>>> (\scope, \axiom,...) and a weaver program, along with the ability to
>>>>> read the latex and extract named formulas (aka a literate program,
>>>>> which Axiom already can do).
>>>>>
>>>>> It ought to be possible (by design) to create a semantic version of
>>>>> CRC that any system could import, assuming a "sufficiently clever
>>>>> weaver".
>>>>>
>>>>> On a more ambitious note, I am trying to find a way to keep the selatex
>>>>> markup "hidden" in a pdf and use it as the clipboard paste when the
>>>>> formula is selected. Anyone with a clue, please help.
>>>>>
>>>>> ===============
>>>>>
>>>>> [0] Queinnec, Christopher, "Lisp in Small Pieces" ISBN 978-0521545662
>>>>> (2003)
>>>>>
>>>>> [1] Wester, Michael J. and Daly, TImothy "Rosetta"
>>>>> http://axiom-developer.org/axiom-website/rosetta.pdf
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Thu, Aug 18, 2016 at 5:30 PM, Richard Fateman <fateman@berkeley.edu
>>>>> > wrote:
>>>>>
>>>>>> thanks for all the references :)
>>>>>>
>>>>>> I'm not sure if I'm going to repeat comments I  made already
>>>>>> somewhere.
>>>>>> First,  has Dan Zwillinger weighed in?  I think that it would be
>>>>>> useful
>>>>>> to see what he has done.
>>>>>>
>>>>>> Next, there are ambiguities among CAS and even within a single CAS.
>>>>>>
>>>>>> For example, in Macsyma/ Maxima  there is generally no semantics
>>>>>> associated with "=" or ">".   But in some contexts, there is some
>>>>>> meaning.
>>>>>>
>>>>>> x>2*y
>>>>>>
>>>>>> is a tree expression.  It is not associated with x or with y.
>>>>>>
>>>>>> assume(x>2*y)   does mean something ... it puts info in a database.
>>>>>> Somehow encoding the method to extract this information into SEALATEX
>>>>>> (SeLaTeX?) in a CAS-independent way -- that's quite a task.   In
>>>>>> particular, it would seem to require an understanding of what assume()
>>>>>> does in Maxima, and what is() does also.
>>>>>>
>>>>>> x and not x   has no particular meaning,  but if x is explicitly true
>>>>>> or false,
>>>>>> Maxima simplifies it to false.  If SEALATEX has a semantics -- are you
>>>>>> defining yet another CAS?  Or perhaps you should link it 100% to
>>>>>> Axiom's
>>>>>> semantics, which you presumably know about and can modify.
>>>>>>
>>>>>> As far as recording stuff in DLMF -- there are presumably scope issues
>>>>>> ("in this chapter n,m are natural numbers....")  and maybe even a need
>>>>>> to make value assignments.
>>>>>> I think you need to model these in SEALATEX too.
>>>>>>
>>>>>> Just musing about where you are heading.
>>>>>>
>>>>>> RJF
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 8/18/2016 11:45 AM, Tim Daly wrote:
>>>>>>
>>>>>> Fateman [0] raised a set of issues with the OpenMath
>>>>>> approach. We are not trying to be cross-platform in this
>>>>>> effort. Axiom does provide an algebraic scaffold so it is
>>>>>> possible that the selatex markup might be useful elsewhere
>>>>>> but that is not a design criterion.
>>>>>>
>>>>>> Fateman[1] also raises some difficult cross-platform issues
>>>>>> that are not part of this design.
>>>>>>
>>>>>> Fateman[2] shows that parsing tex with only syntactic markup
>>>>>> succeeded on only 43% of 10740 inputs. It ought to be posible
>>>>>> to increase this percentage given proper semantic markup.
>>>>>> (Perhaps there should be a competition similar to the deep
>>>>>> learning groups? PhDs have been awarded on incremental
>>>>>> improvements of the percentage)
>>>>>>
>>>>>> This is a design-by-crawl approach to the semantic markup
>>>>>> idea. The hope is to get something running this week that
>>>>>> 'works' but giving due consideration to global and long-term
>>>>>> issues. A first glance at CRC/NIST raises more questions
>>>>>> than answers as is usual with any research.
>>>>>>
>>>>>> It IS a design goal to support a Computer Algebra Test Suite
>>>>>> (http://axiom-developer.org/axiom-website/CATS). It is very
>>>>>> tedious to hand construct test suites. It will be even more
>>>>>> tedious to construct them "second-level" by doing semantic
>>>>>> markup and then trying to use them as input, but the hope is
>>>>>> that eventually the CRC/NIST/G&R, etc will eventually be
>>>>>> published with semantics so computational mathematics can
>>>>>> stop working from syntax.
>>>>>>
>>>>>> ===========
>>>>>> Consideration 4: I/O transparency
>>>>>>
>>>>>> Assume for the moment that we take a latex file containing
>>>>>> only formulas. We would like to be able to read this file so
>>>>>> it has computational mathematics (CM) semantics.
>>>>>>
>>>>>> It is clear that there needs to be semantic tags that carry the
>>>>>> information but these tags have to be carefully designed NOT
>>>>>> to change the syntactic display. They may, as noted before,
>>>>>> require multiple semantic versions for a single syntax.
>>>>>>
>>>>>> It is also clear that we would like to be able to output formulas
>>>>>> with CM semantics where currently we only output syntax.
>>>>>>
>>>>>> ===========
>>>>>> Consideration 5: I/O isomorphism
>>>>>>
>>>>>> An important property of selatex is an isomorphism with
>>>>>> input/output. Axiom allows output forms to be defined for a
>>>>>> variety of targets so this does not seem to be a problem. For
>>>>>> input, however, this means that the reader has to know how
>>>>>> to expand \INT{3} into the correct domain. This could be done
>>>>>> with a stand-alone pre-processor from selatex->inputform.
>>>>>>
>>>>>> It should be possible to read-then-write an selatex formula,
>>>>>> or write-then-read an selatex formula with identical semantics.
>>>>>>
>>>>>> That might not mean that the I/O is identical though due to
>>>>>> things like variable ordering, etc.
>>>>>>
>>>>>> ===========
>>>>>> Consideration 6: Latex semantic macros
>>>>>>
>>>>>> Semantic markup would be greatly simplified if selatex provided
>>>>>> a mechanism similar to Axiom's ability to define types "on the fly"
>>>>>> using either assignment
>>>>>>
>>>>>>    TYP:=FRAC(POLY(INT))
>>>>>>
>>>>>> or macro form
>>>>>>
>>>>>>    TYP ==> FRAC(POLY(INT))
>>>>>>
>>>>>> Latex is capable of doing this and selatex should probably include
>>>>>> a set of pre-defined common markups, such as
>>>>>>
>>>>>>   \FRINT ==> \FRAC\INT
>>>>>>
>>>>>> ===========
>>>>>> Consideration 7: selatex \begin{semantic} environment?
>>>>>>
>>>>>> Currently Axiom provides a 'chunk' environment which surrounds
>>>>>> source code. The chunks are named so they can be extracted
>>>>>> individually or in groups
>>>>>>
>>>>>>    \begin{chunk}{a name for the chunk}
>>>>>>       anything
>>>>>>    \end{chunk}
>>>>>>
>>>>>> We could provide a similar environment for semantics such as
>>>>>>
>>>>>>   \begin{semantics}{a name for the block}
>>>>>>   \end{semantics}
>>>>>>
>>>>>> which would provide a way to encapsulate markup and also allow
>>>>>> a particular block to be extracted in literate programming style.
>>>>>>
>>>>>> ===========
>>>>>> Consideration 8: Latex-time processing
>>>>>>
>>>>>> Axiom currently creates specific files using \write to create
>>>>>> intermediate files (e.g. for tables). This technique can be used
>>>>>> to enhance latex-time debugging (where did it fail?).
>>>>>>
>>>>>> It can be used to create Axiom files which pre-construct domains
>>>>>> needed when the input file with semantic markup is read.
>>>>>>
>>>>>> This would help a stand-alone selatex->inputform preprocessor.
>>>>>>
>>>>>> ===========
>>>>>> Consideration 9: Design sketches
>>>>>>
>>>>>> It is all well-and-good to hand-wave at this idea but a large
>>>>>> amount of this machinery already exists.
>>>>>>
>>>>>> It would seem useful to develop an incremental test suite that
>>>>>> starts with "primitive" domains (e.g. INT), creating selatex I/O.
>>>>>>
>>>>>> Once these are in place we could work on "type tower" markup
>>>>>> such as \FRAC\INT or \POLY\COMPLEX\FLOAT.
>>>>>>
>>>>>> Following that might be pre-existing latex functions like \int, \sum,
>>>>>> \cos, etc.
>>>>>>
>>>>>> To validate these ideas Axiom will include an selatex.sty file and
>>>>>> some unit tests files on primitive domain markup. That should be
>>>>>> enough to start the bikeshed discussions.
>>>>>>
>>>>>> Ideas? Considerations? Suggestions?
>>>>>>
>>>>>> Tim
>>>>>>
>>>>>> [0] Fateman, Richard J.
>>>>>> "A Critique of OpenMath and Thoughts on
>>>>>> Encoding Mathematics, January, 2001"
>>>>>> https://people.eecs.berkeley.edu/~fateman/papers/openmathcrit.pdf
>>>>>>
>>>>>> [1] Fateman, Richard J.
>>>>>> "Verbs, Nouns, and Computer Algebra, or What's Grammar Got to
>>>>>> do with Math? ", December 18, 2008
>>>>>> https://people.eecs.berkeley.edu/~fateman/papers/nounverbmac.pdf
>>>>>>
>>>>>> [2] Fateman, Richard J.
>>>>>> "Parsing TeX into Mathematics",
>>>>>> https://people.eecs.berkeley.edu/~fateman/papers/parsing_tex.pdf
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>


\start
Date: Thu, 25 Aug 2016 06:17:10 -0400
From: Tim Daly <axiomcas@gmail.com>
To: Dan Zwillinger <zwilling@az-tec.com>
Subject: Re: [Axiom-developer] Design Thoughts on Semantic Latex (SELATEX)
Cc: Richard Fateman <fateman@berkeley.edu>,
	axiom-dev <axiom-developer@nongnu.org>, 
	Tim Daly <daly@axiom-developer.org>, Ralf Hemmecke <ralf@hemmecke.org>, 
	James Davenport <J.H.Davenport@bath.ac.uk>, Mike Dewar <miked@nag.co.uk>,
	vdhoeven@lix.polytechnique.fr, albert_rich@msn.com

My initial approach was too heavy-handed and Axiom specific.

It seems the semantic markup task can be viewed as an editor
task. Editors don't care about semantics, they just work on text.
Viewed this way the markup's only function is decoration for
post-processing. It is (mostly) system independent.

The edit tasks seem to be {delete, insert, replace} and some
post-markup hints {function, type}

The delete markup tells weaver to remove the latex completely.
This is useful for things like {dx}

The insert markup adds missing semantic text, such as {*} which
is needed to indicate multiplication.

The replace markup gives alternate text for weaver, for things where
the function name might differ, e.g. \int -> integrate

The function markup names a function that weaver should call
which allows special handling in post-processing. It can be any
s-expression (the weaver implementation is currently lisp-based).

The type markup passes type information to weaver so Axiom
knows the target type, useful for things like matrix.

The macros are

\newcommand{\AD}[1]{#1}% delete
\newcommand{\AI}[1]{}% insert
\newcommand{\AR}[2]{#1}% replace

\newcommand{\AF}[2]{#1}% function
\newcommand{\AT}[2]{#1}% type

Note that \AI outputs nothing, so 3\AI{*}x == 3x to latex.

\AD tells weaver to delete the text, e.g. {\AD ~dx} == ~dx to latex

\AR tells weaver to replace the text e.g. {\AR \pi}{\%pi}

\AF tells weaver to call a function, e.g. one that knows how to
rewrite the input in a special way, or does tracing, etc.

\AT adds target type information for Axiom
e.g. \AT{3x+6}{POLY(INT)} == 3x+6 to latex but passes it as
a Polynomial(Integer) to Axiom

For example,

$\int{\frac{dx}{ax*b}}$

becomes

$\AT{\AR{\int}{integrate}{\frac{\AD{dx}}{a\AI{*)x+b}}}{EXPR}{INT}}$

telling weaver that the target type (AT) is EXPR(INT),
the \int is really integrate
the dx is to be ignored and
the ax+b should read a*x+b

There is an obvious tradeoff of markup vs weaver.
For example. \int might be known to weaver.
Or expressions might call an equation rewriter to add {*}

The markup could vary from almost nothing to massive detail
depending on the downstream cleverness.

This initial markup set seems sufficient to handle every task
that requires semantics markup so far. The overhead seems
small and the gain seems large.

Now the only problem is post-processing the latex. Sigh.

There is no such thing as a simple job.

Tim


On Tue, Aug 23, 2016 at 7:27 PM, Tim Daly <axiomcas@gmail.com> wrote:

> For those of you at home wishing to play along, there is a
> selatex.test1 file at
> http://axiom-developer.org/axiom-website/selatex.test1
> containing 620 integrals.
>
> Each line is a call of the form
>
>   weaver(latex-string,axiom-string)
>
> The goal is to transform the latex into Axiom.
>
> Implicit is the idea that weaver will use the selatex tokens
> to disambiguate the input. The current file has no selatex
> tokens. They will be added as needed. The idea is to keep
> the problem simple by adding print-invisible sematics to the
> latex-string. In the ideal case the weaver program is trivial,
> as is the markup. Any tradeoff should prioritize simplicity.
> Another priority is to align the semantic markup with
> Axiom domains in order to ground the semantics with code.
>
> Once all of these calls translate correctly the Axiom output
> routines need to output the latex-string with the added
> semantic markup so the mapping is bi-directional.
>
> The current file only looks at integration as I already have
> the latex->axiom text available. Future test files will look
> at other areas of interest. The long term goal is to parse
> NIST/CRC/etc formulas.
>
> Tim
>
>
> On Sun, Aug 21, 2016 at 11:02 PM, Tim Daly <axiomcas@gmail.com> wrote:
>
>> Dan,
>>
>> While paging through the CRC 31st Standard Mathematical
>> Tables I landed on page 219, section 3.4.1.2 Graph Invariants.
>>
>> It would be a vast improvement if there were algorithms
>> associated with these invariants. Clearly they exist somewhere.
>>
>> To "cross the gap" between tables and computational mathematics
>> it would be valuable to include implementations of these invariants.
>>
>> It is hard to walk away from that page. An Axiom implementation
>> would be fun to write, especially given the next section that lists
>> different kinds of graphs which, presumably, would all have the
>> invariants. Even better, the graph algorithms are likely good
>> candidates for proof technology (ACL2 if done in Lisp, COQ if
>> done in Spad). Lisp has the advantage of an ANSI standard.
>>
>> It seems worthwhile to take sections like this, expand them
>> across computational and proof tools, and publish them in a
>> form that is generally useful. It is "nice to know" that a graph
>> has a radius but it would be even better if I could "just point and
>> click" to import the algorithm.
>>
>> Axiom has been pushing literate programming for years. The
>> tools exist to "make it so", as the saying goes.
>>
>> Tim
>>
>>
>>
>>
>> On Sun, Aug 21, 2016 at 10:40 PM, Tim Daly <axiomcas@gmail.com> wrote:
>>
>>> Like any research problem it is a struggle to get a useful grip on this.
>>> Looking at G&R (I just ordered the latest, mine is 4th edition), the
>>> task quickly gets out of hand.
>>>
>>> The CATS tests in the past were created by reading the printed latex
>>> in various volumes and hand-translating them to Axiom input.
>>>
>>> It is not difficult to re-create the latex input for these examples.
>>> Doing so and combining the results gives a set of examples with
>>> matching input latex and output Axiom. The homework problem is
>>> to write the necessary markup and weaver.
>>>
>>> It is immediately obvious that this is more challenging than it seems.
>>> For example, when writing y'(x)=0, Axiom needs y:=operator 'y
>>> so it knows about the symbol as an operator. This falls under
>>> "Consideration 12: System Specific Commands"... which implies
>>> that the latex environment and quoting macros have to be
>>> implemented. Sigh.
>>>
>>> There is no such thing as a simple job.
>>>
>>> Anyway, at least there is a way to make a proof of concept
>>> prototype that reproduces existing results.
>>>
>>> Tim
>>>
>>>
>>> On Sun, Aug 21, 2016 at 4:17 PM, Tim Daly <axiomcas@gmail.com> wrote:
>>>
>>>> Dan,
>>>>
>>>> Welcome.
>>>>
>>>> Re: Howard Cohl. Yes, I'd like an introduction. It seems important to
>>>> make DLMF, CRC, and other sources contain enough semantics that
>>>> they can be read by a computer algebra system. There are an
>>>> enormous number of issues, such as what to do with functions
>>>> unknown to the CAS, which need to be thought through.
>>>>
>>>> I believe that NIST/CRC/G&R collections with semantic markup will
>>>> have a great normalizing effect on CAS development since it will raise
>>>> cross-platform questions like "What percent of G&R do you handle?".
>>>> Albert Rich (RUBI)[0] has been doing this for integration using
>>>> patterns.
>>>> This can only benefit computational mathematics in the long term.
>>>>
>>>> I've also campaigned for associating algorithms with published tables.
>>>> It is important in the long term to have reference versions. The ACM
>>>> used to do this years ago. I'd like to see a Gruntz algorithm for limits
>>>> where it can be applied, for instance. It would also provide a focus on
>>>> "missing algorithms" or edge cases. Davenport/Trager/Bronstein
>>>> algorithms promise a decision procedure but there are no existing
>>>> complete implementations. The tables could highlight missing cases,
>>>> giving focus to efforts to complete the procedure.
>>>>
>>>> It will also put back-pressure on the tables to define different
>>>> versions
>>>> of the same formulas based on domains (C, R, etc).
>>>>
>>>>
>>>> "The GR work was more than I had anticipated"... wins the award for
>>>> understatement of the decade.
>>>>
>>>> The goal of this effort is to make it possible to read those
>>>> formulas directly into a CAS. Axiom is my primary target but
>>>> it should be done in a somewhat system agnostic form.
>>>>
>>>> I've spent well over a year creating the computer algebra test suite.
>>>> It would be so much easier and more useful if the original sources
>>>> could be read directly.
>>>>
>>>> I read your paper. There is an interesting mix of syntax and semantics.
>>>>
>>>> I guess the difference in this effort is that the semantic markup is
>>>> intended to be transparent and grounded. The transparent aspect
>>>> keeps the tables unchanged in print form. The grounded aspect keeps
>>>> the semantics based on some algorithmic base. This implies, of
>>>> course, that there IS an algorithmic base which does not yet exist
>>>> for some of the work.
>>>>
>>>> As you can see from the CATS work I've been trying to validate
>>>> Axiom's results with respect to published texts. This has found both
>>>> Axiom bugs and misprints in published texts.
>>>>
>>>> The Kamke[1] suite was the first effort for differential equations.
>>>>
>>>> The Spiegel[2] chapter 14 on indefinite integrals for integration.
>>>>
>>>> The von Seggern[3] book on curves and surfaces for graphics.
>>>>
>>>> The Legendre and Grazini[4] on Pasta by Design for 3D graphics.
>>>>
>>>> The RUBI work on integration.
>>>>
>>>> and, currently I'm re-creating the numerics that were lost when NAG
>>>> released the open source version, leaving me swimming through
>>>> Luke's[5] Algorithms book.
>>>>
>>>> which, to quote a famous phrase "was more than I had anticipated".
>>>>
>>>> Your Handbook of Integration[6] has a section on various known
>>>> "Caveats, How an integration result may be incorrect". This raises the
>>>> wonderful topic of branch cuts yet again. I did some testing and it
>>>> seems that Axiom and Mathematica share one set while Maple and
>>>> Maxima share another.
>>>>
>>>> All of which leads to a need to create better reference materials that
>>>> are generally available (unlike the ACM algorithms for non-paying
>>>> customers) and directly useful for computational mathematics.
>>>>
>>>> The current plan is to take some tables, find or re-create the latex,
>>>> invent a semantic markup, and then write the "weaver". At this point
>>>> the research is still at the "proof of concept" stage. (tex formula
>>>> sources are most welcome).
>>>>
>>>> Ultimately I'd really like to see a book of formulas and algorithms
>>>> that I can just drag-and-drop into Axiom and be able to use them
>>>> without lifetimes of work.
>>>>
>>>> Actually, that 's only the penultimate goal. I have augmented
>>>> Axiom to include proofs (ACL2,COQ) so I'd also like to see proofs,
>>>> (this IS mathematics, after all) but maybe we'll leave that for
>>>> next month :-)
>>>>
>>>> Tim
>>>>
>>>> [0] Rich, Albert "Rule-based Mathematics"
>>>> http://www.apmaths.uwo.ca/~arich/
>>>>
>>>> [1] Kamke. E. "Differentialgleichungen Losungsmethoden und Losungen"
>>>> Chelsea Publishing Company, New York, 1959
>>>>
>>>> [2] Spiegel, Murray R. "Mathematical Handbook", Schaum's Outline
>>>> Series; McGraw-Hill Book Company 1968
>>>>
>>>> [3] von Seggern, David "CRC Standard Curves and Surfaces",
>>>> CRC Press, 1993 ISBN 0-8493-0196-3
>>>>
>>>> [4] Legendre, George L. and Grazini, Stefano "Pasta by Design",
>>>> Thames and Hudson, 2001
>>>>
>>>> [5] Luke, Yudell "Algorithms for the Computation of Mathematical
>>>> Functions", Academic Press, 1977 ISBN 0-12-459940-6
>>>>
>>>> [6] Zwillinger, Daniel "Handbook of Integration" Jones and Bartlett,
>>>> London, 1992
>>>>
>>>>
>>>>
>>>> On Sun, Aug 21, 2016 at 10:16 AM, Dan Zwillinger <zwilling@az-tec.com>
>>>> wrote:
>>>>
>>>>> All
>>>>>
>>>>> I began reading this topic's emails when they first appeared, and then
>>>>> fell behind.
>>>>> Sorry for my late comments.
>>>>>
>>>>> I admire your efforts.
>>>>> They may be somewhat related to what I have done in the past.
>>>>> My experience is as follows:
>>>>>
>>>>> (1) CRC SMTF (Standard Mathematical Tables and Formula)
>>>>>
>>>>> I put the ~700 integrals in CRC's SMTF into a format from which
>>>>> (A) they could be typeset in LaTeX
>>>>> (B) they could be converted into Mathematica (which either did a
>>>>> symbolic or numeric computation) - and this was done
>>>>>
>>>>> I let Richard Fateman use them for his experiments.
>>>>>
>>>>>
>>>>> (2) Elsevier's GR (Gradshteyn and Ryzhik's "Table of Integrals,
>>>>> Series, and Products")
>>>>>
>>>>> I put the ~12,000 (if my memory is correct) integrals into a format
>>>>> from which
>>>>> (A) they could be beautifully typeset in LaTeX
>>>>> (B) they could be converted into Mathematica - and this was NOT done
>>>>> Enclosed is a PDF file describing the work and the resulting format.
>>>>>
>>>>>
>>>>> A different format was used for SMTF and GR.
>>>>> While the SMTF work was not too arduous, the GR work was more than I
>>>>> had anticipated.
>>>>> The input (the previous version of GR) had little syntactic structure
>>>>> and it took much effort to get it into shape.
>>>>> I used (many different) regular expressions (in perl) to translate the
>>>>> bulk of the book, and then lots of hand tuning.
>>>>>
>>>>> While I think you are well beyond my thinking on these topics, please
>>>>> let me know if I can help.
>>>>> I am friends with Howard Cohl at NIST, who may be the current lead for
>>>>> DLMF ("Digital Library of Mathematical Functions" at dlmf.nist.gov).
>>>>> Let me know if you need an introduction.
>>>>>
>>>>>
>>>>> Dan Zwillingerzwilling@az-tec.com617-388-2382
>>>>>
>>>>> On 8/20/2016 11:30 PM, Tim Daly wrote:
>>>>>
>>>>> The game is to define latex markup that is transparent to the syntax
>>>>> but adds semantics for post processing.
>>>>>
>>>>> Some simple tests show that this works. Suppose selatex.sty contains:
>>>>>
>>>>> \newcommand{\INT}[1]{#1}
>>>>> \newcommand{\VARIABLE}[1]{#1}
>>>>> \newcommand{\POLY}[1]{#1}
>>>>> \newcommand{\INTEG}[2]{\int{#1}}
>>>>>
>>>>> This defines 4 new latex markups. The number in the square brackets
>>>>> defines the number of expected arguments. The brace argument
>>>>> delimites the characters that will occur during expansion with the #1
>>>>> replaced by the first argument.
>>>>>
>>>>> (As an aside, INT, VARIABLE, and POLY just happen to be valid
>>>>> Axiom domain abbreviations, hence the name choice. This choice
>>>>> of names gives grounding to the semantics.)
>>>>>
>>>>> Notice that \INTEG takes two arguments but will display only one.
>>>>> This allows the variable of integration to be passed in the semantics
>>>>> without showing up in the output. This allows the semantics to carry
>>>>> additional, non-display information needed by the CAS.
>>>>>
>>>>> Some examples follow.
>>>>>
>>>>> An integer 3 can be wrapped as \INT{3} but will still display as 3.
>>>>>
>>>>> A variable x can be wrapped as \VARIABLE{x}, displayed as x.
>>>>>
>>>>> $\POLY{\INT{3}\VARIABLE{x}}$ will display as 3*x
>>>>>
>>>>> $\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x} will be the same result
>>>>> as $\int{3x~dx}$, that is, an
>>>>>   (integralsign) 3x dx
>>>>> but notice that the variable of integration is in the semantic markup.
>>>>>
>>>>> These trivial macros can be made less verbose and certainly
>>>>> more clever but that's not the point being made here.
>>>>>
>>>>> A 'weaver' program would see the integration expression as
>>>>>
>>>>> $\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x}$
>>>>>
>>>>> with all of the semantic tags. The weaver's job is to rewrite this
>>>>> expression into an inputform for the CAS. In Axiom that would be
>>>>>
>>>>> integrate(3*x,x)
>>>>>
>>>>> The semantics markup makes the display pretty and the semantic
>>>>> parsing possible. Depending on the system, more or less parsing
>>>>> markup can exist. Axiom, for example, would not need the \INT or
>>>>> \VARIABLE to get a correct parse so the expression could be
>>>>> $\INTEG{3x~dx}{x}$
>>>>>
>>>>> This validates the fundamental idea.
>>>>>
>>>>> The next step is to write a simple weaver program. The clever path
>>>>> would be to embed a declarative form of the parser syntax (BNF?)
>>>>> as comments in selatex.sty. That way the latex semantics and the
>>>>> weaver syntax are kept in sync.
>>>>>
>>>>> Weaver would read the BNF comments from selatex.sty and
>>>>> the formula with semantic markup as input and parse the semantic
>>>>> markup into inputforms. (Wish I thought of this homework problem
>>>>> when I taught the compiler course :-) ).
>>>>>
>>>>> Note that, depending on the BNF, weaver could be used to
>>>>> generate output for Maxima's tree-based representation.
>>>>>
>>>>> An alternative next step is to look at a CRC book, re-create the
>>>>> syntactic latex and then create the selatex.sty entries necessary
>>>>> to generate weaver input.
>>>>>
>>>>> Infinitesimal progress, but progress non-the-less.
>>>>>
>>>>> Tim
>>>>>
>>>>>
>>>>> On Fri, Aug 19, 2016 at 12:45 AM, Tim Daly <axiomcas@gmail.com> wrote:
>>>>>
>>>>>>
>>>>>> One of the Axiom project goals is to develop a "Computer Algebra Test
>>>>>> Suite" (CATS). Albert Rich has done this with RUBI and integration.
>>>>>> That
>>>>>> work is already partially in the test suite and work has been done on
>>>>>> the
>>>>>> pattern matching. Large datasets (like Kamke) are always welcome.
>>>>>> Some,
>>>>>> such as Schaums were hand-developed. This is tedious.
>>>>>>
>>>>>> As Axiom develops more explanations and documentation it would be
>>>>>> useful to execute the formulas directly so there is a local incentive
>>>>>> to be
>>>>>> clear about semantics.
>>>>>>
>>>>>> In the long term the hope is that we can just grab formulas directly
>>>>>> from
>>>>>> their sources (ala literate programming). Your work makes it plain
>>>>>> that raw
>>>>>> latex does not carry sufficient semantics. There is a global question
>>>>>> of
>>>>>> how to make this work. Unfortunately a general cross-platform solution
>>>>>> is difficult (cite Dewar/Davenport/et al. for OpenMath).
>>>>>>
>>>>>> Since Axiom is literate and extracting formulas is trivial it seems
>>>>>> that
>>>>>> literate markup is a natural goal. Since Axiom uses abstract algebra
>>>>>> as a scaffold the type tower already has a lot of axiomatic semantics.
>>>>>> The natural join of literate latex and abstract algebra is clearly
>>>>>> semantic markup, aka selatex.
>>>>>>
>>>>>> ===========
>>>>>> Consideration 10: semantic->inputform translation (weaver? :-) )
>>>>>>
>>>>>> >x and not x   has no particular meaning,  but if x is explicitly
>>>>>> true or false,
>>>>>> >Maxima simplifies it to false.  If SEALATEX has a semantics -- are
>>>>>> you
>>>>>> >defining yet another CAS?  Or perhaps you should link it 100% to
>>>>>> Axiom's
>>>>>> >semantics, which you presumably know about and can modify.
>>>>>>
>>>>>> I am NOT defining another CAS. The goal is a "well-designed hack"
>>>>>> using
>>>>>> universally understood latex, a latex package, and a translation
>>>>>> program.
>>>>>>
>>>>>> The selatex idea is only partially Axiom specific. \INT, for
>>>>>> instance, seems
>>>>>> pretty generic. However, if the idea is to read formulas and
>>>>>> disambiguate
>>>>>> a=b (boolean) vs a=b (equation) then the markup needs to be grounded
>>>>>> to have meaning. Axiom's domains (BOOLEAN) and (EQ) as the ground
>>>>>>
>>>>>> \BOOLEAN(a=b)
>>>>>> \EQ(a=b)
>>>>>>
>>>>>> are unambiguous relative to each other in Axiom. I don't know enough
>>>>>> about Maxima to understand how this might translate.
>>>>>>
>>>>>> The extracted formulas with the decorated semantics still needs a
>>>>>> semantics->inputform (weaver) pre-processor which could be Maxima
>>>>>> specific. This would lead to debate about what "equality" means, of
>>>>>> course.
>>>>>>
>>>>>> Axiom has tried to create a first-order "rosetta stone" to translate
>>>>>> between
>>>>>> systems (rosetta.pdf [1]) but it is too shallow to consider providing
>>>>>> cross-platform semantics.
>>>>>>
>>>>>> =============
>>>>>> Consideration 11: \scope in selatex
>>>>>>
>>>>>> >As far as recording stuff in DLMF -- there are presumably scope
>>>>>> issues
>>>>>> >("in this chapter n,m are natural numbers....")  and maybe even a
>>>>>> need
>>>>>> >to make value assignments.
>>>>>> >I think you need to model these in SEALATEX too.
>>>>>>
>>>>>> (See Consideration 6)
>>>>>>
>>>>>> Clearly there are scoping issues. My current thinking is to create a
>>>>>> \scope markup that would manage the environment(s). This is not
>>>>>> a new issue (see "Lisp in Small Pieces" [0])
>>>>>>
>>>>>> There seem to be three concerns.
>>>>>>
>>>>>> First is the scope name, with something like 'global' as a keyword.
>>>>>> Second is the "closure chain" of other scopes.
>>>>>> Third is the symbol being scoped.
>>>>>>
>>>>>> \scope{name}{chain}{symbol}
>>>>>>
>>>>>> The weaver program would walk this chain to create the proper
>>>>>> file syntax for system input.
>>>>>>
>>>>>> ============
>>>>>> Consideration 12: System specific commands \axiom
>>>>>>
>>>>>> Along with the formulas it is clear that some system specific
>>>>>> input may be required, such as loading files, clearing workspaces,
>>>>>> etc. Some of these may be done in the weaver program, such as
>>>>>> between formulas. Others may need to be added to the semantics
>>>>>> block. So a markup that provides verbatim quoting per system
>>>>>> might be defined, e.g.
>>>>>>
>>>>>> \axiom{)clear all}  %clear the workspace
>>>>>>
>>>>>> which would simply quote an input line.
>>>>>>
>>>>>> ==============
>>>>>>
>>>>>> Note that so far all that is being suggested is transparent formula
>>>>>> markups which do not impact the presentation, some special tags
>>>>>> (\scope, \axiom,...) and a weaver program, along with the ability to
>>>>>> read the latex and extract named formulas (aka a literate program,
>>>>>> which Axiom already can do).
>>>>>>
>>>>>> It ought to be possible (by design) to create a semantic version of
>>>>>> CRC that any system could import, assuming a "sufficiently clever
>>>>>> weaver".
>>>>>>
>>>>>> On a more ambitious note, I am trying to find a way to keep the
>>>>>> selatex
>>>>>> markup "hidden" in a pdf and use it as the clipboard paste when the
>>>>>> formula is selected. Anyone with a clue, please help.
>>>>>>
>>>>>> ===============
>>>>>>
>>>>>> [0] Queinnec, Christopher, "Lisp in Small Pieces" ISBN 978-0521545662
>>>>>> (2003)
>>>>>>
>>>>>> [1] Wester, Michael J. and Daly, TImothy "Rosetta"
>>>>>> http://axiom-developer.org/axiom-website/rosetta.pdf
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Thu, Aug 18, 2016 at 5:30 PM, Richard Fateman <
>>>>>> fateman@berkeley.edu> wrote:
>>>>>>
>>>>>>> thanks for all the references :)
>>>>>>>
>>>>>>> I'm not sure if I'm going to repeat comments I  made already
>>>>>>> somewhere.
>>>>>>> First,  has Dan Zwillinger weighed in?  I think that it would be
>>>>>>> useful
>>>>>>> to see what he has done.
>>>>>>>
>>>>>>> Next, there are ambiguities among CAS and even within a single CAS.
>>>>>>>
>>>>>>> For example, in Macsyma/ Maxima  there is generally no semantics
>>>>>>> associated with "=" or ">".   But in some contexts, there is some
>>>>>>> meaning.
>>>>>>>
>>>>>>> x>2*y
>>>>>>>
>>>>>>> is a tree expression.  It is not associated with x or with y.
>>>>>>>
>>>>>>> assume(x>2*y)   does mean something ... it puts info in a database.
>>>>>>> Somehow encoding the method to extract this information into SEALATEX
>>>>>>> (SeLaTeX?) in a CAS-independent way -- that's quite a task.   In
>>>>>>> particular, it would seem to require an understanding of what
>>>>>>> assume()
>>>>>>> does in Maxima, and what is() does also.
>>>>>>>
>>>>>>> x and not x   has no particular meaning,  but if x is explicitly
>>>>>>> true or false,
>>>>>>> Maxima simplifies it to false.  If SEALATEX has a semantics -- are
>>>>>>> you
>>>>>>> defining yet another CAS?  Or perhaps you should link it 100% to
>>>>>>> Axiom's
>>>>>>> semantics, which you presumably know about and can modify.
>>>>>>>
>>>>>>> As far as recording stuff in DLMF -- there are presumably scope
>>>>>>> issues
>>>>>>> ("in this chapter n,m are natural numbers....")  and maybe even a
>>>>>>> need
>>>>>>> to make value assignments.
>>>>>>> I think you need to model these in SEALATEX too.
>>>>>>>
>>>>>>> Just musing about where you are heading.
>>>>>>>
>>>>>>> RJF
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 8/18/2016 11:45 AM, Tim Daly wrote:
>>>>>>>
>>>>>>> Fateman [0] raised a set of issues with the OpenMath
>>>>>>> approach. We are not trying to be cross-platform in this
>>>>>>> effort. Axiom does provide an algebraic scaffold so it is
>>>>>>> possible that the selatex markup might be useful elsewhere
>>>>>>> but that is not a design criterion.
>>>>>>>
>>>>>>> Fateman[1] also raises some difficult cross-platform issues
>>>>>>> that are not part of this design.
>>>>>>>
>>>>>>> Fateman[2] shows that parsing tex with only syntactic markup
>>>>>>> succeeded on only 43% of 10740 inputs. It ought to be posible
>>>>>>> to increase this percentage given proper semantic markup.
>>>>>>> (Perhaps there should be a competition similar to the deep
>>>>>>> learning groups? PhDs have been awarded on incremental
>>>>>>> improvements of the percentage)
>>>>>>>
>>>>>>> This is a design-by-crawl approach to the semantic markup
>>>>>>> idea. The hope is to get something running this week that
>>>>>>> 'works' but giving due consideration to global and long-term
>>>>>>> issues. A first glance at CRC/NIST raises more questions
>>>>>>> than answers as is usual with any research.
>>>>>>>
>>>>>>> It IS a design goal to support a Computer Algebra Test Suite
>>>>>>> (http://axiom-developer.org/axiom-website/CATS). It is very
>>>>>>> tedious to hand construct test suites. It will be even more
>>>>>>> tedious to construct them "second-level" by doing semantic
>>>>>>> markup and then trying to use them as input, but the hope is
>>>>>>> that eventually the CRC/NIST/G&R, etc will eventually be
>>>>>>> published with semantics so computational mathematics can
>>>>>>> stop working from syntax.
>>>>>>>
>>>>>>> ===========
>>>>>>> Consideration 4: I/O transparency
>>>>>>>
>>>>>>> Assume for the moment that we take a latex file containing
>>>>>>> only formulas. We would like to be able to read this file so
>>>>>>> it has computational mathematics (CM) semantics.
>>>>>>>
>>>>>>> It is clear that there needs to be semantic tags that carry the
>>>>>>> information but these tags have to be carefully designed NOT
>>>>>>> to change the syntactic display. They may, as noted before,
>>>>>>> require multiple semantic versions for a single syntax.
>>>>>>>
>>>>>>> It is also clear that we would like to be able to output formulas
>>>>>>> with CM semantics where currently we only output syntax.
>>>>>>>
>>>>>>> ===========
>>>>>>> Consideration 5: I/O isomorphism
>>>>>>>
>>>>>>> An important property of selatex is an isomorphism with
>>>>>>> input/output. Axiom allows output forms to be defined for a
>>>>>>> variety of targets so this does not seem to be a problem. For
>>>>>>> input, however, this means that the reader has to know how
>>>>>>> to expand \INT{3} into the correct domain. This could be done
>>>>>>> with a stand-alone pre-processor from selatex->inputform.
>>>>>>>
>>>>>>> It should be possible to read-then-write an selatex formula,
>>>>>>> or write-then-read an selatex formula with identical semantics.
>>>>>>>
>>>>>>> That might not mean that the I/O is identical though due to
>>>>>>> things like variable ordering, etc.
>>>>>>>
>>>>>>> ===========
>>>>>>> Consideration 6: Latex semantic macros
>>>>>>>
>>>>>>> Semantic markup would be greatly simplified if selatex provided
>>>>>>> a mechanism similar to Axiom's ability to define types "on the fly"
>>>>>>> using either assignment
>>>>>>>
>>>>>>>    TYP:=FRAC(POLY(INT))
>>>>>>>
>>>>>>> or macro form
>>>>>>>
>>>>>>>    TYP ==> FRAC(POLY(INT))
>>>>>>>
>>>>>>> Latex is capable of doing this and selatex should probably include
>>>>>>> a set of pre-defined common markups, such as
>>>>>>>
>>>>>>>   \FRINT ==> \FRAC\INT
>>>>>>>
>>>>>>> ===========
>>>>>>> Consideration 7: selatex \begin{semantic} environment?
>>>>>>>
>>>>>>> Currently Axiom provides a 'chunk' environment which surrounds
>>>>>>> source code. The chunks are named so they can be extracted
>>>>>>> individually or in groups
>>>>>>>
>>>>>>>    \begin{chunk}{a name for the chunk}
>>>>>>>       anything
>>>>>>>    \end{chunk}
>>>>>>>
>>>>>>> We could provide a similar environment for semantics such as
>>>>>>>
>>>>>>>   \begin{semantics}{a name for the block}
>>>>>>>   \end{semantics}
>>>>>>>
>>>>>>> which would provide a way to encapsulate markup and also allow
>>>>>>> a particular block to be extracted in literate programming style.
>>>>>>>
>>>>>>> ===========
>>>>>>> Consideration 8: Latex-time processing
>>>>>>>
>>>>>>> Axiom currently creates specific files using \write to create
>>>>>>> intermediate files (e.g. for tables). This technique can be used
>>>>>>> to enhance latex-time debugging (where did it fail?).
>>>>>>>
>>>>>>> It can be used to create Axiom files which pre-construct domains
>>>>>>> needed when the input file with semantic markup is read.
>>>>>>>
>>>>>>> This would help a stand-alone selatex->inputform preprocessor.
>>>>>>>
>>>>>>> ===========
>>>>>>> Consideration 9: Design sketches
>>>>>>>
>>>>>>> It is all well-and-good to hand-wave at this idea but a large
>>>>>>> amount of this machinery already exists.
>>>>>>>
>>>>>>> It would seem useful to develop an incremental test suite that
>>>>>>> starts with "primitive" domains (e.g. INT), creating selatex I/O.
>>>>>>>
>>>>>>> Once these are in place we could work on "type tower" markup
>>>>>>> such as \FRAC\INT or \POLY\COMPLEX\FLOAT.
>>>>>>>
>>>>>>> Following that might be pre-existing latex functions like \int, \sum,
>>>>>>> \cos, etc.
>>>>>>>
>>>>>>> To validate these ideas Axiom will include an selatex.sty file and
>>>>>>> some unit tests files on primitive domain markup. That should be
>>>>>>> enough to start the bikeshed discussions.
>>>>>>>
>>>>>>> Ideas? Considerations? Suggestions?
>>>>>>>
>>>>>>> Tim
>>>>>>>
>>>>>>> [0] Fateman, Richard J.
>>>>>>> "A Critique of OpenMath and Thoughts on
>>>>>>> Encoding Mathematics, January, 2001"
>>>>>>> https://people.eecs.berkeley.edu/~fateman/papers/openmathcrit.pdf
>>>>>>>
>>>>>>> [1] Fateman, Richard J.
>>>>>>> "Verbs, Nouns, and Computer Algebra, or What's Grammar Got to
>>>>>>> do with Math? ", December 18, 2008
>>>>>>> https://people.eecs.berkeley.edu/~fateman/papers/nounverbmac.pdf
>>>>>>>
>>>>>>> [2] Fateman, Richard J.
>>>>>>> "Parsing TeX into Mathematics",
>>>>>>> https://people.eecs.berkeley.edu/~fateman/papers/parsing_tex.pdf
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>


\start
Date: Thu, 25 Aug 2016 13:13:31 +0000
From: William Sit <wsit@ccny.cuny.edu>
To: Tim Daly <axiomcas@gmail.com>, Dan Zwillinger <zwilling@az-tec.com>
Subject: Re: [Axiom-developer] Design Thoughts on Semantic Latex (SELATEX)
CC: Richard Fateman <fateman@berkeley.edu>, James Davenport
	<J.H.Davenport@bath.ac.uk>, "vdhoeven@lix.polytechnique.fr"
	<vdhoeven@lix.polytechnique.fr>, Mike Dewar <miked@nag.co.uk>, axiom-dev
	<axiom-developer@nongnu.org>, "albert_rich@msn.com" <albert_rich@msn.com>

Hi Tim:


Would it be simpler to only add semantic markups to algorithmic description=
s in papers? Authors can be asked to provide a separate chunk with [Axiom] =
semantic markups (in essence, a skeleton implementation or pseudo-code of t=
he algorithm involved---skeleton because the data structures of mathematica=
l objects are usually ignored in a math paper).  This would avoid having to=
 mess with the latex source (already hard to read sometimes) or to "weave" =
to remove the semantic markups to recapture the latex: all that is needed w=
ould be to ignore the semantic chunk). Put another way, the semantic chunk =
is a direct (by hand or automatic) translation of the latex version of an a=
lgorithm chunk.


Also, what would be the scope of the added semantic macros in LaTeX (like \=
AD, \INT)? Can their scope be limited only to semantic chunks?


William


William Sit
Professor Emeritus
Department of Mathematics
The City College of The City University of New York
New York, NY 10031
homepage: wsit.ccny.cuny.edu
________________________________
From: Axiom-developer <axiom-developer-bounces+wyscc=3Dsci.ccny.cuny.edu@no=
ngnu.org> on behalf of Tim Daly <axiomcas@gmail.com>
Sent: Thursday, August 25, 2016 6:17 AM
To: Dan Zwillinger
Cc: Richard Fateman; James Davenport; vdhoeven@lix.polytechnique.fr; Mike D=
ewar; axiom-dev; albert_rich@msn.com
Subject: Re: [Axiom-developer] Design Thoughts on Semantic Latex (SELATEX)

My initial approach was too heavy-handed and Axiom specific.

It seems the semantic markup task can be viewed as an editor
task. Editors don't care about semantics, they just work on text.
Viewed this way the markup's only function is decoration for
post-processing. It is (mostly) system independent.

The edit tasks seem to be {delete, insert, replace} and some
post-markup hints {function, type}

The delete markup tells weaver to remove the latex completely.
This is useful for things like {dx}

The insert markup adds missing semantic text, such as {*} which
is needed to indicate multiplication.

The replace markup gives alternate text for weaver, for things where
the function name might differ, e.g. \int -> integrate

The function markup names a function that weaver should call
which allows special handling in post-processing. It can be any
s-expression (the weaver implementation is currently lisp-based).

The type markup passes type information to weaver so Axiom
knows the target type, useful for things like matrix.

The macros are

\newcommand{\AD}[1]{#1}% delete
\newcommand{\AI}[1]{}% insert
\newcommand{\AR}[2]{#1}% replace

\newcommand{\AF}[2]{#1}% function
\newcommand{\AT}[2]{#1}% type

Note that \AI outputs nothing, so 3\AI{*}x =3D=3D 3x to latex.

\AD tells weaver to delete the text, e.g. {\AD ~dx} =3D=3D ~dx to latex

\AR tells weaver to replace the text e.g. {\AR \pi}{\%pi}

\AF tells weaver to call a function, e.g. one that knows how to
rewrite the input in a special way, or does tracing, etc.

\AT adds target type information for Axiom
e.g. \AT{3x+6}{POLY(INT)} =3D=3D 3x+6 to latex but passes it as
a Polynomial(Integer) to Axiom

For example,

$\int{\frac{dx}{ax*b}}$

becomes

$\AT{\AR{\int}{integrate}{\frac{\AD{dx}}{a\AI{*)x+b}}}{EXPR}{INT}}$

telling weaver that the target type (AT) is EXPR(INT),
the \int is really integrate
the dx is to be ignored and
the ax+b should read a*x+b

There is an obvious tradeoff of markup vs weaver.
For example. \int might be known to weaver.
Or expressions might call an equation rewriter to add {*}

The markup could vary from almost nothing to massive detail
depending on the downstream cleverness.

This initial markup set seems sufficient to handle every task
that requires semantics markup so far. The overhead seems
small and the gain seems large.

Now the only problem is post-processing the latex. Sigh.

There is no such thing as a simple job.

Tim


On Tue, Aug 23, 2016 at 7:27 PM, Tim Daly <axiomcas@gmail.com<mailto:axiomc=
as@gmail.com>> wrote:
For those of you at home wishing to play along, there is a
selatex.test1 file at
http://axiom-developer.org/axiom-website/selatex.test1
containing 620 integrals.

Each line is a call of the form

  weaver(latex-string,axiom-string)

The goal is to transform the latex into Axiom.

Implicit is the idea that weaver will use the selatex tokens
to disambiguate the input. The current file has no selatex
tokens. They will be added as needed. The idea is to keep
the problem simple by adding print-invisible sematics to the
latex-string. In the ideal case the weaver program is trivial,
as is the markup. Any tradeoff should prioritize simplicity.
Another priority is to align the semantic markup with
Axiom domains in order to ground the semantics with code.

Once all of these calls translate correctly the Axiom output
routines need to output the latex-string with the added
semantic markup so the mapping is bi-directional.

The current file only looks at integration as I already have
the latex->axiom text available. Future test files will look
at other areas of interest. The long term goal is to parse
NIST/CRC/etc formulas.

Tim


On Sun, Aug 21, 2016 at 11:02 PM, Tim Daly <axiomcas@gmail.com<mailto:axiom=
cas@gmail.com>> wrote:
Dan,

While paging through the CRC 31st Standard Mathematical
Tables I landed on page 219, section 3.4.1.2 Graph Invariants.

It would be a vast improvement if there were algorithms
associated with these invariants. Clearly they exist somewhere.

To "cross the gap" between tables and computational mathematics
it would be valuable to include implementations of these invariants.

It is hard to walk away from that page. An Axiom implementation
would be fun to write, especially given the next section that lists
different kinds of graphs which, presumably, would all have the
invariants. Even better, the graph algorithms are likely good
candidates for proof technology (ACL2 if done in Lisp, COQ if
done in Spad). Lisp has the advantage of an ANSI standard.

It seems worthwhile to take sections like this, expand them
across computational and proof tools, and publish them in a
form that is generally useful. It is "nice to know" that a graph
has a radius but it would be even better if I could "just point and
click" to import the algorithm.

Axiom has been pushing literate programming for years. The
tools exist to "make it so", as the saying goes.

Tim




On Sun, Aug 21, 2016 at 10:40 PM, Tim Daly <axiomcas@gmail.com<mailto:axiom=
cas@gmail.com>> wrote:
Like any research problem it is a struggle to get a useful grip on this.
Looking at G&R (I just ordered the latest, mine is 4th edition), the
task quickly gets out of hand.

The CATS tests in the past were created by reading the printed latex
in various volumes and hand-translating them to Axiom input.

It is not difficult to re-create the latex input for these examples.
Doing so and combining the results gives a set of examples with
matching input latex and output Axiom. The homework problem is
to write the necessary markup and weaver.

It is immediately obvious that this is more challenging than it seems.
For example, when writing y'(x)=3D0, Axiom needs y:=3Doperator 'y
so it knows about the symbol as an operator. This falls under
"Consideration 12: System Specific Commands"... which implies
that the latex environment and quoting macros have to be
implemented. Sigh.

There is no such thing as a simple job.

Anyway, at least there is a way to make a proof of concept
prototype that reproduces existing results.

Tim


On Sun, Aug 21, 2016 at 4:17 PM, Tim Daly <axiomcas@gmail.com<mailto:axiomc=
as@gmail.com>> wrote:
Dan,

Welcome.

Re: Howard Cohl. Yes, I'd like an introduction. It seems important to
make DLMF, CRC, and other sources contain enough semantics that
they can be read by a computer algebra system. There are an
enormous number of issues, such as what to do with functions
unknown to the CAS, which need to be thought through.

I believe that NIST/CRC/G&R collections with semantic markup will
have a great normalizing effect on CAS development since it will raise
cross-platform questions like "What percent of G&R do you handle?".
Albert Rich (RUBI)[0] has been doing this for integration using patterns.
This can only benefit computational mathematics in the long term.

I've also campaigned for associating algorithms with published tables.
It is important in the long term to have reference versions. The ACM
used to do this years ago. I'd like to see a Gruntz algorithm for limits
where it can be applied, for instance. It would also provide a focus on
"missing algorithms" or edge cases. Davenport/Trager/Bronstein
algorithms promise a decision procedure but there are no existing
complete implementations. The tables could highlight missing cases,
giving focus to efforts to complete the procedure.

It will also put back-pressure on the tables to define different versions
of the same formulas based on domains (C, R, etc).


"The GR work was more than I had anticipated"... wins the award for
understatement of the decade.

The goal of this effort is to make it possible to read those
formulas directly into a CAS. Axiom is my primary target but
it should be done in a somewhat system agnostic form.

I've spent well over a year creating the computer algebra test suite.
It would be so much easier and more useful if the original sources
could be read directly.

I read your paper. There is an interesting mix of syntax and semantics.

I guess the difference in this effort is that the semantic markup is
intended to be transparent and grounded. The transparent aspect
keeps the tables unchanged in print form. The grounded aspect keeps
the semantics based on some algorithmic base. This implies, of
course, that there IS an algorithmic base which does not yet exist
for some of the work.

As you can see from the CATS work I've been trying to validate
Axiom's results with respect to published texts. This has found both
Axiom bugs and misprints in published texts.

The Kamke[1] suite was the first effort for differential equations.

The Spiegel[2] chapter 14 on indefinite integrals for integration.

The von Seggern[3] book on curves and surfaces for graphics.

The Legendre and Grazini[4] on Pasta by Design for 3D graphics.

The RUBI work on integration.

and, currently I'm re-creating the numerics that were lost when NAG
released the open source version, leaving me swimming through
Luke's[5] Algorithms book.

which, to quote a famous phrase "was more than I had anticipated".

Your Handbook of Integration[6] has a section on various known
"Caveats, How an integration result may be incorrect". This raises the
wonderful topic of branch cuts yet again. I did some testing and it
seems that Axiom and Mathematica share one set while Maple and
Maxima share another.

All of which leads to a need to create better reference materials that
are generally available (unlike the ACM algorithms for non-paying
customers) and directly useful for computational mathematics.

The current plan is to take some tables, find or re-create the latex,
invent a semantic markup, and then write the "weaver". At this point
the research is still at the "proof of concept" stage. (tex formula
sources are most welcome).

Ultimately I'd really like to see a book of formulas and algorithms
that I can just drag-and-drop into Axiom and be able to use them
without lifetimes of work.

Actually, that 's only the penultimate goal. I have augmented
Axiom to include proofs (ACL2,COQ) so I'd also like to see proofs,
(this IS mathematics, after all) but maybe we'll leave that for
next month :-)

Tim

[0] Rich, Albert "Rule-based Mathematics"
http://www.apmaths.uwo.ca/~arich/

[1] Kamke. E. "Differentialgleichungen Losungsmethoden und Losungen"
Chelsea Publishing Company, New York, 1959

[2] Spiegel, Murray R. "Mathematical Handbook", Schaum's Outline
Series; McGraw-Hill Book Company 1968

[3] von Seggern, David "CRC Standard Curves and Surfaces",
CRC Press, 1993 ISBN 0-8493-0196-3

[4] Legendre, George L. and Grazini, Stefano "Pasta by Design",
Thames and Hudson, 2001

[5] Luke, Yudell "Algorithms for the Computation of Mathematical
Functions", Academic Press, 1977 ISBN 0-12-459940-6

[6] Zwillinger, Daniel "Handbook of Integration" Jones and Bartlett,
London, 1992



On Sun, Aug 21, 2016 at 10:16 AM, Dan Zwillinger <zwilling@az-tec.com<mailt=
o:zwilling@az-tec.com>> wrote:

All

I began reading this topic's emails when they first appeared, and then fell=
 behind.
Sorry for my late comments.

I admire your efforts.
They may be somewhat related to what I have done in the past.
My experience is as follows:

(1) CRC SMTF (Standard Mathematical Tables and Formula)

I put the ~700 integrals in CRC's SMTF into a format from which
(A) they could be typeset in LaTeX
(B) they could be converted into Mathematica (which either did a symbolic o=
r numeric computation) - and this was done

I let Richard Fateman use them for his experiments.


(2) Elsevier's GR (Gradshteyn and Ryzhik's "Table of Integrals, Series, and=
 Products")

I put the ~12,000 (if my memory is correct) integrals into a format from wh=
ich
(A) they could be beautifully typeset in LaTeX
(B) they could be converted into Mathematica - and this was NOT done
Enclosed is a PDF file describing the work and the resulting format.


A different format was used for SMTF and GR.
While the SMTF work was not too arduous, the GR work was more than I had an=
ticipated.
The input (the previous version of GR) had little syntactic structure and i=
t took much effort to get it into shape.
I used (many different) regular expressions (in perl) to translate the bulk=
 of the book, and then lots of hand tuning.

While I think you are well beyond my thinking on these topics, please let m=
e know if I can help.
I am friends with Howard Cohl at NIST, who may be the current lead for DLMF=
 ("Digital Library of Mathematical Functions" at dlmf.nist.gov<http://dlmf.=
nist.gov>).
Let me know if you need an introduction.



Dan Zwillinger
zwilling@az-tec.com<mailto:zwilling@az-tec.com>
617-388-2382<tel:617-388-2382>

On 8/20/2016 11:30 PM, Tim Daly wrote:
The game is to define latex markup that is transparent to the syntax
but adds semantics for post processing.

Some simple tests show that this works. Suppose selatex.sty contains:

\newcommand{\INT}[1]{#1}
\newcommand{\VARIABLE}[1]{#1}
\newcommand{\POLY}[1]{#1}
\newcommand{\INTEG}[2]{\int{#1}}

This defines 4 new latex markups. The number in the square brackets
defines the number of expected arguments. The brace argument
delimites the characters that will occur during expansion with the #1
replaced by the first argument.

(As an aside, INT, VARIABLE, and POLY just happen to be valid
Axiom domain abbreviations, hence the name choice. This choice
of names gives grounding to the semantics.)

Notice that \INTEG takes two arguments but will display only one.
This allows the variable of integration to be passed in the semantics
without showing up in the output. This allows the semantics to carry
additional, non-display information needed by the CAS.

Some examples follow.

An integer 3 can be wrapped as \INT{3} but will still display as 3.

A variable x can be wrapped as \VARIABLE{x}, displayed as x.

$\POLY{\INT{3}\VARIABLE{x}}$ will display as 3*x

$\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x} will be the same result
as $\int{3x~dx}$, that is, an
  (integralsign) 3x dx
but notice that the variable of integration is in the semantic markup.

These trivial macros can be made less verbose and certainly
more clever but that's not the point being made here.

A 'weaver' program would see the integration expression as

$\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x}$

with all of the semantic tags. The weaver's job is to rewrite this
expression into an inputform for the CAS. In Axiom that would be

integrate(3*x,x)

The semantics markup makes the display pretty and the semantic
parsing possible. Depending on the system, more or less parsing
markup can exist. Axiom, for example, would not need the \INT or
\VARIABLE to get a correct parse so the expression could be
$\INTEG{3x~dx}{x}$

This validates the fundamental idea.

The next step is to write a simple weaver program. The clever path
would be to embed a declarative form of the parser syntax (BNF?)
as comments in selatex.sty. That way the latex semantics and the
weaver syntax are kept in sync.

Weaver would read the BNF comments from selatex.sty and
the formula with semantic markup as input and parse the semantic
markup into inputforms. (Wish I thought of this homework problem
when I taught the compiler course :-) ).

Note that, depending on the BNF, weaver could be used to
generate output for Maxima's tree-based representation.

An alternative next step is to look at a CRC book, re-create the
syntactic latex and then create the selatex.sty entries necessary
to generate weaver input.

Infinitesimal progress, but progress non-the-less.

Tim


On Fri, Aug 19, 2016 at 12:45 AM, Tim Daly <axiomcas@gmail.com<mailto:axiom=
cas@gmail.com>> wrote:

One of the Axiom project goals is to develop a "Computer Algebra Test
Suite" (CATS). Albert Rich has done this with RUBI and integration. That
work is already partially in the test suite and work has been done on the
pattern matching. Large datasets (like Kamke) are always welcome. Some,
such as Schaums were hand-developed. This is tedious.

As Axiom develops more explanations and documentation it would be
useful to execute the formulas directly so there is a local incentive to be
clear about semantics.

In the long term the hope is that we can just grab formulas directly from
their sources (ala literate programming). Your work makes it plain that raw
latex does not carry sufficient semantics. There is a global question of
how to make this work. Unfortunately a general cross-platform solution
is difficult (cite Dewar/Davenport/et al. for OpenMath).

Since Axiom is literate and extracting formulas is trivial it seems that
literate markup is a natural goal. Since Axiom uses abstract algebra
as a scaffold the type tower already has a lot of axiomatic semantics.
The natural join of literate latex and abstract algebra is clearly
semantic markup, aka selatex.

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Consideration 10: semantic->inputform translation (weaver? :-) )

>x and not x   has no particular meaning,  but if x is explicitly true or f=
alse,
>Maxima simplifies it to false.  If SEALATEX has a semantics -- are you
>defining yet another CAS?  Or perhaps you should link it 100% to Axiom's
>semantics, which you presumably know about and can modify.

I am NOT defining another CAS. The goal is a "well-designed hack" using
universally understood latex, a latex package, and a translation program.

The selatex idea is only partially Axiom specific. \INT, for instance, seem=
s
pretty generic. However, if the idea is to read formulas and disambiguate
a=3Db (boolean) vs a=3Db (equation) then the markup needs to be grounded
to have meaning. Axiom's domains (BOOLEAN) and (EQ) as the ground

\BOOLEAN(a=3Db)
\EQ(a=3Db)

are unambiguous relative to each other in Axiom. I don't know enough
about Maxima to understand how this might translate.

The extracted formulas with the decorated semantics still needs a
semantics->inputform (weaver) pre-processor which could be Maxima
specific. This would lead to debate about what "equality" means, of course.

Axiom has tried to create a first-order "rosetta stone" to translate betwee=
n
systems (rosetta.pdf [1]) but it is too shallow to consider providing
cross-platform semantics.

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Consideration 11: \scope in selatex

>As far as recording stuff in DLMF -- there are presumably scope issues
>("in this chapter n,m are natural numbers....")  and maybe even a need
>to make value assignments.
>I think you need to model these in SEALATEX too.

(See Consideration 6)

Clearly there are scoping issues. My current thinking is to create a
\scope markup that would manage the environment(s). This is not
a new issue (see "Lisp in Small Pieces" [0])

There seem to be three concerns.

First is the scope name, with something like 'global' as a keyword.
Second is the "closure chain" of other scopes.
Third is the symbol being scoped.

\scope{name}{chain}{symbol}

The weaver program would walk this chain to create the proper
file syntax for system input.

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Consideration 12: System specific commands \axiom

Along with the formulas it is clear that some system specific
input may be required, such as loading files, clearing workspaces,
etc. Some of these may be done in the weaver program, such as
between formulas. Others may need to be added to the semantics
block. So a markup that provides verbatim quoting per system
might be defined, e.g.

\axiom{)clear all}  %clear the workspace

which would simply quote an input line.

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Note that so far all that is being suggested is transparent formula
markups which do not impact the presentation, some special tags
(\scope, \axiom,...) and a weaver program, along with the ability to
read the latex and extract named formulas (aka a literate program,
which Axiom already can do).

It ought to be possible (by design) to create a semantic version of
CRC that any system could import, assuming a "sufficiently clever
weaver".

On a more ambitious note, I am trying to find a way to keep the selatex
markup "hidden" in a pdf and use it as the clipboard paste when the
formula is selected. Anyone with a clue, please help.

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

[0] Queinnec, Christopher, "Lisp in Small Pieces" ISBN 978-0521545662
(2003)

[1] Wester, Michael J. and Daly, TImothy "Rosetta"
http://axiom-developer.org/axiom-website/rosetta.pdf




On Thu, Aug 18, 2016 at 5:30 PM, Richard Fateman <fateman@berkeley.edu<mail=
to:fateman@berkeley.edu>> wrote:
thanks for all the references :)

I'm not sure if I'm going to repeat comments I  made already somewhere.
First,  has Dan Zwillinger weighed in?  I think that it would be useful
to see what he has done.

Next, there are ambiguities among CAS and even within a single CAS.

For example, in Macsyma/ Maxima  there is generally no semantics
associated with "=3D" or ">".   But in some contexts, there is some meaning=
.

x>2*y

is a tree expression.  It is not associated with x or with y.

assume(x>2*y)   does mean something ... it puts info in a database.
Somehow encoding the method to extract this information into SEALATEX
(SeLaTeX?) in a CAS-independent way -- that's quite a task.   In
particular, it would seem to require an understanding of what assume()
does in Maxima, and what is() does also.

x and not x   has no particular meaning,  but if x is explicitly true or fa=
lse,
Maxima simplifies it to false.  If SEALATEX has a semantics -- are you
defining yet another CAS?  Or perhaps you should link it 100% to Axiom's
semantics, which you presumably know about and can modify.

As far as recording stuff in DLMF -- there are presumably scope issues
("in this chapter n,m are natural numbers....")  and maybe even a need
to make value assignments.
I think you need to model these in SEALATEX too.

Just musing about where you are heading.

RJF




On 8/18/2016 11:45 AM, Tim Daly wrote:
Fateman [0] raised a set of issues with the OpenMath
approach. We are not trying to be cross-platform in this
effort. Axiom does provide an algebraic scaffold so it is
possible that the selatex markup might be useful elsewhere
but that is not a design criterion.

Fateman[1] also raises some difficult cross-platform issues
that are not part of this design.

Fateman[2] shows that parsing tex with only syntactic markup
succeeded on only 43% of 10740 inputs. It ought to be posible
to increase this percentage given proper semantic markup.
(Perhaps there should be a competition similar to the deep
learning groups? PhDs have been awarded on incremental
improvements of the percentage)

This is a design-by-crawl approach to the semantic markup
idea. The hope is to get something running this week that
'works' but giving due consideration to global and long-term
issues. A first glance at CRC/NIST raises more questions
than answers as is usual with any research.

It IS a design goal to support a Computer Algebra Test Suite
(http://axiom-developer.org/axiom-website/CATS). It is very
tedious to hand construct test suites. It will be even more
tedious to construct them "second-level" by doing semantic
markup and then trying to use them as input, but the hope is
that eventually the CRC/NIST/G&R, etc will eventually be
published with semantics so computational mathematics can
stop working from syntax.

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Consideration 4: I/O transparency

Assume for the moment that we take a latex file containing
only formulas. We would like to be able to read this file so
it has computational mathematics (CM) semantics.

It is clear that there needs to be semantic tags that carry the
information but these tags have to be carefully designed NOT
to change the syntactic display. They may, as noted before,
require multiple semantic versions for a single syntax.

It is also clear that we would like to be able to output formulas
with CM semantics where currently we only output syntax.

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Consideration 5: I/O isomorphism

An important property of selatex is an isomorphism with
input/output. Axiom allows output forms to be defined for a
variety of targets so this does not seem to be a problem. For
input, however, this means that the reader has to know how
to expand \INT{3} into the correct domain. This could be done
with a stand-alone pre-processor from selatex->inputform.

It should be possible to read-then-write an selatex formula,
or write-then-read an selatex formula with identical semantics.

That might not mean that the I/O is identical though due to
things like variable ordering, etc.

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Consideration 6: Latex semantic macros

Semantic markup would be greatly simplified if selatex provided
a mechanism similar to Axiom's ability to define types "on the fly"
using either assignment

   TYP:=3DFRAC(POLY(INT))

or macro form

   TYP =3D=3D> FRAC(POLY(INT))

Latex is capable of doing this and selatex should probably include
a set of pre-defined common markups, such as

  \FRINT =3D=3D> \FRAC\INT

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Consideration 7: selatex \begin{semantic} environment?

Currently Axiom provides a 'chunk' environment which surrounds
source code. The chunks are named so they can be extracted
individually or in groups

   \begin{chunk}{a name for the chunk}
      anything
   \end{chunk}

We could provide a similar environment for semantics such as

  \begin{semantics}{a name for the block}
  \end{semantics}

which would provide a way to encapsulate markup and also allow
a particular block to be extracted in literate programming style.

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Consideration 8: Latex-time processing

Axiom currently creates specific files using \write to create
intermediate files (e.g. for tables). This technique can be used
to enhance latex-time debugging (where did it fail?).

It can be used to create Axiom files which pre-construct domains
needed when the input file with semantic markup is read.

This would help a stand-alone selatex->inputform preprocessor.

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Consideration 9: Design sketches

It is all well-and-good to hand-wave at this idea but a large
amount of this machinery already exists.

It would seem useful to develop an incremental test suite that
starts with "primitive" domains (e.g. INT), creating selatex I/O.

Once these are in place we could work on "type tower" markup
such as \FRAC\INT or \POLY\COMPLEX\FLOAT.

Following that might be pre-existing latex functions like \int, \sum,
\cos, etc.

To validate these ideas Axiom will include an selatex.sty file and
some unit tests files on primitive domain markup. That should be
enough to start the bikeshed discussions.

Ideas? Considerations? Suggestions?

Tim

[0] Fateman, Richard J.
"A Critique of OpenMath and Thoughts on
Encoding Mathematics, January, 2001"
https://people.eecs.berkeley.edu/~fateman/papers/openmathcrit.pdf<https://p=
eople.eecs.berkeley.edu/%7Efateman/papers/openmathcrit.pdf>

[1] Fateman, Richard J.
"Verbs, Nouns, and Computer Algebra, or What's Grammar Got to
do with Math? ", December 18, 2008
https://people.eecs.berkeley.edu/~fateman/papers/nounverbmac.pdf<https://pe=
ople.eecs.berkeley.edu/%7Efateman/papers/nounverbmac.pdf>

[2] Fateman, Richard J.
"Parsing TeX into Mathematics",
https://people.eecs.berkeley.edu/~fateman/papers/parsing_tex.pdf<https://pe=
ople.eecs.berkeley.edu/%7Efateman/papers/parsing_tex.pdf>


\start
Date: Thu, 25 Aug 2016 13:22:33 +0000
From: William Sit <wsit@ccny.cuny.edu>
To: Tim Daly <axiomcas@gmail.com>, Dan Zwillinger <zwilling@az-tec.com>
Subject: Re: [Axiom-developer] Design Thoughts on Semantic Latex (SELATEX)
CC: Richard Fateman <fateman@berkeley.edu>, James Davenport
	<J.H.Davenport@bath.ac.uk>, "vdhoeven@lix.polytechnique.fr"
	<vdhoeven@lix.polytechnique.fr>, Mike Dewar <miked@nag.co.uk>, axiom-dev
	<axiom-developer@nongnu.org>, "albert_rich@msn.com" <albert_rich@msn.com>

--_000_147213146015822792ccnycunyedu_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

4oCLSGkgVGltOg0KDQoNCkEgcXVlc3Rpb246IGhvdyB3b3VsZCB5b3UgaGFuZGxlIG92ZXJsb2Fk
aW5nIG9mIG9wZXJhdG9ycyBsaWtlICogKCJtdWx0aXBsaWNhdGlvbiIpIGluIGEgc2VtYW50aWMg
bWFyay11cD8gIE5lZWQgdGhlIG1hcmt1cCBiZSBhcyBkZXRhaWxlZCBhcyB0aGUgY29tcGlsZXIg
cmVxdWlyZXMgb3IganVzdCBzbG9wcHkgZW5vdWdoIHRoYXQgdGhlIGludGVycHJldGVyIGNhbiBm
aWd1cmUgb3V0IHRoZSBjb3JyZWN0IHNlbWFudGljPw0KDQoNCldpbGxpYW0NCg0KDQpXaWxsaWFt
IFNpdA0KUHJvZmVzc29yIEVtZXJpdHVzDQpEZXBhcnRtZW50IG9mIE1hdGhlbWF0aWNzDQpUaGUg
Q2l0eSBDb2xsZWdlIG9mIFRoZSBDaXR5IFVuaXZlcnNpdHkgb2YgTmV3IFlvcmsNCk5ldyBZb3Jr
LCBOWSAxMDAzMQ0KaG9tZXBhZ2U6IHdzaXQuY2NueS5jdW55LmVkdQ0KX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18NCkZyb206IEF4aW9tLWRldmVsb3BlciA8YXhpb20tZGV2ZWxvcGVy
LWJvdW5jZXMrd3lzY2M9c2NpLmNjbnkuY3VueS5lZHVAbm9uZ251Lm9yZz4gb24gYmVoYWxmIG9m
IFRpbSBEYWx5IDxheGlvbWNhc0BnbWFpbC5jb20+DQpTZW50OiBUaHVyc2RheSwgQXVndXN0IDI1
LCAyMDE2IDY6MTcgQU0NClRvOiBEYW4gWndpbGxpbmdlcg0KQ2M6IFJpY2hhcmQgRmF0ZW1hbjsg
SmFtZXMgRGF2ZW5wb3J0OyB2ZGhvZXZlbkBsaXgucG9seXRlY2huaXF1ZS5mcjsgTWlrZSBEZXdh
cjsgYXhpb20tZGV2OyBhbGJlcnRfcmljaEBtc24uY29tDQpTdWJqZWN0OiBSZTogW0F4aW9tLWRl
dmVsb3Blcl0gRGVzaWduIFRob3VnaHRzIG9uIFNlbWFudGljIExhdGV4IChTRUxBVEVYKQ0KDQpN
eSBpbml0aWFsIGFwcHJvYWNoIHdhcyB0b28gaGVhdnktaGFuZGVkIGFuZCBBeGlvbSBzcGVjaWZp
Yy4NCg0KSXQgc2VlbXMgdGhlIHNlbWFudGljIG1hcmt1cCB0YXNrIGNhbiBiZSB2aWV3ZWQgYXMg
YW4gZWRpdG9yDQp0YXNrLiBFZGl0b3JzIGRvbid0IGNhcmUgYWJvdXQgc2VtYW50aWNzLCB0aGV5
IGp1c3Qgd29yayBvbiB0ZXh0Lg0KVmlld2VkIHRoaXMgd2F5IHRoZSBtYXJrdXAncyBvbmx5IGZ1
bmN0aW9uIGlzIGRlY29yYXRpb24gZm9yDQpwb3N0LXByb2Nlc3NpbmcuIEl0IGlzIChtb3N0bHkp
IHN5c3RlbSBpbmRlcGVuZGVudC4NCg0KVGhlIGVkaXQgdGFza3Mgc2VlbSB0byBiZSB7ZGVsZXRl
LCBpbnNlcnQsIHJlcGxhY2V9IGFuZCBzb21lDQpwb3N0LW1hcmt1cCBoaW50cyB7ZnVuY3Rpb24s
IHR5cGV9DQoNClRoZSBkZWxldGUgbWFya3VwIHRlbGxzIHdlYXZlciB0byByZW1vdmUgdGhlIGxh
dGV4IGNvbXBsZXRlbHkuDQpUaGlzIGlzIHVzZWZ1bCBmb3IgdGhpbmdzIGxpa2Uge2R4fQ0KDQpU
aGUgaW5zZXJ0IG1hcmt1cCBhZGRzIG1pc3Npbmcgc2VtYW50aWMgdGV4dCwgc3VjaCBhcyB7Kn0g
d2hpY2gNCmlzIG5lZWRlZCB0byBpbmRpY2F0ZSBtdWx0aXBsaWNhdGlvbi4NCg0KVGhlIHJlcGxh
Y2UgbWFya3VwIGdpdmVzIGFsdGVybmF0ZSB0ZXh0IGZvciB3ZWF2ZXIsIGZvciB0aGluZ3Mgd2hl
cmUNCnRoZSBmdW5jdGlvbiBuYW1lIG1pZ2h0IGRpZmZlciwgZS5nLiBcaW50IC0+IGludGVncmF0
ZQ0KDQpUaGUgZnVuY3Rpb24gbWFya3VwIG5hbWVzIGEgZnVuY3Rpb24gdGhhdCB3ZWF2ZXIgc2hv
dWxkIGNhbGwNCndoaWNoIGFsbG93cyBzcGVjaWFsIGhhbmRsaW5nIGluIHBvc3QtcHJvY2Vzc2lu
Zy4gSXQgY2FuIGJlIGFueQ0Kcy1leHByZXNzaW9uICh0aGUgd2VhdmVyIGltcGxlbWVudGF0aW9u
IGlzIGN1cnJlbnRseSBsaXNwLWJhc2VkKS4NCg0KVGhlIHR5cGUgbWFya3VwIHBhc3NlcyB0eXBl
IGluZm9ybWF0aW9uIHRvIHdlYXZlciBzbyBBeGlvbQ0Ka25vd3MgdGhlIHRhcmdldCB0eXBlLCB1
c2VmdWwgZm9yIHRoaW5ncyBsaWtlIG1hdHJpeC4NCg0KVGhlIG1hY3JvcyBhcmUNCg0KXG5ld2Nv
bW1hbmR7XEFEfVsxXXsjMX0lIGRlbGV0ZQ0KXG5ld2NvbW1hbmR7XEFJfVsxXXt9JSBpbnNlcnQN
ClxuZXdjb21tYW5ke1xBUn1bMl17IzF9JSByZXBsYWNlDQoNClxuZXdjb21tYW5ke1xBRn1bMl17
IzF9JSBmdW5jdGlvbg0KXG5ld2NvbW1hbmR7XEFUfVsyXXsjMX0lIHR5cGUNCg0KTm90ZSB0aGF0
IFxBSSBvdXRwdXRzIG5vdGhpbmcsIHNvIDNcQUl7Kn14ID09IDN4IHRvIGxhdGV4Lg0KDQpcQUQg
dGVsbHMgd2VhdmVyIHRvIGRlbGV0ZSB0aGUgdGV4dCwgZS5nLiB7XEFEIH5keH0gPT0gfmR4IHRv
IGxhdGV4DQoNClxBUiB0ZWxscyB3ZWF2ZXIgdG8gcmVwbGFjZSB0aGUgdGV4dCBlLmcuIHtcQVIg
XHBpfXtcJXBpfQ0KDQpcQUYgdGVsbHMgd2VhdmVyIHRvIGNhbGwgYSBmdW5jdGlvbiwgZS5nLiBv
bmUgdGhhdCBrbm93cyBob3cgdG8NCnJld3JpdGUgdGhlIGlucHV0IGluIGEgc3BlY2lhbCB3YXks
IG9yIGRvZXMgdHJhY2luZywgZXRjLg0KDQpcQVQgYWRkcyB0YXJnZXQgdHlwZSBpbmZvcm1hdGlv
biBmb3IgQXhpb20NCmUuZy4gXEFUezN4KzZ9e1BPTFkoSU5UKX0gPT0gM3grNiB0byBsYXRleCBi
dXQgcGFzc2VzIGl0IGFzDQphIFBvbHlub21pYWwoSW50ZWdlcikgdG8gQXhpb20NCg0KRm9yIGV4
YW1wbGUsDQoNCiRcaW50e1xmcmFje2R4fXtheCpifX0kDQoNCmJlY29tZXMNCg0KJFxBVHtcQVJ7
XGludH17aW50ZWdyYXRlfXtcZnJhY3tcQUR7ZHh9fXthXEFJeyopeCtifX19e0VYUFJ9e0lOVH19
JA0KDQp0ZWxsaW5nIHdlYXZlciB0aGF0IHRoZSB0YXJnZXQgdHlwZSAoQVQpIGlzIEVYUFIoSU5U
KSwNCnRoZSBcaW50IGlzIHJlYWxseSBpbnRlZ3JhdGUNCnRoZSBkeCBpcyB0byBiZSBpZ25vcmVk
IGFuZA0KdGhlIGF4K2Igc2hvdWxkIHJlYWQgYSp4K2INCg0KVGhlcmUgaXMgYW4gb2J2aW91cyB0
cmFkZW9mZiBvZiBtYXJrdXAgdnMgd2VhdmVyLg0KRm9yIGV4YW1wbGUuIFxpbnQgbWlnaHQgYmUg
a25vd24gdG8gd2VhdmVyLg0KT3IgZXhwcmVzc2lvbnMgbWlnaHQgY2FsbCBhbiBlcXVhdGlvbiBy
ZXdyaXRlciB0byBhZGQgeyp9DQoNClRoZSBtYXJrdXAgY291bGQgdmFyeSBmcm9tIGFsbW9zdCBu
b3RoaW5nIHRvIG1hc3NpdmUgZGV0YWlsDQpkZXBlbmRpbmcgb24gdGhlIGRvd25zdHJlYW0gY2xl
dmVybmVzcy4NCg0KVGhpcyBpbml0aWFsIG1hcmt1cCBzZXQgc2VlbXMgc3VmZmljaWVudCB0byBo
YW5kbGUgZXZlcnkgdGFzaw0KdGhhdCByZXF1aXJlcyBzZW1hbnRpY3MgbWFya3VwIHNvIGZhci4g
VGhlIG92ZXJoZWFkIHNlZW1zDQpzbWFsbCBhbmQgdGhlIGdhaW4gc2VlbXMgbGFyZ2UuDQoNCk5v
dyB0aGUgb25seSBwcm9ibGVtIGlzIHBvc3QtcHJvY2Vzc2luZyB0aGUgbGF0ZXguIFNpZ2guDQoN
ClRoZXJlIGlzIG5vIHN1Y2ggdGhpbmcgYXMgYSBzaW1wbGUgam9iLg0KDQpUaW0NCg0KDQpPbiBU
dWUsIEF1ZyAyMywgMjAxNiBhdCA3OjI3IFBNLCBUaW0gRGFseSA8YXhpb21jYXNAZ21haWwuY29t
PG1haWx0bzpheGlvbWNhc0BnbWFpbC5jb20+PiB3cm90ZToNCkZvciB0aG9zZSBvZiB5b3UgYXQg
aG9tZSB3aXNoaW5nIHRvIHBsYXkgYWxvbmcsIHRoZXJlIGlzIGENCnNlbGF0ZXgudGVzdDEgZmls
ZSBhdA0KaHR0cDovL2F4aW9tLWRldmVsb3Blci5vcmcvYXhpb20td2Vic2l0ZS9zZWxhdGV4LnRl
c3QxDQpjb250YWluaW5nIDYyMCBpbnRlZ3JhbHMuDQoNCkVhY2ggbGluZSBpcyBhIGNhbGwgb2Yg
dGhlIGZvcm0NCg0KICB3ZWF2ZXIobGF0ZXgtc3RyaW5nLGF4aW9tLXN0cmluZykNCg0KVGhlIGdv
YWwgaXMgdG8gdHJhbnNmb3JtIHRoZSBsYXRleCBpbnRvIEF4aW9tLg0KDQpJbXBsaWNpdCBpcyB0
aGUgaWRlYSB0aGF0IHdlYXZlciB3aWxsIHVzZSB0aGUgc2VsYXRleCB0b2tlbnMNCnRvIGRpc2Ft
YmlndWF0ZSB0aGUgaW5wdXQuIFRoZSBjdXJyZW50IGZpbGUgaGFzIG5vIHNlbGF0ZXgNCnRva2Vu
cy4gVGhleSB3aWxsIGJlIGFkZGVkIGFzIG5lZWRlZC4gVGhlIGlkZWEgaXMgdG8ga2VlcA0KdGhl
IHByb2JsZW0gc2ltcGxlIGJ5IGFkZGluZyBwcmludC1pbnZpc2libGUgc2VtYXRpY3MgdG8gdGhl
DQpsYXRleC1zdHJpbmcuIEluIHRoZSBpZGVhbCBjYXNlIHRoZSB3ZWF2ZXIgcHJvZ3JhbSBpcyB0
cml2aWFsLA0KYXMgaXMgdGhlIG1hcmt1cC4gQW55IHRyYWRlb2ZmIHNob3VsZCBwcmlvcml0aXpl
IHNpbXBsaWNpdHkuDQpBbm90aGVyIHByaW9yaXR5IGlzIHRvIGFsaWduIHRoZSBzZW1hbnRpYyBt
YXJrdXAgd2l0aA0KQXhpb20gZG9tYWlucyBpbiBvcmRlciB0byBncm91bmQgdGhlIHNlbWFudGlj
cyB3aXRoIGNvZGUuDQoNCk9uY2UgYWxsIG9mIHRoZXNlIGNhbGxzIHRyYW5zbGF0ZSBjb3JyZWN0
bHkgdGhlIEF4aW9tIG91dHB1dA0Kcm91dGluZXMgbmVlZCB0byBvdXRwdXQgdGhlIGxhdGV4LXN0
cmluZyB3aXRoIHRoZSBhZGRlZA0Kc2VtYW50aWMgbWFya3VwIHNvIHRoZSBtYXBwaW5nIGlzIGJp
LWRpcmVjdGlvbmFsLg0KDQpUaGUgY3VycmVudCBmaWxlIG9ubHkgbG9va3MgYXQgaW50ZWdyYXRp
b24gYXMgSSBhbHJlYWR5IGhhdmUNCnRoZSBsYXRleC0+YXhpb20gdGV4dCBhdmFpbGFibGUuIEZ1
dHVyZSB0ZXN0IGZpbGVzIHdpbGwgbG9vaw0KYXQgb3RoZXIgYXJlYXMgb2YgaW50ZXJlc3QuIFRo
ZSBsb25nIHRlcm0gZ29hbCBpcyB0byBwYXJzZQ0KTklTVC9DUkMvZXRjIGZvcm11bGFzLg0KDQpU
aW0NCg0KDQpPbiBTdW4sIEF1ZyAyMSwgMjAxNiBhdCAxMTowMiBQTSwgVGltIERhbHkgPGF4aW9t
Y2FzQGdtYWlsLmNvbTxtYWlsdG86YXhpb21jYXNAZ21haWwuY29tPj4gd3JvdGU6DQpEYW4sDQoN
CldoaWxlIHBhZ2luZyB0aHJvdWdoIHRoZSBDUkMgMzFzdCBTdGFuZGFyZCBNYXRoZW1hdGljYWwN
ClRhYmxlcyBJIGxhbmRlZCBvbiBwYWdlIDIxOSwgc2VjdGlvbiAzLjQuMS4yIEdyYXBoIEludmFy
aWFudHMuDQoNCkl0IHdvdWxkIGJlIGEgdmFzdCBpbXByb3ZlbWVudCBpZiB0aGVyZSB3ZXJlIGFs
Z29yaXRobXMNCmFzc29jaWF0ZWQgd2l0aCB0aGVzZSBpbnZhcmlhbnRzLiBDbGVhcmx5IHRoZXkg
ZXhpc3Qgc29tZXdoZXJlLg0KDQpUbyAiY3Jvc3MgdGhlIGdhcCIgYmV0d2VlbiB0YWJsZXMgYW5k
IGNvbXB1dGF0aW9uYWwgbWF0aGVtYXRpY3MNCml0IHdvdWxkIGJlIHZhbHVhYmxlIHRvIGluY2x1
ZGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZXNlIGludmFyaWFudHMuDQoNCkl0IGlzIGhhcmQgdG8g
d2FsayBhd2F5IGZyb20gdGhhdCBwYWdlLiBBbiBBeGlvbSBpbXBsZW1lbnRhdGlvbg0Kd291bGQg
YmUgZnVuIHRvIHdyaXRlLCBlc3BlY2lhbGx5IGdpdmVuIHRoZSBuZXh0IHNlY3Rpb24gdGhhdCBs
aXN0cw0KZGlmZmVyZW50IGtpbmRzIG9mIGdyYXBocyB3aGljaCwgcHJlc3VtYWJseSwgd291bGQg
YWxsIGhhdmUgdGhlDQppbnZhcmlhbnRzLiBFdmVuIGJldHRlciwgdGhlIGdyYXBoIGFsZ29yaXRo
bXMgYXJlIGxpa2VseSBnb29kDQpjYW5kaWRhdGVzIGZvciBwcm9vZiB0ZWNobm9sb2d5IChBQ0wy
IGlmIGRvbmUgaW4gTGlzcCwgQ09RIGlmDQpkb25lIGluIFNwYWQpLiBMaXNwIGhhcyB0aGUgYWR2
YW50YWdlIG9mIGFuIEFOU0kgc3RhbmRhcmQuDQoNCkl0IHNlZW1zIHdvcnRod2hpbGUgdG8gdGFr
ZSBzZWN0aW9ucyBsaWtlIHRoaXMsIGV4cGFuZCB0aGVtDQphY3Jvc3MgY29tcHV0YXRpb25hbCBh
bmQgcHJvb2YgdG9vbHMsIGFuZCBwdWJsaXNoIHRoZW0gaW4gYQ0KZm9ybSB0aGF0IGlzIGdlbmVy
YWxseSB1c2VmdWwuIEl0IGlzICJuaWNlIHRvIGtub3ciIHRoYXQgYSBncmFwaA0KaGFzIGEgcmFk
aXVzIGJ1dCBpdCB3b3VsZCBiZSBldmVuIGJldHRlciBpZiBJIGNvdWxkICJqdXN0IHBvaW50IGFu
ZA0KY2xpY2siIHRvIGltcG9ydCB0aGUgYWxnb3JpdGhtLg0KDQpBeGlvbSBoYXMgYmVlbiBwdXNo
aW5nIGxpdGVyYXRlIHByb2dyYW1taW5nIGZvciB5ZWFycy4gVGhlDQp0b29scyBleGlzdCB0byAi
bWFrZSBpdCBzbyIsIGFzIHRoZSBzYXlpbmcgZ29lcy4NCg0KVGltDQoNCg0KDQoNCk9uIFN1biwg
QXVnIDIxLCAyMDE2IGF0IDEwOjQwIFBNLCBUaW0gRGFseSA8YXhpb21jYXNAZ21haWwuY29tPG1h
aWx0bzpheGlvbWNhc0BnbWFpbC5jb20+PiB3cm90ZToNCkxpa2UgYW55IHJlc2VhcmNoIHByb2Js
ZW0gaXQgaXMgYSBzdHJ1Z2dsZSB0byBnZXQgYSB1c2VmdWwgZ3JpcCBvbiB0aGlzLg0KTG9va2lu
ZyBhdCBHJlIgKEkganVzdCBvcmRlcmVkIHRoZSBsYXRlc3QsIG1pbmUgaXMgNHRoIGVkaXRpb24p
LCB0aGUNCnRhc2sgcXVpY2tseSBnZXRzIG91dCBvZiBoYW5kLg0KDQpUaGUgQ0FUUyB0ZXN0cyBp
biB0aGUgcGFzdCB3ZXJlIGNyZWF0ZWQgYnkgcmVhZGluZyB0aGUgcHJpbnRlZCBsYXRleA0KaW4g
dmFyaW91cyB2b2x1bWVzIGFuZCBoYW5kLXRyYW5zbGF0aW5nIHRoZW0gdG8gQXhpb20gaW5wdXQu
DQoNCkl0IGlzIG5vdCBkaWZmaWN1bHQgdG8gcmUtY3JlYXRlIHRoZSBsYXRleCBpbnB1dCBmb3Ig
dGhlc2UgZXhhbXBsZXMuDQpEb2luZyBzbyBhbmQgY29tYmluaW5nIHRoZSByZXN1bHRzIGdpdmVz
IGEgc2V0IG9mIGV4YW1wbGVzIHdpdGgNCm1hdGNoaW5nIGlucHV0IGxhdGV4IGFuZCBvdXRwdXQg
QXhpb20uIFRoZSBob21ld29yayBwcm9ibGVtIGlzDQp0byB3cml0ZSB0aGUgbmVjZXNzYXJ5IG1h
cmt1cCBhbmQgd2VhdmVyLg0KDQpJdCBpcyBpbW1lZGlhdGVseSBvYnZpb3VzIHRoYXQgdGhpcyBp
cyBtb3JlIGNoYWxsZW5naW5nIHRoYW4gaXQgc2VlbXMuDQpGb3IgZXhhbXBsZSwgd2hlbiB3cml0
aW5nIHknKHgpPTAsIEF4aW9tIG5lZWRzIHk6PW9wZXJhdG9yICd5DQpzbyBpdCBrbm93cyBhYm91
dCB0aGUgc3ltYm9sIGFzIGFuIG9wZXJhdG9yLiBUaGlzIGZhbGxzIHVuZGVyDQoiQ29uc2lkZXJh
dGlvbiAxMjogU3lzdGVtIFNwZWNpZmljIENvbW1hbmRzIi4uLiB3aGljaCBpbXBsaWVzDQp0aGF0
IHRoZSBsYXRleCBlbnZpcm9ubWVudCBhbmQgcXVvdGluZyBtYWNyb3MgaGF2ZSB0byBiZQ0KaW1w
bGVtZW50ZWQuIFNpZ2guDQoNClRoZXJlIGlzIG5vIHN1Y2ggdGhpbmcgYXMgYSBzaW1wbGUgam9i
Lg0KDQpBbnl3YXksIGF0IGxlYXN0IHRoZXJlIGlzIGEgd2F5IHRvIG1ha2UgYSBwcm9vZiBvZiBj
b25jZXB0DQpwcm90b3R5cGUgdGhhdCByZXByb2R1Y2VzIGV4aXN0aW5nIHJlc3VsdHMuDQoNClRp
bQ0KDQoNCk9uIFN1biwgQXVnIDIxLCAyMDE2IGF0IDQ6MTcgUE0sIFRpbSBEYWx5IDxheGlvbWNh
c0BnbWFpbC5jb208bWFpbHRvOmF4aW9tY2FzQGdtYWlsLmNvbT4+IHdyb3RlOg0KRGFuLA0KDQpX
ZWxjb21lLg0KDQpSZTogSG93YXJkIENvaGwuIFllcywgSSdkIGxpa2UgYW4gaW50cm9kdWN0aW9u
LiBJdCBzZWVtcyBpbXBvcnRhbnQgdG8NCm1ha2UgRExNRiwgQ1JDLCBhbmQgb3RoZXIgc291cmNl
cyBjb250YWluIGVub3VnaCBzZW1hbnRpY3MgdGhhdA0KdGhleSBjYW4gYmUgcmVhZCBieSBhIGNv
bXB1dGVyIGFsZ2VicmEgc3lzdGVtLiBUaGVyZSBhcmUgYW4NCmVub3Jtb3VzIG51bWJlciBvZiBp
c3N1ZXMsIHN1Y2ggYXMgd2hhdCB0byBkbyB3aXRoIGZ1bmN0aW9ucw0KdW5rbm93biB0byB0aGUg
Q0FTLCB3aGljaCBuZWVkIHRvIGJlIHRob3VnaHQgdGhyb3VnaC4NCg0KSSBiZWxpZXZlIHRoYXQg
TklTVC9DUkMvRyZSIGNvbGxlY3Rpb25zIHdpdGggc2VtYW50aWMgbWFya3VwIHdpbGwNCmhhdmUg
YSBncmVhdCBub3JtYWxpemluZyBlZmZlY3Qgb24gQ0FTIGRldmVsb3BtZW50IHNpbmNlIGl0IHdp
bGwgcmFpc2UNCmNyb3NzLXBsYXRmb3JtIHF1ZXN0aW9ucyBsaWtlICJXaGF0IHBlcmNlbnQgb2Yg
RyZSIGRvIHlvdSBoYW5kbGU/Ii4NCkFsYmVydCBSaWNoIChSVUJJKVswXSBoYXMgYmVlbiBkb2lu
ZyB0aGlzIGZvciBpbnRlZ3JhdGlvbiB1c2luZyBwYXR0ZXJucy4NClRoaXMgY2FuIG9ubHkgYmVu
ZWZpdCBjb21wdXRhdGlvbmFsIG1hdGhlbWF0aWNzIGluIHRoZSBsb25nIHRlcm0uDQoNCkkndmUg
YWxzbyBjYW1wYWlnbmVkIGZvciBhc3NvY2lhdGluZyBhbGdvcml0aG1zIHdpdGggcHVibGlzaGVk
IHRhYmxlcy4NCkl0IGlzIGltcG9ydGFudCBpbiB0aGUgbG9uZyB0ZXJtIHRvIGhhdmUgcmVmZXJl
bmNlIHZlcnNpb25zLiBUaGUgQUNNDQp1c2VkIHRvIGRvIHRoaXMgeWVhcnMgYWdvLiBJJ2QgbGlr
ZSB0byBzZWUgYSBHcnVudHogYWxnb3JpdGhtIGZvciBsaW1pdHMNCndoZXJlIGl0IGNhbiBiZSBh
cHBsaWVkLCBmb3IgaW5zdGFuY2UuIEl0IHdvdWxkIGFsc28gcHJvdmlkZSBhIGZvY3VzIG9uDQoi
bWlzc2luZyBhbGdvcml0aG1zIiBvciBlZGdlIGNhc2VzLiBEYXZlbnBvcnQvVHJhZ2VyL0Jyb25z
dGVpbg0KYWxnb3JpdGhtcyBwcm9taXNlIGEgZGVjaXNpb24gcHJvY2VkdXJlIGJ1dCB0aGVyZSBh
cmUgbm8gZXhpc3RpbmcNCmNvbXBsZXRlIGltcGxlbWVudGF0aW9ucy4gVGhlIHRhYmxlcyBjb3Vs
ZCBoaWdobGlnaHQgbWlzc2luZyBjYXNlcywNCmdpdmluZyBmb2N1cyB0byBlZmZvcnRzIHRvIGNv
bXBsZXRlIHRoZSBwcm9jZWR1cmUuDQoNCkl0IHdpbGwgYWxzbyBwdXQgYmFjay1wcmVzc3VyZSBv
biB0aGUgdGFibGVzIHRvIGRlZmluZSBkaWZmZXJlbnQgdmVyc2lvbnMNCm9mIHRoZSBzYW1lIGZv
cm11bGFzIGJhc2VkIG9uIGRvbWFpbnMgKEMsIFIsIGV0YykuDQoNCg0KIlRoZSBHUiB3b3JrIHdh
cyBtb3JlIHRoYW4gSSBoYWQgYW50aWNpcGF0ZWQiLi4uIHdpbnMgdGhlIGF3YXJkIGZvcg0KdW5k
ZXJzdGF0ZW1lbnQgb2YgdGhlIGRlY2FkZS4NCg0KVGhlIGdvYWwgb2YgdGhpcyBlZmZvcnQgaXMg
dG8gbWFrZSBpdCBwb3NzaWJsZSB0byByZWFkIHRob3NlDQpmb3JtdWxhcyBkaXJlY3RseSBpbnRv
IGEgQ0FTLiBBeGlvbSBpcyBteSBwcmltYXJ5IHRhcmdldCBidXQNCml0IHNob3VsZCBiZSBkb25l
IGluIGEgc29tZXdoYXQgc3lzdGVtIGFnbm9zdGljIGZvcm0uDQoNCkkndmUgc3BlbnQgd2VsbCBv
dmVyIGEgeWVhciBjcmVhdGluZyB0aGUgY29tcHV0ZXIgYWxnZWJyYSB0ZXN0IHN1aXRlLg0KSXQg
d291bGQgYmUgc28gbXVjaCBlYXNpZXIgYW5kIG1vcmUgdXNlZnVsIGlmIHRoZSBvcmlnaW5hbCBz
b3VyY2VzDQpjb3VsZCBiZSByZWFkIGRpcmVjdGx5Lg0KDQpJIHJlYWQgeW91ciBwYXBlci4gVGhl
cmUgaXMgYW4gaW50ZXJlc3RpbmcgbWl4IG9mIHN5bnRheCBhbmQgc2VtYW50aWNzLg0KDQpJIGd1
ZXNzIHRoZSBkaWZmZXJlbmNlIGluIHRoaXMgZWZmb3J0IGlzIHRoYXQgdGhlIHNlbWFudGljIG1h
cmt1cCBpcw0KaW50ZW5kZWQgdG8gYmUgdHJhbnNwYXJlbnQgYW5kIGdyb3VuZGVkLiBUaGUgdHJh
bnNwYXJlbnQgYXNwZWN0DQprZWVwcyB0aGUgdGFibGVzIHVuY2hhbmdlZCBpbiBwcmludCBmb3Jt
LiBUaGUgZ3JvdW5kZWQgYXNwZWN0IGtlZXBzDQp0aGUgc2VtYW50aWNzIGJhc2VkIG9uIHNvbWUg
YWxnb3JpdGhtaWMgYmFzZS4gVGhpcyBpbXBsaWVzLCBvZg0KY291cnNlLCB0aGF0IHRoZXJlIElT
IGFuIGFsZ29yaXRobWljIGJhc2Ugd2hpY2ggZG9lcyBub3QgeWV0IGV4aXN0DQpmb3Igc29tZSBv
ZiB0aGUgd29yay4NCg0KQXMgeW91IGNhbiBzZWUgZnJvbSB0aGUgQ0FUUyB3b3JrIEkndmUgYmVl
biB0cnlpbmcgdG8gdmFsaWRhdGUNCkF4aW9tJ3MgcmVzdWx0cyB3aXRoIHJlc3BlY3QgdG8gcHVi
bGlzaGVkIHRleHRzLiBUaGlzIGhhcyBmb3VuZCBib3RoDQpBeGlvbSBidWdzIGFuZCBtaXNwcmlu
dHMgaW4gcHVibGlzaGVkIHRleHRzLg0KDQpUaGUgS2Fta2VbMV0gc3VpdGUgd2FzIHRoZSBmaXJz
dCBlZmZvcnQgZm9yIGRpZmZlcmVudGlhbCBlcXVhdGlvbnMuDQoNClRoZSBTcGllZ2VsWzJdIGNo
YXB0ZXIgMTQgb24gaW5kZWZpbml0ZSBpbnRlZ3JhbHMgZm9yIGludGVncmF0aW9uLg0KDQpUaGUg
dm9uIFNlZ2dlcm5bM10gYm9vayBvbiBjdXJ2ZXMgYW5kIHN1cmZhY2VzIGZvciBncmFwaGljcy4N
Cg0KVGhlIExlZ2VuZHJlIGFuZCBHcmF6aW5pWzRdIG9uIFBhc3RhIGJ5IERlc2lnbiBmb3IgM0Qg
Z3JhcGhpY3MuDQoNClRoZSBSVUJJIHdvcmsgb24gaW50ZWdyYXRpb24uDQoNCmFuZCwgY3VycmVu
dGx5IEknbSByZS1jcmVhdGluZyB0aGUgbnVtZXJpY3MgdGhhdCB3ZXJlIGxvc3Qgd2hlbiBOQUcN
CnJlbGVhc2VkIHRoZSBvcGVuIHNvdXJjZSB2ZXJzaW9uLCBsZWF2aW5nIG1lIHN3aW1taW5nIHRo
cm91Z2gNCkx1a2Unc1s1XSBBbGdvcml0aG1zIGJvb2suDQoNCndoaWNoLCB0byBxdW90ZSBhIGZh
bW91cyBwaHJhc2UgIndhcyBtb3JlIHRoYW4gSSBoYWQgYW50aWNpcGF0ZWQiLg0KDQpZb3VyIEhh
bmRib29rIG9mIEludGVncmF0aW9uWzZdIGhhcyBhIHNlY3Rpb24gb24gdmFyaW91cyBrbm93bg0K
IkNhdmVhdHMsIEhvdyBhbiBpbnRlZ3JhdGlvbiByZXN1bHQgbWF5IGJlIGluY29ycmVjdCIuIFRo
aXMgcmFpc2VzIHRoZQ0Kd29uZGVyZnVsIHRvcGljIG9mIGJyYW5jaCBjdXRzIHlldCBhZ2Fpbi4g
SSBkaWQgc29tZSB0ZXN0aW5nIGFuZCBpdA0Kc2VlbXMgdGhhdCBBeGlvbSBhbmQgTWF0aGVtYXRp
Y2Egc2hhcmUgb25lIHNldCB3aGlsZSBNYXBsZSBhbmQNCk1heGltYSBzaGFyZSBhbm90aGVyLg0K
DQpBbGwgb2Ygd2hpY2ggbGVhZHMgdG8gYSBuZWVkIHRvIGNyZWF0ZSBiZXR0ZXIgcmVmZXJlbmNl
IG1hdGVyaWFscyB0aGF0DQphcmUgZ2VuZXJhbGx5IGF2YWlsYWJsZSAodW5saWtlIHRoZSBBQ00g
YWxnb3JpdGhtcyBmb3Igbm9uLXBheWluZw0KY3VzdG9tZXJzKSBhbmQgZGlyZWN0bHkgdXNlZnVs
IGZvciBjb21wdXRhdGlvbmFsIG1hdGhlbWF0aWNzLg0KDQpUaGUgY3VycmVudCBwbGFuIGlzIHRv
IHRha2Ugc29tZSB0YWJsZXMsIGZpbmQgb3IgcmUtY3JlYXRlIHRoZSBsYXRleCwNCmludmVudCBh
IHNlbWFudGljIG1hcmt1cCwgYW5kIHRoZW4gd3JpdGUgdGhlICJ3ZWF2ZXIiLiBBdCB0aGlzIHBv
aW50DQp0aGUgcmVzZWFyY2ggaXMgc3RpbGwgYXQgdGhlICJwcm9vZiBvZiBjb25jZXB0IiBzdGFn
ZS4gKHRleCBmb3JtdWxhDQpzb3VyY2VzIGFyZSBtb3N0IHdlbGNvbWUpLg0KDQpVbHRpbWF0ZWx5
IEknZCByZWFsbHkgbGlrZSB0byBzZWUgYSBib29rIG9mIGZvcm11bGFzIGFuZCBhbGdvcml0aG1z
DQp0aGF0IEkgY2FuIGp1c3QgZHJhZy1hbmQtZHJvcCBpbnRvIEF4aW9tIGFuZCBiZSBhYmxlIHRv
IHVzZSB0aGVtDQp3aXRob3V0IGxpZmV0aW1lcyBvZiB3b3JrLg0KDQpBY3R1YWxseSwgdGhhdCAn
cyBvbmx5IHRoZSBwZW51bHRpbWF0ZSBnb2FsLiBJIGhhdmUgYXVnbWVudGVkDQpBeGlvbSB0byBp
bmNsdWRlIHByb29mcyAoQUNMMixDT1EpIHNvIEknZCBhbHNvIGxpa2UgdG8gc2VlIHByb29mcywN
Cih0aGlzIElTIG1hdGhlbWF0aWNzLCBhZnRlciBhbGwpIGJ1dCBtYXliZSB3ZSdsbCBsZWF2ZSB0
aGF0IGZvcg0KbmV4dCBtb250aCA6LSkNCg0KVGltDQoNClswXSBSaWNoLCBBbGJlcnQgIlJ1bGUt
YmFzZWQgTWF0aGVtYXRpY3MiDQpodHRwOi8vd3d3LmFwbWF0aHMudXdvLmNhL35hcmljaC8NCg0K
WzFdIEthbWtlLiBFLiAiRGlmZmVyZW50aWFsZ2xlaWNodW5nZW4gTG9zdW5nc21ldGhvZGVuIHVu
ZCBMb3N1bmdlbiINCkNoZWxzZWEgUHVibGlzaGluZyBDb21wYW55LCBOZXcgWW9yaywgMTk1OQ0K
DQpbMl0gU3BpZWdlbCwgTXVycmF5IFIuICJNYXRoZW1hdGljYWwgSGFuZGJvb2siLCBTY2hhdW0n
cyBPdXRsaW5lDQpTZXJpZXM7IE1jR3Jhdy1IaWxsIEJvb2sgQ29tcGFueSAxOTY4DQoNClszXSB2
b24gU2VnZ2VybiwgRGF2aWQgIkNSQyBTdGFuZGFyZCBDdXJ2ZXMgYW5kIFN1cmZhY2VzIiwNCkNS
QyBQcmVzcywgMTk5MyBJU0JOIDAtODQ5My0wMTk2LTMNCg0KWzRdIExlZ2VuZHJlLCBHZW9yZ2Ug
TC4gYW5kIEdyYXppbmksIFN0ZWZhbm8gIlBhc3RhIGJ5IERlc2lnbiIsDQpUaGFtZXMgYW5kIEh1
ZHNvbiwgMjAwMQ0KDQpbNV0gTHVrZSwgWXVkZWxsICJBbGdvcml0aG1zIGZvciB0aGUgQ29tcHV0
YXRpb24gb2YgTWF0aGVtYXRpY2FsDQpGdW5jdGlvbnMiLCBBY2FkZW1pYyBQcmVzcywgMTk3NyBJ
U0JOIDAtMTItNDU5OTQwLTYNCg0KWzZdIFp3aWxsaW5nZXIsIERhbmllbCAiSGFuZGJvb2sgb2Yg
SW50ZWdyYXRpb24iIEpvbmVzIGFuZCBCYXJ0bGV0dCwNCkxvbmRvbiwgMTk5Mg0KDQoNCg0KT24g
U3VuLCBBdWcgMjEsIDIwMTYgYXQgMTA6MTYgQU0sIERhbiBad2lsbGluZ2VyIDx6d2lsbGluZ0Bh
ei10ZWMuY29tPG1haWx0bzp6d2lsbGluZ0Bhei10ZWMuY29tPj4gd3JvdGU6DQoNCkFsbA0KDQpJ
IGJlZ2FuIHJlYWRpbmcgdGhpcyB0b3BpYydzIGVtYWlscyB3aGVuIHRoZXkgZmlyc3QgYXBwZWFy
ZWQsIGFuZCB0aGVuIGZlbGwgYmVoaW5kLg0KU29ycnkgZm9yIG15IGxhdGUgY29tbWVudHMuDQoN
CkkgYWRtaXJlIHlvdXIgZWZmb3J0cy4NClRoZXkgbWF5IGJlIHNvbWV3aGF0IHJlbGF0ZWQgdG8g
d2hhdCBJIGhhdmUgZG9uZSBpbiB0aGUgcGFzdC4NCk15IGV4cGVyaWVuY2UgaXMgYXMgZm9sbG93
czoNCg0KKDEpIENSQyBTTVRGIChTdGFuZGFyZCBNYXRoZW1hdGljYWwgVGFibGVzIGFuZCBGb3Jt
dWxhKQ0KDQpJIHB1dCB0aGUgfjcwMCBpbnRlZ3JhbHMgaW4gQ1JDJ3MgU01URiBpbnRvIGEgZm9y
bWF0IGZyb20gd2hpY2gNCihBKSB0aGV5IGNvdWxkIGJlIHR5cGVzZXQgaW4gTGFUZVgNCihCKSB0
aGV5IGNvdWxkIGJlIGNvbnZlcnRlZCBpbnRvIE1hdGhlbWF0aWNhICh3aGljaCBlaXRoZXIgZGlk
IGEgc3ltYm9saWMgb3IgbnVtZXJpYyBjb21wdXRhdGlvbikgLSBhbmQgdGhpcyB3YXMgZG9uZQ0K
DQpJIGxldCBSaWNoYXJkIEZhdGVtYW4gdXNlIHRoZW0gZm9yIGhpcyBleHBlcmltZW50cy4NCg0K
DQooMikgRWxzZXZpZXIncyBHUiAoR3JhZHNodGV5biBhbmQgUnl6aGlrJ3MgIlRhYmxlIG9mIElu
dGVncmFscywgU2VyaWVzLCBhbmQgUHJvZHVjdHMiKQ0KDQpJIHB1dCB0aGUgfjEyLDAwMCAoaWYg
bXkgbWVtb3J5IGlzIGNvcnJlY3QpIGludGVncmFscyBpbnRvIGEgZm9ybWF0IGZyb20gd2hpY2gN
CihBKSB0aGV5IGNvdWxkIGJlIGJlYXV0aWZ1bGx5IHR5cGVzZXQgaW4gTGFUZVgNCihCKSB0aGV5
IGNvdWxkIGJlIGNvbnZlcnRlZCBpbnRvIE1hdGhlbWF0aWNhIC0gYW5kIHRoaXMgd2FzIE5PVCBk
b25lDQpFbmNsb3NlZCBpcyBhIFBERiBmaWxlIGRlc2NyaWJpbmcgdGhlIHdvcmsgYW5kIHRoZSBy
ZXN1bHRpbmcgZm9ybWF0Lg0KDQoNCkEgZGlmZmVyZW50IGZvcm1hdCB3YXMgdXNlZCBmb3IgU01U
RiBhbmQgR1IuDQpXaGlsZSB0aGUgU01URiB3b3JrIHdhcyBub3QgdG9vIGFyZHVvdXMsIHRoZSBH
UiB3b3JrIHdhcyBtb3JlIHRoYW4gSSBoYWQgYW50aWNpcGF0ZWQuDQpUaGUgaW5wdXQgKHRoZSBw
cmV2aW91cyB2ZXJzaW9uIG9mIEdSKSBoYWQgbGl0dGxlIHN5bnRhY3RpYyBzdHJ1Y3R1cmUgYW5k
IGl0IHRvb2sgbXVjaCBlZmZvcnQgdG8gZ2V0IGl0IGludG8gc2hhcGUuDQpJIHVzZWQgKG1hbnkg
ZGlmZmVyZW50KSByZWd1bGFyIGV4cHJlc3Npb25zIChpbiBwZXJsKSB0byB0cmFuc2xhdGUgdGhl
IGJ1bGsgb2YgdGhlIGJvb2ssIGFuZCB0aGVuIGxvdHMgb2YgaGFuZCB0dW5pbmcuDQoNCldoaWxl
IEkgdGhpbmsgeW91IGFyZSB3ZWxsIGJleW9uZCBteSB0aGlua2luZyBvbiB0aGVzZSB0b3BpY3Ms
IHBsZWFzZSBsZXQgbWUga25vdyBpZiBJIGNhbiBoZWxwLg0KSSBhbSBmcmllbmRzIHdpdGggSG93
YXJkIENvaGwgYXQgTklTVCwgd2hvIG1heSBiZSB0aGUgY3VycmVudCBsZWFkIGZvciBETE1GICgi
RGlnaXRhbCBMaWJyYXJ5IG9mIE1hdGhlbWF0aWNhbCBGdW5jdGlvbnMiIGF0IGRsbWYubmlzdC5n
b3Y8aHR0cDovL2RsbWYubmlzdC5nb3Y+KS4NCkxldCBtZSBrbm93IGlmIHlvdSBuZWVkIGFuIGlu
dHJvZHVjdGlvbi4NCg0KDQoNCkRhbiBad2lsbGluZ2VyDQp6d2lsbGluZ0Bhei10ZWMuY29tPG1h
aWx0bzp6d2lsbGluZ0Bhei10ZWMuY29tPg0KNjE3LTM4OC0yMzgyPHRlbDo2MTctMzg4LTIzODI+
DQoNCk9uIDgvMjAvMjAxNiAxMTozMCBQTSwgVGltIERhbHkgd3JvdGU6DQpUaGUgZ2FtZSBpcyB0
byBkZWZpbmUgbGF0ZXggbWFya3VwIHRoYXQgaXMgdHJhbnNwYXJlbnQgdG8gdGhlIHN5bnRheA0K
YnV0IGFkZHMgc2VtYW50aWNzIGZvciBwb3N0IHByb2Nlc3NpbmcuDQoNClNvbWUgc2ltcGxlIHRl
c3RzIHNob3cgdGhhdCB0aGlzIHdvcmtzLiBTdXBwb3NlIHNlbGF0ZXguc3R5IGNvbnRhaW5zOg0K
DQpcbmV3Y29tbWFuZHtcSU5UfVsxXXsjMX0NClxuZXdjb21tYW5ke1xWQVJJQUJMRX1bMV17IzF9
DQpcbmV3Y29tbWFuZHtcUE9MWX1bMV17IzF9DQpcbmV3Y29tbWFuZHtcSU5URUd9WzJde1xpbnR7
IzF9fQ0KDQpUaGlzIGRlZmluZXMgNCBuZXcgbGF0ZXggbWFya3Vwcy4gVGhlIG51bWJlciBpbiB0
aGUgc3F1YXJlIGJyYWNrZXRzDQpkZWZpbmVzIHRoZSBudW1iZXIgb2YgZXhwZWN0ZWQgYXJndW1l
bnRzLiBUaGUgYnJhY2UgYXJndW1lbnQNCmRlbGltaXRlcyB0aGUgY2hhcmFjdGVycyB0aGF0IHdp
bGwgb2NjdXIgZHVyaW5nIGV4cGFuc2lvbiB3aXRoIHRoZSAjMQ0KcmVwbGFjZWQgYnkgdGhlIGZp
cnN0IGFyZ3VtZW50Lg0KDQooQXMgYW4gYXNpZGUsIElOVCwgVkFSSUFCTEUsIGFuZCBQT0xZIGp1
c3QgaGFwcGVuIHRvIGJlIHZhbGlkDQpBeGlvbSBkb21haW4gYWJicmV2aWF0aW9ucywgaGVuY2Ug
dGhlIG5hbWUgY2hvaWNlLiBUaGlzIGNob2ljZQ0Kb2YgbmFtZXMgZ2l2ZXMgZ3JvdW5kaW5nIHRv
IHRoZSBzZW1hbnRpY3MuKQ0KDQpOb3RpY2UgdGhhdCBcSU5URUcgdGFrZXMgdHdvIGFyZ3VtZW50
cyBidXQgd2lsbCBkaXNwbGF5IG9ubHkgb25lLg0KVGhpcyBhbGxvd3MgdGhlIHZhcmlhYmxlIG9m
IGludGVncmF0aW9uIHRvIGJlIHBhc3NlZCBpbiB0aGUgc2VtYW50aWNzDQp3aXRob3V0IHNob3dp
bmcgdXAgaW4gdGhlIG91dHB1dC4gVGhpcyBhbGxvd3MgdGhlIHNlbWFudGljcyB0byBjYXJyeQ0K
YWRkaXRpb25hbCwgbm9uLWRpc3BsYXkgaW5mb3JtYXRpb24gbmVlZGVkIGJ5IHRoZSBDQVMuDQoN
ClNvbWUgZXhhbXBsZXMgZm9sbG93Lg0KDQpBbiBpbnRlZ2VyIDMgY2FuIGJlIHdyYXBwZWQgYXMg
XElOVHszfSBidXQgd2lsbCBzdGlsbCBkaXNwbGF5IGFzIDMuDQoNCkEgdmFyaWFibGUgeCBjYW4g
YmUgd3JhcHBlZCBhcyBcVkFSSUFCTEV7eH0sIGRpc3BsYXllZCBhcyB4Lg0KDQokXFBPTFl7XElO
VHszfVxWQVJJQUJMRXt4fX0kIHdpbGwgZGlzcGxheSBhcyAzKngNCg0KJFxJTlRFR3tcUE9MWXtc
SU5UezN9XFZBUklBQkxFe3h9fmR4fX17eH0gd2lsbCBiZSB0aGUgc2FtZSByZXN1bHQNCmFzICRc
aW50ezN4fmR4fSQsIHRoYXQgaXMsIGFuDQogIChpbnRlZ3JhbHNpZ24pIDN4IGR4DQpidXQgbm90
aWNlIHRoYXQgdGhlIHZhcmlhYmxlIG9mIGludGVncmF0aW9uIGlzIGluIHRoZSBzZW1hbnRpYyBt
YXJrdXAuDQoNClRoZXNlIHRyaXZpYWwgbWFjcm9zIGNhbiBiZSBtYWRlIGxlc3MgdmVyYm9zZSBh
bmQgY2VydGFpbmx5DQptb3JlIGNsZXZlciBidXQgdGhhdCdzIG5vdCB0aGUgcG9pbnQgYmVpbmcg
bWFkZSBoZXJlLg0KDQpBICd3ZWF2ZXInIHByb2dyYW0gd291bGQgc2VlIHRoZSBpbnRlZ3JhdGlv
biBleHByZXNzaW9uIGFzDQoNCiRcSU5URUd7XFBPTFl7XElOVHszfVxWQVJJQUJMRXt4fX5keH19
e3h9JA0KDQp3aXRoIGFsbCBvZiB0aGUgc2VtYW50aWMgdGFncy4gVGhlIHdlYXZlcidzIGpvYiBp
cyB0byByZXdyaXRlIHRoaXMNCmV4cHJlc3Npb24gaW50byBhbiBpbnB1dGZvcm0gZm9yIHRoZSBD
QVMuIEluIEF4aW9tIHRoYXQgd291bGQgYmUNCg0KaW50ZWdyYXRlKDMqeCx4KQ0KDQpUaGUgc2Vt
YW50aWNzIG1hcmt1cCBtYWtlcyB0aGUgZGlzcGxheSBwcmV0dHkgYW5kIHRoZSBzZW1hbnRpYw0K
cGFyc2luZyBwb3NzaWJsZS4gRGVwZW5kaW5nIG9uIHRoZSBzeXN0ZW0sIG1vcmUgb3IgbGVzcyBw
YXJzaW5nDQptYXJrdXAgY2FuIGV4aXN0LiBBeGlvbSwgZm9yIGV4YW1wbGUsIHdvdWxkIG5vdCBu
ZWVkIHRoZSBcSU5UIG9yDQpcVkFSSUFCTEUgdG8gZ2V0IGEgY29ycmVjdCBwYXJzZSBzbyB0aGUg
ZXhwcmVzc2lvbiBjb3VsZCBiZQ0KJFxJTlRFR3szeH5keH17eH0kDQoNClRoaXMgdmFsaWRhdGVz
IHRoZSBmdW5kYW1lbnRhbCBpZGVhLg0KDQpUaGUgbmV4dCBzdGVwIGlzIHRvIHdyaXRlIGEgc2lt
cGxlIHdlYXZlciBwcm9ncmFtLiBUaGUgY2xldmVyIHBhdGgNCndvdWxkIGJlIHRvIGVtYmVkIGEg
ZGVjbGFyYXRpdmUgZm9ybSBvZiB0aGUgcGFyc2VyIHN5bnRheCAoQk5GPykNCmFzIGNvbW1lbnRz
IGluIHNlbGF0ZXguc3R5LiBUaGF0IHdheSB0aGUgbGF0ZXggc2VtYW50aWNzIGFuZCB0aGUNCndl
YXZlciBzeW50YXggYXJlIGtlcHQgaW4gc3luYy4NCg0KV2VhdmVyIHdvdWxkIHJlYWQgdGhlIEJO
RiBjb21tZW50cyBmcm9tIHNlbGF0ZXguc3R5IGFuZA0KdGhlIGZvcm11bGEgd2l0aCBzZW1hbnRp
YyBtYXJrdXAgYXMgaW5wdXQgYW5kIHBhcnNlIHRoZSBzZW1hbnRpYw0KbWFya3VwIGludG8gaW5w
dXRmb3Jtcy4gKFdpc2ggSSB0aG91Z2h0IG9mIHRoaXMgaG9tZXdvcmsgcHJvYmxlbQ0Kd2hlbiBJ
IHRhdWdodCB0aGUgY29tcGlsZXIgY291cnNlIDotKSApLg0KDQpOb3RlIHRoYXQsIGRlcGVuZGlu
ZyBvbiB0aGUgQk5GLCB3ZWF2ZXIgY291bGQgYmUgdXNlZCB0bw0KZ2VuZXJhdGUgb3V0cHV0IGZv
ciBNYXhpbWEncyB0cmVlLWJhc2VkIHJlcHJlc2VudGF0aW9uLg0KDQpBbiBhbHRlcm5hdGl2ZSBu
ZXh0IHN0ZXAgaXMgdG8gbG9vayBhdCBhIENSQyBib29rLCByZS1jcmVhdGUgdGhlDQpzeW50YWN0
aWMgbGF0ZXggYW5kIHRoZW4gY3JlYXRlIHRoZSBzZWxhdGV4LnN0eSBlbnRyaWVzIG5lY2Vzc2Fy
eQ0KdG8gZ2VuZXJhdGUgd2VhdmVyIGlucHV0Lg0KDQpJbmZpbml0ZXNpbWFsIHByb2dyZXNzLCBi
dXQgcHJvZ3Jlc3Mgbm9uLXRoZS1sZXNzLg0KDQpUaW0NCg0KDQpPbiBGcmksIEF1ZyAxOSwgMjAx
NiBhdCAxMjo0NSBBTSwgVGltIERhbHkgPGF4aW9tY2FzQGdtYWlsLmNvbTxtYWlsdG86YXhpb21j
YXNAZ21haWwuY29tPj4gd3JvdGU6DQoNCk9uZSBvZiB0aGUgQXhpb20gcHJvamVjdCBnb2FscyBp
cyB0byBkZXZlbG9wIGEgIkNvbXB1dGVyIEFsZ2VicmEgVGVzdA0KU3VpdGUiIChDQVRTKS4gQWxi
ZXJ0IFJpY2ggaGFzIGRvbmUgdGhpcyB3aXRoIFJVQkkgYW5kIGludGVncmF0aW9uLiBUaGF0DQp3
b3JrIGlzIGFscmVhZHkgcGFydGlhbGx5IGluIHRoZSB0ZXN0IHN1aXRlIGFuZCB3b3JrIGhhcyBi
ZWVuIGRvbmUgb24gdGhlDQpwYXR0ZXJuIG1hdGNoaW5nLiBMYXJnZSBkYXRhc2V0cyAobGlrZSBL
YW1rZSkgYXJlIGFsd2F5cyB3ZWxjb21lLiBTb21lLA0Kc3VjaCBhcyBTY2hhdW1zIHdlcmUgaGFu
ZC1kZXZlbG9wZWQuIFRoaXMgaXMgdGVkaW91cy4NCg0KQXMgQXhpb20gZGV2ZWxvcHMgbW9yZSBl
eHBsYW5hdGlvbnMgYW5kIGRvY3VtZW50YXRpb24gaXQgd291bGQgYmUNCnVzZWZ1bCB0byBleGVj
dXRlIHRoZSBmb3JtdWxhcyBkaXJlY3RseSBzbyB0aGVyZSBpcyBhIGxvY2FsIGluY2VudGl2ZSB0
byBiZQ0KY2xlYXIgYWJvdXQgc2VtYW50aWNzLg0KDQpJbiB0aGUgbG9uZyB0ZXJtIHRoZSBob3Bl
IGlzIHRoYXQgd2UgY2FuIGp1c3QgZ3JhYiBmb3JtdWxhcyBkaXJlY3RseSBmcm9tDQp0aGVpciBz
b3VyY2VzIChhbGEgbGl0ZXJhdGUgcHJvZ3JhbW1pbmcpLiBZb3VyIHdvcmsgbWFrZXMgaXQgcGxh
aW4gdGhhdCByYXcNCmxhdGV4IGRvZXMgbm90IGNhcnJ5IHN1ZmZpY2llbnQgc2VtYW50aWNzLiBU
aGVyZSBpcyBhIGdsb2JhbCBxdWVzdGlvbiBvZg0KaG93IHRvIG1ha2UgdGhpcyB3b3JrLiBVbmZv
cnR1bmF0ZWx5IGEgZ2VuZXJhbCBjcm9zcy1wbGF0Zm9ybSBzb2x1dGlvbg0KaXMgZGlmZmljdWx0
IChjaXRlIERld2FyL0RhdmVucG9ydC9ldCBhbC4gZm9yIE9wZW5NYXRoKS4NCg0KU2luY2UgQXhp
b20gaXMgbGl0ZXJhdGUgYW5kIGV4dHJhY3RpbmcgZm9ybXVsYXMgaXMgdHJpdmlhbCBpdCBzZWVt
cyB0aGF0DQpsaXRlcmF0ZSBtYXJrdXAgaXMgYSBuYXR1cmFsIGdvYWwuIFNpbmNlIEF4aW9tIHVz
ZXMgYWJzdHJhY3QgYWxnZWJyYQ0KYXMgYSBzY2FmZm9sZCB0aGUgdHlwZSB0b3dlciBhbHJlYWR5
IGhhcyBhIGxvdCBvZiBheGlvbWF0aWMgc2VtYW50aWNzLg0KVGhlIG5hdHVyYWwgam9pbiBvZiBs
aXRlcmF0ZSBsYXRleCBhbmQgYWJzdHJhY3QgYWxnZWJyYSBpcyBjbGVhcmx5DQpzZW1hbnRpYyBt
YXJrdXAsIGFrYSBzZWxhdGV4Lg0KDQo9PT09PT09PT09PQ0KQ29uc2lkZXJhdGlvbiAxMDogc2Vt
YW50aWMtPmlucHV0Zm9ybSB0cmFuc2xhdGlvbiAod2VhdmVyPyA6LSkgKQ0KDQo+eCBhbmQgbm90
IHggICBoYXMgbm8gcGFydGljdWxhciBtZWFuaW5nLCAgYnV0IGlmIHggaXMgZXhwbGljaXRseSB0
cnVlIG9yIGZhbHNlLA0KPk1heGltYSBzaW1wbGlmaWVzIGl0IHRvIGZhbHNlLiAgSWYgU0VBTEFU
RVggaGFzIGEgc2VtYW50aWNzIC0tIGFyZSB5b3UNCj5kZWZpbmluZyB5ZXQgYW5vdGhlciBDQVM/
ICBPciBwZXJoYXBzIHlvdSBzaG91bGQgbGluayBpdCAxMDAlIHRvIEF4aW9tJ3MNCj5zZW1hbnRp
Y3MsIHdoaWNoIHlvdSBwcmVzdW1hYmx5IGtub3cgYWJvdXQgYW5kIGNhbiBtb2RpZnkuDQoNCkkg
YW0gTk9UIGRlZmluaW5nIGFub3RoZXIgQ0FTLiBUaGUgZ29hbCBpcyBhICJ3ZWxsLWRlc2lnbmVk
IGhhY2siIHVzaW5nDQp1bml2ZXJzYWxseSB1bmRlcnN0b29kIGxhdGV4LCBhIGxhdGV4IHBhY2th
Z2UsIGFuZCBhIHRyYW5zbGF0aW9uIHByb2dyYW0uDQoNClRoZSBzZWxhdGV4IGlkZWEgaXMgb25s
eSBwYXJ0aWFsbHkgQXhpb20gc3BlY2lmaWMuIFxJTlQsIGZvciBpbnN0YW5jZSwgc2VlbXMNCnBy
ZXR0eSBnZW5lcmljLiBIb3dldmVyLCBpZiB0aGUgaWRlYSBpcyB0byByZWFkIGZvcm11bGFzIGFu
ZCBkaXNhbWJpZ3VhdGUNCmE9YiAoYm9vbGVhbikgdnMgYT1iIChlcXVhdGlvbikgdGhlbiB0aGUg
bWFya3VwIG5lZWRzIHRvIGJlIGdyb3VuZGVkDQp0byBoYXZlIG1lYW5pbmcuIEF4aW9tJ3MgZG9t
YWlucyAoQk9PTEVBTikgYW5kIChFUSkgYXMgdGhlIGdyb3VuZA0KDQpcQk9PTEVBTihhPWIpDQpc
RVEoYT1iKQ0KDQphcmUgdW5hbWJpZ3VvdXMgcmVsYXRpdmUgdG8gZWFjaCBvdGhlciBpbiBBeGlv
bS4gSSBkb24ndCBrbm93IGVub3VnaA0KYWJvdXQgTWF4aW1hIHRvIHVuZGVyc3RhbmQgaG93IHRo
aXMgbWlnaHQgdHJhbnNsYXRlLg0KDQpUaGUgZXh0cmFjdGVkIGZvcm11bGFzIHdpdGggdGhlIGRl
Y29yYXRlZCBzZW1hbnRpY3Mgc3RpbGwgbmVlZHMgYQ0Kc2VtYW50aWNzLT5pbnB1dGZvcm0gKHdl
YXZlcikgcHJlLXByb2Nlc3NvciB3aGljaCBjb3VsZCBiZSBNYXhpbWENCnNwZWNpZmljLiBUaGlz
IHdvdWxkIGxlYWQgdG8gZGViYXRlIGFib3V0IHdoYXQgImVxdWFsaXR5IiBtZWFucywgb2YgY291
cnNlLg0KDQpBeGlvbSBoYXMgdHJpZWQgdG8gY3JlYXRlIGEgZmlyc3Qtb3JkZXIgInJvc2V0dGEg
c3RvbmUiIHRvIHRyYW5zbGF0ZSBiZXR3ZWVuDQpzeXN0ZW1zIChyb3NldHRhLnBkZiBbMV0pIGJ1
dCBpdCBpcyB0b28gc2hhbGxvdyB0byBjb25zaWRlciBwcm92aWRpbmcNCmNyb3NzLXBsYXRmb3Jt
IHNlbWFudGljcy4NCg0KPT09PT09PT09PT09PQ0KQ29uc2lkZXJhdGlvbiAxMTogXHNjb3BlIGlu
IHNlbGF0ZXgNCg0KPkFzIGZhciBhcyByZWNvcmRpbmcgc3R1ZmYgaW4gRExNRiAtLSB0aGVyZSBh
cmUgcHJlc3VtYWJseSBzY29wZSBpc3N1ZXMNCj4oImluIHRoaXMgY2hhcHRlciBuLG0gYXJlIG5h
dHVyYWwgbnVtYmVycy4uLi4iKSAgYW5kIG1heWJlIGV2ZW4gYSBuZWVkDQo+dG8gbWFrZSB2YWx1
ZSBhc3NpZ25tZW50cy4NCj5JIHRoaW5rIHlvdSBuZWVkIHRvIG1vZGVsIHRoZXNlIGluIFNFQUxB
VEVYIHRvby4NCg0KKFNlZSBDb25zaWRlcmF0aW9uIDYpDQoNCkNsZWFybHkgdGhlcmUgYXJlIHNj
b3BpbmcgaXNzdWVzLiBNeSBjdXJyZW50IHRoaW5raW5nIGlzIHRvIGNyZWF0ZSBhDQpcc2NvcGUg
bWFya3VwIHRoYXQgd291bGQgbWFuYWdlIHRoZSBlbnZpcm9ubWVudChzKS4gVGhpcyBpcyBub3QN
CmEgbmV3IGlzc3VlIChzZWUgIkxpc3AgaW4gU21hbGwgUGllY2VzIiBbMF0pDQoNClRoZXJlIHNl
ZW0gdG8gYmUgdGhyZWUgY29uY2VybnMuDQoNCkZpcnN0IGlzIHRoZSBzY29wZSBuYW1lLCB3aXRo
IHNvbWV0aGluZyBsaWtlICdnbG9iYWwnIGFzIGEga2V5d29yZC4NClNlY29uZCBpcyB0aGUgImNs
b3N1cmUgY2hhaW4iIG9mIG90aGVyIHNjb3Blcy4NClRoaXJkIGlzIHRoZSBzeW1ib2wgYmVpbmcg
c2NvcGVkLg0KDQpcc2NvcGV7bmFtZX17Y2hhaW59e3N5bWJvbH0NCg0KVGhlIHdlYXZlciBwcm9n
cmFtIHdvdWxkIHdhbGsgdGhpcyBjaGFpbiB0byBjcmVhdGUgdGhlIHByb3Blcg0KZmlsZSBzeW50
YXggZm9yIHN5c3RlbSBpbnB1dC4NCg0KPT09PT09PT09PT09DQpDb25zaWRlcmF0aW9uIDEyOiBT
eXN0ZW0gc3BlY2lmaWMgY29tbWFuZHMgXGF4aW9tDQoNCkFsb25nIHdpdGggdGhlIGZvcm11bGFz
IGl0IGlzIGNsZWFyIHRoYXQgc29tZSBzeXN0ZW0gc3BlY2lmaWMNCmlucHV0IG1heSBiZSByZXF1
aXJlZCwgc3VjaCBhcyBsb2FkaW5nIGZpbGVzLCBjbGVhcmluZyB3b3Jrc3BhY2VzLA0KZXRjLiBT
b21lIG9mIHRoZXNlIG1heSBiZSBkb25lIGluIHRoZSB3ZWF2ZXIgcHJvZ3JhbSwgc3VjaCBhcw0K
YmV0d2VlbiBmb3JtdWxhcy4gT3RoZXJzIG1heSBuZWVkIHRvIGJlIGFkZGVkIHRvIHRoZSBzZW1h
bnRpY3MNCmJsb2NrLiBTbyBhIG1hcmt1cCB0aGF0IHByb3ZpZGVzIHZlcmJhdGltIHF1b3Rpbmcg
cGVyIHN5c3RlbQ0KbWlnaHQgYmUgZGVmaW5lZCwgZS5nLg0KDQpcYXhpb217KWNsZWFyIGFsbH0g
ICVjbGVhciB0aGUgd29ya3NwYWNlDQoNCndoaWNoIHdvdWxkIHNpbXBseSBxdW90ZSBhbiBpbnB1
dCBsaW5lLg0KDQo9PT09PT09PT09PT09PQ0KDQpOb3RlIHRoYXQgc28gZmFyIGFsbCB0aGF0IGlz
IGJlaW5nIHN1Z2dlc3RlZCBpcyB0cmFuc3BhcmVudCBmb3JtdWxhDQptYXJrdXBzIHdoaWNoIGRv
IG5vdCBpbXBhY3QgdGhlIHByZXNlbnRhdGlvbiwgc29tZSBzcGVjaWFsIHRhZ3MNCihcc2NvcGUs
IFxheGlvbSwuLi4pIGFuZCBhIHdlYXZlciBwcm9ncmFtLCBhbG9uZyB3aXRoIHRoZSBhYmlsaXR5
IHRvDQpyZWFkIHRoZSBsYXRleCBhbmQgZXh0cmFjdCBuYW1lZCBmb3JtdWxhcyAoYWthIGEgbGl0
ZXJhdGUgcHJvZ3JhbSwNCndoaWNoIEF4aW9tIGFscmVhZHkgY2FuIGRvKS4NCg0KSXQgb3VnaHQg
dG8gYmUgcG9zc2libGUgKGJ5IGRlc2lnbikgdG8gY3JlYXRlIGEgc2VtYW50aWMgdmVyc2lvbiBv
Zg0KQ1JDIHRoYXQgYW55IHN5c3RlbSBjb3VsZCBpbXBvcnQsIGFzc3VtaW5nIGEgInN1ZmZpY2ll
bnRseSBjbGV2ZXINCndlYXZlciIuDQoNCk9uIGEgbW9yZSBhbWJpdGlvdXMgbm90ZSwgSSBhbSB0
cnlpbmcgdG8gZmluZCBhIHdheSB0byBrZWVwIHRoZSBzZWxhdGV4DQptYXJrdXAgImhpZGRlbiIg
aW4gYSBwZGYgYW5kIHVzZSBpdCBhcyB0aGUgY2xpcGJvYXJkIHBhc3RlIHdoZW4gdGhlDQpmb3Jt
dWxhIGlzIHNlbGVjdGVkLiBBbnlvbmUgd2l0aCBhIGNsdWUsIHBsZWFzZSBoZWxwLg0KDQo9PT09
PT09PT09PT09PT0NCg0KWzBdIFF1ZWlubmVjLCBDaHJpc3RvcGhlciwgIkxpc3AgaW4gU21hbGwg
UGllY2VzIiBJU0JOIDk3OC0wNTIxNTQ1NjYyDQooMjAwMykNCg0KWzFdIFdlc3RlciwgTWljaGFl
bCBKLiBhbmQgRGFseSwgVEltb3RoeSAiUm9zZXR0YSINCmh0dHA6Ly9heGlvbS1kZXZlbG9wZXIu
b3JnL2F4aW9tLXdlYnNpdGUvcm9zZXR0YS5wZGYNCg0KDQoNCg0KT24gVGh1LCBBdWcgMTgsIDIw
MTYgYXQgNTozMCBQTSwgUmljaGFyZCBGYXRlbWFuIDxmYXRlbWFuQGJlcmtlbGV5LmVkdTxtYWls
dG86ZmF0ZW1hbkBiZXJrZWxleS5lZHU+PiB3cm90ZToNCnRoYW5rcyBmb3IgYWxsIHRoZSByZWZl
cmVuY2VzIDopDQoNCkknbSBub3Qgc3VyZSBpZiBJJ20gZ29pbmcgdG8gcmVwZWF0IGNvbW1lbnRz
IEkgIG1hZGUgYWxyZWFkeSBzb21ld2hlcmUuDQpGaXJzdCwgIGhhcyBEYW4gWndpbGxpbmdlciB3
ZWlnaGVkIGluPyAgSSB0aGluayB0aGF0IGl0IHdvdWxkIGJlIHVzZWZ1bA0KdG8gc2VlIHdoYXQg
aGUgaGFzIGRvbmUuDQoNCk5leHQsIHRoZXJlIGFyZSBhbWJpZ3VpdGllcyBhbW9uZyBDQVMgYW5k
IGV2ZW4gd2l0aGluIGEgc2luZ2xlIENBUy4NCg0KRm9yIGV4YW1wbGUsIGluIE1hY3N5bWEvIE1h
eGltYSAgdGhlcmUgaXMgZ2VuZXJhbGx5IG5vIHNlbWFudGljcw0KYXNzb2NpYXRlZCB3aXRoICI9
IiBvciAiPiIuICAgQnV0IGluIHNvbWUgY29udGV4dHMsIHRoZXJlIGlzIHNvbWUgbWVhbmluZy4N
Cg0KeD4yKnkNCg0KaXMgYSB0cmVlIGV4cHJlc3Npb24uICBJdCBpcyBub3QgYXNzb2NpYXRlZCB3
aXRoIHggb3Igd2l0aCB5Lg0KDQphc3N1bWUoeD4yKnkpICAgZG9lcyBtZWFuIHNvbWV0aGluZyAu
Li4gaXQgcHV0cyBpbmZvIGluIGEgZGF0YWJhc2UuDQpTb21laG93IGVuY29kaW5nIHRoZSBtZXRo
b2QgdG8gZXh0cmFjdCB0aGlzIGluZm9ybWF0aW9uIGludG8gU0VBTEFURVgNCihTZUxhVGVYPykg
aW4gYSBDQVMtaW5kZXBlbmRlbnQgd2F5IC0tIHRoYXQncyBxdWl0ZSBhIHRhc2suICAgSW4NCnBh
cnRpY3VsYXIsIGl0IHdvdWxkIHNlZW0gdG8gcmVxdWlyZSBhbiB1bmRlcnN0YW5kaW5nIG9mIHdo
YXQgYXNzdW1lKCkNCmRvZXMgaW4gTWF4aW1hLCBhbmQgd2hhdCBpcygpIGRvZXMgYWxzby4NCg0K
eCBhbmQgbm90IHggICBoYXMgbm8gcGFydGljdWxhciBtZWFuaW5nLCAgYnV0IGlmIHggaXMgZXhw
bGljaXRseSB0cnVlIG9yIGZhbHNlLA0KTWF4aW1hIHNpbXBsaWZpZXMgaXQgdG8gZmFsc2UuICBJ
ZiBTRUFMQVRFWCBoYXMgYSBzZW1hbnRpY3MgLS0gYXJlIHlvdQ0KZGVmaW5pbmcgeWV0IGFub3Ro
ZXIgQ0FTPyAgT3IgcGVyaGFwcyB5b3Ugc2hvdWxkIGxpbmsgaXQgMTAwJSB0byBBeGlvbSdzDQpz
ZW1hbnRpY3MsIHdoaWNoIHlvdSBwcmVzdW1hYmx5IGtub3cgYWJvdXQgYW5kIGNhbiBtb2RpZnku
DQoNCkFzIGZhciBhcyByZWNvcmRpbmcgc3R1ZmYgaW4gRExNRiAtLSB0aGVyZSBhcmUgcHJlc3Vt
YWJseSBzY29wZSBpc3N1ZXMNCigiaW4gdGhpcyBjaGFwdGVyIG4sbSBhcmUgbmF0dXJhbCBudW1i
ZXJzLi4uLiIpICBhbmQgbWF5YmUgZXZlbiBhIG5lZWQNCnRvIG1ha2UgdmFsdWUgYXNzaWdubWVu
dHMuDQpJIHRoaW5rIHlvdSBuZWVkIHRvIG1vZGVsIHRoZXNlIGluIFNFQUxBVEVYIHRvby4NCg0K
SnVzdCBtdXNpbmcgYWJvdXQgd2hlcmUgeW91IGFyZSBoZWFkaW5nLg0KDQpSSkYNCg0KDQoNCg0K
T24gOC8xOC8yMDE2IDExOjQ1IEFNLCBUaW0gRGFseSB3cm90ZToNCkZhdGVtYW4gWzBdIHJhaXNl
ZCBhIHNldCBvZiBpc3N1ZXMgd2l0aCB0aGUgT3Blbk1hdGgNCmFwcHJvYWNoLiBXZSBhcmUgbm90
IHRyeWluZyB0byBiZSBjcm9zcy1wbGF0Zm9ybSBpbiB0aGlzDQplZmZvcnQuIEF4aW9tIGRvZXMg
cHJvdmlkZSBhbiBhbGdlYnJhaWMgc2NhZmZvbGQgc28gaXQgaXMNCnBvc3NpYmxlIHRoYXQgdGhl
IHNlbGF0ZXggbWFya3VwIG1pZ2h0IGJlIHVzZWZ1bCBlbHNld2hlcmUNCmJ1dCB0aGF0IGlzIG5v
dCBhIGRlc2lnbiBjcml0ZXJpb24uDQoNCkZhdGVtYW5bMV0gYWxzbyByYWlzZXMgc29tZSBkaWZm
aWN1bHQgY3Jvc3MtcGxhdGZvcm0gaXNzdWVzDQp0aGF0IGFyZSBub3QgcGFydCBvZiB0aGlzIGRl
c2lnbi4NCg0KRmF0ZW1hblsyXSBzaG93cyB0aGF0IHBhcnNpbmcgdGV4IHdpdGggb25seSBzeW50
YWN0aWMgbWFya3VwDQpzdWNjZWVkZWQgb24gb25seSA0MyUgb2YgMTA3NDAgaW5wdXRzLiBJdCBv
dWdodCB0byBiZSBwb3NpYmxlDQp0byBpbmNyZWFzZSB0aGlzIHBlcmNlbnRhZ2UgZ2l2ZW4gcHJv
cGVyIHNlbWFudGljIG1hcmt1cC4NCihQZXJoYXBzIHRoZXJlIHNob3VsZCBiZSBhIGNvbXBldGl0
aW9uIHNpbWlsYXIgdG8gdGhlIGRlZXANCmxlYXJuaW5nIGdyb3Vwcz8gUGhEcyBoYXZlIGJlZW4g
YXdhcmRlZCBvbiBpbmNyZW1lbnRhbA0KaW1wcm92ZW1lbnRzIG9mIHRoZSBwZXJjZW50YWdlKQ0K
DQpUaGlzIGlzIGEgZGVzaWduLWJ5LWNyYXdsIGFwcHJvYWNoIHRvIHRoZSBzZW1hbnRpYyBtYXJr
dXANCmlkZWEuIFRoZSBob3BlIGlzIHRvIGdldCBzb21ldGhpbmcgcnVubmluZyB0aGlzIHdlZWsg
dGhhdA0KJ3dvcmtzJyBidXQgZ2l2aW5nIGR1ZSBjb25zaWRlcmF0aW9uIHRvIGdsb2JhbCBhbmQg
bG9uZy10ZXJtDQppc3N1ZXMuIEEgZmlyc3QgZ2xhbmNlIGF0IENSQy9OSVNUIHJhaXNlcyBtb3Jl
IHF1ZXN0aW9ucw0KdGhhbiBhbnN3ZXJzIGFzIGlzIHVzdWFsIHdpdGggYW55IHJlc2VhcmNoLg0K
DQpJdCBJUyBhIGRlc2lnbiBnb2FsIHRvIHN1cHBvcnQgYSBDb21wdXRlciBBbGdlYnJhIFRlc3Qg
U3VpdGUNCihodHRwOi8vYXhpb20tZGV2ZWxvcGVyLm9yZy9heGlvbS13ZWJzaXRlL0NBVFMpLiBJ
dCBpcyB2ZXJ5DQp0ZWRpb3VzIHRvIGhhbmQgY29uc3RydWN0IHRlc3Qgc3VpdGVzLiBJdCB3aWxs
IGJlIGV2ZW4gbW9yZQ0KdGVkaW91cyB0byBjb25zdHJ1Y3QgdGhlbSAic2Vjb25kLWxldmVsIiBi
eSBkb2luZyBzZW1hbnRpYw0KbWFya3VwIGFuZCB0aGVuIHRyeWluZyB0byB1c2UgdGhlbSBhcyBp
bnB1dCwgYnV0IHRoZSBob3BlIGlzDQp0aGF0IGV2ZW50dWFsbHkgdGhlIENSQy9OSVNUL0cmUiwg
ZXRjIHdpbGwgZXZlbnR1YWxseSBiZQ0KcHVibGlzaGVkIHdpdGggc2VtYW50aWNzIHNvIGNvbXB1
dGF0aW9uYWwgbWF0aGVtYXRpY3MgY2FuDQpzdG9wIHdvcmtpbmcgZnJvbSBzeW50YXguDQoNCj09
PT09PT09PT09DQpDb25zaWRlcmF0aW9uIDQ6IEkvTyB0cmFuc3BhcmVuY3kNCg0KQXNzdW1lIGZv
ciB0aGUgbW9tZW50IHRoYXQgd2UgdGFrZSBhIGxhdGV4IGZpbGUgY29udGFpbmluZw0Kb25seSBm
b3JtdWxhcy4gV2Ugd291bGQgbGlrZSB0byBiZSBhYmxlIHRvIHJlYWQgdGhpcyBmaWxlIHNvDQpp
dCBoYXMgY29tcHV0YXRpb25hbCBtYXRoZW1hdGljcyAoQ00pIHNlbWFudGljcy4NCg0KSXQgaXMg
Y2xlYXIgdGhhdCB0aGVyZSBuZWVkcyB0byBiZSBzZW1hbnRpYyB0YWdzIHRoYXQgY2FycnkgdGhl
DQppbmZvcm1hdGlvbiBidXQgdGhlc2UgdGFncyBoYXZlIHRvIGJlIGNhcmVmdWxseSBkZXNpZ25l
ZCBOT1QNCnRvIGNoYW5nZSB0aGUgc3ludGFjdGljIGRpc3BsYXkuIFRoZXkgbWF5LCBhcyBub3Rl
ZCBiZWZvcmUsDQpyZXF1aXJlIG11bHRpcGxlIHNlbWFudGljIHZlcnNpb25zIGZvciBhIHNpbmds
ZSBzeW50YXguDQoNCkl0IGlzIGFsc28gY2xlYXIgdGhhdCB3ZSB3b3VsZCBsaWtlIHRvIGJlIGFi
bGUgdG8gb3V0cHV0IGZvcm11bGFzDQp3aXRoIENNIHNlbWFudGljcyB3aGVyZSBjdXJyZW50bHkg
d2Ugb25seSBvdXRwdXQgc3ludGF4Lg0KDQo9PT09PT09PT09PQ0KQ29uc2lkZXJhdGlvbiA1OiBJ
L08gaXNvbW9ycGhpc20NCg0KQW4gaW1wb3J0YW50IHByb3BlcnR5IG9mIHNlbGF0ZXggaXMgYW4g
aXNvbW9ycGhpc20gd2l0aA0KaW5wdXQvb3V0cHV0LiBBeGlvbSBhbGxvd3Mgb3V0cHV0IGZvcm1z
IHRvIGJlIGRlZmluZWQgZm9yIGENCnZhcmlldHkgb2YgdGFyZ2V0cyBzbyB0aGlzIGRvZXMgbm90
IHNlZW0gdG8gYmUgYSBwcm9ibGVtLiBGb3INCmlucHV0LCBob3dldmVyLCB0aGlzIG1lYW5zIHRo
YXQgdGhlIHJlYWRlciBoYXMgdG8ga25vdyBob3cNCnRvIGV4cGFuZCBcSU5UezN9IGludG8gdGhl
IGNvcnJlY3QgZG9tYWluLiBUaGlzIGNvdWxkIGJlIGRvbmUNCndpdGggYSBzdGFuZC1hbG9uZSBw
cmUtcHJvY2Vzc29yIGZyb20gc2VsYXRleC0+aW5wdXRmb3JtLg0KDQpJdCBzaG91bGQgYmUgcG9z
c2libGUgdG8gcmVhZC10aGVuLXdyaXRlIGFuIHNlbGF0ZXggZm9ybXVsYSwNCm9yIHdyaXRlLXRo
ZW4tcmVhZCBhbiBzZWxhdGV4IGZvcm11bGEgd2l0aCBpZGVudGljYWwgc2VtYW50aWNzLg0KDQpU
aGF0IG1pZ2h0IG5vdCBtZWFuIHRoYXQgdGhlIEkvTyBpcyBpZGVudGljYWwgdGhvdWdoIGR1ZSB0
bw0KdGhpbmdzIGxpa2UgdmFyaWFibGUgb3JkZXJpbmcsIGV0Yy4NCg0KPT09PT09PT09PT0NCkNv
bnNpZGVyYXRpb24gNjogTGF0ZXggc2VtYW50aWMgbWFjcm9zDQoNClNlbWFudGljIG1hcmt1cCB3
b3VsZCBiZSBncmVhdGx5IHNpbXBsaWZpZWQgaWYgc2VsYXRleCBwcm92aWRlZA0KYSBtZWNoYW5p
c20gc2ltaWxhciB0byBBeGlvbSdzIGFiaWxpdHkgdG8gZGVmaW5lIHR5cGVzICJvbiB0aGUgZmx5
Ig0KdXNpbmcgZWl0aGVyIGFzc2lnbm1lbnQNCg0KICAgVFlQOj1GUkFDKFBPTFkoSU5UKSkNCg0K
b3IgbWFjcm8gZm9ybQ0KDQogICBUWVAgPT0+IEZSQUMoUE9MWShJTlQpKQ0KDQpMYXRleCBpcyBj
YXBhYmxlIG9mIGRvaW5nIHRoaXMgYW5kIHNlbGF0ZXggc2hvdWxkIHByb2JhYmx5IGluY2x1ZGUN
CmEgc2V0IG9mIHByZS1kZWZpbmVkIGNvbW1vbiBtYXJrdXBzLCBzdWNoIGFzDQoNCiAgXEZSSU5U
ID09PiBcRlJBQ1xJTlQNCg0KPT09PT09PT09PT0NCkNvbnNpZGVyYXRpb24gNzogc2VsYXRleCBc
YmVnaW57c2VtYW50aWN9IGVudmlyb25tZW50Pw0KDQpDdXJyZW50bHkgQXhpb20gcHJvdmlkZXMg
YSAnY2h1bmsnIGVudmlyb25tZW50IHdoaWNoIHN1cnJvdW5kcw0Kc291cmNlIGNvZGUuIFRoZSBj
aHVua3MgYXJlIG5hbWVkIHNvIHRoZXkgY2FuIGJlIGV4dHJhY3RlZA0KaW5kaXZpZHVhbGx5IG9y
IGluIGdyb3Vwcw0KDQogICBcYmVnaW57Y2h1bmt9e2EgbmFtZSBmb3IgdGhlIGNodW5rfQ0KICAg
ICAgYW55dGhpbmcNCiAgIFxlbmR7Y2h1bmt9DQoNCldlIGNvdWxkIHByb3ZpZGUgYSBzaW1pbGFy
IGVudmlyb25tZW50IGZvciBzZW1hbnRpY3Mgc3VjaCBhcw0KDQogIFxiZWdpbntzZW1hbnRpY3N9
e2EgbmFtZSBmb3IgdGhlIGJsb2NrfQ0KICBcZW5ke3NlbWFudGljc30NCg0Kd2hpY2ggd291bGQg
cHJvdmlkZSBhIHdheSB0byBlbmNhcHN1bGF0ZSBtYXJrdXAgYW5kIGFsc28gYWxsb3cNCmEgcGFy
dGljdWxhciBibG9jayB0byBiZSBleHRyYWN0ZWQgaW4gbGl0ZXJhdGUgcHJvZ3JhbW1pbmcgc3R5
bGUuDQoNCj09PT09PT09PT09DQpDb25zaWRlcmF0aW9uIDg6IExhdGV4LXRpbWUgcHJvY2Vzc2lu
Zw0KDQpBeGlvbSBjdXJyZW50bHkgY3JlYXRlcyBzcGVjaWZpYyBmaWxlcyB1c2luZyBcd3JpdGUg
dG8gY3JlYXRlDQppbnRlcm1lZGlhdGUgZmlsZXMgKGUuZy4gZm9yIHRhYmxlcykuIFRoaXMgdGVj
aG5pcXVlIGNhbiBiZSB1c2VkDQp0byBlbmhhbmNlIGxhdGV4LXRpbWUgZGVidWdnaW5nICh3aGVy
ZSBkaWQgaXQgZmFpbD8pLg0KDQpJdCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgQXhpb20gZmlsZXMg
d2hpY2ggcHJlLWNvbnN0cnVjdCBkb21haW5zDQpuZWVkZWQgd2hlbiB0aGUgaW5wdXQgZmlsZSB3
aXRoIHNlbWFudGljIG1hcmt1cCBpcyByZWFkLg0KDQpUaGlzIHdvdWxkIGhlbHAgYSBzdGFuZC1h
bG9uZSBzZWxhdGV4LT5pbnB1dGZvcm0gcHJlcHJvY2Vzc29yLg0KDQo9PT09PT09PT09PQ0KQ29u
c2lkZXJhdGlvbiA5OiBEZXNpZ24gc2tldGNoZXMNCg0KSXQgaXMgYWxsIHdlbGwtYW5kLWdvb2Qg
dG8gaGFuZC13YXZlIGF0IHRoaXMgaWRlYSBidXQgYSBsYXJnZQ0KYW1vdW50IG9mIHRoaXMgbWFj
aGluZXJ5IGFscmVhZHkgZXhpc3RzLg0KDQpJdCB3b3VsZCBzZWVtIHVzZWZ1bCB0byBkZXZlbG9w
IGFuIGluY3JlbWVudGFsIHRlc3Qgc3VpdGUgdGhhdA0Kc3RhcnRzIHdpdGggInByaW1pdGl2ZSIg
ZG9tYWlucyAoZS5nLiBJTlQpLCBjcmVhdGluZyBzZWxhdGV4IEkvTy4NCg0KT25jZSB0aGVzZSBh
cmUgaW4gcGxhY2Ugd2UgY291bGQgd29yayBvbiAidHlwZSB0b3dlciIgbWFya3VwDQpzdWNoIGFz
IFxGUkFDXElOVCBvciBcUE9MWVxDT01QTEVYXEZMT0FULg0KDQpGb2xsb3dpbmcgdGhhdCBtaWdo
dCBiZSBwcmUtZXhpc3RpbmcgbGF0ZXggZnVuY3Rpb25zIGxpa2UgXGludCwgXHN1bSwNClxjb3Ms
IGV0Yy4NCg0KVG8gdmFsaWRhdGUgdGhlc2UgaWRlYXMgQXhpb20gd2lsbCBpbmNsdWRlIGFuIHNl
bGF0ZXguc3R5IGZpbGUgYW5kDQpzb21lIHVuaXQgdGVzdHMgZmlsZXMgb24gcHJpbWl0aXZlIGRv
bWFpbiBtYXJrdXAuIFRoYXQgc2hvdWxkIGJlDQplbm91Z2ggdG8gc3RhcnQgdGhlIGJpa2VzaGVk
IGRpc2N1c3Npb25zLg0KDQpJZGVhcz8gQ29uc2lkZXJhdGlvbnM/IFN1Z2dlc3Rpb25zPw0KDQpU
aW0NCg0KWzBdIEZhdGVtYW4sIFJpY2hhcmQgSi4NCiJBIENyaXRpcXVlIG9mIE9wZW5NYXRoIGFu
ZCBUaG91Z2h0cyBvbg0KRW5jb2RpbmcgTWF0aGVtYXRpY3MsIEphbnVhcnksIDIwMDEiDQpodHRw
czovL3Blb3BsZS5lZWNzLmJlcmtlbGV5LmVkdS9+ZmF0ZW1hbi9wYXBlcnMvb3Blbm1hdGhjcml0
LnBkZjxodHRwczovL3Blb3BsZS5lZWNzLmJlcmtlbGV5LmVkdS8lN0VmYXRlbWFuL3BhcGVycy9v
cGVubWF0aGNyaXQucGRmPg0KDQpbMV0gRmF0ZW1hbiwgUmljaGFyZCBKLg0KIlZlcmJzLCBOb3Vu
cywgYW5kIENvbXB1dGVyIEFsZ2VicmEsIG9yIFdoYXQncyBHcmFtbWFyIEdvdCB0bw0KZG8gd2l0
aCBNYXRoPyAiLCBEZWNlbWJlciAxOCwgMjAwOA0KaHR0cHM6Ly9wZW9wbGUuZWVjcy5iZXJrZWxl
eS5lZHUvfmZhdGVtYW4vcGFwZXJzL25vdW52ZXJibWFjLnBkZjxodHRwczovL3Blb3BsZS5lZWNz
LmJlcmtlbGV5LmVkdS8lN0VmYXRlbWFuL3BhcGVycy9ub3VudmVyYm1hYy5wZGY+DQoNClsyXSBG
YXRlbWFuLCBSaWNoYXJkIEouDQoiUGFyc2luZyBUZVggaW50byBNYXRoZW1hdGljcyIsDQpodHRw
czovL3Blb3BsZS5lZWNzLmJlcmtlbGV5LmVkdS9+ZmF0ZW1hbi9wYXBlcnMvcGFyc2luZ190ZXgu
cGRmPGh0dHBzOi8vcGVvcGxlLmVlY3MuYmVya2VsZXkuZWR1LyU3RWZhdGVtYW4vcGFwZXJzL3Bh
cnNpbmdfdGV4LnBkZj4NCg0KDQoNCg0KDQoNCg0KDQoNCg==

--_000_147213146015822792ccnycunyedu_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgc3R5bGU9
ImRpc3BsYXk6bm9uZSI+PCEtLSBwIHsgbWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOiAw
cHg7IH0tLT48L3N0eWxlPg0KPC9oZWFkPg0KPGJvZHkgZGlyPSJsdHIiIHN0eWxlPSJmb250LXNp
emU6MTJwdDtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6I0ZGRkZGRjtmb250LWZhbWls
eTpDYWxpYnJpLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyI+DQo8cD7igItIaSBUaW06PGJy
Pg0KPC9wPg0KPHA+PGJyPg0KPC9wPg0KPHA+QSBxdWVzdGlvbjogaG93IHdvdWxkJm5ic3A7eW91
IGhhbmRsZSBvdmVybG9hZGluZyBvZiBvcGVyYXRvcnMgbGlrZSAqICgmcXVvdDttdWx0aXBsaWNh
dGlvbiZxdW90OykgaW4gYSBzZW1hbnRpYyBtYXJrLXVwPyAmbmJzcDtOZWVkJm5ic3A7dGhlIG1h
cmt1cCBiZSBhcyBkZXRhaWxlZCBhcyB0aGUgY29tcGlsZXIgcmVxdWlyZXMgb3IganVzdCZuYnNw
O3Nsb3BweSBlbm91Z2ggdGhhdCZuYnNwO3RoZSBpbnRlcnByZXRlciBjYW4gZmlndXJlIG91dCB0
aGUgY29ycmVjdCBzZW1hbnRpYz88YnI+DQo8L3A+DQo8cD48YnI+DQo8L3A+DQo8cD5XaWxsaWFt
PGJyPg0KPC9wPg0KPHA+PGJyPg0KPC9wPg0KPGRpdiBpZD0iU2lnbmF0dXJlIj4NCjxkaXYgbmFt
ZT0iZGl2dGFnZGVmYXVsdHdyYXBwZXIiIHN0eWxlPSJmb250LWZhbWlseTpDYWxpYnJpLEFyaWFs
LEhlbHZldGljYSxzYW5zLXNlcmlmOyBmb250LXNpemU6OyBtYXJnaW46MCI+DQo8ZGl2IG5hbWU9
ImRpdnRhZ2RlZmF1bHR3cmFwcGVyIiBzdHlsZT0iZm9udC1mYW1pbHk6Q2FsaWJyaSxBcmlhbCxI
ZWx2ZXRpY2Esc2Fucy1zZXJpZjsgZm9udC1zaXplOjsgbWFyZ2luOjAiPg0KV2lsbGlhbSBTaXQ8
YnI+DQpQcm9mZXNzb3IgRW1lcml0dXM8YnI+DQpEZXBhcnRtZW50IG9mIE1hdGhlbWF0aWNzPGJy
Pg0KVGhlIENpdHkgQ29sbGVnZSBvZiBUaGUgQ2l0eSBVbml2ZXJzaXR5IG9mIE5ldyBZb3JrPGJy
Pg0KTmV3IFlvcmssIE5ZIDEwMDMxPGJyPg0KPC9kaXY+DQo8ZGl2IG5hbWU9ImRpdnRhZ2RlZmF1
bHR3cmFwcGVyIiBzdHlsZT0iZm9udC1mYW1pbHk6Q2FsaWJyaSxBcmlhbCxIZWx2ZXRpY2Esc2Fu
cy1zZXJpZjsgZm9udC1zaXplOjsgbWFyZ2luOjAiPg0KaG9tZXBhZ2U6IHdzaXQuY2NueS5jdW55
LmVkdTwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9ImNvbG9yOiByZ2IoMzMsIDMz
LCAzMyk7Ij4NCjxociB0YWJpbmRleD0iLTEiIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jazsg
d2lkdGg6OTglIj4NCjxkaXYgaWQ9ImRpdlJwbHlGd2RNc2ciIGRpcj0ibHRyIj48Zm9udCBmYWNl
PSJDYWxpYnJpLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCIgc3R5bGU9ImZvbnQtc2l6ZTox
MXB0Ij48Yj5Gcm9tOjwvYj4gQXhpb20tZGV2ZWxvcGVyICZsdDtheGlvbS1kZXZlbG9wZXItYm91
bmNlcyYjNDM7d3lzY2M9c2NpLmNjbnkuY3VueS5lZHVAbm9uZ251Lm9yZyZndDsgb24gYmVoYWxm
IG9mIFRpbSBEYWx5ICZsdDtheGlvbWNhc0BnbWFpbC5jb20mZ3Q7PGJyPg0KPGI+U2VudDo8L2I+
IFRodXJzZGF5LCBBdWd1c3QgMjUsIDIwMTYgNjoxNyBBTTxicj4NCjxiPlRvOjwvYj4gRGFuIFp3
aWxsaW5nZXI8YnI+DQo8Yj5DYzo8L2I+IFJpY2hhcmQgRmF0ZW1hbjsgSmFtZXMgRGF2ZW5wb3J0
OyB2ZGhvZXZlbkBsaXgucG9seXRlY2huaXF1ZS5mcjsgTWlrZSBEZXdhcjsgYXhpb20tZGV2OyBh
bGJlcnRfcmljaEBtc24uY29tPGJyPg0KPGI+U3ViamVjdDo8L2I+IFJlOiBbQXhpb20tZGV2ZWxv
cGVyXSBEZXNpZ24gVGhvdWdodHMgb24gU2VtYW50aWMgTGF0ZXggKFNFTEFURVgpPC9mb250Pg0K
PGRpdj4mbmJzcDs8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXYgZGlyPSJsdHIiPg0KPGRpdj4N
CjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxk
aXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8ZGl2Pk15IGluaXRpYWwgYXBwcm9hY2ggd2FzIHRvbyBoZWF2eS1oYW5kZWQg
YW5kIEF4aW9tIHNwZWNpZmljLjxicj4NCjwvZGl2Pg0KPGRpdj48YnI+DQpJdCBzZWVtcyB0aGUg
c2VtYW50aWMgbWFya3VwIHRhc2sgY2FuIGJlIHZpZXdlZCBhcyBhbiBlZGl0b3I8YnI+DQo8L2Rp
dj4NCnRhc2suIEVkaXRvcnMgZG9uJ3QgY2FyZSBhYm91dCBzZW1hbnRpY3MsIHRoZXkganVzdCB3
b3JrIG9uIHRleHQuPGJyPg0KPC9kaXY+DQpWaWV3ZWQgdGhpcyB3YXkgdGhlIG1hcmt1cCdzIG9u
bHkgZnVuY3Rpb24gaXMgZGVjb3JhdGlvbiBmb3I8YnI+DQo8L2Rpdj4NCnBvc3QtcHJvY2Vzc2lu
Zy4gSXQgaXMgKG1vc3RseSkgc3lzdGVtIGluZGVwZW5kZW50Ljxicj4NCjxicj4NCjwvZGl2Pg0K
VGhlIGVkaXQgdGFza3Mgc2VlbSB0byBiZSB7ZGVsZXRlLCBpbnNlcnQsIHJlcGxhY2V9IGFuZCBz
b21lPGJyPg0KPC9kaXY+DQpwb3N0LW1hcmt1cCBoaW50cyB7ZnVuY3Rpb24sIHR5cGV9PGJyPg0K
PGJyPg0KPC9kaXY+DQpUaGUgZGVsZXRlIG1hcmt1cCB0ZWxscyB3ZWF2ZXIgdG8gcmVtb3ZlIHRo
ZSBsYXRleCBjb21wbGV0ZWx5Ljxicj4NCjwvZGl2Pg0KVGhpcyBpcyB1c2VmdWwgZm9yIHRoaW5n
cyBsaWtlIHtkeH08YnI+DQo8YnI+DQo8L2Rpdj4NClRoZSBpbnNlcnQgbWFya3VwIGFkZHMgbWlz
c2luZyBzZW1hbnRpYyB0ZXh0LCBzdWNoIGFzIHsqfSB3aGljaDxicj4NCjwvZGl2Pg0KaXMgbmVl
ZGVkIHRvIGluZGljYXRlIG11bHRpcGxpY2F0aW9uLjxicj4NCjxicj4NCjwvZGl2Pg0KVGhlIHJl
cGxhY2UgbWFya3VwIGdpdmVzIGFsdGVybmF0ZSB0ZXh0IGZvciB3ZWF2ZXIsIGZvciB0aGluZ3Mg
d2hlcmU8YnI+DQo8L2Rpdj4NCnRoZSBmdW5jdGlvbiBuYW1lIG1pZ2h0IGRpZmZlciwgZS5nLiBc
aW50IC0mZ3Q7IGludGVncmF0ZTxicj4NCjxicj4NCjwvZGl2Pg0KVGhlIGZ1bmN0aW9uIG1hcmt1
cCBuYW1lcyBhIGZ1bmN0aW9uIHRoYXQgd2VhdmVyIHNob3VsZCBjYWxsPGJyPg0KPC9kaXY+DQp3
aGljaCBhbGxvd3Mgc3BlY2lhbCBoYW5kbGluZyBpbiBwb3N0LXByb2Nlc3NpbmcuIEl0IGNhbiBi
ZSBhbnk8YnI+DQo8L2Rpdj4NCnMtZXhwcmVzc2lvbiAodGhlIHdlYXZlciBpbXBsZW1lbnRhdGlv
biBpcyBjdXJyZW50bHkgbGlzcC1iYXNlZCkuPGJyPg0KPGJyPg0KPC9kaXY+DQpUaGUgdHlwZSBt
YXJrdXAgcGFzc2VzIHR5cGUgaW5mb3JtYXRpb24gdG8gd2VhdmVyIHNvIEF4aW9tIDxicj4NCjwv
ZGl2Pg0Ka25vd3MgdGhlIHRhcmdldCB0eXBlLCB1c2VmdWwgZm9yIHRoaW5ncyBsaWtlIG1hdHJp
eC48YnI+DQo8YnI+DQo8L2Rpdj4NClRoZSBtYWNyb3MgYXJlPGJyPg0KPGJyPg0KPC9kaXY+DQpc
bmV3Y29tbWFuZHtcQUR9WzFdeyMxfSUgZGVsZXRlPGJyPg0KPC9kaXY+DQpcbmV3Y29tbWFuZHtc
QUl9WzFde30lIGluc2VydDxicj4NCjwvZGl2Pg0KXG5ld2NvbW1hbmR7XEFSfVsyXXsjMX0lIHJl
cGxhY2U8YnI+DQo8YnI+DQo8L2Rpdj4NClxuZXdjb21tYW5ke1xBRn1bMl17IzF9JSBmdW5jdGlv
bjxicj4NCjwvZGl2Pg0KXG5ld2NvbW1hbmR7XEFUfVsyXXsjMX0lIHR5cGU8YnI+DQo8YnI+DQo8
L2Rpdj4NCk5vdGUgdGhhdCBcQUkgb3V0cHV0cyBub3RoaW5nLCBzbyAzXEFJeyp9eCA9PSAzeCB0
byBsYXRleC48YnI+DQo8YnI+DQo8L2Rpdj4NClxBRCB0ZWxscyB3ZWF2ZXIgdG8gZGVsZXRlIHRo
ZSB0ZXh0LCBlLmcuIHtcQUQgfmR4fSA9PSB+ZHggdG8gbGF0ZXg8YnI+DQo8YnI+DQo8L2Rpdj4N
ClxBUiB0ZWxscyB3ZWF2ZXIgdG8gcmVwbGFjZSB0aGUgdGV4dCBlLmcuIHtcQVIgXHBpfXtcJXBp
fTxicj4NCjxicj4NCjwvZGl2Pg0KXEFGIHRlbGxzIHdlYXZlciB0byBjYWxsIGEgZnVuY3Rpb24s
IGUuZy4gb25lIHRoYXQga25vd3MgaG93IHRvIDxicj4NCjwvZGl2Pg0KcmV3cml0ZSB0aGUgaW5w
dXQgaW4gYSBzcGVjaWFsIHdheSwgb3IgZG9lcyB0cmFjaW5nLCBldGMuPGJyPg0KPGJyPg0KPC9k
aXY+DQpcQVQgYWRkcyB0YXJnZXQgdHlwZSBpbmZvcm1hdGlvbiBmb3IgQXhpb208YnI+DQo8L2Rp
dj4NCmUuZy4gXEFUezN4JiM0Mzs2fXtQT0xZKElOVCl9ID09IDN4JiM0Mzs2IHRvIGxhdGV4IGJ1
dCBwYXNzZXMgaXQgYXM8YnI+DQo8L2Rpdj4NCmEgUG9seW5vbWlhbChJbnRlZ2VyKSB0byBBeGlv
bTxicj4NCjxicj4NCjwvZGl2Pg0KRm9yIGV4YW1wbGUsPGJyPg0KPGJyPg0KPC9kaXY+DQokXGlu
dHtcZnJhY3tkeH17YXgqYn19JDxicj4NCjxicj4NCjwvZGl2Pg0KYmVjb21lczxicj4NCjxicj4N
CjwvZGl2Pg0KJFxBVHtcQVJ7XGludH17aW50ZWdyYXRlfXtcZnJhY3tcQUR7ZHh9fXthXEFJeyop
eCYjNDM7Yn19fXtFWFBSfXtJTlR9fSQ8YnI+DQo8YnI+DQo8L2Rpdj4NCnRlbGxpbmcgd2VhdmVy
IHRoYXQgdGhlIHRhcmdldCB0eXBlIChBVCkgaXMgRVhQUihJTlQpLCA8YnI+DQo8L2Rpdj4NCjxk
aXY+dGhlIFxpbnQgaXMgcmVhbGx5IGludGVncmF0ZTxicj4NCjwvZGl2Pg0KPGRpdj50aGUgZHgg
aXMgdG8gYmUgaWdub3JlZCBhbmQ8YnI+DQo8L2Rpdj4NCjxkaXY+dGhlIGF4JiM0MztiIHNob3Vs
ZCByZWFkIGEqeCYjNDM7Yjxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5UaGVyZSBpcyBhbiBvYnZp
b3VzIHRyYWRlb2ZmIG9mIG1hcmt1cCB2cyB3ZWF2ZXIuIDxicj4NCkZvciBleGFtcGxlLiBcaW50
IG1pZ2h0IGJlIGtub3duIHRvIHdlYXZlci48YnI+DQo8L2Rpdj4NCjxkaXY+T3IgZXhwcmVzc2lv
bnMgbWlnaHQgY2FsbCBhbiBlcXVhdGlvbiByZXdyaXRlciB0byBhZGQgeyp9PGJyPg0KPGJyPg0K
PC9kaXY+DQo8ZGl2PlRoZSBtYXJrdXAgY291bGQgdmFyeSBmcm9tIGFsbW9zdCBub3RoaW5nIHRv
IG1hc3NpdmUgZGV0YWlsPGJyPg0KPC9kaXY+DQo8ZGl2PmRlcGVuZGluZyBvbiB0aGUgZG93bnN0
cmVhbSBjbGV2ZXJuZXNzLjxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5UaGlzIGluaXRpYWwgbWFy
a3VwIHNldCBzZWVtcyBzdWZmaWNpZW50IHRvIGhhbmRsZSBldmVyeSB0YXNrPGJyPg0KPC9kaXY+
DQo8ZGl2PnRoYXQgcmVxdWlyZXMgc2VtYW50aWNzIG1hcmt1cCBzbyBmYXIuIFRoZSBvdmVyaGVh
ZCBzZWVtcyA8YnI+DQo8L2Rpdj4NCjxkaXY+c21hbGwgYW5kIHRoZSBnYWluIHNlZW1zIGxhcmdl
Ljxicj4NCjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+Tm93IHRoZSBvbmx5IHByb2Js
ZW0gaXMgcG9zdC1wcm9jZXNzaW5nIHRoZSBsYXRleC4gU2lnaC48YnI+DQo8L2Rpdj4NCjxkaXY+
PGJyPg0KVGhlcmUgaXMgbm8gc3VjaCB0aGluZyBhcyBhIHNpbXBsZSBqb2IuPGJyPg0KPC9kaXY+
DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5UaW08YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+DQo8
ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdiBjbGFz
cz0iZ21haWxfZXh0cmEiPjxicj4NCjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj5PbiBUdWUsIEF1
ZyAyMywgMjAxNiBhdCA3OjI3IFBNLCBUaW0gRGFseSA8c3BhbiBkaXI9Imx0ciI+DQombHQ7PGEg
aHJlZj0ibWFpbHRvOmF4aW9tY2FzQGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmF4aW9tY2Fz
QGdtYWlsLmNvbTwvYT4mZ3Q7PC9zcGFuPiB3cm90ZTo8YnI+DQo8YmxvY2txdW90ZSBjbGFzcz0i
Z21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MCAwIDAgLjhleDsgYm9yZGVyLWxlZnQ6MXB4ICNj
Y2Mgc29saWQ7IHBhZGRpbmctbGVmdDoxZXgiPg0KPGRpdiBkaXI9Imx0ciI+DQo8ZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+Rm9yIHRob3NlIG9mIHlvdSBhdCBo
b21lIHdpc2hpbmcgdG8gcGxheSBhbG9uZywgdGhlcmUgaXMgYTxicj4NCjwvZGl2Pg0Kc2VsYXRl
eC50ZXN0MSBmaWxlIGF0PGJyPg0KPC9kaXY+DQo8YSBocmVmPSJodHRwOi8vYXhpb20tZGV2ZWxv
cGVyLm9yZy9heGlvbS13ZWJzaXRlL3NlbGF0ZXgudGVzdDEiIHRhcmdldD0iX2JsYW5rIj5odHRw
Oi8vYXhpb20tZGV2ZWxvcGVyLm9yZy9heGk8d2JyPm9tLXdlYnNpdGUvc2VsYXRleC50ZXN0MTwv
YT48YnI+DQo8L2Rpdj4NCmNvbnRhaW5pbmcgNjIwIGludGVncmFscy48YnI+DQo8L2Rpdj4NCjxi
cj4NCjwvZGl2Pg0KRWFjaCBsaW5lIGlzIGEgY2FsbCBvZiB0aGUgZm9ybTxicj4NCjwvZGl2Pg0K
PGJyPg0KJm5ic3A7IHdlYXZlcihsYXRleC1zdHJpbmcsYXhpb20tc3RyaTx3YnI+bmcpPGJyPg0K
PC9kaXY+DQo8YnI+DQo8L2Rpdj4NClRoZSBnb2FsIGlzIHRvIHRyYW5zZm9ybSB0aGUgbGF0ZXgg
aW50byBBeGlvbS48YnI+DQo8YnI+DQo8L2Rpdj4NCkltcGxpY2l0IGlzIHRoZSBpZGVhIHRoYXQg
d2VhdmVyIHdpbGwgdXNlIHRoZSBzZWxhdGV4IHRva2Vuczxicj4NCjwvZGl2Pg0KdG8gZGlzYW1i
aWd1YXRlIHRoZSBpbnB1dC4gVGhlIGN1cnJlbnQgZmlsZSBoYXMgbm8gc2VsYXRleDxicj4NCjwv
ZGl2Pg0KdG9rZW5zLiBUaGV5IHdpbGwgYmUgYWRkZWQgYXMgbmVlZGVkLiBUaGUgaWRlYSBpcyB0
byBrZWVwPGJyPg0KPC9kaXY+DQo8ZGl2PnRoZSBwcm9ibGVtIHNpbXBsZSBieSBhZGRpbmcgcHJp
bnQtaW52aXNpYmxlIHNlbWF0aWNzIHRvIHRoZTxicj4NCjwvZGl2Pg0KPGRpdj5sYXRleC1zdHJp
bmcuIEluIHRoZSBpZGVhbCBjYXNlIHRoZSB3ZWF2ZXIgcHJvZ3JhbSBpcyB0cml2aWFsLDxicj4N
CjwvZGl2Pg0KPGRpdj5hcyBpcyB0aGUgbWFya3VwLiBBbnkgdHJhZGVvZmYgc2hvdWxkIHByaW9y
aXRpemUgc2ltcGxpY2l0eS48YnI+DQo8L2Rpdj4NCjxkaXY+QW5vdGhlciBwcmlvcml0eSBpcyB0
byBhbGlnbiB0aGUgc2VtYW50aWMgbWFya3VwIHdpdGggPGJyPg0KPC9kaXY+DQo8ZGl2PkF4aW9t
IGRvbWFpbnMgaW4gb3JkZXIgdG8gZ3JvdW5kIHRoZSBzZW1hbnRpY3Mgd2l0aCBjb2RlLiA8YnI+
DQo8YnI+DQo8L2Rpdj4NCjxkaXY+T25jZSBhbGwgb2YgdGhlc2UgY2FsbHMgdHJhbnNsYXRlIGNv
cnJlY3RseSB0aGUgQXhpb20gb3V0cHV0PGJyPg0KPC9kaXY+DQo8ZGl2PnJvdXRpbmVzIG5lZWQg
dG8gb3V0cHV0IHRoZSBsYXRleC1zdHJpbmcgd2l0aCB0aGUgYWRkZWQ8YnI+DQo8L2Rpdj4NCjxk
aXY+c2VtYW50aWMgbWFya3VwIHNvIHRoZSBtYXBwaW5nIGlzIGJpLWRpcmVjdGlvbmFsLjxicj4N
CjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NClRoZSBjdXJyZW50IGZpbGUgb25seSBsb29rcyBh
dCBpbnRlZ3JhdGlvbiBhcyBJIGFscmVhZHkgaGF2ZTxicj4NCjwvZGl2Pg0KdGhlIGxhdGV4LSZn
dDtheGlvbSB0ZXh0IGF2YWlsYWJsZS4gRnV0dXJlIHRlc3QgZmlsZXMgd2lsbCBsb29rPGJyPg0K
PC9kaXY+DQphdCBvdGhlciBhcmVhcyBvZiBpbnRlcmVzdC4gVGhlIGxvbmcgdGVybSBnb2FsIGlz
IHRvIHBhcnNlPGJyPg0KPC9kaXY+DQo8ZGl2Pk5JU1QvQ1JDL2V0YyBmb3JtdWxhcy48c3BhbiBj
bGFzcz0iSE9FblpiIj48Zm9udCBjb2xvcj0iIzg4ODg4OCI+PGJyPg0KPC9mb250Pjwvc3Bhbj48
L2Rpdj4NCjxzcGFuIGNsYXNzPSJIT0VuWmIiPjxmb250IGNvbG9yPSIjODg4ODg4Ij4NCjxkaXY+
PGJyPg0KPC9kaXY+DQpUaW08YnI+DQo8YnI+DQo8L2ZvbnQ+PC9zcGFuPjwvZGl2Pg0KPGRpdiBj
bGFzcz0iSE9FblpiIj4NCjxkaXYgY2xhc3M9Img1Ij4NCjxkaXYgY2xhc3M9ImdtYWlsX2V4dHJh
Ij48YnI+DQo8ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+T24gU3VuLCBBdWcgMjEsIDIwMTYgYXQg
MTE6MDIgUE0sIFRpbSBEYWx5IDxzcGFuIGRpcj0ibHRyIj4NCiZsdDs8YSBocmVmPSJtYWlsdG86
YXhpb21jYXNAZ21haWwuY29tIiB0YXJnZXQ9Il9ibGFuayI+YXhpb21jYXNAZ21haWwuY29tPC9h
PiZndDs8L3NwYW4+IHdyb3RlOjxicj4NCjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIg
c3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4OyBib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDsgcGFk
ZGluZy1sZWZ0OjFleCI+DQo8ZGl2IGRpcj0ibHRyIj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxk
aXY+DQo8ZGl2PkRhbiw8YnI+DQo8YnI+DQo8L2Rpdj4NCldoaWxlIHBhZ2luZyB0aHJvdWdoIHRo
ZSBDUkMgMzFzdCBTdGFuZGFyZCBNYXRoZW1hdGljYWw8YnI+DQo8L2Rpdj4NClRhYmxlcyBJIGxh
bmRlZCBvbiBwYWdlIDIxOSwgc2VjdGlvbiAzLjQuMS4yIEdyYXBoIEludmFyaWFudHMuPGJyPg0K
PGJyPg0KPC9kaXY+DQpJdCB3b3VsZCBiZSBhIHZhc3QgaW1wcm92ZW1lbnQgaWYgdGhlcmUgd2Vy
ZSBhbGdvcml0aG1zIDxicj4NCjwvZGl2Pg0KYXNzb2NpYXRlZCB3aXRoIHRoZXNlIGludmFyaWFu
dHMuIENsZWFybHkgdGhleSBleGlzdCBzb21ld2hlcmUuPGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4N
ClRvICZxdW90O2Nyb3NzIHRoZSBnYXAmcXVvdDsgYmV0d2VlbiB0YWJsZXMgYW5kIGNvbXB1dGF0
aW9uYWwgbWF0aGVtYXRpY3M8YnI+DQo8L2Rpdj4NCjxkaXY+aXQgd291bGQgYmUgdmFsdWFibGUg
dG8gaW5jbHVkZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlc2UgaW52YXJpYW50cy48YnI+DQo8YnI+
DQo8L2Rpdj4NCjxkaXY+SXQgaXMgaGFyZCB0byB3YWxrIGF3YXkgZnJvbSB0aGF0IHBhZ2UuIEFu
IEF4aW9tIGltcGxlbWVudGF0aW9uPGJyPg0KPC9kaXY+DQo8ZGl2PndvdWxkIGJlIGZ1biB0byB3
cml0ZSwgZXNwZWNpYWxseSBnaXZlbiB0aGUgbmV4dCBzZWN0aW9uIHRoYXQgbGlzdHM8YnI+DQo8
L2Rpdj4NCjxkaXY+ZGlmZmVyZW50IGtpbmRzIG9mIGdyYXBocyB3aGljaCwgcHJlc3VtYWJseSwg
d291bGQgYWxsIGhhdmUgdGhlPGJyPg0KPC9kaXY+DQo8ZGl2PmludmFyaWFudHMuIEV2ZW4gYmV0
dGVyLCB0aGUgZ3JhcGggYWxnb3JpdGhtcyBhcmUgbGlrZWx5IGdvb2QgPGJyPg0KPC9kaXY+DQo8
ZGl2PmNhbmRpZGF0ZXMgZm9yIHByb29mIHRlY2hub2xvZ3kgKEFDTDIgaWYgZG9uZSBpbiBMaXNw
LCBDT1EgaWY8YnI+DQo8L2Rpdj4NCjxkaXY+ZG9uZSBpbiBTcGFkKS4gTGlzcCBoYXMgdGhlIGFk
dmFudGFnZSBvZiBhbiBBTlNJIHN0YW5kYXJkLjxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5JdCBz
ZWVtcyB3b3J0aHdoaWxlIHRvIHRha2Ugc2VjdGlvbnMgbGlrZSB0aGlzLCBleHBhbmQgdGhlbTxi
cj4NCjwvZGl2Pg0KPGRpdj5hY3Jvc3MgY29tcHV0YXRpb25hbCBhbmQgcHJvb2YgdG9vbHMsIGFu
ZCBwdWJsaXNoIHRoZW0gaW4gYTxicj4NCjwvZGl2Pg0KPGRpdj5mb3JtIHRoYXQgaXMgZ2VuZXJh
bGx5IHVzZWZ1bC4gSXQgaXMgJnF1b3Q7bmljZSB0byBrbm93JnF1b3Q7IHRoYXQgYSBncmFwaDxi
cj4NCjwvZGl2Pg0KPGRpdj5oYXMgYSByYWRpdXMgYnV0IGl0IHdvdWxkIGJlIGV2ZW4gYmV0dGVy
IGlmIEkgY291bGQgJnF1b3Q7anVzdCBwb2ludCBhbmQ8YnI+DQo8L2Rpdj4NCjxkaXY+Y2xpY2sm
cXVvdDsgdG8gaW1wb3J0IHRoZSBhbGdvcml0aG0uPGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2PkF4
aW9tIGhhcyBiZWVuIHB1c2hpbmcgbGl0ZXJhdGUgcHJvZ3JhbW1pbmcgZm9yIHllYXJzLiBUaGUg
PGJyPg0KPC9kaXY+DQo8ZGl2PnRvb2xzIGV4aXN0IHRvICZxdW90O21ha2UgaXQgc28mcXVvdDss
IGFzIHRoZSBzYXlpbmcgZ29lcy48c3Bhbj48Zm9udCBjb2xvcj0iIzg4ODg4OCI+PGJyPg0KPGJy
Pg0KPC9mb250Pjwvc3Bhbj48L2Rpdj4NCjxzcGFuPjxmb250IGNvbG9yPSIjODg4ODg4Ij4NCjxk
aXY+VGltPGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4NCjxicj4NCjwvZGl2Pg0KPC9mb250
Pjwvc3Bhbj48L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdiBjbGFzcz0iZ21haWxfZXh0cmEiPjxi
cj4NCjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj5PbiBTdW4sIEF1ZyAyMSwgMjAxNiBhdCAxMDo0
MCBQTSwgVGltIERhbHkgPHNwYW4gZGlyPSJsdHIiPg0KJmx0OzxhIGhyZWY9Im1haWx0bzpheGlv
bWNhc0BnbWFpbC5jb20iIHRhcmdldD0iX2JsYW5rIj5heGlvbWNhc0BnbWFpbC5jb208L2E+Jmd0
Ozwvc3Bhbj4gd3JvdGU6PGJyPg0KPGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHls
ZT0ibWFyZ2luOjAgMCAwIC44ZXg7IGJvcmRlci1sZWZ0OjFweCAjY2NjIHNvbGlkOyBwYWRkaW5n
LWxlZnQ6MWV4Ij4NCjxkaXYgZGlyPSJsdHIiPg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj5MaWtlIGFueSByZXNlYXJjaCBwcm9ibGVtIGl0IGlz
IGEgc3RydWdnbGUgdG8gZ2V0IGEgdXNlZnVsIGdyaXAgb24gdGhpcy48YnI+DQo8L2Rpdj4NCkxv
b2tpbmcgYXQgRyZhbXA7UiAoSSBqdXN0IG9yZGVyZWQgdGhlIGxhdGVzdCwgbWluZSBpcyA0dGgg
ZWRpdGlvbiksIHRoZSA8YnI+DQo8L2Rpdj4NCnRhc2sgcXVpY2tseSBnZXRzIG91dCBvZiBoYW5k
Ljxicj4NCjxicj4NCjwvZGl2Pg0KVGhlIENBVFMgdGVzdHMgaW4gdGhlIHBhc3Qgd2VyZSBjcmVh
dGVkIGJ5IHJlYWRpbmcgdGhlIHByaW50ZWQgbGF0ZXg8YnI+DQo8L2Rpdj4NCmluIHZhcmlvdXMg
dm9sdW1lcyBhbmQgaGFuZC10cmFuc2xhdGluZyB0aGVtIHRvIEF4aW9tIGlucHV0LiA8YnI+DQo8
L2Rpdj4NCjxicj4NCjwvZGl2Pg0KSXQgaXMgbm90IGRpZmZpY3VsdCB0byByZS1jcmVhdGUgdGhl
IGxhdGV4IGlucHV0IGZvciB0aGVzZSBleGFtcGxlcy48YnI+DQo8L2Rpdj4NCkRvaW5nIHNvIGFu
ZCBjb21iaW5pbmcgdGhlIHJlc3VsdHMgZ2l2ZXMgYSBzZXQgb2YgZXhhbXBsZXMgd2l0aDxicj4N
CjwvZGl2Pg0KbWF0Y2hpbmcgaW5wdXQgbGF0ZXggYW5kIG91dHB1dCBBeGlvbS4gVGhlIGhvbWV3
b3JrIHByb2JsZW0gaXM8YnI+DQo8L2Rpdj4NCnRvIHdyaXRlIHRoZSBuZWNlc3NhcnkgbWFya3Vw
IGFuZCB3ZWF2ZXIuPGJyPg0KPGJyPg0KPC9kaXY+DQpJdCBpcyBpbW1lZGlhdGVseSBvYnZpb3Vz
IHRoYXQgdGhpcyBpcyBtb3JlIGNoYWxsZW5naW5nIHRoYW4gaXQgc2VlbXMuPGJyPg0KPC9kaXY+
DQpGb3IgZXhhbXBsZSwgd2hlbiB3cml0aW5nIHknKHgpPTAsIEF4aW9tIG5lZWRzIHk6PW9wZXJh
dG9yICd5PGJyPg0KPC9kaXY+DQpzbyBpdCBrbm93cyBhYm91dCB0aGUgc3ltYm9sIGFzIGFuIG9w
ZXJhdG9yLiBUaGlzIGZhbGxzIHVuZGVyPGJyPg0KPC9kaXY+DQo8ZGl2PiZxdW90O0NvbnNpZGVy
YXRpb24gMTI6IFN5c3RlbSBTcGVjaWZpYyBDb21tYW5kcyZxdW90Oy4uLiB3aGljaCBpbXBsaWVz
PGJyPg0KPC9kaXY+DQo8ZGl2PnRoYXQgdGhlIGxhdGV4IGVudmlyb25tZW50IGFuZCBxdW90aW5n
IG1hY3JvcyBoYXZlIHRvIGJlPGJyPg0KPC9kaXY+DQo8ZGl2PmltcGxlbWVudGVkLiBTaWdoLiA8
YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQpUaGVyZSBpcyBubyBzdWNoIHRoaW5nIGFz
IGEgc2ltcGxlIGpvYi48YnI+DQo8YnI+DQo8L2Rpdj4NCkFueXdheSwgYXQgbGVhc3QgdGhlcmUg
aXMgYSB3YXkgdG8gbWFrZSBhIHByb29mIG9mIGNvbmNlcHQ8YnI+DQo8L2Rpdj4NCnByb3RvdHlw
ZSB0aGF0IHJlcHJvZHVjZXMgZXhpc3RpbmcgcmVzdWx0cy48c3Bhbj48Zm9udCBjb2xvcj0iIzg4
ODg4OCI+PGJyPg0KPGJyPg0KPC9mb250Pjwvc3Bhbj48L2Rpdj4NCjxzcGFuPjxmb250IGNvbG9y
PSIjODg4ODg4Ij5UaW08YnI+DQo8YnI+DQo8L2ZvbnQ+PC9zcGFuPjwvZGl2Pg0KPGRpdj4NCjxk
aXY+DQo8ZGl2IGNsYXNzPSJnbWFpbF9leHRyYSI+PGJyPg0KPGRpdiBjbGFzcz0iZ21haWxfcXVv
dGUiPk9uIFN1biwgQXVnIDIxLCAyMDE2IGF0IDQ6MTcgUE0sIFRpbSBEYWx5IDxzcGFuIGRpcj0i
bHRyIj4NCiZsdDs8YSBocmVmPSJtYWlsdG86YXhpb21jYXNAZ21haWwuY29tIiB0YXJnZXQ9Il9i
bGFuayI+YXhpb21jYXNAZ21haWwuY29tPC9hPiZndDs8L3NwYW4+IHdyb3RlOjxicj4NCjxibG9j
a3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4OyBib3Jk
ZXItbGVmdDoxcHggI2NjYyBzb2xpZDsgcGFkZGluZy1sZWZ0OjFleCI+DQo8ZGl2IGRpcj0ibHRy
Ij4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj5EYW4sPGJy
Pg0KPGJyPg0KPC9kaXY+DQpXZWxjb21lLjxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5SZTogSG93
YXJkIENvaGwuIFllcywgSSdkIGxpa2UgYW4gaW50cm9kdWN0aW9uLiBJdCBzZWVtcyBpbXBvcnRh
bnQgdG88YnI+DQo8L2Rpdj4NCjxkaXY+bWFrZSBETE1GLCBDUkMsIGFuZCBvdGhlciBzb3VyY2Vz
IGNvbnRhaW4gZW5vdWdoIHNlbWFudGljcyB0aGF0PGJyPg0KPC9kaXY+DQo8ZGl2PnRoZXkgY2Fu
IGJlIHJlYWQgYnkgYSBjb21wdXRlciBhbGdlYnJhIHN5c3RlbS4gVGhlcmUgYXJlIGFuIDxicj4N
CjwvZGl2Pg0KPGRpdj5lbm9ybW91cyBudW1iZXIgb2YgaXNzdWVzLCBzdWNoIGFzIHdoYXQgdG8g
ZG8gd2l0aCBmdW5jdGlvbnM8YnI+DQo8L2Rpdj4NCjxkaXY+dW5rbm93biB0byB0aGUgQ0FTLCB3
aGljaCBuZWVkIHRvIGJlIHRob3VnaHQgdGhyb3VnaC48YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+
SSBiZWxpZXZlIHRoYXQgTklTVC9DUkMvRyZhbXA7UiBjb2xsZWN0aW9ucyB3aXRoIHNlbWFudGlj
IG1hcmt1cCB3aWxsPGJyPg0KPC9kaXY+DQo8ZGl2PmhhdmUgYSBncmVhdCBub3JtYWxpemluZyBl
ZmZlY3Qgb24gQ0FTIGRldmVsb3BtZW50IHNpbmNlIGl0IHdpbGwgcmFpc2U8YnI+DQo8L2Rpdj4N
CjxkaXY+Y3Jvc3MtcGxhdGZvcm0gcXVlc3Rpb25zIGxpa2UgJnF1b3Q7V2hhdCBwZXJjZW50IG9m
IEcmYW1wO1IgZG8geW91IGhhbmRsZT8mcXVvdDsuPGJyPg0KPC9kaXY+DQo8ZGl2PkFsYmVydCBS
aWNoIChSVUJJKVswXSBoYXMgYmVlbiBkb2luZyB0aGlzIGZvciBpbnRlZ3JhdGlvbiB1c2luZyBw
YXR0ZXJucy48YnI+DQo8L2Rpdj4NCjxkaXY+VGhpcyBjYW4gb25seSBiZW5lZml0IGNvbXB1dGF0
aW9uYWwgbWF0aGVtYXRpY3MgaW4gdGhlIGxvbmcgdGVybS48YnI+DQo8YnI+DQo8L2Rpdj4NCjxk
aXY+SSd2ZSBhbHNvIGNhbXBhaWduZWQgZm9yIGFzc29jaWF0aW5nIGFsZ29yaXRobXMgd2l0aCBw
dWJsaXNoZWQgdGFibGVzLjxicj4NCjwvZGl2Pg0KPGRpdj5JdCBpcyBpbXBvcnRhbnQgaW4gdGhl
IGxvbmcgdGVybSB0byBoYXZlIHJlZmVyZW5jZSB2ZXJzaW9ucy4gVGhlIEFDTTxicj4NCjwvZGl2
Pg0KPGRpdj51c2VkIHRvIGRvIHRoaXMgeWVhcnMgYWdvLiBJJ2QgbGlrZSB0byBzZWUgYSBHcnVu
dHogYWxnb3JpdGhtIGZvciBsaW1pdHM8YnI+DQo8L2Rpdj4NCjxkaXY+d2hlcmUgaXQgY2FuIGJl
IGFwcGxpZWQsIGZvciBpbnN0YW5jZS4gSXQgd291bGQgYWxzbyBwcm92aWRlIGEgZm9jdXMgb248
YnI+DQo8L2Rpdj4NCjxkaXY+JnF1b3Q7bWlzc2luZyBhbGdvcml0aG1zJnF1b3Q7IG9yIGVkZ2Ug
Y2FzZXMuIERhdmVucG9ydC9UcmFnZXIvQnJvbnN0ZWluPGJyPg0KPC9kaXY+DQo8ZGl2PmFsZ29y
aXRobXMgcHJvbWlzZSBhIGRlY2lzaW9uIHByb2NlZHVyZSBidXQgdGhlcmUgYXJlIG5vIGV4aXN0
aW5nPGJyPg0KPC9kaXY+DQo8ZGl2PmNvbXBsZXRlIGltcGxlbWVudGF0aW9ucy4gVGhlIHRhYmxl
cyBjb3VsZCBoaWdobGlnaHQgbWlzc2luZyBjYXNlcyw8YnI+DQo8L2Rpdj4NCjxkaXY+Z2l2aW5n
IGZvY3VzIHRvIGVmZm9ydHMgdG8gY29tcGxldGUgdGhlIHByb2NlZHVyZS48YnI+DQo8L2Rpdj4N
CjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2Pkl0IHdpbGwgYWxzbyBwdXQgYmFjay1wcmVzc3VyZSBv
biB0aGUgdGFibGVzIHRvIGRlZmluZSBkaWZmZXJlbnQgdmVyc2lvbnM8YnI+DQo8L2Rpdj4NCjxk
aXY+b2YgdGhlIHNhbWUgZm9ybXVsYXMgYmFzZWQgb24gZG9tYWlucyAoQywgUiwgZXRjKS4gPGJy
Pg0KPGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KJnF1b3Q7VGhlIEdSIHdvcmsgd2Fz
IG1vcmUgdGhhbiBJIGhhZCBhbnRpY2lwYXRlZCZxdW90Oy4uLiB3aW5zIHRoZSBhd2FyZCBmb3I8
YnI+DQo8L2Rpdj4NCnVuZGVyc3RhdGVtZW50IG9mIHRoZSBkZWNhZGUuIDxicj4NCjxicj4NClRo
ZSBnb2FsIG9mIHRoaXMgZWZmb3J0IGlzIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gcmVhZCB0aG9z
ZSA8YnI+DQpmb3JtdWxhcyBkaXJlY3RseSBpbnRvIGEgQ0FTLiBBeGlvbSBpcyBteSBwcmltYXJ5
IHRhcmdldCBidXQgPGJyPg0KaXQgc2hvdWxkIGJlIGRvbmUgaW4gYSBzb21ld2hhdCBzeXN0ZW0g
YWdub3N0aWMgZm9ybS4gPGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4NCkkndmUgc3BlbnQgd2VsbCBv
dmVyIGEgeWVhciBjcmVhdGluZyB0aGUgY29tcHV0ZXIgYWxnZWJyYSB0ZXN0IHN1aXRlLjxicj4N
CjwvZGl2Pg0KPGRpdj5JdCB3b3VsZCBiZSBzbyBtdWNoIGVhc2llciBhbmQgbW9yZSB1c2VmdWwg
aWYgdGhlIG9yaWdpbmFsIHNvdXJjZXM8YnI+DQo8L2Rpdj4NCjxkaXY+Y291bGQgYmUgcmVhZCBk
aXJlY3RseS48YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQpJIHJlYWQgeW91ciBwYXBl
ci4gVGhlcmUgaXMgYW4gaW50ZXJlc3RpbmcgbWl4IG9mIHN5bnRheCBhbmQgc2VtYW50aWNzLjxi
cj4NCjxicj4NCjwvZGl2Pg0KSSBndWVzcyB0aGUgZGlmZmVyZW5jZSBpbiB0aGlzIGVmZm9ydCBp
cyB0aGF0IHRoZSBzZW1hbnRpYyBtYXJrdXAgaXMgPGJyPg0KPC9kaXY+DQppbnRlbmRlZCB0byBi
ZSB0cmFuc3BhcmVudCBhbmQgZ3JvdW5kZWQuIFRoZSB0cmFuc3BhcmVudCBhc3BlY3Q8YnI+DQo8
L2Rpdj4NCmtlZXBzIHRoZSB0YWJsZXMgdW5jaGFuZ2VkIGluIHByaW50IGZvcm0uIFRoZSBncm91
bmRlZCBhc3BlY3Qga2VlcHM8YnI+DQo8L2Rpdj4NCnRoZSBzZW1hbnRpY3MgYmFzZWQgb24gc29t
ZSBhbGdvcml0aG1pYyBiYXNlLiBUaGlzIGltcGxpZXMsIG9mPGJyPg0KPC9kaXY+DQpjb3Vyc2Us
IHRoYXQgdGhlcmUgSVMgYW4gYWxnb3JpdGhtaWMgYmFzZSB3aGljaCBkb2VzIG5vdCB5ZXQgZXhp
c3Q8YnI+DQo8L2Rpdj4NCmZvciBzb21lIG9mIHRoZSB3b3JrLjxicj4NCjxicj4NCjwvZGl2Pg0K
QXMgeW91IGNhbiBzZWUgZnJvbSB0aGUgQ0FUUyB3b3JrIEkndmUgYmVlbiB0cnlpbmcgdG8gdmFs
aWRhdGUgPGJyPg0KPC9kaXY+DQpBeGlvbSdzIHJlc3VsdHMgd2l0aCByZXNwZWN0IHRvIHB1Ymxp
c2hlZCB0ZXh0cy4gVGhpcyBoYXMgZm91bmQgYm90aDxicj4NCjwvZGl2Pg0KPGRpdj5BeGlvbSBi
dWdzIGFuZCBtaXNwcmludHMgaW4gcHVibGlzaGVkIHRleHRzLjxicj4NCjwvZGl2Pg0KPGRpdj48
YnI+DQo8L2Rpdj4NClRoZSBLYW1rZVsxXSBzdWl0ZSB3YXMgdGhlIGZpcnN0IGVmZm9ydCBmb3Ig
ZGlmZmVyZW50aWFsIGVxdWF0aW9ucy48YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+VGhlIFNwaWVn
ZWxbMl0gY2hhcHRlciAxNCBvbiBpbmRlZmluaXRlIGludGVncmFscyBmb3IgaW50ZWdyYXRpb24u
PGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2PlRoZSB2b24gU2VnZ2VyblszXSBib29rIG9uIGN1cnZl
cyBhbmQgc3VyZmFjZXMgZm9yIGdyYXBoaWNzLjxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5UaGUg
TGVnZW5kcmUgYW5kIEdyYXppbmlbNF0gb24gUGFzdGEgYnkgRGVzaWduIGZvciAzRCBncmFwaGlj
cy48YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+VGhlIFJVQkkgd29yayBvbiBpbnRlZ3JhdGlvbi48
YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PmFuZCwgY3VycmVudGx5IEknbSBy
ZS1jcmVhdGluZyB0aGUgbnVtZXJpY3MgdGhhdCB3ZXJlIGxvc3Qgd2hlbiBOQUc8YnI+DQo8L2Rp
dj4NCjxkaXY+cmVsZWFzZWQgdGhlIG9wZW4gc291cmNlIHZlcnNpb24sIGxlYXZpbmcgbWUgc3dp
bW1pbmcgdGhyb3VnaDxicj4NCjwvZGl2Pg0KPGRpdj5MdWtlJ3NbNV0gQWxnb3JpdGhtcyBib29r
Ljxicj4NCjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+d2hpY2gsIHRvIHF1b3RlIGEg
ZmFtb3VzIHBocmFzZSAmcXVvdDt3YXMgbW9yZSB0aGFuIEkgaGFkIGFudGljaXBhdGVkJnF1b3Q7
Ljxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5Zb3VyIEhhbmRib29rIG9mIEludGVncmF0aW9uWzZd
IGhhcyBhIHNlY3Rpb24gb24gdmFyaW91cyBrbm93bjxicj4NCjwvZGl2Pg0KPGRpdj4mcXVvdDtD
YXZlYXRzLCBIb3cgYW4gaW50ZWdyYXRpb24gcmVzdWx0IG1heSBiZSBpbmNvcnJlY3QmcXVvdDsu
IFRoaXMgcmFpc2VzIHRoZTxicj4NCjwvZGl2Pg0KPGRpdj53b25kZXJmdWwgdG9waWMgb2YgYnJh
bmNoIGN1dHMgeWV0IGFnYWluLiBJIGRpZCBzb21lIHRlc3RpbmcgYW5kIGl0PGJyPg0KPC9kaXY+
DQo8ZGl2PnNlZW1zIHRoYXQgQXhpb20gYW5kIE1hdGhlbWF0aWNhIHNoYXJlIG9uZSBzZXQgd2hp
bGUgTWFwbGUgYW5kPGJyPg0KPC9kaXY+DQo8ZGl2Pk1heGltYSBzaGFyZSBhbm90aGVyLiA8YnI+
DQo8YnI+DQo8L2Rpdj4NCjxkaXY+QWxsIG9mIHdoaWNoIGxlYWRzIHRvIGEgbmVlZCB0byBjcmVh
dGUgYmV0dGVyIHJlZmVyZW5jZSBtYXRlcmlhbHMgdGhhdDxicj4NCjwvZGl2Pg0KPGRpdj5hcmUg
Z2VuZXJhbGx5IGF2YWlsYWJsZSAodW5saWtlIHRoZSBBQ00gYWxnb3JpdGhtcyBmb3Igbm9uLXBh
eWluZzxicj4NCjwvZGl2Pg0KPGRpdj5jdXN0b21lcnMpIGFuZCBkaXJlY3RseSB1c2VmdWwgZm9y
IGNvbXB1dGF0aW9uYWwgbWF0aGVtYXRpY3MuPGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2PlRoZSBj
dXJyZW50IHBsYW4gaXMgdG8gdGFrZSBzb21lIHRhYmxlcywgZmluZCBvciByZS1jcmVhdGUgdGhl
IGxhdGV4LDxicj4NCjwvZGl2Pg0KPGRpdj5pbnZlbnQgYSBzZW1hbnRpYyBtYXJrdXAsIGFuZCB0
aGVuIHdyaXRlIHRoZSAmcXVvdDt3ZWF2ZXImcXVvdDsuIEF0IHRoaXMgcG9pbnQ8YnI+DQo8L2Rp
dj4NCjxkaXY+dGhlIHJlc2VhcmNoIGlzIHN0aWxsIGF0IHRoZSAmcXVvdDtwcm9vZiBvZiBjb25j
ZXB0JnF1b3Q7IHN0YWdlLiAodGV4IGZvcm11bGE8YnI+DQo8L2Rpdj4NCjxkaXY+c291cmNlcyBh
cmUgbW9zdCB3ZWxjb21lKS48YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PlVs
dGltYXRlbHkgSSdkIHJlYWxseSBsaWtlIHRvIHNlZSBhIGJvb2sgb2YgZm9ybXVsYXMgYW5kIGFs
Z29yaXRobXM8YnI+DQo8L2Rpdj4NCjxkaXY+dGhhdCBJIGNhbiBqdXN0IGRyYWctYW5kLWRyb3Ag
aW50byBBeGlvbSBhbmQgYmUgYWJsZSB0byB1c2UgdGhlbTxicj4NCjwvZGl2Pg0KPGRpdj53aXRo
b3V0IGxpZmV0aW1lcyBvZiB3b3JrLjxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5BY3R1YWxseSwg
dGhhdCAncyBvbmx5IHRoZSBwZW51bHRpbWF0ZSBnb2FsLiBJIGhhdmUgYXVnbWVudGVkPGJyPg0K
PC9kaXY+DQo8ZGl2PkF4aW9tIHRvIGluY2x1ZGUgcHJvb2ZzIChBQ0wyLENPUSkgc28gSSdkIGFs
c28gbGlrZSB0byBzZWUgcHJvb2ZzLDxicj4NCjwvZGl2Pg0KPGRpdj4odGhpcyBJUyBtYXRoZW1h
dGljcywgYWZ0ZXIgYWxsKSBidXQgbWF5YmUgd2UnbGwgbGVhdmUgdGhhdCBmb3IgPGJyPg0KbmV4
dCBtb250aCA6LSkgPGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5UaW0gPGJy
Pg0KPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5bMF0gUmljaCwgQWxiZXJ0ICZxdW90
O1J1bGUtYmFzZWQgTWF0aGVtYXRpY3MmcXVvdDs8YnI+DQo8YSBocmVmPSJodHRwOi8vd3d3LmFw
bWF0aHMudXdvLmNhL35hcmljaC8iIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vd3d3LmFwbWF0aHMu
dXdvLmNhL35hcmk8d2JyPmNoLzwvYT48YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQpb
MV0gS2Fta2UuIEUuICZxdW90O0RpZmZlcmVudGlhbGdsZWljaHVuZ2VuIExvc3VuZ3NtZXRob2Rl
biB1bmQgTG9zdW5nZW4mcXVvdDs8YnI+DQo8L2Rpdj4NCjxkaXY+Q2hlbHNlYSBQdWJsaXNoaW5n
IENvbXBhbnksIE5ldyBZb3JrLCAxOTU5PGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2PlsyXSBTcGll
Z2VsLCBNdXJyYXkgUi4gJnF1b3Q7TWF0aGVtYXRpY2FsIEhhbmRib29rJnF1b3Q7LCBTY2hhdW0n
cyBPdXRsaW5lPGJyPg0KPC9kaXY+DQo8ZGl2PlNlcmllczsgTWNHcmF3LUhpbGwgQm9vayBDb21w
YW55IDE5Njg8YnI+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRp
dj5bM10gdm9uIFNlZ2dlcm4sIERhdmlkICZxdW90O0NSQyBTdGFuZGFyZCBDdXJ2ZXMgYW5kIFN1
cmZhY2VzJnF1b3Q7LDxicj4NCjwvZGl2Pg0KPGRpdj5DUkMgUHJlc3MsIDE5OTMgSVNCTiAwLTg0
OTMtMDE5Ni0zPGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5bNF0gTGVnZW5k
cmUsIEdlb3JnZSBMLiBhbmQgR3JhemluaSwgU3RlZmFubyAmcXVvdDtQYXN0YSBieSBEZXNpZ24m
cXVvdDssPGJyPg0KPC9kaXY+DQo8ZGl2PlRoYW1lcyBhbmQgSHVkc29uLCAyMDAxPGJyPg0KPGJy
Pg0KPC9kaXY+DQo8ZGl2Pls1XSBMdWtlLCBZdWRlbGwgJnF1b3Q7QWxnb3JpdGhtcyBmb3IgdGhl
IENvbXB1dGF0aW9uIG9mIE1hdGhlbWF0aWNhbDxicj4NCjwvZGl2Pg0KPGRpdj5GdW5jdGlvbnMm
cXVvdDssIEFjYWRlbWljIFByZXNzLCAxOTc3IElTQk4gMC0xMi00NTk5NDAtNjxicj4NCjxicj4N
CjwvZGl2Pg0KPGRpdj5bNl0gWndpbGxpbmdlciwgRGFuaWVsICZxdW90O0hhbmRib29rIG9mIElu
dGVncmF0aW9uJnF1b3Q7IEpvbmVzIGFuZCBCYXJ0bGV0dCw8YnI+DQo8L2Rpdj4NCjxkaXY+TG9u
ZG9uLCAxOTkyIDxicj4NCjwvZGl2Pg0KPGRpdj4mbmJzcDs8YnI+DQo8L2Rpdj4NCjxkaXY+PGJy
Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
ZGl2IGNsYXNzPSJnbWFpbF9leHRyYSI+PGJyPg0KPGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk9u
IFN1biwgQXVnIDIxLCAyMDE2IGF0IDEwOjE2IEFNLCBEYW4gWndpbGxpbmdlciA8c3BhbiBkaXI9
Imx0ciI+DQombHQ7PGEgaHJlZj0ibWFpbHRvOnp3aWxsaW5nQGF6LXRlYy5jb20iIHRhcmdldD0i
X2JsYW5rIj56d2lsbGluZ0Bhei10ZWMuY29tPC9hPiZndDs8L3NwYW4+IHdyb3RlOjxicj4NCjxi
bG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4OyBi
b3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDsgcGFkZGluZy1sZWZ0OjFleCI+DQo8ZGl2IGJnY29s
b3I9IiNGRkZGRkYiPg0KPHA+QWxsPGJyPg0KPGJyPg0KSSBiZWdhbiByZWFkaW5nIHRoaXMgdG9w
aWMncyBlbWFpbHMgd2hlbiB0aGV5IGZpcnN0IGFwcGVhcmVkLCBhbmQgdGhlbiBmZWxsIGJlaGlu
ZC48YnI+DQpTb3JyeSBmb3IgbXkgbGF0ZSBjb21tZW50cy48YnI+DQo8YnI+DQpJIGFkbWlyZSB5
b3VyIGVmZm9ydHMuPGJyPg0KVGhleSBtYXkgYmUgc29tZXdoYXQgcmVsYXRlZCB0byB3aGF0IEkg
aGF2ZSBkb25lIGluIHRoZSBwYXN0Ljxicj4NCk15IGV4cGVyaWVuY2UgaXMgYXMgZm9sbG93czo8
YnI+DQo8YnI+DQooMSkgQ1JDIFNNVEYgKFN0YW5kYXJkIE1hdGhlbWF0aWNhbCBUYWJsZXMgYW5k
IEZvcm11bGEpPGJyPg0KPGJyPg0KSSBwdXQgdGhlIH43MDAgaW50ZWdyYWxzIGluIENSQydzIFNN
VEYgaW50byBhIGZvcm1hdCBmcm9tIHdoaWNoIDxicj4NCihBKSB0aGV5IGNvdWxkIGJlIHR5cGVz
ZXQgaW4gTGFUZVg8YnI+DQooQikgdGhleSBjb3VsZCBiZSBjb252ZXJ0ZWQgaW50byBNYXRoZW1h
dGljYSAod2hpY2ggZWl0aGVyIGRpZCBhIHN5bWJvbGljIG9yIG51bWVyaWMgY29tcHV0YXRpb24p
IC0gYW5kIHRoaXMgd2FzIGRvbmU8YnI+DQo8YnI+DQpJIGxldCBSaWNoYXJkIEZhdGVtYW4gdXNl
IHRoZW0gZm9yIGhpcyBleHBlcmltZW50cy48YnI+DQo8YnI+DQo8YnI+DQooMikgRWxzZXZpZXIn
cyBHUiAoR3JhZHNodGV5biBhbmQgUnl6aGlrJ3MgJnF1b3Q7VGFibGUgb2YgSW50ZWdyYWxzLCBT
ZXJpZXMsIGFuZCBQcm9kdWN0cyZxdW90Oyk8YnI+DQo8YnI+DQpJIHB1dCB0aGUgfjEyLDAwMCAo
aWYgbXkgbWVtb3J5IGlzIGNvcnJlY3QpIGludGVncmFscyBpbnRvIGEgZm9ybWF0IGZyb20gd2hp
Y2g8YnI+DQooQSkgdGhleSBjb3VsZCBiZSBiZWF1dGlmdWxseSB0eXBlc2V0IGluIExhVGVYPGJy
Pg0KKEIpIHRoZXkgY291bGQgYmUgY29udmVydGVkIGludG8gTWF0aGVtYXRpY2EgLSBhbmQgdGhp
cyB3YXMgTk9UIGRvbmU8YnI+DQpFbmNsb3NlZCBpcyBhIFBERiBmaWxlIGRlc2NyaWJpbmcgdGhl
IHdvcmsgYW5kIHRoZSByZXN1bHRpbmcgZm9ybWF0Ljxicj4NCjxicj4NCjxicj4NCkEgZGlmZmVy
ZW50IGZvcm1hdCB3YXMgdXNlZCBmb3IgU01URiBhbmQgR1IuPGJyPg0KV2hpbGUgdGhlIFNNVEYg
d29yayB3YXMgbm90IHRvbyBhcmR1b3VzLCB0aGUgR1Igd29yayB3YXMgbW9yZSB0aGFuIEkgaGFk
IGFudGljaXBhdGVkLjxicj4NClRoZSBpbnB1dCAodGhlIHByZXZpb3VzIHZlcnNpb24gb2YgR1Ip
IGhhZCBsaXR0bGUgc3ludGFjdGljIHN0cnVjdHVyZSBhbmQgaXQgdG9vayBtdWNoIGVmZm9ydCB0
byBnZXQgaXQgaW50byBzaGFwZS48YnI+DQpJIHVzZWQgKG1hbnkgZGlmZmVyZW50KSByZWd1bGFy
IGV4cHJlc3Npb25zIChpbiBwZXJsKSB0byB0cmFuc2xhdGUgdGhlIGJ1bGsgb2YgdGhlIGJvb2ss
IGFuZCB0aGVuIGxvdHMgb2YgaGFuZCB0dW5pbmcuPGJyPg0KPGJyPg0KV2hpbGUgSSB0aGluayB5
b3UgYXJlIHdlbGwgYmV5b25kIG15IHRoaW5raW5nIG9uIHRoZXNlIHRvcGljcywgcGxlYXNlIGxl
dCBtZSBrbm93IGlmIEkgY2FuIGhlbHAuPGJyPg0KSSBhbSBmcmllbmRzIHdpdGggSG93YXJkIENv
aGwgYXQgTklTVCwgd2hvIG1heSBiZSB0aGUgY3VycmVudCBsZWFkIGZvciBETE1GICgmcXVvdDtE
aWdpdGFsIExpYnJhcnkgb2YgTWF0aGVtYXRpY2FsIEZ1bmN0aW9ucyZxdW90OyBhdA0KPGEgaHJl
Zj0iaHR0cDovL2RsbWYubmlzdC5nb3YiIHRhcmdldD0iX2JsYW5rIj5kbG1mLm5pc3QuZ292PC9h
PikuIDxicj4NCkxldCBtZSBrbm93IGlmIHlvdSBuZWVkIGFuIGludHJvZHVjdGlvbi48c3Bhbj48
Zm9udCBjb2xvcj0iIzg4ODg4OCI+PGJyPg0KPGJyPg0KPC9mb250Pjwvc3Bhbj48L3A+DQo8c3Bh
bj48Zm9udCBjb2xvcj0iIzg4ODg4OCI+PGJyPg0KPHByZSBjb2xzPSI3MiI+RGFuIFp3aWxsaW5n
ZXIKPGEgaHJlZj0ibWFpbHRvOnp3aWxsaW5nQGF6LXRlYy5jb20iIHRhcmdldD0iX2JsYW5rIj56
d2lsbGluZ0Bhei10ZWMuY29tPC9hPgo8YSBocmVmPSJ0ZWw6NjE3LTM4OC0yMzgyIiB2YWx1ZT0i
JiM0MzsxNjE3Mzg4MjM4MiIgdGFyZ2V0PSJfYmxhbmsiPjYxNy0zODgtMjM4MjwvYT48L3ByZT4N
CjwvZm9udD48L3NwYW4+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+T24gOC8yMC8yMDE2IDExOjMwIFBN
LCBUaW0gRGFseSB3cm90ZTo8YnI+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPg0K
PGRpdiBkaXI9Imx0ciI+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
ZGl2Pg0KPGRpdj5UaGUgZ2FtZSBpcyB0byBkZWZpbmUgbGF0ZXggbWFya3VwIHRoYXQgaXMgdHJh
bnNwYXJlbnQgdG8gdGhlIHN5bnRheDxicj4NCjwvZGl2Pg0KYnV0IGFkZHMgc2VtYW50aWNzIGZv
ciBwb3N0IHByb2Nlc3NpbmcuIDxicj4NCjxicj4NCjwvZGl2Pg0KU29tZSBzaW1wbGUgdGVzdHMg
c2hvdyB0aGF0IHRoaXMgd29ya3MuIFN1cHBvc2Ugc2VsYXRleC5zdHkgY29udGFpbnM6PGJyPg0K
PGJyPg0KPC9kaXY+DQpcbmV3Y29tbWFuZHtcSU5UfVsxXXsjMX08YnI+DQo8L2Rpdj4NClxuZXdj
b21tYW5ke1xWQVJJQUJMRX1bMV17IzF9PGJyPg0KPC9kaXY+DQpcbmV3Y29tbWFuZHtcUE9MWX1b
MV17IzF9PGJyPg0KPC9kaXY+DQpcbmV3Y29tbWFuZHtcSU5URUd9WzJde1xpbnR7IzE8d2JyPn19
PGJyPg0KPGJyPg0KPC9kaXY+DQpUaGlzIGRlZmluZXMgNCBuZXcgbGF0ZXggbWFya3Vwcy4gVGhl
IG51bWJlciBpbiB0aGUgc3F1YXJlIGJyYWNrZXRzPGJyPg0KPC9kaXY+DQpkZWZpbmVzIHRoZSBu
dW1iZXIgb2YgZXhwZWN0ZWQgYXJndW1lbnRzLiBUaGUgYnJhY2UgYXJndW1lbnQgPGJyPg0KPC9k
aXY+DQpkZWxpbWl0ZXMgdGhlIGNoYXJhY3RlcnMgdGhhdCB3aWxsIG9jY3VyIGR1cmluZyBleHBh
bnNpb24gd2l0aCB0aGUgIzE8YnI+DQo8L2Rpdj4NCnJlcGxhY2VkIGJ5IHRoZSBmaXJzdCBhcmd1
bWVudC48YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+KEFzIGFuIGFzaWRlLCBJTlQsIFZBUklBQkxF
LCBhbmQgUE9MWSBqdXN0IGhhcHBlbiB0byBiZSB2YWxpZDxicj4NCjwvZGl2Pg0KPGRpdj5BeGlv
bSBkb21haW4gYWJicmV2aWF0aW9ucywgaGVuY2UgdGhlIG5hbWUgY2hvaWNlLiBUaGlzIGNob2lj
ZTxicj4NCjwvZGl2Pg0KPGRpdj5vZiBuYW1lcyBnaXZlcyBncm91bmRpbmcgdG8gdGhlIHNlbWFu
dGljcy4pPGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KTm90aWNlIHRoYXQgXElOVEVH
IHRha2VzIHR3byBhcmd1bWVudHMgYnV0IHdpbGwgZGlzcGxheSBvbmx5IG9uZS48YnI+DQo8L2Rp
dj4NClRoaXMgYWxsb3dzIHRoZSB2YXJpYWJsZSBvZiBpbnRlZ3JhdGlvbiB0byBiZSBwYXNzZWQg
aW4gdGhlIHNlbWFudGljczxicj4NCjwvZGl2Pg0Kd2l0aG91dCBzaG93aW5nIHVwIGluIHRoZSBv
dXRwdXQuIFRoaXMgYWxsb3dzIHRoZSBzZW1hbnRpY3MgdG8gY2Fycnk8YnI+DQo8L2Rpdj4NCjxk
aXY+YWRkaXRpb25hbCwgbm9uLWRpc3BsYXkgaW5mb3JtYXRpb24gbmVlZGVkIGJ5IHRoZSBDQVMu
PGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KU29tZSBleGFtcGxlcyBmb2xsb3cuPGJy
Pg0KPGJyPg0KPC9kaXY+DQpBbiBpbnRlZ2VyIDMgY2FuIGJlIHdyYXBwZWQgYXMgXElOVHszfSBi
dXQgd2lsbCBzdGlsbCBkaXNwbGF5IGFzIDMuPGJyPg0KPC9kaXY+DQo8YnI+DQpBIHZhcmlhYmxl
IHggY2FuIGJlIHdyYXBwZWQgYXMgXFZBUklBQkxFe3h9LCBkaXNwbGF5ZWQgYXMgeC48YnI+DQo8
L2Rpdj4NCjxicj4NCiRcUE9MWXtcSU5UezN9XFZBUklBQkxFe3h9fSQgd2lsbCBkaXNwbGF5IGFz
IDMqeDxicj4NCjwvZGl2Pg0KPGJyPg0KJFxJTlRFR3tcUE9MWXtcSU5UezN9XFZBUklBQkxFPHdi
cj57eH1+ZHh9fXt4fSB3aWxsIGJlIHRoZSBzYW1lIHJlc3VsdDxicj4NCjwvZGl2Pg0KYXMgJFxp
bnR7M3h+ZHh9JCwgdGhhdCBpcywgYW4gPGJyPg0KPC9kaXY+DQombmJzcDsgKGludGVncmFsc2ln
bikgM3ggZHg8YnI+DQo8L2Rpdj4NCmJ1dCBub3RpY2UgdGhhdCB0aGUgdmFyaWFibGUgb2YgaW50
ZWdyYXRpb24gaXMgaW4gdGhlIHNlbWFudGljIG1hcmt1cC48YnI+DQo8YnI+DQo8L2Rpdj4NClRo
ZXNlIHRyaXZpYWwgbWFjcm9zIGNhbiBiZSBtYWRlIGxlc3MgdmVyYm9zZSBhbmQgY2VydGFpbmx5
IDxicj4NCjwvZGl2Pg0KbW9yZSBjbGV2ZXIgYnV0IHRoYXQncyBub3QgdGhlIHBvaW50IGJlaW5n
IG1hZGUgaGVyZS48YnI+DQo8YnI+DQo8L2Rpdj4NCkEgJ3dlYXZlcicgcHJvZ3JhbSB3b3VsZCBz
ZWUgdGhlIGludGVncmF0aW9uIGV4cHJlc3Npb24gYXM8YnI+DQo8YnI+DQokXElOVEVHe1xQT0xZ
e1xJTlR7M31cVkFSSUFCTEU8d2JyPnt4fX5keH19e3h9JDxicj4NCjwvZGl2Pg0KPGJyPg0Kd2l0
aCBhbGwgb2YgdGhlIHNlbWFudGljIHRhZ3MuIFRoZSB3ZWF2ZXIncyBqb2IgaXMgdG8gcmV3cml0
ZSB0aGlzPGJyPg0KPC9kaXY+DQpleHByZXNzaW9uIGludG8gYW4gaW5wdXRmb3JtIGZvciB0aGUg
Q0FTLiBJbiBBeGlvbSB0aGF0IHdvdWxkIGJlPGJyPg0KPC9kaXY+DQo8YnI+DQppbnRlZ3JhdGUo
Myp4LHgpPGJyPg0KPGJyPg0KPC9kaXY+DQpUaGUgc2VtYW50aWNzIG1hcmt1cCBtYWtlcyB0aGUg
ZGlzcGxheSBwcmV0dHkgYW5kIHRoZSBzZW1hbnRpYzxicj4NCjwvZGl2Pg0KcGFyc2luZyBwb3Nz
aWJsZS4gRGVwZW5kaW5nIG9uIHRoZSBzeXN0ZW0sIG1vcmUgb3IgbGVzcyBwYXJzaW5nPGJyPg0K
PC9kaXY+DQptYXJrdXAgY2FuIGV4aXN0LiBBeGlvbSwgZm9yIGV4YW1wbGUsIHdvdWxkIG5vdCBu
ZWVkIHRoZSBcSU5UIG9yPGJyPg0KPC9kaXY+DQpcVkFSSUFCTEUgdG8gZ2V0IGEgY29ycmVjdCBw
YXJzZSBzbyB0aGUgZXhwcmVzc2lvbiBjb3VsZCBiZTxicj4NCjwvZGl2Pg0KJFxJTlRFR3szeH5k
eH17eH0kPGJyPg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8
ZGl2PlRoaXMgdmFsaWRhdGVzIHRoZSBmdW5kYW1lbnRhbCBpZGVhLjxicj4NCjxicj4NCjwvZGl2
Pg0KPGRpdj5UaGUgbmV4dCBzdGVwIGlzIHRvIHdyaXRlIGEgc2ltcGxlIHdlYXZlciBwcm9ncmFt
LiBUaGUgY2xldmVyIHBhdGg8YnI+DQo8L2Rpdj4NCjxkaXY+d291bGQgYmUgdG8gZW1iZWQgYSBk
ZWNsYXJhdGl2ZSBmb3JtIG9mIHRoZSBwYXJzZXIgc3ludGF4IChCTkY/KTxicj4NCjwvZGl2Pg0K
PGRpdj5hcyBjb21tZW50cyBpbiBzZWxhdGV4LnN0eS4gVGhhdCB3YXkgdGhlIGxhdGV4IHNlbWFu
dGljcyBhbmQgdGhlPGJyPg0KPC9kaXY+DQo8ZGl2PndlYXZlciBzeW50YXggYXJlIGtlcHQgaW4g
c3luYy4gPGJyPg0KPGJyPg0KV2VhdmVyIHdvdWxkIHJlYWQgdGhlIEJORiBjb21tZW50cyBmcm9t
IHNlbGF0ZXguc3R5IGFuZCA8YnI+DQp0aGUgZm9ybXVsYSB3aXRoIHNlbWFudGljIG1hcmt1cCBh
cyBpbnB1dCBhbmQgcGFyc2UgdGhlIHNlbWFudGljIDxicj4NCm1hcmt1cCBpbnRvIGlucHV0Zm9y
bXMuIChXaXNoIEkgdGhvdWdodCBvZiB0aGlzIGhvbWV3b3JrIHByb2JsZW0gPGJyPg0Kd2hlbiBJ
IHRhdWdodCB0aGUgY29tcGlsZXIgY291cnNlIDotKSApLjxicj4NCjxicj4NCjwvZGl2Pg0KPGRp
dj5Ob3RlIHRoYXQsIGRlcGVuZGluZyBvbiB0aGUgQk5GLCB3ZWF2ZXIgY291bGQgYmUgdXNlZCB0
byA8YnI+DQo8L2Rpdj4NCjxkaXY+Z2VuZXJhdGUgb3V0cHV0IGZvciBNYXhpbWEncyB0cmVlLWJh
c2VkIHJlcHJlc2VudGF0aW9uLiA8YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2
PkFuIGFsdGVybmF0aXZlIG5leHQgc3RlcCBpcyB0byBsb29rIGF0IGEgQ1JDIGJvb2ssIHJlLWNy
ZWF0ZSB0aGU8YnI+DQo8L2Rpdj4NCjxkaXY+c3ludGFjdGljIGxhdGV4IGFuZCB0aGVuIGNyZWF0
ZSB0aGUgc2VsYXRleC5zdHkgZW50cmllcyBuZWNlc3Nhcnk8YnI+DQo8L2Rpdj4NCjxkaXY+dG8g
Z2VuZXJhdGUgd2VhdmVyIGlucHV0Ljxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5JbmZpbml0ZXNp
bWFsIHByb2dyZXNzLCBidXQgcHJvZ3Jlc3Mgbm9uLXRoZS1sZXNzLjxicj4NCjxicj4NCjwvZGl2
Pg0KPGRpdj5UaW08YnI+DQo8YnI+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rp
dj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2
Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJnbWFpbF9leHRy
YSI+PGJyPg0KPGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk9uIEZyaSwgQXVnIDE5LCAyMDE2IGF0
IDEyOjQ1IEFNLCBUaW0gRGFseSA8c3BhbiBkaXI9Imx0ciI+DQombHQ7PGEgaHJlZj0ibWFpbHRv
OmF4aW9tY2FzQGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmF4aW9tY2FzQGdtYWlsLmNvbTwv
YT4mZ3Q7PC9zcGFuPiB3cm90ZTo8YnI+DQo8YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUi
IHN0eWxlPSJtYXJnaW46MCAwIDAgLjhleDsgYm9yZGVyLWxlZnQ6MXB4ICNjY2Mgc29saWQ7IHBh
ZGRpbmctbGVmdDoxZXgiPg0KPGRpdiBkaXI9Imx0ciI+DQo8ZGl2Pg0KPGRpdj48YnI+DQpPbmUg
b2YgdGhlIEF4aW9tIHByb2plY3QgZ29hbHMgaXMgdG8gZGV2ZWxvcCBhICZxdW90O0NvbXB1dGVy
IEFsZ2VicmEgVGVzdCA8YnI+DQo8L2Rpdj4NClN1aXRlJnF1b3Q7IChDQVRTKS4gQWxiZXJ0IFJp
Y2ggaGFzIGRvbmUgdGhpcyB3aXRoIFJVQkkgYW5kIGludGVncmF0aW9uLiBUaGF0PGJyPg0KPC9k
aXY+DQo8ZGl2PndvcmsgaXMgYWxyZWFkeSBwYXJ0aWFsbHkgaW4gdGhlIHRlc3Qgc3VpdGUgYW5k
IHdvcmsgaGFzIGJlZW4gZG9uZSBvbiB0aGU8YnI+DQo8L2Rpdj4NCjxkaXY+cGF0dGVybiBtYXRj
aGluZy4gTGFyZ2UgZGF0YXNldHMgKGxpa2UgS2Fta2UpIGFyZSBhbHdheXMgd2VsY29tZS4gU29t
ZSw8YnI+DQo8L2Rpdj4NCjxkaXY+c3VjaCBhcyBTY2hhdW1zIHdlcmUgaGFuZC1kZXZlbG9wZWQu
IFRoaXMgaXMgdGVkaW91cy48YnI+DQo8YnI+DQo8ZGl2PkFzIEF4aW9tIGRldmVsb3BzIG1vcmUg
ZXhwbGFuYXRpb25zIGFuZCBkb2N1bWVudGF0aW9uIGl0IHdvdWxkIGJlPGJyPg0KPC9kaXY+DQo8
ZGl2PnVzZWZ1bCB0byBleGVjdXRlIHRoZSBmb3JtdWxhcyBkaXJlY3RseSBzbyB0aGVyZSBpcyBh
IGxvY2FsIGluY2VudGl2ZSB0byBiZTxicj4NCjwvZGl2Pg0KY2xlYXIgYWJvdXQgc2VtYW50aWNz
Ljxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5JbiB0aGUgbG9uZyB0ZXJtIHRoZSBob3BlIGlzIHRo
YXQgd2UgY2FuIGp1c3QgZ3JhYiBmb3JtdWxhcyBkaXJlY3RseSBmcm9tPGJyPg0KPC9kaXY+DQo8
ZGl2PnRoZWlyIHNvdXJjZXMgKGFsYSBsaXRlcmF0ZSBwcm9ncmFtbWluZykuIFlvdXIgd29yayBt
YWtlcyBpdCBwbGFpbiB0aGF0IHJhdzxicj4NCjwvZGl2Pg0KPGRpdj5sYXRleCBkb2VzIG5vdCBj
YXJyeSBzdWZmaWNpZW50IHNlbWFudGljcy4gVGhlcmUgaXMgYSBnbG9iYWwgcXVlc3Rpb24gb2Yg
PGJyPg0KPC9kaXY+DQo8ZGl2PmhvdyB0byBtYWtlIHRoaXMgd29yay4gVW5mb3J0dW5hdGVseSBh
IGdlbmVyYWwgY3Jvc3MtcGxhdGZvcm0gc29sdXRpb248YnI+DQo8L2Rpdj4NCjxkaXY+aXMgZGlm
ZmljdWx0IChjaXRlIERld2FyL0RhdmVucG9ydC9ldCBhbC4gZm9yIE9wZW5NYXRoKS4gPGJyPg0K
PC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5TaW5jZSBBeGlvbSBpcyBsaXRlcmF0ZSBh
bmQgZXh0cmFjdGluZyBmb3JtdWxhcyBpcyB0cml2aWFsIGl0IHNlZW1zIHRoYXQ8YnI+DQo8L2Rp
dj4NCjxkaXY+bGl0ZXJhdGUgbWFya3VwIGlzIGEgbmF0dXJhbCBnb2FsLiBTaW5jZSBBeGlvbSB1
c2VzIGFic3RyYWN0IGFsZ2VicmE8YnI+DQo8L2Rpdj4NCjxkaXY+YXMgYSBzY2FmZm9sZCB0aGUg
dHlwZSB0b3dlciBhbHJlYWR5IGhhcyBhIGxvdCBvZiBheGlvbWF0aWMgc2VtYW50aWNzLjxicj4N
CjwvZGl2Pg0KPGRpdj5UaGUgbmF0dXJhbCBqb2luIG9mIGxpdGVyYXRlIGxhdGV4IGFuZCBhYnN0
cmFjdCBhbGdlYnJhIGlzIGNsZWFybHk8YnI+DQo8L2Rpdj4NCjxkaXY+c2VtYW50aWMgbWFya3Vw
LCBha2Egc2VsYXRleC48YnI+DQo8YnI+DQo9PT09PT09PT09PTxicj4NCjwvZGl2Pg0KPGRpdj5D
b25zaWRlcmF0aW9uIDEwOiBzZW1hbnRpYy0mZ3Q7aW5wdXRmb3JtIHRyYW5zbGF0aW9uICh3ZWF2
ZXI/IDotKSApPGJyPg0KPC9kaXY+DQo8c3Bhbj4NCjxkaXY+PGJyPg0KJmd0O3ggYW5kIG5vdCB4
Jm5ic3A7Jm5ic3A7IGhhcyBubyBwYXJ0aWN1bGFyIG1lYW5pbmcsJm5ic3A7IGJ1dCBpZiB4IGlz
IGV4cGxpY2l0bHkgdHJ1ZSBvciBmYWxzZSw8YnI+DQomZ3Q7TWF4aW1hIHNpbXBsaWZpZXMgaXQg
dG8gZmFsc2UuJm5ic3A7IElmIFNFQUxBVEVYIGhhcyBhIHNlbWFudGljcyAtLSBhcmUgeW91PGJy
Pg0KJmd0O2RlZmluaW5nIHlldCBhbm90aGVyIENBUz8mbmJzcDsgT3IgcGVyaGFwcyB5b3Ugc2hv
dWxkIGxpbmsgaXQgMTAwJSB0byBBeGlvbSdzPGJyPg0KJmd0O3NlbWFudGljcywgd2hpY2ggeW91
IHByZXN1bWFibHkga25vdyBhYm91dCBhbmQgY2FuIG1vZGlmeS48YnI+DQo8YnI+DQo8L2Rpdj4N
Cjwvc3Bhbj4NCjxkaXY+SSBhbSBOT1QgZGVmaW5pbmcgYW5vdGhlciBDQVMuIFRoZSBnb2FsIGlz
IGEgJnF1b3Q7d2VsbC1kZXNpZ25lZCBoYWNrJnF1b3Q7IHVzaW5nPGJyPg0KPC9kaXY+DQo8ZGl2
PnVuaXZlcnNhbGx5IHVuZGVyc3Rvb2QgbGF0ZXgsIGEgbGF0ZXggcGFja2FnZSwgYW5kIGEgdHJh
bnNsYXRpb24gcHJvZ3JhbS48YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KVGhlIHNlbGF0ZXggaWRl
YSBpcyBvbmx5IHBhcnRpYWxseSBBeGlvbSBzcGVjaWZpYy4gXElOVCwgZm9yIGluc3RhbmNlLCBz
ZWVtcyA8YnI+DQpwcmV0dHkgZ2VuZXJpYy4gSG93ZXZlciwgaWYgdGhlIGlkZWEgaXMgdG8gcmVh
ZCBmb3JtdWxhcyBhbmQgZGlzYW1iaWd1YXRlIDxicj4NCmE9YiAoYm9vbGVhbikgdnMgYT1iIChl
cXVhdGlvbikgdGhlbiB0aGUgbWFya3VwIG5lZWRzIHRvIGJlIGdyb3VuZGVkIDxicj4NCnRvIGhh
dmUgbWVhbmluZy4gQXhpb20ncyBkb21haW5zIChCT09MRUFOKSBhbmQgKEVRKSBhcyB0aGUgZ3Jv
dW5kPGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4NClxCT09MRUFOKGE9Yik8YnI+DQo8L2Rpdj4NCjxk
aXY+XEVRKGE9Yik8YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+YXJlIHVuYW1iaWd1b3VzIHJlbGF0
aXZlIHRvIGVhY2ggb3RoZXIgaW4gQXhpb20uIEkgZG9uJ3Qga25vdyBlbm91Z2g8YnI+DQo8L2Rp
dj4NCjxkaXY+YWJvdXQgTWF4aW1hIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgbWlnaHQgdHJhbnNs
YXRlLjxicj4NCjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+VGhlIGV4dHJhY3RlZCBm
b3JtdWxhcyB3aXRoIHRoZSBkZWNvcmF0ZWQgc2VtYW50aWNzIHN0aWxsIG5lZWRzIGE8YnI+DQo8
L2Rpdj4NCjxkaXY+c2VtYW50aWNzLSZndDtpbnB1dGZvcm0gKHdlYXZlcikgcHJlLXByb2Nlc3Nv
ciB3aGljaCBjb3VsZCBiZSBNYXhpbWEgPGJyPg0Kc3BlY2lmaWMuIFRoaXMgd291bGQgbGVhZCB0
byBkZWJhdGUgYWJvdXQgd2hhdCAmcXVvdDtlcXVhbGl0eSZxdW90OyBtZWFucywgb2YgY291cnNl
Ljxicj4NCjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+QXhpb20gaGFzIHRyaWVkIHRv
IGNyZWF0ZSBhIGZpcnN0LW9yZGVyICZxdW90O3Jvc2V0dGEgc3RvbmUmcXVvdDsgdG8gdHJhbnNs
YXRlIGJldHdlZW48YnI+DQo8L2Rpdj4NCjxkaXY+c3lzdGVtcyAocm9zZXR0YS5wZGYgWzFdKSBi
dXQgaXQgaXMgdG9vIHNoYWxsb3cgdG8gY29uc2lkZXIgcHJvdmlkaW5nIDxicj4NCmNyb3NzLXBs
YXRmb3JtIHNlbWFudGljcy48YnI+DQo8YnI+DQo9PT09PT09PT09PT09PGJyPg0KPC9kaXY+DQo8
ZGl2PkNvbnNpZGVyYXRpb24gMTE6IFxzY29wZSBpbiBzZWxhdGV4PHNwYW4+PGJyPg0KPGJyPg0K
Jmd0O0FzIGZhciBhcyByZWNvcmRpbmcgc3R1ZmYgaW4gRExNRiAtLSB0aGVyZSBhcmUgcHJlc3Vt
YWJseSBzY29wZSBpc3N1ZXM8YnI+DQomZ3Q7KCZxdW90O2luIHRoaXMgY2hhcHRlciBuLG0gYXJl
IG5hdHVyYWwgbnVtYmVycy4uLi4mcXVvdDspJm5ic3A7IGFuZCBtYXliZSBldmVuIGEgbmVlZDxi
cj4NCiZndDt0byBtYWtlIHZhbHVlIGFzc2lnbm1lbnRzLiZuYnNwOyA8YnI+DQomZ3Q7SSB0aGlu
ayB5b3UgbmVlZCB0byBtb2RlbCB0aGVzZSBpbiBTRUFMQVRFWCB0b28uPGJyPg0KPGJyPg0KPC9z
cGFuPjwvZGl2Pg0KPGRpdj4oU2VlIENvbnNpZGVyYXRpb24gNik8YnI+DQo8L2Rpdj4NCjxkaXY+
PGJyPg0KPC9kaXY+DQo8ZGl2PkNsZWFybHkgdGhlcmUgYXJlIHNjb3BpbmcgaXNzdWVzLiBNeSBj
dXJyZW50IHRoaW5raW5nIGlzIHRvIGNyZWF0ZSBhPGJyPg0KPC9kaXY+DQo8ZGl2PlxzY29wZSBt
YXJrdXAgdGhhdCB3b3VsZCBtYW5hZ2UgdGhlIGVudmlyb25tZW50KHMpLiBUaGlzIGlzIG5vdCA8
YnI+DQphIG5ldyBpc3N1ZSAoc2VlICZxdW90O0xpc3AgaW4gU21hbGwgUGllY2VzJnF1b3Q7IFsw
XSk8YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+VGhlcmUgc2VlbSB0byBiZSB0aHJlZSBjb25jZXJu
cy48YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PkZpcnN0IGlzIHRoZSBzY29w
ZSBuYW1lLCB3aXRoIHNvbWV0aGluZyBsaWtlICdnbG9iYWwnIGFzIGEga2V5d29yZC48L2Rpdj4N
CjxkaXY+U2Vjb25kIGlzIHRoZSAmcXVvdDtjbG9zdXJlIGNoYWluJnF1b3Q7IG9mIG90aGVyIHNj
b3Blcy48YnI+DQo8L2Rpdj4NCjxkaXY+VGhpcmQgaXMgdGhlIHN5bWJvbCBiZWluZyBzY29wZWQu
PGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4NClxzY29wZXtuYW1lfXtjaGFpbn17c3ltYm9sfTxicj4N
Cjxicj4NCjwvZGl2Pg0KPGRpdj5UaGUgd2VhdmVyIHByb2dyYW0gd291bGQgd2FsayB0aGlzIGNo
YWluIHRvIGNyZWF0ZSB0aGUgcHJvcGVyIDxicj4NCmZpbGUgc3ludGF4IGZvciBzeXN0ZW0gaW5w
dXQuPGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4NCj09PT09PT09PT09PTxicj4NCjwvZGl2Pg0KPGRp
dj5Db25zaWRlcmF0aW9uIDEyOiBTeXN0ZW0gc3BlY2lmaWMgY29tbWFuZHMgXGF4aW9tPGJyPg0K
PGJyPg0KPC9kaXY+DQo8ZGl2PkFsb25nIHdpdGggdGhlIGZvcm11bGFzIGl0IGlzIGNsZWFyIHRo
YXQgc29tZSBzeXN0ZW0gc3BlY2lmaWM8YnI+DQo8L2Rpdj4NCjxkaXY+aW5wdXQgbWF5IGJlIHJl
cXVpcmVkLCBzdWNoIGFzIGxvYWRpbmcgZmlsZXMsIGNsZWFyaW5nIHdvcmtzcGFjZXMsPGJyPg0K
PC9kaXY+DQo8ZGl2PmV0Yy4gU29tZSBvZiB0aGVzZSBtYXkgYmUgZG9uZSBpbiB0aGUgd2VhdmVy
IHByb2dyYW0sIHN1Y2ggYXM8YnI+DQo8L2Rpdj4NCjxkaXY+YmV0d2VlbiBmb3JtdWxhcy4gT3Ro
ZXJzIG1heSBuZWVkIHRvIGJlIGFkZGVkIHRvIHRoZSBzZW1hbnRpY3MgPGJyPg0KYmxvY2suIFNv
IGEgbWFya3VwIHRoYXQgcHJvdmlkZXMgdmVyYmF0aW0gcXVvdGluZyBwZXIgc3lzdGVtIDxicj4N
Cm1pZ2h0IGJlIGRlZmluZWQsIGUuZy4gPGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2PlxheGlvbXsp
Y2xlYXIgYWxsfSZuYnNwOyAlY2xlYXIgdGhlIHdvcmtzcGFjZTxicj4NCjxicj4NCjwvZGl2Pg0K
PGRpdj53aGljaCB3b3VsZCBzaW1wbHkgcXVvdGUgYW4gaW5wdXQgbGluZS48YnI+DQo8YnI+DQo9
PT09PT09PT09PT09PTxicj4NCjwvZGl2Pg0KPGRpdj48YnI+DQpOb3RlIHRoYXQgc28gZmFyIGFs
bCB0aGF0IGlzIGJlaW5nIHN1Z2dlc3RlZCBpcyB0cmFuc3BhcmVudCBmb3JtdWxhPGJyPg0KPC9k
aXY+DQo8ZGl2Pm1hcmt1cHMgd2hpY2ggZG8gbm90IGltcGFjdCB0aGUgcHJlc2VudGF0aW9uLCBz
b21lIHNwZWNpYWwgdGFncyA8YnI+DQooXHNjb3BlLCBcYXhpb20sLi4uKSBhbmQgYSB3ZWF2ZXIg
cHJvZ3JhbSwgYWxvbmcgd2l0aCB0aGUgYWJpbGl0eSB0byA8YnI+DQpyZWFkIHRoZSBsYXRleCBh
bmQgZXh0cmFjdCBuYW1lZCBmb3JtdWxhcyAoYWthIGEgbGl0ZXJhdGUgcHJvZ3JhbSw8YnI+DQo8
L2Rpdj4NCjxkaXY+d2hpY2ggQXhpb20gYWxyZWFkeSBjYW4gZG8pLjxicj4NCjwvZGl2Pg0KPGRp
dj48YnI+DQo8L2Rpdj4NCjxkaXY+SXQgb3VnaHQgdG8gYmUgcG9zc2libGUgKGJ5IGRlc2lnbikg
dG8gY3JlYXRlIGEgc2VtYW50aWMgdmVyc2lvbiBvZjxicj4NCjwvZGl2Pg0KPGRpdj5DUkMgdGhh
dCBhbnkgc3lzdGVtIGNvdWxkIGltcG9ydCwgYXNzdW1pbmcgYSAmcXVvdDtzdWZmaWNpZW50bHkg
Y2xldmVyPGJyPg0KPC9kaXY+DQo8ZGl2PndlYXZlciZxdW90Oy48YnI+DQo8YnI+DQo8L2Rpdj4N
CjxkaXY+T24gYSBtb3JlIGFtYml0aW91cyBub3RlLCBJIGFtIHRyeWluZyB0byBmaW5kIGEgd2F5
IHRvIGtlZXAgdGhlIHNlbGF0ZXg8YnI+DQo8L2Rpdj4NCjxkaXY+bWFya3VwICZxdW90O2hpZGRl
biZxdW90OyBpbiBhIHBkZiBhbmQgdXNlIGl0IGFzIHRoZSBjbGlwYm9hcmQgcGFzdGUgd2hlbiB0
aGU8YnI+DQo8L2Rpdj4NCjxkaXY+Zm9ybXVsYSBpcyBzZWxlY3RlZC4gQW55b25lIHdpdGggYSBj
bHVlLCBwbGVhc2UgaGVscC48YnI+DQo8YnI+DQo9PT09PT09PT09PT09PT08YnI+DQo8L2Rpdj4N
CjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PlswXSBRdWVpbm5lYywgQ2hyaXN0b3BoZXIsICZxdW90
O0xpc3AgaW4gU21hbGwgUGllY2VzJnF1b3Q7IElTQk4gPHNwYW4+OTc4LTA1MjE1NDU2NjI8YnI+
DQooMjAwMyk8YnI+DQo8YnI+DQo8L3NwYW4+PC9kaXY+DQo8ZGl2PjxzcGFuPlsxXSBXZXN0ZXIs
IE1pY2hhZWwgSi4gYW5kIERhbHksIFRJbW90aHkgJnF1b3Q7Um9zZXR0YSZxdW90OyA8YnI+DQo8
L3NwYW4+PC9kaXY+DQo8ZGl2PjxzcGFuPjxhIGhyZWY9Imh0dHA6Ly9heGlvbS1kZXZlbG9wZXIu
b3JnL2F4aW9tLXdlYnNpdGUvcm9zZXR0YS5wZGYiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vYXhp
b20tZGV2ZWxvcGVyLm9yZy9heGk8d2JyPm9tLXdlYnNpdGUvcm9zZXR0YS5wZGY8L2E+PGJyPg0K
PGJyPg0KPC9zcGFuPjwvZGl2Pg0KPGRpdj48YnI+DQo8YnI+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8ZGl2IGNsYXNzPSJnbWFpbF9leHRyYSI+PGJyPg0KPGRpdiBjbGFzcz0iZ21h
aWxfcXVvdGUiPk9uIFRodSwgQXVnIDE4LCAyMDE2IGF0IDU6MzAgUE0sIFJpY2hhcmQgRmF0ZW1h
biA8c3BhbiBkaXI9Imx0ciI+DQombHQ7PGEgaHJlZj0ibWFpbHRvOmZhdGVtYW5AYmVya2VsZXku
ZWR1IiB0YXJnZXQ9Il9ibGFuayI+ZmF0ZW1hbkBiZXJrZWxleS5lZHU8L2E+Jmd0Ozwvc3Bhbj4g
d3JvdGU6PGJyPg0KPGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2lu
OjAgMCAwIC44ZXg7IGJvcmRlci1sZWZ0OjFweCAjY2NjIHNvbGlkOyBwYWRkaW5nLWxlZnQ6MWV4
Ij4NCjxkaXYgYmdjb2xvcj0iI0ZGRkZGRiI+DQo8ZGl2PnRoYW5rcyBmb3IgYWxsIHRoZSByZWZl
cmVuY2VzIDopPGJyPg0KPGJyPg0KSSdtIG5vdCBzdXJlIGlmIEknbSBnb2luZyB0byByZXBlYXQg
Y29tbWVudHMgSSZuYnNwOyBtYWRlIGFscmVhZHkgc29tZXdoZXJlLjxicj4NCkZpcnN0LCZuYnNw
OyBoYXMgRGFuIFp3aWxsaW5nZXIgd2VpZ2hlZCBpbj8mbmJzcDsgSSB0aGluayB0aGF0IGl0IHdv
dWxkIGJlIHVzZWZ1bDxicj4NCnRvIHNlZSB3aGF0IGhlIGhhcyBkb25lLjxicj4NCjxicj4NCk5l
eHQsIHRoZXJlIGFyZSBhbWJpZ3VpdGllcyBhbW9uZyBDQVMgYW5kIGV2ZW4gd2l0aGluIGEgc2lu
Z2xlIENBUy48YnI+DQo8YnI+DQpGb3IgZXhhbXBsZSwgaW4gTWFjc3ltYS8gTWF4aW1hJm5ic3A7
IHRoZXJlIGlzIGdlbmVyYWxseSBubyBzZW1hbnRpY3M8YnI+DQphc3NvY2lhdGVkIHdpdGggJnF1
b3Q7PSZxdW90OyBvciAmcXVvdDsmZ3Q7JnF1b3Q7LiZuYnNwOyZuYnNwOyBCdXQgaW4gc29tZSBj
b250ZXh0cywgdGhlcmUgaXMgc29tZSBtZWFuaW5nLjxicj4NCjxicj4NCngmZ3Q7Mip5PGJyPg0K
PGJyPg0KaXMgYSB0cmVlIGV4cHJlc3Npb24uJm5ic3A7IEl0IGlzIG5vdCBhc3NvY2lhdGVkIHdp
dGggeCBvciB3aXRoIHkuPGJyPg0KPGJyPg0KYXNzdW1lKHgmZ3Q7Mip5KSZuYnNwOyZuYnNwOyBk
b2VzIG1lYW4gc29tZXRoaW5nIC4uLiBpdCBwdXRzIGluZm8gaW4gYSBkYXRhYmFzZS48YnI+DQpT
b21laG93IGVuY29kaW5nIHRoZSBtZXRob2QgdG8gZXh0cmFjdCB0aGlzIGluZm9ybWF0aW9uIGlu
dG8gU0VBTEFURVg8YnI+DQooU2VMYVRlWD8pIGluIGEgQ0FTLWluZGVwZW5kZW50IHdheSAtLSB0
aGF0J3MgcXVpdGUgYSB0YXNrLiZuYnNwOyZuYnNwOyBJbjxicj4NCnBhcnRpY3VsYXIsIGl0IHdv
dWxkIHNlZW0gdG8gcmVxdWlyZSBhbiB1bmRlcnN0YW5kaW5nIG9mIHdoYXQgYXNzdW1lKCk8YnI+
DQpkb2VzIGluIE1heGltYSwgYW5kIHdoYXQgaXMoKSBkb2VzIGFsc28uPGJyPg0KPGJyPg0KeCBh
bmQgbm90IHgmbmJzcDsmbmJzcDsgaGFzIG5vIHBhcnRpY3VsYXIgbWVhbmluZywmbmJzcDsgYnV0
IGlmIHggaXMgZXhwbGljaXRseSB0cnVlIG9yIGZhbHNlLDxicj4NCk1heGltYSBzaW1wbGlmaWVz
IGl0IHRvIGZhbHNlLiZuYnNwOyBJZiBTRUFMQVRFWCBoYXMgYSBzZW1hbnRpY3MgLS0gYXJlIHlv
dTxicj4NCmRlZmluaW5nIHlldCBhbm90aGVyIENBUz8mbmJzcDsgT3IgcGVyaGFwcyB5b3Ugc2hv
dWxkIGxpbmsgaXQgMTAwJSB0byBBeGlvbSdzPGJyPg0Kc2VtYW50aWNzLCB3aGljaCB5b3UgcHJl
c3VtYWJseSBrbm93IGFib3V0IGFuZCBjYW4gbW9kaWZ5Ljxicj4NCjxicj4NCkFzIGZhciBhcyBy
ZWNvcmRpbmcgc3R1ZmYgaW4gRExNRiAtLSB0aGVyZSBhcmUgcHJlc3VtYWJseSBzY29wZSBpc3N1
ZXM8YnI+DQooJnF1b3Q7aW4gdGhpcyBjaGFwdGVyIG4sbSBhcmUgbmF0dXJhbCBudW1iZXJzLi4u
LiZxdW90OykmbmJzcDsgYW5kIG1heWJlIGV2ZW4gYSBuZWVkPGJyPg0KdG8gbWFrZSB2YWx1ZSBh
c3NpZ25tZW50cy4mbmJzcDsgPGJyPg0KSSB0aGluayB5b3UgbmVlZCB0byBtb2RlbCB0aGVzZSBp
biBTRUFMQVRFWCB0b28uPGJyPg0KPGJyPg0KSnVzdCBtdXNpbmcgYWJvdXQgd2hlcmUgeW91IGFy
ZSBoZWFkaW5nLjxicj4NCjxicj4NClJKRg0KPGRpdj4NCjxkaXY+PGJyPg0KPGJyPg0KPGJyPg0K
PGJyPg0KT24gOC8xOC8yMDE2IDExOjQ1IEFNLCBUaW0gRGFseSB3cm90ZTo8YnI+DQo8L2Rpdj4N
CjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPg0K
PGRpdiBkaXI9Imx0ciI+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0K
PGRpdj5GYXRlbWFuIFswXSByYWlzZWQgYSBzZXQgb2YgaXNzdWVzIHdpdGggdGhlIE9wZW5NYXRo
PGJyPg0KPC9kaXY+DQo8ZGl2PmFwcHJvYWNoLiBXZSBhcmUgbm90IHRyeWluZyB0byBiZSBjcm9z
cy1wbGF0Zm9ybSBpbiB0aGlzPGJyPg0KPC9kaXY+DQo8ZGl2PmVmZm9ydC4gQXhpb20gZG9lcyBw
cm92aWRlIGFuIGFsZ2VicmFpYyBzY2FmZm9sZCBzbyBpdCBpczxicj4NCjwvZGl2Pg0KPGRpdj5w
b3NzaWJsZSB0aGF0IHRoZSBzZWxhdGV4IG1hcmt1cCBtaWdodCBiZSB1c2VmdWwgZWxzZXdoZXJl
PGJyPg0KPC9kaXY+DQo8ZGl2PmJ1dCB0aGF0IGlzIG5vdCBhIGRlc2lnbiBjcml0ZXJpb24uPGJy
Pg0KPGJyPg0KPC9kaXY+DQo8ZGl2PkZhdGVtYW5bMV0gYWxzbyByYWlzZXMgc29tZSBkaWZmaWN1
bHQgY3Jvc3MtcGxhdGZvcm0gaXNzdWVzPGJyPg0KPC9kaXY+DQo8ZGl2PnRoYXQgYXJlIG5vdCBw
YXJ0IG9mIHRoaXMgZGVzaWduLjxicj4NCjwvZGl2Pg0KPGRpdj48YnI+DQpGYXRlbWFuWzJdIHNo
b3dzIHRoYXQgcGFyc2luZyB0ZXggd2l0aCBvbmx5IHN5bnRhY3RpYyBtYXJrdXA8YnI+DQpzdWNj
ZWVkZWQgb24gb25seSA0MyUgb2YgMTA3NDAgaW5wdXRzLiBJdCBvdWdodCB0byBiZSBwb3NpYmxl
PGJyPg0KdG8gaW5jcmVhc2UgdGhpcyBwZXJjZW50YWdlIGdpdmVuIHByb3BlciBzZW1hbnRpYyBt
YXJrdXAuPGJyPg0KPC9kaXY+DQo8ZGl2PihQZXJoYXBzIHRoZXJlIHNob3VsZCBiZSBhIGNvbXBl
dGl0aW9uIHNpbWlsYXIgdG8gdGhlIGRlZXA8YnI+DQo8L2Rpdj4NCjxkaXY+bGVhcm5pbmcgZ3Jv
dXBzPyBQaERzIGhhdmUgYmVlbiBhd2FyZGVkIG9uIGluY3JlbWVudGFsPGJyPg0KPC9kaXY+DQo8
ZGl2PmltcHJvdmVtZW50cyBvZiB0aGUgcGVyY2VudGFnZSk8YnI+DQo8L2Rpdj4NCjxkaXY+PGJy
Pg0KPC9kaXY+DQo8ZGl2PlRoaXMgaXMgYSBkZXNpZ24tYnktY3Jhd2wgYXBwcm9hY2ggdG8gdGhl
IHNlbWFudGljIG1hcmt1cDxicj4NCjwvZGl2Pg0KPGRpdj5pZGVhLiBUaGUgaG9wZSBpcyB0byBn
ZXQgc29tZXRoaW5nIHJ1bm5pbmcgdGhpcyB3ZWVrIHRoYXQ8YnI+DQo8L2Rpdj4NCjxkaXY+J3dv
cmtzJyBidXQgZ2l2aW5nIGR1ZSBjb25zaWRlcmF0aW9uIHRvIGdsb2JhbCBhbmQgbG9uZy10ZXJt
PGJyPg0KPC9kaXY+DQo8ZGl2Pmlzc3Vlcy4gQSBmaXJzdCBnbGFuY2UgYXQgQ1JDL05JU1QgcmFp
c2VzIG1vcmUgcXVlc3Rpb25zPGJyPg0KPC9kaXY+DQo8ZGl2PnRoYW4gYW5zd2VycyBhcyBpcyB1
c3VhbCB3aXRoIGFueSByZXNlYXJjaC48YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+SXQgSVMgYSBk
ZXNpZ24gZ29hbCB0byBzdXBwb3J0IGEgQ29tcHV0ZXIgQWxnZWJyYSBUZXN0IFN1aXRlPGJyPg0K
PC9kaXY+DQo8ZGl2Pig8YSBocmVmPSJodHRwOi8vYXhpb20tZGV2ZWxvcGVyLm9yZy9heGlvbS13
ZWJzaXRlL0NBVFMiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vYXhpb20tZGV2ZWxvcGVyLm9yZy9h
eDx3YnI+aW9tLXdlYnNpdGUvQ0FUUzwvYT4pLiBJdCBpcyB2ZXJ5PGJyPg0KPC9kaXY+DQo8ZGl2
PnRlZGlvdXMgdG8gaGFuZCBjb25zdHJ1Y3QgdGVzdCBzdWl0ZXMuIEl0IHdpbGwgYmUgZXZlbiBt
b3JlPGJyPg0KPC9kaXY+DQo8ZGl2PnRlZGlvdXMgdG8gY29uc3RydWN0IHRoZW0gJnF1b3Q7c2Vj
b25kLWxldmVsJnF1b3Q7IGJ5IGRvaW5nIHNlbWFudGljPGJyPg0KPC9kaXY+DQo8ZGl2Pm1hcmt1
cCBhbmQgdGhlbiB0cnlpbmcgdG8gdXNlIHRoZW0gYXMgaW5wdXQsIGJ1dCB0aGUgaG9wZSBpczxi
cj4NCjwvZGl2Pg0KPGRpdj50aGF0IGV2ZW50dWFsbHkgdGhlIENSQy9OSVNUL0cmYW1wO1IsIGV0
YyB3aWxsIGV2ZW50dWFsbHkgYmU8YnI+DQo8L2Rpdj4NCjxkaXY+cHVibGlzaGVkIHdpdGggc2Vt
YW50aWNzIHNvIGNvbXB1dGF0aW9uYWwgbWF0aGVtYXRpY3MgY2FuPGJyPg0KPC9kaXY+DQo8ZGl2
PnN0b3Agd29ya2luZyBmcm9tIHN5bnRheC48YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPT09PT09
PT09PT08YnI+DQpDb25zaWRlcmF0aW9uIDQ6IEkvTyB0cmFuc3BhcmVuY3kgPGJyPg0KPGJyPg0K
QXNzdW1lIGZvciB0aGUgbW9tZW50IHRoYXQgd2UgdGFrZSBhIGxhdGV4IGZpbGUgY29udGFpbmlu
Zzxicj4NCjwvZGl2Pg0Kb25seSBmb3JtdWxhcy4gV2Ugd291bGQgbGlrZSB0byBiZSBhYmxlIHRv
IHJlYWQgdGhpcyBmaWxlIHNvIDxicj4NCjwvZGl2Pg0KaXQgaGFzIGNvbXB1dGF0aW9uYWwgbWF0
aGVtYXRpY3MgKENNKSBzZW1hbnRpY3MuPGJyPg0KPGJyPg0KPC9kaXY+DQpJdCBpcyBjbGVhciB0
aGF0IHRoZXJlIG5lZWRzIHRvIGJlIHNlbWFudGljIHRhZ3MgdGhhdCBjYXJyeSB0aGU8YnI+DQo8
L2Rpdj4NCmluZm9ybWF0aW9uIGJ1dCB0aGVzZSB0YWdzIGhhdmUgdG8gYmUgY2FyZWZ1bGx5IGRl
c2lnbmVkIE5PVDxicj4NCjwvZGl2Pg0KdG8gY2hhbmdlIHRoZSBzeW50YWN0aWMgZGlzcGxheS4g
VGhleSBtYXksIGFzIG5vdGVkIGJlZm9yZSw8YnI+DQo8L2Rpdj4NCjxkaXY+cmVxdWlyZSBtdWx0
aXBsZSBzZW1hbnRpYyB2ZXJzaW9ucyBmb3IgYSBzaW5nbGUgc3ludGF4Ljxicj4NCjwvZGl2Pg0K
PGRpdj48YnI+DQo8L2Rpdj4NCkl0IGlzIGFsc28gY2xlYXIgdGhhdCB3ZSB3b3VsZCBsaWtlIHRv
IGJlIGFibGUgdG8gb3V0cHV0IGZvcm11bGFzPGJyPg0KPC9kaXY+DQp3aXRoIENNIHNlbWFudGlj
cyB3aGVyZSBjdXJyZW50bHkgd2Ugb25seSBvdXRwdXQgc3ludGF4Ljxicj4NCjxicj4NCj09PT09
PT09PT09PGJyPg0KPC9kaXY+DQo8ZGl2PkNvbnNpZGVyYXRpb24gNTogSS9PIGlzb21vcnBoaXNt
PGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KQW4gaW1wb3J0YW50IHByb3BlcnR5IG9m
IHNlbGF0ZXggaXMgYW4gaXNvbW9ycGhpc20gd2l0aDxicj4NCjwvZGl2Pg0KaW5wdXQvb3V0cHV0
LiBBeGlvbSBhbGxvd3Mgb3V0cHV0IGZvcm1zIHRvIGJlIGRlZmluZWQgZm9yIGE8YnI+DQo8L2Rp
dj4NCnZhcmlldHkgb2YgdGFyZ2V0cyBzbyB0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBwcm9i
bGVtLiBGb3I8YnI+DQo8L2Rpdj4NCmlucHV0LCBob3dldmVyLCB0aGlzIG1lYW5zIHRoYXQgdGhl
IHJlYWRlciBoYXMgdG8ga25vdyBob3c8YnI+DQo8L2Rpdj4NCnRvIGV4cGFuZCBcSU5UezN9IGlu
dG8gdGhlIGNvcnJlY3QgZG9tYWluLiBUaGlzIGNvdWxkIGJlIGRvbmU8YnI+DQo8L2Rpdj4NCndp
dGggYSBzdGFuZC1hbG9uZSBwcmUtcHJvY2Vzc29yIGZyb20gc2VsYXRleC0mZ3Q7aW5wdXRmb3Jt
Ljxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5JdCBzaG91bGQgYmUgcG9zc2libGUgdG8gcmVhZC10
aGVuLXdyaXRlIGFuIHNlbGF0ZXggZm9ybXVsYSw8YnI+DQo8L2Rpdj4NCjxkaXY+b3Igd3JpdGUt
dGhlbi1yZWFkIGFuIHNlbGF0ZXggZm9ybXVsYSB3aXRoIGlkZW50aWNhbCBzZW1hbnRpY3MuPGJy
Pg0KPGJyPg0KPC9kaXY+DQo8ZGl2PlRoYXQgbWlnaHQgbm90IG1lYW4gdGhhdCB0aGUgSS9PIGlz
IGlkZW50aWNhbCB0aG91Z2ggZHVlIHRvIDxicj4NCjwvZGl2Pg0KPGRpdj50aGluZ3MgbGlrZSB2
YXJpYWJsZSBvcmRlcmluZywgZXRjLiA8YnI+DQo8YnI+DQo9PT09PT09PT09PTxicj4NCjwvZGl2
Pg0KPGRpdj5Db25zaWRlcmF0aW9uIDY6IExhdGV4IHNlbWFudGljIG1hY3Jvczxicj4NCjxicj4N
CjwvZGl2Pg0KPGRpdj5TZW1hbnRpYyBtYXJrdXAgd291bGQgYmUgZ3JlYXRseSBzaW1wbGlmaWVk
IGlmIHNlbGF0ZXggcHJvdmlkZWQ8YnI+DQo8L2Rpdj4NCjxkaXY+YSBtZWNoYW5pc20gc2ltaWxh
ciB0byBBeGlvbSdzIGFiaWxpdHkgdG8gZGVmaW5lIHR5cGVzICZxdW90O29uIHRoZSBmbHkmcXVv
dDs8YnI+DQo8L2Rpdj4NCjxkaXY+dXNpbmcgZWl0aGVyIGFzc2lnbm1lbnQ8YnI+DQo8L2Rpdj4N
CjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PiZuYnNwOyZuYnNwOyBUWVA6PUZSQUMoUE9MWShJTlQp
KTxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5vciBtYWNybyBmb3JtPGJyPg0KPGJyPg0KPC9kaXY+
DQo8ZGl2PiZuYnNwOyZuYnNwOyBUWVAgPT0mZ3Q7IEZSQUMoUE9MWShJTlQpKTxicj4NCjxicj4N
CjwvZGl2Pg0KPGRpdj5MYXRleCBpcyBjYXBhYmxlIG9mIGRvaW5nIHRoaXMgYW5kIHNlbGF0ZXgg
c2hvdWxkIHByb2JhYmx5IGluY2x1ZGU8YnI+DQo8L2Rpdj4NCjxkaXY+YSBzZXQgb2YgcHJlLWRl
ZmluZWQgY29tbW9uIG1hcmt1cHMsIHN1Y2ggYXM8YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+Jm5i
c3A7IFxGUklOVCA9PSZndDsgXEZSQUNcSU5UPGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4NCj09PT09
PT09PT09PGJyPg0KPC9kaXY+DQo8ZGl2PkNvbnNpZGVyYXRpb24gNzogc2VsYXRleCBcYmVnaW57
c2VtYW50aWN9IGVudmlyb25tZW50Pzxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5DdXJyZW50bHkg
QXhpb20gcHJvdmlkZXMgYSAnY2h1bmsnIGVudmlyb25tZW50IHdoaWNoIHN1cnJvdW5kczxicj4N
CjwvZGl2Pg0KPGRpdj5zb3VyY2UgY29kZS4gVGhlIGNodW5rcyBhcmUgbmFtZWQgc28gdGhleSBj
YW4gYmUgZXh0cmFjdGVkPGJyPg0KPC9kaXY+DQo8ZGl2PmluZGl2aWR1YWxseSBvciBpbiBncm91
cHM8YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+Jm5ic3A7Jm5ic3A7IFxiZWdpbntjaHVua317YSBu
YW1lIGZvciB0aGUgY2h1bmt9PGJyPg0KPC9kaXY+DQo8ZGl2PiZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyBhbnl0aGluZzxicj4NCjwvZGl2Pg0KPGRpdj4mbmJzcDsmbmJzcDsgXGVuZHtj
aHVua308YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+V2UgY291bGQgcHJvdmlkZSBhIHNpbWlsYXIg
ZW52aXJvbm1lbnQgZm9yIHNlbWFudGljcyBzdWNoIGFzPGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2
PiZuYnNwOyBcYmVnaW57c2VtYW50aWNzfXthIG5hbWUgZm9yIHRoZSBibG9ja308YnI+DQo8L2Rp
dj4NCjxkaXY+Jm5ic3A7IFxlbmR7c2VtYW50aWNzfTxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj53
aGljaCB3b3VsZCBwcm92aWRlIGEgd2F5IHRvIGVuY2Fwc3VsYXRlIG1hcmt1cCBhbmQgYWxzbyBh
bGxvdzxicj4NCjwvZGl2Pg0KPGRpdj5hIHBhcnRpY3VsYXIgYmxvY2sgdG8gYmUgZXh0cmFjdGVk
IGluIGxpdGVyYXRlIHByb2dyYW1taW5nIHN0eWxlLjxicj4NCjwvZGl2Pg0KPGRpdj48YnI+DQo8
L2Rpdj4NCjxkaXY+PT09PT09PT09PT08YnI+DQo8L2Rpdj4NCjxkaXY+Q29uc2lkZXJhdGlvbiA4
OiBMYXRleC10aW1lIHByb2Nlc3Npbmc8YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+QXhpb20gY3Vy
cmVudGx5IGNyZWF0ZXMgc3BlY2lmaWMgZmlsZXMgdXNpbmcgXHdyaXRlIHRvIGNyZWF0ZTxicj4N
CjwvZGl2Pg0KPGRpdj5pbnRlcm1lZGlhdGUgZmlsZXMgKGUuZy4gZm9yIHRhYmxlcykuIFRoaXMg
dGVjaG5pcXVlIGNhbiBiZSB1c2VkPGJyPg0KPC9kaXY+DQo8ZGl2PnRvIGVuaGFuY2UgbGF0ZXgt
dGltZSBkZWJ1Z2dpbmcgKHdoZXJlIGRpZCBpdCBmYWlsPykuIDxicj4NCjxicj4NCkl0IGNhbiBi
ZSB1c2VkIHRvIGNyZWF0ZSBBeGlvbSBmaWxlcyB3aGljaCBwcmUtY29uc3RydWN0IGRvbWFpbnMg
PGJyPg0KbmVlZGVkIHdoZW4gdGhlIGlucHV0IGZpbGUgd2l0aCBzZW1hbnRpYyBtYXJrdXAgaXMg
cmVhZC48YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KVGhpcyB3b3VsZCBoZWxwIGEgc3RhbmQtYWxv
bmUgc2VsYXRleC0mZ3Q7aW5wdXRmb3JtIHByZXByb2Nlc3Nvci48YnI+DQo8L2Rpdj4NCjxkaXY+
PGJyPg0KPC9kaXY+DQo8ZGl2Pj09PT09PT09PT09PGJyPg0KPC9kaXY+DQo8ZGl2PkNvbnNpZGVy
YXRpb24gOTogRGVzaWduIHNrZXRjaGVzPGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2Pkl0IGlzIGFs
bCB3ZWxsLWFuZC1nb29kIHRvIGhhbmQtd2F2ZSBhdCB0aGlzIGlkZWEgYnV0IGEgbGFyZ2U8YnI+
DQo8L2Rpdj4NCjxkaXY+YW1vdW50IG9mIHRoaXMgbWFjaGluZXJ5IGFscmVhZHkgZXhpc3RzLiA8
YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQpJdCB3b3VsZCBzZWVtIHVzZWZ1bCB0byBk
ZXZlbG9wIGFuIGluY3JlbWVudGFsIHRlc3Qgc3VpdGUgdGhhdDxicj4NCjwvZGl2Pg0Kc3RhcnRz
IHdpdGggJnF1b3Q7cHJpbWl0aXZlJnF1b3Q7IGRvbWFpbnMgKGUuZy4gSU5UKSwgY3JlYXRpbmcg
c2VsYXRleCBJL08uPGJyPg0KPC9kaXY+DQo8YnI+DQpPbmNlIHRoZXNlIGFyZSBpbiBwbGFjZSB3
ZSBjb3VsZCB3b3JrIG9uICZxdW90O3R5cGUgdG93ZXImcXVvdDsgbWFya3VwPGJyPg0KPC9kaXY+
DQpzdWNoIGFzIFxGUkFDXElOVCBvciBcUE9MWVxDT01QTEVYXEZMT0FULjxicj4NCjxicj4NCjwv
ZGl2Pg0KRm9sbG93aW5nIHRoYXQgbWlnaHQgYmUgcHJlLWV4aXN0aW5nIGxhdGV4IGZ1bmN0aW9u
cyBsaWtlIFxpbnQsIFxzdW0sPGJyPg0KPC9kaXY+DQpcY29zLCBldGMuIDxicj4NCjxicj4NCjwv
ZGl2Pg0KVG8gdmFsaWRhdGUgdGhlc2UgaWRlYXMgQXhpb20gd2lsbCBpbmNsdWRlIGFuIHNlbGF0
ZXguc3R5IGZpbGUgYW5kPGJyPg0KPC9kaXY+DQpzb21lIHVuaXQgdGVzdHMgZmlsZXMgb24gcHJp
bWl0aXZlIGRvbWFpbiBtYXJrdXAuIFRoYXQgc2hvdWxkIGJlIDxicj4NCmVub3VnaCB0byBzdGFy
dCB0aGUgYmlrZXNoZWQgZGlzY3Vzc2lvbnMuPGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2PklkZWFz
PyBDb25zaWRlcmF0aW9ucz8gU3VnZ2VzdGlvbnM/PGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4NCjwv
ZGl2Pg0KPGRpdj5UaW08YnI+DQo8YnI+DQo8L2Rpdj4NClswXSBGYXRlbWFuLCBSaWNoYXJkIEou
PGJyPg0KJnF1b3Q7PGZvbnQgc2l6ZT0iMiI+QSBDcml0aXF1ZSBvZiBPcGVuTWF0aCBhbmQgVGhv
dWdodHMgb248L2ZvbnQ+DQo8ZGl2IHN0eWxlPSJmb250LWZhbWlseTpzYW5zLXNlcmlmIj48Zm9u
dCBzaXplPSIyIj5FbmNvZGluZyBNYXRoZW1hdGljcywgSmFudWFyeSwgMjAwMSZxdW90OzwvZm9u
dD48L2Rpdj4NCjxhIGhyZWY9Imh0dHBzOi8vcGVvcGxlLmVlY3MuYmVya2VsZXkuZWR1LyU3RWZh
dGVtYW4vcGFwZXJzL29wZW5tYXRoY3JpdC5wZGYiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL3Bl
b3BsZS5lZWNzLmJlcmtlbGV5LmU8d2JyPmR1L35mYXRlbWFuL3BhcGVycy9vcGVubWF0aGNyaTx3
YnI+dC5wZGY8L2E+PGJyPg0KPGJyPg0KPC9kaXY+DQpbMV0gRmF0ZW1hbiwgUmljaGFyZCBKLjxi
cj4NCiZxdW90Ozxmb250IHNpemU9IjIiPlZlcmJzLCBOb3VucywgYW5kIENvbXB1dGVyIEFsZ2Vi
cmEsIG9yIFdoYXQncyBHcmFtbWFyIEdvdCB0bzwvZm9udD4NCjxkaXYgc3R5bGU9ImZvbnQtZmFt
aWx5OnNhbnMtc2VyaWYiPjxmb250IHNpemU9IjIiPmRvIHdpdGggTWF0aD8gJnF1b3Q7LCBEZWNl
bWJlciAxOCwgMjAwODxicj4NCjwvZm9udD48YSBocmVmPSJodHRwczovL3Blb3BsZS5lZWNzLmJl
cmtlbGV5LmVkdS8lN0VmYXRlbWFuL3BhcGVycy9ub3VudmVyYm1hYy5wZGYiIHRhcmdldD0iX2Js
YW5rIj5odHRwczovL3Blb3BsZS5lZWNzLmJlcmtlbGV5LmU8d2JyPmR1L35mYXRlbWFuL3BhcGVy
cy9ub3VudmVyYm1hYzx3YnI+LnBkZjwvYT48YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9
ImZvbnQtZmFtaWx5OnNhbnMtc2VyaWYiPlsyXSBGYXRlbWFuLCBSaWNoYXJkIEouPGJyPg0KPC9k
aXY+DQo8ZGl2IHN0eWxlPSJmb250LWZhbWlseTpzYW5zLXNlcmlmIj4mcXVvdDtQYXJzaW5nIFRl
WCBpbnRvIE1hdGhlbWF0aWNzJnF1b3Q7LDxicj4NCjxhIGhyZWY9Imh0dHBzOi8vcGVvcGxlLmVl
Y3MuYmVya2VsZXkuZWR1LyU3RWZhdGVtYW4vcGFwZXJzL3BhcnNpbmdfdGV4LnBkZiIgdGFyZ2V0
PSJfYmxhbmsiPmh0dHBzOi8vcGVvcGxlLmVlY3MuYmVya2VsZXkuZTx3YnI+ZHUvfmZhdGVtYW4v
cGFwZXJzL3BhcnNpbmdfdGV4PHdicj4ucGRmPC9hPjxicj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Js
b2NrcXVvdGU+DQo8YnI+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8
L2Rpdj4NCjxicj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2
Pg0KPGJyPg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8YnI+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjxicj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4N
CjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPGJyPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9i
bG9ja3F1b3RlPg0KPC9kaXY+DQo8YnI+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2Nr
cXVvdGU+DQo8L2Rpdj4NCjxicj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90
ZT4NCjwvZGl2Pg0KPGJyPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4N
CjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0K
PC9ib2R5Pg0KPC9odG1sPg0K

--_000_147213146015822792ccnycunyedu_--

\start
Date: Thu, 25 Aug 2016 14:50:42 -0400
From: Tim Daly <axiomcas@gmail.com>
To: William Sit <wsit@ccny.cuny.edu>
Subject: Re: [Axiom-developer] Design Thoughts on Semantic Latex (SELATEX)
Cc: Dan Zwillinger <zwilling@az-tec.com>,
	Richard Fateman <fateman@berkeley.edu>, 
	James Davenport <J.H.Davenport@bath.ac.uk>, 
	"vdhoeven@lix.polytechnique.fr" <vdhoeven@lix.polytechnique.fr>,
	Mike Dewar <miked@nag.co.uk>, axiom-dev <axiom-developer@nongnu.org>,
	"albert_rich@msn.com" <albert_rich@msn.com>

William,

It is unlikely that authors will provide a special chunk for Axiom in
papers.

Such an ability already exists but I don't expect anyone will adopt it.
The \usepackage{axiom} and \begin{chunk} / \end{chunk} pair work and is
all that is needed.

The primary target of this effort (although not restricted to them) are the
various collections (NIST/CRC/G&R/Jeffrey/etc) of formulas. I use these
references to create the computer algebra test suite but it takes months
to do this by hand. I also use them to build regression tests for Axiom.

There have been various attempts to extract semantics from latex. Some
are quite interesting (see http://mathpix.com). Unfortunately, there isn't
enough information in the latex. For instance, are your formulas given
over the real or complex domain?

In the longer term I am campaigning to bend these tomes toward a
more computational mathematics basis. Instead of listing the names of
20 invariant graph algorithms we really need reference versions of the
algorithms. And we need them in machine-readable form. And we need
them now so a whole generation of computational mathematicians do
not write yet-another-CAS from scratch.

Tim









On Thu, Aug 25, 2016 at 9:13 AM, William Sit <wsit@ccny.cuny.edu> wrote:

> Hi Tim:
>
>
> Would it be simpler to only add semantic markups to algorithmic
> descriptions in papers? Authors can be asked to provide a separate chunk
> with [Axiom] semantic markups (in essence, a skeleton implementation or
> pseudo-code of the algorithm involved---skeleton because the data
> structures of mathematical objects are usually ignored in a math paper).
> This would avoid having to mess with the latex source (already hard to read
> sometimes) or to "weave" to remove the semantic markups to recapture the
> latex: all that is needed would be to ignore the semantic chunk). Put
> another way, the semantic chunk is a direct (by hand or
> automatic) translation of the latex version of an algorithm chunk.
>
>
> Also, what would be the scope of the added semantic macros in LaTeX (like
> \AD, \INT)? Can their scope be limited only to semantic chunks?
>
>
> William
>
>
> William Sit
> Professor Emeritus
> Department of Mathematics
> The City College of The City University of New York
> New York, NY 10031
> homepage: wsit.ccny.cuny.edu
> ------------------------------
> *From:* Axiom-developer <axiom-developer-bounces+wyscc=sci.ccny.cuny.edu@
> nongnu.org> on behalf of Tim Daly <axiomcas@gmail.com>
> *Sent:* Thursday, August 25, 2016 6:17 AM
> *To:* Dan Zwillinger
> *Cc:* Richard Fateman; James Davenport; vdhoeven@lix.polytechnique.fr;
> Mike Dewar; axiom-dev; albert_rich@msn.com
> *Subject:* Re: [Axiom-developer] Design Thoughts on Semantic Latex
> (SELATEX)
>
> My initial approach was too heavy-handed and Axiom specific.
>
> It seems the semantic markup task can be viewed as an editor
> task. Editors don't care about semantics, they just work on text.
> Viewed this way the markup's only function is decoration for
> post-processing. It is (mostly) system independent.
>
> The edit tasks seem to be {delete, insert, replace} and some
> post-markup hints {function, type}
>
> The delete markup tells weaver to remove the latex completely.
> This is useful for things like {dx}
>
> The insert markup adds missing semantic text, such as {*} which
> is needed to indicate multiplication.
>
> The replace markup gives alternate text for weaver, for things where
> the function name might differ, e.g. \int -> integrate
>
> The function markup names a function that weaver should call
> which allows special handling in post-processing. It can be any
> s-expression (the weaver implementation is currently lisp-based).
>
> The type markup passes type information to weaver so Axiom
> knows the target type, useful for things like matrix.
>
> The macros are
>
> \newcommand{\AD}[1]{#1}% delete
> \newcommand{\AI}[1]{}% insert
> \newcommand{\AR}[2]{#1}% replace
>
> \newcommand{\AF}[2]{#1}% function
> \newcommand{\AT}[2]{#1}% type
>
> Note that \AI outputs nothing, so 3\AI{*}x == 3x to latex.
>
> \AD tells weaver to delete the text, e.g. {\AD ~dx} == ~dx to latex
>
> \AR tells weaver to replace the text e.g. {\AR \pi}{\%pi}
>
> \AF tells weaver to call a function, e.g. one that knows how to
> rewrite the input in a special way, or does tracing, etc.
>
> \AT adds target type information for Axiom
> e.g. \AT{3x+6}{POLY(INT)} == 3x+6 to latex but passes it as
> a Polynomial(Integer) to Axiom
>
> For example,
>
> $\int{\frac{dx}{ax*b}}$
>
> becomes
>
> $\AT{\AR{\int}{integrate}{\frac{\AD{dx}}{a\AI{*)x+b}}}{EXPR}{INT}}$
>
> telling weaver that the target type (AT) is EXPR(INT),
> the \int is really integrate
> the dx is to be ignored and
> the ax+b should read a*x+b
>
> There is an obvious tradeoff of markup vs weaver.
> For example. \int might be known to weaver.
> Or expressions might call an equation rewriter to add {*}
>
> The markup could vary from almost nothing to massive detail
> depending on the downstream cleverness.
>
> This initial markup set seems sufficient to handle every task
> that requires semantics markup so far. The overhead seems
> small and the gain seems large.
>
> Now the only problem is post-processing the latex. Sigh.
>
> There is no such thing as a simple job.
>
> Tim
>
>
> On Tue, Aug 23, 2016 at 7:27 PM, Tim Daly <axiomcas@gmail.com> wrote:
>
>> For those of you at home wishing to play along, there is a
>> selatex.test1 file at
>> http://axiom-developer.org/axiom-website/selatex.test1
>> containing 620 integrals.
>>
>> Each line is a call of the form
>>
>>   weaver(latex-string,axiom-string)
>>
>> The goal is to transform the latex into Axiom.
>>
>> Implicit is the idea that weaver will use the selatex tokens
>> to disambiguate the input. The current file has no selatex
>> tokens. They will be added as needed. The idea is to keep
>> the problem simple by adding print-invisible sematics to the
>> latex-string. In the ideal case the weaver program is trivial,
>> as is the markup. Any tradeoff should prioritize simplicity.
>> Another priority is to align the semantic markup with
>> Axiom domains in order to ground the semantics with code.
>>
>> Once all of these calls translate correctly the Axiom output
>> routines need to output the latex-string with the added
>> semantic markup so the mapping is bi-directional.
>>
>> The current file only looks at integration as I already have
>> the latex->axiom text available. Future test files will look
>> at other areas of interest. The long term goal is to parse
>> NIST/CRC/etc formulas.
>>
>> Tim
>>
>>
>> On Sun, Aug 21, 2016 at 11:02 PM, Tim Daly <axiomcas@gmail.com> wrote:
>>
>>> Dan,
>>>
>>> While paging through the CRC 31st Standard Mathematical
>>> Tables I landed on page 219, section 3.4.1.2 Graph Invariants.
>>>
>>> It would be a vast improvement if there were algorithms
>>> associated with these invariants. Clearly they exist somewhere.
>>>
>>> To "cross the gap" between tables and computational mathematics
>>> it would be valuable to include implementations of these invariants.
>>>
>>> It is hard to walk away from that page. An Axiom implementation
>>> would be fun to write, especially given the next section that lists
>>> different kinds of graphs which, presumably, would all have the
>>> invariants. Even better, the graph algorithms are likely good
>>> candidates for proof technology (ACL2 if done in Lisp, COQ if
>>> done in Spad). Lisp has the advantage of an ANSI standard.
>>>
>>> It seems worthwhile to take sections like this, expand them
>>> across computational and proof tools, and publish them in a
>>> form that is generally useful. It is "nice to know" that a graph
>>> has a radius but it would be even better if I could "just point and
>>> click" to import the algorithm.
>>>
>>> Axiom has been pushing literate programming for years. The
>>> tools exist to "make it so", as the saying goes.
>>>
>>> Tim
>>>
>>>
>>>
>>>
>>> On Sun, Aug 21, 2016 at 10:40 PM, Tim Daly <axiomcas@gmail.com> wrote:
>>>
>>>> Like any research problem it is a struggle to get a useful grip on this.
>>>> Looking at G&R (I just ordered the latest, mine is 4th edition), the
>>>> task quickly gets out of hand.
>>>>
>>>> The CATS tests in the past were created by reading the printed latex
>>>> in various volumes and hand-translating them to Axiom input.
>>>>
>>>> It is not difficult to re-create the latex input for these examples.
>>>> Doing so and combining the results gives a set of examples with
>>>> matching input latex and output Axiom. The homework problem is
>>>> to write the necessary markup and weaver.
>>>>
>>>> It is immediately obvious that this is more challenging than it seems.
>>>> For example, when writing y'(x)=0, Axiom needs y:=operator 'y
>>>> so it knows about the symbol as an operator. This falls under
>>>> "Consideration 12: System Specific Commands"... which implies
>>>> that the latex environment and quoting macros have to be
>>>> implemented. Sigh.
>>>>
>>>> There is no such thing as a simple job.
>>>>
>>>> Anyway, at least there is a way to make a proof of concept
>>>> prototype that reproduces existing results.
>>>>
>>>> Tim
>>>>
>>>>
>>>> On Sun, Aug 21, 2016 at 4:17 PM, Tim Daly <axiomcas@gmail.com> wrote:
>>>>
>>>>> Dan,
>>>>>
>>>>> Welcome.
>>>>>
>>>>> Re: Howard Cohl. Yes, I'd like an introduction. It seems important to
>>>>> make DLMF, CRC, and other sources contain enough semantics that
>>>>> they can be read by a computer algebra system. There are an
>>>>> enormous number of issues, such as what to do with functions
>>>>> unknown to the CAS, which need to be thought through.
>>>>>
>>>>> I believe that NIST/CRC/G&R collections with semantic markup will
>>>>> have a great normalizing effect on CAS development since it will raise
>>>>> cross-platform questions like "What percent of G&R do you handle?".
>>>>> Albert Rich (RUBI)[0] has been doing this for integration using
>>>>> patterns.
>>>>> This can only benefit computational mathematics in the long term.
>>>>>
>>>>> I've also campaigned for associating algorithms with published tables.
>>>>> It is important in the long term to have reference versions. The ACM
>>>>> used to do this years ago. I'd like to see a Gruntz algorithm for
>>>>> limits
>>>>> where it can be applied, for instance. It would also provide a focus on
>>>>> "missing algorithms" or edge cases. Davenport/Trager/Bronstein
>>>>> algorithms promise a decision procedure but there are no existing
>>>>> complete implementations. The tables could highlight missing cases,
>>>>> giving focus to efforts to complete the procedure.
>>>>>
>>>>> It will also put back-pressure on the tables to define different
>>>>> versions
>>>>> of the same formulas based on domains (C, R, etc).
>>>>>
>>>>>
>>>>> "The GR work was more than I had anticipated"... wins the award for
>>>>> understatement of the decade.
>>>>>
>>>>> The goal of this effort is to make it possible to read those
>>>>> formulas directly into a CAS. Axiom is my primary target but
>>>>> it should be done in a somewhat system agnostic form.
>>>>>
>>>>> I've spent well over a year creating the computer algebra test suite.
>>>>> It would be so much easier and more useful if the original sources
>>>>> could be read directly.
>>>>>
>>>>> I read your paper. There is an interesting mix of syntax and semantics.
>>>>>
>>>>> I guess the difference in this effort is that the semantic markup is
>>>>> intended to be transparent and grounded. The transparent aspect
>>>>> keeps the tables unchanged in print form. The grounded aspect keeps
>>>>> the semantics based on some algorithmic base. This implies, of
>>>>> course, that there IS an algorithmic base which does not yet exist
>>>>> for some of the work.
>>>>>
>>>>> As you can see from the CATS work I've been trying to validate
>>>>> Axiom's results with respect to published texts. This has found both
>>>>> Axiom bugs and misprints in published texts.
>>>>>
>>>>> The Kamke[1] suite was the first effort for differential equations.
>>>>>
>>>>> The Spiegel[2] chapter 14 on indefinite integrals for integration.
>>>>>
>>>>> The von Seggern[3] book on curves and surfaces for graphics.
>>>>>
>>>>> The Legendre and Grazini[4] on Pasta by Design for 3D graphics.
>>>>>
>>>>> The RUBI work on integration.
>>>>>
>>>>> and, currently I'm re-creating the numerics that were lost when NAG
>>>>> released the open source version, leaving me swimming through
>>>>> Luke's[5] Algorithms book.
>>>>>
>>>>> which, to quote a famous phrase "was more than I had anticipated".
>>>>>
>>>>> Your Handbook of Integration[6] has a section on various known
>>>>> "Caveats, How an integration result may be incorrect". This raises the
>>>>> wonderful topic of branch cuts yet again. I did some testing and it
>>>>> seems that Axiom and Mathematica share one set while Maple and
>>>>> Maxima share another.
>>>>>
>>>>> All of which leads to a need to create better reference materials that
>>>>> are generally available (unlike the ACM algorithms for non-paying
>>>>> customers) and directly useful for computational mathematics.
>>>>>
>>>>> The current plan is to take some tables, find or re-create the latex,
>>>>> invent a semantic markup, and then write the "weaver". At this point
>>>>> the research is still at the "proof of concept" stage. (tex formula
>>>>> sources are most welcome).
>>>>>
>>>>> Ultimately I'd really like to see a book of formulas and algorithms
>>>>> that I can just drag-and-drop into Axiom and be able to use them
>>>>> without lifetimes of work.
>>>>>
>>>>> Actually, that 's only the penultimate goal. I have augmented
>>>>> Axiom to include proofs (ACL2,COQ) so I'd also like to see proofs,
>>>>> (this IS mathematics, after all) but maybe we'll leave that for
>>>>> next month :-)
>>>>>
>>>>> Tim
>>>>>
>>>>> [0] Rich, Albert "Rule-based Mathematics"
>>>>> http://www.apmaths.uwo.ca/~arich/
>>>>>
>>>>> [1] Kamke. E. "Differentialgleichungen Losungsmethoden und Losungen"
>>>>> Chelsea Publishing Company, New York, 1959
>>>>>
>>>>> [2] Spiegel, Murray R. "Mathematical Handbook", Schaum's Outline
>>>>> Series; McGraw-Hill Book Company 1968
>>>>>
>>>>> [3] von Seggern, David "CRC Standard Curves and Surfaces",
>>>>> CRC Press, 1993 ISBN 0-8493-0196-3
>>>>>
>>>>> [4] Legendre, George L. and Grazini, Stefano "Pasta by Design",
>>>>> Thames and Hudson, 2001
>>>>>
>>>>> [5] Luke, Yudell "Algorithms for the Computation of Mathematical
>>>>> Functions", Academic Press, 1977 ISBN 0-12-459940-6
>>>>>
>>>>> [6] Zwillinger, Daniel "Handbook of Integration" Jones and Bartlett,
>>>>> London, 1992
>>>>>
>>>>>
>>>>>
>>>>> On Sun, Aug 21, 2016 at 10:16 AM, Dan Zwillinger <zwilling@az-tec.com>
>>>>> wrote:
>>>>>
>>>>>> All
>>>>>>
>>>>>> I began reading this topic's emails when they first appeared, and
>>>>>> then fell behind.
>>>>>> Sorry for my late comments.
>>>>>>
>>>>>> I admire your efforts.
>>>>>> They may be somewhat related to what I have done in the past.
>>>>>> My experience is as follows:
>>>>>>
>>>>>> (1) CRC SMTF (Standard Mathematical Tables and Formula)
>>>>>>
>>>>>> I put the ~700 integrals in CRC's SMTF into a format from which
>>>>>> (A) they could be typeset in LaTeX
>>>>>> (B) they could be converted into Mathematica (which either did a
>>>>>> symbolic or numeric computation) - and this was done
>>>>>>
>>>>>> I let Richard Fateman use them for his experiments.
>>>>>>
>>>>>>
>>>>>> (2) Elsevier's GR (Gradshteyn and Ryzhik's "Table of Integrals,
>>>>>> Series, and Products")
>>>>>>
>>>>>> I put the ~12,000 (if my memory is correct) integrals into a format
>>>>>> from which
>>>>>> (A) they could be beautifully typeset in LaTeX
>>>>>> (B) they could be converted into Mathematica - and this was NOT done
>>>>>> Enclosed is a PDF file describing the work and the resulting format.
>>>>>>
>>>>>>
>>>>>> A different format was used for SMTF and GR.
>>>>>> While the SMTF work was not too arduous, the GR work was more than I
>>>>>> had anticipated.
>>>>>> The input (the previous version of GR) had little syntactic structure
>>>>>> and it took much effort to get it into shape.
>>>>>> I used (many different) regular expressions (in perl) to translate
>>>>>> the bulk of the book, and then lots of hand tuning.
>>>>>>
>>>>>> While I think you are well beyond my thinking on these topics, please
>>>>>> let me know if I can help.
>>>>>> I am friends with Howard Cohl at NIST, who may be the current lead
>>>>>> for DLMF ("Digital Library of Mathematical Functions" at
>>>>>> dlmf.nist.gov).
>>>>>> Let me know if you need an introduction.
>>>>>>
>>>>>>
>>>>>> Dan Zwillingerzwilling@az-tec.com617-388-2382
>>>>>>
>>>>>> On 8/20/2016 11:30 PM, Tim Daly wrote:
>>>>>>
>>>>>> The game is to define latex markup that is transparent to the syntax
>>>>>> but adds semantics for post processing.
>>>>>>
>>>>>> Some simple tests show that this works. Suppose selatex.sty contains:
>>>>>>
>>>>>> \newcommand{\INT}[1]{#1}
>>>>>> \newcommand{\VARIABLE}[1]{#1}
>>>>>> \newcommand{\POLY}[1]{#1}
>>>>>> \newcommand{\INTEG}[2]{\int{#1}}
>>>>>>
>>>>>> This defines 4 new latex markups. The number in the square brackets
>>>>>> defines the number of expected arguments. The brace argument
>>>>>> delimites the characters that will occur during expansion with the #1
>>>>>> replaced by the first argument.
>>>>>>
>>>>>> (As an aside, INT, VARIABLE, and POLY just happen to be valid
>>>>>> Axiom domain abbreviations, hence the name choice. This choice
>>>>>> of names gives grounding to the semantics.)
>>>>>>
>>>>>> Notice that \INTEG takes two arguments but will display only one.
>>>>>> This allows the variable of integration to be passed in the semantics
>>>>>> without showing up in the output. This allows the semantics to carry
>>>>>> additional, non-display information needed by the CAS.
>>>>>>
>>>>>> Some examples follow.
>>>>>>
>>>>>> An integer 3 can be wrapped as \INT{3} but will still display as 3.
>>>>>>
>>>>>> A variable x can be wrapped as \VARIABLE{x}, displayed as x.
>>>>>>
>>>>>> $\POLY{\INT{3}\VARIABLE{x}}$ will display as 3*x
>>>>>>
>>>>>> $\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x} will be the same result
>>>>>> as $\int{3x~dx}$, that is, an
>>>>>>   (integralsign) 3x dx
>>>>>> but notice that the variable of integration is in the semantic markup.
>>>>>>
>>>>>> These trivial macros can be made less verbose and certainly
>>>>>> more clever but that's not the point being made here.
>>>>>>
>>>>>> A 'weaver' program would see the integration expression as
>>>>>>
>>>>>> $\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x}$
>>>>>>
>>>>>> with all of the semantic tags. The weaver's job is to rewrite this
>>>>>> expression into an inputform for the CAS. In Axiom that would be
>>>>>>
>>>>>> integrate(3*x,x)
>>>>>>
>>>>>> The semantics markup makes the display pretty and the semantic
>>>>>> parsing possible. Depending on the system, more or less parsing
>>>>>> markup can exist. Axiom, for example, would not need the \INT or
>>>>>> \VARIABLE to get a correct parse so the expression could be
>>>>>> $\INTEG{3x~dx}{x}$
>>>>>>
>>>>>> This validates the fundamental idea.
>>>>>>
>>>>>> The next step is to write a simple weaver program. The clever path
>>>>>> would be to embed a declarative form of the parser syntax (BNF?)
>>>>>> as comments in selatex.sty. That way the latex semantics and the
>>>>>> weaver syntax are kept in sync.
>>>>>>
>>>>>> Weaver would read the BNF comments from selatex.sty and
>>>>>> the formula with semantic markup as input and parse the semantic
>>>>>> markup into inputforms. (Wish I thought of this homework problem
>>>>>> when I taught the compiler course :-) ).
>>>>>>
>>>>>> Note that, depending on the BNF, weaver could be used to
>>>>>> generate output for Maxima's tree-based representation.
>>>>>>
>>>>>> An alternative next step is to look at a CRC book, re-create the
>>>>>> syntactic latex and then create the selatex.sty entries necessary
>>>>>> to generate weaver input.
>>>>>>
>>>>>> Infinitesimal progress, but progress non-the-less.
>>>>>>
>>>>>> Tim
>>>>>>
>>>>>>
>>>>>> On Fri, Aug 19, 2016 at 12:45 AM, Tim Daly <axiomcas@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>>
>>>>>>> One of the Axiom project goals is to develop a "Computer Algebra
>>>>>>> Test
>>>>>>> Suite" (CATS). Albert Rich has done this with RUBI and integration.
>>>>>>> That
>>>>>>> work is already partially in the test suite and work has been done
>>>>>>> on the
>>>>>>> pattern matching. Large datasets (like Kamke) are always welcome.
>>>>>>> Some,
>>>>>>> such as Schaums were hand-developed. This is tedious.
>>>>>>>
>>>>>>> As Axiom develops more explanations and documentation it would be
>>>>>>> useful to execute the formulas directly so there is a local
>>>>>>> incentive to be
>>>>>>> clear about semantics.
>>>>>>>
>>>>>>> In the long term the hope is that we can just grab formulas directly
>>>>>>> from
>>>>>>> their sources (ala literate programming). Your work makes it plain
>>>>>>> that raw
>>>>>>> latex does not carry sufficient semantics. There is a global
>>>>>>> question of
>>>>>>> how to make this work. Unfortunately a general cross-platform
>>>>>>> solution
>>>>>>> is difficult (cite Dewar/Davenport/et al. for OpenMath).
>>>>>>>
>>>>>>> Since Axiom is literate and extracting formulas is trivial it seems
>>>>>>> that
>>>>>>> literate markup is a natural goal. Since Axiom uses abstract algebra
>>>>>>> as a scaffold the type tower already has a lot of axiomatic
>>>>>>> semantics.
>>>>>>> The natural join of literate latex and abstract algebra is clearly
>>>>>>> semantic markup, aka selatex.
>>>>>>>
>>>>>>> ===========
>>>>>>> Consideration 10: semantic->inputform translation (weaver? :-) )
>>>>>>>
>>>>>>> >x and not x   has no particular meaning,  but if x is explicitly
>>>>>>> true or false,
>>>>>>> >Maxima simplifies it to false.  If SEALATEX has a semantics -- are
>>>>>>> you
>>>>>>> >defining yet another CAS?  Or perhaps you should link it 100% to
>>>>>>> Axiom's
>>>>>>> >semantics, which you presumably know about and can modify.
>>>>>>>
>>>>>>> I am NOT defining another CAS. The goal is a "well-designed hack"
>>>>>>> using
>>>>>>> universally understood latex, a latex package, and a translation
>>>>>>> program.
>>>>>>>
>>>>>>> The selatex idea is only partially Axiom specific. \INT, for
>>>>>>> instance, seems
>>>>>>> pretty generic. However, if the idea is to read formulas and
>>>>>>> disambiguate
>>>>>>> a=b (boolean) vs a=b (equation) then the markup needs to be grounded
>>>>>>> to have meaning. Axiom's domains (BOOLEAN) and (EQ) as the ground
>>>>>>>
>>>>>>> \BOOLEAN(a=b)
>>>>>>> \EQ(a=b)
>>>>>>>
>>>>>>> are unambiguous relative to each other in Axiom. I don't know enough
>>>>>>> about Maxima to understand how this might translate.
>>>>>>>
>>>>>>> The extracted formulas with the decorated semantics still needs a
>>>>>>> semantics->inputform (weaver) pre-processor which could be Maxima
>>>>>>> specific. This would lead to debate about what "equality" means, of
>>>>>>> course.
>>>>>>>
>>>>>>> Axiom has tried to create a first-order "rosetta stone" to translate
>>>>>>> between
>>>>>>> systems (rosetta.pdf [1]) but it is too shallow to consider
>>>>>>> providing
>>>>>>> cross-platform semantics.
>>>>>>>
>>>>>>> =============
>>>>>>> Consideration 11: \scope in selatex
>>>>>>>
>>>>>>> >As far as recording stuff in DLMF -- there are presumably scope
>>>>>>> issues
>>>>>>> >("in this chapter n,m are natural numbers....")  and maybe even a
>>>>>>> need
>>>>>>> >to make value assignments.
>>>>>>> >I think you need to model these in SEALATEX too.
>>>>>>>
>>>>>>> (See Consideration 6)
>>>>>>>
>>>>>>> Clearly there are scoping issues. My current thinking is to create a
>>>>>>> \scope markup that would manage the environment(s). This is not
>>>>>>> a new issue (see "Lisp in Small Pieces" [0])
>>>>>>>
>>>>>>> There seem to be three concerns.
>>>>>>>
>>>>>>> First is the scope name, with something like 'global' as a keyword.
>>>>>>> Second is the "closure chain" of other scopes.
>>>>>>> Third is the symbol being scoped.
>>>>>>>
>>>>>>> \scope{name}{chain}{symbol}
>>>>>>>
>>>>>>> The weaver program would walk this chain to create the proper
>>>>>>> file syntax for system input.
>>>>>>>
>>>>>>> ============
>>>>>>> Consideration 12: System specific commands \axiom
>>>>>>>
>>>>>>> Along with the formulas it is clear that some system specific
>>>>>>> input may be required, such as loading files, clearing workspaces,
>>>>>>> etc. Some of these may be done in the weaver program, such as
>>>>>>> between formulas. Others may need to be added to the semantics
>>>>>>> block. So a markup that provides verbatim quoting per system
>>>>>>> might be defined, e.g.
>>>>>>>
>>>>>>> \axiom{)clear all}  %clear the workspace
>>>>>>>
>>>>>>> which would simply quote an input line.
>>>>>>>
>>>>>>> ==============
>>>>>>>
>>>>>>> Note that so far all that is being suggested is transparent formula
>>>>>>> markups which do not impact the presentation, some special tags
>>>>>>> (\scope, \axiom,...) and a weaver program, along with the ability to
>>>>>>> read the latex and extract named formulas (aka a literate program,
>>>>>>> which Axiom already can do).
>>>>>>>
>>>>>>> It ought to be possible (by design) to create a semantic version of
>>>>>>> CRC that any system could import, assuming a "sufficiently clever
>>>>>>> weaver".
>>>>>>>
>>>>>>> On a more ambitious note, I am trying to find a way to keep the
>>>>>>> selatex
>>>>>>> markup "hidden" in a pdf and use it as the clipboard paste when the
>>>>>>> formula is selected. Anyone with a clue, please help.
>>>>>>>
>>>>>>> ===============
>>>>>>>
>>>>>>> [0] Queinnec, Christopher, "Lisp in Small Pieces" ISBN
>>>>>>> 978-0521545662
>>>>>>> (2003)
>>>>>>>
>>>>>>> [1] Wester, Michael J. and Daly, TImothy "Rosetta"
>>>>>>> http://axiom-developer.org/axiom-website/rosetta.pdf
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Aug 18, 2016 at 5:30 PM, Richard Fateman <
>>>>>>> fateman@berkeley.edu> wrote:
>>>>>>>
>>>>>>>> thanks for all the references :)
>>>>>>>>
>>>>>>>> I'm not sure if I'm going to repeat comments I  made already
>>>>>>>> somewhere.
>>>>>>>> First,  has Dan Zwillinger weighed in?  I think that it would be
>>>>>>>> useful
>>>>>>>> to see what he has done.
>>>>>>>>
>>>>>>>> Next, there are ambiguities among CAS and even within a single CAS.
>>>>>>>>
>>>>>>>> For example, in Macsyma/ Maxima  there is generally no semantics
>>>>>>>> associated with "=" or ">".   But in some contexts, there is some
>>>>>>>> meaning.
>>>>>>>>
>>>>>>>> x>2*y
>>>>>>>>
>>>>>>>> is a tree expression.  It is not associated with x or with y.
>>>>>>>>
>>>>>>>> assume(x>2*y)   does mean something ... it puts info in a database.
>>>>>>>> Somehow encoding the method to extract this information into
>>>>>>>> SEALATEX
>>>>>>>> (SeLaTeX?) in a CAS-independent way -- that's quite a task.   In
>>>>>>>> particular, it would seem to require an understanding of what
>>>>>>>> assume()
>>>>>>>> does in Maxima, and what is() does also.
>>>>>>>>
>>>>>>>> x and not x   has no particular meaning,  but if x is explicitly
>>>>>>>> true or false,
>>>>>>>> Maxima simplifies it to false.  If SEALATEX has a semantics -- are
>>>>>>>> you
>>>>>>>> defining yet another CAS?  Or perhaps you should link it 100% to
>>>>>>>> Axiom's
>>>>>>>> semantics, which you presumably know about and can modify.
>>>>>>>>
>>>>>>>> As far as recording stuff in DLMF -- there are presumably scope
>>>>>>>> issues
>>>>>>>> ("in this chapter n,m are natural numbers....")  and maybe even a
>>>>>>>> need
>>>>>>>> to make value assignments.
>>>>>>>> I think you need to model these in SEALATEX too.
>>>>>>>>
>>>>>>>> Just musing about where you are heading.
>>>>>>>>
>>>>>>>> RJF
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On 8/18/2016 11:45 AM, Tim Daly wrote:
>>>>>>>>
>>>>>>>> Fateman [0] raised a set of issues with the OpenMath
>>>>>>>> approach. We are not trying to be cross-platform in this
>>>>>>>> effort. Axiom does provide an algebraic scaffold so it is
>>>>>>>> possible that the selatex markup might be useful elsewhere
>>>>>>>> but that is not a design criterion.
>>>>>>>>
>>>>>>>> Fateman[1] also raises some difficult cross-platform issues
>>>>>>>> that are not part of this design.
>>>>>>>>
>>>>>>>> Fateman[2] shows that parsing tex with only syntactic markup
>>>>>>>> succeeded on only 43% of 10740 inputs. It ought to be posible
>>>>>>>> to increase this percentage given proper semantic markup.
>>>>>>>> (Perhaps there should be a competition similar to the deep
>>>>>>>> learning groups? PhDs have been awarded on incremental
>>>>>>>> improvements of the percentage)
>>>>>>>>
>>>>>>>> This is a design-by-crawl approach to the semantic markup
>>>>>>>> idea. The hope is to get something running this week that
>>>>>>>> 'works' but giving due consideration to global and long-term
>>>>>>>> issues. A first glance at CRC/NIST raises more questions
>>>>>>>> than answers as is usual with any research.
>>>>>>>>
>>>>>>>> It IS a design goal to support a Computer Algebra Test Suite
>>>>>>>> (http://axiom-developer.org/axiom-website/CATS). It is very
>>>>>>>> tedious to hand construct test suites. It will be even more
>>>>>>>> tedious to construct them "second-level" by doing semantic
>>>>>>>> markup and then trying to use them as input, but the hope is
>>>>>>>> that eventually the CRC/NIST/G&R, etc will eventually be
>>>>>>>> published with semantics so computational mathematics can
>>>>>>>> stop working from syntax.
>>>>>>>>
>>>>>>>> ===========
>>>>>>>> Consideration 4: I/O transparency
>>>>>>>>
>>>>>>>> Assume for the moment that we take a latex file containing
>>>>>>>> only formulas. We would like to be able to read this file so
>>>>>>>> it has computational mathematics (CM) semantics.
>>>>>>>>
>>>>>>>> It is clear that there needs to be semantic tags that carry the
>>>>>>>> information but these tags have to be carefully designed NOT
>>>>>>>> to change the syntactic display. They may, as noted before,
>>>>>>>> require multiple semantic versions for a single syntax.
>>>>>>>>
>>>>>>>> It is also clear that we would like to be able to output formulas
>>>>>>>> with CM semantics where currently we only output syntax.
>>>>>>>>
>>>>>>>> ===========
>>>>>>>> Consideration 5: I/O isomorphism
>>>>>>>>
>>>>>>>> An important property of selatex is an isomorphism with
>>>>>>>> input/output. Axiom allows output forms to be defined for a
>>>>>>>> variety of targets so this does not seem to be a problem. For
>>>>>>>> input, however, this means that the reader has to know how
>>>>>>>> to expand \INT{3} into the correct domain. This could be done
>>>>>>>> with a stand-alone pre-processor from selatex->inputform.
>>>>>>>>
>>>>>>>> It should be possible to read-then-write an selatex formula,
>>>>>>>> or write-then-read an selatex formula with identical semantics.
>>>>>>>>
>>>>>>>> That might not mean that the I/O is identical though due to
>>>>>>>> things like variable ordering, etc.
>>>>>>>>
>>>>>>>> ===========
>>>>>>>> Consideration 6: Latex semantic macros
>>>>>>>>
>>>>>>>> Semantic markup would be greatly simplified if selatex provided
>>>>>>>> a mechanism similar to Axiom's ability to define types "on the fly"
>>>>>>>> using either assignment
>>>>>>>>
>>>>>>>>    TYP:=FRAC(POLY(INT))
>>>>>>>>
>>>>>>>> or macro form
>>>>>>>>
>>>>>>>>    TYP ==> FRAC(POLY(INT))
>>>>>>>>
>>>>>>>> Latex is capable of doing this and selatex should probably include
>>>>>>>> a set of pre-defined common markups, such as
>>>>>>>>
>>>>>>>>   \FRINT ==> \FRAC\INT
>>>>>>>>
>>>>>>>> ===========
>>>>>>>> Consideration 7: selatex \begin{semantic} environment?
>>>>>>>>
>>>>>>>> Currently Axiom provides a 'chunk' environment which surrounds
>>>>>>>> source code. The chunks are named so they can be extracted
>>>>>>>> individually or in groups
>>>>>>>>
>>>>>>>>    \begin{chunk}{a name for the chunk}
>>>>>>>>       anything
>>>>>>>>    \end{chunk}
>>>>>>>>
>>>>>>>> We could provide a similar environment for semantics such as
>>>>>>>>
>>>>>>>>   \begin{semantics}{a name for the block}
>>>>>>>>   \end{semantics}
>>>>>>>>
>>>>>>>> which would provide a way to encapsulate markup and also allow
>>>>>>>> a particular block to be extracted in literate programming style.
>>>>>>>>
>>>>>>>> ===========
>>>>>>>> Consideration 8: Latex-time processing
>>>>>>>>
>>>>>>>> Axiom currently creates specific files using \write to create
>>>>>>>> intermediate files (e.g. for tables). This technique can be used
>>>>>>>> to enhance latex-time debugging (where did it fail?).
>>>>>>>>
>>>>>>>> It can be used to create Axiom files which pre-construct domains
>>>>>>>> needed when the input file with semantic markup is read.
>>>>>>>>
>>>>>>>> This would help a stand-alone selatex->inputform preprocessor.
>>>>>>>>
>>>>>>>> ===========
>>>>>>>> Consideration 9: Design sketches
>>>>>>>>
>>>>>>>> It is all well-and-good to hand-wave at this idea but a large
>>>>>>>> amount of this machinery already exists.
>>>>>>>>
>>>>>>>> It would seem useful to develop an incremental test suite that
>>>>>>>> starts with "primitive" domains (e.g. INT), creating selatex I/O.
>>>>>>>>
>>>>>>>> Once these are in place we could work on "type tower" markup
>>>>>>>> such as \FRAC\INT or \POLY\COMPLEX\FLOAT.
>>>>>>>>
>>>>>>>> Following that might be pre-existing latex functions like \int,
>>>>>>>> \sum,
>>>>>>>> \cos, etc.
>>>>>>>>
>>>>>>>> To validate these ideas Axiom will include an selatex.sty file and
>>>>>>>> some unit tests files on primitive domain markup. That should be
>>>>>>>> enough to start the bikeshed discussions.
>>>>>>>>
>>>>>>>> Ideas? Considerations? Suggestions?
>>>>>>>>
>>>>>>>> Tim
>>>>>>>>
>>>>>>>> [0] Fateman, Richard J.
>>>>>>>> "A Critique of OpenMath and Thoughts on
>>>>>>>> Encoding Mathematics, January, 2001"
>>>>>>>> https://people.eecs.berkeley.edu/~fateman/papers/openmathcrit.pdf
>>>>>>>>
>>>>>>>> [1] Fateman, Richard J.
>>>>>>>> "Verbs, Nouns, and Computer Algebra, or What's Grammar Got to
>>>>>>>> do with Math? ", December 18, 2008
>>>>>>>> https://people.eecs.berkeley.edu/~fateman/papers/nounverbmac.pdf
>>>>>>>>
>>>>>>>> [2] Fateman, Richard J.
>>>>>>>> "Parsing TeX into Mathematics",
>>>>>>>> https://people.eecs.berkeley.edu/~fateman/papers/parsing_tex.pdf
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>


\start
Date: Thu, 25 Aug 2016 15:06:52 -0400
From: Tim Daly <axiomcas@gmail.com>
To: William Sit <wsit@ccny.cuny.edu>
Subject: Re: [Axiom-developer] Design Thoughts on Semantic Latex (SELATEX)
Cc: Dan Zwillinger <zwilling@az-tec.com>,
	Richard Fateman <fateman@berkeley.edu>, 
	James Davenport <J.H.Davenport@bath.ac.uk>, 
	"vdhoeven@lix.polytechnique.fr" <vdhoeven@lix.polytechnique.fr>,
	Mike Dewar <miked@nag.co.uk>, axiom-dev <axiom-developer@nongnu.org>,
	"albert_rich@msn.com" <albert_rich@msn.com>

Suppose the latex has MN.

This might be a symbol, two integers or two matrices.

The semantic markup, in an Axiom context, would provide enough
information to disambiguate the implied multiplication as well as the
overload of the multiplication.

First, the modified markup puts an "insert" call to add the implied
multiplication. \AI takes an expression, in this case "*".

M\AI{*}N still formats as MN but the weaver sees the M\AI{*}N text.

Second, for Axiom. the "type" call can specify the "overload" to use.
\AT takes an expression and a type target.

\AT{M\AI{*}N}{SQMATRIX(2,INT}}

which also formats as MN since the markup does not change it.

The weaver program sees that this is a multiplication from
SquareMatrix(2,INT), that is, two-by-two matrix multiplication with
Integer entries.

By adding the \AI and \AT markup we can know that this is a
matrix multiplication, not a symbol or integer multiply.

If M and N were previously marked as type SQMATRIX(2,INT) it
would not be necessary to add any markup at all since the weaver
already knows that MN must be a matrix multiply.

Tim


On Thu, Aug 25, 2016 at 9:22 AM, William Sit <wsit@ccny.cuny.edu> wrote:

> =E2=80=8BHi Tim:
>
>
> A question: how would you handle overloading of operators like *
> ("multiplication") in a semantic mark-up?  Need the markup be as detailed
> as the compiler requires or just sloppy enough that the interpreter can
> figure out the correct semantic?
>
>
> William
>
>
> William Sit
> Professor Emeritus
> Department of Mathematics
> The City College of The City University of New York
> New York, NY 10031
> homepage: wsit.ccny.cuny.edu
> ------------------------------
> *From:* Axiom-developer <axiom-developer-bounces+wyscc=3Dsci.ccny.cuny.ed=
u@
> nongnu.org> on behalf of Tim Daly <axiomcas@gmail.com>
> *Sent:* Thursday, August 25, 2016 6:17 AM
> *To:* Dan Zwillinger
> *Cc:* Richard Fateman; James Davenport; vdhoeven@lix.polytechnique.fr;
> Mike Dewar; axiom-dev; albert_rich@msn.com
> *Subject:* Re: [Axiom-developer] Design Thoughts on Semantic Latex
> (SELATEX)
>
> My initial approach was too heavy-handed and Axiom specific.
>
> It seems the semantic markup task can be viewed as an editor
> task. Editors don't care about semantics, they just work on text.
> Viewed this way the markup's only function is decoration for
> post-processing. It is (mostly) system independent.
>
> The edit tasks seem to be {delete, insert, replace} and some
> post-markup hints {function, type}
>
> The delete markup tells weaver to remove the latex completely.
> This is useful for things like {dx}
>
> The insert markup adds missing semantic text, such as {*} which
> is needed to indicate multiplication.
>
> The replace markup gives alternate text for weaver, for things where
> the function name might differ, e.g. \int -> integrate
>
> The function markup names a function that weaver should call
> which allows special handling in post-processing. It can be any
> s-expression (the weaver implementation is currently lisp-based).
>
> The type markup passes type information to weaver so Axiom
> knows the target type, useful for things like matrix.
>
> The macros are
>
> \newcommand{\AD}[1]{#1}% delete
> \newcommand{\AI}[1]{}% insert
> \newcommand{\AR}[2]{#1}% replace
>
> \newcommand{\AF}[2]{#1}% function
> \newcommand{\AT}[2]{#1}% type
>
> Note that \AI outputs nothing, so 3\AI{*}x =3D=3D 3x to latex.
>
> \AD tells weaver to delete the text, e.g. {\AD ~dx} =3D=3D ~dx to latex
>
> \AR tells weaver to replace the text e.g. {\AR \pi}{\%pi}
>
> \AF tells weaver to call a function, e.g. one that knows how to
> rewrite the input in a special way, or does tracing, etc.
>
> \AT adds target type information for Axiom
> e.g. \AT{3x+6}{POLY(INT)} =3D=3D 3x+6 to latex but passes it as
> a Polynomial(Integer) to Axiom
>
> For example,
>
> $\int{\frac{dx}{ax*b}}$
>
> becomes
>
> $\AT{\AR{\int}{integrate}{\frac{\AD{dx}}{a\AI{*)x+b}}}{EXPR}{INT}}$
>
> telling weaver that the target type (AT) is EXPR(INT),
> the \int is really integrate
> the dx is to be ignored and
> the ax+b should read a*x+b
>
> There is an obvious tradeoff of markup vs weaver.
> For example. \int might be known to weaver.
> Or expressions might call an equation rewriter to add {*}
>
> The markup could vary from almost nothing to massive detail
> depending on the downstream cleverness.
>
> This initial markup set seems sufficient to handle every task
> that requires semantics markup so far. The overhead seems
> small and the gain seems large.
>
> Now the only problem is post-processing the latex. Sigh.
>
> There is no such thing as a simple job.
>
> Tim
>
>
> On Tue, Aug 23, 2016 at 7:27 PM, Tim Daly <axiomcas@gmail.com> wrote:
>
>> For those of you at home wishing to play along, there is a
>> selatex.test1 file at
>> http://axiom-developer.org/axiom-website/selatex.test1
>> containing 620 integrals.
>>
>> Each line is a call of the form
>>
>>   weaver(latex-string,axiom-string)
>>
>> The goal is to transform the latex into Axiom.
>>
>> Implicit is the idea that weaver will use the selatex tokens
>> to disambiguate the input. The current file has no selatex
>> tokens. They will be added as needed. The idea is to keep
>> the problem simple by adding print-invisible sematics to the
>> latex-string. In the ideal case the weaver program is trivial,
>> as is the markup. Any tradeoff should prioritize simplicity.
>> Another priority is to align the semantic markup with
>> Axiom domains in order to ground the semantics with code.
>>
>> Once all of these calls translate correctly the Axiom output
>> routines need to output the latex-string with the added
>> semantic markup so the mapping is bi-directional.
>>
>> The current file only looks at integration as I already have
>> the latex->axiom text available. Future test files will look
>> at other areas of interest. The long term goal is to parse
>> NIST/CRC/etc formulas.
>>
>> Tim
>>
>>
>> On Sun, Aug 21, 2016 at 11:02 PM, Tim Daly <axiomcas@gmail.com> wrote:
>>
>>> Dan,
>>>
>>> While paging through the CRC 31st Standard Mathematical
>>> Tables I landed on page 219, section 3.4.1.2 Graph Invariants.
>>>
>>> It would be a vast improvement if there were algorithms
>>> associated with these invariants. Clearly they exist somewhere.
>>>
>>> To "cross the gap" between tables and computational mathematics
>>> it would be valuable to include implementations of these invariants.
>>>
>>> It is hard to walk away from that page. An Axiom implementation
>>> would be fun to write, especially given the next section that lists
>>> different kinds of graphs which, presumably, would all have the
>>> invariants. Even better, the graph algorithms are likely good
>>> candidates for proof technology (ACL2 if done in Lisp, COQ if
>>> done in Spad). Lisp has the advantage of an ANSI standard.
>>>
>>> It seems worthwhile to take sections like this, expand them
>>> across computational and proof tools, and publish them in a
>>> form that is generally useful. It is "nice to know" that a graph
>>> has a radius but it would be even better if I could "just point and
>>> click" to import the algorithm.
>>>
>>> Axiom has been pushing literate programming for years. The
>>> tools exist to "make it so", as the saying goes.
>>>
>>> Tim
>>>
>>>
>>>
>>>
>>> On Sun, Aug 21, 2016 at 10:40 PM, Tim Daly <axiomcas@gmail.com> wrote:
>>>
>>>> Like any research problem it is a struggle to get a useful grip on thi=
s.
>>>> Looking at G&R (I just ordered the latest, mine is 4th edition), the
>>>> task quickly gets out of hand.
>>>>
>>>> The CATS tests in the past were created by reading the printed latex
>>>> in various volumes and hand-translating them to Axiom input.
>>>>
>>>> It is not difficult to re-create the latex input for these examples.
>>>> Doing so and combining the results gives a set of examples with
>>>> matching input latex and output Axiom. The homework problem is
>>>> to write the necessary markup and weaver.
>>>>
>>>> It is immediately obvious that this is more challenging than it seems.
>>>> For example, when writing y'(x)=3D0, Axiom needs y:=3Doperator 'y
>>>> so it knows about the symbol as an operator. This falls under
>>>> "Consideration 12: System Specific Commands"... which implies
>>>> that the latex environment and quoting macros have to be
>>>> implemented. Sigh.
>>>>
>>>> There is no such thing as a simple job.
>>>>
>>>> Anyway, at least there is a way to make a proof of concept
>>>> prototype that reproduces existing results.
>>>>
>>>> Tim
>>>>
>>>>
>>>> On Sun, Aug 21, 2016 at 4:17 PM, Tim Daly <axiomcas@gmail.com> wrote:
>>>>
>>>>> Dan,
>>>>>
>>>>> Welcome.
>>>>>
>>>>> Re: Howard Cohl. Yes, I'd like an introduction. It seems important to
>>>>> make DLMF, CRC, and other sources contain enough semantics that
>>>>> they can be read by a computer algebra system. There are an
>>>>> enormous number of issues, such as what to do with functions
>>>>> unknown to the CAS, which need to be thought through.
>>>>>
>>>>> I believe that NIST/CRC/G&R collections with semantic markup will
>>>>> have a great normalizing effect on CAS development since it will rais=
e
>>>>> cross-platform questions like "What percent of G&R do you handle?".
>>>>> Albert Rich (RUBI)[0] has been doing this for integration using
>>>>> patterns.
>>>>> This can only benefit computational mathematics in the long term.
>>>>>
>>>>> I've also campaigned for associating algorithms with published tables=
.
>>>>> It is important in the long term to have reference versions. The ACM
>>>>> used to do this years ago. I'd like to see a Gruntz algorithm for
>>>>> limits
>>>>> where it can be applied, for instance. It would also provide a focus =
on
>>>>> "missing algorithms" or edge cases. Davenport/Trager/Bronstein
>>>>> algorithms promise a decision procedure but there are no existing
>>>>> complete implementations. The tables could highlight missing cases,
>>>>> giving focus to efforts to complete the procedure.
>>>>>
>>>>> It will also put back-pressure on the tables to define different
>>>>> versions
>>>>> of the same formulas based on domains (C, R, etc).
>>>>>
>>>>>
>>>>> "The GR work was more than I had anticipated"... wins the award for
>>>>> understatement of the decade.
>>>>>
>>>>> The goal of this effort is to make it possible to read those
>>>>> formulas directly into a CAS. Axiom is my primary target but
>>>>> it should be done in a somewhat system agnostic form.
>>>>>
>>>>> I've spent well over a year creating the computer algebra test suite.
>>>>> It would be so much easier and more useful if the original sources
>>>>> could be read directly.
>>>>>
>>>>> I read your paper. There is an interesting mix of syntax and semantic=
s.
>>>>>
>>>>> I guess the difference in this effort is that the semantic markup is
>>>>> intended to be transparent and grounded. The transparent aspect
>>>>> keeps the tables unchanged in print form. The grounded aspect keeps
>>>>> the semantics based on some algorithmic base. This implies, of
>>>>> course, that there IS an algorithmic base which does not yet exist
>>>>> for some of the work.
>>>>>
>>>>> As you can see from the CATS work I've been trying to validate
>>>>> Axiom's results with respect to published texts. This has found both
>>>>> Axiom bugs and misprints in published texts.
>>>>>
>>>>> The Kamke[1] suite was the first effort for differential equations.
>>>>>
>>>>> The Spiegel[2] chapter 14 on indefinite integrals for integration.
>>>>>
>>>>> The von Seggern[3] book on curves and surfaces for graphics.
>>>>>
>>>>> The Legendre and Grazini[4] on Pasta by Design for 3D graphics.
>>>>>
>>>>> The RUBI work on integration.
>>>>>
>>>>> and, currently I'm re-creating the numerics that were lost when NAG
>>>>> released the open source version, leaving me swimming through
>>>>> Luke's[5] Algorithms book.
>>>>>
>>>>> which, to quote a famous phrase "was more than I had anticipated".
>>>>>
>>>>> Your Handbook of Integration[6] has a section on various known
>>>>> "Caveats, How an integration result may be incorrect". This raises th=
e
>>>>> wonderful topic of branch cuts yet again. I did some testing and it
>>>>> seems that Axiom and Mathematica share one set while Maple and
>>>>> Maxima share another.
>>>>>
>>>>> All of which leads to a need to create better reference materials tha=
t
>>>>> are generally available (unlike the ACM algorithms for non-paying
>>>>> customers) and directly useful for computational mathematics.
>>>>>
>>>>> The current plan is to take some tables, find or re-create the latex,
>>>>> invent a semantic markup, and then write the "weaver". At this point
>>>>> the research is still at the "proof of concept" stage. (tex formula
>>>>> sources are most welcome).
>>>>>
>>>>> Ultimately I'd really like to see a book of formulas and algorithms
>>>>> that I can just drag-and-drop into Axiom and be able to use them
>>>>> without lifetimes of work.
>>>>>
>>>>> Actually, that 's only the penultimate goal. I have augmented
>>>>> Axiom to include proofs (ACL2,COQ) so I'd also like to see proofs,
>>>>> (this IS mathematics, after all) but maybe we'll leave that for
>>>>> next month :-)
>>>>>
>>>>> Tim
>>>>>
>>>>> [0] Rich, Albert "Rule-based Mathematics"
>>>>> http://www.apmaths.uwo.ca/~arich/
>>>>>
>>>>> [1] Kamke. E. "Differentialgleichungen Losungsmethoden und Losungen"
>>>>> Chelsea Publishing Company, New York, 1959
>>>>>
>>>>> [2] Spiegel, Murray R. "Mathematical Handbook", Schaum's Outline
>>>>> Series; McGraw-Hill Book Company 1968
>>>>>
>>>>> [3] von Seggern, David "CRC Standard Curves and Surfaces",
>>>>> CRC Press, 1993 ISBN 0-8493-0196-3
>>>>>
>>>>> [4] Legendre, George L. and Grazini, Stefano "Pasta by Design",
>>>>> Thames and Hudson, 2001
>>>>>
>>>>> [5] Luke, Yudell "Algorithms for the Computation of Mathematical
>>>>> Functions", Academic Press, 1977 ISBN 0-12-459940-6
>>>>>
>>>>> [6] Zwillinger, Daniel "Handbook of Integration" Jones and Bartlett,
>>>>> London, 1992
>>>>>
>>>>>
>>>>>
>>>>> On Sun, Aug 21, 2016 at 10:16 AM, Dan Zwillinger <zwilling@az-tec.com=
>
>>>>> wrote:
>>>>>
>>>>>> All
>>>>>>
>>>>>> I began reading this topic's emails when they first appeared, and
>>>>>> then fell behind.
>>>>>> Sorry for my late comments.
>>>>>>
>>>>>> I admire your efforts.
>>>>>> They may be somewhat related to what I have done in the past.
>>>>>> My experience is as follows:
>>>>>>
>>>>>> (1) CRC SMTF (Standard Mathematical Tables and Formula)
>>>>>>
>>>>>> I put the ~700 integrals in CRC's SMTF into a format from which
>>>>>> (A) they could be typeset in LaTeX
>>>>>> (B) they could be converted into Mathematica (which either did a
>>>>>> symbolic or numeric computation) - and this was done
>>>>>>
>>>>>> I let Richard Fateman use them for his experiments.
>>>>>>
>>>>>>
>>>>>> (2) Elsevier's GR (Gradshteyn and Ryzhik's "Table of Integrals,
>>>>>> Series, and Products")
>>>>>>
>>>>>> I put the ~12,000 (if my memory is correct) integrals into a format
>>>>>> from which
>>>>>> (A) they could be beautifully typeset in LaTeX
>>>>>> (B) they could be converted into Mathematica - and this was NOT done
>>>>>> Enclosed is a PDF file describing the work and the resulting format.
>>>>>>
>>>>>>
>>>>>> A different format was used for SMTF and GR.
>>>>>> While the SMTF work was not too arduous, the GR work was more than I
>>>>>> had anticipated.
>>>>>> The input (the previous version of GR) had little syntactic structur=
e
>>>>>> and it took much effort to get it into shape.
>>>>>> I used (many different) regular expressions (in perl) to translate
>>>>>> the bulk of the book, and then lots of hand tuning.
>>>>>>
>>>>>> While I think you are well beyond my thinking on these topics, pleas=
e
>>>>>> let me know if I can help.
>>>>>> I am friends with Howard Cohl at NIST, who may be the current lead
>>>>>> for DLMF ("Digital Library of Mathematical Functions" at
>>>>>> dlmf.nist.gov).
>>>>>> Let me know if you need an introduction.
>>>>>>
>>>>>>
>>>>>> Dan Zwillingerzwilling@az-tec.com617-388-2382
>>>>>>
>>>>>> On 8/20/2016 11:30 PM, Tim Daly wrote:
>>>>>>
>>>>>> The game is to define latex markup that is transparent to the syntax
>>>>>> but adds semantics for post processing.
>>>>>>
>>>>>> Some simple tests show that this works. Suppose selatex.sty contains=
:
>>>>>>
>>>>>> \newcommand{\INT}[1]{#1}
>>>>>> \newcommand{\VARIABLE}[1]{#1}
>>>>>> \newcommand{\POLY}[1]{#1}
>>>>>> \newcommand{\INTEG}[2]{\int{#1}}
>>>>>>
>>>>>> This defines 4 new latex markups. The number in the square brackets
>>>>>> defines the number of expected arguments. The brace argument
>>>>>> delimites the characters that will occur during expansion with the #=
1
>>>>>> replaced by the first argument.
>>>>>>
>>>>>> (As an aside, INT, VARIABLE, and POLY just happen to be valid
>>>>>> Axiom domain abbreviations, hence the name choice. This choice
>>>>>> of names gives grounding to the semantics.)
>>>>>>
>>>>>> Notice that \INTEG takes two arguments but will display only one.
>>>>>> This allows the variable of integration to be passed in the semantic=
s
>>>>>> without showing up in the output. This allows the semantics to carry
>>>>>> additional, non-display information needed by the CAS.
>>>>>>
>>>>>> Some examples follow.
>>>>>>
>>>>>> An integer 3 can be wrapped as \INT{3} but will still display as 3.
>>>>>>
>>>>>> A variable x can be wrapped as \VARIABLE{x}, displayed as x.
>>>>>>
>>>>>> $\POLY{\INT{3}\VARIABLE{x}}$ will display as 3*x
>>>>>>
>>>>>> $\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x} will be the same result
>>>>>> as $\int{3x~dx}$, that is, an
>>>>>>   (integralsign) 3x dx
>>>>>> but notice that the variable of integration is in the semantic marku=
p.
>>>>>>
>>>>>> These trivial macros can be made less verbose and certainly
>>>>>> more clever but that's not the point being made here.
>>>>>>
>>>>>> A 'weaver' program would see the integration expression as
>>>>>>
>>>>>> $\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x}$
>>>>>>
>>>>>> with all of the semantic tags. The weaver's job is to rewrite this
>>>>>> expression into an inputform for the CAS. In Axiom that would be
>>>>>>
>>>>>> integrate(3*x,x)
>>>>>>
>>>>>> The semantics markup makes the display pretty and the semantic
>>>>>> parsing possible. Depending on the system, more or less parsing
>>>>>> markup can exist. Axiom, for example, would not need the \INT or
>>>>>> \VARIABLE to get a correct parse so the expression could be
>>>>>> $\INTEG{3x~dx}{x}$
>>>>>>
>>>>>> This validates the fundamental idea.
>>>>>>
>>>>>> The next step is to write a simple weaver program. The clever path
>>>>>> would be to embed a declarative form of the parser syntax (BNF?)
>>>>>> as comments in selatex.sty. That way the latex semantics and the
>>>>>> weaver syntax are kept in sync.
>>>>>>
>>>>>> Weaver would read the BNF comments from selatex.sty and
>>>>>> the formula with semantic markup as input and parse the semantic
>>>>>> markup into inputforms. (Wish I thought of this homework problem
>>>>>> when I taught the compiler course :-) ).
>>>>>>
>>>>>> Note that, depending on the BNF, weaver could be used to
>>>>>> generate output for Maxima's tree-based representation.
>>>>>>
>>>>>> An alternative next step is to look at a CRC book, re-create the
>>>>>> syntactic latex and then create the selatex.sty entries necessary
>>>>>> to generate weaver input.
>>>>>>
>>>>>> Infinitesimal progress, but progress non-the-less.
>>>>>>
>>>>>> Tim
>>>>>>
>>>>>>
>>>>>> On Fri, Aug 19, 2016 at 12:45 AM, Tim Daly <axiomcas@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>>
>>>>>>> One of the Axiom project goals is to develop a "Computer Algebra
>>>>>>> Test
>>>>>>> Suite" (CATS). Albert Rich has done this with RUBI and integration.
>>>>>>> That
>>>>>>> work is already partially in the test suite and work has been done
>>>>>>> on the
>>>>>>> pattern matching. Large datasets (like Kamke) are always welcome.
>>>>>>> Some,
>>>>>>> such as Schaums were hand-developed. This is tedious.
>>>>>>>
>>>>>>> As Axiom develops more explanations and documentation it would be
>>>>>>> useful to execute the formulas directly so there is a local
>>>>>>> incentive to be
>>>>>>> clear about semantics.
>>>>>>>
>>>>>>> In the long term the hope is that we can just grab formulas directl=
y
>>>>>>> from
>>>>>>> their sources (ala literate programming). Your work makes it plain
>>>>>>> that raw
>>>>>>> latex does not carry sufficient semantics. There is a global
>>>>>>> question of
>>>>>>> how to make this work. Unfortunately a general cross-platform
>>>>>>> solution
>>>>>>> is difficult (cite Dewar/Davenport/et al. for OpenMath).
>>>>>>>
>>>>>>> Since Axiom is literate and extracting formulas is trivial it seems
>>>>>>> that
>>>>>>> literate markup is a natural goal. Since Axiom uses abstract algebr=
a
>>>>>>> as a scaffold the type tower already has a lot of axiomatic
>>>>>>> semantics.
>>>>>>> The natural join of literate latex and abstract algebra is clearly
>>>>>>> semantic markup, aka selatex.
>>>>>>>
>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>> Consideration 10: semantic->inputform translation (weaver? :-) )
>>>>>>>
>>>>>>> >x and not x   has no particular meaning,  but if x is explicitly
>>>>>>> true or false,
>>>>>>> >Maxima simplifies it to false.  If SEALATEX has a semantics -- are
>>>>>>> you
>>>>>>> >defining yet another CAS?  Or perhaps you should link it 100% to
>>>>>>> Axiom's
>>>>>>> >semantics, which you presumably know about and can modify.
>>>>>>>
>>>>>>> I am NOT defining another CAS. The goal is a "well-designed hack"
>>>>>>> using
>>>>>>> universally understood latex, a latex package, and a translation
>>>>>>> program.
>>>>>>>
>>>>>>> The selatex idea is only partially Axiom specific. \INT, for
>>>>>>> instance, seems
>>>>>>> pretty generic. However, if the idea is to read formulas and
>>>>>>> disambiguate
>>>>>>> a=3Db (boolean) vs a=3Db (equation) then the markup needs to be gro=
unded
>>>>>>> to have meaning. Axiom's domains (BOOLEAN) and (EQ) as the ground
>>>>>>>
>>>>>>> \BOOLEAN(a=3Db)
>>>>>>> \EQ(a=3Db)
>>>>>>>
>>>>>>> are unambiguous relative to each other in Axiom. I don't know enoug=
h
>>>>>>> about Maxima to understand how this might translate.
>>>>>>>
>>>>>>> The extracted formulas with the decorated semantics still needs a
>>>>>>> semantics->inputform (weaver) pre-processor which could be Maxima
>>>>>>> specific. This would lead to debate about what "equality" means, of
>>>>>>> course.
>>>>>>>
>>>>>>> Axiom has tried to create a first-order "rosetta stone" to translat=
e
>>>>>>> between
>>>>>>> systems (rosetta.pdf [1]) but it is too shallow to consider
>>>>>>> providing
>>>>>>> cross-platform semantics.
>>>>>>>
>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>> Consideration 11: \scope in selatex
>>>>>>>
>>>>>>> >As far as recording stuff in DLMF -- there are presumably scope
>>>>>>> issues
>>>>>>> >("in this chapter n,m are natural numbers....")  and maybe even a
>>>>>>> need
>>>>>>> >to make value assignments.
>>>>>>> >I think you need to model these in SEALATEX too.
>>>>>>>
>>>>>>> (See Consideration 6)
>>>>>>>
>>>>>>> Clearly there are scoping issues. My current thinking is to create =
a
>>>>>>> \scope markup that would manage the environment(s). This is not
>>>>>>> a new issue (see "Lisp in Small Pieces" [0])
>>>>>>>
>>>>>>> There seem to be three concerns.
>>>>>>>
>>>>>>> First is the scope name, with something like 'global' as a keyword.
>>>>>>> Second is the "closure chain" of other scopes.
>>>>>>> Third is the symbol being scoped.
>>>>>>>
>>>>>>> \scope{name}{chain}{symbol}
>>>>>>>
>>>>>>> The weaver program would walk this chain to create the proper
>>>>>>> file syntax for system input.
>>>>>>>
>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>> Consideration 12: System specific commands \axiom
>>>>>>>
>>>>>>> Along with the formulas it is clear that some system specific
>>>>>>> input may be required, such as loading files, clearing workspaces,
>>>>>>> etc. Some of these may be done in the weaver program, such as
>>>>>>> between formulas. Others may need to be added to the semantics
>>>>>>> block. So a markup that provides verbatim quoting per system
>>>>>>> might be defined, e.g.
>>>>>>>
>>>>>>> \axiom{)clear all}  %clear the workspace
>>>>>>>
>>>>>>> which would simply quote an input line.
>>>>>>>
>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>>
>>>>>>> Note that so far all that is being suggested is transparent formula
>>>>>>> markups which do not impact the presentation, some special tags
>>>>>>> (\scope, \axiom,...) and a weaver program, along with the ability t=
o
>>>>>>> read the latex and extract named formulas (aka a literate program,
>>>>>>> which Axiom already can do).
>>>>>>>
>>>>>>> It ought to be possible (by design) to create a semantic version of
>>>>>>> CRC that any system could import, assuming a "sufficiently clever
>>>>>>> weaver".
>>>>>>>
>>>>>>> On a more ambitious note, I am trying to find a way to keep the
>>>>>>> selatex
>>>>>>> markup "hidden" in a pdf and use it as the clipboard paste when the
>>>>>>> formula is selected. Anyone with a clue, please help.
>>>>>>>
>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>>
>>>>>>> [0] Queinnec, Christopher, "Lisp in Small Pieces" ISBN
>>>>>>> 978-0521545662
>>>>>>> (2003)
>>>>>>>
>>>>>>> [1] Wester, Michael J. and Daly, TImothy "Rosetta"
>>>>>>> http://axiom-developer.org/axiom-website/rosetta.pdf
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Aug 18, 2016 at 5:30 PM, Richard Fateman <
>>>>>>> fateman@berkeley.edu> wrote:
>>>>>>>
>>>>>>>> thanks for all the references :)
>>>>>>>>
>>>>>>>> I'm not sure if I'm going to repeat comments I  made already
>>>>>>>> somewhere.
>>>>>>>> First,  has Dan Zwillinger weighed in?  I think that it would be
>>>>>>>> useful
>>>>>>>> to see what he has done.
>>>>>>>>
>>>>>>>> Next, there are ambiguities among CAS and even within a single CAS=
.
>>>>>>>>
>>>>>>>> For example, in Macsyma/ Maxima  there is generally no semantics
>>>>>>>> associated with "=3D" or ">".   But in some contexts, there is som=
e
>>>>>>>> meaning.
>>>>>>>>
>>>>>>>> x>2*y
>>>>>>>>
>>>>>>>> is a tree expression.  It is not associated with x or with y.
>>>>>>>>
>>>>>>>> assume(x>2*y)   does mean something ... it puts info in a database=
.
>>>>>>>> Somehow encoding the method to extract this information into
>>>>>>>> SEALATEX
>>>>>>>> (SeLaTeX?) in a CAS-independent way -- that's quite a task.   In
>>>>>>>> particular, it would seem to require an understanding of what
>>>>>>>> assume()
>>>>>>>> does in Maxima, and what is() does also.
>>>>>>>>
>>>>>>>> x and not x   has no particular meaning,  but if x is explicitly
>>>>>>>> true or false,
>>>>>>>> Maxima simplifies it to false.  If SEALATEX has a semantics -- are
>>>>>>>> you
>>>>>>>> defining yet another CAS?  Or perhaps you should link it 100% to
>>>>>>>> Axiom's
>>>>>>>> semantics, which you presumably know about and can modify.
>>>>>>>>
>>>>>>>> As far as recording stuff in DLMF -- there are presumably scope
>>>>>>>> issues
>>>>>>>> ("in this chapter n,m are natural numbers....")  and maybe even a
>>>>>>>> need
>>>>>>>> to make value assignments.
>>>>>>>> I think you need to model these in SEALATEX too.
>>>>>>>>
>>>>>>>> Just musing about where you are heading.
>>>>>>>>
>>>>>>>> RJF
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On 8/18/2016 11:45 AM, Tim Daly wrote:
>>>>>>>>
>>>>>>>> Fateman [0] raised a set of issues with the OpenMath
>>>>>>>> approach. We are not trying to be cross-platform in this
>>>>>>>> effort. Axiom does provide an algebraic scaffold so it is
>>>>>>>> possible that the selatex markup might be useful elsewhere
>>>>>>>> but that is not a design criterion.
>>>>>>>>
>>>>>>>> Fateman[1] also raises some difficult cross-platform issues
>>>>>>>> that are not part of this design.
>>>>>>>>
>>>>>>>> Fateman[2] shows that parsing tex with only syntactic markup
>>>>>>>> succeeded on only 43% of 10740 inputs. It ought to be posible
>>>>>>>> to increase this percentage given proper semantic markup.
>>>>>>>> (Perhaps there should be a competition similar to the deep
>>>>>>>> learning groups? PhDs have been awarded on incremental
>>>>>>>> improvements of the percentage)
>>>>>>>>
>>>>>>>> This is a design-by-crawl approach to the semantic markup
>>>>>>>> idea. The hope is to get something running this week that
>>>>>>>> 'works' but giving due consideration to global and long-term
>>>>>>>> issues. A first glance at CRC/NIST raises more questions
>>>>>>>> than answers as is usual with any research.
>>>>>>>>
>>>>>>>> It IS a design goal to support a Computer Algebra Test Suite
>>>>>>>> (http://axiom-developer.org/axiom-website/CATS). It is very
>>>>>>>> tedious to hand construct test suites. It will be even more
>>>>>>>> tedious to construct them "second-level" by doing semantic
>>>>>>>> markup and then trying to use them as input, but the hope is
>>>>>>>> that eventually the CRC/NIST/G&R, etc will eventually be
>>>>>>>> published with semantics so computational mathematics can
>>>>>>>> stop working from syntax.
>>>>>>>>
>>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>>> Consideration 4: I/O transparency
>>>>>>>>
>>>>>>>> Assume for the moment that we take a latex file containing
>>>>>>>> only formulas. We would like to be able to read this file so
>>>>>>>> it has computational mathematics (CM) semantics.
>>>>>>>>
>>>>>>>> It is clear that there needs to be semantic tags that carry the
>>>>>>>> information but these tags have to be carefully designed NOT
>>>>>>>> to change the syntactic display. They may, as noted before,
>>>>>>>> require multiple semantic versions for a single syntax.
>>>>>>>>
>>>>>>>> It is also clear that we would like to be able to output formulas
>>>>>>>> with CM semantics where currently we only output syntax.
>>>>>>>>
>>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>>> Consideration 5: I/O isomorphism
>>>>>>>>
>>>>>>>> An important property of selatex is an isomorphism with
>>>>>>>> input/output. Axiom allows output forms to be defined for a
>>>>>>>> variety of targets so this does not seem to be a problem. For
>>>>>>>> input, however, this means that the reader has to know how
>>>>>>>> to expand \INT{3} into the correct domain. This could be done
>>>>>>>> with a stand-alone pre-processor from selatex->inputform.
>>>>>>>>
>>>>>>>> It should be possible to read-then-write an selatex formula,
>>>>>>>> or write-then-read an selatex formula with identical semantics.
>>>>>>>>
>>>>>>>> That might not mean that the I/O is identical though due to
>>>>>>>> things like variable ordering, etc.
>>>>>>>>
>>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>>> Consideration 6: Latex semantic macros
>>>>>>>>
>>>>>>>> Semantic markup would be greatly simplified if selatex provided
>>>>>>>> a mechanism similar to Axiom's ability to define types "on the fly=
"
>>>>>>>> using either assignment
>>>>>>>>
>>>>>>>>    TYP:=3DFRAC(POLY(INT))
>>>>>>>>
>>>>>>>> or macro form
>>>>>>>>
>>>>>>>>    TYP =3D=3D> FRAC(POLY(INT))
>>>>>>>>
>>>>>>>> Latex is capable of doing this and selatex should probably include
>>>>>>>> a set of pre-defined common markups, such as
>>>>>>>>
>>>>>>>>   \FRINT =3D=3D> \FRAC\INT
>>>>>>>>
>>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>>> Consideration 7: selatex \begin{semantic} environment?
>>>>>>>>
>>>>>>>> Currently Axiom provides a 'chunk' environment which surrounds
>>>>>>>> source code. The chunks are named so they can be extracted
>>>>>>>> individually or in groups
>>>>>>>>
>>>>>>>>    \begin{chunk}{a name for the chunk}
>>>>>>>>       anything
>>>>>>>>    \end{chunk}
>>>>>>>>
>>>>>>>> We could provide a similar environment for semantics such as
>>>>>>>>
>>>>>>>>   \begin{semantics}{a name for the block}
>>>>>>>>   \end{semantics}
>>>>>>>>
>>>>>>>> which would provide a way to encapsulate markup and also allow
>>>>>>>> a particular block to be extracted in literate programming style.
>>>>>>>>
>>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>>> Consideration 8: Latex-time processing
>>>>>>>>
>>>>>>>> Axiom currently creates specific files using \write to create
>>>>>>>> intermediate files (e.g. for tables). This technique can be used
>>>>>>>> to enhance latex-time debugging (where did it fail?).
>>>>>>>>
>>>>>>>> It can be used to create Axiom files which pre-construct domains
>>>>>>>> needed when the input file with semantic markup is read.
>>>>>>>>
>>>>>>>> This would help a stand-alone selatex->inputform preprocessor.
>>>>>>>>
>>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>>> Consideration 9: Design sketches
>>>>>>>>
>>>>>>>> It is all well-and-good to hand-wave at this idea but a large
>>>>>>>> amount of this machinery already exists.
>>>>>>>>
>>>>>>>> It would seem useful to develop an incremental test suite that
>>>>>>>> starts with "primitive" domains (e.g. INT), creating selatex I/O.
>>>>>>>>
>>>>>>>> Once these are in place we could work on "type tower" markup
>>>>>>>> such as \FRAC\INT or \POLY\COMPLEX\FLOAT.
>>>>>>>>
>>>>>>>> Following that might be pre-existing latex functions like \int,
>>>>>>>> \sum,
>>>>>>>> \cos, etc.
>>>>>>>>
>>>>>>>> To validate these ideas Axiom will include an selatex.sty file and
>>>>>>>> some unit tests files on primitive domain markup. That should be
>>>>>>>> enough to start the bikeshed discussions.
>>>>>>>>
>>>>>>>> Ideas? Considerations? Suggestions?
>>>>>>>>
>>>>>>>> Tim
>>>>>>>>
>>>>>>>> [0] Fateman, Richard J.
>>>>>>>> "A Critique of OpenMath and Thoughts on
>>>>>>>> Encoding Mathematics, January, 2001"
>>>>>>>> https://people.eecs.berkeley.edu/~fateman/papers/openmathcrit.pdf
>>>>>>>>
>>>>>>>> [1] Fateman, Richard J.
>>>>>>>> "Verbs, Nouns, and Computer Algebra, or What's Grammar Got to
>>>>>>>> do with Math? ", December 18, 2008
>>>>>>>> https://people.eecs.berkeley.edu/~fateman/papers/nounverbmac.pdf
>>>>>>>>
>>>>>>>> [2] Fateman, Richard J.
>>>>>>>> "Parsing TeX into Mathematics",
>>>>>>>> https://people.eecs.berkeley.edu/~fateman/papers/parsing_tex.pdf


\start
Date: Thu, 25 Aug 2016 21:59:10 +0000
From: William Sit <wsit@ccny.cuny.edu>
To: Tim Daly <axiomcas@gmail.com>
Subject: Re: [Axiom-developer] Design Thoughts on Semantic Latex (SELATEX)
CC: Dan Zwillinger <zwilling@az-tec.com>, Richard Fateman
	<fateman@berkeley.edu>, James Davenport <J.H.Davenport@bath.ac.uk>,
	"vdhoeven@lix.polytechnique.fr" <vdhoeven@lix.polytechnique.fr>, Mike Dewar
	<miked@nag.co.uk>, axiom-dev <axiom-developer@nongnu.org>,
	"albert_rich@msn.com" <albert_rich@msn.com>

--_000_147216235043915807ccnycunyedu_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

VGltOg0KDQoNClRoYW5rcyBmb3IgdGFraW5nIHRoZSB0aW1lIHRvIGFkZHJlc3MgbXkgaWdub3Jh
bnQgcXVlc3Rpb25zLg0KDQpZb3Ugd3JvdGU6ICJGb3IgaW5zdGFuY2UsIGFyZSB5b3VyIGZvcm11
bGFzIGdpdmVuIG92ZXIgdGhlIHJlYWwgb3IgY29tcGxleCBkb21haW4/4oCLIg0KDQoNClRoaXMg
cXVlc3Rpb24gaXMgb2YgY291cnNlIHJlbGV2YW50IGluIGNvbXB1dGF0aW9uLiBFdmVuIGluIEF4
aW9tLCB3aGljaCBhbGxvd3MgZG9tYWlucyAoYmVsb25naW5nIHRvIGEgc3BlY2lmaWMgQXhpb20g
Y2F0ZWdvcnkpIGFzIHBhcmFtZXRlcnMgaW4gZnVuY3Rpb24gb3IgcGFja2FnZSBjYWxscywgdGhl
IGNvbXBpbGVyIG5lZWRzIHRvIGtub3cgdGhlIGV4YWN0IGRvbWFpbiBhdCBjb21waWxlIHRpbWUg
KGFuZCB3aXRoIHNvbWUgbW9yZSBlZmZvcnQsIGRlbGF5IHRoaXMga25vd2xlZGdlIHRvIHJ1biB0
aW1lKS4gWW91ciBleGFtcGxlIHdpdGggXEFUIGZvciBtYXRyaXggbXVsdGlwbGljYXRpb24gTU4g
aWxsdXN0cmF0ZXMgdGhhdC4NCg0KDQpIb3dldmVyLCBtYXRoZW1hdGljcyBpcyBkaWZmZXJlbnQu
IFdlIGRvIE5PVCBoYXZlIHRvIG5hbWUgYW55IHNwZWNpZmljIGRvbWFpbi4gV2UgY2FuIHNheSwg
dGhlIGFsZ29yaXRobSB3b3JrcyBmb3IgYW55IGZpZWxkIGsuIEhvdyBkbyB5b3UgdHVybiB0aGF0
IGludG8gY29tcHV0ZXIgY29kZSB3aXRob3V0IG1ha2luZyBhIGNob2ljZSBmb3Igaz8gT3IsIHdl
IGNhbiBzYXkgdGhlIGFsZ29yaXRobSB3b3JrcyBmb3IgYW55IG1hdHJpeCBpbiBHTChuLCBrKSwg
Zm9yIGFueSBwb3NpdGl2ZSBpbnRlZ2VyIG4gb3ZlciBhbnkgZmllbGQgay4NCg0KDQpZb3VyIGFu
c3dlciB0byB0aGUgcXVlc3Rpb24gb24gb3ZlcmxvYWRpbmcgaXMgb2YgY291cnNlIHRoZSAibWlk
ZGxlIHdheSIsIGJ1dCB0aGUgcHJvYmxlbSBhYm92ZSAodW5zcGVjaWZpZWQgZG9tYWlucyBpbiBh
IGNhdGVnb3J5LCBvciBlbGVtZW50IGluIGEgZG9tYWluKSBjb3VsZCBjYXNjYWRlIGFuZCBzbyB0
aGVyZSBoYXMgdG8gYmUgYSBub24tc3BlY2lmaWMgdHJhbnNsYXRpb24gKG9yIHdheSB0byBtYXJr
LXVwKSwgcGVyaGFwcyB3aXRoIGEgImRlZmF1bHQiIHNwZWNpZmljYXRpb24gaW4gY2FzZSBjb21w
dXRhdGlvbiBiZWNvbWVzIG5lY2Vzc2FyeS4NCg0KDQpTb21laG93IEkgZ290IChwZXJoYXBzIGlu
Y29ycmVjdGx5KSB0aGUgaW1wcmVzc2lvbiB0aGF0IHlvdXIgcHJvcG9zZWQgdGFyZ2V0IGlzIHdl
YXZlcihsYXRleCBwYXBlciwgYXhpb20gcGFwZXIpLS0tb2YgY291cnNlLCBhIHBhcGVyIGlzIGFs
c28gYSBzdHJpbmcuDQoNCg0KRm9yIGEgbGltaXRlZCBhcHBsaWNhdGlvbiAoZm9ybXVsYXMgbGlr
ZSBpbnRlZ3JhbHMpLCBzdWNoIGdlbmVyYWxpdHkgaXMgcGVyaGFwcyBub3QgbmVlZGVkLiBGb3Ig
dGhhdCBwdXJwb3NlLCBJIGRvIG5vdCBiZWxpZXZlIHdlIG5lZWQgYSBuZXcgc2VtYW50aWMgbWFy
ay11cCBsYXllci0tLWlmIEkgZm9sbG93IHlvdXIgcHJvZ3Jlc3MgY29ycmVjdGx5LCB5b3UgYWxy
ZWFkeSBoYXZlIGEgZGlyZWN0IFtzZW1pLWF1dG9tYXRpYz9dIHRyYW5zbGF0aW9uIHByb2dyYW0g
KG9yIGEgYnVuY2ggb2YgbWFjcm9zKSB0aGF0IGlucHV0cyB0aGUgbGF0ZXggc291cmNlIGZvciBh
IGZvcm11bGEgKG9yIGEgc2Nhbm5lZCBpbWFnZSB3aXRoICJtYXRoZW1hdGljYWwgT0NSIiBzb2Z0
d2FyZSkgYW5kIG91dHB1dHMgdGhlIEF4aW9tIGNvZGUgKG9yIGJldHRlciBzdGlsbCwgYW4gQXhp
b20gcGFja2FnZSB0aGF0IGFsbG93cyBbZG9tYWluXSBwYXJhbWV0ZXJzKS4gQXMgeW91IGFja25v
d2xlZGdlZCwgdGhlIHNlbGF0ZXggdGVzdCBmaWxlIHdpdGggd2VhdmVyKGxhdGV4IHN0cmluZywg
YXhpb20gc3RyaW5nKSBkb2VzIG5vdCB5ZXQgcHJvdmlkZSB0aGUgc2VtYW50aWMgY29udGVudCAo
dGhhdCdzIHRoZSBzZW1pLWF1dG9tYXRpYyBwYXJ0OiBjaG9vc2luZyBkZWZhdWx0IGRvbWFpbnMp
LiBXaHkgZG8gd2UgbmVlZCB0byAidW53ZWF2ZSIgYW4gYXhpb20gc3RyaW5nIHdpdGggc2VtYW50
aWMgbWFyay11cCBiYWNrIHRvIGxhdGV4ICh3aXRoIG9yIHdpdGhvdXQgc2VtYW50aWMpPyBJcyBp
dCB0byBlbnN1cmUgdGhhdCB3ZWF2ZSBoYXMgYW4gaW52ZXJzZT8gSSBkb24ndCBzZWUgdGhhdCB0
byBiZSB0aGUgY2FzZSwgc2luY2Ugd2UgaGF2ZSB0byBtYWtlIGNob2ljZXMgZm9yIGRvbWFpbnMg
dG8gZ2l2ZSBmdWxsIGNvbXB1dGF0aW9uYWwgc2VtYW50aWNzIGJ1dCBkb24ndCBmb3IgaW4gdGhl
IGxhdGV4IHN0cmluZywgZXZlbiBpbmNsdWRpbmcgZnVsbCBtYXRoZW1hdGljYWwgc2VtYW50aWNz
LiBJIHRoaW5rIHdlYXZlIGlzIG9uZSB0byBtYW55IGluIGdlbmVyYWwsIGJ1dCB1bndlYXZlIGNh
biBiZSBvbmUgdG8gb25lIGFuZCB0aHVzIHBvc3NpYmx5IGxvc2VzIHRoZSBnZW5lcmFsaXR5IG9m
IGlucHV0IGxhdGV4IHN0cmluZyBnaXZlbiB0byB0aGUgd2VhdmUgcm91dGluZS4NCg0KV2lsbGlh
bQ0KDQoNCg0KV2lsbGlhbSBTaXQNClByb2Zlc3NvciBFbWVyaXR1cw0KRGVwYXJ0bWVudCBvZiBN
YXRoZW1hdGljcw0KVGhlIENpdHkgQ29sbGVnZSBvZiBUaGUgQ2l0eSBVbml2ZXJzaXR5IG9mIE5l
dyBZb3JrDQpOZXcgWW9yaywgTlkgMTAwMzENCmhvbWVwYWdlOiB3c2l0LmNjbnkuY3VueS5lZHUN
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpGcm9tOiBUaW0gRGFseSA8YXhpb21j
YXNAZ21haWwuY29tPg0KU2VudDogVGh1cnNkYXksIEF1Z3VzdCAyNSwgMjAxNiAyOjUwIFBNDQpU
bzogV2lsbGlhbSBTaXQNCkNjOiBEYW4gWndpbGxpbmdlcjsgUmljaGFyZCBGYXRlbWFuOyBKYW1l
cyBEYXZlbnBvcnQ7IHZkaG9ldmVuQGxpeC5wb2x5dGVjaG5pcXVlLmZyOyBNaWtlIERld2FyOyBh
eGlvbS1kZXY7IGFsYmVydF9yaWNoQG1zbi5jb20NClN1YmplY3Q6IFJlOiBbQXhpb20tZGV2ZWxv
cGVyXSBEZXNpZ24gVGhvdWdodHMgb24gU2VtYW50aWMgTGF0ZXggKFNFTEFURVgpDQoNCldpbGxp
YW0sDQoNCkl0IGlzIHVubGlrZWx5IHRoYXQgYXV0aG9ycyB3aWxsIHByb3ZpZGUgYSBzcGVjaWFs
IGNodW5rIGZvciBBeGlvbSBpbiBwYXBlcnMuDQoNClN1Y2ggYW4gYWJpbGl0eSBhbHJlYWR5IGV4
aXN0cyBidXQgSSBkb24ndCBleHBlY3QgYW55b25lIHdpbGwgYWRvcHQgaXQuDQpUaGUgXHVzZXBh
Y2thZ2V7YXhpb219IGFuZCBcYmVnaW57Y2h1bmt9IC8gXGVuZHtjaHVua30gcGFpciB3b3JrIGFu
ZCBpcw0KYWxsIHRoYXQgaXMgbmVlZGVkLg0KDQpUaGUgcHJpbWFyeSB0YXJnZXQgb2YgdGhpcyBl
ZmZvcnQgKGFsdGhvdWdoIG5vdCByZXN0cmljdGVkIHRvIHRoZW0pIGFyZSB0aGUNCnZhcmlvdXMg
Y29sbGVjdGlvbnMgKE5JU1QvQ1JDL0cmUi9KZWZmcmV5L2V0Yykgb2YgZm9ybXVsYXMuIEkgdXNl
IHRoZXNlDQpyZWZlcmVuY2VzIHRvIGNyZWF0ZSB0aGUgY29tcHV0ZXIgYWxnZWJyYSB0ZXN0IHN1
aXRlIGJ1dCBpdCB0YWtlcyBtb250aHMNCnRvIGRvIHRoaXMgYnkgaGFuZC4gSSBhbHNvIHVzZSB0
aGVtIHRvIGJ1aWxkIHJlZ3Jlc3Npb24gdGVzdHMgZm9yIEF4aW9tLg0KDQpUaGVyZSBoYXZlIGJl
ZW4gdmFyaW91cyBhdHRlbXB0cyB0byBleHRyYWN0IHNlbWFudGljcyBmcm9tIGxhdGV4LiBTb21l
DQphcmUgcXVpdGUgaW50ZXJlc3RpbmcgKHNlZSBodHRwOi8vbWF0aHBpeC5jb20pLiBVbmZvcnR1
bmF0ZWx5LCB0aGVyZSBpc24ndA0KZW5vdWdoIGluZm9ybWF0aW9uIGluIHRoZSBsYXRleC4gRm9y
IGluc3RhbmNlLCBhcmUgeW91ciBmb3JtdWxhcyBnaXZlbg0Kb3ZlciB0aGUgcmVhbCBvciBjb21w
bGV4IGRvbWFpbj8NCg0KSW4gdGhlIGxvbmdlciB0ZXJtIEkgYW0gY2FtcGFpZ25pbmcgdG8gYmVu
ZCB0aGVzZSB0b21lcyB0b3dhcmQgYQ0KbW9yZSBjb21wdXRhdGlvbmFsIG1hdGhlbWF0aWNzIGJh
c2lzLiBJbnN0ZWFkIG9mIGxpc3RpbmcgdGhlIG5hbWVzIG9mDQoyMCBpbnZhcmlhbnQgZ3JhcGgg
YWxnb3JpdGhtcyB3ZSByZWFsbHkgbmVlZCByZWZlcmVuY2UgdmVyc2lvbnMgb2YgdGhlDQphbGdv
cml0aG1zLiBBbmQgd2UgbmVlZCB0aGVtIGluIG1hY2hpbmUtcmVhZGFibGUgZm9ybS4gQW5kIHdl
IG5lZWQNCnRoZW0gbm93IHNvIGEgd2hvbGUgZ2VuZXJhdGlvbiBvZiBjb21wdXRhdGlvbmFsIG1h
dGhlbWF0aWNpYW5zIGRvDQpub3Qgd3JpdGUgeWV0LWFub3RoZXItQ0FTIGZyb20gc2NyYXRjaC4N
Cg0KVGltDQoNCg0KDQoNCg0KDQoNCg0KDQpPbiBUaHUsIEF1ZyAyNSwgMjAxNiBhdCA5OjEzIEFN
LCBXaWxsaWFtIFNpdCA8d3NpdEBjY255LmN1bnkuZWR1PG1haWx0bzp3c2l0QGNjbnkuY3VueS5l
ZHU+PiB3cm90ZToNCg0KSGkgVGltOg0KDQoNCldvdWxkIGl0IGJlIHNpbXBsZXIgdG8gb25seSBh
ZGQgc2VtYW50aWMgbWFya3VwcyB0byBhbGdvcml0aG1pYyBkZXNjcmlwdGlvbnMgaW4gcGFwZXJz
PyBBdXRob3JzIGNhbiBiZSBhc2tlZCB0byBwcm92aWRlIGEgc2VwYXJhdGUgY2h1bmsgd2l0aCBb
QXhpb21dIHNlbWFudGljIG1hcmt1cHMgKGluIGVzc2VuY2UsIGEgc2tlbGV0b24gaW1wbGVtZW50
YXRpb24gb3IgcHNldWRvLWNvZGUgb2YgdGhlIGFsZ29yaXRobSBpbnZvbHZlZC0tLXNrZWxldG9u
IGJlY2F1c2UgdGhlIGRhdGEgc3RydWN0dXJlcyBvZiBtYXRoZW1hdGljYWwgb2JqZWN0cyBhcmUg
dXN1YWxseSBpZ25vcmVkIGluIGEgbWF0aCBwYXBlcikuICBUaGlzIHdvdWxkIGF2b2lkIGhhdmlu
ZyB0byBtZXNzIHdpdGggdGhlIGxhdGV4IHNvdXJjZSAoYWxyZWFkeSBoYXJkIHRvIHJlYWQgc29t
ZXRpbWVzKSBvciB0byAid2VhdmUiIHRvIHJlbW92ZSB0aGUgc2VtYW50aWMgbWFya3VwcyB0byBy
ZWNhcHR1cmUgdGhlIGxhdGV4OiBhbGwgdGhhdCBpcyBuZWVkZWQgd291bGQgYmUgdG8gaWdub3Jl
IHRoZSBzZW1hbnRpYyBjaHVuaykuIFB1dCBhbm90aGVyIHdheSwgdGhlIHNlbWFudGljIGNodW5r
IGlzIGEgZGlyZWN0IChieSBoYW5kIG9yIGF1dG9tYXRpYykgdHJhbnNsYXRpb24gb2YgdGhlIGxh
dGV4IHZlcnNpb24gb2YgYW4gYWxnb3JpdGhtIGNodW5rLg0KDQoNCkFsc28sIHdoYXQgd291bGQg
YmUgdGhlIHNjb3BlIG9mIHRoZSBhZGRlZCBzZW1hbnRpYyBtYWNyb3MgaW4gTGFUZVggKGxpa2Ug
XEFELCBcSU5UKT8gQ2FuIHRoZWlyIHNjb3BlIGJlIGxpbWl0ZWQgb25seSB0byBzZW1hbnRpYyBj
aHVua3M/DQoNCg0KV2lsbGlhbQ0KDQoNCldpbGxpYW0gU2l0DQpQcm9mZXNzb3IgRW1lcml0dXMN
CkRlcGFydG1lbnQgb2YgTWF0aGVtYXRpY3MNClRoZSBDaXR5IENvbGxlZ2Ugb2YgVGhlIENpdHkg
VW5pdmVyc2l0eSBvZiBOZXcgWW9yaw0KTmV3IFlvcmssIE5ZIDEwMDMxDQpob21lcGFnZTogd3Np
dC5jY255LmN1bnkuZWR1PGh0dHA6Ly93c2l0LmNjbnkuY3VueS5lZHU+DQpfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXw0KRnJvbTogQXhpb20tZGV2ZWxvcGVyIDxheGlvbS1kZXZlbG9w
ZXItYm91bmNlcyt3eXNjYz1zY2kuY2NueS5jdW55LmVkdUBub25nbnUub3JnPG1haWx0bzpzY2ku
Y2NueS5jdW55LmVkdUBub25nbnUub3JnPj4gb24gYmVoYWxmIG9mIFRpbSBEYWx5IDxheGlvbWNh
c0BnbWFpbC5jb208bWFpbHRvOmF4aW9tY2FzQGdtYWlsLmNvbT4+DQpTZW50OiBUaHVyc2RheSwg
QXVndXN0IDI1LCAyMDE2IDY6MTcgQU0NClRvOiBEYW4gWndpbGxpbmdlcg0KQ2M6IFJpY2hhcmQg
RmF0ZW1hbjsgSmFtZXMgRGF2ZW5wb3J0OyB2ZGhvZXZlbkBsaXgucG9seXRlY2huaXF1ZS5mcjxt
YWlsdG86dmRob2V2ZW5AbGl4LnBvbHl0ZWNobmlxdWUuZnI+OyBNaWtlIERld2FyOyBheGlvbS1k
ZXY7IGFsYmVydF9yaWNoQG1zbi5jb208bWFpbHRvOmFsYmVydF9yaWNoQG1zbi5jb20+DQpTdWJq
ZWN0OiBSZTogW0F4aW9tLWRldmVsb3Blcl0gRGVzaWduIFRob3VnaHRzIG9uIFNlbWFudGljIExh
dGV4IChTRUxBVEVYKQ0KDQpNeSBpbml0aWFsIGFwcHJvYWNoIHdhcyB0b28gaGVhdnktaGFuZGVk
IGFuZCBBeGlvbSBzcGVjaWZpYy4NCg0KSXQgc2VlbXMgdGhlIHNlbWFudGljIG1hcmt1cCB0YXNr
IGNhbiBiZSB2aWV3ZWQgYXMgYW4gZWRpdG9yDQp0YXNrLiBFZGl0b3JzIGRvbid0IGNhcmUgYWJv
dXQgc2VtYW50aWNzLCB0aGV5IGp1c3Qgd29yayBvbiB0ZXh0Lg0KVmlld2VkIHRoaXMgd2F5IHRo
ZSBtYXJrdXAncyBvbmx5IGZ1bmN0aW9uIGlzIGRlY29yYXRpb24gZm9yDQpwb3N0LXByb2Nlc3Np
bmcuIEl0IGlzIChtb3N0bHkpIHN5c3RlbSBpbmRlcGVuZGVudC4NCg0KVGhlIGVkaXQgdGFza3Mg
c2VlbSB0byBiZSB7ZGVsZXRlLCBpbnNlcnQsIHJlcGxhY2V9IGFuZCBzb21lDQpwb3N0LW1hcmt1
cCBoaW50cyB7ZnVuY3Rpb24sIHR5cGV9DQoNClRoZSBkZWxldGUgbWFya3VwIHRlbGxzIHdlYXZl
ciB0byByZW1vdmUgdGhlIGxhdGV4IGNvbXBsZXRlbHkuDQpUaGlzIGlzIHVzZWZ1bCBmb3IgdGhp
bmdzIGxpa2Uge2R4fQ0KDQpUaGUgaW5zZXJ0IG1hcmt1cCBhZGRzIG1pc3Npbmcgc2VtYW50aWMg
dGV4dCwgc3VjaCBhcyB7Kn0gd2hpY2gNCmlzIG5lZWRlZCB0byBpbmRpY2F0ZSBtdWx0aXBsaWNh
dGlvbi4NCg0KVGhlIHJlcGxhY2UgbWFya3VwIGdpdmVzIGFsdGVybmF0ZSB0ZXh0IGZvciB3ZWF2
ZXIsIGZvciB0aGluZ3Mgd2hlcmUNCnRoZSBmdW5jdGlvbiBuYW1lIG1pZ2h0IGRpZmZlciwgZS5n
LiBcaW50IC0+IGludGVncmF0ZQ0KDQpUaGUgZnVuY3Rpb24gbWFya3VwIG5hbWVzIGEgZnVuY3Rp
b24gdGhhdCB3ZWF2ZXIgc2hvdWxkIGNhbGwNCndoaWNoIGFsbG93cyBzcGVjaWFsIGhhbmRsaW5n
IGluIHBvc3QtcHJvY2Vzc2luZy4gSXQgY2FuIGJlIGFueQ0Kcy1leHByZXNzaW9uICh0aGUgd2Vh
dmVyIGltcGxlbWVudGF0aW9uIGlzIGN1cnJlbnRseSBsaXNwLWJhc2VkKS4NCg0KVGhlIHR5cGUg
bWFya3VwIHBhc3NlcyB0eXBlIGluZm9ybWF0aW9uIHRvIHdlYXZlciBzbyBBeGlvbQ0Ka25vd3Mg
dGhlIHRhcmdldCB0eXBlLCB1c2VmdWwgZm9yIHRoaW5ncyBsaWtlIG1hdHJpeC4NCg0KVGhlIG1h
Y3JvcyBhcmUNCg0KXG5ld2NvbW1hbmR7XEFEfVsxXXsjMX0lIGRlbGV0ZQ0KXG5ld2NvbW1hbmR7
XEFJfVsxXXt9JSBpbnNlcnQNClxuZXdjb21tYW5ke1xBUn1bMl17IzF9JSByZXBsYWNlDQoNClxu
ZXdjb21tYW5ke1xBRn1bMl17IzF9JSBmdW5jdGlvbg0KXG5ld2NvbW1hbmR7XEFUfVsyXXsjMX0l
IHR5cGUNCg0KTm90ZSB0aGF0IFxBSSBvdXRwdXRzIG5vdGhpbmcsIHNvIDNcQUl7Kn14ID09IDN4
IHRvIGxhdGV4Lg0KDQpcQUQgdGVsbHMgd2VhdmVyIHRvIGRlbGV0ZSB0aGUgdGV4dCwgZS5nLiB7
XEFEIH5keH0gPT0gfmR4IHRvIGxhdGV4DQoNClxBUiB0ZWxscyB3ZWF2ZXIgdG8gcmVwbGFjZSB0
aGUgdGV4dCBlLmcuIHtcQVIgXHBpfXtcJXBpfQ0KDQpcQUYgdGVsbHMgd2VhdmVyIHRvIGNhbGwg
YSBmdW5jdGlvbiwgZS5nLiBvbmUgdGhhdCBrbm93cyBob3cgdG8NCnJld3JpdGUgdGhlIGlucHV0
IGluIGEgc3BlY2lhbCB3YXksIG9yIGRvZXMgdHJhY2luZywgZXRjLg0KDQpcQVQgYWRkcyB0YXJn
ZXQgdHlwZSBpbmZvcm1hdGlvbiBmb3IgQXhpb20NCmUuZy4gXEFUezN4KzZ9e1BPTFkoSU5UKX0g
PT0gM3grNiB0byBsYXRleCBidXQgcGFzc2VzIGl0IGFzDQphIFBvbHlub21pYWwoSW50ZWdlcikg
dG8gQXhpb20NCg0KRm9yIGV4YW1wbGUsDQoNCiRcaW50e1xmcmFje2R4fXtheCpifX0kDQoNCmJl
Y29tZXMNCg0KJFxBVHtcQVJ7XGludH17aW50ZWdyYXRlfXtcZnJhY3tcQUR7ZHh9fXthXEFJeyop
eCtifX19e0VYUFJ9e0lOVH19JA0KDQp0ZWxsaW5nIHdlYXZlciB0aGF0IHRoZSB0YXJnZXQgdHlw
ZSAoQVQpIGlzIEVYUFIoSU5UKSwNCnRoZSBcaW50IGlzIHJlYWxseSBpbnRlZ3JhdGUNCnRoZSBk
eCBpcyB0byBiZSBpZ25vcmVkIGFuZA0KdGhlIGF4K2Igc2hvdWxkIHJlYWQgYSp4K2INCg0KVGhl
cmUgaXMgYW4gb2J2aW91cyB0cmFkZW9mZiBvZiBtYXJrdXAgdnMgd2VhdmVyLg0KRm9yIGV4YW1w
bGUuIFxpbnQgbWlnaHQgYmUga25vd24gdG8gd2VhdmVyLg0KT3IgZXhwcmVzc2lvbnMgbWlnaHQg
Y2FsbCBhbiBlcXVhdGlvbiByZXdyaXRlciB0byBhZGQgeyp9DQoNClRoZSBtYXJrdXAgY291bGQg
dmFyeSBmcm9tIGFsbW9zdCBub3RoaW5nIHRvIG1hc3NpdmUgZGV0YWlsDQpkZXBlbmRpbmcgb24g
dGhlIGRvd25zdHJlYW0gY2xldmVybmVzcy4NCg0KVGhpcyBpbml0aWFsIG1hcmt1cCBzZXQgc2Vl
bXMgc3VmZmljaWVudCB0byBoYW5kbGUgZXZlcnkgdGFzaw0KdGhhdCByZXF1aXJlcyBzZW1hbnRp
Y3MgbWFya3VwIHNvIGZhci4gVGhlIG92ZXJoZWFkIHNlZW1zDQpzbWFsbCBhbmQgdGhlIGdhaW4g
c2VlbXMgbGFyZ2UuDQoNCk5vdyB0aGUgb25seSBwcm9ibGVtIGlzIHBvc3QtcHJvY2Vzc2luZyB0
aGUgbGF0ZXguIFNpZ2guDQoNClRoZXJlIGlzIG5vIHN1Y2ggdGhpbmcgYXMgYSBzaW1wbGUgam9i
Lg0KDQpUaW0NCg0KDQpPbiBUdWUsIEF1ZyAyMywgMjAxNiBhdCA3OjI3IFBNLCBUaW0gRGFseSA8
YXhpb21jYXNAZ21haWwuY29tPG1haWx0bzpheGlvbWNhc0BnbWFpbC5jb20+PiB3cm90ZToNCkZv
ciB0aG9zZSBvZiB5b3UgYXQgaG9tZSB3aXNoaW5nIHRvIHBsYXkgYWxvbmcsIHRoZXJlIGlzIGEN
CnNlbGF0ZXgudGVzdDEgZmlsZSBhdA0KaHR0cDovL2F4aW9tLWRldmVsb3Blci5vcmcvYXhpb20t
d2Vic2l0ZS9zZWxhdGV4LnRlc3QxDQpjb250YWluaW5nIDYyMCBpbnRlZ3JhbHMuDQoNCkVhY2gg
bGluZSBpcyBhIGNhbGwgb2YgdGhlIGZvcm0NCg0KICB3ZWF2ZXIobGF0ZXgtc3RyaW5nLGF4aW9t
LXN0cmluZykNCg0KVGhlIGdvYWwgaXMgdG8gdHJhbnNmb3JtIHRoZSBsYXRleCBpbnRvIEF4aW9t
Lg0KDQpJbXBsaWNpdCBpcyB0aGUgaWRlYSB0aGF0IHdlYXZlciB3aWxsIHVzZSB0aGUgc2VsYXRl
eCB0b2tlbnMNCnRvIGRpc2FtYmlndWF0ZSB0aGUgaW5wdXQuIFRoZSBjdXJyZW50IGZpbGUgaGFz
IG5vIHNlbGF0ZXgNCnRva2Vucy4gVGhleSB3aWxsIGJlIGFkZGVkIGFzIG5lZWRlZC4gVGhlIGlk
ZWEgaXMgdG8ga2VlcA0KdGhlIHByb2JsZW0gc2ltcGxlIGJ5IGFkZGluZyBwcmludC1pbnZpc2li
bGUgc2VtYXRpY3MgdG8gdGhlDQpsYXRleC1zdHJpbmcuIEluIHRoZSBpZGVhbCBjYXNlIHRoZSB3
ZWF2ZXIgcHJvZ3JhbSBpcyB0cml2aWFsLA0KYXMgaXMgdGhlIG1hcmt1cC4gQW55IHRyYWRlb2Zm
IHNob3VsZCBwcmlvcml0aXplIHNpbXBsaWNpdHkuDQpBbm90aGVyIHByaW9yaXR5IGlzIHRvIGFs
aWduIHRoZSBzZW1hbnRpYyBtYXJrdXAgd2l0aA0KQXhpb20gZG9tYWlucyBpbiBvcmRlciB0byBn
cm91bmQgdGhlIHNlbWFudGljcyB3aXRoIGNvZGUuDQoNCk9uY2UgYWxsIG9mIHRoZXNlIGNhbGxz
IHRyYW5zbGF0ZSBjb3JyZWN0bHkgdGhlIEF4aW9tIG91dHB1dA0Kcm91dGluZXMgbmVlZCB0byBv
dXRwdXQgdGhlIGxhdGV4LXN0cmluZyB3aXRoIHRoZSBhZGRlZA0Kc2VtYW50aWMgbWFya3VwIHNv
IHRoZSBtYXBwaW5nIGlzIGJpLWRpcmVjdGlvbmFsLg0KDQpUaGUgY3VycmVudCBmaWxlIG9ubHkg
bG9va3MgYXQgaW50ZWdyYXRpb24gYXMgSSBhbHJlYWR5IGhhdmUNCnRoZSBsYXRleC0+YXhpb20g
dGV4dCBhdmFpbGFibGUuIEZ1dHVyZSB0ZXN0IGZpbGVzIHdpbGwgbG9vaw0KYXQgb3RoZXIgYXJl
YXMgb2YgaW50ZXJlc3QuIFRoZSBsb25nIHRlcm0gZ29hbCBpcyB0byBwYXJzZQ0KTklTVC9DUkMv
ZXRjIGZvcm11bGFzLg0KDQpUaW0NCg0KDQpPbiBTdW4sIEF1ZyAyMSwgMjAxNiBhdCAxMTowMiBQ
TSwgVGltIERhbHkgPGF4aW9tY2FzQGdtYWlsLmNvbTxtYWlsdG86YXhpb21jYXNAZ21haWwuY29t
Pj4gd3JvdGU6DQpEYW4sDQoNCldoaWxlIHBhZ2luZyB0aHJvdWdoIHRoZSBDUkMgMzFzdCBTdGFu
ZGFyZCBNYXRoZW1hdGljYWwNClRhYmxlcyBJIGxhbmRlZCBvbiBwYWdlIDIxOSwgc2VjdGlvbiAz
LjQuMS4yIEdyYXBoIEludmFyaWFudHMuDQoNCkl0IHdvdWxkIGJlIGEgdmFzdCBpbXByb3ZlbWVu
dCBpZiB0aGVyZSB3ZXJlIGFsZ29yaXRobXMNCmFzc29jaWF0ZWQgd2l0aCB0aGVzZSBpbnZhcmlh
bnRzLiBDbGVhcmx5IHRoZXkgZXhpc3Qgc29tZXdoZXJlLg0KDQpUbyAiY3Jvc3MgdGhlIGdhcCIg
YmV0d2VlbiB0YWJsZXMgYW5kIGNvbXB1dGF0aW9uYWwgbWF0aGVtYXRpY3MNCml0IHdvdWxkIGJl
IHZhbHVhYmxlIHRvIGluY2x1ZGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZXNlIGludmFyaWFudHMu
DQoNCkl0IGlzIGhhcmQgdG8gd2FsayBhd2F5IGZyb20gdGhhdCBwYWdlLiBBbiBBeGlvbSBpbXBs
ZW1lbnRhdGlvbg0Kd291bGQgYmUgZnVuIHRvIHdyaXRlLCBlc3BlY2lhbGx5IGdpdmVuIHRoZSBu
ZXh0IHNlY3Rpb24gdGhhdCBsaXN0cw0KZGlmZmVyZW50IGtpbmRzIG9mIGdyYXBocyB3aGljaCwg
cHJlc3VtYWJseSwgd291bGQgYWxsIGhhdmUgdGhlDQppbnZhcmlhbnRzLiBFdmVuIGJldHRlciwg
dGhlIGdyYXBoIGFsZ29yaXRobXMgYXJlIGxpa2VseSBnb29kDQpjYW5kaWRhdGVzIGZvciBwcm9v
ZiB0ZWNobm9sb2d5IChBQ0wyIGlmIGRvbmUgaW4gTGlzcCwgQ09RIGlmDQpkb25lIGluIFNwYWQp
LiBMaXNwIGhhcyB0aGUgYWR2YW50YWdlIG9mIGFuIEFOU0kgc3RhbmRhcmQuDQoNCkl0IHNlZW1z
IHdvcnRod2hpbGUgdG8gdGFrZSBzZWN0aW9ucyBsaWtlIHRoaXMsIGV4cGFuZCB0aGVtDQphY3Jv
c3MgY29tcHV0YXRpb25hbCBhbmQgcHJvb2YgdG9vbHMsIGFuZCBwdWJsaXNoIHRoZW0gaW4gYQ0K
Zm9ybSB0aGF0IGlzIGdlbmVyYWxseSB1c2VmdWwuIEl0IGlzICJuaWNlIHRvIGtub3ciIHRoYXQg
YSBncmFwaA0KaGFzIGEgcmFkaXVzIGJ1dCBpdCB3b3VsZCBiZSBldmVuIGJldHRlciBpZiBJIGNv
dWxkICJqdXN0IHBvaW50IGFuZA0KY2xpY2siIHRvIGltcG9ydCB0aGUgYWxnb3JpdGhtLg0KDQpB
eGlvbSBoYXMgYmVlbiBwdXNoaW5nIGxpdGVyYXRlIHByb2dyYW1taW5nIGZvciB5ZWFycy4gVGhl
DQp0b29scyBleGlzdCB0byAibWFrZSBpdCBzbyIsIGFzIHRoZSBzYXlpbmcgZ29lcy4NCg0KVGlt
DQoNCg0KDQoNCk9uIFN1biwgQXVnIDIxLCAyMDE2IGF0IDEwOjQwIFBNLCBUaW0gRGFseSA8YXhp
b21jYXNAZ21haWwuY29tPG1haWx0bzpheGlvbWNhc0BnbWFpbC5jb20+PiB3cm90ZToNCkxpa2Ug
YW55IHJlc2VhcmNoIHByb2JsZW0gaXQgaXMgYSBzdHJ1Z2dsZSB0byBnZXQgYSB1c2VmdWwgZ3Jp
cCBvbiB0aGlzLg0KTG9va2luZyBhdCBHJlIgKEkganVzdCBvcmRlcmVkIHRoZSBsYXRlc3QsIG1p
bmUgaXMgNHRoIGVkaXRpb24pLCB0aGUNCnRhc2sgcXVpY2tseSBnZXRzIG91dCBvZiBoYW5kLg0K
DQpUaGUgQ0FUUyB0ZXN0cyBpbiB0aGUgcGFzdCB3ZXJlIGNyZWF0ZWQgYnkgcmVhZGluZyB0aGUg
cHJpbnRlZCBsYXRleA0KaW4gdmFyaW91cyB2b2x1bWVzIGFuZCBoYW5kLXRyYW5zbGF0aW5nIHRo
ZW0gdG8gQXhpb20gaW5wdXQuDQoNCkl0IGlzIG5vdCBkaWZmaWN1bHQgdG8gcmUtY3JlYXRlIHRo
ZSBsYXRleCBpbnB1dCBmb3IgdGhlc2UgZXhhbXBsZXMuDQpEb2luZyBzbyBhbmQgY29tYmluaW5n
IHRoZSByZXN1bHRzIGdpdmVzIGEgc2V0IG9mIGV4YW1wbGVzIHdpdGgNCm1hdGNoaW5nIGlucHV0
IGxhdGV4IGFuZCBvdXRwdXQgQXhpb20uIFRoZSBob21ld29yayBwcm9ibGVtIGlzDQp0byB3cml0
ZSB0aGUgbmVjZXNzYXJ5IG1hcmt1cCBhbmQgd2VhdmVyLg0KDQpJdCBpcyBpbW1lZGlhdGVseSBv
YnZpb3VzIHRoYXQgdGhpcyBpcyBtb3JlIGNoYWxsZW5naW5nIHRoYW4gaXQgc2VlbXMuDQpGb3Ig
ZXhhbXBsZSwgd2hlbiB3cml0aW5nIHknKHgpPTAsIEF4aW9tIG5lZWRzIHk6PW9wZXJhdG9yICd5
DQpzbyBpdCBrbm93cyBhYm91dCB0aGUgc3ltYm9sIGFzIGFuIG9wZXJhdG9yLiBUaGlzIGZhbGxz
IHVuZGVyDQoiQ29uc2lkZXJhdGlvbiAxMjogU3lzdGVtIFNwZWNpZmljIENvbW1hbmRzIi4uLiB3
aGljaCBpbXBsaWVzDQp0aGF0IHRoZSBsYXRleCBlbnZpcm9ubWVudCBhbmQgcXVvdGluZyBtYWNy
b3MgaGF2ZSB0byBiZQ0KaW1wbGVtZW50ZWQuIFNpZ2guDQoNClRoZXJlIGlzIG5vIHN1Y2ggdGhp
bmcgYXMgYSBzaW1wbGUgam9iLg0KDQpBbnl3YXksIGF0IGxlYXN0IHRoZXJlIGlzIGEgd2F5IHRv
IG1ha2UgYSBwcm9vZiBvZiBjb25jZXB0DQpwcm90b3R5cGUgdGhhdCByZXByb2R1Y2VzIGV4aXN0
aW5nIHJlc3VsdHMuDQoNClRpbQ0KDQoNCk9uIFN1biwgQXVnIDIxLCAyMDE2IGF0IDQ6MTcgUE0s
IFRpbSBEYWx5IDxheGlvbWNhc0BnbWFpbC5jb208bWFpbHRvOmF4aW9tY2FzQGdtYWlsLmNvbT4+
IHdyb3RlOg0KRGFuLA0KDQpXZWxjb21lLg0KDQpSZTogSG93YXJkIENvaGwuIFllcywgSSdkIGxp
a2UgYW4gaW50cm9kdWN0aW9uLiBJdCBzZWVtcyBpbXBvcnRhbnQgdG8NCm1ha2UgRExNRiwgQ1JD
LCBhbmQgb3RoZXIgc291cmNlcyBjb250YWluIGVub3VnaCBzZW1hbnRpY3MgdGhhdA0KdGhleSBj
YW4gYmUgcmVhZCBieSBhIGNvbXB1dGVyIGFsZ2VicmEgc3lzdGVtLiBUaGVyZSBhcmUgYW4NCmVu
b3Jtb3VzIG51bWJlciBvZiBpc3N1ZXMsIHN1Y2ggYXMgd2hhdCB0byBkbyB3aXRoIGZ1bmN0aW9u
cw0KdW5rbm93biB0byB0aGUgQ0FTLCB3aGljaCBuZWVkIHRvIGJlIHRob3VnaHQgdGhyb3VnaC4N
Cg0KSSBiZWxpZXZlIHRoYXQgTklTVC9DUkMvRyZSIGNvbGxlY3Rpb25zIHdpdGggc2VtYW50aWMg
bWFya3VwIHdpbGwNCmhhdmUgYSBncmVhdCBub3JtYWxpemluZyBlZmZlY3Qgb24gQ0FTIGRldmVs
b3BtZW50IHNpbmNlIGl0IHdpbGwgcmFpc2UNCmNyb3NzLXBsYXRmb3JtIHF1ZXN0aW9ucyBsaWtl
ICJXaGF0IHBlcmNlbnQgb2YgRyZSIGRvIHlvdSBoYW5kbGU/Ii4NCkFsYmVydCBSaWNoIChSVUJJ
KVswXSBoYXMgYmVlbiBkb2luZyB0aGlzIGZvciBpbnRlZ3JhdGlvbiB1c2luZyBwYXR0ZXJucy4N
ClRoaXMgY2FuIG9ubHkgYmVuZWZpdCBjb21wdXRhdGlvbmFsIG1hdGhlbWF0aWNzIGluIHRoZSBs
b25nIHRlcm0uDQoNCkkndmUgYWxzbyBjYW1wYWlnbmVkIGZvciBhc3NvY2lhdGluZyBhbGdvcml0
aG1zIHdpdGggcHVibGlzaGVkIHRhYmxlcy4NCkl0IGlzIGltcG9ydGFudCBpbiB0aGUgbG9uZyB0
ZXJtIHRvIGhhdmUgcmVmZXJlbmNlIHZlcnNpb25zLiBUaGUgQUNNDQp1c2VkIHRvIGRvIHRoaXMg
eWVhcnMgYWdvLiBJJ2QgbGlrZSB0byBzZWUgYSBHcnVudHogYWxnb3JpdGhtIGZvciBsaW1pdHMN
CndoZXJlIGl0IGNhbiBiZSBhcHBsaWVkLCBmb3IgaW5zdGFuY2UuIEl0IHdvdWxkIGFsc28gcHJv
dmlkZSBhIGZvY3VzIG9uDQoibWlzc2luZyBhbGdvcml0aG1zIiBvciBlZGdlIGNhc2VzLiBEYXZl
bnBvcnQvVHJhZ2VyL0Jyb25zdGVpbg0KYWxnb3JpdGhtcyBwcm9taXNlIGEgZGVjaXNpb24gcHJv
Y2VkdXJlIGJ1dCB0aGVyZSBhcmUgbm8gZXhpc3RpbmcNCmNvbXBsZXRlIGltcGxlbWVudGF0aW9u
cy4gVGhlIHRhYmxlcyBjb3VsZCBoaWdobGlnaHQgbWlzc2luZyBjYXNlcywNCmdpdmluZyBmb2N1
cyB0byBlZmZvcnRzIHRvIGNvbXBsZXRlIHRoZSBwcm9jZWR1cmUuDQoNCkl0IHdpbGwgYWxzbyBw
dXQgYmFjay1wcmVzc3VyZSBvbiB0aGUgdGFibGVzIHRvIGRlZmluZSBkaWZmZXJlbnQgdmVyc2lv
bnMNCm9mIHRoZSBzYW1lIGZvcm11bGFzIGJhc2VkIG9uIGRvbWFpbnMgKEMsIFIsIGV0YykuDQoN
Cg0KIlRoZSBHUiB3b3JrIHdhcyBtb3JlIHRoYW4gSSBoYWQgYW50aWNpcGF0ZWQiLi4uIHdpbnMg
dGhlIGF3YXJkIGZvcg0KdW5kZXJzdGF0ZW1lbnQgb2YgdGhlIGRlY2FkZS4NCg0KVGhlIGdvYWwg
b2YgdGhpcyBlZmZvcnQgaXMgdG8gbWFrZSBpdCBwb3NzaWJsZSB0byByZWFkIHRob3NlDQpmb3Jt
dWxhcyBkaXJlY3RseSBpbnRvIGEgQ0FTLiBBeGlvbSBpcyBteSBwcmltYXJ5IHRhcmdldCBidXQN
Cml0IHNob3VsZCBiZSBkb25lIGluIGEgc29tZXdoYXQgc3lzdGVtIGFnbm9zdGljIGZvcm0uDQoN
CkkndmUgc3BlbnQgd2VsbCBvdmVyIGEgeWVhciBjcmVhdGluZyB0aGUgY29tcHV0ZXIgYWxnZWJy
YSB0ZXN0IHN1aXRlLg0KSXQgd291bGQgYmUgc28gbXVjaCBlYXNpZXIgYW5kIG1vcmUgdXNlZnVs
IGlmIHRoZSBvcmlnaW5hbCBzb3VyY2VzDQpjb3VsZCBiZSByZWFkIGRpcmVjdGx5Lg0KDQpJIHJl
YWQgeW91ciBwYXBlci4gVGhlcmUgaXMgYW4gaW50ZXJlc3RpbmcgbWl4IG9mIHN5bnRheCBhbmQg
c2VtYW50aWNzLg0KDQpJIGd1ZXNzIHRoZSBkaWZmZXJlbmNlIGluIHRoaXMgZWZmb3J0IGlzIHRo
YXQgdGhlIHNlbWFudGljIG1hcmt1cCBpcw0KaW50ZW5kZWQgdG8gYmUgdHJhbnNwYXJlbnQgYW5k
IGdyb3VuZGVkLiBUaGUgdHJhbnNwYXJlbnQgYXNwZWN0DQprZWVwcyB0aGUgdGFibGVzIHVuY2hh
bmdlZCBpbiBwcmludCBmb3JtLiBUaGUgZ3JvdW5kZWQgYXNwZWN0IGtlZXBzDQp0aGUgc2VtYW50
aWNzIGJhc2VkIG9uIHNvbWUgYWxnb3JpdGhtaWMgYmFzZS4gVGhpcyBpbXBsaWVzLCBvZg0KY291
cnNlLCB0aGF0IHRoZXJlIElTIGFuIGFsZ29yaXRobWljIGJhc2Ugd2hpY2ggZG9lcyBub3QgeWV0
IGV4aXN0DQpmb3Igc29tZSBvZiB0aGUgd29yay4NCg0KQXMgeW91IGNhbiBzZWUgZnJvbSB0aGUg
Q0FUUyB3b3JrIEkndmUgYmVlbiB0cnlpbmcgdG8gdmFsaWRhdGUNCkF4aW9tJ3MgcmVzdWx0cyB3
aXRoIHJlc3BlY3QgdG8gcHVibGlzaGVkIHRleHRzLiBUaGlzIGhhcyBmb3VuZCBib3RoDQpBeGlv
bSBidWdzIGFuZCBtaXNwcmludHMgaW4gcHVibGlzaGVkIHRleHRzLg0KDQpUaGUgS2Fta2VbMV0g
c3VpdGUgd2FzIHRoZSBmaXJzdCBlZmZvcnQgZm9yIGRpZmZlcmVudGlhbCBlcXVhdGlvbnMuDQoN
ClRoZSBTcGllZ2VsWzJdIGNoYXB0ZXIgMTQgb24gaW5kZWZpbml0ZSBpbnRlZ3JhbHMgZm9yIGlu
dGVncmF0aW9uLg0KDQpUaGUgdm9uIFNlZ2dlcm5bM10gYm9vayBvbiBjdXJ2ZXMgYW5kIHN1cmZh
Y2VzIGZvciBncmFwaGljcy4NCg0KVGhlIExlZ2VuZHJlIGFuZCBHcmF6aW5pWzRdIG9uIFBhc3Rh
IGJ5IERlc2lnbiBmb3IgM0QgZ3JhcGhpY3MuDQoNClRoZSBSVUJJIHdvcmsgb24gaW50ZWdyYXRp
b24uDQoNCmFuZCwgY3VycmVudGx5IEknbSByZS1jcmVhdGluZyB0aGUgbnVtZXJpY3MgdGhhdCB3
ZXJlIGxvc3Qgd2hlbiBOQUcNCnJlbGVhc2VkIHRoZSBvcGVuIHNvdXJjZSB2ZXJzaW9uLCBsZWF2
aW5nIG1lIHN3aW1taW5nIHRocm91Z2gNCkx1a2Unc1s1XSBBbGdvcml0aG1zIGJvb2suDQoNCndo
aWNoLCB0byBxdW90ZSBhIGZhbW91cyBwaHJhc2UgIndhcyBtb3JlIHRoYW4gSSBoYWQgYW50aWNp
cGF0ZWQiLg0KDQpZb3VyIEhhbmRib29rIG9mIEludGVncmF0aW9uWzZdIGhhcyBhIHNlY3Rpb24g
b24gdmFyaW91cyBrbm93bg0KIkNhdmVhdHMsIEhvdyBhbiBpbnRlZ3JhdGlvbiByZXN1bHQgbWF5
IGJlIGluY29ycmVjdCIuIFRoaXMgcmFpc2VzIHRoZQ0Kd29uZGVyZnVsIHRvcGljIG9mIGJyYW5j
aCBjdXRzIHlldCBhZ2Fpbi4gSSBkaWQgc29tZSB0ZXN0aW5nIGFuZCBpdA0Kc2VlbXMgdGhhdCBB
eGlvbSBhbmQgTWF0aGVtYXRpY2Egc2hhcmUgb25lIHNldCB3aGlsZSBNYXBsZSBhbmQNCk1heGlt
YSBzaGFyZSBhbm90aGVyLg0KDQpBbGwgb2Ygd2hpY2ggbGVhZHMgdG8gYSBuZWVkIHRvIGNyZWF0
ZSBiZXR0ZXIgcmVmZXJlbmNlIG1hdGVyaWFscyB0aGF0DQphcmUgZ2VuZXJhbGx5IGF2YWlsYWJs
ZSAodW5saWtlIHRoZSBBQ00gYWxnb3JpdGhtcyBmb3Igbm9uLXBheWluZw0KY3VzdG9tZXJzKSBh
bmQgZGlyZWN0bHkgdXNlZnVsIGZvciBjb21wdXRhdGlvbmFsIG1hdGhlbWF0aWNzLg0KDQpUaGUg
Y3VycmVudCBwbGFuIGlzIHRvIHRha2Ugc29tZSB0YWJsZXMsIGZpbmQgb3IgcmUtY3JlYXRlIHRo
ZSBsYXRleCwNCmludmVudCBhIHNlbWFudGljIG1hcmt1cCwgYW5kIHRoZW4gd3JpdGUgdGhlICJ3
ZWF2ZXIiLiBBdCB0aGlzIHBvaW50DQp0aGUgcmVzZWFyY2ggaXMgc3RpbGwgYXQgdGhlICJwcm9v
ZiBvZiBjb25jZXB0IiBzdGFnZS4gKHRleCBmb3JtdWxhDQpzb3VyY2VzIGFyZSBtb3N0IHdlbGNv
bWUpLg0KDQpVbHRpbWF0ZWx5IEknZCByZWFsbHkgbGlrZSB0byBzZWUgYSBib29rIG9mIGZvcm11
bGFzIGFuZCBhbGdvcml0aG1zDQp0aGF0IEkgY2FuIGp1c3QgZHJhZy1hbmQtZHJvcCBpbnRvIEF4
aW9tIGFuZCBiZSBhYmxlIHRvIHVzZSB0aGVtDQp3aXRob3V0IGxpZmV0aW1lcyBvZiB3b3JrLg0K
DQpBY3R1YWxseSwgdGhhdCAncyBvbmx5IHRoZSBwZW51bHRpbWF0ZSBnb2FsLiBJIGhhdmUgYXVn
bWVudGVkDQpBeGlvbSB0byBpbmNsdWRlIHByb29mcyAoQUNMMixDT1EpIHNvIEknZCBhbHNvIGxp
a2UgdG8gc2VlIHByb29mcywNCih0aGlzIElTIG1hdGhlbWF0aWNzLCBhZnRlciBhbGwpIGJ1dCBt
YXliZSB3ZSdsbCBsZWF2ZSB0aGF0IGZvcg0KbmV4dCBtb250aCA6LSkNCg0KVGltDQoNClswXSBS
aWNoLCBBbGJlcnQgIlJ1bGUtYmFzZWQgTWF0aGVtYXRpY3MiDQpodHRwOi8vd3d3LmFwbWF0aHMu
dXdvLmNhL35hcmljaC8NCg0KWzFdIEthbWtlLiBFLiAiRGlmZmVyZW50aWFsZ2xlaWNodW5nZW4g
TG9zdW5nc21ldGhvZGVuIHVuZCBMb3N1bmdlbiINCkNoZWxzZWEgUHVibGlzaGluZyBDb21wYW55
LCBOZXcgWW9yaywgMTk1OQ0KDQpbMl0gU3BpZWdlbCwgTXVycmF5IFIuICJNYXRoZW1hdGljYWwg
SGFuZGJvb2siLCBTY2hhdW0ncyBPdXRsaW5lDQpTZXJpZXM7IE1jR3Jhdy1IaWxsIEJvb2sgQ29t
cGFueSAxOTY4DQoNClszXSB2b24gU2VnZ2VybiwgRGF2aWQgIkNSQyBTdGFuZGFyZCBDdXJ2ZXMg
YW5kIFN1cmZhY2VzIiwNCkNSQyBQcmVzcywgMTk5MyBJU0JOIDAtODQ5My0wMTk2LTMNCg0KWzRd
IExlZ2VuZHJlLCBHZW9yZ2UgTC4gYW5kIEdyYXppbmksIFN0ZWZhbm8gIlBhc3RhIGJ5IERlc2ln
biIsDQpUaGFtZXMgYW5kIEh1ZHNvbiwgMjAwMQ0KDQpbNV0gTHVrZSwgWXVkZWxsICJBbGdvcml0
aG1zIGZvciB0aGUgQ29tcHV0YXRpb24gb2YgTWF0aGVtYXRpY2FsDQpGdW5jdGlvbnMiLCBBY2Fk
ZW1pYyBQcmVzcywgMTk3NyBJU0JOIDAtMTItNDU5OTQwLTYNCg0KWzZdIFp3aWxsaW5nZXIsIERh
bmllbCAiSGFuZGJvb2sgb2YgSW50ZWdyYXRpb24iIEpvbmVzIGFuZCBCYXJ0bGV0dCwNCkxvbmRv
biwgMTk5Mg0KDQoNCg0KT24gU3VuLCBBdWcgMjEsIDIwMTYgYXQgMTA6MTYgQU0sIERhbiBad2ls
bGluZ2VyIDx6d2lsbGluZ0Bhei10ZWMuY29tPG1haWx0bzp6d2lsbGluZ0Bhei10ZWMuY29tPj4g
d3JvdGU6DQoNCkFsbA0KDQpJIGJlZ2FuIHJlYWRpbmcgdGhpcyB0b3BpYydzIGVtYWlscyB3aGVu
IHRoZXkgZmlyc3QgYXBwZWFyZWQsIGFuZCB0aGVuIGZlbGwgYmVoaW5kLg0KU29ycnkgZm9yIG15
IGxhdGUgY29tbWVudHMuDQoNCkkgYWRtaXJlIHlvdXIgZWZmb3J0cy4NClRoZXkgbWF5IGJlIHNv
bWV3aGF0IHJlbGF0ZWQgdG8gd2hhdCBJIGhhdmUgZG9uZSBpbiB0aGUgcGFzdC4NCk15IGV4cGVy
aWVuY2UgaXMgYXMgZm9sbG93czoNCg0KKDEpIENSQyBTTVRGIChTdGFuZGFyZCBNYXRoZW1hdGlj
YWwgVGFibGVzIGFuZCBGb3JtdWxhKQ0KDQpJIHB1dCB0aGUgfjcwMCBpbnRlZ3JhbHMgaW4gQ1JD
J3MgU01URiBpbnRvIGEgZm9ybWF0IGZyb20gd2hpY2gNCihBKSB0aGV5IGNvdWxkIGJlIHR5cGVz
ZXQgaW4gTGFUZVgNCihCKSB0aGV5IGNvdWxkIGJlIGNvbnZlcnRlZCBpbnRvIE1hdGhlbWF0aWNh
ICh3aGljaCBlaXRoZXIgZGlkIGEgc3ltYm9saWMgb3IgbnVtZXJpYyBjb21wdXRhdGlvbikgLSBh
bmQgdGhpcyB3YXMgZG9uZQ0KDQpJIGxldCBSaWNoYXJkIEZhdGVtYW4gdXNlIHRoZW0gZm9yIGhp
cyBleHBlcmltZW50cy4NCg0KDQooMikgRWxzZXZpZXIncyBHUiAoR3JhZHNodGV5biBhbmQgUnl6
aGlrJ3MgIlRhYmxlIG9mIEludGVncmFscywgU2VyaWVzLCBhbmQgUHJvZHVjdHMiKQ0KDQpJIHB1
dCB0aGUgfjEyLDAwMCAoaWYgbXkgbWVtb3J5IGlzIGNvcnJlY3QpIGludGVncmFscyBpbnRvIGEg
Zm9ybWF0IGZyb20gd2hpY2gNCihBKSB0aGV5IGNvdWxkIGJlIGJlYXV0aWZ1bGx5IHR5cGVzZXQg
aW4gTGFUZVgNCihCKSB0aGV5IGNvdWxkIGJlIGNvbnZlcnRlZCBpbnRvIE1hdGhlbWF0aWNhIC0g
YW5kIHRoaXMgd2FzIE5PVCBkb25lDQpFbmNsb3NlZCBpcyBhIFBERiBmaWxlIGRlc2NyaWJpbmcg
dGhlIHdvcmsgYW5kIHRoZSByZXN1bHRpbmcgZm9ybWF0Lg0KDQoNCkEgZGlmZmVyZW50IGZvcm1h
dCB3YXMgdXNlZCBmb3IgU01URiBhbmQgR1IuDQpXaGlsZSB0aGUgU01URiB3b3JrIHdhcyBub3Qg
dG9vIGFyZHVvdXMsIHRoZSBHUiB3b3JrIHdhcyBtb3JlIHRoYW4gSSBoYWQgYW50aWNpcGF0ZWQu
DQpUaGUgaW5wdXQgKHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIEdSKSBoYWQgbGl0dGxlIHN5bnRh
Y3RpYyBzdHJ1Y3R1cmUgYW5kIGl0IHRvb2sgbXVjaCBlZmZvcnQgdG8gZ2V0IGl0IGludG8gc2hh
cGUuDQpJIHVzZWQgKG1hbnkgZGlmZmVyZW50KSByZWd1bGFyIGV4cHJlc3Npb25zIChpbiBwZXJs
KSB0byB0cmFuc2xhdGUgdGhlIGJ1bGsgb2YgdGhlIGJvb2ssIGFuZCB0aGVuIGxvdHMgb2YgaGFu
ZCB0dW5pbmcuDQoNCldoaWxlIEkgdGhpbmsgeW91IGFyZSB3ZWxsIGJleW9uZCBteSB0aGlua2lu
ZyBvbiB0aGVzZSB0b3BpY3MsIHBsZWFzZSBsZXQgbWUga25vdyBpZiBJIGNhbiBoZWxwLg0KSSBh
bSBmcmllbmRzIHdpdGggSG93YXJkIENvaGwgYXQgTklTVCwgd2hvIG1heSBiZSB0aGUgY3VycmVu
dCBsZWFkIGZvciBETE1GICgiRGlnaXRhbCBMaWJyYXJ5IG9mIE1hdGhlbWF0aWNhbCBGdW5jdGlv
bnMiIGF0IGRsbWYubmlzdC5nb3Y8aHR0cDovL2RsbWYubmlzdC5nb3Y+KS4NCkxldCBtZSBrbm93
IGlmIHlvdSBuZWVkIGFuIGludHJvZHVjdGlvbi4NCg0KDQoNCkRhbiBad2lsbGluZ2VyDQp6d2ls
bGluZ0Bhei10ZWMuY29tPG1haWx0bzp6d2lsbGluZ0Bhei10ZWMuY29tPg0KNjE3LTM4OC0yMzgy
PHRlbDo2MTctMzg4LTIzODI+DQoNCk9uIDgvMjAvMjAxNiAxMTozMCBQTSwgVGltIERhbHkgd3Jv
dGU6DQpUaGUgZ2FtZSBpcyB0byBkZWZpbmUgbGF0ZXggbWFya3VwIHRoYXQgaXMgdHJhbnNwYXJl
bnQgdG8gdGhlIHN5bnRheA0KYnV0IGFkZHMgc2VtYW50aWNzIGZvciBwb3N0IHByb2Nlc3Npbmcu
DQoNClNvbWUgc2ltcGxlIHRlc3RzIHNob3cgdGhhdCB0aGlzIHdvcmtzLiBTdXBwb3NlIHNlbGF0
ZXguc3R5IGNvbnRhaW5zOg0KDQpcbmV3Y29tbWFuZHtcSU5UfVsxXXsjMX0NClxuZXdjb21tYW5k
e1xWQVJJQUJMRX1bMV17IzF9DQpcbmV3Y29tbWFuZHtcUE9MWX1bMV17IzF9DQpcbmV3Y29tbWFu
ZHtcSU5URUd9WzJde1xpbnR7IzF9fQ0KDQpUaGlzIGRlZmluZXMgNCBuZXcgbGF0ZXggbWFya3Vw
cy4gVGhlIG51bWJlciBpbiB0aGUgc3F1YXJlIGJyYWNrZXRzDQpkZWZpbmVzIHRoZSBudW1iZXIg
b2YgZXhwZWN0ZWQgYXJndW1lbnRzLiBUaGUgYnJhY2UgYXJndW1lbnQNCmRlbGltaXRlcyB0aGUg
Y2hhcmFjdGVycyB0aGF0IHdpbGwgb2NjdXIgZHVyaW5nIGV4cGFuc2lvbiB3aXRoIHRoZSAjMQ0K
cmVwbGFjZWQgYnkgdGhlIGZpcnN0IGFyZ3VtZW50Lg0KDQooQXMgYW4gYXNpZGUsIElOVCwgVkFS
SUFCTEUsIGFuZCBQT0xZIGp1c3QgaGFwcGVuIHRvIGJlIHZhbGlkDQpBeGlvbSBkb21haW4gYWJi
cmV2aWF0aW9ucywgaGVuY2UgdGhlIG5hbWUgY2hvaWNlLiBUaGlzIGNob2ljZQ0Kb2YgbmFtZXMg
Z2l2ZXMgZ3JvdW5kaW5nIHRvIHRoZSBzZW1hbnRpY3MuKQ0KDQpOb3RpY2UgdGhhdCBcSU5URUcg
dGFrZXMgdHdvIGFyZ3VtZW50cyBidXQgd2lsbCBkaXNwbGF5IG9ubHkgb25lLg0KVGhpcyBhbGxv
d3MgdGhlIHZhcmlhYmxlIG9mIGludGVncmF0aW9uIHRvIGJlIHBhc3NlZCBpbiB0aGUgc2VtYW50
aWNzDQp3aXRob3V0IHNob3dpbmcgdXAgaW4gdGhlIG91dHB1dC4gVGhpcyBhbGxvd3MgdGhlIHNl
bWFudGljcyB0byBjYXJyeQ0KYWRkaXRpb25hbCwgbm9uLWRpc3BsYXkgaW5mb3JtYXRpb24gbmVl
ZGVkIGJ5IHRoZSBDQVMuDQoNClNvbWUgZXhhbXBsZXMgZm9sbG93Lg0KDQpBbiBpbnRlZ2VyIDMg
Y2FuIGJlIHdyYXBwZWQgYXMgXElOVHszfSBidXQgd2lsbCBzdGlsbCBkaXNwbGF5IGFzIDMuDQoN
CkEgdmFyaWFibGUgeCBjYW4gYmUgd3JhcHBlZCBhcyBcVkFSSUFCTEV7eH0sIGRpc3BsYXllZCBh
cyB4Lg0KDQokXFBPTFl7XElOVHszfVxWQVJJQUJMRXt4fX0kIHdpbGwgZGlzcGxheSBhcyAzKngN
Cg0KJFxJTlRFR3tcUE9MWXtcSU5UezN9XFZBUklBQkxFe3h9fmR4fX17eH0gd2lsbCBiZSB0aGUg
c2FtZSByZXN1bHQNCmFzICRcaW50ezN4fmR4fSQsIHRoYXQgaXMsIGFuDQogIChpbnRlZ3JhbHNp
Z24pIDN4IGR4DQpidXQgbm90aWNlIHRoYXQgdGhlIHZhcmlhYmxlIG9mIGludGVncmF0aW9uIGlz
IGluIHRoZSBzZW1hbnRpYyBtYXJrdXAuDQoNClRoZXNlIHRyaXZpYWwgbWFjcm9zIGNhbiBiZSBt
YWRlIGxlc3MgdmVyYm9zZSBhbmQgY2VydGFpbmx5DQptb3JlIGNsZXZlciBidXQgdGhhdCdzIG5v
dCB0aGUgcG9pbnQgYmVpbmcgbWFkZSBoZXJlLg0KDQpBICd3ZWF2ZXInIHByb2dyYW0gd291bGQg
c2VlIHRoZSBpbnRlZ3JhdGlvbiBleHByZXNzaW9uIGFzDQoNCiRcSU5URUd7XFBPTFl7XElOVHsz
fVxWQVJJQUJMRXt4fX5keH19e3h9JA0KDQp3aXRoIGFsbCBvZiB0aGUgc2VtYW50aWMgdGFncy4g
VGhlIHdlYXZlcidzIGpvYiBpcyB0byByZXdyaXRlIHRoaXMNCmV4cHJlc3Npb24gaW50byBhbiBp
bnB1dGZvcm0gZm9yIHRoZSBDQVMuIEluIEF4aW9tIHRoYXQgd291bGQgYmUNCg0KaW50ZWdyYXRl
KDMqeCx4KQ0KDQpUaGUgc2VtYW50aWNzIG1hcmt1cCBtYWtlcyB0aGUgZGlzcGxheSBwcmV0dHkg
YW5kIHRoZSBzZW1hbnRpYw0KcGFyc2luZyBwb3NzaWJsZS4gRGVwZW5kaW5nIG9uIHRoZSBzeXN0
ZW0sIG1vcmUgb3IgbGVzcyBwYXJzaW5nDQptYXJrdXAgY2FuIGV4aXN0LiBBeGlvbSwgZm9yIGV4
YW1wbGUsIHdvdWxkIG5vdCBuZWVkIHRoZSBcSU5UIG9yDQpcVkFSSUFCTEUgdG8gZ2V0IGEgY29y
cmVjdCBwYXJzZSBzbyB0aGUgZXhwcmVzc2lvbiBjb3VsZCBiZQ0KJFxJTlRFR3szeH5keH17eH0k
DQoNClRoaXMgdmFsaWRhdGVzIHRoZSBmdW5kYW1lbnRhbCBpZGVhLg0KDQpUaGUgbmV4dCBzdGVw
IGlzIHRvIHdyaXRlIGEgc2ltcGxlIHdlYXZlciBwcm9ncmFtLiBUaGUgY2xldmVyIHBhdGgNCndv
dWxkIGJlIHRvIGVtYmVkIGEgZGVjbGFyYXRpdmUgZm9ybSBvZiB0aGUgcGFyc2VyIHN5bnRheCAo
Qk5GPykNCmFzIGNvbW1lbnRzIGluIHNlbGF0ZXguc3R5LiBUaGF0IHdheSB0aGUgbGF0ZXggc2Vt
YW50aWNzIGFuZCB0aGUNCndlYXZlciBzeW50YXggYXJlIGtlcHQgaW4gc3luYy4NCg0KV2VhdmVy
IHdvdWxkIHJlYWQgdGhlIEJORiBjb21tZW50cyBmcm9tIHNlbGF0ZXguc3R5IGFuZA0KdGhlIGZv
cm11bGEgd2l0aCBzZW1hbnRpYyBtYXJrdXAgYXMgaW5wdXQgYW5kIHBhcnNlIHRoZSBzZW1hbnRp
Yw0KbWFya3VwIGludG8gaW5wdXRmb3Jtcy4gKFdpc2ggSSB0aG91Z2h0IG9mIHRoaXMgaG9tZXdv
cmsgcHJvYmxlbQ0Kd2hlbiBJIHRhdWdodCB0aGUgY29tcGlsZXIgY291cnNlIDotKSApLg0KDQpO
b3RlIHRoYXQsIGRlcGVuZGluZyBvbiB0aGUgQk5GLCB3ZWF2ZXIgY291bGQgYmUgdXNlZCB0bw0K
Z2VuZXJhdGUgb3V0cHV0IGZvciBNYXhpbWEncyB0cmVlLWJhc2VkIHJlcHJlc2VudGF0aW9uLg0K
DQpBbiBhbHRlcm5hdGl2ZSBuZXh0IHN0ZXAgaXMgdG8gbG9vayBhdCBhIENSQyBib29rLCByZS1j
cmVhdGUgdGhlDQpzeW50YWN0aWMgbGF0ZXggYW5kIHRoZW4gY3JlYXRlIHRoZSBzZWxhdGV4LnN0
eSBlbnRyaWVzIG5lY2Vzc2FyeQ0KdG8gZ2VuZXJhdGUgd2VhdmVyIGlucHV0Lg0KDQpJbmZpbml0
ZXNpbWFsIHByb2dyZXNzLCBidXQgcHJvZ3Jlc3Mgbm9uLXRoZS1sZXNzLg0KDQpUaW0NCg0KDQpP
biBGcmksIEF1ZyAxOSwgMjAxNiBhdCAxMjo0NSBBTSwgVGltIERhbHkgPGF4aW9tY2FzQGdtYWls
LmNvbTxtYWlsdG86YXhpb21jYXNAZ21haWwuY29tPj4gd3JvdGU6DQoNCk9uZSBvZiB0aGUgQXhp
b20gcHJvamVjdCBnb2FscyBpcyB0byBkZXZlbG9wIGEgIkNvbXB1dGVyIEFsZ2VicmEgVGVzdA0K
U3VpdGUiIChDQVRTKS4gQWxiZXJ0IFJpY2ggaGFzIGRvbmUgdGhpcyB3aXRoIFJVQkkgYW5kIGlu
dGVncmF0aW9uLiBUaGF0DQp3b3JrIGlzIGFscmVhZHkgcGFydGlhbGx5IGluIHRoZSB0ZXN0IHN1
aXRlIGFuZCB3b3JrIGhhcyBiZWVuIGRvbmUgb24gdGhlDQpwYXR0ZXJuIG1hdGNoaW5nLiBMYXJn
ZSBkYXRhc2V0cyAobGlrZSBLYW1rZSkgYXJlIGFsd2F5cyB3ZWxjb21lLiBTb21lLA0Kc3VjaCBh
cyBTY2hhdW1zIHdlcmUgaGFuZC1kZXZlbG9wZWQuIFRoaXMgaXMgdGVkaW91cy4NCg0KQXMgQXhp
b20gZGV2ZWxvcHMgbW9yZSBleHBsYW5hdGlvbnMgYW5kIGRvY3VtZW50YXRpb24gaXQgd291bGQg
YmUNCnVzZWZ1bCB0byBleGVjdXRlIHRoZSBmb3JtdWxhcyBkaXJlY3RseSBzbyB0aGVyZSBpcyBh
IGxvY2FsIGluY2VudGl2ZSB0byBiZQ0KY2xlYXIgYWJvdXQgc2VtYW50aWNzLg0KDQpJbiB0aGUg
bG9uZyB0ZXJtIHRoZSBob3BlIGlzIHRoYXQgd2UgY2FuIGp1c3QgZ3JhYiBmb3JtdWxhcyBkaXJl
Y3RseSBmcm9tDQp0aGVpciBzb3VyY2VzIChhbGEgbGl0ZXJhdGUgcHJvZ3JhbW1pbmcpLiBZb3Vy
IHdvcmsgbWFrZXMgaXQgcGxhaW4gdGhhdCByYXcNCmxhdGV4IGRvZXMgbm90IGNhcnJ5IHN1ZmZp
Y2llbnQgc2VtYW50aWNzLiBUaGVyZSBpcyBhIGdsb2JhbCBxdWVzdGlvbiBvZg0KaG93IHRvIG1h
a2UgdGhpcyB3b3JrLiBVbmZvcnR1bmF0ZWx5IGEgZ2VuZXJhbCBjcm9zcy1wbGF0Zm9ybSBzb2x1
dGlvbg0KaXMgZGlmZmljdWx0IChjaXRlIERld2FyL0RhdmVucG9ydC9ldCBhbC4gZm9yIE9wZW5N
YXRoKS4NCg0KU2luY2UgQXhpb20gaXMgbGl0ZXJhdGUgYW5kIGV4dHJhY3RpbmcgZm9ybXVsYXMg
aXMgdHJpdmlhbCBpdCBzZWVtcyB0aGF0DQpsaXRlcmF0ZSBtYXJrdXAgaXMgYSBuYXR1cmFsIGdv
YWwuIFNpbmNlIEF4aW9tIHVzZXMgYWJzdHJhY3QgYWxnZWJyYQ0KYXMgYSBzY2FmZm9sZCB0aGUg
dHlwZSB0b3dlciBhbHJlYWR5IGhhcyBhIGxvdCBvZiBheGlvbWF0aWMgc2VtYW50aWNzLg0KVGhl
IG5hdHVyYWwgam9pbiBvZiBsaXRlcmF0ZSBsYXRleCBhbmQgYWJzdHJhY3QgYWxnZWJyYSBpcyBj
bGVhcmx5DQpzZW1hbnRpYyBtYXJrdXAsIGFrYSBzZWxhdGV4Lg0KDQo9PT09PT09PT09PQ0KQ29u
c2lkZXJhdGlvbiAxMDogc2VtYW50aWMtPmlucHV0Zm9ybSB0cmFuc2xhdGlvbiAod2VhdmVyPyA6
LSkgKQ0KDQo+eCBhbmQgbm90IHggICBoYXMgbm8gcGFydGljdWxhciBtZWFuaW5nLCAgYnV0IGlm
IHggaXMgZXhwbGljaXRseSB0cnVlIG9yIGZhbHNlLA0KPk1heGltYSBzaW1wbGlmaWVzIGl0IHRv
IGZhbHNlLiAgSWYgU0VBTEFURVggaGFzIGEgc2VtYW50aWNzIC0tIGFyZSB5b3UNCj5kZWZpbmlu
ZyB5ZXQgYW5vdGhlciBDQVM/ICBPciBwZXJoYXBzIHlvdSBzaG91bGQgbGluayBpdCAxMDAlIHRv
IEF4aW9tJ3MNCj5zZW1hbnRpY3MsIHdoaWNoIHlvdSBwcmVzdW1hYmx5IGtub3cgYWJvdXQgYW5k
IGNhbiBtb2RpZnkuDQoNCkkgYW0gTk9UIGRlZmluaW5nIGFub3RoZXIgQ0FTLiBUaGUgZ29hbCBp
cyBhICJ3ZWxsLWRlc2lnbmVkIGhhY2siIHVzaW5nDQp1bml2ZXJzYWxseSB1bmRlcnN0b29kIGxh
dGV4LCBhIGxhdGV4IHBhY2thZ2UsIGFuZCBhIHRyYW5zbGF0aW9uIHByb2dyYW0uDQoNClRoZSBz
ZWxhdGV4IGlkZWEgaXMgb25seSBwYXJ0aWFsbHkgQXhpb20gc3BlY2lmaWMuIFxJTlQsIGZvciBp
bnN0YW5jZSwgc2VlbXMNCnByZXR0eSBnZW5lcmljLiBIb3dldmVyLCBpZiB0aGUgaWRlYSBpcyB0
byByZWFkIGZvcm11bGFzIGFuZCBkaXNhbWJpZ3VhdGUNCmE9YiAoYm9vbGVhbikgdnMgYT1iIChl
cXVhdGlvbikgdGhlbiB0aGUgbWFya3VwIG5lZWRzIHRvIGJlIGdyb3VuZGVkDQp0byBoYXZlIG1l
YW5pbmcuIEF4aW9tJ3MgZG9tYWlucyAoQk9PTEVBTikgYW5kIChFUSkgYXMgdGhlIGdyb3VuZA0K
DQpcQk9PTEVBTihhPWIpDQpcRVEoYT1iKQ0KDQphcmUgdW5hbWJpZ3VvdXMgcmVsYXRpdmUgdG8g
ZWFjaCBvdGhlciBpbiBBeGlvbS4gSSBkb24ndCBrbm93IGVub3VnaA0KYWJvdXQgTWF4aW1hIHRv
IHVuZGVyc3RhbmQgaG93IHRoaXMgbWlnaHQgdHJhbnNsYXRlLg0KDQpUaGUgZXh0cmFjdGVkIGZv
cm11bGFzIHdpdGggdGhlIGRlY29yYXRlZCBzZW1hbnRpY3Mgc3RpbGwgbmVlZHMgYQ0Kc2VtYW50
aWNzLT5pbnB1dGZvcm0gKHdlYXZlcikgcHJlLXByb2Nlc3NvciB3aGljaCBjb3VsZCBiZSBNYXhp
bWENCnNwZWNpZmljLiBUaGlzIHdvdWxkIGxlYWQgdG8gZGViYXRlIGFib3V0IHdoYXQgImVxdWFs
aXR5IiBtZWFucywgb2YgY291cnNlLg0KDQpBeGlvbSBoYXMgdHJpZWQgdG8gY3JlYXRlIGEgZmly
c3Qtb3JkZXIgInJvc2V0dGEgc3RvbmUiIHRvIHRyYW5zbGF0ZSBiZXR3ZWVuDQpzeXN0ZW1zIChy
b3NldHRhLnBkZiBbMV0pIGJ1dCBpdCBpcyB0b28gc2hhbGxvdyB0byBjb25zaWRlciBwcm92aWRp
bmcNCmNyb3NzLXBsYXRmb3JtIHNlbWFudGljcy4NCg0KPT09PT09PT09PT09PQ0KQ29uc2lkZXJh
dGlvbiAxMTogXHNjb3BlIGluIHNlbGF0ZXgNCg0KPkFzIGZhciBhcyByZWNvcmRpbmcgc3R1ZmYg
aW4gRExNRiAtLSB0aGVyZSBhcmUgcHJlc3VtYWJseSBzY29wZSBpc3N1ZXMNCj4oImluIHRoaXMg
Y2hhcHRlciBuLG0gYXJlIG5hdHVyYWwgbnVtYmVycy4uLi4iKSAgYW5kIG1heWJlIGV2ZW4gYSBu
ZWVkDQo+dG8gbWFrZSB2YWx1ZSBhc3NpZ25tZW50cy4NCj5JIHRoaW5rIHlvdSBuZWVkIHRvIG1v
ZGVsIHRoZXNlIGluIFNFQUxBVEVYIHRvby4NCg0KKFNlZSBDb25zaWRlcmF0aW9uIDYpDQoNCkNs
ZWFybHkgdGhlcmUgYXJlIHNjb3BpbmcgaXNzdWVzLiBNeSBjdXJyZW50IHRoaW5raW5nIGlzIHRv
IGNyZWF0ZSBhDQpcc2NvcGUgbWFya3VwIHRoYXQgd291bGQgbWFuYWdlIHRoZSBlbnZpcm9ubWVu
dChzKS4gVGhpcyBpcyBub3QNCmEgbmV3IGlzc3VlIChzZWUgIkxpc3AgaW4gU21hbGwgUGllY2Vz
IiBbMF0pDQoNClRoZXJlIHNlZW0gdG8gYmUgdGhyZWUgY29uY2VybnMuDQoNCkZpcnN0IGlzIHRo
ZSBzY29wZSBuYW1lLCB3aXRoIHNvbWV0aGluZyBsaWtlICdnbG9iYWwnIGFzIGEga2V5d29yZC4N
ClNlY29uZCBpcyB0aGUgImNsb3N1cmUgY2hhaW4iIG9mIG90aGVyIHNjb3Blcy4NClRoaXJkIGlz
IHRoZSBzeW1ib2wgYmVpbmcgc2NvcGVkLg0KDQpcc2NvcGV7bmFtZX17Y2hhaW59e3N5bWJvbH0N
Cg0KVGhlIHdlYXZlciBwcm9ncmFtIHdvdWxkIHdhbGsgdGhpcyBjaGFpbiB0byBjcmVhdGUgdGhl
IHByb3Blcg0KZmlsZSBzeW50YXggZm9yIHN5c3RlbSBpbnB1dC4NCg0KPT09PT09PT09PT09DQpD
b25zaWRlcmF0aW9uIDEyOiBTeXN0ZW0gc3BlY2lmaWMgY29tbWFuZHMgXGF4aW9tDQoNCkFsb25n
IHdpdGggdGhlIGZvcm11bGFzIGl0IGlzIGNsZWFyIHRoYXQgc29tZSBzeXN0ZW0gc3BlY2lmaWMN
CmlucHV0IG1heSBiZSByZXF1aXJlZCwgc3VjaCBhcyBsb2FkaW5nIGZpbGVzLCBjbGVhcmluZyB3
b3Jrc3BhY2VzLA0KZXRjLiBTb21lIG9mIHRoZXNlIG1heSBiZSBkb25lIGluIHRoZSB3ZWF2ZXIg
cHJvZ3JhbSwgc3VjaCBhcw0KYmV0d2VlbiBmb3JtdWxhcy4gT3RoZXJzIG1heSBuZWVkIHRvIGJl
IGFkZGVkIHRvIHRoZSBzZW1hbnRpY3MNCmJsb2NrLiBTbyBhIG1hcmt1cCB0aGF0IHByb3ZpZGVz
IHZlcmJhdGltIHF1b3RpbmcgcGVyIHN5c3RlbQ0KbWlnaHQgYmUgZGVmaW5lZCwgZS5nLg0KDQpc
YXhpb217KWNsZWFyIGFsbH0gICVjbGVhciB0aGUgd29ya3NwYWNlDQoNCndoaWNoIHdvdWxkIHNp
bXBseSBxdW90ZSBhbiBpbnB1dCBsaW5lLg0KDQo9PT09PT09PT09PT09PQ0KDQpOb3RlIHRoYXQg
c28gZmFyIGFsbCB0aGF0IGlzIGJlaW5nIHN1Z2dlc3RlZCBpcyB0cmFuc3BhcmVudCBmb3JtdWxh
DQptYXJrdXBzIHdoaWNoIGRvIG5vdCBpbXBhY3QgdGhlIHByZXNlbnRhdGlvbiwgc29tZSBzcGVj
aWFsIHRhZ3MNCihcc2NvcGUsIFxheGlvbSwuLi4pIGFuZCBhIHdlYXZlciBwcm9ncmFtLCBhbG9u
ZyB3aXRoIHRoZSBhYmlsaXR5IHRvDQpyZWFkIHRoZSBsYXRleCBhbmQgZXh0cmFjdCBuYW1lZCBm
b3JtdWxhcyAoYWthIGEgbGl0ZXJhdGUgcHJvZ3JhbSwNCndoaWNoIEF4aW9tIGFscmVhZHkgY2Fu
IGRvKS4NCg0KSXQgb3VnaHQgdG8gYmUgcG9zc2libGUgKGJ5IGRlc2lnbikgdG8gY3JlYXRlIGEg
c2VtYW50aWMgdmVyc2lvbiBvZg0KQ1JDIHRoYXQgYW55IHN5c3RlbSBjb3VsZCBpbXBvcnQsIGFz
c3VtaW5nIGEgInN1ZmZpY2llbnRseSBjbGV2ZXINCndlYXZlciIuDQoNCk9uIGEgbW9yZSBhbWJp
dGlvdXMgbm90ZSwgSSBhbSB0cnlpbmcgdG8gZmluZCBhIHdheSB0byBrZWVwIHRoZSBzZWxhdGV4
DQptYXJrdXAgImhpZGRlbiIgaW4gYSBwZGYgYW5kIHVzZSBpdCBhcyB0aGUgY2xpcGJvYXJkIHBh
c3RlIHdoZW4gdGhlDQpmb3JtdWxhIGlzIHNlbGVjdGVkLiBBbnlvbmUgd2l0aCBhIGNsdWUsIHBs
ZWFzZSBoZWxwLg0KDQo9PT09PT09PT09PT09PT0NCg0KWzBdIFF1ZWlubmVjLCBDaHJpc3RvcGhl
ciwgIkxpc3AgaW4gU21hbGwgUGllY2VzIiBJU0JOIDk3OC0wNTIxNTQ1NjYyDQooMjAwMykNCg0K
WzFdIFdlc3RlciwgTWljaGFlbCBKLiBhbmQgRGFseSwgVEltb3RoeSAiUm9zZXR0YSINCmh0dHA6
Ly9heGlvbS1kZXZlbG9wZXIub3JnL2F4aW9tLXdlYnNpdGUvcm9zZXR0YS5wZGYNCg0KDQoNCg0K
T24gVGh1LCBBdWcgMTgsIDIwMTYgYXQgNTozMCBQTSwgUmljaGFyZCBGYXRlbWFuIDxmYXRlbWFu
QGJlcmtlbGV5LmVkdTxtYWlsdG86ZmF0ZW1hbkBiZXJrZWxleS5lZHU+PiB3cm90ZToNCnRoYW5r
cyBmb3IgYWxsIHRoZSByZWZlcmVuY2VzIDopDQoNCkknbSBub3Qgc3VyZSBpZiBJJ20gZ29pbmcg
dG8gcmVwZWF0IGNvbW1lbnRzIEkgIG1hZGUgYWxyZWFkeSBzb21ld2hlcmUuDQpGaXJzdCwgIGhh
cyBEYW4gWndpbGxpbmdlciB3ZWlnaGVkIGluPyAgSSB0aGluayB0aGF0IGl0IHdvdWxkIGJlIHVz
ZWZ1bA0KdG8gc2VlIHdoYXQgaGUgaGFzIGRvbmUuDQoNCk5leHQsIHRoZXJlIGFyZSBhbWJpZ3Vp
dGllcyBhbW9uZyBDQVMgYW5kIGV2ZW4gd2l0aGluIGEgc2luZ2xlIENBUy4NCg0KRm9yIGV4YW1w
bGUsIGluIE1hY3N5bWEvIE1heGltYSAgdGhlcmUgaXMgZ2VuZXJhbGx5IG5vIHNlbWFudGljcw0K
YXNzb2NpYXRlZCB3aXRoICI9IiBvciAiPiIuICAgQnV0IGluIHNvbWUgY29udGV4dHMsIHRoZXJl
IGlzIHNvbWUgbWVhbmluZy4NCg0KeD4yKnkNCg0KaXMgYSB0cmVlIGV4cHJlc3Npb24uICBJdCBp
cyBub3QgYXNzb2NpYXRlZCB3aXRoIHggb3Igd2l0aCB5Lg0KDQphc3N1bWUoeD4yKnkpICAgZG9l
cyBtZWFuIHNvbWV0aGluZyAuLi4gaXQgcHV0cyBpbmZvIGluIGEgZGF0YWJhc2UuDQpTb21laG93
IGVuY29kaW5nIHRoZSBtZXRob2QgdG8gZXh0cmFjdCB0aGlzIGluZm9ybWF0aW9uIGludG8gU0VB
TEFURVgNCihTZUxhVGVYPykgaW4gYSBDQVMtaW5kZXBlbmRlbnQgd2F5IC0tIHRoYXQncyBxdWl0
ZSBhIHRhc2suICAgSW4NCnBhcnRpY3VsYXIsIGl0IHdvdWxkIHNlZW0gdG8gcmVxdWlyZSBhbiB1
bmRlcnN0YW5kaW5nIG9mIHdoYXQgYXNzdW1lKCkNCmRvZXMgaW4gTWF4aW1hLCBhbmQgd2hhdCBp
cygpIGRvZXMgYWxzby4NCg0KeCBhbmQgbm90IHggICBoYXMgbm8gcGFydGljdWxhciBtZWFuaW5n
LCAgYnV0IGlmIHggaXMgZXhwbGljaXRseSB0cnVlIG9yIGZhbHNlLA0KTWF4aW1hIHNpbXBsaWZp
ZXMgaXQgdG8gZmFsc2UuICBJZiBTRUFMQVRFWCBoYXMgYSBzZW1hbnRpY3MgLS0gYXJlIHlvdQ0K
ZGVmaW5pbmcgeWV0IGFub3RoZXIgQ0FTPyAgT3IgcGVyaGFwcyB5b3Ugc2hvdWxkIGxpbmsgaXQg
MTAwJSB0byBBeGlvbSdzDQpzZW1hbnRpY3MsIHdoaWNoIHlvdSBwcmVzdW1hYmx5IGtub3cgYWJv
dXQgYW5kIGNhbiBtb2RpZnkuDQoNCkFzIGZhciBhcyByZWNvcmRpbmcgc3R1ZmYgaW4gRExNRiAt
LSB0aGVyZSBhcmUgcHJlc3VtYWJseSBzY29wZSBpc3N1ZXMNCigiaW4gdGhpcyBjaGFwdGVyIG4s
bSBhcmUgbmF0dXJhbCBudW1iZXJzLi4uLiIpICBhbmQgbWF5YmUgZXZlbiBhIG5lZWQNCnRvIG1h
a2UgdmFsdWUgYXNzaWdubWVudHMuDQpJIHRoaW5rIHlvdSBuZWVkIHRvIG1vZGVsIHRoZXNlIGlu
IFNFQUxBVEVYIHRvby4NCg0KSnVzdCBtdXNpbmcgYWJvdXQgd2hlcmUgeW91IGFyZSBoZWFkaW5n
Lg0KDQpSSkYNCg0KDQoNCg0KT24gOC8xOC8yMDE2IDExOjQ1IEFNLCBUaW0gRGFseSB3cm90ZToN
CkZhdGVtYW4gWzBdIHJhaXNlZCBhIHNldCBvZiBpc3N1ZXMgd2l0aCB0aGUgT3Blbk1hdGgNCmFw
cHJvYWNoLiBXZSBhcmUgbm90IHRyeWluZyB0byBiZSBjcm9zcy1wbGF0Zm9ybSBpbiB0aGlzDQpl
ZmZvcnQuIEF4aW9tIGRvZXMgcHJvdmlkZSBhbiBhbGdlYnJhaWMgc2NhZmZvbGQgc28gaXQgaXMN
CnBvc3NpYmxlIHRoYXQgdGhlIHNlbGF0ZXggbWFya3VwIG1pZ2h0IGJlIHVzZWZ1bCBlbHNld2hl
cmUNCmJ1dCB0aGF0IGlzIG5vdCBhIGRlc2lnbiBjcml0ZXJpb24uDQoNCkZhdGVtYW5bMV0gYWxz
byByYWlzZXMgc29tZSBkaWZmaWN1bHQgY3Jvc3MtcGxhdGZvcm0gaXNzdWVzDQp0aGF0IGFyZSBu
b3QgcGFydCBvZiB0aGlzIGRlc2lnbi4NCg0KRmF0ZW1hblsyXSBzaG93cyB0aGF0IHBhcnNpbmcg
dGV4IHdpdGggb25seSBzeW50YWN0aWMgbWFya3VwDQpzdWNjZWVkZWQgb24gb25seSA0MyUgb2Yg
MTA3NDAgaW5wdXRzLiBJdCBvdWdodCB0byBiZSBwb3NpYmxlDQp0byBpbmNyZWFzZSB0aGlzIHBl
cmNlbnRhZ2UgZ2l2ZW4gcHJvcGVyIHNlbWFudGljIG1hcmt1cC4NCihQZXJoYXBzIHRoZXJlIHNo
b3VsZCBiZSBhIGNvbXBldGl0aW9uIHNpbWlsYXIgdG8gdGhlIGRlZXANCmxlYXJuaW5nIGdyb3Vw
cz8gUGhEcyBoYXZlIGJlZW4gYXdhcmRlZCBvbiBpbmNyZW1lbnRhbA0KaW1wcm92ZW1lbnRzIG9m
IHRoZSBwZXJjZW50YWdlKQ0KDQpUaGlzIGlzIGEgZGVzaWduLWJ5LWNyYXdsIGFwcHJvYWNoIHRv
IHRoZSBzZW1hbnRpYyBtYXJrdXANCmlkZWEuIFRoZSBob3BlIGlzIHRvIGdldCBzb21ldGhpbmcg
cnVubmluZyB0aGlzIHdlZWsgdGhhdA0KJ3dvcmtzJyBidXQgZ2l2aW5nIGR1ZSBjb25zaWRlcmF0
aW9uIHRvIGdsb2JhbCBhbmQgbG9uZy10ZXJtDQppc3N1ZXMuIEEgZmlyc3QgZ2xhbmNlIGF0IENS
Qy9OSVNUIHJhaXNlcyBtb3JlIHF1ZXN0aW9ucw0KdGhhbiBhbnN3ZXJzIGFzIGlzIHVzdWFsIHdp
dGggYW55IHJlc2VhcmNoLg0KDQpJdCBJUyBhIGRlc2lnbiBnb2FsIHRvIHN1cHBvcnQgYSBDb21w
dXRlciBBbGdlYnJhIFRlc3QgU3VpdGUNCihodHRwOi8vYXhpb20tZGV2ZWxvcGVyLm9yZy9heGlv
bS13ZWJzaXRlL0NBVFMpLiBJdCBpcyB2ZXJ5DQp0ZWRpb3VzIHRvIGhhbmQgY29uc3RydWN0IHRl
c3Qgc3VpdGVzLiBJdCB3aWxsIGJlIGV2ZW4gbW9yZQ0KdGVkaW91cyB0byBjb25zdHJ1Y3QgdGhl
bSAic2Vjb25kLWxldmVsIiBieSBkb2luZyBzZW1hbnRpYw0KbWFya3VwIGFuZCB0aGVuIHRyeWlu
ZyB0byB1c2UgdGhlbSBhcyBpbnB1dCwgYnV0IHRoZSBob3BlIGlzDQp0aGF0IGV2ZW50dWFsbHkg
dGhlIENSQy9OSVNUL0cmUiwgZXRjIHdpbGwgZXZlbnR1YWxseSBiZQ0KcHVibGlzaGVkIHdpdGgg
c2VtYW50aWNzIHNvIGNvbXB1dGF0aW9uYWwgbWF0aGVtYXRpY3MgY2FuDQpzdG9wIHdvcmtpbmcg
ZnJvbSBzeW50YXguDQoNCj09PT09PT09PT09DQpDb25zaWRlcmF0aW9uIDQ6IEkvTyB0cmFuc3Bh
cmVuY3kNCg0KQXNzdW1lIGZvciB0aGUgbW9tZW50IHRoYXQgd2UgdGFrZSBhIGxhdGV4IGZpbGUg
Y29udGFpbmluZw0Kb25seSBmb3JtdWxhcy4gV2Ugd291bGQgbGlrZSB0byBiZSBhYmxlIHRvIHJl
YWQgdGhpcyBmaWxlIHNvDQppdCBoYXMgY29tcHV0YXRpb25hbCBtYXRoZW1hdGljcyAoQ00pIHNl
bWFudGljcy4NCg0KSXQgaXMgY2xlYXIgdGhhdCB0aGVyZSBuZWVkcyB0byBiZSBzZW1hbnRpYyB0
YWdzIHRoYXQgY2FycnkgdGhlDQppbmZvcm1hdGlvbiBidXQgdGhlc2UgdGFncyBoYXZlIHRvIGJl
IGNhcmVmdWxseSBkZXNpZ25lZCBOT1QNCnRvIGNoYW5nZSB0aGUgc3ludGFjdGljIGRpc3BsYXku
IFRoZXkgbWF5LCBhcyBub3RlZCBiZWZvcmUsDQpyZXF1aXJlIG11bHRpcGxlIHNlbWFudGljIHZl
cnNpb25zIGZvciBhIHNpbmdsZSBzeW50YXguDQoNCkl0IGlzIGFsc28gY2xlYXIgdGhhdCB3ZSB3
b3VsZCBsaWtlIHRvIGJlIGFibGUgdG8gb3V0cHV0IGZvcm11bGFzDQp3aXRoIENNIHNlbWFudGlj
cyB3aGVyZSBjdXJyZW50bHkgd2Ugb25seSBvdXRwdXQgc3ludGF4Lg0KDQo9PT09PT09PT09PQ0K
Q29uc2lkZXJhdGlvbiA1OiBJL08gaXNvbW9ycGhpc20NCg0KQW4gaW1wb3J0YW50IHByb3BlcnR5
IG9mIHNlbGF0ZXggaXMgYW4gaXNvbW9ycGhpc20gd2l0aA0KaW5wdXQvb3V0cHV0LiBBeGlvbSBh
bGxvd3Mgb3V0cHV0IGZvcm1zIHRvIGJlIGRlZmluZWQgZm9yIGENCnZhcmlldHkgb2YgdGFyZ2V0
cyBzbyB0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBwcm9ibGVtLiBGb3INCmlucHV0LCBob3dl
dmVyLCB0aGlzIG1lYW5zIHRoYXQgdGhlIHJlYWRlciBoYXMgdG8ga25vdyBob3cNCnRvIGV4cGFu
ZCBcSU5UezN9IGludG8gdGhlIGNvcnJlY3QgZG9tYWluLiBUaGlzIGNvdWxkIGJlIGRvbmUNCndp
dGggYSBzdGFuZC1hbG9uZSBwcmUtcHJvY2Vzc29yIGZyb20gc2VsYXRleC0+aW5wdXRmb3JtLg0K
DQpJdCBzaG91bGQgYmUgcG9zc2libGUgdG8gcmVhZC10aGVuLXdyaXRlIGFuIHNlbGF0ZXggZm9y
bXVsYSwNCm9yIHdyaXRlLXRoZW4tcmVhZCBhbiBzZWxhdGV4IGZvcm11bGEgd2l0aCBpZGVudGlj
YWwgc2VtYW50aWNzLg0KDQpUaGF0IG1pZ2h0IG5vdCBtZWFuIHRoYXQgdGhlIEkvTyBpcyBpZGVu
dGljYWwgdGhvdWdoIGR1ZSB0bw0KdGhpbmdzIGxpa2UgdmFyaWFibGUgb3JkZXJpbmcsIGV0Yy4N
Cg0KPT09PT09PT09PT0NCkNvbnNpZGVyYXRpb24gNjogTGF0ZXggc2VtYW50aWMgbWFjcm9zDQoN
ClNlbWFudGljIG1hcmt1cCB3b3VsZCBiZSBncmVhdGx5IHNpbXBsaWZpZWQgaWYgc2VsYXRleCBw
cm92aWRlZA0KYSBtZWNoYW5pc20gc2ltaWxhciB0byBBeGlvbSdzIGFiaWxpdHkgdG8gZGVmaW5l
IHR5cGVzICJvbiB0aGUgZmx5Ig0KdXNpbmcgZWl0aGVyIGFzc2lnbm1lbnQNCg0KICAgVFlQOj1G
UkFDKFBPTFkoSU5UKSkNCg0Kb3IgbWFjcm8gZm9ybQ0KDQogICBUWVAgPT0+IEZSQUMoUE9MWShJ
TlQpKQ0KDQpMYXRleCBpcyBjYXBhYmxlIG9mIGRvaW5nIHRoaXMgYW5kIHNlbGF0ZXggc2hvdWxk
IHByb2JhYmx5IGluY2x1ZGUNCmEgc2V0IG9mIHByZS1kZWZpbmVkIGNvbW1vbiBtYXJrdXBzLCBz
dWNoIGFzDQoNCiAgXEZSSU5UID09PiBcRlJBQ1xJTlQNCg0KPT09PT09PT09PT0NCkNvbnNpZGVy
YXRpb24gNzogc2VsYXRleCBcYmVnaW57c2VtYW50aWN9IGVudmlyb25tZW50Pw0KDQpDdXJyZW50
bHkgQXhpb20gcHJvdmlkZXMgYSAnY2h1bmsnIGVudmlyb25tZW50IHdoaWNoIHN1cnJvdW5kcw0K
c291cmNlIGNvZGUuIFRoZSBjaHVua3MgYXJlIG5hbWVkIHNvIHRoZXkgY2FuIGJlIGV4dHJhY3Rl
ZA0KaW5kaXZpZHVhbGx5IG9yIGluIGdyb3Vwcw0KDQogICBcYmVnaW57Y2h1bmt9e2EgbmFtZSBm
b3IgdGhlIGNodW5rfQ0KICAgICAgYW55dGhpbmcNCiAgIFxlbmR7Y2h1bmt9DQoNCldlIGNvdWxk
IHByb3ZpZGUgYSBzaW1pbGFyIGVudmlyb25tZW50IGZvciBzZW1hbnRpY3Mgc3VjaCBhcw0KDQog
IFxiZWdpbntzZW1hbnRpY3N9e2EgbmFtZSBmb3IgdGhlIGJsb2NrfQ0KICBcZW5ke3NlbWFudGlj
c30NCg0Kd2hpY2ggd291bGQgcHJvdmlkZSBhIHdheSB0byBlbmNhcHN1bGF0ZSBtYXJrdXAgYW5k
IGFsc28gYWxsb3cNCmEgcGFydGljdWxhciBibG9jayB0byBiZSBleHRyYWN0ZWQgaW4gbGl0ZXJh
dGUgcHJvZ3JhbW1pbmcgc3R5bGUuDQoNCj09PT09PT09PT09DQpDb25zaWRlcmF0aW9uIDg6IExh
dGV4LXRpbWUgcHJvY2Vzc2luZw0KDQpBeGlvbSBjdXJyZW50bHkgY3JlYXRlcyBzcGVjaWZpYyBm
aWxlcyB1c2luZyBcd3JpdGUgdG8gY3JlYXRlDQppbnRlcm1lZGlhdGUgZmlsZXMgKGUuZy4gZm9y
IHRhYmxlcykuIFRoaXMgdGVjaG5pcXVlIGNhbiBiZSB1c2VkDQp0byBlbmhhbmNlIGxhdGV4LXRp
bWUgZGVidWdnaW5nICh3aGVyZSBkaWQgaXQgZmFpbD8pLg0KDQpJdCBjYW4gYmUgdXNlZCB0byBj
cmVhdGUgQXhpb20gZmlsZXMgd2hpY2ggcHJlLWNvbnN0cnVjdCBkb21haW5zDQpuZWVkZWQgd2hl
biB0aGUgaW5wdXQgZmlsZSB3aXRoIHNlbWFudGljIG1hcmt1cCBpcyByZWFkLg0KDQpUaGlzIHdv
dWxkIGhlbHAgYSBzdGFuZC1hbG9uZSBzZWxhdGV4LT5pbnB1dGZvcm0gcHJlcHJvY2Vzc29yLg0K
DQo9PT09PT09PT09PQ0KQ29uc2lkZXJhdGlvbiA5OiBEZXNpZ24gc2tldGNoZXMNCg0KSXQgaXMg
YWxsIHdlbGwtYW5kLWdvb2QgdG8gaGFuZC13YXZlIGF0IHRoaXMgaWRlYSBidXQgYSBsYXJnZQ0K
YW1vdW50IG9mIHRoaXMgbWFjaGluZXJ5IGFscmVhZHkgZXhpc3RzLg0KDQpJdCB3b3VsZCBzZWVt
IHVzZWZ1bCB0byBkZXZlbG9wIGFuIGluY3JlbWVudGFsIHRlc3Qgc3VpdGUgdGhhdA0Kc3RhcnRz
IHdpdGggInByaW1pdGl2ZSIgZG9tYWlucyAoZS5nLiBJTlQpLCBjcmVhdGluZyBzZWxhdGV4IEkv
Ty4NCg0KT25jZSB0aGVzZSBhcmUgaW4gcGxhY2Ugd2UgY291bGQgd29yayBvbiAidHlwZSB0b3dl
ciIgbWFya3VwDQpzdWNoIGFzIFxGUkFDXElOVCBvciBcUE9MWVxDT01QTEVYXEZMT0FULg0KDQpG
b2xsb3dpbmcgdGhhdCBtaWdodCBiZSBwcmUtZXhpc3RpbmcgbGF0ZXggZnVuY3Rpb25zIGxpa2Ug
XGludCwgXHN1bSwNClxjb3MsIGV0Yy4NCg0KVG8gdmFsaWRhdGUgdGhlc2UgaWRlYXMgQXhpb20g
d2lsbCBpbmNsdWRlIGFuIHNlbGF0ZXguc3R5IGZpbGUgYW5kDQpzb21lIHVuaXQgdGVzdHMgZmls
ZXMgb24gcHJpbWl0aXZlIGRvbWFpbiBtYXJrdXAuIFRoYXQgc2hvdWxkIGJlDQplbm91Z2ggdG8g
c3RhcnQgdGhlIGJpa2VzaGVkIGRpc2N1c3Npb25zLg0KDQpJZGVhcz8gQ29uc2lkZXJhdGlvbnM/
IFN1Z2dlc3Rpb25zPw0KDQpUaW0NCg0KWzBdIEZhdGVtYW4sIFJpY2hhcmQgSi4NCiJBIENyaXRp
cXVlIG9mIE9wZW5NYXRoIGFuZCBUaG91Z2h0cyBvbg0KRW5jb2RpbmcgTWF0aGVtYXRpY3MsIEph
bnVhcnksIDIwMDEiDQpodHRwczovL3Blb3BsZS5lZWNzLmJlcmtlbGV5LmVkdS9+ZmF0ZW1hbi9w
YXBlcnMvb3Blbm1hdGhjcml0LnBkZjxodHRwczovL3Blb3BsZS5lZWNzLmJlcmtlbGV5LmVkdS8l
N0VmYXRlbWFuL3BhcGVycy9vcGVubWF0aGNyaXQucGRmPg0KDQpbMV0gRmF0ZW1hbiwgUmljaGFy
ZCBKLg0KIlZlcmJzLCBOb3VucywgYW5kIENvbXB1dGVyIEFsZ2VicmEsIG9yIFdoYXQncyBHcmFt
bWFyIEdvdCB0bw0KZG8gd2l0aCBNYXRoPyAiLCBEZWNlbWJlciAxOCwgMjAwOA0KaHR0cHM6Ly9w
ZW9wbGUuZWVjcy5iZXJrZWxleS5lZHUvfmZhdGVtYW4vcGFwZXJzL25vdW52ZXJibWFjLnBkZjxo
dHRwczovL3Blb3BsZS5lZWNzLmJlcmtlbGV5LmVkdS8lN0VmYXRlbWFuL3BhcGVycy9ub3VudmVy
Ym1hYy5wZGY+DQoNClsyXSBGYXRlbWFuLCBSaWNoYXJkIEouDQoiUGFyc2luZyBUZVggaW50byBN
YXRoZW1hdGljcyIsDQpodHRwczovL3Blb3BsZS5lZWNzLmJlcmtlbGV5LmVkdS9+ZmF0ZW1hbi9w
YXBlcnMvcGFyc2luZ190ZXgucGRmPGh0dHBzOi8vcGVvcGxlLmVlY3MuYmVya2VsZXkuZWR1LyU3
RWZhdGVtYW4vcGFwZXJzL3BhcnNpbmdfdGV4LnBkZj4NCg0KDQoNCg0KDQoNCg0KDQoNCg0K

--_000_147216235043915807ccnycunyedu_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgc3R5bGU9
ImRpc3BsYXk6bm9uZSI+PCEtLSBQIHsgbWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOiAw
cHg7IH0tLT48L3N0eWxlPg0KPC9oZWFkPg0KPGJvZHkgZGlyPSJsdHIiIHN0eWxlPSJmb250LXNp
emU6MTJwdDtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6I0ZGRkZGRjtmb250LWZhbWls
eTpDYWxpYnJpLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyI+DQo8cD5UaW06PGJyPg0KPC9w
Pg0KPHA+PGJyPg0KPC9wPg0KPHA+VGhhbmtzIGZvciB0YWtpbmcgdGhlIHRpbWUgdG8gYWRkcmVz
cyBteSBpZ25vcmFudCBxdWVzdGlvbnMuPGJyPg0KPC9wPg0KPHA+WW91IHdyb3RlOiAmcXVvdDs8
c3BhbiBzdHlsZT0iY29sb3I6IHJnYigzMywgMzMsIDMzKTsgZm9udC1mYW1pbHk6ICdTZWdvZSBV
SScsICdTZWdvZSBXUCcsICdTZWdvZSBVSSBXUEMnLCBUYWhvbWEsIEFyaWFsLCBzYW5zLXNlcmlm
OyBmb250LXNpemU6IDE1cHg7Ij5Gb3IgaW5zdGFuY2UsIGFyZSB5b3VyIGZvcm11bGFzIGdpdmVu
Jm5ic3A7PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDMzLCAzMywgMzMpOyBmb250LWZh
bWlseTogJ1NlZ29lIFVJJywgJ1NlZ29lIFdQJywgJ1NlZ29lIFVJIFdQQycsIFRhaG9tYSwgQXJp
YWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTVweDsiPm92ZXINCiB0aGUgcmVhbCBvciBjb21w
bGV4IGRvbWFpbj88L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMzMsIDMzLCAzMyk7IGZv
bnQtZmFtaWx5OiAnU2Vnb2UgVUknLCAnU2Vnb2UgV1AnLCAnU2Vnb2UgVUkgV1BDJywgVGFob21h
LCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNXB4OyI+4oCLJnF1b3Q7PC9zcGFuPjwv
cD4NCjxwPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDMzLCAzMywgMzMpOyBmb250LWZhbWlseTog
J1NlZ29lIFVJJywgJ1NlZ29lIFdQJywgJ1NlZ29lIFVJIFdQQycsIFRhaG9tYSwgQXJpYWwsIHNh
bnMtc2VyaWY7IGZvbnQtc2l6ZTogMTVweDsiPjxicj4NCjwvc3Bhbj48L3A+DQo8cD5UaGlzIHF1
ZXN0aW9uIGlzIG9mIGNvdXJzZSByZWxldmFudCBpbiBjb21wdXRhdGlvbi4gRXZlbiBpbiBBeGlv
bSwgd2hpY2ggYWxsb3dzIGRvbWFpbnMgKGJlbG9uZ2luZyB0byBhIHNwZWNpZmljJm5ic3A7QXhp
b20gY2F0ZWdvcnkpJm5ic3A7YXMgcGFyYW1ldGVycyBpbiBmdW5jdGlvbiBvciBwYWNrYWdlIGNh
bGxzLCB0aGUgY29tcGlsZXIgbmVlZHMgdG8ga25vdyB0aGUgZXhhY3QgZG9tYWluIGF0IGNvbXBp
bGUgdGltZSAoYW5kIHdpdGggc29tZSBtb3JlIGVmZm9ydCwNCiBkZWxheSB0aGlzIGtub3dsZWRn
ZSB0byBydW4gdGltZSkuIFlvdXIgZXhhbXBsZSB3aXRoIFxBVCBmb3IgbWF0cml4IG11bHRpcGxp
Y2F0aW9uIE1OJm5ic3A7aWxsdXN0cmF0ZXMgdGhhdC4mbmJzcDs8YnI+DQo8L3A+DQo8cD48YnI+
DQo8L3A+DQo8cD5Ib3dldmVyLCBtYXRoZW1hdGljcyBpcyBkaWZmZXJlbnQuIFdlIGRvIE5PVCBo
YXZlIHRvIG5hbWUgYW55IHNwZWNpZmljIGRvbWFpbi4gV2UgY2FuIHNheSwgdGhlIGFsZ29yaXRo
bSB3b3JrcyBmb3IgYW55IGZpZWxkIGsuIEhvdyBkbyB5b3UgdHVybiB0aGF0IGludG8gY29tcHV0
ZXIgY29kZSB3aXRob3V0IG1ha2luZyBhIGNob2ljZSBmb3Igaz8gT3IsIHdlIGNhbiBzYXkgdGhl
IGFsZ29yaXRobSB3b3JrcyBmb3IgYW55IG1hdHJpeCBpbiBHTChuLA0KIGspLCBmb3IgYW55IHBv
c2l0aXZlIGludGVnZXIgbiBvdmVyIGFueSBmaWVsZCBrLjxicj4NCjwvcD4NCjxwPjxicj4NCjwv
cD4NCjxwPllvdXIgYW5zd2VyIHRvIHRoZSBxdWVzdGlvbiBvbiBvdmVybG9hZGluZyBpcyBvZiBj
b3Vyc2UgdGhlICZxdW90O21pZGRsZSB3YXkmcXVvdDssIGJ1dCB0aGUgcHJvYmxlbSBhYm92ZSAo
dW5zcGVjaWZpZWQgZG9tYWlucyBpbiBhIGNhdGVnb3J5LCBvciBlbGVtZW50IGluIGEgZG9tYWlu
KSBjb3VsZCBjYXNjYWRlIGFuZCBzbyB0aGVyZSBoYXMgdG8gYmUgYSBub24tc3BlY2lmaWMgdHJh
bnNsYXRpb24gKG9yIHdheSB0byBtYXJrLXVwKSwgcGVyaGFwcyB3aXRoDQogYSAmcXVvdDtkZWZh
dWx0JnF1b3Q7IHNwZWNpZmljYXRpb24gaW4gY2FzZSBjb21wdXRhdGlvbiBiZWNvbWVzIG5lY2Vz
c2FyeS48YnI+DQo8L3A+DQo8cD48YnI+DQo8L3A+DQo8cD5Tb21laG93IEkgZ290IChwZXJoYXBz
IGluY29ycmVjdGx5KSZuYnNwO3RoZSBpbXByZXNzaW9uIHRoYXQgeW91ciBwcm9wb3NlZCB0YXJn
ZXQgaXMgd2VhdmVyKGxhdGV4IHBhcGVyLCBheGlvbSBwYXBlciktLS1vZiBjb3Vyc2UsIGEgcGFw
ZXIgaXMgYWxzbyBhIHN0cmluZy4mbmJzcDs8YnI+DQo8L3A+DQo8cD48YnI+DQo8L3A+DQo8cCBz
dHlsZT0iZm9udC1mYW1pbHk6IENhbGlicmksIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7
IGZvbnQtc2l6ZTogMTZweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyI+
DQpGb3IgYSZuYnNwO2xpbWl0ZWQgYXBwbGljYXRpb24gKGZvcm11bGFzIGxpa2UgaW50ZWdyYWxz
KSwgc3VjaCBnZW5lcmFsaXR5IGlzIHBlcmhhcHMgbm90IG5lZWRlZC4gRm9yIHRoYXQgcHVycG9z
ZSwmbmJzcDtJIGRvIG5vdCBiZWxpZXZlIHdlJm5ic3A7bmVlZCBhIG5ldyBzZW1hbnRpYyBtYXJr
LXVwIGxheWVyLS0taWYgSSBmb2xsb3cgeW91ciBwcm9ncmVzcyBjb3JyZWN0bHksIHlvdSBhbHJl
YWR5IGhhdmUmbmJzcDthJm5ic3A7ZGlyZWN0IFtzZW1pLWF1dG9tYXRpYz9dJm5ic3A7dHJhbnNs
YXRpb24NCiBwcm9ncmFtIChvciBhIGJ1bmNoIG9mIG1hY3JvcykmbmJzcDt0aGF0IGlucHV0cyZu
YnNwO3RoZSBsYXRleCBzb3VyY2UgZm9yJm5ic3A7YSZuYnNwO2Zvcm11bGEgKG9yIGEgc2Nhbm5l
ZCBpbWFnZSB3aXRoICZxdW90O21hdGhlbWF0aWNhbCBPQ1ImcXVvdDsgc29mdHdhcmUpJm5ic3A7
YW5kIG91dHB1dHMgdGhlIEF4aW9tIGNvZGUgKG9yIGJldHRlciBzdGlsbCwgYW4gQXhpb20gcGFj
a2FnZSZuYnNwO3RoYXQgYWxsb3dzIFtkb21haW5dJm5ic3A7cGFyYW1ldGVycykuIEFzIHlvdSBh
Y2tub3dsZWRnZWQsIHRoZSBzZWxhdGV4DQogdGVzdCBmaWxlIHdpdGggd2VhdmVyKGxhdGV4IHN0
cmluZywgYXhpb20gc3RyaW5nKSBkb2VzIG5vdCB5ZXQgcHJvdmlkZSB0aGUgc2VtYW50aWMgY29u
dGVudCAodGhhdCdzIHRoZSBzZW1pLWF1dG9tYXRpYyBwYXJ0OiBjaG9vc2luZyBkZWZhdWx0IGRv
bWFpbnMpLiBXaHkgZG8gd2UgbmVlZCB0byAmcXVvdDt1bndlYXZlJnF1b3Q7IGFuIGF4aW9tIHN0
cmluZyB3aXRoIHNlbWFudGljIG1hcmstdXAgYmFjayB0byBsYXRleCAod2l0aCBvciB3aXRob3V0
IHNlbWFudGljKT8NCiBJcyBpdCB0byBlbnN1cmUmbmJzcDt0aGF0IHdlYXZlIGhhcyBhbiBpbnZl
cnNlPyBJJm5ic3A7ZG9uJ3Qgc2VlIHRoYXQgdG8gYmUgdGhlIGNhc2UsIHNpbmNlIHdlIGhhdmUg
dG8gbWFrZSBjaG9pY2VzIGZvciBkb21haW5zIHRvIGdpdmUgZnVsbCBjb21wdXRhdGlvbmFsJm5i
c3A7c2VtYW50aWNzIGJ1dCBkb24ndCBmb3IgaW4gdGhlIGxhdGV4IHN0cmluZywgZXZlbiZuYnNw
O2luY2x1ZGluZyBmdWxsJm5ic3A7bWF0aGVtYXRpY2FsJm5ic3A7c2VtYW50aWNzLiBJIHRoaW5r
IHdlYXZlIGlzIG9uZSB0bw0KIG1hbnkgaW4gZ2VuZXJhbCwgYnV0IHVud2VhdmUgY2FuIGJlIG9u
ZSB0byBvbmUgYW5kIHRodXMgcG9zc2libHkmbmJzcDtsb3NlcyB0aGUgZ2VuZXJhbGl0eSBvZiBp
bnB1dCZuYnNwO2xhdGV4IHN0cmluZyBnaXZlbiZuYnNwO3RvIHRoZSZuYnNwO3dlYXZlIHJvdXRp
bmUuPGJyPg0KPC9wPg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9ImNvbG9yOiByZ2Io
MzMsIDMzLCAzMyk7IGZvbnQtZmFtaWx5OiAnU2Vnb2UgVUknLCAnU2Vnb2UgV1AnLCAnU2Vnb2Ug
VUkgV1BDJywgVGFob21hLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNXB4OyI+DQpX
aWxsaWFtPGJyPg0KPC9kaXY+DQo8cD48YnI+DQo8L3A+DQo8cD48YnI+DQo8L3A+DQo8ZGl2IGlk
PSJTaWduYXR1cmUiPg0KPGRpdiBuYW1lPSJkaXZ0YWdkZWZhdWx0d3JhcHBlciIgc3R5bGU9ImZv
bnQtZmFtaWx5OkNhbGlicmksQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTo7
IG1hcmdpbjowIj4NCjxkaXYgbmFtZT0iZGl2dGFnZGVmYXVsdHdyYXBwZXIiIHN0eWxlPSJmb250
LWZhbWlseTpDYWxpYnJpLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyBmb250LXNpemU6OyBt
YXJnaW46MCI+DQpXaWxsaWFtIFNpdDxicj4NClByb2Zlc3NvciBFbWVyaXR1czxicj4NCkRlcGFy
dG1lbnQgb2YgTWF0aGVtYXRpY3M8YnI+DQpUaGUgQ2l0eSBDb2xsZWdlIG9mIFRoZSBDaXR5IFVu
aXZlcnNpdHkgb2YgTmV3IFlvcms8YnI+DQpOZXcgWW9yaywgTlkgMTAwMzE8YnI+DQo8L2Rpdj4N
CjxkaXYgbmFtZT0iZGl2dGFnZGVmYXVsdHdyYXBwZXIiIHN0eWxlPSJmb250LWZhbWlseTpDYWxp
YnJpLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyBmb250LXNpemU6OyBtYXJnaW46MCI+DQpo
b21lcGFnZTogd3NpdC5jY255LmN1bnkuZWR1PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBz
dHlsZT0iY29sb3I6IHJnYigzMywgMzMsIDMzKTsiPg0KPGhyIHRhYmluZGV4PSItMSIgc3R5bGU9
ImRpc3BsYXk6aW5saW5lLWJsb2NrOyB3aWR0aDo5OCUiPg0KPGRpdiBpZD0iZGl2UnBseUZ3ZE1z
ZyIgZGlyPSJsdHIiPjxmb250IGZhY2U9IkNhbGlicmksIHNhbnMtc2VyaWYiIGNvbG9yPSIjMDAw
MDAwIiBzdHlsZT0iZm9udC1zaXplOjExcHQiPjxiPkZyb206PC9iPiBUaW0gRGFseSAmbHQ7YXhp
b21jYXNAZ21haWwuY29tJmd0Ozxicj4NCjxiPlNlbnQ6PC9iPiBUaHVyc2RheSwgQXVndXN0IDI1
LCAyMDE2IDI6NTAgUE08YnI+DQo8Yj5Ubzo8L2I+IFdpbGxpYW0gU2l0PGJyPg0KPGI+Q2M6PC9i
PiBEYW4gWndpbGxpbmdlcjsgUmljaGFyZCBGYXRlbWFuOyBKYW1lcyBEYXZlbnBvcnQ7IHZkaG9l
dmVuQGxpeC5wb2x5dGVjaG5pcXVlLmZyOyBNaWtlIERld2FyOyBheGlvbS1kZXY7IGFsYmVydF9y
aWNoQG1zbi5jb208YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUmU6IFtBeGlvbS1kZXZlbG9wZXJdIERl
c2lnbiBUaG91Z2h0cyBvbiBTZW1hbnRpYyBMYXRleCAoU0VMQVRFWCk8L2ZvbnQ+DQo8ZGl2PiZu
YnNwOzwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdiBkaXI9Imx0ciI+DQo8ZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pldp
bGxpYW0sPGJyPg0KPGJyPg0KPC9kaXY+DQpJdCBpcyB1bmxpa2VseSB0aGF0IGF1dGhvcnMgd2ls
bCBwcm92aWRlIGEgc3BlY2lhbCBjaHVuayBmb3IgQXhpb20gaW4gcGFwZXJzLjxicj4NCjxicj4N
CjwvZGl2Pg0KU3VjaCBhbiBhYmlsaXR5IGFscmVhZHkgZXhpc3RzIGJ1dCBJIGRvbid0IGV4cGVj
dCBhbnlvbmUgd2lsbCBhZG9wdCBpdC4gPGJyPg0KPC9kaXY+DQpUaGUgXHVzZXBhY2thZ2V7YXhp
b219IGFuZCBcYmVnaW57Y2h1bmt9IC8gXGVuZHtjaHVua30gcGFpciB3b3JrIGFuZCBpczxicj4N
CjwvZGl2Pg0KYWxsIHRoYXQgaXMgbmVlZGVkLjxicj4NCjxicj4NCjwvZGl2Pg0KVGhlIHByaW1h
cnkgdGFyZ2V0IG9mIHRoaXMgZWZmb3J0IChhbHRob3VnaCBub3QgcmVzdHJpY3RlZCB0byB0aGVt
KSBhcmUgdGhlPGJyPg0KPC9kaXY+DQp2YXJpb3VzIGNvbGxlY3Rpb25zIChOSVNUL0NSQy9HJmFt
cDtSL0plZmZyZXkvZXRjKSBvZiBmb3JtdWxhcy4gSSB1c2UgdGhlc2U8YnI+DQo8L2Rpdj4NCnJl
ZmVyZW5jZXMgdG8gY3JlYXRlIHRoZSBjb21wdXRlciBhbGdlYnJhIHRlc3Qgc3VpdGUgYnV0IGl0
IHRha2VzIG1vbnRoczxicj4NCjwvZGl2Pg0KdG8gZG8gdGhpcyBieSBoYW5kLiBJIGFsc28gdXNl
IHRoZW0gdG8gYnVpbGQgcmVncmVzc2lvbiB0ZXN0cyBmb3IgQXhpb20uPGJyPg0KPGJyPg0KPC9k
aXY+DQpUaGVyZSBoYXZlIGJlZW4gdmFyaW91cyBhdHRlbXB0cyB0byBleHRyYWN0IHNlbWFudGlj
cyBmcm9tIGxhdGV4LiBTb21lPGJyPg0KPC9kaXY+DQo8ZGl2PmFyZSBxdWl0ZSBpbnRlcmVzdGlu
ZyAoc2VlIDxhIGhyZWY9Imh0dHA6Ly9tYXRocGl4LmNvbSI+aHR0cDovL21hdGhwaXguY29tPC9h
PikuIFVuZm9ydHVuYXRlbHksIHRoZXJlIGlzbid0PGJyPg0KPC9kaXY+DQo8ZGl2PmVub3VnaCBp
bmZvcm1hdGlvbiBpbiB0aGUgbGF0ZXguIEZvciBpbnN0YW5jZSwgYXJlIHlvdXIgZm9ybXVsYXMg
Z2l2ZW48YnI+DQo8L2Rpdj4NCjxkaXY+b3ZlciB0aGUgcmVhbCBvciBjb21wbGV4IGRvbWFpbj88
YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+SW4gdGhlIGxvbmdlciB0ZXJtIEkgYW0gY2FtcGFpZ25p
bmcgdG8gYmVuZCB0aGVzZSB0b21lcyB0b3dhcmQgYTxicj4NCjwvZGl2Pg0KPGRpdj5tb3JlIGNv
bXB1dGF0aW9uYWwgbWF0aGVtYXRpY3MgYmFzaXMuIEluc3RlYWQgb2YgbGlzdGluZyB0aGUgbmFt
ZXMgb2Y8YnI+DQo8L2Rpdj4NCjxkaXY+MjAgaW52YXJpYW50IGdyYXBoIGFsZ29yaXRobXMgd2Ug
cmVhbGx5IG5lZWQgcmVmZXJlbmNlIHZlcnNpb25zIG9mIHRoZTxicj4NCjwvZGl2Pg0KPGRpdj5h
bGdvcml0aG1zLiBBbmQgd2UgbmVlZCB0aGVtIGluIG1hY2hpbmUtcmVhZGFibGUgZm9ybS4gQW5k
IHdlIG5lZWQ8YnI+DQo8L2Rpdj4NCjxkaXY+dGhlbSBub3cgc28gYSB3aG9sZSBnZW5lcmF0aW9u
IG9mIGNvbXB1dGF0aW9uYWwgbWF0aGVtYXRpY2lhbnMgZG88YnI+DQo8L2Rpdj4NCjxkaXY+bm90
IHdyaXRlIHlldC1hbm90aGVyLUNBUyBmcm9tIHNjcmF0Y2guPGJyPg0KPGJyPg0KPC9kaXY+DQo8
ZGl2PlRpbTxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj48YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+
PGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj48YnI+DQo8YnI+DQo8L2Rpdj4NCjwvZGl2Pg0K
PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBjbGFz
cz0iZ21haWxfZXh0cmEiPjxicj4NCjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj5PbiBUaHUsIEF1
ZyAyNSwgMjAxNiBhdCA5OjEzIEFNLCBXaWxsaWFtIFNpdCA8c3BhbiBkaXI9Imx0ciI+DQombHQ7
PGEgaHJlZj0ibWFpbHRvOndzaXRAY2NueS5jdW55LmVkdSIgdGFyZ2V0PSJfYmxhbmsiPndzaXRA
Y2NueS5jdW55LmVkdTwvYT4mZ3Q7PC9zcGFuPiB3cm90ZTo8YnI+DQo8YmxvY2txdW90ZSBjbGFz
cz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MCAwIDAgLjhleDsgYm9yZGVyLWxlZnQ6MXB4
ICNjY2Mgc29saWQ7IHBhZGRpbmctbGVmdDoxZXgiPg0KPGRpdiBkaXI9Imx0ciIgc3R5bGU9ImZv
bnQtc2l6ZToxMnB0OyBjb2xvcjojMDAwMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGZv
bnQtZmFtaWx5OkNhbGlicmksQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWYiPg0KPHA+PHNwYW4g
c3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0lza29vbGEgUG90YSZxdW90OyxzYW5zLXNlcmlmIj5I
aSBUaW06PC9zcGFuPjxicj4NCjwvcD4NCjxwPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVv
dDtJc2tvb2xhIFBvdGEmcXVvdDssc2Fucy1zZXJpZiI+PGJyPg0KPC9zcGFuPjwvcD4NCjxwPjxz
cGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtJc2tvb2xhIFBvdGEmcXVvdDssc2Fucy1zZXJp
ZiI+V291bGQgaXQgYmUgc2ltcGxlciB0byBvbmx5IGFkZCBzZW1hbnRpYyBtYXJrdXBzIHRvIGFs
Z29yaXRobWljIGRlc2NyaXB0aW9ucyBpbiBwYXBlcnM/IEF1dGhvcnMgY2FuIGJlIGFza2VkIHRv
IHByb3ZpZGUgYSBzZXBhcmF0ZSBjaHVuayB3aXRoIFtBeGlvbV0mbmJzcDtzZW1hbnRpYyBtYXJr
dXBzJm5ic3A7KGluIGVzc2VuY2UsIGEgc2tlbGV0b24gaW1wbGVtZW50YXRpb24NCiBvciBwc2V1
ZG8tY29kZSZuYnNwO29mIHRoZSBhbGdvcml0aG0gaW52b2x2ZWQtLS1za2VsZXRvbiBiZWNhdXNl
IHRoZSBkYXRhIHN0cnVjdHVyZXMgb2YgbWF0aGVtYXRpY2FsIG9iamVjdHMgYXJlIHVzdWFsbHkg
aWdub3JlZCBpbiBhIG1hdGggcGFwZXIpLiZuYnNwOyBUaGlzIHdvdWxkIGF2b2lkIGhhdmluZyB0
byBtZXNzIHdpdGgmbmJzcDt0aGUgbGF0ZXggc291cmNlIChhbHJlYWR5IGhhcmQgdG8gcmVhZCBz
b21ldGltZXMpJm5ic3A7b3IgdG8gJnF1b3Q7d2VhdmUmcXVvdDsgdG8gcmVtb3ZlIHRoZQ0KIHNl
bWFudGljIG1hcmt1cHMgdG8gcmVjYXB0dXJlIHRoZSBsYXRleDogYWxsIHRoYXQgaXMgbmVlZGVk
IHdvdWxkIGJlIHRvIGlnbm9yZSB0aGUgc2VtYW50aWMgY2h1bmspLiBQdXQgYW5vdGhlciB3YXks
IHRoZSBzZW1hbnRpYyBjaHVuayBpcyBhIGRpcmVjdCAoYnkgaGFuZCBvciBhdXRvbWF0aWMpJm5i
c3A7dHJhbnNsYXRpb24gb2YgdGhlIGxhdGV4IHZlcnNpb24gb2YgYW4gYWxnb3JpdGhtIGNodW5r
Ljwvc3Bhbj48L3A+DQo8cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7SXNrb29sYSBQ
b3RhJnF1b3Q7LHNhbnMtc2VyaWYiPjxicj4NCjwvc3Bhbj48L3A+DQo8cD48c3BhbiBzdHlsZT0i
Zm9udC1mYW1pbHk6JnF1b3Q7SXNrb29sYSBQb3RhJnF1b3Q7LHNhbnMtc2VyaWYiPkFsc28sIHdo
YXQgd291bGQgYmUgdGhlJm5ic3A7c2NvcGUgb2YgdGhlIGFkZGVkIHNlbWFudGljJm5ic3A7bWFj
cm9zIGluIExhVGVYIChsaWtlIFxBRCwgXElOVCk/IENhbiB0aGVpciBzY29wZSBiZSBsaW1pdGVk
IG9ubHkgdG8gc2VtYW50aWMgY2h1bmtzPzwvc3Bhbj48L3A+DQo8cD48c3BhbiBzdHlsZT0iZm9u
dC1mYW1pbHk6JnF1b3Q7SXNrb29sYSBQb3RhJnF1b3Q7LHNhbnMtc2VyaWYiPjxicj4NCjwvc3Bh
bj48L3A+DQo8cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7SXNrb29sYSBQb3RhJnF1
b3Q7LHNhbnMtc2VyaWYiPldpbGxpYW08L3NwYW4+PC9wPg0KPHA+PGJyPg0KPC9wPg0KPGRpdj4N
CjxkaXYgbmFtZT0iZGl2dGFnZGVmYXVsdHdyYXBwZXIiPg0KPGRpdiBuYW1lPSJkaXZ0YWdkZWZh
dWx0d3JhcHBlciI+V2lsbGlhbSBTaXQ8YnI+DQpQcm9mZXNzb3IgRW1lcml0dXM8YnI+DQpEZXBh
cnRtZW50IG9mIE1hdGhlbWF0aWNzPGJyPg0KVGhlIENpdHkgQ29sbGVnZSBvZiBUaGUgQ2l0eSBV
bml2ZXJzaXR5IG9mIE5ldyBZb3JrPGJyPg0KTmV3IFlvcmssIE5ZIDEwMDMxPGJyPg0KPC9kaXY+
DQo8ZGl2IG5hbWU9ImRpdnRhZ2RlZmF1bHR3cmFwcGVyIj5ob21lcGFnZTogPGEgaHJlZj0iaHR0
cDovL3dzaXQuY2NueS5jdW55LmVkdSIgdGFyZ2V0PSJfYmxhbmsiPg0Kd3NpdC5jY255LmN1bnku
ZWR1PC9hPjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9ImNvbG9yOnJnYigzMywz
MywzMykiPg0KPGhyIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jazsgd2lkdGg6OTglIj4NCjxk
aXYgZGlyPSJsdHIiPjxmb250IGNvbG9yPSIjMDAwMDAwIiBmYWNlPSJDYWxpYnJpLCBzYW5zLXNl
cmlmIiBzdHlsZT0iZm9udC1zaXplOjExcHQiPjxiPkZyb206PC9iPiBBeGlvbS1kZXZlbG9wZXIg
Jmx0O2F4aW9tLWRldmVsb3Blci1ib3VuY2VzJiM0Mzs8d2JyPnd5c2NjPTxhIGhyZWY9Im1haWx0
bzpzY2kuY2NueS5jdW55LmVkdUBub25nbnUub3JnIiB0YXJnZXQ9Il9ibGFuayI+c2NpLmNjbnku
Y3VueS5lZHVAPHdicj5ub25nbnUub3JnPC9hPiZndDsgb24gYmVoYWxmDQogb2YgVGltIERhbHkg
Jmx0OzxhIGhyZWY9Im1haWx0bzpheGlvbWNhc0BnbWFpbC5jb20iIHRhcmdldD0iX2JsYW5rIj5h
eGlvbWNhc0BnbWFpbC5jb208L2E+Jmd0Ozxicj4NCjxiPlNlbnQ6PC9iPiBUaHVyc2RheSwgQXVn
dXN0IDI1LCAyMDE2IDY6MTcgQU08YnI+DQo8Yj5Ubzo8L2I+IERhbiBad2lsbGluZ2VyPGJyPg0K
PGI+Q2M6PC9iPiBSaWNoYXJkIEZhdGVtYW47IEphbWVzIERhdmVucG9ydDsgPGEgaHJlZj0ibWFp
bHRvOnZkaG9ldmVuQGxpeC5wb2x5dGVjaG5pcXVlLmZyIiB0YXJnZXQ9Il9ibGFuayI+DQp2ZGhv
ZXZlbkBsaXgucG9seXRlY2huaXF1ZS5mcjwvYT47IE1pa2UgRGV3YXI7IGF4aW9tLWRldjsgPGEg
aHJlZj0ibWFpbHRvOmFsYmVydF9yaWNoQG1zbi5jb20iIHRhcmdldD0iX2JsYW5rIj4NCmFsYmVy
dF9yaWNoQG1zbi5jb208L2E+PGJyPg0KPGI+U3ViamVjdDo8L2I+IFJlOiBbQXhpb20tZGV2ZWxv
cGVyXSBEZXNpZ24gVGhvdWdodHMgb24gU2VtYW50aWMgTGF0ZXggKFNFTEFURVgpPC9mb250Pg0K
PGRpdj4mbmJzcDs8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXYgY2xhc3M9Img1Ij4NCjxkaXY+
DQo8ZGl2IGRpcj0ibHRyIj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj5NeSBpbml0aWFsIGFwcHJv
YWNoIHdhcyB0b28gaGVhdnktaGFuZGVkIGFuZCBBeGlvbSBzcGVjaWZpYy48YnI+DQo8L2Rpdj4N
CjxkaXY+PGJyPg0KSXQgc2VlbXMgdGhlIHNlbWFudGljIG1hcmt1cCB0YXNrIGNhbiBiZSB2aWV3
ZWQgYXMgYW4gZWRpdG9yPGJyPg0KPC9kaXY+DQp0YXNrLiBFZGl0b3JzIGRvbid0IGNhcmUgYWJv
dXQgc2VtYW50aWNzLCB0aGV5IGp1c3Qgd29yayBvbiB0ZXh0Ljxicj4NCjwvZGl2Pg0KVmlld2Vk
IHRoaXMgd2F5IHRoZSBtYXJrdXAncyBvbmx5IGZ1bmN0aW9uIGlzIGRlY29yYXRpb24gZm9yPGJy
Pg0KPC9kaXY+DQpwb3N0LXByb2Nlc3NpbmcuIEl0IGlzIChtb3N0bHkpIHN5c3RlbSBpbmRlcGVu
ZGVudC48YnI+DQo8YnI+DQo8L2Rpdj4NClRoZSBlZGl0IHRhc2tzIHNlZW0gdG8gYmUge2RlbGV0
ZSwgaW5zZXJ0LCByZXBsYWNlfSBhbmQgc29tZTxicj4NCjwvZGl2Pg0KcG9zdC1tYXJrdXAgaGlu
dHMge2Z1bmN0aW9uLCB0eXBlfTxicj4NCjxicj4NCjwvZGl2Pg0KVGhlIGRlbGV0ZSBtYXJrdXAg
dGVsbHMgd2VhdmVyIHRvIHJlbW92ZSB0aGUgbGF0ZXggY29tcGxldGVseS48YnI+DQo8L2Rpdj4N
ClRoaXMgaXMgdXNlZnVsIGZvciB0aGluZ3MgbGlrZSB7ZHh9PGJyPg0KPGJyPg0KPC9kaXY+DQpU
aGUgaW5zZXJ0IG1hcmt1cCBhZGRzIG1pc3Npbmcgc2VtYW50aWMgdGV4dCwgc3VjaCBhcyB7Kn0g
d2hpY2g8YnI+DQo8L2Rpdj4NCmlzIG5lZWRlZCB0byBpbmRpY2F0ZSBtdWx0aXBsaWNhdGlvbi48
YnI+DQo8YnI+DQo8L2Rpdj4NClRoZSByZXBsYWNlIG1hcmt1cCBnaXZlcyBhbHRlcm5hdGUgdGV4
dCBmb3Igd2VhdmVyLCBmb3IgdGhpbmdzIHdoZXJlPGJyPg0KPC9kaXY+DQp0aGUgZnVuY3Rpb24g
bmFtZSBtaWdodCBkaWZmZXIsIGUuZy4gXGludCAtJmd0OyBpbnRlZ3JhdGU8YnI+DQo8YnI+DQo8
L2Rpdj4NClRoZSBmdW5jdGlvbiBtYXJrdXAgbmFtZXMgYSBmdW5jdGlvbiB0aGF0IHdlYXZlciBz
aG91bGQgY2FsbDxicj4NCjwvZGl2Pg0Kd2hpY2ggYWxsb3dzIHNwZWNpYWwgaGFuZGxpbmcgaW4g
cG9zdC1wcm9jZXNzaW5nLiBJdCBjYW4gYmUgYW55PGJyPg0KPC9kaXY+DQpzLWV4cHJlc3Npb24g
KHRoZSB3ZWF2ZXIgaW1wbGVtZW50YXRpb24gaXMgY3VycmVudGx5IGxpc3AtYmFzZWQpLjxicj4N
Cjxicj4NCjwvZGl2Pg0KVGhlIHR5cGUgbWFya3VwIHBhc3NlcyB0eXBlIGluZm9ybWF0aW9uIHRv
IHdlYXZlciBzbyBBeGlvbSA8YnI+DQo8L2Rpdj4NCmtub3dzIHRoZSB0YXJnZXQgdHlwZSwgdXNl
ZnVsIGZvciB0aGluZ3MgbGlrZSBtYXRyaXguPGJyPg0KPGJyPg0KPC9kaXY+DQpUaGUgbWFjcm9z
IGFyZTxicj4NCjxicj4NCjwvZGl2Pg0KXG5ld2NvbW1hbmR7XEFEfVsxXXsjMX0lIGRlbGV0ZTxi
cj4NCjwvZGl2Pg0KXG5ld2NvbW1hbmR7XEFJfVsxXXt9JSBpbnNlcnQ8YnI+DQo8L2Rpdj4NClxu
ZXdjb21tYW5ke1xBUn1bMl17IzF9JSByZXBsYWNlPGJyPg0KPGJyPg0KPC9kaXY+DQpcbmV3Y29t
bWFuZHtcQUZ9WzJdeyMxfSUgZnVuY3Rpb248YnI+DQo8L2Rpdj4NClxuZXdjb21tYW5ke1xBVH1b
Ml17IzF9JSB0eXBlPGJyPg0KPGJyPg0KPC9kaXY+DQpOb3RlIHRoYXQgXEFJIG91dHB1dHMgbm90
aGluZywgc28gM1xBSXsqfXggPT0gM3ggdG8gbGF0ZXguPGJyPg0KPGJyPg0KPC9kaXY+DQpcQUQg
dGVsbHMgd2VhdmVyIHRvIGRlbGV0ZSB0aGUgdGV4dCwgZS5nLiB7XEFEIH5keH0gPT0gfmR4IHRv
IGxhdGV4PGJyPg0KPGJyPg0KPC9kaXY+DQpcQVIgdGVsbHMgd2VhdmVyIHRvIHJlcGxhY2UgdGhl
IHRleHQgZS5nLiB7XEFSIFxwaX17XCVwaX08YnI+DQo8YnI+DQo8L2Rpdj4NClxBRiB0ZWxscyB3
ZWF2ZXIgdG8gY2FsbCBhIGZ1bmN0aW9uLCBlLmcuIG9uZSB0aGF0IGtub3dzIGhvdyB0byA8YnI+
DQo8L2Rpdj4NCnJld3JpdGUgdGhlIGlucHV0IGluIGEgc3BlY2lhbCB3YXksIG9yIGRvZXMgdHJh
Y2luZywgZXRjLjxicj4NCjxicj4NCjwvZGl2Pg0KXEFUIGFkZHMgdGFyZ2V0IHR5cGUgaW5mb3Jt
YXRpb24gZm9yIEF4aW9tPGJyPg0KPC9kaXY+DQplLmcuIFxBVHszeCYjNDM7Nn17UE9MWShJTlQp
fSA9PSAzeCYjNDM7NiB0byBsYXRleCBidXQgcGFzc2VzIGl0IGFzPGJyPg0KPC9kaXY+DQphIFBv
bHlub21pYWwoSW50ZWdlcikgdG8gQXhpb208YnI+DQo8YnI+DQo8L2Rpdj4NCkZvciBleGFtcGxl
LDxicj4NCjxicj4NCjwvZGl2Pg0KJFxpbnR7XGZyYWN7ZHh9e2F4KmJ9fSQ8YnI+DQo8YnI+DQo8
L2Rpdj4NCmJlY29tZXM8YnI+DQo8YnI+DQo8L2Rpdj4NCiRcQVR7XEFSe1xpbnR9e2ludGVncmF0
ZX17XDx3YnI+ZnJhY3tcQUR7ZHh9fXthXEFJeyopeCYjNDM7Yn19fXs8d2JyPkVYUFJ9e0lOVH19
JDxicj4NCjxicj4NCjwvZGl2Pg0KdGVsbGluZyB3ZWF2ZXIgdGhhdCB0aGUgdGFyZ2V0IHR5cGUg
KEFUKSBpcyBFWFBSKElOVCksIDxicj4NCjwvZGl2Pg0KPGRpdj50aGUgXGludCBpcyByZWFsbHkg
aW50ZWdyYXRlPGJyPg0KPC9kaXY+DQo8ZGl2PnRoZSBkeCBpcyB0byBiZSBpZ25vcmVkIGFuZDxi
cj4NCjwvZGl2Pg0KPGRpdj50aGUgYXgmIzQzO2Igc2hvdWxkIHJlYWQgYSp4JiM0MztiPGJyPg0K
PGJyPg0KPC9kaXY+DQo8ZGl2PlRoZXJlIGlzIGFuIG9idmlvdXMgdHJhZGVvZmYgb2YgbWFya3Vw
IHZzIHdlYXZlci4gPGJyPg0KRm9yIGV4YW1wbGUuIFxpbnQgbWlnaHQgYmUga25vd24gdG8gd2Vh
dmVyLjxicj4NCjwvZGl2Pg0KPGRpdj5PciBleHByZXNzaW9ucyBtaWdodCBjYWxsIGFuIGVxdWF0
aW9uIHJld3JpdGVyIHRvIGFkZCB7Kn08YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+VGhlIG1hcmt1
cCBjb3VsZCB2YXJ5IGZyb20gYWxtb3N0IG5vdGhpbmcgdG8gbWFzc2l2ZSBkZXRhaWw8YnI+DQo8
L2Rpdj4NCjxkaXY+ZGVwZW5kaW5nIG9uIHRoZSBkb3duc3RyZWFtIGNsZXZlcm5lc3MuPGJyPg0K
PGJyPg0KPC9kaXY+DQo8ZGl2PlRoaXMgaW5pdGlhbCBtYXJrdXAgc2V0IHNlZW1zIHN1ZmZpY2ll
bnQgdG8gaGFuZGxlIGV2ZXJ5IHRhc2s8YnI+DQo8L2Rpdj4NCjxkaXY+dGhhdCByZXF1aXJlcyBz
ZW1hbnRpY3MgbWFya3VwIHNvIGZhci4gVGhlIG92ZXJoZWFkIHNlZW1zIDxicj4NCjwvZGl2Pg0K
PGRpdj5zbWFsbCBhbmQgdGhlIGdhaW4gc2VlbXMgbGFyZ2UuPGJyPg0KPC9kaXY+DQo8ZGl2Pjxi
cj4NCjwvZGl2Pg0KPGRpdj5Ob3cgdGhlIG9ubHkgcHJvYmxlbSBpcyBwb3N0LXByb2Nlc3Npbmcg
dGhlIGxhdGV4LiBTaWdoLjxicj4NCjwvZGl2Pg0KPGRpdj48YnI+DQpUaGVyZSBpcyBubyBzdWNo
IHRoaW5nIGFzIGEgc2ltcGxlIGpvYi48YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8
ZGl2PlRpbTxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxk
aXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2IGNsYXNzPSJnbWFpbF9leHRyYSI+PGJyPg0K
PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk9uIFR1ZSwgQXVnIDIzLCAyMDE2IGF0IDc6MjcgUE0s
IFRpbSBEYWx5IDxzcGFuIGRpcj0ibHRyIj4NCiZsdDs8YSBocmVmPSJtYWlsdG86YXhpb21jYXNA
Z21haWwuY29tIiB0YXJnZXQ9Il9ibGFuayI+YXhpb21jYXNAZ21haWwuY29tPC9hPiZndDs8L3Nw
YW4+IHdyb3RlOjxicj4NCjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1h
cmdpbjowIDAgMCAuOGV4OyBib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDsgcGFkZGluZy1sZWZ0
OjFleCI+DQo8ZGl2IGRpcj0ibHRyIj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8ZGl2Pg0KPGRpdj5Gb3IgdGhvc2Ugb2YgeW91IGF0IGhvbWUgd2lzaGluZyB0byBwbGF5IGFs
b25nLCB0aGVyZSBpcyBhPGJyPg0KPC9kaXY+DQpzZWxhdGV4LnRlc3QxIGZpbGUgYXQ8YnI+DQo8
L2Rpdj4NCjxhIGhyZWY9Imh0dHA6Ly9heGlvbS1kZXZlbG9wZXIub3JnL2F4aW9tLXdlYnNpdGUv
c2VsYXRleC50ZXN0MSIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly9heGlvbS1kZXZlbG9wZXIub3Jn
L2F4aTx3YnI+b20td2Vic2l0ZS9zZWxhdGV4LnRlc3QxPC9hPjxicj4NCjwvZGl2Pg0KY29udGFp
bmluZyA2MjAgaW50ZWdyYWxzLjxicj4NCjwvZGl2Pg0KPGJyPg0KPC9kaXY+DQpFYWNoIGxpbmUg
aXMgYSBjYWxsIG9mIHRoZSBmb3JtPGJyPg0KPC9kaXY+DQo8YnI+DQombmJzcDsgd2VhdmVyKGxh
dGV4LXN0cmluZyxheGlvbS1zdHJpPHdicj5uZyk8YnI+DQo8L2Rpdj4NCjxicj4NCjwvZGl2Pg0K
VGhlIGdvYWwgaXMgdG8gdHJhbnNmb3JtIHRoZSBsYXRleCBpbnRvIEF4aW9tLjxicj4NCjxicj4N
CjwvZGl2Pg0KSW1wbGljaXQgaXMgdGhlIGlkZWEgdGhhdCB3ZWF2ZXIgd2lsbCB1c2UgdGhlIHNl
bGF0ZXggdG9rZW5zPGJyPg0KPC9kaXY+DQp0byBkaXNhbWJpZ3VhdGUgdGhlIGlucHV0LiBUaGUg
Y3VycmVudCBmaWxlIGhhcyBubyBzZWxhdGV4PGJyPg0KPC9kaXY+DQp0b2tlbnMuIFRoZXkgd2ls
bCBiZSBhZGRlZCBhcyBuZWVkZWQuIFRoZSBpZGVhIGlzIHRvIGtlZXA8YnI+DQo8L2Rpdj4NCjxk
aXY+dGhlIHByb2JsZW0gc2ltcGxlIGJ5IGFkZGluZyBwcmludC1pbnZpc2libGUgc2VtYXRpY3Mg
dG8gdGhlPGJyPg0KPC9kaXY+DQo8ZGl2PmxhdGV4LXN0cmluZy4gSW4gdGhlIGlkZWFsIGNhc2Ug
dGhlIHdlYXZlciBwcm9ncmFtIGlzIHRyaXZpYWwsPGJyPg0KPC9kaXY+DQo8ZGl2PmFzIGlzIHRo
ZSBtYXJrdXAuIEFueSB0cmFkZW9mZiBzaG91bGQgcHJpb3JpdGl6ZSBzaW1wbGljaXR5Ljxicj4N
CjwvZGl2Pg0KPGRpdj5Bbm90aGVyIHByaW9yaXR5IGlzIHRvIGFsaWduIHRoZSBzZW1hbnRpYyBt
YXJrdXAgd2l0aCA8YnI+DQo8L2Rpdj4NCjxkaXY+QXhpb20gZG9tYWlucyBpbiBvcmRlciB0byBn
cm91bmQgdGhlIHNlbWFudGljcyB3aXRoIGNvZGUuIDxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5P
bmNlIGFsbCBvZiB0aGVzZSBjYWxscyB0cmFuc2xhdGUgY29ycmVjdGx5IHRoZSBBeGlvbSBvdXRw
dXQ8YnI+DQo8L2Rpdj4NCjxkaXY+cm91dGluZXMgbmVlZCB0byBvdXRwdXQgdGhlIGxhdGV4LXN0
cmluZyB3aXRoIHRoZSBhZGRlZDxicj4NCjwvZGl2Pg0KPGRpdj5zZW1hbnRpYyBtYXJrdXAgc28g
dGhlIG1hcHBpbmcgaXMgYmktZGlyZWN0aW9uYWwuPGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4NCjwv
ZGl2Pg0KVGhlIGN1cnJlbnQgZmlsZSBvbmx5IGxvb2tzIGF0IGludGVncmF0aW9uIGFzIEkgYWxy
ZWFkeSBoYXZlPGJyPg0KPC9kaXY+DQp0aGUgbGF0ZXgtJmd0O2F4aW9tIHRleHQgYXZhaWxhYmxl
LiBGdXR1cmUgdGVzdCBmaWxlcyB3aWxsIGxvb2s8YnI+DQo8L2Rpdj4NCmF0IG90aGVyIGFyZWFz
IG9mIGludGVyZXN0LiBUaGUgbG9uZyB0ZXJtIGdvYWwgaXMgdG8gcGFyc2U8YnI+DQo8L2Rpdj4N
CjxkaXY+TklTVC9DUkMvZXRjIGZvcm11bGFzLjxzcGFuPjxmb250IGNvbG9yPSIjODg4ODg4Ij48
YnI+DQo8L2ZvbnQ+PC9zcGFuPjwvZGl2Pg0KPHNwYW4+PGZvbnQgY29sb3I9IiM4ODg4ODgiPg0K
PGRpdj48YnI+DQo8L2Rpdj4NClRpbTxicj4NCjxicj4NCjwvZm9udD48L3NwYW4+PC9kaXY+DQo8
ZGl2Pg0KPGRpdj4NCjxkaXYgY2xhc3M9ImdtYWlsX2V4dHJhIj48YnI+DQo8ZGl2IGNsYXNzPSJn
bWFpbF9xdW90ZSI+T24gU3VuLCBBdWcgMjEsIDIwMTYgYXQgMTE6MDIgUE0sIFRpbSBEYWx5IDxz
cGFuIGRpcj0ibHRyIj4NCiZsdDs8YSBocmVmPSJtYWlsdG86YXhpb21jYXNAZ21haWwuY29tIiB0
YXJnZXQ9Il9ibGFuayI+YXhpb21jYXNAZ21haWwuY29tPC9hPiZndDs8L3NwYW4+IHdyb3RlOjxi
cj4NCjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAu
OGV4OyBib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDsgcGFkZGluZy1sZWZ0OjFleCI+DQo8ZGl2
IGRpcj0ibHRyIj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2PkRhbiw8YnI+DQo8
YnI+DQo8L2Rpdj4NCldoaWxlIHBhZ2luZyB0aHJvdWdoIHRoZSBDUkMgMzFzdCBTdGFuZGFyZCBN
YXRoZW1hdGljYWw8YnI+DQo8L2Rpdj4NClRhYmxlcyBJIGxhbmRlZCBvbiBwYWdlIDIxOSwgc2Vj
dGlvbiAzLjQuMS4yIEdyYXBoIEludmFyaWFudHMuPGJyPg0KPGJyPg0KPC9kaXY+DQpJdCB3b3Vs
ZCBiZSBhIHZhc3QgaW1wcm92ZW1lbnQgaWYgdGhlcmUgd2VyZSBhbGdvcml0aG1zIDxicj4NCjwv
ZGl2Pg0KYXNzb2NpYXRlZCB3aXRoIHRoZXNlIGludmFyaWFudHMuIENsZWFybHkgdGhleSBleGlz
dCBzb21ld2hlcmUuPGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4NClRvICZxdW90O2Nyb3NzIHRoZSBn
YXAmcXVvdDsgYmV0d2VlbiB0YWJsZXMgYW5kIGNvbXB1dGF0aW9uYWwgbWF0aGVtYXRpY3M8YnI+
DQo8L2Rpdj4NCjxkaXY+aXQgd291bGQgYmUgdmFsdWFibGUgdG8gaW5jbHVkZSBpbXBsZW1lbnRh
dGlvbnMgb2YgdGhlc2UgaW52YXJpYW50cy48YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+SXQgaXMg
aGFyZCB0byB3YWxrIGF3YXkgZnJvbSB0aGF0IHBhZ2UuIEFuIEF4aW9tIGltcGxlbWVudGF0aW9u
PGJyPg0KPC9kaXY+DQo8ZGl2PndvdWxkIGJlIGZ1biB0byB3cml0ZSwgZXNwZWNpYWxseSBnaXZl
biB0aGUgbmV4dCBzZWN0aW9uIHRoYXQgbGlzdHM8YnI+DQo8L2Rpdj4NCjxkaXY+ZGlmZmVyZW50
IGtpbmRzIG9mIGdyYXBocyB3aGljaCwgcHJlc3VtYWJseSwgd291bGQgYWxsIGhhdmUgdGhlPGJy
Pg0KPC9kaXY+DQo8ZGl2PmludmFyaWFudHMuIEV2ZW4gYmV0dGVyLCB0aGUgZ3JhcGggYWxnb3Jp
dGhtcyBhcmUgbGlrZWx5IGdvb2QgPGJyPg0KPC9kaXY+DQo8ZGl2PmNhbmRpZGF0ZXMgZm9yIHBy
b29mIHRlY2hub2xvZ3kgKEFDTDIgaWYgZG9uZSBpbiBMaXNwLCBDT1EgaWY8YnI+DQo8L2Rpdj4N
CjxkaXY+ZG9uZSBpbiBTcGFkKS4gTGlzcCBoYXMgdGhlIGFkdmFudGFnZSBvZiBhbiBBTlNJIHN0
YW5kYXJkLjxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5JdCBzZWVtcyB3b3J0aHdoaWxlIHRvIHRh
a2Ugc2VjdGlvbnMgbGlrZSB0aGlzLCBleHBhbmQgdGhlbTxicj4NCjwvZGl2Pg0KPGRpdj5hY3Jv
c3MgY29tcHV0YXRpb25hbCBhbmQgcHJvb2YgdG9vbHMsIGFuZCBwdWJsaXNoIHRoZW0gaW4gYTxi
cj4NCjwvZGl2Pg0KPGRpdj5mb3JtIHRoYXQgaXMgZ2VuZXJhbGx5IHVzZWZ1bC4gSXQgaXMgJnF1
b3Q7bmljZSB0byBrbm93JnF1b3Q7IHRoYXQgYSBncmFwaDxicj4NCjwvZGl2Pg0KPGRpdj5oYXMg
YSByYWRpdXMgYnV0IGl0IHdvdWxkIGJlIGV2ZW4gYmV0dGVyIGlmIEkgY291bGQgJnF1b3Q7anVz
dCBwb2ludCBhbmQ8YnI+DQo8L2Rpdj4NCjxkaXY+Y2xpY2smcXVvdDsgdG8gaW1wb3J0IHRoZSBh
bGdvcml0aG0uPGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2PkF4aW9tIGhhcyBiZWVuIHB1c2hpbmcg
bGl0ZXJhdGUgcHJvZ3JhbW1pbmcgZm9yIHllYXJzLiBUaGUgPGJyPg0KPC9kaXY+DQo8ZGl2PnRv
b2xzIGV4aXN0IHRvICZxdW90O21ha2UgaXQgc28mcXVvdDssIGFzIHRoZSBzYXlpbmcgZ29lcy48
c3Bhbj48Zm9udCBjb2xvcj0iIzg4ODg4OCI+PGJyPg0KPGJyPg0KPC9mb250Pjwvc3Bhbj48L2Rp
dj4NCjxzcGFuPjxmb250IGNvbG9yPSIjODg4ODg4Ij4NCjxkaXY+VGltPGJyPg0KPGJyPg0KPC9k
aXY+DQo8ZGl2Pjxicj4NCjxicj4NCjwvZGl2Pg0KPC9mb250Pjwvc3Bhbj48L2Rpdj4NCjxkaXY+
DQo8ZGl2Pg0KPGRpdiBjbGFzcz0iZ21haWxfZXh0cmEiPjxicj4NCjxkaXYgY2xhc3M9ImdtYWls
X3F1b3RlIj5PbiBTdW4sIEF1ZyAyMSwgMjAxNiBhdCAxMDo0MCBQTSwgVGltIERhbHkgPHNwYW4g
ZGlyPSJsdHIiPg0KJmx0OzxhIGhyZWY9Im1haWx0bzpheGlvbWNhc0BnbWFpbC5jb20iIHRhcmdl
dD0iX2JsYW5rIj5heGlvbWNhc0BnbWFpbC5jb208L2E+Jmd0Ozwvc3Bhbj4gd3JvdGU6PGJyPg0K
PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7
IGJvcmRlci1sZWZ0OjFweCAjY2NjIHNvbGlkOyBwYWRkaW5nLWxlZnQ6MWV4Ij4NCjxkaXYgZGly
PSJsdHIiPg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0K
PGRpdj5MaWtlIGFueSByZXNlYXJjaCBwcm9ibGVtIGl0IGlzIGEgc3RydWdnbGUgdG8gZ2V0IGEg
dXNlZnVsIGdyaXAgb24gdGhpcy48YnI+DQo8L2Rpdj4NCkxvb2tpbmcgYXQgRyZhbXA7UiAoSSBq
dXN0IG9yZGVyZWQgdGhlIGxhdGVzdCwgbWluZSBpcyA0dGggZWRpdGlvbiksIHRoZSA8YnI+DQo8
L2Rpdj4NCnRhc2sgcXVpY2tseSBnZXRzIG91dCBvZiBoYW5kLjxicj4NCjxicj4NCjwvZGl2Pg0K
VGhlIENBVFMgdGVzdHMgaW4gdGhlIHBhc3Qgd2VyZSBjcmVhdGVkIGJ5IHJlYWRpbmcgdGhlIHBy
aW50ZWQgbGF0ZXg8YnI+DQo8L2Rpdj4NCmluIHZhcmlvdXMgdm9sdW1lcyBhbmQgaGFuZC10cmFu
c2xhdGluZyB0aGVtIHRvIEF4aW9tIGlucHV0LiA8YnI+DQo8L2Rpdj4NCjxicj4NCjwvZGl2Pg0K
SXQgaXMgbm90IGRpZmZpY3VsdCB0byByZS1jcmVhdGUgdGhlIGxhdGV4IGlucHV0IGZvciB0aGVz
ZSBleGFtcGxlcy48YnI+DQo8L2Rpdj4NCkRvaW5nIHNvIGFuZCBjb21iaW5pbmcgdGhlIHJlc3Vs
dHMgZ2l2ZXMgYSBzZXQgb2YgZXhhbXBsZXMgd2l0aDxicj4NCjwvZGl2Pg0KbWF0Y2hpbmcgaW5w
dXQgbGF0ZXggYW5kIG91dHB1dCBBeGlvbS4gVGhlIGhvbWV3b3JrIHByb2JsZW0gaXM8YnI+DQo8
L2Rpdj4NCnRvIHdyaXRlIHRoZSBuZWNlc3NhcnkgbWFya3VwIGFuZCB3ZWF2ZXIuPGJyPg0KPGJy
Pg0KPC9kaXY+DQpJdCBpcyBpbW1lZGlhdGVseSBvYnZpb3VzIHRoYXQgdGhpcyBpcyBtb3JlIGNo
YWxsZW5naW5nIHRoYW4gaXQgc2VlbXMuPGJyPg0KPC9kaXY+DQpGb3IgZXhhbXBsZSwgd2hlbiB3
cml0aW5nIHknKHgpPTAsIEF4aW9tIG5lZWRzIHk6PW9wZXJhdG9yICd5PGJyPg0KPC9kaXY+DQpz
byBpdCBrbm93cyBhYm91dCB0aGUgc3ltYm9sIGFzIGFuIG9wZXJhdG9yLiBUaGlzIGZhbGxzIHVu
ZGVyPGJyPg0KPC9kaXY+DQo8ZGl2PiZxdW90O0NvbnNpZGVyYXRpb24gMTI6IFN5c3RlbSBTcGVj
aWZpYyBDb21tYW5kcyZxdW90Oy4uLiB3aGljaCBpbXBsaWVzPGJyPg0KPC9kaXY+DQo8ZGl2PnRo
YXQgdGhlIGxhdGV4IGVudmlyb25tZW50IGFuZCBxdW90aW5nIG1hY3JvcyBoYXZlIHRvIGJlPGJy
Pg0KPC9kaXY+DQo8ZGl2PmltcGxlbWVudGVkLiBTaWdoLiA8YnI+DQo8L2Rpdj4NCjxkaXY+PGJy
Pg0KPC9kaXY+DQpUaGVyZSBpcyBubyBzdWNoIHRoaW5nIGFzIGEgc2ltcGxlIGpvYi48YnI+DQo8
YnI+DQo8L2Rpdj4NCkFueXdheSwgYXQgbGVhc3QgdGhlcmUgaXMgYSB3YXkgdG8gbWFrZSBhIHBy
b29mIG9mIGNvbmNlcHQ8YnI+DQo8L2Rpdj4NCnByb3RvdHlwZSB0aGF0IHJlcHJvZHVjZXMgZXhp
c3RpbmcgcmVzdWx0cy48c3Bhbj48Zm9udCBjb2xvcj0iIzg4ODg4OCI+PGJyPg0KPGJyPg0KPC9m
b250Pjwvc3Bhbj48L2Rpdj4NCjxzcGFuPjxmb250IGNvbG9yPSIjODg4ODg4Ij5UaW08YnI+DQo8
YnI+DQo8L2ZvbnQ+PC9zcGFuPjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2IGNsYXNzPSJnbWFp
bF9leHRyYSI+PGJyPg0KPGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk9uIFN1biwgQXVnIDIxLCAy
MDE2IGF0IDQ6MTcgUE0sIFRpbSBEYWx5IDxzcGFuIGRpcj0ibHRyIj4NCiZsdDs8YSBocmVmPSJt
YWlsdG86YXhpb21jYXNAZ21haWwuY29tIiB0YXJnZXQ9Il9ibGFuayI+YXhpb21jYXNAZ21haWwu
Y29tPC9hPiZndDs8L3NwYW4+IHdyb3RlOjxicj4NCjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9x
dW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4OyBib3JkZXItbGVmdDoxcHggI2NjYyBzb2xp
ZDsgcGFkZGluZy1sZWZ0OjFleCI+DQo8ZGl2IGRpcj0ibHRyIj4NCjxkaXY+DQo8ZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj5EYW4sPGJyPg0KPGJyPg0KPC9kaXY+DQpXZWxj
b21lLjxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5SZTogSG93YXJkIENvaGwuIFllcywgSSdkIGxp
a2UgYW4gaW50cm9kdWN0aW9uLiBJdCBzZWVtcyBpbXBvcnRhbnQgdG88YnI+DQo8L2Rpdj4NCjxk
aXY+bWFrZSBETE1GLCBDUkMsIGFuZCBvdGhlciBzb3VyY2VzIGNvbnRhaW4gZW5vdWdoIHNlbWFu
dGljcyB0aGF0PGJyPg0KPC9kaXY+DQo8ZGl2PnRoZXkgY2FuIGJlIHJlYWQgYnkgYSBjb21wdXRl
ciBhbGdlYnJhIHN5c3RlbS4gVGhlcmUgYXJlIGFuIDxicj4NCjwvZGl2Pg0KPGRpdj5lbm9ybW91
cyBudW1iZXIgb2YgaXNzdWVzLCBzdWNoIGFzIHdoYXQgdG8gZG8gd2l0aCBmdW5jdGlvbnM8YnI+
DQo8L2Rpdj4NCjxkaXY+dW5rbm93biB0byB0aGUgQ0FTLCB3aGljaCBuZWVkIHRvIGJlIHRob3Vn
aHQgdGhyb3VnaC48YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+SSBiZWxpZXZlIHRoYXQgTklTVC9D
UkMvRyZhbXA7UiBjb2xsZWN0aW9ucyB3aXRoIHNlbWFudGljIG1hcmt1cCB3aWxsPGJyPg0KPC9k
aXY+DQo8ZGl2PmhhdmUgYSBncmVhdCBub3JtYWxpemluZyBlZmZlY3Qgb24gQ0FTIGRldmVsb3Bt
ZW50IHNpbmNlIGl0IHdpbGwgcmFpc2U8YnI+DQo8L2Rpdj4NCjxkaXY+Y3Jvc3MtcGxhdGZvcm0g
cXVlc3Rpb25zIGxpa2UgJnF1b3Q7V2hhdCBwZXJjZW50IG9mIEcmYW1wO1IgZG8geW91IGhhbmRs
ZT8mcXVvdDsuPGJyPg0KPC9kaXY+DQo8ZGl2PkFsYmVydCBSaWNoIChSVUJJKVswXSBoYXMgYmVl
biBkb2luZyB0aGlzIGZvciBpbnRlZ3JhdGlvbiB1c2luZyBwYXR0ZXJucy48YnI+DQo8L2Rpdj4N
CjxkaXY+VGhpcyBjYW4gb25seSBiZW5lZml0IGNvbXB1dGF0aW9uYWwgbWF0aGVtYXRpY3MgaW4g
dGhlIGxvbmcgdGVybS48YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+SSd2ZSBhbHNvIGNhbXBhaWdu
ZWQgZm9yIGFzc29jaWF0aW5nIGFsZ29yaXRobXMgd2l0aCBwdWJsaXNoZWQgdGFibGVzLjxicj4N
CjwvZGl2Pg0KPGRpdj5JdCBpcyBpbXBvcnRhbnQgaW4gdGhlIGxvbmcgdGVybSB0byBoYXZlIHJl
ZmVyZW5jZSB2ZXJzaW9ucy4gVGhlIEFDTTxicj4NCjwvZGl2Pg0KPGRpdj51c2VkIHRvIGRvIHRo
aXMgeWVhcnMgYWdvLiBJJ2QgbGlrZSB0byBzZWUgYSBHcnVudHogYWxnb3JpdGhtIGZvciBsaW1p
dHM8YnI+DQo8L2Rpdj4NCjxkaXY+d2hlcmUgaXQgY2FuIGJlIGFwcGxpZWQsIGZvciBpbnN0YW5j
ZS4gSXQgd291bGQgYWxzbyBwcm92aWRlIGEgZm9jdXMgb248YnI+DQo8L2Rpdj4NCjxkaXY+JnF1
b3Q7bWlzc2luZyBhbGdvcml0aG1zJnF1b3Q7IG9yIGVkZ2UgY2FzZXMuIERhdmVucG9ydC9UcmFn
ZXIvQnJvbnN0ZWluPGJyPg0KPC9kaXY+DQo8ZGl2PmFsZ29yaXRobXMgcHJvbWlzZSBhIGRlY2lz
aW9uIHByb2NlZHVyZSBidXQgdGhlcmUgYXJlIG5vIGV4aXN0aW5nPGJyPg0KPC9kaXY+DQo8ZGl2
PmNvbXBsZXRlIGltcGxlbWVudGF0aW9ucy4gVGhlIHRhYmxlcyBjb3VsZCBoaWdobGlnaHQgbWlz
c2luZyBjYXNlcyw8YnI+DQo8L2Rpdj4NCjxkaXY+Z2l2aW5nIGZvY3VzIHRvIGVmZm9ydHMgdG8g
Y29tcGxldGUgdGhlIHByb2NlZHVyZS48YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8
ZGl2Pkl0IHdpbGwgYWxzbyBwdXQgYmFjay1wcmVzc3VyZSBvbiB0aGUgdGFibGVzIHRvIGRlZmlu
ZSBkaWZmZXJlbnQgdmVyc2lvbnM8YnI+DQo8L2Rpdj4NCjxkaXY+b2YgdGhlIHNhbWUgZm9ybXVs
YXMgYmFzZWQgb24gZG9tYWlucyAoQywgUiwgZXRjKS4gPGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2
Pjxicj4NCjwvZGl2Pg0KJnF1b3Q7VGhlIEdSIHdvcmsgd2FzIG1vcmUgdGhhbiBJIGhhZCBhbnRp
Y2lwYXRlZCZxdW90Oy4uLiB3aW5zIHRoZSBhd2FyZCBmb3I8YnI+DQo8L2Rpdj4NCnVuZGVyc3Rh
dGVtZW50IG9mIHRoZSBkZWNhZGUuIDxicj4NCjxicj4NClRoZSBnb2FsIG9mIHRoaXMgZWZmb3J0
IGlzIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gcmVhZCB0aG9zZSA8YnI+DQpmb3JtdWxhcyBkaXJl
Y3RseSBpbnRvIGEgQ0FTLiBBeGlvbSBpcyBteSBwcmltYXJ5IHRhcmdldCBidXQgPGJyPg0KaXQg
c2hvdWxkIGJlIGRvbmUgaW4gYSBzb21ld2hhdCBzeXN0ZW0gYWdub3N0aWMgZm9ybS4gPGJyPg0K
PC9kaXY+DQo8ZGl2Pjxicj4NCkkndmUgc3BlbnQgd2VsbCBvdmVyIGEgeWVhciBjcmVhdGluZyB0
aGUgY29tcHV0ZXIgYWxnZWJyYSB0ZXN0IHN1aXRlLjxicj4NCjwvZGl2Pg0KPGRpdj5JdCB3b3Vs
ZCBiZSBzbyBtdWNoIGVhc2llciBhbmQgbW9yZSB1c2VmdWwgaWYgdGhlIG9yaWdpbmFsIHNvdXJj
ZXM8YnI+DQo8L2Rpdj4NCjxkaXY+Y291bGQgYmUgcmVhZCBkaXJlY3RseS48YnI+DQo8L2Rpdj4N
CjxkaXY+PGJyPg0KPC9kaXY+DQpJIHJlYWQgeW91ciBwYXBlci4gVGhlcmUgaXMgYW4gaW50ZXJl
c3RpbmcgbWl4IG9mIHN5bnRheCBhbmQgc2VtYW50aWNzLjxicj4NCjxicj4NCjwvZGl2Pg0KSSBn
dWVzcyB0aGUgZGlmZmVyZW5jZSBpbiB0aGlzIGVmZm9ydCBpcyB0aGF0IHRoZSBzZW1hbnRpYyBt
YXJrdXAgaXMgPGJyPg0KPC9kaXY+DQppbnRlbmRlZCB0byBiZSB0cmFuc3BhcmVudCBhbmQgZ3Jv
dW5kZWQuIFRoZSB0cmFuc3BhcmVudCBhc3BlY3Q8YnI+DQo8L2Rpdj4NCmtlZXBzIHRoZSB0YWJs
ZXMgdW5jaGFuZ2VkIGluIHByaW50IGZvcm0uIFRoZSBncm91bmRlZCBhc3BlY3Qga2VlcHM8YnI+
DQo8L2Rpdj4NCnRoZSBzZW1hbnRpY3MgYmFzZWQgb24gc29tZSBhbGdvcml0aG1pYyBiYXNlLiBU
aGlzIGltcGxpZXMsIG9mPGJyPg0KPC9kaXY+DQpjb3Vyc2UsIHRoYXQgdGhlcmUgSVMgYW4gYWxn
b3JpdGhtaWMgYmFzZSB3aGljaCBkb2VzIG5vdCB5ZXQgZXhpc3Q8YnI+DQo8L2Rpdj4NCmZvciBz
b21lIG9mIHRoZSB3b3JrLjxicj4NCjxicj4NCjwvZGl2Pg0KQXMgeW91IGNhbiBzZWUgZnJvbSB0
aGUgQ0FUUyB3b3JrIEkndmUgYmVlbiB0cnlpbmcgdG8gdmFsaWRhdGUgPGJyPg0KPC9kaXY+DQpB
eGlvbSdzIHJlc3VsdHMgd2l0aCByZXNwZWN0IHRvIHB1Ymxpc2hlZCB0ZXh0cy4gVGhpcyBoYXMg
Zm91bmQgYm90aDxicj4NCjwvZGl2Pg0KPGRpdj5BeGlvbSBidWdzIGFuZCBtaXNwcmludHMgaW4g
cHVibGlzaGVkIHRleHRzLjxicj4NCjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NClRoZSBLYW1r
ZVsxXSBzdWl0ZSB3YXMgdGhlIGZpcnN0IGVmZm9ydCBmb3IgZGlmZmVyZW50aWFsIGVxdWF0aW9u
cy48YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+VGhlIFNwaWVnZWxbMl0gY2hhcHRlciAxNCBvbiBp
bmRlZmluaXRlIGludGVncmFscyBmb3IgaW50ZWdyYXRpb24uPGJyPg0KPGJyPg0KPC9kaXY+DQo8
ZGl2PlRoZSB2b24gU2VnZ2VyblszXSBib29rIG9uIGN1cnZlcyBhbmQgc3VyZmFjZXMgZm9yIGdy
YXBoaWNzLjxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5UaGUgTGVnZW5kcmUgYW5kIEdyYXppbmlb
NF0gb24gUGFzdGEgYnkgRGVzaWduIGZvciAzRCBncmFwaGljcy48YnI+DQo8YnI+DQo8L2Rpdj4N
CjxkaXY+VGhlIFJVQkkgd29yayBvbiBpbnRlZ3JhdGlvbi48YnI+DQo8L2Rpdj4NCjxkaXY+PGJy
Pg0KPC9kaXY+DQo8ZGl2PmFuZCwgY3VycmVudGx5IEknbSByZS1jcmVhdGluZyB0aGUgbnVtZXJp
Y3MgdGhhdCB3ZXJlIGxvc3Qgd2hlbiBOQUc8YnI+DQo8L2Rpdj4NCjxkaXY+cmVsZWFzZWQgdGhl
IG9wZW4gc291cmNlIHZlcnNpb24sIGxlYXZpbmcgbWUgc3dpbW1pbmcgdGhyb3VnaDxicj4NCjwv
ZGl2Pg0KPGRpdj5MdWtlJ3NbNV0gQWxnb3JpdGhtcyBib29rLjxicj4NCjwvZGl2Pg0KPGRpdj48
YnI+DQo8L2Rpdj4NCjxkaXY+d2hpY2gsIHRvIHF1b3RlIGEgZmFtb3VzIHBocmFzZSAmcXVvdDt3
YXMgbW9yZSB0aGFuIEkgaGFkIGFudGljaXBhdGVkJnF1b3Q7Ljxicj4NCjxicj4NCjwvZGl2Pg0K
PGRpdj5Zb3VyIEhhbmRib29rIG9mIEludGVncmF0aW9uWzZdIGhhcyBhIHNlY3Rpb24gb24gdmFy
aW91cyBrbm93bjxicj4NCjwvZGl2Pg0KPGRpdj4mcXVvdDtDYXZlYXRzLCBIb3cgYW4gaW50ZWdy
YXRpb24gcmVzdWx0IG1heSBiZSBpbmNvcnJlY3QmcXVvdDsuIFRoaXMgcmFpc2VzIHRoZTxicj4N
CjwvZGl2Pg0KPGRpdj53b25kZXJmdWwgdG9waWMgb2YgYnJhbmNoIGN1dHMgeWV0IGFnYWluLiBJ
IGRpZCBzb21lIHRlc3RpbmcgYW5kIGl0PGJyPg0KPC9kaXY+DQo8ZGl2PnNlZW1zIHRoYXQgQXhp
b20gYW5kIE1hdGhlbWF0aWNhIHNoYXJlIG9uZSBzZXQgd2hpbGUgTWFwbGUgYW5kPGJyPg0KPC9k
aXY+DQo8ZGl2Pk1heGltYSBzaGFyZSBhbm90aGVyLiA8YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+
QWxsIG9mIHdoaWNoIGxlYWRzIHRvIGEgbmVlZCB0byBjcmVhdGUgYmV0dGVyIHJlZmVyZW5jZSBt
YXRlcmlhbHMgdGhhdDxicj4NCjwvZGl2Pg0KPGRpdj5hcmUgZ2VuZXJhbGx5IGF2YWlsYWJsZSAo
dW5saWtlIHRoZSBBQ00gYWxnb3JpdGhtcyBmb3Igbm9uLXBheWluZzxicj4NCjwvZGl2Pg0KPGRp
dj5jdXN0b21lcnMpIGFuZCBkaXJlY3RseSB1c2VmdWwgZm9yIGNvbXB1dGF0aW9uYWwgbWF0aGVt
YXRpY3MuPGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2PlRoZSBjdXJyZW50IHBsYW4gaXMgdG8gdGFr
ZSBzb21lIHRhYmxlcywgZmluZCBvciByZS1jcmVhdGUgdGhlIGxhdGV4LDxicj4NCjwvZGl2Pg0K
PGRpdj5pbnZlbnQgYSBzZW1hbnRpYyBtYXJrdXAsIGFuZCB0aGVuIHdyaXRlIHRoZSAmcXVvdDt3
ZWF2ZXImcXVvdDsuIEF0IHRoaXMgcG9pbnQ8YnI+DQo8L2Rpdj4NCjxkaXY+dGhlIHJlc2VhcmNo
IGlzIHN0aWxsIGF0IHRoZSAmcXVvdDtwcm9vZiBvZiBjb25jZXB0JnF1b3Q7IHN0YWdlLiAodGV4
IGZvcm11bGE8YnI+DQo8L2Rpdj4NCjxkaXY+c291cmNlcyBhcmUgbW9zdCB3ZWxjb21lKS48YnI+
DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PlVsdGltYXRlbHkgSSdkIHJlYWxseSBs
aWtlIHRvIHNlZSBhIGJvb2sgb2YgZm9ybXVsYXMgYW5kIGFsZ29yaXRobXM8YnI+DQo8L2Rpdj4N
CjxkaXY+dGhhdCBJIGNhbiBqdXN0IGRyYWctYW5kLWRyb3AgaW50byBBeGlvbSBhbmQgYmUgYWJs
ZSB0byB1c2UgdGhlbTxicj4NCjwvZGl2Pg0KPGRpdj53aXRob3V0IGxpZmV0aW1lcyBvZiB3b3Jr
Ljxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5BY3R1YWxseSwgdGhhdCAncyBvbmx5IHRoZSBwZW51
bHRpbWF0ZSBnb2FsLiBJIGhhdmUgYXVnbWVudGVkPGJyPg0KPC9kaXY+DQo8ZGl2PkF4aW9tIHRv
IGluY2x1ZGUgcHJvb2ZzIChBQ0wyLENPUSkgc28gSSdkIGFsc28gbGlrZSB0byBzZWUgcHJvb2Zz
LDxicj4NCjwvZGl2Pg0KPGRpdj4odGhpcyBJUyBtYXRoZW1hdGljcywgYWZ0ZXIgYWxsKSBidXQg
bWF5YmUgd2UnbGwgbGVhdmUgdGhhdCBmb3IgPGJyPg0KbmV4dCBtb250aCA6LSkgPGJyPg0KPC9k
aXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5UaW0gPGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4N
CjwvZGl2Pg0KPGRpdj5bMF0gUmljaCwgQWxiZXJ0ICZxdW90O1J1bGUtYmFzZWQgTWF0aGVtYXRp
Y3MmcXVvdDs8YnI+DQo8YSBocmVmPSJodHRwOi8vd3d3LmFwbWF0aHMudXdvLmNhL35hcmljaC8i
IHRhcmdldD0iX2JsYW5rIj5odHRwOi8vd3d3LmFwbWF0aHMudXdvLmNhL35hcmk8d2JyPmNoLzwv
YT48YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQpbMV0gS2Fta2UuIEUuICZxdW90O0Rp
ZmZlcmVudGlhbGdsZWljaHVuZ2VuIExvc3VuZ3NtZXRob2RlbiB1bmQgTG9zdW5nZW4mcXVvdDs8
YnI+DQo8L2Rpdj4NCjxkaXY+Q2hlbHNlYSBQdWJsaXNoaW5nIENvbXBhbnksIE5ldyBZb3JrLCAx
OTU5PGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2PlsyXSBTcGllZ2VsLCBNdXJyYXkgUi4gJnF1b3Q7
TWF0aGVtYXRpY2FsIEhhbmRib29rJnF1b3Q7LCBTY2hhdW0ncyBPdXRsaW5lPGJyPg0KPC9kaXY+
DQo8ZGl2PlNlcmllczsgTWNHcmF3LUhpbGwgQm9vayBDb21wYW55IDE5Njg8YnI+DQo8L2Rpdj4N
CjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5bM10gdm9uIFNlZ2dlcm4sIERh
dmlkICZxdW90O0NSQyBTdGFuZGFyZCBDdXJ2ZXMgYW5kIFN1cmZhY2VzJnF1b3Q7LDxicj4NCjwv
ZGl2Pg0KPGRpdj5DUkMgUHJlc3MsIDE5OTMgSVNCTiAwLTg0OTMtMDE5Ni0zPGJyPg0KPC9kaXY+
DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5bNF0gTGVnZW5kcmUsIEdlb3JnZSBMLiBhbmQgR3Jh
emluaSwgU3RlZmFubyAmcXVvdDtQYXN0YSBieSBEZXNpZ24mcXVvdDssPGJyPg0KPC9kaXY+DQo8
ZGl2PlRoYW1lcyBhbmQgSHVkc29uLCAyMDAxPGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2Pls1XSBM
dWtlLCBZdWRlbGwgJnF1b3Q7QWxnb3JpdGhtcyBmb3IgdGhlIENvbXB1dGF0aW9uIG9mIE1hdGhl
bWF0aWNhbDxicj4NCjwvZGl2Pg0KPGRpdj5GdW5jdGlvbnMmcXVvdDssIEFjYWRlbWljIFByZXNz
LCAxOTc3IElTQk4gMC0xMi00NTk5NDAtNjxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5bNl0gWndp
bGxpbmdlciwgRGFuaWVsICZxdW90O0hhbmRib29rIG9mIEludGVncmF0aW9uJnF1b3Q7IEpvbmVz
IGFuZCBCYXJ0bGV0dCw8YnI+DQo8L2Rpdj4NCjxkaXY+TG9uZG9uLCAxOTkyIDxicj4NCjwvZGl2
Pg0KPGRpdj4mbmJzcDs8YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2IGNsYXNzPSJnbWFpbF9leHRy
YSI+PGJyPg0KPGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk9uIFN1biwgQXVnIDIxLCAyMDE2IGF0
IDEwOjE2IEFNLCBEYW4gWndpbGxpbmdlciA8c3BhbiBkaXI9Imx0ciI+DQombHQ7PGEgaHJlZj0i
bWFpbHRvOnp3aWxsaW5nQGF6LXRlYy5jb20iIHRhcmdldD0iX2JsYW5rIj56d2lsbGluZ0Bhei10
ZWMuY29tPC9hPiZndDs8L3NwYW4+IHdyb3RlOjxicj4NCjxibG9ja3F1b3RlIGNsYXNzPSJnbWFp
bF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4OyBib3JkZXItbGVmdDoxcHggI2NjYyBz
b2xpZDsgcGFkZGluZy1sZWZ0OjFleCI+DQo8ZGl2IGJnY29sb3I9IiNGRkZGRkYiPg0KPHA+QWxs
PGJyPg0KPGJyPg0KSSBiZWdhbiByZWFkaW5nIHRoaXMgdG9waWMncyBlbWFpbHMgd2hlbiB0aGV5
IGZpcnN0IGFwcGVhcmVkLCBhbmQgdGhlbiBmZWxsIGJlaGluZC48YnI+DQpTb3JyeSBmb3IgbXkg
bGF0ZSBjb21tZW50cy48YnI+DQo8YnI+DQpJIGFkbWlyZSB5b3VyIGVmZm9ydHMuPGJyPg0KVGhl
eSBtYXkgYmUgc29tZXdoYXQgcmVsYXRlZCB0byB3aGF0IEkgaGF2ZSBkb25lIGluIHRoZSBwYXN0
Ljxicj4NCk15IGV4cGVyaWVuY2UgaXMgYXMgZm9sbG93czo8YnI+DQo8YnI+DQooMSkgQ1JDIFNN
VEYgKFN0YW5kYXJkIE1hdGhlbWF0aWNhbCBUYWJsZXMgYW5kIEZvcm11bGEpPGJyPg0KPGJyPg0K
SSBwdXQgdGhlIH43MDAgaW50ZWdyYWxzIGluIENSQydzIFNNVEYgaW50byBhIGZvcm1hdCBmcm9t
IHdoaWNoIDxicj4NCihBKSB0aGV5IGNvdWxkIGJlIHR5cGVzZXQgaW4gTGFUZVg8YnI+DQooQikg
dGhleSBjb3VsZCBiZSBjb252ZXJ0ZWQgaW50byBNYXRoZW1hdGljYSAod2hpY2ggZWl0aGVyIGRp
ZCBhIHN5bWJvbGljIG9yIG51bWVyaWMgY29tcHV0YXRpb24pIC0gYW5kIHRoaXMgd2FzIGRvbmU8
YnI+DQo8YnI+DQpJIGxldCBSaWNoYXJkIEZhdGVtYW4gdXNlIHRoZW0gZm9yIGhpcyBleHBlcmlt
ZW50cy48YnI+DQo8YnI+DQo8YnI+DQooMikgRWxzZXZpZXIncyBHUiAoR3JhZHNodGV5biBhbmQg
Unl6aGlrJ3MgJnF1b3Q7VGFibGUgb2YgSW50ZWdyYWxzLCBTZXJpZXMsIGFuZCBQcm9kdWN0cyZx
dW90Oyk8YnI+DQo8YnI+DQpJIHB1dCB0aGUgfjEyLDAwMCAoaWYgbXkgbWVtb3J5IGlzIGNvcnJl
Y3QpIGludGVncmFscyBpbnRvIGEgZm9ybWF0IGZyb20gd2hpY2g8YnI+DQooQSkgdGhleSBjb3Vs
ZCBiZSBiZWF1dGlmdWxseSB0eXBlc2V0IGluIExhVGVYPGJyPg0KKEIpIHRoZXkgY291bGQgYmUg
Y29udmVydGVkIGludG8gTWF0aGVtYXRpY2EgLSBhbmQgdGhpcyB3YXMgTk9UIGRvbmU8YnI+DQpF
bmNsb3NlZCBpcyBhIFBERiBmaWxlIGRlc2NyaWJpbmcgdGhlIHdvcmsgYW5kIHRoZSByZXN1bHRp
bmcgZm9ybWF0Ljxicj4NCjxicj4NCjxicj4NCkEgZGlmZmVyZW50IGZvcm1hdCB3YXMgdXNlZCBm
b3IgU01URiBhbmQgR1IuPGJyPg0KV2hpbGUgdGhlIFNNVEYgd29yayB3YXMgbm90IHRvbyBhcmR1
b3VzLCB0aGUgR1Igd29yayB3YXMgbW9yZSB0aGFuIEkgaGFkIGFudGljaXBhdGVkLjxicj4NClRo
ZSBpbnB1dCAodGhlIHByZXZpb3VzIHZlcnNpb24gb2YgR1IpIGhhZCBsaXR0bGUgc3ludGFjdGlj
IHN0cnVjdHVyZSBhbmQgaXQgdG9vayBtdWNoIGVmZm9ydCB0byBnZXQgaXQgaW50byBzaGFwZS48
YnI+DQpJIHVzZWQgKG1hbnkgZGlmZmVyZW50KSByZWd1bGFyIGV4cHJlc3Npb25zIChpbiBwZXJs
KSB0byB0cmFuc2xhdGUgdGhlIGJ1bGsgb2YgdGhlIGJvb2ssIGFuZCB0aGVuIGxvdHMgb2YgaGFu
ZCB0dW5pbmcuPGJyPg0KPGJyPg0KV2hpbGUgSSB0aGluayB5b3UgYXJlIHdlbGwgYmV5b25kIG15
IHRoaW5raW5nIG9uIHRoZXNlIHRvcGljcywgcGxlYXNlIGxldCBtZSBrbm93IGlmIEkgY2FuIGhl
bHAuPGJyPg0KSSBhbSBmcmllbmRzIHdpdGggSG93YXJkIENvaGwgYXQgTklTVCwgd2hvIG1heSBi
ZSB0aGUgY3VycmVudCBsZWFkIGZvciBETE1GICgmcXVvdDtEaWdpdGFsIExpYnJhcnkgb2YgTWF0
aGVtYXRpY2FsIEZ1bmN0aW9ucyZxdW90OyBhdA0KPGEgaHJlZj0iaHR0cDovL2RsbWYubmlzdC5n
b3YiIHRhcmdldD0iX2JsYW5rIj5kbG1mLm5pc3QuZ292PC9hPikuIDxicj4NCkxldCBtZSBrbm93
IGlmIHlvdSBuZWVkIGFuIGludHJvZHVjdGlvbi48c3Bhbj48Zm9udCBjb2xvcj0iIzg4ODg4OCI+
PGJyPg0KPGJyPg0KPC9mb250Pjwvc3Bhbj48L3A+DQo8c3Bhbj48Zm9udCBjb2xvcj0iIzg4ODg4
OCI+PGJyPg0KPHByZSBjb2xzPSI3MiI+RGFuIFp3aWxsaW5nZXIKPGEgaHJlZj0ibWFpbHRvOnp3
aWxsaW5nQGF6LXRlYy5jb20iIHRhcmdldD0iX2JsYW5rIj56d2lsbGluZ0Bhei10ZWMuY29tPC9h
Pgo8YSBocmVmPSJ0ZWw6NjE3LTM4OC0yMzgyIiB2YWx1ZT0iJiM0MzsxNjE3Mzg4MjM4MiIgdGFy
Z2V0PSJfYmxhbmsiPjYxNy0zODgtMjM4MjwvYT48L3ByZT4NCjwvZm9udD48L3NwYW4+DQo8ZGl2
Pg0KPGRpdj4NCjxkaXY+T24gOC8yMC8yMDE2IDExOjMwIFBNLCBUaW0gRGFseSB3cm90ZTo8YnI+
DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPg0KPGRpdiBkaXI9Imx0ciI+DQo8ZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj5UaGUgZ2FtZSBp
cyB0byBkZWZpbmUgbGF0ZXggbWFya3VwIHRoYXQgaXMgdHJhbnNwYXJlbnQgdG8gdGhlIHN5bnRh
eDxicj4NCjwvZGl2Pg0KYnV0IGFkZHMgc2VtYW50aWNzIGZvciBwb3N0IHByb2Nlc3NpbmcuIDxi
cj4NCjxicj4NCjwvZGl2Pg0KU29tZSBzaW1wbGUgdGVzdHMgc2hvdyB0aGF0IHRoaXMgd29ya3Mu
IFN1cHBvc2Ugc2VsYXRleC5zdHkgY29udGFpbnM6PGJyPg0KPGJyPg0KPC9kaXY+DQpcbmV3Y29t
bWFuZHtcSU5UfVsxXXsjMX08YnI+DQo8L2Rpdj4NClxuZXdjb21tYW5ke1xWQVJJQUJMRX1bMV17
IzF9PGJyPg0KPC9kaXY+DQpcbmV3Y29tbWFuZHtcUE9MWX1bMV17IzF9PGJyPg0KPC9kaXY+DQpc
bmV3Y29tbWFuZHtcSU5URUd9WzJde1xpbnR7IzE8d2JyPn19PGJyPg0KPGJyPg0KPC9kaXY+DQpU
aGlzIGRlZmluZXMgNCBuZXcgbGF0ZXggbWFya3Vwcy4gVGhlIG51bWJlciBpbiB0aGUgc3F1YXJl
IGJyYWNrZXRzPGJyPg0KPC9kaXY+DQpkZWZpbmVzIHRoZSBudW1iZXIgb2YgZXhwZWN0ZWQgYXJn
dW1lbnRzLiBUaGUgYnJhY2UgYXJndW1lbnQgPGJyPg0KPC9kaXY+DQpkZWxpbWl0ZXMgdGhlIGNo
YXJhY3RlcnMgdGhhdCB3aWxsIG9jY3VyIGR1cmluZyBleHBhbnNpb24gd2l0aCB0aGUgIzE8YnI+
DQo8L2Rpdj4NCnJlcGxhY2VkIGJ5IHRoZSBmaXJzdCBhcmd1bWVudC48YnI+DQo8YnI+DQo8L2Rp
dj4NCjxkaXY+KEFzIGFuIGFzaWRlLCBJTlQsIFZBUklBQkxFLCBhbmQgUE9MWSBqdXN0IGhhcHBl
biB0byBiZSB2YWxpZDxicj4NCjwvZGl2Pg0KPGRpdj5BeGlvbSBkb21haW4gYWJicmV2aWF0aW9u
cywgaGVuY2UgdGhlIG5hbWUgY2hvaWNlLiBUaGlzIGNob2ljZTxicj4NCjwvZGl2Pg0KPGRpdj5v
ZiBuYW1lcyBnaXZlcyBncm91bmRpbmcgdG8gdGhlIHNlbWFudGljcy4pPGJyPg0KPC9kaXY+DQo8
ZGl2Pjxicj4NCjwvZGl2Pg0KTm90aWNlIHRoYXQgXElOVEVHIHRha2VzIHR3byBhcmd1bWVudHMg
YnV0IHdpbGwgZGlzcGxheSBvbmx5IG9uZS48YnI+DQo8L2Rpdj4NClRoaXMgYWxsb3dzIHRoZSB2
YXJpYWJsZSBvZiBpbnRlZ3JhdGlvbiB0byBiZSBwYXNzZWQgaW4gdGhlIHNlbWFudGljczxicj4N
CjwvZGl2Pg0Kd2l0aG91dCBzaG93aW5nIHVwIGluIHRoZSBvdXRwdXQuIFRoaXMgYWxsb3dzIHRo
ZSBzZW1hbnRpY3MgdG8gY2Fycnk8YnI+DQo8L2Rpdj4NCjxkaXY+YWRkaXRpb25hbCwgbm9uLWRp
c3BsYXkgaW5mb3JtYXRpb24gbmVlZGVkIGJ5IHRoZSBDQVMuPGJyPg0KPC9kaXY+DQo8ZGl2Pjxi
cj4NCjwvZGl2Pg0KU29tZSBleGFtcGxlcyBmb2xsb3cuPGJyPg0KPGJyPg0KPC9kaXY+DQpBbiBp
bnRlZ2VyIDMgY2FuIGJlIHdyYXBwZWQgYXMgXElOVHszfSBidXQgd2lsbCBzdGlsbCBkaXNwbGF5
IGFzIDMuPGJyPg0KPC9kaXY+DQo8YnI+DQpBIHZhcmlhYmxlIHggY2FuIGJlIHdyYXBwZWQgYXMg
XFZBUklBQkxFe3h9LCBkaXNwbGF5ZWQgYXMgeC48YnI+DQo8L2Rpdj4NCjxicj4NCiRcUE9MWXtc
SU5UezN9XFZBUklBQkxFe3h9fSQgd2lsbCBkaXNwbGF5IGFzIDMqeDxicj4NCjwvZGl2Pg0KPGJy
Pg0KJFxJTlRFR3tcUE9MWXtcSU5UezN9XFZBUklBQkxFPHdicj57eH1+ZHh9fXt4fSB3aWxsIGJl
IHRoZSBzYW1lIHJlc3VsdDxicj4NCjwvZGl2Pg0KYXMgJFxpbnR7M3h+ZHh9JCwgdGhhdCBpcywg
YW4gPGJyPg0KPC9kaXY+DQombmJzcDsgKGludGVncmFsc2lnbikgM3ggZHg8YnI+DQo8L2Rpdj4N
CmJ1dCBub3RpY2UgdGhhdCB0aGUgdmFyaWFibGUgb2YgaW50ZWdyYXRpb24gaXMgaW4gdGhlIHNl
bWFudGljIG1hcmt1cC48YnI+DQo8YnI+DQo8L2Rpdj4NClRoZXNlIHRyaXZpYWwgbWFjcm9zIGNh
biBiZSBtYWRlIGxlc3MgdmVyYm9zZSBhbmQgY2VydGFpbmx5IDxicj4NCjwvZGl2Pg0KbW9yZSBj
bGV2ZXIgYnV0IHRoYXQncyBub3QgdGhlIHBvaW50IGJlaW5nIG1hZGUgaGVyZS48YnI+DQo8YnI+
DQo8L2Rpdj4NCkEgJ3dlYXZlcicgcHJvZ3JhbSB3b3VsZCBzZWUgdGhlIGludGVncmF0aW9uIGV4
cHJlc3Npb24gYXM8YnI+DQo8YnI+DQokXElOVEVHe1xQT0xZe1xJTlR7M31cVkFSSUFCTEU8d2Jy
Pnt4fX5keH19e3h9JDxicj4NCjwvZGl2Pg0KPGJyPg0Kd2l0aCBhbGwgb2YgdGhlIHNlbWFudGlj
IHRhZ3MuIFRoZSB3ZWF2ZXIncyBqb2IgaXMgdG8gcmV3cml0ZSB0aGlzPGJyPg0KPC9kaXY+DQpl
eHByZXNzaW9uIGludG8gYW4gaW5wdXRmb3JtIGZvciB0aGUgQ0FTLiBJbiBBeGlvbSB0aGF0IHdv
dWxkIGJlPGJyPg0KPC9kaXY+DQo8YnI+DQppbnRlZ3JhdGUoMyp4LHgpPGJyPg0KPGJyPg0KPC9k
aXY+DQpUaGUgc2VtYW50aWNzIG1hcmt1cCBtYWtlcyB0aGUgZGlzcGxheSBwcmV0dHkgYW5kIHRo
ZSBzZW1hbnRpYzxicj4NCjwvZGl2Pg0KcGFyc2luZyBwb3NzaWJsZS4gRGVwZW5kaW5nIG9uIHRo
ZSBzeXN0ZW0sIG1vcmUgb3IgbGVzcyBwYXJzaW5nPGJyPg0KPC9kaXY+DQptYXJrdXAgY2FuIGV4
aXN0LiBBeGlvbSwgZm9yIGV4YW1wbGUsIHdvdWxkIG5vdCBuZWVkIHRoZSBcSU5UIG9yPGJyPg0K
PC9kaXY+DQpcVkFSSUFCTEUgdG8gZ2V0IGEgY29ycmVjdCBwYXJzZSBzbyB0aGUgZXhwcmVzc2lv
biBjb3VsZCBiZTxicj4NCjwvZGl2Pg0KJFxJTlRFR3szeH5keH17eH0kPGJyPg0KPGRpdj4NCjxk
aXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PlRoaXMgdmFsaWRhdGVzIHRo
ZSBmdW5kYW1lbnRhbCBpZGVhLjxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5UaGUgbmV4dCBzdGVw
IGlzIHRvIHdyaXRlIGEgc2ltcGxlIHdlYXZlciBwcm9ncmFtLiBUaGUgY2xldmVyIHBhdGg8YnI+
DQo8L2Rpdj4NCjxkaXY+d291bGQgYmUgdG8gZW1iZWQgYSBkZWNsYXJhdGl2ZSBmb3JtIG9mIHRo
ZSBwYXJzZXIgc3ludGF4IChCTkY/KTxicj4NCjwvZGl2Pg0KPGRpdj5hcyBjb21tZW50cyBpbiBz
ZWxhdGV4LnN0eS4gVGhhdCB3YXkgdGhlIGxhdGV4IHNlbWFudGljcyBhbmQgdGhlPGJyPg0KPC9k
aXY+DQo8ZGl2PndlYXZlciBzeW50YXggYXJlIGtlcHQgaW4gc3luYy4gPGJyPg0KPGJyPg0KV2Vh
dmVyIHdvdWxkIHJlYWQgdGhlIEJORiBjb21tZW50cyBmcm9tIHNlbGF0ZXguc3R5IGFuZCA8YnI+
DQp0aGUgZm9ybXVsYSB3aXRoIHNlbWFudGljIG1hcmt1cCBhcyBpbnB1dCBhbmQgcGFyc2UgdGhl
IHNlbWFudGljIDxicj4NCm1hcmt1cCBpbnRvIGlucHV0Zm9ybXMuIChXaXNoIEkgdGhvdWdodCBv
ZiB0aGlzIGhvbWV3b3JrIHByb2JsZW0gPGJyPg0Kd2hlbiBJIHRhdWdodCB0aGUgY29tcGlsZXIg
Y291cnNlIDotKSApLjxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5Ob3RlIHRoYXQsIGRlcGVuZGlu
ZyBvbiB0aGUgQk5GLCB3ZWF2ZXIgY291bGQgYmUgdXNlZCB0byA8YnI+DQo8L2Rpdj4NCjxkaXY+
Z2VuZXJhdGUgb3V0cHV0IGZvciBNYXhpbWEncyB0cmVlLWJhc2VkIHJlcHJlc2VudGF0aW9uLiA8
YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PkFuIGFsdGVybmF0aXZlIG5leHQg
c3RlcCBpcyB0byBsb29rIGF0IGEgQ1JDIGJvb2ssIHJlLWNyZWF0ZSB0aGU8YnI+DQo8L2Rpdj4N
CjxkaXY+c3ludGFjdGljIGxhdGV4IGFuZCB0aGVuIGNyZWF0ZSB0aGUgc2VsYXRleC5zdHkgZW50
cmllcyBuZWNlc3Nhcnk8YnI+DQo8L2Rpdj4NCjxkaXY+dG8gZ2VuZXJhdGUgd2VhdmVyIGlucHV0
Ljxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5JbmZpbml0ZXNpbWFsIHByb2dyZXNzLCBidXQgcHJv
Z3Jlc3Mgbm9uLXRoZS1sZXNzLjxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5UaW08YnI+DQo8YnI+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4N
CjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0K
PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8
L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJnbWFpbF9leHRyYSI+PGJyPg0KPGRpdiBjbGFzcz0i
Z21haWxfcXVvdGUiPk9uIEZyaSwgQXVnIDE5LCAyMDE2IGF0IDEyOjQ1IEFNLCBUaW0gRGFseSA8
c3BhbiBkaXI9Imx0ciI+DQombHQ7PGEgaHJlZj0ibWFpbHRvOmF4aW9tY2FzQGdtYWlsLmNvbSIg
dGFyZ2V0PSJfYmxhbmsiPmF4aW9tY2FzQGdtYWlsLmNvbTwvYT4mZ3Q7PC9zcGFuPiB3cm90ZTo8
YnI+DQo8YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MCAwIDAg
LjhleDsgYm9yZGVyLWxlZnQ6MXB4ICNjY2Mgc29saWQ7IHBhZGRpbmctbGVmdDoxZXgiPg0KPGRp
diBkaXI9Imx0ciI+DQo8ZGl2Pg0KPGRpdj48YnI+DQpPbmUgb2YgdGhlIEF4aW9tIHByb2plY3Qg
Z29hbHMgaXMgdG8gZGV2ZWxvcCBhICZxdW90O0NvbXB1dGVyIEFsZ2VicmEgVGVzdCA8YnI+DQo8
L2Rpdj4NClN1aXRlJnF1b3Q7IChDQVRTKS4gQWxiZXJ0IFJpY2ggaGFzIGRvbmUgdGhpcyB3aXRo
IFJVQkkgYW5kIGludGVncmF0aW9uLiBUaGF0PGJyPg0KPC9kaXY+DQo8ZGl2PndvcmsgaXMgYWxy
ZWFkeSBwYXJ0aWFsbHkgaW4gdGhlIHRlc3Qgc3VpdGUgYW5kIHdvcmsgaGFzIGJlZW4gZG9uZSBv
biB0aGU8YnI+DQo8L2Rpdj4NCjxkaXY+cGF0dGVybiBtYXRjaGluZy4gTGFyZ2UgZGF0YXNldHMg
KGxpa2UgS2Fta2UpIGFyZSBhbHdheXMgd2VsY29tZS4gU29tZSw8YnI+DQo8L2Rpdj4NCjxkaXY+
c3VjaCBhcyBTY2hhdW1zIHdlcmUgaGFuZC1kZXZlbG9wZWQuIFRoaXMgaXMgdGVkaW91cy48YnI+
DQo8YnI+DQo8ZGl2PkFzIEF4aW9tIGRldmVsb3BzIG1vcmUgZXhwbGFuYXRpb25zIGFuZCBkb2N1
bWVudGF0aW9uIGl0IHdvdWxkIGJlPGJyPg0KPC9kaXY+DQo8ZGl2PnVzZWZ1bCB0byBleGVjdXRl
IHRoZSBmb3JtdWxhcyBkaXJlY3RseSBzbyB0aGVyZSBpcyBhIGxvY2FsIGluY2VudGl2ZSB0byBi
ZTxicj4NCjwvZGl2Pg0KY2xlYXIgYWJvdXQgc2VtYW50aWNzLjxicj4NCjxicj4NCjwvZGl2Pg0K
PGRpdj5JbiB0aGUgbG9uZyB0ZXJtIHRoZSBob3BlIGlzIHRoYXQgd2UgY2FuIGp1c3QgZ3JhYiBm
b3JtdWxhcyBkaXJlY3RseSBmcm9tPGJyPg0KPC9kaXY+DQo8ZGl2PnRoZWlyIHNvdXJjZXMgKGFs
YSBsaXRlcmF0ZSBwcm9ncmFtbWluZykuIFlvdXIgd29yayBtYWtlcyBpdCBwbGFpbiB0aGF0IHJh
dzxicj4NCjwvZGl2Pg0KPGRpdj5sYXRleCBkb2VzIG5vdCBjYXJyeSBzdWZmaWNpZW50IHNlbWFu
dGljcy4gVGhlcmUgaXMgYSBnbG9iYWwgcXVlc3Rpb24gb2YgPGJyPg0KPC9kaXY+DQo8ZGl2Pmhv
dyB0byBtYWtlIHRoaXMgd29yay4gVW5mb3J0dW5hdGVseSBhIGdlbmVyYWwgY3Jvc3MtcGxhdGZv
cm0gc29sdXRpb248YnI+DQo8L2Rpdj4NCjxkaXY+aXMgZGlmZmljdWx0IChjaXRlIERld2FyL0Rh
dmVucG9ydC9ldCBhbC4gZm9yIE9wZW5NYXRoKS4gPGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4NCjwv
ZGl2Pg0KPGRpdj5TaW5jZSBBeGlvbSBpcyBsaXRlcmF0ZSBhbmQgZXh0cmFjdGluZyBmb3JtdWxh
cyBpcyB0cml2aWFsIGl0IHNlZW1zIHRoYXQ8YnI+DQo8L2Rpdj4NCjxkaXY+bGl0ZXJhdGUgbWFy
a3VwIGlzIGEgbmF0dXJhbCBnb2FsLiBTaW5jZSBBeGlvbSB1c2VzIGFic3RyYWN0IGFsZ2VicmE8
YnI+DQo8L2Rpdj4NCjxkaXY+YXMgYSBzY2FmZm9sZCB0aGUgdHlwZSB0b3dlciBhbHJlYWR5IGhh
cyBhIGxvdCBvZiBheGlvbWF0aWMgc2VtYW50aWNzLjxicj4NCjwvZGl2Pg0KPGRpdj5UaGUgbmF0
dXJhbCBqb2luIG9mIGxpdGVyYXRlIGxhdGV4IGFuZCBhYnN0cmFjdCBhbGdlYnJhIGlzIGNsZWFy
bHk8YnI+DQo8L2Rpdj4NCjxkaXY+c2VtYW50aWMgbWFya3VwLCBha2Egc2VsYXRleC48YnI+DQo8
YnI+DQo9PT09PT09PT09PTxicj4NCjwvZGl2Pg0KPGRpdj5Db25zaWRlcmF0aW9uIDEwOiBzZW1h
bnRpYy0mZ3Q7aW5wdXRmb3JtIHRyYW5zbGF0aW9uICh3ZWF2ZXI/IDotKSApPGJyPg0KPC9kaXY+
DQo8c3Bhbj4NCjxkaXY+PGJyPg0KJmd0O3ggYW5kIG5vdCB4Jm5ic3A7Jm5ic3A7IGhhcyBubyBw
YXJ0aWN1bGFyIG1lYW5pbmcsJm5ic3A7IGJ1dCBpZiB4IGlzIGV4cGxpY2l0bHkgdHJ1ZSBvciBm
YWxzZSw8YnI+DQomZ3Q7TWF4aW1hIHNpbXBsaWZpZXMgaXQgdG8gZmFsc2UuJm5ic3A7IElmIFNF
QUxBVEVYIGhhcyBhIHNlbWFudGljcyAtLSBhcmUgeW91PGJyPg0KJmd0O2RlZmluaW5nIHlldCBh
bm90aGVyIENBUz8mbmJzcDsgT3IgcGVyaGFwcyB5b3Ugc2hvdWxkIGxpbmsgaXQgMTAwJSB0byBB
eGlvbSdzPGJyPg0KJmd0O3NlbWFudGljcywgd2hpY2ggeW91IHByZXN1bWFibHkga25vdyBhYm91
dCBhbmQgY2FuIG1vZGlmeS48YnI+DQo8YnI+DQo8L2Rpdj4NCjwvc3Bhbj4NCjxkaXY+SSBhbSBO
T1QgZGVmaW5pbmcgYW5vdGhlciBDQVMuIFRoZSBnb2FsIGlzIGEgJnF1b3Q7d2VsbC1kZXNpZ25l
ZCBoYWNrJnF1b3Q7IHVzaW5nPGJyPg0KPC9kaXY+DQo8ZGl2PnVuaXZlcnNhbGx5IHVuZGVyc3Rv
b2QgbGF0ZXgsIGEgbGF0ZXggcGFja2FnZSwgYW5kIGEgdHJhbnNsYXRpb24gcHJvZ3JhbS48YnI+
DQo8L2Rpdj4NCjxkaXY+PGJyPg0KVGhlIHNlbGF0ZXggaWRlYSBpcyBvbmx5IHBhcnRpYWxseSBB
eGlvbSBzcGVjaWZpYy4gXElOVCwgZm9yIGluc3RhbmNlLCBzZWVtcyA8YnI+DQpwcmV0dHkgZ2Vu
ZXJpYy4gSG93ZXZlciwgaWYgdGhlIGlkZWEgaXMgdG8gcmVhZCBmb3JtdWxhcyBhbmQgZGlzYW1i
aWd1YXRlIDxicj4NCmE9YiAoYm9vbGVhbikgdnMgYT1iIChlcXVhdGlvbikgdGhlbiB0aGUgbWFy
a3VwIG5lZWRzIHRvIGJlIGdyb3VuZGVkIDxicj4NCnRvIGhhdmUgbWVhbmluZy4gQXhpb20ncyBk
b21haW5zIChCT09MRUFOKSBhbmQgKEVRKSBhcyB0aGUgZ3JvdW5kPGJyPg0KPC9kaXY+DQo8ZGl2
Pjxicj4NClxCT09MRUFOKGE9Yik8YnI+DQo8L2Rpdj4NCjxkaXY+XEVRKGE9Yik8YnI+DQo8YnI+
DQo8L2Rpdj4NCjxkaXY+YXJlIHVuYW1iaWd1b3VzIHJlbGF0aXZlIHRvIGVhY2ggb3RoZXIgaW4g
QXhpb20uIEkgZG9uJ3Qga25vdyBlbm91Z2g8YnI+DQo8L2Rpdj4NCjxkaXY+YWJvdXQgTWF4aW1h
IHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgbWlnaHQgdHJhbnNsYXRlLjxicj4NCjwvZGl2Pg0KPGRp
dj48YnI+DQo8L2Rpdj4NCjxkaXY+VGhlIGV4dHJhY3RlZCBmb3JtdWxhcyB3aXRoIHRoZSBkZWNv
cmF0ZWQgc2VtYW50aWNzIHN0aWxsIG5lZWRzIGE8YnI+DQo8L2Rpdj4NCjxkaXY+c2VtYW50aWNz
LSZndDtpbnB1dGZvcm0gKHdlYXZlcikgcHJlLXByb2Nlc3NvciB3aGljaCBjb3VsZCBiZSBNYXhp
bWEgPGJyPg0Kc3BlY2lmaWMuIFRoaXMgd291bGQgbGVhZCB0byBkZWJhdGUgYWJvdXQgd2hhdCAm
cXVvdDtlcXVhbGl0eSZxdW90OyBtZWFucywgb2YgY291cnNlLjxicj4NCjwvZGl2Pg0KPGRpdj48
YnI+DQo8L2Rpdj4NCjxkaXY+QXhpb20gaGFzIHRyaWVkIHRvIGNyZWF0ZSBhIGZpcnN0LW9yZGVy
ICZxdW90O3Jvc2V0dGEgc3RvbmUmcXVvdDsgdG8gdHJhbnNsYXRlIGJldHdlZW48YnI+DQo8L2Rp
dj4NCjxkaXY+c3lzdGVtcyAocm9zZXR0YS5wZGYgWzFdKSBidXQgaXQgaXMgdG9vIHNoYWxsb3cg
dG8gY29uc2lkZXIgcHJvdmlkaW5nIDxicj4NCmNyb3NzLXBsYXRmb3JtIHNlbWFudGljcy48YnI+
DQo8YnI+DQo9PT09PT09PT09PT09PGJyPg0KPC9kaXY+DQo8ZGl2PkNvbnNpZGVyYXRpb24gMTE6
IFxzY29wZSBpbiBzZWxhdGV4PHNwYW4+PGJyPg0KPGJyPg0KJmd0O0FzIGZhciBhcyByZWNvcmRp
bmcgc3R1ZmYgaW4gRExNRiAtLSB0aGVyZSBhcmUgcHJlc3VtYWJseSBzY29wZSBpc3N1ZXM8YnI+
DQomZ3Q7KCZxdW90O2luIHRoaXMgY2hhcHRlciBuLG0gYXJlIG5hdHVyYWwgbnVtYmVycy4uLi4m
cXVvdDspJm5ic3A7IGFuZCBtYXliZSBldmVuIGEgbmVlZDxicj4NCiZndDt0byBtYWtlIHZhbHVl
IGFzc2lnbm1lbnRzLiZuYnNwOyA8YnI+DQomZ3Q7SSB0aGluayB5b3UgbmVlZCB0byBtb2RlbCB0
aGVzZSBpbiBTRUFMQVRFWCB0b28uPGJyPg0KPGJyPg0KPC9zcGFuPjwvZGl2Pg0KPGRpdj4oU2Vl
IENvbnNpZGVyYXRpb24gNik8YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PkNs
ZWFybHkgdGhlcmUgYXJlIHNjb3BpbmcgaXNzdWVzLiBNeSBjdXJyZW50IHRoaW5raW5nIGlzIHRv
IGNyZWF0ZSBhPGJyPg0KPC9kaXY+DQo8ZGl2PlxzY29wZSBtYXJrdXAgdGhhdCB3b3VsZCBtYW5h
Z2UgdGhlIGVudmlyb25tZW50KHMpLiBUaGlzIGlzIG5vdCA8YnI+DQphIG5ldyBpc3N1ZSAoc2Vl
ICZxdW90O0xpc3AgaW4gU21hbGwgUGllY2VzJnF1b3Q7IFswXSk8YnI+DQo8YnI+DQo8L2Rpdj4N
CjxkaXY+VGhlcmUgc2VlbSB0byBiZSB0aHJlZSBjb25jZXJucy48YnI+DQo8L2Rpdj4NCjxkaXY+
PGJyPg0KPC9kaXY+DQo8ZGl2PkZpcnN0IGlzIHRoZSBzY29wZSBuYW1lLCB3aXRoIHNvbWV0aGlu
ZyBsaWtlICdnbG9iYWwnIGFzIGEga2V5d29yZC48L2Rpdj4NCjxkaXY+U2Vjb25kIGlzIHRoZSAm
cXVvdDtjbG9zdXJlIGNoYWluJnF1b3Q7IG9mIG90aGVyIHNjb3Blcy48YnI+DQo8L2Rpdj4NCjxk
aXY+VGhpcmQgaXMgdGhlIHN5bWJvbCBiZWluZyBzY29wZWQuPGJyPg0KPC9kaXY+DQo8ZGl2Pjxi
cj4NClxzY29wZXtuYW1lfXtjaGFpbn17c3ltYm9sfTxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5U
aGUgd2VhdmVyIHByb2dyYW0gd291bGQgd2FsayB0aGlzIGNoYWluIHRvIGNyZWF0ZSB0aGUgcHJv
cGVyIDxicj4NCmZpbGUgc3ludGF4IGZvciBzeXN0ZW0gaW5wdXQuPGJyPg0KPC9kaXY+DQo8ZGl2
Pjxicj4NCj09PT09PT09PT09PTxicj4NCjwvZGl2Pg0KPGRpdj5Db25zaWRlcmF0aW9uIDEyOiBT
eXN0ZW0gc3BlY2lmaWMgY29tbWFuZHMgXGF4aW9tPGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2PkFs
b25nIHdpdGggdGhlIGZvcm11bGFzIGl0IGlzIGNsZWFyIHRoYXQgc29tZSBzeXN0ZW0gc3BlY2lm
aWM8YnI+DQo8L2Rpdj4NCjxkaXY+aW5wdXQgbWF5IGJlIHJlcXVpcmVkLCBzdWNoIGFzIGxvYWRp
bmcgZmlsZXMsIGNsZWFyaW5nIHdvcmtzcGFjZXMsPGJyPg0KPC9kaXY+DQo8ZGl2PmV0Yy4gU29t
ZSBvZiB0aGVzZSBtYXkgYmUgZG9uZSBpbiB0aGUgd2VhdmVyIHByb2dyYW0sIHN1Y2ggYXM8YnI+
DQo8L2Rpdj4NCjxkaXY+YmV0d2VlbiBmb3JtdWxhcy4gT3RoZXJzIG1heSBuZWVkIHRvIGJlIGFk
ZGVkIHRvIHRoZSBzZW1hbnRpY3MgPGJyPg0KYmxvY2suIFNvIGEgbWFya3VwIHRoYXQgcHJvdmlk
ZXMgdmVyYmF0aW0gcXVvdGluZyBwZXIgc3lzdGVtIDxicj4NCm1pZ2h0IGJlIGRlZmluZWQsIGUu
Zy4gPGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2PlxheGlvbXspY2xlYXIgYWxsfSZuYnNwOyAlY2xl
YXIgdGhlIHdvcmtzcGFjZTxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj53aGljaCB3b3VsZCBzaW1w
bHkgcXVvdGUgYW4gaW5wdXQgbGluZS48YnI+DQo8YnI+DQo9PT09PT09PT09PT09PTxicj4NCjwv
ZGl2Pg0KPGRpdj48YnI+DQpOb3RlIHRoYXQgc28gZmFyIGFsbCB0aGF0IGlzIGJlaW5nIHN1Z2dl
c3RlZCBpcyB0cmFuc3BhcmVudCBmb3JtdWxhPGJyPg0KPC9kaXY+DQo8ZGl2Pm1hcmt1cHMgd2hp
Y2ggZG8gbm90IGltcGFjdCB0aGUgcHJlc2VudGF0aW9uLCBzb21lIHNwZWNpYWwgdGFncyA8YnI+
DQooXHNjb3BlLCBcYXhpb20sLi4uKSBhbmQgYSB3ZWF2ZXIgcHJvZ3JhbSwgYWxvbmcgd2l0aCB0
aGUgYWJpbGl0eSB0byA8YnI+DQpyZWFkIHRoZSBsYXRleCBhbmQgZXh0cmFjdCBuYW1lZCBmb3Jt
dWxhcyAoYWthIGEgbGl0ZXJhdGUgcHJvZ3JhbSw8YnI+DQo8L2Rpdj4NCjxkaXY+d2hpY2ggQXhp
b20gYWxyZWFkeSBjYW4gZG8pLjxicj4NCjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+
SXQgb3VnaHQgdG8gYmUgcG9zc2libGUgKGJ5IGRlc2lnbikgdG8gY3JlYXRlIGEgc2VtYW50aWMg
dmVyc2lvbiBvZjxicj4NCjwvZGl2Pg0KPGRpdj5DUkMgdGhhdCBhbnkgc3lzdGVtIGNvdWxkIGlt
cG9ydCwgYXNzdW1pbmcgYSAmcXVvdDtzdWZmaWNpZW50bHkgY2xldmVyPGJyPg0KPC9kaXY+DQo8
ZGl2PndlYXZlciZxdW90Oy48YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+T24gYSBtb3JlIGFtYml0
aW91cyBub3RlLCBJIGFtIHRyeWluZyB0byBmaW5kIGEgd2F5IHRvIGtlZXAgdGhlIHNlbGF0ZXg8
YnI+DQo8L2Rpdj4NCjxkaXY+bWFya3VwICZxdW90O2hpZGRlbiZxdW90OyBpbiBhIHBkZiBhbmQg
dXNlIGl0IGFzIHRoZSBjbGlwYm9hcmQgcGFzdGUgd2hlbiB0aGU8YnI+DQo8L2Rpdj4NCjxkaXY+
Zm9ybXVsYSBpcyBzZWxlY3RlZC4gQW55b25lIHdpdGggYSBjbHVlLCBwbGVhc2UgaGVscC48YnI+
DQo8YnI+DQo9PT09PT09PT09PT09PT08YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8
ZGl2PlswXSBRdWVpbm5lYywgQ2hyaXN0b3BoZXIsICZxdW90O0xpc3AgaW4gU21hbGwgUGllY2Vz
JnF1b3Q7IElTQk4gPHNwYW4+OTc4LTA1MjE1NDU2NjI8YnI+DQooMjAwMyk8YnI+DQo8YnI+DQo8
L3NwYW4+PC9kaXY+DQo8ZGl2PjxzcGFuPlsxXSBXZXN0ZXIsIE1pY2hhZWwgSi4gYW5kIERhbHks
IFRJbW90aHkgJnF1b3Q7Um9zZXR0YSZxdW90OyA8YnI+DQo8L3NwYW4+PC9kaXY+DQo8ZGl2Pjxz
cGFuPjxhIGhyZWY9Imh0dHA6Ly9heGlvbS1kZXZlbG9wZXIub3JnL2F4aW9tLXdlYnNpdGUvcm9z
ZXR0YS5wZGYiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vYXhpb20tZGV2ZWxvcGVyLm9yZy9heGk8
d2JyPm9tLXdlYnNpdGUvcm9zZXR0YS5wZGY8L2E+PGJyPg0KPGJyPg0KPC9zcGFuPjwvZGl2Pg0K
PGRpdj48YnI+DQo8YnI+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2IGNsYXNz
PSJnbWFpbF9leHRyYSI+PGJyPg0KPGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk9uIFRodSwgQXVn
IDE4LCAyMDE2IGF0IDU6MzAgUE0sIFJpY2hhcmQgRmF0ZW1hbiA8c3BhbiBkaXI9Imx0ciI+DQom
bHQ7PGEgaHJlZj0ibWFpbHRvOmZhdGVtYW5AYmVya2VsZXkuZWR1IiB0YXJnZXQ9Il9ibGFuayI+
ZmF0ZW1hbkBiZXJrZWxleS5lZHU8L2E+Jmd0Ozwvc3Bhbj4gd3JvdGU6PGJyPg0KPGJsb2NrcXVv
dGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7IGJvcmRlci1s
ZWZ0OjFweCAjY2NjIHNvbGlkOyBwYWRkaW5nLWxlZnQ6MWV4Ij4NCjxkaXYgYmdjb2xvcj0iI0ZG
RkZGRiI+DQo8ZGl2PnRoYW5rcyBmb3IgYWxsIHRoZSByZWZlcmVuY2VzIDopPGJyPg0KPGJyPg0K
SSdtIG5vdCBzdXJlIGlmIEknbSBnb2luZyB0byByZXBlYXQgY29tbWVudHMgSSZuYnNwOyBtYWRl
IGFscmVhZHkgc29tZXdoZXJlLjxicj4NCkZpcnN0LCZuYnNwOyBoYXMgRGFuIFp3aWxsaW5nZXIg
d2VpZ2hlZCBpbj8mbmJzcDsgSSB0aGluayB0aGF0IGl0IHdvdWxkIGJlIHVzZWZ1bDxicj4NCnRv
IHNlZSB3aGF0IGhlIGhhcyBkb25lLjxicj4NCjxicj4NCk5leHQsIHRoZXJlIGFyZSBhbWJpZ3Vp
dGllcyBhbW9uZyBDQVMgYW5kIGV2ZW4gd2l0aGluIGEgc2luZ2xlIENBUy48YnI+DQo8YnI+DQpG
b3IgZXhhbXBsZSwgaW4gTWFjc3ltYS8gTWF4aW1hJm5ic3A7IHRoZXJlIGlzIGdlbmVyYWxseSBu
byBzZW1hbnRpY3M8YnI+DQphc3NvY2lhdGVkIHdpdGggJnF1b3Q7PSZxdW90OyBvciAmcXVvdDsm
Z3Q7JnF1b3Q7LiZuYnNwOyZuYnNwOyBCdXQgaW4gc29tZSBjb250ZXh0cywgdGhlcmUgaXMgc29t
ZSBtZWFuaW5nLjxicj4NCjxicj4NCngmZ3Q7Mip5PGJyPg0KPGJyPg0KaXMgYSB0cmVlIGV4cHJl
c3Npb24uJm5ic3A7IEl0IGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggeCBvciB3aXRoIHkuPGJyPg0K
PGJyPg0KYXNzdW1lKHgmZ3Q7Mip5KSZuYnNwOyZuYnNwOyBkb2VzIG1lYW4gc29tZXRoaW5nIC4u
LiBpdCBwdXRzIGluZm8gaW4gYSBkYXRhYmFzZS48YnI+DQpTb21laG93IGVuY29kaW5nIHRoZSBt
ZXRob2QgdG8gZXh0cmFjdCB0aGlzIGluZm9ybWF0aW9uIGludG8gU0VBTEFURVg8YnI+DQooU2VM
YVRlWD8pIGluIGEgQ0FTLWluZGVwZW5kZW50IHdheSAtLSB0aGF0J3MgcXVpdGUgYSB0YXNrLiZu
YnNwOyZuYnNwOyBJbjxicj4NCnBhcnRpY3VsYXIsIGl0IHdvdWxkIHNlZW0gdG8gcmVxdWlyZSBh
biB1bmRlcnN0YW5kaW5nIG9mIHdoYXQgYXNzdW1lKCk8YnI+DQpkb2VzIGluIE1heGltYSwgYW5k
IHdoYXQgaXMoKSBkb2VzIGFsc28uPGJyPg0KPGJyPg0KeCBhbmQgbm90IHgmbmJzcDsmbmJzcDsg
aGFzIG5vIHBhcnRpY3VsYXIgbWVhbmluZywmbmJzcDsgYnV0IGlmIHggaXMgZXhwbGljaXRseSB0
cnVlIG9yIGZhbHNlLDxicj4NCk1heGltYSBzaW1wbGlmaWVzIGl0IHRvIGZhbHNlLiZuYnNwOyBJ
ZiBTRUFMQVRFWCBoYXMgYSBzZW1hbnRpY3MgLS0gYXJlIHlvdTxicj4NCmRlZmluaW5nIHlldCBh
bm90aGVyIENBUz8mbmJzcDsgT3IgcGVyaGFwcyB5b3Ugc2hvdWxkIGxpbmsgaXQgMTAwJSB0byBB
eGlvbSdzPGJyPg0Kc2VtYW50aWNzLCB3aGljaCB5b3UgcHJlc3VtYWJseSBrbm93IGFib3V0IGFu
ZCBjYW4gbW9kaWZ5Ljxicj4NCjxicj4NCkFzIGZhciBhcyByZWNvcmRpbmcgc3R1ZmYgaW4gRExN
RiAtLSB0aGVyZSBhcmUgcHJlc3VtYWJseSBzY29wZSBpc3N1ZXM8YnI+DQooJnF1b3Q7aW4gdGhp
cyBjaGFwdGVyIG4sbSBhcmUgbmF0dXJhbCBudW1iZXJzLi4uLiZxdW90OykmbmJzcDsgYW5kIG1h
eWJlIGV2ZW4gYSBuZWVkPGJyPg0KdG8gbWFrZSB2YWx1ZSBhc3NpZ25tZW50cy4mbmJzcDsgPGJy
Pg0KSSB0aGluayB5b3UgbmVlZCB0byBtb2RlbCB0aGVzZSBpbiBTRUFMQVRFWCB0b28uPGJyPg0K
PGJyPg0KSnVzdCBtdXNpbmcgYWJvdXQgd2hlcmUgeW91IGFyZSBoZWFkaW5nLjxicj4NCjxicj4N
ClJKRg0KPGRpdj4NCjxkaXY+PGJyPg0KPGJyPg0KPGJyPg0KPGJyPg0KT24gOC8xOC8yMDE2IDEx
OjQ1IEFNLCBUaW0gRGFseSB3cm90ZTo8YnI+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPg0KPGRpdiBkaXI9Imx0ciI+DQo8ZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj5GYXRlbWFuIFswXSByYWlz
ZWQgYSBzZXQgb2YgaXNzdWVzIHdpdGggdGhlIE9wZW5NYXRoPGJyPg0KPC9kaXY+DQo8ZGl2PmFw
cHJvYWNoLiBXZSBhcmUgbm90IHRyeWluZyB0byBiZSBjcm9zcy1wbGF0Zm9ybSBpbiB0aGlzPGJy
Pg0KPC9kaXY+DQo8ZGl2PmVmZm9ydC4gQXhpb20gZG9lcyBwcm92aWRlIGFuIGFsZ2VicmFpYyBz
Y2FmZm9sZCBzbyBpdCBpczxicj4NCjwvZGl2Pg0KPGRpdj5wb3NzaWJsZSB0aGF0IHRoZSBzZWxh
dGV4IG1hcmt1cCBtaWdodCBiZSB1c2VmdWwgZWxzZXdoZXJlPGJyPg0KPC9kaXY+DQo8ZGl2PmJ1
dCB0aGF0IGlzIG5vdCBhIGRlc2lnbiBjcml0ZXJpb24uPGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2
PkZhdGVtYW5bMV0gYWxzbyByYWlzZXMgc29tZSBkaWZmaWN1bHQgY3Jvc3MtcGxhdGZvcm0gaXNz
dWVzPGJyPg0KPC9kaXY+DQo8ZGl2PnRoYXQgYXJlIG5vdCBwYXJ0IG9mIHRoaXMgZGVzaWduLjxi
cj4NCjwvZGl2Pg0KPGRpdj48YnI+DQpGYXRlbWFuWzJdIHNob3dzIHRoYXQgcGFyc2luZyB0ZXgg
d2l0aCBvbmx5IHN5bnRhY3RpYyBtYXJrdXA8YnI+DQpzdWNjZWVkZWQgb24gb25seSA0MyUgb2Yg
MTA3NDAgaW5wdXRzLiBJdCBvdWdodCB0byBiZSBwb3NpYmxlPGJyPg0KdG8gaW5jcmVhc2UgdGhp
cyBwZXJjZW50YWdlIGdpdmVuIHByb3BlciBzZW1hbnRpYyBtYXJrdXAuPGJyPg0KPC9kaXY+DQo8
ZGl2PihQZXJoYXBzIHRoZXJlIHNob3VsZCBiZSBhIGNvbXBldGl0aW9uIHNpbWlsYXIgdG8gdGhl
IGRlZXA8YnI+DQo8L2Rpdj4NCjxkaXY+bGVhcm5pbmcgZ3JvdXBzPyBQaERzIGhhdmUgYmVlbiBh
d2FyZGVkIG9uIGluY3JlbWVudGFsPGJyPg0KPC9kaXY+DQo8ZGl2PmltcHJvdmVtZW50cyBvZiB0
aGUgcGVyY2VudGFnZSk8YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PlRoaXMg
aXMgYSBkZXNpZ24tYnktY3Jhd2wgYXBwcm9hY2ggdG8gdGhlIHNlbWFudGljIG1hcmt1cDxicj4N
CjwvZGl2Pg0KPGRpdj5pZGVhLiBUaGUgaG9wZSBpcyB0byBnZXQgc29tZXRoaW5nIHJ1bm5pbmcg
dGhpcyB3ZWVrIHRoYXQ8YnI+DQo8L2Rpdj4NCjxkaXY+J3dvcmtzJyBidXQgZ2l2aW5nIGR1ZSBj
b25zaWRlcmF0aW9uIHRvIGdsb2JhbCBhbmQgbG9uZy10ZXJtPGJyPg0KPC9kaXY+DQo8ZGl2Pmlz
c3Vlcy4gQSBmaXJzdCBnbGFuY2UgYXQgQ1JDL05JU1QgcmFpc2VzIG1vcmUgcXVlc3Rpb25zPGJy
Pg0KPC9kaXY+DQo8ZGl2PnRoYW4gYW5zd2VycyBhcyBpcyB1c3VhbCB3aXRoIGFueSByZXNlYXJj
aC48YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+SXQgSVMgYSBkZXNpZ24gZ29hbCB0byBzdXBwb3J0
IGEgQ29tcHV0ZXIgQWxnZWJyYSBUZXN0IFN1aXRlPGJyPg0KPC9kaXY+DQo8ZGl2Pig8YSBocmVm
PSJodHRwOi8vYXhpb20tZGV2ZWxvcGVyLm9yZy9heGlvbS13ZWJzaXRlL0NBVFMiIHRhcmdldD0i
X2JsYW5rIj5odHRwOi8vYXhpb20tZGV2ZWxvcGVyLm9yZy9heDx3YnI+aW9tLXdlYnNpdGUvQ0FU
UzwvYT4pLiBJdCBpcyB2ZXJ5PGJyPg0KPC9kaXY+DQo8ZGl2PnRlZGlvdXMgdG8gaGFuZCBjb25z
dHJ1Y3QgdGVzdCBzdWl0ZXMuIEl0IHdpbGwgYmUgZXZlbiBtb3JlPGJyPg0KPC9kaXY+DQo8ZGl2
PnRlZGlvdXMgdG8gY29uc3RydWN0IHRoZW0gJnF1b3Q7c2Vjb25kLWxldmVsJnF1b3Q7IGJ5IGRv
aW5nIHNlbWFudGljPGJyPg0KPC9kaXY+DQo8ZGl2Pm1hcmt1cCBhbmQgdGhlbiB0cnlpbmcgdG8g
dXNlIHRoZW0gYXMgaW5wdXQsIGJ1dCB0aGUgaG9wZSBpczxicj4NCjwvZGl2Pg0KPGRpdj50aGF0
IGV2ZW50dWFsbHkgdGhlIENSQy9OSVNUL0cmYW1wO1IsIGV0YyB3aWxsIGV2ZW50dWFsbHkgYmU8
YnI+DQo8L2Rpdj4NCjxkaXY+cHVibGlzaGVkIHdpdGggc2VtYW50aWNzIHNvIGNvbXB1dGF0aW9u
YWwgbWF0aGVtYXRpY3MgY2FuPGJyPg0KPC9kaXY+DQo8ZGl2PnN0b3Agd29ya2luZyBmcm9tIHN5
bnRheC48YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPT09PT09PT09PT08YnI+DQpDb25zaWRlcmF0
aW9uIDQ6IEkvTyB0cmFuc3BhcmVuY3kgPGJyPg0KPGJyPg0KQXNzdW1lIGZvciB0aGUgbW9tZW50
IHRoYXQgd2UgdGFrZSBhIGxhdGV4IGZpbGUgY29udGFpbmluZzxicj4NCjwvZGl2Pg0Kb25seSBm
b3JtdWxhcy4gV2Ugd291bGQgbGlrZSB0byBiZSBhYmxlIHRvIHJlYWQgdGhpcyBmaWxlIHNvIDxi
cj4NCjwvZGl2Pg0KaXQgaGFzIGNvbXB1dGF0aW9uYWwgbWF0aGVtYXRpY3MgKENNKSBzZW1hbnRp
Y3MuPGJyPg0KPGJyPg0KPC9kaXY+DQpJdCBpcyBjbGVhciB0aGF0IHRoZXJlIG5lZWRzIHRvIGJl
IHNlbWFudGljIHRhZ3MgdGhhdCBjYXJyeSB0aGU8YnI+DQo8L2Rpdj4NCmluZm9ybWF0aW9uIGJ1
dCB0aGVzZSB0YWdzIGhhdmUgdG8gYmUgY2FyZWZ1bGx5IGRlc2lnbmVkIE5PVDxicj4NCjwvZGl2
Pg0KdG8gY2hhbmdlIHRoZSBzeW50YWN0aWMgZGlzcGxheS4gVGhleSBtYXksIGFzIG5vdGVkIGJl
Zm9yZSw8YnI+DQo8L2Rpdj4NCjxkaXY+cmVxdWlyZSBtdWx0aXBsZSBzZW1hbnRpYyB2ZXJzaW9u
cyBmb3IgYSBzaW5nbGUgc3ludGF4Ljxicj4NCjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCkl0
IGlzIGFsc28gY2xlYXIgdGhhdCB3ZSB3b3VsZCBsaWtlIHRvIGJlIGFibGUgdG8gb3V0cHV0IGZv
cm11bGFzPGJyPg0KPC9kaXY+DQp3aXRoIENNIHNlbWFudGljcyB3aGVyZSBjdXJyZW50bHkgd2Ug
b25seSBvdXRwdXQgc3ludGF4Ljxicj4NCjxicj4NCj09PT09PT09PT09PGJyPg0KPC9kaXY+DQo8
ZGl2PkNvbnNpZGVyYXRpb24gNTogSS9PIGlzb21vcnBoaXNtPGJyPg0KPC9kaXY+DQo8ZGl2Pjxi
cj4NCjwvZGl2Pg0KQW4gaW1wb3J0YW50IHByb3BlcnR5IG9mIHNlbGF0ZXggaXMgYW4gaXNvbW9y
cGhpc20gd2l0aDxicj4NCjwvZGl2Pg0KaW5wdXQvb3V0cHV0LiBBeGlvbSBhbGxvd3Mgb3V0cHV0
IGZvcm1zIHRvIGJlIGRlZmluZWQgZm9yIGE8YnI+DQo8L2Rpdj4NCnZhcmlldHkgb2YgdGFyZ2V0
cyBzbyB0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBwcm9ibGVtLiBGb3I8YnI+DQo8L2Rpdj4N
CmlucHV0LCBob3dldmVyLCB0aGlzIG1lYW5zIHRoYXQgdGhlIHJlYWRlciBoYXMgdG8ga25vdyBo
b3c8YnI+DQo8L2Rpdj4NCnRvIGV4cGFuZCBcSU5UezN9IGludG8gdGhlIGNvcnJlY3QgZG9tYWlu
LiBUaGlzIGNvdWxkIGJlIGRvbmU8YnI+DQo8L2Rpdj4NCndpdGggYSBzdGFuZC1hbG9uZSBwcmUt
cHJvY2Vzc29yIGZyb20gc2VsYXRleC0mZ3Q7aW5wdXRmb3JtLjxicj4NCjxicj4NCjwvZGl2Pg0K
PGRpdj5JdCBzaG91bGQgYmUgcG9zc2libGUgdG8gcmVhZC10aGVuLXdyaXRlIGFuIHNlbGF0ZXgg
Zm9ybXVsYSw8YnI+DQo8L2Rpdj4NCjxkaXY+b3Igd3JpdGUtdGhlbi1yZWFkIGFuIHNlbGF0ZXgg
Zm9ybXVsYSB3aXRoIGlkZW50aWNhbCBzZW1hbnRpY3MuPGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2
PlRoYXQgbWlnaHQgbm90IG1lYW4gdGhhdCB0aGUgSS9PIGlzIGlkZW50aWNhbCB0aG91Z2ggZHVl
IHRvIDxicj4NCjwvZGl2Pg0KPGRpdj50aGluZ3MgbGlrZSB2YXJpYWJsZSBvcmRlcmluZywgZXRj
LiA8YnI+DQo8YnI+DQo9PT09PT09PT09PTxicj4NCjwvZGl2Pg0KPGRpdj5Db25zaWRlcmF0aW9u
IDY6IExhdGV4IHNlbWFudGljIG1hY3Jvczxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5TZW1hbnRp
YyBtYXJrdXAgd291bGQgYmUgZ3JlYXRseSBzaW1wbGlmaWVkIGlmIHNlbGF0ZXggcHJvdmlkZWQ8
YnI+DQo8L2Rpdj4NCjxkaXY+YSBtZWNoYW5pc20gc2ltaWxhciB0byBBeGlvbSdzIGFiaWxpdHkg
dG8gZGVmaW5lIHR5cGVzICZxdW90O29uIHRoZSBmbHkmcXVvdDs8YnI+DQo8L2Rpdj4NCjxkaXY+
dXNpbmcgZWl0aGVyIGFzc2lnbm1lbnQ8YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8
ZGl2PiZuYnNwOyZuYnNwOyBUWVA6PUZSQUMoUE9MWShJTlQpKTxicj4NCjxicj4NCjwvZGl2Pg0K
PGRpdj5vciBtYWNybyBmb3JtPGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2PiZuYnNwOyZuYnNwOyBU
WVAgPT0mZ3Q7IEZSQUMoUE9MWShJTlQpKTxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5MYXRleCBp
cyBjYXBhYmxlIG9mIGRvaW5nIHRoaXMgYW5kIHNlbGF0ZXggc2hvdWxkIHByb2JhYmx5IGluY2x1
ZGU8YnI+DQo8L2Rpdj4NCjxkaXY+YSBzZXQgb2YgcHJlLWRlZmluZWQgY29tbW9uIG1hcmt1cHMs
IHN1Y2ggYXM8YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+Jm5ic3A7IFxGUklOVCA9PSZndDsgXEZS
QUNcSU5UPGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4NCj09PT09PT09PT09PGJyPg0KPC9kaXY+DQo8
ZGl2PkNvbnNpZGVyYXRpb24gNzogc2VsYXRleCBcYmVnaW57c2VtYW50aWN9IGVudmlyb25tZW50
Pzxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj5DdXJyZW50bHkgQXhpb20gcHJvdmlkZXMgYSAnY2h1
bmsnIGVudmlyb25tZW50IHdoaWNoIHN1cnJvdW5kczxicj4NCjwvZGl2Pg0KPGRpdj5zb3VyY2Ug
Y29kZS4gVGhlIGNodW5rcyBhcmUgbmFtZWQgc28gdGhleSBjYW4gYmUgZXh0cmFjdGVkPGJyPg0K
PC9kaXY+DQo8ZGl2PmluZGl2aWR1YWxseSBvciBpbiBncm91cHM8YnI+DQo8YnI+DQo8L2Rpdj4N
CjxkaXY+Jm5ic3A7Jm5ic3A7IFxiZWdpbntjaHVua317YSBuYW1lIGZvciB0aGUgY2h1bmt9PGJy
Pg0KPC9kaXY+DQo8ZGl2PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBhbnl0aGluZzxi
cj4NCjwvZGl2Pg0KPGRpdj4mbmJzcDsmbmJzcDsgXGVuZHtjaHVua308YnI+DQo8YnI+DQo8L2Rp
dj4NCjxkaXY+V2UgY291bGQgcHJvdmlkZSBhIHNpbWlsYXIgZW52aXJvbm1lbnQgZm9yIHNlbWFu
dGljcyBzdWNoIGFzPGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2PiZuYnNwOyBcYmVnaW57c2VtYW50
aWNzfXthIG5hbWUgZm9yIHRoZSBibG9ja308YnI+DQo8L2Rpdj4NCjxkaXY+Jm5ic3A7IFxlbmR7
c2VtYW50aWNzfTxicj4NCjxicj4NCjwvZGl2Pg0KPGRpdj53aGljaCB3b3VsZCBwcm92aWRlIGEg
d2F5IHRvIGVuY2Fwc3VsYXRlIG1hcmt1cCBhbmQgYWxzbyBhbGxvdzxicj4NCjwvZGl2Pg0KPGRp
dj5hIHBhcnRpY3VsYXIgYmxvY2sgdG8gYmUgZXh0cmFjdGVkIGluIGxpdGVyYXRlIHByb2dyYW1t
aW5nIHN0eWxlLjxicj4NCjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+PT09PT09PT09
PT08YnI+DQo8L2Rpdj4NCjxkaXY+Q29uc2lkZXJhdGlvbiA4OiBMYXRleC10aW1lIHByb2Nlc3Np
bmc8YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+QXhpb20gY3VycmVudGx5IGNyZWF0ZXMgc3BlY2lm
aWMgZmlsZXMgdXNpbmcgXHdyaXRlIHRvIGNyZWF0ZTxicj4NCjwvZGl2Pg0KPGRpdj5pbnRlcm1l
ZGlhdGUgZmlsZXMgKGUuZy4gZm9yIHRhYmxlcykuIFRoaXMgdGVjaG5pcXVlIGNhbiBiZSB1c2Vk
PGJyPg0KPC9kaXY+DQo8ZGl2PnRvIGVuaGFuY2UgbGF0ZXgtdGltZSBkZWJ1Z2dpbmcgKHdoZXJl
IGRpZCBpdCBmYWlsPykuIDxicj4NCjxicj4NCkl0IGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBBeGlv
bSBmaWxlcyB3aGljaCBwcmUtY29uc3RydWN0IGRvbWFpbnMgPGJyPg0KbmVlZGVkIHdoZW4gdGhl
IGlucHV0IGZpbGUgd2l0aCBzZW1hbnRpYyBtYXJrdXAgaXMgcmVhZC48YnI+DQo8L2Rpdj4NCjxk
aXY+PGJyPg0KVGhpcyB3b3VsZCBoZWxwIGEgc3RhbmQtYWxvbmUgc2VsYXRleC0mZ3Q7aW5wdXRm
b3JtIHByZXByb2Nlc3Nvci48YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2Pj09
PT09PT09PT09PGJyPg0KPC9kaXY+DQo8ZGl2PkNvbnNpZGVyYXRpb24gOTogRGVzaWduIHNrZXRj
aGVzPGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2Pkl0IGlzIGFsbCB3ZWxsLWFuZC1nb29kIHRvIGhh
bmQtd2F2ZSBhdCB0aGlzIGlkZWEgYnV0IGEgbGFyZ2U8YnI+DQo8L2Rpdj4NCjxkaXY+YW1vdW50
IG9mIHRoaXMgbWFjaGluZXJ5IGFscmVhZHkgZXhpc3RzLiA8YnI+DQo8L2Rpdj4NCjxkaXY+PGJy
Pg0KPC9kaXY+DQpJdCB3b3VsZCBzZWVtIHVzZWZ1bCB0byBkZXZlbG9wIGFuIGluY3JlbWVudGFs
IHRlc3Qgc3VpdGUgdGhhdDxicj4NCjwvZGl2Pg0Kc3RhcnRzIHdpdGggJnF1b3Q7cHJpbWl0aXZl
JnF1b3Q7IGRvbWFpbnMgKGUuZy4gSU5UKSwgY3JlYXRpbmcgc2VsYXRleCBJL08uPGJyPg0KPC9k
aXY+DQo8YnI+DQpPbmNlIHRoZXNlIGFyZSBpbiBwbGFjZSB3ZSBjb3VsZCB3b3JrIG9uICZxdW90
O3R5cGUgdG93ZXImcXVvdDsgbWFya3VwPGJyPg0KPC9kaXY+DQpzdWNoIGFzIFxGUkFDXElOVCBv
ciBcUE9MWVxDT01QTEVYXEZMT0FULjxicj4NCjxicj4NCjwvZGl2Pg0KRm9sbG93aW5nIHRoYXQg
bWlnaHQgYmUgcHJlLWV4aXN0aW5nIGxhdGV4IGZ1bmN0aW9ucyBsaWtlIFxpbnQsIFxzdW0sPGJy
Pg0KPC9kaXY+DQpcY29zLCBldGMuIDxicj4NCjxicj4NCjwvZGl2Pg0KVG8gdmFsaWRhdGUgdGhl
c2UgaWRlYXMgQXhpb20gd2lsbCBpbmNsdWRlIGFuIHNlbGF0ZXguc3R5IGZpbGUgYW5kPGJyPg0K
PC9kaXY+DQpzb21lIHVuaXQgdGVzdHMgZmlsZXMgb24gcHJpbWl0aXZlIGRvbWFpbiBtYXJrdXAu
IFRoYXQgc2hvdWxkIGJlIDxicj4NCmVub3VnaCB0byBzdGFydCB0aGUgYmlrZXNoZWQgZGlzY3Vz
c2lvbnMuPGJyPg0KPGJyPg0KPC9kaXY+DQo8ZGl2PklkZWFzPyBDb25zaWRlcmF0aW9ucz8gU3Vn
Z2VzdGlvbnM/PGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5UaW08YnI+DQo8
YnI+DQo8L2Rpdj4NClswXSBGYXRlbWFuLCBSaWNoYXJkIEouPGJyPg0KJnF1b3Q7PGZvbnQgc2l6
ZT0iMiI+QSBDcml0aXF1ZSBvZiBPcGVuTWF0aCBhbmQgVGhvdWdodHMgb248L2ZvbnQ+DQo8ZGl2
IHN0eWxlPSJmb250LWZhbWlseTpzYW5zLXNlcmlmIj48Zm9udCBzaXplPSIyIj5FbmNvZGluZyBN
YXRoZW1hdGljcywgSmFudWFyeSwgMjAwMSZxdW90OzwvZm9udD48L2Rpdj4NCjxhIGhyZWY9Imh0
dHBzOi8vcGVvcGxlLmVlY3MuYmVya2VsZXkuZWR1LyU3RWZhdGVtYW4vcGFwZXJzL29wZW5tYXRo
Y3JpdC5wZGYiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL3Blb3BsZS5lZWNzLmJlcmtlbGV5LmU8
d2JyPmR1L35mYXRlbWFuL3BhcGVycy9vcGVubWF0aGNyaTx3YnI+dC5wZGY8L2E+PGJyPg0KPGJy
Pg0KPC9kaXY+DQpbMV0gRmF0ZW1hbiwgUmljaGFyZCBKLjxicj4NCiZxdW90Ozxmb250IHNpemU9
IjIiPlZlcmJzLCBOb3VucywgYW5kIENvbXB1dGVyIEFsZ2VicmEsIG9yIFdoYXQncyBHcmFtbWFy
IEdvdCB0bzwvZm9udD4NCjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OnNhbnMtc2VyaWYiPjxmb250
IHNpemU9IjIiPmRvIHdpdGggTWF0aD8gJnF1b3Q7LCBEZWNlbWJlciAxOCwgMjAwODxicj4NCjwv
Zm9udD48YSBocmVmPSJodHRwczovL3Blb3BsZS5lZWNzLmJlcmtlbGV5LmVkdS8lN0VmYXRlbWFu
L3BhcGVycy9ub3VudmVyYm1hYy5wZGYiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL3Blb3BsZS5l
ZWNzLmJlcmtlbGV5LmU8d2JyPmR1L35mYXRlbWFuL3BhcGVycy9ub3VudmVyYm1hYzx3YnI+LnBk
ZjwvYT48YnI+DQo8YnI+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OnNhbnMtc2Vy
aWYiPlsyXSBGYXRlbWFuLCBSaWNoYXJkIEouPGJyPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJmb250
LWZhbWlseTpzYW5zLXNlcmlmIj4mcXVvdDtQYXJzaW5nIFRlWCBpbnRvIE1hdGhlbWF0aWNzJnF1
b3Q7LDxicj4NCjxhIGhyZWY9Imh0dHBzOi8vcGVvcGxlLmVlY3MuYmVya2VsZXkuZWR1LyU3RWZh
dGVtYW4vcGFwZXJzL3BhcnNpbmdfdGV4LnBkZiIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vcGVv
cGxlLmVlY3MuYmVya2VsZXkuZTx3YnI+ZHUvfmZhdGVtYW4vcGFwZXJzL3BhcnNpbmdfdGV4PHdi
cj4ucGRmPC9hPjxicj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8YnI+DQo8L2Rp
dj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjxicj4NCjwvZGl2Pg0K
PC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPGJyPg0KPC9kaXY+DQo8L2Js
b2NrcXVvdGU+DQo8YnI+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8
L2Rpdj4NCjxicj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2
Pg0KPGJyPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8
YnI+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjxicj4N
CjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPGJyPg0KPC9k
aXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rp
dj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2
Pg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8YnI+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8
L2JvZHk+DQo8L2h0bWw+DQo=

--_000_147216235043915807ccnycunyedu_--

\start
Date: Thu, 25 Aug 2016 21:33:03 -0400
From: Tim Daly <axiomcas@gmail.com>
To: William Sit <wsit@ccny.cuny.edu>
Subject: Re: [Axiom-developer] Design Thoughts on Semantic Latex (SELATEX)
Cc: Dan Zwillinger <zwilling@az-tec.com>,
	Richard Fateman <fateman@berkeley.edu>, 
	James Davenport <J.H.Davenport@bath.ac.uk>, 
	"vdhoeven@lix.polytechnique.fr" <vdhoeven@lix.polytechnique.fr>,
	Mike Dewar <miked@nag.co.uk>, axiom-dev <axiom-developer@nongnu.org>,
	"albert_rich@msn.com" <albert_rich@msn.com>

Extracting Mathematical Semantics from LATEX Documents

Jurgen Stuber and Mark van den Brand,


Abstract. We report on a project to use SGLR parsing and term rewriting
with ELAN4 to extract the semantics of

mathematical formulas from a LATEX document and representing them in
MathML. The LATEX document we used

is part of the Digital Library of Mathematical Functions (DLMF) project of
the US National Institute of Standards

and Technology (NIST) and obeys project-specific conventions, which
contains macros for mathematical

constructions, among them 200 predefined macros for special functions, the
subject matter of the project. The

SGLR parser can parse general context-free languages, which suffices to
extract the structure of mathematical

formulas from calculus that are written in the usual mathematical style,
with most parentheses and multiplication

signs omitted. The parse tree is then rewritten into a more concise and
uniform internal syntax that is used as the

base for extracting MathML or other semantical information.



On Thu, Aug 25, 2016 at 8:05 PM, Tim Daly <axiomcas@gmail.com> wrote:

> Hmmmm. I'm not communicating the idea clearly...
>
> =3D=3D=3D=3D=3D=3D=3D
> >However, mathematics is different. We do NOT have to name any
> >specific domain. We can say, the algorithm works for any field k.
> >How do you turn that into computer code without making a choice
> >for k? Or, we can say the algorithm works for any matrix in GL(n, k),
> >for any positive integer n over any field k.
>
> Recall that the focus is (currently) on importing formulas from CRC.
>
> At import time the value can be symbolic but at evaluation time the
> field needs to be specific. Simplifications available over C might not
> be available over R. The integral may be valid over both fields but the
> result of the integration might be different depending on that choice.
>
> If the formula is valid for any field there is no need to specify the \AT
> type. Often, though, the type is implicit. For example, in quantum
> mechanics the matrix has to be 2x2 and unitary. This implicit type
> might be known to the quantum mechanics domain functions so it
> might not need markup but general linear algebra functions might
> need to know.
>
> Also, there is no need to specify the field. If k can be any field, the
> markup could just say 'Field", using the Axiom category name. Why
> is this a problem?
>
>
> =3D=3D=3D=3D=3D=3D=3D
> >Somehow I got (perhaps incorrectly) the impression that your
> >proposed target is weaver(latex paper, axiom paper)---of course,
> >a paper is also a string.
>
> The proposed target is a CRC formula. There are 10,000 of them on my
> shelf and not enough lifetime to retype them. The goal is to make the
> mathematics available to computational mathematics programs.
> How can I drag-and-drop a formula?
>
> CRC and NIST have their own target audience, of course, and it is
> not (currently) computational mathematics programs. I expect this to
> change in the future as the need arises (and I need it now).
>
>
> =3D=3D=3D=3D=3D=3D=3D
> >For a limited application (formulas like integrals), such generality is
> >perhaps not needed. For that purpose, I do not believe we need a
> >new semantic mark-up layer---if I follow your progress correctly, you
> >already have a direct [semi-automatic?] translation program (or a
> >bunch of macros) that inputs the latex source for a formula (or a
> >scanned image with "mathematical OCR" software) and outputs
> >the Axiom code (or better still, an Axiom package that allows
> >[domain] parameters).
>
> Umm, no. Fateman (see prior emails) shows that Latex does not have
> sufficient semantic information. The OpenMath effort has tried to do
> cross-platform communication and latex will not support communicating
> the semantics. Problems, such as choice of branch cuts, result in
> different answers even for fundamentals like log. So, no, there is no
> existing translation program. In fact, there can't be one based solely
> on existing latex markup.
>
> This has not been a problem in the past. Humans bring a lot of semantics
> to their search of CRC. But a computational mathematics program does
> not. It needs more explicit markup.
>
>
> =3D=3D=3D=3D=3D=3D=3D
> >As you acknowledged, the selatex test file with
> >weaver(latex string, axiom string) does not yet provide the semantic
> >content (that's the semi-automatic part: choosing default domains).
>
> The test file is intended to drive progress in this problem. The idea
> is that the latex string needs minimal markup to generate the axiom
> string... what is that markup? The test file will be changed to make
> that clear.
>
> Choosing domains is only one semantic problem. The MN latex
> example shows that the syntax is ambiguous. In general, in any
> textbook the semantics is in the surrounding paragraphs.
>
> Take any textbook with formulas (e.g. physics), extract only
> the formulas, and a LOT of information is lost. in $E=3Dmc^2$,
> is c a constant? Can you tell from the formula alone?
>
>
> =3D=3D=3D=3D=3D=3D=3D=3D
> >Why do we need to "unweave" an axiom string with semantic
> >mark-up back to latex (with or without semantic)? Is it to ensure
> >that weave has an inverse? I don't see that to be the case, since
> >we have to make choices for domains to give full computational
> >semantics but don't for in the latex string, even including full
> >mathematical semantics. I think weave is one to many in general,
> >but unweave can be one to one and thus possibly loses the
> >generality of input latex string given to the weave routine.
>
> Axiom currently outputs formula latex without semantics.
>
> Suppose that you wanted to create the CRC tables using Axiom
> to generate the formulas in a systematic way. Wouldn't it be
> convenient if the semantic markup was automatically inserted
> rather than having to do that by hand? Should Axiom say what
> it knows?
>
> As you note, the Axiom-generated formula might be true for any
> field, not just the current one. That's pretty easy to handle. You
> just call a routine that either generalizes the output to be "Field"
> or one that elides the \AT type markup completely.
>
> We don't NEED "unweave" or Axiom semantic latex output.
> The mathematician in me wants it.
>
> Tim
>
>
> On Thu, Aug 25, 2016 at 5:59 PM, William Sit <wsit@ccny.cuny.edu> wrote:
>
>> Tim:
>>
>>
>> Thanks for taking the time to address my ignorant questions.
>>
>> You wrote: "For instance, are your formulas given over the real or
>> complex domain?=E2=80=8B"
>>
>>
>> This question is of course relevant in computation. Even in Axiom, which
>> allows domains (belonging to a specific Axiom category) as parameters in
>> function or package calls, the compiler needs to know the exact domain a=
t
>> compile time (and with some more effort, delay this knowledge to run tim=
e).
>> Your example with \AT for matrix multiplication MN illustrates that.
>>
>>
>> However, mathematics is different. We do NOT have to name any specific
>> domain. We can say, the algorithm works for any field k. How do you turn
>> that into computer code without making a choice for k? Or, we can say th=
e
>> algorithm works for any matrix in GL(n, k), for any positive integer n o=
ver
>> any field k.
>>
>>
>> Your answer to the question on overloading is of course the "middle way"=
,
>> but the problem above (unspecified domains in a category, or element in =
a
>> domain) could cascade and so there has to be a non-specific translation =
(or
>> way to mark-up), perhaps with a "default" specification in case computat=
ion
>> becomes necessary.
>>
>>
>> Somehow I got (perhaps incorrectly) the impression that your proposed
>> target is weaver(latex paper, axiom paper)---of course, a paper is also =
a
>> string.
>>
>>
>> For a limited application (formulas like integrals), such generality is
>> perhaps not needed. For that purpose, I do not believe we need a new
>> semantic mark-up layer---if I follow your progress correctly, you alread=
y
>> have a direct [semi-automatic?] translation program (or a bunch of
>> macros) that inputs the latex source for a formula (or a scanned image w=
ith
>> "mathematical OCR" software) and outputs the Axiom code (or better still=
,
>> an Axiom package that allows [domain] parameters). As you acknowledged, =
the
>> selatex test file with weaver(latex string, axiom string) does not yet
>> provide the semantic content (that's the semi-automatic part: choosing
>> default domains). Why do we need to "unweave" an axiom string with seman=
tic
>> mark-up back to latex (with or without semantic)? Is it to ensure that
>> weave has an inverse? I don't see that to be the case, since we have to
>> make choices for domains to give full computational semantics but don't =
for
>> in the latex string, even including full mathematical semantics. I think
>> weave is one to many in general, but unweave can be one to one and thus
>> possibly loses the generality of input latex string given to the weave
>> routine.
>>
>> William
>>
>>
>>
>> William Sit
>> Professor Emeritus
>> Department of Mathematics
>> The City College of The City University of New York
>> New York, NY 10031
>> homepage: wsit.ccny.cuny.edu
>> ------------------------------
>> *From:* Tim Daly <axiomcas@gmail.com>
>> *Sent:* Thursday, August 25, 2016 2:50 PM
>> *To:* William Sit
>> *Cc:* Dan Zwillinger; Richard Fateman; James Davenport;
>> vdhoeven@lix.polytechnique.fr; Mike Dewar; axiom-dev; albert_rich@msn.co=
m
>>
>> *Subject:* Re: [Axiom-developer] Design Thoughts on Semantic Latex
>> (SELATEX)
>>
>> William,
>>
>> It is unlikely that authors will provide a special chunk for Axiom in
>> papers.
>>
>> Such an ability already exists but I don't expect anyone will adopt it.
>> The \usepackage{axiom} and \begin{chunk} / \end{chunk} pair work and is
>> all that is needed.
>>
>> The primary target of this effort (although not restricted to them) are
>> the
>> various collections (NIST/CRC/G&R/Jeffrey/etc) of formulas. I use these
>> references to create the computer algebra test suite but it takes months
>> to do this by hand. I also use them to build regression tests for Axiom.
>>
>> There have been various attempts to extract semantics from latex. Some
>> are quite interesting (see http://mathpix.com). Unfortunately, there
>> isn't
>> enough information in the latex. For instance, are your formulas given
>> over the real or complex domain?
>>
>> In the longer term I am campaigning to bend these tomes toward a
>> more computational mathematics basis. Instead of listing the names of
>> 20 invariant graph algorithms we really need reference versions of the
>> algorithms. And we need them in machine-readable form. And we need
>> them now so a whole generation of computational mathematicians do
>> not write yet-another-CAS from scratch.
>>
>> Tim
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> On Thu, Aug 25, 2016 at 9:13 AM, William Sit <wsit@ccny.cuny.edu> wrote:
>>
>>> Hi Tim:
>>>
>>>
>>> Would it be simpler to only add semantic markups to algorithmic
>>> descriptions in papers? Authors can be asked to provide a separate chun=
k
>>> with [Axiom] semantic markups (in essence, a skeleton implementation or
>>> pseudo-code of the algorithm involved---skeleton because the data
>>> structures of mathematical objects are usually ignored in a math paper)=
.
>>> This would avoid having to mess with the latex source (already hard to =
read
>>> sometimes) or to "weave" to remove the semantic markups to recapture th=
e
>>> latex: all that is needed would be to ignore the semantic chunk). Put
>>> another way, the semantic chunk is a direct (by hand or
>>> automatic) translation of the latex version of an algorithm chunk.
>>>
>>>
>>> Also, what would be the scope of the added semantic macros in LaTeX
>>> (like \AD, \INT)? Can their scope be limited only to semantic chunks?
>>>
>>>
>>> William
>>>
>>>
>>> William Sit
>>> Professor Emeritus
>>> Department of Mathematics
>>> The City College of The City University of New York
>>> New York, NY 10031
>>> homepage: wsit.ccny.cuny.edu
>>> ------------------------------
>>> *From:* Axiom-developer <axiom-developer-bounces+wyscc=3D
>>> sci.ccny.cuny.edu@nongnu.org> on behalf of Tim Daly <axiomcas@gmail.com=
>
>>> *Sent:* Thursday, August 25, 2016 6:17 AM
>>> *To:* Dan Zwillinger
>>> *Cc:* Richard Fateman; James Davenport; vdhoeven@lix.polytechnique.fr;
>>> Mike Dewar; axiom-dev; albert_rich@msn.com
>>> *Subject:* Re: [Axiom-developer] Design Thoughts on Semantic Latex
>>> (SELATEX)
>>>
>>> My initial approach was too heavy-handed and Axiom specific.
>>>
>>> It seems the semantic markup task can be viewed as an editor
>>> task. Editors don't care about semantics, they just work on text.
>>> Viewed this way the markup's only function is decoration for
>>> post-processing. It is (mostly) system independent.
>>>
>>> The edit tasks seem to be {delete, insert, replace} and some
>>> post-markup hints {function, type}
>>>
>>> The delete markup tells weaver to remove the latex completely.
>>> This is useful for things like {dx}
>>>
>>> The insert markup adds missing semantic text, such as {*} which
>>> is needed to indicate multiplication.
>>>
>>> The replace markup gives alternate text for weaver, for things where
>>> the function name might differ, e.g. \int -> integrate
>>>
>>> The function markup names a function that weaver should call
>>> which allows special handling in post-processing. It can be any
>>> s-expression (the weaver implementation is currently lisp-based).
>>>
>>> The type markup passes type information to weaver so Axiom
>>> knows the target type, useful for things like matrix.
>>>
>>> The macros are
>>>
>>> \newcommand{\AD}[1]{#1}% delete
>>> \newcommand{\AI}[1]{}% insert
>>> \newcommand{\AR}[2]{#1}% replace
>>>
>>> \newcommand{\AF}[2]{#1}% function
>>> \newcommand{\AT}[2]{#1}% type
>>>
>>> Note that \AI outputs nothing, so 3\AI{*}x =3D=3D 3x to latex.
>>>
>>> \AD tells weaver to delete the text, e.g. {\AD ~dx} =3D=3D ~dx to latex
>>>
>>> \AR tells weaver to replace the text e.g. {\AR \pi}{\%pi}
>>>
>>> \AF tells weaver to call a function, e.g. one that knows how to
>>> rewrite the input in a special way, or does tracing, etc.
>>>
>>> \AT adds target type information for Axiom
>>> e.g. \AT{3x+6}{POLY(INT)} =3D=3D 3x+6 to latex but passes it as
>>> a Polynomial(Integer) to Axiom
>>>
>>> For example,
>>>
>>> $\int{\frac{dx}{ax*b}}$
>>>
>>> becomes
>>>
>>> $\AT{\AR{\int}{integrate}{\frac{\AD{dx}}{a\AI{*)x+b}}}{EXPR}{INT}}$
>>>
>>> telling weaver that the target type (AT) is EXPR(INT),
>>> the \int is really integrate
>>> the dx is to be ignored and
>>> the ax+b should read a*x+b
>>>
>>> There is an obvious tradeoff of markup vs weaver.
>>> For example. \int might be known to weaver.
>>> Or expressions might call an equation rewriter to add {*}
>>>
>>> The markup could vary from almost nothing to massive detail
>>> depending on the downstream cleverness.
>>>
>>> This initial markup set seems sufficient to handle every task
>>> that requires semantics markup so far. The overhead seems
>>> small and the gain seems large.
>>>
>>> Now the only problem is post-processing the latex. Sigh.
>>>
>>> There is no such thing as a simple job.
>>>
>>> Tim
>>>
>>>
>>> On Tue, Aug 23, 2016 at 7:27 PM, Tim Daly <axiomcas@gmail.com> wrote:
>>>
>>>> For those of you at home wishing to play along, there is a
>>>> selatex.test1 file at
>>>> http://axiom-developer.org/axiom-website/selatex.test1
>>>> containing 620 integrals.
>>>>
>>>> Each line is a call of the form
>>>>
>>>>   weaver(latex-string,axiom-string)
>>>>
>>>> The goal is to transform the latex into Axiom.
>>>>
>>>> Implicit is the idea that weaver will use the selatex tokens
>>>> to disambiguate the input. The current file has no selatex
>>>> tokens. They will be added as needed. The idea is to keep
>>>> the problem simple by adding print-invisible sematics to the
>>>> latex-string. In the ideal case the weaver program is trivial,
>>>> as is the markup. Any tradeoff should prioritize simplicity.
>>>> Another priority is to align the semantic markup with
>>>> Axiom domains in order to ground the semantics with code.
>>>>
>>>> Once all of these calls translate correctly the Axiom output
>>>> routines need to output the latex-string with the added
>>>> semantic markup so the mapping is bi-directional.
>>>>
>>>> The current file only looks at integration as I already have
>>>> the latex->axiom text available. Future test files will look
>>>> at other areas of interest. The long term goal is to parse
>>>> NIST/CRC/etc formulas.
>>>>
>>>> Tim
>>>>
>>>>
>>>> On Sun, Aug 21, 2016 at 11:02 PM, Tim Daly <axiomcas@gmail.com> wrote:
>>>>
>>>>> Dan,
>>>>>
>>>>> While paging through the CRC 31st Standard Mathematical
>>>>> Tables I landed on page 219, section 3.4.1.2 Graph Invariants.
>>>>>
>>>>> It would be a vast improvement if there were algorithms
>>>>> associated with these invariants. Clearly they exist somewhere.
>>>>>
>>>>> To "cross the gap" between tables and computational mathematics
>>>>> it would be valuable to include implementations of these invariants.
>>>>>
>>>>> It is hard to walk away from that page. An Axiom implementation
>>>>> would be fun to write, especially given the next section that lists
>>>>> different kinds of graphs which, presumably, would all have the
>>>>> invariants. Even better, the graph algorithms are likely good
>>>>> candidates for proof technology (ACL2 if done in Lisp, COQ if
>>>>> done in Spad). Lisp has the advantage of an ANSI standard.
>>>>>
>>>>> It seems worthwhile to take sections like this, expand them
>>>>> across computational and proof tools, and publish them in a
>>>>> form that is generally useful. It is "nice to know" that a graph
>>>>> has a radius but it would be even better if I could "just point and
>>>>> click" to import the algorithm.
>>>>>
>>>>> Axiom has been pushing literate programming for years. The
>>>>> tools exist to "make it so", as the saying goes.
>>>>>
>>>>> Tim
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Sun, Aug 21, 2016 at 10:40 PM, Tim Daly <axiomcas@gmail.com> wrote=
:
>>>>>
>>>>>> Like any research problem it is a struggle to get a useful grip on
>>>>>> this.
>>>>>> Looking at G&R (I just ordered the latest, mine is 4th edition), the
>>>>>> task quickly gets out of hand.
>>>>>>
>>>>>> The CATS tests in the past were created by reading the printed latex
>>>>>> in various volumes and hand-translating them to Axiom input.
>>>>>>
>>>>>> It is not difficult to re-create the latex input for these examples.
>>>>>> Doing so and combining the results gives a set of examples with
>>>>>> matching input latex and output Axiom. The homework problem is
>>>>>> to write the necessary markup and weaver.
>>>>>>
>>>>>> It is immediately obvious that this is more challenging than it seem=
s.
>>>>>> For example, when writing y'(x)=3D0, Axiom needs y:=3Doperator 'y
>>>>>> so it knows about the symbol as an operator. This falls under
>>>>>> "Consideration 12: System Specific Commands"... which implies
>>>>>> that the latex environment and quoting macros have to be
>>>>>> implemented. Sigh.
>>>>>>
>>>>>> There is no such thing as a simple job.
>>>>>>
>>>>>> Anyway, at least there is a way to make a proof of concept
>>>>>> prototype that reproduces existing results.
>>>>>>
>>>>>> Tim
>>>>>>
>>>>>>
>>>>>> On Sun, Aug 21, 2016 at 4:17 PM, Tim Daly <axiomcas@gmail.com> wrote=
:
>>>>>>
>>>>>>> Dan,
>>>>>>>
>>>>>>> Welcome.
>>>>>>>
>>>>>>> Re: Howard Cohl. Yes, I'd like an introduction. It seems important =
to
>>>>>>> make DLMF, CRC, and other sources contain enough semantics that
>>>>>>> they can be read by a computer algebra system. There are an
>>>>>>> enormous number of issues, such as what to do with functions
>>>>>>> unknown to the CAS, which need to be thought through.
>>>>>>>
>>>>>>> I believe that NIST/CRC/G&R collections with semantic markup will
>>>>>>> have a great normalizing effect on CAS development since it will
>>>>>>> raise
>>>>>>> cross-platform questions like "What percent of G&R do you handle?".
>>>>>>> Albert Rich (RUBI)[0] has been doing this for integration using
>>>>>>> patterns.
>>>>>>> This can only benefit computational mathematics in the long term.
>>>>>>>
>>>>>>> I've also campaigned for associating algorithms with published
>>>>>>> tables.
>>>>>>> It is important in the long term to have reference versions. The AC=
M
>>>>>>> used to do this years ago. I'd like to see a Gruntz algorithm for
>>>>>>> limits
>>>>>>> where it can be applied, for instance. It would also provide a focu=
s
>>>>>>> on
>>>>>>> "missing algorithms" or edge cases. Davenport/Trager/Bronstein
>>>>>>> algorithms promise a decision procedure but there are no existing
>>>>>>> complete implementations. The tables could highlight missing cases,
>>>>>>> giving focus to efforts to complete the procedure.
>>>>>>>
>>>>>>> It will also put back-pressure on the tables to define different
>>>>>>> versions
>>>>>>> of the same formulas based on domains (C, R, etc).
>>>>>>>
>>>>>>>
>>>>>>> "The GR work was more than I had anticipated"... wins the award for
>>>>>>> understatement of the decade.
>>>>>>>
>>>>>>> The goal of this effort is to make it possible to read those
>>>>>>> formulas directly into a CAS. Axiom is my primary target but
>>>>>>> it should be done in a somewhat system agnostic form.
>>>>>>>
>>>>>>> I've spent well over a year creating the computer algebra test suit=
e.
>>>>>>> It would be so much easier and more useful if the original sources
>>>>>>> could be read directly.
>>>>>>>
>>>>>>> I read your paper. There is an interesting mix of syntax and
>>>>>>> semantics.
>>>>>>>
>>>>>>> I guess the difference in this effort is that the semantic markup i=
s
>>>>>>> intended to be transparent and grounded. The transparent aspect
>>>>>>> keeps the tables unchanged in print form. The grounded aspect keeps
>>>>>>> the semantics based on some algorithmic base. This implies, of
>>>>>>> course, that there IS an algorithmic base which does not yet exist
>>>>>>> for some of the work.
>>>>>>>
>>>>>>> As you can see from the CATS work I've been trying to validate
>>>>>>> Axiom's results with respect to published texts. This has found bot=
h
>>>>>>> Axiom bugs and misprints in published texts.
>>>>>>>
>>>>>>> The Kamke[1] suite was the first effort for differential equations.
>>>>>>>
>>>>>>> The Spiegel[2] chapter 14 on indefinite integrals for integration.
>>>>>>>
>>>>>>> The von Seggern[3] book on curves and surfaces for graphics.
>>>>>>>
>>>>>>> The Legendre and Grazini[4] on Pasta by Design for 3D graphics.
>>>>>>>
>>>>>>> The RUBI work on integration.
>>>>>>>
>>>>>>> and, currently I'm re-creating the numerics that were lost when NAG
>>>>>>> released the open source version, leaving me swimming through
>>>>>>> Luke's[5] Algorithms book.
>>>>>>>
>>>>>>> which, to quote a famous phrase "was more than I had anticipated".
>>>>>>>
>>>>>>> Your Handbook of Integration[6] has a section on various known
>>>>>>> "Caveats, How an integration result may be incorrect". This raises
>>>>>>> the
>>>>>>> wonderful topic of branch cuts yet again. I did some testing and it
>>>>>>> seems that Axiom and Mathematica share one set while Maple and
>>>>>>> Maxima share another.
>>>>>>>
>>>>>>> All of which leads to a need to create better reference materials
>>>>>>> that
>>>>>>> are generally available (unlike the ACM algorithms for non-paying
>>>>>>> customers) and directly useful for computational mathematics.
>>>>>>>
>>>>>>> The current plan is to take some tables, find or re-create the late=
x,
>>>>>>> invent a semantic markup, and then write the "weaver". At this poin=
t
>>>>>>> the research is still at the "proof of concept" stage. (tex formula
>>>>>>> sources are most welcome).
>>>>>>>
>>>>>>> Ultimately I'd really like to see a book of formulas and algorithms
>>>>>>> that I can just drag-and-drop into Axiom and be able to use them
>>>>>>> without lifetimes of work.
>>>>>>>
>>>>>>> Actually, that 's only the penultimate goal. I have augmented
>>>>>>> Axiom to include proofs (ACL2,COQ) so I'd also like to see proofs,
>>>>>>> (this IS mathematics, after all) but maybe we'll leave that for
>>>>>>> next month :-)
>>>>>>>
>>>>>>> Tim
>>>>>>>
>>>>>>> [0] Rich, Albert "Rule-based Mathematics"
>>>>>>> http://www.apmaths.uwo.ca/~arich/
>>>>>>>
>>>>>>> [1] Kamke. E. "Differentialgleichungen Losungsmethoden und Losungen=
"
>>>>>>> Chelsea Publishing Company, New York, 1959
>>>>>>>
>>>>>>> [2] Spiegel, Murray R. "Mathematical Handbook", Schaum's Outline
>>>>>>> Series; McGraw-Hill Book Company 1968
>>>>>>>
>>>>>>> [3] von Seggern, David "CRC Standard Curves and Surfaces",
>>>>>>> CRC Press, 1993 ISBN 0-8493-0196-3
>>>>>>>
>>>>>>> [4] Legendre, George L. and Grazini, Stefano "Pasta by Design",
>>>>>>> Thames and Hudson, 2001
>>>>>>>
>>>>>>> [5] Luke, Yudell "Algorithms for the Computation of Mathematical
>>>>>>> Functions", Academic Press, 1977 ISBN 0-12-459940-6
>>>>>>>
>>>>>>> [6] Zwillinger, Daniel "Handbook of Integration" Jones and Bartlett=
,
>>>>>>> London, 1992
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Sun, Aug 21, 2016 at 10:16 AM, Dan Zwillinger <
>>>>>>> zwilling@az-tec.com> wrote:
>>>>>>>
>>>>>>>> All
>>>>>>>>
>>>>>>>> I began reading this topic's emails when they first appeared, and
>>>>>>>> then fell behind.
>>>>>>>> Sorry for my late comments.
>>>>>>>>
>>>>>>>> I admire your efforts.
>>>>>>>> They may be somewhat related to what I have done in the past.
>>>>>>>> My experience is as follows:
>>>>>>>>
>>>>>>>> (1) CRC SMTF (Standard Mathematical Tables and Formula)
>>>>>>>>
>>>>>>>> I put the ~700 integrals in CRC's SMTF into a format from which
>>>>>>>> (A) they could be typeset in LaTeX
>>>>>>>> (B) they could be converted into Mathematica (which either did a
>>>>>>>> symbolic or numeric computation) - and this was done
>>>>>>>>
>>>>>>>> I let Richard Fateman use them for his experiments.
>>>>>>>>
>>>>>>>>
>>>>>>>> (2) Elsevier's GR (Gradshteyn and Ryzhik's "Table of Integrals,
>>>>>>>> Series, and Products")
>>>>>>>>
>>>>>>>> I put the ~12,000 (if my memory is correct) integrals into a forma=
t
>>>>>>>> from which
>>>>>>>> (A) they could be beautifully typeset in LaTeX
>>>>>>>> (B) they could be converted into Mathematica - and this was NOT do=
ne
>>>>>>>> Enclosed is a PDF file describing the work and the resulting forma=
t.
>>>>>>>>
>>>>>>>>
>>>>>>>> A different format was used for SMTF and GR.
>>>>>>>> While the SMTF work was not too arduous, the GR work was more than
>>>>>>>> I had anticipated.
>>>>>>>> The input (the previous version of GR) had little syntactic
>>>>>>>> structure and it took much effort to get it into shape.
>>>>>>>> I used (many different) regular expressions (in perl) to translate
>>>>>>>> the bulk of the book, and then lots of hand tuning.
>>>>>>>>
>>>>>>>> While I think you are well beyond my thinking on these topics,
>>>>>>>> please let me know if I can help.
>>>>>>>> I am friends with Howard Cohl at NIST, who may be the current lead
>>>>>>>> for DLMF ("Digital Library of Mathematical Functions" at
>>>>>>>> dlmf.nist.gov).
>>>>>>>> Let me know if you need an introduction.
>>>>>>>>
>>>>>>>>
>>>>>>>> Dan Zwillingerzwilling@az-tec.com617-388-2382
>>>>>>>>
>>>>>>>> On 8/20/2016 11:30 PM, Tim Daly wrote:
>>>>>>>>
>>>>>>>> The game is to define latex markup that is transparent to the synt=
ax
>>>>>>>> but adds semantics for post processing.
>>>>>>>>
>>>>>>>> Some simple tests show that this works. Suppose selatex.sty
>>>>>>>> contains:
>>>>>>>>
>>>>>>>> \newcommand{\INT}[1]{#1}
>>>>>>>> \newcommand{\VARIABLE}[1]{#1}
>>>>>>>> \newcommand{\POLY}[1]{#1}
>>>>>>>> \newcommand{\INTEG}[2]{\int{#1}}
>>>>>>>>
>>>>>>>> This defines 4 new latex markups. The number in the square bracket=
s
>>>>>>>> defines the number of expected arguments. The brace argument
>>>>>>>> delimites the characters that will occur during expansion with the
>>>>>>>> #1
>>>>>>>> replaced by the first argument.
>>>>>>>>
>>>>>>>> (As an aside, INT, VARIABLE, and POLY just happen to be valid
>>>>>>>> Axiom domain abbreviations, hence the name choice. This choice
>>>>>>>> of names gives grounding to the semantics.)
>>>>>>>>
>>>>>>>> Notice that \INTEG takes two arguments but will display only one.
>>>>>>>> This allows the variable of integration to be passed in the
>>>>>>>> semantics
>>>>>>>> without showing up in the output. This allows the semantics to car=
ry
>>>>>>>> additional, non-display information needed by the CAS.
>>>>>>>>
>>>>>>>> Some examples follow.
>>>>>>>>
>>>>>>>> An integer 3 can be wrapped as \INT{3} but will still display as 3=
.
>>>>>>>>
>>>>>>>> A variable x can be wrapped as \VARIABLE{x}, displayed as x.
>>>>>>>>
>>>>>>>> $\POLY{\INT{3}\VARIABLE{x}}$ will display as 3*x
>>>>>>>>
>>>>>>>> $\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x} will be the same result
>>>>>>>> as $\int{3x~dx}$, that is, an
>>>>>>>>   (integralsign) 3x dx
>>>>>>>> but notice that the variable of integration is in the semantic
>>>>>>>> markup.
>>>>>>>>
>>>>>>>> These trivial macros can be made less verbose and certainly
>>>>>>>> more clever but that's not the point being made here.
>>>>>>>>
>>>>>>>> A 'weaver' program would see the integration expression as
>>>>>>>>
>>>>>>>> $\INTEG{\POLY{\INT{3}\VARIABLE{x}~dx}}{x}$
>>>>>>>>
>>>>>>>> with all of the semantic tags. The weaver's job is to rewrite this
>>>>>>>> expression into an inputform for the CAS. In Axiom that would be
>>>>>>>>
>>>>>>>> integrate(3*x,x)
>>>>>>>>
>>>>>>>> The semantics markup makes the display pretty and the semantic
>>>>>>>> parsing possible. Depending on the system, more or less parsing
>>>>>>>> markup can exist. Axiom, for example, would not need the \INT or
>>>>>>>> \VARIABLE to get a correct parse so the expression could be
>>>>>>>> $\INTEG{3x~dx}{x}$
>>>>>>>>
>>>>>>>> This validates the fundamental idea.
>>>>>>>>
>>>>>>>> The next step is to write a simple weaver program. The clever path
>>>>>>>> would be to embed a declarative form of the parser syntax (BNF?)
>>>>>>>> as comments in selatex.sty. That way the latex semantics and the
>>>>>>>> weaver syntax are kept in sync.
>>>>>>>>
>>>>>>>> Weaver would read the BNF comments from selatex.sty and
>>>>>>>> the formula with semantic markup as input and parse the semantic
>>>>>>>> markup into inputforms. (Wish I thought of this homework problem
>>>>>>>> when I taught the compiler course :-) ).
>>>>>>>>
>>>>>>>> Note that, depending on the BNF, weaver could be used to
>>>>>>>> generate output for Maxima's tree-based representation.
>>>>>>>>
>>>>>>>> An alternative next step is to look at a CRC book, re-create the
>>>>>>>> syntactic latex and then create the selatex.sty entries necessary
>>>>>>>> to generate weaver input.
>>>>>>>>
>>>>>>>> Infinitesimal progress, but progress non-the-less.
>>>>>>>>
>>>>>>>> Tim
>>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, Aug 19, 2016 at 12:45 AM, Tim Daly <axiomcas@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>> One of the Axiom project goals is to develop a "Computer Algebra
>>>>>>>>> Test
>>>>>>>>> Suite" (CATS). Albert Rich has done this with RUBI and
>>>>>>>>> integration. That
>>>>>>>>> work is already partially in the test suite and work has been don=
e
>>>>>>>>> on the
>>>>>>>>> pattern matching. Large datasets (like Kamke) are always welcome.
>>>>>>>>> Some,
>>>>>>>>> such as Schaums were hand-developed. This is tedious.
>>>>>>>>>
>>>>>>>>> As Axiom develops more explanations and documentation it would be
>>>>>>>>> useful to execute the formulas directly so there is a local
>>>>>>>>> incentive to be
>>>>>>>>> clear about semantics.
>>>>>>>>>
>>>>>>>>> In the long term the hope is that we can just grab formulas
>>>>>>>>> directly from
>>>>>>>>> their sources (ala literate programming). Your work makes it plai=
n
>>>>>>>>> that raw
>>>>>>>>> latex does not carry sufficient semantics. There is a global
>>>>>>>>> question of
>>>>>>>>> how to make this work. Unfortunately a general cross-platform
>>>>>>>>> solution
>>>>>>>>> is difficult (cite Dewar/Davenport/et al. for OpenMath).
>>>>>>>>>
>>>>>>>>> Since Axiom is literate and extracting formulas is trivial it
>>>>>>>>> seems that
>>>>>>>>> literate markup is a natural goal. Since Axiom uses abstract
>>>>>>>>> algebra
>>>>>>>>> as a scaffold the type tower already has a lot of axiomatic
>>>>>>>>> semantics.
>>>>>>>>> The natural join of literate latex and abstract algebra is clearl=
y
>>>>>>>>> semantic markup, aka selatex.
>>>>>>>>>
>>>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>>>> Consideration 10: semantic->inputform translation (weaver? :-) )
>>>>>>>>>
>>>>>>>>> >x and not x   has no particular meaning,  but if x is explicitly
>>>>>>>>> true or false,
>>>>>>>>> >Maxima simplifies it to false.  If SEALATEX has a semantics --
>>>>>>>>> are you
>>>>>>>>> >defining yet another CAS?  Or perhaps you should link it 100% to
>>>>>>>>> Axiom's
>>>>>>>>> >semantics, which you presumably know about and can modify.
>>>>>>>>>
>>>>>>>>> I am NOT defining another CAS. The goal is a "well-designed hack"
>>>>>>>>> using
>>>>>>>>> universally understood latex, a latex package, and a translation
>>>>>>>>> program.
>>>>>>>>>
>>>>>>>>> The selatex idea is only partially Axiom specific. \INT, for
>>>>>>>>> instance, seems
>>>>>>>>> pretty generic. However, if the idea is to read formulas and
>>>>>>>>> disambiguate
>>>>>>>>> a=3Db (boolean) vs a=3Db (equation) then the markup needs to be
>>>>>>>>> grounded
>>>>>>>>> to have meaning. Axiom's domains (BOOLEAN) and (EQ) as the ground
>>>>>>>>>
>>>>>>>>> \BOOLEAN(a=3Db)
>>>>>>>>> \EQ(a=3Db)
>>>>>>>>>
>>>>>>>>> are unambiguous relative to each other in Axiom. I don't know
>>>>>>>>> enough
>>>>>>>>> about Maxima to understand how this might translate.
>>>>>>>>>
>>>>>>>>> The extracted formulas with the decorated semantics still needs a
>>>>>>>>> semantics->inputform (weaver) pre-processor which could be Maxima
>>>>>>>>> specific. This would lead to debate about what "equality" means,
>>>>>>>>> of course.
>>>>>>>>>
>>>>>>>>> Axiom has tried to create a first-order "rosetta stone" to
>>>>>>>>> translate between
>>>>>>>>> systems (rosetta.pdf [1]) but it is too shallow to consider
>>>>>>>>> providing
>>>>>>>>> cross-platform semantics.
>>>>>>>>>
>>>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>>>> Consideration 11: \scope in selatex
>>>>>>>>>
>>>>>>>>> >As far as recording stuff in DLMF -- there are presumably scope
>>>>>>>>> issues
>>>>>>>>> >("in this chapter n,m are natural numbers....")  and maybe even =
a
>>>>>>>>> need
>>>>>>>>> >to make value assignments.
>>>>>>>>> >I think you need to model these in SEALATEX too.
>>>>>>>>>
>>>>>>>>> (See Consideration 6)
>>>>>>>>>
>>>>>>>>> Clearly there are scoping issues. My current thinking is to creat=
e
>>>>>>>>> a
>>>>>>>>> \scope markup that would manage the environment(s). This is not
>>>>>>>>> a new issue (see "Lisp in Small Pieces" [0])
>>>>>>>>>
>>>>>>>>> There seem to be three concerns.
>>>>>>>>>
>>>>>>>>> First is the scope name, with something like 'global' as a keywor=
d.
>>>>>>>>> Second is the "closure chain" of other scopes.
>>>>>>>>> Third is the symbol being scoped.
>>>>>>>>>
>>>>>>>>> \scope{name}{chain}{symbol}
>>>>>>>>>
>>>>>>>>> The weaver program would walk this chain to create the proper
>>>>>>>>> file syntax for system input.
>>>>>>>>>
>>>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>>>> Consideration 12: System specific commands \axiom
>>>>>>>>>
>>>>>>>>> Along with the formulas it is clear that some system specific
>>>>>>>>> input may be required, such as loading files, clearing workspaces=
,
>>>>>>>>> etc. Some of these may be done in the weaver program, such as
>>>>>>>>> between formulas. Others may need to be added to the semantics
>>>>>>>>> block. So a markup that provides verbatim quoting per system
>>>>>>>>> might be defined, e.g.
>>>>>>>>>
>>>>>>>>> \axiom{)clear all}  %clear the workspace
>>>>>>>>>
>>>>>>>>> which would simply quote an input line.
>>>>>>>>>
>>>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>>>>
>>>>>>>>> Note that so far all that is being suggested is transparent formu=
la
>>>>>>>>> markups which do not impact the presentation, some special tags
>>>>>>>>> (\scope, \axiom,...) and a weaver program, along with the ability
>>>>>>>>> to
>>>>>>>>> read the latex and extract named formulas (aka a literate program=
,
>>>>>>>>> which Axiom already can do).
>>>>>>>>>
>>>>>>>>> It ought to be possible (by design) to create a semantic version =
of
>>>>>>>>> CRC that any system could import, assuming a "sufficiently clever
>>>>>>>>> weaver".
>>>>>>>>>
>>>>>>>>> On a more ambitious note, I am trying to find a way to keep the
>>>>>>>>> selatex
>>>>>>>>> markup "hidden" in a pdf and use it as the clipboard paste when t=
he
>>>>>>>>> formula is selected. Anyone with a clue, please help.
>>>>>>>>>
>>>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>>>>
>>>>>>>>> [0] Queinnec, Christopher, "Lisp in Small Pieces" ISBN
>>>>>>>>> 978-0521545662
>>>>>>>>> (2003)
>>>>>>>>>
>>>>>>>>> [1] Wester, Michael J. and Daly, TImothy "Rosetta"
>>>>>>>>> http://axiom-developer.org/axiom-website/rosetta.pdf
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Thu, Aug 18, 2016 at 5:30 PM, Richard Fateman <
>>>>>>>>> fateman@berkeley.edu> wrote:
>>>>>>>>>
>>>>>>>>>> thanks for all the references :)
>>>>>>>>>>
>>>>>>>>>> I'm not sure if I'm going to repeat comments I  made already
>>>>>>>>>> somewhere.
>>>>>>>>>> First,  has Dan Zwillinger weighed in?  I think that it would be
>>>>>>>>>> useful
>>>>>>>>>> to see what he has done.
>>>>>>>>>>
>>>>>>>>>> Next, there are ambiguities among CAS and even within a single
>>>>>>>>>> CAS.
>>>>>>>>>>
>>>>>>>>>> For example, in Macsyma/ Maxima  there is generally no semantics
>>>>>>>>>> associated with "=3D" or ">".   But in some contexts, there is s=
ome
>>>>>>>>>> meaning.
>>>>>>>>>>
>>>>>>>>>> x>2*y
>>>>>>>>>>
>>>>>>>>>> is a tree expression.  It is not associated with x or with y.
>>>>>>>>>>
>>>>>>>>>> assume(x>2*y)   does mean something ... it puts info in a
>>>>>>>>>> database.
>>>>>>>>>> Somehow encoding the method to extract this information into
>>>>>>>>>> SEALATEX
>>>>>>>>>> (SeLaTeX?) in a CAS-independent way -- that's quite a task.   In
>>>>>>>>>> particular, it would seem to require an understanding of what
>>>>>>>>>> assume()
>>>>>>>>>> does in Maxima, and what is() does also.
>>>>>>>>>>
>>>>>>>>>> x and not x   has no particular meaning,  but if x is explicitly
>>>>>>>>>> true or false,
>>>>>>>>>> Maxima simplifies it to false.  If SEALATEX has a semantics --
>>>>>>>>>> are you
>>>>>>>>>> defining yet another CAS?  Or perhaps you should link it 100% to
>>>>>>>>>> Axiom's
>>>>>>>>>> semantics, which you presumably know about and can modify.
>>>>>>>>>>
>>>>>>>>>> As far as recording stuff in DLMF -- there are presumably scope
>>>>>>>>>> issues
>>>>>>>>>> ("in this chapter n,m are natural numbers....")  and maybe even =
a
>>>>>>>>>> need
>>>>>>>>>> to make value assignments.
>>>>>>>>>> I think you need to model these in SEALATEX too.
>>>>>>>>>>
>>>>>>>>>> Just musing about where you are heading.
>>>>>>>>>>
>>>>>>>>>> RJF
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 8/18/2016 11:45 AM, Tim Daly wrote:
>>>>>>>>>>
>>>>>>>>>> Fateman [0] raised a set of issues with the OpenMath
>>>>>>>>>> approach. We are not trying to be cross-platform in this
>>>>>>>>>> effort. Axiom does provide an algebraic scaffold so it is
>>>>>>>>>> possible that the selatex markup might be useful elsewhere
>>>>>>>>>> but that is not a design criterion.
>>>>>>>>>>
>>>>>>>>>> Fateman[1] also raises some difficult cross-platform issues
>>>>>>>>>> that are not part of this design.
>>>>>>>>>>
>>>>>>>>>> Fateman[2] shows that parsing tex with only syntactic markup
>>>>>>>>>> succeeded on only 43% of 10740 inputs. It ought to be posible
>>>>>>>>>> to increase this percentage given proper semantic markup.
>>>>>>>>>> (Perhaps there should be a competition similar to the deep
>>>>>>>>>> learning groups? PhDs have been awarded on incremental
>>>>>>>>>> improvements of the percentage)
>>>>>>>>>>
>>>>>>>>>> This is a design-by-crawl approach to the semantic markup
>>>>>>>>>> idea. The hope is to get something running this week that
>>>>>>>>>> 'works' but giving due consideration to global and long-term
>>>>>>>>>> issues. A first glance at CRC/NIST raises more questions
>>>>>>>>>> than answers as is usual with any research.
>>>>>>>>>>
>>>>>>>>>> It IS a design goal to support a Computer Algebra Test Suite
>>>>>>>>>> (http://axiom-developer.org/axiom-website/CATS). It is very
>>>>>>>>>> tedious to hand construct test suites. It will be even more
>>>>>>>>>> tedious to construct them "second-level" by doing semantic
>>>>>>>>>> markup and then trying to use them as input, but the hope is
>>>>>>>>>> that eventually the CRC/NIST/G&R, etc will eventually be
>>>>>>>>>> published with semantics so computational mathematics can
>>>>>>>>>> stop working from syntax.
>>>>>>>>>>
>>>>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>>>>> Consideration 4: I/O transparency
>>>>>>>>>>
>>>>>>>>>> Assume for the moment that we take a latex file containing
>>>>>>>>>> only formulas. We would like to be able to read this file so
>>>>>>>>>> it has computational mathematics (CM) semantics.
>>>>>>>>>>
>>>>>>>>>> It is clear that there needs to be semantic tags that carry the
>>>>>>>>>> information but these tags have to be carefully designed NOT
>>>>>>>>>> to change the syntactic display. They may, as noted before,
>>>>>>>>>> require multiple semantic versions for a single syntax.
>>>>>>>>>>
>>>>>>>>>> It is also clear that we would like to be able to output formula=
s
>>>>>>>>>> with CM semantics where currently we only output syntax.
>>>>>>>>>>
>>>>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>>>>> Consideration 5: I/O isomorphism
>>>>>>>>>>
>>>>>>>>>> An important property of selatex is an isomorphism with
>>>>>>>>>> input/output. Axiom allows output forms to be defined for a
>>>>>>>>>> variety of targets so this does not seem to be a problem. For
>>>>>>>>>> input, however, this means that the reader has to know how
>>>>>>>>>> to expand \INT{3} into the correct domain. This could be done
>>>>>>>>>> with a stand-alone pre-processor from selatex->inputform.
>>>>>>>>>>
>>>>>>>>>> It should be possible to read-then-write an selatex formula,
>>>>>>>>>> or write-then-read an selatex formula with identical semantics.
>>>>>>>>>>
>>>>>>>>>> That might not mean that the I/O is identical though due to
>>>>>>>>>> things like variable ordering, etc.
>>>>>>>>>>
>>>>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>>>>> Consideration 6: Latex semantic macros
>>>>>>>>>>
>>>>>>>>>> Semantic markup would be greatly simplified if selatex provided
>>>>>>>>>> a mechanism similar to Axiom's ability to define types "on the
>>>>>>>>>> fly"
>>>>>>>>>> using either assignment
>>>>>>>>>>
>>>>>>>>>>    TYP:=3DFRAC(POLY(INT))
>>>>>>>>>>
>>>>>>>>>> or macro form
>>>>>>>>>>
>>>>>>>>>>    TYP =3D=3D> FRAC(POLY(INT))
>>>>>>>>>>
>>>>>>>>>> Latex is capable of doing this and selatex should probably inclu=
de
>>>>>>>>>> a set of pre-defined common markups, such as
>>>>>>>>>>
>>>>>>>>>>   \FRINT =3D=3D> \FRAC\INT
>>>>>>>>>>
>>>>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>>>>> Consideration 7: selatex \begin{semantic} environment?
>>>>>>>>>>
>>>>>>>>>> Currently Axiom provides a 'chunk' environment which surrounds
>>>>>>>>>> source code. The chunks are named so they can be extracted
>>>>>>>>>> individually or in groups
>>>>>>>>>>
>>>>>>>>>>    \begin{chunk}{a name for the chunk}
>>>>>>>>>>       anything
>>>>>>>>>>    \end{chunk}
>>>>>>>>>>
>>>>>>>>>> We could provide a similar environment for semantics such as
>>>>>>>>>>
>>>>>>>>>>   \begin{semantics}{a name for the block}
>>>>>>>>>>   \end{semantics}
>>>>>>>>>>
>>>>>>>>>> which would provide a way to encapsulate markup and also allow
>>>>>>>>>> a particular block to be extracted in literate programming style=
.
>>>>>>>>>>
>>>>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>>>>> Consideration 8: Latex-time processing
>>>>>>>>>>
>>>>>>>>>> Axiom currently creates specific files using \write to create
>>>>>>>>>> intermediate files (e.g. for tables). This technique can be used
>>>>>>>>>> to enhance latex-time debugging (where did it fail?).
>>>>>>>>>>
>>>>>>>>>> It can be used to create Axiom files which pre-construct domains
>>>>>>>>>> needed when the input file with semantic markup is read.
>>>>>>>>>>
>>>>>>>>>> This would help a stand-alone selatex->inputform preprocessor.
>>>>>>>>>>
>>>>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>>>>> Consideration 9: Design sketches
>>>>>>>>>>
>>>>>>>>>> It is all well-and-good to hand-wave at this idea but a large
>>>>>>>>>> amount of this machinery already exists.
>>>>>>>>>>
>>>>>>>>>> It would seem useful to develop an incremental test suite that
>>>>>>>>>> starts with "primitive" domains (e.g. INT), creating selatex I/O=
.
>>>>>>>>>>
>>>>>>>>>> Once these are in place we could work on "type tower" markup
>>>>>>>>>> such as \FRAC\INT or \POLY\COMPLEX\FLOAT.
>>>>>>>>>>
>>>>>>>>>> Following that might be pre-existing latex functions like \int,
>>>>>>>>>> \sum,
>>>>>>>>>> \cos, etc.
>>>>>>>>>>
>>>>>>>>>> To validate these ideas Axiom will include an selatex.sty file a=
nd
>>>>>>>>>> some unit tests files on primitive domain markup. That should be
>>>>>>>>>> enough to start the bikeshed discussions.
>>>>>>>>>>
>>>>>>>>>> Ideas? Considerations? Suggestions?
>>>>>>>>>>
>>>>>>>>>> Tim
>>>>>>>>>>
>>>>>>>>>> [0] Fateman, Richard J.
>>>>>>>>>> "A Critique of OpenMath and Thoughts on
>>>>>>>>>> Encoding Mathematics, January, 2001"
>>>>>>>>>> https://people.eecs.berkeley.edu/~fateman/papers/openmathcrit.pd=
f
>>>>>>>>>>
>>>>>>>>>> [1] Fateman, Richard J.
>>>>>>>>>> "Verbs, Nouns, and Computer Algebra, or What's Grammar Got to
>>>>>>>>>> do with Math? ", December 18, 2008
>>>>>>>>>> https://people.eecs.berkeley.edu/~fateman/papers/nounverbmac.pdf
>>>>>>>>>>
>>>>>>>>>> [2] Fateman, Richard J.
>>>>>>>>>> "Parsing TeX into Mathematics",
>>>>>>>>>> https://people.eecs.berkeley.edu/~fateman/papers/parsing_tex.pdf


\start
Date: Sat, 27 Aug 2016 03:08:11 -0400
From: Tim Daly <axiomcas@gmail.com>
To: Tim Daly <daly@axiom-developer.org>, axiom-dev <axiom-developer@nongnu.org>,
	Ralf Hemmecke <ralf@hemmecke.org>,
	James Davenport <J.H.Davenport@bath.ac.uk>, 
	Richard Fateman <fateman@berkeley.edu>, Mike Dewar <miked@nag.co.uk>,
	vdhoeven@lix.polytechnique.fr, 
	D Zwillinger <zwilling@az-tec.com>, albert_rich@msn.com
Subject: [Axiom-developer] Design of Semantic Latex

(email failed... retry)

The referenced paper only looked at the DLMF Airy functions. The results
are:

"Of the 17 sections in the DLMF sample chapter on Airy functions we can
handle the mathematical

formulas completely in 6, partially in 5 (without the transformation to
MathML), and 6 remain

incomplete.


The grammar currently contains approximately 1000 productions, of which ca.
350 are dictionaries.

There are about 550 rewrite rules. There are fewer rewrite rules than
grammar rules, partly because

dictionaries can be treated uniformly by manipulating literals, and partly
because it is still incomplete

with respect to the grammar.


Our project shows that parsing mathematics in the form of LATEX documents
written to project-specific

rules is feasible, but due to the variations in notation the grammar needs
to be engineered specifically

for the project, or even for different chapters written by different
mathematicians (e.g. the chapter on

elementary transcendental functions and on Airy functions)."


Many have tried to parse DLMF but there is not sufficient information in
the latex. This

effort used many rules to try to decide if w(x+y) is a multiplication or a
function application.

There are rules to decide if sin a/b means (sin a)/b or sin(a/b), either of
which is trivial to

distinguish if the latex read {sin a}/b or sin{a/b}


Trivial amounts of semantic markup in the DLMF would communicate semantics
without using

1000 productions which still get wrong answers.

\start
Date: Sat, 27 Aug 2016 03:12:37 -0400
From: Tim Daly <axiomcas@gmail.com>
To: Tim Daly <daly@axiom-developer.org>, axiom-dev <axiom-developer@nongnu.org>,
	Ralf Hemmecke <ralf@hemmecke.org>,
	James Davenport <J.H.Davenport@bath.ac.uk>, 
	Richard Fateman <fateman@berkeley.edu>, Mike Dewar <miked@nag.co.uk>,
	vdhoeven@lix.polytechnique.fr, 
	D Zwillinger <zwilling@az-tec.com>, albert_rich@msn.com
Subject: Re: [Axiom-developer] Design of Semantic Latex

(email failed...retry)

William Sit wrote:

=======
>I am still not sure what your immediate goal is. My current understanding
(correct me
>if I am still wrong) is that you want to translate the left hand side of
an identity (like a
>formula for an integral) given in latex into Axiom code which then, by
executing the
>code, generates the right hand side of that identity, first by outputted
as an Axiom
>expression and then as selatex, and one difficulty is the lack of
semantics implicit
>in the input (left hand side) latex string.

Well, the selatex output would only happen if you asked for it, but yes,
this is correct.

>However, there are other difficulties: often, there is no canonical form
for the right hand
>side (an answer after evaluating the left hand side),

If you look at the CATS Schaum's Integration set you'll see that each Axiom
integration result was subtracted from the published result, expecting it
to simplify to 0.
(This is undecidable).

Where the answers differed they usually differed by a constant
(which was shown by taking the derivative of the difference). Sometimes
special
simplification routines were needed, other times some rules had to be
applied to get
some trig identities. More than once there was no resolution, which either
indicates
a bug in Axiom, an error in the published result, or some hidden semantic
assumption.

Even more interesting is that many of the reference books list many results.

=======
>nor does Axiom always give the provisos under which the
evaluation/identity is valid

One crisis at a time... Axiom has, for example, branch cut choices and
these need to
be made explicit. Ideally, these could be changed by provisos. The SuchThat
domain
provides some proviso functionality but is rarely used at present. However,
the published
results don't provide the provisos either making the whole issue invisible
despite
being important.

=========
>For test suites, you won't have to worry about the canonical form or
provisos because
>you are only comparing the answer with the one generated by a previous
version of
>Axiom, to make sure nothing is "broken". For that purpose, the semantic
you need only
>needs to be consistent from one Axiom version to the next, and you may
choose the
>specific parameters needed in any way where the identity makes sense.

The regression tests use exactly this philosophy. But the CATS tests are a
"Computer Algebra Test Suite", not an Axiom test suite so they are measured
against
published results. On several occasions Axiom has found errors in the
published results.

==========
>The general problem (which I am not sure if you are pursuing) where one
wants to add
>explicit semantic to any mathematical expression given in latex is a far
more challenging
>one, independent of whether the expression can or should be evaluated, or
semantic
>provided for the rewritten expression (or "answer"). I wonder if the
general problem has
>applications. Would such mark-ups help or hinder the creation of a piece
of mathematical
>work?

In general I don't think published mathematics will adopt semantic markup.
The context
available in the surrounding paragraphs is sufficient. Most formulas are
just there
to make the text statements exact.

However, for reference works that have no surrounding paragraphs like the
CRC/NIST/etc.
the loss of paragraphs makes the formulas ambiguous. The E=mc^2 formula has
no
meaning if you don't know what E, m, and c are.

Reference works lack grounding. This is an effort to provide semantic
grounding by
showing that the formula is backed by algorithms that can recover the
"results".
Is that useful?

The CATS test suite shows that Axiom has problems which need to be solved.
It also shows that the reference works have published errors. Both efforts
benefit.

Is it of interest? Apparently so. Every so often someone tries to parse
latex with the
goal of automation or inter-system communication. The natural source of
latex
formulas are the reference works. The parsing effort fails every time based
on the lack of semantics. This effort addresses the "root cause", making
the
reference works much more useful.


On Sat, Aug 27, 2016 at 3:08 AM, Tim Daly <axiomcas@gmail.com> wrote:

> (email failed... retry)
>
> The referenced paper only looked at the DLMF Airy functions. The results
> are:
>
> "Of the 17 sections in the DLMF sample chapter on Airy functions we can
> handle the mathematical
>
> formulas completely in 6, partially in 5 (without the transformation to
> MathML), and 6 remain
>
> incomplete.
>
>
> The grammar currently contains approximately 1000 productions, of which
> ca. 350 are dictionaries.
>
> There are about 550 rewrite rules. There are fewer rewrite rules than
> grammar rules, partly because
>
> dictionaries can be treated uniformly by manipulating literals, and partly
> because it is still incomplete
>
> with respect to the grammar.
>
>
> Our project shows that parsing mathematics in the form of LATEX documents
> written to project-specific
>
> rules is feasible, but due to the variations in notation the grammar needs
> to be engineered specifically
>
> for the project, or even for different chapters written by different
> mathematicians (e.g. the chapter on
>
> elementary transcendental functions and on Airy functions)."
>
>
> Many have tried to parse DLMF but there is not sufficient information in
> the latex. This
>
> effort used many rules to try to decide if w(x+y) is a multiplication or a
> function application.
>
> There are rules to decide if sin a/b means (sin a)/b or sin(a/b), either
> of which is trivial to
>
> distinguish if the latex read {sin a}/b or sin{a/b}
>
>
> Trivial amounts of semantic markup in the DLMF would communicate semantics
> without using
>
> 1000 productions which still get wrong answers.
>

\start
Date: Sat, 27 Aug 2016 09:14:27 -0700
From: Richard Fateman <fateman@berkeley.edu>
To: Tim Daly <axiomcas@gmail.com>, Tim Daly <daly@axiom-developer.org>,
	axiom-dev <axiom-developer@nongnu.org>, Ralf Hemmecke <ralf@hemmecke.org>, 
	James Davenport <J.H.Davenport@bath.ac.uk>, Mike Dewar <miked@nag.co.uk>,
	vdhoeven@lix.polytechnique.fr, D Zwillinger <zwilling@az-tec.com>,
	albert_rich@msn.com
Subject: Re: [Axiom-developer] Design of Semantic Latex

Designation of branch cuts is sometimes denoted by natural language.
While the end points are specific -- depend of singularities -- the
cuts can be moved for convenience, and this is done often to evaluate
contour integrals, for example.

Take up a book on complex analysis and see what problems you have
  as you try to encode the statements, or especially the homework
problems. I tried this decades ago with the text I used,
https://www.amazon.com/Functions-Complex-Variable-Technique-Mathematics/dp/0898715954
but probably any other text would do.

I think the emphasis on handbook or reference book representation
is natural, and I have certainly pursued this direction myself. However
what you/we want to be able to encode is mathematical discourse. This
goes beyond "has the algorithm reproduced the reference value for an
integration."   Can you encode in semantic latex a description of the 
geometry
of the (perhaps infinitely layered) contour of a complex function?  You
might wonder if this is important, but then note that questions of this sort
appear in the problem section for chapter 1.

Here's the challenge then.  Take a mathematics book and "encode"
  it so that a program (hypothetically) could answer the problems at
the end of each chapter.

You do not need special functions and integral tables to find
problems that are too hard to handle.  I just found this

http://news.mit.edu/2014/computer-system-automatically-solves-word-problems-0502


I think the problem, algebra word problems,  which has been addressed 
repeatedly since
1965 or so,  is already difficult.  While I think (judging solely by the 
news article -- I was
unaware of this work -- which apparently used Macsyma) this is low 
quality,  it is
hard to be sure.   Maybe their problems can be be related to your 
ambitions.  A quote from the article above,
The system’s ability to perform fairly well even when trained chiefly on 
raw numerical answers is “super-encouraging,” Knight adds. “It needs a 
little help, but it can benefit from a bunch of extra data that you 
haven’t labeled in detail.”



RJF


\start
Date: Sat, 27 Aug 2016 13:28:26 -0400
From: Tim Daly <axiomcas@gmail.com>
To: Richard Fateman <fateman@berkeley.edu>
Cc: Tim Daly <daly@axiom-developer.org>, axiom-dev <axiom-developer@nongnu.org>,
	Ralf Hemmecke <ralf@hemmecke.org>,
	James Davenport <J.H.Davenport@bath.ac.uk>, 
	Mike Dewar <miked@nag.co.uk>, vdhoeven@lix.polytechnique.fr, 
	D Zwillinger <zwilling@az-tec.com>, albert_rich@msn.com

On Sat, Aug 27, 2016 at 12:14 PM, Richard Fateman <fateman@berkeley.edu>
wrote:

>
> Take up a book on complex analysis and see what problems you have
>  as you try to encode the statements, or especially the homework
> problems. I tried this decades ago with the text I used,
> https://www.amazon.com/Functions-Complex-Variable-
> Technique-Mathematics/dp/0898715954
> but probably any other text would do.
>

My last project at CMU (Tires) involved work on machine learning
using natural language (and Good-Old-Fashioned-AI (GOFAI)).
I'm not smart enough to make progress in natural language.



>
> I think the emphasis on handbook or reference book representation
> is natural, and I have certainly pursued this direction myself.  However
> what you/we want to be able to encode is mathematical discourse. This
> goes beyond "has the algorithm reproduced the reference value for an
> integration."   Can you encode in semantic latex a description of the
> geometry
> of the (perhaps infinitely layered) contour of a complex function?  You
> might wonder if this is important, but then note that questions of this
> sort
> appear in the problem section for chapter 1.
>

Like any research project, there has to be bounds on the ambition.

At this point, the goal is to modify the markup to disambiguate a latex
formula so the machine can import it. Axiom needs to import it to create
a test suite measuring progress against existing knowledge.

What you're describing seems to be a way to encode topological issues
dealing with the structure of the space underlying the formulas. I have no
idea how to encode the Bloch sphere or a torus or any other space except
by referencing an Axiom domain, which implicitly encodes it.

If the formula deals with quantum mechanics then the algorithms have an
implicit, mechanistic way of dealing with the Bloch sphere. So markup that
uses these function calls use this implicit grounding. Simllarly, markup
that
uses a branch cut implicitly uses the implementation semantics.

Axiom and Mathematics have one set of branch cuts, Maple and Maxima
have another (at far as I can tell). So the markup decisions have to be
carefully chosen.


>
> Here's the challenge then.  Take a mathematics book and "encode"
>  it so that a program (hypothetically) could answer the problems at
> the end of each chapter.
>

That's a much deeper can of worms than it appears. I spent a lot of
time in the question-answering literature. I have no idea how to make
progress in that area. The Tires project involved self-modifying lisp
based on natural language interaction with a human in the limited
domain of changing a car tire. See
http://daly.axiom-developer.org/cmu/book.pdf
(The grant ended before the projected ended. Sigh)

Tim

P.S. Tires is self-modifying lisp code. It "learns" by changing itself.
The initial code (the seed code) becomes "something else". One
interesting insight is that two versions of the seed code will diverge
based on "experience". That implies that you can't "teach by copy",
that is, you can't teach one system and then "just copy" it to another
existing system since their experiences (and the code structure)
will differ. Any system that "learns" will fail "teach by copy", I believe.
That means that AI will not have the exponential growth that everyone
seems to believe.

\documentclass{book}
%\newcommand{\VolumeName}{Volume 2: Axiom Users Guide}
%\input{bookheader.tex}
\pagenumbering{arabic}
\mainmatter
\setcounter{chapter}{0} % Chapter 1

\usepackage{makeidx}
\makeindex
\begin{document}



\end{verbatim}
\eject
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\cleardoublepage
%\phantomsection
\addcontentsline{toc}{chapter}{Bibliography}
\bibliographystyle{axiom}
\bibliography{axiom}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\cleardoublepage
%\phantomsection
\addcontentsline{toc}{chapter}{Index}
\printindex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document}
