From lu4242 at gmail.com Mon May 3 16:58:22 2010 Content-Type: multipart/mixed; boundary="===============1748630195159848496==" MIME-Version: 1.0 From: Leonardo Uribe To: jsr-314-open-mirror at lists.jboss.org Subject: Re: [jsr-314-open-mirror] [jsr-314-open] status of (was Re: "for" attribute for ) Date: Mon, 03 May 2010 15:57:09 -0500 Message-ID: In-Reply-To: z2o75fa9e651005031312yac62f609tcdb084a54cb72a95@mail.gmail.com --===============1748630195159848496== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 2010/5/3 David Geary > > > 2010/5/3 Leonardo Uribe > >> Hi >> >> >> In myfaces we don't have tag. The reason is >> that we don't know which attributes this tag has, how it looks like or w= here >> there is some example. >> > > I am working on an article for ibm devworks where I give an example of > -- I can send you the article if you want, let= me > know. > Yes, I would like to have this article, it will help a lot. If you have time, please send it to my mail. Thanks for your help. > Anyway, here=E2=80=99s the core of my example. First, an icon composite c= omponent: > > > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> > > > > xmlns:h=3D"http://java.sun.com/jsf/html" > > xmlns:f=3D"http://java.sun.com/jsf/core" > > xmlns:composite=3D"http://java.sun.com/jsf/composite"> > > > > > > > > > "#{clientId}:iconForm:link"/> > > > > "#{clientId}:iconForm:link" > > event=3D"action"/> > > > > > > > >
> > > > > > > > > > > > > > > >
> >
> > > > > The tag specifies the name of the event (click= ), > the target(s) for the event (#{clientId}:iconForm:link), and the component > event (action). > > The preceding markup is in resources/util/icon.xhtml, so you use an icon > like this: > > > > > > /> > > > > For the click event in the icon, JSF makes an Ajax call to the server, and > when the call returns, it renders readout and fontPreview components. The > click event is associated with the action event of the target (the link). > So, when an action event occurs in the link, JSF send an Ajax call to the > server. > > >> In theory it works like , , >> . > > I pointed this issue multiple times (really a lot of times but it seems >> nobody took that seriously). Just take a look at: > > >> http://markmail.org/message/dxlpoa3qgul7uuns?q=3Dcomposite:clientBehavior >> >> As soon as any documentation is available on mojarra javadoc I'll do the >> necessary stuff on myfaces. >> > > This really needs to be addressed asap, so the feature does not become > Mojarra-dependent, which greatly limits its usefulness. Besides the javad= oc, > it needs to be mentioned in the spec. > > I think whoever documented the composite library should come forward and > update the PDL docs and spec. And if Ed won=E2=80=99t do it, I might help= out. :) > > > david > > > >> regards, >> >> Leonardo Uribe >> >> 2010/5/3 David Geary >> >> Thanks, Roger! >>> >>> >>> david >>> >>> 2010/5/3 Roger Kitain >>> >>> I think this was an oversight since this was one of the last remaining >>>> spec areas that went in. >>>> I will file a spec issue on this. >>>> Thanks for catching it. >>>> >>>> -roger >>>> >>>> >>>> On 5/3/10 2:31 PM, David Geary wrote: >>>> >>>> There is a tag in the 2.0 version of JSF th= at >>>> comes with GlassFish, and it appears to work as advertised by Alexandr= and >>>> Andy below. >>>> >>>> But, as Alexandr points out, it=E2=80=99s not documented in the PDL d= ocs, nor >>>> could I find any mention of it in the spec (or Ed=E2=80=99s book, eith= er). >>>> >>>> This is a vital tag that lets page authors attach ajax functionality >>>> to components within composite components. I see no reason why it shou= ld not >>>> be documented. >>>> >>>> Does anyone know why this tag was not documented in the first place, >>>> or what the plans are for its future? Anyone know if it works with MyF= aces >>>> 2.0? >>>> >>>> If there=E2=80=99s not a compelling reason for blacklisting it from t= he docs, >>>> can we document it? >>>> >>>> Thanks, >>>> >>>> >>>> david >>>> >>>> >>>> >>>> 2009/5/26 Alexandr Smirnov >>>> >>>> Sure, the composite client event tags are not included in the PDL doc. >>>> There is one tag with attributes: >>>> 'name' - >>>> the virtual event name that composite component has. >>>> 'default' "true/false" defines the default event that is enclosed >>>> tag serves if 'event' attribute was omited. >>>> 'event' - the real event name for target component. >>>> 'targets' - space-delimited list of component id's for which composite >>>> component behavior or tag will be redirected. >>>> >>>> The model with 'for' attribute was the first implementation but it was >>>> replaced wit 'virtual' event model. >>>> >>>> Andy Schwartz wrote: >>>> > David - >>>> > >>>> > David Geary wrote On 5/24/2009 5:55 PM ET: >>>> >> For JSF 2, we added a "for" attribute to f:actionListener, >>>> >> f:converter, etc., but we don't have a "for" attribute for . >>>> >> AFAICT, that means that although you can attach listeners, >>>> validators, >>>> >> converters, etc. to a component contained in a composite component, >>>> >> you cannot attach Ajax functionality. >>>> >> >>>> >> Why is that? Is it an oversight, or is there some compelling >>>> technical >>>> >> reason to disallow adding Ajax behavior to components contained in >>>> >> composites? >>>> > >>>> > We definitely intended to support this, though instead of exposing a >>>> > "for" attribute on , we wanted to leverage the fact that >>>> > behaviors already have a targeting mechanism in the "event" name. T= he >>>> > idea was that a composite component would, like any other >>>> > ClientBehaviorHolder, expose a set of logical event names that >>>> behaviors >>>> > can be attached to. So, for example, assuming a composite component >>>> > included "OK" and "Cancel" buttons and wanted to allow the user to >>>> > attach action behaviors to these, the composite component might >>>> surface >>>> > "okAction" and "cancelAction" event names, allowing the page author = to >>>> do: >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > I know that Alexander did the implementation work to get this up and >>>> > running. However, I do not see any pdldoc for the composite tag that >>>> > the composite component author uses to specify the supported client >>>> > behavior event names (composite:clientBehavior I believe). >>>> > >>>> > Alex, Roger - >>>> > >>>> > Did this make it into 2.0? >>>> > >>>> > Andy >>>> > >>>> >> >>>> >> Thanks, >>>> >> >>>> >> >>>> >> david >>>> >>>> >>>> >>>> >>>> -- roger.kitain(a)oracle.comhttps://twitter.com/rogerk09http://www.jav= a.net/blogs/rogerk >>>> >>>> >>> >> > --===============1748630195159848496== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGJyPjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+MjAxMC81LzMgRGF2aWQgR2VhcnkgPHNw YW4gZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWlsdG86Y2xhcml0eS50cmFpbmluZ0BnbWFpbC5j b20iPmNsYXJpdHkudHJhaW5pbmdAZ21haWwuY29tPC9hPiZndDs8L3NwYW4+PGJyPjxibG9ja3F1 b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjogMHB0IDBwdCAwcHQgMC44ZXg7 IGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiKDIwNCwgMjA0LCAyMDQpOyBwYWRkaW5nLWxlZnQ6 IDFleDsiPgo8YnI+PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48ZGl2IGNsYXNzPSJpbSI+ MjAxMC81LzMgTGVvbmFyZG8gVXJpYmUgPHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWls dG86bHU0MjQyQGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmx1NDI0MkBnbWFpbC5jb208L2E+ Jmd0Ozwvc3Bhbj48YnI+PC9kaXY+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHls ZT0ibWFyZ2luOiAwcHQgMHB0IDBwdCAwLjhleDsgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2Io MjA0LCAyMDQsIDIwNCk7IHBhZGRpbmctbGVmdDogMWV4OyI+CgpIaTxkaXYgY2xhc3M9ImltIj48 YnI+PGJyPkluIG15ZmFjZXMgd2UgZG9uJiMzOTt0IGhhdmUgJmx0O2NvbXBvc2l0ZTpjbGllbnRC ZWhhdmlvciZndDsgdGFnLiBUaGUgcmVhc29uIGlzIHRoYXQgd2UgZG9uJiMzOTt0IGtub3cgd2hp Y2ggYXR0cmlidXRlcyB0aGlzIHRhZyBoYXMsIGhvdyBpdCBsb29rcyBsaWtlIG9yIHdoZXJlIHRo ZXJlIGlzIHNvbWUgZXhhbXBsZS48L2Rpdj48L2Jsb2NrcXVvdGU+CjxkaXY+PGJyPjwvZGl2Pgo8 ZGl2PkkgYW0gd29ya2luZyBvbiBhbiBhcnRpY2xlIGZvciBpYm0gZGV2d29ya3Mgd2hlcmUgSSBn aXZlIGFuIGV4YW1wbGUgb2YgJmx0O2NvbXBvc2l0ZTpjbGllbnRCZWhhdmlvciZndDsgLS0gSSBj YW4gc2VuZCB5b3UgdGhlIGFydGljbGUgaWYgeW91IHdhbnQsIGxldCBtZSBrbm93LiA8L2Rpdj48 L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj48YnI+WWVzLCBJIHdvdWxkIGxpa2UgdG8gaGF2ZSB0aGlz IGFydGljbGUsIGl0IHdpbGwgaGVscCBhIGxvdC4gSWYgeW91IGhhdmUgdGltZSwgcGxlYXNlIHNl bmQgaXQgdG8gbXkgbWFpbC4gVGhhbmtzIGZvciB5b3VyIGhlbHAuPGJyPgqgPC9kaXY+PGJsb2Nr cXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOiAwcHQgMHB0IDBwdCAwLjhl eDsgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2IoMjA0LCAyMDQsIDIwNCk7IHBhZGRpbmctbGVm dDogMWV4OyI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPjxkaXY+QW55d2F5LCBoZXJlknMgdGhl IGNvcmUgb2YgbXkgZXhhbXBsZS4gRmlyc3QsIGFuIGljb24gY29tcG9zaXRlIGNvbXBvbmVudDo8 L2Rpdj4KCjxkaXY+PGJyPjwvZGl2PjxkaXY+PHAgc3R5bGU9Im1hcmdpbjogMHB4OyBjb2xvcjog cmdiKDAsIDE0NSwgMTQ3KTsiPiZsdDshPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoNzgsIDE0NSwg MTQ2KTsiPkRPQ1RZUEU8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7Ij6g PC9zcGFuPmh0bWw8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAwKTsiPqA8L3NwYW4+PHNw YW4gc3R5bGU9ImNvbG9yOiByZ2IoMTQ2LCAxNDYsIDE0Nik7Ij5QVUJMSUM8L3NwYW4+PHNwYW4g c3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7Ij6gPC9zcGFuPiZxdW90Oy0vL1czQy8vRFREIFhI VE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOJnF1b3Q7PC9wPgoKPHAgc3R5bGU9Im1hcmdpbjogMHB4 OyBjb2xvcjogcmdiKDc4LCAxNDQsIDExNCk7Ij48c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAw LCAwKTsiPqAgoCCgIKCgPC9zcGFuPiZxdW90OzxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RS L3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiIHRhcmdldD0iX2JsYW5rIj5odHRw Oi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkPC9hPiZx dW90OzxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDE0NSwgMTQ3KTsiPiZndDs8L3NwYW4+PC9w PgoKPHAgc3R5bGU9Im1hcmdpbjogMHB4OyBtaW4taGVpZ2h0OiAxNXB4OyI+PGJyPjwvcD48cCBz dHlsZT0ibWFyZ2luOiAwcHg7IGNvbG9yOiByZ2IoNTcsIDUxLCAyNTUpOyI+CjxzcGFuIHN0eWxl PSJjb2xvcjogcmdiKDAsIDE0NSwgMTQ3KTsiPiZsdDs8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9y OiByZ2IoNzgsIDE0NSwgMTQ2KTsiPmh0bWw8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2Io MCwgMCwgMCk7Ij6gPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDE0NywgMzMsIDE0Nik7 Ij54bWxuczwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAwKTsiPj08L3NwYW4+ JnF1b3Q7PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgdGFyZ2V0PSJfYmxh bmsiPmh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWw8L2E+JnF1b3Q7PC9wPgoKPHAgc3R5bGU9 Im1hcmdpbjogMHB4OyBjb2xvcjogcmdiKDU3LCA1MSwgMjU1KTsiPjxzcGFuIHN0eWxlPSJjb2xv cjogcmdiKDAsIDAsIDApOyI+oCCgoDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IHJnYigxNDcs IDMzLCAxNDYpOyI+eG1sbnM6aDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAw KTsiPj08L3NwYW4+JnF1b3Q7PGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9qc2YvaHRtbCIg dGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly9qYXZhLnN1bi5jb20vanNmL2h0bWw8L2E+JnF1b3Q7PC9w PgoKPHAgc3R5bGU9Im1hcmdpbjogMHB4OyBjb2xvcjogcmdiKDU3LCA1MSwgMjU1KTsiPjxzcGFu IHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyI+oCCgoDwvc3Bhbj48c3BhbiBzdHlsZT0iY29s b3I6IHJnYigxNDcsIDMzLCAxNDYpOyI+eG1sbnM6Zjwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6 IHJnYigwLCAwLCAwKTsiPj08L3NwYW4+JnF1b3Q7PGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNv bS9qc2YvY29yZSIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly9qYXZhLnN1bi5jb20vanNmL2NvcmU8 L2E+JnF1b3Q7PC9wPgoKPHAgc3R5bGU9Im1hcmdpbjogMHB4OyBjb2xvcjogcmdiKDU3LCA1MSwg MjU1KTsiPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyI+oCCgoDwvc3Bhbj48c3Bh biBzdHlsZT0iY29sb3I6IHJnYigxNDcsIDMzLCAxNDYpOyI+eG1sbnM6Y29tcG9zaXRlPC9zcGFu PjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyI+PTwvc3Bhbj4mcXVvdDs8YSBocmVm PSJodHRwOi8vamF2YS5zdW4uY29tL2pzZi9jb21wb3NpdGUiIHRhcmdldD0iX2JsYW5rIj5odHRw Oi8vamF2YS5zdW4uY29tL2pzZi9jb21wb3NpdGU8L2E+JnF1b3Q7PHNwYW4gc3R5bGU9ImNvbG9y OiByZ2IoMCwgMTQ1LCAxNDcpOyI+Jmd0Ozwvc3Bhbj48L3A+Cgo8cCBzdHlsZT0ibWFyZ2luOiAw cHg7IG1pbi1oZWlnaHQ6IDE1cHg7Ij6goCCgPC9wPjxwIHN0eWxlPSJtYXJnaW46IDBweDsgY29s b3I6IHJnYig3OCwgMTQ1LCAxNDYpOyI+CjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDAp OyI+oCCgoDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAxNDUsIDE0Nyk7Ij4mbHQ7 PC9zcGFuPmNvbXBvc2l0ZTppbnRlcmZhY2U8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAxNDUs IDE0Nyk7Ij4mZ3Q7PC9zcGFuPjwvcD48cCBzdHlsZT0ibWFyZ2luOiAwcHg7IGNvbG9yOiByZ2Io NzgsIDE0NSwgMTQ2KTsiPgo8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAwKTsiPqAgoCCg oDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAxNDUsIDE0Nyk7Ij4mbHQ7PC9zcGFu PmNvbXBvc2l0ZTphdHRyaWJ1dGU8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAwKTsiPqA8 L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMTQ3LCAzMywgMTQ2KTsiPm5hbWU8L3NwYW4+ PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7Ij49PC9zcGFuPjxzcGFuIHN0eWxlPSJj b2xvcjogcmdiKDU3LCA1MSwgMjU1KTsiPiZxdW90O2ltYWdlJnF1b3Q7PC9zcGFuPjxzcGFuIHN0 eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyI+oDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IHJn YigxNDcsIDMzLCAxNDYpOyI+cmVxdWlyZWQ8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2Io MCwgMCwgMCk7Ij49PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDU3LCA1MSwgMjU1KTsi PiZxdW90O3RydWUmcXVvdDs8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMTQ1LCAx NDcpOyI+LyZndDs8L3NwYW4+PC9wPgoKPHAgc3R5bGU9Im1hcmdpbjogMHB4OyBtaW4taGVpZ2h0 OiAxNXB4OyI+PGJyPjwvcD48cCBzdHlsZT0ibWFyZ2luOiAwcHg7IGNvbG9yOiByZ2IoNTcsIDUx LCAyNTUpOyI+CjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyI+oCCgIKCgPC9zcGFu PjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDE0NSwgMTQ3KTsiPiZsdDs8L3NwYW4+PHNwYW4g c3R5bGU9ImNvbG9yOiByZ2IoNzgsIDE0NSwgMTQ2KTsiPmNvbXBvc2l0ZTphY3Rpb25Tb3VyY2U8 L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7Ij6gPC9zcGFuPjxzcGFuIHN0 eWxlPSJjb2xvcjogcmdiKDE0NywgMzMsIDE0Nik7Ij5uYW1lPC9zcGFuPjxzcGFuIHN0eWxlPSJj b2xvcjogcmdiKDAsIDAsIDApOyI+PTwvc3Bhbj4mcXVvdDtsaW5rJnF1b3Q7oDxzcGFuIHN0eWxl PSJjb2xvcjogcmdiKDE0NywgMzMsIDE0Nik7Ij50YXJnZXRzPC9zcGFuPjxzcGFuIHN0eWxlPSJj b2xvcjogcmdiKDAsIDAsIDApOyI+PTwvc3Bhbj4mcXVvdDsje2NsaWVudElkfTppY29uRm9ybTps aW5rJnF1b3Q7PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMTQ1LCAxNDcpOyI+LyZndDs8L3Nw YW4+PC9wPgoKPHAgc3R5bGU9Im1hcmdpbjogMHB4OyBtaW4taGVpZ2h0OiAxNXB4OyI+oCCgIKAg oCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgPC9wPjxwIHN0eWxlPSJtYXJnaW46IDBweDsgY29s b3I6IHJnYig1NywgNTEsIDI1NSk7Ij4KPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7 Ij6gIKAgoKA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMTQ1LCAxNDcpOyI+Jmx0 Ozwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IHJnYig3OCwgMTQ1LCAxNDYpOyI+Y29tcG9zaXRl OmNsaWVudEJlaGF2aW9yPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyI+ oDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IHJnYigxNDcsIDMzLCAxNDYpOyI+bmFtZTwvc3Bh bj48c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAwKTsiPj08L3NwYW4+JnF1b3Q7Y2xpY2sm cXVvdDugPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMTQ3LCAzMywgMTQ2KTsiPnRhcmdldHM8L3Nw YW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7Ij49PC9zcGFuPiZxdW90OyN7Y2xp ZW50SWR9Omljb25Gb3JtOmxpbmsmcXVvdDs8L3A+Cgo8cCBzdHlsZT0ibWFyZ2luOiAwcHg7IGNv bG9yOiByZ2IoNTcsIDUxLCAyNTUpOyI+oKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKCgPHNwYW4g c3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7Ij6goDwvc3Bhbj6goDxzcGFuIHN0eWxlPSJjb2xv cjogcmdiKDE0NywgMzMsIDE0Nik7Ij5ldmVudDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IHJn YigwLCAwLCAwKTsiPj08L3NwYW4+JnF1b3Q7YWN0aW9uJnF1b3Q7PHNwYW4gc3R5bGU9ImNvbG9y OiByZ2IoMCwgMTQ1LCAxNDcpOyI+LyZndDs8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2Io MCwgMCwgMCk7Ij6goCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgPC9zcGFuPjwvcD4KCjxwIHN0 eWxlPSJtYXJnaW46IDBweDsgY29sb3I6IHJnYig3OCwgMTQ1LCAxNDYpOyI+PHNwYW4gc3R5bGU9 ImNvbG9yOiByZ2IoMCwgMCwgMCk7Ij6gIKCgPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdi KDAsIDE0NSwgMTQ3KTsiPiZsdDsvPC9zcGFuPmNvbXBvc2l0ZTppbnRlcmZhY2U8c3BhbiBzdHls ZT0iY29sb3I6IHJnYigwLCAxNDUsIDE0Nyk7Ij4mZ3Q7PC9zcGFuPjwvcD4KCjxwIHN0eWxlPSJt YXJnaW46IDBweDsgbWluLWhlaWdodDogMTVweDsiPjxicj48L3A+PHAgc3R5bGU9Im1hcmdpbjog MHB4OyBjb2xvcjogcmdiKDc4LCAxNDUsIDE0Nik7Ij4KPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2Io MCwgMCwgMCk7Ij6gIKCgPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDE0NSwgMTQ3 KTsiPiZsdDs8L3NwYW4+Y29tcG9zaXRlOmltcGxlbWVudGF0aW9uPHNwYW4gc3R5bGU9ImNvbG9y OiByZ2IoMCwgMTQ1LCAxNDcpOyI+Jmd0Ozwvc3Bhbj48L3A+PHAgc3R5bGU9Im1hcmdpbjogMHB4 OyBjb2xvcjogcmdiKDU3LCA1MSwgMjU1KTsiPgoKPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwg MCwgMCk7Ij6gIKAgoKA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMTQ1LCAxNDcp OyI+Jmx0Ozwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IHJnYig3OCwgMTQ1LCAxNDYpOyI+ZGl2 PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyI+oDwvc3Bhbj48c3BhbiBz dHlsZT0iY29sb3I6IHJnYigxNDcsIDMzLCAxNDYpOyI+aWQ8L3NwYW4+PHNwYW4gc3R5bGU9ImNv bG9yOiByZ2IoMCwgMCwgMCk7Ij49PC9zcGFuPiZxdW90OyN7Y2MuY2xpZW50SWR9JnF1b3Q7PHNw YW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMTQ1LCAxNDcpOyI+Jmd0Ozwvc3Bhbj48L3A+Cgo8cCBz dHlsZT0ibWFyZ2luOiAwcHg7IG1pbi1oZWlnaHQ6IDE1cHg7Ij6goCCgIKA8L3A+PHAgc3R5bGU9 Im1hcmdpbjogMHB4OyI+CjxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTogcHJlOyI+CTwvc3Bhbj6g oDxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTogcHJlOyI+CTwvc3Bhbj6gIKCgPHNwYW4gc3R5bGU9 ImNvbG9yOiByZ2IoMCwgMTQ1LCAxNDcpOyI+Jmx0Ozwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6 IHJnYig3OCwgMTQ1LCAxNDYpOyI+aDpmb3JtPC9zcGFuPqA8c3BhbiBzdHlsZT0iY29sb3I6IHJn YigxNDcsIDMzLCAxNDYpOyI+aWQ8L3NwYW4+PTxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDU3LCA1 MSwgMjU1KTsiPiZxdW90O2ljb25Gb3JtJnF1b3Q7PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjog cmdiKDAsIDE0NSwgMTQ3KTsiPiZndDs8L3NwYW4+PC9wPgoKPHAgc3R5bGU9Im1hcmdpbjogMHB4 OyI+PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOiBwcmU7Ij4JCQk8L3NwYW4+oCCgIKCgPHNwYW4g c3R5bGU9ImNvbG9yOiByZ2IoMCwgMTQ1LCAxNDcpOyI+Jmx0Ozwvc3Bhbj48c3BhbiBzdHlsZT0i Y29sb3I6IHJnYig3OCwgMTQ1LCAxNDYpOyI+aDpjb21tYW5kTGluazwvc3Bhbj6gPHNwYW4gc3R5 bGU9ImNvbG9yOiByZ2IoMTQ3LCAzMywgMTQ2KTsiPmlkPC9zcGFuPj08c3BhbiBzdHlsZT0iY29s b3I6IHJnYig1NywgNTEsIDI1NSk7Ij4mcXVvdDtsaW5rJnF1b3Q7PC9zcGFuPqA8c3BhbiBzdHls ZT0iY29sb3I6IHJnYigxNDcsIDMzLCAxNDYpOyI+aW1tZWRpYXRlPC9zcGFuPj08c3BhbiBzdHls ZT0iY29sb3I6IHJnYig1NywgNTEsIDI1NSk7Ij4mcXVvdDt0cnVlJnF1b3Q7PC9zcGFuPjxzcGFu IHN0eWxlPSJjb2xvcjogcmdiKDAsIDE0NSwgMTQ3KTsiPiZndDs8L3NwYW4+PC9wPgoKPHAgc3R5 bGU9Im1hcmdpbjogMHB4OyBjb2xvcjogcmdiKDU3LCA1MSwgMjU1KTsiPjxzcGFuIHN0eWxlPSJj b2xvcjogcmdiKDAsIDAsIDApOyI+PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOiBwcmU7Ij4JCQk8 L3NwYW4+oCCgIKAgoKA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMTQ1LCAxNDcp OyI+Jmx0Ozwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IHJnYig3OCwgMTQ1LCAxNDYpOyI+aDpn cmFwaGljSW1hZ2U8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7Ij6gPC9z cGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDE0NywgMzMsIDE0Nik7Ij52YWx1ZTwvc3Bhbj48 c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAwKTsiPj08L3NwYW4+JnF1b3Q7I3tjYy5hdHRy cy5pbWFnZX0mcXVvdDs8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAxNDUsIDE0Nyk7Ij4vJmd0 Ozwvc3Bhbj48L3A+Cgo8cCBzdHlsZT0ibWFyZ2luOiAwcHg7IGNvbG9yOiByZ2IoNzgsIDE0NSwg MTQ2KTsiPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyI+PHNwYW4gc3R5bGU9Indo aXRlLXNwYWNlOiBwcmU7Ij4JCQk8L3NwYW4+oCCgIKCgPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xv cjogcmdiKDAsIDE0NSwgMTQ3KTsiPiZsdDsvPC9zcGFuPmg6Y29tbWFuZExpbms8c3BhbiBzdHls ZT0iY29sb3I6IHJnYigwLCAxNDUsIDE0Nyk7Ij4mZ3Q7PC9zcGFuPjwvcD4KCjxwIHN0eWxlPSJt YXJnaW46IDBweDsiPjxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTogcHJlOyI+CQk8L3NwYW4+oCCg IKCgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMTQ1LCAxNDcpOyI+Jmx0Oy88L3NwYW4+PHNw YW4gc3R5bGU9ImNvbG9yOiByZ2IoNzgsIDE0NSwgMTQ2KTsiPmg6Zm9ybTwvc3Bhbj48c3BhbiBz dHlsZT0iY29sb3I6IHJnYigwLCAxNDUsIDE0Nyk7Ij4mZ3Q7PC9zcGFuPjwvcD4KCjxwIHN0eWxl PSJtYXJnaW46IDBweDsgbWluLWhlaWdodDogMTVweDsiPjxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFj ZTogcHJlOyI+CTwvc3Bhbj6goCCgPC9wPgo8cCBzdHlsZT0ibWFyZ2luOiAwcHg7Ij48c3BhbiBz dHlsZT0id2hpdGUtc3BhY2U6IHByZTsiPgk8L3NwYW4+oCCgoDxzcGFuIHN0eWxlPSJjb2xvcjog cmdiKDAsIDE0NSwgMTQ3KTsiPiZsdDsvPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDc4 LCAxNDUsIDE0Nik7Ij5kaXY8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMTQ1LCAx NDcpOyI+Jmd0Ozwvc3Bhbj48L3A+Cgo8cCBzdHlsZT0ibWFyZ2luOiAwcHg7IGNvbG9yOiByZ2Io NzgsIDE0NSwgMTQ2KTsiPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyI+oCCgoDwv c3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAxNDUsIDE0Nyk7Ij4mbHQ7Lzwvc3Bhbj5j b21wb3NpdGU6aW1wbGVtZW50YXRpb248c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAxNDUsIDE0 Nyk7Ij4mZ3Q7PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyI+oKAgoDwv c3Bhbj48L3A+Cgo8cCBzdHlsZT0ibWFyZ2luOiAwcHg7IGNvbG9yOiByZ2IoNzgsIDE0NSwgMTQ2 KTsiPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDE0NSwgMTQ3KTsiPiZsdDsvPC9zcGFuPmh0 bWw8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAxNDUsIDE0Nyk7Ij4mZ3Q7PC9zcGFuPjwvcD4K PHAgc3R5bGU9Im1hcmdpbjogMHB4OyBjb2xvcjogcmdiKDc4LCAxNDUsIDE0Nik7Ij48Zm9udCBj b2xvcj0iIzAwMDAwMCIgZmFjZT0iYXJpYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IHNtYWxs OyI+PGZvbnQgY29sb3I9IiMwMDkxOTMiIGZhY2U9Ik1vbmFjbyIgc2l6ZT0iMyI+PHNwYW4gc3R5 bGU9ImZvbnQtc2l6ZTogMTFweDsiPjxicj4KPC9zcGFuPjwvZm9udD48L3NwYW4+PC9mb250Pjwv cD48L2Rpdj48ZGl2PlRoZSAmbHQ7Y29tcG9zaXRlOmNsaWVudEJlaGF2aW9yJmd0OyB0YWcgc3Bl Y2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBldmVudCAoY2xpY2spLCB0aGUgdGFyZ2V0KHMpIGZvciB0 aGUgZXZlbnQgKCN7Y2xpZW50SWR9Omljb25Gb3JtOmxpbmspLCBhbmQgdGhlIGNvbXBvbmVudCBl dmVudCAoYWN0aW9uKS6gPC9kaXY+Cgo8ZGl2Pjxicj48L2Rpdj48ZGl2PlRoZSBwcmVjZWRpbmcg bWFya3VwIGlzIGluIHJlc291cmNlcy91dGlsL2ljb24ueGh0bWwsIHNvIHlvdSB1c2UgYW4gaWNv biBsaWtlIHRoaXM6PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj48cCBzdHlsZT0ibWFyZ2luOiAw cHg7IGNvbG9yOiByZ2IoNTcsIDUxLCAyNTUpOyI+CjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAs IDAsIDApOyI+oKAgoCCgIKA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMTQ1LCAx NDcpOyI+Jmx0Ozwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IHJnYig3OCwgMTQ1LCAxNDYpOyI+ dXRpbDppY29uPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyI+oDwvc3Bh bj48c3BhbiBzdHlsZT0iY29sb3I6IHJnYigxNDcsIDMzLCAxNDYpOyI+aWQ8L3NwYW4+PHNwYW4g c3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7Ij49PC9zcGFuPiZxdW90O21pbnVzJnF1b3Q7PHNw YW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7Ij6gPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xv cjogcmdiKDE0NywgMzMsIDE0Nik7Ij5pbWFnZTwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IHJn YigwLCAwLCAwKTsiPj08L3NwYW4+JnF1b3Q7I3tyZXNvdXJjZVsmIzM5O2ltYWdlczptaW51cy5n aWYmIzM5O119JnF1b3Q7PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMTQ1LCAxNDcpOyI+Jmd0 Ozwvc3Bhbj48L3A+Cgo8cCBzdHlsZT0ibWFyZ2luOiAwcHg7IGNvbG9yOiByZ2IoNTcsIDUxLCAy NTUpOyI+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7Ij6gIKAgoCCgIKCgPC9zcGFu PjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDE0NSwgMTQ3KTsiPiZsdDs8L3NwYW4+PHNwYW4g c3R5bGU9ImNvbG9yOiByZ2IoNzgsIDE0NSwgMTQ2KTsiPmY6YWpheDwvc3Bhbj48c3BhbiBzdHls ZT0iY29sb3I6IHJnYigwLCAwLCAwKTsiPqA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2Io MTQ3LCAzMywgMTQ2KTsiPmV2ZW50PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAs IDApOyI+PTwvc3Bhbj4mcXVvdDtjbGljayZxdW90OzxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAs IDAsIDApOyI+oDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IHJnYigxNDcsIDMzLCAxNDYpOyI+ cmVuZGVyPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyI+PTwvc3Bhbj4m cXVvdDs6cmVhZG91dCA6Zm9udFByZXZpZXcmcXVvdDs8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigw LCAxNDUsIDE0Nyk7Ij4vJmd0Ozwvc3Bhbj48L3A+Cgo8cCBzdHlsZT0ibWFyZ2luOiAwcHg7IGNv bG9yOiByZ2IoNTcsIDUxLCAyNTUpOyI+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7 Ij6gIKAgoCCgIKCgPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDE0NSwgMTQ3KTsi PiZsdDs8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoNzgsIDE0NSwgMTQ2KTsiPmY6YWN0 aW9uTGlzdGVuZXI8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7Ij6gPC9z cGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDE0NywgMzMsIDE0Nik7Ij5mb3I8L3NwYW4+PHNw YW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7Ij49PC9zcGFuPiZxdW90O2xpbmsmcXVvdDs8 c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAwKTsiPqA8L3NwYW4+PHNwYW4gc3R5bGU9ImNv bG9yOiByZ2IoMTQ3LCAzMywgMTQ2KTsiPnR5cGU8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiBy Z2IoMCwgMCwgMCk7Ij49PC9zcGFuPiZxdW90O2NvbS5jbGFyaXR5LkRpc2tJY29uTGlzdGVuZXIm cXVvdDs8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAxNDUsIDE0Nyk7Ij4vJmd0Ozwvc3Bhbj48 L3A+Cgo8cCBzdHlsZT0ibWFyZ2luOiAwcHg7IGNvbG9yOiByZ2IoNzgsIDE0NSwgMTQ2KTsiPjxz cGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyI+oCCgIKAgoKA8L3NwYW4+PHNwYW4gc3R5 bGU9ImNvbG9yOiByZ2IoMCwgMTQ1LCAxNDcpOyI+Jmx0Oy88L3NwYW4+dXRpbDppY29uPHNwYW4g c3R5bGU9ImNvbG9yOiByZ2IoMCwgMTQ1LCAxNDcpOyI+Jmd0Ozwvc3Bhbj48L3A+CjxkaXY+PGZv bnQgY29sb3I9IiMwMDkxOTMiIGZhY2U9Ik1vbmFjbyIgc2l6ZT0iMyI+PHNwYW4gc3R5bGU9ImZv bnQtc2l6ZTogMTFweDsiPjxicj48L3NwYW4+PC9mb250PjwvZGl2PjwvZGl2PjxkaXY+Rm9yIHRo ZSBjbGljayBldmVudCBpbiB0aGUgaWNvbiwgSlNGIG1ha2VzIGFuIEFqYXggY2FsbCB0byB0aGUg c2VydmVyLCBhbmQgd2hlbiB0aGUgY2FsbCByZXR1cm5zLCBpdCByZW5kZXJzIHJlYWRvdXQgYW5k IGZvbnRQcmV2aWV3IGNvbXBvbmVudHMuIFRoZSBjbGljayBldmVudCBpcyBhc3NvY2lhdGVkIHdp dGggdGhlIGFjdGlvbiBldmVudCBvZiB0aGUgdGFyZ2V0ICh0aGUgbGluaykuIFNvLCB3aGVuIGFu IGFjdGlvbiBldmVudCBvY2N1cnMgaW4gdGhlIGxpbmssIEpTRiBzZW5kIGFuIEFqYXggY2FsbCB0 byB0aGUgc2VydmVyLjwvZGl2Pgo8ZGl2IGNsYXNzPSJpbSI+CjxkaXY+oDwvZGl2PjxibG9ja3F1 b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjogMHB0IDBwdCAwcHQgMC44ZXg7 IGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiKDIwNCwgMjA0LCAyMDQpOyBwYWRkaW5nLWxlZnQ6 IDFleDsiPiBJbiB0aGVvcnkgaXQgd29ya3MgbGlrZSAmbHQ7Y29tcG9zaXRlOmFjdGlvblNvdXJj ZSZndDssICZsdDtjb21wb3NpdGU6dmFsdWVIb2xkZXImZ3Q7LCAmbHQ7Y29tcG9zaXRlOmVkaXRh YmxlVmFsdWVIb2xkZXImZ3Q7LjwvYmxvY2txdW90ZT4KCjxibG9ja3F1b3RlIGNsYXNzPSJnbWFp bF9xdW90ZSIgc3R5bGU9Im1hcmdpbjogMHB0IDBwdCAwcHQgMC44ZXg7IGJvcmRlci1sZWZ0OiAx cHggc29saWQgcmdiKDIwNCwgMjA0LCAyMDQpOyBwYWRkaW5nLWxlZnQ6IDFleDsiPkkgcG9pbnRl ZCB0aGlzIGlzc3VlIG11bHRpcGxlIHRpbWVzIChyZWFsbHkgYSBsb3Qgb2YgdGltZXMgYnV0IGl0 IHNlZW1zIG5vYm9keSB0b29rIHRoYXQgc2VyaW91c2x5KS4gSnVzdCB0YWtlIGEgbG9vayBhdDqg PC9ibG9ja3F1b3RlPgoKPGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFy Z2luOiAwcHQgMHB0IDBwdCAwLjhleDsgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2IoMjA0LCAy MDQsIDIwNCk7IHBhZGRpbmctbGVmdDogMWV4OyI+Cjxicj48YSBocmVmPSJodHRwOi8vbWFya21h aWwub3JnL21lc3NhZ2UvZHhscG9hM3FndWw3dXVucz9xPWNvbXBvc2l0ZTpjbGllbnRCZWhhdmlv ciIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly9tYXJrbWFpbC5vcmcvbWVzc2FnZS9keGxwb2EzcWd1 bDd1dW5zP3E9Y29tcG9zaXRlOmNsaWVudEJlaGF2aW9yPC9hPjxicj48YnI+QXMgc29vbiBhcyBh bnkgZG9jdW1lbnRhdGlvbiBpcyBhdmFpbGFibGUgb24gbW9qYXJyYSBqYXZhZG9jIEkmIzM5O2xs IGRvIHRoZSBuZWNlc3Nhcnkgc3R1ZmYgb24gbXlmYWNlcy48YnI+Cgo8L2Jsb2NrcXVvdGU+PGRp dj48YnI+PC9kaXY+PC9kaXY+PGRpdj5UaGlzIHJlYWxseSBuZWVkcyB0byBiZSBhZGRyZXNzZWQg YXNhcCwgc28gdGhlIGZlYXR1cmUgZG9lcyBub3QgYmVjb21lIE1vamFycmEtZGVwZW5kZW50LCB3 aGljaCBncmVhdGx5IGxpbWl0cyBpdHMgdXNlZnVsbmVzcy4gQmVzaWRlcyB0aGUgamF2YWRvYywg aXQgbmVlZHMgdG8gYmUgbWVudGlvbmVkIGluIHRoZSBzcGVjLjwvZGl2PgoKPGRpdj48YnI+PC9k aXY+PGRpdj5JIHRoaW5rIHdob2V2ZXIgZG9jdW1lbnRlZCB0aGUgY29tcG9zaXRlIGxpYnJhcnkg c2hvdWxkIGNvbWUgZm9yd2FyZCBhbmQgdXBkYXRlIHRoZSBQREwgZG9jcyBhbmQgc3BlYy4gQW5k IGlmIEVkIHdvbpJ0IGRvIGl0LCBJIG1pZ2h0IGhlbHAgb3V0LiA6KTwvZGl2PjxkaXY+PGJyPjwv ZGl2Pjxmb250IGNvbG9yPSIjODg4ODg4Ij48ZGl2Pjxicj48L2Rpdj4KPGRpdj5kYXZpZDwvZGl2 PjwvZm9udD48ZGl2PjxkaXY+PC9kaXY+PGRpdiBjbGFzcz0iaDUiPjxkaXY+Cjxicj48L2Rpdj48 ZGl2Pjxicj48L2Rpdj48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJn aW46IDBwdCAwcHQgMHB0IDAuOGV4OyBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYigyMDQsIDIw NCwgMjA0KTsgcGFkZGluZy1sZWZ0OiAxZXg7Ij4KPGJyPnJlZ2FyZHMsPGJyPjxicj5MZW9uYXJk byBVcmliZTxicj48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPjIwMTAvNS8zIERhdmlkIEdl YXJ5IDxzcGFuIGRpcj0ibHRyIj4mbHQ7PGEgaHJlZj0ibWFpbHRvOmNsYXJpdHkudHJhaW5pbmdA Z21haWwuY29tIiB0YXJnZXQ9Il9ibGFuayI+Y2xhcml0eS50cmFpbmluZ0BnbWFpbC5jb208L2E+ Jmd0Ozwvc3Bhbj48ZGl2PjxkaXY+PC9kaXY+Cgo8ZGl2Pjxicj48YmxvY2txdW90ZSBjbGFzcz0i Z21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46IDBwdCAwcHQgMHB0IDAuOGV4OyBib3JkZXItbGVm dDogMXB4IHNvbGlkIHJnYigyMDQsIDIwNCwgMjA0KTsgcGFkZGluZy1sZWZ0OiAxZXg7Ij4KPGRp dj5UaGFua3MsIFJvZ2VyITwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+ ZGF2aWQ8L2Rpdj48ZGl2Pjxicj48L2Rpdj4yMDEwLzUvMyBSb2dlciBLaXRhaW4gPHNwYW4gZGly PSJsdHIiPiZsdDs8YSBocmVmPSJtYWlsdG86cm9nZXIua2l0YWluQG9yYWNsZS5jb20iIHRhcmdl dD0iX2JsYW5rIj5yb2dlci5raXRhaW5Ab3JhY2xlLmNvbTwvYT4mZ3Q7PC9zcGFuPjxkaXY+CgoK PGRpdj48L2Rpdj48ZGl2Pjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+CjxibG9ja3F1b3Rl IGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjogMHB0IDBwdCAwcHQgMC44ZXg7IGJv cmRlci1sZWZ0OiAxcHggc29saWQgcmdiKDIwNCwgMjA0LCAyMDQpOyBwYWRkaW5nLWxlZnQ6IDFl eDsiPgoKCiAgCgo8ZGl2IGJnY29sb3I9IiNmZmZmZmYiIHRleHQ9IiMwMDAwMDAiPgpJIHRoaW5r IHRoaXMgd2FzIGFuIG92ZXJzaWdodCBzaW5jZSB0aGlzIHdhcyBvbmUgb2YgdGhlIGxhc3QgcmVt YWluaW5nCnNwZWMgYXJlYXMgdGhhdCB3ZW50IGluLjxicj4KSSB3aWxsIGZpbGUgYSBzcGVjIGlz c3VlIG9uIHRoaXMuPGJyPgpUaGFua3MgZm9yIGNhdGNoaW5nIGl0Ljxicj4KPGJyPgotcm9nZXI8 ZGl2PjxkaXY+PC9kaXY+PGRpdj48YnI+Cjxicj4KT24gNS8zLzEwIDI6MzEgUE0sIERhdmlkIEdl YXJ5IHdyb3RlOgo8YmxvY2txdW90ZSB0eXBlPSJjaXRlIj4KICAKVGhlcmUgaXMgYSAmbHQ7Y29t cG9zaXRlOmNsaWVudEJlaGF2aW9yJmd0OyB0YWcgaW4gdGhlIDIuMCB2ZXJzaW9uIG9mCkpTRiB0 aGF0IGNvbWVzIHdpdGggR2xhc3NGaXNoLCBhbmQgaXQgYXBwZWFycyB0byB3b3JrIGFzIGFkdmVy dGlzZWQgYnkKQWxleGFuZHIgYW5kIEFuZHkgYmVsb3cuCiAgPGRpdj48YnI+CiAgPC9kaXY+CiAg PGRpdj5CdXQsIGFzIEFsZXhhbmRyIHBvaW50cyBvdXQsIGl0knMgbm90IGRvY3VtZW50ZWQgaW4g dGhlIFBETApkb2NzLCBub3IgY291bGQgSSBmaW5kIGFueSBtZW50aW9uIG9mIGl0IGluIHRoZSBz cGVjIChvciBFZJJzIGJvb2ssCmVpdGhlcikuPC9kaXY+CiAgPGRpdj48YnI+CiAgPC9kaXY+CiAg PGRpdj5UaGlzIGlzIGEgdml0YWwgdGFnIHRoYXQgbGV0cyBwYWdlIGF1dGhvcnMgYXR0YWNoIGFq YXgKZnVuY3Rpb25hbGl0eSB0byBjb21wb25lbnRzIHdpdGhpbiBjb21wb3NpdGUgY29tcG9uZW50 cy4gSSBzZWUgbm8KcmVhc29uIHdoeSBpdCBzaG91bGQgbm90IGJlIGRvY3VtZW50ZWQuPC9kaXY+ CiAgPGRpdj48YnI+CiAgPC9kaXY+CiAgPGRpdj5Eb2VzIGFueW9uZSBrbm93IHdoeSB0aGlzIHRh ZyB3YXMgbm90IGRvY3VtZW50ZWQgaW4gdGhlIGZpcnN0CnBsYWNlLCBvciB3aGF0IHRoZSBwbGFu cyBhcmUgZm9yIGl0cyBmdXR1cmU/IEFueW9uZSBrbm93IGlmIGl0IHdvcmtzCndpdGggTXlGYWNl cyAyLjA/PC9kaXY+CiAgPGRpdj48YnI+CiAgPC9kaXY+CiAgPGRpdj5JZiB0aGVyZZJzIG5vdCBh IGNvbXBlbGxpbmcgcmVhc29uIGZvciBibGFja2xpc3RpbmcgaXQgZnJvbSB0aGUKZG9jcywgY2Fu IHdlIGRvY3VtZW50IGl0PzwvZGl2PgogIDxkaXY+PGJyPgogIDwvZGl2PgogIDxkaXY+VGhhbmtz LDwvZGl2PgogIDxkaXY+PGJyPgogIDwvZGl2PgogIDxkaXY+PGJyPgogIDwvZGl2PgogIDxkaXY+ ZGF2aWQ8YnI+CiAgPGRpdj48YnI+CiAgPC9kaXY+CiAgPGRpdj48YnI+CiAgPGJyPgogIDxkaXY+ MjAwOS81LzI2IEFsZXhhbmRyIFNtaXJub3YgPHNwYW4+Jmx0OzxhIGhyZWY9Im1haWx0bzphc21p cm5vdkBleGFkZWwuY29tIiB0YXJnZXQ9Il9ibGFuayI+YXNtaXJub3ZAZXhhZGVsLmNvbTwvYT4m Z3Q7PC9zcGFuPjxicj4KICA8YmxvY2txdW90ZT5TdXJlLCB0aGUgY29tcG9zaXRlIGNsaWVudCBl dmVudCB0YWdzIGFyZSBub3QgaW5jbHVkZWQgaW4KdGhlIFBETCBkb2MuPGJyPgpUaGVyZSBpcyBv bmUgoCCgIKAgoCCgIKAmbHQ7Y29tcG9zaXRlOmNsaWVudEJlaGF2aW9yJmd0OyB0YWcgd2l0aAph dHRyaWJ1dGVzOiAmIzM5O25hbWUmIzM5OyAtPGJyPgp0aGUgdmlydHVhbCBldmVudCBuYW1lIHRo YXQgY29tcG9zaXRlIGNvbXBvbmVudCBoYXMuPGJyPgomIzM5O2RlZmF1bHQmIzM5OyAmcXVvdDt0 cnVlL2ZhbHNlJnF1b3Q7IGRlZmluZXMgdGhlIGRlZmF1bHQgZXZlbnQgdGhhdCBpcyBlbmNsb3Nl ZDxicj4KJmx0O2Y6YWpheCZndDsgdGFnIHNlcnZlcyBpZiAmIzM5O2V2ZW50JiMzOTsgYXR0cmli dXRlIHdhcyBvbWl0ZWQuPGJyPgomIzM5O2V2ZW50JiMzOTsgLSB0aGUgcmVhbCBldmVudCBuYW1l IGZvciB0YXJnZXQgY29tcG9uZW50Ljxicj4KJiMzOTt0YXJnZXRzJiMzOTsgLSBzcGFjZS1kZWxp bWl0ZWQgbGlzdCBvZiBjb21wb25lbnQgaWQmIzM5O3MgZm9yIHdoaWNoIGNvbXBvc2l0ZTxicj4K Y29tcG9uZW50IGJlaGF2aW9yIG9yICZsdDtmOmFqYXgmZ3Q7IHRhZyB3aWxsIGJlIHJlZGlyZWN0 ZWQuPGJyPgogICAgPGJyPgpUaGUgbW9kZWwgd2l0aCAmIzM5O2ZvciYjMzk7IGF0dHJpYnV0ZSB3 YXMgdGhlIGZpcnN0IGltcGxlbWVudGF0aW9uIGJ1dCBpdCB3YXM8YnI+CnJlcGxhY2VkIHdpdCAm IzM5O3ZpcnR1YWwmIzM5OyBldmVudCBtb2RlbC48YnI+CiAgICA8ZGl2PgogICAgPGRpdj48YnI+ CkFuZHkgU2Nod2FydHogd3JvdGU6PGJyPgomZ3Q7IERhdmlkIC08YnI+CiZndDs8YnI+CiZndDsg RGF2aWQgR2Vhcnkgd3JvdGUgT24gNS8yNC8yMDA5IDU6NTUgUE0gRVQ6PGJyPgomZ3Q7Jmd0OyBG b3IgSlNGIDIsIHdlIGFkZGVkIGEgJnF1b3Q7Zm9yJnF1b3Q7IGF0dHJpYnV0ZSB0byBmOmFjdGlv bkxpc3RlbmVyLDxicj4KJmd0OyZndDsgZjpjb252ZXJ0ZXIsIGV0Yy4sIGJ1dCB3ZSBkb24mIzM5 O3QgaGF2ZSBhICZxdW90O2ZvciZxdW90OyBhdHRyaWJ1dGUgZm9yCiZsdDtmOmFqYXgmZ3Q7Ljxi cj4KJmd0OyZndDsgQUZBSUNULCB0aGF0IG1lYW5zIHRoYXQgYWx0aG91Z2ggeW91IGNhbiBhdHRh Y2ggbGlzdGVuZXJzLAp2YWxpZGF0b3JzLDxicj4KJmd0OyZndDsgY29udmVydGVycywgZXRjLiB0 byBhIGNvbXBvbmVudCBjb250YWluZWQgaW4gYSBjb21wb3NpdGUKY29tcG9uZW50LDxicj4KJmd0 OyZndDsgeW91IGNhbm5vdCBhdHRhY2ggQWpheCBmdW5jdGlvbmFsaXR5Ljxicj4KJmd0OyZndDs8 YnI+CiZndDsmZ3Q7IFdoeSBpcyB0aGF0PyBJcyBpdCBhbiBvdmVyc2lnaHQsIG9yIGlzIHRoZXJl IHNvbWUgY29tcGVsbGluZwp0ZWNobmljYWw8YnI+CiZndDsmZ3Q7IHJlYXNvbiB0byBkaXNhbGxv dyBhZGRpbmcgQWpheCBiZWhhdmlvciB0byBjb21wb25lbnRzCmNvbnRhaW5lZCBpbjxicj4KJmd0 OyZndDsgY29tcG9zaXRlcz88YnI+CiZndDs8YnI+CiZndDsgV2UgZGVmaW5pdGVseSBpbnRlbmRl ZCB0byBzdXBwb3J0IHRoaXMsIHRob3VnaCBpbnN0ZWFkIG9mIGV4cG9zaW5nCmE8YnI+CiZndDsg JnF1b3Q7Zm9yJnF1b3Q7IGF0dHJpYnV0ZSBvbiAmbHQ7ZjphamF4Jmd0Oywgd2Ugd2FudGVkIHRv IGxldmVyYWdlIHRoZSBmYWN0CnRoYXQ8YnI+CiZndDsgYmVoYXZpb3JzIGFscmVhZHkgaGF2ZSBh IHRhcmdldGluZyBtZWNoYW5pc20gaW4gdGhlICZxdW90O2V2ZW50JnF1b3Q7IG5hbWUuCqBUaGU8 YnI+CiZndDsgaWRlYSB3YXMgdGhhdCBhIGNvbXBvc2l0ZSBjb21wb25lbnQgd291bGQsIGxpa2Ug YW55IG90aGVyPGJyPgomZ3Q7IENsaWVudEJlaGF2aW9ySG9sZGVyLCBleHBvc2UgYSBzZXQgb2Yg bG9naWNhbCBldmVudCBuYW1lcyB0aGF0CmJlaGF2aW9yczxicj4KJmd0OyBjYW4gYmUgYXR0YWNo ZWQgdG8uIKBTbywgZm9yIGV4YW1wbGUsIGFzc3VtaW5nIGEgY29tcG9zaXRlCmNvbXBvbmVudDxi cj4KJmd0OyBpbmNsdWRlZCAmcXVvdDtPSyZxdW90OyBhbmQgJnF1b3Q7Q2FuY2VsJnF1b3Q7IGJ1 dHRvbnMgYW5kIHdhbnRlZCB0byBhbGxvdyB0aGUgdXNlciB0bzxicj4KJmd0OyBhdHRhY2ggYWN0 aW9uIGJlaGF2aW9ycyB0byB0aGVzZSwgdGhlIGNvbXBvc2l0ZSBjb21wb25lbnQgbWlnaHQKc3Vy ZmFjZTxicj4KJmd0OyAmcXVvdDtva0FjdGlvbiZxdW90OyBhbmQgJnF1b3Q7Y2FuY2VsQWN0aW9u JnF1b3Q7IGV2ZW50IG5hbWVzLCBhbGxvd2luZyB0aGUgcGFnZQphdXRob3IgdG8gZG86PGJyPgom Z3Q7PGJyPgomZ3Q7IKAmbHQ7Zm9vOnNvbWVDb21wb3NpdGUmZ3Q7PGJyPgomZ3Q7IKAgoCZsdDtm OmFqYXggZXZlbnQ9JnF1b3Q7b2tBY3Rpb24mcXVvdDsvJmd0Ozxicj4KJmd0OyCgIKAmbHQ7Zjph amF4IGV2ZW50PSZxdW90O2NhbmNlbEFjdGlvbiZxdW90Oy8mZ3Q7PGJyPgomZ3Q7IKAmbHQ7L2Zv bzpzb21lQ29tcG9zaXRlJmd0Ozxicj4KJmd0Ozxicj4KJmd0OyBJIGtub3cgdGhhdCBBbGV4YW5k ZXIgZGlkIHRoZSBpbXBsZW1lbnRhdGlvbiB3b3JrIHRvIGdldCB0aGlzIHVwCmFuZDxicj4KJmd0 OyBydW5uaW5nLiCgSG93ZXZlciwgSSBkbyBub3Qgc2VlIGFueSBwZGxkb2MgZm9yIHRoZSBjb21w b3NpdGUgdGFnCnRoYXQ8YnI+CiZndDsgdGhlIGNvbXBvc2l0ZSBjb21wb25lbnQgYXV0aG9yIHVz ZXMgdG8gc3BlY2lmeSB0aGUgc3VwcG9ydGVkIGNsaWVudDxicj4KJmd0OyBiZWhhdmlvciBldmVu dCBuYW1lcyAoY29tcG9zaXRlOmNsaWVudEJlaGF2aW9yIEkgYmVsaWV2ZSkuPGJyPgomZ3Q7PGJy PgomZ3Q7IEFsZXgsIFJvZ2VyIC08YnI+CiZndDs8YnI+CiZndDsgRGlkIHRoaXMgbWFrZSBpdCBp bnRvIDIuMD88YnI+CiZndDs8YnI+CiZndDsgQW5keTxicj4KJmd0Ozxicj4KJmd0OyZndDs8YnI+ CiZndDsmZ3Q7IFRoYW5rcyw8YnI+CiZndDsmZ3Q7PGJyPgomZ3Q7Jmd0Ozxicj4KJmd0OyZndDsg ZGF2aWQ8YnI+CiAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvYmxvY2txdW90ZT4KICA8L2Rpdj4K ICA8YnI+CiAgPC9kaXY+CiAgPC9kaXY+CjwvYmxvY2txdW90ZT4KPGJyPgo8YnI+CjwvZGl2Pjwv ZGl2PjxwcmUgY29scz0iNzIiPi0tIAo8YSBocmVmPSJtYWlsdG86cm9nZXIua2l0YWluQG9yYWNs ZS5jb20iIHRhcmdldD0iX2JsYW5rIj5yb2dlci5raXRhaW5Ab3JhY2xlLmNvbTwvYT4KPGEgaHJl Zj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9yb2dlcmswOSIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8v dHdpdHRlci5jb20vcm9nZXJrMDk8L2E+CjxhIGhyZWY9Imh0dHA6Ly93d3cuamF2YS5uZXQvYmxv Z3Mvcm9nZXJrIiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL3d3dy5qYXZhLm5ldC9ibG9ncy9yb2dl cms8L2E+ICAKCjwvcHJlPgo8L2Rpdj4KCjwvYmxvY2txdW90ZT48L2Rpdj48YnI+CjwvZGl2Pjwv ZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48L2Rpdj48L2Rpdj48YnI+CjwvYmxvY2txdW90ZT48L2Rp dj48L2Rpdj48L2Rpdj48YnI+CjwvYmxvY2txdW90ZT48L2Rpdj48YnI+Cg== --===============1748630195159848496==--