From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============1653094915240941102==" MIME-Version: 1.0 From: Shahar Salzman Subject: Re: [SPDK] SPDK + user space appliance Date: Wed, 09 May 2018 11:57:13 +0000 Message-ID: In-Reply-To: CAFEtCnArNmb7E5aM1=cbtEbviGWNY9sQXh4ectj1zfStGWXjkA@mail.gmail.com List-ID: To: spdk@lists.01.org --===============1653094915240941102== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Shuhei, Thanks for the input! Good to hear that this can be useful for you as well, this is why we are at= tempting to push it to the community. Would be great to get your feadback on the module itself on gerrithub - htt= ps://review.gerrithub.io/#/c/spdk/spdk/+/410159/ Reference application (for review, and testing) - https://review.gerrithub.= io/#/c/spdk/spdk/+/410160/ There are still some features missing such as a richer register_device inte= rface, unregister_device (not implemented yet), and probably a better submi= t_io API. Thanks, Shahar ________________________________ From: SPDK on behalf of =E6=9D=BE=E6=9C=AC=E5= =91=A8=E5=B9=B3 Sent: Wednesday, May 9, 2018 12:54:27 PM To: Storage Performance Development Kit Subject: Re: [SPDK] SPDK + user space appliance Hi Shahar, I asked a question to you because our team may be interested in that. But t= hat is outside of open source and spdk. Hence you can ignore that. What I can say is your use case of spdk may not be unique and may attract a= ny interest. Thanks again, Shuhei 2018=E5=B9=B45=E6=9C=889=E6=97=A5(=E6=B0=B4) 17:43 =E6=9D=BE=E6=9C=AC=E5=91= =A8=E5=B9=B3 / MATSUMOTO=EF=BC=8CSHUUHEI >: Hi Shahar, Thank you for your interesting proposal and excuse me for cutting in the th= read. Do you have any plan to use similar or better mechanism between your applic= ation and another backend SPDK bdev or device driver (e.g. nvme, bdev_nvme)= ? Thanks, Shuhei ________________________________ =E5=B7=AE=E5=87=BA=E4=BA=BA: SPDK > =E3=81=8C Shahar Salzman > =E3=81=AE=E4=BB=A3=E7=90=86= =E3=81=A7=E9=80=81=E4=BF=A1 =E9=80=81=E4=BF=A1=E6=97=A5=EF=BF=BD: 2018=E5=B9=B45=E6=9C=889=E6=97=A5 16:= 48:37 =E5=AE=9B=E5=85=88: spdk(a)lists.01.org =E4=BB=B6=E5=90=8D: [!]Re: [SPDK] SPDK + user space appliance Hi Ben, To answer your question first, the main reason to have a generic spdk IO AP= I for storage appliance is being able to maintain functionality over versio= ns. We started with our module in version 17.07, but when we started integratin= g it into 17.07.01, and the 18.X version we started running into issues. Si= nce the bdev layer is internal to spdk, it makes sense that it will change = both in functionality and in interface from time to time especially in NVMe= F where the specifications are so young, which is the reason that we would = like to have an API which is more stable over versions. As a storage appliance, the requirements are fairly stable, and at least in= the case of SCSI, a thin "glue API" had been enough to get the core applia= nce work with multiple frontend targets (e.g. both SCSI and internal replic= ation). I believe that the same method can be applied to NVMEF. In addition, I think that our use case is not unique to the way we are inte= grating spdk, which means that the work we put in can benefit other users, = and hopefully via their experience, the code can become more robust and use= ful. Shahar ________________________________ From: SPDK = > on behalf of Walker, Benjamin > Sent: Tuesday, May 8, 2018 8:30:20 PM To: spdk(a)lists.01.org Subject: Re: [SPDK] SPDK + user space appliance On Tue, 2018-05-08 at 07:36 +0000, Shahar Salzman wrote: > Hi Jim and Ben, > > For the threading issue, I agree that there is something not very clean i= n the > interface, as there is an assumption on how the user implements it. As I = did > in the bdev_user_example, we also use a ring in order to place all the > incoming IO without delaying the reactor, and then use multiple pollers to > actually handle the IO (deduplication, compression, HA etc.). This is why > there are 2 distinct interfaces - submit_io callback, and > the bdev_user_submit_completion interface which (normally) is called on > another thread (not the original poller), and passed back to the reactor = via > the completion queue on the bdev_user_io_channel, and the registered poll= er > thread which takes from the user completion queue. > Do you think that a cleaner interface would be modifying the submit_io > callback to a poll_io interface which checks a bdev_user internal ring fo= r IO? > Or do you think that the current interface is OK provided good documentat= ion? > > Regarding the spdk_call_unaffinitized, I am currently using spdk_event_ca= ll in > order to register my volumes, I don't really like this since it forces me= to > (eventually) add another async callback in my app to verify that device > registration was successful (and this just adds more conditions, futures = etc. > in the application). Is there a way to call spdk interfaces directly with= a > "non-spdk" thread (i.e. TLS is not initialized)? I'm not so much concerned yet with the interface you've defined, but rather understanding the whole approach at a high level. The SPDK bdev layer is designed for custom bdev modules to be added, so my primary question is why write a generic bdev_user module as opposed to writing a "your custom stora= ge backend" module? I think this is the key piece, and understanding the proce= ss you went through as you designed this will probably yield a whole bunch of = good improvements to the current bdev module system. Thanks, Ben > > Hope this answers the questions, > Shahar > From: SPDK > on behalf of Harris, James R > > > Sent: Monday, May 7, 2018 9:18:20 PM > To: Storage Performance Development Kit > Subject: Re: [SPDK] SPDK + user space appliance > > There are also calls such as spdk_call_unaffinitized() and > spdk_unaffinitize_thread() which have been added to enable cases where a = bdev > module may need to spawn non-polling threads and don=E2=80=99t want those= threads to > inherit the affinity of the calling thread. The SPDK rbd module currently > uses these (see git commit fa5206c4) since rbd_open is a blocking call. = (Note > that librbd does now support rbd_aio_open which is better suited for SPDK= .) > > -Jim > > > On 5/7/18, 11:02 AM, "SPDK on behalf of Walker, Benjamin" 01.org on behalf of benjamin.walker(a)intel.com> wrote: > > Hi Shahar, > > Thank you for submitting the patch. I've looked through it in detail = and I > think > I understand the purpose of this code, but I'm going to explain it ba= ck to > you > so you can correct me where I'm wrong. > > I think this code solves two distinct problems: > > 1) You need to forward I/O out of the bdev layer to some custom backe= nd, > and you > want the code that does that to live outside of the SPDK repository. > > 2) Your custom back-end library isn't suitable for use in a run-to- > completion > model. By that I mean that you can't just call your library directly = on > the > thread that originally receives the spdk_bdev_io request because your > library > either blocks or generally takes too long to return from the submissi= on > call > (maybe it is doing inline compression or something). Instead, you nee= d to > shuttle those requests off to separate threads for handling. > > As far as point #1, today the SPDK build system does not nicely > accommodate bdev > modules whose code lives outside of SPDK. SPDK expects them to be in > lib/bdev/. However, that's a fairly straightforward chan= ge to > the > build system and it's one we've been intending to make for some time. > > For point #2, this is likely the case for a large number of storage b= ack- > ends, > but I think the proper way to solve it is probably back-end specific = and > not > general purpose. As a counter-point, SPDK already integrates with a n= umber > of > third-party storage back-ends today (Ceph RBD, libiscsi, libaio, etc.= ) and > none > of those ended up needing to pass messages to other threads. They all > support > asynchronous operations, though. I could imagine writing a bdev module > that > ultimately makes POSIX preadv calls, for instance. That would need to= be > implemented with a thread pool and each bdev_io gets funneled off to a > thread in > the pool to perform the blocking operation. > > Ok - I explained what I think I'm understanding. Now tell me where I = went > wrong > :) > > Thanks, > Ben > > On Sun, 2018-05-06 at 10:32 +0000, Shahar Salzman wrote: > > Hi, > > > > I pushed the code for review, thanks Daniel for the help. > > > > In a nutshell: > > - bdev_user - an API for a user appliance to use spdk as an iSCSI/N= VMeF > target > > - bdev_user_example - reference application > > - The API relies on rings in order to submit/complete IOs > > - User appliance registers callbacks for submit_io (should we have > > read/write/other instead?) > > - User appliance registers its devices so that they may be added to= an > > existing namespace (I am using RPC to do the management) > > > > Thanks, > > Shahar > > > > > > From: SPDK > on behalf of Verkamp, Daniel > > > rkamp(a)intel.com> > > Sent: Thursday, May 3, 2018 8:50 PM > > To: Storage Performance Development Kit > > Subject: Re: [SPDK] SPDK + user space appliance > > > > Hi Shahar, > > > > The target branch for the push should be =E2=80=98refs/for/master= =E2=80=99, not =E2=80=98master=E2=80=99 > =EF=BF=BD if > > you configured a remote as specified in http://www.spdk.io/developm= ent/ > it > > should look like: > > > > [remote "review"] > > url =3D https://review.gerrithub.io/spdk/spdk > > push =3D HEAD:refs/for/master > > > > From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Shahar > Salzman > > Sent: Thursday, May 3, 2018 1:00 AM > > To: Storage Performance Development Kit > > > Subject: Re: [SPDK] SPDK + user space appliance > > > > Hi Ben, > > > > I have the code ready for review (spdk/master on dpdk/18.02), but I= do > not > > have push rights for gerrithub: > > shahar.salzman(a)shahars-vm:~/Kaminario/git/spdk$ git push spdk-rev= iew > > HEAD:master > > Password for 'https://ShaharSalzman-K(a)review.gerrithub.io': > > Counting objects: 109, done. > > Compressing objects: 100% (22/22), done. > > Writing objects: 100% (22/22), 8.70 KiB | 0 bytes/s, done. > > Total 22 (delta 14), reused 0 (delta 0) > > remote: Resolving deltas: 100% (14/14) > > remote: Branch refs/heads/master: > > remote: You are not allowed to perform this operation. > > remote: To push into this reference you need 'Push' rights. > > remote: User: ShaharSalzman-K > > remote: Please read the documentation and contact an administrator > > remote: if you feel the configuration is incorrect > > remote: Processing changes: refs: 1, done > > To https://ShaharSalzman-K(a)review.gerrithub.io/a/spdk/spdk > > ! [remote rejected] HEAD -> master (prohibited by Gerrit: ref upda= te > access > > denied) > > error: failed to push some refs to 'https://clicktime.symantec.com/= a/1/iPAMfi9JTgrCsBpj-3dTOiwjRg4TO0R9p-532zfvTJo=3D?d=3DIZ4agxX_ZpqPkWiNnTNr= j_NBs2FhvVhL0C4ui7usNFbwWvaeFL_6xxEiJsoIsqQ7V52cWaZFVACNr_1h7jLWbAwFsIludxq= vouLeR7LlLOfQ0bFlPUpvFZ6_PMy3CfWbTeNsbADtICHCz_POTCbaFpNsuI2rlqB8puvuZJTP3O= x46efqw1FrkS0cNBzg8d-EuPrkwq9O0Z_X5JWfRIeyC8OdQ0LgZbmYLhHv74Ef6cPNqSlyLNHic= 0Jl3IcH3yyZoJ8yW8_S9YWGC8KctqorrU9ydDY5LxaRivXyr73oPW0zCi7L_F_ruhFLmKNLLqGy= TuILXnS4oYr3CQn3fJc9OCnuVkU4qPnBXZN65eLGxDVtsZifysY6Ncn_9vBe9bWoMqpmX4PvgHR= psz32FSPKiHJdU-qNNiGiG-AYIgDEjOIw&u=3Dhttps%3A%2F%2FShaharSalzman-K%40revie= w.gerri > thub.i > > o/a/spdk/spdk' > > > > Am I doing something incorrect, or is this just a permission issue? > > > > Thanks, > > Shahar > > From: SPDK > on behalf of Shahar Salzman > > zman(a)kaminario.com> > > Sent: Wednesday, April 25, 2018 9:02:38 AM > > To: Storage Performance Development Kit > > Subject: Re: [SPDK] SPDK + user space appliance > > > > Hi Ben, > > > > The code is currently working on v17.07, we are planning on bumping= the > > version to one of the latest stable versions (18.01?) + master. > > It will take me (hopefully) a few days to update the code and have = our > > internal CI start running on this version, not sure it would be use= ful, > but I > > can get our working 17.07 code (+ reference application) for review= much > > faster. > > What is the best course of action? > > > > Shahar > > From: SPDK > on behalf of Walker, Benjamin > > .walker(a)intel.com> > > Sent: Tuesday, April 24, 2018 7:19:12 PM > > To: Storage Performance Development Kit > > Subject: Re: [SPDK] SPDK + user space appliance > > > > Hi Shahar, > > > > Would you be willing to submit your bdev module as a patch on Gerri= tHub? > That > > way everyone can take a look and provide feedback. If you don=E2=80= =99t want it > to run > > the tests, you can put [RFC] and the beginning of the commit messag= e. > > > > Thanks, > > Ben > > > > From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Shahar > Salzman > > Sent: Monday, April 23, 2018 8:45 AM > > To: spdk(a)lists.01.org > > Subject: Re: [SPDK] SPDK + user space appliance > > > > Hi Ben, > > > > Bumping this thread since I've been having some new thoughts on the > issue now > > that we are starting integration with newer spdk versions. > > Unfortunately the merge isn't as smooth as I'd like it to be since = the > bdev > > module is pretty tightly integrated into spdk, perhaps we made some > false > > assumptions writing the module, but it seems some of the newer spdk > features > > are complicating the integration. > > My question is, if this passthrough module is useful, wouldn't it be > better to > > maintain it as part of spdk so that we can catch issues as soon as = they > show > > up? > > We would be happy to help with maintaining this module, the module = with > is > > currently part of our CI with our "frozen" spdk version, but once > integrated > > into the newer version we choose, I'll add it to the CI our CI as w= ell. > > > > Shahar > > From: SPDK > on behalf of Walker, Benjamin > > .walker(a)intel.com> > > Sent: Friday, February 2, 2018 11:43:58 PM > > To: spdk(a)lists.01.org > > Subject: Re: [SPDK] SPDK + user space appliance > > > > On Thu, 2018-02-01 at 08:29 +0000, Shahar Salzman wrote: > > > Hi Ben, > > > > > > Would you also like to take a look at the bdev_user module? > > > It still needs some patching (as some of the stuff is still hard > coded), but > > I > > > think we can get most of it cleaned up in a couple of days. > > > > > > In any case, is it the intention that the user write his own bdev > module, or > > > would this user appliance glue be a useful generic module? > > > > For existing storage stacks that serve block I/O, like the internal= s of > a SAN, > > the idea is that you write your own bdev module to forward I/O comi= ng > out of > > the > > SPDK bdev layer. Then you can use the SPDK iSCSI/NVMe-oF/vhost targ= ets > mostly > > as-is. > > > > In some cases, the actual iSCSI/NVMe-oF/vhost target applications w= on't > > integrate nicely directly into an existing storage application beca= use > they > > spawn their own threads and allocate their own memory. To support t= hat, > the > > libraries may be consumed directly instead of the applications > (lib/iscsi, > > lib/scsi, lib/nvmf, etc.). The libraries don't spawn any of their o= wn > threads, > > but instead rely on SPDK's abstractions in include/spdk/io_channel.= h. > See > > > > http://www.spdk.io/doc/concurrency.html > > > > We don't currently have a way to write a custom bdev module that re= sides > > outside > > of the SPDK source tree, but it's very possible to add support for = that. > But > > beyond that inconvenience (just drop your module in lib/bdev for no= w), > writing > > a > > bdev module is the recommended way of interacting with the bottom e= nd of > the > > SPDK bdev layer. I think that's what you really want to be doing in= your > code, > > from what I can tell. > > > > I hope that helps! > > _______________________________________________ > > SPDK mailing list > > SPDK(a)lists.01.org > > https://lists.01.org/mailman/listinfo/spdk > > > > _______________________________________________ > > SPDK mailing list > > SPDK(a)lists.01.org > > https://lists.01.org/mailman/listinfo/spdk > _______________________________________________ > SPDK mailing list > SPDK(a)lists.01.org > https://lists.01.org/mailman/listinfo/spdk > > > _______________________________________________ > SPDK mailing list > SPDK(a)lists.01.org > https://lists.01.org/mailman/listinfo/spdk > _______________________________________________ > SPDK mailing list > SPDK(a)lists.01.org > https://lists.01.org/mailman/listinfo/spdk _______________________________________________ SPDK mailing list SPDK(a)lists.01.org https://lists.01.org/mailman/listinfo/spdk _______________________________________________ SPDK mailing list SPDK(a)lists.01.org https://lists.01.org/mailman/listinfo/spdk --===============1653094915240941102== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl eHQvaHRtbDsgY2hhcnNldD1nYjIzMTIiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHN0eWxlPSJk aXNwbGF5Om5vbmU7Ij48IS0tIFAge21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjA7fSAtLT48 L3N0eWxlPgo8L2hlYWQ+Cjxib2R5IGRpcj0ibHRyIj4KPGRpdiBpZD0iZGl2dGFnZGVmYXVsdHdy YXBwZXIiIHN0eWxlPSJmb250LXNpemU6MTJwdDtjb2xvcjojMDAwMDAwO2ZvbnQtZmFtaWx5OkNh bGlicmksSGVsdmV0aWNhLHNhbnMtc2VyaWY7IiBkaXI9Imx0ciI+CjxwIHN0eWxlPSJtYXJnaW4t dG9wOjA7bWFyZ2luLWJvdHRvbTowIj5IaSBTaHVoZWksPC9wPgo8cCBzdHlsZT0ibWFyZ2luLXRv cDowO21hcmdpbi1ib3R0b206MCI+PGJyPgo8L3A+CjxwIHN0eWxlPSJtYXJnaW4tdG9wOjA7bWFy Z2luLWJvdHRvbTowIj5UaGFua3MgZm9yIHRoZSBpbnB1dCE8L3A+CjxwIHN0eWxlPSJtYXJnaW4t dG9wOjA7bWFyZ2luLWJvdHRvbTowIj5Hb29kIHRvIGhlYXIgdGhhdCB0aGlzIGNhbiBiZSB1c2Vm dWwgZm9yIHlvdSBhcyB3ZWxsLCB0aGlzIGlzIHdoeSB3ZSBhcmUgYXR0ZW1wdGluZyB0byBwdXNo IGl0IHRvIHRoZSBjb21tdW5pdHkuPC9wPgo8cCBzdHlsZT0ibWFyZ2luLXRvcDowO21hcmdpbi1i b3R0b206MCI+V291bGQgYmUgZ3JlYXQgdG8gZ2V0IHlvdXIgZmVhZGJhY2sgb24gdGhlIG1vZHVs ZSBpdHNlbGYmbmJzcDtvbiBnZXJyaXRodWIgLSZuYnNwOzxhIGhyZWY9Imh0dHBzOi8vcmV2aWV3 LmdlcnJpdGh1Yi5pby8jL2Mvc3Bkay9zcGRrLyYjNDM7LzQxMDE1OS8iIGNsYXNzPSJPV0FBdXRv TGluayIgaWQ9IkxQbG5rNzQ3Mzg5IiBwcmV2aWV3cmVtb3ZlZD0idHJ1ZSI+aHR0cHM6Ly9yZXZp ZXcuZ2Vycml0aHViLmlvLyMvYy9zcGRrL3NwZGsvJiM0MzsvNDEwMTU5LzwvYT48L3A+CjxwIHN0 eWxlPSJtYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowIj5SZWZlcmVuY2UgYXBwbGljYXRpb24g KGZvciByZXZpZXcsIGFuZCB0ZXN0aW5nKSAtJm5ic3A7PGEgaHJlZj0iaHR0cHM6Ly9yZXZpZXcu Z2Vycml0aHViLmlvLyMvYy9zcGRrL3NwZGsvJiM0MzsvNDEwMTYwLyIgY2xhc3M9Ik9XQUF1dG9M aW5rIiBpZD0iTFBsbmsxNDY1MDAiIHByZXZpZXdyZW1vdmVkPSJ0cnVlIj5odHRwczovL3Jldmll dy5nZXJyaXRodWIuaW8vIy9jL3NwZGsvc3Bkay8mIzQzOy80MTAxNjAvPC9hPjwvcD4KPGRpdj48 YnI+CjwvZGl2PgpUaGVyZSBhcmUgc3RpbGwgc29tZSBmZWF0dXJlcyBtaXNzaW5nIHN1Y2ggYXMg YSByaWNoZXIgcmVnaXN0ZXJfZGV2aWNlIGludGVyZmFjZSwgdW5yZWdpc3Rlcl9kZXZpY2UgKG5v dCBpbXBsZW1lbnRlZCB5ZXQpLCBhbmQgcHJvYmFibHkgYSBiZXR0ZXIgc3VibWl0X2lvIEFQSS4K PGRpdj48YnI+CjwvZGl2Pgo8ZGl2PlRoYW5rcyw8L2Rpdj4KPGRpdj5TaGFoYXI8YnI+Cjxicj4K PC9kaXY+CjwvZGl2Pgo8aHIgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjk4JSIg dGFiaW5kZXg9Ii0xIj4KPGRpdiBpZD0iZGl2UnBseUZ3ZE1zZyIgZGlyPSJsdHIiPjxmb250IGZh Y2U9IkNhbGlicmksIHNhbnMtc2VyaWYiIHN0eWxlPSJmb250LXNpemU6MTFwdCIgY29sb3I9IiMw MDAwMDAiPjxiPkZyb206PC9iPiBTUERLICZsdDtzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnJmd0 OyBvbiBiZWhhbGYgb2Ygy8mxvtbcxr0gJmx0O3NodWhlaW1hdHN1bW90b0BnbWFpbC5jb20mZ3Q7 PGJyPgo8Yj5TZW50OjwvYj4gV2VkbmVzZGF5LCBNYXkgOSwgMjAxOCAxMjo1NDoyNyBQTTxicj4K PGI+VG86PC9iPiBTdG9yYWdlIFBlcmZvcm1hbmNlIERldmVsb3BtZW50IEtpdDxicj4KPGI+U3Vi amVjdDo8L2I+IFJlOiBbU1BES10gU1BESyAmIzQzOyB1c2VyIHNwYWNlIGFwcGxpYW5jZTwvZm9u dD4KPGRpdj4mbmJzcDs8L2Rpdj4KPC9kaXY+CjxtZXRhIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hh cnNldD11dGYtOCI+CjxkaXY+CjxkaXY+CjxkaXYgZGlyPSJhdXRvIj5IaSBTaGFoYXIsPC9kaXY+ CjxkaXYgZGlyPSJhdXRvIj48YnI+CjwvZGl2Pgo8ZGl2IGRpcj0iYXV0byI+SSBhc2tlZCBhIHF1 ZXN0aW9uIHRvIHlvdSBiZWNhdXNlIG91ciB0ZWFtIG1heSBiZSBpbnRlcmVzdGVkIGluIHRoYXQu IEJ1dCB0aGF0IGlzIG91dHNpZGUgb2Ygb3BlbiBzb3VyY2UgYW5kIHNwZGsuIEhlbmNlIHlvdSBj YW4gaWdub3JlIHRoYXQuPC9kaXY+CjxkaXYgZGlyPSJhdXRvIj48YnI+CjwvZGl2Pgo8ZGl2IGRp cj0iYXV0byI+V2hhdCBJIGNhbiBzYXkgaXMgeW91ciB1c2UgY2FzZSBvZiBzcGRrIG1heSBub3Qg YmUgdW5pcXVlIGFuZCBtYXkgYXR0cmFjdCBhbnkgaW50ZXJlc3QuPC9kaXY+CjxkaXYgZGlyPSJh dXRvIj48YnI+CjwvZGl2Pgo8ZGl2IGRpcj0iYXV0byI+VGhhbmtzIGFnYWluLDwvZGl2Pgo8ZGl2 IGRpcj0iYXV0byI+U2h1aGVpJm5ic3A7PC9kaXY+CjxkaXYgZGlyPSJhdXRvIj48YnI+CjwvZGl2 Pgo8YnI+CjxkaXYgY2xhc3M9InhfZ21haWxfcXVvdGUiPgo8ZGl2PjIwMTjE6jXUwjnI1SjLrikg MTc6NDMgy8mxvtbcxr0gLyBNQVRTVU1PVE+jrFNIVVVIRUkgJmx0OzxhIGhyZWY9Im1haWx0bzpz aHVoZWkubWF0c3Vtb3RvLnh0QGhpdGFjaGkuY29tIj5zaHVoZWkubWF0c3Vtb3RvLnh0QGhpdGFj aGkuY29tPC9hPiZndDs6PGJyPgo8L2Rpdj4KPGJsb2NrcXVvdGUgY2xhc3M9InhfZ21haWxfcXVv dGUiIHN0eWxlPSJtYXJnaW46MCAwIDAgLjhleDsgYm9yZGVyLWxlZnQ6MXB4ICNjY2Mgc29saWQ7 IHBhZGRpbmctbGVmdDoxZXgiPgo8ZGl2Pgo8ZGl2IGlkPSJ4X21fMjk4MzQzMjg0NDE2MTg3NTg1 M2RpdnRhZ2RlZmF1bHR3cmFwcGVyIiBzdHlsZT0iZm9udC1zaXplOjEycHQ7IGNvbG9yOiMwMDAw MDA7IGZvbnQtZmFtaWx5OkNhbGlicmksSGVsdmV0aWNhLHNhbnMtc2VyaWYiPgo8ZGl2IGlkPSJ4 X21fMjk4MzQzMjg0NDE2MTg3NTg1M2RpdnRhZ2RlZmF1bHR3cmFwcGVyIiBzdHlsZT0iY29sb3I6 cmdiKDAsMCwwKTsgZm9udC1mYW1pbHk6Q2FsaWJyaSxIZWx2ZXRpY2Esc2Fucy1zZXJpZiwmcXVv dDtFbW9qaUZvbnQmcXVvdDssJnF1b3Q7QXBwbGUgQ29sb3IgRW1vamkmcXVvdDssJnF1b3Q7U2Vn b2UgVUkgRW1vamkmcXVvdDssTm90b0NvbG9yRW1vamksJnF1b3Q7U2Vnb2UgVUkgU3ltYm9sJnF1 b3Q7LCZxdW90O0FuZHJvaWQgRW1vamkmcXVvdDssRW1vamlTeW1ib2xzOyBmb250LXNpemU6MTJw dCI+CjxwIHN0eWxlPSJtYXJnaW4tdG9wOjA7IG1hcmdpbi1ib3R0b206MCI+SGkgU2hhaGFyLDwv cD4KPHAgc3R5bGU9Im1hcmdpbi10b3A6MDsgbWFyZ2luLWJvdHRvbTowIj48YnI+CjwvcD4KPHAg c3R5bGU9Im1hcmdpbi10b3A6MDsgbWFyZ2luLWJvdHRvbTowIj5UaGFuayB5b3UgZm9yIHlvdXIg aW50ZXJlc3RpbmcgcHJvcG9zYWwgYW5kIGV4Y3VzZSBtZSBmb3IgY3V0dGluZyBpbiB0aGUgdGhy ZWFkLjwvcD4KPHAgc3R5bGU9Im1hcmdpbi10b3A6MDsgbWFyZ2luLWJvdHRvbTowIj5EbyB5b3Ug aGF2ZSBhbnkgcGxhbiB0byB1c2Ugc2ltaWxhciBvciBiZXR0ZXIgbWVjaGFuaXNtIGJldHdlZW4g eW91ciBhcHBsaWNhdGlvbiBhbmQgYW5vdGhlciBiYWNrZW5kIFNQREsgYmRldiBvciBkZXZpY2Ug ZHJpdmVyIChlLmcuIG52bWUsIGJkZXZfbnZtZSkgPzwvcD4KPHAgc3R5bGU9Im1hcmdpbi10b3A6 MDsgbWFyZ2luLWJvdHRvbTowIj48YnI+CjwvcD4KPHAgc3R5bGU9Im1hcmdpbi10b3A6MDsgbWFy Z2luLWJvdHRvbTowIj5UaGFua3MsPC9wPgo8cCBzdHlsZT0ibWFyZ2luLXRvcDowOyBtYXJnaW4t Ym90dG9tOjAiPlNodWhlaTwvcD4KPHAgc3R5bGU9Im1hcmdpbi10b3A6MDsgbWFyZ2luLWJvdHRv bTowIj48YnI+CjwvcD4KPC9kaXY+CjxociBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2s7IHdp ZHRoOjk4JSI+CjxkaXYgaWQ9InhfbV8yOTgzNDMyODQ0MTYxODc1ODUzZGl2UnBseUZ3ZE1zZyI+ PGZvbnQgY29sb3I9IiMwMDAwMDAiIGZhY2U9IkNhbGlicmksIHNhbnMtc2VyaWYiIHN0eWxlPSJm b250LXNpemU6MTFwdCI+PGI+su6z9sjLOjwvYj4gU1BESyAmbHQ7PGEgaHJlZj0ibWFpbHRvOnNw ZGstYm91bmNlc0BsaXN0cy4wMS5vcmciIHRhcmdldD0iX2JsYW5rIj5zcGRrLWJvdW5jZXNAbGlz dHMuMDEub3JnPC9hPiZndDsgpKwgU2hhaGFyIFNhbHptYW4gJmx0OzxhIGhyZWY9Im1haWx0bzpz aGFoYXIuc2Fsem1hbkBrYW1pbmFyaW8uY29tIiB0YXJnZXQ9Il9ibGFuayI+c2hhaGFyLnNhbHpt YW5Aa2FtaW5hcmlvLmNvbTwvYT4mZ3Q7CiCkzrT6wO2kx8vN0MU8YnI+CjxiPsvN0MXI1ZVyOjwv Yj4gMjAxOMTqNdTCOcjVIDE2OjQ4OjM3PGJyPgo8Yj7N8M/IOjwvYj4gPGEgaHJlZj0ibWFpbHRv OnNwZGtAbGlzdHMuMDEub3JnIiB0YXJnZXQ9Il9ibGFuayI+c3Bka0BsaXN0cy4wMS5vcmc8L2E+ PGJyPgo8Yj68/sP7OjwvYj4gWyFdUmU6IFtTUERLXSBTUERLICYjNDM7IHVzZXIgc3BhY2UgYXBw bGlhbmNlPC9mb250Pgo8ZGl2PiZuYnNwOzwvZGl2Pgo8L2Rpdj4KPGRpdj48L2Rpdj4KPC9kaXY+ CjwvZGl2Pgo8ZGl2Pgo8ZGl2IGlkPSJ4X21fMjk4MzQzMjg0NDE2MTg3NTg1M2RpdnRhZ2RlZmF1 bHR3cmFwcGVyIiBzdHlsZT0iZm9udC1zaXplOjEycHQ7IGNvbG9yOiMwMDAwMDA7IGZvbnQtZmFt aWx5OkNhbGlicmksSGVsdmV0aWNhLHNhbnMtc2VyaWYiPgo8ZGl2Pgo8ZGl2IGlkPSJ4X21fMjk4 MzQzMjg0NDE2MTg3NTg1M3hfZGl2dGFnZGVmYXVsdHdyYXBwZXIiIHN0eWxlPSJjb2xvcjpyZ2Io MCwwLDApOyBmb250LWZhbWlseTpDYWxpYnJpLEhlbHZldGljYSxzYW5zLXNlcmlmLCZxdW90O0Vt b2ppRm9udCZxdW90OywmcXVvdDtBcHBsZSBDb2xvciBFbW9qaSZxdW90OywmcXVvdDtTZWdvZSBV SSBFbW9qaSZxdW90OyxOb3RvQ29sb3JFbW9qaSwmcXVvdDtTZWdvZSBVSSBTeW1ib2wmcXVvdDss JnF1b3Q7QW5kcm9pZCBFbW9qaSZxdW90OyxFbW9qaVN5bWJvbHM7IGZvbnQtc2l6ZToxMnB0Ij4K PHAgc3R5bGU9Im1hcmdpbi10b3A6MDsgbWFyZ2luLWJvdHRvbTowIj5IaSBCZW4sPC9wPgo8cCBz dHlsZT0ibWFyZ2luLXRvcDowOyBtYXJnaW4tYm90dG9tOjAiPjxicj4KPC9wPgo8cCBzdHlsZT0i bWFyZ2luLXRvcDowOyBtYXJnaW4tYm90dG9tOjAiPlRvIGFuc3dlciB5b3VyIHF1ZXN0aW9uIGZp cnN0LCB0aGUgbWFpbiZuYnNwO3JlYXNvbiB0byBoYXZlIGEgZ2VuZXJpYyBzcGRrIElPJm5ic3A7 QVBJIGZvciBzdG9yYWdlIGFwcGxpYW5jZSBpcyBiZWluZyBhYmxlIHRvIG1haW50YWluIGZ1bmN0 aW9uYWxpdHkgb3ZlciB2ZXJzaW9ucy48L3A+CjxwIHN0eWxlPSJtYXJnaW4tdG9wOjA7IG1hcmdp bi1ib3R0b206MCI+V2Ugc3RhcnRlZCB3aXRoIG91ciBtb2R1bGUgaW4gdmVyc2lvbiAxNy4wNywg YnV0IHdoZW4gd2Ugc3RhcnRlZCBpbnRlZ3JhdGluZyBpdCBpbnRvIDE3LjA3LjAxLCBhbmQgdGhl IDE4LlggdmVyc2lvbiB3ZSBzdGFydGVkIHJ1bm5pbmcgaW50byBpc3N1ZXMuIFNpbmNlIHRoZSBi ZGV2IGxheWVyIGlzIGludGVybmFsIHRvIHNwZGssIGl0IG1ha2VzIHNlbnNlIHRoYXQgaXQgd2ls bAogY2hhbmdlIGJvdGggaW4gZnVuY3Rpb25hbGl0eSBhbmQgaW4gaW50ZXJmYWNlIGZyb20gdGlt ZSB0byB0aW1lIGVzcGVjaWFsbHkgaW4gTlZNZUYgd2hlcmUgdGhlIHNwZWNpZmljYXRpb25zIGFy ZSBzbyB5b3VuZywgd2hpY2ggaXMgdGhlIHJlYXNvbiB0aGF0IHdlIHdvdWxkIGxpa2UgdG8gaGF2 ZSBhbiBBUEkgd2hpY2ggaXMgbW9yZSBzdGFibGUgb3ZlciB2ZXJzaW9ucy48L3A+CjxwIHN0eWxl PSJtYXJnaW4tdG9wOjA7IG1hcmdpbi1ib3R0b206MCI+QXMgYSBzdG9yYWdlIGFwcGxpYW5jZSwg dGhlIHJlcXVpcmVtZW50cyBhcmUgZmFpcmx5IHN0YWJsZSwgYW5kIGF0IGxlYXN0IGluIHRoZSBj YXNlIG9mIFNDU0ksIGEgdGhpbiAmcXVvdDtnbHVlIEFQSSZxdW90OyBoYWQgYmVlbiBlbm91Z2gg dG8gZ2V0IHRoZSBjb3JlIGFwcGxpYW5jZSB3b3JrIHdpdGggbXVsdGlwbGUgZnJvbnRlbmQgdGFy Z2V0cyAoZS5nLiBib3RoIFNDU0kgYW5kIGludGVybmFsCiByZXBsaWNhdGlvbikuIEkgYmVsaWV2 ZSB0aGF0IHRoZSBzYW1lIG1ldGhvZCBjYW4gYmUgYXBwbGllZCB0byBOVk1FRi48L3A+CjxwIHN0 eWxlPSJtYXJnaW4tdG9wOjA7IG1hcmdpbi1ib3R0b206MCI+SW4gYWRkaXRpb24sIEkgdGhpbmsg dGhhdCBvdXIgdXNlIGNhc2UgaXMgbm90IHVuaXF1ZSB0byB0aGUgd2F5IHdlIGFyZSBpbnRlZ3Jh dGluZyBzcGRrLCB3aGljaCBtZWFucyB0aGF0IHRoZSB3b3JrIHdlIHB1dCBpbiBjYW4gYmVuZWZp dCBvdGhlciB1c2VycywgYW5kIGhvcGVmdWxseSB2aWEgdGhlaXIgZXhwZXJpZW5jZSwgdGhlIGNv ZGUgY2FuIGJlY29tZSBtb3JlIHJvYnVzdAogYW5kIHVzZWZ1bC48L3A+CjxwIHN0eWxlPSJtYXJn aW4tdG9wOjA7IG1hcmdpbi1ib3R0b206MCI+PGJyPgo8L3A+CjxwIHN0eWxlPSJtYXJnaW4tdG9w OjA7IG1hcmdpbi1ib3R0b206MCI+U2hhaGFyPC9wPgo8L2Rpdj4KPGhyIHN0eWxlPSJkaXNwbGF5 OmlubGluZS1ibG9jazsgd2lkdGg6OTglIj4KPGRpdiBpZD0ieF9tXzI5ODM0MzI4NDQxNjE4NzU4 NTN4X2RpdlJwbHlGd2RNc2ciPjxmb250IGNvbG9yPSIjMDAwMDAwIiBmYWNlPSJDYWxpYnJpLCBz YW5zLXNlcmlmIiBzdHlsZT0iZm9udC1zaXplOjExcHQiPjxiPkZyb206PC9iPiBTUERLICZsdDs8 YSBocmVmPSJtYWlsdG86c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9yZyIgdGFyZ2V0PSJfYmxhbmsi PnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmc8L2E+Jmd0OyBvbiBiZWhhbGYgb2YgV2Fsa2VyLCBC ZW5qYW1pbgogJmx0OzxhIGhyZWY9Im1haWx0bzpiZW5qYW1pbi53YWxrZXJAaW50ZWwuY29tIiB0 YXJnZXQ9Il9ibGFuayI+YmVuamFtaW4ud2Fsa2VyQGludGVsLmNvbTwvYT4mZ3Q7PGJyPgo8Yj5T ZW50OjwvYj4gVHVlc2RheSwgTWF5IDgsIDIwMTggODozMDoyMCBQTTxicj4KPGI+VG86PC9iPiA8 YSBocmVmPSJtYWlsdG86c3Bka0BsaXN0cy4wMS5vcmciIHRhcmdldD0iX2JsYW5rIj5zcGRrQGxp c3RzLjAxLm9yZzwvYT48YnI+CjxiPlN1YmplY3Q6PC9iPiBSZTogW1NQREtdIFNQREsgJiM0Mzsg dXNlciBzcGFjZSBhcHBsaWFuY2U8L2ZvbnQ+CjxkaXY+Jm5ic3A7PC9kaXY+CjwvZGl2Pgo8L2Rp dj4KPC9kaXY+CjwvZGl2Pgo8ZGl2Pgo8ZGl2IGlkPSJ4X21fMjk4MzQzMjg0NDE2MTg3NTg1M2Rp dnRhZ2RlZmF1bHR3cmFwcGVyIiBzdHlsZT0iZm9udC1zaXplOjEycHQ7IGNvbG9yOiMwMDAwMDA7 IGZvbnQtZmFtaWx5OkNhbGlicmksSGVsdmV0aWNhLHNhbnMtc2VyaWYiPgo8ZGl2Pgo8ZGl2IGNs YXNzPSJ4X21fMjk4MzQzMjg0NDE2MTg3NTg1M3hfQm9keUZyYWdtZW50Ij48Zm9udCBzaXplPSIy Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExcHQiPgo8ZGl2IGNsYXNzPSJ4X21fMjk4MzQzMjg0 NDE2MTg3NTg1M3hfUGxhaW5UZXh0Ij5PbiBUdWUsIDIwMTgtMDUtMDggYXQgMDc6MzYgJiM0Mzsw MDAwLCBTaGFoYXIgU2Fsem1hbiB3cm90ZTo8YnI+CiZndDsgSGkgSmltIGFuZCBCZW4sPGJyPgom Z3Q7IDxicj4KJmd0OyBGb3IgdGhlIHRocmVhZGluZyBpc3N1ZSwgSSBhZ3JlZSB0aGF0IHRoZXJl IGlzIHNvbWV0aGluZyBub3QgdmVyeSBjbGVhbiBpbiB0aGU8YnI+CiZndDsgaW50ZXJmYWNlLCBh cyB0aGVyZSBpcyBhbiBhc3N1bXB0aW9uIG9uIGhvdyB0aGUgdXNlciBpbXBsZW1lbnRzIGl0LiBB cyBJIGRpZDxicj4KJmd0OyBpbiB0aGUgYmRldl91c2VyX2V4YW1wbGUsIHdlIGFsc28gdXNlIGEg cmluZyBpbiBvcmRlciB0byBwbGFjZSBhbGwgdGhlPGJyPgomZ3Q7IGluY29taW5nIElPIHdpdGhv dXQgZGVsYXlpbmcgdGhlIHJlYWN0b3IsIGFuZCB0aGVuIHVzZSBtdWx0aXBsZSBwb2xsZXJzIHRv PGJyPgomZ3Q7IGFjdHVhbGx5IGhhbmRsZSB0aGUgSU8gKGRlZHVwbGljYXRpb24sIGNvbXByZXNz aW9uLCBIQSBldGMuKS4gVGhpcyBpcyB3aHk8YnI+CiZndDsgdGhlcmUgYXJlIDIgZGlzdGluY3Qg aW50ZXJmYWNlcyAtIHN1Ym1pdF9pbyBjYWxsYmFjaywgYW5kPGJyPgomZ3Q7IHRoZSBiZGV2X3Vz ZXJfc3VibWl0X2NvbXBsZXRpb24gaW50ZXJmYWNlIHdoaWNoIChub3JtYWxseSkgaXMgY2FsbGVk IG9uPGJyPgomZ3Q7IGFub3RoZXIgdGhyZWFkIChub3QgdGhlIG9yaWdpbmFsIHBvbGxlciksIGFu ZCBwYXNzZWQgYmFjayB0byB0aGUgcmVhY3RvciB2aWE8YnI+CiZndDsgdGhlIGNvbXBsZXRpb24g cXVldWUgb24gdGhlIGJkZXZfdXNlcl9pb19jaGFubmVsLCBhbmQgdGhlIHJlZ2lzdGVyZWQgcG9s bGVyPGJyPgomZ3Q7IHRocmVhZCB3aGljaCB0YWtlcyBmcm9tIHRoZSB1c2VyIGNvbXBsZXRpb24g cXVldWUuPGJyPgomZ3Q7IERvIHlvdSB0aGluayB0aGF0IGEgY2xlYW5lciBpbnRlcmZhY2Ugd291 bGQgYmUgbW9kaWZ5aW5nIHRoZSBzdWJtaXRfaW88YnI+CiZndDsgY2FsbGJhY2sgdG8gYSBwb2xs X2lvIGludGVyZmFjZSB3aGljaCBjaGVja3MgYSBiZGV2X3VzZXIgaW50ZXJuYWwgcmluZyBmb3Ig SU8/PGJyPgomZ3Q7IE9yIGRvIHlvdSB0aGluayB0aGF0IHRoZSBjdXJyZW50IGludGVyZmFjZSBp cyBPSyBwcm92aWRlZCBnb29kIGRvY3VtZW50YXRpb24/PGJyPgomZ3Q7IDxicj4KJmd0OyBSZWdh cmRpbmcgdGhlIHNwZGtfY2FsbF91bmFmZmluaXRpemVkLCBJIGFtIGN1cnJlbnRseSB1c2luZyBz cGRrX2V2ZW50X2NhbGwgaW48YnI+CiZndDsgb3JkZXIgdG8gcmVnaXN0ZXIgbXkgdm9sdW1lcywg SSBkb24ndCByZWFsbHkgbGlrZSB0aGlzIHNpbmNlIGl0IGZvcmNlcyBtZSB0bzxicj4KJmd0OyAo ZXZlbnR1YWxseSkgYWRkIGFub3RoZXIgYXN5bmMgY2FsbGJhY2sgaW4gbXkgYXBwIHRvIHZlcmlm eSB0aGF0IGRldmljZTxicj4KJmd0OyByZWdpc3RyYXRpb24gd2FzIHN1Y2Nlc3NmdWwgKGFuZCB0 aGlzIGp1c3QgYWRkcyBtb3JlIGNvbmRpdGlvbnMsIGZ1dHVyZXMgZXRjLjxicj4KJmd0OyBpbiB0 aGUgYXBwbGljYXRpb24pLiBJcyB0aGVyZSBhIHdheSB0byBjYWxsIHNwZGsgaW50ZXJmYWNlcyBk aXJlY3RseSB3aXRoIGE8YnI+CiZndDsgJnF1b3Q7bm9uLXNwZGsmcXVvdDsgdGhyZWFkIChpLmUu IFRMUyBpcyBub3QgaW5pdGlhbGl6ZWQpPzxicj4KPGJyPgpJJ20gbm90IHNvIG11Y2ggY29uY2Vy bmVkIHlldCB3aXRoIHRoZSBpbnRlcmZhY2UgeW91J3ZlIGRlZmluZWQsIGJ1dCByYXRoZXI8YnI+ CnVuZGVyc3RhbmRpbmcgdGhlIHdob2xlIGFwcHJvYWNoIGF0IGEgaGlnaCBsZXZlbC4gVGhlIFNQ REsgYmRldiBsYXllciBpczxicj4KZGVzaWduZWQgZm9yIGN1c3RvbSBiZGV2IG1vZHVsZXMgdG8g YmUgYWRkZWQsIHNvIG15IHByaW1hcnkgcXVlc3Rpb24gaXMgd2h5PGJyPgp3cml0ZSBhIGdlbmVy aWMgYmRldl91c2VyIG1vZHVsZSBhcyBvcHBvc2VkIHRvIHdyaXRpbmcgYSAmcXVvdDt5b3VyIGN1 c3RvbSBzdG9yYWdlPGJyPgpiYWNrZW5kJnF1b3Q7IG1vZHVsZT8gSSB0aGluayB0aGlzIGlzIHRo ZSBrZXkgcGllY2UsIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSBwcm9jZXNzPGJyPgp5b3Ugd2VudCB0 aHJvdWdoIGFzIHlvdSBkZXNpZ25lZCB0aGlzIHdpbGwgcHJvYmFibHkgeWllbGQgYSB3aG9sZSBi dW5jaCBvZiBnb29kPGJyPgppbXByb3ZlbWVudHMgdG8gdGhlIGN1cnJlbnQgYmRldiBtb2R1bGUg c3lzdGVtLjxicj4KPGJyPgpUaGFua3MsPGJyPgpCZW48YnI+Cjxicj4KPGJyPgomZ3Q7IDxicj4K Jmd0OyBIb3BlIHRoaXMgYW5zd2VycyB0aGUgcXVlc3Rpb25zLDxicj4KJmd0OyBTaGFoYXI8YnI+ Cjxicj4KPGJyPgo8YnI+CiZndDsgRnJvbTogU1BESyAmbHQ7PGEgaHJlZj0ibWFpbHRvOnNwZGst Ym91bmNlc0BsaXN0cy4wMS5vcmciIHRhcmdldD0iX2JsYW5rIj5zcGRrLWJvdW5jZXNAbGlzdHMu MDEub3JnPC9hPiZndDsgb24gYmVoYWxmIG9mIEhhcnJpcywgSmFtZXMgUjxicj4KJmd0OyAmbHQ7 PGEgaHJlZj0ibWFpbHRvOmphbWVzLnIuaGFycmlzQGludGVsLmNvbSIgdGFyZ2V0PSJfYmxhbmsi PmphbWVzLnIuaGFycmlzQGludGVsLmNvbTwvYT4mZ3Q7PGJyPgomZ3Q7IFNlbnQ6IE1vbmRheSwg TWF5IDcsIDIwMTggOToxODoyMCBQTTxicj4KJmd0OyBUbzogU3RvcmFnZSBQZXJmb3JtYW5jZSBE ZXZlbG9wbWVudCBLaXQ8YnI+CiZndDsgU3ViamVjdDogUmU6IFtTUERLXSBTUERLICYjNDM7IHVz ZXIgc3BhY2UgYXBwbGlhbmNlPGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyBUaGVyZSBhcmUgYWxz byBjYWxscyBzdWNoIGFzIHNwZGtfY2FsbF91bmFmZmluaXRpemVkKCkgYW5kPGJyPgomZ3Q7IHNw ZGtfdW5hZmZpbml0aXplX3RocmVhZCgpIHdoaWNoIGhhdmUgYmVlbiBhZGRlZCB0byBlbmFibGUg Y2FzZXMgd2hlcmUgYSBiZGV2PGJyPgomZ3Q7IG1vZHVsZSBtYXkgbmVlZCB0byBzcGF3biBub24t cG9sbGluZyB0aHJlYWRzIGFuZCBkb26hr3Qgd2FudCB0aG9zZSB0aHJlYWRzIHRvPGJyPgomZ3Q7 IGluaGVyaXQgdGhlIGFmZmluaXR5IG9mIHRoZSBjYWxsaW5nIHRocmVhZC4mbmJzcDsgVGhlIFNQ REsgcmJkIG1vZHVsZSBjdXJyZW50bHk8YnI+CiZndDsgdXNlcyB0aGVzZSAoc2VlIGdpdCBjb21t aXQgZmE1MjA2YzQpIHNpbmNlIHJiZF9vcGVuIGlzIGEgYmxvY2tpbmcgY2FsbC4mbmJzcDsgKE5v dGU8YnI+CiZndDsgdGhhdCBsaWJyYmQgZG9lcyBub3cgc3VwcG9ydCByYmRfYWlvX29wZW4gd2hp Y2ggaXMgYmV0dGVyIHN1aXRlZCBmb3IgU1BESy4pPGJyPgomZ3Q7IDxicj4KJmd0OyAtSmltPGJy PgomZ3Q7IDxicj4KJmd0OyA8YnI+CiZndDsgT24gNS83LzE4LCAxMTowMiBBTSwgJnF1b3Q7U1BE SyBvbiBiZWhhbGYgb2YgV2Fsa2VyLCBCZW5qYW1pbiZxdW90OyAmbHQ7c3Bkay1ib3VuY2VzQGxp c3RzLjxicj4KJmd0OyA8YSBocmVmPSJodHRwOi8vMDEub3JnIiB0YXJnZXQ9Il9ibGFuayI+MDEu b3JnPC9hPiBvbiBiZWhhbGYgb2YgPGEgaHJlZj0ibWFpbHRvOmJlbmphbWluLndhbGtlckBpbnRl bC5jb20iIHRhcmdldD0iX2JsYW5rIj4KYmVuamFtaW4ud2Fsa2VyQGludGVsLmNvbTwvYT4mZ3Q7 IHdyb3RlOjxicj4KJmd0OyA8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgSGkgU2hh aGFyLDxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YnI+CiZndDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsgVGhhbmsgeW91IGZvciBzdWJtaXR0aW5nIHRoZSBwYXRjaC4gSSd2ZSBs b29rZWQgdGhyb3VnaCBpdCBpbiBkZXRhaWwgYW5kIEk8YnI+CiZndDsgdGhpbms8YnI+CiZndDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgSSB1bmRlcnN0YW5kIHRoZSBwdXJwb3NlIG9mIHRoaXMg Y29kZSwgYnV0IEknbSBnb2luZyB0byBleHBsYWluIGl0IGJhY2sgdG88YnI+CiZndDsgeW91PGJy PgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHNvIHlvdSBjYW4gY29ycmVjdCBtZSB3aGVy ZSBJJ20gd3JvbmcuPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxicj4KJmd0OyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBJIHRoaW5rIHRoaXMgY29kZSBzb2x2ZXMgdHdvIGRpc3Rp bmN0IHByb2JsZW1zOjxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YnI+CiZndDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgMSkgWW91IG5lZWQgdG8gZm9yd2FyZCBJL08gb3V0IG9m IHRoZSBiZGV2IGxheWVyIHRvIHNvbWUgY3VzdG9tIGJhY2tlbmQsPGJyPgomZ3Q7IGFuZCB5b3U8 YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgd2FudCB0aGUgY29kZSB0aGF0IGRvZXMg dGhhdCB0byBsaXZlIG91dHNpZGUgb2YgdGhlIFNQREsgcmVwb3NpdG9yeS48YnI+CiZndDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsgPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDIp IFlvdXIgY3VzdG9tIGJhY2stZW5kIGxpYnJhcnkgaXNuJ3Qgc3VpdGFibGUgZm9yIHVzZSBpbiBh IHJ1bi10by08YnI+CiZndDsgY29tcGxldGlvbjxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyBtb2RlbC4gQnkgdGhhdCBJIG1lYW4gdGhhdCB5b3UgY2FuJ3QganVzdCBjYWxsIHlvdXIg bGlicmFyeSBkaXJlY3RseSBvbjxicj4KJmd0OyB0aGU8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgdGhyZWFkIHRoYXQgb3JpZ2luYWxseSByZWNlaXZlcyB0aGUgc3Bka19iZGV2X2lv IHJlcXVlc3QgYmVjYXVzZSB5b3VyPGJyPgomZ3Q7IGxpYnJhcnk8YnI+CiZndDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsgZWl0aGVyIGJsb2NrcyBvciBnZW5lcmFsbHkgdGFrZXMgdG9vIGxvbmcg dG8gcmV0dXJuIGZyb20gdGhlIHN1Ym1pc3Npb248YnI+CiZndDsgY2FsbDxicj4KJmd0OyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyAobWF5YmUgaXQgaXMgZG9pbmcgaW5saW5lIGNvbXByZXNzaW9u IG9yIHNvbWV0aGluZykuIEluc3RlYWQsIHlvdSBuZWVkIHRvPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7IHNodXR0bGUgdGhvc2UgcmVxdWVzdHMgb2ZmIHRvIHNlcGFyYXRlIHRocmVh ZHMgZm9yIGhhbmRsaW5nLjxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YnI+CiZn dDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgQXMgZmFyIGFzIHBvaW50ICMxLCB0b2RheSB0aGUg U1BESyBidWlsZCBzeXN0ZW0gZG9lcyBub3QgbmljZWx5PGJyPgomZ3Q7IGFjY29tbW9kYXRlIGJk ZXY8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgbW9kdWxlcyB3aG9zZSBjb2RlIGxp dmVzIG91dHNpZGUgb2YgU1BESy4gU1BESyBleHBlY3RzIHRoZW0gdG8gYmUgaW48YnI+CiZndDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgbGliL2JkZXYvJmx0O21vZHVsZV9uYW1lJmd0Oy4gSG93 ZXZlciwgdGhhdCdzIGEgZmFpcmx5IHN0cmFpZ2h0Zm9yd2FyZCBjaGFuZ2UgdG88YnI+CiZndDsg dGhlPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGJ1aWxkIHN5c3RlbSBhbmQgaXQn cyBvbmUgd2UndmUgYmVlbiBpbnRlbmRpbmcgdG8gbWFrZSBmb3Igc29tZSB0aW1lLjxicj4KJmd0 OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsgRm9yIHBvaW50ICMyLCB0aGlzIGlzIGxpa2VseSB0aGUgY2FzZSBmb3IgYSBsYXJnZSBudW1i ZXIgb2Ygc3RvcmFnZSBiYWNrLTxicj4KJmd0OyBlbmRzLDxicj4KJmd0OyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyBidXQgSSB0aGluayB0aGUgcHJvcGVyIHdheSB0byBzb2x2ZSBpdCBpcyBwcm9i YWJseSBiYWNrLWVuZCBzcGVjaWZpYyBhbmQ8YnI+CiZndDsgbm90PGJyPgomZ3Q7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7IGdlbmVyYWwgcHVycG9zZS4gQXMgYSBjb3VudGVyLXBvaW50LCBTUERL IGFscmVhZHkgaW50ZWdyYXRlcyB3aXRoIGEgbnVtYmVyPGJyPgomZ3Q7IG9mPGJyPgomZ3Q7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHRoaXJkLXBhcnR5IHN0b3JhZ2UgYmFjay1lbmRzIHRvZGF5 IChDZXBoIFJCRCwgbGliaXNjc2ksIGxpYmFpbywgZXRjLikgYW5kPGJyPgomZ3Q7IG5vbmU8YnI+ CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgb2YgdGhvc2UgZW5kZWQgdXAgbmVlZGluZyB0 byBwYXNzIG1lc3NhZ2VzIHRvIG90aGVyIHRocmVhZHMuIFRoZXkgYWxsPGJyPgomZ3Q7IHN1cHBv cnQ8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgYXN5bmNocm9ub3VzIG9wZXJhdGlv bnMsIHRob3VnaC4gSSBjb3VsZCBpbWFnaW5lIHdyaXRpbmcgYSBiZGV2IG1vZHVsZTxicj4KJmd0 OyB0aGF0PGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVsdGltYXRlbHkgbWFrZXMg UE9TSVggcHJlYWR2IGNhbGxzLCBmb3IgaW5zdGFuY2UuIFRoYXQgd291bGQgbmVlZCB0byBiZTxi cj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpbXBsZW1lbnRlZCB3aXRoIGEgdGhyZWFk IHBvb2wgYW5kIGVhY2ggYmRldl9pbyBnZXRzIGZ1bm5lbGVkIG9mZiB0byBhPGJyPgomZ3Q7IHRo cmVhZCBpbjxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB0aGUgcG9vbCB0byBwZXJm b3JtIHRoZSBibG9ja2luZyBvcGVyYXRpb24uPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7IDxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBPayAtIEkgZXhwbGFpbmVkIHdo YXQgSSB0aGluayBJJ20gdW5kZXJzdGFuZGluZy4gTm93IHRlbGwgbWUgd2hlcmUgSSB3ZW50PGJy PgomZ3Q7IHdyb25nPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDopPGJyPgomZ3Q7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyBUaGFua3MsPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IEJlbjxicj4KJmd0OyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg T24gU3VuLCAyMDE4LTA1LTA2IGF0IDEwOjMyICYjNDM7MDAwMCwgU2hhaGFyIFNhbHptYW4gd3Jv dGU6PGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgSGksPGJyPgomZ3Q7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7ICZndDsgSSBwdXNoZWQgdGhlIGNvZGUgZm9yIHJldmlldywgdGhhbmtzIERhbmllbCBmb3Ig dGhlIGhlbHAuPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgPGJyPgomZ3Q7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgSW4gYSBudXRzaGVsbDo8YnI+CiZndDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyAtIGJkZXZfdXNlciAtIGFuIEFQSSBmb3IgYSB1c2Vy IGFwcGxpYW5jZSB0byB1c2Ugc3BkayBhcyBhbiBpU0NTSS9OVk1lRjxicj4KJmd0OyB0YXJnZXQ8 YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyAtIGJkZXZfdXNlcl9leGFtcGxl IC0gcmVmZXJlbmNlIGFwcGxpY2F0aW9uPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 ICZndDsgLSBUaGUgQVBJIHJlbGllcyBvbiByaW5ncyBpbiBvcmRlciB0byBzdWJtaXQvY29tcGxl dGUgSU9zPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgLSBVc2VyIGFwcGxp YW5jZSByZWdpc3RlcnMgY2FsbGJhY2tzIGZvciBzdWJtaXRfaW8gKHNob3VsZCB3ZSBoYXZlPGJy PgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgcmVhZC93cml0ZS9vdGhlciBpbnN0 ZWFkPyk8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyAtIFVzZXIgYXBwbGlh bmNlIHJlZ2lzdGVycyBpdHMgZGV2aWNlcyBzbyB0aGF0IHRoZXkgbWF5IGJlIGFkZGVkIHRvIGFu PGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgZXhpc3RpbmcgbmFtZXNwYWNl IChJIGFtIHVzaW5nIFJQQyB0byBkbyB0aGUgbWFuYWdlbWVudCk8YnI+CiZndDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsgJmd0OyA8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0 OyBUaGFua3MsPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgU2hhaGFyPGJy PgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7ICZndDsgPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsg RnJvbTogU1BESyAmbHQ7PGEgaHJlZj0ibWFpbHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmci IHRhcmdldD0iX2JsYW5rIj5zcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnPC9hPiZndDsgb24gYmVo YWxmIG9mIFZlcmthbXAsIERhbmllbDxicj4KJmd0OyAmbHQ7PGEgaHJlZj0iaHR0cDovL2Rhbmll bC52ZSIgdGFyZ2V0PSJfYmxhbmsiPmRhbmllbC52ZTwvYT48YnI+CiZndDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsgJmd0OyA8YSBocmVmPSJtYWlsdG86cmthbXBAaW50ZWwuY29tIiB0YXJnZXQ9 Il9ibGFuayI+cmthbXBAaW50ZWwuY29tPC9hPiZndDs8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgJmd0OyBTZW50OiBUaHVyc2RheSwgTWF5IDMsIDIwMTggODo1MCBQTTxicj4KJmd0 OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IFRvOiBTdG9yYWdlIFBlcmZvcm1hbmNlIERl dmVsb3BtZW50IEtpdDxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IFN1Ympl Y3Q6IFJlOiBbU1BES10gU1BESyAmIzQzOyB1c2VyIHNwYWNlIGFwcGxpYW5jZTxicj4KJmd0OyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7Jm5ic3A7IDxicj4KJmd0OyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyAmZ3Q7IEhpIFNoYWhhciw8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsgJmd0OyZuYnNwOyA8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyBUaGUg dGFyZ2V0IGJyYW5jaCBmb3IgdGhlIHB1c2ggc2hvdWxkIGJlIKGucmVmcy9mb3IvbWFzdGVyoa8s IG5vdCChrm1hc3RlcqGvPGJyPgomZ3Q7IKhDIGlmPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7ICZndDsgeW91IGNvbmZpZ3VyZWQgYSByZW1vdGUgYXMgc3BlY2lmaWVkIGluIDxhIGNs YXNzPSJ4X21fMjk4MzQzMjg0NDE2MTg3NTg1M09XQUF1dG9MaW5rIiBpZD0ieF9tXzI5ODM0MzI4 NDQxNjE4NzU4NTNMUGxuazg0NDI1MSIgaHJlZj0iaHR0cHM6Ly9jbGlja3RpbWUuc3ltYW50ZWMu Y29tL2EvMS9yaC0zVkhaWXB1ZTgzNldMN3hrNlBlTmowN1Vhc2EtZjNtazFxRi1EbFQ4PT9kPUla NGFneFhfWnBxUGtXaU5uVE5yal9OQnMyRmh2VmhMMEM0dWk3dXNORmJ3V3ZhZUZMXzZ4eEVpSnNv SXNxUTdWNTJjV2FaRlZBQ05yXzFoN2pMV2JBd0ZzSWx1ZHhxdm91TGVSN0xsTE9mUTBiRmxQVXB2 Rlo2X1BNeTNDZldiVGVOc2JBRHRJQ0hDel9QT1RDYmFGcE5zdUkycmxxQjhwdXZ1WkpUUDNPeDQ2 ZWZxdzFGcmtTMGNOQnpnOGQtRXVQcmt3cTlPMFpfWDVKV2ZSSWV5QzhPZFEwTGdaYm1ZTGhIdjc0 RWY2Y1BOcVNseUxOSGljMEpsM0ljSDN5eVpvSjh5VzhfUzlZV0dDOEtjdHFvcnJVOXlkRFk1THhh Uml2WHlyNzNvUFcwekNpN0xfRl9ydWhGTG1LTkxMcUd5VHVJTFhuUzRvWXIzQ1FuM2ZKYzlPQ251 VmtVNHFQbkJYWk42NWVMR3hEVnRzWmlmeXNZNk5jbl85dkJlOWJXb01xcG1YNFB2Z0hScHN6MzJG U1BLaUhKZFUtcU5OaUdpRy1BWUlnREVqT0l3JmFtcDt1PWh0dHAlM0ElMkYlMkZ3d3cuc3Bkay5p byUyRmRldmVsb3BtZW50JTJGIiB0YXJnZXQ9Il9ibGFuayI+Cmh0dHA6Ly93d3cuc3Bkay5pby9k ZXZlbG9wbWVudC88L2E+PGJyPgomZ3Q7IGl0PGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7ICZndDsgc2hvdWxkIGxvb2sgbGlrZTo8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsgJmd0OyZuYnNwOyA8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyBbcmVt b3RlICZxdW90O3JldmlldyZxdW90O108YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg Jmd0OyZuYnNwOyZuYnNwOyB1cmwgPSA8YSBjbGFzcz0ieF9tXzI5ODM0MzI4NDQxNjE4NzU4NTNP V0FBdXRvTGluayIgaWQ9InhfbV8yOTgzNDMyODQ0MTYxODc1ODUzTFBsbms3NjQyODYiIGhyZWY9 Imh0dHBzOi8vY2xpY2t0aW1lLnN5bWFudGVjLmNvbS9hLzEvT2FQVnVWcjFHX0tYeDgyYnBXcTZx djQ1eGN6dzVHYkhYWHY3MDhSRHVaYz0/ZD1JWjRhZ3hYX1pwcVBrV2lOblROcmpfTkJzMkZodlZo TDBDNHVpN3VzTkZid1d2YWVGTF82eHhFaUpzb0lzcVE3VjUyY1dhWkZWQUNOcl8xaDdqTFdiQXdG c0lsdWR4cXZvdUxlUjdMbExPZlEwYkZsUFVwdkZaNl9QTXkzQ2ZXYlRlTnNiQUR0SUNIQ3pfUE9U Q2JhRnBOc3VJMnJscUI4cHV2dVpKVFAzT3g0NmVmcXcxRnJrUzBjTkJ6ZzhkLUV1UHJrd3E5TzBa X1g1SldmUklleUM4T2RRMExnWmJtWUxoSHY3NEVmNmNQTnFTbHlMTkhpYzBKbDNJY0gzeXlab0o4 eVc4X1M5WVdHQzhLY3Rxb3JyVTl5ZERZNUx4YVJpdlh5cjczb1BXMHpDaTdMX0ZfcnVoRkxtS05M THFHeVR1SUxYblM0b1lyM0NRbjNmSmM5T0NudVZrVTRxUG5CWFpONjVlTEd4RFZ0c1ppZnlzWTZO Y25fOXZCZTliV29NcXBtWDRQdmdIUnBzejMyRlNQS2lISmRVLXFOTmlHaUctQVlJZ0RFak9JdyZh bXA7dT1odHRwcyUzQSUyRiUyRnJldmlldy5nZXJyaXRodWIuaW8lMkZzcGRrJTJGc3BkayIgdGFy Z2V0PSJfYmxhbmsiPgpodHRwczovL3Jldmlldy5nZXJyaXRodWIuaW8vc3Bkay9zcGRrPC9hPjxi cj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7Jm5ic3A7Jm5ic3A7IHB1c2ggPSBI RUFEOnJlZnMvZm9yL21hc3Rlcjxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7 Jm5ic3A7IDxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IEZyb206IFNQREsg WzxhIGNsYXNzPSJ4X21fMjk4MzQzMjg0NDE2MTg3NTg1M09XQUF1dG9MaW5rIiBpZD0ieF9tXzI5 ODM0MzI4NDQxNjE4NzU4NTNMUGxuazEyODUyMSIgaHJlZj0ibWFpbHRvOnNwZGstYm91bmNlc0Bs aXN0cy4wMS5vcmciIHRhcmdldD0iX2JsYW5rIj5tYWlsdG86c3Bkay1ib3VuY2VzQGxpc3RzLjAx Lm9yZzwvYT5dIE9uIEJlaGFsZiBPZiBTaGFoYXI8YnI+CiZndDsgU2Fsem1hbjxicj4KJmd0OyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IFNlbnQ6IFRodXJzZGF5LCBNYXkgMywgMjAxOCAx OjAwIEFNPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgVG86IFN0b3JhZ2Ug UGVyZm9ybWFuY2UgRGV2ZWxvcG1lbnQgS2l0ICZsdDs8YSBocmVmPSJtYWlsdG86c3Bka0BsaXN0 cy4wMS5vcmciIHRhcmdldD0iX2JsYW5rIj5zcGRrQGxpc3RzLjAxLm9yZzwvYT4mZ3Q7PGJyPgom Z3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgU3ViamVjdDogUmU6IFtTUERLXSBTUERL ICYjNDM7IHVzZXIgc3BhY2UgYXBwbGlhbmNlPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7ICZndDsmbmJzcDsgPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgSGkg QmVuLDxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7Jm5ic3A7IDxicj4KJmd0 OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IEkgaGF2ZSB0aGUgY29kZSByZWFkeSBmb3Ig cmV2aWV3IChzcGRrL21hc3RlciBvbiBkcGRrLzE4LjAyKSwgYnV0IEkgZG88YnI+CiZndDsgbm90 PGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgaGF2ZSBwdXNoIHJpZ2h0cyBm b3IgZ2Vycml0aHViOjxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IHNoYWhh ci5zYWx6bWFuQHNoYWhhcnMtdm06fi9LYW1pbmFyaW8vZ2l0L3NwZGskIGdpdCBwdXNoIHNwZGst cmV2aWV3PGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgSEVBRDptYXN0ZXI8 YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyBQYXNzd29yZCBmb3IgJzxhIGNs YXNzPSJ4X21fMjk4MzQzMjg0NDE2MTg3NTg1M09XQUF1dG9MaW5rIiBpZD0ieF9tXzI5ODM0MzI4 NDQxNjE4NzU4NTNMUGxuazYxMTAwNyIgaHJlZj0iaHR0cHM6Ly9jbGlja3RpbWUuc3ltYW50ZWMu Y29tL2EvMS91ZDFpZmVkZzRBMlRPSVdsRVBvM2tSRlo2NEJITDZrVW1aM0xrckQ0OVFFPT9kPUla NGFneFhfWnBxUGtXaU5uVE5yal9OQnMyRmh2VmhMMEM0dWk3dXNORmJ3V3ZhZUZMXzZ4eEVpSnNv SXNxUTdWNTJjV2FaRlZBQ05yXzFoN2pMV2JBd0ZzSWx1ZHhxdm91TGVSN0xsTE9mUTBiRmxQVXB2 Rlo2X1BNeTNDZldiVGVOc2JBRHRJQ0hDel9QT1RDYmFGcE5zdUkycmxxQjhwdXZ1WkpUUDNPeDQ2 ZWZxdzFGcmtTMGNOQnpnOGQtRXVQcmt3cTlPMFpfWDVKV2ZSSWV5QzhPZFEwTGdaYm1ZTGhIdjc0 RWY2Y1BOcVNseUxOSGljMEpsM0ljSDN5eVpvSjh5VzhfUzlZV0dDOEtjdHFvcnJVOXlkRFk1THhh Uml2WHlyNzNvUFcwekNpN0xfRl9ydWhGTG1LTkxMcUd5VHVJTFhuUzRvWXIzQ1FuM2ZKYzlPQ251 VmtVNHFQbkJYWk42NWVMR3hEVnRzWmlmeXNZNk5jbl85dkJlOWJXb01xcG1YNFB2Z0hScHN6MzJG U1BLaUhKZFUtcU5OaUdpRy1BWUlnREVqT0l3JmFtcDt1PWh0dHBzJTNBJTJGJTJGU2hhaGFyU2Fs em1hbi1LJTQwcmV2aWV3LmdlcnJpdGh1Yi5pbyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vU2hh aGFyU2Fsem1hbi1LQHJldmlldy5nZXJyaXRodWIuaW88L2E+JzoKPGJyPgomZ3Q7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7ICZndDsgQ291bnRpbmcgb2JqZWN0czogMTA5LCBkb25lLjxicj4KJmd0 OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IENvbXByZXNzaW5nIG9iamVjdHM6IDEwMCUg KDIyLzIyKSwgZG9uZS48YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyBXcml0 aW5nIG9iamVjdHM6IDEwMCUgKDIyLzIyKSwgOC43MCBLaUIgfCAwIGJ5dGVzL3MsIGRvbmUuPGJy PgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgVG90YWwgMjIgKGRlbHRhIDE0KSwg cmV1c2VkIDAgKGRlbHRhIDApPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsg cmVtb3RlOiBSZXNvbHZpbmcgZGVsdGFzOiAxMDAlICgxNC8xNCk8YnI+CiZndDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsgJmd0OyByZW1vdGU6IEJyYW5jaCByZWZzL2hlYWRzL21hc3Rlcjo8YnI+ CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyByZW1vdGU6IFlvdSBhcmUgbm90IGFs bG93ZWQgdG8gcGVyZm9ybSB0aGlzIG9wZXJhdGlvbi48YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgJmd0OyByZW1vdGU6IFRvIHB1c2ggaW50byB0aGlzIHJlZmVyZW5jZSB5b3UgbmVl ZCAnUHVzaCcgcmlnaHRzLjxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IHJl bW90ZTogVXNlcjogU2hhaGFyU2Fsem1hbi1LPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7ICZndDsgcmVtb3RlOiBQbGVhc2UgcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgY29udGFj dCBhbiBhZG1pbmlzdHJhdG9yPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsg cmVtb3RlOiBpZiB5b3UgZmVlbCB0aGUgY29uZmlndXJhdGlvbiBpcyBpbmNvcnJlY3Q8YnI+CiZn dDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyByZW1vdGU6IFByb2Nlc3NpbmcgY2hhbmdl czogcmVmczogMSwgZG9uZSZuYnNwOyZuYnNwOyZuYnNwOyA8YnI+CiZndDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsgJmd0OyBUbyA8YSBjbGFzcz0ieF9tXzI5ODM0MzI4NDQxNjE4NzU4NTNPV0FB dXRvTGluayIgaWQ9InhfbV8yOTgzNDMyODQ0MTYxODc1ODUzTFBsbms2NDU1OTgiIGhyZWY9Imh0 dHBzOi8vY2xpY2t0aW1lLnN5bWFudGVjLmNvbS9hLzEvQ3owVXc5RW4xMmVOMEZZb1hkOWlhd0dT c1JWSUIyempQZ0dzTzROSExMVT0/ZD1JWjRhZ3hYX1pwcVBrV2lOblROcmpfTkJzMkZodlZoTDBD NHVpN3VzTkZid1d2YWVGTF82eHhFaUpzb0lzcVE3VjUyY1dhWkZWQUNOcl8xaDdqTFdiQXdGc0ls dWR4cXZvdUxlUjdMbExPZlEwYkZsUFVwdkZaNl9QTXkzQ2ZXYlRlTnNiQUR0SUNIQ3pfUE9UQ2Jh RnBOc3VJMnJscUI4cHV2dVpKVFAzT3g0NmVmcXcxRnJrUzBjTkJ6ZzhkLUV1UHJrd3E5TzBaX1g1 SldmUklleUM4T2RRMExnWmJtWUxoSHY3NEVmNmNQTnFTbHlMTkhpYzBKbDNJY0gzeXlab0o4eVc4 X1M5WVdHQzhLY3Rxb3JyVTl5ZERZNUx4YVJpdlh5cjczb1BXMHpDaTdMX0ZfcnVoRkxtS05MTHFH eVR1SUxYblM0b1lyM0NRbjNmSmM5T0NudVZrVTRxUG5CWFpONjVlTEd4RFZ0c1ppZnlzWTZOY25f OXZCZTliV29NcXBtWDRQdmdIUnBzejMyRlNQS2lISmRVLXFOTmlHaUctQVlJZ0RFak9JdyZhbXA7 dT1odHRwcyUzQSUyRiUyRlNoYWhhclNhbHptYW4tSyU0MHJldmlldy5nZXJyaXRodWIuaW8lMkZh JTJGc3BkayUyRnNwZGsiIHRhcmdldD0iX2JsYW5rIj4KaHR0cHM6Ly9TaGFoYXJTYWx6bWFuLUtA cmV2aWV3LmdlcnJpdGh1Yi5pby9hL3NwZGsvc3BkazwvYT48YnI+CiZndDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsgJmd0OyZuYnNwOyAhIFtyZW1vdGUgcmVqZWN0ZWRdIEhFQUQgLSZndDsgbWFz dGVyIChwcm9oaWJpdGVkIGJ5IEdlcnJpdDogcmVmIHVwZGF0ZTxicj4KJmd0OyBhY2Nlc3M8YnI+ CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyBkZW5pZWQpPGJyPgo8L2Rpdj4KPC9z cGFuPjwvZm9udD48L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdj4KPGRpdiBpZD0ieF9t XzI5ODM0MzI4NDQxNjE4NzU4NTNkaXZ0YWdkZWZhdWx0d3JhcHBlciIgc3R5bGU9ImZvbnQtc2l6 ZToxMnB0OyBjb2xvcjojMDAwMDAwOyBmb250LWZhbWlseTpDYWxpYnJpLEhlbHZldGljYSxzYW5z LXNlcmlmIj4KPGRpdj4KPGRpdiBjbGFzcz0ieF9tXzI5ODM0MzI4NDQxNjE4NzU4NTN4X0JvZHlG cmFnbWVudCI+PGZvbnQgc2l6ZT0iMiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0Ij4KPGRp diBjbGFzcz0ieF9tXzI5ODM0MzI4NDQxNjE4NzU4NTN4X1BsYWluVGV4dCI+Jmd0OyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IGVycm9yOiBmYWlsZWQgdG8gcHVzaCBzb21lIHJlZnMgdG8g JzxhIGNsYXNzPSJ4X21fMjk4MzQzMjg0NDE2MTg3NTg1M09XQUF1dG9MaW5rIiBpZD0ieF9tXzI5 ODM0MzI4NDQxNjE4NzU4NTNMUGxuazgxNDY4NSI+PC9hPjxhIGhyZWY9Imh0dHBzOi8vY2xpY2t0 aW1lLnN5bWFudGVjLmNvbS9hLzEvaVBBTWZpOUpUZ3JDc0Jwai0zZFRPaXdqUmc0VE8wUjlwLTUz MnpmdlRKbz0/ZD1JWjRhZ3hYX1pwcVBrV2lOblROcmpfTkJzMkZodlZoTDBDNHVpN3VzTkZid1d2 YWVGTF82eHhFaUpzb0lzcVE3VjUyY1dhWkZWQUNOcl8xaDdqTFdiQXdGc0lsdWR4cXZvdUxlUjdM bExPZlEwYkZsUFVwdkZaNl9QTXkzQ2ZXYlRlTnNiQUR0SUNIQ3pfUE9UQ2JhRnBOc3VJMnJscUI4 cHV2dVpKVFAzT3g0NmVmcXcxRnJrUzBjTkJ6ZzhkLUV1UHJrd3E5TzBaX1g1SldmUklleUM4T2RR MExnWmJtWUxoSHY3NEVmNmNQTnFTbHlMTkhpYzBKbDNJY0gzeXlab0o4eVc4X1M5WVdHQzhLY3Rx b3JyVTl5ZERZNUx4YVJpdlh5cjczb1BXMHpDaTdMX0ZfcnVoRkxtS05MTHFHeVR1SUxYblM0b1ly M0NRbjNmSmM5T0NudVZrVTRxUG5CWFpONjVlTEd4RFZ0c1ppZnlzWTZOY25fOXZCZTliV29NcXBt WDRQdmdIUnBzejMyRlNQS2lISmRVLXFOTmlHaUctQVlJZ0RFak9JdyZhbXA7dT1odHRwcyUzQSUy RiUyRlNoYWhhclNhbHptYW4tSyU0MHJldmlldy5nZXJyaSIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBz Oi8vY2xpY2t0aW1lLnN5bWFudGVjLmNvbS9hLzEvaVBBTWZpOUpUZ3JDc0Jwai0zZFRPaXdqUmc0 VE8wUjlwLTUzMnpmdlRKbz0/ZD1JWjRhZ3hYX1pwcVBrV2lOblROcmpfTkJzMkZodlZoTDBDNHVp N3VzTkZid1d2YWVGTF82eHhFaUpzb0lzcVE3VjUyY1dhWkZWQUNOcl8xaDdqTFdiQXdGc0lsdWR4 cXZvdUxlUjdMbExPZlEwYkZsUFVwdkZaNl9QTXkzQ2ZXYlRlTnNiQUR0SUNIQ3pfUE9UQ2JhRnBO c3VJMnJscUI4cHV2dVpKVFAzT3g0NmVmcXcxRnJrUzBjTkJ6ZzhkLUV1UHJrd3E5TzBaX1g1Sldm UklleUM4T2RRMExnWmJtWUxoSHY3NEVmNmNQTnFTbHlMTkhpYzBKbDNJY0gzeXlab0o4eVc4X1M5 WVdHQzhLY3Rxb3JyVTl5ZERZNUx4YVJpdlh5cjczb1BXMHpDaTdMX0ZfcnVoRkxtS05MTHFHeVR1 SUxYblM0b1lyM0NRbjNmSmM5T0NudVZrVTRxUG5CWFpONjVlTEd4RFZ0c1ppZnlzWTZOY25fOXZC ZTliV29NcXBtWDRQdmdIUnBzejMyRlNQS2lISmRVLXFOTmlHaUctQVlJZ0RFak9JdyZhbXA7dT1o dHRwcyUzQSUyRiUyRlNoYWhhclNhbHptYW4tSyU0MHJldmlldy5nZXJyaTwvYT48L2Rpdj4KPC9z cGFuPjwvZm9udD48L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdj4KPGRpdiBpZD0ieF9t XzI5ODM0MzI4NDQxNjE4NzU4NTNkaXZ0YWdkZWZhdWx0d3JhcHBlciIgc3R5bGU9ImZvbnQtc2l6 ZToxMnB0OyBjb2xvcjojMDAwMDAwOyBmb250LWZhbWlseTpDYWxpYnJpLEhlbHZldGljYSxzYW5z LXNlcmlmIj4KPGRpdj4KPGRpdiBjbGFzcz0ieF9tXzI5ODM0MzI4NDQxNjE4NzU4NTN4X0JvZHlG cmFnbWVudCI+PGZvbnQgc2l6ZT0iMiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0Ij4KPGRp diBjbGFzcz0ieF9tXzI5ODM0MzI4NDQxNjE4NzU4NTN4X1BsYWluVGV4dCI+PGJyPgomZ3Q7IHRo dWIuaTxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IG8vYS9zcGRrL3NwZGsn PGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsmbmJzcDsgPGJyPgomZ3Q7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgQW0gSSBkb2luZyBzb21ldGhpbmcgaW5jb3JyZWN0 LCBvciBpcyB0aGlzIGp1c3QgYSBwZXJtaXNzaW9uIGlzc3VlPzxicj4KJmd0OyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyAmZ3Q7Jm5ic3A7IDxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyAmZ3Q7IFRoYW5rcyw8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyBTaGFo YXI8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyBGcm9tOiBTUERLICZsdDs8 YSBocmVmPSJtYWlsdG86c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9yZyIgdGFyZ2V0PSJfYmxhbmsi PnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmc8L2E+Jmd0OyBvbiBiZWhhbGYgb2YgU2hhaGFyIFNh bHptYW48YnI+CiZndDsgJmx0O3NoYWhhci5zYWw8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsgJmd0OyA8YSBocmVmPSJtYWlsdG86em1hbkBrYW1pbmFyaW8uY29tIiB0YXJnZXQ9Il9i bGFuayI+em1hbkBrYW1pbmFyaW8uY29tPC9hPiZndDs8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgJmd0OyBTZW50OiBXZWRuZXNkYXksIEFwcmlsIDI1LCAyMDE4IDk6MDI6MzggQU08 YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyBUbzogU3RvcmFnZSBQZXJmb3Jt YW5jZSBEZXZlbG9wbWVudCBLaXQ8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0 OyBTdWJqZWN0OiBSZTogW1NQREtdIFNQREsgJiM0MzsgdXNlciBzcGFjZSBhcHBsaWFuY2U8YnI+ CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyZuYnNwOyA8YnI+CiZndDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsgJmd0OyBIaSBCZW4sPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7ICZndDsmbmJzcDsgPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsg VGhlIGNvZGUgaXMgY3VycmVudGx5IHdvcmtpbmcgb24gdjE3LjA3LCB3ZSBhcmUgcGxhbm5pbmcg b24gYnVtcGluZyB0aGU8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyB2ZXJz aW9uIHRvIG9uZSBvZiB0aGUgbGF0ZXN0IHN0YWJsZSB2ZXJzaW9ucyAoMTguMDE/KSAmIzQzOyBt YXN0ZXIuPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgSXQgd2lsbCB0YWtl IG1lIChob3BlZnVsbHkpIGEgZmV3IGRheXMgdG8gdXBkYXRlIHRoZSBjb2RlIGFuZCBoYXZlIG91 cjxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IGludGVybmFsIENJIHN0YXJ0 IHJ1bm5pbmcgb24gdGhpcyB2ZXJzaW9uLCBub3Qgc3VyZSBpdCB3b3VsZCBiZSB1c2VmdWwsPGJy PgomZ3Q7IGJ1dCBJPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgY2FuIGdl dCBvdXIgd29ya2luZyAxNy4wNyBjb2RlICgmIzQzOyByZWZlcmVuY2UgYXBwbGljYXRpb24pIGZv ciByZXZpZXcgbXVjaDxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IGZhc3Rl ci48YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyBXaGF0IGlzIHRoZSBiZXN0 IGNvdXJzZSBvZiBhY3Rpb24/PGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsm bmJzcDsgPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgU2hhaGFyPGJyPgom Z3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgRnJvbTogU1BESyAmbHQ7PGEgaHJlZj0i bWFpbHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmciIHRhcmdldD0iX2JsYW5rIj5zcGRrLWJv dW5jZXNAbGlzdHMuMDEub3JnPC9hPiZndDsgb24gYmVoYWxmIG9mIFdhbGtlciwgQmVuamFtaW48 YnI+CiZndDsgJmx0O2JlbmphbWluPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZn dDsgLjxhIGhyZWY9Im1haWx0bzp3YWxrZXJAaW50ZWwuY29tIiB0YXJnZXQ9Il9ibGFuayI+d2Fs a2VyQGludGVsLmNvbTwvYT4mZ3Q7PGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZn dDsgU2VudDogVHVlc2RheSwgQXByaWwgMjQsIDIwMTggNzoxOToxMiBQTTxicj4KJmd0OyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IFRvOiBTdG9yYWdlIFBlcmZvcm1hbmNlIERldmVsb3Bt ZW50IEtpdDxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IFN1YmplY3Q6IFJl OiBbU1BES10gU1BESyAmIzQzOyB1c2VyIHNwYWNlIGFwcGxpYW5jZTxicj4KJmd0OyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyAmZ3Q7Jm5ic3A7IDxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyAmZ3Q7IEhpIFNoYWhhciw8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0 OyZuYnNwOyA8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyBXb3VsZCB5b3Ug YmUgd2lsbGluZyB0byBzdWJtaXQgeW91ciBiZGV2IG1vZHVsZSBhcyBhIHBhdGNoIG9uIEdlcnJp dEh1Yj88YnI+CiZndDsgVGhhdDxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7 IHdheSBldmVyeW9uZSBjYW4gdGFrZSBhIGxvb2sgYW5kIHByb3ZpZGUgZmVlZGJhY2suIElmIHlv dSBkb26hr3Qgd2FudCBpdDxicj4KJmd0OyB0byBydW48YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgJmd0OyB0aGUgdGVzdHMsIHlvdSBjYW4gcHV0IFtSRkNdIGFuZCB0aGUgYmVnaW5u aW5nIG9mIHRoZSBjb21taXQgbWVzc2FnZS48YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsgJmd0OyZuYnNwOyA8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyBUaGFu a3MsPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgQmVuPGJyPgomZ3Q7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsmbmJzcDsgPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7ICZndDsgRnJvbTogU1BESyBbPGEgY2xhc3M9InhfbV8yOTgzNDMyODQ0MTYxODc1 ODUzT1dBQXV0b0xpbmsiIGlkPSJ4X21fMjk4MzQzMjg0NDE2MTg3NTg1M0xQbG5rNDI2OTMzIiBo cmVmPSJtYWlsdG86c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPm1h aWx0bzpzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnPC9hPl0gT24gQmVoYWxmIE9mIFNoYWhhcjxi cj4KJmd0OyBTYWx6bWFuPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgU2Vu dDogTW9uZGF5LCBBcHJpbCAyMywgMjAxOCA4OjQ1IEFNPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7ICZndDsgVG86IDxhIGhyZWY9Im1haWx0bzpzcGRrQGxpc3RzLjAxLm9yZyIgdGFy Z2V0PSJfYmxhbmsiPnNwZGtAbGlzdHMuMDEub3JnPC9hPjxicj4KJmd0OyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyAmZ3Q7IFN1YmplY3Q6IFJlOiBbU1BES10gU1BESyAmIzQzOyB1c2VyIHNwYWNl IGFwcGxpYW5jZTxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7Jm5ic3A7IDxi cj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IEhpIEJlbiw8YnI+CiZndDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyZuYnNwOyA8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgJmd0OyBCdW1waW5nIHRoaXMgdGhyZWFkIHNpbmNlIEkndmUgYmVlbiBoYXZpbmcg c29tZSBuZXcgdGhvdWdodHMgb24gdGhlPGJyPgomZ3Q7IGlzc3VlIG5vdzxicj4KJmd0OyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IHRoYXQgd2UgYXJlIHN0YXJ0aW5nIGludGVncmF0aW9u IHdpdGggbmV3ZXIgc3BkayB2ZXJzaW9ucy48YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsgJmd0OyBVbmZvcnR1bmF0ZWx5IHRoZSBtZXJnZSBpc24ndCBhcyBzbW9vdGggYXMgSSdkIGxp a2UgaXQgdG8gYmUgc2luY2UgdGhlPGJyPgomZ3Q7IGJkZXY8YnI+CiZndDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsgJmd0OyBtb2R1bGUgaXMgcHJldHR5IHRpZ2h0bHkgaW50ZWdyYXRlZCBpbnRv IHNwZGssIHBlcmhhcHMgd2UgbWFkZSBzb21lPGJyPgomZ3Q7IGZhbHNlPGJyPgomZ3Q7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgYXNzdW1wdGlvbnMgd3JpdGluZyB0aGUgbW9kdWxlLCBi dXQgaXQgc2VlbXMgc29tZSBvZiB0aGUgbmV3ZXIgc3Bkazxicj4KJmd0OyBmZWF0dXJlczxicj4K Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IGFyZSBjb21wbGljYXRpbmcgdGhlIGlu dGVncmF0aW9uLjxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IE15IHF1ZXN0 aW9uIGlzLCBpZiB0aGlzIHBhc3N0aHJvdWdoIG1vZHVsZSBpcyB1c2VmdWwsIHdvdWxkbid0IGl0 IGJlPGJyPgomZ3Q7IGJldHRlciB0bzxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAm Z3Q7IG1haW50YWluIGl0IGFzIHBhcnQgb2Ygc3BkayBzbyB0aGF0IHdlIGNhbiBjYXRjaCBpc3N1 ZXMgYXMgc29vbiBhcyB0aGV5PGJyPgomZ3Q7IHNob3c8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgJmd0OyB1cD88YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyBX ZSB3b3VsZCBiZSBoYXBweSB0byBoZWxwIHdpdGggbWFpbnRhaW5pbmcgdGhpcyBtb2R1bGUsIHRo ZSBtb2R1bGUgd2l0aDxicj4KJmd0OyBpczxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyAmZ3Q7IGN1cnJlbnRseSBwYXJ0IG9mIG91ciBDSSB3aXRoIG91ciAmcXVvdDtmcm96ZW4mcXVv dDsgc3BkayB2ZXJzaW9uLCBidXQgb25jZTxicj4KJmd0OyBpbnRlZ3JhdGVkPGJyPgomZ3Q7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgaW50byB0aGUgbmV3ZXIgdmVyc2lvbiB3ZSBjaG9v c2UsIEknbGwgYWRkIGl0IHRvIHRoZSBDSSBvdXIgQ0kgYXMgd2VsbC48YnI+CiZndDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsgJmd0OyZuYnNwOyA8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsgJmd0OyBTaGFoYXI8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyBG cm9tOiBTUERLICZsdDs8YSBocmVmPSJtYWlsdG86c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9yZyIg dGFyZ2V0PSJfYmxhbmsiPnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmc8L2E+Jmd0OyBvbiBiZWhh bGYgb2YgV2Fsa2VyLCBCZW5qYW1pbjxicj4KJmd0OyAmbHQ7YmVuamFtaW48YnI+CiZndDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyAuPGEgaHJlZj0ibWFpbHRvOndhbGtlckBpbnRlbC5j b20iIHRhcmdldD0iX2JsYW5rIj53YWxrZXJAaW50ZWwuY29tPC9hPiZndDs8YnI+CiZndDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyBTZW50OiBGcmlkYXksIEZlYnJ1YXJ5IDIsIDIwMTgg MTE6NDM6NTggUE08YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyBUbzogPGEg aHJlZj0ibWFpbHRvOnNwZGtAbGlzdHMuMDEub3JnIiB0YXJnZXQ9Il9ibGFuayI+c3Bka0BsaXN0 cy4wMS5vcmc8L2E+PGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgU3ViamVj dDogUmU6IFtTUERLXSBTUERLICYjNDM7IHVzZXIgc3BhY2UgYXBwbGlhbmNlPGJyPgomZ3Q7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsmbmJzcDsgPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7ICZndDsgT24gVGh1LCAyMDE4LTAyLTAxIGF0IDA4OjI5ICYjNDM7MDAwMCwgU2hh aGFyIFNhbHptYW4gd3JvdGU6PGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsg Jmd0OyBIaSBCZW4sPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgJmd0OyA8 YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyAmZ3Q7IFdvdWxkIHlvdSBhbHNv IGxpa2UgdG8gdGFrZSBhIGxvb2sgYXQgdGhlIGJkZXZfdXNlciBtb2R1bGU/PGJyPgomZ3Q7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgJmd0OyBJdCBzdGlsbCBuZWVkcyBzb21lIHBhdGNo aW5nIChhcyBzb21lIG9mIHRoZSBzdHVmZiBpcyBzdGlsbCBoYXJkPGJyPgomZ3Q7IGNvZGVkKSwg YnV0PGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgSTxicj4KJmd0OyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7ICZndDsgdGhpbmsgd2UgY2FuIGdldCBtb3N0IG9mIGl0 IGNsZWFuZWQgdXAgaW4gYSBjb3VwbGUgb2YgZGF5cy48YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgJmd0OyAmZ3Q7IDxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7 ICZndDsgSW4gYW55IGNhc2UsIGlzIGl0IHRoZSBpbnRlbnRpb24gdGhhdCB0aGUgdXNlciB3cml0 ZSBoaXMgb3duIGJkZXY8YnI+CiZndDsgbW9kdWxlLCBvcjxicj4KJmd0OyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyAmZ3Q7ICZndDsgd291bGQgdGhpcyB1c2VyIGFwcGxpYW5jZSBnbHVlIGJlIGEg dXNlZnVsIGdlbmVyaWMgbW9kdWxlPzxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAm Z3Q7IDxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IEZvciBleGlzdGluZyBz dG9yYWdlIHN0YWNrcyB0aGF0IHNlcnZlIGJsb2NrIEkvTywgbGlrZSB0aGUgaW50ZXJuYWxzIG9m PGJyPgomZ3Q7IGEgU0FOLDxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IHRo ZSBpZGVhIGlzIHRoYXQgeW91IHdyaXRlIHlvdXIgb3duIGJkZXYgbW9kdWxlIHRvIGZvcndhcmQg SS9PIGNvbWluZzxicj4KJmd0OyBvdXQgb2Y8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsgJmd0OyB0aGU8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyBTUERLIGJk ZXYgbGF5ZXIuIFRoZW4geW91IGNhbiB1c2UgdGhlIFNQREsgaVNDU0kvTlZNZS1vRi92aG9zdCB0 YXJnZXRzPGJyPgomZ3Q7IG1vc3RseTxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAm Z3Q7IGFzLWlzLjxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IDxicj4KJmd0 OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IEluIHNvbWUgY2FzZXMsIHRoZSBhY3R1YWwg aVNDU0kvTlZNZS1vRi92aG9zdCB0YXJnZXQgYXBwbGljYXRpb25zIHdvbid0PGJyPgomZ3Q7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgaW50ZWdyYXRlIG5pY2VseSBkaXJlY3RseSBpbnRv IGFuIGV4aXN0aW5nIHN0b3JhZ2UgYXBwbGljYXRpb24gYmVjYXVzZTxicj4KJmd0OyB0aGV5PGJy PgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgc3Bhd24gdGhlaXIgb3duIHRocmVh ZHMgYW5kIGFsbG9jYXRlIHRoZWlyIG93biBtZW1vcnkuIFRvIHN1cHBvcnQgdGhhdCw8YnI+CiZn dDsgdGhlPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgbGlicmFyaWVzIG1h eSBiZSBjb25zdW1lZCBkaXJlY3RseSBpbnN0ZWFkIG9mIHRoZSBhcHBsaWNhdGlvbnM8YnI+CiZn dDsgKGxpYi9pc2NzaSw8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyBsaWIv c2NzaSwgbGliL252bWYsIGV0Yy4pLiBUaGUgbGlicmFyaWVzIGRvbid0IHNwYXduIGFueSBvZiB0 aGVpciBvd248YnI+CiZndDsgdGhyZWFkcyw8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsgJmd0OyBidXQgaW5zdGVhZCByZWx5IG9uIFNQREsncyBhYnN0cmFjdGlvbnMgaW4gaW5jbHVk ZS9zcGRrL2lvX2NoYW5uZWwuaC48YnI+CiZndDsgU2VlPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7ICZndDsgPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgPGEg Y2xhc3M9InhfbV8yOTgzNDMyODQ0MTYxODc1ODUzT1dBQXV0b0xpbmsiIGlkPSJ4X21fMjk4MzQz Mjg0NDE2MTg3NTg1M0xQbG5rNDU5MzM2IiBocmVmPSJodHRwczovL2NsaWNrdGltZS5zeW1hbnRl Yy5jb20vYS8xL01TM2NlNk02NFBMV3VqLXFsME9UdVVZWUxlaGg0clhGS0VMOUZ5d1ozNU09P2Q9 SVo0YWd4WF9acHFQa1dpTm5UTnJqX05CczJGaHZWaEwwQzR1aTd1c05GYndXdmFlRkxfNnh4RWlK c29Jc3FRN1Y1MmNXYVpGVkFDTnJfMWg3akxXYkF3RnNJbHVkeHF2b3VMZVI3TGxMT2ZRMGJGbFBV cHZGWjZfUE15M0NmV2JUZU5zYkFEdElDSEN6X1BPVENiYUZwTnN1STJybHFCOHB1dnVaSlRQM094 NDZlZnF3MUZya1MwY05Cemc4ZC1FdVBya3dxOU8wWl9YNUpXZlJJZXlDOE9kUTBMZ1pibVlMaEh2 NzRFZjZjUE5xU2x5TE5IaWMwSmwzSWNIM3l5Wm9KOHlXOF9TOVlXR0M4S2N0cW9yclU5eWREWTVM eGFSaXZYeXI3M29QVzB6Q2k3TF9GX3J1aEZMbUtOTExxR3lUdUlMWG5TNG9ZcjNDUW4zZkpjOU9D bnVWa1U0cVBuQlhaTjY1ZUxHeERWdHNaaWZ5c1k2TmNuXzl2QmU5YldvTXFwbVg0UHZnSFJwc3oz MkZTUEtpSEpkVS1xTk5pR2lHLUFZSWdERWpPSXcmYW1wO3U9aHR0cCUzQSUyRiUyRnd3dy5zcGRr LmlvJTJGZG9jJTJGY29uY3VycmVuY3kuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPgpodHRwOi8vd3d3 LnNwZGsuaW8vZG9jL2NvbmN1cnJlbmN5Lmh0bWw8L2E+PGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7ICZndDsgPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgV2Ug ZG9uJ3QgY3VycmVudGx5IGhhdmUgYSB3YXkgdG8gd3JpdGUgYSBjdXN0b20gYmRldiBtb2R1bGUg dGhhdCByZXNpZGVzPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgb3V0c2lk ZTxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IG9mIHRoZSBTUERLIHNvdXJj ZSB0cmVlLCBidXQgaXQncyB2ZXJ5IHBvc3NpYmxlIHRvIGFkZCBzdXBwb3J0IGZvciB0aGF0Ljxi cj4KJmd0OyBCdXQ8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyBiZXlvbmQg dGhhdCBpbmNvbnZlbmllbmNlIChqdXN0IGRyb3AgeW91ciBtb2R1bGUgaW4gbGliL2JkZXYgZm9y IG5vdyksPGJyPgomZ3Q7IHdyaXRpbmc8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg Jmd0OyBhPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgYmRldiBtb2R1bGUg aXMgdGhlIHJlY29tbWVuZGVkIHdheSBvZiBpbnRlcmFjdGluZyB3aXRoIHRoZSBib3R0b20gZW5k IG9mPGJyPgomZ3Q7IHRoZTxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IFNQ REsgYmRldiBsYXllci4gSSB0aGluayB0aGF0J3Mgd2hhdCB5b3UgcmVhbGx5IHdhbnQgdG8gYmUg ZG9pbmcgaW4geW91cjxicj4KJmd0OyBjb2RlLDxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyAmZ3Q7IGZyb20gd2hhdCBJIGNhbiB0ZWxsLjxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyAmZ3Q7IDxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IEkgaG9w ZSB0aGF0IGhlbHBzITxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPgomZ3Q7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsgU1BESyBtYWlsaW5nIGxpc3Q8YnI+CiZndDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsgJmd0OyA8YSBocmVmPSJtYWlsdG86U1BES0BsaXN0cy4wMS5vcmci IHRhcmdldD0iX2JsYW5rIj5TUERLQGxpc3RzLjAxLm9yZzwvYT48YnI+CiZndDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsgJmd0OyA8YSBjbGFzcz0ieF9tXzI5ODM0MzI4NDQxNjE4NzU4NTNPV0FB dXRvTGluayIgaWQ9InhfbV8yOTgzNDMyODQ0MTYxODc1ODUzTFBsbms0MTE4NzYiIGhyZWY9Imh0 dHBzOi8vY2xpY2t0aW1lLnN5bWFudGVjLmNvbS9hLzEvYjJyZHNmNjlMdjdqcndta3RnNFhqQjh6 eHBfdHBHM0V4Z043NFJ0YWJfMD0/ZD1JWjRhZ3hYX1pwcVBrV2lOblROcmpfTkJzMkZodlZoTDBD NHVpN3VzTkZid1d2YWVGTF82eHhFaUpzb0lzcVE3VjUyY1dhWkZWQUNOcl8xaDdqTFdiQXdGc0ls dWR4cXZvdUxlUjdMbExPZlEwYkZsUFVwdkZaNl9QTXkzQ2ZXYlRlTnNiQUR0SUNIQ3pfUE9UQ2Jh RnBOc3VJMnJscUI4cHV2dVpKVFAzT3g0NmVmcXcxRnJrUzBjTkJ6ZzhkLUV1UHJrd3E5TzBaX1g1 SldmUklleUM4T2RRMExnWmJtWUxoSHY3NEVmNmNQTnFTbHlMTkhpYzBKbDNJY0gzeXlab0o4eVc4 X1M5WVdHQzhLY3Rxb3JyVTl5ZERZNUx4YVJpdlh5cjczb1BXMHpDaTdMX0ZfcnVoRkxtS05MTHFH eVR1SUxYblM0b1lyM0NRbjNmSmM5T0NudVZrVTRxUG5CWFpONjVlTEd4RFZ0c1ppZnlzWTZOY25f OXZCZTliV29NcXBtWDRQdmdIUnBzejMyRlNQS2lISmRVLXFOTmlHaUctQVlJZ0RFak9JdyZhbXA7 dT1odHRwcyUzQSUyRiUyRmxpc3RzLjAxLm9yZyUyRm1haWxtYW4lMkZsaXN0aW5mbyUyRnNwZGsi IHRhcmdldD0iX2JsYW5rIj4KaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9z cGRrPC9hPjxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IDxicj4KJmd0OyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmZ3Q7IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZndDsg U1BESyBtYWlsaW5nIGxpc3Q8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyA8 YSBocmVmPSJtYWlsdG86U1BES0BsaXN0cy4wMS5vcmciIHRhcmdldD0iX2JsYW5rIj5TUERLQGxp c3RzLjAxLm9yZzwvYT48YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyA8YSBj bGFzcz0ieF9tXzI5ODM0MzI4NDQxNjE4NzU4NTNPV0FBdXRvTGluayIgaWQ9InhfbV8yOTgzNDMy ODQ0MTYxODc1ODUzTFBsbms0MzExNDkiIGhyZWY9Imh0dHBzOi8vY2xpY2t0aW1lLnN5bWFudGVj LmNvbS9hLzEvYjJyZHNmNjlMdjdqcndta3RnNFhqQjh6eHBfdHBHM0V4Z043NFJ0YWJfMD0/ZD1J WjRhZ3hYX1pwcVBrV2lOblROcmpfTkJzMkZodlZoTDBDNHVpN3VzTkZid1d2YWVGTF82eHhFaUpz b0lzcVE3VjUyY1dhWkZWQUNOcl8xaDdqTFdiQXdGc0lsdWR4cXZvdUxlUjdMbExPZlEwYkZsUFVw dkZaNl9QTXkzQ2ZXYlRlTnNiQUR0SUNIQ3pfUE9UQ2JhRnBOc3VJMnJscUI4cHV2dVpKVFAzT3g0 NmVmcXcxRnJrUzBjTkJ6ZzhkLUV1UHJrd3E5TzBaX1g1SldmUklleUM4T2RRMExnWmJtWUxoSHY3 NEVmNmNQTnFTbHlMTkhpYzBKbDNJY0gzeXlab0o4eVc4X1M5WVdHQzhLY3Rxb3JyVTl5ZERZNUx4 YVJpdlh5cjczb1BXMHpDaTdMX0ZfcnVoRkxtS05MTHFHeVR1SUxYblM0b1lyM0NRbjNmSmM5T0Nu dVZrVTRxUG5CWFpONjVlTEd4RFZ0c1ppZnlzWTZOY25fOXZCZTliV29NcXBtWDRQdmdIUnBzejMy RlNQS2lISmRVLXFOTmlHaUctQVlJZ0RFak9JdyZhbXA7dT1odHRwcyUzQSUyRiUyRmxpc3RzLjAx Lm9yZyUyRm1haWxtYW4lMkZsaXN0aW5mbyUyRnNwZGsiIHRhcmdldD0iX2JsYW5rIj4KaHR0cHM6 Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9zcGRrPC9hPjxicj4KJmd0OyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXzxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBTUERLIG1haWxpbmcgbGlz dDxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YSBocmVmPSJtYWlsdG86U1BES0Bs aXN0cy4wMS5vcmciIHRhcmdldD0iX2JsYW5rIj5TUERLQGxpc3RzLjAxLm9yZzwvYT48YnI+CiZn dDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgY2xhc3M9InhfbV8yOTgzNDMyODQ0MTYxODc1 ODUzT1dBQXV0b0xpbmsiIGlkPSJ4X21fMjk4MzQzMjg0NDE2MTg3NTg1M0xQbG5rMzk0MzQ2IiBo cmVmPSJodHRwczovL2NsaWNrdGltZS5zeW1hbnRlYy5jb20vYS8xL2IycmRzZjY5THY3anJ3bWt0 ZzRYakI4enhwX3RwRzNFeGdONzRSdGFiXzA9P2Q9SVo0YWd4WF9acHFQa1dpTm5UTnJqX05CczJG aHZWaEwwQzR1aTd1c05GYndXdmFlRkxfNnh4RWlKc29Jc3FRN1Y1MmNXYVpGVkFDTnJfMWg3akxX YkF3RnNJbHVkeHF2b3VMZVI3TGxMT2ZRMGJGbFBVcHZGWjZfUE15M0NmV2JUZU5zYkFEdElDSEN6 X1BPVENiYUZwTnN1STJybHFCOHB1dnVaSlRQM094NDZlZnF3MUZya1MwY05Cemc4ZC1FdVBya3dx OU8wWl9YNUpXZlJJZXlDOE9kUTBMZ1pibVlMaEh2NzRFZjZjUE5xU2x5TE5IaWMwSmwzSWNIM3l5 Wm9KOHlXOF9TOVlXR0M4S2N0cW9yclU5eWREWTVMeGFSaXZYeXI3M29QVzB6Q2k3TF9GX3J1aEZM bUtOTExxR3lUdUlMWG5TNG9ZcjNDUW4zZkpjOU9DbnVWa1U0cVBuQlhaTjY1ZUxHeERWdHNaaWZ5 c1k2TmNuXzl2QmU5YldvTXFwbVg0UHZnSFJwc3ozMkZTUEtpSEpkVS1xTk5pR2lHLUFZSWdERWpP SXcmYW1wO3U9aHR0cHMlM0ElMkYlMkZsaXN0cy4wMS5vcmclMkZtYWlsbWFuJTJGbGlzdGluZm8l MkZzcGRrIiB0YXJnZXQ9Il9ibGFuayI+Cmh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlz dGluZm8vc3BkazwvYT48YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGJyPgomZ3Q7 IDxicj4KJmd0OyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xzxicj4KJmd0OyBTUERLIG1haWxpbmcgbGlzdDxicj4KJmd0OyA8YSBocmVmPSJtYWlsdG86U1BE S0BsaXN0cy4wMS5vcmciIHRhcmdldD0iX2JsYW5rIj5TUERLQGxpc3RzLjAxLm9yZzwvYT48YnI+ CiZndDsgPGEgY2xhc3M9InhfbV8yOTgzNDMyODQ0MTYxODc1ODUzT1dBQXV0b0xpbmsiIGlkPSJ4 X21fMjk4MzQzMjg0NDE2MTg3NTg1M0xQbG5rMzYyOTMzIiBocmVmPSJodHRwczovL2NsaWNrdGlt ZS5zeW1hbnRlYy5jb20vYS8xL2IycmRzZjY5THY3anJ3bWt0ZzRYakI4enhwX3RwRzNFeGdONzRS dGFiXzA9P2Q9SVo0YWd4WF9acHFQa1dpTm5UTnJqX05CczJGaHZWaEwwQzR1aTd1c05GYndXdmFl RkxfNnh4RWlKc29Jc3FRN1Y1MmNXYVpGVkFDTnJfMWg3akxXYkF3RnNJbHVkeHF2b3VMZVI3TGxM T2ZRMGJGbFBVcHZGWjZfUE15M0NmV2JUZU5zYkFEdElDSEN6X1BPVENiYUZwTnN1STJybHFCOHB1 dnVaSlRQM094NDZlZnF3MUZya1MwY05Cemc4ZC1FdVBya3dxOU8wWl9YNUpXZlJJZXlDOE9kUTBM Z1pibVlMaEh2NzRFZjZjUE5xU2x5TE5IaWMwSmwzSWNIM3l5Wm9KOHlXOF9TOVlXR0M4S2N0cW9y clU5eWREWTVMeGFSaXZYeXI3M29QVzB6Q2k3TF9GX3J1aEZMbUtOTExxR3lUdUlMWG5TNG9ZcjND UW4zZkpjOU9DbnVWa1U0cVBuQlhaTjY1ZUxHeERWdHNaaWZ5c1k2TmNuXzl2QmU5YldvTXFwbVg0 UHZnSFJwc3ozMkZTUEtpSEpkVS1xTk5pR2lHLUFZSWdERWpPSXcmYW1wO3U9aHR0cHMlM0ElMkYl MkZsaXN0cy4wMS5vcmclMkZtYWlsbWFuJTJGbGlzdGluZm8lMkZzcGRrIiB0YXJnZXQ9Il9ibGFu ayI+Cmh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vc3BkazwvYT48YnI+CiZn dDsgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnI+CiZn dDsgU1BESyBtYWlsaW5nIGxpc3Q8YnI+CiZndDsgPGEgaHJlZj0ibWFpbHRvOlNQREtAbGlzdHMu MDEub3JnIiB0YXJnZXQ9Il9ibGFuayI+U1BES0BsaXN0cy4wMS5vcmc8L2E+PGJyPgomZ3Q7IDxh IGNsYXNzPSJ4X21fMjk4MzQzMjg0NDE2MTg3NTg1M09XQUF1dG9MaW5rIiBpZD0ieF9tXzI5ODM0 MzI4NDQxNjE4NzU4NTNMUGxuazUxMTYxNiIgaHJlZj0iaHR0cHM6Ly9jbGlja3RpbWUuc3ltYW50 ZWMuY29tL2EvMS9iMnJkc2Y2OUx2N2pyd21rdGc0WGpCOHp4cF90cEczRXhnTjc0UnRhYl8wPT9k PUlaNGFneFhfWnBxUGtXaU5uVE5yal9OQnMyRmh2VmhMMEM0dWk3dXNORmJ3V3ZhZUZMXzZ4eEVp SnNvSXNxUTdWNTJjV2FaRlZBQ05yXzFoN2pMV2JBd0ZzSWx1ZHhxdm91TGVSN0xsTE9mUTBiRmxQ VXB2Rlo2X1BNeTNDZldiVGVOc2JBRHRJQ0hDel9QT1RDYmFGcE5zdUkycmxxQjhwdXZ1WkpUUDNP eDQ2ZWZxdzFGcmtTMGNOQnpnOGQtRXVQcmt3cTlPMFpfWDVKV2ZSSWV5QzhPZFEwTGdaYm1ZTGhI djc0RWY2Y1BOcVNseUxOSGljMEpsM0ljSDN5eVpvSjh5VzhfUzlZV0dDOEtjdHFvcnJVOXlkRFk1 THhhUml2WHlyNzNvUFcwekNpN0xfRl9ydWhGTG1LTkxMcUd5VHVJTFhuUzRvWXIzQ1FuM2ZKYzlP Q251VmtVNHFQbkJYWk42NWVMR3hEVnRzWmlmeXNZNk5jbl85dkJlOWJXb01xcG1YNFB2Z0hScHN6 MzJGU1BLaUhKZFUtcU5OaUdpRy1BWUlnREVqT0l3JmFtcDt1PWh0dHBzJTNBJTJGJTJGbGlzdHMu MDEub3JnJTJGbWFpbG1hbiUyRmxpc3RpbmZvJTJGc3BkayIgdGFyZ2V0PSJfYmxhbmsiPgpodHRw czovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3NwZGs8L2E+PGJyPgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzxicj4KU1BESyBtYWlsaW5nIGxp c3Q8YnI+CjxhIGhyZWY9Im1haWx0bzpTUERLQGxpc3RzLjAxLm9yZyIgdGFyZ2V0PSJfYmxhbmsi PlNQREtAbGlzdHMuMDEub3JnPC9hPjxicj4KPGEgY2xhc3M9InhfbV8yOTgzNDMyODQ0MTYxODc1 ODUzT1dBQXV0b0xpbmsiIGlkPSJ4X21fMjk4MzQzMjg0NDE2MTg3NTg1M0xQbG5rODEyOTkyIiBo cmVmPSJodHRwczovL2NsaWNrdGltZS5zeW1hbnRlYy5jb20vYS8xL2IycmRzZjY5THY3anJ3bWt0 ZzRYakI4enhwX3RwRzNFeGdONzRSdGFiXzA9P2Q9SVo0YWd4WF9acHFQa1dpTm5UTnJqX05CczJG aHZWaEwwQzR1aTd1c05GYndXdmFlRkxfNnh4RWlKc29Jc3FRN1Y1MmNXYVpGVkFDTnJfMWg3akxX YkF3RnNJbHVkeHF2b3VMZVI3TGxMT2ZRMGJGbFBVcHZGWjZfUE15M0NmV2JUZU5zYkFEdElDSEN6 X1BPVENiYUZwTnN1STJybHFCOHB1dnVaSlRQM094NDZlZnF3MUZya1MwY05Cemc4ZC1FdVBya3dx OU8wWl9YNUpXZlJJZXlDOE9kUTBMZ1pibVlMaEh2NzRFZjZjUE5xU2x5TE5IaWMwSmwzSWNIM3l5 Wm9KOHlXOF9TOVlXR0M4S2N0cW9yclU5eWREWTVMeGFSaXZYeXI3M29QVzB6Q2k3TF9GX3J1aEZM bUtOTExxR3lUdUlMWG5TNG9ZcjNDUW4zZkpjOU9DbnVWa1U0cVBuQlhaTjY1ZUxHeERWdHNaaWZ5 c1k2TmNuXzl2QmU5YldvTXFwbVg0UHZnSFJwc3ozMkZTUEtpSEpkVS1xTk5pR2lHLUFZSWdERWpP SXcmYW1wO3U9aHR0cHMlM0ElMkYlMkZsaXN0cy4wMS5vcmclMkZtYWlsbWFuJTJGbGlzdGluZm8l MkZzcGRrIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0 aW5mby9zcGRrPC9hPjxicj4KPC9kaXY+Cjwvc3Bhbj48L2ZvbnQ+PC9kaXY+CjwvZGl2Pgo8L2Rp dj4KPC9kaXY+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f PGJyPgpTUERLIG1haWxpbmcgbGlzdDxicj4KPGEgaHJlZj0ibWFpbHRvOlNQREtAbGlzdHMuMDEu b3JnIiB0YXJnZXQ9Il9ibGFuayI+U1BES0BsaXN0cy4wMS5vcmc8L2E+PGJyPgo8YSBocmVmPSJo dHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3NwZGsiIHJlbD0ibm9yZWZlcnJl ciIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8v c3BkazwvYT48YnI+CjwvYmxvY2txdW90ZT4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9ib2R5Pgo8 L2h0bWw+Cg== --===============1653094915240941102==--