From robert at middleswarth.net Fri Aug 31 00:05:34 2012 Content-Type: multipart/mixed; boundary="===============2998434095360222357==" MIME-Version: 1.0 From: Robert Middleswarth To: users at ovirt.org Subject: Re: [Users] HowTo: Spice ActiveX Plugin/Virt Viewer Console on oVirt 3.1 Date: Fri, 31 Aug 2012 00:05:29 -0400 Message-ID: <50403809.2070907@middleswarth.net> In-Reply-To: CAEWPe=oSyQOap6+gFBnJNA6uzzqOMg3bjyiczi-g41ihTee8vQ@mail.gmail.com --===============2998434095360222357== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable This is a multi-part message in MIME format. --------------030009080304090406070300 Content-Type: text/plain; charset=3DISO-8859-1; format=3Dflowed Content-Transfer-Encoding: 7bit You should be able to create an ID. Once you create it several people = can update your account I am one of them. Thanks Robert On 08/30/2012 11:17 PM, Dead Horse wrote: > I would be happy to wiki'fy it ;) > I have requested a wiki account so I will just need someone to grant = > the proper create/edit page access or create a stub page and allow = > edit access to it. > - DHC > > On Thu, Aug 30, 2012 at 3:03 PM, Douglas Landgraf = > > wrote: > > On 08/30/2012 02:22 AM, Yaniv Kaul wrote: >> Thanks! >> Can you wiki'fy it (@ wiki.ovirt.org ) ? >> Y. > +1 > > Thanks! > >> >> --------------------------------------------------------------------= ---- >> >> I have seen this question asked many times on this list and >> the spice-devel list. Now having figured out how to make it >> work I will provide the answer to the rest of the community. >> >> *NOTE* this only applies to Windows/Internet Explorer users. >> There exists no other option other than the html5 spice >> console (still beta/in development) for windows users ATM. >> This will also only work with Internet Explorer. >> >> Basic Steps: >> - Install an oVirt server. >> - Add at least one node >> - Setup storage/iso/export domains >> >> Advanced steps >> - Start by downloading: http://elmarco.fedorapeople.org/spice.cab >> - Create a directory for it oVirt looks by default in >> /usr/share/spice >> - Rename spice.cab to SpiceX.cab and copy it into >> /usr/share/spice >> - Now edit >> /usr/share/ovirt-engine/engine.ear/root.war/WEB-INF and add >> the following: >> >> >> >> SpiceX.cab >> org.ovirt.engine.core.FileServlet >> >> type >> application/octet-stream >> >> >> file >> /usr/share/spice/SpiceX.cab >> >> >> >> SpiceX.cab >> /spice/SpiceX.cab >> >> >> - Next create an html file within >> /usr/share/ovirt-engine/engine.ear/root.war >> - In the example below an html file called "spice.html" >> - Copy/Paste the below into spice.html: >> >> >> >> >> SPICE Plugin Installer >> >> >> >> >> >>

>>

Spice ActiveX Plugin

>> >>

>> >> >> >> - Save the file >> - You will now need to restart the ovirt-engine service EG: >> systemctl restart ovirt-engine.service OR service >> ovirt-engine restart >> - The installer page will now be available at http://> ovirt server>/spice.html EX: http://ovirt.azeroth.net/spice.html >> - Navigate to that page and click the install button >> - IE will prompt you to deploy/install the SpiceX cabinet file >> - It may gripe about an unsigned or untrusted source, >> acknowledge this an proceed anyways >> - If the install succeeds the text "Spice ActiveX Plugin" on >> the page will change to blank (it's actually the plugin with >> null values) >> - The console button in the user and webadmin portals will >> now launch the new virt-viwer spice based console! >> >> Happy Spice Consoling to your VM's from Windows! >> >> *NOTE* >> To uninstall the plugin: >> - The below removes the add-on from IE (EG: removes knowledge >> of "application/x-spice") >> - pop a command terminal and type: >> On Windows XP: regsvr32 /u "C:\Documents and >> Settings\Administrator\Local Settings\Application >> Data\virt-viewer\bin\SpiceX.dll" >> On Windows 7 regsvr32 /u C:\Documents and >> Settings\Administrator\Local >> Settings\AppData\virt-viewer\bin\SpiceX.dll" >> - Next we need to remove the rest of virt-viewer >> - Go to add/remove programs and uninstall virt-viewer, this >> removes the rest of virt-viewer from the system >> >> _______________________________________________ >> Users mailing list >> Users(a)ovirt.org >> http://lists.ovirt.org/mailman/listinfo/users >> >> >> >> >> _______________________________________________ >> Users mailing list >> Users(a)ovirt.org >> http://lists.ovirt.org/mailman/listinfo/users > > > -- = > Cheers > Douglas > > > > > _______________________________________________ > Users mailing list > Users(a)ovirt.org > http://lists.ovirt.org/mailman/listinfo/users -- = Thanks Robert Middleswarth @rmiddle (twitter/Freenode IRC) @RobertM (OFTC IRC) --------------030009080304090406070300 Content-Type: text/html; charset=3DISO-8859-1 Content-Transfer-Encoding: 7bit
You should be able to create an ID.  Once you create it several people can update your account I am one of them.

Thanks
Robert

On 08/30/2012 11:17 PM, Dead Horse wrote:
I would be happy to wiki'fy it ;)
I have requested a wiki account so I will just need someone to grant the proper create/edit page access or create a stub page and allow edit access to it.
- DHC

On Thu, Aug 30, 2012 at 3:03 PM, Douglas Landgraf <dougsl= and(a)redhat.com> wrote:
On 08/30/2012 02:22 AM, Yaniv Kaul wrote:
Thanks!
Can you wiki'fy it (@ wiki= .ovirt.org) ?
Y.
+1

Thanks!



I have seen this question asked many times on this list and the spice-devel list. Now having figured out how to make it work I will provide the answer to the rest of the community.

*NOTE* this only applies to Windows/Internet Explorer users. There exists no other option other than the html5 spice console (still beta/in development) for windows users ATM. This will also only work with Internet Explorer.

Basic Steps:
- Install an oVirt server.
- Add at least one node
- Setup storage/iso/export domains

Advanced steps
- Start by downloading: http://elmarco.fedorapeople.org= /spice.cab
- Create a directory for it oVirt looks by default in /usr/share/spice
- Rename spice.cab to SpiceX.cab and copy it into /usr/share/spice
- Now edit /usr/share/ovirt-engine/engine.ear/root.war/WEB-INF and add the following:
 
 <!-- SpiceX.cab -->
  <servlet>
    <servlet-name>SpiceX.cab</servlet-name>=
    <servlet-class>org.ovirt.engine.core.FileServlet</servlet-class>= ;
    <init-param>
      <param-name>ty= pe</param-name>
      <param-value>application/octet-stream</par= am-value>
    </init-param>
    <init-param>
      <param-name>fi= le</param-name>
      <param-value>/usr/share/spice/SpiceX.cab</= param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>SpiceX.cab</servlet-name>=
    <url-pattern>/spice/SpiceX.cab</url-patter= n>
  </servlet-mapping>

- Next create an html file within /usr/share/ovirt-engine/engine.ear/root.war
- In the example below an html file called "spice.html"
- Copy/Paste the below into spice.html:

<!DOCTYPE html>
<html>
<head>
<title>SPICE Plugin Installer</title>

<script type=3D"text/javascript">
function installSpice()
{
try {
    document.getElementById('SpiceX'= ).innerHTML =3D '<OBJECT id=3D"SpiceX" codebase=3D"/spice/SpiceX.cab" classid=3D"clsid:ACD6D89C-938D-49B4-8E81-DDBD13F4B4= 8A" width=3D"0" height=3D"0"></OBJECT>';
    } catch (ex) {
        alert("E= pic Fail!: " + ex.Description);
    }
}     
</script>

</head>
<body>
    <p>
    <p><b id=3D'SpiceX'>= Spice ActiveX Plugin</b> </p>
    <button onclick=3D'installSpice()'>Install Spice Plugin</button>
    </p>
</body>
</html>

- Save the file
- You will now need to restart the ovirt-engine service EG: systemctl restart ovirt-engine.service OR service ovirt-engine restart
- The installer page will now be available at http://<url to ovirt server>/spice.html EX: http://ovirt.azeroth.net/spice.= html
- Navigate to that page and click the install button
- IE will prompt you to deploy/install the SpiceX cabinet file
- It may gripe about an unsigned or untrusted source, acknowledge this an proceed anyways
- If the install succeeds the text "Spice ActiveX Plugin" on the page will change to blank (it's actually the plugin with null values)
- The console button in the user and webadmin portals will now launch the new virt-viwer spice based console!

Happy Spice Consoling to your VM's from Windows!

*NOTE*
To uninstall the plugin:
- The below removes the add-on from IE (EG: removes knowledge of "application/x-spice")
- pop a command terminal and type:
On Windows XP: regsvr32 /u "C:\Documents and Settings\Administrator\Local Settings\Application Data\virt-viewer\bin\SpiceX.dll"
On Windows 7 regsvr32 /u C:\Documents and Settings\Administrator\Local Settings\AppData\virt-viewer\bin\SpiceX.dll"
- Next we need to remove the rest of virt-viewer
- Go to add/remove programs and uninstall virt-viewer, this removes the rest of virt-viewer from the system

_______________________________________________
Users mailing list
Users(a)ovirt.org
http://lists.ovirt.org/mailman/= listinfo/users



_______________________________________________
Users mailing list
Users(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/users


-- =

Cheers
Douglas



_______________________________________________
Users mailing list
Use=
rs(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/users


-- =

Thanks
Robert Middleswarth
@rmiddle (twitter/Freenode IRC)
@RobertM (OFTC IRC)
--------------030009080304090406070300-- --===============2998434095360222357== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" VGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4KLS0tLS0tLS0tLS0t LS0wMzAwMDkwODAzMDQwOTA0MDYwNzAzMDAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PUlTTy04ODU5LTE7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzog N2JpdAoKWW91IHNob3VsZCBiZSBhYmxlIHRvIGNyZWF0ZSBhbiBJRC4gT25jZSB5b3UgY3JlYXRl IGl0IHNldmVyYWwgcGVvcGxlIApjYW4gdXBkYXRlIHlvdXIgYWNjb3VudCBJIGFtIG9uZSBvZiB0 aGVtLgoKVGhhbmtzClJvYmVydAoKT24gMDgvMzAvMjAxMiAxMToxNyBQTSwgRGVhZCBIb3JzZSB3 cm90ZToKPiBJIHdvdWxkIGJlIGhhcHB5IHRvIHdpa2knZnkgaXQgOykKPiBJIGhhdmUgcmVxdWVz dGVkIGEgd2lraSBhY2NvdW50IHNvIEkgd2lsbCBqdXN0IG5lZWQgc29tZW9uZSB0byBncmFudCAK PiB0aGUgcHJvcGVyIGNyZWF0ZS9lZGl0IHBhZ2UgYWNjZXNzIG9yIGNyZWF0ZSBhIHN0dWIgcGFn ZSBhbmQgYWxsb3cgCj4gZWRpdCBhY2Nlc3MgdG8gaXQuCj4gLSBESEMKPgo+IE9uIFRodSwgQXVn IDMwLCAyMDEyIGF0IDM6MDMgUE0sIERvdWdsYXMgTGFuZGdyYWYgCj4gPGRvdWdzbGFuZEByZWRo YXQuY29tIDxtYWlsdG86ZG91Z3NsYW5kQHJlZGhhdC5jb20+PiB3cm90ZToKPgo+ICAgICBPbiAw OC8zMC8yMDEyIDAyOjIyIEFNLCBZYW5pdiBLYXVsIHdyb3RlOgo+PiAgICAgVGhhbmtzIQo+PiAg ICAgQ2FuIHlvdSB3aWtpJ2Z5IGl0IChAIHdpa2kub3ZpcnQub3JnIDxodHRwOi8vd2lraS5vdmly dC5vcmc+KSA/Cj4+ICAgICBZLgo+ICAgICArMQo+Cj4gICAgIFRoYW5rcyEKPgo+Pgo+PiAgICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCj4+Cj4+ICAgICAgICAgSSBoYXZlIHNlZW4gdGhpcyBxdWVzdGlvbiBh c2tlZCBtYW55IHRpbWVzIG9uIHRoaXMgbGlzdCBhbmQKPj4gICAgICAgICB0aGUgc3BpY2UtZGV2 ZWwgbGlzdC4gTm93IGhhdmluZyBmaWd1cmVkIG91dCBob3cgdG8gbWFrZSBpdAo+PiAgICAgICAg IHdvcmsgSSB3aWxsIHByb3ZpZGUgdGhlIGFuc3dlciB0byB0aGUgcmVzdCBvZiB0aGUgY29tbXVu aXR5Lgo+Pgo+PiAgICAgICAgICpOT1RFKiB0aGlzIG9ubHkgYXBwbGllcyB0byBXaW5kb3dzL0lu dGVybmV0IEV4cGxvcmVyIHVzZXJzLgo+PiAgICAgICAgIFRoZXJlIGV4aXN0cyBubyBvdGhlciBv cHRpb24gb3RoZXIgdGhhbiB0aGUgaHRtbDUgc3BpY2UKPj4gICAgICAgICBjb25zb2xlIChzdGls bCBiZXRhL2luIGRldmVsb3BtZW50KSBmb3Igd2luZG93cyB1c2VycyBBVE0uCj4+ICAgICAgICAg VGhpcyB3aWxsIGFsc28gb25seSB3b3JrIHdpdGggSW50ZXJuZXQgRXhwbG9yZXIuCj4+Cj4+ICAg ICAgICAgQmFzaWMgU3RlcHM6Cj4+ICAgICAgICAgLSBJbnN0YWxsIGFuIG9WaXJ0IHNlcnZlci4K Pj4gICAgICAgICAtIEFkZCBhdCBsZWFzdCBvbmUgbm9kZQo+PiAgICAgICAgIC0gU2V0dXAgc3Rv cmFnZS9pc28vZXhwb3J0IGRvbWFpbnMKPj4KPj4gICAgICAgICBBZHZhbmNlZCBzdGVwcwo+PiAg ICAgICAgIC0gU3RhcnQgYnkgZG93bmxvYWRpbmc6IGh0dHA6Ly9lbG1hcmNvLmZlZG9yYXBlb3Bs ZS5vcmcvc3BpY2UuY2FiCj4+ICAgICAgICAgLSBDcmVhdGUgYSBkaXJlY3RvcnkgZm9yIGl0IG9W aXJ0IGxvb2tzIGJ5IGRlZmF1bHQgaW4KPj4gICAgICAgICAvdXNyL3NoYXJlL3NwaWNlCj4+ICAg ICAgICAgLSBSZW5hbWUgc3BpY2UuY2FiIHRvIFNwaWNlWC5jYWIgYW5kIGNvcHkgaXQgaW50bwo+ PiAgICAgICAgIC91c3Ivc2hhcmUvc3BpY2UKPj4gICAgICAgICAtIE5vdyBlZGl0Cj4+ICAgICAg ICAgL3Vzci9zaGFyZS9vdmlydC1lbmdpbmUvZW5naW5lLmVhci9yb290Lndhci9XRUItSU5GIGFu ZCBhZGQKPj4gICAgICAgICB0aGUgZm9sbG93aW5nOgo+Pgo+PiAgICAgICAgICA8IS0tIFNwaWNl WC5jYWIgLS0+Cj4+ICAgICAgICAgICA8c2VydmxldD4KPj4gICAgICAgICA8c2VydmxldC1uYW1l PlNwaWNlWC5jYWI8L3NlcnZsZXQtbmFtZT4KPj4gICAgICAgICA8c2VydmxldC1jbGFzcz5vcmcu b3ZpcnQuZW5naW5lLmNvcmUuRmlsZVNlcnZsZXQ8L3NlcnZsZXQtY2xhc3M+Cj4+ICAgICAgICAg ICAgIDxpbml0LXBhcmFtPgo+PiAgICAgICAgICAgICAgIDxwYXJhbS1uYW1lPnR5cGU8L3BhcmFt LW5hbWU+Cj4+ICAgICAgICAgPHBhcmFtLXZhbHVlPmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTwv cGFyYW0tdmFsdWU+Cj4+ICAgICAgICAgICAgIDwvaW5pdC1wYXJhbT4KPj4gICAgICAgICAgICAg PGluaXQtcGFyYW0+Cj4+ICAgICAgICAgICAgICAgPHBhcmFtLW5hbWU+ZmlsZTwvcGFyYW0tbmFt ZT4KPj4gICAgICAgICA8cGFyYW0tdmFsdWU+L3Vzci9zaGFyZS9zcGljZS9TcGljZVguY2FiPC9w YXJhbS12YWx1ZT4KPj4gICAgICAgICAgICAgPC9pbml0LXBhcmFtPgo+PiAgICAgICAgICAgPC9z ZXJ2bGV0Pgo+PiAgICAgICAgICAgPHNlcnZsZXQtbWFwcGluZz4KPj4gICAgICAgICA8c2Vydmxl dC1uYW1lPlNwaWNlWC5jYWI8L3NlcnZsZXQtbmFtZT4KPj4gICAgICAgICA8dXJsLXBhdHRlcm4+ L3NwaWNlL1NwaWNlWC5jYWI8L3VybC1wYXR0ZXJuPgo+PiAgICAgICAgICAgPC9zZXJ2bGV0LW1h cHBpbmc+Cj4+Cj4+ICAgICAgICAgLSBOZXh0IGNyZWF0ZSBhbiBodG1sIGZpbGUgd2l0aGluCj4+ ICAgICAgICAgL3Vzci9zaGFyZS9vdmlydC1lbmdpbmUvZW5naW5lLmVhci9yb290Lndhcgo+PiAg ICAgICAgIC0gSW4gdGhlIGV4YW1wbGUgYmVsb3cgYW4gaHRtbCBmaWxlIGNhbGxlZCAic3BpY2Uu aHRtbCIKPj4gICAgICAgICAtIENvcHkvUGFzdGUgdGhlIGJlbG93IGludG8gc3BpY2UuaHRtbDoK Pj4KPj4gICAgICAgICA8IURPQ1RZUEUgaHRtbD4KPj4gICAgICAgICA8aHRtbD4KPj4gICAgICAg ICA8aGVhZD4KPj4gICAgICAgICA8dGl0bGU+U1BJQ0UgUGx1Z2luIEluc3RhbGxlcjwvdGl0bGU+ Cj4+Cj4+ICAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo+PiAgICAgICAg IGZ1bmN0aW9uIGluc3RhbGxTcGljZSgpCj4+ICAgICAgICAgewo+PiAgICAgICAgIHRyeSB7Cj4+ ICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdTcGljZVgnKS5pbm5lckhUTUwg PSAnPE9CSkVDVAo+PiAgICAgICAgIGlkPSJTcGljZVgiIGNvZGViYXNlPSIvc3BpY2UvU3BpY2VY LmNhYiIKPj4gICAgICAgICBjbGFzc2lkPSJjbHNpZDpBQ0Q2RDg5Qy05MzhELTQ5QjQtOEU4MS1E REJEMTNGNEI0OEEiCj4+ICAgICAgICAgd2lkdGg9IjAiIGhlaWdodD0iMCI+PC9PQkpFQ1Q+JzsK Pj4gICAgICAgICAgICAgfSBjYXRjaCAoZXgpIHsKPj4gICAgICAgICAgICAgICAgIGFsZXJ0KCJF cGljIEZhaWwhOiAiICsgZXguRGVzY3JpcHRpb24pOwo+PiAgICAgICAgICAgICB9Cj4+ICAgICAg ICAgfQo+PiAgICAgICAgIDwvc2NyaXB0Pgo+Pgo+PiAgICAgICAgIDwvaGVhZD4KPj4gICAgICAg ICA8Ym9keT4KPj4gICAgICAgICAgICAgPHA+Cj4+ICAgICAgICAgICAgIDxwPjxiIGlkPSdTcGlj ZVgnPlNwaWNlIEFjdGl2ZVggUGx1Z2luPC9iPiA8L3A+Cj4+ICAgICAgICAgICAgIDxidXR0b24g b25jbGljaz0naW5zdGFsbFNwaWNlKCknPkluc3RhbGwgU3BpY2UKPj4gICAgICAgICBQbHVnaW48 L2J1dHRvbj4KPj4gICAgICAgICAgICAgPC9wPgo+PiAgICAgICAgIDwvYm9keT4KPj4gICAgICAg ICA8L2h0bWw+Cj4+Cj4+ICAgICAgICAgLSBTYXZlIHRoZSBmaWxlCj4+ICAgICAgICAgLSBZb3Ug d2lsbCBub3cgbmVlZCB0byByZXN0YXJ0IHRoZSBvdmlydC1lbmdpbmUgc2VydmljZSBFRzoKPj4g ICAgICAgICBzeXN0ZW1jdGwgcmVzdGFydCBvdmlydC1lbmdpbmUuc2VydmljZSBPUiBzZXJ2aWNl Cj4+ICAgICAgICAgb3ZpcnQtZW5naW5lIHJlc3RhcnQKPj4gICAgICAgICAtIFRoZSBpbnN0YWxs ZXIgcGFnZSB3aWxsIG5vdyBiZSBhdmFpbGFibGUgYXQgaHR0cDovLzx1cmwgdG8KPj4gICAgICAg ICBvdmlydCBzZXJ2ZXI+L3NwaWNlLmh0bWwgRVg6IGh0dHA6Ly9vdmlydC5hemVyb3RoLm5ldC9z cGljZS5odG1sCj4+ICAgICAgICAgLSBOYXZpZ2F0ZSB0byB0aGF0IHBhZ2UgYW5kIGNsaWNrIHRo ZSBpbnN0YWxsIGJ1dHRvbgo+PiAgICAgICAgIC0gSUUgd2lsbCBwcm9tcHQgeW91IHRvIGRlcGxv eS9pbnN0YWxsIHRoZSBTcGljZVggY2FiaW5ldCBmaWxlCj4+ICAgICAgICAgLSBJdCBtYXkgZ3Jp cGUgYWJvdXQgYW4gdW5zaWduZWQgb3IgdW50cnVzdGVkIHNvdXJjZSwKPj4gICAgICAgICBhY2tu b3dsZWRnZSB0aGlzIGFuIHByb2NlZWQgYW55d2F5cwo+PiAgICAgICAgIC0gSWYgdGhlIGluc3Rh bGwgc3VjY2VlZHMgdGhlIHRleHQgIlNwaWNlIEFjdGl2ZVggUGx1Z2luIiBvbgo+PiAgICAgICAg IHRoZSBwYWdlIHdpbGwgY2hhbmdlIHRvIGJsYW5rIChpdCdzIGFjdHVhbGx5IHRoZSBwbHVnaW4g d2l0aAo+PiAgICAgICAgIG51bGwgdmFsdWVzKQo+PiAgICAgICAgIC0gVGhlIGNvbnNvbGUgYnV0 dG9uIGluIHRoZSB1c2VyIGFuZCB3ZWJhZG1pbiBwb3J0YWxzIHdpbGwKPj4gICAgICAgICBub3cg bGF1bmNoIHRoZSBuZXcgdmlydC12aXdlciBzcGljZSBiYXNlZCBjb25zb2xlIQo+Pgo+PiAgICAg ICAgIEhhcHB5IFNwaWNlIENvbnNvbGluZyB0byB5b3VyIFZNJ3MgZnJvbSBXaW5kb3dzIQo+Pgo+ PiAgICAgICAgICpOT1RFKgo+PiAgICAgICAgIFRvIHVuaW5zdGFsbCB0aGUgcGx1Z2luOgo+PiAg ICAgICAgIC0gVGhlIGJlbG93IHJlbW92ZXMgdGhlIGFkZC1vbiBmcm9tIElFIChFRzogcmVtb3Zl cyBrbm93bGVkZ2UKPj4gICAgICAgICBvZiAiYXBwbGljYXRpb24veC1zcGljZSIpCj4+ICAgICAg ICAgLSBwb3AgYSBjb21tYW5kIHRlcm1pbmFsIGFuZCB0eXBlOgo+PiAgICAgICAgIE9uIFdpbmRv d3MgWFA6IHJlZ3N2cjMyIC91ICJDOlxEb2N1bWVudHMgYW5kCj4+ICAgICAgICAgU2V0dGluZ3Nc QWRtaW5pc3RyYXRvclxMb2NhbCBTZXR0aW5nc1xBcHBsaWNhdGlvbgo+PiAgICAgICAgIERhdGFc dmlydC12aWV3ZXJcYmluXFNwaWNlWC5kbGwiCj4+ICAgICAgICAgT24gV2luZG93cyA3IHJlZ3N2 cjMyIC91IEM6XERvY3VtZW50cyBhbmQKPj4gICAgICAgICBTZXR0aW5nc1xBZG1pbmlzdHJhdG9y XExvY2FsCj4+ICAgICAgICAgU2V0dGluZ3NcQXBwRGF0YVx2aXJ0LXZpZXdlclxiaW5cU3BpY2VY LmRsbCIKPj4gICAgICAgICAtIE5leHQgd2UgbmVlZCB0byByZW1vdmUgdGhlIHJlc3Qgb2Ygdmly dC12aWV3ZXIKPj4gICAgICAgICAtIEdvIHRvIGFkZC9yZW1vdmUgcHJvZ3JhbXMgYW5kIHVuaW5z dGFsbCB2aXJ0LXZpZXdlciwgdGhpcwo+PiAgICAgICAgIHJlbW92ZXMgdGhlIHJlc3Qgb2Ygdmly dC12aWV3ZXIgZnJvbSB0aGUgc3lzdGVtCj4+Cj4+ICAgICAgICAgX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gICAgICAgICBVc2VycyBtYWlsaW5nIGxp c3QKPj4gICAgICAgICBVc2Vyc0BvdmlydC5vcmcgPG1haWx0bzpVc2Vyc0BvdmlydC5vcmc+Cj4+ ICAgICAgICAgaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3VzZXJzCj4+ Cj4+Cj4+Cj4+Cj4+ICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+PiAgICAgVXNlcnMgbWFpbGluZyBsaXN0Cj4+ICAgICBVc2Vyc0BvdmlydC5vcmcg IDxtYWlsdG86VXNlcnNAb3ZpcnQub3JnPgo+PiAgICAgaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9t YWlsbWFuL2xpc3RpbmZvL3VzZXJzCj4KPgo+ICAgICAtLSAKPiAgICAgQ2hlZXJzCj4gICAgIERv dWdsYXMKPgo+Cj4KPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCj4gVXNlcnMgbWFpbGluZyBsaXN0Cj4gVXNlcnNAb3ZpcnQub3JnCj4gaHR0cDovL2xp c3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3VzZXJzCgoKLS0gClRoYW5rcwpSb2JlcnQg TWlkZGxlc3dhcnRoCkBybWlkZGxlICh0d2l0dGVyL0ZyZWVub2RlIElSQykKQFJvYmVydE0gKE9G VEMgSVJDKQoKCi0tLS0tLS0tLS0tLS0tMDMwMDA5MDgwMzA0MDkwNDA2MDcwMzAwCkNvbnRlbnQt VHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEKQ29udGVudC1UcmFuc2Zlci1FbmNv ZGluZzogN2JpdAoKPGh0bWw+CiAgPGhlYWQ+CiAgICA8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7 IGNoYXJzZXQ9SVNPLTg4NTktMSIKICAgICAgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIj4KICA8 L2hlYWQ+CiAgPGJvZHkgYmdjb2xvcj0iI0ZGRkZGRiIgdGV4dD0iIzAwMDAwMCI+CiAgICA8ZGl2 IGNsYXNzPSJtb3otY2l0ZS1wcmVmaXgiPllvdSBzaG91bGQgYmUgYWJsZSB0byBjcmVhdGUgYW4g SUQuJm5ic3A7CiAgICAgIE9uY2UgeW91IGNyZWF0ZSBpdCBzZXZlcmFsIHBlb3BsZSBjYW4gdXBk YXRlIHlvdXIgYWNjb3VudCBJIGFtIG9uZQogICAgICBvZiB0aGVtLjxicj4KICAgICAgPGJyPgog ICAgICBUaGFua3M8YnI+CiAgICAgIFJvYmVydDxicj4KICAgICAgPGJyPgogICAgICBPbiAwOC8z MC8yMDEyIDExOjE3IFBNLCBEZWFkIEhvcnNlIHdyb3RlOjxicj4KICAgIDwvZGl2PgogICAgPGJs b2NrcXVvdGUKY2l0ZT0ibWlkOkNBRVdQZT1vU3lRT2FwNitnRkJuSk5BNnV6enFPTWczYmp5aWN6 aS1nNDFpaFRlZTh2UUBtYWlsLmdtYWlsLmNvbSIKICAgICAgdHlwZT0iY2l0ZSI+SSB3b3VsZCBi ZSBoYXBweSB0byB3aWtpJ2Z5IGl0IDspPGJyPgogICAgICBJIGhhdmUgcmVxdWVzdGVkIGEgd2lr aSBhY2NvdW50IHNvIEkgd2lsbCBqdXN0IG5lZWQgc29tZW9uZSB0bwogICAgICBncmFudCB0aGUg cHJvcGVyIGNyZWF0ZS9lZGl0IHBhZ2UgYWNjZXNzIG9yIGNyZWF0ZSBhIHN0dWIgcGFnZSBhbmQK ICAgICAgYWxsb3cgZWRpdCBhY2Nlc3MgdG8gaXQuPGJyPgogICAgICAtIERIQzxicj4KICAgICAg PGJyPgogICAgICA8ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+CiAgICAgICAgT24gVGh1LCBBdWcg MzAsIDIwMTIgYXQgMzowMyBQTSwgRG91Z2xhcyBMYW5kZ3JhZiA8c3BhbgogICAgICAgICAgZGly PSJsdHIiPiZsdDs8YSBtb3otZG8tbm90LXNlbmQ9InRydWUiCiAgICAgICAgICAgIGhyZWY9Im1h aWx0bzpkb3Vnc2xhbmRAcmVkaGF0LmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmRvdWdzbGFuZEByZWRo YXQuY29tPC9hPiZndDs8L3NwYW4+CiAgICAgICAgd3JvdGU6PGJyPgogICAgICAgIDxibG9ja3F1 b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMAogICAgICAgICAgLjhl eDtib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4Ij4KICAgICAgICAg IDxkaXYgYmdjb2xvcj0iI0ZGRkZGRiIgdGV4dD0iIzAwMDAwMCI+CiAgICAgICAgICAgIDxkaXYg Y2xhc3M9ImltIj4gT24gMDgvMzAvMjAxMiAwMjoyMiBBTSwgWWFuaXYgS2F1bCB3cm90ZToKICAg ICAgICAgICAgICA8YmxvY2txdW90ZSB0eXBlPSJjaXRlIj4KICAgICAgICAgICAgICAgIDxkaXYg c3R5bGU9ImZvbnQtc2l6ZToxMnB0O2ZvbnQtZmFtaWx5OnRpbWVzIG5ldwogICAgICAgICAgICAg ICAgICByb21hbixuZXcgeW9yayx0aW1lcyxzZXJpZiI+VGhhbmtzIQogICAgICAgICAgICAgICAg ICA8ZGl2PkNhbiB5b3Ugd2lraSdmeSBpdCAoQCA8YSBtb3otZG8tbm90LXNlbmQ9InRydWUiCiAg ICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwOi8vd2lraS5vdmlydC5vcmciIHRhcmdldD0i X2JsYW5rIj53aWtpLm92aXJ0Lm9yZzwvYT4pCiAgICAgICAgICAgICAgICAgICAgPzwvZGl2Pgog ICAgICAgICAgICAgICAgICA8ZGl2PlkuPGJyPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAg ICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvYmxvY2txdW90ZT4KICAgICAgICAg ICAgPC9kaXY+CiAgICAgICAgICAgICsxPGJyPgogICAgICAgICAgICA8YnI+CiAgICAgICAgICAg IFRoYW5rcyEKICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoNSI+ PGJyPgogICAgICAgICAgICAgICAgPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+CiAgICAgICAgICAg ICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxMnB0O2ZvbnQtZmFtaWx5OnRpbWVzIG5ldwog ICAgICAgICAgICAgICAgICAgIHJvbWFuLG5ldyB5b3JrLHRpbWVzLHNlcmlmIj4KICAgICAgICAg ICAgICAgICAgICA8ZGl2Pjxicj4KICAgICAgICAgICAgICAgICAgICAgIDxocj4KICAgICAgICAg ICAgICAgICAgICAgIDxibG9ja3F1b3RlCiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSJw YWRkaW5nLWxlZnQ6NXB4O2ZvbnQtc2l6ZToxMnB0O2ZvbnQtc3R5bGU6bm9ybWFsO21hcmdpbi1s ZWZ0OjVweDtmb250LWZhbWlseTpIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjt0ZXh0LWRlY29y YXRpb246bm9uZTtmb250LXdlaWdodDpub3JtYWw7Ym9yZGVyLWxlZnQ6MnB4CiAgICAgICAgICAg ICAgICAgICAgICAgIHNvbGlkIHJnYigxNiwxNiwyNTUpIj5JIGhhdmUgc2VlbiB0aGlzIHF1ZXN0 aW9uCiAgICAgICAgICAgICAgICAgICAgICAgIGFza2VkIG1hbnkgdGltZXMgb24gdGhpcyBsaXN0 IGFuZCB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgc3BpY2UtZGV2ZWwgbGlzdC4gTm93IGhh dmluZyBmaWd1cmVkIG91dCBob3cgdG8KICAgICAgICAgICAgICAgICAgICAgICAgbWFrZSBpdCB3 b3JrIEkgd2lsbCBwcm92aWRlIHRoZSBhbnN3ZXIgdG8gdGhlCiAgICAgICAgICAgICAgICAgICAg ICAgIHJlc3Qgb2YgdGhlIGNvbW11bml0eS48YnI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxi cj4KICAgICAgICAgICAgICAgICAgICAgICAgKk5PVEUqIHRoaXMgb25seSBhcHBsaWVzIHRvIFdp bmRvd3MvSW50ZXJuZXQKICAgICAgICAgICAgICAgICAgICAgICAgRXhwbG9yZXIgdXNlcnMuIFRo ZXJlIGV4aXN0cyBubyBvdGhlciBvcHRpb24KICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXIg dGhhbiB0aGUgaHRtbDUgc3BpY2UgY29uc29sZSAoc3RpbGwKICAgICAgICAgICAgICAgICAgICAg ICAgYmV0YS9pbiBkZXZlbG9wbWVudCkgZm9yIHdpbmRvd3MgdXNlcnMgQVRNLiBUaGlzCiAgICAg ICAgICAgICAgICAgICAgICAgIHdpbGwgYWxzbyBvbmx5IHdvcmsgd2l0aCBJbnRlcm5ldCBFeHBs b3Jlci48YnI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgICAgICAg ICAgICAgQmFzaWMgU3RlcHM6PGJyPgogICAgICAgICAgICAgICAgICAgICAgICAtIEluc3RhbGwg YW4gb1ZpcnQgc2VydmVyLjxicj4KICAgICAgICAgICAgICAgICAgICAgICAgLSBBZGQgYXQgbGVh c3Qgb25lIG5vZGU8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgIC0gU2V0dXAgc3RvcmFnZS9p c28vZXhwb3J0IGRvbWFpbnM8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxicj4KICAgICAg ICAgICAgICAgICAgICAgICAgQWR2YW5jZWQgc3RlcHM8YnI+CiAgICAgICAgICAgICAgICAgICAg ICAgIC0gU3RhcnQgYnkgZG93bmxvYWRpbmc6IDxhCiAgICAgICAgICAgICAgICAgICAgICAgICAg bW96LWRvLW5vdC1zZW5kPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0 dHA6Ly9lbG1hcmNvLmZlZG9yYXBlb3BsZS5vcmcvc3BpY2UuY2FiIgogICAgICAgICAgICAgICAg ICAgICAgICAgIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vZWxtYXJjby5mZWRvcmFwZW9wbGUub3Jn L3NwaWNlLmNhYjwvYT48YnI+CiAgICAgICAgICAgICAgICAgICAgICAgIC0gQ3JlYXRlIGEgZGly ZWN0b3J5IGZvciBpdCBvVmlydCBsb29rcyBieQogICAgICAgICAgICAgICAgICAgICAgICBkZWZh dWx0IGluIC91c3Ivc2hhcmUvc3BpY2U8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgIC0gUmVu YW1lIHNwaWNlLmNhYiB0byBTcGljZVguY2FiIGFuZCBjb3B5IGl0CiAgICAgICAgICAgICAgICAg ICAgICAgIGludG8gL3Vzci9zaGFyZS9zcGljZTxicj4KICAgICAgICAgICAgICAgICAgICAgICAg LSBOb3cgZWRpdAogICAgICAgICAgICAgICAgICAgICAgICAvdXNyL3NoYXJlL292aXJ0LWVuZ2lu ZS9lbmdpbmUuZWFyL3Jvb3Qud2FyL1dFQi1JTkYKICAgICAgICAgICAgICAgICAgICAgICAgYW5k IGFkZCB0aGUgZm9sbG93aW5nOjxicj4KICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7PGJy PgogICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbHQ7IS0tIFNwaWNlWC5jYWIgLS0mZ3Q7 PGJyPgogICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsgJmx0O3NlcnZsZXQmZ3Q7PGJyPgog ICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsKICAgICAgICAgICAgICAg ICAgICAgICAgJmx0O3NlcnZsZXQtbmFtZSZndDtTcGljZVguY2FiJmx0Oy9zZXJ2bGV0LW5hbWUm Z3Q7PGJyPgogICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsKJmx0O3Nl cnZsZXQtY2xhc3MmZ3Q7b3JnLm92aXJ0LmVuZ2luZS5jb3JlLkZpbGVTZXJ2bGV0Jmx0Oy9zZXJ2 bGV0LWNsYXNzJmd0Ozxicj4KICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5i c3A7ICZsdDtpbml0LXBhcmFtJmd0Ozxicj4KICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDtwYXJhbS1uYW1lJmd0O3R5cGUmbHQ7L3BhcmFt LW5hbWUmZ3Q7PGJyPgogICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsKICAgICAgICAgICAgICAgICAgICAgICAgJmx0O3BhcmFtLXZhbHVlJmd0O2Fw cGxpY2F0aW9uL29jdGV0LXN0cmVhbSZsdDsvcGFyYW0tdmFsdWUmZ3Q7PGJyPgogICAgICAgICAg ICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsgJmx0Oy9pbml0LXBhcmFtJmd0Ozxicj4K ICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDtpbml0LXBhcmFt Jmd0Ozxicj4KICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7ICZsdDtwYXJhbS1uYW1lJmd0O2ZpbGUmbHQ7L3BhcmFtLW5hbWUmZ3Q7PGJyPgogICAg ICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKICAgICAg ICAgICAgICAgICAgICAgICAgJmx0O3BhcmFtLXZhbHVlJmd0Oy91c3Ivc2hhcmUvc3BpY2UvU3Bp Y2VYLmNhYiZsdDsvcGFyYW0tdmFsdWUmZ3Q7PGJyPgogICAgICAgICAgICAgICAgICAgICAgICAm bmJzcDsmbmJzcDsmbmJzcDsgJmx0Oy9pbml0LXBhcmFtJmd0Ozxicj4KICAgICAgICAgICAgICAg ICAgICAgICAgJm5ic3A7ICZsdDsvc2VydmxldCZndDs8YnI+CiAgICAgICAgICAgICAgICAgICAg ICAgICZuYnNwOyAmbHQ7c2VydmxldC1tYXBwaW5nJmd0Ozxicj4KICAgICAgICAgICAgICAgICAg ICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7CiAgICAgICAgICAgICAgICAgICAgICAgICZsdDtzZXJ2 bGV0LW5hbWUmZ3Q7U3BpY2VYLmNhYiZsdDsvc2VydmxldC1uYW1lJmd0Ozxicj4KICAgICAgICAg ICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7CiAgICAgICAgICAgICAgICAgICAgICAg ICZsdDt1cmwtcGF0dGVybiZndDsvc3BpY2UvU3BpY2VYLmNhYiZsdDsvdXJsLXBhdHRlcm4mZ3Q7 PGJyPgogICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsgJmx0Oy9zZXJ2bGV0LW1hcHBpbmcm Z3Q7PGJyPgogICAgICAgICAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAg ICAgIC0gTmV4dCBjcmVhdGUgYW4gaHRtbCBmaWxlIHdpdGhpbgogICAgICAgICAgICAgICAgICAg ICAgICAvdXNyL3NoYXJlL292aXJ0LWVuZ2luZS9lbmdpbmUuZWFyL3Jvb3Qud2FyPGJyPgogICAg ICAgICAgICAgICAgICAgICAgICAtIEluIHRoZSBleGFtcGxlIGJlbG93IGFuIGh0bWwgZmlsZSBj YWxsZWQKICAgICAgICAgICAgICAgICAgICAgICAgInNwaWNlLmh0bWwiPGJyPgogICAgICAgICAg ICAgICAgICAgICAgICAtIENvcHkvUGFzdGUgdGhlIGJlbG93IGludG8gc3BpY2UuaHRtbDo8YnI+ CiAgICAgICAgICAgICAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgICAgICAgICAgICAgJmx0 OyFET0NUWVBFIGh0bWwmZ3Q7PGJyPgogICAgICAgICAgICAgICAgICAgICAgICAmbHQ7aHRtbCZn dDs8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgICZsdDtoZWFkJmd0Ozxicj4KICAgICAgICAg ICAgICAgICAgICAgICAgJmx0O3RpdGxlJmd0O1NQSUNFIFBsdWdpbgogICAgICAgICAgICAgICAg ICAgICAgICBJbnN0YWxsZXImbHQ7L3RpdGxlJmd0Ozxicj4KICAgICAgICAgICAgICAgICAgICAg ICAgPGJyPgogICAgICAgICAgICAgICAgICAgICAgICAmbHQ7c2NyaXB0IHR5cGU9InRleHQvamF2 YXNjcmlwdCImZ3Q7PGJyPgogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBpbnN0YWxs U3BpY2UoKTxicj4KICAgICAgICAgICAgICAgICAgICAgICAgezxicj4KICAgICAgICAgICAgICAg ICAgICAgICAgdHJ5IHs8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZu YnNwOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnU3BpY2VYJykuaW5uZXJIVE1MCiAgICAgICAg ICAgICAgICAgICAgICAgID0gJyZsdDtPQkpFQ1QgaWQ9IlNwaWNlWCIKICAgICAgICAgICAgICAg ICAgICAgICAgY29kZWJhc2U9Ii9zcGljZS9TcGljZVguY2FiIgogICAgICAgICAgICAgICAgICAg ICAgICBjbGFzc2lkPSJjbHNpZDpBQ0Q2RDg5Qy05MzhELTQ5QjQtOEU4MS1EREJEMTNGNEI0OEEi CiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPSIwIiBoZWlnaHQ9IjAiJmd0OyZsdDsvT0JK RUNUJmd0Oyc7PGJyPgogICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsg fSBjYXRjaCAoZXgpIHs8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBhbGVydCgiRXBpYyBGYWlsITogIiArIGV4LkRl c2NyaXB0aW9uKTs8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNw OyB9PGJyPgogICAgICAgICAgICAgICAgICAgICAgICB9Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7IDxicj4KICAgICAgICAgICAgICAgICAgICAgICAgJmx0Oy9zY3JpcHQmZ3Q7PGJyPgog ICAgICAgICAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgICZsdDsv aGVhZCZndDs8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgICZsdDtib2R5Jmd0Ozxicj4KICAg ICAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDtwJmd0Ozxicj4KICAg ICAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDtwJmd0OyZsdDtiIGlk PSdTcGljZVgnJmd0O1NwaWNlIEFjdGl2ZVgKICAgICAgICAgICAgICAgICAgICAgICAgUGx1Z2lu Jmx0Oy9iJmd0OyAmbHQ7L3AmZ3Q7IDxicj4KICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7 Jm5ic3A7Jm5ic3A7ICZsdDtidXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgb25jbGljaz0n aW5zdGFsbFNwaWNlKCknJmd0O0luc3RhbGwgU3BpY2UKICAgICAgICAgICAgICAgICAgICAgICAg UGx1Z2luJmx0Oy9idXR0b24mZ3Q7PGJyPgogICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsm bmJzcDsmbmJzcDsgJmx0Oy9wJmd0Ozxicj4KICAgICAgICAgICAgICAgICAgICAgICAgJmx0Oy9i b2R5Jmd0Ozxicj4KICAgICAgICAgICAgICAgICAgICAgICAgJmx0Oy9odG1sJmd0Ozxicj4KICAg ICAgICAgICAgICAgICAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgICAgICAgICAtIFNhdmUg dGhlIGZpbGU8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgIC0gWW91IHdpbGwgbm93IG5lZWQg dG8gcmVzdGFydCB0aGUgb3ZpcnQtZW5naW5lCiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZp Y2UgRUc6IHN5c3RlbWN0bCByZXN0YXJ0CiAgICAgICAgICAgICAgICAgICAgICAgIG92aXJ0LWVu Z2luZS5zZXJ2aWNlIE9SIHNlcnZpY2Ugb3ZpcnQtZW5naW5lCiAgICAgICAgICAgICAgICAgICAg ICAgIHJlc3RhcnQ8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgIC0gVGhlIGluc3RhbGxlciBw YWdlIHdpbGwgbm93IGJlIGF2YWlsYWJsZSBhdCA8YQogICAgICAgICAgICAgICAgICAgICAgICAg IG1vei1kby1ub3Qtc2VuZD0idHJ1ZSI+aHR0cDovLzwvYT4mbHQ7dXJsIHRvCiAgICAgICAgICAg ICAgICAgICAgICAgIG92aXJ0IHNlcnZlciZndDsvc3BpY2UuaHRtbCBFWDogPGEKICAgICAgICAg ICAgICAgICAgICAgICAgICBtb3otZG8tbm90LXNlbmQ9InRydWUiCiAgICAgICAgICAgICAgICAg ICAgICAgICAgaHJlZj0iaHR0cDovL292aXJ0LmF6ZXJvdGgubmV0L3NwaWNlLmh0bWwiCiAgICAg ICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly9vdmlydC5hemVyb3Ro Lm5ldC9zcGljZS5odG1sPC9hPjxicj4KICAgICAgICAgICAgICAgICAgICAgICAgLSBOYXZpZ2F0 ZSB0byB0aGF0IHBhZ2UgYW5kIGNsaWNrIHRoZSBpbnN0YWxsCiAgICAgICAgICAgICAgICAgICAg ICAgIGJ1dHRvbjxicj4KICAgICAgICAgICAgICAgICAgICAgICAgLSBJRSB3aWxsIHByb21wdCB5 b3UgdG8gZGVwbG95L2luc3RhbGwgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgIFNwaWNlWCBj YWJpbmV0IGZpbGU8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgIC0gSXQgbWF5IGdyaXBlIGFi b3V0IGFuIHVuc2lnbmVkIG9yIHVudHJ1c3RlZAogICAgICAgICAgICAgICAgICAgICAgICBzb3Vy Y2UsIGFja25vd2xlZGdlIHRoaXMgYW4gcHJvY2VlZCBhbnl3YXlzPGJyPgogICAgICAgICAgICAg ICAgICAgICAgICAtIElmIHRoZSBpbnN0YWxsIHN1Y2NlZWRzIHRoZSB0ZXh0ICJTcGljZQogICAg ICAgICAgICAgICAgICAgICAgICBBY3RpdmVYIFBsdWdpbiIgb24gdGhlIHBhZ2Ugd2lsbCBjaGFu Z2UgdG8gYmxhbmsKICAgICAgICAgICAgICAgICAgICAgICAgKGl0J3MgYWN0dWFsbHkgdGhlIHBs dWdpbiB3aXRoIG51bGwgdmFsdWVzKTxicj4KICAgICAgICAgICAgICAgICAgICAgICAgLSBUaGUg Y29uc29sZSBidXR0b24gaW4gdGhlIHVzZXIgYW5kIHdlYmFkbWluCiAgICAgICAgICAgICAgICAg ICAgICAgIHBvcnRhbHMgd2lsbCBub3cgbGF1bmNoIHRoZSBuZXcgdmlydC12aXdlciBzcGljZQog ICAgICAgICAgICAgICAgICAgICAgICBiYXNlZCBjb25zb2xlITxicj4KICAgICAgICAgICAgICAg ICAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgICAgICAgICBIYXBweSBTcGljZSBDb25zb2xp bmcgdG8geW91ciBWTSdzIGZyb20gV2luZG93cyE8YnI+CiAgICAgICAgICAgICAgICAgICAgICAg IDxicj4KICAgICAgICAgICAgICAgICAgICAgICAgKk5PVEUqPGJyPgogICAgICAgICAgICAgICAg ICAgICAgICBUbyB1bmluc3RhbGwgdGhlIHBsdWdpbjo8YnI+CiAgICAgICAgICAgICAgICAgICAg ICAgIC0gVGhlIGJlbG93IHJlbW92ZXMgdGhlIGFkZC1vbiBmcm9tIElFIChFRzoKICAgICAgICAg ICAgICAgICAgICAgICAgcmVtb3ZlcyBrbm93bGVkZ2Ugb2YgImFwcGxpY2F0aW9uL3gtc3BpY2Ui KTxicj4KICAgICAgICAgICAgICAgICAgICAgICAgLSBwb3AgYSBjb21tYW5kIHRlcm1pbmFsIGFu ZCB0eXBlOjxicj4KICAgICAgICAgICAgICAgICAgICAgICAgT24gV2luZG93cyBYUDogcmVnc3Zy MzIgL3UgIkM6XERvY3VtZW50cyBhbmQKICAgICAgICAgICAgICAgICAgICAgICAgU2V0dGluZ3Nc QWRtaW5pc3RyYXRvclxMb2NhbAogICAgICAgICAgICAgICAgICAgICAgICBTZXR0aW5nc1xBcHBs aWNhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICBEYXRhXHZpcnQtdmlld2VyXGJpblxTcGlj ZVguZGxsIjxicj4KICAgICAgICAgICAgICAgICAgICAgICAgT24gV2luZG93cyA3IHJlZ3N2cjMy IC91IEM6XERvY3VtZW50cyBhbmQKICAgICAgICAgICAgICAgICAgICAgICAgU2V0dGluZ3NcQWRt aW5pc3RyYXRvclxMb2NhbAogICAgICAgICAgICAgICAgICAgICAgICBTZXR0aW5nc1xBcHBEYXRh XHZpcnQtdmlld2VyXGJpblxTcGljZVguZGxsIjxicj4KICAgICAgICAgICAgICAgICAgICAgICAg LSBOZXh0IHdlIG5lZWQgdG8gcmVtb3ZlIHRoZSByZXN0IG9mIHZpcnQtdmlld2VyPGJyPgogICAg ICAgICAgICAgICAgICAgICAgICAtIEdvIHRvIGFkZC9yZW1vdmUgcHJvZ3JhbXMgYW5kIHVuaW5z dGFsbAogICAgICAgICAgICAgICAgICAgICAgICB2aXJ0LXZpZXdlciwgdGhpcyByZW1vdmVzIHRo ZSByZXN0IG9mCiAgICAgICAgICAgICAgICAgICAgICAgIHZpcnQtdmlld2VyIGZyb20gdGhlIHN5 c3RlbTxicj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgICAg ICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzxicj4K ICAgICAgICAgICAgICAgICAgICAgICAgVXNlcnMgbWFpbGluZyBsaXN0PGJyPgogICAgICAgICAg ICAgICAgICAgICAgICA8YSBtb3otZG8tbm90LXNlbmQ9InRydWUiCiAgICAgICAgICAgICAgICAg ICAgICAgICAgaHJlZj0ibWFpbHRvOlVzZXJzQG92aXJ0Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiPlVz ZXJzQG92aXJ0Lm9yZzwvYT48YnI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIG1vei1kby1u b3Qtc2VuZD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwOi8vbGlz dHMub3ZpcnQub3JnL21haWxtYW4vbGlzdGluZm8vdXNlcnMiCiAgICAgICAgICAgICAgICAgICAg ICAgICAgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0 aW5mby91c2VyczwvYT48YnI+CiAgICAgICAgICAgICAgICAgICAgICA8L2Jsb2NrcXVvdGU+CiAg ICAgICAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAg ICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAgICAgICAg ICAgIDxmaWVsZHNldD48L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgICA8YnI+CiAgICAgICAg ICAgICAgICAgIDxwcmU+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KVXNlcnMgbWFpbGluZyBsaXN0CjxhIG1vei1kby1ub3Qtc2VuZD0idHJ1ZSIgaHJlZj0i bWFpbHRvOlVzZXJzQG92aXJ0Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiPlVzZXJzQG92aXJ0Lm9yZzwv YT4KPGEgbW96LWRvLW5vdC1zZW5kPSJ0cnVlIiBocmVmPSJodHRwOi8vbGlzdHMub3ZpcnQub3Jn L21haWxtYW4vbGlzdGluZm8vdXNlcnMiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vbGlzdHMub3Zp cnQub3JnL21haWxtYW4vbGlzdGluZm8vdXNlcnM8L2E+CjwvcHJlPgogICAgICAgICAgICAgICAg PC9ibG9ja3F1b3RlPgogICAgICAgICAgICAgICAgPGJyPgogICAgICAgICAgICAgICAgPGJyPgog ICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHNwYW4g Y2xhc3M9IkhPRW5aYiI+PGZvbnQgY29sb3I9IiM4ODg4ODgiPgogICAgICAgICAgICAgICAgPHBy ZSBjb2xzPSI3MiI+LS0gCkNoZWVycwpEb3VnbGFzPC9wcmU+CiAgICAgICAgICAgICAgPC9mb250 Pjwvc3Bhbj48L2Rpdj4KICAgICAgICA8L2Jsb2NrcXVvdGU+CiAgICAgIDwvZGl2PgogICAgICA8 YnI+CiAgICAgIDxicj4KICAgICAgPGZpZWxkc2V0IGNsYXNzPSJtaW1lQXR0YWNobWVudEhlYWRl ciI+PC9maWVsZHNldD4KICAgICAgPGJyPgogICAgICA8cHJlIHdyYXA9IiI+X19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KVXNlcnMgbWFpbGluZyBsaXN0Cjxh IGNsYXNzPSJtb3otdHh0LWxpbmstYWJicmV2aWF0ZWQiIGhyZWY9Im1haWx0bzpVc2Vyc0Bvdmly dC5vcmciPlVzZXJzQG92aXJ0Lm9yZzwvYT4KPGEgY2xhc3M9Im1vei10eHQtbGluay1mcmVldGV4 dCIgaHJlZj0iaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3VzZXJzIj5o dHRwOi8vbGlzdHMub3ZpcnQub3JnL21haWxtYW4vbGlzdGluZm8vdXNlcnM8L2E+CjwvcHJlPgog ICAgPC9ibG9ja3F1b3RlPgogICAgPGJyPgogICAgPGJyPgogICAgPHByZSBjbGFzcz0ibW96LXNp Z25hdHVyZSIgY29scz0iNzIiPi0tIApUaGFua3MKUm9iZXJ0IE1pZGRsZXN3YXJ0aApAcm1pZGRs ZSAodHdpdHRlci9GcmVlbm9kZSBJUkMpCkBSb2JlcnRNIChPRlRDIElSQykKPC9wcmU+CiAgPC9i b2R5Pgo8L2h0bWw+CgotLS0tLS0tLS0tLS0tLTAzMDAwOTA4MDMwNDA5MDQwNjA3MDMwMC0tCg== --===============2998434095360222357==--