From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============8324716325436563920==" MIME-Version: 1.0 From: Shahar Salzman Subject: Re: [SPDK] Building spdk on CentOS6 Date: Sun, 13 May 2018 08:44:47 +0000 Message-ID: In-Reply-To: A5F28D4A728A7E41839CDC5C3B5A01E8B5C994EC@FMSMSX103.amr.corp.intel.com List-ID: To: spdk@lists.01.org --===============8324716325436563920== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Daniel, I ran the dpdk build with T=3Dspdk-linuxapp-gcc and build works fine. Isn't config/common_spdk only for configuration options (no reference for t= his type of definition) ? I would have thought that the compilation flag sh= ould go in spdk/dpdkbuild/Makefile, or in one of the mk files? Shahar ________________________________ From: SPDK on behalf of Verkamp, Daniel Sent: Thursday, May 10, 2018 8:31:21 PM To: Storage Performance Development Kit Subject: Re: [SPDK] Building spdk on CentOS6 Hi Shahar, All of the config options you listed below are already disabled in the conf= ig that we use to build the DPDK subodule (see config/common_spdk in our DP= DK branch). Can you confirm that this works for you? I think we can add -fno-strict-aliasing to the DPDK config/common_spdk file= as well if this is necessary to make it work on RHEL 6 (I am surprised DPD= K doesn=E2=80=99t already compile with this enabled). If you could upload = a second patch for this, that would be great. Thanks, -- Daniel From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Shahar Salzman Sent: Thursday, May 10, 2018 6:39 AM To: Storage Performance Development Kit Subject: Re: [SPDK] Building spdk on CentOS6 Hi Daniel, I updated the patch as you suggested. How do you want to approach the gcc flag and the modules that spdk does not= need? If you are building dpdk from an external makefile (as we are doing), all o= f the above can be added to the makefile with CONFIG...=3Dn and EXTRA_CFLAG= S=3D"-fno-strict-aliasing", or I can send you another dpdk patch fixing thi= s within dpdk, so there is no change in the builder, and maybe there is ano= ther option. WDYT? Shahar ________________________________ From: SPDK = > on behalf of Luse, Paul E > Sent: Wednesday, May 9, 2018 8:19:33 PM To: Storage Performance Development Kit Subject: Re: [SPDK] Building spdk on CentOS6 That=E2=80=99s 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=E2=80=99s review; it looks like it shouldn=E2=80=99t be a= big problem to carry a patch for this in our DPDK submodule, at least whil= e CentOS 6 is still officially supported. (I posted a few review comments o= n 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 =E2=80=93 help long do you believe your team= will be on CentOS6? Don=E2=80=99t need a specific date but are we talking = months, years, indefinitely? 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= =E2=80=99s clear as well. If nothing else we=E2=80=99ll know if something e= lse breaks it sooner than later and will need to decide, again, at that tim= e if we pull it or if it=E2=80=99s 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=E2=80=99t make it upstream yet for whatever reason =E2=80= =93 this is the > submodule in the SPDK repo. I=E2=80=99m not saying that it makes sense f= or your patch > to land there permanently but it does make sense to talk about it. > > No problem on not being on the call, we=E2=80=99ll get some input from th= e maintainers > and others I=E2=80=99m sure=E2=80=A6 > > 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=E2=80=99t accepted based on one in= dividual=E2=80=99s > 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=E2=80=99d have what I= like to call > =E2=80=9Cthe flea market model=E2=80=9D where there=E2=80=99s 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=E2=80=99t a tremendous amount of eff= ort I would > suggest you go ahead and submit it. That=E2=80=99s the best way to get ev= eryone on the > same page wrt exactly what we=E2=80=99re talking about. If it is some si= gnificant > 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=E2=80=99ve pushed a patch for the SPDK master branch that should allow = it to compile > with DPDK 16.07: https://review.gerrithub.io/#/c/spdk/spdk/+/408743/ > > Gerrit Code Review > > review.gerrithub.io > > Keep in touch. Copyright =C2=A9 2017 | GerritForge Ltd. info(a)gerritforg= e.com > 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 --===============8324716325436563920== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl eHQvaHRtbDsgY2hhcnNldD1XaW5kb3dzLTEyNTIiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHN0 eWxlPSJkaXNwbGF5Om5vbmU7Ij48IS0tIFAge21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjA7 fSAtLT48L3N0eWxlPgo8L2hlYWQ+Cjxib2R5IGRpcj0ibHRyIj4KPGRpdiBpZD0iZGl2dGFnZGVm YXVsdHdyYXBwZXIiIHN0eWxlPSJmb250LXNpemU6IDEycHQ7IGNvbG9yOiByZ2IoMCwgMCwgMCk7 IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYsIEVtb2ppRm9udCwg JnF1b3Q7QXBwbGUgQ29sb3IgRW1vamkmcXVvdDssICZxdW90O1NlZ29lIFVJIEVtb2ppJnF1b3Q7 LCBOb3RvQ29sb3JFbW9qaSwgJnF1b3Q7U2Vnb2UgVUkgU3ltYm9sJnF1b3Q7LCAmcXVvdDtBbmRy b2lkIEVtb2ppJnF1b3Q7LCBFbW9qaVN5bWJvbHM7IiBkaXI9Imx0ciI+CjxkaXYgaWQ9ImRpdnRh Z2RlZmF1bHR3cmFwcGVyIiBzdHlsZT0iZm9udC1zaXplOiAxMnB0OyBjb2xvcjogcmdiKDAsIDAs IDApOyBmb250LWZhbWlseTogQ2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmLCBFbW9qaUZv bnQsICZxdW90O0FwcGxlIENvbG9yIEVtb2ppJnF1b3Q7LCAmcXVvdDtTZWdvZSBVSSBFbW9qaSZx dW90OywgTm90b0NvbG9yRW1vamksICZxdW90O1NlZ29lIFVJIFN5bWJvbCZxdW90OywgJnF1b3Q7 QW5kcm9pZCBFbW9qaSZxdW90OywgRW1vamlTeW1ib2xzOyIgZGlyPSJsdHIiPgo8cCBzdHlsZT0i bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MCI+SGkgRGFuaWVsLDwvcD4KPHAgc3R5bGU9Im1h cmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjAiPjxicj4KPC9wPgo8cCBzdHlsZT0ibWFyZ2luLXRv cDowO21hcmdpbi1ib3R0b206MCI+SSByYW4gdGhlIGRwZGsgYnVpbGQgd2l0aCBUPXNwZGstbGlu dXhhcHAtZ2NjIGFuZCBidWlsZCB3b3JrcyBmaW5lLjwvcD4KPHAgc3R5bGU9Im1hcmdpbi10b3A6 MDttYXJnaW4tYm90dG9tOjAiPklzbid0IGNvbmZpZy9jb21tb25fc3BkayBvbmx5IGZvciBjb25m aWd1cmF0aW9uIG9wdGlvbnMgKG5vIHJlZmVyZW5jZSBmb3IgdGhpcyB0eXBlIG9mIGRlZmluaXRp b24pID8gSSB3b3VsZCBoYXZlIHRob3VnaHQgdGhhdCB0aGUgY29tcGlsYXRpb24gZmxhZyBzaG91 bGQgZ28gaW4gc3Bkay88c3Bhbj5kcGRrYnVpbGQvTWFrZWZpbGUsIG9yIGluIG9uZSBvZiB0aGUg bWsgZmlsZXM/PC9zcGFuPjwvcD4KPHAgc3R5bGU9Im1hcmdpbi10b3A6MDttYXJnaW4tYm90dG9t OjAiPjxzcGFuPjxicj4KPC9zcGFuPjwvcD4KPHAgc3R5bGU9Im1hcmdpbi10b3A6MDttYXJnaW4t Ym90dG9tOjAiPjxzcGFuPlNoYWhhcjwvc3Bhbj48L3A+CjxwIHN0eWxlPSJtYXJnaW4tdG9wOjA7 bWFyZ2luLWJvdHRvbTowIj48c3Bhbj48YnI+Cjwvc3Bhbj48L3A+CjxwIHN0eWxlPSJtYXJnaW4t dG9wOjA7bWFyZ2luLWJvdHRvbTowIj48c3Bhbj48YnI+Cjwvc3Bhbj48L3A+CjwvZGl2Pgo8aHIg c3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjk4JSIgdGFiaW5kZXg9Ii0xIj4KPGRp diBpZD0iZGl2UnBseUZ3ZE1zZyIgZGlyPSJsdHIiPjxmb250IGZhY2U9IkNhbGlicmksIHNhbnMt c2VyaWYiIHN0eWxlPSJmb250LXNpemU6MTFwdCIgY29sb3I9IiMwMDAwMDAiPjxiPkZyb206PC9i PiBTUERLICZsdDtzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnJmd0OyBvbiBiZWhhbGYgb2YgVmVy a2FtcCwgRGFuaWVsICZsdDtkYW5pZWwudmVya2FtcEBpbnRlbC5jb20mZ3Q7PGJyPgo8Yj5TZW50 OjwvYj4gVGh1cnNkYXksIE1heSAxMCwgMjAxOCA4OjMxOjIxIFBNPGJyPgo8Yj5Ubzo8L2I+IFN0 b3JhZ2UgUGVyZm9ybWFuY2UgRGV2ZWxvcG1lbnQgS2l0PGJyPgo8Yj5TdWJqZWN0OjwvYj4gUmU6 IFtTUERLXSBCdWlsZGluZyBzcGRrIG9uIENlbnRPUzY8L2ZvbnQ+CjxkaXY+Jm5ic3A7PC9kaXY+ CjwvZGl2Pgo8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9V2luZG93cy0xMjUyIj4K PG1ldGEgbmFtZT0ieF9HZW5lcmF0b3IiIGNvbnRlbnQ9Ik1pY3Jvc29mdCBXb3JkIDE1IChmaWx0 ZXJlZCBtZWRpdW0pIj4KPGRpdiBsYW5nPSJFTi1VUyIgbGluaz0iYmx1ZSIgdmxpbms9InB1cnBs ZSI+CjxkaXYgY2xhc3M9InhfV29yZFNlY3Rpb24xIj4KPHAgY2xhc3M9InhfTXNvTm9ybWFsIj48 c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDsgZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx dW90OyxzYW5zLXNlcmlmOyBjb2xvcjojMUY0OTdEIj5IaSBTaGFoYXIsPC9zcGFuPjwvcD4KPHAg Y2xhc3M9InhfTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDsgZm9udC1m YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmOyBjb2xvcjojMUY0OTdEIj4mbmJz cDs8L3NwYW4+PC9wPgo8cCBjbGFzcz0ieF9Nc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp emU6MTEuMHB0OyBmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7IGNv bG9yOiMxRjQ5N0QiPkFsbCBvZiB0aGUgY29uZmlnIG9wdGlvbnMgeW91IGxpc3RlZCBiZWxvdyBh cmUgYWxyZWFkeSBkaXNhYmxlZCBpbiB0aGUgY29uZmlnIHRoYXQgd2UgdXNlIHRvIGJ1aWxkIHRo ZSBEUERLIHN1Ym9kdWxlIChzZWUgY29uZmlnL2NvbW1vbl9zcGRrIGluIG91ciBEUERLIGJyYW5j aCkuJm5ic3A7CiBDYW4geW91IGNvbmZpcm0gdGhhdCB0aGlzIHdvcmtzIGZvciB5b3U/PC9zcGFu PjwvcD4KPHAgY2xhc3M9InhfTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw dDsgZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmOyBjb2xvcjojMUY0 OTdEIj4mbmJzcDs8L3NwYW4+PC9wPgo8cCBjbGFzcz0ieF9Nc29Ob3JtYWwiPjxzcGFuIHN0eWxl PSJmb250LXNpemU6MTEuMHB0OyBmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt c2VyaWY7IGNvbG9yOiMxRjQ5N0QiPkkgdGhpbmsgd2UgY2FuIGFkZCAtZm5vLXN0cmljdC1hbGlh c2luZyB0byB0aGUgRFBESyBjb25maWcvY29tbW9uX3NwZGsgZmlsZSBhcyB3ZWxsIGlmIHRoaXMg aXMgbmVjZXNzYXJ5IHRvIG1ha2UgaXQgd29yayBvbiBSSEVMIDYgKEkgYW0gc3VycHJpc2VkIERQ REsgZG9lc26SdAogYWxyZWFkeSBjb21waWxlIHdpdGggdGhpcyBlbmFibGVkKS4mbmJzcDsgSWYg eW91IGNvdWxkIHVwbG9hZCBhIHNlY29uZCBwYXRjaCBmb3IgdGhpcywgdGhhdCB3b3VsZCBiZSBn cmVhdC48L3NwYW4+PC9wPgo8cCBjbGFzcz0ieF9Nc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250 LXNpemU6MTEuMHB0OyBmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7 IGNvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48L3A+CjxwIGNsYXNzPSJ4X01zb05vcm1hbCI+ PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7IGZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm cXVvdDssc2Fucy1zZXJpZjsgY29sb3I6IzFGNDk3RCI+VGhhbmtzLDwvc3Bhbj48L3A+CjxwIGNs YXNzPSJ4X01zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7IGZvbnQtZmFt aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjsgY29sb3I6IzFGNDk3RCI+LS0gRGFu aWVsCjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJ4X01zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt c2l6ZToxMS4wcHQ7IGZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjsg Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjwvcD4KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7 IGJvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7IHBhZGRpbmc6MGluIDBpbiAwaW4gNC4wcHQi Pgo8ZGl2Pgo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTsgYm9yZGVyLXRvcDpzb2xpZCAjRTFFMUUx IDEuMHB0OyBwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGluIj4KPHAgY2xhc3M9InhfTXNvTm9ybWFs Ij48YSBuYW1lPSJ4X19fX19fcmVwbHlzZXBhcmF0b3IiIGlkPSJMUGxuazI1MDAzMyIgY2xhc3M9 Ik9XQUF1dG9MaW5rIiBwcmV2aWV3cmVtb3ZlZD0idHJ1ZSI+PC9hPjxiPjxzcGFuIHN0eWxlPSJm b250LXNpemU6MTEuMHB0OyBmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy aWYiPkZyb206PC9zcGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDsgZm9udC1m YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4KIFNQREsgW21haWx0bzpzcGRr LWJvdW5jZXNAbGlzdHMuMDEub3JnXSA8Yj5PbiBCZWhhbGYgT2YgPC9iPlNoYWhhciBTYWx6bWFu PGJyPgo8Yj5TZW50OjwvYj4gVGh1cnNkYXksIE1heSAxMCwgMjAxOCA2OjM5IEFNPGJyPgo8Yj5U bzo8L2I+IFN0b3JhZ2UgUGVyZm9ybWFuY2UgRGV2ZWxvcG1lbnQgS2l0ICZsdDtzcGRrQGxpc3Rz LjAxLm9yZyZndDs8YnI+CjxiPlN1YmplY3Q6PC9iPiBSZTogW1NQREtdIEJ1aWxkaW5nIHNwZGsg b24gQ2VudE9TNjwvc3Bhbj48L3A+CjwvZGl2Pgo8L2Rpdj4KPHAgY2xhc3M9InhfTXNvTm9ybWFs Ij4mbmJzcDs8L3A+CjxkaXYgaWQ9InhfZGl2dGFnZGVmYXVsdHdyYXBwZXIiPgo8cD48c3BhbiBz dHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmOyBjb2xvcjpi bGFjayI+SGkgRGFuaWVsLDwvc3Bhbj48L3A+CjxwPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTom cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOmJsYWNrIj4mbmJzcDs8L3NwYW4+ PC9wPgo8cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z LXNlcmlmOyBjb2xvcjpibGFjayI+SSB1cGRhdGVkIHRoZSBwYXRjaCBhcyB5b3Ugc3VnZ2VzdGVk Ljwvc3Bhbj48L3A+CjxwPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1 b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOmJsYWNrIj5Ib3cgZG8geW91IHdhbnQgdG8gYXBwcm9hY2gg dGhlIGdjYyBmbGFnIGFuZCB0aGUgbW9kdWxlcyB0aGF0IHNwZGsgZG9lcyBub3QgbmVlZD88L3Nw YW4+PC9wPgo8cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz YW5zLXNlcmlmOyBjb2xvcjpibGFjayI+SWYgeW91IGFyZSBidWlsZGluZyBkcGRrIGZyb20gYW4g ZXh0ZXJuYWwgbWFrZWZpbGUgKGFzIHdlIGFyZSBkb2luZyksIGFsbCBvZiB0aGUgYWJvdmUgY2Fu IGJlIGFkZGVkIHRvIHRoZSBtYWtlZmlsZSB3aXRoIENPTkZJRy4uLj1uIGFuZCBFWFRSQV9DRkxB R1M9JnF1b3Q7LWZuby1zdHJpY3QtYWxpYXNpbmcmcXVvdDssIG9yIEkgY2FuIHNlbmQgeW91IGFu b3RoZXIKIGRwZGsgcGF0Y2ggZml4aW5nIHRoaXMgd2l0aGluIGRwZGssIHNvIHRoZXJlIGlzIG5v IGNoYW5nZSBpbiB0aGUgYnVpbGRlciwgYW5kIG1heWJlIHRoZXJlIGlzIGFub3RoZXIgb3B0aW9u Ljwvc3Bhbj48L3A+CjxwPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1 b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOmJsYWNrIj4mbmJzcDs8L3NwYW4+PC9wPgo8cD48c3BhbiBz dHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmOyBjb2xvcjpi bGFjayI+V0RZVD88L3NwYW4+PC9wPgo8cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7 Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmOyBjb2xvcjpibGFjayI+Jm5ic3A7PC9zcGFuPjwvcD4K PHA+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp ZjsgY29sb3I6YmxhY2siPlNoYWhhcjwvc3Bhbj48L3A+CjxwPjxzcGFuIHN0eWxlPSJmb250LWZh bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOmJsYWNrIj4mbmJzcDs8 L3NwYW4+PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0ieF9Nc29Ob3JtYWwiIGFsaWduPSJjZW50ZXIi IHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlciI+CjxociBzaXplPSIzIiB3aWR0aD0iOTglIiBhbGln bj0iY2VudGVyIj4KPC9kaXY+CjxkaXYgaWQ9InhfZGl2UnBseUZ3ZE1zZyI+CjxwIGNsYXNzPSJ4 X01zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7IGZvbnQtZmFtaWx5 OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjsgY29sb3I6YmxhY2siPkZyb206PC9zcGFu PjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDsgZm9udC1mYW1pbHk6JnF1b3Q7Q2Fs aWJyaSZxdW90OyxzYW5zLXNlcmlmOyBjb2xvcjpibGFjayI+IFNQREsgJmx0OzxhIGhyZWY9Im1h aWx0bzpzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnIiBpZD0iTFBsbms4ODM4ODMiIGNsYXNzPSJP V0FBdXRvTGluayIgcHJldmlld3JlbW92ZWQ9InRydWUiPnNwZGstYm91bmNlc0BsaXN0cy4wMS5v cmc8L2E+Jmd0Owogb24gYmVoYWxmIG9mIEx1c2UsIFBhdWwgRSAmbHQ7PGEgaHJlZj0ibWFpbHRv OnBhdWwuZS5sdXNlQGludGVsLmNvbSIgaWQ9IkxQbG5rMTg0NDIxIiBjbGFzcz0iT1dBQXV0b0xp bmsiIHByZXZpZXdyZW1vdmVkPSJ0cnVlIj5wYXVsLmUubHVzZUBpbnRlbC5jb208L2E+Jmd0Ozxi cj4KPGI+U2VudDo8L2I+IFdlZG5lc2RheSwgTWF5IDksIDIwMTggODoxOTozMyBQTTxicj4KPGI+ VG86PC9iPiBTdG9yYWdlIFBlcmZvcm1hbmNlIERldmVsb3BtZW50IEtpdDxicj4KPGI+U3ViamVj dDo8L2I+IFJlOiBbU1BES10gQnVpbGRpbmcgc3BkayBvbiBDZW50T1M2PC9zcGFuPiA8L3A+Cjxk aXY+CjxwIGNsYXNzPSJ4X01zb05vcm1hbCI+Jm5ic3A7PC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXY+ CjxkaXY+CjxwIGNsYXNzPSJ4X3htc29ub3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu MHB0OyBmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOiMx RjQ5N0QiPlRoYXSScyBncmVhdCwgdGhhbmtzIERhbmllbCE8L3NwYW4+PC9wPgo8cCBjbGFzcz0i eF94bXNvbm9ybWFsIj48YSBuYW1lPSJ4X3hfX01haWxFbmRDb21wb3NlIiBpZD0iTFBsbms0MTQy ODQiIGNsYXNzPSJPV0FBdXRvTGluayIgcHJldmlld3JlbW92ZWQ9InRydWUiPjxzcGFuIHN0eWxl PSJmb250LXNpemU6MTEuMHB0OyBmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt c2VyaWY7IGNvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48L2E+PC9wPgo8ZGl2Pgo8ZGl2IHN0 eWxlPSJib3JkZXI6bm9uZTsgYm9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0OyBwYWRkaW5n OjMuMHB0IDBpbiAwaW4gMGluIj4KPHAgY2xhc3M9InhfeG1zb25vcm1hbCI+PGEgbmFtZT0ieF94 X19fX19fcmVwbHlzZXBhcmF0b3IiIGlkPSJMUGxuazU5NTg2NyIgY2xhc3M9Ik9XQUF1dG9MaW5r IiBwcmV2aWV3cmVtb3ZlZD0idHJ1ZSI+PC9hPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu MHB0OyBmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPkZyb206PC9z cGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDsgZm9udC1mYW1pbHk6JnF1b3Q7 Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4KIFNQREsgWzxhIGhyZWY9Im1haWx0bzpzcGRrLWJv dW5jZXNAbGlzdHMuMDEub3JnIiBpZD0iTFBsbms0ODA5NjMiIGNsYXNzPSJPV0FBdXRvTGluayIg cHJldmlld3JlbW92ZWQ9InRydWUiPm1haWx0bzpzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnPC9h Pl0KPGI+T24gQmVoYWxmIE9mIDwvYj5WZXJrYW1wLCBEYW5pZWw8YnI+CjxiPlNlbnQ6PC9iPiBX ZWRuZXNkYXksIE1heSA5LCAyMDE4IDk6NDMgQU08YnI+CjxiPlRvOjwvYj4gU3RvcmFnZSBQZXJm b3JtYW5jZSBEZXZlbG9wbWVudCBLaXQgJmx0OzxhIGhyZWY9Im1haWx0bzpzcGRrQGxpc3RzLjAx Lm9yZyIgaWQ9IkxQbG5rNzc0MDE3IiBjbGFzcz0iT1dBQXV0b0xpbmsiIHByZXZpZXdyZW1vdmVk PSJ0cnVlIj5zcGRrQGxpc3RzLjAxLm9yZzwvYT4mZ3Q7PGJyPgo8Yj5TdWJqZWN0OjwvYj4gUmU6 IFtTUERLXSBCdWlsZGluZyBzcGRrIG9uIENlbnRPUzY8L3NwYW4+PC9wPgo8L2Rpdj4KPC9kaXY+ CjxwIGNsYXNzPSJ4X3htc29ub3JtYWwiPiZuYnNwOzwvcD4KPHAgY2xhc3M9InhfeG1zb25vcm1h bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7IGZvbnQtZmFtaWx5OiZxdW90O0NhbGli cmkmcXVvdDssc2Fucy1zZXJpZjsgY29sb3I6IzFGNDk3RCI+SSBhZ3JlZSB3aXRoIFBhdWyScyBy ZXZpZXc7IGl0IGxvb2tzIGxpa2UgaXQgc2hvdWxkbpJ0IGJlIGEgYmlnIHByb2JsZW0gdG8gY2Fy cnkgYSBwYXRjaCBmb3IgdGhpcyBpbiBvdXIgRFBESyBzdWJtb2R1bGUsIGF0IGxlYXN0IHdoaWxl IENlbnRPUyA2IGlzIHN0aWxsCiBvZmZpY2lhbGx5IHN1cHBvcnRlZC4gKEkgcG9zdGVkIGEgZmV3 IHJldmlldyBjb21tZW50cyBvbiB0aGUgcGF0Y2gsIGJ1dCB0aGUgZ2VuZXJhbCBhcHByb2FjaCBs b29rcyBmaW5lLik8L3NwYW4+PC9wPgo8cCBjbGFzcz0ieF94bXNvbm9ybWFsIj48c3BhbiBzdHls ZT0iZm9udC1zaXplOjExLjBwdDsgZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z LXNlcmlmOyBjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PC9wPgo8cCBjbGFzcz0ieF94bXNv bm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDsgZm9udC1mYW1pbHk6JnF1b3Q7 Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmOyBjb2xvcjojMUY0OTdEIj5UaGUgSW50ZWwgYnVpbGQg cG9vbCBoYWQgYSBDZW50T1MgNiB0ZXN0IG1hY2hpbmUgaW4gdGhlIHBvb2wgdW50aWwgcmVjZW50 bHksIGFuZCB3ZSBzaG91bGQgYmUgYWJsZSB0byByZXN1cnJlY3QgaXQgdG8gcHJvdmlkZSB0ZXN0 IGNvdmVyYWdlIGFnYWluLjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJ4X3htc29ub3JtYWwiPjxzcGFu IHN0eWxlPSJmb250LXNpemU6MTEuMHB0OyBmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7 LHNhbnMtc2VyaWY7IGNvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48L3A+CjxwIGNsYXNzPSJ4 X3htc29ub3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0OyBmb250LWZhbWlseTom cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOiMxRjQ5N0QiPlRoYW5rcyw8L3Nw YW4+PC9wPgo8cCBjbGFzcz0ieF94bXNvbm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx LjBwdDsgZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmOyBjb2xvcjoj MUY0OTdEIj4tLSBEYW5pZWw8L3NwYW4+PC9wPgo8cCBjbGFzcz0ieF94bXNvbm9ybWFsIj48c3Bh biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDsgZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90 OyxzYW5zLXNlcmlmOyBjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PC9wPgo8ZGl2IHN0eWxl PSJib3JkZXI6bm9uZTsgYm9yZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDsgcGFkZGluZzowaW4g MGluIDBpbiA0LjBwdCI+CjxkaXY+CjxkaXYgc3R5bGU9ImJvcmRlcjpub25lOyBib3JkZXItdG9w OnNvbGlkICNFMUUxRTEgMS4wcHQ7IHBhZGRpbmc6My4wcHQgMGluIDBpbiAwaW4iPgo8cCBjbGFz cz0ieF94bXNvbm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDsgZm9udC1m YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5Gcm9tOjwvc3Bhbj48L2I+PHNw YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7IGZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv dDssc2Fucy1zZXJpZiI+IFNQREsgWzxhIGhyZWY9Im1haWx0bzpzcGRrLWJvdW5jZXNAbGlzdHMu MDEub3JnIiBpZD0iTFBsbmszNTE3MDQiIGNsYXNzPSJPV0FBdXRvTGluayIgcHJldmlld3JlbW92 ZWQ9InRydWUiPm1haWx0bzpzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnPC9hPl0KPGI+T24gQmVo YWxmIE9mIDwvYj5TaGFoYXIgU2Fsem1hbjxicj4KPGI+U2VudDo8L2I+IFdlZG5lc2RheSwgTWF5 IDksIDIwMTggNjoxMiBBTTxicj4KPGI+VG86PC9iPiBTdG9yYWdlIFBlcmZvcm1hbmNlIERldmVs b3BtZW50IEtpdCAmbHQ7PGEgaHJlZj0ibWFpbHRvOnNwZGtAbGlzdHMuMDEub3JnIiBpZD0iTFBs bms3NDk3ODciIGNsYXNzPSJPV0FBdXRvTGluayIgcHJldmlld3JlbW92ZWQ9InRydWUiPnNwZGtA bGlzdHMuMDEub3JnPC9hPiZndDs8YnI+CjxiPlN1YmplY3Q6PC9iPiBSZTogW1NQREtdIEJ1aWxk aW5nIHNwZGsgb24gQ2VudE9TNjwvc3Bhbj48L3A+CjwvZGl2Pgo8L2Rpdj4KPHAgY2xhc3M9Inhf eG1zb25vcm1hbCI+Jm5ic3A7PC9wPgo8ZGl2IGlkPSJ4X3hfZGl2dGFnZGVmYXVsdHdyYXBwZXIi Pgo8cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl cmlmOyBjb2xvcjpibGFjayI+SGkgUGF1bCw8L3NwYW4+PC9wPgo8cD48c3BhbiBzdHlsZT0iZm9u dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmOyBjb2xvcjpibGFjayI+Jm5i c3A7PC9zcGFuPjwvcD4KPHA+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm cXVvdDssc2Fucy1zZXJpZjsgY29sb3I6YmxhY2siPlRoYW5rcyBmb3IgdGhlIHJldmlldy48L3Nw YW4+PC9wPgo8cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz YW5zLXNlcmlmOyBjb2xvcjpibGFjayI+V2UgYXJlIG5vdyB3b3JraW5nIG9uIENlbnRPUzcgc3Vw cG9ydCwgYnV0IGl0IGlzIG5vdCBjb21wbGV0ZSB5ZXQsIHNvIHdlIHdpbGwgYmUgb24gQ2VudE9T NiZuYnNwO2Fib3V0IDYtMTIgbW9udGhzLjwvc3Bhbj48L3A+CjxwPjxzcGFuIHN0eWxlPSJmb250 LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOmJsYWNrIj4mbmJz cDs8L3NwYW4+PC9wPgo8cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx dW90OyxzYW5zLXNlcmlmOyBjb2xvcjpibGFjayI+U2hhaGFyPC9zcGFuPjwvcD4KPC9kaXY+Cjxk aXYgY2xhc3M9InhfTXNvTm9ybWFsIiBhbGlnbj0iY2VudGVyIiBzdHlsZT0idGV4dC1hbGlnbjpj ZW50ZXIiPgo8aHIgc2l6ZT0iMyIgd2lkdGg9Ijk4JSIgYWxpZ249ImNlbnRlciI+CjwvZGl2Pgo8 ZGl2IGlkPSJ4X3hfZGl2UnBseUZ3ZE1zZyI+CjxwIGNsYXNzPSJ4X3htc29ub3JtYWwiPjxiPjxz cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0OyBmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1 b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOmJsYWNrIj5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9 ImZvbnQtc2l6ZToxMS4wcHQ7IGZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z ZXJpZjsgY29sb3I6YmxhY2siPiBTUERLICZsdDs8YSBocmVmPSJtYWlsdG86c3Bkay1ib3VuY2Vz QGxpc3RzLjAxLm9yZyIgaWQ9IkxQbG5rNDg5OTQyIiBjbGFzcz0iT1dBQXV0b0xpbmsiIHByZXZp ZXdyZW1vdmVkPSJ0cnVlIj5zcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnPC9hPiZndDsKIG9uIGJl aGFsZiBvZiBMdXNlLCBQYXVsIEUgJmx0OzxhIGhyZWY9Im1haWx0bzpwYXVsLmUubHVzZUBpbnRl bC5jb20iIGlkPSJMUGxuazU1MDMxMSIgY2xhc3M9Ik9XQUF1dG9MaW5rIiBwcmV2aWV3cmVtb3Zl ZD0idHJ1ZSI+cGF1bC5lLmx1c2VAaW50ZWwuY29tPC9hPiZndDs8YnI+CjxiPlNlbnQ6PC9iPiBX ZWRuZXNkYXksIE1heSA5LCAyMDE4IDM6NTE6MjMgUE08YnI+CjxiPlRvOjwvYj4gU3RvcmFnZSBQ ZXJmb3JtYW5jZSBEZXZlbG9wbWVudCBLaXQ8YnI+CjxiPlN1YmplY3Q6PC9iPiBSZTogW1NQREtd IEJ1aWxkaW5nIHNwZGsgb24gQ2VudE9TNjwvc3Bhbj4gPC9wPgo8ZGl2Pgo8cCBjbGFzcz0ieF94 bXNvbm9ybWFsIj4mbmJzcDs8L3A+CjwvZGl2Pgo8L2Rpdj4KPGRpdj4KPGRpdj4KPHAgY2xhc3M9 InhfeHhtc29ub3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0OyBmb250LWZhbWls eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOiMxRjQ5N0QiPlRoYW5rcyBm b3IgZG9pbmcgdGhhdCEgSSBwdXQgbXkgMiBjZW50cyBvbiB0aGUgcmV2aWV3LCBvbmUgbW9yZSBk YXRhIHBvaW50IGZvciB0aGUgbWFpbnRhaW5lcnMgbWlnaHQgaGVscCCWIGhlbHAgbG9uZyBkbyB5 b3UgYmVsaWV2ZSB5b3VyIHRlYW0gd2lsbCBiZSBvbgogQ2VudE9TNj8gRG9uknQgbmVlZCBhIHNw ZWNpZmljIGRhdGUgYnV0IGFyZSB3ZSB0YWxraW5nIG1vbnRocywgeWVhcnMsIGluZGVmaW5pdGVs eT88L3NwYW4+PC9wPgo8cCBjbGFzcz0ieF94eG1zb25vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt c2l6ZToxMS4wcHQ7IGZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjsg Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjwvcD4KPHAgY2xhc3M9InhfeHhtc29ub3JtYWwi PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0OyBmb250LWZhbWlseTomcXVvdDtDYWxpYnJp JnF1b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOiMxRjQ5N0QiPkkgdGhpbmsgdGhlIG90aGVyIGltcGxp Y2F0aW9uIG9mIGFjY2VwdGluZyB0aGlzIGluIHRoZSBjb21tdW5pdHkgd291bGQgYmUgdG8gc3Bp biB1cCBhIENlbnRPUzYgVk0gZm9yIHNvbWUgYmFzaWMgdGVzdGluZyBmb3IgYXMgbG9uZyBhcyB3 ZSBob2xkIHRoYXQgcGF0Y2gKIGluIG91ciBEUERLIGZvcmsgd2hpY2ggaXMgbm90IGEgaHVnZSB0 aGluZyBidXQgd2FudCB0byBtYWtlIHN1cmUgdGhhdJJzIGNsZWFyIGFzIHdlbGwuIElmIG5vdGhp bmcgZWxzZSB3ZZJsbCBrbm93IGlmIHNvbWV0aGluZyBlbHNlIGJyZWFrcyBpdCBzb29uZXIgdGhh biBsYXRlciBhbmQgd2lsbCBuZWVkIHRvIGRlY2lkZSwgYWdhaW4sIGF0IHRoYXQgdGltZSBpZiB3 ZSBwdWxsIGl0IG9yIGlmIGl0knMgYSBoaWdoIGVub3VnaCBwcmlvcml0eSBmb3IKIGFueW9uZSB0 byBkaWcgaW4gYW5kIGZpbmQgYSBwb3RlbnRpYWwgc29sdXRpb24gbGlrZSB5b3UgZGlkIGhlcmUu Jm5ic3A7IEFzc3VtaW5nLCBvZiBjb3Vyc2UsIHRoYXQgdGhpcyBvbmUgaXMgYWNjZXB0ZWQKPC9z cGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0OyBmb250LWZhbWlseTpXaW5nZGluZ3M7 IGNvbG9yOiMxRjQ5N0QiPko8L3NwYW4+PC9wPgo8cCBjbGFzcz0ieF94eG1zb25vcm1hbCI+PHNw YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7IGZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv dDssc2Fucy1zZXJpZjsgY29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjwvcD4KPHAgY2xhc3M9 InhfeHhtc29ub3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0OyBmb250LWZhbWls eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOiMxRjQ5N0QiPlRoYW5rcyw8 L3NwYW4+PC9wPgo8cCBjbGFzcz0ieF94eG1zb25vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6 ZToxMS4wcHQ7IGZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjsgY29s b3I6IzFGNDk3RCI+UGF1bDwvc3Bhbj48L3A+CjxwIGNsYXNzPSJ4X3h4bXNvbm9ybWFsIj48YSBu YW1lPSJ4X3hfeF9fTWFpbEVuZENvbXBvc2UiIGlkPSJMUGxuazc2NzMzNyIgY2xhc3M9Ik9XQUF1 dG9MaW5rIiBwcmV2aWV3cmVtb3ZlZD0idHJ1ZSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w cHQ7IGZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjsgY29sb3I6IzFG NDk3RCI+Jm5ic3A7PC9zcGFuPjwvYT48L3A+CjxkaXY+CjxkaXYgc3R5bGU9ImJvcmRlcjpub25l OyBib3JkZXItdG9wOnNvbGlkICNFMUUxRTEgMS4wcHQ7IHBhZGRpbmc6My4wcHQgMGluIDBpbiAw aW4iPgo8cCBjbGFzcz0ieF94eG1zb25vcm1hbCI+PGEgbmFtZT0ieF94X3hfX19fX19yZXBseXNl cGFyYXRvciIgaWQ9IkxQbG5rOTAzMjQwIiBjbGFzcz0iT1dBQXV0b0xpbmsiIHByZXZpZXdyZW1v dmVkPSJ0cnVlIj48L2E+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7IGZvbnQtZmFt aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+RnJvbTo8L3NwYW4+PC9iPjxzcGFu IHN0eWxlPSJmb250LXNpemU6MTEuMHB0OyBmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7 LHNhbnMtc2VyaWYiPgogU1BESyBbPGEgaHJlZj0ibWFpbHRvOnNwZGstYm91bmNlc0BsaXN0cy4w MS5vcmciIGlkPSJMUGxuazk3MTUwMiIgY2xhc3M9Ik9XQUF1dG9MaW5rIiBwcmV2aWV3cmVtb3Zl ZD0idHJ1ZSI+bWFpbHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmc8L2E+XQo8Yj5PbiBCZWhh bGYgT2YgPC9iPlNoYWhhciBTYWx6bWFuPGJyPgo8Yj5TZW50OjwvYj4gV2VkbmVzZGF5LCBNYXkg OSwgMjAxOCAyOjAxIEFNPGJyPgo8Yj5Ubzo8L2I+IDxhIGhyZWY9Im1haWx0bzpzcGRrQGxpc3Rz LjAxLm9yZyIgaWQ9IkxQbG5rNDI5NTc3IiBjbGFzcz0iT1dBQXV0b0xpbmsiIHByZXZpZXdyZW1v dmVkPSJ0cnVlIj4Kc3Bka0BsaXN0cy4wMS5vcmc8L2E+PGJyPgo8Yj5TdWJqZWN0OjwvYj4gUmU6 IFtTUERLXSBCdWlsZGluZyBzcGRrIG9uIENlbnRPUzY8L3NwYW4+PC9wPgo8L2Rpdj4KPC9kaXY+ CjxwIGNsYXNzPSJ4X3h4bXNvbm9ybWFsIj4mbmJzcDs8L3A+CjxkaXYgaWQ9InhfeF94X2RpdnRh Z2RlZmF1bHR3cmFwcGVyIj4KPGRpdiBpZD0ieF94X3hfZGl2dGFnZGVmYXVsdHdyYXBwZXIiPgo8 cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm OyBjb2xvcjpibGFjayI+SGkgQmVuLDwvc3Bhbj48L3A+CjxwPjxzcGFuIHN0eWxlPSJmb250LWZh bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOmJsYWNrIj4mbmJzcDs8 L3NwYW4+PC9wPgo8cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90 OyxzYW5zLXNlcmlmOyBjb2xvcjpibGFjayI+UHVzaGVkIHRoZSBmaXggdG8gZ2Vycml0aHViIC0m bmJzcDs8YSBocmVmPSJodHRwczovL3Jldmlldy5nZXJyaXRodWIuaW8vIy9jL3NwZGsvZHBkay8m IzQzOy80MTA1NTkvIiBpZD0iTFBsbmsyMDEyODMiIHByZXZpZXdyZW1vdmVkPSJ0cnVlIj5odHRw czovL3Jldmlldy5nZXJyaXRodWIuaW8vIy9jL3NwZGsvZHBkay8mIzQzOy80MTA1NTkvPC9hPjwv c3Bhbj48L3A+CjxwIGNsYXNzPSJ4X3h4bXNvbm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1p bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmOyBjb2xvcjpibGFjayI+Jm5ic3A7PC9z cGFuPjwvcD4KPHA+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss c2Fucy1zZXJpZjsgY29sb3I6YmxhY2siPldlIGFyZSBjdXJyZW50bHkgdXNpbmcgYSAmcXVvdDtm cm96ZW4mcXVvdDsgZHBkayB0cmVlIGJhc2VkIHZlcnNpb24gMTYuMDcsIGJ1dCBJIGFtIHB1c2hp bmcgdG8gdXNpbmcgdGhlIHNwZGsgZm9yayBhbmQgcGVyZm9ybWluZyByZWd1bGFyIHVwZGF0ZXMg c28gaWYgdGhpbmdzIGJyZWFrLCBJIHdpbGwgYXR0ZW1wdCB0byBmaXggdGhlbSwgYW5kIHBvc3Qg b24KIHRoZSBsaXN0Ljwvc3Bhbj48L3A+CjxwPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVv dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOmJsYWNrIj4mbmJzcDs8L3NwYW4+PC9w Pgo8cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl cmlmOyBjb2xvcjpibGFjayI+VGhlIGFib3ZlIGZpeGVzIGEgYmx1bnQgZ2NjJm5ic3A7QVBJIGlz c3VlLCBidXQgdGhlcmUgYXJlIG1vcmUgc3VidGxlIGlubmVyIG1vZHVsZSBpc3N1ZXMgd2hpY2gg SSBoYXZlIG5vdCBpbnZlc3RpZ2F0ZWQsIHNpbXBseSByZW1vdmVkIHRoZSBtb2R1bGVzIGFsbCB0 b2dldGhlciBhcyB0aGV5IGFyZSBub3QgbmVlZGVkIGJ5IHNwZGsuPC9zcGFuPjwvcD4KPHA+PHNw YW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjsgY29s b3I6YmxhY2siPiZuYnNwOzwvc3Bhbj48L3A+CjxwPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTom cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOmJsYWNrIj5JIGNhbiBzZXQgdXAg YSBob3d0byBmb3IgdXNlcnMgd2hvIG1heSBuZWVkIENlbnRPUzYgc3VwcG9ydCBvciB3ZSBjYW4g bW9kaWZ5IHRoZSBjb25maWcgKGFzIHRoZXNlIG1vZHVsZXMgYXJlIG5vdCByZWFsbHkgbmVlZGVk IGZvciBzcGRrKS4gRm9yIHRoZSBzYWtlIG9mIGNsYXJpdHkgaGVyZSBhcmUgdGhlIG1vZHVsZXMg JnF1b3Q7Y29uZmlnZWQKIG91dCZxdW90OyAoYXMgSSBtZW50aW9uZWQgdGhleSBhcmUgbm90IHVz ZWQgYnkgc3Bkayk6PC9zcGFuPjwvcD4KPGRpdj4KPHAgY2xhc3M9InhfeHhtc29ub3JtYWwiPjxz cGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7IGNv bG9yOmJsYWNrIj4mIzQzO0NPTkZJR19SVEVfTElCUlRFX1BNRF9CT05EPW48L3NwYW4+PC9wPgo8 L2Rpdj4KPGRpdj4KPHAgY2xhc3M9InhfeHhtc29ub3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZh bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOmJsYWNrIj4mIzQzO0NP TkZJR19SVEVfTElCUlRFX0NSWVBUT0RFVj1uPC9zcGFuPjwvcD4KPC9kaXY+CjxkaXY+CjxwIGNs YXNzPSJ4X3h4bXNvbm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy aSZxdW90OyxzYW5zLXNlcmlmOyBjb2xvcjpibGFjayI+JiM0MztDT05GSUdfUlRFX0xJQlJURV9T RUNVUklUWT1uPC9zcGFuPjwvcD4KPC9kaXY+CjxkaXY+CjxwIGNsYXNzPSJ4X3h4bXNvbm9ybWFs Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm OyBjb2xvcjpibGFjayI+JiM0MztDT05GSUdfUlRFX0xJQlJURV9QTURfU1dfRVZFTlRERVY9bjwv c3Bhbj48L3A+CjwvZGl2Pgo8ZGl2Pgo8cCBjbGFzcz0ieF94eG1zb25vcm1hbCI+PHNwYW4gc3R5 bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjsgY29sb3I6Ymxh Y2siPiYjNDM7Q09ORklHX1JURV9MSUJSVEVfUE1EX09DVEVPTlRYX1NTT1ZGPW48L3NwYW4+PC9w Pgo8L2Rpdj4KPGRpdj4KPHAgY2xhc3M9InhfeHhtc29ub3JtYWwiPjxzcGFuIHN0eWxlPSJmb250 LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOmJsYWNrIj4mIzQz O0NPTkZJR19SVEVfTElCUlRFX0xQTT1uPC9zcGFuPjwvcD4KPC9kaXY+CjxkaXY+CjxwIGNsYXNz PSJ4X3h4bXNvbm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx dW90OyxzYW5zLXNlcmlmOyBjb2xvcjpibGFjayI+JiM0MztDT05GSUdfUlRFX0xJQlJURV9GTE9X X0NMQVNTSUZZPW48L3NwYW4+PC9wPgo8L2Rpdj4KPGRpdj4KPHAgY2xhc3M9InhfeHhtc29ub3Jt YWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy aWY7IGNvbG9yOmJsYWNrIj4mIzQzO0NPTkZJR19SVEVfTElCUlRFX1RBQkxFPW48L3NwYW4+PC9w Pgo8L2Rpdj4KPGRpdj4KPHAgY2xhc3M9InhfeHhtc29ub3JtYWwiPjxzcGFuIHN0eWxlPSJmb250 LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOmJsYWNrIj4mIzQz O0NPTkZJR19SVEVfTElCUlRFX1BJUEVMSU5FPW48L3NwYW4+PC9wPgo8L2Rpdj4KPGRpdj4KPHAg Y2xhc3M9InhfeHhtc29ub3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxp YnJpJnF1b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOmJsYWNrIj4mIzQzO0NPTkZJR19SVEVfVEVTVF9Q TUQ9bjwvc3Bhbj48L3A+CjwvZGl2Pgo8ZGl2Pgo8cCBjbGFzcz0ieF94eG1zb25vcm1hbCI+PHNw YW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjsgY29s b3I6YmxhY2siPiYjNDM7Q09ORklHX1JURV9MSUJSVEVfUE1EX1RBUD1uPC9zcGFuPjwvcD4KPC9k aXY+CjxkaXY+CjxwIGNsYXNzPSJ4X3h4bXNvbm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1p bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmOyBjb2xvcjpibGFjayI+JiM0MztDT05G SUdfUlRFX0xJQlJURV9BVlBfUE1EPW48L3NwYW4+PC9wPgo8L2Rpdj4KPGRpdj4KPHAgY2xhc3M9 InhfeHhtc29ub3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1 b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOmJsYWNrIj4mbmJzcDs8L3NwYW4+PC9wPgo8L2Rpdj4KPGRp dj4KPHAgY2xhc3M9InhfeHhtc29ub3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVv dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOmJsYWNrIj5SZWdhcmRpbmcgdGhlIC1m bi1zdHJpY3QtYWxpYXNpbmcgaXNzdWUsIEknbGwgc2VlIGlmIEkgY2FuIGRvIHRoZSBzYW1lIHRy aWNrIEkgZGlkIGZvciB0aGUgZ2NjIGFsaWFzIGluIHRoZSBNYWtlZmlsZSwgYW5kIHB1c2ggdGhl IGZpeCBmb3IgcmV2aWV3Ljwvc3Bhbj48L3A+CjwvZGl2Pgo8ZGl2Pgo8cCBjbGFzcz0ieF94eG1z b25vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu cy1zZXJpZjsgY29sb3I6YmxhY2siPiZuYnNwOzwvc3Bhbj48L3A+CjwvZGl2Pgo8cD48c3BhbiBz dHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmOyBjb2xvcjpi bGFjayI+U2hhaGFyPC9zcGFuPjwvcD4KPHA+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90 O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjsgY29sb3I6YmxhY2siPiZuYnNwOzwvc3Bhbj48L3A+ CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ4X01zb05vcm1hbCIgYWxpZ249ImNlbnRlciIgc3R5bGU9InRl eHQtYWxpZ246Y2VudGVyIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx dW90OyxzYW5zLXNlcmlmOyBjb2xvcjpibGFjayI+CjxociBzaXplPSI0IiB3aWR0aD0iOTglIiBh bGlnbj0iY2VudGVyIj4KPC9zcGFuPjwvZGl2Pgo8ZGl2IGlkPSJ4X3hfeF9kaXZScGx5RndkTXNn Ij4KPHAgY2xhc3M9InhfeHhtc29ub3JtYWwiPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu MHB0OyBmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7IGNvbG9yOmJs YWNrIj5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7IGZvbnQt ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjsgY29sb3I6YmxhY2siPiBTUERL ICZsdDs8YSBocmVmPSJtYWlsdG86c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9yZyIgaWQ9IkxQbG5r NjU5NTMwIiBjbGFzcz0iT1dBQXV0b0xpbmsiIHByZXZpZXdyZW1vdmVkPSJ0cnVlIj5zcGRrLWJv dW5jZXNAbGlzdHMuMDEub3JnPC9hPiZndDsKIG9uIGJlaGFsZiBvZiBXYWxrZXIsIEJlbmphbWlu ICZsdDs8YSBocmVmPSJtYWlsdG86YmVuamFtaW4ud2Fsa2VyQGludGVsLmNvbSIgaWQ9IkxQbG5r NDk5MDgzIiBjbGFzcz0iT1dBQXV0b0xpbmsiIHByZXZpZXdyZW1vdmVkPSJ0cnVlIj5iZW5qYW1p bi53YWxrZXJAaW50ZWwuY29tPC9hPiZndDs8YnI+CjxiPlNlbnQ6PC9iPiBUdWVzZGF5LCBNYXkg OCwgMjAxOCA3OjQ5OjQ0IFBNPGJyPgo8Yj5Ubzo8L2I+IDxhIGhyZWY9Im1haWx0bzpzcGRrQGxp c3RzLjAxLm9yZyIgaWQ9IkxQbG5rNDY5NTkiIGNsYXNzPSJPV0FBdXRvTGluayIgcHJldmlld3Jl bW92ZWQ9InRydWUiPgpzcGRrQGxpc3RzLjAxLm9yZzwvYT48YnI+CjxiPlN1YmplY3Q6PC9iPiBS ZTogW1NQREtdIEJ1aWxkaW5nIHNwZGsgb24gQ2VudE9TNjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9u dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmOyBjb2xvcjpibGFjayI+Cjwv c3Bhbj48L3A+CjxkaXY+CjxwIGNsYXNzPSJ4X3h4bXNvbm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmOyBjb2xvcjpibGFjayI+Jm5i c3A7PC9zcGFuPjwvcD4KPC9kaXY+CjwvZGl2Pgo8ZGl2Pgo8ZGl2Pgo8cCBjbGFzcz0ieF94eG1z b25vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7IGZvbnQtZmFtaWx5OiZxdW90 O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjsgY29sb3I6YmxhY2siPk9uIFR1ZSwgMjAxOC0wNS0w OCBhdCAxNDozNCAmIzQzOzAwMDAsIFNoYWhhciBTYWx6bWFuIHdyb3RlOjxicj4KJmd0OyBHb3Qg aXQuPGJyPgomZ3Q7IDxicj4KJmd0OyBJIHdhcyB0cmFja2luZyB0aGUgZHBkayBwcm9qZWN0LCBh bmQgZm9jdXNlZCBvbiB0aGUgYnJhbmNoIHRoYXQgRGFuaWVsIHRvbGQgbWU8YnI+CiZndDsgdG8g d29yayBvbi48YnI+CiZndDsgU28gd291bGQgdGhlIGNvcnJlY3QgcHJvY2VzcyBiZSB0byBwdXNo IHRoZSBwYXRjaCB0byB0aGUgc3Bkay9kcGRrIGdlcnJpdGh1Yjxicj4KJmd0OyBhbmQgZGlzY3Vz cyB0aGUgY29tbWl0LCBvciB0aGUgb3RoZXIgd2F5IGFyb3VuZD88YnI+Cjxicj4KWWVzIC0gZ28g YWhlYWQgYW5kIHB1c2ggdG8gc3Bkay9kcGRrIG9uIEdlcnJpdEh1YiBzbyB3ZSBjYW4gYWxsIHJl dmlldyBpdC4gVGhlPGJyPgpTUERLIHByb2plY3QgaGFzIG5ldmVyIHdyaXR0ZW4gb3V0IGEgcG9s aWN5IG9uIHdoaWNoIHZlcnNpb25zIG9mIERQREsgYXJlPGJyPgpzdXBwb3J0ZWQgZm9yIGFueSBn aXZlbiBTUERLIHJlbGVhc2UuIFRoZSBjb2RlIGlzIGFsd2F5cyB0ZXN0ZWQgdXNpbmcgdGhlIGxh dGVzdDxicj4KcmVsZWFzZWQgRFBESywgYW5kIHRoZW4gYXR0ZW1wdHMgdG8gc3VwcG9ydCBvbGRl ciB2ZXJzaW9ucyBvZiBEUERLIGFyZSBkb25lIGluPGJyPgphbiBhZCBob2MgbWFubmVyLiBTaW1p bGFybHksIHRoZSBwcm9qZWN0IG5ldmVyIGV4cGxpY2l0bHkgc3RhdGVzIHdoaWNoIG9wZXJhdGlu Zzxicj4Kc3lzdGVtcyBhcmUgc3VwcG9ydGVkLiBJbnN0ZWFkLCB3ZSBpbmRpY2F0ZSB3aGljaCBv cGVyYXRpbmcgc3lzdGVtcyB0aGUgY29kZSBpczxicj4KcmVndWxhcmx5IHRlc3RlZCBvbiAoRmVk b3JhIE4gYW5kIE4tMSwgVWJ1bnR1IGxhdGVzdCwgVWJ1bnR1IExUUywgQ2VudE9TIDcsPGJyPgpG cmVlQlNEIDExKS48YnI+Cjxicj4KSSBzZWUgdGhhdCBDZW50T1MgNiBpcyBubyBsb25nZXIgcmVj ZWl2aW5nIGZ1bGwgdXBkYXRlcyBhbmQgaXMgaW4gbWFpbnRlbmFuY2U8YnI+Cm9ubHkgbW9kZS4g SXQgd2lsbCBzdG9wIHJlY2VpdmluZyBldmVuIG1haW50ZW5hbmNlIHVwZGF0ZXMgaW4gMjAyMC4g SSB0aGluayB0aGF0PGJyPgppcyBpbmRpY2F0aXZlIG9mIHRoZSBsZXZlbCBvZiBzdXBwb3J0IFNQ REsgc2hvdWxkIHByb3ZpZGUgaGVyZS48YnI+Cjxicj4KR2l2ZW4gdGhlIGFib3ZlLCBpZiB0aGlz IHBhdGNoIGNhbiBiZSBhcHBsaWVkIHRvIHRoZSBEUERLIGZvcmsgYW5kIGRvZXNuJ3QgaGF2ZTxi cj4KYW55IGFkZGl0aW9uYWwgaW1wYWN0LCBJJ20gbm90IG9wcG9zZWQgdG8gYXBwbHlpbmcgaXQu IFRoYXQgd291bGRuJ3QsIGluIG15PGJyPgptaW5kLCBtZWFuIHRoYXQgU1BESyBpcyBjb21taXR0 ZWQgdG8gc3VwcG9ydGluZyBDZW50T1MgNiBpbmRlZmluaXRlbHkuIEJ1dDxicj4KY2VydGFpbmx5 IHRoYXQgc3VwcG9ydCBjb3VsZCBjb250aW51ZSB3aGlsZSBpdCBpcyByZWxhdGl2ZWx5IGVhc3kg YW5kPGJyPgpjb252ZW5pZW50Ljxicj4KPGJyPgomZ3Q7IDxicj4KJmd0OyBGcm9tOiBTUERLICZs dDs8YSBocmVmPSJtYWlsdG86c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9yZyIgaWQ9IkxQbG5rNTUy MDI5IiBjbGFzcz0iT1dBQXV0b0xpbmsiIHByZXZpZXdyZW1vdmVkPSJ0cnVlIj5zcGRrLWJvdW5j ZXNAbGlzdHMuMDEub3JnPC9hPiZndDsgb24gYmVoYWxmIG9mIEx1c2UsIFBhdWwgRSAmbHQ7PGEg aHJlZj0ibWFpbHRvOnBhdWwuZS5sdXNlQCUwYiIgaWQ9IkxQbG5rMTE0MTgzIiBjbGFzcz0iT1dB QXV0b0xpbmsiIHByZXZpZXdyZW1vdmVkPSJ0cnVlIj5wYXVsLmUubHVzZUA8YnI+CjwvYT4mZ3Q7 IGludGVsLmNvbSZndDs8YnI+CiZndDsgU2VudDogVHVlc2RheSwgTWF5IDgsIDIwMTggNToxNDox MCBQTTxicj4KJmd0OyBUbzogU3RvcmFnZSBQZXJmb3JtYW5jZSBEZXZlbG9wbWVudCBLaXQ8YnI+ CiZndDsgU3ViamVjdDogUmU6IFtTUERLXSBCdWlsZGluZyBzcGRrIG9uIENlbnRPUzY8YnI+CiZn dDsmbmJzcDsgPGJyPgomZ3Q7IFN1cmUsIEkgdW5kZXJzdGFuZCB0aGF0LiZuYnNwOyBTUERLIG1h aW50YWlucyBhIGZvcmsgb2YgZHBkayBpbiBnaXRodWIgYXQgPGEgaHJlZj0iaHR0cHM6Ly9nIiBp ZD0iTFBsbmsxNzU5MTkiIGNsYXNzPSJPV0FBdXRvTGluayIgcHJldmlld3JlbW92ZWQ9InRydWUi PgpodHRwczovL2c8L2E+PGJyPgomZ3Q7IGl0aHViLmNvbS9zcGRrL2RwZGsgZm9yIHRoZSBwdXJw b3NlIG9mIHRlbXBvcmFyaWx5IHB1dHRpbmcgdGhpbmdzIGluIHRoYXQgd2U8YnI+CiZndDsgbmVl ZCB0aGF0IGNhbpJ0IG1ha2UgaXQgdXBzdHJlYW0geWV0IGZvciB3aGF0ZXZlciByZWFzb24gliB0 aGlzIGlzIHRoZTxicj4KJmd0OyBzdWJtb2R1bGUgaW4gdGhlIFNQREsgcmVwby4mbmJzcDsgSZJt IG5vdCBzYXlpbmcgdGhhdCBpdCBtYWtlcyBzZW5zZSBmb3IgeW91ciBwYXRjaDxicj4KJmd0OyB0 byBsYW5kIHRoZXJlIHBlcm1hbmVudGx5IGJ1dCBpdCBkb2VzIG1ha2Ugc2Vuc2UgdG8gdGFsayBh Ym91dCBpdC48YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IE5vIHByb2JsZW0gb24gbm90IGJlaW5n IG9uIHRoZSBjYWxsLCB3ZZJsbCBnZXQgc29tZSBpbnB1dCBmcm9tIHRoZSBtYWludGFpbmVyczxi cj4KJmd0OyBhbmQgb3RoZXJzIEmSbSBzdXJlhTxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgVGh4 PGJyPgomZ3Q7IFBhdWw8YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IEZyb206IFNQREsgWzxhIGhy ZWY9Im1haWx0bzpzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnIiBpZD0iTFBsbmszNDA1NzYiIHBy ZXZpZXdyZW1vdmVkPSJ0cnVlIj5tYWlsdG86c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9yZzwvYT5d IE9uIEJlaGFsZiBPZiBTaGFoYXIgU2Fsem1hbjxicj4KJmd0OyBTZW50OiBUdWVzZGF5LCBNYXkg OCwgMjAxOCA3OjA0IEFNPGJyPgomZ3Q7IFRvOiBTdG9yYWdlIFBlcmZvcm1hbmNlIERldmVsb3Bt ZW50IEtpdCAmbHQ7PGEgaHJlZj0ibWFpbHRvOnNwZGtAbGlzdHMuMDEub3JnIiBpZD0iTFBsbms5 NTMxODEiIGNsYXNzPSJPV0FBdXRvTGluayIgcHJldmlld3JlbW92ZWQ9InRydWUiPnNwZGtAbGlz dHMuMDEub3JnPC9hPiZndDs8YnI+CiZndDsgU3ViamVjdDogUmU6IFtTUERLXSBCdWlsZGluZyBz cGRrIG9uIENlbnRPUzY8YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IEhleSBQYXVsLDxicj4KJmd0 OyZuYnNwOyA8YnI+CiZndDsgVGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgcGF0Y2ggaXMgaW4gZHBk ayBhbmQgbm90IGluIHNwZGssIGFuZCB0aGlzIGlzIHRoZTxicj4KJmd0OyByZWFzb24gSSBvZmZl cmVkIHRvIHN1cHBvcnQgaXQuPGJyPgomZ3Q7IFRoZSBwYXRjaCAoYmVsbG93KSBpcyBvbmx5IGEg ZmV3IGxpbmVzIGxvbmcgbW9kaWZ5aW5nIHRoZSBkZXByZWNhdGVkIGF0dHJpYnV0ZTxicj4KJmd0 OyBkZWZpbml0aW9uLCBhIG1vZGlmaWNhdGlvbiB0byB0aGUgY29uZmlnLCBhbmQgYW4gZXh0cmEg Y29tcGlsYXRpb24gZmxhZy48YnI+CiZndDsgQWxsIG9mIHRoZSBhYm92ZSBhcmUgcmVxdWlyZWQg aW4gb3JkZXIgdG8gYnVpbGQgZHBkayAxOC4wMSBvbiBDZW50T1M2LCB0aGVyZTxicj4KJmd0OyBh cmUgbm8gcHJvYmxlbXMgYnVpbGRpbmcgc3BkayBvbiBDZW50T1M2Ljxicj4KJmd0OyZuYnNwOyA8 YnI+CiZndDsgSSB1bmRlcnN0b29kIHRoYXQgeW91IGFyZSBhbHJlYWR5IGFwcGx5aW5nIG1pbm9y IHBhdGNoZXMgdG8gZHBkaywgc28gcXVlc3Rpb248YnI+CiZndDsgaXMsIHdoZXRoZXIgdGhpcyBw YXRjaCBjYW4gYmUgYWRkZWQ/PGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyBVbmZvcnR1bmF0ZWx5 IGR1ZSB0byBzb21lIHBlcnNvbmFsIGlzc3VlcywgSSBhbSB1bmFibGUgdG8gcGFydGljaXBhdGUg aW48YnI+CiZndDsgdG9kYXkncyBtZWV0aW5nLjxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgVGhh bmtzLDxicj4KJmd0OyBTaGFoYXI8YnI+CiZndDsgRnJvbTogU1BESyAmbHQ7PGEgaHJlZj0ibWFp bHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmciIGlkPSJMUGxuazE4NzMyIiBjbGFzcz0iT1dB QXV0b0xpbmsiIHByZXZpZXdyZW1vdmVkPSJ0cnVlIj5zcGRrLWJvdW5jZXNAbGlzdHMuMDEub3Jn PC9hPiZndDsgb24gYmVoYWxmIG9mIEx1c2UsIFBhdWwgRSAmbHQ7PGEgaHJlZj0ibWFpbHRvOnBh dWwuZS5sdXNlQCUwYiIgaWQ9IkxQbG5rNzQ4ODQzIiBjbGFzcz0iT1dBQXV0b0xpbmsiIHByZXZp ZXdyZW1vdmVkPSJ0cnVlIj5wYXVsLmUubHVzZUA8YnI+CjwvYT4mZ3Q7IGludGVsLmNvbSZndDs8 YnI+CiZndDsgU2VudDogVHVlc2RheSwgTWF5IDgsIDIwMTggNDoyNToyOSBQTTxicj4KJmd0OyBU bzogU3RvcmFnZSBQZXJmb3JtYW5jZSBEZXZlbG9wbWVudCBLaXQ8YnI+CiZndDsgU3ViamVjdDog UmU6IFtTUERLXSBCdWlsZGluZyBzcGRrIG9uIENlbnRPUzY8YnI+CiZndDsmbmJzcDsgPGJyPgom Z3Q7IEhpIFNoYWhhciw8YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IENvdXBsZSBvZiBxdWljayB0 aGluZ3M6PGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyAqIHRoYW5rcyBmb3IgcHV0dGluZyBhbGwg dGhpcyB0aW1lIGFuZCBlZmZvcnQgaW50byB0cnlpbmcgdG8gbWFrZSB0aGlzIHdvcmshPGJyPgom Z3Q7ICogaW4gdGhlIGNvbW11bml0eSBtb2RlbCwgcGF0Y2hlcyBhcmVuknQgYWNjZXB0ZWQgYmFz ZWQgb24gb25lIGluZGl2aWR1YWySczxicj4KJmd0OyBhYmlsaXR5L2Rlc2lyZSB0byBzdXBwb3J0 IHRoZW0gc28gYXBwcmVjaWF0ZSB0aGUgb2ZmZXIgYnV0IGluIGdlbmVyYWwgYW55PGJyPgomZ3Q7 IHBhdGNoIHRoYXQgaXMgYWNjZXB0ZWQgYmVjb21lcyB0aGUgcmVzcG9uc2libHkgb2YgdGhlIGNv bW11bml0eSAobW9zdGx5IHRoZTxicj4KJmd0OyBtYWludGFpbmVycykgdG8gc3VwcG9ydCBpdCBs b25nIHRlcm0uJm5ic3A7IE90aGVyd2lzZSB3ZZJkIGhhdmUgd2hhdCBJIGxpa2UgdG8gY2FsbDxi cj4KJmd0OyCTdGhlIGZsZWEgbWFya2V0IG1vZGVslCB3aGVyZSB0aGVyZZJzIGEgYnVuY2ggb2Yg c2VwYXJhdGUgaW5kaXZpZHVhbHM8YnI+CiZndDsgc3VwcG9ydGluZyB0aGVpciBvd24gdGhpbmdz IHdpdGggdmVyeSBsaXR0bGUgY29oZXNpdmVuZXNzIGFjcm9zcyBldmVyeXRoaW5nIEo8YnI+CiZn dDsmbmJzcDsgPGJyPgomZ3Q7IFNvLCB3cnQgbmV4dCBzdGVwcywgaWYgdGhlIHBhdGNoIGlzbpJ0 IGEgdHJlbWVuZG91cyBhbW91bnQgb2YgZWZmb3J0IEkgd291bGQ8YnI+CiZndDsgc3VnZ2VzdCB5 b3UgZ28gYWhlYWQgYW5kIHN1Ym1pdCBpdC4gVGhhdJJzIHRoZSBiZXN0IHdheSB0byBnZXQgZXZl cnlvbmUgb24gdGhlPGJyPgomZ3Q7IHNhbWUgcGFnZSB3cnQgZXhhY3RseSB3aGF0IHdlknJlIHRh bGtpbmcgYWJvdXQuJm5ic3A7IElmIGl0IGlzIHNvbWUgc2lnbmlmaWNhbnQ8YnI+CiZndDsgZWZm b3J0IHRoZW4sIGFzIFBhd2VsIHN0YXRlcywgeW91IGNhbiBjYWxsIGludG8gYSBjb21tdW5pdHkg bWVldGluZyAoc2VlIGVtYWlsPGJyPgomZ3Q7IEkgc2VudCBvdXQgbGFzdCBuaWdodCkgb3IgeW91 IGNhbiBleHBsYWluIG1vcmUgZGV0YWlscyBvbiB0aGlzIGxpc3QuPGJyPgomZ3Q7Jm5ic3A7IDxi cj4KJmd0OyBUaGFua3MgYWdhaW4hITxicj4KJmd0OyBQYXVsPGJyPgomZ3Q7Jm5ic3A7IDxicj4K Jmd0OyBGcm9tOiBTUERLIFs8YSBocmVmPSJtYWlsdG86c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9y ZyIgaWQ9IkxQbG5rMjcwMDA3IiBwcmV2aWV3cmVtb3ZlZD0idHJ1ZSI+bWFpbHRvOnNwZGstYm91 bmNlc0BsaXN0cy4wMS5vcmc8L2E+XSBPbiBCZWhhbGYgT2YgV29ka293c2tpLCBQYXdlbFg8YnI+ CiZndDsgU2VudDogVHVlc2RheSwgTWF5IDgsIDIwMTggNTo1NyBBTTxicj4KJmd0OyBUbzogU3Rv cmFnZSBQZXJmb3JtYW5jZSBEZXZlbG9wbWVudCBLaXQgJmx0OzxhIGhyZWY9Im1haWx0bzpzcGRr QGxpc3RzLjAxLm9yZyIgaWQ9IkxQbG5rMjI5MTc1IiBjbGFzcz0iT1dBQXV0b0xpbmsiIHByZXZp ZXdyZW1vdmVkPSJ0cnVlIj5zcGRrQGxpc3RzLjAxLm9yZzwvYT4mZ3Q7PGJyPgomZ3Q7IFN1Ympl Y3Q6IFJlOiBbU1BES10gQnVpbGRpbmcgc3BkayBvbiBDZW50T1M2PGJyPgomZ3Q7Jm5ic3A7IDxi cj4KJmd0OyBJIHRoaW5rIHNvbWVvbmUgd2lsbCBhbnN3ZXIgeW91IG9uIHRoaXMgbWFpbGluZyBs aXN0IGJ1dCB0aGVyZSBpcyBjb21tdW5pdHk8YnI+CiZndDsgbWVldGluZyB0b2RheSB0b28uIFlv dSBjYW4gcmFpc2UgdGhpcyBpZiB5b3Ugd2lzaC48YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IFBh d2VsPGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyBGcm9tOiBTUERLIFs8YSBocmVmPSJtYWlsdG86 c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9yZyIgaWQ9IkxQbG5rMjIzNDQzIiBwcmV2aWV3cmVtb3Zl ZD0idHJ1ZSI+bWFpbHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmc8L2E+XSBPbiBCZWhhbGYg T2YgU2hhaGFyIFNhbHptYW48YnI+CiZndDsgU2VudDogVHVlc2RheSwgTWF5IDgsIDIwMTggMjoy MyBQTTxicj4KJmd0OyBUbzogU3RvcmFnZSBQZXJmb3JtYW5jZSBEZXZlbG9wbWVudCBLaXQgJmx0 OzxhIGhyZWY9Im1haWx0bzpzcGRrQGxpc3RzLjAxLm9yZyIgaWQ9IkxQbG5rNzYyNTQ2IiBjbGFz cz0iT1dBQXV0b0xpbmsiIHByZXZpZXdyZW1vdmVkPSJ0cnVlIj5zcGRrQGxpc3RzLjAxLm9yZzwv YT4mZ3Q7PGJyPgomZ3Q7IFN1YmplY3Q6IFJlOiBbU1BES10gQnVpbGRpbmcgc3BkayBvbiBDZW50 T1M2PGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyBIaSw8YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7 IEkgYXR0ZW1wdGVkIHRvIHB1c2ggdGhlIGdjYyBzdXBwb3J0IHBhdGNoIHRvIGRwZGssIGFuZCBn b3QgcmVqZWN0ZWQgc2luY2UgdGhleTxicj4KJmd0OyBkbyBub3Qgd2lzaCB0byBzdXBwb3J0IENl bnRPUzYuPGJyPgomZ3Q7IFdvdWxkIGl0IGJlIHBvc3NpYmxlIHRvIG1hbnVhbGx5IGFkZCB0aGUg cGF0Y2ggdG8gdGhlIHN1cHBvcnRlZCBkcGRrIHZlcnNpb248YnI+CiZndDsgKGN1cnJlbnRseSAx OC4wMSkuPGJyPgomZ3Q7IEkgd291bGQgYmUgaGFwcHkgdG8gc3VwcG9ydCBDZW50T1M2IGlzc3Vl cy48YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IFRoYW5rcyw8YnI+CiZndDsgU2hhaGFyPGJyPgom Z3Q7Jm5ic3A7IDxicj4KJmd0OyBGcm9tOiBTaGFoYXIgU2Fsem1hbjxicj4KJmd0OyBTZW50OiBU dWVzZGF5LCBBcHJpbCAyNCwgMjAxOCAzOjQwOjUxIFBNPGJyPgomZ3Q7IFRvOiBTdG9yYWdlIFBl cmZvcm1hbmNlIERldmVsb3BtZW50IEtpdDxicj4KJmd0OyBDYzogSWxhbiBTdGVpbmJlcmc7IElk byBCZW5kYTsgWWFlbCBTaGF2aXQ8YnI+CiZndDsgU3ViamVjdDogUmU6IEJ1aWxkaW5nIHNwZGsg b24gQ2VudE9TNjxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgT0ssIGdvdCBldmVyeXRoaW5nIHRv IHdvcmsuPGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyBGb3IgRFBESywgSSBoYWQgdG8gdG8gZG8g dGhlIGZvbGxvd2luZzo8YnI+CiZndDsgYWRkIGEgcGF0Y2ggdG8gbWFrZSB0aGUgbmV3IF9fcnRl X2V4cGVyaW1lbnRhbCBhdHRyaWJ1dGUgdG8gd29yazxicj4KJmd0OyByZW1vdmUgYSBidW5jaCBv ZiBtb2R1bGVzIHZpYSBjb25maWcgd2hpY2ggaGFkIHNvbWUgZ25hcmx5IGNvbXBpbGF0aW9uIGVy cm9ycyw8YnI+CiZndDsgYW5kIGFyZSBub3QgbmVlZGVkIGZvciBzcGRrPGJyPgomZ3Q7IHVzZSAt Zm5vLXN0cmljdC1hbGlhc2luZyBpbiB0aGUgRVhUUkFfQ0ZMQUdTIHRvIGF2b2lkIGEgdG9uIG9m IHN0cmljdCBhbGlhc2luZzxicj4KJmd0OyBlcnJvcnMuPGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0 OyBJIHRyaWVkIHNwZGsgMTguMDEsIGFuZCByYW4gaW50byBzb21lIGlzc3VlcyB3aXRoIHRoZSBz aGFyZWQgbGlicmFyeSBidWlsZC4gQXM8YnI+CiZndDsgSSBzYXcgdGhhdCBEYW5pZWwgaGFkIGFs cmVhZHkgZGVhbHQgd2l0aCB0aGVtLCBJIHRyaWVkIGNoZXJyeSBwaWNraW5nLCBidXQ8YnI+CiZn dDsgZXZlbnR1YWxseSB1c2VkIHRoZSBtYXN0ZXIgYnJhbmNoLjxicj4KJmd0OyBJIGdvdCB0aGVz ZSB0eXBlIG9mIHdhcm5pbmdzOjxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgL3Vzci9iaW4vbGQ6 IHdhcm5pbmc6IGxpYnJ0ZV9tYnVmLnNvLjMuMSwgbmVlZGVkIGJ5PGJyPgomZ3Q7IC9raG9tZS9z aGFoYXIuc2Fsem1hbi9LYW1pbmFyaW8vZ2l0L2RwZGsveDg2XzY0LW5hdGl2ZS1saW51eGFwcC08 YnI+CiZndDsgZ2NjL2xpYi9saWJydGVfYnVzX3BjaS5zbywgbm90IGZvdW5kICh0cnkgdXNpbmcg LXJwYXRoIG9yIC1ycGF0aC1saW5rKTxicj4KJmd0OyAvdXNyL2Jpbi9sZDogd2FybmluZzogbGli cnRlX2V0aGRldi5zby44LjEsIG5lZWRlZCBieTxicj4KJmd0OyAva2hvbWUvc2hhaGFyLnNhbHpt YW4vS2FtaW5hcmlvL2dpdC9kcGRrL3g4Nl82NC1uYXRpdmUtbGludXhhcHAtPGJyPgomZ3Q7IGdj Yy9saWIvbGlicnRlX2J1c19wY2kuc28sIG5vdCBmb3VuZCAodHJ5IHVzaW5nIC1ycGF0aCBvciAt cnBhdGgtbGluayk8YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IEkgYWRkZWQgdGhlIGZvbGxvd2lu ZyBwYXRjaCBiZWxsb3cgdG8gbWFrZSB0aGVtIGdvIGF3YXkuPGJyPgomZ3Q7Jm5ic3A7IDxicj4K Jmd0OyBJJ2xsIGFwcHJvYWNoIHRoZSBkcGRrIGNvbW11bml0eSBvbiB0aGUgbWFpbGluZyBsaXN0 IGluIG9yZGVyIHRvIGdldCB0aGU8YnI+CiZndDsgX19ydGVfZXhwZXJpbWVudGFsIHN0dWZmIHRv IHdvcmsuPGJyPgomZ3Q7IE15IGZpbmFsIGNvbmZpZ3VyYXRpb24gaXM6PGJyPgomZ3Q7IENlbnJP UzYuNDxicj4KJmd0OyBnY2MgNC40LjctMTc8YnI+CiZndDsgZHBkayB2MTguMDI8YnI+CiZndDsg c3BkayBtYXN0ZXI8YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IFdoYXQgYXJlIHRoZSBuZXh0IHN0 ZXBzPzxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgU2hhaGFyPGJyPgomZ3Q7Jm5ic3A7IDxicj4K Jmd0OyBQLlMuIEhlcmUgaXMgdGhlIHBhdGNoIHRvIHJlbW92ZSB0aGUgd2FybmluZ3MgYWJvdmUu PGJyPgomZ3Q7IGNvbW1pdCBkNGVmNzQ0ZGUxY2M0OTI4OTcyYjcwNDJkMWM5MGFmZjEyZGI3ODY3 PGJyPgomZ3Q7IEF1dGhvcjogc2hhaGFyIHNhbHptYW4gJmx0OzxhIGhyZWY9Im1haWx0bzpzaGFo YXIuc2Fsem1hbkBrYW1pbmFyaW8uY29tIiBpZD0iTFBsbmsxNzI0MyIgY2xhc3M9Ik9XQUF1dG9M aW5rIiBwcmV2aWV3cmVtb3ZlZD0idHJ1ZSI+c2hhaGFyLnNhbHptYW5Aa2FtaW5hcmlvLmNvbTwv YT4mZ3Q7PGJyPgomZ3Q7IERhdGU6Jm5ic3A7Jm5ic3A7IFR1ZSBBcHIgMjQgMTQ6MzE6NTIgMjAx OCAmIzQzOzAzMDA8YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7IGxpYi9lbnZfZHBkazogYWRkIHJlcXVpcmVkIGxpYnJhcmllczxicj4KJmd0OyZuYnNwOyA8 YnI+CiZndDsgZGlmZiAtLWdpdCBhL2xpYi9lbnZfZHBkay9lbnYubWsgYi9saWIvZW52X2RwZGsv ZW52Lm1rPGJyPgomZ3Q7IGluZGV4IDQ1MDA0M2MuLmI0NmJmZWQgMTAwNjQ0PGJyPgomZ3Q7IC0t LSBhL2xpYi9lbnZfZHBkay9lbnYubWs8YnI+CiZndDsgJiM0MzsmIzQzOyYjNDM7IGIvbGliL2Vu dl9kcGRrL2Vudi5tazxicj4KJmd0OyBAQCAtNjgsNiAmIzQzOzY4LDE4IEBAIGlmbmVxICgkKHdp bGRjYXJkICQoRFBES19BQlNfRElSKS9saWIvbGlicnRlX21hbGxvYy4qKSwpPGJyPgomZ3Q7Jm5i c3A7IERQREtfTElCX0xJU1QgJiM0Mzs9IHJ0ZV9tYWxsb2M8YnI+CiZndDsmbmJzcDsgZW5kaWY8 YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7ICYjNDM7aWZuZXEgKCwgJCh3aWxkY2FyZCAkKERQREtf QUJTX0RJUikvbGliL2xpYnJ0ZV9tYnVmLiopKTxicj4KJmd0OyAmIzQzO0RQREtfTElCX0xJU1Qg JiM0Mzs9IHJ0ZV9tYnVmPGJyPgomZ3Q7ICYjNDM7ZW5kaWY8YnI+CiZndDsgJiM0Mzs8YnI+CiZn dDsgJiM0MztpZm5lcSAoLCAkKHdpbGRjYXJkICQoRFBES19BQlNfRElSKS9saWIvbGlicnRlX25l dC4qKSk8YnI+CiZndDsgJiM0MztEUERLX0xJQl9MSVNUICYjNDM7PSBydGVfbmV0PGJyPgomZ3Q7 ICYjNDM7ZW5kaWY8YnI+CiZndDsgJiM0Mzs8YnI+CiZndDsgJiM0MztpZm5lcSAoLCAkKHdpbGRj YXJkICQoRFBES19BQlNfRElSKS9saWIvbGlicnRlX2V0aGRldi4qKSk8YnI+CiZndDsgJiM0MztE UERLX0xJQl9MSVNUICYjNDM7PSBydGVfZXRoZGV2PGJyPgomZ3Q7ICYjNDM7ZW5kaWY8YnI+CiZn dDsgJiM0Mzs8YnI+CiZndDsmbmJzcDsgIyBsaWJydGVfcGNpIGFuZCBsaWJydGVfYnVzX3BjaSB3 ZXJlIGFkZGVkIGluIERQREsgMTcuMTEuIExpbmsgdGhlc2U8YnI+CiZndDsgbGlicmFyaWVzIGNv bmRpdGlvbmFsbHk8YnI+CiZndDsmbmJzcDsgIyBiYXNlZCBvbiB0aGVpciBleGlzdGVuY2UgdG8g bWFpbnRhaW4gYmFja3dhcmQgY29tcGF0aWJpbGl0eS48YnI+CiZndDsmbmJzcDsgaWZuZXEgKCwg JCh3aWxkY2FyZCAkKERQREtfQUJTX0RJUikvbGliL2xpYnJ0ZV9wY2kuKikpPGJyPgomZ3Q7Jm5i c3A7IDxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IEZyb206IFNQREsg Jmx0OzxhIGhyZWY9Im1haWx0bzpzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnIiBpZD0iTFBsbmsz NjcwMTQiIGNsYXNzPSJPV0FBdXRvTGluayIgcHJldmlld3JlbW92ZWQ9InRydWUiPnNwZGstYm91 bmNlc0BsaXN0cy4wMS5vcmc8L2E+Jmd0OyBvbiBiZWhhbGYgb2YgU2hhaGFyIFNhbHptYW4gJmx0 O3NoYWhhci5zYWw8YnI+CiZndDsgPGEgaHJlZj0ibWFpbHRvOnptYW5Aa2FtaW5hcmlvLmNvbSIg aWQ9IkxQbG5rNjY1NTk5IiBjbGFzcz0iT1dBQXV0b0xpbmsiIHByZXZpZXdyZW1vdmVkPSJ0cnVl Ij4Kem1hbkBrYW1pbmFyaW8uY29tPC9hPiZndDs8YnI+CiZndDsgU2VudDogVHVlc2RheSwgQXBy aWwgMjQsIDIwMTggOTo1NyBBTTxicj4KJmd0OyBUbzogU3RvcmFnZSBQZXJmb3JtYW5jZSBEZXZl bG9wbWVudCBLaXQ8YnI+CiZndDsgU3ViamVjdDogUmU6IFtTUERLXSBCdWlsZGluZyBzcGRrIG9u IENlbnRPUzY8YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7IEdyZWF0LCBhbmQgdGhhbmtzITxicj4K Jmd0OyZuYnNwOyA8YnI+CiZndDsgSSBoYXZlIGJlZW4gcnVubmluZyBpbnRvIGlzc3VlcyBjb21w aWxpbmcgZHBkayAxNy4xMSBvbiBDZW50T1M2ICh0aGVyZSBzZWVtczxicj4KJmd0OyB0byBiZSBh IGdjYyBpc3N1ZSB0aGF0IGRvZXMgbm90IGV4aXN0IGluIG90aGVyIHZlcnNpb25zKSwgSSdsbCBm b2N1cyBteTxicj4KJmd0OyBlZmZvcnRzIG9uIGRwZGsgMTguMDIuPGJyPgomZ3Q7IEZyb206IFNQ REsgJmx0OzxhIGhyZWY9Im1haWx0bzpzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnIiBpZD0iTFBs bmsxMTY1MyIgY2xhc3M9Ik9XQUF1dG9MaW5rIiBwcmV2aWV3cmVtb3ZlZD0idHJ1ZSI+c3Bkay1i b3VuY2VzQGxpc3RzLjAxLm9yZzwvYT4mZ3Q7IG9uIGJlaGFsZiBvZiBWZXJrYW1wLCBEYW5pZWwg Jmx0O2RhbmllbC52ZTxicj4KJmd0OyA8YSBocmVmPSJtYWlsdG86cmthbXBAaW50ZWwuY29tIiBp ZD0iTFBsbms0MDY1MjgiIGNsYXNzPSJPV0FBdXRvTGluayIgcHJldmlld3JlbW92ZWQ9InRydWUi Pgpya2FtcEBpbnRlbC5jb208L2E+Jmd0Ozxicj4KJmd0OyBTZW50OiBNb25kYXksIEFwcmlsIDIz LCAyMDE4IDk6NDA6MzYgUE08YnI+CiZndDsgVG86IFN0b3JhZ2UgUGVyZm9ybWFuY2UgRGV2ZWxv cG1lbnQgS2l0PGJyPgomZ3Q7IFN1YmplY3Q6IFJlOiBbU1BES10gQnVpbGRpbmcgc3BkayBvbiBD ZW50T1M2PGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyBIaSBTaGFoYXIsPGJyPgomZ3Q7Jm5ic3A7 IDxicj4KJmd0OyBJknZlIHB1c2hlZCBhIHBhdGNoIGZvciB0aGUgU1BESyBtYXN0ZXIgYnJhbmNo IHRoYXQgc2hvdWxkIGFsbG93IGl0IHRvIGNvbXBpbGU8YnI+CiZndDsgd2l0aCBEUERLIDE2LjA3 OiA8YSBocmVmPSJodHRwczovL3Jldmlldy5nZXJyaXRodWIuaW8vIy9jL3NwZGsvc3Bkay8mIzQz Oy80MDg3NDMvIiBpZD0iTFBsbms1NzI3MTIiIHByZXZpZXdyZW1vdmVkPSJ0cnVlIj4KaHR0cHM6 Ly9yZXZpZXcuZ2Vycml0aHViLmlvLyMvYy9zcGRrL3NwZGsvJiM0MzsvNDA4NzQzLzwvYT48YnI+ CiZndDsmbmJzcDsgPGJyPgomZ3Q7IEdlcnJpdCBDb2RlIFJldmlldzxicj4KJmd0OyZuYnNwOyA8 YnI+CiZndDsgcmV2aWV3LmdlcnJpdGh1Yi5pbzxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgS2Vl cCBpbiB0b3VjaC4gQ29weXJpZ2h0IKkgMjAxNyB8IEdlcnJpdEZvcmdlIEx0ZC4gPGEgaHJlZj0i bWFpbHRvOmluZm9AZ2Vycml0Zm9yZ2UuY29tIiBpZD0iTFBsbms4MTczNTciIGNsYXNzPSJPV0FB dXRvTGluayIgcHJldmlld3JlbW92ZWQ9InRydWUiPgppbmZvQGdlcnJpdGZvcmdlLmNvbTwvYT48 YnI+CiZndDsgPGEgaHJlZj0iaHR0cDovL3d3dy5nZXJyaXRmb3JnZS5jb20iIGlkPSJMUGxuazMw NjMyIiBwcmV2aWV3cmVtb3ZlZD0idHJ1ZSI+d3d3LmdlcnJpdGZvcmdlLmNvbTwvYT48YnI+CiZn dDsmbmJzcDsgPGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyBIb3dldmVyLCBEUERLIDE2LjA3IGlz IG5vIGxvbmdlciBzdXBwb3J0ZWQgdXBzdHJlYW07IEkgaGlnaGx5IHJlY29tbWVuZCB0aGF0PGJy PgomZ3Q7IHlvdSB1cGRhdGUgdG8gYSBuZXdlciB2ZXJzaW9uLiBTUERLIGlzIGN1cnJlbnRseSB0 ZXN0ZWQgd2l0aCBEUERLIDE4LjAyLjxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgVGhlIFZGSU8g aXNzdWUgeW91IG1lbnRpb24gaGFzIGFsc28gYmVlbiBmaXhlZCBvbiBTUERLIG1hc3RlciwgYW5k IGl0IHdpbGwgYmU8YnI+CiZndDsgcGFydCBvZiB0aGUgU1BESyB2MTguMDQgcmVsZWFzZS48YnI+ CiZndDsmbmJzcDsgPGJyPgomZ3Q7IFRoYW5rcyw8YnI+CiZndDsgLS0gRGFuaWVsPGJyPgomZ3Q7 Jm5ic3A7IDxicj4KJmd0OyBGcm9tOiBTUERLIFs8YSBocmVmPSJtYWlsdG86c3Bkay1ib3VuY2Vz QGxpc3RzLjAxLm9yZyIgaWQ9IkxQbG5rODI5MTAwIiBwcmV2aWV3cmVtb3ZlZD0idHJ1ZSI+bWFp bHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmc8L2E+XSBPbiBCZWhhbGYgT2YgU2hhaGFyIFNh bHptYW48YnI+CiZndDsgU2VudDogU3VuZGF5LCBBcHJpbCAyMiwgMjAxOCA2OjQxIEFNPGJyPgom Z3Q7IFRvOiBTdG9yYWdlIFBlcmZvcm1hbmNlIERldmVsb3BtZW50IEtpdCAmbHQ7PGEgaHJlZj0i bWFpbHRvOnNwZGtAbGlzdHMuMDEub3JnIiBpZD0iTFBsbmsxMjIwMjYiIGNsYXNzPSJPV0FBdXRv TGluayIgcHJldmlld3JlbW92ZWQ9InRydWUiPnNwZGtAbGlzdHMuMDEub3JnPC9hPiZndDs8YnI+ CiZndDsgU3ViamVjdDogW1NQREtdIEJ1aWxkaW5nIHNwZGsgb24gQ2VudE9TNjxicj4KJmd0OyZu YnNwOyA8YnI+CiZndDsgSGksPGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyBGaW5hbGx5IGdvdCB0 byBsb29raW5nIGF0IHN1cHBvcnQgb2Ygc3BkayBidWlsZCBvbiBDZW50T1M2LCB0aGluZ3MgbG9v ayBnb29kLDxicj4KJmd0OyBleGNlcHQgZm9yIG9uZSBpc3N1ZS48YnI+CiZndDsgc3BkayBpcyBs YXRlc3QgMTguMDEueCB2ZXJzaW9uLCBkcGRrIGlzIDE2LjA3ICgmIzQzOzMgZHBkayBwYXRjaGVz IHRvIGFsbG93PGJyPgomZ3Q7IGNvbXBpbGF0aW9uKSBhbmQgc29tZSBtaW5vciBwYXRjaGVzICht YWlubHkgc29tZSBtZW1vcnkgY29uZmlndXJhdGlvbiBzdHVmZiksPGJyPgomZ3Q7IGtlcm5lbCBp cyBhIHBhdGNoZWQgNC45LjYuPGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyBidWlsZCBzdWNjZWVk ZWQgZXhjZXB0IGZvciB0aGUgdXNhZ2Ugb2YgdGhlIGRwZGsgZnVuY3Rpb24gcGNpX3ZmaW9faXNf ZW5hYmxlZC48YnI+CiZndDsgSSBoYWQgdG8gYXBwbHkgdGhlIHBhdGNoIGJlbGxvdywgcmVtb3Zp bmcgdGhlIHVzYWdlIG9mIHRoaXMgZnVuY3Rpb24gYW5kIHRoZW48YnI+CiZndDsgY29tcGlsYXRp b24gY29tcGxldGVkIHdpdGhvdXQgYW55IGlzc3Vlcy48YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7 IEl0IHNlZW1zIHRoYXQgSSBhbSBtaXNzaW5nIHNvbWUgc29ydCBvZiBkcGRrIGNvbmZpZ3VyYXRp b24gYXMgSSBzZWUgdGhhdCB0aGU8YnI+CiZndDsgZnVuY3Rpb24gaXMgYnVpbHQsIGJ1dCBub3Qg cGFja2FnZWQgaW50byB0aGUgZ2VuZXJhdGVkIGFyY2hpdmUuPGJyPgomZ3Q7Jm5ic3A7IDxicj4K Jmd0OyBJIHdlbnQgYmFjayB0byBzcXVhcmUgb25lIGFuZCByYW4gdGhlIGluc3RydWN0aW9ucyBp biA8YSBocmVmPSJodHRwOi8vd3d3LnNwZGsuaW8vZG9jL2ciIGlkPSJMUGxuazI5MzMwMSIgcHJl dmlld3JlbW92ZWQ9InRydWUiPgpodHRwOi8vd3d3LnNwZGsuaW8vZG9jL2c8L2E+PGJyPgomZ3Q7 IGV0dGluZ19zdGFydGVkLmh0bWwsIGJ1dCBJIHNlZSBubyBtZW50aW9uIG9mIGRwZGsgdGhlcmUu IEFjdHVhbGx5IHRoZTxicj4KJmd0OyAuL2NvbmZpZ3VyZSByZXF1aXJlcyBpdC48YnI+CiZndDsm bmJzcDsgPGJyPgomZ3Q7IE15IG5leHQgc3RlcCBpcyB0byB1c2UgYSBtb3JlIHJlY2VudCBkcGRr LCBidXQgc2hvdWxkbid0IHRoaXMgd29yayB3aXRoIG15PGJyPgomZ3Q7IHZlcnNpb24/IEFtIEkg bWlzc2luZyBzb21lIGRwZGsgY29uZmlndXJhdGlvbj88YnI+CiZndDsgQlRXLCBhcyB3ZSBhcmUg bm90IHVzaW5nIHZob3N0LCBvbiBvdXIgMTcuMDcgdmVyc2lvbiB3ZSBzaW1wbHkgdXNlPGJyPgom Z3Q7IENPTkZJR19WSE9TVD1uIGluIG9yZGVyIHRvIHNraXAgdGhpcywgYnV0IEkgd291bGQgYmUg aGFwcGllciBpZiB3ZSB1c2VkIGE8YnI+CiZndDsgYmV0dGVyIHNvbHV0aW9uLjxicj4KJmd0OyZu YnNwOyA8YnI+CiZndDsgU2hhaGFyPGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyBQLlMuIEhlcmUg aXMgdGhlIHBhdGNoIHRvIHJlbW92ZSB1c2Ugb2YgdGhpcyBmdW5jdGlvbjo8YnI+CiZndDsgZGlm ZiAtLWdpdCBhL2xpYi9lbnZfZHBkay92dG9waHlzLmMgYi9saWIvZW52X2RwZGsvdnRvcGh5cy5j PGJyPgomZ3Q7IGluZGV4IDkyYWEyNTYuLmYzODkyOWYgMTAwNjQ0PGJyPgomZ3Q7IC0tLSBhL2xp Yi9lbnZfZHBkay92dG9waHlzLmM8YnI+CiZndDsgJiM0MzsmIzQzOyYjNDM7IGIvbGliL2Vudl9k cGRrL3Z0b3BoeXMuYzxicj4KJmd0OyBAQCAtNTMsOCAmIzQzOzUzLDEwIEBAPGJyPgomZ3Q7Jm5i c3A7ICNkZWZpbmUgU1BES19WRklPX0VOQUJMRUQgMTxicj4KJmd0OyZuYnNwOyAjaW5jbHVkZSAm bHQ7bGludXgvdmZpby5oJmd0Ozxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsgJiM0MzsjaWYgMDxi cj4KJmd0OyZuYnNwOyAvKiBJbnRlcm5hbCBEUERLIGZ1bmN0aW9uIGZvcndhcmQgZGVjbGFyYXRp b24gKi88YnI+CiZndDsmbmJzcDsgaW50IHBjaV92ZmlvX2lzX2VuYWJsZWQodm9pZCk7PGJyPgom Z3Q7ICYjNDM7I2VuZGlmPGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyZuYnNwOyBzdHJ1Y3Qgc3Bk a192ZmlvX2RtYV9tYXAgezxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyBzdHJ1Y3QgdmZpb19pb21tdV90eXBlMV9kbWFfbWFwIG1hcDs8YnI+ CiZndDsgQEAgLTM0MSw5ICYjNDM7MzQzLDExIEBAIHNwZGtfdnRvcGh5c19pb21tdV9pbml0KHZv aWQpPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7IERJUiAqZGlyOzxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyBzdHJ1Y3QgZGlyZW50ICpkOzxicj4KJmd0OyZuYnNwOyA8YnI+CiZndDsg JiM0MzsjaWYgMDxicj4KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyBpZiAoIXBjaV92ZmlvX2lzX2VuYWJsZWQoKSkgezxicj4KJmd0OyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm47PGJyPgomZ3Q7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnI+CiZndDsgJiM0Mzsj ZW5kaWY8YnI+CiZndDsmbmJzcDsgPGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGRpciA9IG9wZW5kaXIoJnF1b3Q7L3Byb2Mvc2VsZi9mZCZx dW90Oyk7PGJyPgomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7IGlmICghZGlyKSB7PGJyPgomZ3Q7Jm5ic3A7IDxicj4KJmd0OyZuYnNwOyA8YnI+CiZn dDsgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnI+CiZn dDsgU1BESyBtYWlsaW5nIGxpc3Q8YnI+CiZndDsgPGEgaHJlZj0ibWFpbHRvOlNQREtAbGlzdHMu MDEub3JnIiBpZD0iTFBsbmsyNjY5NDEiIGNsYXNzPSJPV0FBdXRvTGluayIgcHJldmlld3JlbW92 ZWQ9InRydWUiPgpTUERLQGxpc3RzLjAxLm9yZzwvYT48YnI+CiZndDsgPGEgaHJlZj0iaHR0cHM6 Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9zcGRrIiBpZD0iTFBsbms2NjEzNDIiIHBy ZXZpZXdyZW1vdmVkPSJ0cnVlIj4KaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5m by9zcGRrPC9hPjxicj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX188YnI+ClNQREsgbWFpbGluZyBsaXN0PGJyPgo8YSBocmVmPSJtYWlsdG86U1BES0BsaXN0 cy4wMS5vcmciIGlkPSJMUGxuazY4Njc1NCIgY2xhc3M9Ik9XQUF1dG9MaW5rIiBwcmV2aWV3cmVt b3ZlZD0idHJ1ZSI+U1BES0BsaXN0cy4wMS5vcmc8L2E+PGJyPgo8YSBocmVmPSJodHRwczovL2xp c3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3NwZGsiIGlkPSJMUGxuazU4OTI4MSIgcHJldmll d3JlbW92ZWQ9InRydWUiPmh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vc3Bk azwvYT48L3NwYW4+PC9wPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2 Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2JvZHk+CjwvaHRt bD4K --===============8324716325436563920==--