<?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>41295</bug_id>
          
          <creation_ts>2010-06-28 12:41:51 -0700</creation_ts>
          <short_desc>[Chromium] Add chromium WebMediaPlayer to PlatformMedia</short_desc>
          <delta_ts>2010-07-21 15:12: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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>0</everconfirmed>
          <reporter name="Bo Liu">boliu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fishd</cc>
    
    <cc>scherkus</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>243824</commentid>
    <comment_count>0</comment_count>
    <who name="Bo Liu">boliu</who>
    <bug_when>2010-06-28 12:41:51 -0700</bug_when>
    <thetext>Also add methods in WebNode to retrieve the WebMediaPlayer of a HTMLMediaElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243877</commentid>
    <comment_count>1</comment_count>
      <attachid>59934</attachid>
    <who name="Bo Liu">boliu</who>
    <bug_when>2010-06-28 13:47:54 -0700</bug_when>
    <thetext>Created attachment 59934
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245104</commentid>
    <comment_count>2</comment_count>
      <attachid>59934</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-06-30 22:45:57 -0700</bug_when>
    <thetext>Comment on attachment 59934
Patch

Drive by comments.  No r- because someone else should still take a look at this.


WebCore/platform/graphics/MediaPlayer.h:82
 +          WebKit::WebMediaPlayer* chromiumWebMediaPlayer;
Isn&apos;t this a layering violation?

WebKit/chromium/src/WebNode.cpp:188
 +      {
goes on previous line

WebKit/chromium/src/WebNode.cpp:190
 +          return (element-&gt;platformMedia()).media.chromiumWebMediaPlayer;
why the ()&apos;s?

WebKit/chromium/public/WebNode.h:109
 +      // 0 if |m_private| is another type.
no need to wrap</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245390</commentid>
    <comment_count>3</comment_count>
      <attachid>60259</attachid>
    <who name="Bo Liu">boliu</who>
    <bug_when>2010-07-01 09:38:03 -0700</bug_when>
    <thetext>Created attachment 60259
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245394</commentid>
    <comment_count>4</comment_count>
    <who name="Bo Liu">boliu</who>
    <bug_when>2010-07-01 09:47:08 -0700</bug_when>
    <thetext>About the layering violation: Other platforms are already forward declaring their media classes in WebCore/platform/graphics/MediaPlayer.h, so I thought adding the chromium one is okay (I could be wrong).

Also I think the forward declaration does not introduce additional build dependencies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245644</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-01 16:37:47 -0700</bug_when>
    <thetext>r- because of the WebKit namespace usage in WebCore.  that other ports are doing it is not a valid excuse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245974</commentid>
    <comment_count>6</comment_count>
    <who name="Bo Liu">boliu</who>
    <bug_when>2010-07-02 11:02:58 -0700</bug_when>
    <thetext>This patch is part of implementing full screen video. The client is passed a WebNode wrapping a HTMLVideoElement to full screen. My idea was to poke a hole through HTMLVideoElement to retrieve the WebMediaPlayer and cast it down to WebMediaPlayerImpl. Then the full screen changes can be made mostly in Chromium code.

Are there any suggestions for achieving this without the layering violation? Add an interface in WebCore for platform players? Use a void* pointer in struct PlatformMedia?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249977</commentid>
    <comment_count>7</comment_count>
      <attachid>61257</attachid>
    <who name="Bo Liu">boliu</who>
    <bug_when>2010-07-12 12:50:06 -0700</bug_when>
    <thetext>Created attachment 61257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249986</commentid>
    <comment_count>8</comment_count>
      <attachid>61257</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-12 13:07:43 -0700</bug_when>
    <thetext>Comment on attachment 61257
Patch

WebCore/platform/graphics/MediaPlayer.h:78
 +          // Using void* instead of WebKit::WebMediaPlayer
this comment introduces WebKit::WebMediaPlayer into WebCore in a
way that the compiler won&apos;t even help us notice if we ever rename
WebKit::WebMediaPlayer.  that seems bad.

HTMLMediaElement has a reference to a MediaPlayer object.  A
MediaPlayer has a MediaPlayerPrivateInterface member as well as
a MediaPlayerClient member, and WebMediaPlayerClientImpl implements
both of those interfaces.

You should be able to static_cast from one of those interfaces to
WebMediaPlayerClientImpl and gets the WebMediaPlayer from there.
This casting can be done at the WebKit/chromium/src level.

BTW, I think you need to invent a WebMediaElement subclass of
WebElement instead of adding a method on WebNode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250090</commentid>
    <comment_count>9</comment_count>
      <attachid>61276</attachid>
    <who name="Bo Liu">boliu</who>
    <bug_when>2010-07-12 15:14:57 -0700</bug_when>
    <thetext>Created attachment 61276
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250853</commentid>
    <comment_count>10</comment_count>
    <who name="Bo Liu">boliu</who>
    <bug_when>2010-07-13 17:28:47 -0700</bug_when>
    <thetext>Thanks so much for the pointers!!

Should other methods in HTMLMediaElement be ported to WebMediaElement or only when they are used?

Also MediaPlayerClient is implemented by HTMLMediaElement, so the only choice was to use MediaPlayerPrivateInterface, which seems kind of bad to expose since it has the word private in it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250999</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-13 23:57:11 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Thanks so much for the pointers!!
&gt; 
&gt; Should other methods in HTMLMediaElement be ported to WebMediaElement or only 
&gt; when they are used?

I would only do it as needed.


&gt; Also MediaPlayerClient is implemented by HTMLMediaElement, so the only choice 
&gt; was to use MediaPlayerPrivateInterface, which seems kind of bad to expose since 
&gt; it has the word private in it.

Oh, right.  I think that is fine.  WebMediaPlayerClientImpl.cpp is the
implementation of MediaPlayerPrivateInterface, so it can know about it :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251001</commentid>
    <comment_count>12</comment_count>
      <attachid>61276</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-14 00:03:37 -0700</bug_when>
    <thetext>Comment on attachment 61276
Patch

WebKit/chromium/public/WebMediaElement.h:46
 +      WEBKIT_API WebMediaPlayer* getWebMediaPlayer() const;
webkit style is to avoid the &quot;get&quot; prefix for simple getter functions.
how about just calling this method mediaPlayer()?  we drop the &quot;web&quot;
prefix for method names that return a Web* type.

WebKit/chromium/src/WebMediaElement.cpp:46
 +      PlatformMedia pm = constUnwrap&lt;HTMLMediaElement&gt;()-&gt;platformMedia();
I think it would be better to create a method named fromMediaElement on
WebMediaPlayerClientImpl.  That hides the details of how a WebMediaPlayerClientImpl
can be extracted from a HTMLMediaElement in the WebMediaPlayerClientImpl class.

You should also create a public accessor on WebMediaPlayerClientImpl named mediaPlayer()
that returns m_webMediaPlayer.get().  That way you do not need to use friend to access
private data.

So, for this method you should end up with:

WebMediaPlayer* WebMediaElement::getWebMediaPlayer() const
{
    return WebMediaPlayerClientImpl::fromMediaElement(this)-&gt;mediaPlayer();
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251275</commentid>
    <comment_count>13</comment_count>
      <attachid>61537</attachid>
    <who name="Bo Liu">boliu</who>
    <bug_when>2010-07-14 10:34:39 -0700</bug_when>
    <thetext>Created attachment 61537
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251278</commentid>
    <comment_count>14</comment_count>
    <who name="Bo Liu">boliu</who>
    <bug_when>2010-07-14 10:40:39 -0700</bug_when>
    <thetext>Renamed chromiumWebMediaPlayer to chromiumMediaPlayer. Renamed WebMediaElement::getWebMediaPlayer() to player() to match HTMLMediaElement::player().

Is the use of constUnwrap without a #if WEBKIT_IMPLEMENTATION guard okay? It seems it used without the guard at other places, but declaration of constUnwrap is under the guard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251285</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-14 10:54:03 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Renamed chromiumWebMediaPlayer to chromiumMediaPlayer. Renamed 
&gt; WebMediaElement::getWebMediaPlayer() to player() to match 
&gt; HTMLMediaElement::player().

^^^ good idea


&gt; Is the use of constUnwrap without a #if WEBKIT_IMPLEMENTATION guard okay? It 
&gt; seems it used without the guard at other places, but declaration of constUnwrap 
&gt; is under the guard.

constUnwrap is intended to be used in chromium/src/.  The WEBKIT_IMPLEMENTATION macro is defined when compiling code in chromium/src/.  The code in chromium/public/ however can be compiled with and without WEBKIT_IMPLEMENTATION.  That&apos;s why you should only see that macro used in chromium/public/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251287</commentid>
    <comment_count>16</comment_count>
      <attachid>61537</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-14 10:55:51 -0700</bug_when>
    <thetext>Comment on attachment 61537
Patch

WebCore/platform/graphics/MediaPlayer.h:71
 +          ChromiumWebMediaPlayerType,
nit: ChromiumWebMediaPlayerType should probably be renamed ChromiumMediaPlayerType
to match the variable name.

R=me otherwise</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251297</commentid>
    <comment_count>17</comment_count>
      <attachid>61542</attachid>
    <who name="Bo Liu">boliu</who>
    <bug_when>2010-07-14 11:11:46 -0700</bug_when>
    <thetext>Created attachment 61542
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254435</commentid>
    <comment_count>18</comment_count>
      <attachid>61542</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-21 11:38:31 -0700</bug_when>
    <thetext>Comment on attachment 61542
Patch

WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:77
&gt; +      WebCore::PlatformMedia pm = element-&gt;constUnwrap&lt;HTMLMediaElement&gt;()-&gt;platformMedia();
nit: no need for WebCore:: prefix in this file since there is a &apos;using namespace WebCore&apos;
at the top of the file.

&gt; +      WebCore::PlatformMedia pm;
ditto

R=me, but please fix that before committing.WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:174</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254443</commentid>
    <comment_count>19</comment_count>
      <attachid>62216</attachid>
    <who name="Bo Liu">boliu</who>
    <bug_when>2010-07-21 12:05:51 -0700</bug_when>
    <thetext>Created attachment 62216
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254522</commentid>
    <comment_count>20</comment_count>
      <attachid>62216</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-21 14:24:06 -0700</bug_when>
    <thetext>Comment on attachment 62216
Patch

Rejecting patch 62216 from commit-queue.

Failed to run &quot;[u&apos;git&apos;, u&apos;svn&apos;, u&apos;dcommit&apos;]&quot; exit_code: 1
Last 500 characters of output:
src/WebMediaElement.cpp
	M	WebKit/chromium/src/WebMediaPlayerClientImpl.cpp
	M	WebKit/chromium/src/WebMediaPlayerClientImpl.h
A repository hook failed: MERGE request failed on &apos;/repository/webkit/trunk&apos;: Commit blocked by pre-commit hook (exit code 1) with output:
svnlook: Can&apos;t write to stream: Broken pipe

    The following ChangeLog files contain OOPS:

        trunk/WebCore/ChangeLog

    Please don&apos;t ever say &quot;OOPS&quot; in a ChangeLog file.
 at /usr/local/git/libexec/git-core/git-svn line 570


Full output: http://queues.webkit.org/results/3598250</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254538</commentid>
    <comment_count>21</comment_count>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2010-07-21 14:52:56 -0700</bug_when>
    <thetext>I&apos;ll fix the ChangeLog and land the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254549</commentid>
    <comment_count>22</comment_count>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2010-07-21 15:12:46 -0700</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/63859</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59934</attachid>
            <date>2010-06-28 13:47:54 -0700</date>
            <delta_ts>2010-07-01 09:38:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41295-20100628134753.patch</filename>
            <type>text/plain</type>
            <size>5786</size>
            <attacher name="Bo Liu">boliu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YWE5ZTgxMWY5YzQxZmJkNWIzODFhOGY3YTIyYmJiMTA5M2EyYWQwMC4uNDVmNDVkNDVlN2U2MTg3
OWFiN2FkM2NhYzA0MjdkYzJkZDU1MjAzZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNi0yOCAgQm8g
TGl1ICA8Ym9saXVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRkIGNocm9taXVtIFdlYk1lZGlhUGxheWVy
IHRvIFBsYXRmb3JtTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQxMjk1CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYTo6KToKKwogMjAxMC0wNi0yOCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxp
YS5jb20+CiAKICAgICAgICAgRml4IGRpc3RjaGVjay4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuaAppbmRleCBhM2FhZDMwZDFhYmY4ZWY0YzNkMmU3ZDc0ODhhMDZhM2RjYTc0
MzI3Li5kM2IzMjA3NDBjMjg4OGQxNmUwYjYwYTZjOWVhZDkwYmM4NDViMWYzIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC01Miw2ICs1MiwxMCBAQCBjbGFzcyBR
VE1vdmllOwogY2xhc3MgUVRNb3ZpZUdXb3JsZDsKIGNsYXNzIFFUTW92aWVWaXN1YWxDb250ZXh0
OwogCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYk1lZGlhUGxheWVyOworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR1N0cmVhbWVyR1dv
cmxkOwpAQCAtNjcsNiArNzEsNyBAQCBzdHJ1Y3QgUGxhdGZvcm1NZWRpYSB7CiAgICAgICAgIFFU
TW92aWVHV29ybGRUeXBlLAogICAgICAgICBRVE1vdmllVmlzdWFsQ29udGV4dFR5cGUsCiAgICAg
ICAgIEdTdHJlYW1lckdXb3JsZFR5cGUsCisgICAgICAgIENocm9taXVtV2ViTWVkaWFQbGF5ZXJU
eXBlLAogICAgIH0gdHlwZTsKIAogICAgIHVuaW9uIHsKQEAgLTc0LDYgKzc5LDcgQEAgc3RydWN0
IFBsYXRmb3JtTWVkaWEgewogICAgICAgICBRVE1vdmllR1dvcmxkKiBxdE1vdmllR1dvcmxkOwog
ICAgICAgICBRVE1vdmllVmlzdWFsQ29udGV4dCogcXRNb3ZpZVZpc3VhbENvbnRleHQ7CiAgICAg
ICAgIEdTdHJlYW1lckdXb3JsZCogZ3N0cmVhbWVyR1dvcmxkOworICAgICAgICBXZWJLaXQ6Oldl
Yk1lZGlhUGxheWVyKiBjaHJvbWl1bVdlYk1lZGlhUGxheWVyOwogICAgIH0gbWVkaWE7CiB9Owog
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCBkNDljYjdkYjU5MmVlZTQ0NzAwY2VkZTQ5ZmNjZDhlNjIwZWZmNjZi
Li5iZWQxNzVmM2VhYzUxYjFmMzJmZGFhMTM0NzY1NmU2YjU0NmZhNmJlIDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxMC0wNi0yOCAgQm8gTGl1ICA8Ym9saXVAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtDaHJv
bWl1bV0gQWRkIGNocm9taXVtIFdlYk1lZGlhUGxheWVyIHRvIFBsYXRmb3JtTWVkaWEKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMjk1CisKKyAgICAg
ICAgKiBwdWJsaWMvV2ViTm9kZS5oOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVu
dEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnBs
YXRmb3JtTWVkaWEpOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaDoK
KyAgICAgICAgKiBzcmMvV2ViTm9kZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk5vZGU6Omdl
dE1lZGlhUGxheWVyKToKKwogMjAxMC0wNi0yOCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiBGaXggQ2hyb21pdW0gZGVidWdnZXIg
dGVzdHMuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk5vZGUuaCBiL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTm9kZS5oCmluZGV4IGM3YWE4ZWY4ZDMxNDczYmQyMDU4
MmNjZmNlNDZjODBjZGUzNTMxZTQuLmE2ODM0MDBjNTZhOWE1Y2Q0OWI2NjlmZTdkYmUyNTFiMGM3
Mzc5YzggMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTm9kZS5oCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTm9kZS5oCkBAIC00Miw2ICs0Miw3IEBAIGNsYXNz
IFdlYkRvY3VtZW50OwogY2xhc3MgV2ViRXZlbnRMaXN0ZW5lcjsKIGNsYXNzIFdlYkV2ZW50TGlz
dGVuZXJQcml2YXRlOwogY2xhc3MgV2ViRnJhbWU7CitjbGFzcyBXZWJNZWRpYVBsYXllcjsKIGNs
YXNzIFdlYk5vZGVMaXN0OwogCiAvLyBQcm92aWRlcyBhY2Nlc3MgdG8gc29tZSBwcm9wZXJ0aWVz
IG9mIGEgRE9NIG5vZGUuCkBAIC0xMDQsNiArMTA1LDEwIEBAIHB1YmxpYzoKICAgICAvLyBOb3Rl
OiBUaGlzIG1ldGhvZCBvbmx5IHdvcmtzIHByb3Blcmx5IGFmdGVyIGxheW91dCBoYXMgb2NjdXJy
ZWQuCiAgICAgV0VCS0lUX0FQSSBib29sIGhhc05vbkVtcHR5Qm91bmRpbmdCb3goKSBjb25zdDsK
IAorICAgIC8vIFJldHVybnMgdGhlIFdlYk1lZGlhUGxheWVyIG9mIGEgdmlkZW8gb3IgYXVkaW8g
ZWxlbWVudCBvciByZXR1cm5zCisgICAgLy8gMCBpZiB8bV9wcml2YXRlfCBpcyBhbm90aGVyIHR5
cGUuCisgICAgV2ViTWVkaWFQbGF5ZXIqIGdldE1lZGlhUGxheWVyKCkgY29uc3Q7CisKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUIHRvKCkKICAgICB7CiAgICAgICAgIFQgcmVzOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCmluZGV4IDAz
MDUxYzMyYmYzZTI1ODM3NzNkZDM4ZmIwMDk1MjNiZDI0MDVkMTguLmUwMzI4MjIzZWY0NGU0YmRh
MzhiZmU3YzU3YjExMGE0Mjc3ZDZkM2UgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
Yk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKQEAgLTE1Nyw2ICsxNTcsMTQgQEAgdm9pZCBXZWJN
ZWRpYVBsYXllckNsaWVudEltcGw6OmNhbmNlbExvYWQoKQogICAgICAgICBtX3dlYk1lZGlhUGxh
eWVyLT5jYW5jZWxMb2FkKCk7CiB9CiAKK1dlYkNvcmU6OlBsYXRmb3JtTWVkaWEgV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsOjpwbGF0Zm9ybU1lZGlhKCkgY29uc3QKK3sKKyAgICBXZWJDb3JlOjpQ
bGF0Zm9ybU1lZGlhIHBtOworICAgIHBtLnR5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhOjpD
aHJvbWl1bVdlYk1lZGlhUGxheWVyVHlwZTsKKyAgICBwbS5tZWRpYS5jaHJvbWl1bVdlYk1lZGlh
UGxheWVyID0gbV93ZWJNZWRpYVBsYXllci5nZXQoKTsKKyAgICByZXR1cm4gcG07Cit9CisKIHZv
aWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpwbGF5KCkKIHsKICAgICBpZiAobV93ZWJNZWRp
YVBsYXllci5nZXQoKSkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbC5oCmluZGV4IDU3YzkzYjdiNGM1ZDM3ZTRlZWY0ZTUzZTg1NzA0MTAzNDgxYTg1ZWMu
LjZhZDZmZmEyZWMyNzQ5MGM0YmJjOWI5NDM5MTZmOGVmODgyMDcwYzIgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKKysrIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaApAQCAtNjYsNiArNjYsNyBA
QCBwdWJsaWM6CiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIG1ldGhvZHM6CiAg
ICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiB1cmwpOwogICAgIHZp
cnR1YWwgdm9pZCBjYW5jZWxMb2FkKCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhIHBsYXRmb3JtTWVkaWEoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcGxheSgpOwogICAg
IHZpcnR1YWwgdm9pZCBwYXVzZSgpOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxzY3Jl
ZW4oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTm9kZS5jcHAg
Yi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk5vZGUuY3BwCmluZGV4IDMxYWQ3MGZkNjc2NjMzMTE2
NDQyYWI1YWFlMGU0ZTU1MjE2M2FhZmIuLmRiYWI3MDZiYjI0ZWU4MDRhNDNmZWYxNjFjMTA0YmJi
ZTljZjUyZGEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTm9kZS5jcHAKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJOb2RlLmNwcApAQCAtMzQsNiArMzQsOCBAQAogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxv
YWRlckNsaWVudEltcGwuaCIKKyNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIk5vZGVMaXN0Lmgi
CiAKQEAgLTQyLDYgKzQ0LDcgQEAKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldl
YkV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKKyNpbmNsdWRlICJX
ZWJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIldlYk5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiV2Vi
U3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViVmVjdG9yLmgiCkBAIC0xNzgsNiArMTgxLDE3IEBAIGJv
b2wgV2ViTm9kZTo6aGFzTm9uRW1wdHlCb3VuZGluZ0JveCgpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cHJpdmF0ZS0+aGFzTm9uRW1wdHlCb3VuZGluZ0JveCgpOwogfQogCitXZWJNZWRpYVBsYXllciog
V2ViTm9kZTo6Z2V0TWVkaWFQbGF5ZXIoKSBjb25zdAoreworICAgIGlmIChtX3ByaXZhdGUtPmhh
c1RhZ05hbWUoV2ViQ29yZTo6SFRNTE5hbWVzOjp2aWRlb1RhZykKKyAgICAgICAgfHwgbV9wcml2
YXRlLT5oYXNUYWdOYW1lKFdlYkNvcmU6OkhUTUxOYW1lczo6YXVkaW9UYWcpKQorICAgIHsKKyAg
ICAgICAgSFRNTE1lZGlhRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxNZWRpYUVs
ZW1lbnQqPihtX3ByaXZhdGUuZ2V0KCkpOworICAgICAgICByZXR1cm4gKGVsZW1lbnQtPnBsYXRm
b3JtTWVkaWEoKSkubWVkaWEuY2hyb21pdW1XZWJNZWRpYVBsYXllcjsKKyAgICB9CisgICAgcmV0
dXJuIDA7Cit9CisKIFdlYk5vZGU6OldlYk5vZGUoY29uc3QgUGFzc1JlZlB0cjxOb2RlPiYgbm9k
ZSkKICAgICA6IG1fcHJpdmF0ZShub2RlKQogewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60259</attachid>
            <date>2010-07-01 09:38:03 -0700</date>
            <delta_ts>2010-07-12 12:50:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41295-20100701093802.patch</filename>
            <type>text/plain</type>
            <size>5782</size>
            <attacher name="Bo Liu">boliu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzA5YmI2ZDI2ZTA0OTc1MmIwMDg0Mjk2M2VmMzYzZDkzNzVlZGVmNC4uZTYyMjBmZDRmZjQ3YTU4
MTBkYjAzZThiZjczZjgzYjlmMmM2MGRjYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNy0wMSAgQm8g
TGl1ICA8Ym9saXVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRkIGNocm9taXVtIFdlYk1lZGlhUGxheWVy
IHRvIFBsYXRmb3JtTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQxMjk1CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYTo6KToKKwogMjAxMC0wNy0wMSAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnpp
bW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFNjaHVsemUuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggYTNhYWQzMGQxYWJmOGVm
NGMzZDJlN2Q3NDg4YTA2YTNkY2E3NDMyNy4uZDNiMzIwNzQwYzI4ODhkMTZlMGI2MGE2YzllYWQ5
MGJjODQ1YjFmMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAt
NTIsNiArNTIsMTAgQEAgY2xhc3MgUVRNb3ZpZTsKIGNsYXNzIFFUTW92aWVHV29ybGQ7CiBjbGFz
cyBRVE1vdmllVmlzdWFsQ29udGV4dDsKIAorbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJN
ZWRpYVBsYXllcjsKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEdTdHJlYW1lckdXb3JsZDsKQEAgLTY3LDYgKzcxLDcgQEAgc3RydWN0IFBsYXRm
b3JtTWVkaWEgewogICAgICAgICBRVE1vdmllR1dvcmxkVHlwZSwKICAgICAgICAgUVRNb3ZpZVZp
c3VhbENvbnRleHRUeXBlLAogICAgICAgICBHU3RyZWFtZXJHV29ybGRUeXBlLAorICAgICAgICBD
aHJvbWl1bVdlYk1lZGlhUGxheWVyVHlwZSwKICAgICB9IHR5cGU7CiAKICAgICB1bmlvbiB7CkBA
IC03NCw2ICs3OSw3IEBAIHN0cnVjdCBQbGF0Zm9ybU1lZGlhIHsKICAgICAgICAgUVRNb3ZpZUdX
b3JsZCogcXRNb3ZpZUdXb3JsZDsKICAgICAgICAgUVRNb3ZpZVZpc3VhbENvbnRleHQqIHF0TW92
aWVWaXN1YWxDb250ZXh0OwogICAgICAgICBHU3RyZWFtZXJHV29ybGQqIGdzdHJlYW1lckdXb3Js
ZDsKKyAgICAgICAgV2ViS2l0OjpXZWJNZWRpYVBsYXllciogY2hyb21pdW1XZWJNZWRpYVBsYXll
cjsKICAgICB9IG1lZGlhOwogfTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZDMzYzE2OWY2Y2Q3Nzg2MDYy
ZGE3YTUwMTNiNTg3MDllYTYyZGNlZS4uZDllMTAzYjdlMWNjNWExYjVhMWY2ZmI5NTNmNTA1MWY5
Y2UzZGRmMCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDctMDEgIEJvIExp
dSAgPGJvbGl1QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIEFkZCBjaHJvbWl1bSBXZWJNZWRpYVBsYXllciB0
byBQbGF0Zm9ybU1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MTI5NQorCisgICAgICAgICogcHVibGljL1dlYk5vZGUuaDoKKyAgICAgICAgKiBz
cmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsOjpwbGF0Zm9ybU1lZGlhKToKKyAgICAgICAgKiBzcmMvV2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsLmg6CisgICAgICAgICogc3JjL1dlYk5vZGUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJOb2RlOjpnZXRNZWRpYVBsYXllcik6CisKIDIwMTAtMDctMDEgIFl1cnkg
U2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTm9kZS5o
IGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOb2RlLmgKaW5kZXggYzdhYThlZjhkMzE0NzNi
ZDIwNTgyY2NmY2U0NmM4MGNkZTM1MzFlNC4uZGUxM2U2MDI2MDE0Mjk5YzZhOTdlMzYyZjQ0YWY5
MzI3Mjk3ZTE0YiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOb2RlLmgK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOb2RlLmgKQEAgLTQyLDYgKzQyLDcgQEAg
Y2xhc3MgV2ViRG9jdW1lbnQ7CiBjbGFzcyBXZWJFdmVudExpc3RlbmVyOwogY2xhc3MgV2ViRXZl
bnRMaXN0ZW5lclByaXZhdGU7CiBjbGFzcyBXZWJGcmFtZTsKK2NsYXNzIFdlYk1lZGlhUGxheWVy
OwogY2xhc3MgV2ViTm9kZUxpc3Q7CiAKIC8vIFByb3ZpZGVzIGFjY2VzcyB0byBzb21lIHByb3Bl
cnRpZXMgb2YgYSBET00gbm9kZS4KQEAgLTEwNCw2ICsxMDUsMTAgQEAgcHVibGljOgogICAgIC8v
IE5vdGU6IFRoaXMgbWV0aG9kIG9ubHkgd29ya3MgcHJvcGVybHkgYWZ0ZXIgbGF5b3V0IGhhcyBv
Y2N1cnJlZC4KICAgICBXRUJLSVRfQVBJIGJvb2wgaGFzTm9uRW1wdHlCb3VuZGluZ0JveCgpIGNv
bnN0OwogCisgICAgLy8gUmV0dXJucyB0aGUgV2ViTWVkaWFQbGF5ZXIgb2YgYSB2aWRlbyBvciBh
dWRpbyBlbGVtZW50IG9yIHJldHVybnMKKyAgICAvLyAwIGlmIG1fcHJpdmF0ZSBpcyBhbm90aGVy
IHR5cGUuCisgICAgV2ViTWVkaWFQbGF5ZXIqIGdldE1lZGlhUGxheWVyKCkgY29uc3Q7CisKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUIHRvKCkKICAgICB7CiAgICAgICAgIFQgcmVzOwpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3Bw
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCmluZGV4
IDAzMDUxYzMyYmYzZTI1ODM3NzNkZDM4ZmIwMDk1MjNiZDI0MDVkMTguLmUwMzI4MjIzZWY0NGU0
YmRhMzhiZmU3YzU3YjExMGE0Mjc3ZDZkM2UgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKQEAgLTE1Nyw2ICsxNTcsMTQgQEAgdm9pZCBX
ZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmNhbmNlbExvYWQoKQogICAgICAgICBtX3dlYk1lZGlh
UGxheWVyLT5jYW5jZWxMb2FkKCk7CiB9CiAKK1dlYkNvcmU6OlBsYXRmb3JtTWVkaWEgV2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsOjpwbGF0Zm9ybU1lZGlhKCkgY29uc3QKK3sKKyAgICBXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhIHBtOworICAgIHBtLnR5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
OjpDaHJvbWl1bVdlYk1lZGlhUGxheWVyVHlwZTsKKyAgICBwbS5tZWRpYS5jaHJvbWl1bVdlYk1l
ZGlhUGxheWVyID0gbV93ZWJNZWRpYVBsYXllci5nZXQoKTsKKyAgICByZXR1cm4gcG07Cit9CisK
IHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpwbGF5KCkKIHsKICAgICBpZiAobV93ZWJN
ZWRpYVBsYXllci5nZXQoKSkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbC5oCmluZGV4IDU3YzkzYjdiNGM1ZDM3ZTRlZWY0ZTUzZTg1NzA0MTAzNDgxYTg1
ZWMuLjZhZDZmZmEyZWMyNzQ5MGM0YmJjOWI5NDM5MTZmOGVmODgyMDcwYzIgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaApAQCAtNjYsNiArNjYs
NyBAQCBwdWJsaWM6CiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIG1ldGhvZHM6
CiAgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiB1cmwpOwogICAg
IHZpcnR1YWwgdm9pZCBjYW5jZWxMb2FkKCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhIHBsYXRmb3JtTWVkaWEoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcGxheSgpOwog
ICAgIHZpcnR1YWwgdm9pZCBwYXVzZSgpOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxz
Y3JlZW4oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTm9kZS5j
cHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk5vZGUuY3BwCmluZGV4IDMxYWQ3MGZkNjc2NjMz
MTE2NDQyYWI1YWFlMGU0ZTU1MjE2M2FhZmIuLjlmMDVkNzI4NDczMjRiMTlmNDc3M2E4OTg5YjE3
NDIxMDJjNGE4MmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTm9kZS5jcHAK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJOb2RlLmNwcApAQCAtMzQsNiArMzQsOCBAQAog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRlckNsaWVudEltcGwuaCIKKyNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIk5vZGVMaXN0
LmgiCiAKQEAgLTQyLDYgKzQ0LDcgQEAKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUg
IldlYkV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKKyNpbmNsdWRl
ICJXZWJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIldlYk5vZGVMaXN0LmgiCiAjaW5jbHVkZSAi
V2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViVmVjdG9yLmgiCkBAIC0xNzgsNiArMTgxLDE2IEBA
IGJvb2wgV2ViTm9kZTo6aGFzTm9uRW1wdHlCb3VuZGluZ0JveCgpIGNvbnN0CiAgICAgcmV0dXJu
IG1fcHJpdmF0ZS0+aGFzTm9uRW1wdHlCb3VuZGluZ0JveCgpOwogfQogCitXZWJNZWRpYVBsYXll
ciogV2ViTm9kZTo6Z2V0TWVkaWFQbGF5ZXIoKSBjb25zdAoreworICAgIGlmIChtX3ByaXZhdGUt
Pmhhc1RhZ05hbWUoV2ViQ29yZTo6SFRNTE5hbWVzOjp2aWRlb1RhZykKKyAgICAgICAgfHwgbV9w
cml2YXRlLT5oYXNUYWdOYW1lKFdlYkNvcmU6OkhUTUxOYW1lczo6YXVkaW9UYWcpKSB7CisgICAg
ICAgIEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVt
ZW50Kj4obV9wcml2YXRlLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQtPnBsYXRmb3Jt
TWVkaWEoKS5tZWRpYS5jaHJvbWl1bVdlYk1lZGlhUGxheWVyOworICAgIH0KKyAgICByZXR1cm4g
MDsKK30KKwogV2ViTm9kZTo6V2ViTm9kZShjb25zdCBQYXNzUmVmUHRyPE5vZGU+JiBub2RlKQog
ICAgIDogbV9wcml2YXRlKG5vZGUpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61257</attachid>
            <date>2010-07-12 12:50:06 -0700</date>
            <delta_ts>2010-07-12 15:14:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41295-20100712125005.patch</filename>
            <type>text/plain</type>
            <size>5752</size>
            <attacher name="Bo Liu">boliu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTlhYWJiZmE1ZDlmMDgwNzUwYTUyNjczY2YwODRmMmRlYzU0YTMwNS4uOGI3NmIwZmZhZTI0Y2Vk
Nzg5NWRlMTczYTcyZWVhYWJkODlkYjAzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNy0xMiAgQm8g
TGl1ICA8Ym9saXVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRkIGNocm9taXVtIFdlYk1lZGlhUGxheWVy
IHRvIFBsYXRmb3JtTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQxMjk1CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYTo6KToKKwogMjAxMC0wNy0xMiAgQW5kcmVhcyBLbGluZyAgPGFuZHJlYXMu
a2xpbmdAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGVjOWEyNWY3NmVjN2Qx
YmFiMzlkZmY1OTI2MWY0NTM5MzI4M2QxMWEuLjRmN2ExM2UxMTBmMTEzY2E3YzRkODNjMDgwNGM0
MTAzY2ZkNGMyNzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAg
LTY3LDYgKzY3LDcgQEAgc3RydWN0IFBsYXRmb3JtTWVkaWEgewogICAgICAgICBRVE1vdmllR1dv
cmxkVHlwZSwKICAgICAgICAgUVRNb3ZpZVZpc3VhbENvbnRleHRUeXBlLAogICAgICAgICBHU3Ry
ZWFtZXJHV29ybGRUeXBlLAorICAgICAgICBDaHJvbWl1bVdlYk1lZGlhUGxheWVyVHlwZSwKICAg
ICB9IHR5cGU7CiAKICAgICB1bmlvbiB7CkBAIC03NCw2ICs3NSw5IEBAIHN0cnVjdCBQbGF0Zm9y
bU1lZGlhIHsKICAgICAgICAgUVRNb3ZpZUdXb3JsZCogcXRNb3ZpZUdXb3JsZDsKICAgICAgICAg
UVRNb3ZpZVZpc3VhbENvbnRleHQqIHF0TW92aWVWaXN1YWxDb250ZXh0OwogICAgICAgICBHU3Ry
ZWFtZXJHV29ybGQqIGdzdHJlYW1lckdXb3JsZDsKKyAgICAgICAgLy8gVXNpbmcgdm9pZCogaW5z
dGVhZCBvZiBXZWJLaXQ6OldlYk1lZGlhUGxheWVyCisgICAgICAgIC8vIHRvIGF2b2lkIGludHJv
ZHVjaW5nIFdlYktpdCBuYW1lc3BhY2UgaW4gV2ViQ29yZS4KKyAgICAgICAgdm9pZCogY2hyb21p
dW1XZWJNZWRpYVBsYXllcjsKICAgICB9IG1lZGlhOwogfTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggY2Nh
N2I2OTg3Y2Y4NTgyNzA5NzNmOWNjODgzZTQ5MDI1NDhiMWZkNi4uOTRiMjAyZDgyZDRhZmNmNWMx
MGYzMzUzZjJkNDVhNWQzNDgxNDQ3NCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTAtMDctMTIgIEJvIExpdSAgPGJvbGl1QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIEFkZCBjaHJvbWl1bSBX
ZWJNZWRpYVBsYXllciB0byBQbGF0Zm9ybU1lZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTI5NQorCisgICAgICAgICogcHVibGljL1dlYk5vZGUu
aDoKKyAgICAgICAgKiBzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpwbGF0Zm9ybU1lZGlhKToKKyAgICAg
ICAgKiBzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmg6CisgICAgICAgICogc3JjL1dlYk5v
ZGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJOb2RlOjpnZXRNZWRpYVBsYXllcik6CisKIDIw
MTAtMDctMTIgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJOb2RlLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk5vZGUu
aAppbmRleCBmYjBhOTllNmVhZWY1MDA2NzVkZTYzMWEyODk2NzI5MzY0ZTFhODk4Li44ZDMxNzll
ZWJjYmE3ODc2OTVhMDQ4MmFlMTczODQzZTBjMzY1ZWExIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYk5vZGUuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk5v
ZGUuaApAQCAtNDIsNiArNDIsNyBAQCBjbGFzcyBXZWJEb2N1bWVudDsKIGNsYXNzIFdlYkV2ZW50
TGlzdGVuZXI7CiBjbGFzcyBXZWJFdmVudExpc3RlbmVyUHJpdmF0ZTsKIGNsYXNzIFdlYkZyYW1l
OworY2xhc3MgV2ViTWVkaWFQbGF5ZXI7CiBjbGFzcyBXZWJOb2RlTGlzdDsKIAogLy8gUHJvdmlk
ZXMgYWNjZXNzIHRvIHNvbWUgcHJvcGVydGllcyBvZiBhIERPTSBub2RlLgpAQCAtMTA3LDYgKzEw
OCwxMCBAQCBwdWJsaWM6CiAgICAgLy8gTm90ZTogVGhpcyBtZXRob2Qgb25seSB3b3JrcyBwcm9w
ZXJseSBhZnRlciBsYXlvdXQgaGFzIG9jY3VycmVkLgogICAgIFdFQktJVF9BUEkgYm9vbCBoYXNO
b25FbXB0eUJvdW5kaW5nQm94KCkgY29uc3Q7CiAKKyAgICAvLyBSZXR1cm5zIHRoZSBXZWJNZWRp
YVBsYXllciBvZiBhIHZpZGVvIG9yIGF1ZGlvIGVsZW1lbnQgb3IgcmV0dXJucworICAgIC8vIDAg
aWYgbV9wcml2YXRlIGlzIGFub3RoZXIgdHlwZS4KKyAgICBXRUJLSVRfQVBJIFdlYk1lZGlhUGxh
eWVyKiBnZXRNZWRpYVBsYXllcigpIGNvbnN0OworCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
VCB0bygpCiAgICAgewogICAgICAgICBUIHJlczsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAppbmRleCAwMzA1MWMzMmJmM2UyNTgzNzczZGQz
OGZiMDA5NTIzYmQyNDA1ZDE4Li45YWE1ZmYwYmRiNGU5YTczYTQ4MzAyNjQwOGEyNzIyNTI0ZDRm
ZGJjIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudElt
cGwuY3BwCkBAIC0xNTcsNiArMTU3LDE0IEBAIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
OjpjYW5jZWxMb2FkKCkKICAgICAgICAgbV93ZWJNZWRpYVBsYXllci0+Y2FuY2VsTG9hZCgpOwog
fQogCitXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cGxh
dGZvcm1NZWRpYSgpIGNvbnN0Cit7CisgICAgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYSBwbTsKKyAg
ICBwbS50eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1NZWRpYTo6Q2hyb21pdW1XZWJNZWRpYVBsYXll
clR5cGU7CisgICAgcG0ubWVkaWEuY2hyb21pdW1XZWJNZWRpYVBsYXllciA9IHN0YXRpY19jYXN0
PHZvaWQqPihtX3dlYk1lZGlhUGxheWVyLmdldCgpKTsKKyAgICByZXR1cm4gcG07Cit9CisKIHZv
aWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpwbGF5KCkKIHsKICAgICBpZiAobV93ZWJNZWRp
YVBsYXllci5nZXQoKSkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbC5oCmluZGV4IDU3YzkzYjdiNGM1ZDM3ZTRlZWY0ZTUzZTg1NzA0MTAzNDgxYTg1ZWMu
LjZhZDZmZmEyZWMyNzQ5MGM0YmJjOWI5NDM5MTZmOGVmODgyMDcwYzIgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKKysrIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaApAQCAtNjYsNiArNjYsNyBA
QCBwdWJsaWM6CiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIG1ldGhvZHM6CiAg
ICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiB1cmwpOwogICAgIHZp
cnR1YWwgdm9pZCBjYW5jZWxMb2FkKCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhIHBsYXRmb3JtTWVkaWEoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcGxheSgpOwogICAg
IHZpcnR1YWwgdm9pZCBwYXVzZSgpOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxzY3Jl
ZW4oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTm9kZS5jcHAg
Yi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk5vZGUuY3BwCmluZGV4IDY5YzM1ZTcyODI4Njg1ZWU4
YzI5ZGJjYzk4YWJhMDk3NTVkM2JhN2UuLjgyODBlYmIzZWMwYzZhMjIzMDhjMWJmMDUwMDAyZjlk
YTQyNDM5YmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTm9kZS5jcHAKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJOb2RlLmNwcApAQCAtMzQsNiArMzQsOCBAQAogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxv
YWRlckNsaWVudEltcGwuaCIKKyNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIk5vZGVMaXN0Lmgi
CiAKQEAgLTQyLDYgKzQ0LDcgQEAKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldl
YkV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKKyNpbmNsdWRlICJX
ZWJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIldlYk5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiV2Vi
U3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViVmVjdG9yLmgiCkBAIC0xODMsNiArMTg2LDE2IEBAIGJv
b2wgV2ViTm9kZTo6aGFzTm9uRW1wdHlCb3VuZGluZ0JveCgpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cHJpdmF0ZS0+aGFzTm9uRW1wdHlCb3VuZGluZ0JveCgpOwogfQogCitXZWJNZWRpYVBsYXllciog
V2ViTm9kZTo6Z2V0TWVkaWFQbGF5ZXIoKSBjb25zdAoreworICAgIGlmIChtX3ByaXZhdGUtPmhh
c1RhZ05hbWUoV2ViQ29yZTo6SFRNTE5hbWVzOjp2aWRlb1RhZykKKyAgICAgICAgfHwgbV9wcml2
YXRlLT5oYXNUYWdOYW1lKFdlYkNvcmU6OkhUTUxOYW1lczo6YXVkaW9UYWcpKSB7CisgICAgICAg
IEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50
Kj4obV9wcml2YXRlLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYk1lZGlh
UGxheWVyKj4oZWxlbWVudC0+cGxhdGZvcm1NZWRpYSgpLm1lZGlhLmNocm9taXVtV2ViTWVkaWFQ
bGF5ZXIpOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKwogV2ViTm9kZTo6V2ViTm9kZShjb25z
dCBQYXNzUmVmUHRyPE5vZGU+JiBub2RlKQogICAgIDogbV9wcml2YXRlKG5vZGUpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61276</attachid>
            <date>2010-07-12 15:14:57 -0700</date>
            <delta_ts>2010-07-14 10:34:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41295-20100712151456.patch</filename>
            <type>text/plain</type>
            <size>10769</size>
            <attacher name="Bo Liu">boliu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTlhYWJiZmE1ZDlmMDgwNzUwYTUyNjczY2YwODRmMmRlYzU0YTMwNS4uOGI3NmIwZmZhZTI0Y2Vk
Nzg5NWRlMTczYTcyZWVhYWJkODlkYjAzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNy0xMiAgQm8g
TGl1ICA8Ym9saXVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRkIGNocm9taXVtIFdlYk1lZGlhUGxheWVy
IHRvIFBsYXRmb3JtTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQxMjk1CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYTo6KToKKwogMjAxMC0wNy0xMiAgQW5kcmVhcyBLbGluZyAgPGFuZHJlYXMu
a2xpbmdAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGVjOWEyNWY3NmVjN2Qx
YmFiMzlkZmY1OTI2MWY0NTM5MzI4M2QxMWEuLjRlMjIzMzJlMjAxMzY2MTcxOGY5MTk1N2Q0OGRh
NDI0MDQ0OGJlZjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAg
LTU1LDYgKzU1LDcgQEAgY2xhc3MgUVRNb3ZpZVZpc3VhbENvbnRleHQ7CiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEdTdHJlYW1lckdXb3JsZDsKK2NsYXNzIE1lZGlhUGxheWVyUHJpdmF0
ZUludGVyZmFjZTsKIAogLy8gU3RydWN0dXJlIHRoYXQgd2lsbCBob2xkIGV2ZXJ5IG5hdGl2ZQog
Ly8gdHlwZXMgc3VwcG9ydGVkIGJ5IHRoZSBjdXJyZW50IG1lZGlhIHBsYXllci4KQEAgLTY3LDYg
KzY4LDcgQEAgc3RydWN0IFBsYXRmb3JtTWVkaWEgewogICAgICAgICBRVE1vdmllR1dvcmxkVHlw
ZSwKICAgICAgICAgUVRNb3ZpZVZpc3VhbENvbnRleHRUeXBlLAogICAgICAgICBHU3RyZWFtZXJH
V29ybGRUeXBlLAorICAgICAgICBDaHJvbWl1bVdlYk1lZGlhUGxheWVyVHlwZSwKICAgICB9IHR5
cGU7CiAKICAgICB1bmlvbiB7CkBAIC03NCw2ICs3Niw3IEBAIHN0cnVjdCBQbGF0Zm9ybU1lZGlh
IHsKICAgICAgICAgUVRNb3ZpZUdXb3JsZCogcXRNb3ZpZUdXb3JsZDsKICAgICAgICAgUVRNb3Zp
ZVZpc3VhbENvbnRleHQqIHF0TW92aWVWaXN1YWxDb250ZXh0OwogICAgICAgICBHU3RyZWFtZXJH
V29ybGQqIGdzdHJlYW1lckdXb3JsZDsKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlKiBjaHJvbWl1bVdlYk1lZGlhUGxheWVyOwogICAgIH0gbWVkaWE7CiB9OwogCkBAIC04NSw3
ICs4OCw2IEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBJ
bnRTaXplOwogY2xhc3MgTWVkaWFQbGF5ZXI7Ci1jbGFzcyBNZWRpYVBsYXllclByaXZhdGVJbnRl
cmZhY2U7CiBjbGFzcyBTdHJpbmc7CiBjbGFzcyBUaW1lUmFuZ2VzOwogCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCBjY2E3YjY5ODdjZjg1ODI3MDk3M2Y5Y2M4ODNlNDkwMjU0OGIxZmQ2Li4xZTVjYWUxMjhkYTZm
NWY0NDQ3ZWQ0NWQ1ZjRlNTIyMGM1NDNjMDA0IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBA
QAorMjAxMC0wNy0xMiAgQm8gTGl1ICA8Ym9saXVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRkIGNocm9t
aXVtIFdlYk1lZGlhUGxheWVyIHRvIFBsYXRmb3JtTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMjk1CisKKyAgICAgICAgKiBXZWJLaXQuZ3lw
OgorICAgICAgICAqIHB1YmxpYy9XZWJNZWRpYUVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgICog
c3JjL1dlYk1lZGlhRWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRp
YUVsZW1lbnQ6OmdldFdlYk1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFF
bGVtZW50OjpXZWJNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYUVsZW1l
bnQ6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhRWxlbWVudDo6b3BlcmF0
b3IgUGFzc1JlZlB0cjxIVE1MTWVkaWFFbGVtZW50Pik6CisgICAgICAgICogc3JjL1dlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbDo6cGxhdGZvcm1NZWRpYSk6CisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbC5oOgorCiAyMDEwLTA3LTEyICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvV2ViS2l0L2Nocm9taXVtL1dlYktp
dC5neXAKaW5kZXggODE0MzA0OWJmNjhiMDQ5ZTEwNjdiNTg2YzA1N2U5MDE4OWQxYTgwNC4uOWNm
MjMyMDM2MTAxMWQ0NGMyYzk0M2RlMjlhYWUxNmRiNWQwZmQ4NSAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAg
LTE1MCw2ICsxNTAsNyBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViS2l0Q2xpZW50Lmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTGFiZWxFbGVtZW50LmgnLAogICAgICAgICAg
ICAgICAgICdwdWJsaWMvV2ViTG9jYWxpemVkU3RyaW5nLmgnLAorICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViTWVkaWFFbGVtZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVk
aWFQbGF5ZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJNZWRpYVBsYXllckFjdGlv
bi5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmgnLApA
QCAtMzgwLDYgKzM4MSw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJbnB1dEV2ZW50Q29u
dmVyc2lvbi5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYktpdC5jcHAnLAogICAgICAgICAg
ICAgICAgICdzcmMvV2ViTGFiZWxFbGVtZW50LmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9X
ZWJNZWRpYUVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViTWVkaWFQbGF5ZXJDbGll
bnRJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViTXV0YXRpb25FdmVudC5jcHAnLApk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYUVsZW1lbnQuaCBiL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGVhZTZh
ODM1ZDBiOWYzOTNkYWE5YzVhYTVlOWYzM2I3NDhkYTJmMAotLS0gL2Rldi9udWxsCisrKyBiL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFFbGVtZW50LmgKQEAgLTAsMCArMSw1NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgV2ViTWVkaWFFbGVtZW50X2gKKyNkZWZpbmUgV2ViTWVkaWFFbGVtZW50X2gKKworI2lu
Y2x1ZGUgIldlYkVsZW1lbnQuaCIKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorbmFtZXNw
YWNlIFdlYkNvcmUgeyBjbGFzcyBIVE1MTWVkaWFFbGVtZW50OyB9CisjZW5kaWYKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYk1lZGlhUGxheWVyOworCitjbGFzcyBXZWJNZWRpYUVs
ZW1lbnQgOiBwdWJsaWMgV2ViRWxlbWVudCB7CitwdWJsaWM6CisgICAgV0VCS0lUX0FQSSBXZWJN
ZWRpYVBsYXllciogZ2V0V2ViTWVkaWFQbGF5ZXIoKSBjb25zdDsKKworI2lmIFdFQktJVF9JTVBM
RU1FTlRBVElPTgorICAgIFdlYk1lZGlhRWxlbWVudChjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudD4mKTsKKyAgICBXZWJNZWRpYUVsZW1lbnQmIG9wZXJhdG9y
PShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudD4mKTsKKyAg
ICBvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudD4oKSBj
b25zdDsKKyNlbmRpZgorfTsKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2Vi
TWVkaWFFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFF
bGVtZW50LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFFbGVtZW50LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wODlhMjZhY2RiMWRlOGY4ODhhZjBjOTBjZTgwNzdkYzRhNjBhNjc3Ci0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYUVsZW1lbnQuY3BwCkBAIC0w
LDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTWVkaWFFbGVtZW50
LmgiCisKKyNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5
ZXIuaCIKKyNpbmNsdWRlICJXZWJNZWRpYVBsYXllci5oIgorI2luY2x1ZGUgIldlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViTWVkaWFQbGF5ZXIq
IFdlYk1lZGlhRWxlbWVudDo6Z2V0V2ViTWVkaWFQbGF5ZXIoKSBjb25zdAoreworICAgIFBsYXRm
b3JtTWVkaWEgcG0gPSBjb25zdFVud3JhcDxIVE1MTWVkaWFFbGVtZW50PigpLT5wbGF0Zm9ybU1l
ZGlhKCk7CisgICAgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKiB3ZWJtZWRpYXBsYXllcmNsaWVu
dCA9CisgICAgICAgIHN0YXRpY19jYXN0PFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbCo+KHBtLm1l
ZGlhLmNocm9taXVtV2ViTWVkaWFQbGF5ZXIpOworICAgIHJldHVybiB3ZWJtZWRpYXBsYXllcmNs
aWVudC0+bV93ZWJNZWRpYVBsYXllci5nZXQoKTsKK30KKworV2ViTWVkaWFFbGVtZW50OjpXZWJN
ZWRpYUVsZW1lbnQoY29uc3QgUGFzc1JlZlB0cjxIVE1MTWVkaWFFbGVtZW50PiYgZWxlbSkKKyAg
ICA6IFdlYkVsZW1lbnQoZWxlbSkKK3sKK30KKworV2ViTWVkaWFFbGVtZW50JiBXZWJNZWRpYUVs
ZW1lbnQ6Om9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPEhUTUxNZWRpYUVsZW1lbnQ+JiBlbGVt
KQoreworICAgIG1fcHJpdmF0ZSA9IGVsZW07CisgICAgcmV0dXJuICp0aGlzOworfQorCitXZWJN
ZWRpYUVsZW1lbnQ6Om9wZXJhdG9yIFBhc3NSZWZQdHI8SFRNTE1lZGlhRWxlbWVudD4oKSBjb25z
dAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4obV9wcml2YXRl
LmdldCgpKTsKK30KK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCmluZGV4IDAzMDUxYzMyYmYzZTI1ODM3
NzNkZDM4ZmIwMDk1MjNiZDI0MDVkMTguLmEwYjIyZTNhZjU5MjNjZjU4ZGUzMGQxYjhkNGYxOWQw
MGI0MGUwZGQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbC5jcHAKQEAgLTE1Nyw2ICsxNTcsMTQgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVu
dEltcGw6OmNhbmNlbExvYWQoKQogICAgICAgICBtX3dlYk1lZGlhUGxheWVyLT5jYW5jZWxMb2Fk
KCk7CiB9CiAKK1dlYkNvcmU6OlBsYXRmb3JtTWVkaWEgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
OjpwbGF0Zm9ybU1lZGlhKCkgY29uc3QKK3sKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhIHBt
OworICAgIHBtLnR5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhOjpDaHJvbWl1bVdlYk1lZGlh
UGxheWVyVHlwZTsKKyAgICBwbS5tZWRpYS5jaHJvbWl1bVdlYk1lZGlhUGxheWVyID0gY29uc3Rf
Y2FzdDxXZWJNZWRpYVBsYXllckNsaWVudEltcGwqPih0aGlzKTsKKyAgICByZXR1cm4gcG07Cit9
CisKIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpwbGF5KCkKIHsKICAgICBpZiAobV93
ZWJNZWRpYVBsYXllci5nZXQoKSkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbC5oCmluZGV4IDU3YzkzYjdiNGM1ZDM3ZTRlZWY0ZTUzZTg1NzA0MTAzNDgx
YTg1ZWMuLmRhNjIzMmJmNjIzZTVmZTY0NGVkNjEzNWQyNTc4OTZjZDhiYmVkYmMgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaApAQCAtNjYsNiAr
NjYsNyBAQCBwdWJsaWM6CiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIG1ldGhv
ZHM6CiAgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiB1cmwpOwog
ICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxMb2FkKCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpQbGF0
Zm9ybU1lZGlhIHBsYXRmb3JtTWVkaWEoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcGxheSgp
OwogICAgIHZpcnR1YWwgdm9pZCBwYXVzZSgpOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1
bGxzY3JlZW4oKSBjb25zdDsKQEAgLTk3LDYgKzk4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0
OwogCiBwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBXZWJNZWRpYUVsZW1lbnQ7CisKICAgICBX
ZWJNZWRpYVBsYXllckNsaWVudEltcGwoKTsKIAogICAgIHN0YXRpYyBXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2UqIGNyZWF0ZShXZWJDb3JlOjpNZWRpYVBsYXllciopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61537</attachid>
            <date>2010-07-14 10:34:39 -0700</date>
            <delta_ts>2010-07-14 11:11:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41295-20100714103437.patch</filename>
            <type>text/plain</type>
            <size>11830</size>
            <attacher name="Bo Liu">boliu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTZiY2MwYzVmY2Y0YjZkYjAzYWUyZmY2YzUxMzI4NjE4NmIyM2NiYS4uODlkMzBjZjlhMGFiYjk4
MmE1NWRkNjE1M2ZmMTI4OTk3YzA1YzgzMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNy0xNCAgQm8g
TGl1ICA8Ym9saXVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRkIGNocm9taXVtIFdlYk1lZGlhUGxheWVy
IHRvIFBsYXRmb3JtTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQxMjk1CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYTo6KToKKwogMjAxMC0wNy0xNCAgTWFydGluIFJvYmluc29uICA8bXJvYmlu
c29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGVjOWEyNWY3NmVjN2QxYmFiMzlk
ZmY1OTI2MWY0NTM5MzI4M2QxMWEuLmU0ZjFlMmNhNjM0YmQ2ZDRhZjhmMWVkNjZlYzZjZTRhYWE4
YWU4NTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTU1LDYg
KzU1LDcgQEAgY2xhc3MgUVRNb3ZpZVZpc3VhbENvbnRleHQ7CiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEdTdHJlYW1lckdXb3JsZDsKK2NsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZTsKIAogLy8gU3RydWN0dXJlIHRoYXQgd2lsbCBob2xkIGV2ZXJ5IG5hdGl2ZQogLy8gdHlw
ZXMgc3VwcG9ydGVkIGJ5IHRoZSBjdXJyZW50IG1lZGlhIHBsYXllci4KQEAgLTY3LDYgKzY4LDcg
QEAgc3RydWN0IFBsYXRmb3JtTWVkaWEgewogICAgICAgICBRVE1vdmllR1dvcmxkVHlwZSwKICAg
ICAgICAgUVRNb3ZpZVZpc3VhbENvbnRleHRUeXBlLAogICAgICAgICBHU3RyZWFtZXJHV29ybGRU
eXBlLAorICAgICAgICBDaHJvbWl1bVdlYk1lZGlhUGxheWVyVHlwZSwKICAgICB9IHR5cGU7CiAK
ICAgICB1bmlvbiB7CkBAIC03NCw2ICs3Niw3IEBAIHN0cnVjdCBQbGF0Zm9ybU1lZGlhIHsKICAg
ICAgICAgUVRNb3ZpZUdXb3JsZCogcXRNb3ZpZUdXb3JsZDsKICAgICAgICAgUVRNb3ZpZVZpc3Vh
bENvbnRleHQqIHF0TW92aWVWaXN1YWxDb250ZXh0OwogICAgICAgICBHU3RyZWFtZXJHV29ybGQq
IGdzdHJlYW1lckdXb3JsZDsKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlKiBj
aHJvbWl1bU1lZGlhUGxheWVyOwogICAgIH0gbWVkaWE7CiB9OwogCkBAIC04NSw3ICs4OCw2IEBA
IGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBJbnRTaXplOwog
Y2xhc3MgTWVkaWFQbGF5ZXI7Ci1jbGFzcyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U7CiBj
bGFzcyBTdHJpbmc7CiBjbGFzcyBUaW1lUmFuZ2VzOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA5OTM0ZTYx
MzIxNzAyNmMxMzA2ODk0NjNjM2Q1YmE3MjczOGIxZjcyLi5kMzg2ZDFlY2U4NWJmNWQ0OTFiYjhi
YjZmZmQ5ZGMxMjFjOGFjOTFiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0w
Ny0xNCAgQm8gTGl1ICA8Ym9saXVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRkIGNocm9taXVtIFdlYk1l
ZGlhUGxheWVyIHRvIFBsYXRmb3JtTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQxMjk1CisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAg
ICAqIHB1YmxpYy9XZWJNZWRpYUVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgICogc3JjL1dlYk1l
ZGlhRWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYUVsZW1lbnQ6
OnBsYXllcik6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhRWxlbWVudDo6V2ViTWVkaWFFbGVt
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFFbGVtZW50OjpvcGVyYXRvcj0pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJNZWRpYUVsZW1lbnQ6Om9wZXJhdG9yIFBhc3NSZWZQdHI8SFRNTE1l
ZGlhRWxlbWVudD4pOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmZyb21NZWRpYUVs
ZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6Om1lZGlh
UGxheWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpwbGF0
Zm9ybU1lZGlhKToKKyAgICAgICAgKiBzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmg6CisK
IDIwMTAtMDctMTQgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2MzMwNS4KZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5k
ZXggY2RkNjAyYTBlZjRmM2E0YjE0YWNhMjg0Nzg3NTE2MzRmOTM2YjM1Zi4uMWIyNWY5NmUwYzAx
NGMxYWQ0NTRlZTNlY2YzMmI0NTA4ODk1YTQ0ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXAKKysrIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTE4Miw2ICsx
ODIsNyBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViS2l0Q2xpZW50LmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViTGFiZWxFbGVtZW50LmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViTG9jYWxpemVkU3RyaW5nLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
TWVkaWFFbGVtZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVkaWFQbGF5ZXIu
aCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJNZWRpYVBsYXllckFjdGlvbi5oJywKICAg
ICAgICAgICAgICAgICAncHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmgnLApAQCAtNDEyLDYg
KzQxMyw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5o
JywKICAgICAgICAgICAgICAgICAnc3JjL1dlYktpdC5jcHAnLAogICAgICAgICAgICAgICAgICdz
cmMvV2ViTGFiZWxFbGVtZW50LmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJNZWRpYUVs
ZW1lbnQuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1w
bC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViTXV0YXRpb25FdmVudC5jcHAnLApkaWZmIC0tZ2l0
IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYUVsZW1lbnQuaCBiL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViTWVkaWFFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQ4MzdhNTllMDYyODI5
YmJhMGRiYmVhYzRiNjlhNzg4Y2IxMDgxYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViTWVkaWFFbGVtZW50LmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2Vi
TWVkaWFFbGVtZW50X2gKKyNkZWZpbmUgV2ViTWVkaWFFbGVtZW50X2gKKworI2luY2x1ZGUgIldl
YkVsZW1lbnQuaCIKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorbmFtZXNwYWNlIFdlYkNv
cmUgeyBjbGFzcyBIVE1MTWVkaWFFbGVtZW50OyB9CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYk1lZGlhUGxheWVyOworCitjbGFzcyBXZWJNZWRpYUVsZW1lbnQgOiBw
dWJsaWMgV2ViRWxlbWVudCB7CitwdWJsaWM6CisgICAgV0VCS0lUX0FQSSBXZWJNZWRpYVBsYXll
ciogcGxheWVyKCkgY29uc3Q7CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAgICBXZWJN
ZWRpYUVsZW1lbnQoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ+Jik7CisgICAgV2ViTWVkaWFFbGVtZW50JiBvcGVyYXRvcj0oY29uc3QgV1RGOjpQYXNzUmVm
UHRyPFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ+Jik7CisgICAgb3BlcmF0b3IgV1RGOjpQYXNz
UmVmUHRyPFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ+KCkgY29uc3Q7CisjZW5kaWYKK307Cit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYk1lZGlhRWxlbWVudF9oCmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhRWxlbWVudC5jcHAgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYk1lZGlhRWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFkZGExZWQ5YmEz
MThmNWM2ODQyNDM3ZGQ2NTkwN2YxZjliNGEwNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTWVkaWFFbGVtZW50LmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk1lZGlhRWxlbWVudC5oIgorCisjaW5jbHVkZSAiSFRN
TE1lZGlhRWxlbWVudC5oIgorI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCisjaW5jbHVkZSAiV2Vi
TWVkaWFQbGF5ZXIuaCIKKyNpbmNsdWRlICJXZWJNZWRpYVBsYXllckNsaWVudEltcGwuaCIKKyNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYk1lZGlhUGxheWVyKiBXZWJNZWRpYUVsZW1lbnQ6OnBs
YXllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6ZnJv
bU1lZGlhRWxlbWVudCh0aGlzKS0+bWVkaWFQbGF5ZXIoKTsKK30KKworV2ViTWVkaWFFbGVtZW50
OjpXZWJNZWRpYUVsZW1lbnQoY29uc3QgUGFzc1JlZlB0cjxIVE1MTWVkaWFFbGVtZW50PiYgZWxl
bSkKKyAgICA6IFdlYkVsZW1lbnQoZWxlbSkKK3sKK30KKworV2ViTWVkaWFFbGVtZW50JiBXZWJN
ZWRpYUVsZW1lbnQ6Om9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPEhUTUxNZWRpYUVsZW1lbnQ+
JiBlbGVtKQoreworICAgIG1fcHJpdmF0ZSA9IGVsZW07CisgICAgcmV0dXJuICp0aGlzOworfQor
CitXZWJNZWRpYUVsZW1lbnQ6Om9wZXJhdG9yIFBhc3NSZWZQdHI8SFRNTE1lZGlhRWxlbWVudD4o
KSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4obV9w
cml2YXRlLmdldCgpKTsKK30KK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCmluZGV4IDAzMDUxYzMyYmYz
ZTI1ODM3NzNkZDM4ZmIwMDk1MjNiZDI0MDVkMTguLjg1MjgyMTlmNDEyYjRlMzE2N2Q1ZWE2M2Fk
NTY4M2NiZDJkOTMzOTIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbC5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJXZWJGcmFtZUlt
cGwuaCIKICNpbmNsdWRlICJXZWJLaXQuaCIKICNpbmNsdWRlICJXZWJLaXRDbGllbnQuaCIKKyNp
bmNsdWRlICJXZWJNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJNZWRpYVBsYXllci5oIgog
I2luY2x1ZGUgIldlYk1pbWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIldlYlJlY3QuaCIKQEAgLTcx
LDYgKzcyLDE3IEBAIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpyZWdpc3RlclNlbGYo
TWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogICAgIH0KIH0KIAorV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsKiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmZyb21NZWRpYUVsZW1lbnQo
Y29uc3QgV2ViTWVkaWFFbGVtZW50KiBlbGVtZW50KQoreworICAgIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWEgcG0gPSBlbGVtZW50LT5jb25zdFVud3JhcDxIVE1MTWVkaWFFbGVtZW50PigpLT5wbGF0
Zm9ybU1lZGlhKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbCo+KHBtLm1lZGlhLmNocm9taXVtTWVkaWFQbGF5ZXIpOworfQorCitXZWJNZWRpYVBsYXll
ciogV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjptZWRpYVBsYXllcigpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fd2ViTWVkaWFQbGF5ZXIuZ2V0KCk7Cit9CisKIC8vIFdlYk1lZGlhUGxheWVyQ2xp
ZW50IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpuZXR3b3JrU3RhdGVDaGFuZ2Vk
KCkKQEAgLTE1Nyw2ICsxNjksMTQgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmNh
bmNlbExvYWQoKQogICAgICAgICBtX3dlYk1lZGlhUGxheWVyLT5jYW5jZWxMb2FkKCk7CiB9CiAK
K1dlYkNvcmU6OlBsYXRmb3JtTWVkaWEgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpwbGF0Zm9y
bU1lZGlhKCkgY29uc3QKK3sKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhIHBtOworICAgIHBt
LnR5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhOjpDaHJvbWl1bVdlYk1lZGlhUGxheWVyVHlw
ZTsKKyAgICBwbS5tZWRpYS5jaHJvbWl1bU1lZGlhUGxheWVyID0gY29uc3RfY2FzdDxXZWJNZWRp
YVBsYXllckNsaWVudEltcGwqPih0aGlzKTsKKyAgICByZXR1cm4gcG07Cit9CisKIHZvaWQgV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpwbGF5KCkKIHsKICAgICBpZiAobV93ZWJNZWRpYVBsYXll
ci5nZXQoKSkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1w
bC5oCmluZGV4IDU3YzkzYjdiNGM1ZDM3ZTRlZWY0ZTUzZTg1NzA0MTAzNDgxYTg1ZWMuLjcyYTNl
ZTk2NGEzMDU2NmQxODVlOTMwN2U5Y2M5M2ExMGIyMWZlN2IgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaApAQCAtMzksNiArMzksNyBAQAogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViTWVkaWFFbGVtZW50OwogY2xhc3MgV2ViTWVk
aWFQbGF5ZXI7CiAKIC8vIFRoaXMgY2xhc3Mgc2VydmVzIGFzIGEgYnJpZGdlIGJldHdlZW4gV2Vi
Q29yZTo6TWVkaWFQbGF5ZXIgYW5kCkBAIC01MCw2ICs1MSwxMSBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgc2V0SXNFbmFibGVkKGJvb2wpOwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyU2Vs
ZihXZWJDb3JlOjpNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAKKyAgICBzdGF0aWMgV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsKiBmcm9tTWVkaWFFbGVtZW50KGNvbnN0IFdlYk1lZGlhRWxlbWVudCog
ZWxlbWVudCk7CisKKyAgICAvLyBSZXR1cm5zIHRoZSBlbmNhcHN1bGF0ZWQgV2ViS2l0OjpXZWJN
ZWRpYVBsYXllci4KKyAgICBXZWJNZWRpYVBsYXllciogbWVkaWFQbGF5ZXIoKSBjb25zdDsKKwog
ICAgIC8vIFdlYk1lZGlhUGxheWVyQ2xpZW50IG1ldGhvZHM6CiAgICAgdmlydHVhbCB2b2lkIG5l
dHdvcmtTdGF0ZUNoYW5nZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQo
KTsKQEAgLTY2LDYgKzcyLDcgQEAgcHVibGljOgogICAgIC8vIE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZSBtZXRob2RzOgogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFdlYkNvcmU6OlN0
cmluZyYgdXJsKTsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTG9hZCgpOworICAgIHZpcnR1YWwg
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYSBwbGF0Zm9ybU1lZGlhKCkgY29uc3Q7CiAgICAgdmlydHVh
bCB2b2lkIHBsYXkoKTsKICAgICB2aXJ0dWFsIHZvaWQgcGF1c2UoKTsKICAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNGdWxsc2NyZWVuKCkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61542</attachid>
            <date>2010-07-14 11:11:46 -0700</date>
            <delta_ts>2010-07-21 12:05:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41295-20100714111144.patch</filename>
            <type>text/plain</type>
            <size>11824</size>
            <attacher name="Bo Liu">boliu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTZiY2MwYzVmY2Y0YjZkYjAzYWUyZmY2YzUxMzI4NjE4NmIyM2NiYS4uODlkMzBjZjlhMGFiYjk4
MmE1NWRkNjE1M2ZmMTI4OTk3YzA1YzgzMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNy0xNCAgQm8g
TGl1ICA8Ym9saXVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRkIGNocm9taXVtIFdlYk1lZGlhUGxheWVy
IHRvIFBsYXRmb3JtTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQxMjk1CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYTo6KToKKwogMjAxMC0wNy0xNCAgTWFydGluIFJvYmluc29uICA8bXJvYmlu
c29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGVjOWEyNWY3NmVjN2QxYmFiMzlk
ZmY1OTI2MWY0NTM5MzI4M2QxMWEuLjNiOWMyZGQzMjA1ODc2MjZkMTVlMDFkYTNmNWZiOTA2OWM1
NjU4MzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTU1LDYg
KzU1LDcgQEAgY2xhc3MgUVRNb3ZpZVZpc3VhbENvbnRleHQ7CiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEdTdHJlYW1lckdXb3JsZDsKK2NsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZTsKIAogLy8gU3RydWN0dXJlIHRoYXQgd2lsbCBob2xkIGV2ZXJ5IG5hdGl2ZQogLy8gdHlw
ZXMgc3VwcG9ydGVkIGJ5IHRoZSBjdXJyZW50IG1lZGlhIHBsYXllci4KQEAgLTY3LDYgKzY4LDcg
QEAgc3RydWN0IFBsYXRmb3JtTWVkaWEgewogICAgICAgICBRVE1vdmllR1dvcmxkVHlwZSwKICAg
ICAgICAgUVRNb3ZpZVZpc3VhbENvbnRleHRUeXBlLAogICAgICAgICBHU3RyZWFtZXJHV29ybGRU
eXBlLAorICAgICAgICBDaHJvbWl1bU1lZGlhUGxheWVyVHlwZSwKICAgICB9IHR5cGU7CiAKICAg
ICB1bmlvbiB7CkBAIC03NCw2ICs3Niw3IEBAIHN0cnVjdCBQbGF0Zm9ybU1lZGlhIHsKICAgICAg
ICAgUVRNb3ZpZUdXb3JsZCogcXRNb3ZpZUdXb3JsZDsKICAgICAgICAgUVRNb3ZpZVZpc3VhbENv
bnRleHQqIHF0TW92aWVWaXN1YWxDb250ZXh0OwogICAgICAgICBHU3RyZWFtZXJHV29ybGQqIGdz
dHJlYW1lckdXb3JsZDsKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlKiBjaHJv
bWl1bU1lZGlhUGxheWVyOwogICAgIH0gbWVkaWE7CiB9OwogCkBAIC04NSw3ICs4OCw2IEBAIGNs
YXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBJbnRTaXplOwogY2xh
c3MgTWVkaWFQbGF5ZXI7Ci1jbGFzcyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U7CiBjbGFz
cyBTdHJpbmc7CiBjbGFzcyBUaW1lUmFuZ2VzOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA5OTM0ZTYxMzIx
NzAyNmMxMzA2ODk0NjNjM2Q1YmE3MjczOGIxZjcyLi5kMzg2ZDFlY2U4NWJmNWQ0OTFiYjhiYjZm
ZmQ5ZGMxMjFjOGFjOTFiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wNy0x
NCAgQm8gTGl1ICA8Ym9saXVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRkIGNocm9taXVtIFdlYk1lZGlh
UGxheWVyIHRvIFBsYXRmb3JtTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQxMjk1CisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAq
IHB1YmxpYy9XZWJNZWRpYUVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgICogc3JjL1dlYk1lZGlh
RWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYUVsZW1lbnQ6OnBs
YXllcik6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhRWxlbWVudDo6V2ViTWVkaWFFbGVtZW50
KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFFbGVtZW50OjpvcGVyYXRvcj0pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJNZWRpYUVsZW1lbnQ6Om9wZXJhdG9yIFBhc3NSZWZQdHI8SFRNTE1lZGlh
RWxlbWVudD4pOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmZyb21NZWRpYUVsZW1l
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6Om1lZGlhUGxh
eWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpwbGF0Zm9y
bU1lZGlhKToKKyAgICAgICAgKiBzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmg6CisKIDIw
MTAtMDctMTQgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2MzMwNS4KZGlmZiAtLWdpdCBhL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXgg
Y2RkNjAyYTBlZjRmM2E0YjE0YWNhMjg0Nzg3NTE2MzRmOTM2YjM1Zi4uMWIyNWY5NmUwYzAxNGMx
YWQ0NTRlZTNlY2YzMmI0NTA4ODk1YTQ0ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL1dl
YktpdC5neXAKKysrIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTE4Miw2ICsxODIs
NyBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViS2l0Q2xpZW50LmgnLAogICAgICAgICAg
ICAgICAgICdwdWJsaWMvV2ViTGFiZWxFbGVtZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViTG9jYWxpemVkU3RyaW5nLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVk
aWFFbGVtZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaCcs
CiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJNZWRpYVBsYXllckFjdGlvbi5oJywKICAgICAg
ICAgICAgICAgICAncHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmgnLApAQCAtNDEyLDYgKzQx
Myw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5oJywK
ICAgICAgICAgICAgICAgICAnc3JjL1dlYktpdC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMv
V2ViTGFiZWxFbGVtZW50LmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJNZWRpYUVsZW1l
bnQuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5j
cHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgnLAog
ICAgICAgICAgICAgICAgICdzcmMvV2ViTXV0YXRpb25FdmVudC5jcHAnLApkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYUVsZW1lbnQuaCBiL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViTWVkaWFFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQ4MzdhNTllMDYyODI5YmJh
MGRiYmVhYzRiNjlhNzg4Y2IxMDgxYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViTWVkaWFFbGVtZW50LmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViTWVk
aWFFbGVtZW50X2gKKyNkZWZpbmUgV2ViTWVkaWFFbGVtZW50X2gKKworI2luY2x1ZGUgIldlYkVs
ZW1lbnQuaCIKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorbmFtZXNwYWNlIFdlYkNvcmUg
eyBjbGFzcyBIVE1MTWVkaWFFbGVtZW50OyB9CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYk1lZGlhUGxheWVyOworCitjbGFzcyBXZWJNZWRpYUVsZW1lbnQgOiBwdWJs
aWMgV2ViRWxlbWVudCB7CitwdWJsaWM6CisgICAgV0VCS0lUX0FQSSBXZWJNZWRpYVBsYXllciog
cGxheWVyKCkgY29uc3Q7CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAgICBXZWJNZWRp
YUVsZW1lbnQoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ+
Jik7CisgICAgV2ViTWVkaWFFbGVtZW50JiBvcGVyYXRvcj0oY29uc3QgV1RGOjpQYXNzUmVmUHRy
PFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ+Jik7CisgICAgb3BlcmF0b3IgV1RGOjpQYXNzUmVm
UHRyPFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ+KCkgY29uc3Q7CisjZW5kaWYKK307Cit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYk1lZGlhRWxlbWVudF9oCmRpZmYgLS1n
aXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhRWxlbWVudC5jcHAgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYk1lZGlhRWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFkZGExZWQ5YmEzMThm
NWM2ODQyNDM3ZGQ2NTkwN2YxZjliNGEwNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViTWVkaWFFbGVtZW50LmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYk1lZGlhRWxlbWVudC5oIgorCisjaW5jbHVkZSAiSFRNTE1l
ZGlhRWxlbWVudC5oIgorI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCisjaW5jbHVkZSAiV2ViTWVk
aWFQbGF5ZXIuaCIKKyNpbmNsdWRlICJXZWJNZWRpYVBsYXllckNsaWVudEltcGwuaCIKKyNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK1dlYk1lZGlhUGxheWVyKiBXZWJNZWRpYUVsZW1lbnQ6OnBsYXll
cigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6ZnJvbU1l
ZGlhRWxlbWVudCh0aGlzKS0+bWVkaWFQbGF5ZXIoKTsKK30KKworV2ViTWVkaWFFbGVtZW50OjpX
ZWJNZWRpYUVsZW1lbnQoY29uc3QgUGFzc1JlZlB0cjxIVE1MTWVkaWFFbGVtZW50PiYgZWxlbSkK
KyAgICA6IFdlYkVsZW1lbnQoZWxlbSkKK3sKK30KKworV2ViTWVkaWFFbGVtZW50JiBXZWJNZWRp
YUVsZW1lbnQ6Om9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPEhUTUxNZWRpYUVsZW1lbnQ+JiBl
bGVtKQoreworICAgIG1fcHJpdmF0ZSA9IGVsZW07CisgICAgcmV0dXJuICp0aGlzOworfQorCitX
ZWJNZWRpYUVsZW1lbnQ6Om9wZXJhdG9yIFBhc3NSZWZQdHI8SFRNTE1lZGlhRWxlbWVudD4oKSBj
b25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4obV9wcml2
YXRlLmdldCgpKTsKK30KK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCmluZGV4IDAzMDUxYzMyYmYzZTI1
ODM3NzNkZDM4ZmIwMDk1MjNiZDI0MDVkMTguLjdhYTVmY2E1ZmNiYTBkOWFiYTZkNTkzMDE0ODZm
ZGY3OGViYWYyYzQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbC5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJXZWJGcmFtZUltcGwu
aCIKICNpbmNsdWRlICJXZWJLaXQuaCIKICNpbmNsdWRlICJXZWJLaXRDbGllbnQuaCIKKyNpbmNs
dWRlICJXZWJNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJNZWRpYVBsYXllci5oIgogI2lu
Y2x1ZGUgIldlYk1pbWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIldlYlJlY3QuaCIKQEAgLTcxLDYg
KzcyLDE3IEBAIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpyZWdpc3RlclNlbGYoTWVk
aWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogICAgIH0KIH0KIAorV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsKiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmZyb21NZWRpYUVsZW1lbnQoY29u
c3QgV2ViTWVkaWFFbGVtZW50KiBlbGVtZW50KQoreworICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWEgcG0gPSBlbGVtZW50LT5jb25zdFVud3JhcDxIVE1MTWVkaWFFbGVtZW50PigpLT5wbGF0Zm9y
bU1lZGlhKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYk1lZGlhUGxheWVyQ2xpZW50SW1w
bCo+KHBtLm1lZGlhLmNocm9taXVtTWVkaWFQbGF5ZXIpOworfQorCitXZWJNZWRpYVBsYXllciog
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjptZWRpYVBsYXllcigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fd2ViTWVkaWFQbGF5ZXIuZ2V0KCk7Cit9CisKIC8vIFdlYk1lZGlhUGxheWVyQ2xpZW50
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKCkK
QEAgLTE1Nyw2ICsxNjksMTQgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmNhbmNl
bExvYWQoKQogICAgICAgICBtX3dlYk1lZGlhUGxheWVyLT5jYW5jZWxMb2FkKCk7CiB9CiAKK1dl
YkNvcmU6OlBsYXRmb3JtTWVkaWEgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpwbGF0Zm9ybU1l
ZGlhKCkgY29uc3QKK3sKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhIHBtOworICAgIHBtLnR5
cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhOjpDaHJvbWl1bU1lZGlhUGxheWVyVHlwZTsKKyAg
ICBwbS5tZWRpYS5jaHJvbWl1bU1lZGlhUGxheWVyID0gY29uc3RfY2FzdDxXZWJNZWRpYVBsYXll
ckNsaWVudEltcGwqPih0aGlzKTsKKyAgICByZXR1cm4gcG07Cit9CisKIHZvaWQgV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsOjpwbGF5KCkKIHsKICAgICBpZiAobV93ZWJNZWRpYVBsYXllci5nZXQo
KSkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJ
bXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCmlu
ZGV4IDU3YzkzYjdiNGM1ZDM3ZTRlZWY0ZTUzZTg1NzA0MTAzNDgxYTg1ZWMuLjcyYTNlZTk2NGEz
MDU2NmQxODVlOTMwN2U5Y2M5M2ExMGIyMWZlN2IgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaApAQCAtMzksNiArMzksNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViTWVkaWFFbGVtZW50OwogY2xhc3MgV2ViTWVkaWFQbGF5
ZXI7CiAKIC8vIFRoaXMgY2xhc3Mgc2VydmVzIGFzIGEgYnJpZGdlIGJldHdlZW4gV2ViQ29yZTo6
TWVkaWFQbGF5ZXIgYW5kCkBAIC01MCw2ICs1MSwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZv
aWQgc2V0SXNFbmFibGVkKGJvb2wpOwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyU2VsZihXZWJD
b3JlOjpNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAKKyAgICBzdGF0aWMgV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsKiBmcm9tTWVkaWFFbGVtZW50KGNvbnN0IFdlYk1lZGlhRWxlbWVudCogZWxlbWVu
dCk7CisKKyAgICAvLyBSZXR1cm5zIHRoZSBlbmNhcHN1bGF0ZWQgV2ViS2l0OjpXZWJNZWRpYVBs
YXllci4KKyAgICBXZWJNZWRpYVBsYXllciogbWVkaWFQbGF5ZXIoKSBjb25zdDsKKwogICAgIC8v
IFdlYk1lZGlhUGxheWVyQ2xpZW50IG1ldGhvZHM6CiAgICAgdmlydHVhbCB2b2lkIG5ldHdvcmtT
dGF0ZUNoYW5nZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoKTsKQEAg
LTY2LDYgKzcyLDcgQEAgcHVibGljOgogICAgIC8vIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZSBtZXRob2RzOgogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFdlYkNvcmU6OlN0cmluZyYg
dXJsKTsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTG9hZCgpOworICAgIHZpcnR1YWwgV2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYSBwbGF0Zm9ybU1lZGlhKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lk
IHBsYXkoKTsKICAgICB2aXJ0dWFsIHZvaWQgcGF1c2UoKTsKICAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydHNGdWxsc2NyZWVuKCkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62216</attachid>
            <date>2010-07-21 12:05:51 -0700</date>
            <delta_ts>2010-07-21 14:24:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41295-20100721120549.patch</filename>
            <type>text/plain</type>
            <size>12047</size>
            <attacher name="Bo Liu">boliu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODg4NzRlYTk5MWM1ZDQzMjQ1YTg0ODE4NDJkY2JlZjBlNDBjMjMzMS4uMmRjNmU2ODljNTRkMGNm
ZTM2YjEzZDgyODM5MmY3YjcxMTNjYzRiYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNy0yMSAgQm8g
TGl1ICA8Ym9saXVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRkIGNocm9taXVtIFdlYk1lZGlhUGxheWVy
IHRvIFBsYXRmb3JtTWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQxMjk1CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYTo6KToKKwogMjAxMC0wNy0yMSAgWWFlbCBBaGFyb24gIDx5YWVsLmFoYXJv
bkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggYzdmYmE5OTU1ZTc3ODM4ZDkxNTVh
NjNlNzU1NjY5ZDUxMTdlODRhZi4uNjk0NTg3Mjk4NGU5ODU0YmQ5OWRkZWZjOTI3YTYwMmY1NTli
YTg0NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtNTUsNiAr
NTUsNyBAQCBjbGFzcyBRVE1vdmllVmlzdWFsQ29udGV4dDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgR1N0cmVhbWVyR1dvcmxkOworY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlOwogCiAvLyBTdHJ1Y3R1cmUgdGhhdCB3aWxsIGhvbGQgZXZlcnkgbmF0aXZlCiAvLyB0eXBl
cyBzdXBwb3J0ZWQgYnkgdGhlIGN1cnJlbnQgbWVkaWEgcGxheWVyLgpAQCAtNjcsNiArNjgsNyBA
QCBzdHJ1Y3QgUGxhdGZvcm1NZWRpYSB7CiAgICAgICAgIFFUTW92aWVHV29ybGRUeXBlLAogICAg
ICAgICBRVE1vdmllVmlzdWFsQ29udGV4dFR5cGUsCiAgICAgICAgIEdTdHJlYW1lckdXb3JsZFR5
cGUsCisgICAgICAgIENocm9taXVtTWVkaWFQbGF5ZXJUeXBlLAogICAgIH0gdHlwZTsKIAogICAg
IHVuaW9uIHsKQEAgLTc0LDYgKzc2LDcgQEAgc3RydWN0IFBsYXRmb3JtTWVkaWEgewogICAgICAg
ICBRVE1vdmllR1dvcmxkKiBxdE1vdmllR1dvcmxkOwogICAgICAgICBRVE1vdmllVmlzdWFsQ29u
dGV4dCogcXRNb3ZpZVZpc3VhbENvbnRleHQ7CiAgICAgICAgIEdTdHJlYW1lckdXb3JsZCogZ3N0
cmVhbWVyR1dvcmxkOworICAgICAgICBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UqIGNocm9t
aXVtTWVkaWFQbGF5ZXI7CiAgICAgfSBtZWRpYTsKIH07CiAKQEAgLTg1LDcgKzg4LDYgQEAgY2xh
c3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgSW50UmVjdDsKIGNsYXNzIEludFNpemU7CiBjbGFz
cyBNZWRpYVBsYXllcjsKLWNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTsKIGNsYXNz
IFN0cmluZzsKIGNsYXNzIFRpbWVSYW5nZXM7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGU5YTExMTE0ZmM4
MDQ3N2Y2OGU1MjVhYTU1NzhlODEwOWE2MDMwZmEuLjRhZjI4MjYwN2QyYzM0YjU2Nzc5ODYwYTFi
NzY2OTg4Y2U4ZWYyNTMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEwLTA3LTIx
ICBCbyBMaXUgIDxib2xpdUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBBZGQgY2hyb21pdW0gV2ViTWVkaWFQ
bGF5ZXIgdG8gUGxhdGZvcm1NZWRpYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDEyOTUKKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICog
cHVibGljL1dlYk1lZGlhRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBzcmMvV2ViTWVkaWFF
bGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhRWxlbWVudDo6cGxh
eWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFFbGVtZW50OjpXZWJNZWRpYUVsZW1lbnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYUVsZW1lbnQ6Om9wZXJhdG9yPSk6CisgICAgICAg
IChXZWJLaXQ6OldlYk1lZGlhRWxlbWVudDo6b3BlcmF0b3IgUGFzc1JlZlB0cjxIVE1MTWVkaWFF
bGVtZW50Pik6CisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6ZnJvbU1lZGlhRWxlbWVu
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6bWVkaWFQbGF5
ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnBsYXRmb3Jt
TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnBsYXRm
b3JtTWVkaWEpOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaDoKKwog
MjAxMC0wNy0yMSAgRmlubnVyIFRob3Jhcmluc3NvbiAgPGZpbm51ci53ZWJraXRAZ21haWwuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5k
ZXggYjQ3ZDc1NjI2ZWY0ZmJmYmFjNmVmMTAwZTE2MjIxNjE1ZmMzYTYzMS4uOGFiYzE1OWJhMjkz
OTJmY2NlOWM4NGI3ODc5ZmNiNjRiMjg2MzUyOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXAKKysrIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTE4Miw2ICsx
ODIsNyBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViS2l0Q2xpZW50LmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViTGFiZWxFbGVtZW50LmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViTG9jYWxpemVkU3RyaW5nLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
TWVkaWFFbGVtZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVkaWFQbGF5ZXIu
aCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJNZWRpYVBsYXllckFjdGlvbi5oJywKICAg
ICAgICAgICAgICAgICAncHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmgnLApAQCAtNDE1LDYg
KzQxNiw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5o
JywKICAgICAgICAgICAgICAgICAnc3JjL1dlYktpdC5jcHAnLAogICAgICAgICAgICAgICAgICdz
cmMvV2ViTGFiZWxFbGVtZW50LmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJNZWRpYUVs
ZW1lbnQuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1w
bC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViTXV0YXRpb25FdmVudC5jcHAnLApkaWZmIC0tZ2l0
IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYUVsZW1lbnQuaCBiL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViTWVkaWFFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQ4MzdhNTllMDYyODI5
YmJhMGRiYmVhYzRiNjlhNzg4Y2IxMDgxYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViTWVkaWFFbGVtZW50LmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2Vi
TWVkaWFFbGVtZW50X2gKKyNkZWZpbmUgV2ViTWVkaWFFbGVtZW50X2gKKworI2luY2x1ZGUgIldl
YkVsZW1lbnQuaCIKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorbmFtZXNwYWNlIFdlYkNv
cmUgeyBjbGFzcyBIVE1MTWVkaWFFbGVtZW50OyB9CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYk1lZGlhUGxheWVyOworCitjbGFzcyBXZWJNZWRpYUVsZW1lbnQgOiBw
dWJsaWMgV2ViRWxlbWVudCB7CitwdWJsaWM6CisgICAgV0VCS0lUX0FQSSBXZWJNZWRpYVBsYXll
ciogcGxheWVyKCkgY29uc3Q7CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAgICBXZWJN
ZWRpYUVsZW1lbnQoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ+Jik7CisgICAgV2ViTWVkaWFFbGVtZW50JiBvcGVyYXRvcj0oY29uc3QgV1RGOjpQYXNzUmVm
UHRyPFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ+Jik7CisgICAgb3BlcmF0b3IgV1RGOjpQYXNz
UmVmUHRyPFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ+KCkgY29uc3Q7CisjZW5kaWYKK307Cit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYk1lZGlhRWxlbWVudF9oCmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhRWxlbWVudC5jcHAgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYk1lZGlhRWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFkZGExZWQ5YmEz
MThmNWM2ODQyNDM3ZGQ2NTkwN2YxZjliNGEwNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTWVkaWFFbGVtZW50LmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk1lZGlhRWxlbWVudC5oIgorCisjaW5jbHVkZSAiSFRN
TE1lZGlhRWxlbWVudC5oIgorI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCisjaW5jbHVkZSAiV2Vi
TWVkaWFQbGF5ZXIuaCIKKyNpbmNsdWRlICJXZWJNZWRpYVBsYXllckNsaWVudEltcGwuaCIKKyNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYk1lZGlhUGxheWVyKiBXZWJNZWRpYUVsZW1lbnQ6OnBs
YXllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6ZnJv
bU1lZGlhRWxlbWVudCh0aGlzKS0+bWVkaWFQbGF5ZXIoKTsKK30KKworV2ViTWVkaWFFbGVtZW50
OjpXZWJNZWRpYUVsZW1lbnQoY29uc3QgUGFzc1JlZlB0cjxIVE1MTWVkaWFFbGVtZW50PiYgZWxl
bSkKKyAgICA6IFdlYkVsZW1lbnQoZWxlbSkKK3sKK30KKworV2ViTWVkaWFFbGVtZW50JiBXZWJN
ZWRpYUVsZW1lbnQ6Om9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPEhUTUxNZWRpYUVsZW1lbnQ+
JiBlbGVtKQoreworICAgIG1fcHJpdmF0ZSA9IGVsZW07CisgICAgcmV0dXJuICp0aGlzOworfQor
CitXZWJNZWRpYUVsZW1lbnQ6Om9wZXJhdG9yIFBhc3NSZWZQdHI8SFRNTE1lZGlhRWxlbWVudD4o
KSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4obV9w
cml2YXRlLmdldCgpKTsKK30KK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCmluZGV4IGRlOWNkMTQ3MDM3
MWI1Zjk1YmM1ODZkM2JjYjcyNzI0NzgwN2FhN2YuLjJiMGM5YTcyYzEyYjczZTNiN2I1YmRkMGEz
Zjg2ZTc3MWU3ZjY2ODYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJXZWJGcmFtZUlt
cGwuaCIKICNpbmNsdWRlICJXZWJLaXQuaCIKICNpbmNsdWRlICJXZWJLaXRDbGllbnQuaCIKKyNp
bmNsdWRlICJXZWJNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJNZWRpYVBsYXllci5oIgog
I2luY2x1ZGUgIldlYk1pbWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIldlYlJlY3QuaCIKQEAgLTc5
LDYgKzgwLDE3IEBAIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpyZWdpc3RlclNlbGYo
TWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogICAgIH0KIH0KIAorV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsKiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmZyb21NZWRpYUVsZW1lbnQo
Y29uc3QgV2ViTWVkaWFFbGVtZW50KiBlbGVtZW50KQoreworICAgIFBsYXRmb3JtTWVkaWEgcG0g
PSBlbGVtZW50LT5jb25zdFVud3JhcDxIVE1MTWVkaWFFbGVtZW50PigpLT5wbGF0Zm9ybU1lZGlh
KCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbCo+KHBt
Lm1lZGlhLmNocm9taXVtTWVkaWFQbGF5ZXIpOworfQorCitXZWJNZWRpYVBsYXllciogV2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsOjptZWRpYVBsYXllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
d2ViTWVkaWFQbGF5ZXIuZ2V0KCk7Cit9CisKIC8vIFdlYk1lZGlhUGxheWVyQ2xpZW50IC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIHZv
aWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKCkKQEAgLTE2
NywxMyArMTc5LDIxIEBAIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpjYW5jZWxMb2Fk
KCkKIH0KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLVdlYkNvcmU6OlBsYXRm
b3JtTGF5ZXIqIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cGxhdGZvcm1MYXllcigpIGNvbnN0
CitQbGF0Zm9ybUxheWVyKiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnBsYXRmb3JtTGF5ZXIo
KSBjb25zdAogewogICAgIEFTU0VSVChtX3N1cHBvcnRzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyk7
CiAgICAgcmV0dXJuIG1fdmlkZW9MYXllci5nZXQoKTsKIH0KICNlbmRpZgogCitQbGF0Zm9ybU1l
ZGlhIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cGxhdGZvcm1NZWRpYSgpIGNvbnN0Cit7Cisg
ICAgUGxhdGZvcm1NZWRpYSBwbTsKKyAgICBwbS50eXBlID0gUGxhdGZvcm1NZWRpYTo6Q2hyb21p
dW1NZWRpYVBsYXllclR5cGU7CisgICAgcG0ubWVkaWEuY2hyb21pdW1NZWRpYVBsYXllciA9IGNv
bnN0X2Nhc3Q8V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKj4odGhpcyk7CisgICAgcmV0dXJuIHBt
OworfQorCiB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cGxheSgpCiB7CiAgICAgaWYg
KG1fd2ViTWVkaWFQbGF5ZXIuZ2V0KCkpCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRp
YVBsYXllckNsaWVudEltcGwuaAppbmRleCBmZjAzYjViM2FjYmRjNTNjZDgwNzNkNGQ5Mzk2OTMw
YjRhZTZkZWNlLi4wZmFhYzI2M2NhM2IzOTFlN2Y4MmI4M2VhZTI0Nzg0NTJmODBmYmI4IDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKQEAgLTM5
LDYgKzM5LDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdlYk1lZGlhRWxlbWVu
dDsKIGNsYXNzIFdlYk1lZGlhUGxheWVyOwogCiAvLyBUaGlzIGNsYXNzIHNlcnZlcyBhcyBhIGJy
aWRnZSBiZXR3ZWVuIFdlYkNvcmU6Ok1lZGlhUGxheWVyIGFuZApAQCAtNTAsNiArNTEsMTEgQEAg
cHVibGljOgogICAgIHN0YXRpYyB2b2lkIHNldElzRW5hYmxlZChib29sKTsKICAgICBzdGF0aWMg
dm9pZCByZWdpc3RlclNlbGYoV2ViQ29yZTo6TWVkaWFFbmdpbmVSZWdpc3RyYXIpOwogCisgICAg
c3RhdGljIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbCogZnJvbU1lZGlhRWxlbWVudChjb25zdCBX
ZWJNZWRpYUVsZW1lbnQqIGVsZW1lbnQpOworCisgICAgLy8gUmV0dXJucyB0aGUgZW5jYXBzdWxh
dGVkIFdlYktpdDo6V2ViTWVkaWFQbGF5ZXIuCisgICAgV2ViTWVkaWFQbGF5ZXIqIG1lZGlhUGxh
eWVyKCkgY29uc3Q7CisKICAgICAvLyBXZWJNZWRpYVBsYXllckNsaWVudCBtZXRob2RzOgogICAg
IHZpcnR1YWwgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCB2b2lkIHJl
YWR5U3RhdGVDaGFuZ2VkKCk7CkBAIC02OSw2ICs3NSw3IEBAIHB1YmxpYzoKICNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBXZWJDb3JlOjpQbGF0Zm9ybUxheWVy
KiBwbGF0Zm9ybUxheWVyKCkgY29uc3Q7CiAjZW5kaWYKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWEgcGxhdGZvcm1NZWRpYSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBwbGF5
KCk7CiAgICAgdmlydHVhbCB2b2lkIHBhdXNlKCk7CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
RnVsbHNjcmVlbigpIGNvbnN0Owo=
</data>
<flag name="review"
          id="50360"
          type_id="1"
          status="+"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="50372"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>