From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============4846412358701427321==" MIME-Version: 1.0 From: Luse, Paul E Subject: Re: [SPDK] Building spdk on CentOS6 Date: Wed, 09 May 2018 17:19:33 +0000 Message-ID: <82C9F782B054C94B9FC04A331649C77AA6F72634@fmsmsx104.amr.corp.intel.com> In-Reply-To: A5F28D4A728A7E41839CDC5C3B5A01E8B5C98870@FMSMSX103.amr.corp.intel.com List-ID: To: spdk@lists.01.org --===============4846412358701427321== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable That's great, thanks Daniel! From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Verkamp, Daniel Sent: Wednesday, May 9, 2018 9:43 AM To: Storage Performance Development Kit Subject: Re: [SPDK] Building spdk on CentOS6 I agree with Paul's review; it looks like it shouldn't be a big problem to = carry a patch for this in our DPDK submodule, at least while CentOS 6 is st= ill officially supported. (I posted a few review comments on the patch, but= the general approach looks fine.) The Intel build pool had a CentOS 6 test machine in the pool until recently= , and we should be able to resurrect it to provide test coverage again. Thanks, -- Daniel From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Shahar Salzman Sent: Wednesday, May 9, 2018 6:12 AM To: Storage Performance Development Kit > Subject: Re: [SPDK] Building spdk on CentOS6 Hi Paul, Thanks for the review. We are now working on CentOS7 support, but it is not complete yet, so we wi= ll be on CentOS6 about 6-12 months. Shahar ________________________________ From: SPDK = > on behalf of Luse, Paul E > Sent: Wednesday, May 9, 2018 3:51:23 PM To: Storage Performance Development Kit Subject: Re: [SPDK] Building spdk on CentOS6 Thanks for doing that! I put my 2 cents on the review, one more data point = for the maintainers might help - help long do you believe your team will be= on CentOS6? Don't need a specific date but are we talking months, years, i= ndefinitely? I think the other implication of accepting this in the community would be t= o spin up a CentOS6 VM for some basic testing for as long as we hold that p= atch in our DPDK fork which is not a huge thing but want to make sure that'= s clear as well. If nothing else we'll know if something else breaks it soo= ner than later and will need to decide, again, at that time if we pull it o= r if it's a high enough priority for anyone to dig in and find a potential = solution like you did here. Assuming, of course, that this one is accepted= :) Thanks, Paul From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Shahar Salzman Sent: Wednesday, May 9, 2018 2:01 AM To: spdk(a)lists.01.org Subject: Re: [SPDK] Building spdk on CentOS6 Hi Ben, Pushed the fix to gerrithub - https://review.gerrithub.io/#/c/spdk/dpdk/+/4= 10559/ We are currently using a "frozen" dpdk tree based version 16.07, but I am p= ushing to using the spdk fork and performing regular updates so if things b= reak, I will attempt to fix them, and post on the list. The above fixes a blunt gcc API issue, but there are more subtle inner modu= le issues which I have not investigated, simply removed the modules all tog= ether as they are not needed by spdk. I can set up a howto for users who may need CentOS6 support or we can modif= y the config (as these modules are not really needed for spdk). For the sak= e of clarity here are the modules "configed out" (as I mentioned they are n= ot used by spdk): +CONFIG_RTE_LIBRTE_PMD_BOND=3Dn +CONFIG_RTE_LIBRTE_CRYPTODEV=3Dn +CONFIG_RTE_LIBRTE_SECURITY=3Dn +CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV=3Dn +CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF=3Dn +CONFIG_RTE_LIBRTE_LPM=3Dn +CONFIG_RTE_LIBRTE_FLOW_CLASSIFY=3Dn +CONFIG_RTE_LIBRTE_TABLE=3Dn +CONFIG_RTE_LIBRTE_PIPELINE=3Dn +CONFIG_RTE_TEST_PMD=3Dn +CONFIG_RTE_LIBRTE_PMD_TAP=3Dn +CONFIG_RTE_LIBRTE_AVP_PMD=3Dn Regarding the -fn-strict-aliasing issue, I'll see if I can do the same tric= k I did for the gcc alias in the Makefile, and push the fix for review. Shahar ________________________________ From: SPDK = > on behalf of Walker, Benjamin > Sent: Tuesday, May 8, 2018 7:49:44 PM To: spdk(a)lists.01.org Subject: Re: [SPDK] Building spdk on CentOS6 On Tue, 2018-05-08 at 14:34 +0000, Shahar Salzman wrote: > Got it. > > I was tracking the dpdk project, and focused on the branch that Daniel to= ld me > to work on. > So would the correct process be to push the patch to the spdk/dpdk gerrit= hub > and discuss the commit, or the other way around? Yes - go ahead and push to spdk/dpdk on GerritHub so we can all review it. = The SPDK project has never written out a policy on which versions of DPDK are supported for any given SPDK release. The code is always tested using the l= atest released DPDK, and then attempts to support older versions of DPDK are done= in an ad hoc manner. Similarly, the project never explicitly states which oper= ating systems are supported. Instead, we indicate which operating systems the cod= e is regularly tested on (Fedora N and N-1, Ubuntu latest, Ubuntu LTS, CentOS 7, FreeBSD 11). I see that CentOS 6 is no longer receiving full updates and is in maintenan= ce only mode. It will stop receiving even maintenance updates in 2020. I think= that is indicative of the level of support SPDK should provide here. Given the above, if this patch can be applied to the DPDK fork and doesn't = have any additional impact, I'm not opposed to applying it. That wouldn't, in my mind, mean that SPDK is committed to supporting CentOS 6 indefinitely. But certainly that support could continue while it is relatively easy and convenient. > > From: SPDK > on behalf of Luse, Paul E > intel.com> > Sent: Tuesday, May 8, 2018 5:14:10 PM > To: Storage Performance Development Kit > Subject: Re: [SPDK] Building spdk on CentOS6 > > Sure, I understand that. SPDK maintains a fork of dpdk in github at http= s://g > ithub.com/spdk/dpdk for the purpose of temporarily putting things in that= we > need that can't make it upstream yet for whatever reason - this is the > submodule in the SPDK repo. I'm not saying that it makes sense for your = patch > to land there permanently but it does make sense to talk about it. > > No problem on not being on the call, we'll get some input from the mainta= iners > and others I'm sure... > > Thx > Paul > > From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Shahar Salzm= an > Sent: Tuesday, May 8, 2018 7:04 AM > To: Storage Performance Development Kit > > Subject: Re: [SPDK] Building spdk on CentOS6 > > Hey Paul, > > The problem is that the patch is in dpdk and not in spdk, and this is the > reason I offered to support it. > The patch (bellow) is only a few lines long modifying the deprecated attr= ibute > definition, a modification to the config, and an extra compilation flag. > All of the above are required in order to build dpdk 18.01 on CentOS6, th= ere > are no problems building spdk on CentOS6. > > I understood that you are already applying minor patches to dpdk, so ques= tion > is, whether this patch can be added? > > Unfortunately due to some personal issues, I am unable to participate in > today's meeting. > > Thanks, > Shahar > From: SPDK > on behalf of Luse, Paul E > intel.com> > Sent: Tuesday, May 8, 2018 4:25:29 PM > To: Storage Performance Development Kit > Subject: Re: [SPDK] Building spdk on CentOS6 > > Hi Shahar, > > Couple of quick things: > > * thanks for putting all this time and effort into trying to make this wo= rk! > * in the community model, patches aren't accepted based on one individual= 's > ability/desire to support them so appreciate the offer but in general any > patch that is accepted becomes the responsibly of the community (mostly t= he > maintainers) to support it long term. Otherwise we'd have what I like to= call > "the flea market model" where there's a bunch of separate individuals > supporting their own things with very little cohesiveness across everythi= ng J > > So, wrt next steps, if the patch isn't a tremendous amount of effort I wo= uld > suggest you go ahead and submit it. That's the best way to get everyone o= n the > same page wrt exactly what we're talking about. If it is some significant > effort then, as Pawel states, you can call into a community meeting (see = email > I sent out last night) or you can explain more details on this list. > > Thanks again!! > Paul > > From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Wodkowski, P= awelX > Sent: Tuesday, May 8, 2018 5:57 AM > To: Storage Performance Development Kit > > Subject: Re: [SPDK] Building spdk on CentOS6 > > I think someone will answer you on this mailing list but there is communi= ty > meeting today too. You can raise this if you wish. > > Pawel > > From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Shahar Salzm= an > Sent: Tuesday, May 8, 2018 2:23 PM > To: Storage Performance Development Kit > > Subject: Re: [SPDK] Building spdk on CentOS6 > > Hi, > > I attempted to push the gcc support patch to dpdk, and got rejected since= they > do not wish to support CentOS6. > Would it be possible to manually add the patch to the supported dpdk vers= ion > (currently 18.01). > I would be happy to support CentOS6 issues. > > Thanks, > Shahar > > From: Shahar Salzman > Sent: Tuesday, April 24, 2018 3:40:51 PM > To: Storage Performance Development Kit > Cc: Ilan Steinberg; Ido Benda; Yael Shavit > Subject: Re: Building spdk on CentOS6 > > OK, got everything to work. > > For DPDK, I had to to do the following: > add a patch to make the new __rte_experimental attribute to work > remove a bunch of modules via config which had some gnarly compilation er= rors, > and are not needed for spdk > use -fno-strict-aliasing in the EXTRA_CFLAGS to avoid a ton of strict ali= asing > errors. > > I tried spdk 18.01, and ran into some issues with the shared library buil= d. As > I saw that Daniel had already dealt with them, I tried cherry picking, but > eventually used the master branch. > I got these type of warnings: > > /usr/bin/ld: warning: librte_mbuf.so.3.1, needed by > /khome/shahar.salzman/Kaminario/git/dpdk/x86_64-native-linuxapp- > gcc/lib/librte_bus_pci.so, not found (try using -rpath or -rpath-link) > /usr/bin/ld: warning: librte_ethdev.so.8.1, needed by > /khome/shahar.salzman/Kaminario/git/dpdk/x86_64-native-linuxapp- > gcc/lib/librte_bus_pci.so, not found (try using -rpath or -rpath-link) > > I added the following patch bellow to make them go away. > > I'll approach the dpdk community on the mailing list in order to get the > __rte_experimental stuff to work. > My final configuration is: > CenrOS6.4 > gcc 4.4.7-17 > dpdk v18.02 > spdk master > > What are the next steps? > > Shahar > > P.S. Here is the patch to remove the warnings above. > commit d4ef744de1cc4928972b7042d1c90aff12db7867 > Author: shahar salzman > > Date: Tue Apr 24 14:31:52 2018 +0300 > > lib/env_dpdk: add required libraries > > diff --git a/lib/env_dpdk/env.mk b/lib/env_dpdk/env.mk > index 450043c..b46bfed 100644 > --- a/lib/env_dpdk/env.mk > +++ b/lib/env_dpdk/env.mk > @@ -68,6 +68,18 @@ ifneq ($(wildcard $(DPDK_ABS_DIR)/lib/librte_malloc.*)= ,) > DPDK_LIB_LIST +=3D rte_malloc > endif > > +ifneq (, $(wildcard $(DPDK_ABS_DIR)/lib/librte_mbuf.*)) > +DPDK_LIB_LIST +=3D rte_mbuf > +endif > + > +ifneq (, $(wildcard $(DPDK_ABS_DIR)/lib/librte_net.*)) > +DPDK_LIB_LIST +=3D rte_net > +endif > + > +ifneq (, $(wildcard $(DPDK_ABS_DIR)/lib/librte_ethdev.*)) > +DPDK_LIB_LIST +=3D rte_ethdev > +endif > + > # librte_pci and librte_bus_pci were added in DPDK 17.11. Link these > libraries conditionally > # based on their existence to maintain backward compatibility. > ifneq (, $(wildcard $(DPDK_ABS_DIR)/lib/librte_pci.*)) > > > > From: SPDK > on behalf of Shahar Salzman zman(a)kaminario.com> > Sent: Tuesday, April 24, 2018 9:57 AM > To: Storage Performance Development Kit > Subject: Re: [SPDK] Building spdk on CentOS6 > > Great, and thanks! > > I have been running into issues compiling dpdk 17.11 on CentOS6 (there se= ems > to be a gcc issue that does not exist in other versions), I'll focus my > efforts on dpdk 18.02. > From: SPDK > on behalf of Verkamp, Daniel rkamp(a)intel.com> > Sent: Monday, April 23, 2018 9:40:36 PM > To: Storage Performance Development Kit > Subject: Re: [SPDK] Building spdk on CentOS6 > > Hi Shahar, > > I've pushed a patch for the SPDK master branch that should allow it to co= mpile > with DPDK 16.07: https://review.gerrithub.io/#/c/spdk/spdk/+/408743/ > > Gerrit Code Review > > review.gerrithub.io > > Keep in touch. Copyright (c) 2017 | GerritForge Ltd. info(a)gerritforge.c= om > www.gerritforge.com > > > However, DPDK 16.07 is no longer supported upstream; I highly recommend t= hat > you update to a newer version. SPDK is currently tested with DPDK 18.02. > > The VFIO issue you mention has also been fixed on SPDK master, and it wil= l be > part of the SPDK v18.04 release. > > Thanks, > -- Daniel > > From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Shahar Salzm= an > Sent: Sunday, April 22, 2018 6:41 AM > To: Storage Performance Development Kit > > Subject: [SPDK] Building spdk on CentOS6 > > Hi, > > Finally got to looking at support of spdk build on CentOS6, things look g= ood, > except for one issue. > spdk is latest 18.01.x version, dpdk is 16.07 (+3 dpdk patches to allow > compilation) and some minor patches (mainly some memory configuration stu= ff), > kernel is a patched 4.9.6. > > build succeeded except for the usage of the dpdk function pci_vfio_is_ena= bled. > I had to apply the patch bellow, removing the usage of this function and = then > compilation completed without any issues. > > It seems that I am missing some sort of dpdk configuration as I see that = the > function is built, but not packaged into the generated archive. > > I went back to square one and ran the instructions in http://www.spdk.io/= doc/g > etting_started.html, but I see no mention of dpdk there. Actually the > ./configure requires it. > > My next step is to use a more recent dpdk, but shouldn't this work with my > version? Am I missing some dpdk configuration? > BTW, as we are not using vhost, on our 17.07 version we simply use > CONFIG_VHOST=3Dn in order to skip this, but I would be happier if we used= a > better solution. > > Shahar > > P.S. Here is the patch to remove use of this function: > diff --git a/lib/env_dpdk/vtophys.c b/lib/env_dpdk/vtophys.c > index 92aa256..f38929f 100644 > --- a/lib/env_dpdk/vtophys.c > +++ b/lib/env_dpdk/vtophys.c > @@ -53,8 +53,10 @@ > #define SPDK_VFIO_ENABLED 1 > #include > > +#if 0 > /* Internal DPDK function forward declaration */ > int pci_vfio_is_enabled(void); > +#endif > > struct spdk_vfio_dma_map { > struct vfio_iommu_type1_dma_map map; > @@ -341,9 +343,11 @@ spdk_vtophys_iommu_init(void) > DIR *dir; > struct dirent *d; > > +#if 0 > if (!pci_vfio_is_enabled()) { > return; > } > +#endif > > dir =3D opendir("/proc/self/fd"); > if (!dir) { > > > _______________________________________________ > 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 --===============4846412358701427321== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11cy1hc2NpaSI+CjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPgo8IS0tW2lm ICFtc29dPjxzdHlsZT52XDoqIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9Cm9cOioge2Jl aGF2aW9yOnVybCgjZGVmYXVsdCNWTUwpO30Kd1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZN TCk7fQouc2hhcGUge2JlaGF2aW9yOnVybCgjZGVmYXVsdCNWTUwpO30KPC9zdHlsZT48IVtlbmRp Zl0tLT48c3R5bGU+PCEtLQovKiBGb250IERlZmluaXRpb25zICovCkBmb250LWZhY2UKCXtmb250 LWZhbWlseTpXaW5nZGluZ3M7CglwYW5vc2UtMTo1IDAgMCAwIDAgMCAwIDAgMCAwO30KQGZvbnQt ZmFjZQoJe2ZvbnQtZmFtaWx5OiJDYW1icmlhIE1hdGgiOwoJcGFub3NlLTE6MiA0IDUgMyA1IDQg NiAzIDIgNDt9CkBmb250LWZhY2UKCXtmb250LWZhbWlseTpDYWxpYnJpOwoJcGFub3NlLTE6MiAx NSA1IDIgMiAyIDQgMyAyIDQ7fQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLwpwLk1zb05vcm1hbCwg bGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsCgl7bWFyZ2luOjBpbjsKCW1hcmdpbi1ib3R0b206 LjAwMDFwdDsKCWZvbnQtc2l6ZToxMi4wcHQ7Cglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFu IixzZXJpZjt9CmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsKCXttc28tc3R5bGUtcHJpb3JpdHk6 OTk7Cgljb2xvcjpibHVlOwoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9CmE6dmlzaXRlZCwg c3Bhbi5Nc29IeXBlcmxpbmtGb2xsb3dlZAoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsKCWNvbG9y OnB1cnBsZTsKCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQpwCgl7bXNvLXN0eWxlLXByaW9y aXR5Ojk5OwoJbWFyZ2luOjBpbjsKCW1hcmdpbi1ib3R0b206LjAwMDFwdDsKCWZvbnQtc2l6ZTox Mi4wcHQ7Cglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIixzZXJpZjt9CnAuTXNvTGlzdFBh cmFncmFwaCwgbGkuTXNvTGlzdFBhcmFncmFwaCwgZGl2Lk1zb0xpc3RQYXJhZ3JhcGgKCXttc28t c3R5bGUtcHJpb3JpdHk6MzQ7CgltYXJnaW4tdG9wOjBpbjsKCW1hcmdpbi1yaWdodDowaW47Cglt YXJnaW4tYm90dG9tOjBpbjsKCW1hcmdpbi1sZWZ0Oi41aW47CgltYXJnaW4tYm90dG9tOi4wMDAx cHQ7Cglmb250LXNpemU6MTIuMHB0OwoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsc2Vy aWY7fQpwLnhtc29ub3JtYWwsIGxpLnhtc29ub3JtYWwsIGRpdi54bXNvbm9ybWFsCgl7bXNvLXN0 eWxlLW5hbWU6eF9tc29ub3JtYWw7Cgltc28tc3R5bGUtcHJpb3JpdHk6OTk7CgltYXJnaW46MGlu OwoJbWFyZ2luLWJvdHRvbTouMDAwMXB0OwoJZm9udC1zaXplOjEyLjBwdDsKCWZvbnQtZmFtaWx5 OiJUaW1lcyBOZXcgUm9tYW4iLHNlcmlmO30KcC54bXNvY2hwZGVmYXVsdCwgbGkueG1zb2NocGRl ZmF1bHQsIGRpdi54bXNvY2hwZGVmYXVsdAoJe21zby1zdHlsZS1uYW1lOnhfbXNvY2hwZGVmYXVs dDsKCW1zby1zdHlsZS1wcmlvcml0eTo5OTsKCW1hcmdpbjowaW47CgltYXJnaW4tYm90dG9tOi4w MDAxcHQ7Cglmb250LXNpemU6MTAuMHB0OwoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIs c2VyaWY7fQpzcGFuLnhlbWFpbHN0eWxlMTgKCXttc28tc3R5bGUtbmFtZTp4X2VtYWlsc3R5bGUx ODsKCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOwoJY29sb3I6IzFGNDk3RDt9CnNw YW4uRW1haWxTdHlsZTIyCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWw7Cglmb250LWZhbWlseToi Q2FsaWJyaSIsc2Fucy1zZXJpZjsKCWNvbG9yOiMxRjQ5N0Q7fQpzcGFuLkVtYWlsU3R5bGUyMwoJ e21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5OwoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNh bnMtc2VyaWY7Cgljb2xvcjojMUY0OTdEO30KLk1zb0NocERlZmF1bHQKCXttc28tc3R5bGUtdHlw ZTpleHBvcnQtb25seTsKCWZvbnQtc2l6ZToxMC4wcHQ7fQpAcGFnZSBXb3JkU2VjdGlvbjEKCXtz aXplOjguNWluIDExLjBpbjsKCW1hcmdpbjoxLjBpbiAxLjBpbiAxLjBpbiAxLjBpbjt9CmRpdi5X b3JkU2VjdGlvbjEKCXtwYWdlOldvcmRTZWN0aW9uMTt9Ci0tPjwvc3R5bGU+PCEtLVtpZiBndGUg bXNvIDldPjx4bWw+CjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYi IC8+CjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPgo8bzpzaGFwZWxh eW91dCB2OmV4dD0iZWRpdCI+CjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPgo8L286 c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+CjwvaGVhZD4KPGJvZHkgbGFuZz0iRU4tVVMi IGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiPgo8ZGl2IGNsYXNzPSJXb3JkU2VjdGlvbjEiPgo8 cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+VGhhdCYj ODIxNztzIGdyZWF0LCB0aGFua3MgRGFuaWVsITxvOnA+PC9vOnA+PC9zcGFuPjwvcD4KPHAgY2xh c3M9Ik1zb05vcm1hbCI+PGEgbmFtZT0iX01haWxFbmRDb21wb3NlIj48c3BhbiBzdHlsZT0iZm9u dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7 Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9hPjwvcD4KPGRpdj4KPGRp diBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRp bmc6My4wcHQgMGluIDBpbiAwaW4iPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48YSBuYW1lPSJfX19f X3JlcGx5c2VwYXJhdG9yIj48L2E+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5Gcm9tOjwvc3Bhbj48L2I+ PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx dW90OyxzYW5zLXNlcmlmIj4gU1BESyBbbWFpbHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmdd CjxiPk9uIEJlaGFsZiBPZiA8L2I+VmVya2FtcCwgRGFuaWVsPGJyPgo8Yj5TZW50OjwvYj4gV2Vk bmVzZGF5LCBNYXkgOSwgMjAxOCA5OjQzIEFNPGJyPgo8Yj5Ubzo8L2I+IFN0b3JhZ2UgUGVyZm9y bWFuY2UgRGV2ZWxvcG1lbnQgS2l0ICZsdDtzcGRrQGxpc3RzLjAxLm9yZyZndDs8YnI+CjxiPlN1 YmplY3Q6PC9iPiBSZTogW1NQREtdIEJ1aWxkaW5nIHNwZGsgb24gQ2VudE9TNjxvOnA+PC9vOnA+ PC9zcGFuPjwvcD4KPC9kaXY+CjwvZGl2Pgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNw OzwvbzpwPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx RjQ5N0QiPkkgYWdyZWUgd2l0aCBQYXVsJiM4MjE3O3MgcmV2aWV3OyBpdCBsb29rcyBsaWtlIGl0 IHNob3VsZG4mIzgyMTc7dCBiZSBhIGJpZyBwcm9ibGVtIHRvIGNhcnJ5IGEgcGF0Y2ggZm9yIHRo aXMgaW4gb3VyIERQREsgc3VibW9kdWxlLCBhdCBsZWFzdCB3aGlsZSBDZW50T1MgNiBpcyBzdGls bCBvZmZpY2lhbGx5CiBzdXBwb3J0ZWQuIChJIHBvc3RlZCBhIGZldyByZXZpZXcgY29tbWVudHMg b24gdGhlIHBhdGNoLCBidXQgdGhlIGdlbmVyYWwgYXBwcm9hY2ggbG9va3MgZmluZS4pPG86cD48 L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s b3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9y bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+VGhlIEludGVsIGJ1aWxkIHBvb2wg aGFkIGEgQ2VudE9TIDYgdGVzdCBtYWNoaW5lIGluIHRoZSBwb29sIHVudGlsIHJlY2VudGx5LCBh bmQgd2Ugc2hvdWxkIGJlIGFibGUgdG8gcmVzdXJyZWN0IGl0IHRvIHByb3ZpZGUgdGVzdCBjb3Zl cmFnZSBhZ2Fpbi48bzpwPjwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv dDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+ CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5UaGFu a3MsPG86cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt c2VyaWY7Y29sb3I6IzFGNDk3RCI+LS0gRGFuaWVsPG86cD48L286cD48L3NwYW4+PC9wPgo8cCBj bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJz cDs8L286cD48L3NwYW4+PC9wPgo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpz b2xpZCBibHVlIDEuNXB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNC4wcHQiPgo8ZGl2Pgo8ZGl2IHN0 eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNFMUUxRTEgMS4wcHQ7cGFkZGluZzoz LjBwdCAwaW4gMGluIDBpbiI+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIHN0eWxlPSJm b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp ZiI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+IFNQREsgWzxhIGhyZWY9Im1haWx0 bzpzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnIj5tYWlsdG86c3Bkay1ib3VuY2VzQGxpc3RzLjAx Lm9yZzwvYT5dCjxiPk9uIEJlaGFsZiBPZiA8L2I+U2hhaGFyIFNhbHptYW48YnI+CjxiPlNlbnQ6 PC9iPiBXZWRuZXNkYXksIE1heSA5LCAyMDE4IDY6MTIgQU08YnI+CjxiPlRvOjwvYj4gU3RvcmFn ZSBQZXJmb3JtYW5jZSBEZXZlbG9wbWVudCBLaXQgJmx0OzxhIGhyZWY9Im1haWx0bzpzcGRrQGxp c3RzLjAxLm9yZyI+c3Bka0BsaXN0cy4wMS5vcmc8L2E+Jmd0Ozxicj4KPGI+U3ViamVjdDo8L2I+ IFJlOiBbU1BES10gQnVpbGRpbmcgc3BkayBvbiBDZW50T1M2PG86cD48L286cD48L3NwYW4+PC9w Pgo8L2Rpdj4KPC9kaXY+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9w Pgo8ZGl2IGlkPSJkaXZ0YWdkZWZhdWx0d3JhcHBlciI+CjxwPjxzcGFuIHN0eWxlPSJmb250LWZh bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPkhpIFBhdWws PG86cD48L286cD48L3NwYW4+PC9wPgo8cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7 Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj48bzpwPiZuYnNwOzwvbzpwPjwv c3Bhbj48L3A+CjxwPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7 LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPlRoYW5rcyBmb3IgdGhlIHJldmlldy48bzpwPjwvbzpw Pjwvc3Bhbj48L3A+CjxwPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1 b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPldlIGFyZSBub3cgd29ya2luZyBvbiBDZW50T1M3 IHN1cHBvcnQsIGJ1dCBpdCBpcyBub3QgY29tcGxldGUgeWV0LCBzbyB3ZSB3aWxsIGJlIG9uIENl bnRPUzYmbmJzcDthYm91dCA2LTEyIG1vbnRocy48bzpwPjwvbzpwPjwvc3Bhbj48L3A+CjxwPjxz cGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s b3I6YmxhY2siPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4KPHA+PHNwYW4gc3R5bGU9ImZv bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+U2hh aGFyPG86cD48L286cD48L3NwYW4+PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0iTXNvTm9ybWFsIiBh bGlnbj0iY2VudGVyIiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIiPgo8aHIgc2l6ZT0iMyIgd2lk dGg9Ijk4JSIgYWxpZ249ImNlbnRlciI+CjwvZGl2Pgo8ZGl2IGlkPSJkaXZScGx5RndkTXNnIj4K PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj5Gcm9t Ojwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1 b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj4gU1BESyAmbHQ7PGEgaHJl Zj0ibWFpbHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmciPnNwZGstYm91bmNlc0BsaXN0cy4w MS5vcmc8L2E+Jmd0Owogb24gYmVoYWxmIG9mIEx1c2UsIFBhdWwgRSAmbHQ7PGEgaHJlZj0ibWFp bHRvOnBhdWwuZS5sdXNlQGludGVsLmNvbSI+cGF1bC5lLmx1c2VAaW50ZWwuY29tPC9hPiZndDs8 YnI+CjxiPlNlbnQ6PC9iPiBXZWRuZXNkYXksIE1heSA5LCAyMDE4IDM6NTE6MjMgUE08YnI+Cjxi PlRvOjwvYj4gU3RvcmFnZSBQZXJmb3JtYW5jZSBEZXZlbG9wbWVudCBLaXQ8YnI+CjxiPlN1Ympl Y3Q6PC9iPiBSZTogW1NQREtdIEJ1aWxkaW5nIHNwZGsgb24gQ2VudE9TNjwvc3Bhbj4gPG86cD48 L286cD48L3A+CjxkaXY+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9w Pgo8L2Rpdj4KPC9kaXY+CjxkaXY+CjxkaXY+CjxwIGNsYXNzPSJ4bXNvbm9ybWFsIj48c3BhbiBz dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh bnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+VGhhbmtzIGZvciBkb2luZyB0aGF0ISBJIHB1dCBteSAy IGNlbnRzIG9uIHRoZSByZXZpZXcsIG9uZSBtb3JlIGRhdGEgcG9pbnQgZm9yIHRoZSBtYWludGFp bmVycyBtaWdodCBoZWxwICYjODIxMTsgaGVscCBsb25nIGRvIHlvdSBiZWxpZXZlIHlvdXIgdGVh bSB3aWxsIGJlIG9uIENlbnRPUzY/CiBEb24mIzgyMTc7dCBuZWVkIGEgc3BlY2lmaWMgZGF0ZSBi dXQgYXJlIHdlIHRhbGtpbmcgbW9udGhzLCB5ZWFycywgaW5kZWZpbml0ZWx5Pzwvc3Bhbj48bzpw PjwvbzpwPjwvcD4KPHAgY2xhc3M9Inhtc29ub3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6 MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjoj MUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+CjxwIGNsYXNzPSJ4bXNvbm9ybWFs Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+SSB0aGluayB0aGUgb3RoZXIgaW1wbGlj YXRpb24gb2YgYWNjZXB0aW5nIHRoaXMgaW4gdGhlIGNvbW11bml0eSB3b3VsZCBiZSB0byBzcGlu IHVwIGEgQ2VudE9TNiBWTSBmb3Igc29tZSBiYXNpYyB0ZXN0aW5nIGZvciBhcyBsb25nIGFzIHdl IGhvbGQgdGhhdCBwYXRjaCBpbgogb3VyIERQREsgZm9yayB3aGljaCBpcyBub3QgYSBodWdlIHRo aW5nIGJ1dCB3YW50IHRvIG1ha2Ugc3VyZSB0aGF0JiM4MjE3O3MgY2xlYXIgYXMgd2VsbC4gSWYg bm90aGluZyBlbHNlIHdlJiM4MjE3O2xsIGtub3cgaWYgc29tZXRoaW5nIGVsc2UgYnJlYWtzIGl0 IHNvb25lciB0aGFuIGxhdGVyIGFuZCB3aWxsIG5lZWQgdG8gZGVjaWRlLCBhZ2FpbiwgYXQgdGhh dCB0aW1lIGlmIHdlIHB1bGwgaXQgb3IgaWYgaXQmIzgyMTc7cyBhIGhpZ2ggZW5vdWdoIHByaW9y aXR5IGZvciBhbnlvbmUKIHRvIGRpZyBpbiBhbmQgZmluZCBhIHBvdGVudGlhbCBzb2x1dGlvbiBs aWtlIHlvdSBkaWQgaGVyZS4mbmJzcDsgQXNzdW1pbmcsIG9mIGNvdXJzZSwgdGhhdCB0aGlzIG9u ZSBpcyBhY2NlcHRlZAo8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m YW1pbHk6V2luZ2RpbmdzO2NvbG9yOiMxRjQ5N0QiPko8L3NwYW4+PG86cD48L286cD48L3A+Cjxw IGNsYXNzPSJ4bXNvbm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7 PC9zcGFuPjxvOnA+PC9vOnA+PC9wPgo8cCBjbGFzcz0ieG1zb25vcm1hbCI+PHNwYW4gc3R5bGU9 ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl cmlmO2NvbG9yOiMxRjQ5N0QiPlRoYW5rcyw8L3NwYW4+PG86cD48L286cD48L3A+CjxwIGNsYXNz PSJ4bXNvbm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+UGF1bDwvc3Bhbj48 bzpwPjwvbzpwPjwvcD4KPHAgY2xhc3M9Inhtc29ub3JtYWwiPjxhIG5hbWU9InhfX01haWxFbmRD b21wb3NlIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjwvYT48 bzpwPjwvbzpwPjwvcD4KPGRpdj4KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpz b2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGluIDBpbiAwaW4iPgo8cCBjbGFzcz0i eG1zb25vcm1hbCI+PGEgbmFtZT0ieF9fX19fX3JlcGx5c2VwYXJhdG9yIj48L2E+PGI+PHNwYW4g c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz YW5zLXNlcmlmIj5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7 Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4gU1BESyBbPGEgaHJl Zj0ibWFpbHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmciPm1haWx0bzpzcGRrLWJvdW5jZXNA bGlzdHMuMDEub3JnPC9hPl0KPGI+T24gQmVoYWxmIE9mIDwvYj5TaGFoYXIgU2Fsem1hbjxicj4K PGI+U2VudDo8L2I+IFdlZG5lc2RheSwgTWF5IDksIDIwMTggMjowMSBBTTxicj4KPGI+VG86PC9i PiA8YSBocmVmPSJtYWlsdG86c3Bka0BsaXN0cy4wMS5vcmciPnNwZGtAbGlzdHMuMDEub3JnPC9h Pjxicj4KPGI+U3ViamVjdDo8L2I+IFJlOiBbU1BES10gQnVpbGRpbmcgc3BkayBvbiBDZW50T1M2 PC9zcGFuPjxvOnA+PC9vOnA+PC9wPgo8L2Rpdj4KPC9kaXY+CjxwIGNsYXNzPSJ4bXNvbm9ybWFs Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4KPGRpdiBpZD0ieF9kaXZ0YWdkZWZhdWx0d3JhcHBlciI+ CjxkaXYgaWQ9InhfZGl2dGFnZGVmYXVsdHdyYXBwZXIiPgo8cD48c3BhbiBzdHlsZT0iZm9udC1m YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj5IaSBCZW4s PC9zcGFuPjxvOnA+PC9vOnA+PC9wPgo8cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7 Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj4mbmJzcDs8L3NwYW4+PG86cD48 L286cD48L3A+CjxwPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7 LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPlB1c2hlZCB0aGUgZml4IHRvIGdlcnJpdGh1YiAtJm5i c3A7PGEgaHJlZj0iaHR0cHM6Ly9yZXZpZXcuZ2Vycml0aHViLmlvLyMvYy9zcGRrL2RwZGsvJiM0 MzsvNDEwNTU5LyIgaWQ9IkxQbG5rMjAxMjgzIj5odHRwczovL3Jldmlldy5nZXJyaXRodWIuaW8v Iy9jL3NwZGsvZHBkay8mIzQzOy80MTA1NTkvPC9hPjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4KPHAg Y2xhc3M9Inhtc29ub3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJp JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwv cD4KPHA+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z ZXJpZjtjb2xvcjpibGFjayI+V2UgYXJlIGN1cnJlbnRseSB1c2luZyBhICZxdW90O2Zyb3plbiZx dW90OyBkcGRrIHRyZWUgYmFzZWQgdmVyc2lvbiAxNi4wNywgYnV0IEkgYW0gcHVzaGluZyB0byB1 c2luZyB0aGUgc3BkayBmb3JrIGFuZCBwZXJmb3JtaW5nIHJlZ3VsYXIgdXBkYXRlcyBzbyBpZiB0 aGluZ3MgYnJlYWssIEkgd2lsbCBhdHRlbXB0IHRvIGZpeCB0aGVtLCBhbmQgcG9zdCBvbgogdGhl IGxpc3QuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPgo8cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6 JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj4mbmJzcDs8L3NwYW4+ PG86cD48L286cD48L3A+CjxwPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJp JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPlRoZSBhYm92ZSBmaXhlcyBhIGJsdW50IGdj YyZuYnNwO0FQSSBpc3N1ZSwgYnV0IHRoZXJlIGFyZSBtb3JlIHN1YnRsZSBpbm5lciBtb2R1bGUg aXNzdWVzIHdoaWNoIEkgaGF2ZSBub3QgaW52ZXN0aWdhdGVkLCBzaW1wbHkgcmVtb3ZlZCB0aGUg bW9kdWxlcyBhbGwgdG9nZXRoZXIgYXMgdGhleSBhcmUgbm90IG5lZWRlZCBieSBzcGRrLjwvc3Bh bj48bzpwPjwvbzpwPjwvcD4KPHA+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGli cmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+ PC9wPgo8cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z LXNlcmlmO2NvbG9yOmJsYWNrIj5JIGNhbiBzZXQgdXAgYSBob3d0byBmb3IgdXNlcnMgd2hvIG1h eSBuZWVkIENlbnRPUzYgc3VwcG9ydCBvciB3ZSBjYW4gbW9kaWZ5IHRoZSBjb25maWcgKGFzIHRo ZXNlIG1vZHVsZXMgYXJlIG5vdCByZWFsbHkgbmVlZGVkIGZvciBzcGRrKS4gRm9yIHRoZSBzYWtl IG9mIGNsYXJpdHkgaGVyZSBhcmUgdGhlIG1vZHVsZXMgJnF1b3Q7Y29uZmlnZWQgb3V0JnF1b3Q7 CiAoYXMgSSBtZW50aW9uZWQgdGhleSBhcmUgbm90IHVzZWQgYnkgc3Bkayk6PC9zcGFuPjxvOnA+ PC9vOnA+PC9wPgo8ZGl2Pgo8cCBjbGFzcz0ieG1zb25vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+JiM0MztD T05GSUdfUlRFX0xJQlJURV9QTURfQk9ORD1uPC9zcGFuPjxvOnA+PC9vOnA+PC9wPgo8L2Rpdj4K PGRpdj4KPHAgY2xhc3M9Inhtc29ub3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVv dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPiYjNDM7Q09ORklHX1JURV9M SUJSVEVfQ1JZUFRPREVWPW48L3NwYW4+PG86cD48L286cD48L3A+CjwvZGl2Pgo8ZGl2Pgo8cCBj bGFzcz0ieG1zb25vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm cXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+JiM0MztDT05GSUdfUlRFX0xJQlJURV9TRUNV UklUWT1uPC9zcGFuPjxvOnA+PC9vOnA+PC9wPgo8L2Rpdj4KPGRpdj4KPHAgY2xhc3M9Inhtc29u b3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt c2VyaWY7Y29sb3I6YmxhY2siPiYjNDM7Q09ORklHX1JURV9MSUJSVEVfUE1EX1NXX0VWRU5UREVW PW48L3NwYW4+PG86cD48L286cD48L3A+CjwvZGl2Pgo8ZGl2Pgo8cCBjbGFzcz0ieG1zb25vcm1h bCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp Zjtjb2xvcjpibGFjayI+JiM0MztDT05GSUdfUlRFX0xJQlJURV9QTURfT0NURU9OVFhfU1NPVkY9 bjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4KPC9kaXY+CjxkaXY+CjxwIGNsYXNzPSJ4bXNvbm9ybWFs Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm O2NvbG9yOmJsYWNrIj4mIzQzO0NPTkZJR19SVEVfTElCUlRFX0xQTT1uPC9zcGFuPjxvOnA+PC9v OnA+PC9wPgo8L2Rpdj4KPGRpdj4KPHAgY2xhc3M9Inhtc29ub3JtYWwiPjxzcGFuIHN0eWxlPSJm b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPiYj NDM7Q09ORklHX1JURV9MSUJSVEVfRkxPV19DTEFTU0lGWT1uPC9zcGFuPjxvOnA+PC9vOnA+PC9w Pgo8L2Rpdj4KPGRpdj4KPHAgY2xhc3M9Inhtc29ub3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZh bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPiYjNDM7Q09O RklHX1JURV9MSUJSVEVfVEFCTEU9bjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4KPC9kaXY+CjxkaXY+ CjxwIGNsYXNzPSJ4bXNvbm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2Fs aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj4mIzQzO0NPTkZJR19SVEVfTElCUlRF X1BJUEVMSU5FPW48L3NwYW4+PG86cD48L286cD48L3A+CjwvZGl2Pgo8ZGl2Pgo8cCBjbGFzcz0i eG1zb25vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss c2Fucy1zZXJpZjtjb2xvcjpibGFjayI+JiM0MztDT05GSUdfUlRFX1RFU1RfUE1EPW48L3NwYW4+ PG86cD48L286cD48L3A+CjwvZGl2Pgo8ZGl2Pgo8cCBjbGFzcz0ieG1zb25vcm1hbCI+PHNwYW4g c3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpi bGFjayI+JiM0MztDT05GSUdfUlRFX0xJQlJURV9QTURfVEFQPW48L3NwYW4+PG86cD48L286cD48 L3A+CjwvZGl2Pgo8ZGl2Pgo8cCBjbGFzcz0ieG1zb25vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+JiM0MztD T05GSUdfUlRFX0xJQlJURV9BVlBfUE1EPW48L3NwYW4+PG86cD48L286cD48L3A+CjwvZGl2Pgo8 ZGl2Pgo8cCBjbGFzcz0ieG1zb25vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90 O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+Jm5ic3A7PC9zcGFuPjxvOnA+ PC9vOnA+PC9wPgo8L2Rpdj4KPGRpdj4KPHAgY2xhc3M9Inhtc29ub3JtYWwiPjxzcGFuIHN0eWxl PSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2si PlJlZ2FyZGluZyB0aGUgLWZuLXN0cmljdC1hbGlhc2luZyBpc3N1ZSwgSSdsbCBzZWUgaWYgSSBj YW4gZG8gdGhlIHNhbWUgdHJpY2sgSSBkaWQgZm9yIHRoZSBnY2MgYWxpYXMgaW4gdGhlIE1ha2Vm aWxlLCBhbmQgcHVzaCB0aGUgZml4IGZvciByZXZpZXcuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPgo8 L2Rpdj4KPGRpdj4KPHAgY2xhc3M9Inhtc29ub3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWls eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPiZuYnNwOzwvc3Bh bj48bzpwPjwvbzpwPjwvcD4KPC9kaXY+CjxwPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVv dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPlNoYWhhcjwvc3Bhbj48bzpw PjwvbzpwPjwvcD4KPHA+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv dDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPgo8 L2Rpdj4KPGRpdiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0iY2VudGVyIiBzdHlsZT0idGV4dC1h bGlnbjpjZW50ZXIiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7 LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPgo8aHIgc2l6ZT0iNCIgd2lkdGg9Ijk4JSIgYWxpZ249 ImNlbnRlciI+Cjwvc3Bhbj48L2Rpdj4KPGRpdiBpZD0ieF9kaXZScGx5RndkTXNnIj4KPHAgY2xh c3M9Inhtc29ub3JtYWwiPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+RnJvbTo8L3Nw YW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+IFNQREsgJmx0OzxhIGhyZWY9Im1h aWx0bzpzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnIj5zcGRrLWJvdW5jZXNAbGlzdHMuMDEub3Jn PC9hPiZndDsKIG9uIGJlaGFsZiBvZiBXYWxrZXIsIEJlbmphbWluICZsdDs8YSBocmVmPSJtYWls dG86YmVuamFtaW4ud2Fsa2VyQGludGVsLmNvbSI+YmVuamFtaW4ud2Fsa2VyQGludGVsLmNvbTwv YT4mZ3Q7PGJyPgo8Yj5TZW50OjwvYj4gVHVlc2RheSwgTWF5IDgsIDIwMTggNzo0OTo0NCBQTTxi cj4KPGI+VG86PC9iPiA8YSBocmVmPSJtYWlsdG86c3Bka0BsaXN0cy4wMS5vcmciPnNwZGtAbGlz dHMuMDEub3JnPC9hPjxicj4KPGI+U3ViamVjdDo8L2I+IFJlOiBbU1BES10gQnVpbGRpbmcgc3Bk ayBvbiBDZW50T1M2PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJp JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPgo8L3NwYW4+PG86cD48L286cD48L3A+Cjxk aXY+CjxwIGNsYXNzPSJ4bXNvbm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7 Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj4mbmJzcDs8L3NwYW4+PG86cD48 L286cD48L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdj4KPGRpdj4KPHAgY2xhc3M9Inhtc29ub3JtYWwi PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm cXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+T24gVHVlLCAyMDE4LTA1LTA4IGF0IDE0OjM0 ICYjNDM7MDAwMCwgU2hhaGFyIFNhbHptYW4gd3JvdGU6PGJyPgomZ3Q7IEdvdCBpdC48YnI+CiZn dDsgPGJyPgomZ3Q7IEkgd2FzIHRyYWNraW5nIHRoZSBkcGRrIHByb2plY3QsIGFuZCBmb2N1c2Vk IG9uIHRoZSBicmFuY2ggdGhhdCBEYW5pZWwgdG9sZCBtZTxicj4KJmd0OyB0byB3b3JrIG9uLjxi cj4KJmd0OyBTbyB3b3VsZCB0aGUgY29ycmVjdCBwcm9jZXNzIGJlIHRvIHB1c2ggdGhlIHBhdGNo IHRvIHRoZSBzcGRrL2RwZGsgZ2Vycml0aHViPGJyPgomZ3Q7IGFuZCBkaXNjdXNzIHRoZSBjb21t aXQsIG9yIHRoZSBvdGhlciB3YXkgYXJvdW5kPzxicj4KPGJyPgpZZXMgLSBnbyBhaGVhZCBhbmQg cHVzaCB0byBzcGRrL2RwZGsgb24gR2Vycml0SHViIHNvIHdlIGNhbiBhbGwgcmV2aWV3IGl0LiBU aGU8YnI+ClNQREsgcHJvamVjdCBoYXMgbmV2ZXIgd3JpdHRlbiBvdXQgYSBwb2xpY3kgb24gd2hp Y2ggdmVyc2lvbnMgb2YgRFBESyBhcmU8YnI+CnN1cHBvcnRlZCBmb3IgYW55IGdpdmVuIFNQREsg cmVsZWFzZS4gVGhlIGNvZGUgaXMgYWx3YXlzIHRlc3RlZCB1c2luZyB0aGUgbGF0ZXN0PGJyPgpy ZWxlYXNlZCBEUERLLCBhbmQgdGhlbiBhdHRlbXB0cyB0byBzdXBwb3J0IG9sZGVyIHZlcnNpb25z IG9mIERQREsgYXJlIGRvbmUgaW48YnI+CmFuIGFkIGhvYyBtYW5uZXIuIFNpbWlsYXJseSwgdGhl IHByb2plY3QgbmV2ZXIgZXhwbGljaXRseSBzdGF0ZXMgd2hpY2ggb3BlcmF0aW5nPGJyPgpzeXN0 ZW1zIGFyZSBzdXBwb3J0ZWQuIEluc3RlYWQsIHdlIGluZGljYXRlIHdoaWNoIG9wZXJhdGluZyBz eXN0ZW1zIHRoZSBjb2RlIGlzPGJyPgpyZWd1bGFybHkgdGVzdGVkIG9uIChGZWRvcmEgTiBhbmQg Ti0xLCBVYnVudHUgbGF0ZXN0LCBVYnVudHUgTFRTLCBDZW50T1MgNyw8YnI+CkZyZWVCU0QgMTEp Ljxicj4KPGJyPgpJIHNlZSB0aGF0IENlbnRPUyA2IGlzIG5vIGxvbmdlciByZWNlaXZpbmcgZnVs bCB1cGRhdGVzIGFuZCBpcyBpbiBtYWludGVuYW5jZTxicj4Kb25seSBtb2RlLiBJdCB3aWxsIHN0 b3AgcmVjZWl2aW5nIGV2ZW4gbWFpbnRlbmFuY2UgdXBkYXRlcyBpbiAyMDIwLiBJIHRoaW5rIHRo YXQ8YnI+CmlzIGluZGljYXRpdmUgb2YgdGhlIGxldmVsIG9mIHN1cHBvcnQgU1BESyBzaG91bGQg cHJvdmlkZSBoZXJlLjxicj4KPGJyPgpHaXZlbiB0aGUgYWJvdmUsIGlmIHRoaXMgcGF0Y2ggY2Fu IGJlIGFwcGxpZWQgdG8gdGhlIERQREsgZm9yayBhbmQgZG9lc24ndCBoYXZlPGJyPgphbnkgYWRk aXRpb25hbCBpbXBhY3QsIEknbSBub3Qgb3Bwb3NlZCB0byBhcHBseWluZyBpdC4gVGhhdCB3b3Vs ZG4ndCwgaW4gbXk8YnI+Cm1pbmQsIG1lYW4gdGhhdCBTUERLIGlzIGNvbW1pdHRlZCB0byBzdXBw b3J0aW5nIENlbnRPUyA2IGluZGVmaW5pdGVseS4gQnV0PGJyPgpjZXJ0YWlubHkgdGhhdCBzdXBw b3J0IGNvdWxkIGNvbnRpbnVlIHdoaWxlIGl0IGlzIHJlbGF0aXZlbHkgZWFzeSBhbmQ8YnI+CmNv bnZlbmllbnQuPGJyPgo8YnI+CiZndDsgPGJyPgomZ3Q7IEZyb206IFNQREsgJmx0OzxhIGhyZWY9 Im1haWx0bzpzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnIj5zcGRrLWJvdW5jZXNAbGlzdHMuMDEu b3JnPC9hPiZndDsgb24gYmVoYWxmIG9mIEx1c2UsIFBhdWwgRSAmbHQ7PGEgaHJlZj0ibWFpbHRv OnBhdWwuZS5sdXNlQCUwYiI+cGF1bC5lLmx1c2VAPGJyPgo8L2E+Jmd0OyBpbnRlbC5jb20mZ3Q7 PGJyPgomZ3Q7IFNlbnQ6IFR1ZXNkYXksIE1heSA4LCAyMDE4IDU6MTQ6MTAgUE08YnI+CiZndDsg VG86IFN0b3JhZ2UgUGVyZm9ybWFuY2UgRGV2ZWxvcG1lbnQgS2l0PGJyPgomZ3Q7IFN1YmplY3Q6 IFJlOiBbU1BES10gQnVpbGRpbmcgc3BkayBvbiBDZW50T1M2PGJyPgomZ3Q7Jm5ic3A7IDxicj4K Jmd0OyBTdXJlLCBJIHVuZGVyc3RhbmQgdGhhdC4mbmJzcDsgU1BESyBtYWludGFpbnMgYSBmb3Jr IG9mIGRwZGsgaW4gZ2l0aHViIGF0IDxhIGhyZWY9Imh0dHBzOi8vZyI+Cmh0dHBzOi8vZzwvYT48 YnI+CiZndDsgaXRodWIuY29tL3NwZGsvZHBkayBmb3IgdGhlIHB1cnBvc2Ugb2YgdGVtcG9yYXJp bHkgcHV0dGluZyB0aGluZ3MgaW4gdGhhdCB3ZTxicj4KJmd0OyBuZWVkIHRoYXQgY2FuJiM4MjE3 O3QgbWFrZSBpdCB1cHN0cmVhbSB5ZXQgZm9yIHdoYXRldmVyIHJlYXNvbiAmIzgyMTE7IHRoaXMg aXMgdGhlPGJyPgomZ3Q7IHN1Ym1vZHVsZSBpbiB0aGUgU1BESyByZXBvLiZuYnNwOyBJJiM4MjE3 O20gbm90IHNheWluZyB0aGF0IGl0IG1ha2VzIHNlbnNlIGZvciB5b3VyIHBhdGNoPGJyPgomZ3Q7 IHRvIGxhbmQgdGhlcmUgcGVybWFuZW50bHkgYnV0IGl0IGRvZXMgbWFrZSBzZW5zZSB0byB0YWxr IGFib3V0IGl0Ljxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgTm8gcHJvYmxlbSBvbiBub3QgYmVp bmcgb24gdGhlIGNhbGwsIHdlJiM4MjE3O2xsIGdldCBzb21lIGlucHV0IGZyb20gdGhlIG1haW50 YWluZXJzPGJyPgomZ3Q7IGFuZCBvdGhlcnMgSSYjODIxNzttIHN1cmUmIzgyMzA7PGJyPgomZ3Q7 Jm5ic3A7IDxicj4KJmd0OyBUaHg8YnI+CiZndDsgUGF1bDxicj4KJmd0OyZuYnNwOyA8YnI+CiZn dDsgRnJvbTogU1BESyBbPGEgaHJlZj0ibWFpbHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmci IGlkPSJMUGxuazM0MDU3NiI+bWFpbHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmc8L2E+XSBP biBCZWhhbGYgT2YgU2hhaGFyIFNhbHptYW48YnI+CiZndDsgU2VudDogVHVlc2RheSwgTWF5IDgs IDIwMTggNzowNCBBTTxicj4KJmd0OyBUbzogU3RvcmFnZSBQZXJmb3JtYW5jZSBEZXZlbG9wbWVu dCBLaXQgJmx0OzxhIGhyZWY9Im1haWx0bzpzcGRrQGxpc3RzLjAxLm9yZyI+c3Bka0BsaXN0cy4w MS5vcmc8L2E+Jmd0Ozxicj4KJmd0OyBTdWJqZWN0OiBSZTogW1NQREtdIEJ1aWxkaW5nIHNwZGsg b24gQ2VudE9TNjxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgSGV5IFBhdWwsPGJyPgomZ3Q7Jm5i c3A7IDxicj4KJmd0OyBUaGUgcHJvYmxlbSBpcyB0aGF0IHRoZSBwYXRjaCBpcyBpbiBkcGRrIGFu ZCBub3QgaW4gc3BkaywgYW5kIHRoaXMgaXMgdGhlPGJyPgomZ3Q7IHJlYXNvbiBJIG9mZmVyZWQg dG8gc3VwcG9ydCBpdC48YnI+CiZndDsgVGhlIHBhdGNoIChiZWxsb3cpIGlzIG9ubHkgYSBmZXcg bGluZXMgbG9uZyBtb2RpZnlpbmcgdGhlIGRlcHJlY2F0ZWQgYXR0cmlidXRlPGJyPgomZ3Q7IGRl ZmluaXRpb24sIGEgbW9kaWZpY2F0aW9uIHRvIHRoZSBjb25maWcsIGFuZCBhbiBleHRyYSBjb21w aWxhdGlvbiBmbGFnLjxicj4KJmd0OyBBbGwgb2YgdGhlIGFib3ZlIGFyZSByZXF1aXJlZCBpbiBv cmRlciB0byBidWlsZCBkcGRrIDE4LjAxIG9uIENlbnRPUzYsIHRoZXJlPGJyPgomZ3Q7IGFyZSBu byBwcm9ibGVtcyBidWlsZGluZyBzcGRrIG9uIENlbnRPUzYuPGJyPgomZ3Q7Jm5ic3A7IDxicj4K Jmd0OyBJIHVuZGVyc3Rvb2QgdGhhdCB5b3UgYXJlIGFscmVhZHkgYXBwbHlpbmcgbWlub3IgcGF0 Y2hlcyB0byBkcGRrLCBzbyBxdWVzdGlvbjxicj4KJmd0OyBpcywgd2hldGhlciB0aGlzIHBhdGNo IGNhbiBiZSBhZGRlZD88YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IFVuZm9ydHVuYXRlbHkgZHVl IHRvIHNvbWUgcGVyc29uYWwgaXNzdWVzLCBJIGFtIHVuYWJsZSB0byBwYXJ0aWNpcGF0ZSBpbjxi cj4KJmd0OyB0b2RheSdzIG1lZXRpbmcuPGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyBUaGFua3Ms PGJyPgomZ3Q7IFNoYWhhcjxicj4KJmd0OyBGcm9tOiBTUERLICZsdDs8YSBocmVmPSJtYWlsdG86 c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9yZyI+c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9yZzwvYT4m Z3Q7IG9uIGJlaGFsZiBvZiBMdXNlLCBQYXVsIEUgJmx0OzxhIGhyZWY9Im1haWx0bzpwYXVsLmUu bHVzZUAlMGIiPnBhdWwuZS5sdXNlQDxicj4KPC9hPiZndDsgaW50ZWwuY29tJmd0Ozxicj4KJmd0 OyBTZW50OiBUdWVzZGF5LCBNYXkgOCwgMjAxOCA0OjI1OjI5IFBNPGJyPgomZ3Q7IFRvOiBTdG9y YWdlIFBlcmZvcm1hbmNlIERldmVsb3BtZW50IEtpdDxicj4KJmd0OyBTdWJqZWN0OiBSZTogW1NQ REtdIEJ1aWxkaW5nIHNwZGsgb24gQ2VudE9TNjxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgSGkg U2hhaGFyLDxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgQ291cGxlIG9mIHF1aWNrIHRoaW5nczo8 YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7ICogdGhhbmtzIGZvciBwdXR0aW5nIGFsbCB0aGlzIHRp bWUgYW5kIGVmZm9ydCBpbnRvIHRyeWluZyB0byBtYWtlIHRoaXMgd29yayE8YnI+CiZndDsgKiBp biB0aGUgY29tbXVuaXR5IG1vZGVsLCBwYXRjaGVzIGFyZW4mIzgyMTc7dCBhY2NlcHRlZCBiYXNl ZCBvbiBvbmUgaW5kaXZpZHVhbCYjODIxNztzPGJyPgomZ3Q7IGFiaWxpdHkvZGVzaXJlIHRvIHN1 cHBvcnQgdGhlbSBzbyBhcHByZWNpYXRlIHRoZSBvZmZlciBidXQgaW4gZ2VuZXJhbCBhbnk8YnI+ CiZndDsgcGF0Y2ggdGhhdCBpcyBhY2NlcHRlZCBiZWNvbWVzIHRoZSByZXNwb25zaWJseSBvZiB0 aGUgY29tbXVuaXR5IChtb3N0bHkgdGhlPGJyPgomZ3Q7IG1haW50YWluZXJzKSB0byBzdXBwb3J0 IGl0IGxvbmcgdGVybS4mbmJzcDsgT3RoZXJ3aXNlIHdlJiM4MjE3O2QgaGF2ZSB3aGF0IEkgbGlr ZSB0byBjYWxsPGJyPgomZ3Q7ICYjODIyMDt0aGUgZmxlYSBtYXJrZXQgbW9kZWwmIzgyMjE7IHdo ZXJlIHRoZXJlJiM4MjE3O3MgYSBidW5jaCBvZiBzZXBhcmF0ZSBpbmRpdmlkdWFsczxicj4KJmd0 OyBzdXBwb3J0aW5nIHRoZWlyIG93biB0aGluZ3Mgd2l0aCB2ZXJ5IGxpdHRsZSBjb2hlc2l2ZW5l c3MgYWNyb3NzIGV2ZXJ5dGhpbmcgSjxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgU28sIHdydCBu ZXh0IHN0ZXBzLCBpZiB0aGUgcGF0Y2ggaXNuJiM4MjE3O3QgYSB0cmVtZW5kb3VzIGFtb3VudCBv ZiBlZmZvcnQgSSB3b3VsZDxicj4KJmd0OyBzdWdnZXN0IHlvdSBnbyBhaGVhZCBhbmQgc3VibWl0 IGl0LiBUaGF0JiM4MjE3O3MgdGhlIGJlc3Qgd2F5IHRvIGdldCBldmVyeW9uZSBvbiB0aGU8YnI+ CiZndDsgc2FtZSBwYWdlIHdydCBleGFjdGx5IHdoYXQgd2UmIzgyMTc7cmUgdGFsa2luZyBhYm91 dC4mbmJzcDsgSWYgaXQgaXMgc29tZSBzaWduaWZpY2FudDxicj4KJmd0OyBlZmZvcnQgdGhlbiwg YXMgUGF3ZWwgc3RhdGVzLCB5b3UgY2FuIGNhbGwgaW50byBhIGNvbW11bml0eSBtZWV0aW5nIChz ZWUgZW1haWw8YnI+CiZndDsgSSBzZW50IG91dCBsYXN0IG5pZ2h0KSBvciB5b3UgY2FuIGV4cGxh aW4gbW9yZSBkZXRhaWxzIG9uIHRoaXMgbGlzdC48YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IFRo YW5rcyBhZ2FpbiEhPGJyPgomZ3Q7IFBhdWw8YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IEZyb206 IFNQREsgWzxhIGhyZWY9Im1haWx0bzpzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnIiBpZD0iTFBs bmsyNzAwMDciPm1haWx0bzpzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnPC9hPl0gT24gQmVoYWxm IE9mIFdvZGtvd3NraSwgUGF3ZWxYPGJyPgomZ3Q7IFNlbnQ6IFR1ZXNkYXksIE1heSA4LCAyMDE4 IDU6NTcgQU08YnI+CiZndDsgVG86IFN0b3JhZ2UgUGVyZm9ybWFuY2UgRGV2ZWxvcG1lbnQgS2l0 ICZsdDs8YSBocmVmPSJtYWlsdG86c3Bka0BsaXN0cy4wMS5vcmciPnNwZGtAbGlzdHMuMDEub3Jn PC9hPiZndDs8YnI+CiZndDsgU3ViamVjdDogUmU6IFtTUERLXSBCdWlsZGluZyBzcGRrIG9uIENl bnRPUzY8YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IEkgdGhpbmsgc29tZW9uZSB3aWxsIGFuc3dl ciB5b3Ugb24gdGhpcyBtYWlsaW5nIGxpc3QgYnV0IHRoZXJlIGlzIGNvbW11bml0eTxicj4KJmd0 OyBtZWV0aW5nIHRvZGF5IHRvby4gWW91IGNhbiByYWlzZSB0aGlzIGlmIHlvdSB3aXNoLjxicj4K Jmd0OyZuYnNwOyA8YnI+CiZndDsgUGF3ZWw8YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IEZyb206 IFNQREsgWzxhIGhyZWY9Im1haWx0bzpzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnIiBpZD0iTFBs bmsyMjM0NDMiPm1haWx0bzpzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnPC9hPl0gT24gQmVoYWxm IE9mIFNoYWhhciBTYWx6bWFuPGJyPgomZ3Q7IFNlbnQ6IFR1ZXNkYXksIE1heSA4LCAyMDE4IDI6 MjMgUE08YnI+CiZndDsgVG86IFN0b3JhZ2UgUGVyZm9ybWFuY2UgRGV2ZWxvcG1lbnQgS2l0ICZs dDs8YSBocmVmPSJtYWlsdG86c3Bka0BsaXN0cy4wMS5vcmciPnNwZGtAbGlzdHMuMDEub3JnPC9h PiZndDs8YnI+CiZndDsgU3ViamVjdDogUmU6IFtTUERLXSBCdWlsZGluZyBzcGRrIG9uIENlbnRP UzY8YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IEhpLDxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsg SSBhdHRlbXB0ZWQgdG8gcHVzaCB0aGUgZ2NjIHN1cHBvcnQgcGF0Y2ggdG8gZHBkaywgYW5kIGdv dCByZWplY3RlZCBzaW5jZSB0aGV5PGJyPgomZ3Q7IGRvIG5vdCB3aXNoIHRvIHN1cHBvcnQgQ2Vu dE9TNi48YnI+CiZndDsgV291bGQgaXQgYmUgcG9zc2libGUgdG8gbWFudWFsbHkgYWRkIHRoZSBw YXRjaCB0byB0aGUgc3VwcG9ydGVkIGRwZGsgdmVyc2lvbjxicj4KJmd0OyAoY3VycmVudGx5IDE4 LjAxKS48YnI+CiZndDsgSSB3b3VsZCBiZSBoYXBweSB0byBzdXBwb3J0IENlbnRPUzYgaXNzdWVz Ljxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgVGhhbmtzLDxicj4KJmd0OyBTaGFoYXI8YnI+CiZn dDsmbmJzcDsgPGJyPgomZ3Q7IEZyb206IFNoYWhhciBTYWx6bWFuPGJyPgomZ3Q7IFNlbnQ6IFR1 ZXNkYXksIEFwcmlsIDI0LCAyMDE4IDM6NDA6NTEgUE08YnI+CiZndDsgVG86IFN0b3JhZ2UgUGVy Zm9ybWFuY2UgRGV2ZWxvcG1lbnQgS2l0PGJyPgomZ3Q7IENjOiBJbGFuIFN0ZWluYmVyZzsgSWRv IEJlbmRhOyBZYWVsIFNoYXZpdDxicj4KJmd0OyBTdWJqZWN0OiBSZTogQnVpbGRpbmcgc3BkayBv biBDZW50T1M2PGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyBPSywgZ290IGV2ZXJ5dGhpbmcgdG8g d29yay48YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IEZvciBEUERLLCBJIGhhZCB0byB0byBkbyB0 aGUgZm9sbG93aW5nOjxicj4KJmd0OyBhZGQgYSBwYXRjaCB0byBtYWtlIHRoZSBuZXcgX19ydGVf ZXhwZXJpbWVudGFsIGF0dHJpYnV0ZSB0byB3b3JrPGJyPgomZ3Q7IHJlbW92ZSBhIGJ1bmNoIG9m IG1vZHVsZXMgdmlhIGNvbmZpZyB3aGljaCBoYWQgc29tZSBnbmFybHkgY29tcGlsYXRpb24gZXJy b3JzLDxicj4KJmd0OyBhbmQgYXJlIG5vdCBuZWVkZWQgZm9yIHNwZGs8YnI+CiZndDsgdXNlIC1m bm8tc3RyaWN0LWFsaWFzaW5nIGluIHRoZSBFWFRSQV9DRkxBR1MgdG8gYXZvaWQgYSB0b24gb2Yg c3RyaWN0IGFsaWFzaW5nPGJyPgomZ3Q7IGVycm9ycy48YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7 IEkgdHJpZWQgc3BkayAxOC4wMSwgYW5kIHJhbiBpbnRvIHNvbWUgaXNzdWVzIHdpdGggdGhlIHNo YXJlZCBsaWJyYXJ5IGJ1aWxkLiBBczxicj4KJmd0OyBJIHNhdyB0aGF0IERhbmllbCBoYWQgYWxy ZWFkeSBkZWFsdCB3aXRoIHRoZW0sIEkgdHJpZWQgY2hlcnJ5IHBpY2tpbmcsIGJ1dDxicj4KJmd0 OyBldmVudHVhbGx5IHVzZWQgdGhlIG1hc3RlciBicmFuY2guPGJyPgomZ3Q7IEkgZ290IHRoZXNl IHR5cGUgb2Ygd2FybmluZ3M6PGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyAvdXNyL2Jpbi9sZDog d2FybmluZzogbGlicnRlX21idWYuc28uMy4xLCBuZWVkZWQgYnk8YnI+CiZndDsgL2tob21lL3No YWhhci5zYWx6bWFuL0thbWluYXJpby9naXQvZHBkay94ODZfNjQtbmF0aXZlLWxpbnV4YXBwLTxi cj4KJmd0OyBnY2MvbGliL2xpYnJ0ZV9idXNfcGNpLnNvLCBub3QgZm91bmQgKHRyeSB1c2luZyAt cnBhdGggb3IgLXJwYXRoLWxpbmspPGJyPgomZ3Q7IC91c3IvYmluL2xkOiB3YXJuaW5nOiBsaWJy dGVfZXRoZGV2LnNvLjguMSwgbmVlZGVkIGJ5PGJyPgomZ3Q7IC9raG9tZS9zaGFoYXIuc2Fsem1h bi9LYW1pbmFyaW8vZ2l0L2RwZGsveDg2XzY0LW5hdGl2ZS1saW51eGFwcC08YnI+CiZndDsgZ2Nj L2xpYi9saWJydGVfYnVzX3BjaS5zbywgbm90IGZvdW5kICh0cnkgdXNpbmcgLXJwYXRoIG9yIC1y cGF0aC1saW5rKTxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgSSBhZGRlZCB0aGUgZm9sbG93aW5n IHBhdGNoIGJlbGxvdyB0byBtYWtlIHRoZW0gZ28gYXdheS48YnI+CiZndDsmbmJzcDsgPGJyPgom Z3Q7IEknbGwgYXBwcm9hY2ggdGhlIGRwZGsgY29tbXVuaXR5IG9uIHRoZSBtYWlsaW5nIGxpc3Qg aW4gb3JkZXIgdG8gZ2V0IHRoZTxicj4KJmd0OyBfX3J0ZV9leHBlcmltZW50YWwgc3R1ZmYgdG8g d29yay48YnI+CiZndDsgTXkgZmluYWwgY29uZmlndXJhdGlvbiBpczo8YnI+CiZndDsgQ2Vuck9T Ni40PGJyPgomZ3Q7IGdjYyA0LjQuNy0xNzxicj4KJmd0OyBkcGRrIHYxOC4wMjxicj4KJmd0OyBz cGRrIG1hc3Rlcjxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgV2hhdCBhcmUgdGhlIG5leHQgc3Rl cHM/PGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyBTaGFoYXI8YnI+CiZndDsmbmJzcDsgPGJyPgom Z3Q7IFAuUy4gSGVyZSBpcyB0aGUgcGF0Y2ggdG8gcmVtb3ZlIHRoZSB3YXJuaW5ncyBhYm92ZS48 YnI+CiZndDsgY29tbWl0IGQ0ZWY3NDRkZTFjYzQ5Mjg5NzJiNzA0MmQxYzkwYWZmMTJkYjc4Njc8 YnI+CiZndDsgQXV0aG9yOiBzaGFoYXIgc2Fsem1hbiAmbHQ7PGEgaHJlZj0ibWFpbHRvOnNoYWhh ci5zYWx6bWFuQGthbWluYXJpby5jb20iPnNoYWhhci5zYWx6bWFuQGthbWluYXJpby5jb208L2E+ Jmd0Ozxicj4KJmd0OyBEYXRlOiZuYnNwOyZuYnNwOyBUdWUgQXByIDI0IDE0OjMxOjUyIDIwMTgg JiM0MzswMzAwPGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyBsaWIvZW52X2RwZGs6IGFkZCByZXF1aXJlZCBsaWJyYXJpZXM8YnI+CiZndDsmbmJzcDsgPGJy PgomZ3Q7IGRpZmYgLS1naXQgYS9saWIvZW52X2RwZGsvZW52Lm1rIGIvbGliL2Vudl9kcGRrL2Vu di5tazxicj4KJmd0OyBpbmRleCA0NTAwNDNjLi5iNDZiZmVkIDEwMDY0NDxicj4KJmd0OyAtLS0g YS9saWIvZW52X2RwZGsvZW52Lm1rPGJyPgomZ3Q7ICYjNDM7JiM0MzsmIzQzOyBiL2xpYi9lbnZf ZHBkay9lbnYubWs8YnI+CiZndDsgQEAgLTY4LDYgJiM0Mzs2OCwxOCBAQCBpZm5lcSAoJCh3aWxk Y2FyZCAkKERQREtfQUJTX0RJUikvbGliL2xpYnJ0ZV9tYWxsb2MuKiksKTxicj4KJmd0OyZuYnNw OyBEUERLX0xJQl9MSVNUICYjNDM7PSBydGVfbWFsbG9jPGJyPgomZ3Q7Jm5ic3A7IGVuZGlmPGJy PgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyAmIzQzO2lmbmVxICgsICQod2lsZGNhcmQgJChEUERLX0FC U19ESVIpL2xpYi9saWJydGVfbWJ1Zi4qKSk8YnI+CiZndDsgJiM0MztEUERLX0xJQl9MSVNUICYj NDM7PSBydGVfbWJ1Zjxicj4KJmd0OyAmIzQzO2VuZGlmPGJyPgomZ3Q7ICYjNDM7PGJyPgomZ3Q7 ICYjNDM7aWZuZXEgKCwgJCh3aWxkY2FyZCAkKERQREtfQUJTX0RJUikvbGliL2xpYnJ0ZV9uZXQu KikpPGJyPgomZ3Q7ICYjNDM7RFBES19MSUJfTElTVCAmIzQzOz0gcnRlX25ldDxicj4KJmd0OyAm IzQzO2VuZGlmPGJyPgomZ3Q7ICYjNDM7PGJyPgomZ3Q7ICYjNDM7aWZuZXEgKCwgJCh3aWxkY2Fy ZCAkKERQREtfQUJTX0RJUikvbGliL2xpYnJ0ZV9ldGhkZXYuKikpPGJyPgomZ3Q7ICYjNDM7RFBE S19MSUJfTElTVCAmIzQzOz0gcnRlX2V0aGRldjxicj4KJmd0OyAmIzQzO2VuZGlmPGJyPgomZ3Q7 ICYjNDM7PGJyPgomZ3Q7Jm5ic3A7ICMgbGlicnRlX3BjaSBhbmQgbGlicnRlX2J1c19wY2kgd2Vy ZSBhZGRlZCBpbiBEUERLIDE3LjExLiBMaW5rIHRoZXNlPGJyPgomZ3Q7IGxpYnJhcmllcyBjb25k aXRpb25hbGx5PGJyPgomZ3Q7Jm5ic3A7ICMgYmFzZWQgb24gdGhlaXIgZXhpc3RlbmNlIHRvIG1h aW50YWluIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuPGJyPgomZ3Q7Jm5ic3A7IGlmbmVxICgsICQo d2lsZGNhcmQgJChEUERLX0FCU19ESVIpL2xpYi9saWJydGVfcGNpLiopKTxicj4KJmd0OyZuYnNw OyA8YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyBGcm9tOiBTUERLICZs dDs8YSBocmVmPSJtYWlsdG86c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9yZyI+c3Bkay1ib3VuY2Vz QGxpc3RzLjAxLm9yZzwvYT4mZ3Q7IG9uIGJlaGFsZiBvZiBTaGFoYXIgU2Fsem1hbiAmbHQ7c2hh aGFyLnNhbDxicj4KJmd0OyA8YSBocmVmPSJtYWlsdG86em1hbkBrYW1pbmFyaW8uY29tIj56bWFu QGthbWluYXJpby5jb208L2E+Jmd0Ozxicj4KJmd0OyBTZW50OiBUdWVzZGF5LCBBcHJpbCAyNCwg MjAxOCA5OjU3IEFNPGJyPgomZ3Q7IFRvOiBTdG9yYWdlIFBlcmZvcm1hbmNlIERldmVsb3BtZW50 IEtpdDxicj4KJmd0OyBTdWJqZWN0OiBSZTogW1NQREtdIEJ1aWxkaW5nIHNwZGsgb24gQ2VudE9T Njxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgR3JlYXQsIGFuZCB0aGFua3MhPGJyPgomZ3Q7Jm5i c3A7IDxicj4KJmd0OyBJIGhhdmUgYmVlbiBydW5uaW5nIGludG8gaXNzdWVzIGNvbXBpbGluZyBk cGRrIDE3LjExIG9uIENlbnRPUzYgKHRoZXJlIHNlZW1zPGJyPgomZ3Q7IHRvIGJlIGEgZ2NjIGlz c3VlIHRoYXQgZG9lcyBub3QgZXhpc3QgaW4gb3RoZXIgdmVyc2lvbnMpLCBJJ2xsIGZvY3VzIG15 PGJyPgomZ3Q7IGVmZm9ydHMgb24gZHBkayAxOC4wMi48YnI+CiZndDsgRnJvbTogU1BESyAmbHQ7 PGEgaHJlZj0ibWFpbHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmciPnNwZGstYm91bmNlc0Bs aXN0cy4wMS5vcmc8L2E+Jmd0OyBvbiBiZWhhbGYgb2YgVmVya2FtcCwgRGFuaWVsICZsdDtkYW5p ZWwudmU8YnI+CiZndDsgPGEgaHJlZj0ibWFpbHRvOnJrYW1wQGludGVsLmNvbSI+cmthbXBAaW50 ZWwuY29tPC9hPiZndDs8YnI+CiZndDsgU2VudDogTW9uZGF5LCBBcHJpbCAyMywgMjAxOCA5OjQw OjM2IFBNPGJyPgomZ3Q7IFRvOiBTdG9yYWdlIFBlcmZvcm1hbmNlIERldmVsb3BtZW50IEtpdDxi cj4KJmd0OyBTdWJqZWN0OiBSZTogW1NQREtdIEJ1aWxkaW5nIHNwZGsgb24gQ2VudE9TNjxicj4K Jmd0OyZuYnNwOyA8YnI+CiZndDsgSGkgU2hhaGFyLDxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsg SSYjODIxNzt2ZSBwdXNoZWQgYSBwYXRjaCBmb3IgdGhlIFNQREsgbWFzdGVyIGJyYW5jaCB0aGF0 IHNob3VsZCBhbGxvdyBpdCB0byBjb21waWxlPGJyPgomZ3Q7IHdpdGggRFBESyAxNi4wNzogPGEg aHJlZj0iaHR0cHM6Ly9yZXZpZXcuZ2Vycml0aHViLmlvLyMvYy9zcGRrL3NwZGsvJiM0MzsvNDA4 NzQzLyIgaWQ9IkxQbG5rNTcyNzEyIj4KaHR0cHM6Ly9yZXZpZXcuZ2Vycml0aHViLmlvLyMvYy9z cGRrL3NwZGsvJiM0MzsvNDA4NzQzLzwvYT48YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IEdlcnJp dCBDb2RlIFJldmlldzxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgcmV2aWV3LmdlcnJpdGh1Yi5p bzxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgS2VlcCBpbiB0b3VjaC4gQ29weXJpZ2h0ICZjb3B5 OyAyMDE3IHwgR2Vycml0Rm9yZ2UgTHRkLiA8YSBocmVmPSJtYWlsdG86aW5mb0BnZXJyaXRmb3Jn ZS5jb20iPgppbmZvQGdlcnJpdGZvcmdlLmNvbTwvYT48YnI+CiZndDsgPGEgaHJlZj0iaHR0cDov L3d3dy5nZXJyaXRmb3JnZS5jb20iIGlkPSJMUGxuazMwNjMyIj53d3cuZ2Vycml0Zm9yZ2UuY29t PC9hPjxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IEhvd2V2ZXIsIERQ REsgMTYuMDcgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCB1cHN0cmVhbTsgSSBoaWdobHkgcmVjb21t ZW5kIHRoYXQ8YnI+CiZndDsgeW91IHVwZGF0ZSB0byBhIG5ld2VyIHZlcnNpb24uIFNQREsgaXMg Y3VycmVudGx5IHRlc3RlZCB3aXRoIERQREsgMTguMDIuPGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0 OyBUaGUgVkZJTyBpc3N1ZSB5b3UgbWVudGlvbiBoYXMgYWxzbyBiZWVuIGZpeGVkIG9uIFNQREsg bWFzdGVyLCBhbmQgaXQgd2lsbCBiZTxicj4KJmd0OyBwYXJ0IG9mIHRoZSBTUERLIHYxOC4wNCBy ZWxlYXNlLjxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgVGhhbmtzLDxicj4KJmd0OyAtLSBEYW5p ZWw8YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IEZyb206IFNQREsgWzxhIGhyZWY9Im1haWx0bzpz cGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnIiBpZD0iTFBsbms4MjkxMDAiPm1haWx0bzpzcGRrLWJv dW5jZXNAbGlzdHMuMDEub3JnPC9hPl0gT24gQmVoYWxmIE9mIFNoYWhhciBTYWx6bWFuPGJyPgom Z3Q7IFNlbnQ6IFN1bmRheSwgQXByaWwgMjIsIDIwMTggNjo0MSBBTTxicj4KJmd0OyBUbzogU3Rv cmFnZSBQZXJmb3JtYW5jZSBEZXZlbG9wbWVudCBLaXQgJmx0OzxhIGhyZWY9Im1haWx0bzpzcGRr QGxpc3RzLjAxLm9yZyI+c3Bka0BsaXN0cy4wMS5vcmc8L2E+Jmd0Ozxicj4KJmd0OyBTdWJqZWN0 OiBbU1BES10gQnVpbGRpbmcgc3BkayBvbiBDZW50T1M2PGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0 OyBIaSw8YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IEZpbmFsbHkgZ290IHRvIGxvb2tpbmcgYXQg c3VwcG9ydCBvZiBzcGRrIGJ1aWxkIG9uIENlbnRPUzYsIHRoaW5ncyBsb29rIGdvb2QsPGJyPgom Z3Q7IGV4Y2VwdCBmb3Igb25lIGlzc3VlLjxicj4KJmd0OyBzcGRrIGlzIGxhdGVzdCAxOC4wMS54 IHZlcnNpb24sIGRwZGsgaXMgMTYuMDcgKCYjNDM7MyBkcGRrIHBhdGNoZXMgdG8gYWxsb3c8YnI+ CiZndDsgY29tcGlsYXRpb24pIGFuZCBzb21lIG1pbm9yIHBhdGNoZXMgKG1haW5seSBzb21lIG1l bW9yeSBjb25maWd1cmF0aW9uIHN0dWZmKSw8YnI+CiZndDsga2VybmVsIGlzIGEgcGF0Y2hlZCA0 LjkuNi48YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IGJ1aWxkIHN1Y2NlZWRlZCBleGNlcHQgZm9y IHRoZSB1c2FnZSBvZiB0aGUgZHBkayBmdW5jdGlvbiBwY2lfdmZpb19pc19lbmFibGVkLjxicj4K Jmd0OyBJIGhhZCB0byBhcHBseSB0aGUgcGF0Y2ggYmVsbG93LCByZW1vdmluZyB0aGUgdXNhZ2Ug b2YgdGhpcyBmdW5jdGlvbiBhbmQgdGhlbjxicj4KJmd0OyBjb21waWxhdGlvbiBjb21wbGV0ZWQg d2l0aG91dCBhbnkgaXNzdWVzLjxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgSXQgc2VlbXMgdGhh dCBJIGFtIG1pc3Npbmcgc29tZSBzb3J0IG9mIGRwZGsgY29uZmlndXJhdGlvbiBhcyBJIHNlZSB0 aGF0IHRoZTxicj4KJmd0OyBmdW5jdGlvbiBpcyBidWlsdCwgYnV0IG5vdCBwYWNrYWdlZCBpbnRv IHRoZSBnZW5lcmF0ZWQgYXJjaGl2ZS48YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IEkgd2VudCBi YWNrIHRvIHNxdWFyZSBvbmUgYW5kIHJhbiB0aGUgaW5zdHJ1Y3Rpb25zIGluIDxhIGhyZWY9Imh0 dHA6Ly93d3cuc3Bkay5pby9kb2MvZyIgaWQ9IkxQbG5rMjkzMzAxIj4KaHR0cDovL3d3dy5zcGRr LmlvL2RvYy9nPC9hPjxicj4KJmd0OyBldHRpbmdfc3RhcnRlZC5odG1sLCBidXQgSSBzZWUgbm8g bWVudGlvbiBvZiBkcGRrIHRoZXJlLiBBY3R1YWxseSB0aGU8YnI+CiZndDsgLi9jb25maWd1cmUg cmVxdWlyZXMgaXQuPGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyBNeSBuZXh0IHN0ZXAgaXMgdG8g dXNlIGEgbW9yZSByZWNlbnQgZHBkaywgYnV0IHNob3VsZG4ndCB0aGlzIHdvcmsgd2l0aCBteTxi cj4KJmd0OyB2ZXJzaW9uPyBBbSBJIG1pc3Npbmcgc29tZSBkcGRrIGNvbmZpZ3VyYXRpb24/PGJy PgomZ3Q7IEJUVywgYXMgd2UgYXJlIG5vdCB1c2luZyB2aG9zdCwgb24gb3VyIDE3LjA3IHZlcnNp b24gd2Ugc2ltcGx5IHVzZTxicj4KJmd0OyBDT05GSUdfVkhPU1Q9biBpbiBvcmRlciB0byBza2lw IHRoaXMsIGJ1dCBJIHdvdWxkIGJlIGhhcHBpZXIgaWYgd2UgdXNlZCBhPGJyPgomZ3Q7IGJldHRl ciBzb2x1dGlvbi48YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IFNoYWhhcjxicj4KJmd0OyZuYnNw OyA8YnI+CiZndDsgUC5TLiBIZXJlIGlzIHRoZSBwYXRjaCB0byByZW1vdmUgdXNlIG9mIHRoaXMg ZnVuY3Rpb246PGJyPgomZ3Q7IGRpZmYgLS1naXQgYS9saWIvZW52X2RwZGsvdnRvcGh5cy5jIGIv bGliL2Vudl9kcGRrL3Z0b3BoeXMuYzxicj4KJmd0OyBpbmRleCA5MmFhMjU2Li5mMzg5MjlmIDEw MDY0NDxicj4KJmd0OyAtLS0gYS9saWIvZW52X2RwZGsvdnRvcGh5cy5jPGJyPgomZ3Q7ICYjNDM7 JiM0MzsmIzQzOyBiL2xpYi9lbnZfZHBkay92dG9waHlzLmM8YnI+CiZndDsgQEAgLTUzLDggJiM0 Mzs1MywxMCBAQDxicj4KJmd0OyZuYnNwOyAjZGVmaW5lIFNQREtfVkZJT19FTkFCTEVEIDE8YnI+ CiZndDsmbmJzcDsgI2luY2x1ZGUgJmx0O2xpbnV4L3ZmaW8uaCZndDs8YnI+CiZndDsmbmJzcDsg PGJyPgomZ3Q7ICYjNDM7I2lmIDA8YnI+CiZndDsmbmJzcDsgLyogSW50ZXJuYWwgRFBESyBmdW5j dGlvbiBmb3J3YXJkIGRlY2xhcmF0aW9uICovPGJyPgomZ3Q7Jm5ic3A7IGludCBwY2lfdmZpb19p c19lbmFibGVkKHZvaWQpOzxicj4KJmd0OyAmIzQzOyNlbmRpZjxicj4KJmd0OyZuYnNwOyA8YnI+ CiZndDsmbmJzcDsgc3RydWN0IHNwZGtfdmZpb19kbWFfbWFwIHs8YnI+CiZndDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3RydWN0IHZmaW9faW9tbXVf dHlwZTFfZG1hX21hcCBtYXA7PGJyPgomZ3Q7IEBAIC0zNDEsOSAmIzQzOzM0MywxMSBAQCBzcGRr X3Z0b3BoeXNfaW9tbXVfaW5pdCh2b2lkKTxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBESVIgKmRpcjs8YnI+CiZndDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3RydWN0IGRpcmVudCAqZDs8YnI+ CiZndDsmbmJzcDsgPGJyPgomZ3Q7ICYjNDM7I2lmIDA8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgaWYgKCFwY2lfdmZpb19pc19lbmFibGVk KCkpIHs8YnI+CiZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0 dXJuOzxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyB9PGJyPgomZ3Q7ICYjNDM7I2VuZGlmPGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBkaXIgPSBvcGVuZGly KCZxdW90Oy9wcm9jL3NlbGYvZmQmcXVvdDspOzxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAoIWRpcikgezxicj4KJmd0OyZuYnNwOyA8 YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fPGJyPgomZ3Q7IFNQREsgbWFpbGluZyBsaXN0PGJyPgomZ3Q7IDxhIGhy ZWY9Im1haWx0bzpTUERLQGxpc3RzLjAxLm9yZyI+U1BES0BsaXN0cy4wMS5vcmc8L2E+PGJyPgom Z3Q7IDxhIGhyZWY9Imh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vc3BkayIg aWQ9IkxQbG5rNjYxMzQyIj5odHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3Nw ZGs8L2E+PGJyPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xzxicj4KU1BESyBtYWlsaW5nIGxpc3Q8YnI+CjxhIGhyZWY9Im1haWx0bzpTUERLQGxpc3RzLjAx Lm9yZyI+U1BES0BsaXN0cy4wMS5vcmc8L2E+PGJyPgo8YSBocmVmPSJodHRwczovL2xpc3RzLjAx Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3NwZGsiIGlkPSJMUGxuazU4OTI4MSI+aHR0cHM6Ly9saXN0 cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9zcGRrPC9hPjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4K PC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvYm9keT4K PC9odG1sPgo= --===============4846412358701427321==--