<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>51790</bug_id>
          
          <creation_ts>2011-01-01 05:11:02 -0800</creation_ts>
          <short_desc>[WinCairo] Patch to download the WinCairo dependencies as part of build-webkit.</short_desc>
          <delta_ts>2011-04-12 15:59:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 2000</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carl Lobo">carllobo</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>aroben</cc>
    
    <cc>bfulgham</cc>
    
    <cc>carllobo</cc>
    
    <cc>dbates</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>328267</commentid>
    <comment_count>0</comment_count>
    <who name="Carl Lobo">carllobo</who>
    <bug_when>2011-01-01 05:11:02 -0800</bug_when>
    <thetext>Patch to download the WinCairo dependancies as part of build-webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328269</commentid>
    <comment_count>1</comment_count>
      <attachid>77741</attachid>
    <who name="Carl Lobo">carllobo</who>
    <bug_when>2011-01-01 05:14:28 -0800</bug_when>
    <thetext>Created attachment 77741
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328270</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-01 05:16:30 -0800</bug_when>
    <thetext>Attachment 77741 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/Scripts/build-webkit&apos;, u&apos;Tools/Scripts/update-webkit-cairo-libs&apos;, u&apos;Tools/Scripts/webkitdirs.pm&apos;]&quot; exit_code: 1
Tools/ChangeLog:10:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328272</commentid>
    <comment_count>3</comment_count>
      <attachid>77742</attachid>
    <who name="Carl Lobo">carllobo</who>
    <bug_when>2011-01-01 05:33:32 -0800</bug_when>
    <thetext>Created attachment 77742
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328903</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-01-03 23:44:14 -0800</bug_when>
    <thetext>Bleh.  i can&apos;t read perl anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328911</commentid>
    <comment_count>5</comment_count>
      <attachid>77742</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-01-04 00:28:13 -0800</bug_when>
    <thetext>Comment on attachment 77742
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=77742&amp;action=review

&gt; Tools/Scripts/build-webkit:449
&gt; +    if(isWinCairo()) {

Nit: There should be a space between the &quot;if&quot; and &apos;(&apos;.

&gt; Tools/Scripts/update-webkit-cairo-libs:29
&gt; +# Updates a development environment to the new Cairo Requirements.

This makes me sad. This entire file is almost identical to the script Tools/Scripts/update-webkit-auxiliary-libs. Can we extract the common functionality?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328912</commentid>
    <comment_count>6</comment_count>
      <attachid>77742</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-01-04 00:32:36 -0800</bug_when>
    <thetext>Comment on attachment 77742
Patch

copy-paste is not cool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328965</commentid>
    <comment_count>7</comment_count>
      <attachid>77881</attachid>
    <who name="Carl Lobo">carllobo</who>
    <bug_when>2011-01-04 05:26:47 -0800</bug_when>
    <thetext>Created attachment 77881
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328966</commentid>
    <comment_count>8</comment_count>
    <who name="Carl Lobo">carllobo</who>
    <bug_when>2011-01-04 05:30:36 -0800</bug_when>
    <thetext>I reworked it without the copy-paste (my apologies again for that). I&apos;ve intentionally left the update-webkit-auxillary-libs and update-webkit-cairo-libs as:
1. It would be a more intuitive place to look if the URL or filename changes.
2. Leaves the option to download from more than one source - specific at least to cairo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328973</commentid>
    <comment_count>9</comment_count>
    <who name="Carl Lobo">carllobo</who>
    <bug_when>2011-01-04 06:08:23 -0800</bug_when>
    <thetext>Need to fix this properly...

review=-</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329432</commentid>
    <comment_count>10</comment_count>
      <attachid>77970</attachid>
    <who name="Carl Lobo">carllobo</who>
    <bug_when>2011-01-04 22:51:10 -0800</bug_when>
    <thetext>Created attachment 77970
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329433</commentid>
    <comment_count>11</comment_count>
    <who name="Carl Lobo">carllobo</who>
    <bug_when>2011-01-04 22:52:30 -0800</bug_when>
    <thetext>Properly tested out and refractored. Hope this meets the guidelines. Sorry about all the spam.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383016</commentid>
    <comment_count>12</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2011-04-10 20:55:41 -0700</bug_when>
    <thetext>Hey!  I should be on this one. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383018</commentid>
    <comment_count>13</comment_count>
      <attachid>77970</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2011-04-10 21:06:50 -0700</bug_when>
    <thetext>Comment on attachment 77970
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=77970&amp;action=review

This looks like a really great change -- thanks for working on it!  I have a few comments below that I hope you will consider.  I&apos;m sorry I didn&apos;t see this patch earlier. Please feel free to cc me on any WinCairo changes in the future.

&gt; Tools/ChangeLog:11
&gt; +

If we are going to do this (and I hope we do!), we should probably land this on a more &apos;official&apos; location than my private .Mac account.

&gt; Tools/Scripts/build-webkit:454
&gt; +    }

General comment:  It seems like build-webkit and friends should have a variable for the Scripts location.  We&apos;ve changed this once, and all of this hardcoded pathing seems pretty fragile.

&gt; Tools/Scripts/update-webkit-cairo-libs:4
&gt; +#

You should have yourself here.  I&apos;m not sure you need to include Apple for this one-line implementation.

&gt; Tools/Scripts/update-webkit-dependancy:1
&gt; +#!/usr/bin/perl -w

General note:  It would be helpful if you could show this file as being &apos;moved&apos; from &apos;Tools/Scripts/update-webkit-auxiliary-libs&apos; to this new file.  (e.g., &quot;svn cp Tools/Scripts/update-webkit-auxiliary-libs Tools/Scripts/update-webkit-dependancy&apos;.  Then modify the new (copied) file to show the deletion of the unused stuff, and the small additional changes you made.  That way, we could see (easily) if any of the loading logic below is different.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383140</commentid>
    <comment_count>14</comment_count>
      <attachid>77970</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-11 06:28:32 -0700</bug_when>
    <thetext>Comment on attachment 77970
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=77970&amp;action=review

&gt; Tools/ChangeLog:16
&gt; +        * Tools/Scripts/update-webkit-dependancy: added

Typo: dependancy should be dependency</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384320</commentid>
    <comment_count>15</comment_count>
      <attachid>89265</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2011-04-12 13:37:47 -0700</bug_when>
    <thetext>Created attachment 89265
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384323</commentid>
    <comment_count>16</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2011-04-12 13:43:12 -0700</bug_when>
    <thetext>I updated (hijacked?) this patch to work a little bit better.  Thanks so much for working on this -- this will be a huge help to anyone interested in working on the WinCairo port.

1. update-webkit needed to know how to get these files (not just build-webkit).
2. I updated my &apos;requirements.zip&apos; file on the server to be called &quot;WinCairoRequirements.zip&quot;, and landed a current WinCairoRequirements.header file so it will work like the Apple stuff when I update it.
3. I purged items in the WinCairoRequirements.zip that duplicated stuff in the &quot;WebKitAuxilliaryLibraries.zip&quot;.  The WinCairo stuff is basically an add-on to the regular Apple stuff.

After making these changes I was able to successfully update and install the WinCairo requirements using the script changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384327</commentid>
    <comment_count>17</comment_count>
      <attachid>89265</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-12 13:48:00 -0700</bug_when>
    <thetext>Comment on attachment 89265
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=89265&amp;action=review

&gt; Tools/Scripts/update-webkit-auxiliary-libs:38
&gt; +system(&quot;perl&quot;, &quot;Tools/Scripts/update-webkit-dependency&quot;, $auxiliaryLibsURL, &quot;win&quot;) == 0 or die;

Are you sure that the working directory is always the same when this script is invoked? Using $FindBin::Bin to locate the other script might be safer.

&gt; Tools/Scripts/update-webkit-dependency:150
&gt; +sub getLibraryName

Please give this function a prototype (like lastModifiedToUnixTime has).

&gt; Tools/Scripts/update-webkit-dependency:157
&gt; +  my $path = shift;
&gt; +  my $filename;
&gt; +  my $i = rindex($path, &quot;/&quot;);
&gt; +  $filename = substr($path, $i + 1);
&gt; +  $filename = substr($filename, 0, rindex($filename, &quot;.zip&quot;));
&gt; +  return $filename;

Please use 4-space indents.

I think a regular expression might be clearer:

$path =~ m#/([^/])\.zip$#;
return $1;

&gt; Tools/Scripts/update-webkit-wincairo-libs:38
&gt; +system(&quot;perl&quot;, &quot;Tools/Scripts/update-webkit-dependency&quot;, $winCairoLibsURL, &quot;.&quot;) == 0 or die;

Same comments here about working directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384364</commentid>
    <comment_count>18</comment_count>
      <attachid>89269</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2011-04-12 14:15:50 -0700</bug_when>
    <thetext>Created attachment 89269
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384366</commentid>
    <comment_count>19</comment_count>
      <attachid>89265</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2011-04-12 14:16:21 -0700</bug_when>
    <thetext>Comment on attachment 89265
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=89265&amp;action=review

&gt;&gt; Tools/Scripts/update-webkit-auxiliary-libs:38
&gt;&gt; +system(&quot;perl&quot;, &quot;Tools/Scripts/update-webkit-dependency&quot;, $auxiliaryLibsURL, &quot;win&quot;) == 0 or die;
&gt; 
&gt; Are you sure that the working directory is always the same when this script is invoked? Using $FindBin::Bin to locate the other script might be safer.

Cool!  I didn&apos;t know about this utility.

&gt;&gt; Tools/Scripts/update-webkit-dependency:157
&gt;&gt; +  return $filename;
&gt; 
&gt; Please use 4-space indents.
&gt; 
&gt; I think a regular expression might be clearer:
&gt; 
&gt; $path =~ m#/([^/])\.zip$#;
&gt; return $1;

I ended up using File::Spec, because I couldn&apos;t figure out the syntax for getting the full file name (for some reason your suggestion kept returning &apos;&apos; on my system.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384370</commentid>
    <comment_count>20</comment_count>
      <attachid>89269</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-12 14:19:01 -0700</bug_when>
    <thetext>Comment on attachment 89269
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=89269&amp;action=review

&gt; Tools/Scripts/build-webkit:512
&gt; +    if(isWinCairo()) {

Missing space after &quot;if&quot;.

&gt; Tools/Scripts/update-webkit-dependency:56
&gt; +sub getLibraryName;

You should add the prototype here, too.

&gt; Tools/Scripts/update-webkit-dependency:154
&gt; +    my $path = shift;
&gt; +    my ($volume, $directory, $file) = File::Spec-&gt;splitpath($path);

Hm, splitpath doesn&apos;t seem right, since $path is really a URL. You should rename $path to $url, and use the regex solution I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384372</commentid>
    <comment_count>21</comment_count>
      <attachid>89265</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-12 14:19:51 -0700</bug_when>
    <thetext>Comment on attachment 89265
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=89265&amp;action=review

&gt;&gt;&gt; Tools/Scripts/update-webkit-dependency:157
&gt;&gt;&gt; +  return $filename;
&gt;&gt; 
&gt;&gt; Please use 4-space indents.
&gt;&gt; 
&gt;&gt; I think a regular expression might be clearer:
&gt;&gt; 
&gt;&gt; $path =~ m#/([^/])\.zip$#;
&gt;&gt; return $1;
&gt; 
&gt; I ended up using File::Spec, because I couldn&apos;t figure out the syntax for getting the full file name (for some reason your suggestion kept returning &apos;&apos; on my system.)

That&apos;s because I forgot a +:

$path =~ m#/([^/]+)\.zip$#;
return $1;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384374</commentid>
    <comment_count>22</comment_count>
      <attachid>89265</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2011-04-12 14:23:46 -0700</bug_when>
    <thetext>Comment on attachment 89265
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=89265&amp;action=review

&gt;&gt;&gt;&gt; Tools/Scripts/update-webkit-dependency:157
&gt;&gt;&gt;&gt; +  return $filename;
&gt;&gt;&gt; 
&gt;&gt;&gt; Please use 4-space indents.
&gt;&gt;&gt; 
&gt;&gt;&gt; I think a regular expression might be clearer:
&gt;&gt;&gt; 
&gt;&gt;&gt; $path =~ m#/([^/])\.zip$#;
&gt;&gt;&gt; return $1;
&gt;&gt; 
&gt;&gt; I ended up using File::Spec, because I couldn&apos;t figure out the syntax for getting the full file name (for some reason your suggestion kept returning &apos;&apos; on my system.)
&gt; 
&gt; That&apos;s because I forgot a +:
&gt; 
&gt; $path =~ m#/([^/]+)\.zip$#;
&gt; return $1;

Oh yeah!  I was putting the &apos;+&apos; outside the capture parens, so I was only getting the last letter.  Doh!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384385</commentid>
    <comment_count>23</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2011-04-12 14:29:06 -0700</bug_when>
    <thetext>Committed r83639: &lt;http://trac.webkit.org/changeset/83639&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384458</commentid>
    <comment_count>24</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2011-04-12 15:59:46 -0700</bug_when>
    <thetext>Corrected typo in build-webkit:

Committed r83657: &lt;http://trac.webkit.org/changeset/83657&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77741</attachid>
            <date>2011-01-01 05:14:28 -0800</date>
            <delta_ts>2011-01-01 05:33:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51790-20110101184552.patch</filename>
            <type>text/plain</type>
            <size>8802</size>
            <attacher name="Carl Lobo">carllobo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0YjAx
N2JlYzdhNTQ2ODMyODNjNDYwZGM1NzI4MGM2ZTFiN2RmN2FlLi5hZTA1YjY1NjIwMWU3YmUzZGU3
ZjJhZGRiZGZjYTFjMzM5NWUyMjI0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDEtMDEgIENhcmwgTG9ibyAg
PGNhcmxsb2JvQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBQYXRjaCB0byBkb3dubG9hZCB0aGUgV2luQ2Fpcm8gZGVwZW5kYW5jaWVz
IGFzIHBhcnQgb2YgYnVpbGQtd2Via2l0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTE3OTAKKworICAgICAgICBUaGlzIHBhdGNoIGRvd25sb2FkcyB0
aGUgZGVwZW5kYW5jaWVzIGZyb20gaHR0cDovL2lkaXNrLm1hYy5jb20vYmZ1bGdoYW0tUHVibGlj
L3JlcXVpcmVtZW50cy56aXAgY2hlY2tpbmcgdGhlIG1vZGlmaWNhdGlvbiB0aW1lc3RhbXAgZXRj
LiBUaGUgZGVwZW5kYW5jaWVzIHNob3cgdXAgYXMgdW50cmFja2VkIGZpbGVzIGFuZCBzb21lIG9m
IHRoZSB3ZWJraXQgc3VwcG9ydCBsaWJyYXJ5IGlzIHByb2JhYmx5IG92ZXJ3cml0dGVuLgorIAor
CSogU2NyaXB0cy9idWlsZC13ZWJraXQ6CisgICAgICAgICogU2NyaXB0cy91cGRhdGUtd2Via2l0
LWNhaXJvLWxpYnM6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0ZGlycy5wbToKKwog
MjAxMC0xMi0zMCAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgS2lsemVyLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy9idWlsZC13ZWJraXQgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAppbmRleCBmMmFkMjcy
MDJhMjMzODYzMjJmZWRkMDEyMGNlM2YyYzA0Mjc4NDBkLi4wOWE2N2RhNDFkN2FmZWI5MDM2OTli
YmRlMjlkODQ4NjY4NGQ2YmU1IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtp
dAorKysgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdApAQCAtNDQ1LDYgKzQ0NSwxMCBAQCBp
ZiAoaXNHdGsoKSkgewogICAgICMgQ29weSBXZWJLaXRTdXBwb3J0TGlicmFyeSB0byB0aGUgY29y
cmVjdCBsb2NhdGlvbiBpbiBXZWJLaXRMaWJyYXJpZXMgc28gaXQgY2FuIGJlIGZvdW5kLgogICAg
ICMgV2lsbCBmYWlsIGlmIFdlYktpdFN1cHBvcnRMaWJyYXJ5LnppcCBpcyBub3QgaW4gc291cmNl
IHJvb3QuCiAgICAgKHN5c3RlbSgicGVybCBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtc3Vw
cG9ydC1saWJzIikgPT0gMCkgb3IgZGllOworICAgICMgVXBkYXRlIENhaXJvIERlcGVuZGFuY2ll
cy4KKyAgICBpZihpc1dpbkNhaXJvKCkpIHsKKyAgICAgICAgKHN5c3RlbSgicGVybCBUb29scy9T
Y3JpcHRzL3VwZGF0ZS13ZWJraXQtY2Fpcm8tbGlicyIpID09IDApIG9yIGRpZTsKKyAgICB9CiB9
IGVsc2lmIChpc1F0KCkpIHsKICAgICBAb3B0aW9ucyA9IEBBUkdWOwogICAgIHB1c2ggQG9wdGlv
bnMsICItLWluc3RhbGwtaGVhZGVycz0iIC4gJGluc3RhbGxIZWFkZXJzIGlmIGRlZmluZWQoJGlu
c3RhbGxIZWFkZXJzKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1j
YWlyby1saWJzIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWNhaXJvLWxpYnMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uN2I1YzM1ZmQ5MTU2M2ZlYTNiNmYzYzdmZTE5MjI1Yzk2ZWI1ZmNhMQotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1jYWlyby1saWJzCkBAIC0wLDAg
KzEsMTM0IEBACisjIS91c3IvYmluL3BlcmwgLXcKKworIyBDb3B5cmlnaHQgKEMpIDIwMDUsIDIw
MDYsIDIwMDcgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMKKyMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuIAorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uIAorIyAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgorIyAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorIyAgICAgZnJvbSB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisj
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyMgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCisjIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgVXBkYXRlcyBhIGRldmVsb3BtZW50IGVudmlyb25t
ZW50IHRvIHRoZSBuZXcgQ2Fpcm8gUmVxdWlyZW1lbnRzLgorCit1c2Ugc3RyaWN0OwordXNlIHdh
cm5pbmdzOworCit1c2UgRmlsZTo6RmluZDsKK3VzZSBGaWxlOjpTcGVjOwordXNlIEZpbGU6OlRl
bXAgKCk7Cit1c2UgRmluZEJpbjsKK3VzZSBIVFRQOjpEYXRlIHF3KHN0cjJ0aW1lKTsKK3VzZSBQ
T1NJWDsKK3VzZSBsaWIgJEZpbmRCaW46OkJpbjsKK3VzZSB3ZWJraXRkaXJzOworCitzdWIgbGFz
dE1vZGlmaWVkVG9Vbml4VGltZSgkKTsKKworIyBUaW1lIGluIHNlY29uZHMgdGhhdCB0aGUgbmV3
IHppcCBmaWxlIG11c3QgYmUgbmV3ZXIgdGhhbiB0aGUgb2xkIGZvciB1cyB0bworIyBjb25zaWRl
ciB0aGVtIHRvIGJlIGRpZmZlcmVudC4gSWYgdGhlIGRpZmZlcmVuY2UgaW4gbW9kaWZpY2F0aW9u
IHRpbWUgaXMgbGVzcworIyB0aGFuIHRoaXMgdGhyZXNob2xkLCB3ZSBhc3N1bWUgdGhhdCB0aGUg
ZmlsZXMgYXJlIHRoZSBzYW1lLiBXZSBuZWVkIHRoaXMKKyMgYmVjYXVzZSB0aGUgemlwIGZpbGUg
aXMgc2VydmVkIGZyb20gYSBzZXQgb2YgbWlycm9ycyB3aXRoIHNsaWdodGx5IGRpZmZlcmVudAor
IyBMYXN0LU1vZGlmaWVkIHRpbWVzLgorbXkgJG5ld25lc3NUaHJlc2hvbGQgPSAzMDsKKworbXkg
JHNvdXJjZURpciA9IHNvdXJjZURpcigpOworbXkgJGZpbGUgPSAicmVxdWlyZW1lbnRzIjsKK215
ICR6aXBGaWxlID0gIiRmaWxlLnppcCI7IAorbXkgJGNhaXJvTGlic1VSTCA9ICJodHRwOi8vaWRp
c2subWFjLmNvbS9iZnVsZ2hhbS1QdWJsaWMvJHppcEZpbGUiOworbXkgJHdlYmtpdExpYnJhcmll
c0RpciA9IHRvVW5peFBhdGgoJEVOVnsnV0VCS0lUTElCUkFSSUVTRElSJ30pIHx8ICIkc291cmNl
RGlyL1dlYktpdExpYnJhcmllcy93aW4iOworbXkgJHRtcERpciA9IEZpbGU6OlNwZWMtPnJlbDJh
YnMoRmlsZTo6VGVtcDo6dGVtcGRpcigid2Via2l0bGlic1hYWFhYWFgiLCBUTVBESVIgPT4gMSwg
Q0xFQU5VUCA9PiAxKSk7CisKK3ByaW50ICJDaGVja2luZyBMYXN0LU1vZGlmaWVkIGRhdGUgb2Yg
JHppcEZpbGUuLi5cbiI7CisKK215ICRyZXN1bHQgPSBzeXN0ZW0gImN1cmwgLXMgLUkgJGNhaXJv
TGlic1VSTCB8IGdyZXAgTGFzdC1Nb2RpZmllZCA+IFwiJHRtcERpci8kZmlsZS5oZWFkZXJzXCIi
OworCitpZiAoV0VYSVRTVEFUVVMoJHJlc3VsdCkpIHsKKyAgICBwcmludCBTVERFUlIgIkNvdWxk
bid0IGNoZWNrIExhc3QtTW9kaWZpZWQgZGF0ZSBvZiBuZXcgJHppcEZpbGUuXG4iOworICAgIHBy
aW50IFNUREVSUiAiUGxlYXNlIGVuc3VyZSB0aGF0ICRjYWlyb0xpYnNVUkwgaXMgcmVhY2hhYmxl
LlxuIjsKKworICAgIGlmICghIC1mICIkd2Via2l0TGlicmFyaWVzRGlyLyRmaWxlLmhlYWRlcnMi
KSB7CisgICAgICAgIHByaW50IFNUREVSUiAiVW5hYmxlIHRvIGNoZWNrIExhc3QtTW9kaWZpZWQg
ZGF0ZSBhbmQgbm8gdmVyc2lvbiBvZiAkZmlsZSB0byBmYWxsIGJhY2sgdG8uXG4iOworICAgICAg
ICBleGl0IDE7CisgICAgfQorCisgICAgcHJpbnQgU1RERVJSICJGYWxsaW5nIGJhY2sgdG8gZXhp
c3RpbmcgdmVyc2lvbiBvZiAkZmlsZS5cbiI7CisgICAgZXhpdCAwOworfQorCitpZiAob3BlbiBO
RVcsICIkdG1wRGlyLyRmaWxlLmhlYWRlcnMiKSB7CisgICAgbXkgJG5ldyA9IGxhc3RNb2RpZmll
ZFRvVW5peFRpbWUoPE5FVz4pOworICAgIGNsb3NlIE5FVzsKKworICAgIGlmIChkZWZpbmVkICRu
ZXcgJiYgb3BlbiBPTEQsICIkd2Via2l0TGlicmFyaWVzRGlyLyRmaWxlLmhlYWRlcnMiKSB7Cisg
ICAgICAgIG15ICRvbGQgPSBsYXN0TW9kaWZpZWRUb1VuaXhUaW1lKDxPTEQ+KTsKKyAgICAgICAg
Y2xvc2UgT0xEOworICAgICAgICBpZiAoZGVmaW5lZCAkb2xkICYmIGFicygkbmV3IC0gJG9sZCkg
PCAkbmV3bmVzc1RocmVzaG9sZCkgeworICAgICAgICAgICAgcHJpbnQgIkN1cnJlbnQgJGZpbGUg
aXMgdXAgdG8gZGF0ZVxuIjsKKyAgICAgICAgICAgIGV4aXQgMDsKKyAgICAgICAgfQorICAgIH0K
K30KKworcHJpbnQgIkRvd25sb2FkaW5nICR6aXBGaWxlLi4uXG5cbiI7CiskcmVzdWx0ID0gc3lz
dGVtICJjdXJsIC1vIFwiJHRtcERpci8kemlwRmlsZVwiICRjYWlyb0xpYnNVUkwiOworZGllICJD
b3VsZG4ndCBkb3dubG9hZCAkemlwRmlsZSEiIGlmICRyZXN1bHQ7CisKKyRyZXN1bHQgPSBzeXN0
ZW0gInVuemlwIiwgIi1xIiwgIi1kIiwgJHRtcERpciwgIiR0bXBEaXIvJHppcEZpbGUiOworZGll
ICJDb3VsZG4ndCB1bnppcCAkemlwRmlsZS4iIGlmICRyZXN1bHQ7CisKK3ByaW50ICJcbkluc3Rh
bGxpbmcgJGZpbGUuLi5cbiI7CisKK3N1YiB3YW50ZWQKK3sKKyAgICBteSAkcmVsYXRpdmVOYW1l
ID0gRmlsZTo6U3BlYy0+YWJzMnJlbCgkRmlsZTo6RmluZDo6bmFtZSwgIiR0bXBEaXIvJGZpbGUi
KTsKKyAgICBteSAkZGVzdGluYXRpb24gPSAiJHdlYmtpdExpYnJhcmllc0Rpci8kcmVsYXRpdmVO
YW1lIjsKKworICAgIGlmICgtZCAkXykgeworICAgICAgICBta2RpciAkZGVzdGluYXRpb247Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzeXN0ZW0gImNwIiwgJF8sICRkZXN0aW5hdGlv
bjsKK30KKworRmlsZTo6RmluZDo6ZmluZChcJndhbnRlZCwgIiR0bXBEaXIvJGZpbGUiKTsKKwor
JHJlc3VsdCA9IHN5c3RlbSAibXYiLCAiJHRtcERpci8kZmlsZS5oZWFkZXJzIiwgJHdlYmtpdExp
YnJhcmllc0RpcjsKK3ByaW50IFNUREVSUiAiQ291bGRuJ3QgbW92ZSAkZmlsZS5oZWFkZXJzIHRv
ICR3ZWJraXRMaWJyYXJpZXNEaXIiIC4gIi5cbiIgaWYgJHJlc3VsdDsKKworcHJpbnQgIlRoZSAk
ZmlsZSBoYXMgYmVlbiBzdWNlc3NmdWxseSBpbnN0YWxsZWQgaW5cbiAkd2Via2l0TGlicmFyaWVz
RGlyXG4iOworZXhpdDsKKworc3ViIHRvVW5peFBhdGgKK3sKKyAgICBteSAkcGF0aCA9IHNoaWZ0
OworICAgIHJldHVybiB1bmxlc3MgJHBhdGg7CisgICAgY2hvbXAoJHBhdGggPSBgY3lncGF0aCAt
dSAnJHBhdGgnYCk7CisgICAgcmV0dXJuICRwYXRoOworfQorCitzdWIgbGFzdE1vZGlmaWVkVG9V
bml4VGltZSgkKQoreworICAgIG15ICgkc3RyKSA9IEBfOworCisgICAgJHN0ciA9fiAvXkxhc3Qt
TW9kaWZpZWQ6ICguKikkLyBvciByZXR1cm47CisgICAgcmV0dXJuIHN0cjJ0aW1lKCQxKTsKK30K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0ZGlycy5wbQppbmRleCA2MGEzZjkwMTA2OWExZDhiMjBkMjYyYjA5YmJhMmRlMGQ0MzY5
OTI5Li5hMzIxN2M4NTU3MzNkZjQ3ZmJmYjkzMjA3MjU1YTA4NTM3NDkzMjkxIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRk
aXJzLnBtCkBAIC02Nyw2ICs2Nyw3IEBAIG15ICRpc1d4OwogbXkgJGlzRWZsOwogbXkgQHd4QXJn
czsKIG15ICRpc0Nocm9taXVtOworbXkgJGlzQ2Fpcm87CiBteSAkaXNJbnNwZWN0b3JGcm9udGVu
ZDsKIAogIyBWYXJpYWJsZXMgZm9yIFdpbjMyIHN1cHBvcnQKQEAgLTQxNSwyNiArNDE2LDI0IEBA
IHN1YiBkZXRlcm1pbmVQYXNzZWRDb25maWd1cmF0aW9uCiAgICAgcmV0dXJuIGlmICRzZWFyY2hl
ZEZvclBhc3NlZENvbmZpZ3VyYXRpb247CiAgICAgJHNlYXJjaGVkRm9yUGFzc2VkQ29uZmlndXJh
dGlvbiA9IDE7CiAKLSAgICBteSAkaXNXaW5DYWlybyA9IGNoZWNrRm9yQXJndW1lbnRBbmRSZW1v
dmVGcm9tQVJHVigiLS13aW5jYWlybyIpOwotCiAgICAgZm9yIG15ICRpICgwIC4uICQjQVJHVikg
ewogICAgICAgICBteSAkb3B0ID0gJEFSR1ZbJGldOwogICAgICAgICBpZiAoJG9wdCA9fiAvXi0t
ZGVidWckL2kgfHwgJG9wdCA9fiAvXi0tZGV2ZWwvaSkgewogICAgICAgICAgICAgc3BsaWNlKEBB
UkdWLCAkaSwgMSk7CiAgICAgICAgICAgICAkcGFzc2VkQ29uZmlndXJhdGlvbiA9ICJEZWJ1ZyI7
Ci0gICAgICAgICAgICAkcGFzc2VkQ29uZmlndXJhdGlvbiAuPSAiX0NhaXJvX0NGTGl0ZSIgaWYg
KCRpc1dpbkNhaXJvICYmIGlzQ3lnd2luKCkpOworICAgICAgICAgICAgJHBhc3NlZENvbmZpZ3Vy
YXRpb24gLj0gIl9DYWlyb19DRkxpdGUiIGlmIChpc1dpbkNhaXJvKCkgJiYgaXNDeWd3aW4oKSk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKCRvcHQgPX4gL14t
LXJlbGVhc2UkL2kgfHwgJG9wdCA9fiAvXi0tZGVwbG95L2kpIHsKICAgICAgICAgICAgIHNwbGlj
ZShAQVJHViwgJGksIDEpOwogICAgICAgICAgICAgJHBhc3NlZENvbmZpZ3VyYXRpb24gPSAiUmVs
ZWFzZSI7Ci0gICAgICAgICAgICAkcGFzc2VkQ29uZmlndXJhdGlvbiAuPSAiX0NhaXJvX0NGTGl0
ZSIgaWYgKCRpc1dpbkNhaXJvICYmIGlzQ3lnd2luKCkpOworICAgICAgICAgICAgJHBhc3NlZENv
bmZpZ3VyYXRpb24gLj0gIl9DYWlyb19DRkxpdGUiIGlmIChpc1dpbkNhaXJvKCkgJiYgaXNDeWd3
aW4oKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKCRvcHQg
PX4gL14tLXByb2ZpbChlfGluZykkL2kpIHsKICAgICAgICAgICAgIHNwbGljZShAQVJHViwgJGks
IDEpOwogICAgICAgICAgICAgJHBhc3NlZENvbmZpZ3VyYXRpb24gPSAiUHJvZmlsaW5nIjsKLSAg
ICAgICAgICAgICRwYXNzZWRDb25maWd1cmF0aW9uIC49ICJfQ2Fpcm9fQ0ZMaXRlIiBpZiAoJGlz
V2luQ2Fpcm8gJiYgaXNDeWd3aW4oKSk7CisgICAgICAgICAgICAkcGFzc2VkQ29uZmlndXJhdGlv
biAuPSAiX0NhaXJvX0NGTGl0ZSIgaWYgKGlzV2luQ2Fpcm8oKSAmJiBpc0N5Z3dpbigpKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTgxNCw2ICs4MTMsMTkgQEAg
c3ViIGRldGVybWluZUlzQ2hyb21pdW0oKQogICAgICRpc0Nocm9taXVtID0gY2hlY2tGb3JBcmd1
bWVudEFuZFJlbW92ZUZyb21BUkdWKCItLWNocm9taXVtIik7CiB9CiAKK3N1YiBpc1dpbkNhaXJv
KCkKK3sKKyAgICBkZXRlcm1pbmVJc1dpbkNhaXJvKCk7CisgICAgcmV0dXJuICRpc0NhaXJvOwor
fQorCitzdWIgZGV0ZXJtaW5lSXNXaW5DYWlybygpCit7CisgICAgcmV0dXJuIGlmIGRlZmluZWQo
JGlzQ2Fpcm8pOworICAgICRpc0NhaXJvID0gY2hlY2tGb3JBcmd1bWVudEFuZFJlbW92ZUZyb21B
UkdWKCItLXdpbmNhaXJvIik7Cit9CisKKwogc3ViIGlzQ3lnd2luKCkKIHsKICAgICByZXR1cm4g
KCReTyBlcSAiY3lnd2luIikgfHwgMDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77742</attachid>
            <date>2011-01-01 05:33:32 -0800</date>
            <delta_ts>2011-01-04 05:26:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51790-20110101190456.patch</filename>
            <type>text/plain</type>
            <size>8849</size>
            <attacher name="Carl Lobo">carllobo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0YjAx
N2JlYzdhNTQ2ODMyODNjNDYwZGM1NzI4MGM2ZTFiN2RmN2FlLi4wYjg5OTRhYjM4YjgzN2QwNGVm
YWNiNmJiYTI0NmIxOWU4MjdhMTI0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDEtMDEgIENhcmwgTG9ibyAg
PGNhcmxsb2JvQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBQYXRjaCB0byBkb3dubG9hZCB0aGUgV2luQ2Fpcm8gZGVwZW5kYW5jaWVz
IGFzIHBhcnQgb2YgYnVpbGQtd2Via2l0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTE3OTAKKworICAgICAgICBUaGlzIHBhdGNoIGRvd25sb2FkcyB0
aGUgZGVwZW5kYW5jaWVzIGZyb20gCisgICAgICAgICAgICAgICAgIGh0dHA6Ly9pZGlzay5tYWMu
Y29tL2JmdWxnaGFtLVB1YmxpYy9yZXF1aXJlbWVudHMuemlwIAorICAgICAgICBjaGVja2luZyB0
aGUgbW9kaWZpY2F0aW9uIHRpbWVzdGFtcCBldGMuIAorCisgICAgICAgIFRoZSBkZXBlbmRhbmNp
ZXMgc2hvdyB1cCBhcyB1bnRyYWNrZWQgZmlsZXMgYW5kIHNvbWUgb2YgdGhlIHdlYmtpdCBzdXBw
b3J0IGxpYnJhcnkgaXMgcHJvYmFibHkgb3ZlcndyaXR0ZW4uCisKKyAgICAgICAgKiBTY3JpcHRz
L2J1aWxkLXdlYmtpdDoKKyAgICAgICAgKiBTY3JpcHRzL3VwZGF0ZS13ZWJraXQtY2Fpcm8tbGli
czogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRkaXJzLnBtOgorCiAyMDEwLTEyLTMw
ICBLb25zdGFudGluIFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYXZpZCBLaWx6ZXIuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2J1aWxkLXdl
YmtpdCBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CmluZGV4IGYyYWQyNzIwMmEyMzM4NjMy
MmZlZGQwMTIwY2UzZjJjMDQyNzg0MGQuLjA5YTY3ZGE0MWQ3YWZlYjkwMzY5OWJiZGUyOWQ4NDg2
Njg0ZDZiZTUgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CisrKyBiL1Rv
b2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CkBAIC00NDUsNiArNDQ1LDEwIEBAIGlmIChpc0d0aygp
KSB7CiAgICAgIyBDb3B5IFdlYktpdFN1cHBvcnRMaWJyYXJ5IHRvIHRoZSBjb3JyZWN0IGxvY2F0
aW9uIGluIFdlYktpdExpYnJhcmllcyBzbyBpdCBjYW4gYmUgZm91bmQuCiAgICAgIyBXaWxsIGZh
aWwgaWYgV2ViS2l0U3VwcG9ydExpYnJhcnkuemlwIGlzIG5vdCBpbiBzb3VyY2Ugcm9vdC4KICAg
ICAoc3lzdGVtKCJwZXJsIFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1zdXBwb3J0LWxpYnMi
KSA9PSAwKSBvciBkaWU7CisgICAgIyBVcGRhdGUgQ2Fpcm8gRGVwZW5kYW5jaWVzLgorICAgIGlm
KGlzV2luQ2Fpcm8oKSkgeworICAgICAgICAoc3lzdGVtKCJwZXJsIFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmtpdC1jYWlyby1saWJzIikgPT0gMCkgb3IgZGllOworICAgIH0KIH0gZWxzaWYgKGlz
UXQoKSkgewogICAgIEBvcHRpb25zID0gQEFSR1Y7CiAgICAgcHVzaCBAb3B0aW9ucywgIi0taW5z
dGFsbC1oZWFkZXJzPSIgLiAkaW5zdGFsbEhlYWRlcnMgaWYgZGVmaW5lZCgkaW5zdGFsbEhlYWRl
cnMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWNhaXJvLWxpYnMg
Yi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtY2Fpcm8tbGlicwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjVj
MzVmZDkxNTYzZmVhM2I2ZjNjN2ZlMTkyMjVjOTZlYjVmY2ExCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWNhaXJvLWxpYnMKQEAgLTAsMCArMSwxMzQgQEAK
KyMhL3Vzci9iaW4vcGVybCAtdworCisjIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNyBB
cHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIworIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisj
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisjIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3Ig
dGhlIG5hbWVzIG9mCisjICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisjICAgICBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAorIyBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyMgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworIyBVcGRhdGVzIGEgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgdG8gdGhl
IG5ldyBDYWlybyBSZXF1aXJlbWVudHMuCisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7CisK
K3VzZSBGaWxlOjpGaW5kOwordXNlIEZpbGU6OlNwZWM7Cit1c2UgRmlsZTo6VGVtcCAoKTsKK3Vz
ZSBGaW5kQmluOwordXNlIEhUVFA6OkRhdGUgcXcoc3RyMnRpbWUpOwordXNlIFBPU0lYOwordXNl
IGxpYiAkRmluZEJpbjo6QmluOwordXNlIHdlYmtpdGRpcnM7CisKK3N1YiBsYXN0TW9kaWZpZWRU
b1VuaXhUaW1lKCQpOworCisjIFRpbWUgaW4gc2Vjb25kcyB0aGF0IHRoZSBuZXcgemlwIGZpbGUg
bXVzdCBiZSBuZXdlciB0aGFuIHRoZSBvbGQgZm9yIHVzIHRvCisjIGNvbnNpZGVyIHRoZW0gdG8g
YmUgZGlmZmVyZW50LiBJZiB0aGUgZGlmZmVyZW5jZSBpbiBtb2RpZmljYXRpb24gdGltZSBpcyBs
ZXNzCisjIHRoYW4gdGhpcyB0aHJlc2hvbGQsIHdlIGFzc3VtZSB0aGF0IHRoZSBmaWxlcyBhcmUg
dGhlIHNhbWUuIFdlIG5lZWQgdGhpcworIyBiZWNhdXNlIHRoZSB6aXAgZmlsZSBpcyBzZXJ2ZWQg
ZnJvbSBhIHNldCBvZiBtaXJyb3JzIHdpdGggc2xpZ2h0bHkgZGlmZmVyZW50CisjIExhc3QtTW9k
aWZpZWQgdGltZXMuCitteSAkbmV3bmVzc1RocmVzaG9sZCA9IDMwOworCitteSAkc291cmNlRGly
ID0gc291cmNlRGlyKCk7CitteSAkZmlsZSA9ICJyZXF1aXJlbWVudHMiOworbXkgJHppcEZpbGUg
PSAiJGZpbGUuemlwIjsgCitteSAkY2Fpcm9MaWJzVVJMID0gImh0dHA6Ly9pZGlzay5tYWMuY29t
L2JmdWxnaGFtLVB1YmxpYy8kemlwRmlsZSI7CitteSAkd2Via2l0TGlicmFyaWVzRGlyID0gdG9V
bml4UGF0aCgkRU5WeydXRUJLSVRMSUJSQVJJRVNESVInfSkgfHwgIiRzb3VyY2VEaXIvV2ViS2l0
TGlicmFyaWVzL3dpbiI7CitteSAkdG1wRGlyID0gRmlsZTo6U3BlYy0+cmVsMmFicyhGaWxlOjpU
ZW1wOjp0ZW1wZGlyKCJ3ZWJraXRsaWJzWFhYWFhYWCIsIFRNUERJUiA9PiAxLCBDTEVBTlVQID0+
IDEpKTsKKworcHJpbnQgIkNoZWNraW5nIExhc3QtTW9kaWZpZWQgZGF0ZSBvZiAkemlwRmlsZS4u
LlxuIjsKKworbXkgJHJlc3VsdCA9IHN5c3RlbSAiY3VybCAtcyAtSSAkY2Fpcm9MaWJzVVJMIHwg
Z3JlcCBMYXN0LU1vZGlmaWVkID4gXCIkdG1wRGlyLyRmaWxlLmhlYWRlcnNcIiI7CisKK2lmIChX
RVhJVFNUQVRVUygkcmVzdWx0KSkgeworICAgIHByaW50IFNUREVSUiAiQ291bGRuJ3QgY2hlY2sg
TGFzdC1Nb2RpZmllZCBkYXRlIG9mIG5ldyAkemlwRmlsZS5cbiI7CisgICAgcHJpbnQgU1RERVJS
ICJQbGVhc2UgZW5zdXJlIHRoYXQgJGNhaXJvTGlic1VSTCBpcyByZWFjaGFibGUuXG4iOworCisg
ICAgaWYgKCEgLWYgIiR3ZWJraXRMaWJyYXJpZXNEaXIvJGZpbGUuaGVhZGVycyIpIHsKKyAgICAg
ICAgcHJpbnQgU1RERVJSICJVbmFibGUgdG8gY2hlY2sgTGFzdC1Nb2RpZmllZCBkYXRlIGFuZCBu
byB2ZXJzaW9uIG9mICRmaWxlIHRvIGZhbGwgYmFjayB0by5cbiI7CisgICAgICAgIGV4aXQgMTsK
KyAgICB9CisKKyAgICBwcmludCBTVERFUlIgIkZhbGxpbmcgYmFjayB0byBleGlzdGluZyB2ZXJz
aW9uIG9mICRmaWxlLlxuIjsKKyAgICBleGl0IDA7Cit9CisKK2lmIChvcGVuIE5FVywgIiR0bXBE
aXIvJGZpbGUuaGVhZGVycyIpIHsKKyAgICBteSAkbmV3ID0gbGFzdE1vZGlmaWVkVG9Vbml4VGlt
ZSg8TkVXPik7CisgICAgY2xvc2UgTkVXOworCisgICAgaWYgKGRlZmluZWQgJG5ldyAmJiBvcGVu
IE9MRCwgIiR3ZWJraXRMaWJyYXJpZXNEaXIvJGZpbGUuaGVhZGVycyIpIHsKKyAgICAgICAgbXkg
JG9sZCA9IGxhc3RNb2RpZmllZFRvVW5peFRpbWUoPE9MRD4pOworICAgICAgICBjbG9zZSBPTEQ7
CisgICAgICAgIGlmIChkZWZpbmVkICRvbGQgJiYgYWJzKCRuZXcgLSAkb2xkKSA8ICRuZXduZXNz
VGhyZXNob2xkKSB7CisgICAgICAgICAgICBwcmludCAiQ3VycmVudCAkZmlsZSBpcyB1cCB0byBk
YXRlXG4iOworICAgICAgICAgICAgZXhpdCAwOworICAgICAgICB9CisgICAgfQorfQorCitwcmlu
dCAiRG93bmxvYWRpbmcgJHppcEZpbGUuLi5cblxuIjsKKyRyZXN1bHQgPSBzeXN0ZW0gImN1cmwg
LW8gXCIkdG1wRGlyLyR6aXBGaWxlXCIgJGNhaXJvTGlic1VSTCI7CitkaWUgIkNvdWxkbid0IGRv
d25sb2FkICR6aXBGaWxlISIgaWYgJHJlc3VsdDsKKworJHJlc3VsdCA9IHN5c3RlbSAidW56aXAi
LCAiLXEiLCAiLWQiLCAkdG1wRGlyLCAiJHRtcERpci8kemlwRmlsZSI7CitkaWUgIkNvdWxkbid0
IHVuemlwICR6aXBGaWxlLiIgaWYgJHJlc3VsdDsKKworcHJpbnQgIlxuSW5zdGFsbGluZyAkZmls
ZS4uLlxuIjsKKworc3ViIHdhbnRlZAoreworICAgIG15ICRyZWxhdGl2ZU5hbWUgPSBGaWxlOjpT
cGVjLT5hYnMycmVsKCRGaWxlOjpGaW5kOjpuYW1lLCAiJHRtcERpci8kZmlsZSIpOworICAgIG15
ICRkZXN0aW5hdGlvbiA9ICIkd2Via2l0TGlicmFyaWVzRGlyLyRyZWxhdGl2ZU5hbWUiOworCisg
ICAgaWYgKC1kICRfKSB7CisgICAgICAgIG1rZGlyICRkZXN0aW5hdGlvbjsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIHN5c3RlbSAiY3AiLCAkXywgJGRlc3RpbmF0aW9uOworfQorCitG
aWxlOjpGaW5kOjpmaW5kKFwmd2FudGVkLCAiJHRtcERpci8kZmlsZSIpOworCiskcmVzdWx0ID0g
c3lzdGVtICJtdiIsICIkdG1wRGlyLyRmaWxlLmhlYWRlcnMiLCAkd2Via2l0TGlicmFyaWVzRGly
OworcHJpbnQgU1RERVJSICJDb3VsZG4ndCBtb3ZlICRmaWxlLmhlYWRlcnMgdG8gJHdlYmtpdExp
YnJhcmllc0RpciIgLiAiLlxuIiBpZiAkcmVzdWx0OworCitwcmludCAiVGhlICRmaWxlIGhhcyBi
ZWVuIHN1Y2Vzc2Z1bGx5IGluc3RhbGxlZCBpblxuICR3ZWJraXRMaWJyYXJpZXNEaXJcbiI7Citl
eGl0OworCitzdWIgdG9Vbml4UGF0aAoreworICAgIG15ICRwYXRoID0gc2hpZnQ7CisgICAgcmV0
dXJuIHVubGVzcyAkcGF0aDsKKyAgICBjaG9tcCgkcGF0aCA9IGBjeWdwYXRoIC11ICckcGF0aCdg
KTsKKyAgICByZXR1cm4gJHBhdGg7Cit9CisKK3N1YiBsYXN0TW9kaWZpZWRUb1VuaXhUaW1lKCQp
Cit7CisgICAgbXkgKCRzdHIpID0gQF87CisKKyAgICAkc3RyID1+IC9eTGFzdC1Nb2RpZmllZDog
KC4qKSQvIG9yIHJldHVybjsKKyAgICByZXR1cm4gc3RyMnRpbWUoJDEpOworfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJz
LnBtCmluZGV4IDYwYTNmOTAxMDY5YTFkOGIyMGQyNjJiMDliYmEyZGUwZDQzNjk5MjkuLmEzMjE3
Yzg1NTczM2RmNDdmYmZiOTMyMDcyNTVhMDg1Mzc0OTMyOTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0ZGlycy5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KQEAg
LTY3LDYgKzY3LDcgQEAgbXkgJGlzV3g7CiBteSAkaXNFZmw7CiBteSBAd3hBcmdzOwogbXkgJGlz
Q2hyb21pdW07CitteSAkaXNDYWlybzsKIG15ICRpc0luc3BlY3RvckZyb250ZW5kOwogCiAjIFZh
cmlhYmxlcyBmb3IgV2luMzIgc3VwcG9ydApAQCAtNDE1LDI2ICs0MTYsMjQgQEAgc3ViIGRldGVy
bWluZVBhc3NlZENvbmZpZ3VyYXRpb24KICAgICByZXR1cm4gaWYgJHNlYXJjaGVkRm9yUGFzc2Vk
Q29uZmlndXJhdGlvbjsKICAgICAkc2VhcmNoZWRGb3JQYXNzZWRDb25maWd1cmF0aW9uID0gMTsK
IAotICAgIG15ICRpc1dpbkNhaXJvID0gY2hlY2tGb3JBcmd1bWVudEFuZFJlbW92ZUZyb21BUkdW
KCItLXdpbmNhaXJvIik7Ci0KICAgICBmb3IgbXkgJGkgKDAgLi4gJCNBUkdWKSB7CiAgICAgICAg
IG15ICRvcHQgPSAkQVJHVlskaV07CiAgICAgICAgIGlmICgkb3B0ID1+IC9eLS1kZWJ1ZyQvaSB8
fCAkb3B0ID1+IC9eLS1kZXZlbC9pKSB7CiAgICAgICAgICAgICBzcGxpY2UoQEFSR1YsICRpLCAx
KTsKICAgICAgICAgICAgICRwYXNzZWRDb25maWd1cmF0aW9uID0gIkRlYnVnIjsKLSAgICAgICAg
ICAgICRwYXNzZWRDb25maWd1cmF0aW9uIC49ICJfQ2Fpcm9fQ0ZMaXRlIiBpZiAoJGlzV2luQ2Fp
cm8gJiYgaXNDeWd3aW4oKSk7CisgICAgICAgICAgICAkcGFzc2VkQ29uZmlndXJhdGlvbiAuPSAi
X0NhaXJvX0NGTGl0ZSIgaWYgKGlzV2luQ2Fpcm8oKSAmJiBpc0N5Z3dpbigpKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAoJG9wdCA9fiAvXi0tcmVsZWFzZSQv
aSB8fCAkb3B0ID1+IC9eLS1kZXBsb3kvaSkgewogICAgICAgICAgICAgc3BsaWNlKEBBUkdWLCAk
aSwgMSk7CiAgICAgICAgICAgICAkcGFzc2VkQ29uZmlndXJhdGlvbiA9ICJSZWxlYXNlIjsKLSAg
ICAgICAgICAgICRwYXNzZWRDb25maWd1cmF0aW9uIC49ICJfQ2Fpcm9fQ0ZMaXRlIiBpZiAoJGlz
V2luQ2Fpcm8gJiYgaXNDeWd3aW4oKSk7CisgICAgICAgICAgICAkcGFzc2VkQ29uZmlndXJhdGlv
biAuPSAiX0NhaXJvX0NGTGl0ZSIgaWYgKGlzV2luQ2Fpcm8oKSAmJiBpc0N5Z3dpbigpKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAoJG9wdCA9fiAvXi0tcHJv
ZmlsKGV8aW5nKSQvaSkgewogICAgICAgICAgICAgc3BsaWNlKEBBUkdWLCAkaSwgMSk7CiAgICAg
ICAgICAgICAkcGFzc2VkQ29uZmlndXJhdGlvbiA9ICJQcm9maWxpbmciOwotICAgICAgICAgICAg
JHBhc3NlZENvbmZpZ3VyYXRpb24gLj0gIl9DYWlyb19DRkxpdGUiIGlmICgkaXNXaW5DYWlybyAm
JiBpc0N5Z3dpbigpKTsKKyAgICAgICAgICAgICRwYXNzZWRDb25maWd1cmF0aW9uIC49ICJfQ2Fp
cm9fQ0ZMaXRlIiBpZiAoaXNXaW5DYWlybygpICYmIGlzQ3lnd2luKCkpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAgICAgfQpAQCAtODE0LDYgKzgxMywxOSBAQCBzdWIgZGV0ZXJt
aW5lSXNDaHJvbWl1bSgpCiAgICAgJGlzQ2hyb21pdW0gPSBjaGVja0ZvckFyZ3VtZW50QW5kUmVt
b3ZlRnJvbUFSR1YoIi0tY2hyb21pdW0iKTsKIH0KIAorc3ViIGlzV2luQ2Fpcm8oKQoreworICAg
IGRldGVybWluZUlzV2luQ2Fpcm8oKTsKKyAgICByZXR1cm4gJGlzQ2Fpcm87Cit9CisKK3N1YiBk
ZXRlcm1pbmVJc1dpbkNhaXJvKCkKK3sKKyAgICByZXR1cm4gaWYgZGVmaW5lZCgkaXNDYWlybyk7
CisgICAgJGlzQ2Fpcm8gPSBjaGVja0ZvckFyZ3VtZW50QW5kUmVtb3ZlRnJvbUFSR1YoIi0td2lu
Y2Fpcm8iKTsKK30KKworCiBzdWIgaXNDeWd3aW4oKQogewogICAgIHJldHVybiAoJF5PIGVxICJj
eWd3aW4iKSB8fCAwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77881</attachid>
            <date>2011-01-04 05:26:47 -0800</date>
            <delta_ts>2011-01-04 22:51:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51790-20110104185814.patch</filename>
            <type>text/plain</type>
            <size>14862</size>
            <attacher name="Carl Lobo">carllobo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5MDA5
NmIwMzI2ZDEyNzZmOThjYmQ0N2EzNGE5YzI1ODI4YTAzODI3Li41NTcxOThhN2YwZTg5NjJkOTQx
OWQyMzc5MzRiYjAyNzI0YzY4ODNlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDEtMDQgIENhcmwgTG9ibyAg
PGNhcmxsb2JvQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBQYXRjaCB0byBkb3dubG9hZCB0aGUgV2luQ2Fpcm8gZGVwZW5kYW5jaWVz
IGFzIHBhcnQgb2YgYnVpbGQtd2Via2l0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTE3OTAKKworICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0
OgorICAgICAgICAqIFNjcmlwdHMvdXBkYXRlLXdlYmtpdC1hdXhpbGlhcnktbGliczoKKyAgICAg
ICAgKiBTY3JpcHRzL3VwZGF0ZS13ZWJraXQtY2Fpcm8tbGliczogQWRkZWQuCisgICAgICAgICog
U2NyaXB0cy91cGRhdGUtd2Via2l0LWRlcGVuZGFuY3k6IENvcGllZCBmcm9tIFRvb2xzL1Njcmlw
dHMvdXBkYXRlLXdlYmtpdC1hdXhpbGlhcnktbGlicy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dGRpcnMucG06CisKIDIwMTEtMDEtMDMgIFlpIFNoZW4gIDx5aS40LnNoZW5Abm9raWEuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL2J1aWxkLXdlYmtpdCBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CmluZGV4IDY1NzFk
ZjdjZTlmMzQ2MjNkZTdkNGE2MjI2MGVkYTJjZTY0MTAzMGUuLmVjMjcyNzIyMzc1N2M0YjkyNzky
MzZjZGVkNzhiZGFiMDU2OWM5M2MgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Vi
a2l0CisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CkBAIC00NDgsNiArNDQ4LDEwIEBA
IGlmIChpc0d0aygpKSB7CiAgICAgIyBDb3B5IFdlYktpdFN1cHBvcnRMaWJyYXJ5IHRvIHRoZSBj
b3JyZWN0IGxvY2F0aW9uIGluIFdlYktpdExpYnJhcmllcyBzbyBpdCBjYW4gYmUgZm91bmQuCiAg
ICAgIyBXaWxsIGZhaWwgaWYgV2ViS2l0U3VwcG9ydExpYnJhcnkuemlwIGlzIG5vdCBpbiBzb3Vy
Y2Ugcm9vdC4KICAgICAoc3lzdGVtKCJwZXJsIFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1z
dXBwb3J0LWxpYnMiKSA9PSAwKSBvciBkaWU7CisgICAgIyBVcGRhdGUgQ2Fpcm8gRGVwZW5kYW5j
aWVzLgorICAgIGlmIChpc1dpbkNhaXJvKCkpIHsKKyAgICAgICAgKHN5c3RlbSgicGVybCBUb29s
cy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtY2Fpcm8tbGlicyIpID09IDApIG9yIGRpZTsKKyAgICB9
CiB9IGVsc2lmIChpc1F0KCkpIHsKICAgICBAb3B0aW9ucyA9IEBBUkdWOwogICAgIHB1c2ggQG9w
dGlvbnMsICItLWluc3RhbGwtaGVhZGVycz0iIC4gJGluc3RhbGxIZWFkZXJzIGlmIGRlZmluZWQo
JGluc3RhbGxIZWFkZXJzKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtp
dC1hdXhpbGlhcnktbGlicyBiL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1hdXhpbGlhcnkt
bGlicwppbmRleCAxOWU0YWQzOTJiMTY2NTAyNjg0ZTAzNzQ3OTgyZmNjYTA5NzBkMGI5Li4wM2E4
ZWQ4NjIxMmJkMWRiY2M5MTUxYTIzMTQ1OTQ5ZTk2YTYwYTg1IDEwMDc1NQotLS0gYS9Ub29scy9T
Y3JpcHRzL3VwZGF0ZS13ZWJraXQtYXV4aWxpYXJ5LWxpYnMKKysrIGIvVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2Via2l0LWF1eGlsaWFyeS1saWJzCkBAIC0yOCwxMDcgKzI4LDYgQEAKIAogIyBVcGRh
dGVzIGEgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgdG8gdGhlIG5ldyBXZWJLaXRBdXhpbGlhcnlM
aWJyYXJ5CiAKLXVzZSBzdHJpY3Q7Ci11c2Ugd2FybmluZ3M7CitteSAkYXV4aWxhcnlMaWJzVVJM
ID0gImh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL29wZW5zb3VyY2UvaW50ZXJuZXQvV2ViS2l0
QXV4aWxpYXJ5TGlicmFyeS56aXAiOwogCi11c2UgRmlsZTo6RmluZDsKLXVzZSBGaWxlOjpTcGVj
OwotdXNlIEZpbGU6OlRlbXAgKCk7Ci11c2UgRmluZEJpbjsKLXVzZSBIVFRQOjpEYXRlIHF3KHN0
cjJ0aW1lKTsKLXVzZSBQT1NJWDsKLXVzZSBsaWIgJEZpbmRCaW46OkJpbjsKLXVzZSB3ZWJraXRk
aXJzOwotCi1zdWIgbGFzdE1vZGlmaWVkVG9Vbml4VGltZSgkKTsKLQotIyBUaW1lIGluIHNlY29u
ZHMgdGhhdCB0aGUgbmV3IHppcCBmaWxlIG11c3QgYmUgbmV3ZXIgdGhhbiB0aGUgb2xkIGZvciB1
cyB0bwotIyBjb25zaWRlciB0aGVtIHRvIGJlIGRpZmZlcmVudC4gSWYgdGhlIGRpZmZlcmVuY2Ug
aW4gbW9kaWZpY2F0aW9uIHRpbWUgaXMgbGVzcwotIyB0aGFuIHRoaXMgdGhyZXNob2xkLCB3ZSBh
c3N1bWUgdGhhdCB0aGUgZmlsZXMgYXJlIHRoZSBzYW1lLiBXZSBuZWVkIHRoaXMKLSMgYmVjYXVz
ZSB0aGUgemlwIGZpbGUgaXMgc2VydmVkIGZyb20gYSBzZXQgb2YgbWlycm9ycyB3aXRoIHNsaWdo
dGx5IGRpZmZlcmVudAotIyBMYXN0LU1vZGlmaWVkIHRpbWVzLgotbXkgJG5ld25lc3NUaHJlc2hv
bGQgPSAzMDsKLQotbXkgJHNvdXJjZURpciA9IHNvdXJjZURpcigpOwotbXkgJGZpbGUgPSAiV2Vi
S2l0QXV4aWxpYXJ5TGlicmFyeSI7Ci1teSAkemlwRmlsZSA9ICIkZmlsZS56aXAiOyAKLW15ICRh
dXhpbGlhcnlMaWJzVVJMID0gImh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL29wZW5zb3VyY2Uv
aW50ZXJuZXQvJHppcEZpbGUiOwotbXkgJHdlYmtpdExpYnJhcmllc0RpciA9IHRvVW5peFBhdGgo
JEVOVnsnV0VCS0lUTElCUkFSSUVTRElSJ30pIHx8ICIkc291cmNlRGlyL1dlYktpdExpYnJhcmll
cy93aW4iOwotbXkgJHRtcERpciA9IEZpbGU6OlNwZWMtPnJlbDJhYnMoRmlsZTo6VGVtcDo6dGVt
cGRpcigid2Via2l0bGlic1hYWFhYWFgiLCBUTVBESVIgPT4gMSwgQ0xFQU5VUCA9PiAxKSk7Ci0K
LXByaW50ICJDaGVja2luZyBMYXN0LU1vZGlmaWVkIGRhdGUgb2YgJHppcEZpbGUuLi5cbiI7Ci0K
LW15ICRyZXN1bHQgPSBzeXN0ZW0gImN1cmwgLXMgLUkgJGF1eGlsaWFyeUxpYnNVUkwgfCBncmVw
IExhc3QtTW9kaWZpZWQgPiBcIiR0bXBEaXIvJGZpbGUuaGVhZGVyc1wiIjsKLQotaWYgKFdFWElU
U1RBVFVTKCRyZXN1bHQpKSB7Ci0gICAgcHJpbnQgU1RERVJSICJDb3VsZG4ndCBjaGVjayBMYXN0
LU1vZGlmaWVkIGRhdGUgb2YgbmV3ICR6aXBGaWxlLlxuIjsKLSAgICBwcmludCBTVERFUlIgIlBs
ZWFzZSBlbnN1cmUgdGhhdCAkYXV4aWxpYXJ5TGlic1VSTCBpcyByZWFjaGFibGUuXG4iOwotCi0g
ICAgaWYgKCEgLWYgIiR3ZWJraXRMaWJyYXJpZXNEaXIvJGZpbGUuaGVhZGVycyIpIHsKLSAgICAg
ICAgcHJpbnQgU1RERVJSICJVbmFibGUgdG8gY2hlY2sgTGFzdC1Nb2RpZmllZCBkYXRlIGFuZCBu
byB2ZXJzaW9uIG9mICRmaWxlIHRvIGZhbGwgYmFjayB0by5cbiI7Ci0gICAgICAgIGV4aXQgMTsK
LSAgICB9Ci0KLSAgICBwcmludCBTVERFUlIgIkZhbGxpbmcgYmFjayB0byBleGlzdGluZyB2ZXJz
aW9uIG9mICRmaWxlLlxuIjsKLSAgICBleGl0IDA7Ci19Ci0KLWlmIChvcGVuIE5FVywgIiR0bXBE
aXIvJGZpbGUuaGVhZGVycyIpIHsKLSAgICBteSAkbmV3ID0gbGFzdE1vZGlmaWVkVG9Vbml4VGlt
ZSg8TkVXPik7Ci0gICAgY2xvc2UgTkVXOwotCi0gICAgaWYgKGRlZmluZWQgJG5ldyAmJiBvcGVu
IE9MRCwgIiR3ZWJraXRMaWJyYXJpZXNEaXIvJGZpbGUuaGVhZGVycyIpIHsKLSAgICAgICAgbXkg
JG9sZCA9IGxhc3RNb2RpZmllZFRvVW5peFRpbWUoPE9MRD4pOwotICAgICAgICBjbG9zZSBPTEQ7
Ci0gICAgICAgIGlmIChkZWZpbmVkICRvbGQgJiYgYWJzKCRuZXcgLSAkb2xkKSA8ICRuZXduZXNz
VGhyZXNob2xkKSB7Ci0gICAgICAgICAgICBwcmludCAiQ3VycmVudCAkZmlsZSBpcyB1cCB0byBk
YXRlXG4iOwotICAgICAgICAgICAgZXhpdCAwOwotICAgICAgICB9Ci0gICAgfQotfQotCi1wcmlu
dCAiRG93bmxvYWRpbmcgJHppcEZpbGUuLi5cblxuIjsKLSRyZXN1bHQgPSBzeXN0ZW0gImN1cmwg
LW8gXCIkdG1wRGlyLyR6aXBGaWxlXCIgJGF1eGlsaWFyeUxpYnNVUkwiOwotZGllICJDb3VsZG4n
dCBkb3dubG9hZCAkemlwRmlsZSEiIGlmICRyZXN1bHQ7Ci0KLSRyZXN1bHQgPSBzeXN0ZW0gInVu
emlwIiwgIi1xIiwgIi1kIiwgJHRtcERpciwgIiR0bXBEaXIvJHppcEZpbGUiOwotZGllICJDb3Vs
ZG4ndCB1bnppcCAkemlwRmlsZS4iIGlmICRyZXN1bHQ7Ci0KLXByaW50ICJcbkluc3RhbGxpbmcg
JGZpbGUuLi5cbiI7Ci0KLXN1YiB3YW50ZWQKLXsKLSAgICBteSAkcmVsYXRpdmVOYW1lID0gRmls
ZTo6U3BlYy0+YWJzMnJlbCgkRmlsZTo6RmluZDo6bmFtZSwgIiR0bXBEaXIvJGZpbGUvd2luIik7
Ci0gICAgbXkgJGRlc3RpbmF0aW9uID0gIiR3ZWJraXRMaWJyYXJpZXNEaXIvJHJlbGF0aXZlTmFt
ZSI7Ci0KLSAgICBpZiAoLWQgJF8pIHsKLSAgICAgICAgbWtkaXIgJGRlc3RpbmF0aW9uOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgc3lzdGVtICJjcCIsICRfLCAkZGVzdGluYXRpb247
Ci19Ci0KLUZpbGU6OkZpbmQ6OmZpbmQoXCZ3YW50ZWQsICIkdG1wRGlyLyRmaWxlIik7Ci0KLSRy
ZXN1bHQgPSBzeXN0ZW0gIm12IiwgIiR0bXBEaXIvJGZpbGUuaGVhZGVycyIsICR3ZWJraXRMaWJy
YXJpZXNEaXI7Ci1wcmludCBTVERFUlIgIkNvdWxkbid0IG1vdmUgJGZpbGUuaGVhZGVycyB0byAk
d2Via2l0TGlicmFyaWVzRGlyIiAuICIuXG4iIGlmICRyZXN1bHQ7Ci0KLXByaW50ICJUaGUgJGZp
bGUgaGFzIGJlZW4gc3VjZXNzZnVsbHkgaW5zdGFsbGVkIGluXG4gJHdlYmtpdExpYnJhcmllc0Rp
clxuIjsKLWV4aXQ7Ci0KLXN1YiB0b1VuaXhQYXRoCi17Ci0gICAgbXkgJHBhdGggPSBzaGlmdDsK
LSAgICByZXR1cm4gdW5sZXNzICRwYXRoOwotICAgIGNob21wKCRwYXRoID0gYGN5Z3BhdGggLXUg
JyRwYXRoJ2ApOwotICAgIHJldHVybiAkcGF0aDsKLX0KLQotc3ViIGxhc3RNb2RpZmllZFRvVW5p
eFRpbWUoJCkKLXsKLSAgICBteSAoJHN0cikgPSBAXzsKLQotICAgICRzdHIgPX4gL15MYXN0LU1v
ZGlmaWVkOiAoLiopJC8gb3IgcmV0dXJuOwotICAgIHJldHVybiBzdHIydGltZSgkMSk7Ci19Citz
eXN0ZW0oInBlcmwiLCAiVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWRlcGVuZGFuY3kiLCAk
YXV4aWxhcnlMaWJzVVJMKSA9PSAwIG9yIGRpZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
dXBkYXRlLXdlYmtpdC1jYWlyby1saWJzIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWNh
aXJvLWxpYnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTIwNGY2YjFiM2ZlMDU2YzkwYmZmODFhZTgyNDc1YjYzOGNl
NmFjYgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1jYWly
by1saWJzCkBAIC0wLDAgKzEsMzMgQEAKKyMhL3Vzci9iaW4vcGVybCAtdworCisjIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAwNiwgMjAwNyBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIworIyAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4gCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4gCisjIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1
dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisjICAgICBpdHMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisj
ICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uIAorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorIyBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyMgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBVcGRhdGVzIGEgZGV2ZWxv
cG1lbnQgZW52aXJvbm1lbnQgdG8gdGhlIG5ldyBXZWJLaXRBdXhpbGlhcnlMaWJyYXJ5CisKK215
ICRjYWlyb0xpYnNVUkwgPSAiaHR0cDovL2lkaXNrLm1hYy5jb20vYmZ1bGdoYW0tUHVibGljL3Jl
cXVpcmVtZW50cy56aXAiOworCitzeXN0ZW0oInBlcmwiLCAiVG9vbHMvU2NyaXB0cy91cGRhdGUt
d2Via2l0LWRlcGVuZGFuY3kiLCAkY2Fpcm9MaWJzVVJMKSA9PSAwIG9yIGRpZTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1kZXBlbmRhbmN5IGIvVG9vbHMvU2NyaXB0
cy91cGRhdGUtd2Via2l0LWRlcGVuZGFuY3kKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JhZDNiZWVkMjc5MTBmMGE1
MWFhOWJhNzk4MTU4YTQ0YmNmMTQyYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMv
dXBkYXRlLXdlYmtpdC1kZXBlbmRhbmN5CkBAIC0wLDAgKzEsMTUzIEBACisjIS91c3IvYmluL3Bl
cmwgLXcKKworIyBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorIyAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorIyAzLiAgTmVpdGhlciB0aGUg
bmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgor
IyAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZAorIyAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyMgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyMgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisjIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
KyMgVXBkYXRlcyBhIGRldmVsb3BtZW50IGVudmlyb25tZW50IHRvIGEgbmV3IGxpYnJhcnkgdmVy
c2lvbi4KKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKKwordXNlIEZpbGU6OkZpbmQ7Cit1
c2UgRmlsZTo6U3BlYzsKK3VzZSBGaWxlOjpUZW1wICgpOwordXNlIEZpbmRCaW47Cit1c2UgSFRU
UDo6RGF0ZSBxdyhzdHIydGltZSk7Cit1c2UgUE9TSVg7Cit1c2UgbGliICRGaW5kQmluOjpCaW47
Cit1c2Ugd2Via2l0ZGlyczsKKworCitpZiAoJCNBUkdWICE9IDApIHsKKyAgICAgICAgZGllIDw8
RU9GOworVXNhZ2U6CisgICAgICAgIHVwZGF0ZS13ZWJraXQtZGVwZW5kYW5jeSA8VVJMIHdpdGgg
dGhlIGRlcGVuZGFuY3kgemlwIGZpbGUuPgorRU9GCit9CisKKworc3ViIGxhc3RNb2RpZmllZFRv
VW5peFRpbWUoJCk7CisKKyMgVGltZSBpbiBzZWNvbmRzIHRoYXQgdGhlIG5ldyB6aXAgZmlsZSBt
dXN0IGJlIG5ld2VyIHRoYW4gdGhlIG9sZCBmb3IgdXMgdG8KKyMgY29uc2lkZXIgdGhlbSB0byBi
ZSBkaWZmZXJlbnQuIElmIHRoZSBkaWZmZXJlbmNlIGluIG1vZGlmaWNhdGlvbiB0aW1lIGlzIGxl
c3MKKyMgdGhhbiB0aGlzIHRocmVzaG9sZCwgd2UgYXNzdW1lIHRoYXQgdGhlIGZpbGVzIGFyZSB0
aGUgc2FtZS4gV2UgbmVlZCB0aGlzCisjIGJlY2F1c2UgdGhlIHppcCBmaWxlIGlzIHNlcnZlZCBm
cm9tIGEgc2V0IG9mIG1pcnJvcnMgd2l0aCBzbGlnaHRseSBkaWZmZXJlbnQKKyMgTGFzdC1Nb2Rp
ZmllZCB0aW1lcy4KK215ICRuZXduZXNzVGhyZXNob2xkID0gMzA7CisKK215ICRsaWJzVVJMID0g
c2hpZnQ7CitteSAkc291cmNlRGlyID0gc291cmNlRGlyKCk7CitteSAkZmlsZSA9IGdldExpYnJh
cnlOYW1lKCRsaWJzVVJMKTsKK215ICR6aXBGaWxlID0gIiRmaWxlLnppcCI7IAorbXkgJHdlYmtp
dExpYnJhcmllc0RpciA9IHRvVW5peFBhdGgoJEVOVnsnV0VCS0lUTElCUkFSSUVTRElSJ30pIHx8
ICIkc291cmNlRGlyL1dlYktpdExpYnJhcmllcy93aW4iOworbXkgJHRtcERpciA9IEZpbGU6OlNw
ZWMtPnJlbDJhYnMoRmlsZTo6VGVtcDo6dGVtcGRpcigid2Via2l0bGlic1hYWFhYWFgiLCBUTVBE
SVIgPT4gMSwgQ0xFQU5VUCA9PiAxKSk7CisKK3ByaW50ICJDaGVja2luZyBMYXN0LU1vZGlmaWVk
IGRhdGUgb2YgJHppcEZpbGUuLi5cbiI7CisKK215ICRyZXN1bHQgPSBzeXN0ZW0gImN1cmwgLXMg
LUkgJGxpYnNVUkwgfCBncmVwIExhc3QtTW9kaWZpZWQgPiBcIiR0bXBEaXIvJGZpbGUuaGVhZGVy
c1wiIjsKKworaWYgKFdFWElUU1RBVFVTKCRyZXN1bHQpKSB7CisgICAgcHJpbnQgU1RERVJSICJD
b3VsZG4ndCBjaGVjayBMYXN0LU1vZGlmaWVkIGRhdGUgb2YgbmV3ICR6aXBGaWxlLlxuIjsKKyAg
ICBwcmludCBTVERFUlIgIlBsZWFzZSBlbnN1cmUgdGhhdCAkbGlic1VSTCBpcyByZWFjaGFibGUu
XG4iOworCisgICAgaWYgKCEgLWYgIiR3ZWJraXRMaWJyYXJpZXNEaXIvJGZpbGUuaGVhZGVycyIp
IHsKKyAgICAgICAgcHJpbnQgU1RERVJSICJVbmFibGUgdG8gY2hlY2sgTGFzdC1Nb2RpZmllZCBk
YXRlIGFuZCBubyB2ZXJzaW9uIG9mICRmaWxlIHRvIGZhbGwgYmFjayB0by5cbiI7CisgICAgICAg
IGV4aXQgMTsKKyAgICB9CisKKyAgICBwcmludCBTVERFUlIgIkZhbGxpbmcgYmFjayB0byBleGlz
dGluZyB2ZXJzaW9uIG9mICRmaWxlLlxuIjsKKyAgICBleGl0IDA7Cit9CisKK2lmIChvcGVuIE5F
VywgIiR0bXBEaXIvJGZpbGUuaGVhZGVycyIpIHsKKyAgICBteSAkbmV3ID0gbGFzdE1vZGlmaWVk
VG9Vbml4VGltZSg8TkVXPik7CisgICAgY2xvc2UgTkVXOworCisgICAgaWYgKGRlZmluZWQgJG5l
dyAmJiBvcGVuIE9MRCwgIiR3ZWJraXRMaWJyYXJpZXNEaXIvJGZpbGUuaGVhZGVycyIpIHsKKyAg
ICAgICAgbXkgJG9sZCA9IGxhc3RNb2RpZmllZFRvVW5peFRpbWUoPE9MRD4pOworICAgICAgICBj
bG9zZSBPTEQ7CisgICAgICAgIGlmIChkZWZpbmVkICRvbGQgJiYgYWJzKCRuZXcgLSAkb2xkKSA8
ICRuZXduZXNzVGhyZXNob2xkKSB7CisgICAgICAgICAgICBwcmludCAiQ3VycmVudCAkZmlsZSBp
cyB1cCB0byBkYXRlXG4iOworICAgICAgICAgICAgZXhpdCAwOworICAgICAgICB9CisgICAgfQor
fQorCitwcmludCAiRG93bmxvYWRpbmcgJHppcEZpbGUuLi5cblxuIjsKKyRyZXN1bHQgPSBzeXN0
ZW0gImN1cmwgLW8gXCIkdG1wRGlyLyR6aXBGaWxlXCIgJGxpYnNVUkwiOworZGllICJDb3VsZG4n
dCBkb3dubG9hZCAkemlwRmlsZSEiIGlmICRyZXN1bHQ7CisKKyRyZXN1bHQgPSBzeXN0ZW0gInVu
emlwIiwgIi1xIiwgIi1kIiwgJHRtcERpciwgIiR0bXBEaXIvJHppcEZpbGUiOworZGllICJDb3Vs
ZG4ndCB1bnppcCAkemlwRmlsZS4iIGlmICRyZXN1bHQ7CisKK3ByaW50ICJcbkluc3RhbGxpbmcg
JGZpbGUuLi5cbiI7CisKK3N1YiB3YW50ZWQKK3sKKyAgICBteSAkcmVsYXRpdmVOYW1lID0gRmls
ZTo6U3BlYy0+YWJzMnJlbCgkRmlsZTo6RmluZDo6bmFtZSwgIiR0bXBEaXIvJGZpbGUvd2luIik7
CisgICAgbXkgJGRlc3RpbmF0aW9uID0gIiR3ZWJraXRMaWJyYXJpZXNEaXIvJHJlbGF0aXZlTmFt
ZSI7CisKKyAgICBpZiAoLWQgJF8pIHsKKyAgICAgICAgbWtkaXIgJGRlc3RpbmF0aW9uOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgc3lzdGVtICJjcCIsICRfLCAkZGVzdGluYXRpb247
Cit9CisKK0ZpbGU6OkZpbmQ6OmZpbmQoXCZ3YW50ZWQsICIkdG1wRGlyLyRmaWxlIik7CisKKyRy
ZXN1bHQgPSBzeXN0ZW0gIm12IiwgIiR0bXBEaXIvJGZpbGUuaGVhZGVycyIsICR3ZWJraXRMaWJy
YXJpZXNEaXI7CitwcmludCBTVERFUlIgIkNvdWxkbid0IG1vdmUgJGZpbGUuaGVhZGVycyB0byAk
d2Via2l0TGlicmFyaWVzRGlyIiAuICIuXG4iIGlmICRyZXN1bHQ7CisKK3ByaW50ICJUaGUgJGZp
bGUgaGFzIGJlZW4gc3VjZXNzZnVsbHkgaW5zdGFsbGVkIGluXG4gJHdlYmtpdExpYnJhcmllc0Rp
clxuIjsKK2V4aXQ7CisKK3N1YiB0b1VuaXhQYXRoCit7CisgICAgbXkgJHBhdGggPSBzaGlmdDsK
KyAgICByZXR1cm4gdW5sZXNzICRwYXRoOworICAgIGNob21wKCRwYXRoID0gYGN5Z3BhdGggLXUg
JyRwYXRoJ2ApOworICAgIHJldHVybiAkcGF0aDsKK30KKworc3ViIGxhc3RNb2RpZmllZFRvVW5p
eFRpbWUoJCkKK3sKKyAgICBteSAoJHN0cikgPSBAXzsKKworICAgICRzdHIgPX4gL15MYXN0LU1v
ZGlmaWVkOiAoLiopJC8gb3IgcmV0dXJuOworICAgIHJldHVybiBzdHIydGltZSgkMSk7Cit9CisK
K3N1YiBnZXRMaWJyYXJ5TmFtZQoreworICBteSAkcGF0aCA9IHNoaWZ0OworICBteSAkZmlsZW5h
bWU7CisgIG15ICRpID0gcmluZGV4KCRwYXRoLCAiLyIpOworICAkZmlsZW5hbWUgPSBzdWJzdHIo
JHBhdGgsICRpICsgMSk7CisgICRmaWxlbmFtZSA9IHN1YnN0cigkZmlsZW5hbWUsIDAsIHJpbmRl
eCgkZmlsZW5hbWUsICIuemlwIikpOworICByZXR1cm4gJGZpbGVuYW1lOworfQpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5w
bSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQppbmRleCBlYTY0YzZiZWQ3YzY3OTgwY2Fk
YzM4ZmMwNmY5MzJhYTJmZDNmN2UyLi5jZjk4ZTU2YWZmYWEwNTAzNzQ4ZjNhYTY0OThmMmMyYjEy
Y2ZkYTBhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCkBAIC02OCw2ICs2OCw3IEBAIG15ICRpc1d4OwogbXkg
JGlzRWZsOwogbXkgQHd4QXJnczsKIG15ICRpc0Nocm9taXVtOworbXkgJGlzQ2Fpcm87CiBteSAk
aXNJbnNwZWN0b3JGcm9udGVuZDsKIAogIyBWYXJpYWJsZXMgZm9yIFdpbjMyIHN1cHBvcnQKQEAg
LTQxNywyNiArNDE4LDI0IEBAIHN1YiBkZXRlcm1pbmVQYXNzZWRDb25maWd1cmF0aW9uCiAgICAg
cmV0dXJuIGlmICRzZWFyY2hlZEZvclBhc3NlZENvbmZpZ3VyYXRpb247CiAgICAgJHNlYXJjaGVk
Rm9yUGFzc2VkQ29uZmlndXJhdGlvbiA9IDE7CiAKLSAgICBteSAkaXNXaW5DYWlybyA9IGNoZWNr
Rm9yQXJndW1lbnRBbmRSZW1vdmVGcm9tQVJHVigiLS13aW5jYWlybyIpOwotCiAgICAgZm9yIG15
ICRpICgwIC4uICQjQVJHVikgewogICAgICAgICBteSAkb3B0ID0gJEFSR1ZbJGldOwogICAgICAg
ICBpZiAoJG9wdCA9fiAvXi0tZGVidWckL2kgfHwgJG9wdCA9fiAvXi0tZGV2ZWwvaSkgewogICAg
ICAgICAgICAgc3BsaWNlKEBBUkdWLCAkaSwgMSk7CiAgICAgICAgICAgICAkcGFzc2VkQ29uZmln
dXJhdGlvbiA9ICJEZWJ1ZyI7Ci0gICAgICAgICAgICAkcGFzc2VkQ29uZmlndXJhdGlvbiAuPSAi
X0NhaXJvX0NGTGl0ZSIgaWYgKCRpc1dpbkNhaXJvICYmIGlzQ3lnd2luKCkpOworICAgICAgICAg
ICAgJHBhc3NlZENvbmZpZ3VyYXRpb24gLj0gIl9DYWlyb19DRkxpdGUiIGlmIChpc1dpbkNhaXJv
KCkgJiYgaXNDeWd3aW4oKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAg
ICAgaWYgKCRvcHQgPX4gL14tLXJlbGVhc2UkL2kgfHwgJG9wdCA9fiAvXi0tZGVwbG95L2kpIHsK
ICAgICAgICAgICAgIHNwbGljZShAQVJHViwgJGksIDEpOwogICAgICAgICAgICAgJHBhc3NlZENv
bmZpZ3VyYXRpb24gPSAiUmVsZWFzZSI7Ci0gICAgICAgICAgICAkcGFzc2VkQ29uZmlndXJhdGlv
biAuPSAiX0NhaXJvX0NGTGl0ZSIgaWYgKCRpc1dpbkNhaXJvICYmIGlzQ3lnd2luKCkpOworICAg
ICAgICAgICAgJHBhc3NlZENvbmZpZ3VyYXRpb24gLj0gIl9DYWlyb19DRkxpdGUiIGlmIChpc1dp
bkNhaXJvKCkgJiYgaXNDeWd3aW4oKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
ICAgICAgICAgaWYgKCRvcHQgPX4gL14tLXByb2ZpbChlfGluZykkL2kpIHsKICAgICAgICAgICAg
IHNwbGljZShAQVJHViwgJGksIDEpOwogICAgICAgICAgICAgJHBhc3NlZENvbmZpZ3VyYXRpb24g
PSAiUHJvZmlsaW5nIjsKLSAgICAgICAgICAgICRwYXNzZWRDb25maWd1cmF0aW9uIC49ICJfQ2Fp
cm9fQ0ZMaXRlIiBpZiAoJGlzV2luQ2Fpcm8gJiYgaXNDeWd3aW4oKSk7CisgICAgICAgICAgICAk
cGFzc2VkQ29uZmlndXJhdGlvbiAuPSAiX0NhaXJvX0NGTGl0ZSIgaWYgKGlzV2luQ2Fpcm8oKSAm
JiBpc0N5Z3dpbigpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAg
LTgzMSw2ICs4MzAsMTkgQEAgc3ViIGRldGVybWluZUlzQ2hyb21pdW0oKQogICAgICRpc0Nocm9t
aXVtID0gY2hlY2tGb3JBcmd1bWVudEFuZFJlbW92ZUZyb21BUkdWKCItLWNocm9taXVtIik7CiB9
CiAKK3N1YiBpc1dpbkNhaXJvKCkKK3sKKyAgICBkZXRlcm1pbmVJc1dpbkNhaXJvKCk7CisgICAg
cmV0dXJuICRpc0NhaXJvOworfQorCitzdWIgZGV0ZXJtaW5lSXNXaW5DYWlybygpCit7CisgICAg
cmV0dXJuIGlmIGRlZmluZWQoJGlzQ2Fpcm8pOworICAgICRpc0NhaXJvID0gY2hlY2tGb3JBcmd1
bWVudEFuZFJlbW92ZUZyb21BUkdWKCItLXdpbmNhaXJvIik7Cit9CisKKwogc3ViIGlzQ3lnd2lu
KCkKIHsKICAgICByZXR1cm4gKCReTyBlcSAiY3lnd2luIikgfHwgMDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77970</attachid>
            <date>2011-01-04 22:51:10 -0800</date>
            <delta_ts>2011-04-12 13:37:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51790-20110105122237.patch</filename>
            <type>text/plain</type>
            <size>15447</size>
            <attacher name="Carl Lobo">carllobo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlOThj
YzNmN2Q0ZGM2YzgwMDYxMGNlODZhYjJmZTI2ZWExMjVkMzNhLi43YTJlZDQ2OGJkMzgyZmFkNTk0
NzIyMTdmMjhlYzFhNGI4Mjk4ZGUzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDEtMDEgIENhcmwgTG9ibyAg
PGNhcmxsb2JvQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBQYXRjaCB0byBkb3dubG9hZCB0aGUgV2luQ2Fpcm8gZGVwZW5kYW5jaWVz
IGFzIHBhcnQgb2YgYnVpbGQtd2Via2l0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTE3OTAKKworICAgICAgICBUaGlzIHBhdGNoIGRvd25sb2FkcyB0
aGUgZGVwZW5kYW5jaWVzIGZyb20gCisgICAgICAgICAgICAgICAgIGh0dHA6Ly9pZGlzay5tYWMu
Y29tL2JmdWxnaGFtLVB1YmxpYy9yZXF1aXJlbWVudHMuemlwIAorICAgICAgICBjaGVja2luZyB0
aGUgbW9kaWZpY2F0aW9uIHRpbWVzdGFtcCBldGMuIAorCisgICAgICAgIFRoZSBkZXBlbmRhbmNp
ZXMgc2hvdyB1cCBhcyB1bnRyYWNrZWQgZmlsZXMgYW5kIHNvbWUgb2YgdGhlIHdlYmtpdCBzdXBw
b3J0IGxpYnJhcnkgaXMgcHJvYmFibHkgb3ZlcndyaXR0ZW4uCisKKyAgICAgICAgKiBUb29scy9T
Y3JpcHRzL2J1aWxkLXdlYmtpdAorICAgICAgICAqIFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtp
dC1jYWlyby1saWJzOiBhZGRlZAorICAgICAgICAqIFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtp
dC1kZXBlbmRhbmN5OiBhZGRlZAorICAgICAgICAqIFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtp
dC1hdXhpbGlhcnktbGlicworCiAyMDExLTAxLTA0ICBTw7hyZW4gR2plc3NlICA8c2dqZXNzZUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0IGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJr
aXQKaW5kZXggN2U4ZmEwYTFkODU0ODRiNjhhZWE5N2IzMGFjNmVmYzI3NzNhOGI1ZS4uNzIwY2Rm
OGQ0MmM4MmJkOTZmM2VjNDAzMDVjZDZhOTU3NWNiYzA5YyAxMDA3NTUKLS0tIGEvVG9vbHMvU2Ny
aXB0cy9idWlsZC13ZWJraXQKKysrIGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKQEAgLTQ0
OCw2ICs0NDgsMTAgQEAgaWYgKGlzR3RrKCkpIHsKICAgICAjIENvcHkgV2ViS2l0U3VwcG9ydExp
YnJhcnkgdG8gdGhlIGNvcnJlY3QgbG9jYXRpb24gaW4gV2ViS2l0TGlicmFyaWVzIHNvIGl0IGNh
biBiZSBmb3VuZC4KICAgICAjIFdpbGwgZmFpbCBpZiBXZWJLaXRTdXBwb3J0TGlicmFyeS56aXAg
aXMgbm90IGluIHNvdXJjZSByb290LgogICAgIChzeXN0ZW0oInBlcmwgVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2Via2l0LXN1cHBvcnQtbGlicyIpID09IDApIG9yIGRpZTsKKyAgICAjIFVwZGF0ZSBD
YWlybyBEZXBlbmRhbmNpZXMuCisgICAgaWYoaXNXaW5DYWlybygpKSB7CisgICAgICAgIChzeXN0
ZW0oInBlcmwgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWNhaXJvLWxpYnMiKSA9PSAwKSBv
ciBkaWU7CisgICAgfQogfSBlbHNpZiAoaXNRdCgpKSB7CiAgICAgQG9wdGlvbnMgPSBAQVJHVjsK
ICAgICBwdXNoIEBvcHRpb25zLCAiLS1pbnN0YWxsLWhlYWRlcnM9IiAuICRpbnN0YWxsSGVhZGVy
cyBpZiBkZWZpbmVkKCRpbnN0YWxsSGVhZGVycyk7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3VwZGF0ZS13ZWJraXQtYXV4aWxpYXJ5LWxpYnMgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJr
aXQtYXV4aWxpYXJ5LWxpYnMKaW5kZXggMTllNGFkMzkyYjE2NjUwMjY4NGUwMzc0Nzk4MmZjY2Ew
OTcwZDBiOS4uYmY4MDkxMzU1YTFhNDA4Y2ExZDE0ZDQ3MzE1ZDIzMjdmMDkyZTBiMSAxMDA3NTUK
LS0tIGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWF1eGlsaWFyeS1saWJzCisrKyBiL1Rv
b2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1hdXhpbGlhcnktbGlicwpAQCAtMjgsMTA3ICsyOCw2
IEBACiAKICMgVXBkYXRlcyBhIGRldmVsb3BtZW50IGVudmlyb25tZW50IHRvIHRoZSBuZXcgV2Vi
S2l0QXV4aWxpYXJ5TGlicmFyeQogCi11c2Ugc3RyaWN0OwotdXNlIHdhcm5pbmdzOworbXkgJGF1
eGlsYXJ5TGlic1VSTCA9ICJodHRwOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9vcGVuc291cmNlL2lu
dGVybmV0L1dlYktpdEF1eGlsaWFyeUxpYnJhcnkuemlwIjsKIAotdXNlIEZpbGU6OkZpbmQ7Ci11
c2UgRmlsZTo6U3BlYzsKLXVzZSBGaWxlOjpUZW1wICgpOwotdXNlIEZpbmRCaW47Ci11c2UgSFRU
UDo6RGF0ZSBxdyhzdHIydGltZSk7Ci11c2UgUE9TSVg7Ci11c2UgbGliICRGaW5kQmluOjpCaW47
Ci11c2Ugd2Via2l0ZGlyczsKLQotc3ViIGxhc3RNb2RpZmllZFRvVW5peFRpbWUoJCk7Ci0KLSMg
VGltZSBpbiBzZWNvbmRzIHRoYXQgdGhlIG5ldyB6aXAgZmlsZSBtdXN0IGJlIG5ld2VyIHRoYW4g
dGhlIG9sZCBmb3IgdXMgdG8KLSMgY29uc2lkZXIgdGhlbSB0byBiZSBkaWZmZXJlbnQuIElmIHRo
ZSBkaWZmZXJlbmNlIGluIG1vZGlmaWNhdGlvbiB0aW1lIGlzIGxlc3MKLSMgdGhhbiB0aGlzIHRo
cmVzaG9sZCwgd2UgYXNzdW1lIHRoYXQgdGhlIGZpbGVzIGFyZSB0aGUgc2FtZS4gV2UgbmVlZCB0
aGlzCi0jIGJlY2F1c2UgdGhlIHppcCBmaWxlIGlzIHNlcnZlZCBmcm9tIGEgc2V0IG9mIG1pcnJv
cnMgd2l0aCBzbGlnaHRseSBkaWZmZXJlbnQKLSMgTGFzdC1Nb2RpZmllZCB0aW1lcy4KLW15ICRu
ZXduZXNzVGhyZXNob2xkID0gMzA7Ci0KLW15ICRzb3VyY2VEaXIgPSBzb3VyY2VEaXIoKTsKLW15
ICRmaWxlID0gIldlYktpdEF1eGlsaWFyeUxpYnJhcnkiOwotbXkgJHppcEZpbGUgPSAiJGZpbGUu
emlwIjsgCi1teSAkYXV4aWxpYXJ5TGlic1VSTCA9ICJodHRwOi8vZGV2ZWxvcGVyLmFwcGxlLmNv
bS9vcGVuc291cmNlL2ludGVybmV0LyR6aXBGaWxlIjsKLW15ICR3ZWJraXRMaWJyYXJpZXNEaXIg
PSB0b1VuaXhQYXRoKCRFTlZ7J1dFQktJVExJQlJBUklFU0RJUid9KSB8fCAiJHNvdXJjZURpci9X
ZWJLaXRMaWJyYXJpZXMvd2luIjsKLW15ICR0bXBEaXIgPSBGaWxlOjpTcGVjLT5yZWwyYWJzKEZp
bGU6OlRlbXA6OnRlbXBkaXIoIndlYmtpdGxpYnNYWFhYWFhYIiwgVE1QRElSID0+IDEsIENMRUFO
VVAgPT4gMSkpOwotCi1wcmludCAiQ2hlY2tpbmcgTGFzdC1Nb2RpZmllZCBkYXRlIG9mICR6aXBG
aWxlLi4uXG4iOwotCi1teSAkcmVzdWx0ID0gc3lzdGVtICJjdXJsIC1zIC1JICRhdXhpbGlhcnlM
aWJzVVJMIHwgZ3JlcCBMYXN0LU1vZGlmaWVkID4gXCIkdG1wRGlyLyRmaWxlLmhlYWRlcnNcIiI7
Ci0KLWlmIChXRVhJVFNUQVRVUygkcmVzdWx0KSkgewotICAgIHByaW50IFNUREVSUiAiQ291bGRu
J3QgY2hlY2sgTGFzdC1Nb2RpZmllZCBkYXRlIG9mIG5ldyAkemlwRmlsZS5cbiI7Ci0gICAgcHJp
bnQgU1RERVJSICJQbGVhc2UgZW5zdXJlIHRoYXQgJGF1eGlsaWFyeUxpYnNVUkwgaXMgcmVhY2hh
YmxlLlxuIjsKLQotICAgIGlmICghIC1mICIkd2Via2l0TGlicmFyaWVzRGlyLyRmaWxlLmhlYWRl
cnMiKSB7Ci0gICAgICAgIHByaW50IFNUREVSUiAiVW5hYmxlIHRvIGNoZWNrIExhc3QtTW9kaWZp
ZWQgZGF0ZSBhbmQgbm8gdmVyc2lvbiBvZiAkZmlsZSB0byBmYWxsIGJhY2sgdG8uXG4iOwotICAg
ICAgICBleGl0IDE7Ci0gICAgfQotCi0gICAgcHJpbnQgU1RERVJSICJGYWxsaW5nIGJhY2sgdG8g
ZXhpc3RpbmcgdmVyc2lvbiBvZiAkZmlsZS5cbiI7Ci0gICAgZXhpdCAwOwotfQotCi1pZiAob3Bl
biBORVcsICIkdG1wRGlyLyRmaWxlLmhlYWRlcnMiKSB7Ci0gICAgbXkgJG5ldyA9IGxhc3RNb2Rp
ZmllZFRvVW5peFRpbWUoPE5FVz4pOwotICAgIGNsb3NlIE5FVzsKLQotICAgIGlmIChkZWZpbmVk
ICRuZXcgJiYgb3BlbiBPTEQsICIkd2Via2l0TGlicmFyaWVzRGlyLyRmaWxlLmhlYWRlcnMiKSB7
Ci0gICAgICAgIG15ICRvbGQgPSBsYXN0TW9kaWZpZWRUb1VuaXhUaW1lKDxPTEQ+KTsKLSAgICAg
ICAgY2xvc2UgT0xEOwotICAgICAgICBpZiAoZGVmaW5lZCAkb2xkICYmIGFicygkbmV3IC0gJG9s
ZCkgPCAkbmV3bmVzc1RocmVzaG9sZCkgewotICAgICAgICAgICAgcHJpbnQgIkN1cnJlbnQgJGZp
bGUgaXMgdXAgdG8gZGF0ZVxuIjsKLSAgICAgICAgICAgIGV4aXQgMDsKLSAgICAgICAgfQotICAg
IH0KLX0KLQotcHJpbnQgIkRvd25sb2FkaW5nICR6aXBGaWxlLi4uXG5cbiI7Ci0kcmVzdWx0ID0g
c3lzdGVtICJjdXJsIC1vIFwiJHRtcERpci8kemlwRmlsZVwiICRhdXhpbGlhcnlMaWJzVVJMIjsK
LWRpZSAiQ291bGRuJ3QgZG93bmxvYWQgJHppcEZpbGUhIiBpZiAkcmVzdWx0OwotCi0kcmVzdWx0
ID0gc3lzdGVtICJ1bnppcCIsICItcSIsICItZCIsICR0bXBEaXIsICIkdG1wRGlyLyR6aXBGaWxl
IjsKLWRpZSAiQ291bGRuJ3QgdW56aXAgJHppcEZpbGUuIiBpZiAkcmVzdWx0OwotCi1wcmludCAi
XG5JbnN0YWxsaW5nICRmaWxlLi4uXG4iOwotCi1zdWIgd2FudGVkCi17Ci0gICAgbXkgJHJlbGF0
aXZlTmFtZSA9IEZpbGU6OlNwZWMtPmFiczJyZWwoJEZpbGU6OkZpbmQ6Om5hbWUsICIkdG1wRGly
LyRmaWxlL3dpbiIpOwotICAgIG15ICRkZXN0aW5hdGlvbiA9ICIkd2Via2l0TGlicmFyaWVzRGly
LyRyZWxhdGl2ZU5hbWUiOwotCi0gICAgaWYgKC1kICRfKSB7Ci0gICAgICAgIG1rZGlyICRkZXN0
aW5hdGlvbjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHN5c3RlbSAiY3AiLCAkXywg
JGRlc3RpbmF0aW9uOwotfQotCi1GaWxlOjpGaW5kOjpmaW5kKFwmd2FudGVkLCAiJHRtcERpci8k
ZmlsZSIpOwotCi0kcmVzdWx0ID0gc3lzdGVtICJtdiIsICIkdG1wRGlyLyRmaWxlLmhlYWRlcnMi
LCAkd2Via2l0TGlicmFyaWVzRGlyOwotcHJpbnQgU1RERVJSICJDb3VsZG4ndCBtb3ZlICRmaWxl
LmhlYWRlcnMgdG8gJHdlYmtpdExpYnJhcmllc0RpciIgLiAiLlxuIiBpZiAkcmVzdWx0OwotCi1w
cmludCAiVGhlICRmaWxlIGhhcyBiZWVuIHN1Y2Vzc2Z1bGx5IGluc3RhbGxlZCBpblxuICR3ZWJr
aXRMaWJyYXJpZXNEaXJcbiI7Ci1leGl0OwotCi1zdWIgdG9Vbml4UGF0aAotewotICAgIG15ICRw
YXRoID0gc2hpZnQ7Ci0gICAgcmV0dXJuIHVubGVzcyAkcGF0aDsKLSAgICBjaG9tcCgkcGF0aCA9
IGBjeWdwYXRoIC11ICckcGF0aCdgKTsKLSAgICByZXR1cm4gJHBhdGg7Ci19Ci0KLXN1YiBsYXN0
TW9kaWZpZWRUb1VuaXhUaW1lKCQpCi17Ci0gICAgbXkgKCRzdHIpID0gQF87Ci0KLSAgICAkc3Ry
ID1+IC9eTGFzdC1Nb2RpZmllZDogKC4qKSQvIG9yIHJldHVybjsKLSAgICByZXR1cm4gc3RyMnRp
bWUoJDEpOwotfQorc3lzdGVtKCJwZXJsIiwgIlRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1k
ZXBlbmRhbmN5IiwgJGF1eGlsYXJ5TGlic1VSTCwgIndpbiIpID09IDAgb3IgZGllOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWNhaXJvLWxpYnMgYi9Ub29scy9TY3Jp
cHRzL3VwZGF0ZS13ZWJraXQtY2Fpcm8tbGlicwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDA2OWViODk0ZGUzMjk5
NWE5MGI5YTZhZDEzYzExM2YzMWE0OWM3Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0
cy91cGRhdGUtd2Via2l0LWNhaXJvLWxpYnMKQEAgLTAsMCArMSwzMyBAQAorIyEvdXNyL2Jpbi9w
ZXJsIC13CisKKyMgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3IEFwcGxlIENvbXB1dGVy
LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjCisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyMgMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyMgMy4gIE5laXRoZXIgdGhl
IG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YK
KyMgICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQKKyMgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisjIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorIyBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CisjIFVwZGF0ZXMgYSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCB0byB0aGUgbmV3IFdlYktpdEF1
eGlsaWFyeUxpYnJhcnkKKworbXkgJGNhaXJvTGlic1VSTCA9ICJodHRwOi8vaWRpc2subWFjLmNv
bS9iZnVsZ2hhbS1QdWJsaWMvcmVxdWlyZW1lbnRzLnppcCI7CisKK3N5c3RlbSgicGVybCIsICJU
b29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtZGVwZW5kYW5jeSIsICRjYWlyb0xpYnNVUkwsICIu
IikgPT0gMCBvciBkaWU7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQt
ZGVwZW5kYW5jeSBiL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1kZXBlbmRhbmN5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmYxNjExNDUzZGNjYTY5Yzc5Njg4NjFiYzRiN2YzOGNmOTk4NzdmMDkKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtZGVwZW5kYW5jeQpAQCAtMCww
ICsxLDE1OCBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisKKyMgQ29weXJpZ2h0IChDKSAyMDA1LCAy
MDA2LCAyMDA3IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjCisjIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLiAKKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLiAKKyMgMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyMgICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyMgICAgIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
IyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgorIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFVwZGF0ZXMgYSBkZXZlbG9wbWVudCBlbnZpcm9u
bWVudCB0byBhIG5ldyBsaWJyYXJ5IHZlcnNpb24uCisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2Fybmlu
Z3M7CisKK3VzZSBGaWxlOjpGaW5kOwordXNlIEZpbGU6OlNwZWM7Cit1c2UgRmlsZTo6VGVtcCAo
KTsKK3VzZSBGaW5kQmluOwordXNlIEhUVFA6OkRhdGUgcXcoc3RyMnRpbWUpOwordXNlIFBPU0lY
OwordXNlIGxpYiAkRmluZEJpbjo6QmluOwordXNlIHdlYmtpdGRpcnM7CisKKworaWYgKCQjQVJH
ViAhPSAxKSB7CisgICAgICAgIGRpZSA8PEVPRjsKK1VzYWdlOgorICAgICAgICB1cGRhdGUtd2Vi
a2l0LWRlcGVuZGFuY3kgPFVSTCB3aXRoIHRoZSBkZXBlbmRhbmN5IHppcCBmaWxlPiA8KnByZWZp
eCBkaXIgaW5zaWRlIHppcCB3aXRob3V0IGZpbGVuYW1lPgorCisgICAgICAgICogSWYgZmlsZW5h
bWUgaXMgcmVxdWlyZW1lbnRzLnppcCBhbmQgdGhlIGNvbnRlbnRzIG9mIHRoZSB6aXBmaWxlIGFy
ZSAicmVxdWlyZW1lbnRzL3giIHRoZW4gcHJlZml4ID0gIi4iCisgICAgICAgICogSWYgZmlsZW5h
bWUgaXMgeHl6LnppcCBhbmQgdGhlIGNvbnRlbnRzIG9mIHRoZSB6aXBmaWxlIGFyZSB4eXovYWJj
L3giIHRoZW4gcHJlZml4ID0gImFiYyIKKyAgICAgICAgKiB4IGlzIGxpYiBvciBpbmNsdWRlIG9y
IGJpbi4KK0VPRgorfQorCisKK3N1YiBsYXN0TW9kaWZpZWRUb1VuaXhUaW1lKCQpOworCisjIFRp
bWUgaW4gc2Vjb25kcyB0aGF0IHRoZSBuZXcgemlwIGZpbGUgbXVzdCBiZSBuZXdlciB0aGFuIHRo
ZSBvbGQgZm9yIHVzIHRvCisjIGNvbnNpZGVyIHRoZW0gdG8gYmUgZGlmZmVyZW50LiBJZiB0aGUg
ZGlmZmVyZW5jZSBpbiBtb2RpZmljYXRpb24gdGltZSBpcyBsZXNzCisjIHRoYW4gdGhpcyB0aHJl
c2hvbGQsIHdlIGFzc3VtZSB0aGF0IHRoZSBmaWxlcyBhcmUgdGhlIHNhbWUuIFdlIG5lZWQgdGhp
cworIyBiZWNhdXNlIHRoZSB6aXAgZmlsZSBpcyBzZXJ2ZWQgZnJvbSBhIHNldCBvZiBtaXJyb3Jz
IHdpdGggc2xpZ2h0bHkgZGlmZmVyZW50CisjIExhc3QtTW9kaWZpZWQgdGltZXMuCitteSAkbmV3
bmVzc1RocmVzaG9sZCA9IDMwOworCitteSAkbGlic1VSTCA9IHNoaWZ0OworbXkgJHByZWZpeElu
WmlwID0gc2hpZnQ7CitteSAkc291cmNlRGlyID0gc291cmNlRGlyKCk7CitteSAkZmlsZSA9IGdl
dExpYnJhcnlOYW1lKCRsaWJzVVJMKTsKK215ICR6aXBGaWxlID0gIiRmaWxlLnppcCI7IAorbXkg
JHdlYmtpdExpYnJhcmllc0RpciA9IHRvVW5peFBhdGgoJEVOVnsnV0VCS0lUTElCUkFSSUVTRElS
J30pIHx8ICIkc291cmNlRGlyL1dlYktpdExpYnJhcmllcy93aW4iOworbXkgJHRtcERpciA9IEZp
bGU6OlNwZWMtPnJlbDJhYnMoRmlsZTo6VGVtcDo6dGVtcGRpcigid2Via2l0bGlic1hYWFhYWFgi
LCBUTVBESVIgPT4gMSwgQ0xFQU5VUCA9PiAxKSk7CisKK3ByaW50ICJDaGVja2luZyBMYXN0LU1v
ZGlmaWVkIGRhdGUgb2YgJHppcEZpbGUuLi5cbiI7CisKK215ICRyZXN1bHQgPSBzeXN0ZW0gImN1
cmwgLXMgLUkgJGxpYnNVUkwgfCBncmVwIExhc3QtTW9kaWZpZWQgPiBcIiR0bXBEaXIvJGZpbGUu
aGVhZGVyc1wiIjsKKworaWYgKFdFWElUU1RBVFVTKCRyZXN1bHQpKSB7CisgICAgcHJpbnQgU1RE
RVJSICJDb3VsZG4ndCBjaGVjayBMYXN0LU1vZGlmaWVkIGRhdGUgb2YgbmV3ICR6aXBGaWxlLlxu
IjsKKyAgICBwcmludCBTVERFUlIgIlBsZWFzZSBlbnN1cmUgdGhhdCAkbGlic1VSTCBpcyByZWFj
aGFibGUuXG4iOworCisgICAgaWYgKCEgLWYgIiR3ZWJraXRMaWJyYXJpZXNEaXIvJGZpbGUuaGVh
ZGVycyIpIHsKKyAgICAgICAgcHJpbnQgU1RERVJSICJVbmFibGUgdG8gY2hlY2sgTGFzdC1Nb2Rp
ZmllZCBkYXRlIGFuZCBubyB2ZXJzaW9uIG9mICRmaWxlIHRvIGZhbGwgYmFjayB0by5cbiI7Cisg
ICAgICAgIGV4aXQgMTsKKyAgICB9CisKKyAgICBwcmludCBTVERFUlIgIkZhbGxpbmcgYmFjayB0
byBleGlzdGluZyB2ZXJzaW9uIG9mICRmaWxlLlxuIjsKKyAgICBleGl0IDA7Cit9CisKK2lmIChv
cGVuIE5FVywgIiR0bXBEaXIvJGZpbGUuaGVhZGVycyIpIHsKKyAgICBteSAkbmV3ID0gbGFzdE1v
ZGlmaWVkVG9Vbml4VGltZSg8TkVXPik7CisgICAgY2xvc2UgTkVXOworCisgICAgaWYgKGRlZmlu
ZWQgJG5ldyAmJiBvcGVuIE9MRCwgIiR3ZWJraXRMaWJyYXJpZXNEaXIvJGZpbGUuaGVhZGVycyIp
IHsKKyAgICAgICAgbXkgJG9sZCA9IGxhc3RNb2RpZmllZFRvVW5peFRpbWUoPE9MRD4pOworICAg
ICAgICBjbG9zZSBPTEQ7CisgICAgICAgIGlmIChkZWZpbmVkICRvbGQgJiYgYWJzKCRuZXcgLSAk
b2xkKSA8ICRuZXduZXNzVGhyZXNob2xkKSB7CisgICAgICAgICAgICBwcmludCAiQ3VycmVudCAk
ZmlsZSBpcyB1cCB0byBkYXRlXG4iOworICAgICAgICAgICAgZXhpdCAwOworICAgICAgICB9Cisg
ICAgfQorfQorCitwcmludCAiRG93bmxvYWRpbmcgJHppcEZpbGUuLi5cblxuIjsKKyRyZXN1bHQg
PSBzeXN0ZW0gImN1cmwgLW8gXCIkdG1wRGlyLyR6aXBGaWxlXCIgJGxpYnNVUkwiOworZGllICJD
b3VsZG4ndCBkb3dubG9hZCAkemlwRmlsZSEiIGlmICRyZXN1bHQ7CisKKyRyZXN1bHQgPSBzeXN0
ZW0gInVuemlwIiwgIi1xIiwgIi1kIiwgJHRtcERpciwgIiR0bXBEaXIvJHppcEZpbGUiOworZGll
ICJDb3VsZG4ndCB1bnppcCAkemlwRmlsZS4iIGlmICRyZXN1bHQ7CisKK3ByaW50ICJcbkluc3Rh
bGxpbmcgJGZpbGUuLi5cbiI7CisKK3N1YiB3YW50ZWQKK3sKKyAgICBteSAkcmVsYXRpdmVOYW1l
ID0gRmlsZTo6U3BlYy0+YWJzMnJlbCgkRmlsZTo6RmluZDo6bmFtZSwgIiR0bXBEaXIvJGZpbGUv
JHByZWZpeEluWmlwIik7CisgICAgbXkgJGRlc3RpbmF0aW9uID0gIiR3ZWJraXRMaWJyYXJpZXNE
aXIvJHJlbGF0aXZlTmFtZSI7CisKKyAgICBpZiAoLWQgJF8pIHsKKyAgICAgICAgbWtkaXIgJGRl
c3RpbmF0aW9uOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3lzdGVtICJjcCIsICRf
LCAkZGVzdGluYXRpb247Cit9CisKK0ZpbGU6OkZpbmQ6OmZpbmQoXCZ3YW50ZWQsICIkdG1wRGly
LyRmaWxlIik7CisKKyRyZXN1bHQgPSBzeXN0ZW0gIm12IiwgIiR0bXBEaXIvJGZpbGUuaGVhZGVy
cyIsICR3ZWJraXRMaWJyYXJpZXNEaXI7CitwcmludCBTVERFUlIgIkNvdWxkbid0IG1vdmUgJGZp
bGUuaGVhZGVycyB0byAkd2Via2l0TGlicmFyaWVzRGlyIiAuICIuXG4iIGlmICRyZXN1bHQ7CisK
K3ByaW50ICJUaGUgJGZpbGUgaGFzIGJlZW4gc3VjZXNzZnVsbHkgaW5zdGFsbGVkIGluXG4gJHdl
YmtpdExpYnJhcmllc0RpclxuIjsKK2V4aXQ7CisKK3N1YiB0b1VuaXhQYXRoCit7CisgICAgbXkg
JHBhdGggPSBzaGlmdDsKKyAgICByZXR1cm4gdW5sZXNzICRwYXRoOworICAgIGNob21wKCRwYXRo
ID0gYGN5Z3BhdGggLXUgJyRwYXRoJ2ApOworICAgIHJldHVybiAkcGF0aDsKK30KKworc3ViIGxh
c3RNb2RpZmllZFRvVW5peFRpbWUoJCkKK3sKKyAgICBteSAoJHN0cikgPSBAXzsKKworICAgICRz
dHIgPX4gL15MYXN0LU1vZGlmaWVkOiAoLiopJC8gb3IgcmV0dXJuOworICAgIHJldHVybiBzdHIy
dGltZSgkMSk7Cit9CisKK3N1YiBnZXRMaWJyYXJ5TmFtZQoreworICBteSAkcGF0aCA9IHNoaWZ0
OworICBteSAkZmlsZW5hbWU7CisgIG15ICRpID0gcmluZGV4KCRwYXRoLCAiLyIpOworICAkZmls
ZW5hbWUgPSBzdWJzdHIoJHBhdGgsICRpICsgMSk7CisgICRmaWxlbmFtZSA9IHN1YnN0cigkZmls
ZW5hbWUsIDAsIHJpbmRleCgkZmlsZW5hbWUsICIuemlwIikpOworICByZXR1cm4gJGZpbGVuYW1l
OworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0ZGlycy5wbSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQppbmRleCBlYTY0
YzZiZWQ3YzY3OTgwY2FkYzM4ZmMwNmY5MzJhYTJmZDNmN2UyLi5jZjk4ZTU2YWZmYWEwNTAzNzQ4
ZjNhYTY0OThmMmMyYjEyY2ZkYTBhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRp
cnMucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCkBAIC02OCw2ICs2OCw3IEBA
IG15ICRpc1d4OwogbXkgJGlzRWZsOwogbXkgQHd4QXJnczsKIG15ICRpc0Nocm9taXVtOworbXkg
JGlzQ2Fpcm87CiBteSAkaXNJbnNwZWN0b3JGcm9udGVuZDsKIAogIyBWYXJpYWJsZXMgZm9yIFdp
bjMyIHN1cHBvcnQKQEAgLTQxNywyNiArNDE4LDI0IEBAIHN1YiBkZXRlcm1pbmVQYXNzZWRDb25m
aWd1cmF0aW9uCiAgICAgcmV0dXJuIGlmICRzZWFyY2hlZEZvclBhc3NlZENvbmZpZ3VyYXRpb247
CiAgICAgJHNlYXJjaGVkRm9yUGFzc2VkQ29uZmlndXJhdGlvbiA9IDE7CiAKLSAgICBteSAkaXNX
aW5DYWlybyA9IGNoZWNrRm9yQXJndW1lbnRBbmRSZW1vdmVGcm9tQVJHVigiLS13aW5jYWlybyIp
OwotCiAgICAgZm9yIG15ICRpICgwIC4uICQjQVJHVikgewogICAgICAgICBteSAkb3B0ID0gJEFS
R1ZbJGldOwogICAgICAgICBpZiAoJG9wdCA9fiAvXi0tZGVidWckL2kgfHwgJG9wdCA9fiAvXi0t
ZGV2ZWwvaSkgewogICAgICAgICAgICAgc3BsaWNlKEBBUkdWLCAkaSwgMSk7CiAgICAgICAgICAg
ICAkcGFzc2VkQ29uZmlndXJhdGlvbiA9ICJEZWJ1ZyI7Ci0gICAgICAgICAgICAkcGFzc2VkQ29u
ZmlndXJhdGlvbiAuPSAiX0NhaXJvX0NGTGl0ZSIgaWYgKCRpc1dpbkNhaXJvICYmIGlzQ3lnd2lu
KCkpOworICAgICAgICAgICAgJHBhc3NlZENvbmZpZ3VyYXRpb24gLj0gIl9DYWlyb19DRkxpdGUi
IGlmIChpc1dpbkNhaXJvKCkgJiYgaXNDeWd3aW4oKSk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KICAgICAgICAgaWYgKCRvcHQgPX4gL14tLXJlbGVhc2UkL2kgfHwgJG9wdCA9fiAv
Xi0tZGVwbG95L2kpIHsKICAgICAgICAgICAgIHNwbGljZShAQVJHViwgJGksIDEpOwogICAgICAg
ICAgICAgJHBhc3NlZENvbmZpZ3VyYXRpb24gPSAiUmVsZWFzZSI7Ci0gICAgICAgICAgICAkcGFz
c2VkQ29uZmlndXJhdGlvbiAuPSAiX0NhaXJvX0NGTGl0ZSIgaWYgKCRpc1dpbkNhaXJvICYmIGlz
Q3lnd2luKCkpOworICAgICAgICAgICAgJHBhc3NlZENvbmZpZ3VyYXRpb24gLj0gIl9DYWlyb19D
RkxpdGUiIGlmIChpc1dpbkNhaXJvKCkgJiYgaXNDeWd3aW4oKSk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKCRvcHQgPX4gL14tLXByb2ZpbChlfGluZykkL2kp
IHsKICAgICAgICAgICAgIHNwbGljZShAQVJHViwgJGksIDEpOwogICAgICAgICAgICAgJHBhc3Nl
ZENvbmZpZ3VyYXRpb24gPSAiUHJvZmlsaW5nIjsKLSAgICAgICAgICAgICRwYXNzZWRDb25maWd1
cmF0aW9uIC49ICJfQ2Fpcm9fQ0ZMaXRlIiBpZiAoJGlzV2luQ2Fpcm8gJiYgaXNDeWd3aW4oKSk7
CisgICAgICAgICAgICAkcGFzc2VkQ29uZmlndXJhdGlvbiAuPSAiX0NhaXJvX0NGTGl0ZSIgaWYg
KGlzV2luQ2Fpcm8oKSAmJiBpc0N5Z3dpbigpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogICAgIH0KQEAgLTgzMSw2ICs4MzAsMTkgQEAgc3ViIGRldGVybWluZUlzQ2hyb21pdW0o
KQogICAgICRpc0Nocm9taXVtID0gY2hlY2tGb3JBcmd1bWVudEFuZFJlbW92ZUZyb21BUkdWKCIt
LWNocm9taXVtIik7CiB9CiAKK3N1YiBpc1dpbkNhaXJvKCkKK3sKKyAgICBkZXRlcm1pbmVJc1dp
bkNhaXJvKCk7CisgICAgcmV0dXJuICRpc0NhaXJvOworfQorCitzdWIgZGV0ZXJtaW5lSXNXaW5D
YWlybygpCit7CisgICAgcmV0dXJuIGlmIGRlZmluZWQoJGlzQ2Fpcm8pOworICAgICRpc0NhaXJv
ID0gY2hlY2tGb3JBcmd1bWVudEFuZFJlbW92ZUZyb21BUkdWKCItLXdpbmNhaXJvIik7Cit9CisK
Kwogc3ViIGlzQ3lnd2luKCkKIHsKICAgICByZXR1cm4gKCReTyBlcSAiY3lnd2luIikgfHwgMDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89265</attachid>
            <date>2011-04-12 13:37:47 -0700</date>
            <delta_ts>2011-04-12 14:23:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51790-20110412133746.patch</filename>
            <type>text/plain</type>
            <size>19850</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDgzNjI4KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMTEtMDQtMTIgIENhcmwgTG9ibyAgPGNhcmxsb2JvQGdtYWlsLmNvbT4gYW5k
IEJyZW50IEZ1bGdoYW0gPGJmdWxnaGFtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGF0Y2ggdG8gZG93bmxvYWQgdGhlIFdpbkNh
aXJvIGRlcGVuZGFuY2llcyBhcyBwYXJ0IG9mIGJ1aWxkLXdlYmtpdC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxNzkwCisKKyAgICAgICAgVGhpcyBw
YXRjaCBkb3dubG9hZHMgdGhlIGRlcGVuZGFuY2llcyBmcm9tIAorICAgICAgICAgICAgICAgICBo
dHRwOi8vaWRpc2subWFjLmNvbS9iZnVsZ2hhbS1QdWJsaWMvV2luQ2Fpcm9SZXF1aXJlbWVudHMu
emlwIAorICAgICAgICBjaGVja2luZyB0aGUgbW9kaWZpY2F0aW9uIHRpbWVzdGFtcCBldGMuIAor
CisgICAgICAgICogVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKKyAgICAgICAgKiBUb29scy9T
Y3JpcHRzL3VwZGF0ZS13ZWJraXQ6IE1vZGlmaWVkIHRvIHVuZGVyc3RhbmQgdGhlIC0td2luY2Fp
cm8KKyAgICAgICAgICBmbGFnLCBhbmQgdG8gdXBkYXRlIFdpbkNhaXJvIGRlcGVuZGVuY2llcyB3
aGVuIHVzZWQuCisgICAgICAgICogVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWNhaXJvLWxp
YnM6IGFkZGVkCisgICAgICAgICogVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWRlcGVuZGVu
Y3k6IGFkZGVkCisgICAgICAgICogVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWF1eGlsaWFy
eS1saWJzCisKIDIwMTEtMDQtMTIgIEFsaWNlIExpdSAgPGFsaWNlLmxpdUBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KSW5kZXg6IFRvb2xzL1NjcmlwdHMvYnVp
bGQtd2Via2l0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CShyZXZp
c2lvbiA4MzYyOCkKKysrIFRvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CSh3b3JraW5nIGNvcHkp
CkBAIC01MDgsNiArNTA4LDEwIEBAIGlmIChpc0d0aygpKSB7CiAgICAgIyBDb3B5IFdlYktpdFN1
cHBvcnRMaWJyYXJ5IHRvIHRoZSBjb3JyZWN0IGxvY2F0aW9uIGluIFdlYktpdExpYnJhcmllcyBz
byBpdCBjYW4gYmUgZm91bmQuCiAgICAgIyBXaWxsIGZhaWwgaWYgV2ViS2l0U3VwcG9ydExpYnJh
cnkuemlwIGlzIG5vdCBpbiBzb3VyY2Ugcm9vdC4KICAgICAoc3lzdGVtKCJwZXJsIFRvb2xzL1Nj
cmlwdHMvdXBkYXRlLXdlYmtpdC1zdXBwb3J0LWxpYnMiKSA9PSAwKSBvciBkaWU7CisgICAgIyBV
cGRhdGUgQ2Fpcm8gRGVwZW5kYW5jaWVzLgorICAgIGlmKGlzV2luQ2Fpcm8oKSkgeworICAgICAg
ICAoc3lzdGVtKCJwZXJsIFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1jYWlyby1saWJzIikg
PT0gMCkgb3IgZGllOworICAgIH0KIH0gZWxzaWYgKGlzUXQoKSkgewogICAgIHB1c2ggQG9wdGlv
bnMsICItLWluc3RhbGwtaGVhZGVycz0iIC4gJGluc3RhbGxIZWFkZXJzIGlmIGRlZmluZWQoJGlu
c3RhbGxIZWFkZXJzKTsKICAgICBwdXNoIEBvcHRpb25zLCAiLS1pbnN0YWxsLWxpYnM9IiAuICRp
bnN0YWxsTGlicyBpZiBkZWZpbmVkKCRpbnN0YWxsTGlicyk7CkluZGV4OiBUb29scy9TY3JpcHRz
L3VwZGF0ZS13ZWJraXQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0
CShyZXZpc2lvbiA4MzYyOCkKKysrIFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdAkod29ya2lu
ZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKIAogIyBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmln
aHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0
IChDKSAyMDExIEJyZW50IEZ1bGdoYW0uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ5LDYgKzUwLDggQEAgbXkgJHVzZUdZUCA9IDA7CiAKIGRl
dGVybWluZUlzQ2hyb21pdW0oKTsKIAorZGV0ZXJtaW5lSXNXaW5DYWlybygpOworCiBjaGRpcldl
YktpdCgpOwogCiBteSAkZ2V0T3B0aW9uc1Jlc3VsdCA9IEdldE9wdGlvbnMoCkBAIC02NCw2ICs2
Nyw3IEBAIFVzYWdlOiBAe1sgYmFzZW5hbWUoJDApIF19IFtvcHRpb25zXQogICAtaHwtLWhlbHAg
ICBzaG93IHRoZSBoZWxwIG1lc3NhZ2UKICAgLXF8LS1xdWlldCAgcGFzcyAtcSB0byBzdm4gdXBk
YXRlIGZvciBxdWlldCB1cGRhdGVzCiAgIC0tZ3lwICAgICAgIGdlbmVyYXRlIHByb2plY3QgZmls
ZXMgZnJvbSBneXAgYWZ0ZXIgdXBkYXRlCisgIC0td2luY2Fpcm8gIGFsc28gdXBkYXRlIGRlcGVu
ZGVuY2llcyBvZiB0aGUgV2luQ2Fpcm8gcG9ydAogX19FTkRfXwogICAgIGV4aXQgMTsKIH0KQEAg
LTk2LDYgKzEwMCw5IEBAIGlmICgtZCAiLi4vSW50ZXJuYWwiKSB7CiAgICAgc3lzdGVtKCJwZXJs
IiwgIlRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1jaHJvbWl1bSIpID09IDAgb3IgZGllICQh
OwogfSBlbHNpZiAoaXNBcHBsZVdpbldlYktpdCgpKSB7CiAgICAgc3lzdGVtKCJwZXJsIiwgIlRv
b2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1hdXhpbGlhcnktbGlicyIpID09IDAgb3IgZGllOwor
ICAgIGlmIChpc1dpbkNhaXJvKCkpIHsKKyAgICAgICAgc3lzdGVtKCJwZXJsIiwgIlRvb2xzL1Nj
cmlwdHMvdXBkYXRlLXdlYmtpdC13aW5jYWlyby1saWJzIikgPT0gMCBvciBkaWU7CisgICAgfQog
fQogCiBzZXR1cEFwcGxlV2luRW52KCkgaWYgaXNBcHBsZVdpbldlYktpdCgpOwpJbmRleDogVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWF1eGlsaWFyeS1saWJzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1hdXhpbGlhcnktbGlicwkocmV2aXNpb24gODM2Mjgp
CisrKyBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtYXV4aWxpYXJ5LWxpYnMJKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDEwNSArMzEsOCBAQAogdXNlIHN0cmljdDsKIHVzZSB3YXJuaW5nczsKIAot
dXNlIEZpbGU6OkZpbmQ7Ci11c2UgRmlsZTo6U3BlYzsKLXVzZSBGaWxlOjpUZW1wICgpOwotdXNl
IEZpbmRCaW47Ci11c2UgSFRUUDo6RGF0ZSBxdyhzdHIydGltZSk7Ci11c2UgUE9TSVg7Ci11c2Ug
bGliICRGaW5kQmluOjpCaW47Ci11c2Ugd2Via2l0ZGlyczsKLQotc3ViIGxhc3RNb2RpZmllZFRv
VW5peFRpbWUoJCk7Ci0KLSMgVGltZSBpbiBzZWNvbmRzIHRoYXQgdGhlIG5ldyB6aXAgZmlsZSBt
dXN0IGJlIG5ld2VyIHRoYW4gdGhlIG9sZCBmb3IgdXMgdG8KLSMgY29uc2lkZXIgdGhlbSB0byBi
ZSBkaWZmZXJlbnQuIElmIHRoZSBkaWZmZXJlbmNlIGluIG1vZGlmaWNhdGlvbiB0aW1lIGlzIGxl
c3MKLSMgdGhhbiB0aGlzIHRocmVzaG9sZCwgd2UgYXNzdW1lIHRoYXQgdGhlIGZpbGVzIGFyZSB0
aGUgc2FtZS4gV2UgbmVlZCB0aGlzCi0jIGJlY2F1c2UgdGhlIHppcCBmaWxlIGlzIHNlcnZlZCBm
cm9tIGEgc2V0IG9mIG1pcnJvcnMgd2l0aCBzbGlnaHRseSBkaWZmZXJlbnQKLSMgTGFzdC1Nb2Rp
ZmllZCB0aW1lcy4KLW15ICRuZXduZXNzVGhyZXNob2xkID0gMzA7Ci0KLW15ICRzb3VyY2VEaXIg
PSBzb3VyY2VEaXIoKTsKIG15ICRmaWxlID0gIldlYktpdEF1eGlsaWFyeUxpYnJhcnkiOwogbXkg
JHppcEZpbGUgPSAiJGZpbGUuemlwIjsgCiBteSAkYXV4aWxpYXJ5TGlic1VSTCA9ICJodHRwOi8v
ZGV2ZWxvcGVyLmFwcGxlLmNvbS9vcGVuc291cmNlL2ludGVybmV0LyR6aXBGaWxlIjsKLW15ICR3
ZWJraXRMaWJyYXJpZXNEaXIgPSB0b1VuaXhQYXRoKCRFTlZ7J1dFQktJVExJQlJBUklFU0RJUid9
KSB8fCAiJHNvdXJjZURpci9XZWJLaXRMaWJyYXJpZXMvd2luIjsKLW15ICR0bXBSZWxhdGl2ZURp
ciA9IEZpbGU6OlRlbXA6OnRlbXBkaXIoIndlYmtpdGxpYnNYWFhYWFhYIiwgVE1QRElSID0+IDEs
IENMRUFOVVAgPT4gMSk7Ci1teSAkdG1wQWJzRGlyID0gRmlsZTo6U3BlYy0+cmVsMmFicygkdG1w
UmVsYXRpdmVEaXIpOwotCi1wcmludCAiQ2hlY2tpbmcgTGFzdC1Nb2RpZmllZCBkYXRlIG9mICR6
aXBGaWxlLi4uXG4iOwotCi1teSAkcmVzdWx0ID0gc3lzdGVtICJjdXJsIC1zIC1JICRhdXhpbGlh
cnlMaWJzVVJMIHwgZ3JlcCBMYXN0LU1vZGlmaWVkID4gXCIkdG1wQWJzRGlyLyRmaWxlLmhlYWRl
cnNcIiI7Ci0KLWlmIChXRVhJVFNUQVRVUygkcmVzdWx0KSkgewotICAgIHByaW50IFNUREVSUiAi
Q291bGRuJ3QgY2hlY2sgTGFzdC1Nb2RpZmllZCBkYXRlIG9mIG5ldyAkemlwRmlsZS5cbiI7Ci0g
ICAgcHJpbnQgU1RERVJSICJQbGVhc2UgZW5zdXJlIHRoYXQgJGF1eGlsaWFyeUxpYnNVUkwgaXMg
cmVhY2hhYmxlLlxuIjsKLQotICAgIGlmICghIC1mICIkd2Via2l0TGlicmFyaWVzRGlyLyRmaWxl
LmhlYWRlcnMiKSB7Ci0gICAgICAgIHByaW50IFNUREVSUiAiVW5hYmxlIHRvIGNoZWNrIExhc3Qt
TW9kaWZpZWQgZGF0ZSBhbmQgbm8gdmVyc2lvbiBvZiAkZmlsZSB0byBmYWxsIGJhY2sgdG8uXG4i
OwotICAgICAgICBleGl0IDE7Ci0gICAgfQotCi0gICAgcHJpbnQgU1RERVJSICJGYWxsaW5nIGJh
Y2sgdG8gZXhpc3RpbmcgdmVyc2lvbiBvZiAkZmlsZS5cbiI7Ci0gICAgZXhpdCAwOwotfQotCi1p
ZiAob3BlbiBORVcsICIkdG1wQWJzRGlyLyRmaWxlLmhlYWRlcnMiKSB7Ci0gICAgbXkgJG5ldyA9
IGxhc3RNb2RpZmllZFRvVW5peFRpbWUoPE5FVz4pOwotICAgIGNsb3NlIE5FVzsKLQotICAgIGlm
IChkZWZpbmVkICRuZXcgJiYgb3BlbiBPTEQsICIkd2Via2l0TGlicmFyaWVzRGlyLyRmaWxlLmhl
YWRlcnMiKSB7Ci0gICAgICAgIG15ICRvbGQgPSBsYXN0TW9kaWZpZWRUb1VuaXhUaW1lKDxPTEQ+
KTsKLSAgICAgICAgY2xvc2UgT0xEOwotICAgICAgICBpZiAoZGVmaW5lZCAkb2xkICYmIGFicygk
bmV3IC0gJG9sZCkgPCAkbmV3bmVzc1RocmVzaG9sZCkgewotICAgICAgICAgICAgcHJpbnQgIkN1
cnJlbnQgJGZpbGUgaXMgdXAgdG8gZGF0ZVxuIjsKLSAgICAgICAgICAgIGV4aXQgMDsKLSAgICAg
ICAgfQotICAgIH0KLX0KLQotcHJpbnQgIkRvd25sb2FkaW5nICR6aXBGaWxlLi4uXG5cbiI7Ci0k
cmVzdWx0ID0gc3lzdGVtICJjdXJsIC1vIFwiJHRtcEFic0Rpci8kemlwRmlsZVwiICRhdXhpbGlh
cnlMaWJzVVJMIjsKLWRpZSAiQ291bGRuJ3QgZG93bmxvYWQgJHppcEZpbGUhIiBpZiAkcmVzdWx0
OwotCi0kcmVzdWx0ID0gc3lzdGVtICJ1bnppcCIsICItcSIsICItZCIsICR0bXBBYnNEaXIsICIk
dG1wQWJzRGlyLyR6aXBGaWxlIjsKLWRpZSAiQ291bGRuJ3QgdW56aXAgJHppcEZpbGUuIiBpZiAk
cmVzdWx0OwotCi1wcmludCAiXG5JbnN0YWxsaW5nICRmaWxlLi4uXG4iOwotCi1zdWIgd2FudGVk
Ci17Ci0gICAgbXkgJHJlbGF0aXZlTmFtZSA9IEZpbGU6OlNwZWMtPmFiczJyZWwoJEZpbGU6OkZp
bmQ6Om5hbWUsICIkdG1wQWJzRGlyLyRmaWxlL3dpbiIpOwotICAgIG15ICRkZXN0aW5hdGlvbiA9
ICIkd2Via2l0TGlicmFyaWVzRGlyLyRyZWxhdGl2ZU5hbWUiOwotCi0gICAgaWYgKC1kICRfKSB7
Ci0gICAgICAgIG1rZGlyICRkZXN0aW5hdGlvbjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIHN5c3RlbSAiY3AiLCAkXywgJGRlc3RpbmF0aW9uOwotfQotCi1GaWxlOjpGaW5kOjpmaW5k
KFwmd2FudGVkLCAiJHRtcEFic0Rpci8kZmlsZSIpOwotCi0kcmVzdWx0ID0gc3lzdGVtICJtdiIs
ICIkdG1wQWJzRGlyLyRmaWxlLmhlYWRlcnMiLCAkd2Via2l0TGlicmFyaWVzRGlyOwotcHJpbnQg
U1RERVJSICJDb3VsZG4ndCBtb3ZlICRmaWxlLmhlYWRlcnMgdG8gJHdlYmtpdExpYnJhcmllc0Rp
ciIgLiAiLlxuIiBpZiAkcmVzdWx0OwotCi1wcmludCAiVGhlICRmaWxlIGhhcyBiZWVuIHN1Y2Vz
c2Z1bGx5IGluc3RhbGxlZCBpblxuICR3ZWJraXRMaWJyYXJpZXNEaXJcbiI7Ci1leGl0OwotCi1z
dWIgdG9Vbml4UGF0aAotewotICAgIG15ICRwYXRoID0gc2hpZnQ7Ci0gICAgcmV0dXJuIHVubGVz
cyAkcGF0aDsKLSAgICBjaG9tcCgkcGF0aCA9IGBjeWdwYXRoIC11ICckcGF0aCdgKTsKLSAgICBy
ZXR1cm4gJHBhdGg7Ci19Ci0KLXN1YiBsYXN0TW9kaWZpZWRUb1VuaXhUaW1lKCQpCi17Ci0gICAg
bXkgKCRzdHIpID0gQF87CiAKLSAgICAkc3RyID1+IC9eTGFzdC1Nb2RpZmllZDogKC4qKSQvIG9y
IHJldHVybjsKLSAgICByZXR1cm4gc3RyMnRpbWUoJDEpOwotfQorc3lzdGVtKCJwZXJsIiwgIlRv
b2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1kZXBlbmRlbmN5IiwgJGF1eGlsaWFyeUxpYnNVUkws
ICJ3aW4iKSA9PSAwIG9yIGRpZTsKSW5kZXg6IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1k
ZXBlbmRlbmN5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1kZXBl
bmRlbmN5CShyZXZpc2lvbiA4MzU5NykJKGZyb20gVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0
LWF1eGlsaWFyeS1saWJzOjgzNTk3KQorKysgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWRl
cGVuZGVuY3kJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMzUgQEAKKyMhL3Vzci9iaW4vcGVy
bCAtdworCisjIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNyBBcHBsZSBDb21wdXRlciwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIworIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisjIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisjIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisj
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCisjICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorIyBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorIyBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyMgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
IyBVcGRhdGVzIGEgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgdG8gdGhlIG5ldyBXZWJLaXRBdXhp
bGlhcnlMaWJyYXJ5CisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7CisKK3VzZSBGaWxlOjpG
aW5kOwordXNlIEZpbGU6OlNwZWM7Cit1c2UgRmlsZTo6VGVtcCAoKTsKK3VzZSBGaW5kQmluOwor
dXNlIEhUVFA6OkRhdGUgcXcoc3RyMnRpbWUpOwordXNlIFBPU0lYOwordXNlIGxpYiAkRmluZEJp
bjo6QmluOwordXNlIHdlYmtpdGRpcnM7CisKK3N1YiBsYXN0TW9kaWZpZWRUb1VuaXhUaW1lKCQp
OworCisjIFRpbWUgaW4gc2Vjb25kcyB0aGF0IHRoZSBuZXcgemlwIGZpbGUgbXVzdCBiZSBuZXdl
ciB0aGFuIHRoZSBvbGQgZm9yIHVzIHRvCisjIGNvbnNpZGVyIHRoZW0gdG8gYmUgZGlmZmVyZW50
LiBJZiB0aGUgZGlmZmVyZW5jZSBpbiBtb2RpZmljYXRpb24gdGltZSBpcyBsZXNzCisjIHRoYW4g
dGhpcyB0aHJlc2hvbGQsIHdlIGFzc3VtZSB0aGF0IHRoZSBmaWxlcyBhcmUgdGhlIHNhbWUuIFdl
IG5lZWQgdGhpcworIyBiZWNhdXNlIHRoZSB6aXAgZmlsZSBpcyBzZXJ2ZWQgZnJvbSBhIHNldCBv
ZiBtaXJyb3JzIHdpdGggc2xpZ2h0bHkgZGlmZmVyZW50CisjIExhc3QtTW9kaWZpZWQgdGltZXMu
CitteSAkbmV3bmVzc1RocmVzaG9sZCA9IDMwOworCitteSAkc291cmNlRGlyID0gc291cmNlRGly
KCk7CitteSAkZmlsZSA9ICJXZWJLaXRBdXhpbGlhcnlMaWJyYXJ5IjsKK215ICR6aXBGaWxlID0g
IiRmaWxlLnppcCI7IAorbXkgJGF1eGlsaWFyeUxpYnNVUkwgPSAiaHR0cDovL2RldmVsb3Blci5h
cHBsZS5jb20vb3BlbnNvdXJjZS9pbnRlcm5ldC8kemlwRmlsZSI7CitteSAkd2Via2l0TGlicmFy
aWVzRGlyID0gdG9Vbml4UGF0aCgkRU5WeydXRUJLSVRMSUJSQVJJRVNESVInfSkgfHwgIiRzb3Vy
Y2VEaXIvV2ViS2l0TGlicmFyaWVzL3dpbiI7CitteSAkdG1wUmVsYXRpdmVEaXIgPSBGaWxlOjpU
ZW1wOjp0ZW1wZGlyKCJ3ZWJraXRsaWJzWFhYWFhYWCIsIFRNUERJUiA9PiAxLCBDTEVBTlVQID0+
IDEpOworbXkgJHRtcEFic0RpciA9IEZpbGU6OlNwZWMtPnJlbDJhYnMoJHRtcFJlbGF0aXZlRGly
KTsKKworcHJpbnQgIkNoZWNraW5nIExhc3QtTW9kaWZpZWQgZGF0ZSBvZiAkemlwRmlsZS4uLlxu
IjsKKworbXkgJHJlc3VsdCA9IHN5c3RlbSAiY3VybCAtcyAtSSAkYXV4aWxpYXJ5TGlic1VSTCB8
IGdyZXAgTGFzdC1Nb2RpZmllZCA+IFwiJHRtcEFic0Rpci8kZmlsZS5oZWFkZXJzXCIiOworCitp
ZiAoV0VYSVRTVEFUVVMoJHJlc3VsdCkpIHsKKyAgICBwcmludCBTVERFUlIgIkNvdWxkbid0IGNo
ZWNrIExhc3QtTW9kaWZpZWQgZGF0ZSBvZiBuZXcgJHppcEZpbGUuXG4iOworICAgIHByaW50IFNU
REVSUiAiUGxlYXNlIGVuc3VyZSB0aGF0ICRhdXhpbGlhcnlMaWJzVVJMIGlzIHJlYWNoYWJsZS5c
biI7CisKKyAgICBpZiAoISAtZiAiJHdlYmtpdExpYnJhcmllc0Rpci8kZmlsZS5oZWFkZXJzIikg
eworICAgICAgICBwcmludCBTVERFUlIgIlVuYWJsZSB0byBjaGVjayBMYXN0LU1vZGlmaWVkIGRh
dGUgYW5kIG5vIHZlcnNpb24gb2YgJGZpbGUgdG8gZmFsbCBiYWNrIHRvLlxuIjsKKyAgICAgICAg
ZXhpdCAxOworICAgIH0KKworICAgIHByaW50IFNUREVSUiAiRmFsbGluZyBiYWNrIHRvIGV4aXN0
aW5nIHZlcnNpb24gb2YgJGZpbGUuXG4iOworICAgIGV4aXQgMDsKK30KKworaWYgKG9wZW4gTkVX
LCAiJHRtcEFic0Rpci8kZmlsZS5oZWFkZXJzIikgeworICAgIG15ICRuZXcgPSBsYXN0TW9kaWZp
ZWRUb1VuaXhUaW1lKDxORVc+KTsKKyAgICBjbG9zZSBORVc7CisKKyAgICBpZiAoZGVmaW5lZCAk
bmV3ICYmIG9wZW4gT0xELCAiJHdlYmtpdExpYnJhcmllc0Rpci8kZmlsZS5oZWFkZXJzIikgewor
ICAgICAgICBteSAkb2xkID0gbGFzdE1vZGlmaWVkVG9Vbml4VGltZSg8T0xEPik7CisgICAgICAg
IGNsb3NlIE9MRDsKKyAgICAgICAgaWYgKGRlZmluZWQgJG9sZCAmJiBhYnMoJG5ldyAtICRvbGQp
IDwgJG5ld25lc3NUaHJlc2hvbGQpIHsKKyAgICAgICAgICAgIHByaW50ICJDdXJyZW50ICRmaWxl
IGlzIHVwIHRvIGRhdGVcbiI7CisgICAgICAgICAgICBleGl0IDA7CisgICAgICAgIH0KKyAgICB9
Cit9CisKK3ByaW50ICJEb3dubG9hZGluZyAkemlwRmlsZS4uLlxuXG4iOworJHJlc3VsdCA9IHN5
c3RlbSAiY3VybCAtbyBcIiR0bXBBYnNEaXIvJHppcEZpbGVcIiAkYXV4aWxpYXJ5TGlic1VSTCI7
CitkaWUgIkNvdWxkbid0IGRvd25sb2FkICR6aXBGaWxlISIgaWYgJHJlc3VsdDsKKworJHJlc3Vs
dCA9IHN5c3RlbSAidW56aXAiLCAiLXEiLCAiLWQiLCAkdG1wQWJzRGlyLCAiJHRtcEFic0Rpci8k
emlwRmlsZSI7CitkaWUgIkNvdWxkbid0IHVuemlwICR6aXBGaWxlLiIgaWYgJHJlc3VsdDsKKwor
cHJpbnQgIlxuSW5zdGFsbGluZyAkZmlsZS4uLlxuIjsKKworc3ViIHdhbnRlZAoreworICAgIG15
ICRyZWxhdGl2ZU5hbWUgPSBGaWxlOjpTcGVjLT5hYnMycmVsKCRGaWxlOjpGaW5kOjpuYW1lLCAi
JHRtcEFic0Rpci8kZmlsZS93aW4iKTsKKyAgICBteSAkZGVzdGluYXRpb24gPSAiJHdlYmtpdExp
YnJhcmllc0Rpci8kcmVsYXRpdmVOYW1lIjsKKworICAgIGlmICgtZCAkXykgeworICAgICAgICBt
a2RpciAkZGVzdGluYXRpb247CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzeXN0ZW0g
ImNwIiwgJF8sICRkZXN0aW5hdGlvbjsKK30KKworRmlsZTo6RmluZDo6ZmluZChcJndhbnRlZCwg
IiR0bXBBYnNEaXIvJGZpbGUiKTsKKworJHJlc3VsdCA9IHN5c3RlbSAibXYiLCAiJHRtcEFic0Rp
ci8kZmlsZS5oZWFkZXJzIiwgJHdlYmtpdExpYnJhcmllc0RpcjsKK3ByaW50IFNUREVSUiAiQ291
bGRuJ3QgbW92ZSAkZmlsZS5oZWFkZXJzIHRvICR3ZWJraXRMaWJyYXJpZXNEaXIiIC4gIi5cbiIg
aWYgJHJlc3VsdDsKKworcHJpbnQgIlRoZSAkZmlsZSBoYXMgYmVlbiBzdWNlc3NmdWxseSBpbnN0
YWxsZWQgaW5cbiAkd2Via2l0TGlicmFyaWVzRGlyXG4iOworZXhpdDsKKworc3ViIHRvVW5peFBh
dGgKK3sKKyAgICBteSAkcGF0aCA9IHNoaWZ0OworICAgIHJldHVybiB1bmxlc3MgJHBhdGg7Cisg
ICAgY2hvbXAoJHBhdGggPSBgY3lncGF0aCAtdSAnJHBhdGgnYCk7CisgICAgcmV0dXJuICRwYXRo
OworfQorCitzdWIgbGFzdE1vZGlmaWVkVG9Vbml4VGltZSgkKQoreworICAgIG15ICgkc3RyKSA9
IEBfOworCisgICAgJHN0ciA9fiAvXkxhc3QtTW9kaWZpZWQ6ICguKikkLyBvciByZXR1cm47Cisg
ICAgcmV0dXJuIHN0cjJ0aW1lKCQxKTsKK30KSW5kZXg6IFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdl
YmtpdC1kZXBlbmRlbmN5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtp
dC1kZXBlbmRlbmN5CShyZXZpc2lvbiA4MzU5NykKKysrIFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdl
YmtpdC1kZXBlbmRlbmN5CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogIyEvdXNyL2Jp
bi9wZXJsIC13CiAKICMgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3IEFwcGxlIENvbXB1
dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTEgQ2Fy
bCBMb2JvLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNDAsNiArNDEsMTcgQEAgdXNlIFBPU0lYOwogdXNlIGxpYiAkRmluZEJpbjo6QmluOwog
dXNlIHdlYmtpdGRpcnM7CiAKK2lmICgkI0FSR1YgIT0gMSkgeworICAgIGRpZSA8PEVPRjsKK1Vz
YWdlOgorICAgICAgICB1cGRhdGUtd2Via2l0LWRlcGVuZGFuY3kgPFVSTCB3aXRoIHRoZSBkZXBl
bmRhbmN5IHppcCBmaWxlPiA8KnByZWZpeCBkaXIgaW5zaWRlIHppcCB3aXRob3V0IGZpbGVuYW1l
PgorCisgICAgICAgICogSWYgZmlsZW5hbWUgaXMgcmVxdWlyZW1lbnRzLnppcCBhbmQgdGhlIGNv
bnRlbnRzIG9mIHRoZSB6aXBmaWxlIGFyZSAicmVxdWlyZW1lbnRzL3giIHRoZW4gcHJlZml4ID0g
Ii4iCisgICAgICAgICogSWYgZmlsZW5hbWUgaXMgeHl6LnppcCBhbmQgdGhlIGNvbnRlbnRzIG9m
IHRoZSB6aXBmaWxlIGFyZSB4eXovYWJjL3giIHRoZW4gcHJlZml4ID0gImFiYyIKKyAgICAgICAg
KiB4IGlzIGxpYiBvciBpbmNsdWRlIG9yIGJpbi4KK0VPRgorfQorCiBzdWIgbGFzdE1vZGlmaWVk
VG9Vbml4VGltZSgkKTsKIAogIyBUaW1lIGluIHNlY29uZHMgdGhhdCB0aGUgbmV3IHppcCBmaWxl
IG11c3QgYmUgbmV3ZXIgdGhhbiB0aGUgb2xkIGZvciB1cyB0bwpAQCAtNDksMjEgKzYxLDIyIEBA
IHN1YiBsYXN0TW9kaWZpZWRUb1VuaXhUaW1lKCQpOwogIyBMYXN0LU1vZGlmaWVkIHRpbWVzLgog
bXkgJG5ld25lc3NUaHJlc2hvbGQgPSAzMDsKIAorbXkgJGxpYnNVUkwgPSBzaGlmdDsKK215ICRw
cmVmaXhJblppcCA9IHNoaWZ0OwogbXkgJHNvdXJjZURpciA9IHNvdXJjZURpcigpOwotbXkgJGZp
bGUgPSAiV2ViS2l0QXV4aWxpYXJ5TGlicmFyeSI7CitteSAkZmlsZSA9IGdldExpYnJhcnlOYW1l
KCRsaWJzVVJMKTsKIG15ICR6aXBGaWxlID0gIiRmaWxlLnppcCI7IAotbXkgJGF1eGlsaWFyeUxp
YnNVUkwgPSAiaHR0cDovL2RldmVsb3Blci5hcHBsZS5jb20vb3BlbnNvdXJjZS9pbnRlcm5ldC8k
emlwRmlsZSI7CiBteSAkd2Via2l0TGlicmFyaWVzRGlyID0gdG9Vbml4UGF0aCgkRU5WeydXRUJL
SVRMSUJSQVJJRVNESVInfSkgfHwgIiRzb3VyY2VEaXIvV2ViS2l0TGlicmFyaWVzL3dpbiI7CiBt
eSAkdG1wUmVsYXRpdmVEaXIgPSBGaWxlOjpUZW1wOjp0ZW1wZGlyKCJ3ZWJraXRsaWJzWFhYWFhY
WCIsIFRNUERJUiA9PiAxLCBDTEVBTlVQID0+IDEpOwogbXkgJHRtcEFic0RpciA9IEZpbGU6OlNw
ZWMtPnJlbDJhYnMoJHRtcFJlbGF0aXZlRGlyKTsKIAogcHJpbnQgIkNoZWNraW5nIExhc3QtTW9k
aWZpZWQgZGF0ZSBvZiAkemlwRmlsZS4uLlxuIjsKIAotbXkgJHJlc3VsdCA9IHN5c3RlbSAiY3Vy
bCAtcyAtSSAkYXV4aWxpYXJ5TGlic1VSTCB8IGdyZXAgTGFzdC1Nb2RpZmllZCA+IFwiJHRtcEFi
c0Rpci8kZmlsZS5oZWFkZXJzXCIiOworbXkgJHJlc3VsdCA9IHN5c3RlbSAiY3VybCAtcyAtSSAk
bGlic1VSTCB8IGdyZXAgTGFzdC1Nb2RpZmllZCA+IFwiJHRtcEFic0Rpci8kZmlsZS5oZWFkZXJz
XCIiOwogCiBpZiAoV0VYSVRTVEFUVVMoJHJlc3VsdCkpIHsKICAgICBwcmludCBTVERFUlIgIkNv
dWxkbid0IGNoZWNrIExhc3QtTW9kaWZpZWQgZGF0ZSBvZiBuZXcgJHppcEZpbGUuXG4iOwotICAg
IHByaW50IFNUREVSUiAiUGxlYXNlIGVuc3VyZSB0aGF0ICRhdXhpbGlhcnlMaWJzVVJMIGlzIHJl
YWNoYWJsZS5cbiI7CisgICAgcHJpbnQgU1RERVJSICJQbGVhc2UgZW5zdXJlIHRoYXQgJGxpYnNV
UkwgaXMgcmVhY2hhYmxlLlxuIjsKIAogICAgIGlmICghIC1mICIkd2Via2l0TGlicmFyaWVzRGly
LyRmaWxlLmhlYWRlcnMiKSB7CiAgICAgICAgIHByaW50IFNUREVSUiAiVW5hYmxlIHRvIGNoZWNr
IExhc3QtTW9kaWZpZWQgZGF0ZSBhbmQgbm8gdmVyc2lvbiBvZiAkZmlsZSB0byBmYWxsIGJhY2sg
dG8uXG4iOwpAQCAtODksNyArMTAyLDcgQEAgaWYgKG9wZW4gTkVXLCAiJHRtcEFic0Rpci8kZmls
ZS5oZWFkZXJzIgogfQogCiBwcmludCAiRG93bmxvYWRpbmcgJHppcEZpbGUuLi5cblxuIjsKLSRy
ZXN1bHQgPSBzeXN0ZW0gImN1cmwgLW8gXCIkdG1wQWJzRGlyLyR6aXBGaWxlXCIgJGF1eGlsaWFy
eUxpYnNVUkwiOworJHJlc3VsdCA9IHN5c3RlbSAiY3VybCAtbyBcIiR0bXBBYnNEaXIvJHppcEZp
bGVcIiAkbGlic1VSTCI7CiBkaWUgIkNvdWxkbid0IGRvd25sb2FkICR6aXBGaWxlISIgaWYgJHJl
c3VsdDsKIAogJHJlc3VsdCA9IHN5c3RlbSAidW56aXAiLCAiLXEiLCAiLWQiLCAkdG1wQWJzRGly
LCAiJHRtcEFic0Rpci8kemlwRmlsZSI7CkBAIC05OSw3ICsxMTIsNyBAQCBwcmludCAiXG5JbnN0
YWxsaW5nICRmaWxlLi4uXG4iOwogCiBzdWIgd2FudGVkCiB7Ci0gICAgbXkgJHJlbGF0aXZlTmFt
ZSA9IEZpbGU6OlNwZWMtPmFiczJyZWwoJEZpbGU6OkZpbmQ6Om5hbWUsICIkdG1wQWJzRGlyLyRm
aWxlL3dpbiIpOworICAgIG15ICRyZWxhdGl2ZU5hbWUgPSBGaWxlOjpTcGVjLT5hYnMycmVsKCRG
aWxlOjpGaW5kOjpuYW1lLCAiJHRtcEFic0Rpci8kZmlsZS8kcHJlZml4SW5aaXAiKTsKICAgICBt
eSAkZGVzdGluYXRpb24gPSAiJHdlYmtpdExpYnJhcmllc0Rpci8kcmVsYXRpdmVOYW1lIjsKIAog
ICAgIGlmICgtZCAkXykgewpAQCAtMTMzLDMgKzE0NiwxNCBAQCBzdWIgbGFzdE1vZGlmaWVkVG9V
bml4VGltZSgkKQogICAgICRzdHIgPX4gL15MYXN0LU1vZGlmaWVkOiAoLiopJC8gb3IgcmV0dXJu
OwogICAgIHJldHVybiBzdHIydGltZSgkMSk7CiB9CisKK3N1YiBnZXRMaWJyYXJ5TmFtZQorewor
ICBteSAkcGF0aCA9IHNoaWZ0OworICBteSAkZmlsZW5hbWU7CisgIG15ICRpID0gcmluZGV4KCRw
YXRoLCAiLyIpOworICAkZmlsZW5hbWUgPSBzdWJzdHIoJHBhdGgsICRpICsgMSk7CisgICRmaWxl
bmFtZSA9IHN1YnN0cigkZmlsZW5hbWUsIDAsIHJpbmRleCgkZmlsZW5hbWUsICIuemlwIikpOwor
ICByZXR1cm4gJGZpbGVuYW1lOworfQorCkluZGV4OiBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJr
aXQtd2luY2Fpcm8tbGlicwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJr
aXQtd2luY2Fpcm8tbGlicwkocmV2aXNpb24gMCkKKysrIFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdl
YmtpdC13aW5jYWlyby1saWJzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACisjIS91c3Iv
YmluL3BlcmwgLXcKKworIyBDb3B5cmlnaHQgKEMpIDIwMTEgQ2FybCBMb2JvLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIwor
IyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4gCisjIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENv
bXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisjICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
CisjICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uIAorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisj
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
IyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorIyBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyMgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBVcGRhdGVzIGEgZGV2
ZWxvcG1lbnQgZW52aXJvbm1lbnQgdG8gdGhlIG5ldyBXZWJLaXRBdXhpbGlhcnlMaWJyYXJ5CisK
K3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7CisKK215ICRmaWxlID0gIldpbkNhaXJvUmVxdWly
ZW1lbnRzIjsKK215ICR6aXBGaWxlID0gIiRmaWxlLnppcCI7IAorbXkgJHdpbkNhaXJvTGlic1VS
TCA9ICJodHRwOi8vaWRpc2subWFjLmNvbS9iZnVsZ2hhbS1QdWJsaWMvJHppcEZpbGUiOworCitz
eXN0ZW0oInBlcmwiLCAiVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWRlcGVuZGVuY3kiLCAk
d2luQ2Fpcm9MaWJzVVJMLCAiLiIpID09IDAgb3IgZGllOwoKUHJvcGVydHkgY2hhbmdlcyBvbjog
VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LXdpbmNhaXJvLWxpYnMKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRl
ZDogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJz
LnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQkocmV2aXNpb24g
ODM2MjgpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0JKHdvcmtpbmcgY29weSkKQEAg
LTY3LDYgKzY3LDcgQEAgbXkgJGlzU3ltYmlhbjsKIG15ICVxdEZlYXR1cmVEZWZhdWx0czsKIG15
ICRpc0d0azsKIG15ICRpc1dpbkNFOworbXkgJGlzV2luQ2Fpcm87CiBteSAkaXNXeDsKIG15ICRp
c0VmbDsKIG15IEB3eEFyZ3M7CkBAIC00NDUsMjYgKzQ0NiwyNCBAQCBzdWIgZGV0ZXJtaW5lUGFz
c2VkQ29uZmlndXJhdGlvbgogICAgIHJldHVybiBpZiAkc2VhcmNoZWRGb3JQYXNzZWRDb25maWd1
cmF0aW9uOwogICAgICRzZWFyY2hlZEZvclBhc3NlZENvbmZpZ3VyYXRpb24gPSAxOwogCi0gICAg
bXkgJGlzV2luQ2Fpcm8gPSBjaGVja0ZvckFyZ3VtZW50QW5kUmVtb3ZlRnJvbUFSR1YoIi0td2lu
Y2Fpcm8iKTsKLQogICAgIGZvciBteSAkaSAoMCAuLiAkI0FSR1YpIHsKICAgICAgICAgbXkgJG9w
dCA9ICRBUkdWWyRpXTsKICAgICAgICAgaWYgKCRvcHQgPX4gL14tLWRlYnVnJC9pIHx8ICRvcHQg
PX4gL14tLWRldmVsL2kpIHsKICAgICAgICAgICAgIHNwbGljZShAQVJHViwgJGksIDEpOwogICAg
ICAgICAgICAgJHBhc3NlZENvbmZpZ3VyYXRpb24gPSAiRGVidWciOwotICAgICAgICAgICAgJHBh
c3NlZENvbmZpZ3VyYXRpb24gLj0gIl9DYWlyb19DRkxpdGUiIGlmICgkaXNXaW5DYWlybyAmJiBp
c0N5Z3dpbigpKTsKKyAgICAgICAgICAgICRwYXNzZWRDb25maWd1cmF0aW9uIC49ICJfQ2Fpcm9f
Q0ZMaXRlIiBpZiAoaXNXaW5DYWlybygpICYmIGlzQ3lnd2luKCkpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmICgkb3B0ID1+IC9eLS1yZWxlYXNlJC9pIHx8ICRv
cHQgPX4gL14tLWRlcGxveS9pKSB7CiAgICAgICAgICAgICBzcGxpY2UoQEFSR1YsICRpLCAxKTsK
ICAgICAgICAgICAgICRwYXNzZWRDb25maWd1cmF0aW9uID0gIlJlbGVhc2UiOwotICAgICAgICAg
ICAgJHBhc3NlZENvbmZpZ3VyYXRpb24gLj0gIl9DYWlyb19DRkxpdGUiIGlmICgkaXNXaW5DYWly
byAmJiBpc0N5Z3dpbigpKTsKKyAgICAgICAgICAgICRwYXNzZWRDb25maWd1cmF0aW9uIC49ICJf
Q2Fpcm9fQ0ZMaXRlIiBpZiAoaXNXaW5DYWlybygpICYmIGlzQ3lnd2luKCkpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmICgkb3B0ID1+IC9eLS1wcm9maWwoZXxp
bmcpJC9pKSB7CiAgICAgICAgICAgICBzcGxpY2UoQEFSR1YsICRpLCAxKTsKICAgICAgICAgICAg
ICRwYXNzZWRDb25maWd1cmF0aW9uID0gIlByb2ZpbGluZyI7Ci0gICAgICAgICAgICAkcGFzc2Vk
Q29uZmlndXJhdGlvbiAuPSAiX0NhaXJvX0NGTGl0ZSIgaWYgKCRpc1dpbkNhaXJvICYmIGlzQ3ln
d2luKCkpOworICAgICAgICAgICAgJHBhc3NlZENvbmZpZ3VyYXRpb24gLj0gIl9DYWlyb19DRkxp
dGUiIGlmIChpc1dpbkNhaXJvKCkgJiYgaXNDeWd3aW4oKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICB9CkBAIC04NzIsNiArODcxLDE4IEBAIHN1YiBkZXRlcm1pbmVJc0No
cm9taXVtKCkKICAgICAkaXNDaHJvbWl1bSA9IGNoZWNrRm9yQXJndW1lbnRBbmRSZW1vdmVGcm9t
QVJHVigiLS1jaHJvbWl1bSIpOwogfQogCitzdWIgaXNXaW5DYWlybygpCit7CisgICAgZGV0ZXJt
aW5lSXNXaW5DYWlybygpOworICAgIHJldHVybiAkaXNXaW5DYWlybzsKK30KKworc3ViIGRldGVy
bWluZUlzV2luQ2Fpcm8oKQoreworICAgIHJldHVybiBpZiBkZWZpbmVkKCRpc1dpbkNhaXJvKTsK
KyAgICAkaXNXaW5DYWlybyA9IGNoZWNrRm9yQXJndW1lbnRBbmRSZW1vdmVGcm9tQVJHVigiLS13
aW5jYWlybyIpOworfQorCiBzdWIgaXNDeWd3aW4oKQogewogICAgIHJldHVybiAoJF5PIGVxICJj
eWd3aW4iKSB8fCAwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89269</attachid>
            <date>2011-04-12 14:15:50 -0700</date>
            <delta_ts>2011-04-12 14:19:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51790-20110412141549.patch</filename>
            <type>text/plain</type>
            <size>19961</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDgzNjM0KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMTEtMDQtMTIgIENhcmwgTG9ibyAgPGNhcmxsb2JvQGdtYWlsLmNvbT4gYW5k
IEJyZW50IEZ1bGdoYW0gPGJmdWxnaGFtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGF0Y2ggdG8gZG93bmxvYWQgdGhlIFdpbkNh
aXJvIGRlcGVuZGFuY2llcyBhcyBwYXJ0IG9mIGJ1aWxkLXdlYmtpdC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxNzkwCisKKyAgICAgICAgVGhpcyBw
YXRjaCBkb3dubG9hZHMgdGhlIGRlcGVuZGFuY2llcyBmcm9tIAorICAgICAgICAgICAgICAgICBo
dHRwOi8vaWRpc2subWFjLmNvbS9iZnVsZ2hhbS1QdWJsaWMvV2luQ2Fpcm9SZXF1aXJlbWVudHMu
emlwIAorICAgICAgICBjaGVja2luZyB0aGUgbW9kaWZpY2F0aW9uIHRpbWVzdGFtcCBldGMuIAor
CisgICAgICAgICogVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKKyAgICAgICAgKiBUb29scy9T
Y3JpcHRzL3VwZGF0ZS13ZWJraXQ6IE1vZGlmaWVkIHRvIHVuZGVyc3RhbmQgdGhlIC0td2luY2Fp
cm8KKyAgICAgICAgICBmbGFnLCBhbmQgdG8gdXBkYXRlIFdpbkNhaXJvIGRlcGVuZGVuY2llcyB3
aGVuIHVzZWQuCisgICAgICAgICogVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWNhaXJvLWxp
YnM6IGFkZGVkCisgICAgICAgICogVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWRlcGVuZGVu
Y3k6IGFkZGVkCisgICAgICAgICogVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWF1eGlsaWFy
eS1saWJzCisKIDIwMTEtMDQtMTIgIEplZmYgTWlsbGVyICA8amVmZm1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCkluZGV4OiBUb29scy9TY3JpcHRzL2J1aWxk
LXdlYmtpdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAkocmV2aXNp
b24gODM2MzQpCisrKyBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAkod29ya2luZyBjb3B5KQpA
QCAtNTA4LDYgKzUwOCwxMCBAQCBpZiAoaXNHdGsoKSkgewogICAgICMgQ29weSBXZWJLaXRTdXBw
b3J0TGlicmFyeSB0byB0aGUgY29ycmVjdCBsb2NhdGlvbiBpbiBXZWJLaXRMaWJyYXJpZXMgc28g
aXQgY2FuIGJlIGZvdW5kLgogICAgICMgV2lsbCBmYWlsIGlmIFdlYktpdFN1cHBvcnRMaWJyYXJ5
LnppcCBpcyBub3QgaW4gc291cmNlIHJvb3QuCiAgICAgKHN5c3RlbSgicGVybCBUb29scy9TY3Jp
cHRzL3VwZGF0ZS13ZWJraXQtc3VwcG9ydC1saWJzIikgPT0gMCkgb3IgZGllOworICAgICMgVXBk
YXRlIENhaXJvIERlcGVuZGFuY2llcy4KKyAgICBpZihpc1dpbkNhaXJvKCkpIHsKKyAgICAgICAg
KHN5c3RlbSgicGVybCBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtY2Fpcm8tbGlicyIpID09
IDApIG9yIGRpZTsKKyAgICB9CiB9IGVsc2lmIChpc1F0KCkpIHsKICAgICBwdXNoIEBvcHRpb25z
LCAiLS1pbnN0YWxsLWhlYWRlcnM9IiAuICRpbnN0YWxsSGVhZGVycyBpZiBkZWZpbmVkKCRpbnN0
YWxsSGVhZGVycyk7CiAgICAgcHVzaCBAb3B0aW9ucywgIi0taW5zdGFsbC1saWJzPSIgLiAkaW5z
dGFsbExpYnMgaWYgZGVmaW5lZCgkaW5zdGFsbExpYnMpOwpJbmRleDogVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2Via2l0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdAko
cmV2aXNpb24gODM2MzQpCisrKyBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQJKHdvcmtpbmcg
Y29weSkKQEAgLTIsNiArMiw3IEBACiAKICMgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3
LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0
IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAo
QykgMjAxMSBCcmVudCBGdWxnaGFtLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC00OSw2ICs1MCw4IEBAIG15ICR1c2VHWVAgPSAwOwogCiBkZXRl
cm1pbmVJc0Nocm9taXVtKCk7CiAKK2RldGVybWluZUlzV2luQ2Fpcm8oKTsKKwogY2hkaXJXZWJL
aXQoKTsKIAogbXkgJGdldE9wdGlvbnNSZXN1bHQgPSBHZXRPcHRpb25zKApAQCAtNjQsNiArNjcs
NyBAQCBVc2FnZTogQHtbIGJhc2VuYW1lKCQwKSBdfSBbb3B0aW9uc10KICAgLWh8LS1oZWxwICAg
c2hvdyB0aGUgaGVscCBtZXNzYWdlCiAgIC1xfC0tcXVpZXQgIHBhc3MgLXEgdG8gc3ZuIHVwZGF0
ZSBmb3IgcXVpZXQgdXBkYXRlcwogICAtLWd5cCAgICAgICBnZW5lcmF0ZSBwcm9qZWN0IGZpbGVz
IGZyb20gZ3lwIGFmdGVyIHVwZGF0ZQorICAtLXdpbmNhaXJvICBhbHNvIHVwZGF0ZSBkZXBlbmRl
bmNpZXMgb2YgdGhlIFdpbkNhaXJvIHBvcnQKIF9fRU5EX18KICAgICBleGl0IDE7CiB9CkBAIC05
Niw2ICsxMDAsOSBAQCBpZiAoLWQgIi4uL0ludGVybmFsIikgewogICAgIHN5c3RlbSgicGVybCIs
ICJUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtY2hyb21pdW0iKSA9PSAwIG9yIGRpZSAkITsK
IH0gZWxzaWYgKGlzQXBwbGVXaW5XZWJLaXQoKSkgewogICAgIHN5c3RlbSgicGVybCIsICJUb29s
cy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtYXV4aWxpYXJ5LWxpYnMiKSA9PSAwIG9yIGRpZTsKKyAg
ICBpZiAoaXNXaW5DYWlybygpKSB7CisgICAgICAgIHN5c3RlbSgicGVybCIsICJUb29scy9TY3Jp
cHRzL3VwZGF0ZS13ZWJraXQtd2luY2Fpcm8tbGlicyIpID09IDAgb3IgZGllOworICAgIH0KIH0K
IAogc2V0dXBBcHBsZVdpbkVudigpIGlmIGlzQXBwbGVXaW5XZWJLaXQoKTsKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1hdXhpbGlhcnktbGlicwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtYXV4aWxpYXJ5LWxpYnMJKHJldmlzaW9uIDgzNjM0KQor
KysgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWF1eGlsaWFyeS1saWJzCSh3b3JraW5nIGNv
cHkpCkBAIC0zMCwxMDYgKzMwLDExIEBACiAKIHVzZSBzdHJpY3Q7CiB1c2Ugd2FybmluZ3M7Ci0K
LXVzZSBGaWxlOjpGaW5kOwotdXNlIEZpbGU6OlNwZWM7Ci11c2UgRmlsZTo6VGVtcCAoKTsKIHVz
ZSBGaW5kQmluOwotdXNlIEhUVFA6OkRhdGUgcXcoc3RyMnRpbWUpOwotdXNlIFBPU0lYOwotdXNl
IGxpYiAkRmluZEJpbjo6QmluOwotdXNlIHdlYmtpdGRpcnM7Ci0KLXN1YiBsYXN0TW9kaWZpZWRU
b1VuaXhUaW1lKCQpOwotCi0jIFRpbWUgaW4gc2Vjb25kcyB0aGF0IHRoZSBuZXcgemlwIGZpbGUg
bXVzdCBiZSBuZXdlciB0aGFuIHRoZSBvbGQgZm9yIHVzIHRvCi0jIGNvbnNpZGVyIHRoZW0gdG8g
YmUgZGlmZmVyZW50LiBJZiB0aGUgZGlmZmVyZW5jZSBpbiBtb2RpZmljYXRpb24gdGltZSBpcyBs
ZXNzCi0jIHRoYW4gdGhpcyB0aHJlc2hvbGQsIHdlIGFzc3VtZSB0aGF0IHRoZSBmaWxlcyBhcmUg
dGhlIHNhbWUuIFdlIG5lZWQgdGhpcwotIyBiZWNhdXNlIHRoZSB6aXAgZmlsZSBpcyBzZXJ2ZWQg
ZnJvbSBhIHNldCBvZiBtaXJyb3JzIHdpdGggc2xpZ2h0bHkgZGlmZmVyZW50Ci0jIExhc3QtTW9k
aWZpZWQgdGltZXMuCi1teSAkbmV3bmVzc1RocmVzaG9sZCA9IDMwOwogCi1teSAkc291cmNlRGly
ID0gc291cmNlRGlyKCk7CiBteSAkZmlsZSA9ICJXZWJLaXRBdXhpbGlhcnlMaWJyYXJ5IjsKIG15
ICR6aXBGaWxlID0gIiRmaWxlLnppcCI7IAogbXkgJGF1eGlsaWFyeUxpYnNVUkwgPSAiaHR0cDov
L2RldmVsb3Blci5hcHBsZS5jb20vb3BlbnNvdXJjZS9pbnRlcm5ldC8kemlwRmlsZSI7Ci1teSAk
d2Via2l0TGlicmFyaWVzRGlyID0gdG9Vbml4UGF0aCgkRU5WeydXRUJLSVRMSUJSQVJJRVNESVIn
fSkgfHwgIiRzb3VyY2VEaXIvV2ViS2l0TGlicmFyaWVzL3dpbiI7Ci1teSAkdG1wUmVsYXRpdmVE
aXIgPSBGaWxlOjpUZW1wOjp0ZW1wZGlyKCJ3ZWJraXRsaWJzWFhYWFhYWCIsIFRNUERJUiA9PiAx
LCBDTEVBTlVQID0+IDEpOwotbXkgJHRtcEFic0RpciA9IEZpbGU6OlNwZWMtPnJlbDJhYnMoJHRt
cFJlbGF0aXZlRGlyKTsKLQotcHJpbnQgIkNoZWNraW5nIExhc3QtTW9kaWZpZWQgZGF0ZSBvZiAk
emlwRmlsZS4uLlxuIjsKLQotbXkgJHJlc3VsdCA9IHN5c3RlbSAiY3VybCAtcyAtSSAkYXV4aWxp
YXJ5TGlic1VSTCB8IGdyZXAgTGFzdC1Nb2RpZmllZCA+IFwiJHRtcEFic0Rpci8kZmlsZS5oZWFk
ZXJzXCIiOwotCi1pZiAoV0VYSVRTVEFUVVMoJHJlc3VsdCkpIHsKLSAgICBwcmludCBTVERFUlIg
IkNvdWxkbid0IGNoZWNrIExhc3QtTW9kaWZpZWQgZGF0ZSBvZiBuZXcgJHppcEZpbGUuXG4iOwot
ICAgIHByaW50IFNUREVSUiAiUGxlYXNlIGVuc3VyZSB0aGF0ICRhdXhpbGlhcnlMaWJzVVJMIGlz
IHJlYWNoYWJsZS5cbiI7Ci0KLSAgICBpZiAoISAtZiAiJHdlYmtpdExpYnJhcmllc0Rpci8kZmls
ZS5oZWFkZXJzIikgewotICAgICAgICBwcmludCBTVERFUlIgIlVuYWJsZSB0byBjaGVjayBMYXN0
LU1vZGlmaWVkIGRhdGUgYW5kIG5vIHZlcnNpb24gb2YgJGZpbGUgdG8gZmFsbCBiYWNrIHRvLlxu
IjsKLSAgICAgICAgZXhpdCAxOwotICAgIH0KLQotICAgIHByaW50IFNUREVSUiAiRmFsbGluZyBi
YWNrIHRvIGV4aXN0aW5nIHZlcnNpb24gb2YgJGZpbGUuXG4iOwotICAgIGV4aXQgMDsKLX0KLQot
aWYgKG9wZW4gTkVXLCAiJHRtcEFic0Rpci8kZmlsZS5oZWFkZXJzIikgewotICAgIG15ICRuZXcg
PSBsYXN0TW9kaWZpZWRUb1VuaXhUaW1lKDxORVc+KTsKLSAgICBjbG9zZSBORVc7Ci0KLSAgICBp
ZiAoZGVmaW5lZCAkbmV3ICYmIG9wZW4gT0xELCAiJHdlYmtpdExpYnJhcmllc0Rpci8kZmlsZS5o
ZWFkZXJzIikgewotICAgICAgICBteSAkb2xkID0gbGFzdE1vZGlmaWVkVG9Vbml4VGltZSg8T0xE
Pik7Ci0gICAgICAgIGNsb3NlIE9MRDsKLSAgICAgICAgaWYgKGRlZmluZWQgJG9sZCAmJiBhYnMo
JG5ldyAtICRvbGQpIDwgJG5ld25lc3NUaHJlc2hvbGQpIHsKLSAgICAgICAgICAgIHByaW50ICJD
dXJyZW50ICRmaWxlIGlzIHVwIHRvIGRhdGVcbiI7Ci0gICAgICAgICAgICBleGl0IDA7Ci0gICAg
ICAgIH0KLSAgICB9Ci19Ci0KLXByaW50ICJEb3dubG9hZGluZyAkemlwRmlsZS4uLlxuXG4iOwot
JHJlc3VsdCA9IHN5c3RlbSAiY3VybCAtbyBcIiR0bXBBYnNEaXIvJHppcEZpbGVcIiAkYXV4aWxp
YXJ5TGlic1VSTCI7Ci1kaWUgIkNvdWxkbid0IGRvd25sb2FkICR6aXBGaWxlISIgaWYgJHJlc3Vs
dDsKLQotJHJlc3VsdCA9IHN5c3RlbSAidW56aXAiLCAiLXEiLCAiLWQiLCAkdG1wQWJzRGlyLCAi
JHRtcEFic0Rpci8kemlwRmlsZSI7Ci1kaWUgIkNvdWxkbid0IHVuemlwICR6aXBGaWxlLiIgaWYg
JHJlc3VsdDsKLQotcHJpbnQgIlxuSW5zdGFsbGluZyAkZmlsZS4uLlxuIjsKLQotc3ViIHdhbnRl
ZAotewotICAgIG15ICRyZWxhdGl2ZU5hbWUgPSBGaWxlOjpTcGVjLT5hYnMycmVsKCRGaWxlOjpG
aW5kOjpuYW1lLCAiJHRtcEFic0Rpci8kZmlsZS93aW4iKTsKLSAgICBteSAkZGVzdGluYXRpb24g
PSAiJHdlYmtpdExpYnJhcmllc0Rpci8kcmVsYXRpdmVOYW1lIjsKLQotICAgIGlmICgtZCAkXykg
ewotICAgICAgICBta2RpciAkZGVzdGluYXRpb247Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBzeXN0ZW0gImNwIiwgJF8sICRkZXN0aW5hdGlvbjsKLX0KLQotRmlsZTo6RmluZDo6Zmlu
ZChcJndhbnRlZCwgIiR0bXBBYnNEaXIvJGZpbGUiKTsKLQotJHJlc3VsdCA9IHN5c3RlbSAibXYi
LCAiJHRtcEFic0Rpci8kZmlsZS5oZWFkZXJzIiwgJHdlYmtpdExpYnJhcmllc0RpcjsKLXByaW50
IFNUREVSUiAiQ291bGRuJ3QgbW92ZSAkZmlsZS5oZWFkZXJzIHRvICR3ZWJraXRMaWJyYXJpZXNE
aXIiIC4gIi5cbiIgaWYgJHJlc3VsdDsKLQotcHJpbnQgIlRoZSAkZmlsZSBoYXMgYmVlbiBzdWNl
c3NmdWxseSBpbnN0YWxsZWQgaW5cbiAkd2Via2l0TGlicmFyaWVzRGlyXG4iOwotZXhpdDsKLQot
c3ViIHRvVW5peFBhdGgKLXsKLSAgICBteSAkcGF0aCA9IHNoaWZ0OwotICAgIHJldHVybiB1bmxl
c3MgJHBhdGg7Ci0gICAgY2hvbXAoJHBhdGggPSBgY3lncGF0aCAtdSAnJHBhdGgnYCk7Ci0gICAg
cmV0dXJuICRwYXRoOwotfQotCi1zdWIgbGFzdE1vZGlmaWVkVG9Vbml4VGltZSgkKQotewotICAg
IG15ICgkc3RyKSA9IEBfOworbXkgJGNvbW1hbmQgPSAiJEZpbmRCaW46OkJpbi91cGRhdGUtd2Vi
a2l0LWRlcGVuZGVuY3kiOwogCi0gICAgJHN0ciA9fiAvXkxhc3QtTW9kaWZpZWQ6ICguKikkLyBv
ciByZXR1cm47Ci0gICAgcmV0dXJuIHN0cjJ0aW1lKCQxKTsKLX0KK3N5c3RlbSgicGVybCIsICRj
b21tYW5kLCAkYXV4aWxpYXJ5TGlic1VSTCwgIndpbiIpID09IDAgb3IgZGllOwpJbmRleDogVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWRlcGVuZGVuY3kKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
U2NyaXB0cy91cGRhdGUtd2Via2l0LWRlcGVuZGVuY3kJKHJldmlzaW9uIDgzNTk3KQkoZnJvbSBU
b29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtYXV4aWxpYXJ5LWxpYnM6ODM1OTcpCisrKyBUb29s
cy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtZGVwZW5kZW5jeQkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDEzNSBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisKKyMgQ29weXJpZ2h0IChDKSAyMDA1LCAy
MDA2LCAyMDA3IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjCisjIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLiAKKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLiAKKyMgMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyMgICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyMgICAgIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
IyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgorIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFVwZGF0ZXMgYSBkZXZlbG9wbWVudCBlbnZpcm9u
bWVudCB0byB0aGUgbmV3IFdlYktpdEF1eGlsaWFyeUxpYnJhcnkKKwordXNlIHN0cmljdDsKK3Vz
ZSB3YXJuaW5nczsKKwordXNlIEZpbGU6OkZpbmQ7Cit1c2UgRmlsZTo6U3BlYzsKK3VzZSBGaWxl
OjpUZW1wICgpOwordXNlIEZpbmRCaW47Cit1c2UgSFRUUDo6RGF0ZSBxdyhzdHIydGltZSk7Cit1
c2UgUE9TSVg7Cit1c2UgbGliICRGaW5kQmluOjpCaW47Cit1c2Ugd2Via2l0ZGlyczsKKworc3Vi
IGxhc3RNb2RpZmllZFRvVW5peFRpbWUoJCk7CisKKyMgVGltZSBpbiBzZWNvbmRzIHRoYXQgdGhl
IG5ldyB6aXAgZmlsZSBtdXN0IGJlIG5ld2VyIHRoYW4gdGhlIG9sZCBmb3IgdXMgdG8KKyMgY29u
c2lkZXIgdGhlbSB0byBiZSBkaWZmZXJlbnQuIElmIHRoZSBkaWZmZXJlbmNlIGluIG1vZGlmaWNh
dGlvbiB0aW1lIGlzIGxlc3MKKyMgdGhhbiB0aGlzIHRocmVzaG9sZCwgd2UgYXNzdW1lIHRoYXQg
dGhlIGZpbGVzIGFyZSB0aGUgc2FtZS4gV2UgbmVlZCB0aGlzCisjIGJlY2F1c2UgdGhlIHppcCBm
aWxlIGlzIHNlcnZlZCBmcm9tIGEgc2V0IG9mIG1pcnJvcnMgd2l0aCBzbGlnaHRseSBkaWZmZXJl
bnQKKyMgTGFzdC1Nb2RpZmllZCB0aW1lcy4KK215ICRuZXduZXNzVGhyZXNob2xkID0gMzA7CisK
K215ICRzb3VyY2VEaXIgPSBzb3VyY2VEaXIoKTsKK215ICRmaWxlID0gIldlYktpdEF1eGlsaWFy
eUxpYnJhcnkiOworbXkgJHppcEZpbGUgPSAiJGZpbGUuemlwIjsgCitteSAkYXV4aWxpYXJ5TGli
c1VSTCA9ICJodHRwOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9vcGVuc291cmNlL2ludGVybmV0LyR6
aXBGaWxlIjsKK215ICR3ZWJraXRMaWJyYXJpZXNEaXIgPSB0b1VuaXhQYXRoKCRFTlZ7J1dFQktJ
VExJQlJBUklFU0RJUid9KSB8fCAiJHNvdXJjZURpci9XZWJLaXRMaWJyYXJpZXMvd2luIjsKK215
ICR0bXBSZWxhdGl2ZURpciA9IEZpbGU6OlRlbXA6OnRlbXBkaXIoIndlYmtpdGxpYnNYWFhYWFhY
IiwgVE1QRElSID0+IDEsIENMRUFOVVAgPT4gMSk7CitteSAkdG1wQWJzRGlyID0gRmlsZTo6U3Bl
Yy0+cmVsMmFicygkdG1wUmVsYXRpdmVEaXIpOworCitwcmludCAiQ2hlY2tpbmcgTGFzdC1Nb2Rp
ZmllZCBkYXRlIG9mICR6aXBGaWxlLi4uXG4iOworCitteSAkcmVzdWx0ID0gc3lzdGVtICJjdXJs
IC1zIC1JICRhdXhpbGlhcnlMaWJzVVJMIHwgZ3JlcCBMYXN0LU1vZGlmaWVkID4gXCIkdG1wQWJz
RGlyLyRmaWxlLmhlYWRlcnNcIiI7CisKK2lmIChXRVhJVFNUQVRVUygkcmVzdWx0KSkgeworICAg
IHByaW50IFNUREVSUiAiQ291bGRuJ3QgY2hlY2sgTGFzdC1Nb2RpZmllZCBkYXRlIG9mIG5ldyAk
emlwRmlsZS5cbiI7CisgICAgcHJpbnQgU1RERVJSICJQbGVhc2UgZW5zdXJlIHRoYXQgJGF1eGls
aWFyeUxpYnNVUkwgaXMgcmVhY2hhYmxlLlxuIjsKKworICAgIGlmICghIC1mICIkd2Via2l0TGli
cmFyaWVzRGlyLyRmaWxlLmhlYWRlcnMiKSB7CisgICAgICAgIHByaW50IFNUREVSUiAiVW5hYmxl
IHRvIGNoZWNrIExhc3QtTW9kaWZpZWQgZGF0ZSBhbmQgbm8gdmVyc2lvbiBvZiAkZmlsZSB0byBm
YWxsIGJhY2sgdG8uXG4iOworICAgICAgICBleGl0IDE7CisgICAgfQorCisgICAgcHJpbnQgU1RE
RVJSICJGYWxsaW5nIGJhY2sgdG8gZXhpc3RpbmcgdmVyc2lvbiBvZiAkZmlsZS5cbiI7CisgICAg
ZXhpdCAwOworfQorCitpZiAob3BlbiBORVcsICIkdG1wQWJzRGlyLyRmaWxlLmhlYWRlcnMiKSB7
CisgICAgbXkgJG5ldyA9IGxhc3RNb2RpZmllZFRvVW5peFRpbWUoPE5FVz4pOworICAgIGNsb3Nl
IE5FVzsKKworICAgIGlmIChkZWZpbmVkICRuZXcgJiYgb3BlbiBPTEQsICIkd2Via2l0TGlicmFy
aWVzRGlyLyRmaWxlLmhlYWRlcnMiKSB7CisgICAgICAgIG15ICRvbGQgPSBsYXN0TW9kaWZpZWRU
b1VuaXhUaW1lKDxPTEQ+KTsKKyAgICAgICAgY2xvc2UgT0xEOworICAgICAgICBpZiAoZGVmaW5l
ZCAkb2xkICYmIGFicygkbmV3IC0gJG9sZCkgPCAkbmV3bmVzc1RocmVzaG9sZCkgeworICAgICAg
ICAgICAgcHJpbnQgIkN1cnJlbnQgJGZpbGUgaXMgdXAgdG8gZGF0ZVxuIjsKKyAgICAgICAgICAg
IGV4aXQgMDsKKyAgICAgICAgfQorICAgIH0KK30KKworcHJpbnQgIkRvd25sb2FkaW5nICR6aXBG
aWxlLi4uXG5cbiI7CiskcmVzdWx0ID0gc3lzdGVtICJjdXJsIC1vIFwiJHRtcEFic0Rpci8kemlw
RmlsZVwiICRhdXhpbGlhcnlMaWJzVVJMIjsKK2RpZSAiQ291bGRuJ3QgZG93bmxvYWQgJHppcEZp
bGUhIiBpZiAkcmVzdWx0OworCiskcmVzdWx0ID0gc3lzdGVtICJ1bnppcCIsICItcSIsICItZCIs
ICR0bXBBYnNEaXIsICIkdG1wQWJzRGlyLyR6aXBGaWxlIjsKK2RpZSAiQ291bGRuJ3QgdW56aXAg
JHppcEZpbGUuIiBpZiAkcmVzdWx0OworCitwcmludCAiXG5JbnN0YWxsaW5nICRmaWxlLi4uXG4i
OworCitzdWIgd2FudGVkCit7CisgICAgbXkgJHJlbGF0aXZlTmFtZSA9IEZpbGU6OlNwZWMtPmFi
czJyZWwoJEZpbGU6OkZpbmQ6Om5hbWUsICIkdG1wQWJzRGlyLyRmaWxlL3dpbiIpOworICAgIG15
ICRkZXN0aW5hdGlvbiA9ICIkd2Via2l0TGlicmFyaWVzRGlyLyRyZWxhdGl2ZU5hbWUiOworCisg
ICAgaWYgKC1kICRfKSB7CisgICAgICAgIG1rZGlyICRkZXN0aW5hdGlvbjsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIHN5c3RlbSAiY3AiLCAkXywgJGRlc3RpbmF0aW9uOworfQorCitG
aWxlOjpGaW5kOjpmaW5kKFwmd2FudGVkLCAiJHRtcEFic0Rpci8kZmlsZSIpOworCiskcmVzdWx0
ID0gc3lzdGVtICJtdiIsICIkdG1wQWJzRGlyLyRmaWxlLmhlYWRlcnMiLCAkd2Via2l0TGlicmFy
aWVzRGlyOworcHJpbnQgU1RERVJSICJDb3VsZG4ndCBtb3ZlICRmaWxlLmhlYWRlcnMgdG8gJHdl
YmtpdExpYnJhcmllc0RpciIgLiAiLlxuIiBpZiAkcmVzdWx0OworCitwcmludCAiVGhlICRmaWxl
IGhhcyBiZWVuIHN1Y2Vzc2Z1bGx5IGluc3RhbGxlZCBpblxuICR3ZWJraXRMaWJyYXJpZXNEaXJc
biI7CitleGl0OworCitzdWIgdG9Vbml4UGF0aAoreworICAgIG15ICRwYXRoID0gc2hpZnQ7Cisg
ICAgcmV0dXJuIHVubGVzcyAkcGF0aDsKKyAgICBjaG9tcCgkcGF0aCA9IGBjeWdwYXRoIC11ICck
cGF0aCdgKTsKKyAgICByZXR1cm4gJHBhdGg7Cit9CisKK3N1YiBsYXN0TW9kaWZpZWRUb1VuaXhU
aW1lKCQpCit7CisgICAgbXkgKCRzdHIpID0gQF87CisKKyAgICAkc3RyID1+IC9eTGFzdC1Nb2Rp
ZmllZDogKC4qKSQvIG9yIHJldHVybjsKKyAgICByZXR1cm4gc3RyMnRpbWUoJDEpOworfQpJbmRl
eDogVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWRlcGVuZGVuY3kKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWRlcGVuZGVuY3kJKHJldmlzaW9uIDgzNTk3KQor
KysgVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWRlcGVuZGVuY3kJKHdvcmtpbmcgY29weSkK
QEAgLTEsNiArMSw3IEBACiAjIS91c3IvYmluL3BlcmwgLXcKIAogIyBDb3B5cmlnaHQgKEMpIDIw
MDUsIDIwMDYsIDIwMDcgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjIENvcHlyaWdodCAoQykgMjAxMSBDYXJsIExvYm8uICBBbGwgcmlnaHRzIHJlc2VydmVkLgog
IwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MCw3ICs0MSwxOSBAQCB1c2UgUE9TSVg7
CiB1c2UgbGliICRGaW5kQmluOjpCaW47CiB1c2Ugd2Via2l0ZGlyczsKIAoraWYgKCQjQVJHViAh
PSAxKSB7CisgICAgZGllIDw8RU9GOworVXNhZ2U6CisgICAgICAgIHVwZGF0ZS13ZWJraXQtZGVw
ZW5kYW5jeSA8VVJMIHdpdGggdGhlIGRlcGVuZGFuY3kgemlwIGZpbGU+IDwqcHJlZml4IGRpciBp
bnNpZGUgemlwIHdpdGhvdXQgZmlsZW5hbWU+CisKKyAgICAgICAgKiBJZiBmaWxlbmFtZSBpcyBy
ZXF1aXJlbWVudHMuemlwIGFuZCB0aGUgY29udGVudHMgb2YgdGhlIHppcGZpbGUgYXJlICJyZXF1
aXJlbWVudHMveCIgdGhlbiBwcmVmaXggPSAiLiIKKyAgICAgICAgKiBJZiBmaWxlbmFtZSBpcyB4
eXouemlwIGFuZCB0aGUgY29udGVudHMgb2YgdGhlIHppcGZpbGUgYXJlIHh5ei9hYmMveCIgdGhl
biBwcmVmaXggPSAiYWJjIgorICAgICAgICAqIHggaXMgbGliIG9yIGluY2x1ZGUgb3IgYmluLgor
RU9GCit9CisKIHN1YiBsYXN0TW9kaWZpZWRUb1VuaXhUaW1lKCQpOworc3ViIGdldExpYnJhcnlO
YW1lOwogCiAjIFRpbWUgaW4gc2Vjb25kcyB0aGF0IHRoZSBuZXcgemlwIGZpbGUgbXVzdCBiZSBu
ZXdlciB0aGFuIHRoZSBvbGQgZm9yIHVzIHRvCiAjIGNvbnNpZGVyIHRoZW0gdG8gYmUgZGlmZmVy
ZW50LiBJZiB0aGUgZGlmZmVyZW5jZSBpbiBtb2RpZmljYXRpb24gdGltZSBpcyBsZXNzCkBAIC00
OSwyMSArNjIsMjIgQEAgc3ViIGxhc3RNb2RpZmllZFRvVW5peFRpbWUoJCk7CiAjIExhc3QtTW9k
aWZpZWQgdGltZXMuCiBteSAkbmV3bmVzc1RocmVzaG9sZCA9IDMwOwogCitteSAkbGlic1VSTCA9
IHNoaWZ0OworbXkgJHByZWZpeEluWmlwID0gc2hpZnQ7CiBteSAkc291cmNlRGlyID0gc291cmNl
RGlyKCk7Ci1teSAkZmlsZSA9ICJXZWJLaXRBdXhpbGlhcnlMaWJyYXJ5IjsKK215ICRmaWxlID0g
Z2V0TGlicmFyeU5hbWUoJGxpYnNVUkwpOwogbXkgJHppcEZpbGUgPSAiJGZpbGUuemlwIjsgCi1t
eSAkYXV4aWxpYXJ5TGlic1VSTCA9ICJodHRwOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9vcGVuc291
cmNlL2ludGVybmV0LyR6aXBGaWxlIjsKIG15ICR3ZWJraXRMaWJyYXJpZXNEaXIgPSB0b1VuaXhQ
YXRoKCRFTlZ7J1dFQktJVExJQlJBUklFU0RJUid9KSB8fCAiJHNvdXJjZURpci9XZWJLaXRMaWJy
YXJpZXMvd2luIjsKIG15ICR0bXBSZWxhdGl2ZURpciA9IEZpbGU6OlRlbXA6OnRlbXBkaXIoIndl
YmtpdGxpYnNYWFhYWFhYIiwgVE1QRElSID0+IDEsIENMRUFOVVAgPT4gMSk7CiBteSAkdG1wQWJz
RGlyID0gRmlsZTo6U3BlYy0+cmVsMmFicygkdG1wUmVsYXRpdmVEaXIpOwogCiBwcmludCAiQ2hl
Y2tpbmcgTGFzdC1Nb2RpZmllZCBkYXRlIG9mICR6aXBGaWxlLi4uXG4iOwogCi1teSAkcmVzdWx0
ID0gc3lzdGVtICJjdXJsIC1zIC1JICRhdXhpbGlhcnlMaWJzVVJMIHwgZ3JlcCBMYXN0LU1vZGlm
aWVkID4gXCIkdG1wQWJzRGlyLyRmaWxlLmhlYWRlcnNcIiI7CitteSAkcmVzdWx0ID0gc3lzdGVt
ICJjdXJsIC1zIC1JICRsaWJzVVJMIHwgZ3JlcCBMYXN0LU1vZGlmaWVkID4gXCIkdG1wQWJzRGly
LyRmaWxlLmhlYWRlcnNcIiI7CiAKIGlmIChXRVhJVFNUQVRVUygkcmVzdWx0KSkgewogICAgIHBy
aW50IFNUREVSUiAiQ291bGRuJ3QgY2hlY2sgTGFzdC1Nb2RpZmllZCBkYXRlIG9mIG5ldyAkemlw
RmlsZS5cbiI7Ci0gICAgcHJpbnQgU1RERVJSICJQbGVhc2UgZW5zdXJlIHRoYXQgJGF1eGlsaWFy
eUxpYnNVUkwgaXMgcmVhY2hhYmxlLlxuIjsKKyAgICBwcmludCBTVERFUlIgIlBsZWFzZSBlbnN1
cmUgdGhhdCAkbGlic1VSTCBpcyByZWFjaGFibGUuXG4iOwogCiAgICAgaWYgKCEgLWYgIiR3ZWJr
aXRMaWJyYXJpZXNEaXIvJGZpbGUuaGVhZGVycyIpIHsKICAgICAgICAgcHJpbnQgU1RERVJSICJV
bmFibGUgdG8gY2hlY2sgTGFzdC1Nb2RpZmllZCBkYXRlIGFuZCBubyB2ZXJzaW9uIG9mICRmaWxl
IHRvIGZhbGwgYmFjayB0by5cbiI7CkBAIC04OSw3ICsxMDMsNyBAQCBpZiAob3BlbiBORVcsICIk
dG1wQWJzRGlyLyRmaWxlLmhlYWRlcnMiCiB9CiAKIHByaW50ICJEb3dubG9hZGluZyAkemlwRmls
ZS4uLlxuXG4iOwotJHJlc3VsdCA9IHN5c3RlbSAiY3VybCAtbyBcIiR0bXBBYnNEaXIvJHppcEZp
bGVcIiAkYXV4aWxpYXJ5TGlic1VSTCI7CiskcmVzdWx0ID0gc3lzdGVtICJjdXJsIC1vIFwiJHRt
cEFic0Rpci8kemlwRmlsZVwiICRsaWJzVVJMIjsKIGRpZSAiQ291bGRuJ3QgZG93bmxvYWQgJHpp
cEZpbGUhIiBpZiAkcmVzdWx0OwogCiAkcmVzdWx0ID0gc3lzdGVtICJ1bnppcCIsICItcSIsICIt
ZCIsICR0bXBBYnNEaXIsICIkdG1wQWJzRGlyLyR6aXBGaWxlIjsKQEAgLTk5LDcgKzExMyw3IEBA
IHByaW50ICJcbkluc3RhbGxpbmcgJGZpbGUuLi5cbiI7CiAKIHN1YiB3YW50ZWQKIHsKLSAgICBt
eSAkcmVsYXRpdmVOYW1lID0gRmlsZTo6U3BlYy0+YWJzMnJlbCgkRmlsZTo6RmluZDo6bmFtZSwg
IiR0bXBBYnNEaXIvJGZpbGUvd2luIik7CisgICAgbXkgJHJlbGF0aXZlTmFtZSA9IEZpbGU6OlNw
ZWMtPmFiczJyZWwoJEZpbGU6OkZpbmQ6Om5hbWUsICIkdG1wQWJzRGlyLyRmaWxlLyRwcmVmaXhJ
blppcCIpOwogICAgIG15ICRkZXN0aW5hdGlvbiA9ICIkd2Via2l0TGlicmFyaWVzRGlyLyRyZWxh
dGl2ZU5hbWUiOwogCiAgICAgaWYgKC1kICRfKSB7CkBAIC0xMzMsMyArMTQ3LDEyIEBAIHN1YiBs
YXN0TW9kaWZpZWRUb1VuaXhUaW1lKCQpCiAgICAgJHN0ciA9fiAvXkxhc3QtTW9kaWZpZWQ6ICgu
KikkLyBvciByZXR1cm47CiAgICAgcmV0dXJuIHN0cjJ0aW1lKCQxKTsKIH0KKworc3ViIGdldExp
YnJhcnlOYW1lCit7CisgICAgbXkgJHBhdGggPSBzaGlmdDsKKyAgICBteSAoJHZvbHVtZSwgJGRp
cmVjdG9yeSwgJGZpbGUpID0gRmlsZTo6U3BlYy0+c3BsaXRwYXRoKCRwYXRoKTsKKyAgICAkZmls
ZSA9fiBzL1wuemlwLy87CisgICAgcmV0dXJuICRmaWxlOworfQorCkluZGV4OiBUb29scy9TY3Jp
cHRzL3VwZGF0ZS13ZWJraXQtd2luY2Fpcm8tbGlicwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3Jp
cHRzL3VwZGF0ZS13ZWJraXQtd2luY2Fpcm8tbGlicwkocmV2aXNpb24gMCkKKysrIFRvb2xzL1Nj
cmlwdHMvdXBkYXRlLXdlYmtpdC13aW5jYWlyby1saWJzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDQwIEBACisjIS91c3IvYmluL3BlcmwgLXcKKworIyBDb3B5cmlnaHQgKEMpIDIwMTEgQ2FybCBM
b2JvLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIworIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisjIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisjIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisj
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCisjICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorIyBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorIyBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyMgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
IyBVcGRhdGVzIGEgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgdG8gdGhlIG5ldyBXZWJLaXRBdXhp
bGlhcnlMaWJyYXJ5CisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7Cit1c2UgRmluZEJpbjsK
KworbXkgJGZpbGUgPSAiV2luQ2Fpcm9SZXF1aXJlbWVudHMiOworbXkgJHppcEZpbGUgPSAiJGZp
bGUuemlwIjsgCitteSAkd2luQ2Fpcm9MaWJzVVJMID0gImh0dHA6Ly9pZGlzay5tYWMuY29tL2Jm
dWxnaGFtLVB1YmxpYy8kemlwRmlsZSI7CitteSAkY29tbWFuZCA9ICIkRmluZEJpbjo6QmluL3Vw
ZGF0ZS13ZWJraXQtZGVwZW5kZW5jeSI7CisKK3N5c3RlbSgicGVybCIsICRjb21tYW5kLCAkd2lu
Q2Fpcm9MaWJzVVJMLCAiLiIpID09IDAgb3IgZGllOwoKUHJvcGVydHkgY2hhbmdlcyBvbjogVG9v
bHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LXdpbmNhaXJvLWxpYnMKX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDog
c3ZuOmV4ZWN1dGFibGUKICAgKyAqCgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBt
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQkocmV2aXNpb24gODM2
MzQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0JKHdvcmtpbmcgY29weSkKQEAgLTY3
LDYgKzY3LDcgQEAgbXkgJGlzU3ltYmlhbjsKIG15ICVxdEZlYXR1cmVEZWZhdWx0czsKIG15ICRp
c0d0azsKIG15ICRpc1dpbkNFOworbXkgJGlzV2luQ2Fpcm87CiBteSAkaXNXeDsKIG15ICRpc0Vm
bDsKIG15IEB3eEFyZ3M7CkBAIC00NDUsMjYgKzQ0NiwyNCBAQCBzdWIgZGV0ZXJtaW5lUGFzc2Vk
Q29uZmlndXJhdGlvbgogICAgIHJldHVybiBpZiAkc2VhcmNoZWRGb3JQYXNzZWRDb25maWd1cmF0
aW9uOwogICAgICRzZWFyY2hlZEZvclBhc3NlZENvbmZpZ3VyYXRpb24gPSAxOwogCi0gICAgbXkg
JGlzV2luQ2Fpcm8gPSBjaGVja0ZvckFyZ3VtZW50QW5kUmVtb3ZlRnJvbUFSR1YoIi0td2luY2Fp
cm8iKTsKLQogICAgIGZvciBteSAkaSAoMCAuLiAkI0FSR1YpIHsKICAgICAgICAgbXkgJG9wdCA9
ICRBUkdWWyRpXTsKICAgICAgICAgaWYgKCRvcHQgPX4gL14tLWRlYnVnJC9pIHx8ICRvcHQgPX4g
L14tLWRldmVsL2kpIHsKICAgICAgICAgICAgIHNwbGljZShAQVJHViwgJGksIDEpOwogICAgICAg
ICAgICAgJHBhc3NlZENvbmZpZ3VyYXRpb24gPSAiRGVidWciOwotICAgICAgICAgICAgJHBhc3Nl
ZENvbmZpZ3VyYXRpb24gLj0gIl9DYWlyb19DRkxpdGUiIGlmICgkaXNXaW5DYWlybyAmJiBpc0N5
Z3dpbigpKTsKKyAgICAgICAgICAgICRwYXNzZWRDb25maWd1cmF0aW9uIC49ICJfQ2Fpcm9fQ0ZM
aXRlIiBpZiAoaXNXaW5DYWlybygpICYmIGlzQ3lnd2luKCkpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAgICAgICAgIGlmICgkb3B0ID1+IC9eLS1yZWxlYXNlJC9pIHx8ICRvcHQg
PX4gL14tLWRlcGxveS9pKSB7CiAgICAgICAgICAgICBzcGxpY2UoQEFSR1YsICRpLCAxKTsKICAg
ICAgICAgICAgICRwYXNzZWRDb25maWd1cmF0aW9uID0gIlJlbGVhc2UiOwotICAgICAgICAgICAg
JHBhc3NlZENvbmZpZ3VyYXRpb24gLj0gIl9DYWlyb19DRkxpdGUiIGlmICgkaXNXaW5DYWlybyAm
JiBpc0N5Z3dpbigpKTsKKyAgICAgICAgICAgICRwYXNzZWRDb25maWd1cmF0aW9uIC49ICJfQ2Fp
cm9fQ0ZMaXRlIiBpZiAoaXNXaW5DYWlybygpICYmIGlzQ3lnd2luKCkpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmICgkb3B0ID1+IC9eLS1wcm9maWwoZXxpbmcp
JC9pKSB7CiAgICAgICAgICAgICBzcGxpY2UoQEFSR1YsICRpLCAxKTsKICAgICAgICAgICAgICRw
YXNzZWRDb25maWd1cmF0aW9uID0gIlByb2ZpbGluZyI7Ci0gICAgICAgICAgICAkcGFzc2VkQ29u
ZmlndXJhdGlvbiAuPSAiX0NhaXJvX0NGTGl0ZSIgaWYgKCRpc1dpbkNhaXJvICYmIGlzQ3lnd2lu
KCkpOworICAgICAgICAgICAgJHBhc3NlZENvbmZpZ3VyYXRpb24gLj0gIl9DYWlyb19DRkxpdGUi
IGlmIChpc1dpbkNhaXJvKCkgJiYgaXNDeWd3aW4oKSk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KICAgICB9CkBAIC04NzIsNiArODcxLDE4IEBAIHN1YiBkZXRlcm1pbmVJc0Nocm9t
aXVtKCkKICAgICAkaXNDaHJvbWl1bSA9IGNoZWNrRm9yQXJndW1lbnRBbmRSZW1vdmVGcm9tQVJH
VigiLS1jaHJvbWl1bSIpOwogfQogCitzdWIgaXNXaW5DYWlybygpCit7CisgICAgZGV0ZXJtaW5l
SXNXaW5DYWlybygpOworICAgIHJldHVybiAkaXNXaW5DYWlybzsKK30KKworc3ViIGRldGVybWlu
ZUlzV2luQ2Fpcm8oKQoreworICAgIHJldHVybiBpZiBkZWZpbmVkKCRpc1dpbkNhaXJvKTsKKyAg
ICAkaXNXaW5DYWlybyA9IGNoZWNrRm9yQXJndW1lbnRBbmRSZW1vdmVGcm9tQVJHVigiLS13aW5j
YWlybyIpOworfQorCiBzdWIgaXNDeWd3aW4oKQogewogICAgIHJldHVybiAoJF5PIGVxICJjeWd3
aW4iKSB8fCAwOwo=
</data>
<flag name="review"
          id="81924"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>