From romit.misra@flipkart.com Thu Oct 17 12:30:21 2019 From: Romit Misra To: ceph-users@ceph.io Subject: [ceph-users] Re: ceph-users Digest, Vol 81, Issue 39 Re:RadosGW cant list objects when there are too many of them Date: Thu, 17 Oct 2019 18:00:01 +0530 Message-ID: In-Reply-To: <157130922692.33.11222301958088385219@mailman-core> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6284587198673050706==" --===============6284587198673050706== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi Arash, If the number of objects in a bucket are too large in the order of millions, a paginated listing approach works better. There are also ceratin RGW configs, that controls on how big a RGW response (in terms of number objects can be, by default I believe this is 1000) The code for Paginated Listing (Snippet can be modified):- *"* *try: buckethandle =3D s3_conn_src.get_bucket(bucket_name)* * while True:* * keys =3D buckethandle.get_all_keys(max_keys=3D1000,marker =3D marker) for k in keys:* * #do operation on keys (which are the objects)* * print k.name * * #update marker* * marker =3D k.name * * if keys.is_truncated is False: print "Breaking" break* *except Exception, e:* * print e* *"* Thanks Romit Misra Thanks Romit On Thu, Oct 17, 2019 at 4:18 PM wrote: > Send ceph-users mailing list submissions to > ceph-users@ceph.io > > To subscribe or unsubscribe via email, send a message with subject or > body 'help' to > ceph-users-request@ceph.io > > You can reach the person managing the list at > ceph-users-owner@ceph.io > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of ceph-users digest..." > > Today's Topics: > > 1. RadosGW cant list objects when there are too many of them > (Arash Shams) > 2. Re: Recovering from a Failed Disk (replication 1) (Burkhard Linke) > 3. Re: RGW blocking on large objects (Paul Emmerich) > 4. Re: RadosGW cant list objects when there are too many of them > (Paul Emmerich) > 5. Re: Recovering from a Failed Disk (replication 1) (Frank Schilder) > > > ---------------------------------------------------------------------- > > Date: Thu, 17 Oct 2019 07:19:12 +0000 > From: Arash Shams > Subject: [ceph-users] RadosGW cant list objects when there are too > many of them > To: "ceph-users@ceph.io" > Message-ID: P265.PROD.OUTLOOK.COM> > Content-Type: multipart/alternative; boundary=3D"_000_LNXP265MB0508FF > 1F47CB5EA9C29219FA926D0LNXP265MB0508GBRP_" > > --_000_LNXP265MB0508FF1F47CB5EA9C29219FA926D0LNXP265MB0508GBRP_ > Content-Type: text/plain; charset=3D"iso-8859-1" > Content-Transfer-Encoding: quoted-printable > > Dear All > > I have a bucket with 5 million Objects and I cant list objects with > radosgw-admin bucket list --bucket=3D3Dbucket | jq .[].name > or listing files using boto3 > > s3 =3D3D boto3.client('s3', > endpoint_url=3D3Dcredentials['endpoint_url'], > aws_access_key_id=3D3Dcredentials['access_key'], > aws_secret_access_key=3D3Dcredentials['secret_key']) > > response =3D3D s3.list_objects_v2(Bucket=3D3Dbucket_name) > for item in response['Contents']: > print(item['Key']) > > what is the solution ? how can I find list of my objects ? > > > > > --_000_LNXP265MB0508FF1F47CB5EA9C29219FA926D0LNXP265MB0508GBRP_ > Content-Type: text/html; charset=3D"iso-8859-1" > Content-Transfer-Encoding: quoted-printable > > > > charset=3D3Diso-8859-=3D > 1"> > > > >
12pt;=3D > color: rgb(0, 0, 0);"> > Dear All
>
>
12pt;=3D > color: rgb(0, 0, 0);"> >
>
>
12pt;=3D > color: rgb(0, 0, 0);"> > I have a bucket with 5 million Objects and I cant list objects with
> radosgw-admin bucket list --bucket=3D3Dbucket | jq .[].name
> or listing files using boto3
>
>
12pt;=3D > color: rgb(0, 0, 0);"> >
>
>
12pt;=3D > color: rgb(0, 0, 0);"> >     s3 =3D3D boto3.client('s3',
>
>
                    > =3D >   endpoint_url=3D3Dcredentials['endpoint_url'],
>
>
                    > =3D >   aws_access_key_id=3D3Dcredentials['access_key'],
>
>
                    > =3D >   aws_secret_access_key=3D3Dcredentials['secret_key'])
>
>

>
>
    response =3D3D > s3.list_objects_v2(Bucket=3D3Dbucket_name) > >
>
    for item in response['Contents']:
>
>         print(item['Key'])
>
>
12pt;=3D > color: rgb(0, 0, 0);"> >
>
>
12pt;=3D > color: rgb(0, 0, 0);"> > what is the solution ? how can I find list of my objects ?
>
12pt;=3D > color: rgb(0, 0, 0);"> >
>
>
12pt;=3D > color: rgb(0, 0, 0);"> >
>
>
12pt;=3D > color: rgb(0, 0, 0);"> >
>
> > > > --_000_LNXP265MB0508FF1F47CB5EA9C29219FA926D0LNXP265MB0508GBRP_-- > > ------------------------------ > > Date: Thu, 17 Oct 2019 10:18:11 +0200 > From: Burkhard Linke > Subject: [ceph-users] Re: Recovering from a Failed Disk (replication > 1) > To: ceph-users@ceph.io > Message-ID: i-giessen.de> > Content-Type: multipart/alternative; > boundary=3D"------------71A0D501B0D56489A2F673CA" > > This is a multi-part message in MIME format. > --------------71A0D501B0D56489A2F673CA > Content-Type: text/plain; charset=3Dutf-8; format=3Dflowed > Content-Transfer-Encoding: 7bit > > Hi, > > > On 10/17/19 5:56 AM, Ashley Merrick wrote: > > I think your better off doing the DD method, you can export and import > > a PG at a time (ceph-objectstore-tool) > > > > But if the disk is failing a DD is probably your best method. > > > In case of hardware problems or broken sectors, I would recommend > 'dd_rescue' instead of dd. It can handle broken sectors, automatic > retries, skipping etc. > > > You will definitely need a second disk to rescue to. > > > Regards, > > Burkhard > > > > --------------71A0D501B0D56489A2F673CA > Content-Type: text/html; charset=3Dutf-8 > Content-Transfer-Encoding: 7bit > > > > > > >

Hi,

>


>

>
On 10/17/19 5:56 AM, Ashley Merrick > wrote:
>
>
cite=3D" > mid:16dd7dc0f88.e12acd11469078.7469588663842930162@amerrick.co.uk"> > >
font-size: 10pt;">I think your better off doing the DD method, > you can export and import a PG at a time > (ceph-objectstore-tool)
>
> But if the disk is failing a DD is probably your best method.
>
>
>


>

>

In case of hardware problems or broken sectors, I would recommend > 'dd_rescue' instead of dd. It can handle broken sectors, automatic > retries, skipping etc.

>


>

>

You will definitely need a second disk to rescue to.

>


>

>

Regards,

>

Burkhard

>
> > > > --------------71A0D501B0D56489A2F673CA-- > > ------------------------------ > > Date: Thu, 17 Oct 2019 11:50:37 +0200 > From: Paul Emmerich > Subject: [ceph-users] Re: RGW blocking on large objects > To: Robert LeBlanc > Cc: ceph-users > Message-ID: > < > CAD9yTbFSpxo1cMAAZ56YcwKxY2dcv0KRPcWYapT2fLmYhmrLkg@mail.gmail.com> > Content-Type: text/plain; charset=3D"UTF-8" > > On Thu, Oct 17, 2019 at 12:17 AM Robert LeBlanc > wrote: > > > > On Wed, Oct 16, 2019 at 2:50 PM Paul Emmerich > wrote: > > > > > > On Wed, Oct 16, 2019 at 11:23 PM Robert LeBlanc > wrote: > > > > > > > > On Tue, Oct 15, 2019 at 8:05 AM Robert LeBlanc > wrote: > > > > > > > > > > On Mon, Oct 14, 2019 at 2:58 PM Paul Emmerich < > paul.emmerich@croit.io> wrote: > > > > > > > > > > > > Could the 4 GB GET limit saturate the connection from rgw to > Ceph? > > > > > > Simple to test: just rate-limit the health check GET > > > > > > > > > > I don't think so, we have dual 25Gbp in a LAG, so Ceph to RGW has > > > > > multiple paths, but we aren't balancing on port yet, so RGW to > HAProxy > > > > > is probably limited to one link. > > > > > > > > > > > Did you increase "objecter inflight ops" and "objecter inflight > op bytes"? > > > > > > You absolutely should adjust these settings for large RGW setups, > > > > > > defaults of 1024 and 100 MB are way too low for many RGW setups, > we > > > > > > default to 8192 and 800MB > > > > > > > > On Nautilus the defaults already seem to be: > > > > objecter_inflight_op_bytes 104857600 > > > > default > > > =3D 100MiB > > > > > > > objecter_inflight_ops 24576 > > > > default > > > > > > not sure where you got this from, but the default is still 1024 even > > > in master: > https://github.com/ceph/ceph/blob/4774808cb2923f65f6919fe8be5f98917075cdd7/= src/common/options.cc#L2288 > > > > Looks like it is overridden in > > > https://github.com/ceph/ceph/blob/4774808cb2923f65f6919fe8be5f98917075cdd7/= src/rgw/rgw_main.cc#L187 > > you are right, this is new in Nautilus. Last time I had to play around > with these settings was indeed on a Mimic deployment. > > > I'm just not > > understanding how your suggestions would help, the problem doesn't > > seem to be on the RADOS side (which it appears your tweaks target), > > but on the HTTP side as an HTTP health check takes a long time to come > > back when a big transfer is going on. > > I was guessing a bottleneck on the RADOS side because you mentioned > that you tried both civetweb and beast, somewhat unlikely to run into > the exact same problem with both > > -- > Paul Emmerich > > Looking for help with your Ceph cluster? Contact us at https://croit.io > > croit GmbH > Freseniusstr. 31h > 81247 M=C3=BCnchen > www.croit.io > Tel: +49 89 1896585 90 > > ------------------------------ > > Date: Thu, 17 Oct 2019 12:00:20 +0200 > From: Paul Emmerich > Subject: [ceph-users] Re: RadosGW cant list objects when there are too > many of them > To: Arash Shams > Cc: "ceph-users@ceph.io" > Message-ID: > Ba5tQqBvCLu9uUKo0KmjR9E3ayo6DkR-E2bxQ@mail.gmail.com> > Content-Type: text/plain; charset=3D"UTF-8" > > Listing large buckets is slow due to S3 ordering requirements, it's > approximately O(n^2). > However, I wouldn't consider 5M to be a large bucket, it should go to > only ~50 shards which should still perform reasonable. How fast are > your metadata OSDs? > > Try --allow-unordered in radosgw-admin to get an unordered result > which is only O(n) as you'd expect. > > For boto3: I'm not sure if v2 object listing is available yet (I think > it has only been merged into master but has not yet made it into a > release?). It doesn't support unordered listing but there has been > some work to implement it there, not sure about the current state. > > > > Paul > > -- > Paul Emmerich > > Looking for help with your Ceph cluster? Contact us at https://croit.io > > croit GmbH > Freseniusstr. 31h > 81247 M=C3=BCnchen > www.croit.io > Tel: +49 89 1896585 90 > > On Thu, Oct 17, 2019 at 9:19 AM Arash Shams wrote: > > > > Dear All > > > > I have a bucket with 5 million Objects and I cant list objects with > > radosgw-admin bucket list --bucket=3Dbucket | jq .[].name > > or listing files using boto3 > > > > s3 =3D boto3.client('s3', > > endpoint_url=3Dcredentials['endpoint_url'], > > aws_access_key_id=3Dcredentials['access_key'], > > aws_secret_access_key=3Dcredentials['secret_key']) > > > > response =3D s3.list_objects_v2(Bucket=3Dbucket_name) > > for item in response['Contents']: > > print(item['Key']) > > > > what is the solution ? how can I find list of my objects ? > > > > > > > > _______________________________________________ > > ceph-users mailing list -- ceph-users@ceph.io > > To unsubscribe send an email to ceph-users-leave@ceph.io > > ------------------------------ > > Date: Thu, 17 Oct 2019 10:46:53 +0000 > From: Frank Schilder > Subject: [ceph-users] Re: Recovering from a Failed Disk (replication > 1) > To: vladimir franciz blando , > "ceph-users@ceph.io" > Message-ID: <58e22bc6345b48718dbce7238a06e35d@dtu.dk> > Content-Type: text/plain; charset=3D"utf-8" > > You probably need to attempt a physical data rescue. Data access will be > lost until done. > > First thing is shut down the OSD to avoid any further damage to the disk. > Second thing is to try ddrescue, repair data on a copy if possible and > then create a clone on a new disk from the copy. > If this doesn't help and you really need that last bit of data, you might > need support from one of those companies that restore disk data with > electron microscopy. > > I successfully transferred OSDs between disks using ddrescue. > > Best regards, > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > Frank Schilder > AIT Ris=C3=B8 Campus > Bygning 109, rum S14 > > ________________________________________ > From: vladimir franciz blando > Sent: 17 October 2019 05:29:13 > To: ceph-users@ceph.io > Subject: [ceph-users] Recovering from a Failed Disk (replication 1) > > Hi, > > I have a not ideal setup on one of my cluster, 3 ceph nodes but using > replication 1 on all pools (don't ask me why replication 1, it's a long > story). > > So it has come to this situation that a disk keeps on crashing, possible a > hardware failure and I need to recover from that. > > What's my best option for me to recover the data from the failed disk and > transfer it to the other healthy disks? > > This cluster is using Firefly > > - Vlad > [ > https://mailfoogae.appspot.com/t?sender=3DadmxhZGltaXIuYmxhbmRvQGdtYWlsLmNv= bQ%3D%3D&type=3Dzerocontent&guid=3D976ce724-3894-4a75-b591-dca017bdf19e]=E1= =90=A7 > > > ------------------------------ > > Subject: Digest Footer > > _______________________________________________ > ceph-users mailing list -- ceph-users@ceph.io > To unsubscribe send an email to ceph-users-leave@ceph.io > %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s > > > ------------------------------ > > End of ceph-users Digest, Vol 81, Issue 39 > ****************************************** > --=20 *----------------------------------------------------------------------------= -------------* *This email and any files transmitted with it are confidential and=20 intended solely for the use of the individual or entity to whom they are=20 addressed. If you have received this email in error, please notify the=20 system manager. This message contains confidential information and is=20 intended only for the individual named. If you are not the named addressee,=20 you should not disseminate, distribute or copy this email. Please notify=20 the sender immediately by email if you have received this email by mistake=20 and delete this email from your system. If you are not the intended=20 recipient, you are notified that disclosing, copying, distributing or=20 taking any action in reliance on the contents of this information is=20 strictly prohibited.***** =C2=A0**** *Any views or opinions presented in this=20 email are solely those of the author and do not necessarily represent those=20 of the organization. Any information on shares, debentures or similar=20 instruments, recommended product pricing, valuations and the like are for=20 information purposes only. It is not meant to be an instruction or=20 recommendation, as the case may be, to buy or to sell securities, products,=20 services nor an offer to buy or sell securities, products or services=20 unless specifically stated to be so on behalf of the Flipkart group.=20 Employees of=C2=A0the Flipkart group of companies are expressly required not = to=20 make defamatory statements and not to infringe or authorise any=20 infringement of copyright or any other legal right by email communications.=20 Any such communication is contrary to organizational policy and outside the=20 scope of the employment of the individual concerned. The organization will=20 not accept any liability in respect of such communication, and the employee=20 responsible will be personally liable for any damages or other liability=20 arising.***** =C2=A0**** *Our organization accepts no liability for the=20 content of this email, or for the consequences of any actions taken on the=20 basis of the information=C2=A0*provided,*=C2=A0unless that information is=20 subsequently confirmed in writing. If you are not the intended recipient,=20 you are notified that disclosing, copying, distributing or taking any=20 action in reliance on the contents of this information is strictly=20 prohibited.* _----------------------------------------------------------------------------= -------------_ --===============6284587198673050706== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.htm" MIME-Version: 1.0 PGRpdiBkaXI9Imx0ciI+PGRpdj5IaSBBcmFzaCw8L2Rpdj48ZGl2PsKgIElmIHRoZSBudW1iZXIg b2Ygb2JqZWN0cyBpbiBhIGJ1Y2tldCBhcmUgdG9vIGxhcmdlIGluIHRoZSBvcmRlciBvZiBtaWxs aW9ucywgYSBwYWdpbmF0ZWQgbGlzdGluZyBhcHByb2FjaCB3b3JrcyBiZXR0ZXIuPC9kaXY+PGRp dj5UaGVyZSBhcmUgYWxzbyBjZXJhdGluwqBSR1cgY29uZmlncywgdGhhdCBjb250cm9scyBvbiBo b3cgYmlnIGEgUkdXIHJlc3BvbnNlIChpbiB0ZXJtcyBvZiBudW1iZXIgb2JqZWN0cyBjYW4gYmUs IGJ5IGRlZmF1bHQgSSBiZWxpZXZlwqB0aGlzIGlzIDEwMDApPC9kaXY+PGRpdj5UaGUgY29kZSBm b3IgUGFnaW5hdGVkIExpc3RpbmcgKFNuaXBwZXQgY2FuIGJlIG1vZGlmaWVkKTotPC9kaXY+PGRp dj48YnI+PC9kaXY+PGRpdj48Yj4mcXVvdDs8L2I+PC9kaXY+PGRpdj48aT48Yj50cnk6PGJyPsKg IMKgIMKgIMKgIMKgYnVja2V0aGFuZGxlID0gczNfY29ubl9zcmMuZ2V0X2J1Y2tldChidWNrZXRf bmFtZSk8YnI+PC9iPjwvaT48L2Rpdj48ZGl2PjxiPjxpPsKgIMKgIMKgIMKgIMKgPC9pPjxpPndo aWxlIFRydWU6PC9pPjwvYj48L2Rpdj48aT48Yj7CoCDCoCDCoCDCoCDCoCDCoCDCoGtleXMgPSBi dWNrZXRoYW5kbGUuZ2V0X2FsbF9rZXlzKG1heF9rZXlzPTEwMDAsbWFya2VyID0gbWFya2VyKTxi cj7CoCDCoCDCoCDCoCDCoCDCoCDCoGZvciBrIGluIGtleXM6PC9iPjwvaT48ZGl2PjxpPjxiPsKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgI2RvIG9wZXJhdGlvbiBvbiBrZXlzICh3aGlj aCBhcmUgdGhlIG9iamVjdHMpPC9iPjwvaT48L2Rpdj48ZGl2PjxpPjxiPsKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgcHJpbnQgPGEgaHJlZj0iaHR0cDovL2submFtZSI+ay5uYW1lPC9h PjwvYj48L2k+PC9kaXY+PGRpdj48aT48Yj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAj dXBkYXRlIG1hcmtlcjwvYj48L2k+PC9kaXY+PGRpdj48aT48Yj7CoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCBtYXJrZXIgPSA8YSBocmVmPSJodHRwOi8vay5uYW1lIj5rLm5hbWU8L2E+PC9i PjwvaT48L2Rpdj48ZGl2PjxpPjxiPsKgIMKgIMKgIMKgIMKgIMKgIMKgaWYga2V5cy5pc190cnVu Y2F0ZWQgaXMgRmFsc2U6PGJyPsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgcHJpbnQgJnF1b3Q7 QnJlYWtpbmcmcXVvdDs8YnI+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBicmVhazwvYj48L2k+ PC9kaXY+PGRpdj48aT48Yj5leGNlcHQgRXhjZXB0aW9uLCBlOjwvYj48L2k+PC9kaXY+PGRpdj48 aT48Yj7CoCDCoCDCoCDCoCDCoCBwcmludCBlPC9iPjwvaT48L2Rpdj48ZGl2PjxpPjxiPiZxdW90 OzwvYj48L2k+PC9kaXY+PGRpdj48aT48Yj48YnI+PC9iPjwvaT48L2Rpdj48ZGl2PlRoYW5rczwv ZGl2PjxkaXY+Um9taXQgTWlzcmE8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48 ZGl2PlRoYW5rczwvZGl2PjxkaXY+Um9taXQ8YnI+PGRpdj48YnI+PC9kaXY+PGJyPjxkaXYgY2xh c3M9ImdtYWlsX3F1b3RlIj48ZGl2IGRpcj0ibHRyIiBjbGFzcz0iZ21haWxfYXR0ciI+T24gVGh1 LCBPY3QgMTcsIDIwMTkgYXQgNDoxOCBQTSAmbHQ7PGEgaHJlZj0ibWFpbHRvOmNlcGgtdXNlcnMt cmVxdWVzdEBjZXBoLmlvIj5jZXBoLXVzZXJzLXJlcXVlc3RAY2VwaC5pbzwvYT4mZ3Q7IHdyb3Rl Ojxicj48L2Rpdj48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46 MHB4IDBweCAwcHggMC44ZXg7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYigyMDQsMjA0LDIwNCk7 cGFkZGluZy1sZWZ0OjFleCI+U2VuZCBjZXBoLXVzZXJzIG1haWxpbmcgbGlzdCBzdWJtaXNzaW9u cyB0bzxicj4KwqAgwqAgwqAgwqAgPGEgaHJlZj0ibWFpbHRvOmNlcGgtdXNlcnNAY2VwaC5pbyIg dGFyZ2V0PSJfYmxhbmsiPmNlcGgtdXNlcnNAY2VwaC5pbzwvYT48YnI+Cjxicj4KVG8gc3Vic2Ny aWJlIG9yIHVuc3Vic2NyaWJlIHZpYSBlbWFpbCwgc2VuZCBhIG1lc3NhZ2Ugd2l0aCBzdWJqZWN0 IG9yPGJyPgpib2R5ICYjMzk7aGVscCYjMzk7IHRvPGJyPgrCoCDCoCDCoCDCoCA8YSBocmVmPSJt YWlsdG86Y2VwaC11c2Vycy1yZXF1ZXN0QGNlcGguaW8iIHRhcmdldD0iX2JsYW5rIj5jZXBoLXVz ZXJzLXJlcXVlc3RAY2VwaC5pbzwvYT48YnI+Cjxicj4KWW91IGNhbiByZWFjaCB0aGUgcGVyc29u IG1hbmFnaW5nIHRoZSBsaXN0IGF0PGJyPgrCoCDCoCDCoCDCoCA8YSBocmVmPSJtYWlsdG86Y2Vw aC11c2Vycy1vd25lckBjZXBoLmlvIiB0YXJnZXQ9Il9ibGFuayI+Y2VwaC11c2Vycy1vd25lckBj ZXBoLmlvPC9hPjxicj4KPGJyPgpXaGVuIHJlcGx5aW5nLCBwbGVhc2UgZWRpdCB5b3VyIFN1Ympl Y3QgbGluZSBzbyBpdCBpcyBtb3JlIHNwZWNpZmljPGJyPgp0aGFuICZxdW90O1JlOiBDb250ZW50 cyBvZiBjZXBoLXVzZXJzIGRpZ2VzdC4uLiZxdW90Ozxicj4KPGJyPgpUb2RheSYjMzk7cyBUb3Bp Y3M6PGJyPgo8YnI+CsKgIMKgMS4gUmFkb3NHVyBjYW50IGxpc3Qgb2JqZWN0cyB3aGVuIHRoZXJl IGFyZSB0b28gbWFueSBvZiB0aGVtIDxicj4KwqAgwqAgwqAgKEFyYXNoIFNoYW1zKTxicj4KwqAg wqAyLiBSZTogUmVjb3ZlcmluZyBmcm9tIGEgRmFpbGVkIERpc2sgKHJlcGxpY2F0aW9uIDEpIChC dXJraGFyZCBMaW5rZSk8YnI+CsKgIMKgMy4gUmU6IFJHVyBibG9ja2luZyBvbiBsYXJnZSBvYmpl Y3RzIChQYXVsIEVtbWVyaWNoKTxicj4KwqAgwqA0LiBSZTogUmFkb3NHVyBjYW50IGxpc3Qgb2Jq ZWN0cyB3aGVuIHRoZXJlIGFyZSB0b28gbWFueSBvZiB0aGVtPGJyPgrCoCDCoCDCoCAoUGF1bCBF bW1lcmljaCk8YnI+CsKgIMKgNS4gUmU6IFJlY292ZXJpbmcgZnJvbSBhIEZhaWxlZCBEaXNrIChy ZXBsaWNhdGlvbiAxKSAoRnJhbmsgU2NoaWxkZXIpPGJyPgo8YnI+Cjxicj4KLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LTxicj4KPGJyPgpEYXRlOiBUaHUsIDE3IE9jdCAyMDE5IDA3OjE5OjEyICswMDAwPGJyPgpGcm9t OiBBcmFzaCBTaGFtcyAmbHQ7PGEgaHJlZj0ibWFpbHRvOmFyYTRzaEBob3RtYWlsLmNvbSIgdGFy Z2V0PSJfYmxhbmsiPmFyYTRzaEBob3RtYWlsLmNvbTwvYT4mZ3Q7PGJyPgpTdWJqZWN0OiBbY2Vw aC11c2Vyc10gUmFkb3NHVyBjYW50IGxpc3Qgb2JqZWN0cyB3aGVuIHRoZXJlIGFyZSB0b288YnI+ CsKgIMKgIMKgIMKgIG1hbnkgb2YgdGhlbTxicj4KVG86ICZxdW90OzxhIGhyZWY9Im1haWx0bzpj ZXBoLXVzZXJzQGNlcGguaW8iIHRhcmdldD0iX2JsYW5rIj5jZXBoLXVzZXJzQGNlcGguaW88L2E+ JnF1b3Q7ICZsdDs8YSBocmVmPSJtYWlsdG86Y2VwaC11c2Vyc0BjZXBoLmlvIiB0YXJnZXQ9Il9i bGFuayI+Y2VwaC11c2Vyc0BjZXBoLmlvPC9hPiZndDs8YnI+Ck1lc3NhZ2UtSUQ6wqAgJmx0O0xO WFAyNjVNQjA1MDhGRjFGNDdDQjVFQTlDMjkyMTlGQTkyNkQwQExOWFAyNjVNQjA1MDguR0JSPGJy PgrCoCDCoCDCoCDCoCA8YSBocmVmPSJodHRwOi8vUDI2NS5QUk9ELk9VVExPT0suQ09NIiByZWw9 Im5vcmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIj5QMjY1LlBST0QuT1VUTE9PSy5DT008L2E+Jmd0 Ozxicj4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7wqAgwqAgYm91bmRhcnk9 JnF1b3Q7XzAwMF9MTlhQMjY1TUIwNTA4RkY8YnI+CsKgIMKgIMKgIMKgIDFGNDdDQjVFQTlDMjky MTlGQTkyNkQwTE5YUDI2NU1CMDUwOEdCUlBfJnF1b3Q7PGJyPgo8YnI+Ci0tXzAwMF9MTlhQMjY1 TUIwNTA4RkYxRjQ3Q0I1RUE5QzI5MjE5RkE5MjZEMExOWFAyNjVNQjA1MDhHQlJQXzxicj4KQ29u dGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSZxdW90O2lzby04ODU5LTEmcXVvdDs8YnI+ CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGU8YnI+Cjxicj4KRGVh ciBBbGw8YnI+Cjxicj4KSSBoYXZlIGEgYnVja2V0IHdpdGggNSBtaWxsaW9uIE9iamVjdHMgYW5k IEkgY2FudCBsaXN0IG9iamVjdHMgd2l0aDxicj4KcmFkb3Nndy1hZG1pbiBidWNrZXQgbGlzdCAt LWJ1Y2tldD0zRGJ1Y2tldCB8IGpxIC5bXS5uYW1lPGJyPgpvciBsaXN0aW5nIGZpbGVzIHVzaW5n IGJvdG8zPGJyPgo8YnI+CsKgIMKgIHMzID0zRCBib3RvMy5jbGllbnQoJiMzOTtzMyYjMzk7LDxi cj4KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgZW5kcG9pbnRfdXJsPTNEY3JlZGVu dGlhbHNbJiMzOTtlbmRwb2ludF91cmwmIzM5O10sPGJyPgrCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCBhd3NfYWNjZXNzX2tleV9pZD0zRGNyZWRlbnRpYWxzWyYjMzk7YWNjZXNzX2tl eSYjMzk7XSw8YnI+CsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGF3c19zZWNyZXRf YWNjZXNzX2tleT0zRGNyZWRlbnRpYWxzWyYjMzk7c2VjcmV0X2tleSYjMzk7XSk8YnI+Cjxicj4K wqAgwqAgcmVzcG9uc2UgPTNEIHMzLmxpc3Rfb2JqZWN0c192MihCdWNrZXQ9M0RidWNrZXRfbmFt ZSk8YnI+CsKgIMKgIGZvciBpdGVtIGluIHJlc3BvbnNlWyYjMzk7Q29udGVudHMmIzM5O106PGJy PgrCoCDCoCDCoCDCoCBwcmludChpdGVtWyYjMzk7S2V5JiMzOTtdKTxicj4KPGJyPgp3aGF0IGlz IHRoZSBzb2x1dGlvbiA/IGhvdyBjYW4gSSBmaW5kIGxpc3Qgb2YgbXkgb2JqZWN0cyA/PGJyPgo8 YnI+Cjxicj4KPGJyPgo8YnI+Ci0tXzAwMF9MTlhQMjY1TUIwNTA4RkYxRjQ3Q0I1RUE5QzI5MjE5 RkE5MjZEMExOWFAyNjVNQjA1MDhHQlJQXzxicj4KQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNo YXJzZXQ9JnF1b3Q7aXNvLTg4NTktMSZxdW90Ozxicj4KQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu ZzogcXVvdGVkLXByaW50YWJsZTxicj4KPGJyPgombHQ7aHRtbCZndDs8YnI+CiZsdDtoZWFkJmd0 Ozxicj4KJmx0O21ldGEgaHR0cC1lcXVpdj0zRCZxdW90O0NvbnRlbnQtVHlwZSZxdW90OyBjb250 ZW50PTNEJnF1b3Q7dGV4dC9odG1sOyBjaGFyc2V0PTNEaXNvLTg4NTktPTxicj4KMSZxdW90OyZn dDs8YnI+CiZsdDtzdHlsZSB0eXBlPTNEJnF1b3Q7dGV4dC9jc3MmcXVvdDsgc3R5bGU9M0QmcXVv dDtkaXNwbGF5Om5vbmU7JnF1b3Q7Jmd0OyBQIHttYXJnaW4tdG9wOjA7bWFyZ2luLWJvPTxicj4K dHRvbTowO30gJmx0Oy9zdHlsZSZndDs8YnI+CiZsdDsvaGVhZCZndDs8YnI+CiZsdDtib2R5IGRp cj0zRCZxdW90O2x0ciZxdW90OyZndDs8YnI+CiZsdDtkaXYgc3R5bGU9M0QmcXVvdDtmb250LWZh bWlseTogQ2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7PTxi cj4KwqBjb2xvcjogcmdiKDAsIDAsIDApOyZxdW90OyZndDs8YnI+CkRlYXIgQWxsICZsdDticiZn dDs8YnI+CiZsdDsvZGl2Jmd0Ozxicj4KJmx0O2RpdiBzdHlsZT0zRCZxdW90O2ZvbnQtZmFtaWx5 OiBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTJwdDs9PGJyPgrC oGNvbG9yOiByZ2IoMCwgMCwgMCk7JnF1b3Q7Jmd0Ozxicj4KJmx0O2JyJmd0Ozxicj4KJmx0Oy9k aXYmZ3Q7PGJyPgombHQ7ZGl2IHN0eWxlPTNEJnF1b3Q7Zm9udC1mYW1pbHk6IENhbGlicmksIEhl bHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB0Oz08YnI+CsKgY29sb3I6IHJnYigw LCAwLCAwKTsmcXVvdDsmZ3Q7PGJyPgpJIGhhdmUgYSBidWNrZXQgd2l0aCA1IG1pbGxpb24gT2Jq ZWN0cyBhbmQgSSBjYW50IGxpc3Qgb2JqZWN0cyB3aXRoICZsdDticiZndDs8YnI+CnJhZG9zZ3ct YWRtaW4gYnVja2V0IGxpc3QgLS1idWNrZXQ9M0RidWNrZXQgfCBqcSAuW10ubmFtZSZsdDticiZn dDs8YnI+Cm9yIGxpc3RpbmcgZmlsZXMgdXNpbmcgYm90bzMgJmx0O2JyJmd0Ozxicj4KJmx0Oy9k aXYmZ3Q7PGJyPgombHQ7ZGl2IHN0eWxlPTNEJnF1b3Q7Zm9udC1mYW1pbHk6IENhbGlicmksIEhl bHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB0Oz08YnI+CsKgY29sb3I6IHJnYigw LCAwLCAwKTsmcXVvdDsmZ3Q7PGJyPgombHQ7c3BhbiZndDsmbHQ7YnImZ3Q7PGJyPgombHQ7L3Nw YW4mZ3Q7Jmx0Oy9kaXYmZ3Q7PGJyPgombHQ7ZGl2IHN0eWxlPTNEJnF1b3Q7Zm9udC1mYW1pbHk6 IENhbGlicmksIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB0Oz08YnI+CsKg Y29sb3I6IHJnYigwLCAwLCAwKTsmcXVvdDsmZ3Q7PGJyPgombHQ7c3BhbiZndDsmYW1wO25ic3A7 ICZhbXA7bmJzcDsgczMgPTNEIGJvdG8zLmNsaWVudCgmIzM5O3MzJiMzOTssJmx0O2JyJmd0Ozxi cj4KJmx0Oy9zcGFuJmd0Ozxicj4KJmx0O2RpdiZndDsmYW1wO25ic3A7ICZhbXA7bmJzcDsgJmFt cDtuYnNwOyAmYW1wO25ic3A7ICZhbXA7bmJzcDsgJmFtcDtuYnNwOyAmYW1wO25ic3A7ICZhbXA7 bmJzcDsgJmFtcDtuYnNwOyAmYW1wO25ic3A7ID08YnI+CiZhbXA7bmJzcDsgZW5kcG9pbnRfdXJs PTNEY3JlZGVudGlhbHNbJiMzOTtlbmRwb2ludF91cmwmIzM5O10sJmx0O2JyJmd0Ozxicj4KJmx0 Oy9kaXYmZ3Q7PGJyPgombHQ7ZGl2Jmd0OyZhbXA7bmJzcDsgJmFtcDtuYnNwOyAmYW1wO25ic3A7 ICZhbXA7bmJzcDsgJmFtcDtuYnNwOyAmYW1wO25ic3A7ICZhbXA7bmJzcDsgJmFtcDtuYnNwOyAm YW1wO25ic3A7ICZhbXA7bmJzcDsgPTxicj4KJmFtcDtuYnNwOyBhd3NfYWNjZXNzX2tleV9pZD0z RGNyZWRlbnRpYWxzWyYjMzk7YWNjZXNzX2tleSYjMzk7XSwmbHQ7YnImZ3Q7PGJyPgombHQ7L2Rp diZndDs8YnI+CiZsdDtkaXYmZ3Q7JmFtcDtuYnNwOyAmYW1wO25ic3A7ICZhbXA7bmJzcDsgJmFt cDtuYnNwOyAmYW1wO25ic3A7ICZhbXA7bmJzcDsgJmFtcDtuYnNwOyAmYW1wO25ic3A7ICZhbXA7 bmJzcDsgJmFtcDtuYnNwOyA9PGJyPgomYW1wO25ic3A7IGF3c19zZWNyZXRfYWNjZXNzX2tleT0z RGNyZWRlbnRpYWxzWyYjMzk7c2VjcmV0X2tleSYjMzk7XSkmbHQ7YnImZ3Q7PGJyPgombHQ7L2Rp diZndDs8YnI+CiZsdDtkaXYmZ3Q7Jmx0O2JyJmd0Ozxicj4KJmx0Oy9kaXYmZ3Q7PGJyPgombHQ7 ZGl2Jmd0OyZhbXA7bmJzcDsgJmFtcDtuYnNwOyByZXNwb25zZSA9M0QgczMubGlzdF9vYmplY3Rz X3YyKEJ1Y2tldD0zRGJ1Y2tldF9uYW1lKSZsdDticj08YnI+CiZndDs8YnI+CiZsdDsvZGl2Jmd0 Ozxicj4KJmx0O2RpdiZndDsmYW1wO25ic3A7ICZhbXA7bmJzcDsgZm9yIGl0ZW0gaW4gcmVzcG9u c2VbJiMzOTtDb250ZW50cyYjMzk7XTombHQ7YnImZ3Q7PGJyPgombHQ7L2RpdiZndDs8YnI+CiZs dDtzcGFuJmd0OyZhbXA7bmJzcDsgJmFtcDtuYnNwOyAmYW1wO25ic3A7ICZhbXA7bmJzcDsgcHJp bnQoaXRlbVsmIzM5O0tleSYjMzk7XSkmbHQ7L3NwYW4mZ3Q7Jmx0O2JyJmd0Ozxicj4KJmx0Oy9k aXYmZ3Q7PGJyPgombHQ7ZGl2IHN0eWxlPTNEJnF1b3Q7Zm9udC1mYW1pbHk6IENhbGlicmksIEhl bHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB0Oz08YnI+CsKgY29sb3I6IHJnYigw LCAwLCAwKTsmcXVvdDsmZ3Q7PGJyPgombHQ7YnImZ3Q7PGJyPgombHQ7L2RpdiZndDs8YnI+CiZs dDtkaXYgc3R5bGU9M0QmcXVvdDtmb250LWZhbWlseTogQ2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5z LXNlcmlmOyBmb250LXNpemU6IDEycHQ7PTxicj4KwqBjb2xvcjogcmdiKDAsIDAsIDApOyZxdW90 OyZndDs8YnI+CndoYXQgaXMgdGhlIHNvbHV0aW9uID8gaG93IGNhbiBJIGZpbmQgbGlzdCBvZiBt eSBvYmplY3RzID8mbHQ7L2RpdiZndDs8YnI+CiZsdDtkaXYgc3R5bGU9M0QmcXVvdDtmb250LWZh bWlseTogQ2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7PTxi cj4KwqBjb2xvcjogcmdiKDAsIDAsIDApOyZxdW90OyZndDs8YnI+CiZsdDticiZndDs8YnI+CiZs dDsvZGl2Jmd0Ozxicj4KJmx0O2RpdiBzdHlsZT0zRCZxdW90O2ZvbnQtZmFtaWx5OiBDYWxpYnJp LCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTJwdDs9PGJyPgrCoGNvbG9yOiBy Z2IoMCwgMCwgMCk7JnF1b3Q7Jmd0Ozxicj4KJmx0O2JyJmd0Ozxicj4KJmx0Oy9kaXYmZ3Q7PGJy PgombHQ7ZGl2IHN0eWxlPTNEJnF1b3Q7Zm9udC1mYW1pbHk6IENhbGlicmksIEhlbHZldGljYSwg c2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB0Oz08YnI+CsKgY29sb3I6IHJnYigwLCAwLCAwKTsm cXVvdDsmZ3Q7PGJyPgombHQ7YnImZ3Q7PGJyPgombHQ7L2RpdiZndDs8YnI+CiZsdDsvYm9keSZn dDs8YnI+CiZsdDsvaHRtbCZndDs8YnI+Cjxicj4KLS1fMDAwX0xOWFAyNjVNQjA1MDhGRjFGNDdD QjVFQTlDMjkyMTlGQTkyNkQwTE5YUDI2NU1CMDUwOEdCUlBfLS08YnI+Cjxicj4KLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tPGJyPgo8YnI+CkRhdGU6IFRodSwgMTcgT2N0IDIwMTkgMTA6 MTg6MTEgKzAyMDA8YnI+CkZyb206IEJ1cmtoYXJkIExpbmtlICZsdDs8YSBocmVmPSJtYWlsdG86 QnVya2hhcmQuTGlua2VAY29tcHV0YXRpb25hbC5iaW8udW5pLWdpZXNzZW4uZGUiIHRhcmdldD0i X2JsYW5rIj5CdXJraGFyZC5MaW5rZUBjb21wdXRhdGlvbmFsLmJpby51bmktZ2llc3Nlbi5kZTwv YT4mZ3Q7PGJyPgpTdWJqZWN0OiBbY2VwaC11c2Vyc10gUmU6IFJlY292ZXJpbmcgZnJvbSBhIEZh aWxlZCBEaXNrIChyZXBsaWNhdGlvbjxicj4KwqAgwqAgwqAgwqAgMSk8YnI+ClRvOiA8YSBocmVm PSJtYWlsdG86Y2VwaC11c2Vyc0BjZXBoLmlvIiB0YXJnZXQ9Il9ibGFuayI+Y2VwaC11c2Vyc0Bj ZXBoLmlvPC9hPjxicj4KTWVzc2FnZS1JRDogJmx0O2YzNDE1MzNiLWNjN2EtODY1ZC0wNDQwLTc5 MDg0ZTBjNTcwN0Bjb21wdXRhdGlvbmFsLmJpby51bjxicj4KwqAgwqAgwqAgwqAgPGEgaHJlZj0i aHR0cDovL2ktZ2llc3Nlbi5kZSIgcmVsPSJub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+aS1n aWVzc2VuLmRlPC9hPiZndDs8YnI+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZl Ozxicj4KwqAgwqAgwqAgwqAgYm91bmRhcnk9JnF1b3Q7LS0tLS0tLS0tLS0tNzFBMEQ1MDFCMEQ1 NjQ4OUEyRjY3M0NBJnF1b3Q7PGJyPgo8YnI+ClRoaXMgaXMgYSBtdWx0aS1wYXJ0IG1lc3NhZ2Ug aW4gTUlNRSBmb3JtYXQuPGJyPgotLS0tLS0tLS0tLS0tLTcxQTBENTAxQjBENTY0ODlBMkY2NzND QTxicj4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxv d2VkPGJyPgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0PGJyPgo8YnI+CkhpLDxicj4K PGJyPgo8YnI+Ck9uIDEwLzE3LzE5IDU6NTYgQU0sIEFzaGxleSBNZXJyaWNrIHdyb3RlOjxicj4K Jmd0OyBJIHRoaW5rIHlvdXIgYmV0dGVyIG9mZiBkb2luZyB0aGUgREQgbWV0aG9kLCB5b3UgY2Fu IGV4cG9ydCBhbmQgaW1wb3J0IDxicj4KJmd0OyBhIFBHIGF0IGEgdGltZSAoY2VwaC1vYmplY3Rz dG9yZS10b29sKTxicj4KJmd0Ozxicj4KJmd0OyBCdXQgaWYgdGhlIGRpc2sgaXMgZmFpbGluZyBh IEREIGlzIHByb2JhYmx5IHlvdXIgYmVzdCBtZXRob2QuPGJyPgo8YnI+Cjxicj4KSW4gY2FzZSBv ZiBoYXJkd2FyZSBwcm9ibGVtcyBvciBicm9rZW4gc2VjdG9ycywgSSB3b3VsZCByZWNvbW1lbmQg PGJyPgomIzM5O2RkX3Jlc2N1ZSYjMzk7IGluc3RlYWQgb2YgZGQuIEl0IGNhbiBoYW5kbGUgYnJv a2VuIHNlY3RvcnMsIGF1dG9tYXRpYyA8YnI+CnJldHJpZXMsIHNraXBwaW5nIGV0Yy48YnI+Cjxi cj4KPGJyPgpZb3Ugd2lsbCBkZWZpbml0ZWx5IG5lZWQgYSBzZWNvbmQgZGlzayB0byByZXNjdWUg dG8uPGJyPgo8YnI+Cjxicj4KUmVnYXJkcyw8YnI+Cjxicj4KQnVya2hhcmQ8YnI+Cjxicj4KPGJy Pgo8YnI+Ci0tLS0tLS0tLS0tLS0tNzFBMEQ1MDFCMEQ1NjQ4OUEyRjY3M0NBPGJyPgpDb250ZW50 LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD11dGYtODxicj4KQ29udGVudC1UcmFuc2Zlci1FbmNv ZGluZzogN2JpdDxicj4KPGJyPgombHQ7aHRtbCZndDs8YnI+CsKgICZsdDtoZWFkJmd0Ozxicj4K wqAgwqAgJmx0O21ldGEgaHR0cC1lcXVpdj0mcXVvdDtDb250ZW50LVR5cGUmcXVvdDsgY29udGVu dD0mcXVvdDt0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgmcXVvdDsmZ3Q7PGJyPgrCoCAmbHQ7L2hl YWQmZ3Q7PGJyPgrCoCAmbHQ7Ym9keSB0ZXh0PSZxdW90OyMwMDAwMDAmcXVvdDsgYmdjb2xvcj0m cXVvdDsjRkZGRkZGJnF1b3Q7Jmd0Ozxicj4KwqAgwqAgJmx0O3AmZ3Q7SGksJmx0Oy9wJmd0Ozxi cj4KwqAgwqAgJmx0O3AmZ3Q7Jmx0O2JyJmd0Ozxicj4KwqAgwqAgJmx0Oy9wJmd0Ozxicj4KwqAg wqAgJmx0O2RpdiBjbGFzcz0mcXVvdDttb3otY2l0ZS1wcmVmaXgmcXVvdDsmZ3Q7T24gMTAvMTcv MTkgNTo1NiBBTSwgQXNobGV5IE1lcnJpY2s8YnI+CsKgIMKgIMKgIHdyb3RlOiZsdDticiZndDs8 YnI+CsKgIMKgICZsdDsvZGl2Jmd0Ozxicj4KwqAgwqAgJmx0O2Jsb2NrcXVvdGUgdHlwZT0mcXVv dDtjaXRlJnF1b3Q7PGJyPgrCoCDCoCDCoCBjaXRlPSZxdW90OzxhIGhyZWY9Im1haWx0bzptaWQl M0ExNmRkN2RjMGY4OC5lMTJhY2QxMTQ2OTA3OC43NDY5NTg4NjYzODQyOTMwMTYyQGFtZXJyaWNr LmNvLnVrIiB0YXJnZXQ9Il9ibGFuayI+bWlkOjE2ZGQ3ZGMwZjg4LmUxMmFjZDExNDY5MDc4Ljc0 Njk1ODg2NjM4NDI5MzAxNjJAYW1lcnJpY2suY28udWs8L2E+JnF1b3Q7Jmd0Ozxicj4KwqAgwqAg wqAgJmx0O21ldGEgaHR0cC1lcXVpdj0mcXVvdDtDb250ZW50LVR5cGUmcXVvdDsgY29udGVudD0m cXVvdDt0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgmcXVvdDsmZ3Q7PGJyPgrCoCDCoCDCoCAmbHQ7 ZGl2IHN0eWxlPSZxdW90O2ZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBz YW5zLXNlcmlmOzxicj4KwqAgwqAgwqAgwqAgZm9udC1zaXplOiAxMHB0OyZxdW90OyZndDtJIHRo aW5rIHlvdXIgYmV0dGVyIG9mZiBkb2luZyB0aGUgREQgbWV0aG9kLDxicj4KwqAgwqAgwqAgwqAg eW91IGNhbiBleHBvcnQgYW5kIGltcG9ydCBhIFBHIGF0IGEgdGltZSAoY2VwaC1vYmplY3RzdG9y ZS10b29sKSZsdDticiZndDs8YnI+CsKgIMKgIMKgIMKgICZsdDticiZndDs8YnI+CsKgIMKgIMKg IMKgIEJ1dCBpZiB0aGUgZGlzayBpcyBmYWlsaW5nIGEgREQgaXMgcHJvYmFibHkgeW91ciBiZXN0 IG1ldGhvZC4mbHQ7YnImZ3Q7PGJyPgrCoCDCoCDCoCAmbHQ7L2RpdiZndDs8YnI+CsKgIMKgICZs dDsvYmxvY2txdW90ZSZndDs8YnI+CsKgIMKgICZsdDtwJmd0OyZsdDticiZndDs8YnI+CsKgIMKg ICZsdDsvcCZndDs8YnI+CsKgIMKgICZsdDtwJmd0O0luIGNhc2Ugb2YgaGFyZHdhcmUgcHJvYmxl bXMgb3IgYnJva2VuIHNlY3RvcnMsIEkgd291bGQgcmVjb21tZW5kPGJyPgrCoCDCoCDCoCAmIzM5 O2RkX3Jlc2N1ZSYjMzk7IGluc3RlYWQgb2YgZGQuIEl0IGNhbiBoYW5kbGUgYnJva2VuIHNlY3Rv cnMsIGF1dG9tYXRpYzxicj4KwqAgwqAgwqAgcmV0cmllcywgc2tpcHBpbmcgZXRjLiZsdDsvcCZn dDs8YnI+CsKgIMKgICZsdDtwJmd0OyZsdDticiZndDs8YnI+CsKgIMKgICZsdDsvcCZndDs8YnI+ CsKgIMKgICZsdDtwJmd0O1lvdSB3aWxsIGRlZmluaXRlbHkgbmVlZCBhIHNlY29uZCBkaXNrIHRv IHJlc2N1ZSB0by4mbHQ7L3AmZ3Q7PGJyPgrCoCDCoCAmbHQ7cCZndDsmbHQ7YnImZ3Q7PGJyPgrC oCDCoCAmbHQ7L3AmZ3Q7PGJyPgrCoCDCoCAmbHQ7cCZndDtSZWdhcmRzLCZsdDsvcCZndDs8YnI+ CsKgIMKgICZsdDtwJmd0O0J1cmtoYXJkJmx0Oy9wJmd0Ozxicj4KwqAgwqAgJmx0O2JyJmd0Ozxi cj4KwqAgJmx0Oy9ib2R5Jmd0Ozxicj4KJmx0Oy9odG1sJmd0Ozxicj4KPGJyPgotLS0tLS0tLS0t LS0tLTcxQTBENTAxQjBENTY0ODlBMkY2NzNDQS0tPGJyPgo8YnI+Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLTxicj4KPGJyPgpEYXRlOiBUaHUsIDE3IE9jdCAyMDE5IDExOjUwOjM3ICsw MjAwPGJyPgpGcm9tOiBQYXVsIEVtbWVyaWNoICZsdDs8YSBocmVmPSJtYWlsdG86cGF1bC5lbW1l cmljaEBjcm9pdC5pbyIgdGFyZ2V0PSJfYmxhbmsiPnBhdWwuZW1tZXJpY2hAY3JvaXQuaW88L2E+ Jmd0Ozxicj4KU3ViamVjdDogW2NlcGgtdXNlcnNdIFJlOiBSR1cgYmxvY2tpbmcgb24gbGFyZ2Ug b2JqZWN0czxicj4KVG86IFJvYmVydCBMZUJsYW5jICZsdDs8YSBocmVmPSJtYWlsdG86cm9iZXJ0 QGxlYmxhbmNuZXQudXMiIHRhcmdldD0iX2JsYW5rIj5yb2JlcnRAbGVibGFuY25ldC51czwvYT4m Z3Q7PGJyPgpDYzogY2VwaC11c2VycyAmbHQ7PGEgaHJlZj0ibWFpbHRvOmNlcGgtdXNlcnNAY2Vw aC5pbyIgdGFyZ2V0PSJfYmxhbmsiPmNlcGgtdXNlcnNAY2VwaC5pbzwvYT4mZ3Q7PGJyPgpNZXNz YWdlLUlEOjxicj4KwqAgwqAgwqAgwqAgJmx0OzxhIGhyZWY9Im1haWx0bzpDQUQ5eVRiRlNweG8x Y01BQVo1Nlljd0t4WTJkY3YwS1JQY1dZYXBUMmZMbVlobXJMa2dAbWFpbC5nbWFpbC5jb20iIHRh cmdldD0iX2JsYW5rIj5DQUQ5eVRiRlNweG8xY01BQVo1Nlljd0t4WTJkY3YwS1JQY1dZYXBUMmZM bVlobXJMa2dAbWFpbC5nbWFpbC5jb208L2E+Jmd0Ozxicj4KQ29udGVudC1UeXBlOiB0ZXh0L3Bs YWluOyBjaGFyc2V0PSZxdW90O1VURi04JnF1b3Q7PGJyPgo8YnI+Ck9uIFRodSwgT2N0IDE3LCAy MDE5IGF0IDEyOjE3IEFNIFJvYmVydCBMZUJsYW5jICZsdDs8YSBocmVmPSJtYWlsdG86cm9iZXJ0 QGxlYmxhbmNuZXQudXMiIHRhcmdldD0iX2JsYW5rIj5yb2JlcnRAbGVibGFuY25ldC51czwvYT4m Z3Q7IHdyb3RlOjxicj4KJmd0Ozxicj4KJmd0OyBPbiBXZWQsIE9jdCAxNiwgMjAxOSBhdCAyOjUw IFBNIFBhdWwgRW1tZXJpY2ggJmx0OzxhIGhyZWY9Im1haWx0bzpwYXVsLmVtbWVyaWNoQGNyb2l0 LmlvIiB0YXJnZXQ9Il9ibGFuayI+cGF1bC5lbW1lcmljaEBjcm9pdC5pbzwvYT4mZ3Q7IHdyb3Rl Ojxicj4KJmd0OyAmZ3Q7PGJyPgomZ3Q7ICZndDsgT24gV2VkLCBPY3QgMTYsIDIwMTkgYXQgMTE6 MjMgUE0gUm9iZXJ0IExlQmxhbmMgJmx0OzxhIGhyZWY9Im1haWx0bzpyb2JlcnRAbGVibGFuY25l dC51cyIgdGFyZ2V0PSJfYmxhbmsiPnJvYmVydEBsZWJsYW5jbmV0LnVzPC9hPiZndDsgd3JvdGU6 PGJyPgomZ3Q7ICZndDsgJmd0Ozxicj4KJmd0OyAmZ3Q7ICZndDsgT24gVHVlLCBPY3QgMTUsIDIw MTkgYXQgODowNSBBTSBSb2JlcnQgTGVCbGFuYyAmbHQ7PGEgaHJlZj0ibWFpbHRvOnJvYmVydEBs ZWJsYW5jbmV0LnVzIiB0YXJnZXQ9Il9ibGFuayI+cm9iZXJ0QGxlYmxhbmNuZXQudXM8L2E+Jmd0 OyB3cm90ZTo8YnI+CiZndDsgJmd0OyAmZ3Q7ICZndDs8YnI+CiZndDsgJmd0OyAmZ3Q7ICZndDsg T24gTW9uLCBPY3QgMTQsIDIwMTkgYXQgMjo1OCBQTSBQYXVsIEVtbWVyaWNoICZsdDs8YSBocmVm PSJtYWlsdG86cGF1bC5lbW1lcmljaEBjcm9pdC5pbyIgdGFyZ2V0PSJfYmxhbmsiPnBhdWwuZW1t ZXJpY2hAY3JvaXQuaW88L2E+Jmd0OyB3cm90ZTo8YnI+CiZndDsgJmd0OyAmZ3Q7ICZndDsgJmd0 Ozxicj4KJmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IENvdWxkIHRoZSA0IEdCIEdFVCBsaW1pdCBz YXR1cmF0ZSB0aGUgY29ubmVjdGlvbiBmcm9tIHJndyB0byBDZXBoPzxicj4KJmd0OyAmZ3Q7ICZn dDsgJmd0OyAmZ3Q7IFNpbXBsZSB0byB0ZXN0OiBqdXN0IHJhdGUtbGltaXQgdGhlIGhlYWx0aCBj aGVjayBHRVQ8YnI+CiZndDsgJmd0OyAmZ3Q7ICZndDs8YnI+CiZndDsgJmd0OyAmZ3Q7ICZndDsg SSBkb24mIzM5O3QgdGhpbmsgc28sIHdlIGhhdmUgZHVhbCAyNUdicCBpbiBhIExBRywgc28gQ2Vw aCB0byBSR1cgaGFzPGJyPgomZ3Q7ICZndDsgJmd0OyAmZ3Q7IG11bHRpcGxlIHBhdGhzLCBidXQg d2UgYXJlbiYjMzk7dCBiYWxhbmNpbmcgb24gcG9ydCB5ZXQsIHNvIFJHVyB0byBIQVByb3h5PGJy PgomZ3Q7ICZndDsgJmd0OyAmZ3Q7IGlzIHByb2JhYmx5IGxpbWl0ZWQgdG8gb25lIGxpbmsuPGJy PgomZ3Q7ICZndDsgJmd0OyAmZ3Q7PGJyPgomZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgRGlkIHlv dSBpbmNyZWFzZSAmcXVvdDtvYmplY3RlciBpbmZsaWdodCBvcHMmcXVvdDsgYW5kICZxdW90O29i amVjdGVyIGluZmxpZ2h0IG9wIGJ5dGVzJnF1b3Q7Pzxicj4KJmd0OyAmZ3Q7ICZndDsgJmd0OyAm Z3Q7IFlvdSBhYnNvbHV0ZWx5IHNob3VsZCBhZGp1c3QgdGhlc2Ugc2V0dGluZ3MgZm9yIGxhcmdl IFJHVyBzZXR1cHMsPGJyPgomZ3Q7ICZndDsgJmd0OyAmZ3Q7ICZndDsgZGVmYXVsdHMgb2YgMTAy NCBhbmQgMTAwIE1CIGFyZSB3YXkgdG9vIGxvdyBmb3IgbWFueSBSR1cgc2V0dXBzLCB3ZTxicj4K Jmd0OyAmZ3Q7ICZndDsgJmd0OyAmZ3Q7IGRlZmF1bHQgdG8gODE5MiBhbmQgODAwTUI8YnI+CiZn dDsgJmd0OyAmZ3Q7PGJyPgomZ3Q7ICZndDsgJmd0OyBPbiBOYXV0aWx1cyB0aGUgZGVmYXVsdHMg YWxyZWFkeSBzZWVtIHRvIGJlOjxicj4KJmd0OyAmZ3Q7ICZndDsgb2JqZWN0ZXJfaW5mbGlnaHRf b3BfYnl0ZXPCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oDEwNDg1NzYwMDxicj4KJmd0OyAmZ3Q7ICZndDvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoGRlZmF1bHQ8YnI+CiZndDsgJmd0OyA9IDEwME1pQjxicj4KJmd0OyAmZ3Q7PGJyPgom Z3Q7ICZndDsgJmd0OyBvYmplY3Rlcl9pbmZsaWdodF9vcHPCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAyNDU3Njxicj4KJmd0OyAmZ3Q7ICZn dDvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGRlZmF1bHQ8YnI+CiZndDsgJmd0 Ozxicj4KJmd0OyAmZ3Q7IG5vdCBzdXJlIHdoZXJlIHlvdSBnb3QgdGhpcyBmcm9tLCBidXQgdGhl IGRlZmF1bHQgaXMgc3RpbGwgMTAyNCBldmVuPGJyPgomZ3Q7ICZndDsgaW4gbWFzdGVyOiA8YSBo cmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2VwaC9jZXBoL2Jsb2IvNDc3NDgwOGNiMjkyM2Y2NWY2 OTE5ZmU4YmU1Zjk4OTE3MDc1Y2RkNy9zcmMvY29tbW9uL29wdGlvbnMuY2MjTDIyODgiIHJlbD0i bm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vZ2l0aHViLmNvbS9jZXBoL2NlcGgv YmxvYi80Nzc0ODA4Y2IyOTIzZjY1ZjY5MTlmZThiZTVmOTg5MTcwNzVjZGQ3L3NyYy9jb21tb24v b3B0aW9ucy5jYyNMMjI4ODwvYT48YnI+CiZndDs8YnI+CiZndDsgTG9va3MgbGlrZSBpdCBpcyBv dmVycmlkZGVuIGluPGJyPgomZ3Q7IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jZXBoL2Nl cGgvYmxvYi80Nzc0ODA4Y2IyOTIzZjY1ZjY5MTlmZThiZTVmOTg5MTcwNzVjZGQ3L3NyYy9yZ3cv cmd3X21haW4uY2MjTDE4NyIgcmVsPSJub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6 Ly9naXRodWIuY29tL2NlcGgvY2VwaC9ibG9iLzQ3NzQ4MDhjYjI5MjNmNjVmNjkxOWZlOGJlNWY5 ODkxNzA3NWNkZDcvc3JjL3Jndy9yZ3dfbWFpbi5jYyNMMTg3PC9hPjxicj4KPGJyPgp5b3UgYXJl IHJpZ2h0LCB0aGlzIGlzIG5ldyBpbiBOYXV0aWx1cy4gTGFzdCB0aW1lIEkgaGFkIHRvIHBsYXkg YXJvdW5kPGJyPgp3aXRoIHRoZXNlIHNldHRpbmdzIHdhcyBpbmRlZWQgb24gYSBNaW1pYyBkZXBs b3ltZW50Ljxicj4KPGJyPgomZ3Q7IEkmIzM5O20ganVzdCBub3Q8YnI+CiZndDsgdW5kZXJzdGFu ZGluZyBob3cgeW91ciBzdWdnZXN0aW9ucyB3b3VsZCBoZWxwLCB0aGUgcHJvYmxlbSBkb2VzbiYj Mzk7dDxicj4KJmd0OyBzZWVtIHRvIGJlIG9uIHRoZSBSQURPUyBzaWRlICh3aGljaCBpdCBhcHBl YXJzIHlvdXIgdHdlYWtzIHRhcmdldCksPGJyPgomZ3Q7IGJ1dCBvbiB0aGUgSFRUUCBzaWRlIGFz IGFuIEhUVFAgaGVhbHRoIGNoZWNrIHRha2VzIGEgbG9uZyB0aW1lIHRvIGNvbWU8YnI+CiZndDsg YmFjayB3aGVuIGEgYmlnIHRyYW5zZmVyIGlzIGdvaW5nIG9uLjxicj4KPGJyPgpJIHdhcyBndWVz c2luZyBhIGJvdHRsZW5lY2sgb24gdGhlIFJBRE9TIHNpZGUgYmVjYXVzZSB5b3UgbWVudGlvbmVk PGJyPgp0aGF0IHlvdSB0cmllZCBib3RoIGNpdmV0d2ViIGFuZCBiZWFzdCwgc29tZXdoYXQgdW5s aWtlbHkgdG8gcnVuIGludG88YnI+CnRoZSBleGFjdCBzYW1lIHByb2JsZW0gd2l0aCBib3RoPGJy Pgo8YnI+Ci0tIDxicj4KUGF1bCBFbW1lcmljaDxicj4KPGJyPgpMb29raW5nIGZvciBoZWxwIHdp dGggeW91ciBDZXBoIGNsdXN0ZXI/IENvbnRhY3QgdXMgYXQgPGEgaHJlZj0iaHR0cHM6Ly9jcm9p dC5pbyIgcmVsPSJub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9jcm9pdC5pbzwv YT48YnI+Cjxicj4KY3JvaXQgR21iSDxicj4KRnJlc2VuaXVzc3RyLiAzMWg8YnI+CjgxMjQ3IE3D vG5jaGVuPGJyPgo8YSBocmVmPSJodHRwOi8vd3d3LmNyb2l0LmlvIiByZWw9Im5vcmVmZXJyZXIi IHRhcmdldD0iX2JsYW5rIj53d3cuY3JvaXQuaW88L2E+PGJyPgpUZWw6ICs0OSA4OSAxODk2NTg1 IDkwPGJyPgo8YnI+Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTxicj4KPGJyPgpEYXRl OiBUaHUsIDE3IE9jdCAyMDE5IDEyOjAwOjIwICswMjAwPGJyPgpGcm9tOiBQYXVsIEVtbWVyaWNo ICZsdDs8YSBocmVmPSJtYWlsdG86cGF1bC5lbW1lcmljaEBjcm9pdC5pbyIgdGFyZ2V0PSJfYmxh bmsiPnBhdWwuZW1tZXJpY2hAY3JvaXQuaW88L2E+Jmd0Ozxicj4KU3ViamVjdDogW2NlcGgtdXNl cnNdIFJlOiBSYWRvc0dXIGNhbnQgbGlzdCBvYmplY3RzIHdoZW4gdGhlcmUgYXJlIHRvbzxicj4K wqAgwqAgwqAgwqAgbWFueSBvZiB0aGVtPGJyPgpUbzogQXJhc2ggU2hhbXMgJmx0OzxhIGhyZWY9 Im1haWx0bzphcmE0c2hAaG90bWFpbC5jb20iIHRhcmdldD0iX2JsYW5rIj5hcmE0c2hAaG90bWFp bC5jb208L2E+Jmd0Ozxicj4KQ2M6ICZxdW90OzxhIGhyZWY9Im1haWx0bzpjZXBoLXVzZXJzQGNl cGguaW8iIHRhcmdldD0iX2JsYW5rIj5jZXBoLXVzZXJzQGNlcGguaW88L2E+JnF1b3Q7ICZsdDs8 YSBocmVmPSJtYWlsdG86Y2VwaC11c2Vyc0BjZXBoLmlvIiB0YXJnZXQ9Il9ibGFuayI+Y2VwaC11 c2Vyc0BjZXBoLmlvPC9hPiZndDs8YnI+Ck1lc3NhZ2UtSUQ6PGJyPgrCoCDCoCDCoCDCoCAmbHQ7 Q0FEOXlUYkdvQ0dQaD08YSBocmVmPSJtYWlsdG86QmE1dFFxQnZDTHU5dVVLbzBLbWpSOUUzYXlv NkRrUi1FMmJ4UUBtYWlsLmdtYWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPkJhNXRRcUJ2Q0x1OXVV S28wS21qUjlFM2F5bzZEa1ItRTJieFFAbWFpbC5nbWFpbC5jb208L2E+Jmd0Ozxicj4KQ29udGVu dC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSZxdW90O1VURi04JnF1b3Q7PGJyPgo8YnI+Ckxp c3RpbmcgbGFyZ2UgYnVja2V0cyBpcyBzbG93IGR1ZSB0byBTMyBvcmRlcmluZyByZXF1aXJlbWVu dHMsIGl0JiMzOTtzPGJyPgphcHByb3hpbWF0ZWx5IE8obl4yKS48YnI+Ckhvd2V2ZXIsIEkgd291 bGRuJiMzOTt0IGNvbnNpZGVyIDVNIHRvIGJlIGEgbGFyZ2UgYnVja2V0LCBpdCBzaG91bGQgZ28g dG88YnI+Cm9ubHkgfjUwIHNoYXJkcyB3aGljaCBzaG91bGQgc3RpbGwgcGVyZm9ybSByZWFzb25h YmxlLiBIb3cgZmFzdCBhcmU8YnI+CnlvdXIgbWV0YWRhdGEgT1NEcz88YnI+Cjxicj4KVHJ5IC0t YWxsb3ctdW5vcmRlcmVkIGluIHJhZG9zZ3ctYWRtaW4gdG8gZ2V0IGFuIHVub3JkZXJlZCByZXN1 bHQ8YnI+CndoaWNoIGlzIG9ubHkgTyhuKSBhcyB5b3UmIzM5O2QgZXhwZWN0Ljxicj4KPGJyPgpG b3IgYm90bzM6IEkmIzM5O20gbm90IHN1cmUgaWYgdjIgb2JqZWN0IGxpc3RpbmcgaXMgYXZhaWxh YmxlIHlldCAoSSB0aGluazxicj4KaXQgaGFzIG9ubHkgYmVlbiBtZXJnZWQgaW50byBtYXN0ZXIg YnV0IGhhcyBub3QgeWV0IG1hZGUgaXQgaW50byBhPGJyPgpyZWxlYXNlPykuIEl0IGRvZXNuJiMz OTt0IHN1cHBvcnQgdW5vcmRlcmVkIGxpc3RpbmcgYnV0IHRoZXJlIGhhcyBiZWVuPGJyPgpzb21l IHdvcmsgdG8gaW1wbGVtZW50IGl0IHRoZXJlLCBub3Qgc3VyZSBhYm91dCB0aGUgY3VycmVudCBz dGF0ZS48YnI+Cjxicj4KPGJyPgo8YnI+ClBhdWw8YnI+Cjxicj4KLS0gPGJyPgpQYXVsIEVtbWVy aWNoPGJyPgo8YnI+Ckxvb2tpbmcgZm9yIGhlbHAgd2l0aCB5b3VyIENlcGggY2x1c3Rlcj8gQ29u dGFjdCB1cyBhdCA8YSBocmVmPSJodHRwczovL2Nyb2l0LmlvIiByZWw9Im5vcmVmZXJyZXIiIHRh cmdldD0iX2JsYW5rIj5odHRwczovL2Nyb2l0LmlvPC9hPjxicj4KPGJyPgpjcm9pdCBHbWJIPGJy PgpGcmVzZW5pdXNzdHIuIDMxaDxicj4KODEyNDcgTcO8bmNoZW48YnI+CjxhIGhyZWY9Imh0dHA6 Ly93d3cuY3JvaXQuaW8iIHJlbD0ibm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxhbmsiPnd3dy5jcm9p dC5pbzwvYT48YnI+ClRlbDogKzQ5IDg5IDE4OTY1ODUgOTA8YnI+Cjxicj4KT24gVGh1LCBPY3Qg MTcsIDIwMTkgYXQgOToxOSBBTSBBcmFzaCBTaGFtcyAmbHQ7PGEgaHJlZj0ibWFpbHRvOmFyYTRz aEBob3RtYWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmFyYTRzaEBob3RtYWlsLmNvbTwvYT4mZ3Q7 IHdyb3RlOjxicj4KJmd0Ozxicj4KJmd0OyBEZWFyIEFsbDxicj4KJmd0Ozxicj4KJmd0OyBJIGhh dmUgYSBidWNrZXQgd2l0aCA1IG1pbGxpb24gT2JqZWN0cyBhbmQgSSBjYW50IGxpc3Qgb2JqZWN0 cyB3aXRoPGJyPgomZ3Q7IHJhZG9zZ3ctYWRtaW4gYnVja2V0IGxpc3QgLS1idWNrZXQ9YnVja2V0 IHwganEgLltdLm5hbWU8YnI+CiZndDsgb3IgbGlzdGluZyBmaWxlcyB1c2luZyBib3RvMzxicj4K Jmd0Ozxicj4KJmd0O8KgIMKgIMKgczMgPSBib3RvMy5jbGllbnQoJiMzOTtzMyYjMzk7LDxicj4K Jmd0O8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgZW5kcG9pbnRfdXJsPWNyZWRl bnRpYWxzWyYjMzk7ZW5kcG9pbnRfdXJsJiMzOTtdLDxicj4KJmd0O8KgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgYXdzX2FjY2Vzc19rZXlfaWQ9Y3JlZGVudGlhbHNbJiMzOTthY2Nl c3Nfa2V5JiMzOTtdLDxicj4KJmd0O8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg YXdzX3NlY3JldF9hY2Nlc3Nfa2V5PWNyZWRlbnRpYWxzWyYjMzk7c2VjcmV0X2tleSYjMzk7XSk8 YnI+CiZndDs8YnI+CiZndDvCoCDCoCDCoHJlc3BvbnNlID0gczMubGlzdF9vYmplY3RzX3YyKEJ1 Y2tldD1idWNrZXRfbmFtZSk8YnI+CiZndDvCoCDCoCDCoGZvciBpdGVtIGluIHJlc3BvbnNlWyYj Mzk7Q29udGVudHMmIzM5O106PGJyPgomZ3Q7wqAgwqAgwqAgwqAgwqBwcmludChpdGVtWyYjMzk7 S2V5JiMzOTtdKTxicj4KJmd0Ozxicj4KJmd0OyB3aGF0IGlzIHRoZSBzb2x1dGlvbiA/IGhvdyBj YW4gSSBmaW5kIGxpc3Qgb2YgbXkgb2JqZWN0cyA/PGJyPgomZ3Q7PGJyPgomZ3Q7PGJyPgomZ3Q7 PGJyPgomZ3Q7IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f PGJyPgomZ3Q7IGNlcGgtdXNlcnMgbWFpbGluZyBsaXN0IC0tIDxhIGhyZWY9Im1haWx0bzpjZXBo LXVzZXJzQGNlcGguaW8iIHRhcmdldD0iX2JsYW5rIj5jZXBoLXVzZXJzQGNlcGguaW88L2E+PGJy PgomZ3Q7IFRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gPGEgaHJlZj0ibWFpbHRvOmNl cGgtdXNlcnMtbGVhdmVAY2VwaC5pbyIgdGFyZ2V0PSJfYmxhbmsiPmNlcGgtdXNlcnMtbGVhdmVA Y2VwaC5pbzwvYT48YnI+Cjxicj4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPGJyPgo8 YnI+CkRhdGU6IFRodSwgMTcgT2N0IDIwMTkgMTA6NDY6NTMgKzAwMDA8YnI+CkZyb206IEZyYW5r IFNjaGlsZGVyICZsdDs8YSBocmVmPSJtYWlsdG86ZnJhbnNAZHR1LmRrIiB0YXJnZXQ9Il9ibGFu ayI+ZnJhbnNAZHR1LmRrPC9hPiZndDs8YnI+ClN1YmplY3Q6IFtjZXBoLXVzZXJzXSBSZTogUmVj b3ZlcmluZyBmcm9tIGEgRmFpbGVkIERpc2sgKHJlcGxpY2F0aW9uPGJyPgrCoCDCoCDCoCDCoCAx KTxicj4KVG86IHZsYWRpbWlyIGZyYW5jaXogYmxhbmRvICZsdDs8YSBocmVmPSJtYWlsdG86dmxh ZGltaXIuYmxhbmRvQGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPnZsYWRpbWlyLmJsYW5kb0Bn bWFpbC5jb208L2E+Jmd0Oyw8YnI+CsKgIMKgIMKgIMKgICZxdW90OzxhIGhyZWY9Im1haWx0bzpj ZXBoLXVzZXJzQGNlcGguaW8iIHRhcmdldD0iX2JsYW5rIj5jZXBoLXVzZXJzQGNlcGguaW88L2E+ JnF1b3Q7wqAgwqAmbHQ7PGEgaHJlZj0ibWFpbHRvOmNlcGgtdXNlcnNAY2VwaC5pbyIgdGFyZ2V0 PSJfYmxhbmsiPmNlcGgtdXNlcnNAY2VwaC5pbzwvYT4mZ3Q7PGJyPgpNZXNzYWdlLUlEOiAmbHQ7 PGEgaHJlZj0ibWFpbHRvOjU4ZTIyYmM2MzQ1YjQ4NzE4ZGJjZTcyMzhhMDZlMzVkQGR0dS5kayIg dGFyZ2V0PSJfYmxhbmsiPjU4ZTIyYmM2MzQ1YjQ4NzE4ZGJjZTcyMzhhMDZlMzVkQGR0dS5kazwv YT4mZ3Q7PGJyPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9JnF1b3Q7dXRmLTgm cXVvdDs8YnI+Cjxicj4KWW91IHByb2JhYmx5IG5lZWQgdG8gYXR0ZW1wdCBhIHBoeXNpY2FsIGRh dGEgcmVzY3VlLiBEYXRhIGFjY2VzcyB3aWxsIGJlIGxvc3QgdW50aWwgZG9uZS48YnI+Cjxicj4K Rmlyc3QgdGhpbmcgaXMgc2h1dCBkb3duIHRoZSBPU0QgdG8gYXZvaWQgYW55IGZ1cnRoZXIgZGFt YWdlIHRvIHRoZSBkaXNrLjxicj4KU2Vjb25kIHRoaW5nIGlzIHRvIHRyeSBkZHJlc2N1ZSwgcmVw YWlyIGRhdGEgb24gYSBjb3B5IGlmIHBvc3NpYmxlIGFuZCB0aGVuIGNyZWF0ZSBhIGNsb25lIG9u IGEgbmV3IGRpc2sgZnJvbSB0aGUgY29weS48YnI+CklmIHRoaXMgZG9lc24mIzM5O3QgaGVscCBh bmQgeW91IHJlYWxseSBuZWVkIHRoYXQgbGFzdCBiaXQgb2YgZGF0YSwgeW91IG1pZ2h0IG5lZWQg c3VwcG9ydCBmcm9tIG9uZSBvZiB0aG9zZSBjb21wYW5pZXMgdGhhdCByZXN0b3JlIGRpc2sgZGF0 YSB3aXRoIGVsZWN0cm9uIG1pY3Jvc2NvcHkuPGJyPgo8YnI+Ckkgc3VjY2Vzc2Z1bGx5IHRyYW5z ZmVycmVkIE9TRHMgYmV0d2VlbiBkaXNrcyB1c2luZyBkZHJlc2N1ZS48YnI+Cjxicj4KQmVzdCBy ZWdhcmRzLDxicj4KPT09PT09PT09PT09PT09PT08YnI+CkZyYW5rIFNjaGlsZGVyPGJyPgpBSVQg Umlzw7ggQ2FtcHVzPGJyPgpCeWduaW5nIDEwOSwgcnVtIFMxNDxicj4KPGJyPgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPgpGcm9tOiB2bGFkaW1pciBmcmFuY2l6 IGJsYW5kbyAmbHQ7PGEgaHJlZj0ibWFpbHRvOnZsYWRpbWlyLmJsYW5kb0BnbWFpbC5jb20iIHRh cmdldD0iX2JsYW5rIj52bGFkaW1pci5ibGFuZG9AZ21haWwuY29tPC9hPiZndDs8YnI+ClNlbnQ6 IDE3IE9jdG9iZXIgMjAxOSAwNToyOToxMzxicj4KVG86IDxhIGhyZWY9Im1haWx0bzpjZXBoLXVz ZXJzQGNlcGguaW8iIHRhcmdldD0iX2JsYW5rIj5jZXBoLXVzZXJzQGNlcGguaW88L2E+PGJyPgpT dWJqZWN0OiBbY2VwaC11c2Vyc10gUmVjb3ZlcmluZyBmcm9tIGEgRmFpbGVkIERpc2sgKHJlcGxp Y2F0aW9uIDEpPGJyPgo8YnI+CkhpLDxicj4KPGJyPgpJIGhhdmUgYSBub3QgaWRlYWwgc2V0dXAg b24gb25lIG9mIG15IGNsdXN0ZXIswqAgMyBjZXBowqAgbm9kZXMgYnV0IHVzaW5nIHJlcGxpY2F0 aW9uIDEgb24gYWxsIHBvb2xzIChkb24mIzM5O3QgYXNrIG1lIHdoeSByZXBsaWNhdGlvbiAxLCBp dCYjMzk7cyBhIGxvbmcgc3RvcnkpLjxicj4KPGJyPgpTbyBpdCBoYXMgY29tZSB0byB0aGlzIHNp dHVhdGlvbiB0aGF0IGEgZGlzayBrZWVwcyBvbiBjcmFzaGluZywgcG9zc2libGUgYSBoYXJkd2Fy ZSBmYWlsdXJlIGFuZCBJIG5lZWQgdG8gcmVjb3ZlciBmcm9tIHRoYXQuPGJyPgo8YnI+CldoYXQm IzM5O3MgbXkgYmVzdCBvcHRpb24gZm9yIG1lIHRvIHJlY292ZXIgdGhlIGRhdGEgZnJvbSB0aGUg ZmFpbGVkIGRpc2sgYW5kIHRyYW5zZmVyIGl0IHRvIHRoZSBvdGhlciBoZWFsdGh5IGRpc2tzPzxi cj4KPGJyPgpUaGlzIGNsdXN0ZXIgaXMgdXNpbmcgRmlyZWZseTxicj4KPGJyPgotIFZsYWQ8YnI+ Cls8YSBocmVmPSJodHRwczovL21haWxmb29nYWUuYXBwc3BvdC5jb20vdD9zZW5kZXI9YWRteGha R2x0YVhJdVlteGhibVJ2UUdkdFlXbHNMbU52YlElM0QlM0QmYW1wO3R5cGU9emVyb2NvbnRlbnQm YW1wO2d1aWQ9OTc2Y2U3MjQtMzg5NC00YTc1LWI1OTEtZGNhMDE3YmRmMTllXSVFMSU5MCVBNyIg cmVsPSJub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9tYWlsZm9vZ2FlLmFwcHNw b3QuY29tL3Q/c2VuZGVyPWFkbXhoWkdsdGFYSXVZbXhoYm1SdlFHZHRZV2xzTG1OdmJRJTNEJTNE JmFtcDt0eXBlPXplcm9jb250ZW50JmFtcDtndWlkPTk3NmNlNzI0LTM4OTQtNGE3NS1iNTkxLWRj YTAxN2JkZjE5ZV3hkKc8L2E+PGJyPgo8YnI+Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LTxicj4KPGJyPgpTdWJqZWN0OiBEaWdlc3QgRm9vdGVyPGJyPgo8YnI+Cl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPgpjZXBoLXVzZXJzIG1haWxpbmcg bGlzdCAtLSA8YSBocmVmPSJtYWlsdG86Y2VwaC11c2Vyc0BjZXBoLmlvIiB0YXJnZXQ9Il9ibGFu ayI+Y2VwaC11c2Vyc0BjZXBoLmlvPC9hPjxicj4KVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFp bCB0byA8YSBocmVmPSJtYWlsdG86Y2VwaC11c2Vycy1sZWF2ZUBjZXBoLmlvIiB0YXJnZXQ9Il9i bGFuayI+Y2VwaC11c2Vycy1sZWF2ZUBjZXBoLmlvPC9hPjxicj4KJSh3ZWJfcGFnZV91cmwpc2xp c3RpbmZvJShjZ2lleHQpcy8lKF9pbnRlcm5hbF9uYW1lKXM8YnI+Cjxicj4KPGJyPgotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08YnI+Cjxicj4KRW5kIG9mIGNlcGgtdXNlcnMgRGlnZXN0 LCBWb2wgODEsIElzc3VlIDM5PGJyPgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKio8YnI+CjwvYmxvY2txdW90ZT48L2Rpdj48L2Rpdj48L2Rpdj4KCjxicj4KPGJsb2Nr cXVvdGUgdHlwZT0iY2l0ZSIgc3R5bGU9ImNvbG9yOnJnYigzNCwzNCwzNCk7Zm9udC1zaXplOnNt YWxsO2JhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+PGRpdiBkaXI9Imx0ciI+PGRp dj48cCBzdHlsZT0ibWFyZ2luOjBweDt0ZXh0LWFsaWduOmp1c3RpZnkiPjxpPjxzcGFuIHN0eWxl PSJmb250LXNpemU6MTBwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOnJnYigy MCwxOSwyMikiPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTx3YnI+LS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tPHdicj4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwvc3Bh bj48L2k+PC9wPjxwIHN0eWxlPSJtYXJnaW46MHB4O3RleHQtYWxpZ246anVzdGlmeSI+PGk+PHNw YW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29s b3I6cmdiKDIwLDE5LDIyKSI+VGhpcyBlbWFpbCBhbmQgYW55IGZpbGVzIHRyYW5zbWl0dGVkIHdp dGggaXQgYXJlIGNvbmZpZGVudGlhbCBhbmQgaW50ZW5kZWQgc29sZWx5IGZvciB0aGUgdXNlIG9m IHRoZSBpbmRpdmlkdWFsIG9yIGVudGl0eSB0byB3aG9tIHRoZXkgYXJlIGFkZHJlc3NlZC4gSWYg eW91IGhhdmUgcmVjZWl2ZWQgdGhpcyBlbWFpbCBpbiBlcnJvciwgcGxlYXNlIG5vdGlmeSB0aGUg c3lzdGVtIG1hbmFnZXIuIFRoaXMgbWVzc2FnZSBjb250YWlucyBjb25maWRlbnRpYWwgaW5mb3Jt YXRpb24gYW5kIGlzIGludGVuZGVkIG9ubHkgZm9yIHRoZSBpbmRpdmlkdWFsIG5hbWVkLiBJZiB5 b3UgYXJlIG5vdCB0aGUgbmFtZWQgYWRkcmVzc2VlLCB5b3Ugc2hvdWxkIG5vdCBkaXNzZW1pbmF0 ZSwgZGlzdHJpYnV0ZSBvciBjb3B5IHRoaXMgZW1haWwuIFBsZWFzZSBub3RpZnkgdGhlIHNlbmRl ciBpbW1lZGlhdGVseSBieSBlbWFpbCBpZiB5b3UgaGF2ZSByZWNlaXZlZCB0aGlzIGVtYWlsIGJ5 IG1pc3Rha2UgYW5kIGRlbGV0ZSB0aGlzIGVtYWlsIGZyb20geW91ciBzeXN0ZW0uIElmIHlvdSBh cmUgbm90IHRoZSBpbnRlbmRlZCByZWNpcGllbnQsIHlvdSBhcmUgbm90aWZpZWQgdGhhdCBkaXNj bG9zaW5nLCBjb3B5aW5nLCBkaXN0cmlidXRpbmcgb3IgdGFraW5nIGFueSBhY3Rpb24gaW4gcmVs aWFuY2Ugb24gdGhlIGNvbnRlbnRzIG9mIHRoaXMgaW5mb3JtYXRpb24gaXMgc3RyaWN0bHkgcHJv aGliaXRlZC48L3NwYW4+PC9pPjx1PjwvdT48dT48L3U+PC9wPjxwIHN0eWxlPSJtYXJnaW46MHB4 O3RleHQtYWxpZ246anVzdGlmeSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB0Ij7CoDwvc3Bh bj48dT48L3U+PHU+PC91PjwvcD48cCBzdHlsZT0ibWFyZ2luOjBweDt0ZXh0LWFsaWduOmp1c3Rp ZnkiPjxpPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTBwdDtmb250LWZhbWlseTpBcmlhbCxzYW5z LXNlcmlmO2NvbG9yOnJnYigyMCwxOSwyMikiPkFueSB2aWV3cyBvciBvcGluaW9ucyBwcmVzZW50 ZWQgaW4gdGhpcyBlbWFpbCBhcmUgc29sZWx5IHRob3NlIG9mIHRoZSBhdXRob3IgYW5kIGRvIG5v dCBuZWNlc3NhcmlseSByZXByZXNlbnQgdGhvc2Ugb2YgdGhlIG9yZ2FuaXphdGlvbi4gQW55IGlu Zm9ybWF0aW9uIG9uIHNoYXJlcywgZGViZW50dXJlcyBvciBzaW1pbGFyIGluc3RydW1lbnRzLCBy ZWNvbW1lbmRlZCBwcm9kdWN0IHByaWNpbmcsIHZhbHVhdGlvbnMgYW5kIHRoZSBsaWtlIGFyZSBm b3IgaW5mb3JtYXRpb24gcHVycG9zZXMgb25seS4gSXQgaXMgbm90IG1lYW50IHRvIGJlIGFuIGlu c3RydWN0aW9uIG9yIHJlY29tbWVuZGF0aW9uLCBhcyB0aGUgY2FzZSBtYXkgYmUsIHRvIGJ1eSBv ciB0byBzZWxsIHNlY3VyaXRpZXMsIHByb2R1Y3RzLCBzZXJ2aWNlcyBub3IgYW4gb2ZmZXIgdG8g YnV5IG9yIHNlbGwgc2VjdXJpdGllcywgcHJvZHVjdHMgb3Igc2VydmljZXMgdW5sZXNzIHNwZWNp ZmljYWxseSBzdGF0ZWQgdG8gYmUgc28gb24gYmVoYWxmIG9mIHRoZSBGbGlwa2FydCBncm91cC4g RW1wbG95ZWVzIG9mwqB0aGUgRmxpcGthcnQgZ3JvdXAgb2YgY29tcGFuaWVzIGFyZSBleHByZXNz bHkgcmVxdWlyZWQgbm90IHRvIG1ha2UgZGVmYW1hdG9yeSBzdGF0ZW1lbnRzIGFuZCBub3QgdG8g aW5mcmluZ2Ugb3IgYXV0aG9yaXNlIGFueSBpbmZyaW5nZW1lbnQgb2YgY29weXJpZ2h0IG9yIGFu eSBvdGhlciBsZWdhbCByaWdodCBieSBlbWFpbCBjb21tdW5pY2F0aW9ucy4gQW55IHN1Y2ggY29t bXVuaWNhdGlvbiBpcyBjb250cmFyeSB0byBvcmdhbml6YXRpb25hbCBwb2xpY3kgYW5kIG91dHNp ZGUgdGhlIHNjb3BlIG9mIHRoZSBlbXBsb3ltZW50IG9mIHRoZSBpbmRpdmlkdWFsIGNvbmNlcm5l ZC4gVGhlIG9yZ2FuaXphdGlvbiB3aWxsIG5vdCBhY2NlcHQgYW55IGxpYWJpbGl0eSBpbiByZXNw ZWN0IG9mIHN1Y2ggY29tbXVuaWNhdGlvbiwgYW5kIHRoZSBlbXBsb3llZSByZXNwb25zaWJsZSB3 aWxsIGJlIHBlcnNvbmFsbHkgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBvciBvdGhlciBsaWFiaWxp dHkgYXJpc2luZy48L3NwYW4+PC9pPjx1PjwvdT48dT48L3U+PC9wPjxwIHN0eWxlPSJtYXJnaW46 MHB4O3RleHQtYWxpZ246anVzdGlmeSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB0Ij7CoDwv c3Bhbj48dT48L3U+PHU+PC91PjwvcD48cCBzdHlsZT0ibWFyZ2luOjBweDt0ZXh0LWFsaWduOmp1 c3RpZnkiPjxpPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTBwdDtmb250LWZhbWlseTpBcmlhbCxz YW5zLXNlcmlmO2NvbG9yOnJnYigyMCwxOSwyMikiPk91ciBvcmdhbml6YXRpb24gYWNjZXB0cyBu byBsaWFiaWxpdHkgZm9yIHRoZSBjb250ZW50IG9mIHRoaXMgZW1haWwsIG9yIGZvciB0aGUgY29u c2VxdWVuY2VzIG9mIGFueSBhY3Rpb25zIHRha2VuIG9uIHRoZSBiYXNpcyBvZiB0aGUgaW5mb3Jt YXRpb27CoDwvc3Bhbj48L2k+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB0O2ZvbnQtZmFtaWx5 OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6cmdiKDIwLDE5LDIyKSI+cHJvdmlkZWQsPGk+wqB1bmxl c3MgdGhhdCBpbmZvcm1hdGlvbiBpcyBzdWJzZXF1ZW50bHkgY29uZmlybWVkIGluIHdyaXRpbmcu IElmIHlvdSBhcmUgbm90IHRoZSBpbnRlbmRlZCByZWNpcGllbnQsIHlvdSBhcmUgbm90aWZpZWQg dGhhdCBkaXNjbG9zaW5nLCBjb3B5aW5nLCBkaXN0cmlidXRpbmcgb3IgdGFraW5nIGFueSBhY3Rp b24gaW4gcmVsaWFuY2Ugb24gdGhlIGNvbnRlbnRzIG9mIHRoaXMgaW5mb3JtYXRpb24gaXMgc3Ry aWN0bHkgcHJvaGliaXRlZC48L2k+PC9zcGFuPjwvcD48cCBzdHlsZT0ibWFyZ2luOjBweDt0ZXh0 LWFsaWduOmp1c3RpZnkiPjxpIHN0eWxlPSJmb250LXNpemU6MS4zZW0iPjxzcGFuIHN0eWxlPSJm b250LXNpemU6MTBwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOnJnYigyMCwx OSwyMikiPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTx3YnI+LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tPHdicj4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwvc3Bhbj48 L2k+PC9wPjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT4= --===============6284587198673050706==--