Re: JSON with XML Stream API/moshi
Stefan Traud <[email protected]> Mon, 24 Feb 2025 08:41:19 +0000 (UTC)
| Newsgroups | gmane.text.xml.axis.user |
|---|---|
| Message-ID | <[email protected]> |
------=_Part_3711230_589788145.1740386479274
Content-Type: multipart/alternative;
boundary="----=_Part_3711227_832266227.1740386479154"
------=_Part_3711227_832266227.1740386479154
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
I'm using the services.xml without modification as per samples.quickstarta=
db.resources.META-INF.services.xml. Please see attached. Regarding the axis=
2.xml, I have modified according to the guidelines in=C2=A0Apache Axis2 =E2=
=80=93 How to configure Native approach and XML Stream API base approach=C2=
=A0for the XML Stream API based approach (and replacing occurences of "gson=
" with "moshi"). Please find attached.
In the transport phase, I have added:
<handler name=3D"RequestURIOperationDispatcher"
class=3D"org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
<handler name=3D"JSONMessageHandler"
class=3D"org.apache.axis2.json.moshi.JSONMessageHandler" />
However, I have not modified the RequestURIBasedDispatcher that was already=
there from the axis2-1.8.2 default axis2.xml as follows:
=20
<handler name=3D"RequestURIBasedDispatcher"
class=3D"org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
<order phase=3D"Transport"/>
</handler>
Regarding the moshi.MoshiXMLStreamReader: While I can not see any of the un=
supported methods being entered during debugging, I can see the getAttribut=
eCount method being invoked. This method always returns 0.=C2=A0
Am Montag, 24. Februar 2025 um 07:00:14 MEZ hat robertlazarski <robertl=
[email protected]> Folgendes geschrieben: =20
=20
I was able to follow your examples with the currency attribute and get som=
e results but it seems like you have some service.xml and axis2.xml configu=
rations I am unsure about - could you please post them?=20
With the service.xml and axis2.xml largely from the spring boot demo I conj=
ured up with the current state of git master - the one difference is you ar=
e using=C2=A0RequestURIBasedDispatcher instead of the new class JSONBasedDe=
faultDispatcher
which works, so I used that too - I am sending this:=20
{"getPrice":[{"arg0":{"currency":USD,"symbol":IBM}}]}
And getting this response:=20
{"response":{"local_return":42.0}}
The problem is the skeleton is receiving null values for the currency and s=
ymbol for some reason.=20
About the MoshiXMLStreamReader question - I don't see that condition being =
entered during my debugging.=20
On Fri, Feb 21, 2025 at 12:52=E2=80=AFAM Stefan Traud <[email protected]=
om> wrote:
In between I have also looked into the source of org.apache.axis2.json.mos=
hi.MoshiXMLStreamReader and I find
public int getAttributeCount() {
if (isStartElement()) {
return 0; // don't support attributes on tags in JSON convention
} else {
throw new IllegalStateException("Only valid on START_ELEMENT state");
}
}
public QName getAttributeName(int index) {
throw new UnsupportedOperationException("Method is not implemented");
}
Attributes get ignored (attribute count will be returned as 0). It appears =
that I cannot use the current XML Stream API based approach togehter with A=
DB in my case, at least not without substantial changes in the used xml-sch=
emas.
Am Mittwoch, 19. Februar 2025 um 09:26:07 MEZ hat Stefan Traud <stefan_=
[email protected]> Folgendes geschrieben: =20
=20
I'm attaching 2 debug logs: =20
- soap.log: processing of the getPrice request using the ADBClient from =
samples.quickstartadb (modified only to set the required currency attribute=
using StockQuoteService.setCurrency). This returns the expected result.
- json.log: processing of the getPrice request using a post of the json =
message string=C2=A0{"getPrice":{"@currency":"USD","symbol":"IBM"}} with co=
ntent-type application/json and url=C2=A0http://localhost:8080/axis2/servic=
es/StockQuoteService/getPrice.=C2=A0This results in internal server error d=
ue to missing required attribute.
For your reference, I'm also attaching the modified StockQuoteService.wsdl =
from the samples.quickstartadb (adding required attribute 'currency' to the=
getPrice data type).
I also played with various variations of the json message (using "currency"=
instead of "@currency", changing order, or using "_attributes" : {"currenc=
y":"USD"}. This trial-and-error approach does not work.
I also tried what happens if I change the wsdl to require an attribute in t=
he getPriceResponse (instead of in the request), as this will use the=C2=A0=
moshi.JsonFormatter to write the output JSON (I hoped to see what conventio=
n would be used by moshi when producing the json string). However the attri=
bute is simply ignored and not included in the response json.
Am Dienstag, 18. Februar 2025 um 16:38:57 MEZ hat robertlazarski <rober=
[email protected]> Folgendes geschrieben: =20
=20
Could you please paste or attach your logs? That may help me understand th=
e problem better. I don't have use cases combining XML and JSON in my own p=
rojects but I know the code pretty well and I can probably help.=20
On Mon, Feb 17, 2025 at 5:23=E2=80=AFAM Stefan Traud <[email protected]=
m> wrote:
Hi RobertUsing contract first with ADB, I continue to check feasibility to =
amend our existing service with JSON support (based on XML Stream API with =
moshi).
I'm currently struggling with xml types that include attributes. To reprodu=
ce the issue I have amended the wsdl in the samples.quickstartadb to includ=
e an attribute in the getPrice element:
<xs:element name=3D"getPrice">
=C2=A0=C2=A0=C2=A0=C2=A0<xs:complexType>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0<xs:sequence>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0<xs=
:element name=3D"symbol"=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0nillable=3D"true"=C2=A0t=
ype=3D"xs:string" />
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</xs:sequence>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0<xs:attribute name=3D"curre=
ncy"=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0type=3D"xs:string" use=3D"required"/>
=C2=A0=C2=A0=C2=A0=C2=A0</xs:complexType>
</xs:element>
My corresponding JSON message should then be something like:
{ "getPrice" : {"@currency": "USD", "symbol": "IBM" }}
However the parse method in the GetPrice ADBBean keeps complaining "Require=
d attribute currency is missing"; specifically this call returns null:
reader.getAttributeValue("http://quickstart.samples/xsd", "currency");
(However it works when using SOAP).
Do I need to define attributes differently in the JSON message?
=20
=20
------=_Part_3711227_832266227.1740386479154
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<html><head></head><body><div class=3D"ydpbbe9729fyahoo-style-wrap" style=
=3D"font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px=
;"><div></div>
<div dir=3D"ltr" data-setdir=3D"false">I'm using the services.xml w=
ithout modification as per samples.quickstartadb.resources.META-INF.service=
s.xml. Please see attached. Regarding the axis2.xml, I have modified accord=
ing to the guidelines in <span><a href=3D"https://axis.apache.org/docs=
/json_gson_user_guide.html" rel=3D"nofollow" target=3D"_blank">Apache Axis2=
=E2=80=93 How to configure Native approach and XML Stream API base approac=
h</a> for the XML Stream API based approach (and replacing occurences =
of "gson" with "moshi"). Please find attached.</span></div><div dir=3D"ltr"=
data-setdir=3D"false"><span><br></span></div><div dir=3D"ltr" data-setdir=
=3D"false"><span>In the transport phase, I have added:</span></div><div dir=
=3D"ltr" data-setdir=3D"false"><span><br></span></div><div dir=3D"ltr" data=
-setdir=3D"false"><div style=3D"padding: 0px 0px 0px 2px;"><div style=3D"co=
lor: rgb(0, 0, 0); font-family: Consolas; font-size: 10pt;"><p style=3D"mar=
gin:0;"><span style=3D"color:#008080;"><</span><span style=3D"color:#3f7=
f7f;">handler</span> <span style=3D"color:#7f007f;">name</span>=3D<span sty=
le=3D"color:#2a00ff;font-style:italic;">"RequestURIOperationDispatcher"</sp=
an></p><p style=3D"margin:0;"> <span style=3D"c=
olor:#7f007f;">class</span>=3D<span style=3D"color:#2a00ff;font-style:itali=
c;">"org.apache.axis2.dispatchers.RequestURIOperationDispatcher"</span><spa=
n style=3D"color:#008080;">/></span></p><p style=3D"margin:0;"> =
<span style=3D"color:#008080;"><</span><span style=3D"color:#3f7f7f;"=
>handler</span> <span style=3D"color:#7f007f;">name</span>=3D<span style=3D=
"color:#2a00ff;font-style:italic;">"JSONMessageHandler"</span></p><div styl=
e=3D"margin:0;"><span style=3D"color:#7f007f;">class</span>=3D<span style=
=3D"color:#2a00ff;font-style:italic;">"org.apache.axis2.json.moshi.JSONMess=
ageHandler"</span> <span style=3D"color:#008080;">/></span></div></div><=
/div></div><div dir=3D"ltr" data-setdir=3D"false"><br></div><div dir=3D"ltr=
" data-setdir=3D"false"><br></div><div dir=3D"ltr" data-setdir=3D"false">Ho=
wever, I have not modified the <span style=3D"padding: 0px 0px 0px 2px;"><s=
pan style=3D"font-family: Consolas; font-size: 10pt;"><span style=3D"color:=
#2a00ff;font-style:italic;">RequestURIBasedDispatcher </span></span></span>=
that was already there from the axis2-1.8.2 default axis2.xml as follows:</=
div><div dir=3D"ltr" data-setdir=3D"false"><span><br></span></div><div dir=
=3D"ltr" data-setdir=3D"false"><div style=3D"padding: 0px 0px 0px 2px;"><di=
v style=3D"color: rgb(0, 0, 0); font-family: Consolas; font-size: 10pt;"><p=
style=3D"margin:0;" dir=3D"ltr" data-setdir=3D"false"> </p><div><div style=
=3D"padding: 0px 0px 0px 2px;"><div style=3D"color: rgb(0, 0, 0); font-fami=
ly: Consolas; font-size: 10pt;"><p style=3D"margin:0;"><span style=3D"color=
:#008080;"><</span><span style=3D"color:#3f7f7f;background-color:#d4d4d4=
;">handler</span> <span style=3D"color:#7f007f;">name</span>=3D<span style=
=3D"color:#2a00ff;font-style:italic;">"RequestURIBasedDispatcher"</span></p=
><p style=3D"margin:0;"> <span style=3D"color:#7f007f;"=
>class</span>=3D<span style=3D"color:#2a00ff;font-style:italic;">"org.apach=
e.axis2.dispatchers.RequestURIBasedDispatcher"</span><span style=3D"color:#=
008080;">></span></p><p style=3D"margin:0;"> <span style=
=3D"color:#008080;"><</span><span style=3D"color:#3f7f7f;">order</span> =
<span style=3D"color:#7f007f;">phase</span>=3D<span style=3D"color:#2a00ff;=
font-style:italic;">"Transport"</span><span style=3D"color:#008080;">/><=
/span></p><p style=3D"margin:0;"> <span style=3D"color:#008080;"=
></</span><span style=3D"color:#3f7f7f;background-color:#d4d4d4;">handle=
r</span><span style=3D"color:#008080;">></span></p></div></div></div><p>=
</p><div style=3D"margin:0;"><br></div></div></div></div><div dir=3D"ltr" d=
ata-setdir=3D"false"><br></div><div dir=3D"ltr" data-setdir=3D"false"><span=
>Regarding the moshi.MoshiXMLStreamReader: While I can not see any of the u=
nsupported methods being entered during debugging, I can see the getAttribu=
teCount method being invoked. This method always returns 0. </span></d=
iv><div><br></div>
=20
</div><div id=3D"yahoo_quoted_1177848542" class=3D"yahoo_quoted">
<div style=3D"font-family:'Helvetica Neue', Helvetica, Arial, s=
ans-serif;font-size:13px;color:#26282a;">
=20
<div>
Am Montag, 24. Februar 2025 um 07:00:14 MEZ hat rob=
ertlazarski <[email protected]> Folgendes geschrieben:
</div>
<div><br></div>
<div><br></div>
=20
=20
<div><div id=3D"yiv2506349534"><div><div dir=3D"ltr"><div>I=
was able to follow your examples with the currency attribute and get some =
results but it seems like you have some service.xml and axis2.xml configura=
tions I am unsure about - could you please post them? <br clear=3D"none"></=
div><div><br clear=3D"none"></div><div>With the service.xml and axis2.xml l=
argely from the spring boot demo I conjured up with the current state of gi=
t master - the one difference is you are using <span style=3D"font-fam=
ily:monospace;"><span style=3D"color:rgb(0,0,0);background-color:rgb(255,25=
5,255);">RequestURIBasedDispatcher</span></span> instead of the new class <=
span style=3D"font-family:monospace;"><span style=3D"color:rgb(0,0,0);backg=
round-color:rgb(255,255,255);">JSONBasedDefaultDispatcher</span><br clear=
=3D"none"></span>which works, so I used that too - I am sending this: <br c=
lear=3D"none"></div><div><br clear=3D"none"></div><div><span style=3D"font-=
family:monospace;"><span style=3D"color:rgb(0,0,0);background-color:rgb(255=
,255,255);">{"getPrice":[{"arg0":{"currency":USD,"symbol":IBM}}]}</span><br=
clear=3D"none"></span></div><div><span style=3D"font-family:monospace;"><b=
r clear=3D"none"></span></div><div><span style=3D"font-family:monospace;">A=
nd getting this response: <br clear=3D"none"></span></div><div><span style=
=3D"font-family:monospace;"><br clear=3D"none"></span></div><div><span styl=
e=3D"font-family:monospace;"><span style=3D"color:rgb(0,0,0);background-col=
or:rgb(255,255,255);">{"response":{"local_return":42.0}}</span><br clear=3D=
"none"></span></div><div><span style=3D"font-family:monospace;"><br clear=
=3D"none"></span></div><div><span style=3D"font-family:monospace;">The prob=
lem is the skeleton is receiving null values for the currency and symbol fo=
r some reason. <br clear=3D"none"></span></div><div><br clear=3D"none"></di=
v><div>About the <span style=3D"font-family:monospace;"><span style=3D"colo=
r:rgb(0,0,0);background-color:rgb(255,255,255);">MoshiXMLStreamReader quest=
ion - I don't see that condition being entered during my debugging. </span>=
<br clear=3D"none"></span><br clear=3D"none"></div></div><br clear=3D"none"=
><div id=3D"yiv2506349534yqt77091" class=3D"yiv2506349534yqt7908649951"><di=
v class=3D"yiv2506349534gmail_quote yiv2506349534gmail_quote_container"><di=
v dir=3D"ltr" class=3D"yiv2506349534gmail_attr">On Fri, Feb 21, 2025 at 12:=
52=E2=80=AFAM Stefan Traud <<a rel=3D"nofollow noopener noreferrer" shap=
e=3D"rect" ymailto=3D"mailto:[email protected]" target=3D"_blank" href=
=3D"mailto:[email protected]">[email protected]</a>> wrote:<br=
clear=3D"none"></div><blockquote style=3D"margin:0px 0px 0px 0.8ex;border-=
left:1px solid rgb(204,204,204);padding-left:1ex;" class=3D"yiv2506349534gm=
ail_quote"><div><div style=3D"font-family:Helvetica Neue, Helvetica, Arial,=
sans-serif;font-size:13px;"><div></div>
<div dir=3D"ltr">In between I have also looked into the source of o=
rg.apache.axis2.json.moshi.MoshiXMLStreamReader and I find</div><div dir=3D=
"ltr"><br clear=3D"none"></div><div dir=3D"ltr"><div><div style=3D"padding:=
0px 0px 0px 2px;"><div style=3D"font-family:Consolas;font-size:10pt;"><p st=
yle=3D"color:rgb(0,0,0);margin:0px;"><span style=3D"color:rgb(127,0,85);fon=
t-weight:bold;">public</span> <span style=3D"color:rgb(127,0,85);font-weigh=
t:bold;">int</span> getAttributeCount() {</p><p style=3D"color:rgb(0,0,0);m=
argin:0px;"> <span style=3D"color:rgb(127,0,85);font-weight:bold;">i=
f</span> (isStartElement()) {</p><p style=3D"margin:0px;"> <span=
style=3D"color:rgb(127,0,85);font-weight:bold;">return</span> 0; <font col=
or=3D"#cd232c"><b>//</b></font><span style=3D"color:rgb(63,127,95);"> </spa=
n><font color=3D"#cd232c"><b>don't support attributes on tags in JSON conv=
ention</b></font></p><p style=3D"color:rgb(0,0,0);margin:0px;"> } <s=
pan style=3D"color:rgb(127,0,85);font-weight:bold;">else</span> {</p><p sty=
le=3D"color:rgb(0,0,0);margin:0px;"> <span style=3D"color:rgb(12=
7,0,85);font-weight:bold;">throw</span> <span style=3D"color:rgb(127,0,85);=
font-weight:bold;">new</span> IllegalStateException(<span style=3D"color:rg=
b(42,0,255);">"Only valid on START_ELEMENT state"</span>);</p><p style=3D"c=
olor:rgb(0,0,0);margin:0px;"> }</p><p style=3D"color:rgb(0,0,0);marg=
in:0px;"> }</p><p style=3D"color:rgb(0,0,0);margin:0px;"><br clear=3D"no=
ne"></p><p style=3D"color:rgb(0,0,0);margin:0px;"> <span style=3D"color:=
rgb(127,0,85);font-weight:bold;">public</span> QName getAttributeName(<span=
style=3D"color:rgb(127,0,85);font-weight:bold;">int</span> <span style=3D"=
color:rgb(106,62,62);">index</span>) {</p><p style=3D"color:rgb(0,0,0);marg=
in:0px;"> <span style=3D"color:rgb(127,0,85);font-weight:bold;">thro=
w</span> <span style=3D"color:rgb(127,0,85);font-weight:bold;">new</span> U=
nsupportedOperationException(<span style=3D"color:rgb(42,0,255);">"Method i=
s not implemented"</span>);</p><div style=3D"color:rgb(0,0,0);margin:0px;">=
}</div><div style=3D"color:rgb(0,0,0);margin:0px;"><br clear=3D"none"><=
/div><div dir=3D"ltr" style=3D"color:rgb(0,0,0);margin:0px;">Attributes get=
ignored (attribute count will be returned as 0). It appears that I cannot =
use the current XML Stream API based approach togehter with ADB in my case,=
at least not without substantial changes in the used xml-schemas.</div></d=
iv></div></div><br clear=3D"none"></div><div><br clear=3D"none"></div>
=20
</div><div id=3D"yiv2506349534m_-1352858088099866023yahoo_quoted_09=
84148450">
<div style=3D"font-family:Helvetica, Arial, sans-serif;font-siz=
e:13px;color:rgb(38,40,42);">
=20
<div>
Am Mittwoch, 19. Februar 2025 um 09:26:07 MEZ hat S=
tefan Traud <<a rel=3D"nofollow noopener noreferrer" shape=3D"rect" ymai=
lto=3D"mailto:[email protected]" target=3D"_blank" href=3D"mailto:stef=
[email protected]">[email protected]</a>> Folgendes geschrieben:
</div>
<div><br clear=3D"none"></div>
<div><br clear=3D"none"></div>
=20
=20
<div><div id=3D"yiv2506349534m_-1352858088099866023yiv99557=
15974"><div><div style=3D"font-family:Helvetica Neue, Helvetica, Arial, san=
s-serif;font-size:13px;"><div></div>
<div dir=3D"ltr">I'm attaching 2 debug logs:</div><div dir=3D"ltr">=
<ul dir=3D"ltr"><li>soap.log: processing of the getPrice request using the =
ADBClient from samples.quickstartadb (modified only to set the required cur=
rency attribute using StockQuoteService.setCurrency). This returns the expe=
cted result.</li><li>json.log: processing of the getPrice request using a p=
ost of the json message string <span>{"getPrice":{"@currency":"USD","s=
ymbol":"IBM"}} with content-type application/json and url </span><a re=
l=3D"nofollow noopener noreferrer" shape=3D"rect" target=3D"_blank" onclick=
=3D"return window.theMainWindow.showLinkWarning(this)" href=3D"http://local=
host:8080/axis2/services/StockQuoteService/getPrice.">http://localhost:8080=
/axis2/services/StockQuoteService/getPrice.</a> This results in intern=
al server error due to missing required attribute.</li></ul><div><br clear=
=3D"none"></div><div dir=3D"ltr">For your reference, I'm also attaching the=
modified StockQuoteService.wsdl from the samples.quickstartadb (adding req=
uired attribute 'currency' to the getPrice data type).</div><div dir=3D"ltr=
"><br clear=3D"none"></div><div dir=3D"ltr">I also played with various vari=
ations of the json message (using "currency" instead of "@currency", changi=
ng order, or using "_attributes" : {"currency":"USD"}. This trial-and-error=
approach does not work.</div><div dir=3D"ltr"><br clear=3D"none"></div><di=
v dir=3D"ltr">I also tried what happens if I change the wsdl to require an =
attribute in the getPriceResponse (instead of in the request), as this will=
use the <span>moshi.JsonFormatter to write the output JSON (I hoped t=
o see what convention would be used by moshi when producing the json string=
). However the attribute is simply ignored and not included in the response=
json.</span></div></div><div><br clear=3D"none"></div>
=20
</div><div id=3D"yiv2506349534m_-1352858088099866023yiv9955715974ya=
hoo_quoted_0201809127">
<div style=3D"font-family:Helvetica, Arial, sans-serif;font-siz=
e:13px;color:rgb(38,40,42);">
=20
<div>
Am Dienstag, 18. Februar 2025 um 16:38:57 MEZ hat r=
obertlazarski <<a rel=3D"nofollow noopener noreferrer" shape=3D"rect" ym=
ailto=3D"mailto:[email protected]" target=3D"_blank" href=3D"mailto:=
[email protected]">[email protected]</a>> Folgendes geschr=
ieben:
</div>
<div><br clear=3D"none"></div>
<div><br clear=3D"none"></div>
=20
=20
<div id=3D"yiv2506349534m_-1352858088099866023yiv9955715974=
yqt48543"><div><div id=3D"yiv2506349534m_-1352858088099866023yiv9955715974"=
><div><div dir=3D"ltr">Could you please paste or attach your logs? That may=
help me understand the problem better. I don't have use cases combining XM=
L and JSON in my own projects but I know the code pretty well and I can pro=
bably help. <br clear=3D"none"></div><br clear=3D"none"><div id=3D"yiv25063=
49534m_-1352858088099866023yiv9955715974yqt01052"><div><div dir=3D"ltr">On =
Mon, Feb 17, 2025 at 5:23=E2=80=AFAM Stefan Traud <<a rel=3D"nofollow no=
opener noreferrer" shape=3D"rect" ymailto=3D"mailto:[email protected]"=
target=3D"_blank" href=3D"mailto:[email protected]">stefan_traud@yaho=
o.com</a>> wrote:<br clear=3D"none"></div><blockquote style=3D"margin:0p=
x 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex;"><=
div><div style=3D"font-family:Helvetica Neue, Helvetica, Arial, sans-serif;=
font-size:13px;"><div dir=3D"ltr">Hi Robert</div><div dir=3D"ltr">Using con=
tract first with ADB, I continue to check feasibility to amend our existing=
service with JSON support (based on XML Stream API with moshi).</div><div =
dir=3D"ltr"><br clear=3D"none"></div><div dir=3D"ltr">I'm currently struggl=
ing with xml types that include attributes. To reproduce the issue I have a=
mended the wsdl in the samples.quickstartadb to include an attribute in the=
getPrice element:</div><div dir=3D"ltr"><br clear=3D"none"></div><div dir=
=3D"ltr"><div><div style=3D"padding:0px 0px 0px 2px;"><div style=3D"color:r=
gb(0,0,0);font-family:Consolas;font-size:10pt;"><p style=3D"margin:0px;">=
=09=09=09<span style=3D"color:rgb(0,128,128);"><</span><span style=3D"co=
lor:rgb(63,127,127);">xs:element</span> <span style=3D"color:rgb(127,0,127)=
;">name</span>=3D<span style=3D"color:rgb(42,0,255);font-style:italic;">"ge=
tPrice"</span><span style=3D"color:rgb(0,128,128);">></span></p><p style=
=3D"margin:0px;">=09=09=09=09<span style=3D"color:rgb(0,128,128);"> &n=
bsp; <</span><span style=3D"color:rgb(63,127,127);">xs:comple=
xType</span><span style=3D"color:rgb(0,128,128);">></span></p><p style=
=3D"margin:0px;">=09=09=09=09=09<span style=3D"color:rgb(0,128,128);"> =
; <</span><span style=3D"color:=
rgb(63,127,127);">xs:sequence</span><span style=3D"color:rgb(0,128,128);">&=
gt;</span></p><div style=3D"margin:0px;"><span style=3D"color:rgb(0,128,128=
);">  =
;<</span><span style=3D"color:rgb(63,127,127);">xs:element</span> <span =
style=3D"color:rgb(127,0,127);">name</span>=3D<span style=3D"color:rgb(42,0=
,255);font-style:italic;">"symbol"</span> </div><div style=3D"margin:0=
px;"><span style=3D"color:rgb(127,0,127);"> &n=
bsp; nillable</s=
pan>=3D<span style=3D"color:rgb(42,0,255);font-style:italic;">"true" <=
/span><span style=3D"font-size:10pt;color:rgb(127,0,127);">type</span><span=
style=3D"font-size:10pt;">=3D</span><span style=3D"font-size:10pt;color:rg=
b(42,0,255);font-style:italic;">"xs:string"</span><span style=3D"font-size:=
10pt;"> </span><span style=3D"font-size:10pt;color:rgb(0,128,128);">/></=
span></div><p style=3D"margin:0px;">=09=09=09=09=09<span style=3D"color:rgb=
(0,128,128);"> </</span><=
span style=3D"color:rgb(63,127,127);">xs:sequence</span><span style=3D"colo=
r:rgb(0,128,128);">></span></p><div style=3D"margin:0px;"><span style=3D=
"color:rgb(0,128,128);"> <=
;</span><span style=3D"color:rgb(63,127,127);">xs:attribute</span> <span st=
yle=3D"color:rgb(127,0,127);">name</span>=3D<span style=3D"color:rgb(42,0,2=
55);font-style:italic;">"currency"</span> </div><div style=3D"margin:0=
px;"><span style=3D"color:rgb(127,0,127);"> &n=
bsp; type</span>=3D<span style=3D"color:=
rgb(42,0,255);font-style:italic;">"xs:string"</span> <span style=3D"color:r=
gb(127,0,127);">use</span>=3D<span style=3D"color:rgb(42,0,255);font-style:=
italic;">"required"</span><span style=3D"color:rgb(0,128,128);">/></span=
></div><p style=3D"margin:0px;">=09=09=09=09<span style=3D"color:rgb(0,128,=
128);"> </</span><span style=3D"color:rgb(63,127,=
127);">xs:complexType</span><span style=3D"color:rgb(0,128,128);">></spa=
n></p><p style=3D"margin:0px;">=09=09=09<span style=3D"color:rgb(0,128,128)=
;"></</span><span style=3D"color:rgb(63,127,127);">xs:element</span><spa=
n style=3D"color:rgb(0,128,128);">></span></p></div></div></div><br clea=
r=3D"none"></div><div dir=3D"ltr">My corresponding JSON message should then=
be something like:</div><div dir=3D"ltr"><br clear=3D"none"></div><div dir=
=3D"ltr">{ "getPrice" : {"@currency": "USD", "symbol": "IBM" }}</div><div d=
ir=3D"ltr"><br clear=3D"none"></div><div dir=3D"ltr">However the parse meth=
od in the GetPrice ADBBean keeps complaining "<span><span style=3D"padding:=
0px 0px 0px 2px;"><span style=3D"color:rgb(0,0,0);font-family:Consolas;font=
-size:10pt;">Required attribute currency is missing</span></span></span>"; =
specifically this call returns null:</div><div dir=3D"ltr"><br clear=3D"non=
e"></div><div dir=3D"ltr"><div><div style=3D"padding:0px 0px 0px 2px;"><div=
style=3D"color:rgb(0,0,0);font-family:Consolas;font-size:10pt;"><div style=
=3D"margin:0px;"><span style=3D"color:rgb(106,62,62);">reader</span>.getAtt=
ributeValue(<span style=3D"color:rgb(42,0,255);">"<a rel=3D"nofollow noopen=
er noreferrer" shape=3D"rect" target=3D"_blank" href=3D"http://quickstart.s=
amples/xsd">http://quickstart.samples/xsd</a>"</span>, <span style=3D"color=
:rgb(42,0,255);">"currency"</span>);</div><div style=3D"margin:0px;"><br cl=
ear=3D"none"></div></div></div></div>(However it works when using SOAP).</d=
iv><div dir=3D"ltr"><br clear=3D"none"></div><div dir=3D"ltr">Do I need to =
define attributes differently in the JSON message?</div><div dir=3D"ltr"><b=
r clear=3D"none"></div><div dir=3D"ltr"><br clear=3D"none"></div></div></di=
v></blockquote></div></div>
</div></div></div></div>
</div>
</div></div></div></div>
</div>
</div></div></blockquote></div></div>
</div></div></div>
</div>
</div></body></html>
------=_Part_3711227_832266227.1740386479154--
------=_Part_3711230_589788145.1740386479274
Content-Type: text/xml
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="services.xml"
Content-ID: <[email protected]>
PCEtLQogIH4gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0Yp
IHVuZGVyIG9uZQogIH4gb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuIFNl
ZSB0aGUgTk9USUNFIGZpbGUKICB+IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRp
dGlvbmFsIGluZm9ybWF0aW9uCiAgfiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gVGhl
IEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKICB+IHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vu
c2UsIFZlcnNpb24gMi4wICh0aGUKICB+ICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlz
IGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKICB+IHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkg
b2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogIH4KICB+IGh0dHA6Ly93d3cuYXBhY2hl
Lm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogIH4KICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBs
aWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKICB+IHNvZnR3YXJlIGRpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCiAgfiAiQVMgSVMiIEJB
U0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKICB+IEtJTkQsIGVp
dGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAgfiBzcGVj
aWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCiAgfiB1
bmRlciB0aGUgTGljZW5zZS4KICAtLT4KCjxzZXJ2aWNlIG5hbWU9IlN0b2NrUXVvdGVTZXJ2aWNl
IiBzY29wZT0iYXBwbGljYXRpb24iPgogICAgPG1lc3NhZ2VSZWNlaXZlcnM+CiAgICAgICAgPG1l
c3NhZ2VSZWNlaXZlciBtZXA9Imh0dHA6Ly93d3cudzMub3JnL25zL3dzZGwvaW4tb3V0IgogICAg
ICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InNhbXBsZXMucXVpY2tzdGFydC5zZXJ2aWNlLmFk
Yi5TdG9ja1F1b3RlU2VydmljZU1lc3NhZ2VSZWNlaXZlckluT3V0Ii8+CiAgICAgICAgPG1lc3Nh
Z2VSZWNlaXZlciBtZXA9Imh0dHA6Ly93d3cudzMub3JnL25zL3dzZGwvaW4tb25seSIKICAgICAg
ICAgICAgICAgICAgICAgICAgIGNsYXNzPSJzYW1wbGVzLnF1aWNrc3RhcnQuc2VydmljZS5hZGIu
U3RvY2tRdW90ZVNlcnZpY2VNZXNzYWdlUmVjZWl2ZXJJbk9ubHkiLz4KICAgIDwvbWVzc2FnZVJl
Y2VpdmVycz4KICAgIDxwYXJhbWV0ZXIgbmFtZT0iU2VydmljZUNsYXNzIj5zYW1wbGVzLnF1aWNr
c3RhcnQuc2VydmljZS5hZGIuU3RvY2tRdW90ZVNlcnZpY2VTa2VsZXRvbgogICAgPC9wYXJhbWV0
ZXI+CiAgICA8b3BlcmF0aW9uIG5hbWU9InVwZGF0ZSIgbWVwPSJodHRwOi8vd3d3LnczLm9yZy9u
cy93c2RsL2luLW9ubHkiPgogICAgICAgIDxhY3Rpb25NYXBwaW5nPnVybjp1cGRhdGU8L2FjdGlv
bk1hcHBpbmc+CiAgICA8L29wZXJhdGlvbj4KICAgIDxvcGVyYXRpb24gbmFtZT0iZ2V0UHJpY2Ui
IG1lcD0iaHR0cDovL3d3dy53My5vcmcvbnMvd3NkbC9pbi1vdXQiPgogICAgICAgIDxhY3Rpb25N
YXBwaW5nPnVybjpnZXRQcmljZTwvYWN0aW9uTWFwcGluZz4KICAgICAgICA8b3V0cHV0QWN0aW9u
TWFwcGluZz5odHRwOi8vcXVpY2tzdGFydC5zYW1wbGVzL1N0b2NrUXVvdGVTZXJ2aWNlUG9ydFR5
cGUvZ2V0UHJpY2VSZXNwb25zZTwvb3V0cHV0QWN0aW9uTWFwcGluZz4KICAgIDwvb3BlcmF0aW9u
Pgo8L3NlcnZpY2U+Cg==
------=_Part_3711230_589788145.1740386479274
Content-Type: text/xml
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="axis2.xml"
Content-ID: <[email protected]>
PCEtLQogIH4gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0Yp
IHVuZGVyIG9uZQogIH4gb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuIFNl
ZSB0aGUgTk9USUNFIGZpbGUKICB+IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRp
dGlvbmFsIGluZm9ybWF0aW9uCiAgfiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gVGhl
IEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKICB+IHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vu
c2UsIFZlcnNpb24gMi4wICh0aGUKICB+ICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlz
IGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKICB+IHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkg
b2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogIH4KICB+IGh0dHA6Ly93d3cuYXBhY2hl
Lm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogIH4KICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBs
aWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKICB+IHNvZnR3YXJlIGRpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCiAgfiAiQVMgSVMiIEJB
U0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKICB+IEtJTkQsIGVp
dGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAgfiBzcGVj
aWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCiAgfiB1
bmRlciB0aGUgTGljZW5zZS4KICAtLT4KCjxheGlzY29uZmlnIG5hbWU9IkF4aXNKYXZhMi4wIj4K
ICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSAtLT4KICAgIDwhLS0gUGFyYW1ldGVycyAtLT4KICAgIDwhLS0gPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KICAgIDxwYXJhbWV0ZXIgbmFtZT0i
aG90ZGVwbG95bWVudCI+dHJ1ZTwvcGFyYW1ldGVyPgogICAgPHBhcmFtZXRlciBuYW1lPSJob3R1
cGRhdGUiPmZhbHNlPC9wYXJhbWV0ZXI+CiAgICA8cGFyYW1ldGVyIG5hbWU9ImVuYWJsZU1UT00i
PmZhbHNlPC9wYXJhbWV0ZXI+CiAgICA8cGFyYW1ldGVyIG5hbWU9ImVuYWJsZVN3QSI+ZmFsc2U8
L3BhcmFtZXRlcj4KCiAgICA8IS0tVW5jb21tZW50IGlmIHlvdSB3YW50IHRvIGVuYWJsZSBmaWxl
IGNhY2hpbmcgZm9yIGF0dGFjaG1lbnRzIC0tPgogICAgPCEtLXBhcmFtZXRlciBuYW1lPSJjYWNo
ZUF0dGFjaG1lbnRzIj50cnVlPC9wYXJhbWV0ZXI+CiAgICA8cGFyYW1ldGVyIG5hbWU9ImF0dGFj
aG1lbnRESVIiPjwvcGFyYW1ldGVyPgogICAgPHBhcmFtZXRlciBuYW1lPSJzaXplVGhyZXNob2xk
Ij40MDAwPC9wYXJhbWV0ZXItLT4KCiAgICA8cGFyYW1ldGVyIG5hbWU9IkVuYWJsZUNoaWxkRmly
c3RDbGFzc0xvYWRpbmciPmZhbHNlPC9wYXJhbWV0ZXI+CgogICAgPCEtLQogICAgVGhlIGV4cG9z
ZVNlcnZpY2VNZXRhZGF0YSBwYXJhbWV0ZXIgZGVjaWRlcyB3aGV0aGVyIHRoZSBtZXRhZGF0YSAo
V1NETCwgc2NoZW1hLCBwb2xpY3kpIG9mCiAgICB0aGUgc2VydmljZXMgZGVwbG95ZWQgb24gQXhp
czIgc2hvdWxkIGJlIHZpc2libGUgd2hlbiA/d3NkbCwgP3dzZGwyLCA/eHNkLCA/cG9saWN5IHJl
cXVlc3RzCiAgICBhcmUgcmVjZWl2ZWQuCiAgICBUaGlzIHBhcmFtZXRlciBjYW4gYmUgZGVmaW5l
ZCBpbiB0aGUgYXhpMi54bWwgZmlsZSwgaW4gd2hpY2ggY2FzZSB0aGlzIHdpbGwgYmUgYXBwbGlj
YWJsZQogICAgZ2xvYmFsbHksIG9yIGluIHRoZSBzZXJ2aWNlcy54bWwgZmlsZXMsIGluIHdoaWNo
IGNhc2UsIGl0IHdpbGwgYmUgYXBwbGljYWJsZSB0byB0aGUKICAgIFNlcnZpY2UgZ3JvdXBzIGFu
ZC9vciBzZXJ2aWNlcywgZGVwZW5kaW5nIG9uIHRoZSBsZXZlbCBhdCB3aGljaCB0aGUgcGFyYW1l
dGVyIGlzIGRlY2xhcmVkLgogICAgVGhpcyB2YWx1ZSBvZiB0aGlzIHBhcmFtZXRlciBkZWZhdWx0
cyB0byB0cnVlLgogICAgLS0+CiAgICA8cGFyYW1ldGVyIG5hbWU9ImV4cG9zZVNlcnZpY2VNZXRh
ZGF0YSI+dHJ1ZTwvcGFyYW1ldGVyPgoKCiAgICA8IS0tVW5jb21tZW50IGlmIHlvdSB3YW50IHRv
IHBsdWdpbiB5b3VyIG93biBhdHRhY2htZW50cyBsaWZlY3ljbGUgaW1wbGVtZW50YXRpb24gLS0+
CiAgICA8IS0tPGF0dGFjaG1lbnRzTGlmZWN5Y2xlTWFuYWdlciBjbGFzcz0ib3JnLmFwYWNoZS5h
eGlvbS5hdHRhY2htZW50cy5saWZlY3ljbGUuaW1wbC5MaWZlY3ljbGVNYW5hZ2VySW1wbCIvPi0t
PgoKCiAgICA8IS0tVW5jb21tZW50IGlmIHlvdSB3YW50IHRvIGVuYWJsZSB0aGUgcmVkdWN0aW9u
IG9mIHRoZSBpbi1tZW1vcnkgY2FjaGUgb2YgV1NETCBkZWZpbml0aW9ucyAtLT4KICAgIDwhLS1J
biBzb21lIHNlcnZlciBlbnZpcm9ubWVudHMsIHRoZSBhdmFpbGFibGUgbWVtb3J5IGhlYXAgaXMg
bGltaXRlZCBhbmQgY2FuIGZpbGwgdXAgdW5kZXIgbG9hZCAtLT4KICAgIDwhLS1TaW5jZSBpbi1t
ZW1vcnkgY29waWVzIG9mIFdTREwgZGVmaW5pdGlvbnMgY2FuIGJlIGxhcmdlLCBzb21lIHN0ZXBz
IGNhbiBiZSB0YWtlbi0tPgogICAgPCEtLXRvIHJlZHVjZSB0aGUgbWVtb3J5IG5lZWRlZCBmb3Ig
dGhlIGNhY2hlZCBXU0RMIGRlZmluaXRpb25zLiAtLT4KICAgIDwhLS1wYXJhbWV0ZXIgbmFtZT0i
cmVkdWNlV1NETE1lbW9yeUNhY2hlIj50cnVlPC9wYXJhbWV0ZXItLT4KCiAgICA8IS0tVGhpcyB3
aWxsIGdpdmUgb3V0IHRoZSB0aW1vdXQgb2YgdGhlIGNvbmZpZ3VyYXRpb24gY29udGV4dHMsIGlu
IG1pbGxpc2Vjb25kcy0tPgogICAgPHBhcmFtZXRlciBuYW1lPSJDb25maWdDb250ZXh0VGltZW91
dEludGVydmFsIj4zMDAwMDwvcGFyYW1ldGVyPgoKICAgIDwhLS1EdXJpbmcgYSBmYXVsdCwgc3Rh
Y2sgdHJhY2UgY2FuIGJlIHNlbnQgd2l0aCB0aGUgZmF1bHQgbWVzc2FnZS4gVGhlIGZvbGxvd2lu
ZyBmbGFnIHdpbGwgY29udHJvbCAtLT4KICAgIDwhLS10aGF0IGJlaGF2aW9yLi0tPgogICAgPHBh
cmFtZXRlciBuYW1lPSJzZW5kU3RhY2t0cmFjZURldGFpbHNXaXRoRmF1bHRzIj5mYWxzZTwvcGFy
YW1ldGVyPgoKICAgIDwhLS1JZiB0aGVyZSBhcmVuJ3QgYW55IGluZm9ybWF0aW9uIGF2YWlsYWJs
ZSB0byBmaW5kIG91dCB0aGUgZmF1bHQgcmVhc29uLCB3ZSBzZXQgdGhlIG1lc3NhZ2Ugb2YgdGhl
IGV4Y2VwdGlvbi0tPgogICAgPCEtLWFzIHRoZSBmYXVsdHJlYXNvbi9SZWFzb24uIEJ1dCB3aGVu
IGEgZmF1bHQgaXMgdGhyb3duIGZyb20gYSBzZXJ2aWNlIG9yIHNvbWUgd2hlcmUsIGl0IHdpbGwg
YmUgLS0+CiAgICA8IS0td3JhcHBlZCBieSBkaWZmZXJlbnQgbGV2ZWxzLiBEdWUgdG8gdGhpcyB0
aGUgaW5pdGlhbCBleGNlcHRpb24gbWVzc2FnZSBjYW4gYmUgbG9zdC4gSWYgdGhpcyBmbGFnLS0+
CiAgICA8IS0taXMgc2V0LCB0aGVuIEF4aXMyIHRyaWVzIHRvIGdldCB0aGUgZmlyc3QgZXhjZXB0
aW9uIGFuZCBzZXQgaXRzIG1lc3NhZ2UgYXMgdGhlIGZhdWx0cmVhc29uL1JlYXNvbi4tLT4KICAg
IDxwYXJhbWV0ZXIgbmFtZT0iRHJpbGxEb3duVG9Sb290Q2F1c2VGb3JGYXVsdFJlYXNvbiI+ZmFs
c2U8L3BhcmFtZXRlcj4KCiAgICA8cGFyYW1ldGVyIG5hbWU9InVzZXJOYW1lIj5hZG1pbjwvcGFy
YW1ldGVyPgogICAgPHBhcmFtZXRlciBuYW1lPSJwYXNzd29yZCI+YXhpczI8L3BhcmFtZXRlcj4K
CiAgICA8IS0tVG8gb3ZlcnJpZGUgcmVwb3NpdG9yeS9zZXJ2aWNlcyB5b3UgbmVlZCB0byB1bmNv
bW1lbnQgZm9sbG93aW5nIHBhcmFtZXRlciBhbmQgdmFsdWUgU0hPVUxEIGJlIGFic29sdXRlIGZp
bGUgcGF0aC4tLT4KICAgIDwhLS1TZXJ2aWNlc0RpcmVjdG9yeSBvbmx5IHdvcmtzIG9uIHRoZSBm
b2xsb3dpbmcgY2FzZXMtLT4KICAgIDwhLS0tRmlsZSBiYXNlZCBjb25maWd1cmF0b3IgYW5kIGlu
IHRoYXQgY2FzZSB0aGUgdmFsdWUgc2hvdWxkIGJlIGEgZmlsZSBVUkwgKGh0dHA6Ly8gbm90IGFs
bG93ZWQpLS0+CiAgICA8IS0tLVdoZW4gY3JlYXRpbmcgVVJMIEJhc2VkIGNvbmZpZ3VyYXRvciB3
aXRoIFVSTCBmaWxlOi8vIC0tPgogICAgPCEtLS0gV2FyIGJhc2VkIGNvbmZpZ3VyYXRvciB3aXRo
IGV4cGFuZGVkIGNhc2UgLCAtLT4KCiAgICA8IS0tQWxsIHRoZSBvdGhlciBzY2VuYXJpb3MgaXQg
d2lsbCBiZSBpZ25vcmVkLi0tPgogICAgPCEtLTxwYXJhbWV0ZXIgbmFtZT0iU2VydmljZXNEaXJl
Y3RvcnkiPnNlcnZpY2U8L3BhcmFtZXRlcj4tLT4KICAgIDwhLS1UbyBvdmVycmlkZSByZXBvc2l0
b3J5L21vZHVsZXMgeW91IG5lZWQgdG8gdW5jb21tZW50IGZvbGxvd2luZyBwYXJhbWV0ZXIgYW5k
IHZhbHVlIFNIT1VMRCBiZSBhYnNvbHV0ZSBmaWxlIHBhdGgtLT4KICAgIDwhLS08cGFyYW1ldGVy
IG5hbWU9Ik1vZHVsZXNEaXJlY3RvcnkiPm1vZHVsZXM8L3BhcmFtZXRlcj4tLT4KCgogICAgPCEt
LUZvbGxvd2luZyBwYXJhbXMgd2lsbCBzZXQgdGhlIHByb3BlciBjb250ZXh0IHBhdGhzIGZvciBp
bnZvY2F0aW9ucy4gQWxsIHRoZSBlbmRwb2ludHMgd2lsbCBoYXZlIGEgY29tbW9ucyBjb250ZXh0
LS0+CiAgICA8IS0tcm9vdCB3aGljaCBjYW4gY29uZmlndXJlZCB1c2luZyB0aGUgZm9sbG93aW5n
IGNvbnRleHRSb290IHBhcmFtZXRlci0tPgogICAgPCEtLTxwYXJhbWV0ZXIgbmFtZT0iY29udGV4
dFJvb3QiPmF4aXMyPC9wYXJhbWV0ZXI+LS0+CgogICAgPCEtLU91ciBIVFRQIGVuZHBvaW50cyBj
YW4gaGFuZGxlIGJvdGggUkVTVCBhbmQgU09BUC4gRm9sbG93aW5nIHBhcmFtZXRlcnMgY2FuIGJl
IHVzZWQgdG8gZGlzdGluZ3VpdXNoIHRob3NlIGVuZHBvaW50cy0tPgogICAgPCEtLUluIGNhc2Ug
b2YgYSBzZXJ2bGV0LCBpZiB5b3UgY2hhbmdlIHRoaXMgeW91IGhhdmUgdG8gbWFudWFsbHkgY2hh
bmdlIHRoZSBzZXR0aW5ncyBvZiB5b3VyIHNlcnZsZXQgY29udGFpbmVyIHRvIG1hcCB0aGlzIC0t
PgogICAgPCEtLWNvbnRleHQgcGF0aCB0byBwcm9wZXIgQXhpczIgc2VydmxldHMtLT4KICAgIDwh
LS08cGFyYW1ldGVyIG5hbWU9InNlcnZpY2VQYXRoIj5zZXJ2aWNlczwvcGFyYW1ldGVyPi0tPgog
ICAgPCEtLTxwYXJhbWV0ZXIgbmFtZT0icmVzdFBhdGgiPnJlc3Q8L3BhcmFtZXRlcj4tLT4KCiAg
ICA8IS0tIEZvbGxvd2luZyBwYXJhbWV0ZXIgd2lsbCBjb21wbGV0ZWx5IGRpc2FibGUgUkVTVCBo
YW5kbGluZyBpbiBBeGlzMi0tPgogICAgPHBhcmFtZXRlciBuYW1lPSJkaXNhYmxlUkVTVCIgbG9j
a2VkPSJmYWxzZSI+ZmFsc2U8L3BhcmFtZXRlcj4KCiAgICA8IS0tIEZvbGxvd2luZyBwYXJhbWV0
ZXIgd2lsbCBzdXBwcmVzcyBnZW5lcmF0aW9uIG9mIFNPQVAgMS4yIGJpbmRpbmdzIGluIGF1dG8t
Z2VuZXJhdGVkIFdTREwgZmlsZXMgLS0+CiAgICA8cGFyYW1ldGVyIG5hbWU9ImRpc2FibGVTT0FQ
MTIiIGxvY2tlZD0idHJ1ZSI+ZmFsc2U8L3BhcmFtZXRlcj4KCiAgICA8IS0tID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICA8IS0tIERlcGxv
eWVycyAtLT4KICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSAtLT4KCiAgICA8IS0tU2VydmljZSBkZXBsb3llciAsIHRoaXMgd2lsbCBhbG93
IHVzZXJzIHRvIGRlcGxveSBBQVIgb3IgZXhwbG9kZWQgQUFSIGFzIGF4aXMyIHNlcnZpY2VzLS0+
CiAgICA8ZGVwbG95ZXIgZXh0ZW5zaW9uPSIuYWFyIiBkaXJlY3Rvcnk9InNlcnZpY2VzIiBjbGFz
cz0ib3JnLmFwYWNoZS5heGlzMi5kZXBsb3ltZW50LlNlcnZpY2VEZXBsb3llciI+CiAgICAgICAg
PHNlcnZpY2VCdWlsZGVyRXh0ZW5zaW9uIG5hbWUgPSJqd3NidWlsZGVyRXh0IiBjbGFzcz0ib3Jn
LmFwYWNoZS5heGlzMi5qYXh3cy5mcmFtZXdvcmsuSkFYV1NTZXJ2aWNlQnVpbGRlckV4dGVuc2lv
biIvPgogICAgICAgIDxzZXJ2aWNlQnVpbGRlckV4dGVuc2lvbiBuYW1lID0id3NkbGJ1aWxkZXJF
eHQiIGNsYXNzPSJvcmcuYXBhY2hlLmF4aXMyLmRlcGxveW1lbnQuV1NETFNlcnZpY2VCdWlsZGVy
RXh0ZW5zaW9uIi8+CiAgICA8L2RlcGxveWVyPgogICAgCiAgICA8IS0tUE9KTyBkZXBsb3llciAs
IHRoaXMgd2lsbCBhbG93IHVzZXJzIHRvIGRyb3AgLmNsYXNzIGZpbGUgYW5kIG1ha2UgdGhhdCBp
bnRvIGEgc2VydmljZS0tPgogICAgPGRlcGxveWVyIGV4dGVuc2lvbj0iLmNsYXNzIiBkaXJlY3Rv
cnk9InBvam8iIGNsYXNzPSJvcmcuYXBhY2hlLmF4aXMyLmRlcGxveW1lbnQuUE9KT0RlcGxveWVy
Ii8+CiAgICA8ZGVwbG95ZXIgZXh0ZW5zaW9uPSIuamFyIiBkaXJlY3Rvcnk9InNlcnZpY2VqYXJz
IgogICAgICAgICAgICAgIGNsYXNzPSJvcmcuYXBhY2hlLmF4aXMyLmpheHdzLmZyYW1ld29yay5K
QVhXU0RlcGxveWVyIi8+CiAgICA8ZGVwbG95ZXIgZXh0ZW5zaW9uPSIuamFyIiBkaXJlY3Rvcnk9
InRyYW5zcG9ydHMiCiAgICAgICAgICAgICAgY2xhc3M9Im9yZy5hcGFjaGUuYXhpczIuZGVwbG95
bWVudC5UcmFuc3BvcnREZXBsb3llciIvPgoKICAgIDwhLS1DT1JCQSBkZXBsb3llciAsIHRoaXMg
d2lsbCBhbG93IHVzZXJzIHRvIGludm9rZSByZW1vdGUgQ09SQkEgc2VydmljZXMgdGhyb3VnaCBB
eGlzMi0tPgogICAgPCEtLTxkZXBsb3llciBleHRlbnNpb249Ii54bWwiIGRpcmVjdG9yeT0iY29y
YmEiIGNsYXNzPSJvcmcuYXBhY2hlLmF4aXMyLmNvcmJhLmRlcGxveWVyLkNvcmJhRGVwbG95ZXIi
Lz4tLT4KCiAgICA8IS0tPGRlcGxveWVyIGV4dGVuc2lvbj0iLmpzYSIgZGlyZWN0b3J5PSJybWlz
ZXJ2aWNlcyIgY2xhc3M9Im9yZy5hcGFjaGUuYXhpczIucm1pLmRlcGxveS5STUlTZXJ2aWNlRGVw
bG95ZXIiLz4tLT4KCgogICAgPCEtLSBGb2xsb3dpbmcgcGFyYW1ldGVyIHdpbGwgc2V0IHRoZSBo
b3N0IG5hbWUgZm9yIHRoZSBlcHItLT4KICAgIDwhLS08cGFyYW1ldGVyIG5hbWU9Imhvc3RuYW1l
IiBsb2NrZWQ9InRydWUiPm15aG9zdC5jb208L3BhcmFtZXRlcj4tLT4KCiAgICA8IS0tIElmIHlv
dSBoYXZlIGEgZnJvbnQgZW5kIGhvc3Qgd2hpY2ggZXhwb3NlcyB0aGlzIHdlYnNlcnZpY2UgdXNp
bmcgYSBkaWZmZXJlbnQgcHVibGljIFVSTCAgLS0+CiAgICA8IS0tIHVzZSB0aGlzIHBhcmFtZXRl
ciB0byBvdmVycmlkZSBhdXRvZGV0ZWN0ZWQgdXJsIC0tPgogICAgPCEtLTxwYXJhbWV0ZXIgbmFt
ZT0iaHR0cEZyb250ZW5kSG9zdFVybCI+aHR0cHM6Ly9zb21lb3RoZXJob3N0L2NvbnRleHQ8L3Bh
cmFtZXRlcj4tLT4KCiAgICA8IS0tQnkgZGVmYXVsdCwgSkFYV1Mgc2VydmljZXMgYXJlIGNyZWF0
ZWQgYnkgcmVhZGluZyBhbm5vdGF0aW9ucy4gV1NETCBhbmQgc2NoZW1hIGFyZSBnZW5lcmF0ZWQt
LT4KICAgIDwhLS11c2luZyBhIHNlcGFyYXRlIFdTREwgZ2VuZXJhdG9yIG9ubHkgd2hlbiA/d3Nk
bCBpcyBjYWxsZWQuIFRoZXJlZm9yZSwgZXZlbiBpZiB5b3UgZW5nYWdlLS0+CiAgICA8IS0tcG9s
aWNpZXMgZXRjLi4gdG8gQXhpc1NlcnZpY2UsIGl0IGRvZXNuJ3QgYXBwZWFyIGluIHRoZSBXU0RM
LiBCeSBzZXR0aW5nIHRoZSBmb2xsb3dpbmcgcHJvcGVydHktLT4KICAgIDwhLS10byB0cnVlLCB5
b3UgY2FuIGNyZWF0ZSB0aGUgQXhpc1NlcnZpY2UgdXNpbmcgdGhlIGdlbmVyYXRlZCBXU0RMIGFu
ZCByZW1vdmUgdGhlIG5lZWQgZm9yIGEtLT4KICAgIDwhLS1XU0RMIGdlbmVyYXRvci4gV2hlbiA/
d3NkbCBpcyBjYWxsZWQsIFdTREwgaXMgZ2VuZXJhdGVkIGluIHRoZSBub3JtYWwgd2F5Li0tPgog
ICAgPHBhcmFtZXRlciBuYW1lPSJ1c2VHZW5lcmF0ZWRXU0RMaW5KQVhXUyI+ZmFsc2U8L3BhcmFt
ZXRlcj4KCiAgICA8IS0tICAgIFRoZSB3YXkgb2YgYWRkaW5nIGxpc3RlbmVyIHRvIHRoZSBzeXN0
ZW0tLT4KICAgIDwhLS0gICAgPGxpc3RlbmVyIGNsYXNzPSJvcmcuYXBhY2hlLmF4aXMyLk9ic2Vy
dmVySU1QTCI+LS0+CiAgICA8IS0tICAgICAgICA8cGFyYW1ldGVyIG5hbWU9IlJTU19VUkwiPmh0
dHA6Ly8xMjcuMC4wLjEvcnNzPC9wYXJhbWV0ZXI+LS0+CiAgICA8IS0tICAgIDwvbGlzdGVuZXI+
LS0+CgogICAgPHRocmVhZENvbnRleHRNaWdyYXRvcnM+CiAgICAgICAgPHRocmVhZENvbnRleHRN
aWdyYXRvciBsaXN0SWQ9IkpBWFdTLVRocmVhZENvbnRleHRNaWdyYXRvci1MaXN0IgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im9yZy5hcGFjaGUuYXhpczIuamF4d3MuYWRk
cmVzc2luZy5taWdyYXRvci5FbmRwb2ludENvbnRleHRNYXBNaWdyYXRvciIvPgogICAgPC90aHJl
YWRDb250ZXh0TWlncmF0b3JzPgoKICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSAtLT4KICAgIDwhLS0gTWVzc2FnZSBSZWNlaXZlcnMgLS0+
CiAgICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0gLS0+CiAgICA8IS0tVGhpcyBpcyB0aGUgZGVmYXVsdCBNZXNzYWdlUmVjZWl2ZXIgZm9yIHRo
ZSBzeXN0ZW0gLCBpZiB5b3Ugd2FudCB0byBoYXZlIE1lc3NhZ2VSZWNlaXZlcnMgZm9yIC0tPgog
ICAgPCEtLWFsbCB0aGUgb3RoZXIgTUVQIGltcGxlbWVudCBpdCBhbmQgYWRkIHRoZSBjb3JyZWN0
IGVudHJ5IHRvIGhlcmUgLCBzbyB0aGF0IHlvdSBjYW4gcmVmZXIgZnJvbS0tPgogICAgPCEtLWFu
eSBvcGVyYXRpb24gLS0+CiAgICA8IS0tTm90ZSA6IFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBmb3Ig
YSBwYXJ0aWN1bGFyIHNlcnZpY2UgYnkgYWRkaW5nIHRoZSBzYW1lIGVsZW1lbnQgd2l0aCB5b3Vy
IHJlcXVpcmVtZW50LS0+CiAgICA8bWVzc2FnZVJlY2VpdmVycz4gICAgICAgIAogICAgICAgIDxt
ZXNzYWdlUmVjZWl2ZXIgbWVwPSJodHRwOi8vd3d3LnczLm9yZy9ucy93c2RsL2luLW9ubHkiCiAg
ICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ib3JnLmFwYWNoZS5heGlzMi5yZWNlaXZlcnMu
UmF3WE1MSU5Pbmx5TWVzc2FnZVJlY2VpdmVyIi8+CiAgICAgICAgPG1lc3NhZ2VSZWNlaXZlciBt
ZXA9Imh0dHA6Ly93d3cudzMub3JnL25zL3dzZGwvaW4tb3V0IgogICAgICAgICAgICAgICAgICAg
ICAgICAgY2xhc3M9Im9yZy5hcGFjaGUuYXhpczIucmVjZWl2ZXJzLlJhd1hNTElOT3V0TWVzc2Fn
ZVJlY2VpdmVyIi8+CiAgICA8L21lc3NhZ2VSZWNlaXZlcnM+CgogICAgPCEtLSA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgPCEtLSBNZXNz
YWdlIEZvcm1hdHRlciAtLT4KICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSAtLT4KICAgIDwhLS1Gb2xsb3dpbmcgY29udGVudCB0eXBlIHRv
IG1lc3NhZ2UgZm9ybWF0dGVyIG1hcHBpbmcgY2FuIGJlIHVzZWQgdG8gaW1wbGVtZW50IHN1cHBv
cnQgZm9yIGRpZmZlcmVudCBtZXNzYWdlIC0tPgogICAgPCEtLWZvcm1hdCAgc2VyaWFsaXphdGlv
biBpbiBBeGlzMi4gVGhlc2UgbWVzc2FnZSBmb3JtYXRzIGFyZSBleHBlY3RlZCB0byBiZSByZXNv
bHZlZCBiYXNlZCBvbiB0aGUgY29udGVudCB0eXBlLiAtLT4KICAgIDxtZXNzYWdlRm9ybWF0dGVy
cz4KICAgICAgICA8bWVzc2FnZUZvcm1hdHRlciBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC13
d3ctZm9ybS11cmxlbmNvZGVkIgogICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJvcmcu
YXBhY2hlLmF4aXMyLmtlcm5lbC5odHRwLlhGb3JtVVJMRW5jb2RlZEZvcm1hdHRlciIvPgogICAg
ICAgIDxtZXNzYWdlRm9ybWF0dGVyIGNvbnRlbnRUeXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIgog
ICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJvcmcuYXBhY2hlLmF4aXMyLmtlcm5lbC5o
dHRwLk11bHRpcGFydEZvcm1EYXRhRm9ybWF0dGVyIi8+CiAgICAgICAgPG1lc3NhZ2VGb3JtYXR0
ZXIgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3htbCIKICAgICAgICAgICAgICAgICAgICAgICAg
ICBjbGFzcz0ib3JnLmFwYWNoZS5heGlzMi5rZXJuZWwuaHR0cC5BcHBsaWNhdGlvblhNTEZvcm1h
dHRlciIvPgogICAgICAgIDxtZXNzYWdlRm9ybWF0dGVyIGNvbnRlbnRUeXBlPSJ0ZXh0L3htbCIK
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ib3JnLmFwYWNoZS5heGlzMi5rZXJuZWwu
aHR0cC5TT0FQTWVzc2FnZUZvcm1hdHRlciIvPgogICAgICAgIDxtZXNzYWdlRm9ybWF0dGVyIGNv
bnRlbnRUeXBlPSJhcHBsaWNhdGlvbi9zb2FwK3htbCIKICAgICAgICAgICAgICAgICAgICAgICAg
ICBjbGFzcz0ib3JnLmFwYWNoZS5heGlzMi5rZXJuZWwuaHR0cC5TT0FQTWVzc2FnZUZvcm1hdHRl
ciIvPgogICAgICAgIAogICAgICAgIDwhLS0gaW5jbHVkZSBzdXBwb3J0IGZvciBtb3NoaSAtLT4K
ICAgICAgICA8bWVzc2FnZUZvcm1hdHRlciBjb250ZW50VHlwZT0iYXBwbGljYXRpb24vanNvbiIK
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ib3JnLmFwYWNoZS5heGlzMi5qc29uLm1v
c2hpLkpzb25Gb3JtYXR0ZXIiIC8+CiAgICAgICAgCiAgICAgICAgPCEtLSA8bWVzc2FnZUZvcm1h
dHRlciBjb250ZW50VHlwZT0iYXBwbGljYXRpb24vanNvbiIKICAgICAgICAgICAgICAgICAgY2xh
c3M9Im9yZy5hcGFjaGUuYXhpczIuanNvbi5KU09OTWVzc2FnZUZvcm1hdHRlciIvPiAtLT4KICAg
IDwvbWVzc2FnZUZvcm1hdHRlcnM+CgogICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgPCEtLSBNZXNzYWdlIEJ1aWxkZXJzIC0t
PgogICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09IC0tPgogICAgPCEtLUZvbGxvd2luZyBjb250ZW50IHR5cGUgdG8gYnVpbGRlciBtYXBwaW5n
IGNhbiBiZSB1c2VkIHRvIGltcGxlbWVudCBzdXBwb3J0IGZvciBkaWZmZXJlbnQgbWVzc2FnZSAt
LT4KICAgIDwhLS1mb3JtYXRzIGluIEF4aXMyLiBUaGVzZSBtZXNzYWdlIGZvcm1hdHMgYXJlIGV4
cGVjdGVkIHRvIGJlIHJlc29sdmVkIGJhc2VkIG9uIHRoZSBjb250ZW50IHR5cGUuIC0tPgogICAg
PG1lc3NhZ2VCdWlsZGVycz4KICAgICAgICA8bWVzc2FnZUJ1aWxkZXIgY29udGVudFR5cGU9ImFw
cGxpY2F0aW9uL3htbCIKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im9yZy5hcGFjaGUu
YXhpczIuYnVpbGRlci5BcHBsaWNhdGlvblhNTEJ1aWxkZXIiLz4KICAgICAgICA8bWVzc2FnZUJ1
aWxkZXIgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIKICAg
ICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im9yZy5hcGFjaGUuYXhpczIuYnVpbGRlci5YRm9y
bVVSTEVuY29kZWRCdWlsZGVyIi8+CiAgICAgICAgPG1lc3NhZ2VCdWlsZGVyIGNvbnRlbnRUeXBl
PSJtdWx0aXBhcnQvZm9ybS1kYXRhIgogICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ib3Jn
LmFwYWNoZS5heGlzMi5idWlsZGVyLk11bHRpcGFydEZvcm1EYXRhQnVpbGRlciIvPgogICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICA8IS0tIGluY2x1ZGUgc3VwcG9ydCBmb3IgbW9zaGkg
LS0+CiAgICAgICAgPG1lc3NhZ2VCdWlsZGVyIGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi9qc29u
IgogICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ib3JnLmFwYWNoZS5heGlzMi5qc29uLm1v
c2hpLkpzb25CdWlsZGVyIiAvPgoJCQoJCTwhLS0gdGhpcyBpcyBmb3IgSlNPTiBvdmVyIFNPQVAg
LS0+CgkJPCEtLSA8bWVzc2FnZUJ1aWxkZXIgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL2pzb24i
CiAgICAgICAgICAgICAgICBjbGFzcz0ib3JnLmFwYWNoZS5heGlzMi5qc29uLkpTT05PTUJ1aWxk
ZXIiLz4gLS0+CiAgICA8L21lc3NhZ2VCdWlsZGVycz4KCiAgICA8IS0tID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CiAgICA8IS0tIFRyYW5zcG9y
dCBJbnMgLS0+CiAgICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0gLS0+CiAgICA8dHJhbnNwb3J0UmVjZWl2ZXIgbmFtZT0iaHR0cCIKICAgICAg
ICAgICAgICAgICAgICAgICBjbGFzcz0ib3JnLmFwYWNoZS5heGlzMi50cmFuc3BvcnQuaHR0cC5T
aW1wbGVIVFRQU2VydmVyIj4KICAgICAgICA8cGFyYW1ldGVyIG5hbWU9InBvcnQiPjgwODA8L3Bh
cmFtZXRlcj4KICAgICAgICA8IS0tIEhlcmUgaXMgdGhlIGNvbXBsZXRlIGxpc3Qgb2Ygc3VwcG9y
dGVkIHBhcmFtZXRlcnMgKHNlZSBleGFtcGxlIHNldHRpbmdzIGZ1cnRoZXIgYmVsb3cpOgogICAg
ICAgICAgICBwb3J0OiB0aGUgcG9ydCB0byBsaXN0ZW4gb24gKGRlZmF1bHQgNjA2MCkKICAgICAg
ICAgICAgaG9zdG5hbWU6ICBpZiBub24tbnVsbCwgdXJsIHByZWZpeCB1c2VkIGluIHJlcGx5LXRv
IGVuZHBvaW50IHJlZmVyZW5jZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVm
YXVsdCBudWxsKQogICAgICAgICAgICBvcmlnaW5TZXJ2ZXI6ICB2YWx1ZSBvZiBodHRwIFNlcnZl
ciBoZWFkZXIgaW4gb3V0Z29pbmcgbWVzc2FnZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChkZWZhdWx0ICJTaW1wbGUtU2VydmVyLzEuMSIpCiAgICAgICAgICAgIHJl
cXVlc3RUaW1lb3V0OiAgdmFsdWUgaW4gbWlsbGlzIG9mIHRpbWUgdGhhdCByZXF1ZXN0cyBjYW4g
d2FpdCBmb3IgZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlZmF1bHQgMjAw
MDApCiAgICAgICAgICAgIHJlcXVlc3RUY3BOb0RlbGF5OiAgdHJ1ZSB0byBtYXhpbWl6ZSBwZXJm
b3JtYW5jZSBhbmQgbWluaW1pemUgbGF0ZW5jeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGRlZmF1bHQgdHJ1ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxz
ZSB0byBtaW5pbWl6ZSBiYW5kd2lkdGggY29uc3VtcHRpb24gYnkgY29tYmluaW5nIHNlZ21lbnRz
CiAgICAgICAgICAgIHJlcXVlc3RDb3JlVGhyZWFkUG9vbFNpemU6ICBudW1iZXIgb2YgdGhyZWFk
cyBhdmFpbGFibGUgZm9yIHJlcXVlc3QgcHJvY2Vzc2luZyAodW5sZXNzIHF1ZXVlIGZpbGxzIHVw
KSAgKGRlZmF1bHQgMjUpCiAgICAgICAgICAgIHJlcXVlc3RNYXhUaHJlYWRQb29sU2l6ZTogIG51
bWJlciBvZiB0aHJlYWRzIGF2YWlsYWJsZSBmb3IgcmVxdWVzdCBwcm9jZXNzaW5nIGlmIHF1ZXVl
IGZpbGxzIHVwICAgICAgICAgKGRlZmF1bHQgMTUwKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBub3RlIHRoYXQgZGVmYXVsdCBxdWV1ZSBuZXZlciBmaWxscyB1cDogIHNl
ZSBIdHRwRmFjdG9yeQogICAgICAgICAgICB0aHJlYWRLZWVwQWxpdmVUaW1lOiAgdGltZSB0byBr
ZWVwIHRocmVhZHMgaW4gZXhjZXNzIG9mIGNvcmUgc2l6ZSBhbGl2ZSB3aGlsZSBpbmFjdGl2ZSAg
ICAgICAgICAgICAgICAgIChkZWZhdWx0IDE4MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG5vdGUgdGhhdCBubyBzdWNoIHRocmVhZHMgY2FuIGV4aXN0IHdpdGggZGVmYXVsdCB1
bmJvdW5kZWQgcmVxdWVzdCBxdWV1ZQogICAgICAgICAgICB0aHJlYWRLZWVwQWxpdmVUaW1lVW5p
dDogIFRpbWVVbml0IG9mIHZhbHVlIGluIHRocmVhZEtlZXBBbGl2ZVRpbWUgKGRlZmF1bHQgU0VD
T05EUykgICAgICAgICAgICAgICAgICAgIChkZWZhdWx0IFNFQ09ORFMpCiAgICAgICAgLS0+CiAg
ICAgICAgPCEtLSA8cGFyYW1ldGVyIG5hbWU9Imhvc3RuYW1lIj5odHRwOi8vd3d3Lm15QXBwLmNv
bS93czwvcGFyYW1ldGVyPiAtLT4KICAgICAgICA8IS0tIDxwYXJhbWV0ZXIgbmFtZT0ib3JpZ2lu
U2VydmVyIj5NeS1TZXJ2ZXIvMS4xPC9wYXJhbWV0ZXI+ICAgICAgICAgICAtLT4KICAgICAgICA8
IS0tIDxwYXJhbWV0ZXIgbmFtZT0icmVxdWVzdFRpbWVvdXQiPjEwMDAwPC9wYXJhbWV0ZXI+ICAg
ICAgICAgICAgICAgICAgIC0tPgogICAgICAgIDwhLS0gPHBhcmFtZXRlciBuYW1lPSJyZXF1ZXN0
VGNwTm9EZWxheSI+ZmFsc2U8L3BhcmFtZXRlcj4gICAgICAgICAgICAgICAgICAgLS0+CiAgICAg
ICAgPCEtLSA8cGFyYW1ldGVyIG5hbWU9InJlcXVlc3RDb3JlVGhyZWFkUG9vbFNpemUiPjUwPC9w
YXJhbWV0ZXI+ICAgICAgICAgICAgICAgICAgICAgIC0tPgogICAgICAgIDwhLS0gPHBhcmFtZXRl
ciBuYW1lPSJyZXF1ZXN0TWF4VGhyZWFkUG9vbFNpemUiPjEwMDwvcGFyYW1ldGVyPiAgICAgICAg
ICAgICAgICAgICAgIC0tPgogICAgICAgIDwhLS0gPHBhcmFtZXRlciBuYW1lPSJ0aHJlYWRLZWVw
QWxpdmVUaW1lIj4yNDAwMDA8L3BhcmFtZXRlcj4gICAgICAgICAgICAgICAgICAtLT4KICAgICAg
ICA8IS0tIDxwYXJhbWV0ZXIgbmFtZT0idGhyZWFkS2VlcEFsaXZlVGltZVVuaXQiPk1JTExJU0VD
T05EUzwvcGFyYW1ldGVyPiAgICAgICAgICAgIC0tPgogICAgPC90cmFuc3BvcnRSZWNlaXZlcj4K
CiAgICA8IS0tIFRoaXMgaXMgd2hlcmUgeW91J2QgcHV0IGN1c3RvbSB0cmFuc3BvcnRzLiAgU2Vl
IHRoZSB0cmFuc3BvcnRzIHByb2plY3QgLS0+CiAgICA8IS0tIGZvciBtb3JlLiAgaHR0cDovL3dz
LmFwYWNoZS5vcmcvY29tbW9ucy90cmFuc3BvcnQgICAgICAgICAgICAgICAgICAgICAgLS0+Cgog
ICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
IC0tPgogICAgPCEtLSBUcmFuc3BvcnQgT3V0cyAtLT4KICAgIDwhLS0gPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KCiAgICA8dHJhbnNwb3J0U2Vu
ZGVyIG5hbWU9ImxvY2FsIgogICAgICAgICAgICAgICAgICAgICBjbGFzcz0ib3JnLmFwYWNoZS5h
eGlzMi50cmFuc3BvcnQubG9jYWwuTG9jYWxUcmFuc3BvcnRTZW5kZXIiLz4KICAgIDx0cmFuc3Bv
cnRTZW5kZXIgbmFtZT0iaHR0cCIKICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im9yZy5hcGFj
aGUuYXhpczIudHJhbnNwb3J0Lmh0dHAuaW1wbC5odHRwY2xpZW50NC5IVFRQQ2xpZW50NFRyYW5z
cG9ydFNlbmRlciI+CiAgICAgICAgPHBhcmFtZXRlciBuYW1lPSJQUk9UT0NPTCI+SFRUUC8xLjE8
L3BhcmFtZXRlcj4KICAgICAgICA8cGFyYW1ldGVyIG5hbWU9IlRyYW5zZmVyLUVuY29kaW5nIj5j
aHVua2VkPC9wYXJhbWV0ZXI+CgogICAgICAgIDwhLS0gSWYgZm9sbG93aW5nIGlzIHNldCB0byAn
dHJ1ZScsIG9wdGlvbmFsIGFjdGlvbiBwYXJ0IG9mIHRoZSBDb250ZW50LVR5cGUgd2lsbCBub3Qg
YmUgYWRkZWQgdG8gdGhlIFNPQVAgMS4yIG1lc3NhZ2VzIC0tPgogICAgICAgIDwhLS0gIDxwYXJh
bWV0ZXIgbmFtZT0iT21pdFNPQVAxMkFjdGlvbiI+dHJ1ZTwvcGFyYW1ldGVyPiAgLS0+CiAgICA8
L3RyYW5zcG9ydFNlbmRlcj4KCiAgICA8dHJhbnNwb3J0U2VuZGVyIG5hbWU9Imh0dHBzIgogICAg
ICAgICAgICAgICAgICAgICBjbGFzcz0ib3JnLmFwYWNoZS5heGlzMi50cmFuc3BvcnQuaHR0cC5p
bXBsLmh0dHBjbGllbnQ0LkhUVFBDbGllbnQ0VHJhbnNwb3J0U2VuZGVyIj4KICAgICAgICA8cGFy
YW1ldGVyIG5hbWU9IlBST1RPQ09MIj5IVFRQLzEuMTwvcGFyYW1ldGVyPgogICAgICAgIDxwYXJh
bWV0ZXIgbmFtZT0iVHJhbnNmZXItRW5jb2RpbmciPmNodW5rZWQ8L3BhcmFtZXRlcj4KICAgIDwv
dHJhbnNwb3J0U2VuZGVyPgoKICAgIDwhLS0gUGxlYXNlIGVuYWJsZSB0aGlzIGlmIHlvdSBuZWVk
IHRoZSBqYXZhIHRyYW5zcG9ydCAtLT4KICAgIDwhLS0gPHRyYW5zcG9ydFNlbmRlciBuYW1lPSJq
YXZhIgogICAgICAgICAgICAgICAgICAgICBjbGFzcz0ib3JnLmFwYWNoZS5heGlzMi50cmFuc3Bv
cnQuamF2YS5KYXZhVHJhbnNwb3J0U2VuZGVyIi8+IC0tPgoKICAgIDwhLS0gPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KICAgIDwhLS0gR2xvYmFs
IE1vZHVsZXMgIC0tPgogICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09IC0tPgogICAgPCEtLSBDb21tZW50IHRoaXMgdG8gZGlzYWJsZSBBZGRy
ZXNzaW5nIC0tPgogICAgPG1vZHVsZSByZWY9ImFkZHJlc3NpbmciLz4KCiAgICA8IS0tQ29uZmln
dXJpbmcgbW9kdWxlICwgcHJvdmlkaW5nIHBhcmFtZXRlcnMgZm9yIG1vZHVsZXMgd2hldGhlciB0
aGV5IHJlZmVyIG9yIG5vdC0tPgogICAgPCEtLTxtb2R1bGVDb25maWcgbmFtZT0iYWRkcmVzc2lu
ZyI+LS0+CiAgICA8IS0tPHBhcmFtZXRlciBuYW1lPSJhZGRyZXNzaW5nUGFyYSI+Ti9BPC9wYXJh
bWV0ZXI+LS0+CiAgICA8IS0tPC9tb2R1bGVDb25maWc+LS0+CgogICAgPCEtLSA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgPCEtLSBDbHVz
dGVyaW5nICAtLT4KICAgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PSAtLT4KICAgIDwhLS0KICAgICBUbyBlbmFibGUgY2x1c3RlcmluZyBmb3Ig
dGhpcyBub2RlLCBzZXQgdGhlIHZhbHVlIG9mICJlbmFibGUiIGF0dHJpYnV0ZSBvZiB0aGUgImNs
dXN0ZXJpbmciCiAgICAgZWxlbWVudCB0byAidHJ1ZSIuIFRoZSBpbml0aWFsaXphdGlvbiBvZiBh
IG5vZGUgaW4gdGhlIGNsdXN0ZXIgaXMgaGFuZGxlZCBieSB0aGUgY2xhc3MKICAgICBjb3JyZXNw
b25kaW5nIHRvIHRoZSAiY2xhc3MiIGF0dHJpYnV0ZSBvZiB0aGUgImNsdXN0ZXJpbmciIGVsZW1l
bnQuIEl0IGlzIGFsc28gcmVzcG9uc2libGUgZm9yCiAgICAgZ2V0dGluZyB0aGlzIG5vZGUgdG8g
am9pbiB0aGUgY2x1c3Rlci4KICAgICAtLT4KICAgIDxjbHVzdGVyaW5nIGNsYXNzPSJvcmcuYXBh
Y2hlLmF4aXMyLmNsdXN0ZXJpbmcudHJpYmVzLlRyaWJlc0NsdXN0ZXJpbmdBZ2VudCIgZW5hYmxl
PSJmYWxzZSI+CgogICAgICAgIDwhLS0KICAgICAgICAgICBUaGlzIHBhcmFtZXRlciBpbmRpY2F0
ZXMgd2hldGhlciB0aGUgY2x1c3RlciBoYXMgdG8gYmUgYXV0b21hdGljYWxseSBpbml0YWxpemVk
CiAgICAgICAgICAgd2hlbiB0aGUgQXhpc0NvbmZpZ3VyYXRpb24gaXMgYnVpbHQuIElmIHNldCB0
byAidHJ1ZSIgdGhlIGluaXRpYWxpemF0aW9uIHdpbGwgbm90IGJlCiAgICAgICAgICAgZG9uZSBh
dCB0aGF0IHN0YWdlLCBhbmQgc29tZSBvdGhlciBwYXJ0eSB3aWxsIGhhdmUgdG8gZXhwbGljdGx5
IGluaXRpYWxpemUgdGhlIGNsdXN0ZXIuCiAgICAgICAgLS0+CiAgICAgICAgPHBhcmFtZXRlciBu
YW1lPSJBdm9pZEluaXRpYXRpb24iPnRydWU8L3BhcmFtZXRlcj4KCiAgICAgICAgPCEtLQogICAg
ICAgICAgIFRoZSBtZW1iZXJzaGlwIHNjaGVtZSB1c2VkIGluIHRoaXMgc2V0dXAuIFRoZSBvbmx5
IHZhbHVlcyBzdXBwb3J0ZWQgYXQgdGhlIG1vbWVudCBhcmUKICAgICAgICAgICAibXVsdGljYXN0
IiBhbmQgIndrYSIKCiAgICAgICAgICAgMS4gbXVsdGljYXN0IC0gbWVtYmVyc2hpcCBpcyBhdXRv
bWF0aWNhbGx5IGRpc2NvdmVyZWQgdXNpbmcgbXVsdGljYXN0aW5nCiAgICAgICAgICAgMi4gd2th
IC0gV2VsbC1Lbm93biBBZGRyZXNzIGJhc2VkIG11bHRpY2FzdGluZy4gTWVtYmVyc2hpcCBpcyBk
aXNjb3ZlcmVkIHdpdGggdGhlIGhlbHAKICAgICAgICAgICAgICAgICAgICBvZiBvbmUgb3IgbW9y
ZSBub2RlcyBydW5uaW5nIGF0IGEgV2VsbC1Lbm93biBBZGRyZXNzLiBOZXcgbWVtYmVycyBqb2lu
aW5nIGEKICAgICAgICAgICAgICAgICAgICBjbHVzdGVyIHdpbGwgZmlyc3QgY29ubmVjdCB0byBh
IHdlbGwta25vd24gbm9kZSwgcmVnaXN0ZXIgd2l0aCB0aGUgd2VsbC1rbm93biBub2RlCiAgICAg
ICAgICAgICAgICAgICAgYW5kIGdldCB0aGUgbWVtYmVyc2hpcCBsaXN0IGZyb20gaXQuIFdoZW4g
bmV3IG1lbWJlcnMgam9pbiwgb25lIG9mIHRoZSB3ZWxsLWtub3duCiAgICAgICAgICAgICAgICAg
ICAgbm9kZXMgd2lsbCBub3RpZnkgdGhlIG90aGVycyBpbiB0aGUgZ3JvdXAuIFdoZW4gYSBtZW1i
ZXIgbGVhdmVzIHRoZSBjbHVzdGVyIG9yCiAgICAgICAgICAgICAgICAgICAgaXMgZGVlbWVkIHRv
IGhhdmUgbGVmdCB0aGUgY2x1c3RlciwgaXQgd2lsbCBiZSBkZXRlY3RlZCBieSB0aGUgR3JvdXAg
TWVtYmVyc2hpcAogICAgICAgICAgICAgICAgICAgIFNlcnZpY2UgKEdNUykgdXNpbmcgYSBUQ1Ag
cGluZyBtZWNoYW5pc20uCiAgICAgICAgLS0+CiAgICAgICAgPHBhcmFtZXRlciBuYW1lPSJtZW1i
ZXJzaGlwU2NoZW1lIj5tdWx0aWNhc3Q8L3BhcmFtZXRlcj4KCiAgICAgICAgPCEtLQogICAgICAg
ICBUaGUgY2x1c3RlcmluZyBkb21haW4vZ3JvdXAuIE5vZGVzIGluIHRoZSBzYW1lIGdyb3VwIHdp
bGwgYmVsb25nIHRvIHRoZSBzYW1lIG11bHRpY2FzdAogICAgICAgICBkb21haW4uIFRoZXJlIHdp
bGwgbm90IGJlIGludGVyZmVyZW5jZSBiZXR3ZWVuIG5vZGVzIGluIGRpZmZlcmVudCBncm91cHMu
CiAgICAgICAgLS0+CiAgICAgICAgPHBhcmFtZXRlciBuYW1lPSJkb21haW4iPndzbzIuY2FyYm9u
LmRvbWFpbjwvcGFyYW1ldGVyPgoKICAgICAgICA8IS0tCiAgICAgICAgICAgV2hlbiBhIFdlYiBz
ZXJ2aWNlIHJlcXVlc3QgaXMgcmVjZWl2ZWQsIGFuZCBwcm9jZXNzZWQsIGJlZm9yZSB0aGUgcmVz
cG9uc2UgaXMgc2VudCB0byB0aGUKICAgICAgICAgICBjbGllbnQsIHNob3VsZCB3ZSB1cGRhdGUg
dGhlIHN0YXRlcyBvZiBhbGwgbWVtYmVycyBpbiB0aGUgY2x1c3Rlcj8gSWYgdGhlIHZhbHVlIG9m
CiAgICAgICAgICAgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0IHRvICJ0cnVlIiwgdGhlIHJlc3BvbnNl
IHRvIHRoZSBjbGllbnQgd2lsbCBiZSBzZW50IG9ubHkgYWZ0ZXIKICAgICAgICAgICBhbGwgdGhl
IG1lbWJlcnMgaGF2ZSBiZWVuIHVwZGF0ZWQuIE9idmlvdXNseSwgdGhpcyBjYW4gYmUgdGltZSBj
b25zdW1pbmcuIEluIHNvbWUgY2FzZXMsCiAgICAgICAgICAgc3VjaCB0aGlzIG92ZXJoZWFkIG1h
eSBub3QgYmUgYWNjZXB0YWJsZSwgaW4gd2hpY2ggY2FzZSB0aGUgdmFsdWUgb2YgdGhpcyBwYXJh
bWV0ZXIKICAgICAgICAgICBzaG91bGQgYmUgc2V0IHRvICJmYWxzZSIKICAgICAgICAtLT4KICAg
ICAgICA8cGFyYW1ldGVyIG5hbWU9InN5bmNocm9uaXplQWxsIj50cnVlPC9wYXJhbWV0ZXI+Cgog
ICAgICAgIDwhLS0KICAgICAgICAgIFRoZSBtYXhpbXVtIG51bWJlciBvZiB0aW1lcyB3ZSBuZWVk
IHRvIHJldHJ5IHRvIHNlbmQgYSBtZXNzYWdlIHRvIGEgcGFydGljdWxhciBub2RlCiAgICAgICAg
ICBiZWZvcmUgZ2l2aW5nIHVwIGFuZCBjb25zaWRlcmluZyB0aGF0IG5vZGUgdG8gYmUgZmF1bHR5
CiAgICAgICAgLS0+CiAgICAgICAgPHBhcmFtZXRlciBuYW1lPSJtYXhSZXRyaWVzIj4xMDwvcGFy
YW1ldGVyPgoKICAgICAgICA8IS0tIFRoZSBtdWx0aWNhc3QgYWRkcmVzcyB0byBiZSB1c2VkIC0t
PgogICAgICAgIDxwYXJhbWV0ZXIgbmFtZT0ibWNhc3RBZGRyZXNzIj4yMjguMC4wLjQ8L3BhcmFt
ZXRlcj4KCiAgICAgICAgPCEtLSBUaGUgbXVsdGljYXN0IHBvcnQgdG8gYmUgdXNlZCAtLT4KICAg
ICAgICA8cGFyYW1ldGVyIG5hbWU9Im1jYXN0UG9ydCI+NDU1NjQ8L3BhcmFtZXRlcj4KCiAgICAg
ICAgPCEtLSBUaGUgZnJlcXVlbmN5IG9mIHNlbmRpbmcgbWVtYmVyc2hpcCBtdWx0aWNhc3QgbWVz
c2FnZXMgKGluIG1zKSAtLT4KICAgICAgICA8cGFyYW1ldGVyIG5hbWU9Im1jYXN0RnJlcXVlbmN5
Ij41MDA8L3BhcmFtZXRlcj4KCiAgICAgICAgPCEtLSBUaGUgdGltZSBpbnRlcnZhbCB3aXRoaW4g
d2hpY2ggaWYgYSBtZW1iZXIgZG9lcyBub3QgcmVzcG9uZCwgdGhlIG1lbWJlciB3aWxsIGJlCiAg
ICAgICAgIGRlZW1lZCB0byBoYXZlIGxlZnQgdGhlIGdyb3VwIChpbiBtcykKICAgICAgICAgLS0+
CiAgICAgICAgPHBhcmFtZXRlciBuYW1lPSJtZW1iZXJEcm9wVGltZSI+MzAwMDwvcGFyYW1ldGVy
PgoKICAgICAgICA8IS0tCiAgICAgICAgICAgVGhlIElQIGFkZHJlc3Mgb2YgdGhlIG5ldHdvcmsg
aW50ZXJmYWNlIHRvIHdoaWNoIHRoZSBtdWx0aWNhc3RpbmcgaGFzIHRvIGJlIGJvdW5kIHRvLgog
ICAgICAgICAgIE11bHRpY2FzdGluZyB3b3VsZCBiZSBkb25lIHVzaW5nIHRoaXMgaW50ZXJmYWNl
LgogICAgICAgIC0tPgogICAgICAgIDxwYXJhbWV0ZXIgbmFtZT0ibWNhc3RCaW5kQWRkcmVzcyI+
MTI3LjAuMC4xPC9wYXJhbWV0ZXI+CgogICAgICAgIDwhLS0gVGhlIGhvc3QgbmFtZSBvciBJUCBh
ZGRyZXNzIG9mIHRoaXMgbWVtYmVyIC0tPgogICAgICAgIDxwYXJhbWV0ZXIgbmFtZT0ibG9jYWxN
ZW1iZXJIb3N0Ij4xMjcuMC4wLjE8L3BhcmFtZXRlcj4KCiAgICAgICAgPCEtLQogICAgICAgIFRo
ZSBUQ1AgcG9ydCB1c2VkIGJ5IHRoaXMgbWVtYmVyLiBUaGlzIGlzIHRoZSBwb3J0IHRocm91Z2gg
d2hpY2ggb3RoZXIgbm9kZXMgd2lsbAogICAgICAgIGNvbnRhY3QgdGhpcyBtZW1iZXIKICAgICAg
ICAgLS0+CiAgICAgICAgPHBhcmFtZXRlciBuYW1lPSJsb2NhbE1lbWJlclBvcnQiPjQwMDA8L3Bh
cmFtZXRlcj4KCiAgICAgICAgPCEtLQogICAgICAgIFByZXNlcnZlIG1lc3NhZ2Ugb3JkZXJpbmcu
IFRoaXMgd2lsbCBiZSBkb25lIGFjY29yZGluZyB0byBzZW5kZXIgb3JkZXIuCiAgICAgICAgLS0+
CiAgICAgICAgPHBhcmFtZXRlciBuYW1lPSJwcmVzZXJ2ZU1lc3NhZ2VPcmRlciI+dHJ1ZTwvcGFy
YW1ldGVyPgoKICAgICAgICA8IS0tCiAgICAgICAgTWFpbnRhaW4gYXRtb3N0LW9uY2UgbWVzc2Fn
ZSBwcm9jZXNzaW5nIHNlbWFudGljcwogICAgICAgIC0tPgogICAgICAgIDxwYXJhbWV0ZXIgbmFt
ZT0iYXRtb3N0T25jZU1lc3NhZ2VTZW1hbnRpY3MiPnRydWU8L3BhcmFtZXRlcj4KCiAgICAgICAg
PCEtLQogICAgICAgIFByb3BlcnRpZXMgc3BlY2lmaWMgdG8gdGhpcyBtZW1iZXIKICAgICAgICAt
LT4KICAgICAgICA8cGFyYW1ldGVyIG5hbWU9InByb3BlcnRpZXMiPgogICAgICAgICAgICA8cHJv
cGVydHkgbmFtZT0iYmFja2VuZFNlcnZlclVSTCIgdmFsdWU9Imh0dHBzOi8vJHtob3N0TmFtZX06
JHtodHRwc1BvcnR9L3NlcnZpY2VzLyIvPgogICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWd0
Q29uc29sZVVSTCIgdmFsdWU9Imh0dHBzOi8vJHtob3N0TmFtZX06JHtodHRwc1BvcnR9LyIvPgog
ICAgICAgIDwvcGFyYW1ldGVyPgoKICAgICAgICA8IS0tCiAgICAgICAgICAgVGhlIGxpc3Qgb2Yg
c3RhdGljIG9yIHdlbGwta25vd24gbWVtYmVycy4gVGhlc2UgZW50cmllcyB3aWxsIG9ubHkgYmUg
dmFsaWQgaWYgdGhlCiAgICAgICAgICAgIm1lbWJlcnNoaXBTY2hlbWUiIGFib3ZlIGlzIHNldCB0
byAid2thIgogICAgICAgIC0tPgogICAgICAgIDxtZW1iZXJzPgogICAgICAgICAgICA8bWVtYmVy
PgogICAgICAgICAgICAgICAgPGhvc3ROYW1lPjEyNy4wLjAuMTwvaG9zdE5hbWU+CiAgICAgICAg
ICAgICAgICA8cG9ydD40MDAwPC9wb3J0PgogICAgICAgICAgICA8L21lbWJlcj4KICAgICAgICAg
ICAgPG1lbWJlcj4KICAgICAgICAgICAgICAgIDxob3N0TmFtZT4xMjcuMC4wLjE8L2hvc3ROYW1l
PgogICAgICAgICAgICAgICAgPHBvcnQ+NDAwMTwvcG9ydD4KICAgICAgICAgICAgPC9tZW1iZXI+
CiAgICAgICAgPC9tZW1iZXJzPgoKICAgICAgICA8IS0tCiAgICAgICAgRW5hYmxlIHRoZSBncm91
cE1hbmFnZW1lbnQgZW50cnkgaWYgeW91IG5lZWQgdG8gcnVuIHRoaXMgbm9kZSBhcyBhIGNsdXN0
ZXIgbWFuYWdlci4KICAgICAgICBNdWx0aXBsZSBhcHBsaWNhdGlvbiBkb21haW5zIHdpdGggZGlm
ZmVyZW50IEdyb3VwTWFuYWdlbWVudEFnZW50IGltcGxlbWVudGF0aW9ucwogICAgICAgIGNhbiBi
ZSBkZWZpbmVkIGluIHRoaXMgc2VjdGlvbi4KICAgICAgICAtLT4KICAgICAgICA8Z3JvdXBNYW5h
Z2VtZW50IGVuYWJsZT0iZmFsc2UiPgogICAgICAgICAgICA8YXBwbGljYXRpb25Eb21haW4gbmFt
ZT0iYXBhY2hlLmF4aXMyLmFwcGxpY2F0aW9uLmRvbWFpbiIKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlc2NyaXB0aW9uPSJBeGlzMiBncm91cCIKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFnZW50PSJvcmcuYXBhY2hlLmF4aXMyLmNsdXN0ZXJpbmcubWFuYWdlbWVudC5E
ZWZhdWx0R3JvdXBNYW5hZ2VtZW50QWdlbnQiLz4KICAgICAgICA8L2dyb3VwTWFuYWdlbWVudD4K
CiAgICAgICAgPCEtLQogICAgICAgICAgIFRoaXMgaW50ZXJmYWNlIGlzIHJlc3BvbnNpYmxlIGZv
ciBoYW5kbGluZyBtYW5hZ2VtZW50IG9mIGEgc3BlY2lmaWMgbm9kZSBpbiB0aGUgY2x1c3Rlcgog
ICAgICAgICAgIFRoZSAiZW5hYmxlIiBhdHRyaWJ1dGUgaW5kaWNhdGVzIHdoZXRoZXIgTm9kZSBt
YW5hZ2VtZW50IGhhcyBiZWVuIGVuYWJsZWQKICAgICAgICAtLT4KICAgICAgICA8bm9kZU1hbmFn
ZXIgY2xhc3M9Im9yZy5hcGFjaGUuYXhpczIuY2x1c3RlcmluZy5tYW5hZ2VtZW50LkRlZmF1bHRO
b2RlTWFuYWdlciIKICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZT0idHJ1ZSIvPgoKICAg
ICAgICA8IS0tCiAgICAgICAgICAgVGhpcyBpbnRlcmZhY2UgaXMgcmVzcG9uc2libGUgZm9yIGhh
bmRsaW5nIHN0YXRlIHJlcGxpY2F0aW9uLiBUaGUgcHJvcGVydHkgY2hhbmdlcyBpbgogICAgICAg
ICAgIHRoZSBBeGlzMiBjb250ZXh0IGhpZXJhcmNoeSBpbiB0aGlzIG5vZGUsIGFyZSBwcm9wYWdh
dGVkIHRvIGFsbCBvdGhlciBub2RlcyBpbiB0aGUgY2x1c3Rlci4KCiAgICAgICAgICAgVGhlICJl
eGNsdWRlcyIgcGF0dGVybnMgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgcHJlZml4ZXMgKGUu
Zy4gbG9jYWxfKikgb3IKICAgICAgICAgICBzdWZmaXhlcyAoZS5nLiAqX2xvY2FsKSBvZiB0aGUg
cHJvcGVydGllcyB0byBiZSBleGNsdWRlZCBmcm9tIHJlcGxpY2F0aW9uLiBUaGUgcGF0dGVybgog
ICAgICAgICAgICIqIiBpbmRpY2F0ZXMgdGhhdCBhbGwgcHJvcGVydGllcyBpbiBhIHBhcnRpY3Vs
YXIgY29udGV4dCBzaG91bGQgbm90IGJlIHJlcGxpY2F0ZWQuCgogICAgICAgICAgICBUaGUgImVu
YWJsZSIgYXR0cmlidXRlIGluZGljYXRlcyB3aGV0aGVyIGNvbnRleHQgcmVwbGljYXRpb24gaGFz
IGJlZW4gZW5hYmxlZAogICAgICAgIC0tPgogICAgICAgIDxzdGF0ZU1hbmFnZXIgY2xhc3M9Im9y
Zy5hcGFjaGUuYXhpczIuY2x1c3RlcmluZy5zdGF0ZS5EZWZhdWx0U3RhdGVNYW5hZ2VyIgogICAg
ICAgICAgICAgICAgICAgICAgZW5hYmxlPSJ0cnVlIj4KICAgICAgICAgICAgPHJlcGxpY2F0aW9u
PgogICAgICAgICAgICAgICAgPGRlZmF1bHRzPgogICAgICAgICAgICAgICAgICAgIDxleGNsdWRl
IG5hbWU9ImxvY2FsXyoiLz4KICAgICAgICAgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSJMT0NB
TF8qIi8+CiAgICAgICAgICAgICAgICA8L2RlZmF1bHRzPgogICAgICAgICAgICAgICAgPGNvbnRl
eHQgY2xhc3M9Im9yZy5hcGFjaGUuYXhpczIuY29udGV4dC5Db25maWd1cmF0aW9uQ29udGV4dCI+
CiAgICAgICAgICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0ibG9jYWxfKiIvPgogICAgICAgICAg
ICAgICAgPC9jb250ZXh0PgogICAgICAgICAgICAgICAgPGNvbnRleHQgY2xhc3M9Im9yZy5hcGFj
aGUuYXhpczIuY29udGV4dC5TZXJ2aWNlR3JvdXBDb250ZXh0Ij4KICAgICAgICAgICAgICAgICAg
ICA8ZXhjbHVkZSBuYW1lPSJsb2NhbF8qIi8+CiAgICAgICAgICAgICAgICA8L2NvbnRleHQ+CiAg
ICAgICAgICAgICAgICA8Y29udGV4dCBjbGFzcz0ib3JnLmFwYWNoZS5heGlzMi5jb250ZXh0LlNl
cnZpY2VDb250ZXh0Ij4KICAgICAgICAgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSJsb2NhbF8q
Ii8+CiAgICAgICAgICAgICAgICA8L2NvbnRleHQ+CiAgICAgICAgICAgIDwvcmVwbGljYXRpb24+
CiAgICAgICAgPC9zdGF0ZU1hbmFnZXI+CiAgICA8L2NsdXN0ZXJpbmc+CgogICAgPCEtLSA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgogICAgPCEt
LSBQaGFzZXMgIC0tPgogICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09IC0tPgogICAgPHBoYXNlT3JkZXIgdHlwZT0iSW5GbG93Ij4KICAgICAg
ICA8IS0tICBTeXN0ZW0gcHJlZGVmaW5lZCBwaGFzZXMgICAgICAgLS0+CiAgICAgICAgPHBoYXNl
IG5hbWU9IlRyYW5zcG9ydCI+CiAgICAgICAgICAgIDxoYW5kbGVyIG5hbWU9IlJlcXVlc3RVUklC
YXNlZERpc3BhdGNoZXIiCiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJvcmcuYXBhY2hlLmF4
aXMyLmRpc3BhdGNoZXJzLlJlcXVlc3RVUklCYXNlZERpc3BhdGNoZXIiPgogICAgICAgICAgICAg
ICAgPG9yZGVyIHBoYXNlPSJUcmFuc3BvcnQiLz4KICAgICAgICAgICAgPC9oYW5kbGVyPgogICAg
ICAgICAgICA8aGFuZGxlciBuYW1lPSJTT0FQQWN0aW9uQmFzZWREaXNwYXRjaGVyIgogICAgICAg
ICAgICAgICAgICAgICBjbGFzcz0ib3JnLmFwYWNoZS5heGlzMi5kaXNwYXRjaGVycy5TT0FQQWN0
aW9uQmFzZWREaXNwYXRjaGVyIj4KICAgICAgICAgICAgICAgIDxvcmRlciBwaGFzZT0iVHJhbnNw
b3J0Ii8+CiAgICAgICAgICAgIDwvaGFuZGxlcj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDwh
LS0gbW9zaGkgc3VwcG9ydC0tPgogICAgICAgICAgICA8aGFuZGxlciBuYW1lPSJSZXF1ZXN0VVJJ
T3BlcmF0aW9uRGlzcGF0Y2hlciIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0i
b3JnLmFwYWNoZS5heGlzMi5kaXNwYXRjaGVycy5SZXF1ZXN0VVJJT3BlcmF0aW9uRGlzcGF0Y2hl
ciIvPgogICAgICAgICAgICA8aGFuZGxlciBuYW1lPSJKU09OTWVzc2FnZUhhbmRsZXIiCiAgICAg
ICAgICAgICAgICAgICAgIGNsYXNzPSJvcmcuYXBhY2hlLmF4aXMyLmpzb24ubW9zaGkuSlNPTk1l
c3NhZ2VIYW5kbGVyIiAvPgogICAgICAgICAgICA8IS0tIGVuZCBtb3NoaSBzdXBwb3J0IC0tPgog
ICAgICAgICAgICAKICAgICAgICA8L3BoYXNlPgogICAgICAgIDxwaGFzZSBuYW1lPSJBZGRyZXNz
aW5nIj4KICAgICAgICAgICAgPGhhbmRsZXIgbmFtZT0iQWRkcmVzc2luZ0Jhc2VkRGlzcGF0Y2hl
ciIKICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im9yZy5hcGFjaGUuYXhpczIuZGlzcGF0Y2hl
cnMuQWRkcmVzc2luZ0Jhc2VkRGlzcGF0Y2hlciI+CiAgICAgICAgICAgICAgICA8b3JkZXIgcGhh
c2U9IkFkZHJlc3NpbmciLz4KICAgICAgICAgICAgPC9oYW5kbGVyPgogICAgICAgIDwvcGhhc2U+
CiAgICAgICAgPHBoYXNlIG5hbWU9IlNlY3VyaXR5Ii8+CiAgICAgICAgPHBoYXNlIG5hbWU9IlBy
ZURpc3BhdGNoIi8+CiAgICAgICAgPHBoYXNlIG5hbWU9IkRpc3BhdGNoIiBjbGFzcz0ib3JnLmFw
YWNoZS5heGlzMi5lbmdpbmUuRGlzcGF0Y2hQaGFzZSI+CiAgICAgICAgICAgIDxoYW5kbGVyIG5h
bWU9IlJlcXVlc3RVUklCYXNlZERpc3BhdGNoZXIiCiAgICAgICAgICAgICAgICAgICAgIGNsYXNz
PSJvcmcuYXBhY2hlLmF4aXMyLmRpc3BhdGNoZXJzLlJlcXVlc3RVUklCYXNlZERpc3BhdGNoZXIi
Lz4KICAgICAgICAgICAgPGhhbmRsZXIgbmFtZT0iU09BUEFjdGlvbkJhc2VkRGlzcGF0Y2hlciIK
ICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im9yZy5hcGFjaGUuYXhpczIuZGlzcGF0Y2hlcnMu
U09BUEFjdGlvbkJhc2VkRGlzcGF0Y2hlciIvPgogICAgICAgICAgICAKICAgICAgICAgICAgPCEt
LSBtb3NoaSBzdXBwb3J0OiByZW1vdmUgUmVxdWVzdFVSSU9wZXJhdGlvbkRpc3BhdGNoZXIgZnJv
bSBkaXNwYXRjaCBwaGFzZSAtLT4KICAgICAgICAgICAgPCEtLSA8aGFuZGxlciBuYW1lPSJSZXF1
ZXN0VVJJT3BlcmF0aW9uRGlzcGF0Y2hlciIKICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im9y
Zy5hcGFjaGUuYXhpczIuZGlzcGF0Y2hlcnMuUmVxdWVzdFVSSU9wZXJhdGlvbkRpc3BhdGNoZXIi
Lz4gLS0+CiAgICAgICAgICAgIAogICAgICAgICAgICA8aGFuZGxlciBuYW1lPSJTT0FQTWVzc2Fn
ZUJvZHlCYXNlZERpc3BhdGNoZXIiCiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJvcmcuYXBh
Y2hlLmF4aXMyLmRpc3BhdGNoZXJzLlNPQVBNZXNzYWdlQm9keUJhc2VkRGlzcGF0Y2hlciIvPgog
ICAgICAgICAgICA8aGFuZGxlciBuYW1lPSJIVFRQTG9jYXRpb25CYXNlZERpc3BhdGNoZXIiCiAg
ICAgICAgICAgICAgICAgICAgIGNsYXNzPSJvcmcuYXBhY2hlLmF4aXMyLmRpc3BhdGNoZXJzLkhU
VFBMb2NhdGlvbkJhc2VkRGlzcGF0Y2hlciIvPgogICAgICAgICAgICA8aGFuZGxlciBuYW1lPSJH
ZW5lcmljUHJvdmlkZXJEaXNwYXRjaGVyIgogICAgICAgICAgICAgICAgICAgICBjbGFzcz0ib3Jn
LmFwYWNoZS5heGlzMi5qYXh3cy5kaXNwYXRjaGVycy5HZW5lcmljUHJvdmlkZXJEaXNwYXRjaGVy
Ii8+CiAgICAgICAgICAgIDxoYW5kbGVyIG5hbWU9Ik11c3RVbmRlcnN0YW5kVmFsaWRhdGlvbkRp
c3BhdGNoZXIiCiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJvcmcuYXBhY2hlLmF4aXMyLmph
eHdzLmRpc3BhdGNoZXJzLk11c3RVbmRlcnN0YW5kVmFsaWRhdGlvbkRpc3BhdGNoZXIiLz4KICAg
ICAgICA8L3BoYXNlPgogICAgICAgIDxwaGFzZSBuYW1lPSJSTVBoYXNlIi8+CiAgICAgICAgPCEt
LSAgU3lzdGVtIHByZWRlZmluZWQgcGhhc2VzICAgICAgIC0tPgogICAgICAgIDwhLS0gICBBZnRl
ciBQb3N0ZGlzcGF0Y2ggcGhhc2UgbW9kdWxlIGF1dGhvciBvciBzZXJ2aWNlIGF1dGhvciBjYW4g
YWRkIGFueSBwaGFzZSBoZSB3YW50ICAgICAgLS0+CiAgICAgICAgPHBoYXNlIG5hbWU9Ik9wZXJh
dGlvbkluUGhhc2UiPgogICAgICAgICAgICA8aGFuZGxlciBuYW1lPSJNdXN0VW5kZXJzdGFuZENo
ZWNrZXIiCiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJvcmcuYXBhY2hlLmF4aXMyLmpheHdz
LmRpc3BhdGNoZXJzLk11c3RVbmRlcnN0YW5kQ2hlY2tlciI+CiAgICAgICAgICAgICAgICA8b3Jk
ZXIgcGhhc2U9Ik9wZXJhdGlvbkluUGhhc2UiLz4KICAgICAgICAgICAgPC9oYW5kbGVyPgogICAg
ICAgIDwvcGhhc2U+CiAgICAgICAgPHBoYXNlIG5hbWU9InNvYXBtb25pdG9yUGhhc2UiLz4KICAg
IDwvcGhhc2VPcmRlcj4KICAgIDxwaGFzZU9yZGVyIHR5cGU9Ik91dEZsb3ciPgogICAgICAgIDwh
LS0gICAgICB1c2VyIGNhbiBhZGQgaGlzIG93biBwaGFzZXMgdG8gdGhpcyBhcmVhICAtLT4KICAg
ICAgICA8cGhhc2UgbmFtZT0ic29hcG1vbml0b3JQaGFzZSIvPgogICAgICAgIDxwaGFzZSBuYW1l
PSJPcGVyYXRpb25PdXRQaGFzZSIvPgogICAgICAgIDwhLS1zeXN0ZW0gcHJlZGVmaW5lZCBwaGFz
ZS0tPgogICAgICAgIDwhLS10aGVzZSBwaGFzZSB3aWxsIHJ1biBpcnJlc3BlY3RpdmUgb2YgdGhl
IHNlcnZpY2UtLT4KICAgICAgICA8cGhhc2UgbmFtZT0iUk1QaGFzZSIvPgogICAgICAgIDxwaGFz
ZSBuYW1lPSJQb2xpY3lEZXRlcm1pbmF0aW9uIi8+CiAgICAgICAgPHBoYXNlIG5hbWU9Ik1lc3Nh
Z2VPdXQiLz4KICAgICAgICA8cGhhc2UgbmFtZT0iU2VjdXJpdHkiLz4KICAgIDwvcGhhc2VPcmRl
cj4KICAgIDxwaGFzZU9yZGVyIHR5cGU9IkluRmF1bHRGbG93Ij4KICAgICAgICA8cGhhc2UgbmFt
ZT0iQWRkcmVzc2luZyI+CiAgICAgICAgICAgIDxoYW5kbGVyIG5hbWU9IkFkZHJlc3NpbmdCYXNl
ZERpc3BhdGNoZXIiCiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJvcmcuYXBhY2hlLmF4aXMy
LmRpc3BhdGNoZXJzLkFkZHJlc3NpbmdCYXNlZERpc3BhdGNoZXIiPgogICAgICAgICAgICAgICAg
PG9yZGVyIHBoYXNlPSJBZGRyZXNzaW5nIi8+CiAgICAgICAgICAgIDwvaGFuZGxlcj4KICAgICAg
ICA8L3BoYXNlPgogICAgICAgIDxwaGFzZSBuYW1lPSJTZWN1cml0eSIvPgogICAgICAgIDxwaGFz
ZSBuYW1lPSJQcmVEaXNwYXRjaCIvPgogICAgICAgIDxwaGFzZSBuYW1lPSJEaXNwYXRjaCIgY2xh
c3M9Im9yZy5hcGFjaGUuYXhpczIuZW5naW5lLkRpc3BhdGNoUGhhc2UiPgogICAgICAgICAgICA8
aGFuZGxlciBuYW1lPSJSZXF1ZXN0VVJJQmFzZWREaXNwYXRjaGVyIgogICAgICAgICAgICAgICAg
ICAgICBjbGFzcz0ib3JnLmFwYWNoZS5heGlzMi5kaXNwYXRjaGVycy5SZXF1ZXN0VVJJQmFzZWRE
aXNwYXRjaGVyIi8+CiAgICAgICAgICAgIDxoYW5kbGVyIG5hbWU9IlNPQVBBY3Rpb25CYXNlZERp
c3BhdGNoZXIiCiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJvcmcuYXBhY2hlLmF4aXMyLmRp
c3BhdGNoZXJzLlNPQVBBY3Rpb25CYXNlZERpc3BhdGNoZXIiLz4KICAgICAgICAgICAgPGhhbmRs
ZXIgbmFtZT0iUmVxdWVzdFVSSU9wZXJhdGlvbkRpc3BhdGNoZXIiCiAgICAgICAgICAgICAgICAg
ICAgIGNsYXNzPSJvcmcuYXBhY2hlLmF4aXMyLmRpc3BhdGNoZXJzLlJlcXVlc3RVUklPcGVyYXRp
b25EaXNwYXRjaGVyIi8+CiAgICAgICAgICAgIDxoYW5kbGVyIG5hbWU9IlNPQVBNZXNzYWdlQm9k
eUJhc2VkRGlzcGF0Y2hlciIKICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im9yZy5hcGFjaGUu
YXhpczIuZGlzcGF0Y2hlcnMuU09BUE1lc3NhZ2VCb2R5QmFzZWREaXNwYXRjaGVyIi8+CiAgICAg
ICAgICAgIDxoYW5kbGVyIG5hbWU9IkhUVFBMb2NhdGlvbkJhc2VkRGlzcGF0Y2hlciIKICAgICAg
ICAgICAgICAgICAgICAgY2xhc3M9Im9yZy5hcGFjaGUuYXhpczIuZGlzcGF0Y2hlcnMuSFRUUExv
Y2F0aW9uQmFzZWREaXNwYXRjaGVyIi8+CiAgICAgICAgICAgIDxoYW5kbGVyIG5hbWU9IkdlbmVy
aWNQcm92aWRlckRpc3BhdGNoZXIiCiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJvcmcuYXBh
Y2hlLmF4aXMyLmpheHdzLmRpc3BhdGNoZXJzLkdlbmVyaWNQcm92aWRlckRpc3BhdGNoZXIiLz4K
ICAgICAgICAgICAgPGhhbmRsZXIgbmFtZT0iTXVzdFVuZGVyc3RhbmRWYWxpZGF0aW9uRGlzcGF0
Y2hlciIKICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im9yZy5hcGFjaGUuYXhpczIuamF4d3Mu
ZGlzcGF0Y2hlcnMuTXVzdFVuZGVyc3RhbmRWYWxpZGF0aW9uRGlzcGF0Y2hlciIvPgogICAgICAg
IDwvcGhhc2U+CiAgICAgICAgPHBoYXNlIG5hbWU9IlJNUGhhc2UiLz4KICAgICAgICA8IS0tICAg
ICAgdXNlciBjYW4gYWRkIGhpcyBvd24gcGhhc2VzIHRvIHRoaXMgYXJlYSAgLS0+CiAgICAgICAg
PHBoYXNlIG5hbWU9Ik9wZXJhdGlvbkluRmF1bHRQaGFzZSIvPgogICAgICAgIDxwaGFzZSBuYW1l
PSJzb2FwbW9uaXRvclBoYXNlIi8+CiAgICA8L3BoYXNlT3JkZXI+CiAgICA8cGhhc2VPcmRlciB0
eXBlPSJPdXRGYXVsdEZsb3ciPgogICAgICAgIDwhLS0gICAgICB1c2VyIGNhbiBhZGQgaGlzIG93
biBwaGFzZXMgdG8gdGhpcyBhcmVhICAtLT4KICAgICAgICA8cGhhc2UgbmFtZT0ic29hcG1vbml0
b3JQaGFzZSIvPgogICAgICAgIDxwaGFzZSBuYW1lPSJPcGVyYXRpb25PdXRGYXVsdFBoYXNlIi8+
CiAgICAgICAgPHBoYXNlIG5hbWU9IlJNUGhhc2UiLz4KICAgICAgICA8cGhhc2UgbmFtZT0iUG9s
aWN5RGV0ZXJtaW5hdGlvbiIvPgogICAgICAgIDxwaGFzZSBuYW1lPSJNZXNzYWdlT3V0Ii8+CiAg
ICAgICAgPHBoYXNlIG5hbWU9IlNlY3VyaXR5Ii8+CiAgICA8L3BoYXNlT3JkZXI+CjwvYXhpc2Nv
bmZpZz4KCg==
------=_Part_3711230_589788145.1740386479274
Content-Type: text/plain; charset=us-ascii
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
------=_Part_3711230_589788145.1740386479274--