<?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>45693</bug_id>
          
          <creation_ts>2010-09-13 11:36:53 -0700</creation_ts>
          <short_desc>REGRESSION (new parser): Leopard/Tiger Mail &lt;head&gt;/&lt;body&gt; quirk is gone</short_desc>
          <delta_ts>2010-10-12 17:25:30 -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>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>41115</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>aa</cc>
    
    <cc>aestes</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>278344</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-13 11:36:53 -0700</bug_when>
    <thetext>Implement Leopard/Tiger parsing quriks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278346</commentid>
    <comment_count>1</comment_count>
      <attachid>67443</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-13 11:39:56 -0700</bug_when>
    <thetext>Created attachment 67443
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278348</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-13 11:41:21 -0700</bug_when>
    <thetext>There was some talk of doing this at the WebKit layer instead.  Maybe that&apos;s better?  The parsing algorithm isn&apos;t really set up to skip over states in the state machine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278350</commentid>
    <comment_count>3</comment_count>
      <attachid>67443</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-13 11:42:45 -0700</bug_when>
    <thetext>Comment on attachment 67443
Patch

This is the wrong layer for this hack.  We shouldn&apos;t poop on the parser just to support some long-deprecated version of Mail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278354</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-13 11:51:15 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; This is the wrong layer for this hack.  We shouldn&apos;t poop on the parser just to support some long-deprecated version of Mail.

I don’t agree.

I’m not sure how to resolve this.

It seems the wrong process to remove the compatibility mode Apple added, and then debate how to add it back. Maybe we could have this debate before removing it next time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278356</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-13 11:51:50 -0700</bug_when>
    <thetext>Adding an application-specific hack to language bindings seems even worse to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278359</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-13 11:53:00 -0700</bug_when>
    <thetext>Seriously, if you find a better place to put this, that’s fine, but please add it back ASAP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278365</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-13 12:00:00 -0700</bug_when>
    <thetext>&gt; It seems the wrong process to remove the compatibility mode Apple added, and then debate how to add it back. Maybe we could have this debate before removing it next time?

To be clear, the patch earlier today didn&apos;t remove the compatibility mode.  That code wasn&apos;t doing what it claimed.  We inadvertently removed the mode when we originally switched to the new tree builder because there wasn&apos;t any test coverage to tell us that we broke something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278368</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-13 12:04:14 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; We inadvertently removed the mode when we originally switched to the new tree builder

Yes.

&gt; because there wasn&apos;t any test coverage to tell us that we broke something.

I’m not going to debate you on this point. It would be great to have tests for every case; certainly make it a lot easier to rewrite a module that has thorough test coverage.

So anyway, while redoing the parser you removed this. Please add it back!

Or if you won’t add it back, let me know so I can assign engineers to undo the damage. I can’t ship WebKit until we add it back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278374</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-13 12:08:47 -0700</bug_when>
    <thetext>&gt; So anyway, while redoing the parser you removed this. Please add it back!
&gt; 
&gt; Or if you won’t add it back, let me know so I can assign engineers to undo the damage. I can’t ship WebKit until we add it back.

I believe that path attached to this bug does add it back.  It lacks a test, but I think that&apos;s matter of figuring out how to tell DRT to turn on the quirk early enough / adjusting the #ifdefs to allow enabling the quirk in non-Tiger/Leopard builds.

If Eric thinks that it should be done at another layer, perhaps he&apos;d be willing to post a patch showing how that would work so we can compare the two and decide which is the better approach?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278383</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-13 12:15:51 -0700</bug_when>
    <thetext>Could someone post a stack trace of the exception?  I don&apos;t have access to a Leopard or Tiger machine anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278388</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-13 12:21:40 -0700</bug_when>
    <thetext>5/6/09 4:54:45 PM	Mail[229]	An exception was thrown &apos;*** NOT_FOUND_ERR: DOMException 8&apos;. Stack trace:
(
	0   CoreFoundation                      0x00007fff88552924 __exceptionPreprocess + 180
	1   libobjc.A.dylib                     0x00007fff81eea4b7 objc_exception_throw + 45
	2   CoreFoundation                      0x00007fff88500689 -[NSException raise] + 9
	3   WebCore                             0x00007fff80681fb7 _ZN7WebCore17raiseDOMExceptionEi + 279
	4   WebCore                             0x00007fff80844ad1 -[DOMRange setEndAfter:] + 65
	5   Mail                                0x00000001001e6f03 0x0 + 4296961795
	6   Mail                                0x00000001000d3901 0x0 + 4295833857
	7   Mail                                0x00000001001e5848 0x0 + 4296955976
	8   AppKit                              0x00007fff83e08669 -[NSApplication sendAction:to:from:] + 95
	9   AppKit                              0x00007fff83e085c9 -[NSControl sendAction:to:] + 94
	10  AppKit                              0x00007fff83e28f9f -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 1715
	11  AppKit                              0x00007fff83e65dff -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 555
	12  AppKit                              0x00007fff83e27a49 -[NSControl mouseDown:] + 624
	13  AppKit                              0x00007fff83dd8805 -[NSWindow sendEvent:] + 5409
	14  AppKit                              0x00007fff83d9d53a -[NSApplication sendEvent:] + 4440
	15  Mail                                0x000000010002ad02 0x0 + 4295142658
	16  AppKit                              0x00007fff83c7f6e1 -[NSApplication run] + 474
	17  AppKit                              0x00007fff83c6df6e NSApplicationMain + 364
	18  Mail                                0x00000001000e2f30 0x0 + 4295896880
)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278394</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-13 12:24:19 -0700</bug_when>
    <thetext>Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278401</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-13 12:30:42 -0700</bug_when>
    <thetext>There might be a slightly cleaner approach to the parser change if we introduce a new pseudo state.  I&apos;ll try another version of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278456</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-13 13:58:55 -0700</bug_when>
    <thetext>@darin:  Is the content being displayed in mail at this time arbitrary HTML or is it mail-generated?

I&apos;m looking into just moving the code into WebKit and having it simply reparent all children before the body element into the body element just before onload fires.  That should be possible to do entirely in WebKit and not involve WebCore or the parser (or other platforms) at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278467</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-13 14:12:23 -0700</bug_when>
    <thetext>Looks like implementing this as a user script injected at &quot;document end&quot; would be the most elegant.  I just have to figure out when to inject it into the page group and which page group to inject into. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278539</commentid>
    <comment_count>16</comment_count>
      <attachid>67482</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-13 15:47:59 -0700</bug_when>
    <thetext>Created attachment 67482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278541</commentid>
    <comment_count>17</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-13 15:49:46 -0700</bug_when>
    <thetext>I&apos;ve tested the quirk on my Snow Leopard machine by commenting out the &quot;is mail&quot; check and validating that all pages loaded have document.firstChild.firstChild == document.body.

However I can&apos;t take this to completion as I don&apos;t have a Leopard or Tiger machine to test on (not to mention access to Radar or Mail&apos;s source code).  Someone from Apple will have to carry this bird home.

The patch as-is, should solve mail&apos;s problems based on Darin&apos;s description above. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280223</commentid>
    <comment_count>18</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-16 11:25:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/8439720&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280308</commentid>
    <comment_count>19</comment_count>
      <attachid>67482</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-16 13:31:36 -0700</bug_when>
    <thetext>Comment on attachment 67482
Patch

I&apos;m nominating Eric&apos;s patch for review.  I&apos;m not sure how to test it, both to make sure it works for Mail and to make sure we don&apos;t break it in the future...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285324</commentid>
    <comment_count>20</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-26 22:32:35 -0700</bug_when>
    <thetext>@darin, should someone review this patch so we can make progress on this issue?  This is one of the few remaining issues with the new parser.  I&apos;d like to clean them out and be done with this project.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285875</commentid>
    <comment_count>21</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-09-27 16:40:23 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; @darin, should someone review this patch so we can make progress on this issue?  This is one of the few remaining issues with the new parser.  I&apos;d like to clean them out and be done with this project.  Thanks.

I have a Leopard machine and can test this patch. Will report back shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286052</commentid>
    <comment_count>22</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-09-27 21:36:56 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 67482 [details])
&gt; I&apos;m nominating Eric&apos;s patch for review.  I&apos;m not sure how to test it, both to make sure it works for Mail and to make sure we don&apos;t break it in the future...

I&apos;m still seeing the NOT_FOUND_ERR logged to Console. I did verify in gdb that the script was being injected, but perhaps it&apos;s not being executed by the time Mail does its DOM operations. I&apos;ll spend a little time investigating.

This patch will also need a layout test and the DRT machinery necessary to enable the quirk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293066</commentid>
    <comment_count>23</comment_count>
      <attachid>70557</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-10-12 12:47:35 -0700</bug_when>
    <thetext>Created attachment 70557
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293070</commentid>
    <comment_count>24</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-10-12 12:51:06 -0700</bug_when>
    <thetext>I just got a chance to look at this again and figured out why it wasn&apos;t working. Mail doesn&apos;t specify a group name when initializing its WebViews, so calling _addUserScriptToGroup doesn&apos;t work in this case. I changed the patch to get the single-page page group for the WebView and call PageGroup::addUserScriptToWorld() directly, which works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293084</commentid>
    <comment_count>25</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-12 13:16:11 -0700</bug_when>
    <thetext>&gt; ..., which works.

Cool!  Shall we go with this approach then?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293102</commentid>
    <comment_count>26</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-10-12 13:49:44 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; &gt; ..., which works.
&gt; 
&gt; Cool!  Shall we go with this approach then?

Could there be issues with applying this quirk to arbitrary HTML email content? I assume things that typically go in head retain their meaning when head is a child of body rather than html.

Also, this quirk seems to only be needed by the WebView created for the signatures pref panel, so it would be nice if this could be isolated to that WebView only.(In reply to comment #25)
&gt; &gt; ..., which works.
&gt; 
&gt; Cool!  Shall we go with this approach then?

I wish there was a way to isolate this quirk to the signature pref pane&apos;s WebView. It seems strange to be reparenting the head element in arbitrary HTML email.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293104</commentid>
    <comment_count>27</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-12 13:53:27 -0700</bug_when>
    <thetext>&gt; Could there be issues with applying this quirk to arbitrary HTML email content? I assume things that typically go in head retain their meaning when head is a child of body rather than html.

In theory, yes, but in practice, it&apos;s probably fine.  One thing to check is that scripts don&apos;t get executed twice if moved in this way.  (They shouldn&apos;t, but one should check these things.)

&gt; I wish there was a way to isolate this quirk to the signature pref pane&apos;s WebView. It seems strange to be reparenting the head element in arbitrary HTML email.

Is there some distinguishing characteristic of that WebView we can key off of?  Maybe it&apos;s URL?  Maybe something about the content?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293105</commentid>
    <comment_count>28</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-10-12 13:55:09 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; &gt; Could there be issues with applying this quirk to arbitrary HTML email content? I assume things that typically go in head retain their meaning when head is a child of body rather than html.
&gt; 
&gt; In theory, yes, but in practice, it&apos;s probably fine.  One thing to check is that scripts don&apos;t get executed twice if moved in this way.  (They shouldn&apos;t, but one should check these things.)

I believe Mail disables scripting.

&gt; 
&gt; &gt; I wish there was a way to isolate this quirk to the signature pref pane&apos;s WebView. It seems strange to be reparenting the head element in arbitrary HTML email.
&gt; 
&gt; Is there some distinguishing characteristic of that WebView we can key off of?  Maybe it&apos;s URL?  Maybe something about the content?

Perhaps; I&apos;ll take a look in the debugger.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293149</commentid>
    <comment_count>29</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-10-12 15:53:55 -0700</bug_when>
    <thetext>&gt; Is there some distinguishing characteristic of that WebView we can key off of?  Maybe it&apos;s URL?  Maybe something about the content?

The only distinguishing characteristic I can come up with is that the WebView is decoded from a NIB file (initWithCoder) as opposed to email WebViews (initWithFrame). The WebView doesn&apos;t have a frame name, group name, or main document URL, so I&apos;m not sure what else to key off of.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293157</commentid>
    <comment_count>30</comment_count>
      <attachid>70557</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-12 16:05:58 -0700</bug_when>
    <thetext>Comment on attachment 70557
Patch

I think the risk of moving the &lt;head&gt; into the &lt;body&gt; of all emails in Leopard/Tiger versions of mail, is fantastically small.

But I may also be used to the chromium update-every-few-days model where regressions are easier to fix when you get them wrong.

I&apos;m ready to r+ this patch, but I shouldn&apos;t really... since I wrote it. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293180</commentid>
    <comment_count>31</comment_count>
      <attachid>70557</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-12 16:40:52 -0700</bug_when>
    <thetext>Comment on attachment 70557
Patch

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

r=me but I’d like to see the style issues fixed

&gt; WebKit/mac/WebView/WebView.mm:648
&gt; ++ (NSString*)_mailQuirksUserScript
&gt; +{
&gt; +    static NSString* mailQuirksScript = nil;
&gt; +    if (!mailQuirksScript) {
&gt; +        NSString *scriptPath = [[NSBundle bundleForClass:[WebView class]] pathForResource:@&quot;MailQuirksUserScript&quot; ofType:@&quot;js&quot;];
&gt; +        mailQuirksScript = [[NSString alloc] initWithContentsOfFile:scriptPath];
&gt; +    }
&gt; +    return mailQuirksScript;
&gt; +}

The one-time initialization code should not use an if statement. Instead it should be in a separate function.

&gt; WebKit/mac/WebView/WebView.mm:658
&gt; +    core(self)-&gt;group().addUserScriptToWorld(core([WebScriptWorld world]),
&gt; +                                             [WebView _mailQuirksUserScript],
&gt; +                                             KURL(),
&gt; +                                             0,
&gt; +                                             0,
&gt; +                                             InjectAtDocumentEnd,
&gt; +                                             InjectInAllFrames);

We don’t line up code with parentheses like this. This should be indented normally and not formatted vertically like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293184</commentid>
    <comment_count>32</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-10-12 16:45:09 -0700</bug_when>
    <thetext>Thanks for the review Darin. I&apos;ll clean up the style issues before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293216</commentid>
    <comment_count>33</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-10-12 17:25:30 -0700</bug_when>
    <thetext>Committed r69622: &lt;http://trac.webkit.org/changeset/69622&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67443</attachid>
            <date>2010-09-13 11:39:56 -0700</date>
            <delta_ts>2010-09-13 15:47:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45693-20100913113954.patch</filename>
            <type>text/plain</type>
            <size>7779</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzM5OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDktMTMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBs
ZW1lbnQgTGVvcGFyZC9UaWdlciBwYXJzaW5nIHF1cmlrcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU2OTMKKworICAgICAgICBUaGlzIHR1cm5lZCBv
dXQgdG8gYmUgcHJldHR5IG5hc3R5LiAgSSBkb24ndCBrbm93IGhvdyB0byB3cml0ZSBhIHRlc3QK
KyAgICAgICAgZm9yIHRoaXMgY29kZS4gIEkgcmFuIHRoZSBIVE1MNWxpYiB0ZXN0IHN1aXRlIHdp
dGggdGhlIHF1aXJrIHR1cm5lZCBvbi4KKyAgICAgICAgQWxtb3N0IGV2ZXJ5IHRlc3QgZmFpbGVk
IChiZWNhdXNlIG1vc3Qgb2YgdGhlbSB1c2UgYW4gaW1wbGljaXQgPGhlYWQ+KS4KKyAgICAgICAg
VGh1bWJpbmcgdGhyb3VnaCB0aGUgcmVzdWx0cywgdGhleSBsb29rIHJpZ2h0IHcuci50LiB3aGF0
IHdlIHdhbnQuCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpIVE1MVHJlZUJ1aWxkZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpRdWlya3M6OlF1aXJrcyk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ2hhcmFjdGVyQnVmZmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZE9mRmlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVHJlZUJ1aWxkZXI6OmRlZmF1bHRGb3JCZWZvcmVIZWFkKToKKyAgICAgICAgKiBo
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVl
QnVpbGRlcjo6UXVpcmtzOjpmaXJzdENoaWxkT2ZEb2N1bWVudEVsZW1lbnRJc0JvZHkpOgorCiAy
MDEwLTA5LTEzICBBbGVqYW5kcm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KSW5kZXg6IFdlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxUcmVlQnVpbGRlci5jcHAJKHJldmlzaW9uIDY3Mzk2KQorKysgV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBA
CiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIk1hdGhNTE5hbWVzLmgi
CiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKQEAgLTM2Miw2ICszNjMsNyBAQCBIVE1MVHJlZUJ1aWxkZXI6OkhUTUxUcmVl
QnVpbGRlcihIVE1MVG9rCiAgICAgLCBtX3Rva2VuaXplcih0b2tlbml6ZXIpCiAgICAgLCBtX3Nj
cmlwdFRvUHJvY2Vzc1N0YXJ0TGluZSh1bmluaXRpYWxpemVkTGluZU51bWJlclZhbHVlKQogICAg
ICwgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0TGluZSh1bmluaXRpYWxpemVkTGluZU51bWJlclZh
bHVlKQorICAgICwgbV9xdWlya3MoZG9jdW1lbnQpCiB7CiB9CiAKQEAgLTM4MCw2ICszODIsNyBA
QCBIVE1MVHJlZUJ1aWxkZXI6OkhUTUxUcmVlQnVpbGRlcihIVE1MVG9rCiAgICAgLCBtX3Rva2Vu
aXplcih0b2tlbml6ZXIpCiAgICAgLCBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0TGluZSh1bmluaXRp
YWxpemVkTGluZU51bWJlclZhbHVlKQogICAgICwgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0TGlu
ZSh1bmluaXRpYWxpemVkTGluZU51bWJlclZhbHVlKQorICAgICwgbV9xdWlya3MobV9mcmFnbWVu
dENvbnRleHQuZG9jdW1lbnQoKSkKIHsKICAgICBpZiAoY29udGV4dEVsZW1lbnQpIHsKICAgICAg
ICAgLy8gU3RlcHMgNC4yLTQuNiBvZiB0aGUgSFRNTDUgRnJhZ21lbnQgQ2FzZSBwYXJzaW5nIGFs
Z29yaXRobToKQEAgLTM5NSw2ICszOTgsMTkgQEAgSFRNTFRyZWVCdWlsZGVyOjp+SFRNTFRyZWVC
dWlsZGVyKCkKIHsKIH0KIAorSFRNTFRyZWVCdWlsZGVyOjpRdWlya3M6OlF1aXJrcyhEb2N1bWVu
dCogZG9jdW1lbnQpCisgICAgOiBtX2ZpcnN0Q2hpbGRPZkRvY3VtZW50RWxlbWVudElzQm9keShm
YWxzZSkKK3sKKyAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudC0+cGFnZSgpID8gZG9j
dW1lbnQtPnBhZ2UoKS0+c2V0dGluZ3MoKSA6IDA7CisjaWZkZWYgQlVJTERJTkdfT05fTEVPUEFS
RAorICAgIG1fZmlyc3RDaGlsZE9mRG9jdW1lbnRFbGVtZW50SXNCb2R5ID0gc2V0dGluZ3MgJiYg
c2V0dGluZ3MtPm5lZWRzTGVvcGFyZE1haWxRdWlya3MoKTsKKyNlbGlmIGRlZmluZWQoQlVJTERJ
TkdfT05fVElHRVIpCisgICAgbV9maXJzdENoaWxkT2ZEb2N1bWVudEVsZW1lbnRJc0JvZHkgPSBz
ZXR0aW5ncyAmJiBzZXR0aW5ncy0+bmVlZHNUaWdlck1haWxRdWlya3MoKTsKKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKHNldHRpbmdzKTsKKyNlbmRpZgorfQorCiB2b2lkIEhUTUxUcmVlQnVpbGRl
cjo6ZGV0YWNoKCkKIHsKICAgICAvLyBUaGlzIGNhbGwgbWFrZXMgbGl0dGxlIHNlbnNlIGluIGZy
YWdtZW50IG1vZGUsIGJ1dCBmb3IgY29uc2lzdGVuY3kKQEAgLTExOTQsNiArMTIxMCwxMSBAQCB2
b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdEZvckJlZm9yZUhlYWQoKTsKKyAgICAgICAg
aWYgKGluc2VydGlvbk1vZGUoKSAhPSBJbkhlYWRNb2RlKSB7CisgICAgICAgICAgICBBU1NFUlQo
bV9xdWlya3MuZmlyc3RDaGlsZE9mRG9jdW1lbnRFbGVtZW50SXNCb2R5KCkpOworICAgICAgICAg
ICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQogICAgICAgICAvLyBGYWxsIHRocm91Z2guCiAgICAgY2FzZSBJbkhlYWRNb2RlOgogICAgICAg
ICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluSGVhZE1vZGUpOwpAQCAtMTIyOCwxNSArMTI0
OSwyMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0CiAgICAgICAg
ICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gc3R5bGVUYWcKICAgICAgICAgICAgIHx8IHRva2VuLm5h
bWUoKSA9PSB0aXRsZVRhZykgewogICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7Ci0gICAg
ICAgICAgICBBU1NFUlQobV90cmVlLmhlYWQoKSk7Ci0gICAgICAgICAgICBtX3RyZWUub3BlbkVs
ZW1lbnRzKCktPnB1c2hIVE1MSGVhZEVsZW1lbnQobV90cmVlLmhlYWQoKSk7Ci0gICAgICAgICAg
ICBwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQodG9rZW4pOwotICAgICAgICAgICAgbV90cmVlLm9w
ZW5FbGVtZW50cygpLT5yZW1vdmVIVE1MSGVhZEVsZW1lbnQobV90cmVlLmhlYWQoKSk7Ci0gICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICBpZiAobV90cmVlLmhlYWQoKSkgeworICAgICAg
ICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cHVzaEhUTUxIZWFkRWxlbWVudChtX3Ry
ZWUuaGVhZCgpKTsKKyAgICAgICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQodG9r
ZW4pOworICAgICAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cmVtb3ZlSFRNTEhl
YWRFbGVtZW50KG1fdHJlZS5oZWFkKCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIEFTU0VSVChtX3F1aXJrcy5maXJzdENoaWxkT2ZEb2N1bWVu
dEVsZW1lbnRJc0JvZHkoKSk7CisgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2gKICAgICAgICAg
fQogICAgICAgICBpZiAodG9rZW4ubmFtZSgpID09IGhlYWRUYWcpIHsKLSAgICAgICAgICAgIHBh
cnNlRXJyb3IodG9rZW4pOwotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgaWYgKG1f
dHJlZS5oZWFkKCkpIHsKKyAgICAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBBU1NFUlQobV9x
dWlya3MuZmlyc3RDaGlsZE9mRG9jdW1lbnRFbGVtZW50SXNCb2R5KCkpOworICAgICAgICAgICAg
Ly8gRmFsbCB0aHJvdWdoCiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdEZvckFmdGVySGVhZCgp
OwogICAgICAgICAvLyBGYWxsIHRocm91Z2gKQEAgLTIxMjEsNiArMjE0OSwxMSBAQCB2b2lkIEhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9tCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KICAgICAgICAgZGVmYXVsdEZvckJlZm9yZUhlYWQoKTsKKyAgICAgICAgaWYgKGlu
c2VydGlvbk1vZGUoKSAhPSBJbkhlYWRNb2RlKSB7CisgICAgICAgICAgICBBU1NFUlQobV9xdWly
a3MuZmlyc3RDaGlsZE9mRG9jdW1lbnRFbGVtZW50SXNCb2R5KCkpOworICAgICAgICAgICAgcHJv
Y2Vzc0VuZFRhZyh0b2tlbik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICAg
ICAgLy8gRmFsbCB0aHJvdWdoLgogICAgIGNhc2UgSW5IZWFkTW9kZToKICAgICAgICAgQVNTRVJU
KGluc2VydGlvbk1vZGUoKSA9PSBJbkhlYWRNb2RlKTsKQEAgLTI0NDUsNiArMjQ3OCwxMCBAQCBS
ZXByb2Nlc3NCdWZmZXI6CiAgICAgICAgIGlmIChidWZmZXIuaXNFbXB0eSgpKQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICBkZWZhdWx0Rm9yQmVmb3JlSGVhZCgpOworICAgICAgICBpZiAo
aW5zZXJ0aW9uTW9kZSgpICE9IEluSGVhZE1vZGUpIHsKKyAgICAgICAgICAgIEFTU0VSVChtX3F1
aXJrcy5maXJzdENoaWxkT2ZEb2N1bWVudEVsZW1lbnRJc0JvZHkoKSk7CisgICAgICAgICAgICBn
b3RvIFJlcHJvY2Vzc0J1ZmZlcjsgICAKKyAgICAgICAgfQogICAgICAgICAvLyBGYWxsIHRocm91
Z2guCiAgICAgfQogICAgIGNhc2UgSW5IZWFkTW9kZTogewpAQCAtMjQ1OSwxMSArMjQ5NiwxMyBA
QCBSZXByb2Nlc3NCdWZmZXI6CiAgICAgfQogICAgIGNhc2UgQWZ0ZXJIZWFkTW9kZTogewogICAg
ICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEFmdGVySGVhZE1vZGUpOwotICAgICAgICBT
dHJpbmcgbGVhZGluZ1doaXRlc3BhY2UgPSBidWZmZXIudGFrZUxlYWRpbmdXaGl0ZXNwYWNlKCk7
Ci0gICAgICAgIGlmICghbGVhZGluZ1doaXRlc3BhY2UuaXNFbXB0eSgpKQotICAgICAgICAgICAg
bV90cmVlLmluc2VydFRleHROb2RlKGxlYWRpbmdXaGl0ZXNwYWNlKTsKLSAgICAgICAgaWYgKGJ1
ZmZlci5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmICghbV9xdWly
a3MuZmlyc3RDaGlsZE9mRG9jdW1lbnRFbGVtZW50SXNCb2R5KCkpIHsKKyAgICAgICAgICAgIFN0
cmluZyBsZWFkaW5nV2hpdGVzcGFjZSA9IGJ1ZmZlci50YWtlTGVhZGluZ1doaXRlc3BhY2UoKTsK
KyAgICAgICAgICAgIGlmICghbGVhZGluZ1doaXRlc3BhY2UuaXNFbXB0eSgpKQorICAgICAgICAg
ICAgICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZShsZWFkaW5nV2hpdGVzcGFjZSk7CisgICAgICAg
ICAgICBpZiAoYnVmZmVyLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KICAgICAgICAgZGVmYXVsdEZvckFmdGVySGVhZCgpOwogICAgICAgICAvLyBGYWxsIHRo
cm91Z2guCiAgICAgfQpAQCAtMjU4Myw2ICsyNjIyLDExIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzRW5kT2ZGaWxlKEEKICAgICBjYXNlIEJlZm9yZUhlYWRNb2RlOgogICAgICAgICBB
U1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEJlZm9yZUhlYWRNb2RlKTsKICAgICAgICAgZGVmYXVs
dEZvckJlZm9yZUhlYWQoKTsKKyAgICAgICAgaWYgKGluc2VydGlvbk1vZGUoKSAhPSBJbkhlYWRN
b2RlKSB7CisgICAgICAgICAgICBBU1NFUlQobV9xdWlya3MuZmlyc3RDaGlsZE9mRG9jdW1lbnRF
bGVtZW50SXNCb2R5KCkpOworICAgICAgICAgICAgcHJvY2Vzc0VuZE9mRmlsZSh0b2tlbik7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgog
ICAgIGNhc2UgSW5IZWFkTW9kZToKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJ
bkhlYWRNb2RlKTsKQEAgLTI2NzMsNiArMjcxNywxMiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6
ZGVmYXVsdEZvckJlZm9yZUhUCiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpkZWZhdWx0Rm9yQmVm
b3JlSGVhZCgpCiB7CisgICAgaWYgKG1fcXVpcmtzLmZpcnN0Q2hpbGRPZkRvY3VtZW50RWxlbWVu
dElzQm9keSgpKSB7CisgICAgICAgIC8vIFdlIG5lZWQgdG8gc2tpcCBvdmVyIHRoZSBpbXBsaWNp
dCBjcmVhdGlvbiBvZiA8aGVhZD4gYW5kIGdldCByZWFkeQorICAgICAgICAvLyB0byBpbXBsaWNp
dGx5IGNyZWF0ZSA8Ym9keT4uCisgICAgICAgIHNldEluc2VydGlvbk1vZGUoQWZ0ZXJIZWFkTW9k
ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgQXRvbWljSFRNTFRva2VuIHN0YXJ0SGVh
ZChIVE1MVG9rZW46OlN0YXJ0VGFnLCBoZWFkVGFnLmxvY2FsTmFtZSgpKTsKICAgICBwcm9jZXNz
U3RhcnRUYWcoc3RhcnRIZWFkKTsKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRy
ZWVCdWlsZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1
aWxkZXIuaAkocmV2aXNpb24gNjczOTYpCisrKyBXZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVl
QnVpbGRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTQsNiArMjU0LDE4IEBAIHByaXZhdGU6CiAg
ICAgLy8gY3JlYXRlZCB0byBzZXJ2aWNlIHRoZSBsZWdhY3kgdHJlZSBidWlsZGVyLCBidXQgaXQg
c2VlbXMgdG8gYmUgdXNlZCBmb3IKICAgICAvLyBzb21lIG90aGVyIHRoaW5ncyBub3cuCiAgICAg
aW50IG1fbGFzdFNjcmlwdEVsZW1lbnRTdGFydExpbmU7CisKKyAgICBjbGFzcyBRdWlya3Mgewor
ICAgIHB1YmxpYzoKKyAgICAgICAgUXVpcmtzKERvY3VtZW50Kik7CisKKyAgICAgICAgYm9vbCBm
aXJzdENoaWxkT2ZEb2N1bWVudEVsZW1lbnRJc0JvZHkoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0
Q2hpbGRPZkRvY3VtZW50RWxlbWVudElzQm9keTsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAg
Ym9vbCBtX2ZpcnN0Q2hpbGRPZkRvY3VtZW50RWxlbWVudElzQm9keTsKKyAgICB9OworCisgICAg
UXVpcmtzIG1fcXVpcmtzOwogfTsKIAogLy8gRklYTUU6IE1vdmUgdGhlc2UgZnVuY3Rpb25zIHRv
IGEgbW9yZSBhcHByb3ByaWF0ZSBwbGFjZS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67482</attachid>
            <date>2010-09-13 15:47:59 -0700</date>
            <delta_ts>2010-10-12 12:47:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45693-20100913154757.patch</filename>
            <type>text/plain</type>
            <size>10396</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9DaGFuZ2VMb2cgYi9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI3
MjdiZmJkYmM2OThkZmEwOWM4Y2Y0MzhkNzk1Zjg4NGYwYmU4YmQuLjNmMjk1MWUyOTQwNGU5Yzdm
MDQ1NjQyNzFmYjliNmZmMWQxZDZhYmMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA5LTEzICBFcmljIFNl
aWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OIChuZXcgcGFyc2VyKTogTGVvcGFyZC9UaWdlciBN
YWlsIDxoZWFkPi88Ym9keT4gcXVpcmsgaXMgZ29uZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU2OTMKKworICAgICAgICAqIFdlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAgLSBBZGQgdGhlIE1haWxRdWlya3NVc2VyU2Ny
aXB0LmpzIHRvIHRoZSBwcm9qZWN0LgorCiAyMDEwLTA5LTEwICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJlODU2NzIwN2U3ZDhjODAxOTM1NjQy
ZTg2OTJiNDVlN2IyYmYxYzUuLjIxYWRkMzM5OTYwYTA4OTc1ZGUwMjY2M2NlNWZmYTBiNmY2ODAw
YWQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMzOCw2ICsz
MzgsOCBAQAogCQlBNzA5MzZCMDBCNTYwOERDMDBDREI0OEUgLyogV2ViRHJhZ0NsaWVudC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MDkzNkFFMEI1
NjA4REMwMENEQjQ4RSAvKiBXZWJEcmFnQ2xpZW50Lm1tICovOyB9OwogCQlBN0QzQzVCQzBCNTc3
M0M1MDAyQ0E0NTAgLyogV2ViUGFzdGVib2FyZEhlbHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEM0M1QkEwQjU3NzNDNTAwMkNBNDUwIC8qIFdl
YlBhc3RlYm9hcmRIZWxwZXIuaCAqLzsgfTsKIAkJQTdEM0M1QkQwQjU3NzNDNTAwMkNBNDUwIC8q
IFdlYlBhc3RlYm9hcmRIZWxwZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBN0QzQzVCQjBCNTc3M0M1MDAyQ0E0NTAgLyogV2ViUGFzdGVib2FyZEhl
bHBlci5tbSAqLzsgfTsKKwkJQTg2NEIzRTYxMjNFRDgzRDAwQzJBNjEyIC8qIE1haWxRdWlya3NV
c2VyU2NyaXB0LmpzIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTg2NEIzRTUxMjNFRDgzRDAwQzJBNjEyIC8qIE1haWxRdWlya3NVc2VyU2NyaXB0LmpzICov
OyB9OworCQlBODY0QjNGNjEyM0VEOUZBMDBDMkE2MTIgLyogTWFpbFF1aXJrc1VzZXJTY3JpcHQu
anMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NjRC
M0U1MTIzRUQ4M0QwMEMyQTYxMiAvKiBNYWlsUXVpcmtzVXNlclNjcmlwdC5qcyAqLzsgfTsKIAkJ
QUI5RkJCQkIwRjg1ODJCMDAwNkFEQzQzIC8qIFdlYkRPTU9wZXJhdGlvbnNJbnRlcm5hbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI5RkJCQkEwRjg1
ODJCMDAwNkFEQzQzIC8qIFdlYkRPTU9wZXJhdGlvbnNJbnRlcm5hbC5oICovOyB9OwogCQlBQkRE
RjIwRDA4RUIwRERDMDAxRTEyNDEgLyogV2ViRG93bmxvYWRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJEREYyMEMwOEVCMEREQzAwMUUx
MjQxIC8qIFdlYkRvd25sb2FkSW50ZXJuYWwuaCAqLzsgfTsKIAkJQjZDRTVDMjQxMDBCQzVDRTAw
MjE5OTM2IC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNjgwNDk3MjBGRkJDRUMxMDA5RjdGNjIgLyogV2ViQXBw
bGljYXRpb25DYWNoZS5tbSAqLzsgfTsKQEAgLTY0OSw2ICs2NTEsNyBAQAogCQlBNzA5MzZBRTBC
NTYwOERDMDBDREI0OEUgLyogV2ViRHJhZ0NsaWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXZWJEcmFnQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBN0QzQzVCQTBCNTc3M0M1MDAyQ0E0NTAgLyogV2ViUGFzdGVib2FyZEhlbHBl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYXN0ZWJvYXJkSGVscGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3RDNDNUJCMEI1NzczQzUwMDJDQTQ1
MCAvKiBXZWJQYXN0ZWJvYXJkSGVscGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV2ViUGFzdGVib2FyZEhlbHBlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTg2NEIzRTUxMjNFRDgzRDAwQzJBNjEyIC8qIE1haWxRdWlya3NVc2VyU2NyaXB0
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gTWFpbFF1aXJrc1Vz
ZXJTY3JpcHQuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFCOUZCQkJBMEY4NTgy
QjAwMDZBREM0MyAvKiBXZWJET01PcGVyYXRpb25zSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViRE9NT3BlcmF0aW9uc0ludGVybmFsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUFCRERGMjBDMDhFQjBEREMwMDFFMTI0MSAvKiBXZWJEb3dubG9h
ZEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkRvd25sb2FkSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUI2ODA0OTcxMEZGQkNFQzEwMDlGN0Y2MiAv
KiBXZWJBcHBsaWNhdGlvbkNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkFwcGxpY2F0aW9uQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkz
Miw2ICs5MzUsNyBAQAogCQkyNTREQzMzNDAxNkUxRDNGMEVDQTE0OUUgLyogTWlzYyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQTg2NEIzRTUxMjNFRDgz
RDAwQzJBNjEyIC8qIE1haWxRdWlya3NVc2VyU2NyaXB0LmpzICovLAogCQkJCTFDQ0ZGRDEyMEIx
RjgxRjIwMDJFRTkyNiAvKiBPbGRXZWJBc3NlcnRpb25zLmMgKi8sCiAJCQkJNURFOTJGRUUwQkQ3
MDE3RTAwNTlBNUZEIC8qIFdlYkFzc2VydGlvbnMuaCAqLywKIAkJCQk1MjQxQURGMzBCMUJDNDhB
MDA0MDEyQkQgLyogV2ViQ2FjaGUuaCAqLywKQEAgLTE2OTUsNiArMTY5OSw3IEBACiAJCQlpc2Eg
PSBQQlhSZXNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0
NzsKIAkJCWZpbGVzID0gKAorCQkJCUE4NjRCM0Y2MTIzRUQ5RkEwMEMyQTYxMiAvKiBNYWlsUXVp
cmtzVXNlclNjcmlwdC5qcyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJOTM5ODEwQkEwODI0QkYwMTAw
OERGMDM4IC8qIElETlNjcmlwdFdoaXRlTGlzdC50eHQgaW4gUmVzb3VyY2VzICovLAogCQkJCTVE
RTgzQTdGMEQwRjdGQUQwMENBRDEyQSAvKiBMb2NhbGl6YWJsZS5zdHJpbmdzIGluIFJlc291cmNl
cyAqLywKIAkJCQk5Mzk4MTBCNzA4MjRCRjAxMDA4REYwMzggLyogdXJsX2ljb24udGlmZiBpbiBS
ZXNvdXJjZXMgKi8sCkBAIC0xOTk2LDYgKzIwMDEsNyBAQAogCQkJCTU5OEFEOTIyMTIwMUNGMTAw
MEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU5
OEFEOTI4MTIwMUNGMzIwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9j
ay5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzRTJBMUE1MTIzQjBCM0MwMDlGRTEyQSAvKiBXZWJE
YXNoYm9hcmRSZWdpb24ubW0gaW4gU291cmNlcyAqLywKKwkJCQlBODY0QjNFNjEyM0VEODNEMDBD
MkE2MTIgLyogTWFpbFF1aXJrc1VzZXJTY3JpcHQuanMgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdp
dCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMzhi
M2QyNTY3ZTkxNDMxNDYxM2VkMTJlY2ZmMjAwZTM4NjYzNThmOC4uYjE0NGYzYTEyODM2NmI4ZGRi
ZDc3MjEwOGQwMjMxNzUyY2MyNGVhMyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wOS0xMyAg
RXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUkVHUkVTU0lPTiAobmV3IHBhcnNlcik6IExlb3BhcmQv
VGlnZXIgTWFpbCA8aGVhZD4vPGJvZHk+IHF1aXJrIGlzIGdvbmUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NjkzCisKKyAgICAgICAgUmUtaW1wbGVt
ZW50IHRoaXMgZm9ybWVyIFdlYkNvcmUgcGFyc2VyIHF1aXJrIGFzIGEKKyAgICAgICAgTWFjLW9u
bHkgdXNlcnNjcmlwdC1iYXNlZCBxdWlyay4gIEFzIGZhciBhcyBJIGNhbiB0ZWxsCisgICAgICAg
IGZyb20gRGFyaW4ncyBkZXNjcmlwdGlvbiB0aGlzIHNob3VsZCBzYXRpc2Z5IE1haWwncyBuZWVk
cy4KKworICAgICAgICAqIE1pc2MvTWFpbFF1aXJrc1VzZXJTY3JpcHQuanM6IEFkZGVkLgorICAg
ICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKCtbV2ViVmlldyBfbWFpbFF1aXJr
c1VzZXJTY3JpcHRdKToKKyAgICAgICAgKC1bV2ViVmlldyBfaW5qZWN0TWFpbFF1aXJrc1Njcmlw
dF0pOgorICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5h
bWU6Z3JvdXBOYW1lOnVzZXNEb2N1bWVudFZpZXdzOl0pOgorCiAyMDEwLTA5LTEzICBFbnJpY2Eg
Q2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdl
aW5pZy4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvTWlzYy9NYWlsUXVpcmtzVXNlclNjcmlwdC5q
cyBiL1dlYktpdC9tYWMvTWlzYy9NYWlsUXVpcmtzVXNlclNjcmlwdC5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
N2FhMWFjMmM5NmNjOWNmZDg3OWE0YjBlZTFmYWZiZjkxMjhkMTU0Ci0tLSAvZGV2L251bGwKKysr
IGIvV2ViS2l0L21hYy9NaXNjL01haWxRdWlya3NVc2VyU2NyaXB0LmpzCkBAIC0wLDAgKzEsNTcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKiAK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqIAorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisoZnVuY3Rpb24oKSB7CisgICAgZnVuY3Rpb24gY2hpbGRyZW5CZWZvcmUocGFyZW50LCBz
dG9wQXQpCisgICAgeworICAgICAgICB2YXIgY2hpbGRyZW4gPSBbXTsKKyAgICAgICAgZm9yICh2
YXIgY2hpbGQgPSBwYXJlbnQuZmlyc3RDaGlsZDsgY2hpbGQgIT0gc3RvcEF0OyBjaGlsZCA9IGNo
aWxkLm5leHRTaWJsaW5nKQorICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChjaGlsZCk7CisgICAg
ICAgIHJldHVybiBjaGlsZHJlbjsKKyAgICB9CisKKyAgICAvLyBJZiBodG1sIG9yIGJvZHkgaXMg
bWlzc2luZywgTWFpbC5hcHAncyBhc3N1bXB0aW9uIHRoYXQKKyAgICAvLyBkb2N1bWVudC5maXJz
dENoaWxkLmZpcnN0Q2hpbGQgPT0gZG9jdW1lbnQuYm9keSBpcyB3cm9uZyBhbnl3YXksCisgICAg
Ly8gc28gcmV0dXJuIG51bGwgdG8gbm90IG1vdmUgYW55dGhpbmcuCisgICAgaWYgKCFkb2N1bWVu
dC5kb2N1bWVudEVsZW1lbnQgfHwgIWRvY3VtZW50LmJvZHkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHZhciBjaGlsZHJlbiA9IGNoaWxkcmVuQmVmb3JlKGRvY3VtZW50LCBkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQpOworICAgIGNoaWxkcmVuID0gY2hpbGRyZW4uY29uY2F0KGNoaWxkcmVuQmVm
b3JlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgZG9jdW1lbnQuYm9keSkpOworCisgICAgZm9y
ICh2YXIgaSA9IGNoaWxkcmVuLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIHZh
ciBjaGlsZCA9IGNoaWxkcmVuW2ldOworICAgICAgICAvLyBJdCdzIG5vdCBwb3NzaWJsZSB0byBt
b3ZlIGRvY3R5cGUgbm9kZXMgaW50byB0aGUgYm9keSwgc28ganVzdCByZW1vdmUgdGhlbS4KKyAg
ICAgICAgaWYgKGNoaWxkLm5vZGVUeXBlID09IGNoaWxkLkRPQ1VNRU5UX1RZUEVfTk9ERSkKKyAg
ICAgICAgICAgIGNoaWxkLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY2hpbGQpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShjaGlsZCwgZG9jdW1l
bnQuYm9keS5maXJzdENoaWxkKTsKKyAgICB9Cit9KSgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggMWM1ZjlmNjM4Y2UzMzlkZTI4ZjJiMTdkZTkx
NDZkZjVhMGQ2ZTA5My4uNGRjZTJiZWIxYzc0NjlmZDM4M2IzODc3ZGMxZTJmNWYwZGRiMmM0OSAx
MDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTYzMCw2ICs2MzAsMjggQEAgc3RhdGljIGJvb2wgc2hv
dWxkRW5hYmxlTG9hZERlZmVycmluZygpCiAgICAgcmV0dXJuIF9wcml2YXRlLT51c2VzRG9jdW1l
bnRWaWV3czsKIH0KIAorKyAoTlNTdHJpbmcqKV9tYWlsUXVpcmtzVXNlclNjcmlwdAoreworICAg
IHN0YXRpYyBOU1N0cmluZyogbWFpbFF1aXJrc1NjcmlwdCA9IG5pbDsKKyAgICBpZiAoIW1haWxR
dWlya3NTY3JpcHQpIHsKKyAgICAgICAgTlNTdHJpbmcgKnNjcmlwdFBhdGggPSBbW05TQnVuZGxl
IGJ1bmRsZUZvckNsYXNzOltXZWJWaWV3IGNsYXNzXV0gcGF0aEZvclJlc291cmNlOkAiTWFpbFF1
aXJrc1VzZXJTY3JpcHQiIG9mVHlwZTpAImpzIl07CisgICAgICAgIG1haWxRdWlya3NTY3JpcHQg
PSBbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aENvbnRlbnRzT2ZGaWxlOnNjcmlwdFBhdGhdOwor
ICAgIH0KKyAgICByZXR1cm4gbWFpbFF1aXJrc1NjcmlwdDsKK30KKworLSAodm9pZClfaW5qZWN0
TWFpbFF1aXJrc1NjcmlwdAoreworICAgIFtXZWJWaWV3IF9hZGRVc2VyU2NyaXB0VG9Hcm91cDpj
b3JlKHNlbGYpLT5ncm91cCgpLm5hbWUoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3
b3JsZDpbV2ViU2NyaXB0V29ybGQgd29ybGRdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c291cmNlOltXZWJWaWV3IF9tYWlsUXVpcmtzVXNlclNjcmlwdF0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1cmw6bmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGVsaXN0
Om5pbAorICAgICAgICAgICAgICAgICAgICAgICAgIGJsYWNrbGlzdDpuaWwKKyAgICAgICAgICAg
ICAgICAgICAgIGluamVjdGlvblRpbWU6V2ViSW5qZWN0QXREb2N1bWVudEVuZAorICAgICAgICAg
ICAgICAgICAgICBpbmplY3RlZEZyYW1lczpXZWJJbmplY3RJbkFsbEZyYW1lc107Cit9CisKIC0g
KHZvaWQpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTooTlNTdHJpbmcgKilmcmFt
ZU5hbWUgZ3JvdXBOYW1lOihOU1N0cmluZyAqKWdyb3VwTmFtZSB1c2VzRG9jdW1lbnRWaWV3czoo
Qk9PTCl1c2VzRG9jdW1lbnRWaWV3cwogewogICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVj
a1JvdW5kVHdvKCk7CkBAIC03NDYsNiArNzY4LDggQEAgc3RhdGljIGJvb2wgc2hvdWxkRW5hYmxl
TG9hZERlZmVycmluZygpCiAgICAgW3NlbGYgX3NjaGVkdWxlR2xpYkNvbnRleHRJdGVyYXRpb25z
XTsKICNlbmRpZgogCisgICAgaWYgKHJ1bm5pbmdUaWdlck1haWwoKSB8fCBydW5uaW5nTGVvcGFy
ZE1haWwoKSkKKyAgICAgICAgW3NlbGYgX2luamVjdE1haWxRdWlya3NTY3JpcHRdOwogfQogCiAt
IChpZClfaW5pdFdpdGhGcmFtZTooTlNSZWN0KWYgZnJhbWVOYW1lOihOU1N0cmluZyAqKWZyYW1l
TmFtZSBncm91cE5hbWU6KE5TU3RyaW5nICopZ3JvdXBOYW1lIHVzZXNEb2N1bWVudFZpZXdzOihC
T09MKXVzZXNEb2N1bWVudFZpZXdzCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70557</attachid>
            <date>2010-10-12 12:47:35 -0700</date>
            <delta_ts>2010-10-12 16:40:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45693-20101012124733.patch</filename>
            <type>text/plain</type>
            <size>10196</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0NoYW5nZUxvZwko
cmV2aXNpb24gNjk0MjcpCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTAtMTAtMDggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJ
T04gKG5ldyBwYXJzZXIpOiBMZW9wYXJkL1RpZ2VyIE1haWwgPGhlYWQ+Lzxib2R5PiBxdWlyayBp
cyBnb25lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
NTY5MworCisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICAtIEFkZCB0aGUgTWFpbFF1aXJrc1VzZXJTY3JpcHQuanMgdG8gdGhlIHByb2plY3QuCisK
IDIwMTAtMTAtMDcgIEplc3NpZSBCZXJsaW4gIDxqYmVybGluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkocmV2aXNpb24gNjk0MjcpCisrKyBXZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTMzOSw2ICszMzksOCBAQAogCQlB
NzA5MzZCMDBCNTYwOERDMDBDREI0OEUgLyogV2ViRHJhZ0NsaWVudC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MDkzNkFFMEI1NjA4REMwMENEQjQ4
RSAvKiBXZWJEcmFnQ2xpZW50Lm1tICovOyB9OwogCQlBN0QzQzVCQzBCNTc3M0M1MDAyQ0E0NTAg
LyogV2ViUGFzdGVib2FyZEhlbHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTdEM0M1QkEwQjU3NzNDNTAwMkNBNDUwIC8qIFdlYlBhc3RlYm9hcmRI
ZWxwZXIuaCAqLzsgfTsKIAkJQTdEM0M1QkQwQjU3NzNDNTAwMkNBNDUwIC8qIFdlYlBhc3RlYm9h
cmRIZWxwZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBN0QzQzVCQjBCNTc3M0M1MDAyQ0E0NTAgLyogV2ViUGFzdGVib2FyZEhlbHBlci5tbSAqLzsg
fTsKKwkJQTg2NEIzRTYxMjNFRDgzRDAwQzJBNjEyIC8qIE1haWxRdWlya3NVc2VyU2NyaXB0Lmpz
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg2NEIzRTUx
MjNFRDgzRDAwQzJBNjEyIC8qIE1haWxRdWlya3NVc2VyU2NyaXB0LmpzICovOyB9OworCQlBODY0
QjNGNjEyM0VEOUZBMDBDMkE2MTIgLyogTWFpbFF1aXJrc1VzZXJTY3JpcHQuanMgaW4gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NjRCM0U1MTIzRUQ4M0Qw
MEMyQTYxMiAvKiBNYWlsUXVpcmtzVXNlclNjcmlwdC5qcyAqLzsgfTsKIAkJQUI5RkJCQkIwRjg1
ODJCMDAwNkFEQzQzIC8qIFdlYkRPTU9wZXJhdGlvbnNJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUI5RkJCQkEwRjg1ODJCMDAwNkFEQzQz
IC8qIFdlYkRPTU9wZXJhdGlvbnNJbnRlcm5hbC5oICovOyB9OwogCQlBQkRERjIwRDA4RUIwRERD
MDAxRTEyNDEgLyogV2ViRG93bmxvYWRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJEREYyMEMwOEVCMEREQzAwMUUxMjQxIC8qIFdlYkRv
d25sb2FkSW50ZXJuYWwuaCAqLzsgfTsKIAkJQjZDRTVDMjQxMDBCQzVDRTAwMjE5OTM2IC8qIFdl
YkFwcGxpY2F0aW9uQ2FjaGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCNjgwNDk3MjBGRkJDRUMxMDA5RjdGNjIgLyogV2ViQXBwbGljYXRpb25DYWNo
ZS5tbSAqLzsgfTsKQEAgLTY1Miw2ICs2NTQsNyBAQAogCQlBNzA5MzZBRTBCNTYwOERDMDBDREI0
OEUgLyogV2ViRHJhZ0NsaWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXZWJEcmFnQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
N0QzQzVCQTBCNTc3M0M1MDAyQ0E0NTAgLyogV2ViUGFzdGVib2FyZEhlbHBlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYXN0ZWJvYXJkSGVscGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3RDNDNUJCMEI1NzczQzUwMDJDQTQ1MCAvKiBXZWJQYXN0
ZWJvYXJkSGVscGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViUGFzdGVib2FyZEhlbHBlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTg2
NEIzRTUxMjNFRDgzRDAwQzJBNjEyIC8qIE1haWxRdWlya3NVc2VyU2NyaXB0LmpzICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gTWFpbFF1aXJrc1VzZXJTY3JpcHQuanM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFCOUZCQkJBMEY4NTgyQjAwMDZBREM0MyAv
KiBXZWJET01PcGVyYXRpb25zSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViRE9NT3BlcmF0aW9uc0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUFCRERGMjBDMDhFQjBEREMwMDFFMTI0MSAvKiBXZWJEb3dubG9hZEludGVybmFsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRv
d25sb2FkSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1
c2VzVGFicyA9IDA7IH07CiAJCUI2ODA0OTcxMEZGQkNFQzEwMDlGN0Y2MiAvKiBXZWJBcHBsaWNh
dGlvbkNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkFwcGxpY2F0
aW9uQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkzNiw2ICs5MzksNyBA
QAogCQkyNTREQzMzNDAxNkUxRDNGMEVDQTE0OUUgLyogTWlzYyAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQTg2NEIzRTUxMjNFRDgzRDAwQzJBNjEyIC8q
IE1haWxRdWlya3NVc2VyU2NyaXB0LmpzICovLAogCQkJCTFDQ0ZGRDEyMEIxRjgxRjIwMDJFRTky
NiAvKiBPbGRXZWJBc3NlcnRpb25zLmMgKi8sCiAJCQkJNURFOTJGRUUwQkQ3MDE3RTAwNTlBNUZE
IC8qIFdlYkFzc2VydGlvbnMuaCAqLywKIAkJCQk1MjQxQURGMzBCMUJDNDhBMDA0MDEyQkQgLyog
V2ViQ2FjaGUuaCAqLywKQEAgLTE3MDQsNiArMTcwOCw3IEBACiAJCQlpc2EgPSBQQlhSZXNvdXJj
ZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVz
ID0gKAorCQkJCUE4NjRCM0Y2MTIzRUQ5RkEwMEMyQTYxMiAvKiBNYWlsUXVpcmtzVXNlclNjcmlw
dC5qcyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJOTM5ODEwQkEwODI0QkYwMTAwOERGMDM4IC8qIElE
TlNjcmlwdFdoaXRlTGlzdC50eHQgaW4gUmVzb3VyY2VzICovLAogCQkJCTVERTgzQTdGMEQwRjdG
QUQwMENBRDEyQSAvKiBMb2NhbGl6YWJsZS5zdHJpbmdzIGluIFJlc291cmNlcyAqLywKIAkJCQk5
Mzk4MTBCNzA4MjRCRjAxMDA4REYwMzggLyogdXJsX2ljb24udGlmZiBpbiBSZXNvdXJjZXMgKi8s
CkBAIC0yMDA1LDYgKzIwMTAsNyBAQAogCQkJCTU5OEFEOTIyMTIwMUNGMTAwMEFCQUU0RSAvKiBX
ZWJEZXZpY2VPcmllbnRhdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU5OEFEOTI4MTIwMUNG
MzIwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9jay5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzRTJBMUE1MTIzQjBCM0MwMDlGRTEyQSAvKiBXZWJEYXNoYm9hcmRSZWdp
b24ubW0gaW4gU291cmNlcyAqLywKKwkJCQlBODY0QjNFNjEyM0VEODNEMDBDMkE2MTIgLyogTWFp
bFF1aXJrc1VzZXJTY3JpcHQuanMgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYktpdC9tYWMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2OTQy
NykKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTAtMTAtMDggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT04gKG5ldyBw
YXJzZXIpOiBMZW9wYXJkL1RpZ2VyIE1haWwgPGhlYWQ+Lzxib2R5PiBxdWlyayBpcyBnb25lCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTY5MworCisg
ICAgICAgIFJlLWltcGxlbWVudCB0aGlzIGZvcm1lciBXZWJDb3JlIHBhcnNlciBxdWlyayBhcyBh
CisgICAgICAgIE1hYy1vbmx5IHVzZXJzY3JpcHQtYmFzZWQgcXVpcmsuICBBcyBmYXIgYXMgSSBj
YW4gdGVsbAorICAgICAgICBmcm9tIERhcmluJ3MgZGVzY3JpcHRpb24gdGhpcyBzaG91bGQgc2F0
aXNmeSBNYWlsJ3MgbmVlZHMuCisKKyAgICAgICAgKiBNaXNjL01haWxRdWlya3NVc2VyU2NyaXB0
LmpzOiBBZGRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgrW1dl
YlZpZXcgX21haWxRdWlya3NVc2VyU2NyaXB0XSk6CisgICAgICAgICgtW1dlYlZpZXcgX2luamVj
dE1haWxRdWlya3NTY3JpcHRdKToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6
YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTp1c2VzRG9jdW1lbnRWaWV3czpdKToKKwogMjAx
MC0xMC0wNyAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBXZWJLaXQvbWFjL01pc2MvTWFpbFF1aXJrc1Vz
ZXJTY3JpcHQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9NaXNjL01haWxRdWlya3NVc2Vy
U2NyaXB0LmpzCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L21hYy9NaXNjL01haWxRdWlya3NVc2Vy
U2NyaXB0LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICogCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworKGZ1bmN0aW9uKCkgewor
ICAgIGZ1bmN0aW9uIGNoaWxkcmVuQmVmb3JlKHBhcmVudCwgc3RvcEF0KQorICAgIHsKKyAgICAg
ICAgdmFyIGNoaWxkcmVuID0gW107CisgICAgICAgIGZvciAodmFyIGNoaWxkID0gcGFyZW50LmZp
cnN0Q2hpbGQ7IGNoaWxkICE9IHN0b3BBdDsgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZykKKyAg
ICAgICAgICAgIGNoaWxkcmVuLnB1c2goY2hpbGQpOworICAgICAgICByZXR1cm4gY2hpbGRyZW47
CisgICAgfQorCisgICAgLy8gSWYgaHRtbCBvciBib2R5IGlzIG1pc3NpbmcsIE1haWwuYXBwJ3Mg
YXNzdW1wdGlvbiB0aGF0CisgICAgLy8gZG9jdW1lbnQuZmlyc3RDaGlsZC5maXJzdENoaWxkID09
IGRvY3VtZW50LmJvZHkgaXMgd3JvbmcgYW55d2F5LAorICAgIC8vIHNvIHJldHVybiBudWxsIHRv
IG5vdCBtb3ZlIGFueXRoaW5nLgorICAgIGlmICghZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50IHx8
ICFkb2N1bWVudC5ib2R5KQorICAgICAgICByZXR1cm47CisKKyAgICB2YXIgY2hpbGRyZW4gPSBj
aGlsZHJlbkJlZm9yZShkb2N1bWVudCwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTsKKyAgICBj
aGlsZHJlbiA9IGNoaWxkcmVuLmNvbmNhdChjaGlsZHJlbkJlZm9yZShkb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnQsIGRvY3VtZW50LmJvZHkpKTsKKworICAgIGZvciAodmFyIGkgPSBjaGlsZHJlbi5s
ZW5ndGggLSAxOyBpID49IDA7IGktLSkgeworICAgICAgICB2YXIgY2hpbGQgPSBjaGlsZHJlbltp
XTsKKyAgICAgICAgLy8gSXQncyBub3QgcG9zc2libGUgdG8gbW92ZSBkb2N0eXBlIG5vZGVzIGlu
dG8gdGhlIGJvZHksIHNvIGp1c3QgcmVtb3ZlIHRoZW0uCisgICAgICAgIGlmIChjaGlsZC5ub2Rl
VHlwZSA9PSBjaGlsZC5ET0NVTUVOVF9UWVBFX05PREUpCisgICAgICAgICAgICBjaGlsZC5wYXJl
bnROb2RlLnJlbW92ZUNoaWxkKGNoaWxkKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZG9j
dW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoY2hpbGQsIGRvY3VtZW50LmJvZHkuZmlyc3RDaGlsZCk7
CisgICAgfQorfSkoKTsKSW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCShyZXZpc2lvbiA2OTQyNykK
KysrIFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC02Mzcs
NiArNjM3LDI3IEBAIC0gKEJPT0wpX3VzZXNEb2N1bWVudFZpZXdzCiAgICAgcmV0dXJuIF9wcml2
YXRlLT51c2VzRG9jdW1lbnRWaWV3czsKIH0KIAorKyAoTlNTdHJpbmcqKV9tYWlsUXVpcmtzVXNl
clNjcmlwdAoreworICAgIHN0YXRpYyBOU1N0cmluZyogbWFpbFF1aXJrc1NjcmlwdCA9IG5pbDsK
KyAgICBpZiAoIW1haWxRdWlya3NTY3JpcHQpIHsKKyAgICAgICAgTlNTdHJpbmcgKnNjcmlwdFBh
dGggPSBbW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOltXZWJWaWV3IGNsYXNzXV0gcGF0aEZvclJl
c291cmNlOkAiTWFpbFF1aXJrc1VzZXJTY3JpcHQiIG9mVHlwZTpAImpzIl07CisgICAgICAgIG1h
aWxRdWlya3NTY3JpcHQgPSBbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aENvbnRlbnRzT2ZGaWxl
OnNjcmlwdFBhdGhdOworICAgIH0KKyAgICByZXR1cm4gbWFpbFF1aXJrc1NjcmlwdDsKK30KKwor
LSAodm9pZClfaW5qZWN0TWFpbFF1aXJrc1NjcmlwdAoreworICAgIGNvcmUoc2VsZiktPmdyb3Vw
KCkuYWRkVXNlclNjcmlwdFRvV29ybGQoY29yZShbV2ViU2NyaXB0V29ybGQgd29ybGRdKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtXZWJWaWV3IF9tYWls
UXVpcmtzVXNlclNjcmlwdF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBLVVJMKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluamVjdEF0RG9j
dW1lbnRFbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ
bmplY3RJbkFsbEZyYW1lcyk7Cit9CisKIC0gKHZvaWQpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0
aEZyYW1lTmFtZTooTlNTdHJpbmcgKilmcmFtZU5hbWUgZ3JvdXBOYW1lOihOU1N0cmluZyAqKWdy
b3VwTmFtZSB1c2VzRG9jdW1lbnRWaWV3czooQk9PTCl1c2VzRG9jdW1lbnRWaWV3cwogewogICAg
IFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kVHdvKCk7CkBAIC03NTQsNiArNzc1LDgg
QEAgLSAodm9pZClfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYQogICAgIFtzZWxmIF9z
Y2hlZHVsZUdsaWJDb250ZXh0SXRlcmF0aW9uc107CiAjZW5kaWYKIAorICAgIGlmIChydW5uaW5n
VGlnZXJNYWlsKCkgfHwgcnVubmluZ0xlb3BhcmRNYWlsKCkpCisgICAgICAgIFtzZWxmIF9pbmpl
Y3RNYWlsUXVpcmtzU2NyaXB0XTsKIH0KIAogLSAoaWQpX2luaXRXaXRoRnJhbWU6KE5TUmVjdClm
IGZyYW1lTmFtZTooTlNTdHJpbmcgKilmcmFtZU5hbWUgZ3JvdXBOYW1lOihOU1N0cmluZyAqKWdy
b3VwTmFtZSB1c2VzRG9jdW1lbnRWaWV3czooQk9PTCl1c2VzRG9jdW1lbnRWaWV3cwo=
</data>
<flag name="review"
          id="60415"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>