<?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>90974</bug_id>
          
          <creation_ts>2012-07-11 04:49:44 -0700</creation_ts>
          <short_desc>[BlackBerry] Some small changes in network code</short_desc>
          <delta_ts>2012-07-13 10:40:18 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mary Wu">mawu</reporter>
          <assigned_to name="Mary Wu">mawu</assigned_to>
          <cc>joenotcharles</cc>
    
    <cc>liachen</cc>
    
    <cc>mifenton</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>666665</commentid>
    <comment_count>0</comment_count>
    <who name="Mary Wu">mawu</who>
    <bug_when>2012-07-11 04:49:44 -0700</bug_when>
    <thetext>Add some change in Network, from RIM PR# 171555.
1. Set status when NetworkJob closed so that its wrapped stream can also query the result after NetworkJob handling redirect/authenticate etc. 
2. pass download attribute to NetworkRequest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666673</commentid>
    <comment_count>1</comment_count>
      <attachid>151684</attachid>
    <who name="Mary Wu">mawu</who>
    <bug_when>2012-07-11 04:59:45 -0700</bug_when>
    <thetext>Created attachment 151684
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666807</commentid>
    <comment_count>2</comment_count>
      <attachid>151684</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2012-07-11 09:39:48 -0700</bug_when>
    <thetext>Comment on attachment 151684
Patch

What&apos;s the rationale behind overwriting m_status with a less-specific value on close?  Why couldn&apos;t the wrapped stream query the existing status?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667307</commentid>
    <comment_count>3</comment_count>
    <who name="Mary Wu">mawu</who>
    <bug_when>2012-07-11 18:43:51 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 151684 [details])
&gt; What&apos;s the rationale behind overwriting m_status with a less-specific value on close? 

Right now nobody would use the status() except download client who only cares if it&apos;s success or network error.

&gt; Why couldn&apos;t the wrapped stream query the existing status?

There&apos;s some cases like StatusTooManyRedirects, wrapped stream would be unable to get the status.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667761</commentid>
    <comment_count>4</comment_count>
      <attachid>151684</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-07-12 07:48:33 -0700</bug_when>
    <thetext>Comment on attachment 151684
Patch

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

Looks good.

&gt; Source/WebCore/platform/network/blackberry/NetworkJob.cpp:483
&gt; +                m_status = isError(m_extendedStatusCode) ? BlackBerry::Platform::FilterStream::StatusNetworkError: BlackBerry::Platform::FilterStream::StatusSuccess;

Style nit, please add a space before &apos;:&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667770</commentid>
    <comment_count>5</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2012-07-12 07:57:43 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 151684 [details] [details])
&gt; &gt; What&apos;s the rationale behind overwriting m_status with a less-specific value on close? 
&gt; 
&gt; Right now nobody would use the status() except download client who only cares if it&apos;s success or network error.

In that case can you add a separate &quot;closeStatus&quot; that the download client could check?  (I&apos;m not sure what the best name is.)

The idea is that the status provided to notifyClose says whether the underlying stream was actually able to connect to its endpoint or not (so if it closes without ever connecting, you get notifyClose with an error code immediately) and the status in notifyStatusReceived is sent by the endpoint.  Whenever possible we put a detailed failure status in notifyStatusReceived as well as in notifyClose, but sometimes it&apos;s not possible so notifyClose is the fallback.

For example, if making a request to an http:// url, if the connection fails we may get notifyStatusReceived with a network error and then notifyClose with a network error, or just notifyClose (actually I forget the exact circumstance where notifyClose can happen without notifyStatusReceived, but it&apos;s theoretically possible).  If the connection succeeds but the server returns a 404, we get notifyStatusReceived(404) followed by notifyClose(Success).

I&apos;d prefer to have a separate method that the download client can call which returns exactly the pass/fail status the download client is looking for rather than changing the behaviour of status.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667791</commentid>
    <comment_count>6</comment_count>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-07-12 08:20:03 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; In that case can you add a separate &quot;closeStatus&quot; that the download client could check?  (I&apos;m not sure what the best name is.)
&gt; 
&gt; The idea is that the status provided to notifyClose says whether the underlying stream was actually able to connect to its endpoint or not (so if it closes without ever connecting, you get notifyClose with an error code immediately) and the status in notifyStatusReceived is sent by the endpoint.  Whenever possible we put a detailed failure status in notifyStatusReceived as well as in notifyClose, but sometimes it&apos;s not possible so notifyClose is the fallback.
&gt; 
&gt; For example, if making a request to an http:// url, if the connection fails we may get notifyStatusReceived with a network error and then notifyClose with a network error, or just notifyClose (actually I forget the exact circumstance where notifyClose can happen without notifyStatusReceived, but it&apos;s theoretically possible).  If the connection succeeds but the server returns a 404, we get notifyStatusReceived(404) followed by notifyClose(Success).
&gt; 
&gt; I&apos;d prefer to have a separate method that the download client can call which returns exactly the pass/fail status the download client is looking for rather than changing the behaviour of status.

I remember there should be only one status, that is the http status, plus some internal error (which are negative to differentiated from normal http status). And this status is from notifyStatusReceived().

And the when merging WebSocket stream, we get separate status, notifyStatusReceived is now all about the connection establishment. And notifyClose() now comes a new status to tell status after the connection is established, like why it is closed, maybe due to some error (like lost network connection, the other end is down, etc).

So I would suggest we still treat them all as one status:

* It defaults to Success;
* When notifyStatusReceived() comes, it changes to what is in it;
* When notifyClose() comes, if it is Success, leave the status untouched, but if it is anything other than Success, then switch to new status.
* when NetworkJob::status() is called, we always return what is saved in m_status.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668160</commentid>
    <comment_count>7</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2012-07-12 13:38:44 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; I remember there should be only one status, that is the http status, plus some internal error (which are negative to differentiated from normal http status). And this status is from notifyStatusReceived().
&gt; 
&gt; And the when merging WebSocket stream, we get separate status, notifyStatusReceived is now all about the connection establishment. And notifyClose() now comes a new status to tell status after the connection is established, like why it is closed, maybe due to some error (like lost network connection, the other end is down, etc).

You&apos;re correct!  I was remembering the close status completely wrong.  Ignore my last comment.

&gt; So I would suggest we still treat them all as one status:
&gt; 
&gt; * It defaults to Success;
&gt; * When notifyStatusReceived() comes, it changes to what is in it;
&gt; * When notifyClose() comes, if it is Success, leave the status untouched, but if it is anything other than Success, then switch to new status.
&gt; * when NetworkJob::status() is called, we always return what is saved in m_status.

So that would just change line 483 in the patch to:

m_status = isError(status) ? status : m_status;

Sounds good to me!  I believe that would fix the StatusTooManyRedirects case: m_extendedStatus gets set right before that line, and then gets overwritten with another error if one happens (which is fine, the close error is more important.)

Except - wait a minute.  How does this patch even apply?  There is not &quot;m_status&quot; in NetworkJob.cpp, only m_extendedStatus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668163</commentid>
    <comment_count>8</comment_count>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-07-12 13:43:41 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; 
&gt; Except - wait a minute.  How does this patch even apply?  There is not &quot;m_status&quot; in NetworkJob.cpp, only m_extendedStatus.

m_status is a FilterStream protected member variable added in platform patch, so it should be fine.

Thought personally I would prefer not adding m_status to FilterStream, I think it should be just added to stream that maintain a status, like NetworkJob, DownloadFilterStream, or whatever stream that wants to maintain a status for the whole stream chain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668761</commentid>
    <comment_count>9</comment_count>
    <who name="Mary Wu">mawu</who>
    <bug_when>2012-07-13 02:23:20 -0700</bug_when>
    <thetext>&gt; So that would just change line 483 in the patch to:

&gt; m_status = isError(status) ? status : m_status;

Thanks for review, Joe. So with this change the m_status will possible be HTTP code or PlatformStatus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668808</commentid>
    <comment_count>10</comment_count>
      <attachid>152204</attachid>
    <who name="Mary Wu">mawu</who>
    <bug_when>2012-07-13 03:14:21 -0700</bug_when>
    <thetext>Created attachment 152204
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669006</commentid>
    <comment_count>11</comment_count>
      <attachid>152204</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2012-07-13 07:27:38 -0700</bug_when>
    <thetext>Comment on attachment 152204
Patch

Internally reviewed by myself and Lyon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669024</commentid>
    <comment_count>12</comment_count>
      <attachid>152204</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-07-13 07:44:56 -0700</bug_when>
    <thetext>Comment on attachment 152204
Patch

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

Looks good.

&gt; Source/WebCore/platform/network/blackberry/NetworkJob.h:83
&gt; +    virtual int status() { return m_extendedStatusCode; }

Could be const.

&gt; Source/WebCore/platform/network/blackberry/SocketStreamHandle.h:60
&gt; +    virtual int status() { return m_status; }

Could be const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669038</commentid>
    <comment_count>13</comment_count>
      <attachid>152264</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2012-07-13 08:04:47 -0700</bug_when>
    <thetext>Created attachment 152264
patch with const

Good catch. I&apos;ll go ahead and make that change since Mary&apos;s in Beijing and there&apos;s no sense in waiting another 12 hours.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669044</commentid>
    <comment_count>14</comment_count>
      <attachid>152264</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-07-13 08:08:08 -0700</bug_when>
    <thetext>Comment on attachment 152264
patch with const

Thanks Joe, looks fine now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669217</commentid>
    <comment_count>15</comment_count>
      <attachid>152264</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-13 10:40:13 -0700</bug_when>
    <thetext>Comment on attachment 152264
patch with const

Clearing flags on attachment: 152264

Committed r122604: &lt;http://trac.webkit.org/changeset/122604&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669218</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-13 10:40:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151684</attachid>
            <date>2012-07-11 04:59:45 -0700</date>
            <delta_ts>2012-07-13 03:14:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90974-20120711195942.patch</filename>
            <type>text/plain</type>
            <size>2656</size>
            <attacher name="Mary Wu">mawu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMDg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzYxYzhhYmMyMzM2MmNm
ZmY2ZTQwNTVlNzJjN2E1ZTJlYjk3NWUyYy4uMTEyMDFmZTlmMjVlNzc4MDcwZWIwZTljMTNhNDUw
OTM5OWI4NDRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA3LTExICBNYXJ5
IFd1ICA8bWFyeS53dUB0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgW0JsYWNrQmVycnld
IFNvbWUgc21hbGwgY2hhbmdlcyBpbiBuZXR3b3JrIGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDk3NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDEuIFNldCBzdGF0dXMgd2hlbiBOZXR3b3JrSm9i
IGNsb3NlZCBzbyB0aGF0IGl0cyB3cmFwcGVkIHN0cmVhbQorICAgICAgICBjYW4gYWxzbyBxdWVy
eSB0aGUgcmVzdWx0IGFmdGVyIE5ldHdvcmtKb2IgaGFuZGxpbmcgcmVkaXJlY3QvCisgICAgICAg
IGF1dGhlbnRpY2F0ZSBldGMuCisgICAgICAgIDIuIHBhc3MgZG93bmxvYWQgYXR0cmlidXRlIHRv
IE5ldHdvcmtSZXF1ZXN0LgorICAgICAgICBSSU0gUFIjIDE3MTU1NQorCisgICAgICAgIFJldmll
d2VkIGludGVybmFsbHkgYnkgTHlvbiBDaGVuLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pv
Yjo6aGFuZGxlTm90aWZ5Q2xvc2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2ti
ZXJyeS9SZXNvdXJjZVJlcXVlc3RCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBs
YXRmb3JtVGFyZ2V0VHlwZUZvclJlcXVlc3QpOgorCiAyMDEyLTA3LTA4ICBTaGVyaWZmIEJvdCAg
PHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMTIxOTY4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwCmluZGV4IGM2NGZkYzhhYWNjNzIwNTM3
YTdhNTZlYTk4NWEwN2EzMzhhYWZmYmUuLmQ1N2I2MjRkOWIxODBkMGIzNmNkYmUzZTNmNDQ4OTAy
ZTczNmRhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9OZXR3b3JrSm9iLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5jcHAKQEAgLTQ4MCw2ICs0ODAsNyBAQCB2b2lkIE5l
dHdvcmtKb2I6OmhhbmRsZU5vdGlmeUNsb3NlKGludCBzdGF0dXMpCiAKICAgICAgICAgICAgIHNl
bmRSZXNwb25zZUlmTmVlZGVkKCk7CiAgICAgICAgICAgICBpZiAoaXNDbGllbnRBdmFpbGFibGUo
KSkgeworICAgICAgICAgICAgICAgIG1fc3RhdHVzID0gaXNFcnJvcihtX2V4dGVuZGVkU3RhdHVz
Q29kZSkgPyBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6RmlsdGVyU3RyZWFtOjpTdGF0dXNOZXR3b3Jr
RXJyb3I6IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpGaWx0ZXJTdHJlYW06OlN0YXR1c1N1Y2Nlc3M7
CiAKICAgICAgICAgICAgICAgICBSZWN1cnNpb25HdWFyZCBndWFyZChtX2NhbGxpbmdDbGllbnQp
OwogICAgICAgICAgICAgICAgIGlmIChzaG91bGROb3RpZnlDbGllbnRGYWlsZWQoKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291
cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwCmluZGV4IDVjZmZkZTAz
OWRkZDNjMDI1M2FmYmEzNTUyODkxNWNiMGYzZWMxOWIuLjNjNDM5ZDkxZmYzZmE3NjA5MzE4OGNi
MjJhYTkxNGM0N2VlNTQ1MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3RCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0Qmxh
Y2tCZXJyeS5jcHAKQEAgLTU1LDYgKzU1LDggQEAgc3RhdGljIGlubGluZSBOZXR3b3JrUmVxdWVz
dDo6VGFyZ2V0VHlwZSBwbGF0Zm9ybVRhcmdldFR5cGVGb3JSZXF1ZXN0KGNvbnN0IFJlc28KIHsK
ICAgICBpZiAocmVxdWVzdC5pc1hNTEhUVFBSZXF1ZXN0KCkpCiAgICAgICAgIHJldHVybiBOZXR3
b3JrUmVxdWVzdDo6VGFyZ2V0SXNYTUxIVFRQUmVxdWVzdDsKKyAgICBpZiAocmVxdWVzdC5mb3Jj
ZURvd25sb2FkKCkpCisgICAgICAgIHJldHVybiBOZXR3b3JrUmVxdWVzdDo6VGFyZ2V0SXNEb3du
bG9hZDsKIAogICAgIHN3aXRjaCAocmVxdWVzdC50YXJnZXRUeXBlKCkpIHsKICAgICBjYXNlIFJl
c291cmNlUmVxdWVzdDo6VGFyZ2V0SXNNYWluRnJhbWU6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152204</attachid>
            <date>2012-07-13 03:14:21 -0700</date>
            <delta_ts>2012-07-13 08:04:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90974-20120713181419.patch</filename>
            <type>text/plain</type>
            <size>5981</size>
            <attacher name="Mary Wu">mawu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMDg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzYxYzhhYmMyMzM2MmNm
ZmY2ZTQwNTVlNzJjN2E1ZTJlYjk3NWUyYy4uMjQ5NWM3NDliZThjNzU0ODA3YzFmNjgzOGVmMWZk
MGJmNDkxZTU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA3LTEzICBNYXJ5
IFd1ICA8bWFyeS53dUB0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgW0JsYWNrQmVycnld
IFNvbWUgc21hbGwgY2hhbmdlcyBpbiBuZXR3b3JrIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwOTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMS4gU2V0IHN0YXR1cyBpbiBOZXR3b3JrSm9iL1Nv
Y2tldFN0cmVhbUhhbmRsZUJsYWNrQmVycnkgc28gdGhhdAorICAgICAgICBpdHMgd3JhcHBlZCBz
dHJlYW0gY2FuIGFsc28gcXVlcnkgdGhlIHN0cmVhbSByZXN1bHQuCisgICAgICAgIDIuIHBhc3Mg
ZG93bmxvYWQgYXR0cmlidXRlIHRvIE5ldHdvcmtSZXF1ZXN0LgorCisgICAgICAgIFJJTSBQUiMg
MTcxNTU1CisgICAgICAgIFJldmlld2VkIGludGVybmFsbHkgYnkgTHlvbiBDaGVuIGFuZCBKb2Ug
TWFzb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pv
Yi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrSm9iOjpoYW5kbGVOb3RpZnlDbG9zZSk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtKb2I6OnN0YXR1cyk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6cGxhdGZvcm1UYXJnZXRUeXBlRm9yUmVxdWVzdCk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1NvY2tldFN0cmVhbUhhbmRsZS5oOgorICAgICAgICAo
V2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlOjpzdGF0dXMpOgorICAgICAgICAoU29ja2V0U3Ry
ZWFtSGFuZGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvU29ja2V0
U3RyZWFtSGFuZGxlQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJl
YW1IYW5kbGU6Om5vdGlmeVN0YXR1c1JlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tl
dFN0cmVhbUhhbmRsZTo6bm90aWZ5Q2xvc2UpOgorCiAyMDEyLTA3LTA4ICBTaGVyaWZmIEJvdCAg
PHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMTIxOTY4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwCmluZGV4IGM2NGZkYzhhYWNjNzIwNTM3
YTdhNTZlYTk4NWEwN2EzMzhhYWZmYmUuLjdjZGU3YTAwYjE5MTU5OTk0YjAyYzYzMjE1NzA2OWY0
YTIyY2JkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9OZXR3b3JrSm9iLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5jcHAKQEAgLTQ4MCw3ICs0ODAsOCBAQCB2b2lkIE5l
dHdvcmtKb2I6OmhhbmRsZU5vdGlmeUNsb3NlKGludCBzdGF0dXMpCiAKICAgICAgICAgICAgIHNl
bmRSZXNwb25zZUlmTmVlZGVkKCk7CiAgICAgICAgICAgICBpZiAoaXNDbGllbnRBdmFpbGFibGUo
KSkgewotCisgICAgICAgICAgICAgICAgaWYgKGlzRXJyb3Ioc3RhdHVzKSkKKyAgICAgICAgICAg
ICAgICAgICAgbV9leHRlbmRlZFN0YXR1c0NvZGUgPSBzdGF0dXM7CiAgICAgICAgICAgICAgICAg
UmVjdXJzaW9uR3VhcmQgZ3VhcmQobV9jYWxsaW5nQ2xpZW50KTsKICAgICAgICAgICAgICAgICBp
ZiAoc2hvdWxkTm90aWZ5Q2xpZW50RmFpbGVkKCkpIHsKICAgICAgICAgICAgICAgICAgICAgU3Ry
aW5nIGRvbWFpbiA9IG1fZXh0ZW5kZWRTdGF0dXNDb2RlIDwgMCA/IFJlc291cmNlRXJyb3I6OnBs
YXRmb3JtRXJyb3JEb21haW4gOiBSZXNvdXJjZUVycm9yOjpodHRwRXJyb3JEb21haW47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29y
a0pvYi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdv
cmtKb2IuaAppbmRleCBhOWE3Yjg4MWJmNDQ3NWVlNzBlYWNhYzYxYmJlZDU0NDE4ODc5ZDliLi43
ZTY1ZTFhMjI4YTg0NzA1ODI3ZmQyZTdmZGIwMWFlMDVmNzg1N2NjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmgK
QEAgLTgwLDYgKzgwLDcgQEAgcHVibGljOgogICAgIHZvaWQgaGFuZGxlTm90aWZ5RGF0YVNlbnQo
dW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0
ZXNUb0JlU2VudCk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUNsb3NlKGludCBzdGF0dXMpOwog
ICAgIHZvaWQgaGFuZGxlTm90aWZ5Q2xvc2UoaW50IHN0YXR1cyk7CisgICAgdmlydHVhbCBpbnQg
c3RhdHVzKCkgeyByZXR1cm4gbV9leHRlbmRlZFN0YXR1c0NvZGU7IH0KIAogcHJpdmF0ZToKICAg
ICBib29sIGlzQ2xpZW50QXZhaWxhYmxlKCkgY29uc3QgeyByZXR1cm4gIW1fY2FuY2VsbGVkICYm
IG1faGFuZGxlICYmIG1faGFuZGxlLT5jbGllbnQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNrQmVy
cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291
cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwCmluZGV4IDVjZmZkZTAzOWRkZDNjMDI1M2FmYmEzNTUy
ODkxNWNiMGYzZWMxOWIuLjNjNDM5ZDkxZmYzZmE3NjA5MzE4OGNiMjJhYTkxNGM0N2VlNTQ1Mjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9S
ZXNvdXJjZVJlcXVlc3RCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0QmxhY2tCZXJyeS5jcHAKQEAgLTU1
LDYgKzU1LDggQEAgc3RhdGljIGlubGluZSBOZXR3b3JrUmVxdWVzdDo6VGFyZ2V0VHlwZSBwbGF0
Zm9ybVRhcmdldFR5cGVGb3JSZXF1ZXN0KGNvbnN0IFJlc28KIHsKICAgICBpZiAocmVxdWVzdC5p
c1hNTEhUVFBSZXF1ZXN0KCkpCiAgICAgICAgIHJldHVybiBOZXR3b3JrUmVxdWVzdDo6VGFyZ2V0
SXNYTUxIVFRQUmVxdWVzdDsKKyAgICBpZiAocmVxdWVzdC5mb3JjZURvd25sb2FkKCkpCisgICAg
ICAgIHJldHVybiBOZXR3b3JrUmVxdWVzdDo6VGFyZ2V0SXNEb3dubG9hZDsKIAogICAgIHN3aXRj
aCAocmVxdWVzdC50YXJnZXRUeXBlKCkpIHsKICAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6VGFy
Z2V0SXNNYWluRnJhbWU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvU29ja2V0U3RyZWFtSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvU29ja2V0U3RyZWFtSGFuZGxlLmgKaW5kZXggNzNiMTE4
ZmVmMjc0NWZmOTJiNjFiYjM3NTZmMzJiYjBlZjAzNTVmMi4uMTVhNDkwZjU0Zjc4OTk2MDViMzYy
YTA0NDI2NWYxNGJmNTQ2OWM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9ibGFja2JlcnJ5L1NvY2tldFN0cmVhbUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9Tb2NrZXRTdHJlYW1IYW5kbGUuaApAQCAt
NTcsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeURhdGFSZWNlaXZl
ZChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya0J1ZmZlciopOwogICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlSZWFkeVRvU2VuZERhdGEoKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q2xvc2Uo
aW50IHN0YXR1cyk7CisgICAgdmlydHVhbCBpbnQgc3RhdHVzKCkgeyByZXR1cm4gbV9zdGF0dXM7
IH0KIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgaW50IHBsYXRmb3JtU2VuZChjb25zdCBjaGFy
KiBkYXRhLCBpbnQgbGVuZ3RoKTsKQEAgLTY2LDYgKzY3LDcgQEAgcHJpdmF0ZToKICAgICBTb2Nr
ZXRTdHJlYW1IYW5kbGUoY29uc3QgU3RyaW5nJiBncm91cE5hbWUsIGNvbnN0IEtVUkwmLCBTb2Nr
ZXRTdHJlYW1IYW5kbGVDbGllbnQqKTsKIAogICAgIE93blB0cjxCbGFja0JlcnJ5OjpQbGF0Zm9y
bTo6RmlsdGVyU3RyZWFtPiBtX3NvY2tldFN0cmVhbTsKKyAgICBpbnQgbV9zdGF0dXM7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvU29ja2V0U3RyZWFtSGFuZGxlQmxhY2tCZXJyeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvU29ja2V0U3RyZWFt
SGFuZGxlQmxhY2tCZXJyeS5jcHAKaW5kZXggMGZkMGU2OTYxZWNlZDM2NzcyZTQ1NjA1Y2U3YWFh
OGQ0YzgzNWM4Ni4uOTBlZDUyOGE3ZmQ1ZDU3OTc4OTIyYjE1NGY3NDFiOGRlYTg3MTJkNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1NvY2tl
dFN0cmVhbUhhbmRsZUJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvYmxhY2tiZXJyeS9Tb2NrZXRTdHJlYW1IYW5kbGVCbGFja0JlcnJ5LmNwcApAQCAt
MTA1LDcgKzEwNSw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlOjpub3RpZnlTdGF0dXNSZWNl
aXZlZChpbnQgc3RhdHVzLCBjb25zdCBjaGFyKiBtZXNzYWdlKQogCiAgICAgLy8gVGhlIGNsaWVu
dCBjYW4gY2xvc2UgdGhlIGhhbmRsZSwgcG90ZW50aWFsbHkgcmVtb3ZpbmcgdGhlIGxhc3QgcmVm
ZXJlbmNlLgogICAgIFJlZlB0cjxTb2NrZXRTdHJlYW1IYW5kbGU+IHByb3RlY3QodGhpcyk7Ci0K
KyAgICBtX3N0YXR1cyA9IHN0YXR1czsKICAgICBpZiAoRmlsdGVyU3RyZWFtOjpTdGF0dXNTdWNj
ZXNzICE9IHN0YXR1cykKICAgICAgICAgbV9jbGllbnQtPmRpZEZhaWxTb2NrZXRTdHJlYW0odGhp
cywgU29ja2V0U3RyZWFtRXJyb3Ioc3RhdHVzKSk7CiAgICAgZWxzZSB7CkBAIC0xMzUsNiArMTM1
LDkgQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGU6Om5vdGlmeUNsb3NlKGludCBzdGF0dXMpCiAg
ICAgLy8gVGhlIGNsaWVudCBjYW4gY2xvc2UgdGhlIGhhbmRsZSwgcG90ZW50aWFsbHkgcmVtb3Zp
bmcgdGhlIGxhc3QgcmVmZXJlbmNlLgogICAgIFJlZlB0cjxTb2NrZXRTdHJlYW1IYW5kbGU+IHBy
b3RlY3QodGhpcyk7CiAKKyAgICBpZiAoc3RhdHVzIDwgMCB8fCAoNDAwIDw9IHN0YXR1cyAmJiBz
dGF0dXMgPCA2MDApKQorICAgICAgICBtX3N0YXR1cyA9IHN0YXR1czsKKwogICAgIGlmIChGaWx0
ZXJTdHJlYW06OlN0YXR1c1N1Y2Nlc3MgIT0gc3RhdHVzKQogICAgICAgICBtX2NsaWVudC0+ZGlk
RmFpbFNvY2tldFN0cmVhbSh0aGlzLCBTb2NrZXRTdHJlYW1FcnJvcihzdGF0dXMpKTsKIAo=
</data>
<flag name="review"
          id="160837"
          type_id="1"
          status="+"
          setter="rwlbuis"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152264</attachid>
            <date>2012-07-13 08:04:47 -0700</date>
            <delta_ts>2012-07-13 10:40:13 -0700</delta_ts>
            <desc>patch with const</desc>
            <filename>mary.patch</filename>
            <type>text/plain</type>
            <size>5992</size>
            <attacher name="Joe Mason">joenotcharles</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMDg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzYxYzhhYmMyMzM2MmNm
ZmY2ZTQwNTVlNzJjN2E1ZTJlYjk3NWUyYy4uMjQ5NWM3NDliZThjNzU0ODA3YzFmNjgzOGVmMWZk
MGJmNDkxZTU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA3LTEzICBNYXJ5
IFd1ICA8bWFyeS53dUB0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgW0JsYWNrQmVycnld
IFNvbWUgc21hbGwgY2hhbmdlcyBpbiBuZXR3b3JrIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwOTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMS4gU2V0IHN0YXR1cyBpbiBOZXR3b3JrSm9iL1Nv
Y2tldFN0cmVhbUhhbmRsZUJsYWNrQmVycnkgc28gdGhhdAorICAgICAgICBpdHMgd3JhcHBlZCBz
dHJlYW0gY2FuIGFsc28gcXVlcnkgdGhlIHN0cmVhbSByZXN1bHQuCisgICAgICAgIDIuIHBhc3Mg
ZG93bmxvYWQgYXR0cmlidXRlIHRvIE5ldHdvcmtSZXF1ZXN0LgorCisgICAgICAgIFJJTSBQUiMg
MTcxNTU1CisgICAgICAgIFJldmlld2VkIGludGVybmFsbHkgYnkgTHlvbiBDaGVuIGFuZCBKb2Ug
TWFzb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pv
Yi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrSm9iOjpoYW5kbGVOb3RpZnlDbG9zZSk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtKb2I6OnN0YXR1cyk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6cGxhdGZvcm1UYXJnZXRUeXBlRm9yUmVxdWVzdCk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1NvY2tldFN0cmVhbUhhbmRsZS5oOgorICAgICAgICAo
V2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlOjpzdGF0dXMpOgorICAgICAgICAoU29ja2V0U3Ry
ZWFtSGFuZGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvU29ja2V0
U3RyZWFtSGFuZGxlQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJl
YW1IYW5kbGU6Om5vdGlmeVN0YXR1c1JlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tl
dFN0cmVhbUhhbmRsZTo6bm90aWZ5Q2xvc2UpOgorCiAyMDEyLTA3LTA4ICBTaGVyaWZmIEJvdCAg
PHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMTIxOTY4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwCmluZGV4IGM2NGZkYzhhYWNjNzIwNTM3
YTdhNTZlYTk4NWEwN2EzMzhhYWZmYmUuLjdjZGU3YTAwYjE5MTU5OTk0YjAyYzYzMjE1NzA2OWY0
YTIyY2JkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9OZXR3b3JrSm9iLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5jcHAKQEAgLTQ4MCw3ICs0ODAsOCBAQCB2b2lkIE5l
dHdvcmtKb2I6OmhhbmRsZU5vdGlmeUNsb3NlKGludCBzdGF0dXMpCiAKICAgICAgICAgICAgIHNl
bmRSZXNwb25zZUlmTmVlZGVkKCk7CiAgICAgICAgICAgICBpZiAoaXNDbGllbnRBdmFpbGFibGUo
KSkgewotCisgICAgICAgICAgICAgICAgaWYgKGlzRXJyb3Ioc3RhdHVzKSkKKyAgICAgICAgICAg
ICAgICAgICAgbV9leHRlbmRlZFN0YXR1c0NvZGUgPSBzdGF0dXM7CiAgICAgICAgICAgICAgICAg
UmVjdXJzaW9uR3VhcmQgZ3VhcmQobV9jYWxsaW5nQ2xpZW50KTsKICAgICAgICAgICAgICAgICBp
ZiAoc2hvdWxkTm90aWZ5Q2xpZW50RmFpbGVkKCkpIHsKICAgICAgICAgICAgICAgICAgICAgU3Ry
aW5nIGRvbWFpbiA9IG1fZXh0ZW5kZWRTdGF0dXNDb2RlIDwgMCA/IFJlc291cmNlRXJyb3I6OnBs
YXRmb3JtRXJyb3JEb21haW4gOiBSZXNvdXJjZUVycm9yOjpodHRwRXJyb3JEb21haW47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29y
a0pvYi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdv
cmtKb2IuaAppbmRleCBhOWE3Yjg4MWJmNDQ3NWVlNzBlYWNhYzYxYmJlZDU0NDE4ODc5ZDliLi43
ZTY1ZTFhMjI4YTg0NzA1ODI3ZmQyZTdmZGIwMWFlMDVmNzg1N2NjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmgK
QEAgLTgwLDYgKzgwLDcgQEAgcHVibGljOgogICAgIHZvaWQgaGFuZGxlTm90aWZ5RGF0YVNlbnQo
dW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0
ZXNUb0JlU2VudCk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUNsb3NlKGludCBzdGF0dXMpOwog
ICAgIHZvaWQgaGFuZGxlTm90aWZ5Q2xvc2UoaW50IHN0YXR1cyk7CisgICAgdmlydHVhbCBpbnQg
c3RhdHVzKCkgY29uc3QgeyByZXR1cm4gbV9leHRlbmRlZFN0YXR1c0NvZGU7IH0KIAogcHJpdmF0
ZToKICAgICBib29sIGlzQ2xpZW50QXZhaWxhYmxlKCkgY29uc3QgeyByZXR1cm4gIW1fY2FuY2Vs
bGVkICYmIG1faGFuZGxlICYmIG1faGFuZGxlLT5jbGllbnQoKTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJs
YWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5
L1Jlc291cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwCmluZGV4IDVjZmZkZTAzOWRkZDNjMDI1M2Fm
YmEzNTUyODkxNWNiMGYzZWMxOWIuLjNjNDM5ZDkxZmYzZmE3NjA5MzE4OGNiMjJhYTkxNGM0N2Vl
NTQ1MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2ti
ZXJyeS9SZXNvdXJjZVJlcXVlc3RCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VSZXF1ZXN0QmxhY2tCZXJyeS5jcHAK
QEAgLTU1LDYgKzU1LDggQEAgc3RhdGljIGlubGluZSBOZXR3b3JrUmVxdWVzdDo6VGFyZ2V0VHlw
ZSBwbGF0Zm9ybVRhcmdldFR5cGVGb3JSZXF1ZXN0KGNvbnN0IFJlc28KIHsKICAgICBpZiAocmVx
dWVzdC5pc1hNTEhUVFBSZXF1ZXN0KCkpCiAgICAgICAgIHJldHVybiBOZXR3b3JrUmVxdWVzdDo6
VGFyZ2V0SXNYTUxIVFRQUmVxdWVzdDsKKyAgICBpZiAocmVxdWVzdC5mb3JjZURvd25sb2FkKCkp
CisgICAgICAgIHJldHVybiBOZXR3b3JrUmVxdWVzdDo6VGFyZ2V0SXNEb3dubG9hZDsKIAogICAg
IHN3aXRjaCAocmVxdWVzdC50YXJnZXRUeXBlKCkpIHsKICAgICBjYXNlIFJlc291cmNlUmVxdWVz
dDo6VGFyZ2V0SXNNYWluRnJhbWU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2JsYWNrYmVycnkvU29ja2V0U3RyZWFtSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvU29ja2V0U3RyZWFtSGFuZGxlLmgKaW5kZXgg
NzNiMTE4ZmVmMjc0NWZmOTJiNjFiYjM3NTZmMzJiYjBlZjAzNTVmMi4uMTVhNDkwZjU0Zjc4OTk2
MDViMzYyYTA0NDI2NWYxNGJmNTQ2OWM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1NvY2tldFN0cmVhbUhhbmRsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9Tb2NrZXRTdHJlYW1IYW5kbGUu
aApAQCAtNTcsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeURhdGFS
ZWNlaXZlZChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya0J1ZmZlciopOwogICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlSZWFkeVRvU2VuZERhdGEoKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5
Q2xvc2UoaW50IHN0YXR1cyk7CisgICAgdmlydHVhbCBpbnQgc3RhdHVzKCkgY29uc3QgeyByZXR1
cm4gbV9zdGF0dXM7IH0KIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgaW50IHBsYXRmb3JtU2Vu
ZChjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKTsKQEAgLTY2LDYgKzY3LDcgQEAgcHJpdmF0
ZToKICAgICBTb2NrZXRTdHJlYW1IYW5kbGUoY29uc3QgU3RyaW5nJiBncm91cE5hbWUsIGNvbnN0
IEtVUkwmLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQqKTsKIAogICAgIE93blB0cjxCbGFja0Jl
cnJ5OjpQbGF0Zm9ybTo6RmlsdGVyU3RyZWFtPiBtX3NvY2tldFN0cmVhbTsKKyAgICBpbnQgbV9z
dGF0dXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvU29ja2V0U3RyZWFtSGFuZGxlQmxh
Y2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkv
U29ja2V0U3RyZWFtSGFuZGxlQmxhY2tCZXJyeS5jcHAKaW5kZXggMGZkMGU2OTYxZWNlZDM2Nzcy
ZTQ1NjA1Y2U3YWFhOGQ0YzgzNWM4Ni4uOTBlZDUyOGE3ZmQ1ZDU3OTc4OTIyYjE1NGY3NDFiOGRl
YTg3MTJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFj
a2JlcnJ5L1NvY2tldFN0cmVhbUhhbmRsZUJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9Tb2NrZXRTdHJlYW1IYW5kbGVCbGFja0Jl
cnJ5LmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlOjpub3Rp
ZnlTdGF0dXNSZWNlaXZlZChpbnQgc3RhdHVzLCBjb25zdCBjaGFyKiBtZXNzYWdlKQogCiAgICAg
Ly8gVGhlIGNsaWVudCBjYW4gY2xvc2UgdGhlIGhhbmRsZSwgcG90ZW50aWFsbHkgcmVtb3Zpbmcg
dGhlIGxhc3QgcmVmZXJlbmNlLgogICAgIFJlZlB0cjxTb2NrZXRTdHJlYW1IYW5kbGU+IHByb3Rl
Y3QodGhpcyk7Ci0KKyAgICBtX3N0YXR1cyA9IHN0YXR1czsKICAgICBpZiAoRmlsdGVyU3RyZWFt
OjpTdGF0dXNTdWNjZXNzICE9IHN0YXR1cykKICAgICAgICAgbV9jbGllbnQtPmRpZEZhaWxTb2Nr
ZXRTdHJlYW0odGhpcywgU29ja2V0U3RyZWFtRXJyb3Ioc3RhdHVzKSk7CiAgICAgZWxzZSB7CkBA
IC0xMzUsNiArMTM1LDkgQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGU6Om5vdGlmeUNsb3NlKGlu
dCBzdGF0dXMpCiAgICAgLy8gVGhlIGNsaWVudCBjYW4gY2xvc2UgdGhlIGhhbmRsZSwgcG90ZW50
aWFsbHkgcmVtb3ZpbmcgdGhlIGxhc3QgcmVmZXJlbmNlLgogICAgIFJlZlB0cjxTb2NrZXRTdHJl
YW1IYW5kbGU+IHByb3RlY3QodGhpcyk7CiAKKyAgICBpZiAoc3RhdHVzIDwgMCB8fCAoNDAwIDw9
IHN0YXR1cyAmJiBzdGF0dXMgPCA2MDApKQorICAgICAgICBtX3N0YXR1cyA9IHN0YXR1czsKKwog
ICAgIGlmIChGaWx0ZXJTdHJlYW06OlN0YXR1c1N1Y2Nlc3MgIT0gc3RhdHVzKQogICAgICAgICBt
X2NsaWVudC0+ZGlkRmFpbFNvY2tldFN0cmVhbSh0aGlzLCBTb2NrZXRTdHJlYW1FcnJvcihzdGF0
dXMpKTsKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>