<?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>46070</bug_id>
          
          <creation_ts>2010-09-19 20:14:36 -0700</creation_ts>
          <short_desc>SQLResultSet.rowsAffected not cleared</short_desc>
          <delta_ts>2021-05-17 14:04:47 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=225885</see_also>
          <bug_file_loc>http://www.w3.org/TR/webdatabase/#dom-sqlresultset-rowsaffected</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris K">colanderman</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>abarth</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric</cc>
    
    <cc>haraken</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
    
    <cc>levin</cc>
    
    <cc>s.choi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>281363</commentid>
    <comment_count>0</comment_count>
      <attachid>68047</attachid>
    <who name="Chris K">colanderman</who>
    <bug_when>2010-09-19 20:14:36 -0700</bug_when>
    <thetext>Created attachment 68047
HTML page demonstrating error

After performing an INSERT (for which rowsAffected is correctly set to 1), a subsequent SELECT will also return a result set with rowsAffected set to 1.  rowsAffected should be set to 0 after a SELECT, as explicitly stated in the spec:

&quot;The rowsAffected attribute must return the number of rows that were changed by the SQL statement. If the statement did not affected any rows, then the attribute must return zero. For &quot;SELECT&quot; statements, this returns zero (querying the database doesn&apos;t affect any rows).&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730504</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-28 04:53:35 -0700</bug_when>
    <thetext>I can reproduce the issue with latest WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731527</commentid>
    <comment_count>2</comment_count>
      <attachid>166436</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-01 02:56:40 -0700</bug_when>
    <thetext>Created attachment 166436
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731531</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-01 03:00:33 -0700</bug_when>
    <thetext>sqlite3_changes() documentation:
http://www.sqlite.org/c3ref/changes.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731669</commentid>
    <comment_count>4</comment_count>
      <attachid>166436</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-10-01 07:07:44 -0700</bug_when>
    <thetext>Comment on attachment 166436
Patch

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

&gt; Source/WebCore/platform/sql/SQLiteStatement.cpp:98
&gt; +static inline bool queryMayCauseChanges(const String&amp; query)
&gt; +{
&gt; +    return query.startsWith(&quot;INSERT&quot;, false) || query.startsWith(&quot;UPDATE&quot;, false) || query.startsWith(&quot;DELETE&quot;, false);
&gt; +}

This doesn&apos;t look very robust. What if there&apos;s a whitespace character before the INSERT/UPDATE/DELETE for example?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731705</commentid>
    <comment_count>5</comment_count>
      <attachid>166478</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-01 08:24:20 -0700</bug_when>
    <thetext>Created attachment 166478
Patch

Take Andreas Kling&apos;s feedback into consideration. Thanks for spotting this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731942</commentid>
    <comment_count>6</comment_count>
      <attachid>166478</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-01 13:48:36 -0700</bug_when>
    <thetext>Comment on attachment 166478
Patch

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

&gt; LayoutTests/storage/websql/execute-sql-rowsAffected.html:4
&gt; +function log(message)

why not include the common js tools, like other tests? fast/js/resources/js-test-pre.js

&gt; LayoutTests/storage/websql/execute-sql-rowsAffected.html:23
&gt; +    if (resultSet.rowsAffected == expectedRowsAffected)

use shouldBe(

&gt; Source/WebCore/platform/sql/SQLiteDatabase.cpp:333
&gt; +    // m_lastStatementMayCauseChanges is true if the last statement was
&gt; +    // amongst INSERT, UPDATE, or DELETE. This check is needed because

was either?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732320</commentid>
    <comment_count>7</comment_count>
      <attachid>166615</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-01 23:30:05 -0700</bug_when>
    <thetext>Created attachment 166615
Patch

Take Kenneth&apos;s feedback into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732544</commentid>
    <comment_count>8</comment_count>
      <attachid>166668</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-02 04:46:45 -0700</bug_when>
    <thetext>Created attachment 166668
Patch

Slight Layout test simplification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735123</commentid>
    <comment_count>9</comment_count>
      <attachid>166668</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-04 16:46:06 -0700</bug_when>
    <thetext>Comment on attachment 166668
Patch

This seems super fragile. There must be a better way to do this in SQLite than to check the SQL syntax.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735339</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-04 22:15:11 -0700</bug_when>
    <thetext>Since the issue seems to be with the parsing of the SQL statements, I can propose a second implementation:

It is possible to use sqlite3_total_changes() [1] instead of sqlite3_changes(). I can store the total changes count before each statement and return (sqlite3_total_changes() - m_lastChangesCount) in lastChanges(). With this approach, there would be no need to parse the SQL statements.

I will prepare another patch with this new approach unless someone has a better proposal.

[1] http://www.sqlite.org/c3ref/total_changes.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735376</commentid>
    <comment_count>11</comment_count>
      <attachid>167258</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-04 23:06:29 -0700</bug_when>
    <thetext>Created attachment 167258
Patch (take #2)

This should be more robust in my opinion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736693</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-08 08:19:57 -0700</bug_when>
    <thetext>Any feedback on my new patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738861</commentid>
    <comment_count>13</comment_count>
      <attachid>167258</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-10 05:29:23 -0700</bug_when>
    <thetext>Comment on attachment 167258
Patch (take #2)

Looks simpler and OK to me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738867</commentid>
    <comment_count>14</comment_count>
      <attachid>167258</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-10 05:37:53 -0700</bug_when>
    <thetext>Comment on attachment 167258
Patch (take #2)

Clearing flags on attachment: 167258

Committed r130891: &lt;http://trac.webkit.org/changeset/130891&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738868</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-10 05:37:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>68047</attachid>
            <date>2010-09-19 20:14:36 -0700</date>
            <delta_ts>2012-10-01 23:30:05 -0700</delta_ts>
            <desc>HTML page demonstrating error</desc>
            <filename>rowsAffected.html</filename>
            <type>text/html</type>
            <size>1379</size>
            <attacher name="Chris K">colanderman</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPnJvd3NBZmZlY3RlZDwv
dGl0bGU+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsKICAg
ICAgdmFyIGRiOwogICAgICAKICAgICAgZnVuY3Rpb24gaW5pdGlhbGl6ZSgpIHsKICAgICAgICBk
YiA9IG9wZW5EYXRhYmFzZSgicm93c0FmZmVjdGVkIiwgIjEiLCAicm93c0FmZmVjdGVkIiwgMTAy
NCoxMDI0KTsKICAgICAgICAKICAgICAgICBkYi50cmFuc2FjdGlvbihmdW5jdGlvbiAodCkgewog
ICAgICAgICAgdC5leGVjdXRlU3FsKCJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBmb28oYmFy
IFZBUkNIQVIpIiwgbnVsbCwKICAgICAgICAgICAgZnVuY3Rpb24gKHQsIHJzKSB7CiAgICAgICAg
ICAgICAgaWYgKHJzLnJvd3NBZmZlY3RlZCAhPSAwKQogICAgICAgICAgICAgICAgYWxlcnQoIkNS
RUFURTogcm93c0FmZmVjdGVkIHNob3VsZCBiZSAwLCB3YXMgIiArIHJzLnJvd3NBZmZlY3RlZCk7
CiAgICAgICAgICAgIH0sIGZ1bmN0aW9uICh0LCBlKSB7CiAgICAgICAgICAgICAgYWxlcnQoIkNS
RUFURTogIiArIGUubWVzc2FnZSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgdC5leGVjdXRl
U3FsKCJJTlNFUlQgSU5UTyBmb28gVkFMVUVTICgnYmxhJykiLCBudWxsLAogICAgICAgICAgICBm
dW5jdGlvbiAodCwgcnMpIHsKICAgICAgICAgICAgICBpZiAocnMucm93c0FmZmVjdGVkICE9IDEp
CiAgICAgICAgICAgICAgICBhbGVydCgiSU5TRVJUOiByb3dzQWZmZWN0ZWQgc2hvdWxkIGJlIDEs
IHdhcyAiICsgcnMucm93c0FmZmVjdGVkKTsKICAgICAgICAgICAgfSwgZnVuY3Rpb24gKHQsIGUp
IHsKICAgICAgICAgICAgICBhbGVydCgiSU5TRVJUOiAiICsgZS5tZXNzYWdlKTsKICAgICAgICAg
ICAgfSk7CiAgICAgICAgICB0LmV4ZWN1dGVTcWwoIlNFTEVDVCAqIEZST00gZm9vIiwgbnVsbCwg
ZnVuY3Rpb24gKHQsIHJzKSB7CiAgICAgICAgICAgIGlmIChycy5yb3dzQWZmZWN0ZWQgIT0gMCkK
ICAgICAgICAgICAgICAgIGFsZXJ0KCJTRUxFQ1Q6IHJvd3NBZmZlY3RlZCBzaG91bGQgYmUgMCwg
d2FzICIgKyBycy5yb3dzQWZmZWN0ZWQpOwogICAgICAgICAgICB9LCBmdW5jdGlvbiAodCwgZSkg
ewogICAgICAgICAgICAgIGFsZXJ0KCJTRUxFQ1Q6ICIgKyBlLm1lc3NhZ2UpOwogICAgICAgICAg
ICB9KTsKICAgICAgICAgIHQuZXhlY3V0ZVNxbCgiRFJPUCBUQUJMRSBmb28iKTsKICAgICAgICB9
LCBmdW5jdGlvbiAoZSkge30sIGZ1bmN0aW9uICgpIHt9KTsKICAgICAgfQogICAgLy9dXT48L3Nj
cmlwdD4KICA8L2hlYWQ+CiAgCiAgPGJvZHkgb25sb2FkPSJpbml0aWFsaXplKCkiPgogIDwvYm9k
eT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166436</attachid>
            <date>2012-10-01 02:56:40 -0700</date>
            <delta_ts>2012-10-01 08:24:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>46070_rowsAffected.patch</filename>
            <type>text/plain</type>
            <size>9205</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlYTc4MzNjLi4wNmVlOThkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTAt
MDEgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBTUUxSZXN1bHRTZXQucm93c0FmZmVjdGVkIG5vdCBjbGVhcmVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjA3MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCB0byBjaGVj
ayB0aGF0IFNRTFJlc3VsdFNldC5yb3dzQWZmZWN0ZWQgaXMKKyAgICAgICAgY29ycmVjdCBpbiBl
eGVjdXRlU3FsKCkgc3VjY2VzcyBjYWxsYmFjay4KKworICAgICAgICAqIHN0b3JhZ2Uvd2Vic3Fs
L2V4ZWN1dGUtc3FsLXJvd3NBZmZlY3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHN0b3JhZ2Uvd2Vic3FsL2V4ZWN1dGUtc3FsLXJvd3NBZmZlY3RlZC5odG1sOiBBZGRlZC4KKwog
MjAxMi0xMC0wMSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzMDAwNC4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL2V4ZWN1dGUtc3FsLXJvd3NBZmZlY3RlZC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9leGVjdXRlLXNxbC1yb3dzQWZmZWN0
ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2NGU2
NDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9leGVjdXRl
LXNxbC1yb3dzQWZmZWN0ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVz
dCB0ZXN0cyB0aGF0IFNRTFJlc3VsdFNldC5yb3dzQWZmZWN0ZWQgYXR0cmlidXRlIGlzIGNvcnJl
Y3QgaW4gc3VjY2VzcyBjYWxsYmFjayBmb3IgZXhlY3V0ZVNxbCgpLgorU1VDQ0VTUzogc3RhdGVt
ZW50IGFmZmVjdGVkIDEgcm93cyBhcyBleHBlY3RlZC4KK1NVQ0NFU1M6IHN0YXRlbWVudCBhZmZl
Y3RlZCAxIHJvd3MgYXMgZXhwZWN0ZWQuCitTVUNDRVNTOiBzdGF0ZW1lbnQgYWZmZWN0ZWQgMiBy
b3dzIGFzIGV4cGVjdGVkLgorU1VDQ0VTUzogc3RhdGVtZW50IGFmZmVjdGVkIDAgcm93cyBhcyBl
eHBlY3RlZC4KK1NVQ0NFU1M6IHN0YXRlbWVudCBhZmZlY3RlZCAyIHJvd3MgYXMgZXhwZWN0ZWQu
CitTVUNDRVNTOiBzdGF0ZW1lbnQgYWZmZWN0ZWQgMCByb3dzIGFzIGV4cGVjdGVkLgorU1VDQ0VT
Uzogc3RhdGVtZW50IGFmZmVjdGVkIDAgcm93cyBhcyBleHBlY3RlZC4KK1NVQ0NFU1M6IHRyYW5z
YWN0aW9uIGNvbXBsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJz
cWwvZXhlY3V0ZS1zcWwtcm93c0FmZmVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL3dl
YnNxbC9leGVjdXRlLXNxbC1yb3dzQWZmZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4wNjRhOTdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS93ZWJzcWwvZXhlY3V0ZS1zcWwtcm93c0FmZmVjdGVkLmh0bWwKQEAgLTAsMCArMSw1NSBA
QAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAg
ICBkb2N1bWVudC5ib2R5LmlubmVyVGV4dCArPSBtZXNzYWdlICsgIlxuIjsKK30KKworZnVuY3Rp
b24gdGVybWluYXRlVGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gZXJyb3JDYWxsYmFjayh0
cmFuc2FjdGlvbiwgZXJyb3IpCit7CisgICAgbG9nKCJGQUlMVVJFOiBlcnJvciBjb2RlOiAiICsg
ZXJyb3IuY29kZSArICIsIG1lc3NhZ2U6ICIgKyBlcnJvci5tZXNzYWdlKTsKKyAgICB0ZXJtaW5h
dGVUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrUm93c0FmZmVjdGVkKHRyYW5zYWN0aW9uLCBy
ZXN1bHRTZXQsIGV4cGVjdGVkUm93c0FmZmVjdGVkKQoreworICAgIGlmIChyZXN1bHRTZXQucm93
c0FmZmVjdGVkID09IGV4cGVjdGVkUm93c0FmZmVjdGVkKQorICAgICAgICBsb2coIlNVQ0NFU1M6
IHN0YXRlbWVudCBhZmZlY3RlZCAiICsgcmVzdWx0U2V0LnJvd3NBZmZlY3RlZCArICIgcm93cyBh
cyBleHBlY3RlZC4iKTsKKyAgICBlbHNlCisgICAgICAgIGxvZygiRkFJTFVSRTogc3RhdGVtZW50
IGFmZmVjdGVkIiArIHJlc3VsdFNldC5yb3dzQWZmZWN0ZWQgKyAiIHJvd3MsIGJ1dCBleHBlY3Rl
ZCAiICsgZXhwZWN0ZWRSb3dzQWZmZWN0ZWQgKyAiLiIpOworfQorCitmdW5jdGlvbiBydW5UZXN0
KCkKK3sKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5j
bGVhckFsbERhdGFiYXNlcygpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZGIgPSBvcGVu
RGF0YWJhc2UoIlJvd3NBZmZlY3RlZFRlc3QiLCAiMS4wIiwgIiIsIDEpOworICAgIGRiLnRyYW5z
YWN0aW9uKGZ1bmN0aW9uICh0KSB7CisgICAgICAgIHQuZXhlY3V0ZVNxbCgiQ1JFQVRFIFRBQkxF
IElGIE5PVCBFWElTVFMgUm93c0FmZmVjdGVkVGVzdCAoRm9vIElOVCwgdGV4dCBURVhUKSIpOwor
ICAgICAgICB0LmV4ZWN1dGVTcWwoIklOU0VSVCBJTlRPIFJvd3NBZmZlY3RlZFRlc3QgVkFMVUVT
ICgxLCAnYScpIiwgbnVsbCwgZnVuY3Rpb24odCwgcikgeyBjaGVja1Jvd3NBZmZlY3RlZCh0LCBy
LCAxKTsgfSwgZXJyb3JDYWxsYmFjayk7CisgICAgICAgIHQuZXhlY3V0ZVNxbCgiSU5TRVJUIElO
VE8gUm93c0FmZmVjdGVkVGVzdCBWQUxVRVMgKDIsICdiJykiLCBudWxsLCBmdW5jdGlvbih0LCBy
KSB7IGNoZWNrUm93c0FmZmVjdGVkKHQsIHIsIDEpOyB9LCBlcnJvckNhbGxiYWNrKTsKKyAgICAg
ICAgdC5leGVjdXRlU3FsKCJVUERBVEUgUm93c0FmZmVjdGVkVGVzdCBTRVQgdGV4dCA9ICdjJyIs
IG51bGwsIGZ1bmN0aW9uKHQsIHIpIHsgY2hlY2tSb3dzQWZmZWN0ZWQodCwgciwgMik7IH0sIGVy
cm9yQ2FsbGJhY2spOworICAgICAgICB0LmV4ZWN1dGVTcWwoIlNFTEVDVCAqIEZST00gUm93c0Fm
ZmVjdGVkVGVzdCIsIG51bGwsIGZ1bmN0aW9uKHQsIHIpIHsgY2hlY2tSb3dzQWZmZWN0ZWQodCwg
ciwgMCk7IH0sIGVycm9yQ2FsbGJhY2spOworICAgICAgICB0LmV4ZWN1dGVTcWwoIkRFTEVURSBG
Uk9NIFJvd3NBZmZlY3RlZFRlc3QiLCBudWxsLCBmdW5jdGlvbih0LCByKSB7IGNoZWNrUm93c0Fm
ZmVjdGVkKHQsIHIsIDIpOyB9LCBlcnJvckNhbGxiYWNrKTsKKyAgICAgICAgdC5leGVjdXRlU3Fs
KCJERUxFVEUgRlJPTSBSb3dzQWZmZWN0ZWRUZXN0IiwgbnVsbCwgZnVuY3Rpb24odCwgcikgeyBj
aGVja1Jvd3NBZmZlY3RlZCh0LCByLCAwKTsgfSwgZXJyb3JDYWxsYmFjayk7CisgICAgICAgIHQu
ZXhlY3V0ZVNxbCgiU0VMRUNUICogRlJPTSBSb3dzQWZmZWN0ZWRUZXN0IiwgbnVsbCwgZnVuY3Rp
b24odCwgcikgeyBjaGVja1Jvd3NBZmZlY3RlZCh0LCByLCAwKTsgfSwgZXJyb3JDYWxsYmFjayk7
CisgICAgfSwgZnVuY3Rpb24oZXJyb3IpIHsgZXJyb3JDYWxsYmFjayhudWxsLCBlcnJvcik7IH0s
IGZ1bmN0aW9uICgpIHsgbG9nKCJTVUNDRVNTOiB0cmFuc2FjdGlvbiBjb21wbGV0ZWQuIik7IHRl
cm1pbmF0ZVRlc3QoKTsgfSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpOyI+CitUaGlzIHRlc3QgdGVzdHMgdGhhdCBTUUxSZXN1bHRTZXQucm93c0FmZmVj
dGVkIGF0dHJpYnV0ZSBpcyBjb3JyZWN0IGluIHN1Y2Nlc3MgY2FsbGJhY2sgZm9yIGV4ZWN1dGVT
cWwoKS48YnI+Cis8L2JvZHk+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDQ4MTM2
Mi4uOWI0YjY2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTEwLTAxICBDaHJp
c3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CisKKyAgICAgICAgU1FM
UmVzdWx0U2V0LnJvd3NBZmZlY3RlZCBub3QgY2xlYXJlZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYwNzAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTUUxSZXN1bHRTZXQucm93c0FmZmVjdGVkIGlzIHN1
cHBvc2VkIHRvIHJldHVybiB0aGUgbnVtYmVyCisgICAgICAgIG9mIHJvd3MgdGhhdCB3ZXJlIGNo
YW5nZWQgYnkgdGhlIHN0YXRlbWVudC4gRm9yICJTRUxFQ1QiCisgICAgICAgIHN0YXRlbWVudHMs
IGl0IHNob3VsZCByZXR1cm4gMC4KKworICAgICAgICBIb3dldmVyLCBvdXIgaW1wbGVtZW50YXRp
b24gY3VycmVudGx5IHJlbGllcyBvbiBzcWxpdGUzX2NoYW5nZXMoKQorICAgICAgICB0byBjb21w
dXRlIHRoaXMgdmFsdWUuIHNxbGl0ZTNfY2hhbmdlcygpIHJldHVybnMgdGhlIG51bWJlciBvZgor
ICAgICAgICBkaXJlY3Qgcm93IGNoYW5nZXMgaW4gdGhlIG1vc3QgcmVjZW50IElOU0VSVCwgVVBE
QVRFLCBvciBERUxFVEUKKyAgICAgICAgc3RhdGVtZW50IHdpdGhpbiB0aGUgc2FtZSB0cmlnZ2Vy
IGNvbnRleHQuIFVuZm9ydHVuYXRlbHksIHRoZQorICAgICAgICBtb3N0IHJlY2VudCBJTlNFUlQs
IFVQREFURSwgb3IgREVMRVRFIHN0YXRlbWVudCBtYXkgbm90IGJlIHRoZQorICAgICAgICBsYXN0
IHN0YXRlbWVudC4gQXMgYSBjb25zZXF1ZW5jZSwgaWYgeW91IElOU0VSVCAxIHJvdywgdGhlbgor
ICAgICAgICBkbyBhIFNFTEVDVCwgU1FMUmVzdWx0U2V0LnJvd3NBZmZlY3RlZCB3aWxsIGJlIDEg
Zm9yIGJvdGggdGhlCisgICAgICAgIElOU0VSVCBhbmQgdGhlIFNFTEVDVCBzdGF0ZW1lbnRzLgor
CisgICAgICAgIFRoZSBwcm9wb3NlZCBzb2x1dGlvbiBpcyB0byBjaGVjayBpbiBTUUxpdGVEYXRh
YmFzZTo6bGFzdENoYW5nZXMoKQorICAgICAgICBpZiB0aGUgbGFzdCBzdGF0ZW1lbnQgd2FzIGEg
SU5TRVJULCBVUERBVEUsIG9yIERFTEVURSBzdGF0ZW1lbnQuCisgICAgICAgIEl0IGl0IGlzIHN1
Y2ggc3RhdGVtZW50LCB0aGVuIHdlIGNhbGwgc3FsaXRlM19jaGFuZ2VzKCkgdG8gZ2V0CisgICAg
ICAgIHRoZSBudW1iZXIgb2Ygcm93cyBhZmZlY3RlZCBieSB0aGlzIGxhc3Qgc3RhdGVtZW50LiBJ
ZiBpdCBpcyBub3QKKyAgICAgICAgc3VjaCBzdGF0ZW1lbnQgKGUuZy4gaXQgaXMgYSBTRUxFQ1Qg
c3RhdGVtZW50KSwgdGhlbiB3ZSByZXR1cm4KKyAgICAgICAgMCBkaXJlY3RseSBpbnN0ZWFkIG9m
IGNhbGxpbmcgc3FsaXRlM19jaGFuZ2VzKCkuCisKKyAgICAgICAgVGVzdDogc3RvcmFnZS93ZWJz
cWwvZXhlY3V0ZS1zcWwtcm93c0FmZmVjdGVkLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL3Nx
bC9TUUxpdGVEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6
U1FMaXRlRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OnNldExh
c3RTdGF0ZW1lbnRNYXlDYXVzZUNoYW5nZXMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6bGFzdENoYW5nZXMpOgorICAgICAgICAqIHBsYXRm
b3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oOgorICAgICAgICAoU1FMaXRlRGF0YWJhc2UpOgorICAg
ICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cXVlcnlNYXlDYXVzZUNoYW5nZXMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ6OnN0ZXApOgorCiAyMDEyLTEwLTAxICBTaGVyaWZmIEJv
dCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMTMwMDA0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
c3FsL1NRTGl0ZURhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxp
dGVEYXRhYmFzZS5jcHAKaW5kZXggNjhkMTI0Zi4uZmY5MzllYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCkBAIC01OCw2ICs1OCw3IEBAIFNR
TGl0ZURhdGFiYXNlOjpTUUxpdGVEYXRhYmFzZSgpCiAgICAgLCBtX2ludGVycnVwdGVkKGZhbHNl
KQogICAgICwgbV9vcGVuRXJyb3IoU1FMSVRFX0VSUk9SKQogICAgICwgbV9vcGVuRXJyb3JNZXNz
YWdlKCkKKyAgICAsIG1fbGFzdFN0YXRlbWVudE1heUNhdXNlQ2hhbmdlcyhmYWxzZSkKIHsKIH0K
IApAQCAtMzIxLDEwICszMjIsMjIgQEAgaW50NjRfdCBTUUxpdGVEYXRhYmFzZTo6bGFzdEluc2Vy
dFJvd0lEKCkKICAgICByZXR1cm4gc3FsaXRlM19sYXN0X2luc2VydF9yb3dpZChtX2RiKTsKIH0K
IAordm9pZCBTUUxpdGVEYXRhYmFzZTo6c2V0TGFzdFN0YXRlbWVudE1heUNhdXNlQ2hhbmdlcyhi
b29sIHZhbHVlKQoreworICAgIG1fbGFzdFN0YXRlbWVudE1heUNhdXNlQ2hhbmdlcyA9IHZhbHVl
OworfQorCiBpbnQgU1FMaXRlRGF0YWJhc2U6Omxhc3RDaGFuZ2VzKCkKIHsKLSAgICBpZiAoIW1f
ZGIpCisgICAgLy8gbV9sYXN0U3RhdGVtZW50TWF5Q2F1c2VDaGFuZ2VzIGlzIHRydWUgaWYgdGhl
IGxhc3Qgc3RhdGVtZW50IHdhcworICAgIC8vIGFtb25nc3QgSU5TRVJULCBVUERBVEUsIG9yIERF
TEVURS4gVGhpcyBjaGVjayBpcyBuZWVkZWQgYmVjYXVzZQorICAgIC8vIHNxbGl0ZTNfY2hhbmdl
cygpIHJldHVybnMgdGhlIG51bWJlciBvZiBkaXJlY3Qgcm93IGNoYW5nZXMgaW4gdGhlCisgICAg
Ly8gbW9zdCByZWNlbnQgSU5TRVJULCBVUERBVEUsIG9yIERFTEVURSBzdGF0ZW1lbnQgd2l0aGlu
IHRoZSBzYW1lCisgICAgLy8gdHJpZ2dlciBjb250ZXh0LiBIb3dldmVyLCB3ZSBhcmUgb25seSBp
bnRlcmVzdGVkIGluIHRoZSBjaGFuZ2VzCisgICAgLy8gbWFkZSBieSB0aGUgKmxhc3QqIHN0YXRl
bWVudCBoZXJlLgorICAgIGlmICghbV9kYiB8fCAhbV9sYXN0U3RhdGVtZW50TWF5Q2F1c2VDaGFu
Z2VzKQogICAgICAgICByZXR1cm4gMDsKKwogICAgIHJldHVybiBzcWxpdGUzX2NoYW5nZXMobV9k
Yik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVE
YXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgK
aW5kZXggNWE2NmQ0OS4uNDhjYTNlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3Fs
L1NRTGl0ZURhdGFiYXNlLmgKQEAgLTY1LDYgKzY1LDggQEAgcHVibGljOgogICAgIHZvaWQgaW50
ZXJydXB0KCk7CiAgICAgYm9vbCBpc0ludGVycnVwdGVkKCk7CiAKKyAgICB2b2lkIHNldExhc3RT
dGF0ZW1lbnRNYXlDYXVzZUNoYW5nZXMoYm9vbCB2YWx1ZSk7CisKICAgICBib29sIGV4ZWN1dGVD
b21tYW5kKGNvbnN0IFN0cmluZyYpOwogICAgIGJvb2wgcmV0dXJuc0F0TGVhc3RPbmVSZXN1bHQo
Y29uc3QgU3RyaW5nJik7CiAgICAgCkBAIC0xNTgsNiArMTYwLDggQEAgcHJpdmF0ZToKIAogICAg
IGludCBtX29wZW5FcnJvcjsKICAgICBDU3RyaW5nIG1fb3BlbkVycm9yTWVzc2FnZTsKKworICAg
IGJvb2wgbV9sYXN0U3RhdGVtZW50TWF5Q2F1c2VDaGFuZ2VzOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0
ZVN0YXRlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlU3RhdGVt
ZW50LmNwcAppbmRleCBkMzA4ODcyLi5hZTM0Mzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9zcWwvU1FMaXRlU3RhdGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9zcWwvU1FMaXRlU3RhdGVtZW50LmNwcApAQCAtOTIsNiArOTIsMTEgQEAgaW50IFNR
TGl0ZVN0YXRlbWVudDo6cHJlcGFyZSgpCiAgICAgcmV0dXJuIGVycm9yOwogfQogCitzdGF0aWMg
aW5saW5lIGJvb2wgcXVlcnlNYXlDYXVzZUNoYW5nZXMoY29uc3QgU3RyaW5nJiBxdWVyeSkKK3sK
KyAgICByZXR1cm4gcXVlcnkuc3RhcnRzV2l0aCgiSU5TRVJUIiwgZmFsc2UpIHx8IHF1ZXJ5LnN0
YXJ0c1dpdGgoIlVQREFURSIsIGZhbHNlKSB8fCBxdWVyeS5zdGFydHNXaXRoKCJERUxFVEUiLCBm
YWxzZSk7Cit9CisKIGludCBTUUxpdGVTdGF0ZW1lbnQ6OnN0ZXAoKQogewogICAgIE11dGV4TG9j
a2VyIGRhdGFiYXNlTG9jayhtX2RhdGFiYXNlLmRhdGFiYXNlTXV0ZXgoKSk7CkBAIC0xMDEsNiAr
MTA2LDExIEBAIGludCBTUUxpdGVTdGF0ZW1lbnQ6OnN0ZXAoKQogCiAgICAgaWYgKCFtX3N0YXRl
bWVudCkKICAgICAgICAgcmV0dXJuIFNRTElURV9PSzsKKworICAgIC8vIFRoZSBkYXRhYmFzZSBu
ZWVkcyB0byBrbm93IGlmIHRoZSBsYXN0IHN0YXRlbWVudCBtYXkgY2F1c2Ugcm93IGNoYW5nZXMK
KyAgICAvLyBpbiBvcmRlciB0byBwcm9wZXJseSBjb21wdXRlIGxhc3RDaGFuZ2VzKCkgcmV0dXJu
IHZhbHVlLgorICAgIG1fZGF0YWJhc2Uuc2V0TGFzdFN0YXRlbWVudE1heUNhdXNlQ2hhbmdlcyhx
dWVyeU1heUNhdXNlQ2hhbmdlcyhtX3F1ZXJ5KSk7CisKICAgICBMT0coU1FMRGF0YWJhc2UsICJT
UUwgLSBzdGVwIC0gJXMiLCBtX3F1ZXJ5LmFzY2lpKCkuZGF0YSgpKTsKICAgICBpbnQgZXJyb3Ig
PSBzcWxpdGUzX3N0ZXAobV9zdGF0ZW1lbnQpOwogICAgIGlmIChlcnJvciAhPSBTUUxJVEVfRE9O
RSAmJiBlcnJvciAhPSBTUUxJVEVfUk9XKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166478</attachid>
            <date>2012-10-01 08:24:20 -0700</date>
            <delta_ts>2012-10-01 23:30:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>46070_rowsAffected.patch</filename>
            <type>text/plain</type>
            <size>9359</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1MzM2YmUwLi44YTY5ZDBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTAt
MDEgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBTUUxSZXN1bHRTZXQucm93c0FmZmVjdGVkIG5vdCBjbGVhcmVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjA3MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCB0byBjaGVj
ayB0aGF0IFNRTFJlc3VsdFNldC5yb3dzQWZmZWN0ZWQgaXMKKyAgICAgICAgY29ycmVjdCBpbiBl
eGVjdXRlU3FsKCkgc3VjY2VzcyBjYWxsYmFjay4KKworICAgICAgICAqIHN0b3JhZ2Uvd2Vic3Fs
L2V4ZWN1dGUtc3FsLXJvd3NBZmZlY3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHN0b3JhZ2Uvd2Vic3FsL2V4ZWN1dGUtc3FsLXJvd3NBZmZlY3RlZC5odG1sOiBBZGRlZC4KKwog
MjAxMi0xMC0wMSAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5pay5yb3R0c2NoZXNAaW50ZWwu
Y29tPgogCiAgICAgICAgIFtFRkxdIFJlbW92ZSBFRkwtc3BlY2lmaWMgZXhwZWN0YXRpb25zIGZv
ciBmYXN0L3JlZ2lvbnMvd2Via2l0LW5hbWVkLWZsb3ctKgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS93ZWJzcWwvZXhlY3V0ZS1zcWwtcm93c0FmZmVjdGVkLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL2V4ZWN1dGUtc3FsLXJvd3NBZmZlY3RlZC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjY0ZTY0MQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL2V4ZWN1dGUtc3FsLXJv
d3NBZmZlY3RlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGhpcyB0ZXN0IHRlc3Rz
IHRoYXQgU1FMUmVzdWx0U2V0LnJvd3NBZmZlY3RlZCBhdHRyaWJ1dGUgaXMgY29ycmVjdCBpbiBz
dWNjZXNzIGNhbGxiYWNrIGZvciBleGVjdXRlU3FsKCkuCitTVUNDRVNTOiBzdGF0ZW1lbnQgYWZm
ZWN0ZWQgMSByb3dzIGFzIGV4cGVjdGVkLgorU1VDQ0VTUzogc3RhdGVtZW50IGFmZmVjdGVkIDEg
cm93cyBhcyBleHBlY3RlZC4KK1NVQ0NFU1M6IHN0YXRlbWVudCBhZmZlY3RlZCAyIHJvd3MgYXMg
ZXhwZWN0ZWQuCitTVUNDRVNTOiBzdGF0ZW1lbnQgYWZmZWN0ZWQgMCByb3dzIGFzIGV4cGVjdGVk
LgorU1VDQ0VTUzogc3RhdGVtZW50IGFmZmVjdGVkIDIgcm93cyBhcyBleHBlY3RlZC4KK1NVQ0NF
U1M6IHN0YXRlbWVudCBhZmZlY3RlZCAwIHJvd3MgYXMgZXhwZWN0ZWQuCitTVUNDRVNTOiBzdGF0
ZW1lbnQgYWZmZWN0ZWQgMCByb3dzIGFzIGV4cGVjdGVkLgorU1VDQ0VTUzogdHJhbnNhY3Rpb24g
Y29tcGxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9leGVj
dXRlLXNxbC1yb3dzQWZmZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL2V4
ZWN1dGUtc3FsLXJvd3NBZmZlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjA2NGE5N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL3dl
YnNxbC9leGVjdXRlLXNxbC1yb3dzQWZmZWN0ZWQuaHRtbApAQCAtMCwwICsxLDU1IEBACis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3Vt
ZW50LmJvZHkuaW5uZXJUZXh0ICs9IG1lc3NhZ2UgKyAiXG4iOworfQorCitmdW5jdGlvbiB0ZXJt
aW5hdGVUZXN0KCkKK3sKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBlcnJvckNhbGxiYWNrKHRyYW5zYWN0
aW9uLCBlcnJvcikKK3sKKyAgICBsb2coIkZBSUxVUkU6IGVycm9yIGNvZGU6ICIgKyBlcnJvci5j
b2RlICsgIiwgbWVzc2FnZTogIiArIGVycm9yLm1lc3NhZ2UpOworICAgIHRlcm1pbmF0ZVRlc3Qo
KTsKK30KKworZnVuY3Rpb24gY2hlY2tSb3dzQWZmZWN0ZWQodHJhbnNhY3Rpb24sIHJlc3VsdFNl
dCwgZXhwZWN0ZWRSb3dzQWZmZWN0ZWQpCit7CisgICAgaWYgKHJlc3VsdFNldC5yb3dzQWZmZWN0
ZWQgPT0gZXhwZWN0ZWRSb3dzQWZmZWN0ZWQpCisgICAgICAgIGxvZygiU1VDQ0VTUzogc3RhdGVt
ZW50IGFmZmVjdGVkICIgKyByZXN1bHRTZXQucm93c0FmZmVjdGVkICsgIiByb3dzIGFzIGV4cGVj
dGVkLiIpOworICAgIGVsc2UKKyAgICAgICAgbG9nKCJGQUlMVVJFOiBzdGF0ZW1lbnQgYWZmZWN0
ZWQiICsgcmVzdWx0U2V0LnJvd3NBZmZlY3RlZCArICIgcm93cywgYnV0IGV4cGVjdGVkICIgKyBl
eHBlY3RlZFJvd3NBZmZlY3RlZCArICIuIik7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQorewor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmNsZWFyQWxs
RGF0YWJhc2VzKCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBkYiA9IG9wZW5EYXRhYmFz
ZSgiUm93c0FmZmVjdGVkVGVzdCIsICIxLjAiLCAiIiwgMSk7CisgICAgZGIudHJhbnNhY3Rpb24o
ZnVuY3Rpb24gKHQpIHsKKyAgICAgICAgdC5leGVjdXRlU3FsKCJDUkVBVEUgVEFCTEUgSUYgTk9U
IEVYSVNUUyBSb3dzQWZmZWN0ZWRUZXN0IChGb28gSU5ULCB0ZXh0IFRFWFQpIik7CisgICAgICAg
IHQuZXhlY3V0ZVNxbCgiSU5TRVJUIElOVE8gUm93c0FmZmVjdGVkVGVzdCBWQUxVRVMgKDEsICdh
JykiLCBudWxsLCBmdW5jdGlvbih0LCByKSB7IGNoZWNrUm93c0FmZmVjdGVkKHQsIHIsIDEpOyB9
LCBlcnJvckNhbGxiYWNrKTsKKyAgICAgICAgdC5leGVjdXRlU3FsKCJJTlNFUlQgSU5UTyBSb3dz
QWZmZWN0ZWRUZXN0IFZBTFVFUyAoMiwgJ2InKSIsIG51bGwsIGZ1bmN0aW9uKHQsIHIpIHsgY2hl
Y2tSb3dzQWZmZWN0ZWQodCwgciwgMSk7IH0sIGVycm9yQ2FsbGJhY2spOworICAgICAgICB0LmV4
ZWN1dGVTcWwoIlVQREFURSBSb3dzQWZmZWN0ZWRUZXN0IFNFVCB0ZXh0ID0gJ2MnIiwgbnVsbCwg
ZnVuY3Rpb24odCwgcikgeyBjaGVja1Jvd3NBZmZlY3RlZCh0LCByLCAyKTsgfSwgZXJyb3JDYWxs
YmFjayk7CisgICAgICAgIHQuZXhlY3V0ZVNxbCgiU0VMRUNUICogRlJPTSBSb3dzQWZmZWN0ZWRU
ZXN0IiwgbnVsbCwgZnVuY3Rpb24odCwgcikgeyBjaGVja1Jvd3NBZmZlY3RlZCh0LCByLCAwKTsg
fSwgZXJyb3JDYWxsYmFjayk7CisgICAgICAgIHQuZXhlY3V0ZVNxbCgiREVMRVRFIEZST00gUm93
c0FmZmVjdGVkVGVzdCIsIG51bGwsIGZ1bmN0aW9uKHQsIHIpIHsgY2hlY2tSb3dzQWZmZWN0ZWQo
dCwgciwgMik7IH0sIGVycm9yQ2FsbGJhY2spOworICAgICAgICB0LmV4ZWN1dGVTcWwoIkRFTEVU
RSBGUk9NIFJvd3NBZmZlY3RlZFRlc3QiLCBudWxsLCBmdW5jdGlvbih0LCByKSB7IGNoZWNrUm93
c0FmZmVjdGVkKHQsIHIsIDApOyB9LCBlcnJvckNhbGxiYWNrKTsKKyAgICAgICAgdC5leGVjdXRl
U3FsKCJTRUxFQ1QgKiBGUk9NIFJvd3NBZmZlY3RlZFRlc3QiLCBudWxsLCBmdW5jdGlvbih0LCBy
KSB7IGNoZWNrUm93c0FmZmVjdGVkKHQsIHIsIDApOyB9LCBlcnJvckNhbGxiYWNrKTsKKyAgICB9
LCBmdW5jdGlvbihlcnJvcikgeyBlcnJvckNhbGxiYWNrKG51bGwsIGVycm9yKTsgfSwgZnVuY3Rp
b24gKCkgeyBsb2coIlNVQ0NFU1M6IHRyYW5zYWN0aW9uIGNvbXBsZXRlZC4iKTsgdGVybWluYXRl
VGVzdCgpOyB9KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0
KCk7Ij4KK1RoaXMgdGVzdCB0ZXN0cyB0aGF0IFNRTFJlc3VsdFNldC5yb3dzQWZmZWN0ZWQgYXR0
cmlidXRlIGlzIGNvcnJlY3QgaW4gc3VjY2VzcyBjYWxsYmFjayBmb3IgZXhlY3V0ZVNxbCgpLjxi
cj4KKzwvYm9keT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlMTU1MTYzLi43OGY2
Mjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTItMTAtMDEgIENocmlzdG9waGUg
RHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBTUUxSZXN1bHRT
ZXQucm93c0FmZmVjdGVkIG5vdCBjbGVhcmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NjA3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFNRTFJlc3VsdFNldC5yb3dzQWZmZWN0ZWQgaXMgc3VwcG9zZWQg
dG8gcmV0dXJuIHRoZSBudW1iZXIKKyAgICAgICAgb2Ygcm93cyB0aGF0IHdlcmUgY2hhbmdlZCBi
eSB0aGUgc3RhdGVtZW50LiBGb3IgIlNFTEVDVCIKKyAgICAgICAgc3RhdGVtZW50cywgaXQgc2hv
dWxkIHJldHVybiAwLgorCisgICAgICAgIEhvd2V2ZXIsIG91ciBpbXBsZW1lbnRhdGlvbiBjdXJy
ZW50bHkgcmVsaWVzIG9uIHNxbGl0ZTNfY2hhbmdlcygpCisgICAgICAgIHRvIGNvbXB1dGUgdGhp
cyB2YWx1ZS4gc3FsaXRlM19jaGFuZ2VzKCkgcmV0dXJucyB0aGUgbnVtYmVyIG9mCisgICAgICAg
IGRpcmVjdCByb3cgY2hhbmdlcyBpbiB0aGUgbW9zdCByZWNlbnQgSU5TRVJULCBVUERBVEUsIG9y
IERFTEVURQorICAgICAgICBzdGF0ZW1lbnQgd2l0aGluIHRoZSBzYW1lIHRyaWdnZXIgY29udGV4
dC4gVW5mb3J0dW5hdGVseSwgdGhlCisgICAgICAgIG1vc3QgcmVjZW50IElOU0VSVCwgVVBEQVRF
LCBvciBERUxFVEUgc3RhdGVtZW50IG1heSBub3QgYmUgdGhlCisgICAgICAgIGxhc3Qgc3RhdGVt
ZW50LiBBcyBhIGNvbnNlcXVlbmNlLCBpZiB5b3UgSU5TRVJUIDEgcm93LCB0aGVuCisgICAgICAg
IGRvIGEgU0VMRUNULCBTUUxSZXN1bHRTZXQucm93c0FmZmVjdGVkIHdpbGwgYmUgMSBmb3IgYm90
aCB0aGUKKyAgICAgICAgSU5TRVJUIGFuZCB0aGUgU0VMRUNUIHN0YXRlbWVudHMuCisKKyAgICAg
ICAgVGhlIHByb3Bvc2VkIHNvbHV0aW9uIGlzIHRvIGNoZWNrIGluIFNRTGl0ZURhdGFiYXNlOjps
YXN0Q2hhbmdlcygpCisgICAgICAgIGlmIHRoZSBsYXN0IHN0YXRlbWVudCB3YXMgYSBJTlNFUlQs
IFVQREFURSwgb3IgREVMRVRFIHN0YXRlbWVudC4KKyAgICAgICAgSXQgaXQgaXMgc3VjaCBzdGF0
ZW1lbnQsIHRoZW4gd2UgY2FsbCBzcWxpdGUzX2NoYW5nZXMoKSB0byBnZXQKKyAgICAgICAgdGhl
IG51bWJlciBvZiByb3dzIGFmZmVjdGVkIGJ5IHRoaXMgbGFzdCBzdGF0ZW1lbnQuIElmIGl0IGlz
IG5vdAorICAgICAgICBzdWNoIHN0YXRlbWVudCAoZS5nLiBpdCBpcyBhIFNFTEVDVCBzdGF0ZW1l
bnQpLCB0aGVuIHdlIHJldHVybgorICAgICAgICAwIGRpcmVjdGx5IGluc3RlYWQgb2YgY2FsbGlu
ZyBzcWxpdGUzX2NoYW5nZXMoKS4KKworICAgICAgICBUZXN0OiBzdG9yYWdlL3dlYnNxbC9leGVj
dXRlLXNxbC1yb3dzQWZmZWN0ZWQuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0
ZURhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpTUUxpdGVE
YXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6c2V0TGFzdFN0YXRl
bWVudE1heUNhdXNlQ2hhbmdlcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNRTGl0ZURhdGFiYXNlOjpsYXN0Q2hhbmdlcyk6CisgICAgICAgICogcGxhdGZvcm0vc3Fs
L1NRTGl0ZURhdGFiYXNlLmg6CisgICAgICAgIChTUUxpdGVEYXRhYmFzZSk6CisgICAgICAgICog
cGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpxdWVy
eU1heUNhdXNlQ2hhbmdlcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNRTGl0ZVN0YXRlbWVudDo6c3RlcCk6CisKIDIwMTItMTAtMDEgIFl1cnkgU2VtaWtoYXRza3kg
IDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogcHJvdmlkZSBt
ZW1vcnkgaW5zdHJ1bWVudGF0aW9uIGZvciBIYXNoTWFwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAppbmRleCA2OGQxMjRmLi5mZjkzOWVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKQEAgLTU4
LDYgKzU4LDcgQEAgU1FMaXRlRGF0YWJhc2U6OlNRTGl0ZURhdGFiYXNlKCkKICAgICAsIG1faW50
ZXJydXB0ZWQoZmFsc2UpCiAgICAgLCBtX29wZW5FcnJvcihTUUxJVEVfRVJST1IpCiAgICAgLCBt
X29wZW5FcnJvck1lc3NhZ2UoKQorICAgICwgbV9sYXN0U3RhdGVtZW50TWF5Q2F1c2VDaGFuZ2Vz
KGZhbHNlKQogewogfQogCkBAIC0zMjEsMTAgKzMyMiwyMiBAQCBpbnQ2NF90IFNRTGl0ZURhdGFi
YXNlOjpsYXN0SW5zZXJ0Um93SUQoKQogICAgIHJldHVybiBzcWxpdGUzX2xhc3RfaW5zZXJ0X3Jv
d2lkKG1fZGIpOwogfQogCit2b2lkIFNRTGl0ZURhdGFiYXNlOjpzZXRMYXN0U3RhdGVtZW50TWF5
Q2F1c2VDaGFuZ2VzKGJvb2wgdmFsdWUpCit7CisgICAgbV9sYXN0U3RhdGVtZW50TWF5Q2F1c2VD
aGFuZ2VzID0gdmFsdWU7Cit9CisKIGludCBTUUxpdGVEYXRhYmFzZTo6bGFzdENoYW5nZXMoKQog
ewotICAgIGlmICghbV9kYikKKyAgICAvLyBtX2xhc3RTdGF0ZW1lbnRNYXlDYXVzZUNoYW5nZXMg
aXMgdHJ1ZSBpZiB0aGUgbGFzdCBzdGF0ZW1lbnQgd2FzCisgICAgLy8gYW1vbmdzdCBJTlNFUlQs
IFVQREFURSwgb3IgREVMRVRFLiBUaGlzIGNoZWNrIGlzIG5lZWRlZCBiZWNhdXNlCisgICAgLy8g
c3FsaXRlM19jaGFuZ2VzKCkgcmV0dXJucyB0aGUgbnVtYmVyIG9mIGRpcmVjdCByb3cgY2hhbmdl
cyBpbiB0aGUKKyAgICAvLyBtb3N0IHJlY2VudCBJTlNFUlQsIFVQREFURSwgb3IgREVMRVRFIHN0
YXRlbWVudCB3aXRoaW4gdGhlIHNhbWUKKyAgICAvLyB0cmlnZ2VyIGNvbnRleHQuIEhvd2V2ZXIs
IHdlIGFyZSBvbmx5IGludGVyZXN0ZWQgaW4gdGhlIGNoYW5nZXMKKyAgICAvLyBtYWRlIGJ5IHRo
ZSAqbGFzdCogc3RhdGVtZW50IGhlcmUuCisgICAgaWYgKCFtX2RiIHx8ICFtX2xhc3RTdGF0ZW1l
bnRNYXlDYXVzZUNoYW5nZXMpCiAgICAgICAgIHJldHVybiAwOworCiAgICAgcmV0dXJuIHNxbGl0
ZTNfY2hhbmdlcyhtX2RiKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3FsL1NRTGl0ZURhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FM
aXRlRGF0YWJhc2UuaAppbmRleCA1YTY2ZDQ5Li40OGNhM2ViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaApAQCAtNjUsNiArNjUsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBpbnRlcnJ1cHQoKTsKICAgICBib29sIGlzSW50ZXJydXB0ZWQoKTsKIAorICAg
IHZvaWQgc2V0TGFzdFN0YXRlbWVudE1heUNhdXNlQ2hhbmdlcyhib29sIHZhbHVlKTsKKwogICAg
IGJvb2wgZXhlY3V0ZUNvbW1hbmQoY29uc3QgU3RyaW5nJik7CiAgICAgYm9vbCByZXR1cm5zQXRM
ZWFzdE9uZVJlc3VsdChjb25zdCBTdHJpbmcmKTsKICAgICAKQEAgLTE1OCw2ICsxNjAsOCBAQCBw
cml2YXRlOgogCiAgICAgaW50IG1fb3BlbkVycm9yOwogICAgIENTdHJpbmcgbV9vcGVuRXJyb3JN
ZXNzYWdlOworCisgICAgYm9vbCBtX2xhc3RTdGF0ZW1lbnRNYXlDYXVzZUNoYW5nZXM7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9zcWwvU1FMaXRlU3RhdGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nx
bC9TUUxpdGVTdGF0ZW1lbnQuY3BwCmluZGV4IGQzMDg4NzIuLjMzY2JkMWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCkBAIC05Miw2ICs5
MiwxMiBAQCBpbnQgU1FMaXRlU3RhdGVtZW50OjpwcmVwYXJlKCkKICAgICByZXR1cm4gZXJyb3I7
CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBxdWVyeU1heUNhdXNlQ2hhbmdlcyhjb25zdCBTdHJp
bmcmIHF1ZXJ5KQoreworICAgIGNvbnN0IFN0cmluZyBzdHJpcHBlZFF1ZXJ5ID0gcXVlcnkuc3Ry
aXBXaGl0ZVNwYWNlKCk7CisgICAgcmV0dXJuIHN0cmlwcGVkUXVlcnkuc3RhcnRzV2l0aCgiSU5T
RVJUIiwgZmFsc2UpIHx8IHN0cmlwcGVkUXVlcnkuc3RhcnRzV2l0aCgiVVBEQVRFIiwgZmFsc2Up
IHx8IHN0cmlwcGVkUXVlcnkuc3RhcnRzV2l0aCgiREVMRVRFIiwgZmFsc2UpOworfQorCiBpbnQg
U1FMaXRlU3RhdGVtZW50OjpzdGVwKCkKIHsKICAgICBNdXRleExvY2tlciBkYXRhYmFzZUxvY2so
bV9kYXRhYmFzZS5kYXRhYmFzZU11dGV4KCkpOwpAQCAtMTAxLDYgKzEwNywxMSBAQCBpbnQgU1FM
aXRlU3RhdGVtZW50OjpzdGVwKCkKIAogICAgIGlmICghbV9zdGF0ZW1lbnQpCiAgICAgICAgIHJl
dHVybiBTUUxJVEVfT0s7CisKKyAgICAvLyBUaGUgZGF0YWJhc2UgbmVlZHMgdG8ga25vdyBpZiB0
aGUgbGFzdCBzdGF0ZW1lbnQgbWF5IGNhdXNlIHJvdyBjaGFuZ2VzCisgICAgLy8gaW4gb3JkZXIg
dG8gcHJvcGVybHkgY29tcHV0ZSBsYXN0Q2hhbmdlcygpIHJldHVybiB2YWx1ZS4KKyAgICBtX2Rh
dGFiYXNlLnNldExhc3RTdGF0ZW1lbnRNYXlDYXVzZUNoYW5nZXMocXVlcnlNYXlDYXVzZUNoYW5n
ZXMobV9xdWVyeSkpOworCiAgICAgTE9HKFNRTERhdGFiYXNlLCAiU1FMIC0gc3RlcCAtICVzIiwg
bV9xdWVyeS5hc2NpaSgpLmRhdGEoKSk7CiAgICAgaW50IGVycm9yID0gc3FsaXRlM19zdGVwKG1f
c3RhdGVtZW50KTsKICAgICBpZiAoZXJyb3IgIT0gU1FMSVRFX0RPTkUgJiYgZXJyb3IgIT0gU1FM
SVRFX1JPVykgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166615</attachid>
            <date>2012-10-01 23:30:05 -0700</date>
            <delta_ts>2012-10-02 04:46:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>46070_rowsAffected.patch</filename>
            <type>text/plain</type>
            <size>8986</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhNTRiYzg3Li44YTg3ZjdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTAt
MDEgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBTUUxSZXN1bHRTZXQucm93c0FmZmVjdGVkIG5vdCBjbGVhcmVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjA3MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCB0byBjaGVj
ayB0aGF0IFNRTFJlc3VsdFNldC5yb3dzQWZmZWN0ZWQgaXMKKyAgICAgICAgY29ycmVjdCBpbiBl
eGVjdXRlU3FsKCkgc3VjY2VzcyBjYWxsYmFjay4KKworICAgICAgICAqIHN0b3JhZ2Uvd2Vic3Fs
L2V4ZWN1dGUtc3FsLXJvd3NBZmZlY3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHN0b3JhZ2Uvd2Vic3FsL2V4ZWN1dGUtc3FsLXJvd3NBZmZlY3RlZC5odG1sOiBBZGRlZC4KKwog
MjAxMi0xMC0wMSAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBDYWxlbmRhciBwaWNrZXIgc2hvdWxkIHVzZSB6ZXJvIGFzIGRlZmF1bHQgc3RlcCBiYXNlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9leGVjdXRlLXNxbC1yb3dzQWZm
ZWN0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvZXhlY3V0ZS1z
cWwtcm93c0FmZmVjdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42MzBiMDg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS93
ZWJzcWwvZXhlY3V0ZS1zcWwtcm93c0FmZmVjdGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2
IEBACitUaGlzIHRlc3QgdGVzdHMgdGhhdCBTUUxSZXN1bHRTZXQucm93c0FmZmVjdGVkIGF0dHJp
YnV0ZSBpcyBjb3JyZWN0IGluIHN1Y2Nlc3MgY2FsbGJhY2sgZm9yIGV4ZWN1dGVTcWwoKS4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgcm93c0FmZmVjdGVkIGlzIDEKK1BB
U1Mgcm93c0FmZmVjdGVkIGlzIDEKK1BBU1Mgcm93c0FmZmVjdGVkIGlzIDIKK1BBU1Mgcm93c0Fm
ZmVjdGVkIGlzIDAKK1BBU1Mgcm93c0FmZmVjdGVkIGlzIDIKK1BBU1Mgcm93c0FmZmVjdGVkIGlz
IDAKK1BBU1Mgcm93c0FmZmVjdGVkIGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL3dl
YnNxbC9leGVjdXRlLXNxbC1yb3dzQWZmZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
d2Vic3FsL2V4ZWN1dGUtc3FsLXJvd3NBZmZlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjY1M2QxYTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL3dlYnNxbC9leGVjdXRlLXNxbC1yb3dzQWZmZWN0ZWQuaHRtbApAQCAtMCwwICsxLDQ3
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0IHRlc3RzIHRoYXQgU1FMUmVzdWx0U2V0LnJvd3NBZmZlY3RlZCBhdHRy
aWJ1dGUgaXMgY29ycmVjdCBpbiBzdWNjZXNzIGNhbGxiYWNrIGZvciBleGVjdXRlU3FsKCkuIik7
CisKK2Z1bmN0aW9uIGVycm9yQ2FsbGJhY2sodHJhbnNhY3Rpb24sIGVycm9yKQoreworICAgIHRl
c3RGYWlsZWQoIkRhdGFiYXNlIGVycm9yIGNvZGU6ICIgKyBlcnJvci5jb2RlICsgIiwgbWVzc2Fn
ZTogIiArIGVycm9yLm1lc3NhZ2UpOworfQorCitmdW5jdGlvbiByb3dzQWZmZWN0ZWRTaG91bGRC
ZShyZXN1bHRTZXQsIGV4cGVjdGVkKQoreworICAgIHJvd3NBZmZlY3RlZCA9IHJlc3VsdFNldC5y
b3dzQWZmZWN0ZWQ7CisgICAgc2hvdWxkQmUoInJvd3NBZmZlY3RlZCIsIGV4cGVjdGVkKTsKK30K
KworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICB0ZXN0UnVubmVyLmNsZWFyQWxsRGF0YWJhc2VzKCk7CisKKyAgICBkYiA9IG9wZW5EYXRh
YmFzZSgiUm93c0FmZmVjdGVkVGVzdCIsICIxLjAiLCAiIiwgMSk7CisgICAgZGIudHJhbnNhY3Rp
b24oZnVuY3Rpb24gKHQpIHsKKyAgICAgICAgdC5leGVjdXRlU3FsKCJDUkVBVEUgVEFCTEUgSUYg
Tk9UIEVYSVNUUyBSb3dzQWZmZWN0ZWRUZXN0IChGb28gSU5ULCB0ZXh0IFRFWFQpIik7CisgICAg
ICAgIHQuZXhlY3V0ZVNxbCgiSU5TRVJUIElOVE8gUm93c0FmZmVjdGVkVGVzdCBWQUxVRVMgKDEs
ICdhJykiLCBudWxsLCBmdW5jdGlvbih0LCByKSB7IHJvd3NBZmZlY3RlZFNob3VsZEJlKHIsICIx
Iik7IH0sIGVycm9yQ2FsbGJhY2spOworICAgICAgICB0LmV4ZWN1dGVTcWwoIklOU0VSVCBJTlRP
IFJvd3NBZmZlY3RlZFRlc3QgVkFMVUVTICgyLCAnYicpIiwgbnVsbCwgZnVuY3Rpb24odCwgcikg
eyByb3dzQWZmZWN0ZWRTaG91bGRCZShyLCAiMSIpOyB9LCBlcnJvckNhbGxiYWNrKTsKKyAgICAg
ICAgdC5leGVjdXRlU3FsKCJVUERBVEUgUm93c0FmZmVjdGVkVGVzdCBTRVQgdGV4dCA9ICdjJyIs
IG51bGwsIGZ1bmN0aW9uKHQsIHIpIHsgcm93c0FmZmVjdGVkU2hvdWxkQmUociwgIjIiKTsgfSwg
ZXJyb3JDYWxsYmFjayk7CisgICAgICAgIHQuZXhlY3V0ZVNxbCgiU0VMRUNUICogRlJPTSBSb3dz
QWZmZWN0ZWRUZXN0IiwgbnVsbCwgZnVuY3Rpb24odCwgcikgeyByb3dzQWZmZWN0ZWRTaG91bGRC
ZShyLCAiMCIpOyB9LCBlcnJvckNhbGxiYWNrKTsKKyAgICAgICAgdC5leGVjdXRlU3FsKCJERUxF
VEUgRlJPTSBSb3dzQWZmZWN0ZWRUZXN0IiwgbnVsbCwgZnVuY3Rpb24odCwgcikgeyByb3dzQWZm
ZWN0ZWRTaG91bGRCZShyLCAiMiIpOyB9LCBlcnJvckNhbGxiYWNrKTsKKyAgICAgICAgdC5leGVj
dXRlU3FsKCJERUxFVEUgRlJPTSBSb3dzQWZmZWN0ZWRUZXN0IiwgbnVsbCwgZnVuY3Rpb24odCwg
cikgeyByb3dzQWZmZWN0ZWRTaG91bGRCZShyLCAiMCIpOyB9LCBlcnJvckNhbGxiYWNrKTsKKyAg
ICAgICAgdC5leGVjdXRlU3FsKCJTRUxFQ1QgKiBGUk9NIFJvd3NBZmZlY3RlZFRlc3QiLCBudWxs
LCBmdW5jdGlvbih0LCByKSB7IHJvd3NBZmZlY3RlZFNob3VsZEJlKHIsICIwIik7IH0sIGVycm9y
Q2FsbGJhY2spOworICAgIH0sIGZ1bmN0aW9uKGVycm9yKSB7IGVycm9yQ2FsbGJhY2sobnVsbCwg
ZXJyb3IpOyBmaW5pc2hKU1Rlc3QoKTsgfSwgZmluaXNoSlNUZXN0KTsKK30KKworcnVuVGVzdCgp
Oword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY4YjhlYWUuLjQ3OTVkNjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAxMi0xMC0wMSAgQ2hyaXN0b3BoZSBEdW1leiAg
PGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFNRTFJlc3VsdFNldC5yb3dz
QWZmZWN0ZWQgbm90IGNsZWFyZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ2MDcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU1FMUmVzdWx0U2V0LnJvd3NBZmZlY3RlZCBpcyBzdXBwb3NlZCB0byByZXR1
cm4gdGhlIG51bWJlcgorICAgICAgICBvZiByb3dzIHRoYXQgd2VyZSBjaGFuZ2VkIGJ5IHRoZSBz
dGF0ZW1lbnQuIEZvciAiU0VMRUNUIgorICAgICAgICBzdGF0ZW1lbnRzLCBpdCBzaG91bGQgcmV0
dXJuIDAuCisKKyAgICAgICAgSG93ZXZlciwgb3VyIGltcGxlbWVudGF0aW9uIGN1cnJlbnRseSBy
ZWxpZXMgb24gc3FsaXRlM19jaGFuZ2VzKCkKKyAgICAgICAgdG8gY29tcHV0ZSB0aGlzIHZhbHVl
LiBzcWxpdGUzX2NoYW5nZXMoKSByZXR1cm5zIHRoZSBudW1iZXIgb2YKKyAgICAgICAgZGlyZWN0
IHJvdyBjaGFuZ2VzIGluIHRoZSBtb3N0IHJlY2VudCBJTlNFUlQsIFVQREFURSwgb3IgREVMRVRF
CisgICAgICAgIHN0YXRlbWVudCB3aXRoaW4gdGhlIHNhbWUgdHJpZ2dlciBjb250ZXh0LiBVbmZv
cnR1bmF0ZWx5LCB0aGUKKyAgICAgICAgbW9zdCByZWNlbnQgSU5TRVJULCBVUERBVEUsIG9yIERF
TEVURSBzdGF0ZW1lbnQgbWF5IG5vdCBiZSB0aGUKKyAgICAgICAgbGFzdCBzdGF0ZW1lbnQuIEFz
IGEgY29uc2VxdWVuY2UsIGlmIHlvdSBJTlNFUlQgMSByb3csIHRoZW4KKyAgICAgICAgZG8gYSBT
RUxFQ1QsIFNRTFJlc3VsdFNldC5yb3dzQWZmZWN0ZWQgd2lsbCBiZSAxIGZvciBib3RoIHRoZQor
ICAgICAgICBJTlNFUlQgYW5kIHRoZSBTRUxFQ1Qgc3RhdGVtZW50cy4KKworICAgICAgICBUaGUg
cHJvcG9zZWQgc29sdXRpb24gaXMgdG8gY2hlY2sgaW4gU1FMaXRlRGF0YWJhc2U6Omxhc3RDaGFu
Z2VzKCkKKyAgICAgICAgaWYgdGhlIGxhc3Qgc3RhdGVtZW50IHdhcyBhIElOU0VSVCwgVVBEQVRF
LCBvciBERUxFVEUgc3RhdGVtZW50LgorICAgICAgICBJdCBpdCBpcyBzdWNoIHN0YXRlbWVudCwg
dGhlbiB3ZSBjYWxsIHNxbGl0ZTNfY2hhbmdlcygpIHRvIGdldAorICAgICAgICB0aGUgbnVtYmVy
IG9mIHJvd3MgYWZmZWN0ZWQgYnkgdGhpcyBsYXN0IHN0YXRlbWVudC4gSWYgaXQgaXMgbm90Cisg
ICAgICAgIHN1Y2ggc3RhdGVtZW50IChlLmcuIGl0IGlzIGEgU0VMRUNUIHN0YXRlbWVudCksIHRo
ZW4gd2UgcmV0dXJuCisgICAgICAgIDAgZGlyZWN0bHkgaW5zdGVhZCBvZiBjYWxsaW5nIHNxbGl0
ZTNfY2hhbmdlcygpLgorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2Uvd2Vic3FsL2V4ZWN1dGUtc3Fs
LXJvd3NBZmZlY3RlZC5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OlNRTGl0ZURhdGFiYXNl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpzZXRMYXN0U3RhdGVtZW50TWF5
Q2F1c2VDaGFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U1FM
aXRlRGF0YWJhc2U6Omxhc3RDaGFuZ2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuaDoKKyAgICAgICAgKFNRTGl0ZURhdGFiYXNlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9zcWwvU1FMaXRlU3RhdGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnF1ZXJ5TWF5Q2F1
c2VDaGFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRl
U3RhdGVtZW50OjpzdGVwKToKKwogMjAxMi0xMC0wMSAgRG9uZ3dvbyBKb3NodWEgSW0gIDxkdy5p
bUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBUaGUgc3RhdGljIGZ1bmN0aW9uICdkZWxldGVGaWxl
U3lzdGVtJyBpbiB0aGUgTG9jYWxGaWxlU3lzdGVtLmNwcCBzaG91bGQgaGF2ZSBhbm90aGVyIG5h
bWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcApp
bmRleCA2OGQxMjRmLi44MDE3ZGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nx
bC9TUUxpdGVEYXRhYmFzZS5jcHAKQEAgLTU4LDYgKzU4LDcgQEAgU1FMaXRlRGF0YWJhc2U6OlNR
TGl0ZURhdGFiYXNlKCkKICAgICAsIG1faW50ZXJydXB0ZWQoZmFsc2UpCiAgICAgLCBtX29wZW5F
cnJvcihTUUxJVEVfRVJST1IpCiAgICAgLCBtX29wZW5FcnJvck1lc3NhZ2UoKQorICAgICwgbV9s
YXN0U3RhdGVtZW50TWF5Q2F1c2VDaGFuZ2VzKGZhbHNlKQogewogfQogCkBAIC0zMjEsMTAgKzMy
MiwyMiBAQCBpbnQ2NF90IFNRTGl0ZURhdGFiYXNlOjpsYXN0SW5zZXJ0Um93SUQoKQogICAgIHJl
dHVybiBzcWxpdGUzX2xhc3RfaW5zZXJ0X3Jvd2lkKG1fZGIpOwogfQogCit2b2lkIFNRTGl0ZURh
dGFiYXNlOjpzZXRMYXN0U3RhdGVtZW50TWF5Q2F1c2VDaGFuZ2VzKGJvb2wgdmFsdWUpCit7Cisg
ICAgbV9sYXN0U3RhdGVtZW50TWF5Q2F1c2VDaGFuZ2VzID0gdmFsdWU7Cit9CisKIGludCBTUUxp
dGVEYXRhYmFzZTo6bGFzdENoYW5nZXMoKQogewotICAgIGlmICghbV9kYikKKyAgICAvLyBtX2xh
c3RTdGF0ZW1lbnRNYXlDYXVzZUNoYW5nZXMgaXMgdHJ1ZSBpZiB0aGUgbGFzdCBzdGF0ZW1lbnQg
d2FzCisgICAgLy8gZWl0aGVyIElOU0VSVCwgVVBEQVRFLCBvciBERUxFVEUuIFRoaXMgY2hlY2sg
aXMgbmVlZGVkIGJlY2F1c2UKKyAgICAvLyBzcWxpdGUzX2NoYW5nZXMoKSByZXR1cm5zIHRoZSBu
dW1iZXIgb2YgZGlyZWN0IHJvdyBjaGFuZ2VzIGluIHRoZQorICAgIC8vIG1vc3QgcmVjZW50IElO
U0VSVCwgVVBEQVRFLCBvciBERUxFVEUgc3RhdGVtZW50IHdpdGhpbiB0aGUgc2FtZQorICAgIC8v
IHRyaWdnZXIgY29udGV4dC4gSG93ZXZlciwgd2UgYXJlIG9ubHkgaW50ZXJlc3RlZCBpbiB0aGUg
Y2hhbmdlcworICAgIC8vIG1hZGUgYnkgdGhlICpsYXN0KiBzdGF0ZW1lbnQgaGVyZS4KKyAgICBp
ZiAoIW1fZGIgfHwgIW1fbGFzdFN0YXRlbWVudE1heUNhdXNlQ2hhbmdlcykKICAgICAgICAgcmV0
dXJuIDA7CisKICAgICByZXR1cm4gc3FsaXRlM19jaGFuZ2VzKG1fZGIpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCmluZGV4IDVhNjZkNDkuLjQ4
Y2EzZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRh
YmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5o
CkBAIC02NSw2ICs2NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGludGVycnVwdCgpOwogICAgIGJv
b2wgaXNJbnRlcnJ1cHRlZCgpOwogCisgICAgdm9pZCBzZXRMYXN0U3RhdGVtZW50TWF5Q2F1c2VD
aGFuZ2VzKGJvb2wgdmFsdWUpOworCiAgICAgYm9vbCBleGVjdXRlQ29tbWFuZChjb25zdCBTdHJp
bmcmKTsKICAgICBib29sIHJldHVybnNBdExlYXN0T25lUmVzdWx0KGNvbnN0IFN0cmluZyYpOwog
ICAgIApAQCAtMTU4LDYgKzE2MCw4IEBAIHByaXZhdGU6CiAKICAgICBpbnQgbV9vcGVuRXJyb3I7
CiAgICAgQ1N0cmluZyBtX29wZW5FcnJvck1lc3NhZ2U7CisKKyAgICBib29sIG1fbGFzdFN0YXRl
bWVudE1heUNhdXNlQ2hhbmdlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHAKaW5kZXggZDMw
ODg3Mi4uMzNjYmQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NR
TGl0ZVN0YXRlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0
ZVN0YXRlbWVudC5jcHAKQEAgLTkyLDYgKzkyLDEyIEBAIGludCBTUUxpdGVTdGF0ZW1lbnQ6OnBy
ZXBhcmUoKQogICAgIHJldHVybiBlcnJvcjsKIH0KIAorc3RhdGljIGlubGluZSBib29sIHF1ZXJ5
TWF5Q2F1c2VDaGFuZ2VzKGNvbnN0IFN0cmluZyYgcXVlcnkpCit7CisgICAgY29uc3QgU3RyaW5n
IHN0cmlwcGVkUXVlcnkgPSBxdWVyeS5zdHJpcFdoaXRlU3BhY2UoKTsKKyAgICByZXR1cm4gc3Ry
aXBwZWRRdWVyeS5zdGFydHNXaXRoKCJJTlNFUlQiLCBmYWxzZSkgfHwgc3RyaXBwZWRRdWVyeS5z
dGFydHNXaXRoKCJVUERBVEUiLCBmYWxzZSkgfHwgc3RyaXBwZWRRdWVyeS5zdGFydHNXaXRoKCJE
RUxFVEUiLCBmYWxzZSk7Cit9CisKIGludCBTUUxpdGVTdGF0ZW1lbnQ6OnN0ZXAoKQogewogICAg
IE11dGV4TG9ja2VyIGRhdGFiYXNlTG9jayhtX2RhdGFiYXNlLmRhdGFiYXNlTXV0ZXgoKSk7CkBA
IC0xMDEsNiArMTA3LDExIEBAIGludCBTUUxpdGVTdGF0ZW1lbnQ6OnN0ZXAoKQogCiAgICAgaWYg
KCFtX3N0YXRlbWVudCkKICAgICAgICAgcmV0dXJuIFNRTElURV9PSzsKKworICAgIC8vIFRoZSBk
YXRhYmFzZSBuZWVkcyB0byBrbm93IGlmIHRoZSBsYXN0IHN0YXRlbWVudCBtYXkgY2F1c2Ugcm93
IGNoYW5nZXMKKyAgICAvLyBpbiBvcmRlciB0byBwcm9wZXJseSBjb21wdXRlIGxhc3RDaGFuZ2Vz
KCkgcmV0dXJuIHZhbHVlLgorICAgIG1fZGF0YWJhc2Uuc2V0TGFzdFN0YXRlbWVudE1heUNhdXNl
Q2hhbmdlcyhxdWVyeU1heUNhdXNlQ2hhbmdlcyhtX3F1ZXJ5KSk7CisKICAgICBMT0coU1FMRGF0
YWJhc2UsICJTUUwgLSBzdGVwIC0gJXMiLCBtX3F1ZXJ5LmFzY2lpKCkuZGF0YSgpKTsKICAgICBp
bnQgZXJyb3IgPSBzcWxpdGUzX3N0ZXAobV9zdGF0ZW1lbnQpOwogICAgIGlmIChlcnJvciAhPSBT
UUxJVEVfRE9ORSAmJiBlcnJvciAhPSBTUUxJVEVfUk9XKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166668</attachid>
            <date>2012-10-02 04:46:45 -0700</date>
            <delta_ts>2012-10-04 23:06:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>46070_rowsAffected.patch</filename>
            <type>text/plain</type>
            <size>8958</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlM2EyMmJmLi45N2IxNDAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTAt
MDEgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBTUUxSZXN1bHRTZXQucm93c0FmZmVjdGVkIG5vdCBjbGVhcmVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjA3MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCB0byBjaGVj
ayB0aGF0IFNRTFJlc3VsdFNldC5yb3dzQWZmZWN0ZWQgaXMKKyAgICAgICAgY29ycmVjdCBpbiBl
eGVjdXRlU3FsKCkgc3VjY2VzcyBjYWxsYmFjay4KKworICAgICAgICAqIHN0b3JhZ2Uvd2Vic3Fs
L2V4ZWN1dGUtc3FsLXJvd3NBZmZlY3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHN0b3JhZ2Uvd2Vic3FsL2V4ZWN1dGUtc3FsLXJvd3NBZmZlY3RlZC5odG1sOiBBZGRlZC4KKwog
MjAxMi0xMC0wMiAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBNb2RpZmljYXRpb25zIGluIGEgc2hhZG93IHRyZWUgZG9uJ3QgdXBk
YXRlIHRoZSBFbGVtZW50cyBwYW5lbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
d2Vic3FsL2V4ZWN1dGUtc3FsLXJvd3NBZmZlY3RlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL3dlYnNxbC9leGVjdXRlLXNxbC1yb3dzQWZmZWN0ZWQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzMGIwODkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9leGVjdXRlLXNxbC1yb3dzQWZmZWN0ZWQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1RoaXMgdGVzdCB0ZXN0cyB0aGF0IFNRTFJl
c3VsdFNldC5yb3dzQWZmZWN0ZWQgYXR0cmlidXRlIGlzIGNvcnJlY3QgaW4gc3VjY2VzcyBjYWxs
YmFjayBmb3IgZXhlY3V0ZVNxbCgpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyByb3dzQWZmZWN0ZWQgaXMgMQorUEFTUyByb3dzQWZmZWN0ZWQgaXMgMQorUEFTUyByb3dz
QWZmZWN0ZWQgaXMgMgorUEFTUyByb3dzQWZmZWN0ZWQgaXMgMAorUEFTUyByb3dzQWZmZWN0ZWQg
aXMgMgorUEFTUyByb3dzQWZmZWN0ZWQgaXMgMAorUEFTUyByb3dzQWZmZWN0ZWQgaXMgMAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL2V4ZWN1dGUtc3FsLXJvd3NBZmZlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvZXhlY3V0ZS1zcWwtcm93c0FmZmVjdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjRkZjk0NgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL2V4ZWN1dGUtc3FsLXJvd3NB
ZmZlY3RlZC5odG1sCkBAIC0wLDAgKzEsNDUgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB0ZXN0cyB0aGF0
IFNRTFJlc3VsdFNldC5yb3dzQWZmZWN0ZWQgYXR0cmlidXRlIGlzIGNvcnJlY3QgaW4gc3VjY2Vz
cyBjYWxsYmFjayBmb3IgZXhlY3V0ZVNxbCgpLiIpOworCitmdW5jdGlvbiBlcnJvckNhbGxiYWNr
KHRyYW5zYWN0aW9uLCBlcnJvcikKK3sKKyAgICB0ZXN0RmFpbGVkKCJEYXRhYmFzZSBlcnJvciBj
b2RlOiAiICsgZXJyb3IuY29kZSArICIsIG1lc3NhZ2U6ICIgKyBlcnJvci5tZXNzYWdlKTsKK30K
KworZnVuY3Rpb24gcm93c0FmZmVjdGVkU2hvdWxkQmUocmVzdWx0U2V0LCBleHBlY3RlZCkKK3sK
KyAgICByb3dzQWZmZWN0ZWQgPSByZXN1bHRTZXQucm93c0FmZmVjdGVkOworICAgIHNob3VsZEJl
KCJyb3dzQWZmZWN0ZWQiLCBleHBlY3RlZCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQorewor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5jbGVhckFsbERh
dGFiYXNlcygpOworCisgICAgZGIgPSBvcGVuRGF0YWJhc2UoIlJvd3NBZmZlY3RlZFRlc3QiLCAi
MS4wIiwgIiIsIDEpOworICAgIGRiLnRyYW5zYWN0aW9uKGZ1bmN0aW9uICh0KSB7CisgICAgICAg
IHQuZXhlY3V0ZVNxbCgiQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgUm93c0FmZmVjdGVkVGVz
dCAoRm9vIElOVCwgdGV4dCBURVhUKSIpOworICAgICAgICB0LmV4ZWN1dGVTcWwoIklOU0VSVCBJ
TlRPIFJvd3NBZmZlY3RlZFRlc3QgVkFMVUVTICgxLCAnYScpIiwgbnVsbCwgZnVuY3Rpb24odCwg
cikgeyByb3dzQWZmZWN0ZWRTaG91bGRCZShyLCAiMSIpOyB9LCBlcnJvckNhbGxiYWNrKTsKKyAg
ICAgICAgdC5leGVjdXRlU3FsKCJJTlNFUlQgSU5UTyBSb3dzQWZmZWN0ZWRUZXN0IFZBTFVFUyAo
MiwgJ2InKSIsIG51bGwsIGZ1bmN0aW9uKHQsIHIpIHsgcm93c0FmZmVjdGVkU2hvdWxkQmUociwg
IjEiKTsgfSwgZXJyb3JDYWxsYmFjayk7CisgICAgICAgIHQuZXhlY3V0ZVNxbCgiVVBEQVRFIFJv
d3NBZmZlY3RlZFRlc3QgU0VUIHRleHQgPSAnYyciLCBudWxsLCBmdW5jdGlvbih0LCByKSB7IHJv
d3NBZmZlY3RlZFNob3VsZEJlKHIsICIyIik7IH0sIGVycm9yQ2FsbGJhY2spOworICAgICAgICB0
LmV4ZWN1dGVTcWwoIlNFTEVDVCAqIEZST00gUm93c0FmZmVjdGVkVGVzdCIsIG51bGwsIGZ1bmN0
aW9uKHQsIHIpIHsgcm93c0FmZmVjdGVkU2hvdWxkQmUociwgIjAiKTsgfSwgZXJyb3JDYWxsYmFj
ayk7CisgICAgICAgIHQuZXhlY3V0ZVNxbCgiREVMRVRFIEZST00gUm93c0FmZmVjdGVkVGVzdCIs
IG51bGwsIGZ1bmN0aW9uKHQsIHIpIHsgcm93c0FmZmVjdGVkU2hvdWxkQmUociwgIjIiKTsgfSwg
ZXJyb3JDYWxsYmFjayk7CisgICAgICAgIHQuZXhlY3V0ZVNxbCgiREVMRVRFIEZST00gUm93c0Fm
ZmVjdGVkVGVzdCIsIG51bGwsIGZ1bmN0aW9uKHQsIHIpIHsgcm93c0FmZmVjdGVkU2hvdWxkQmUo
ciwgIjAiKTsgfSwgZXJyb3JDYWxsYmFjayk7CisgICAgICAgIHQuZXhlY3V0ZVNxbCgiU0VMRUNU
ICogRlJPTSBSb3dzQWZmZWN0ZWRUZXN0IiwgbnVsbCwgZnVuY3Rpb24odCwgcikgeyByb3dzQWZm
ZWN0ZWRTaG91bGRCZShyLCAiMCIpOyB9LCBlcnJvckNhbGxiYWNrKTsKKyAgICB9LCBmdW5jdGlv
bihlcnJvcikgeyBlcnJvckNhbGxiYWNrKG51bGwsIGVycm9yKTsgZmluaXNoSlNUZXN0KCk7IH0s
IGZpbmlzaEpTVGVzdCk7Cit9CisKK3J1blRlc3QoKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA4MDZlY2Q4Li40NzJjOGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAK
KzIwMTItMTAtMDEgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNv
bT4KKworICAgICAgICBTUUxSZXN1bHRTZXQucm93c0FmZmVjdGVkIG5vdCBjbGVhcmVkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjA3MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNRTFJlc3VsdFNldC5y
b3dzQWZmZWN0ZWQgaXMgc3VwcG9zZWQgdG8gcmV0dXJuIHRoZSBudW1iZXIKKyAgICAgICAgb2Yg
cm93cyB0aGF0IHdlcmUgY2hhbmdlZCBieSB0aGUgc3RhdGVtZW50LiBGb3IgIlNFTEVDVCIKKyAg
ICAgICAgc3RhdGVtZW50cywgaXQgc2hvdWxkIHJldHVybiAwLgorCisgICAgICAgIEhvd2V2ZXIs
IG91ciBpbXBsZW1lbnRhdGlvbiBjdXJyZW50bHkgcmVsaWVzIG9uIHNxbGl0ZTNfY2hhbmdlcygp
CisgICAgICAgIHRvIGNvbXB1dGUgdGhpcyB2YWx1ZS4gc3FsaXRlM19jaGFuZ2VzKCkgcmV0dXJu
cyB0aGUgbnVtYmVyIG9mCisgICAgICAgIGRpcmVjdCByb3cgY2hhbmdlcyBpbiB0aGUgbW9zdCBy
ZWNlbnQgSU5TRVJULCBVUERBVEUsIG9yIERFTEVURQorICAgICAgICBzdGF0ZW1lbnQgd2l0aGlu
IHRoZSBzYW1lIHRyaWdnZXIgY29udGV4dC4gVW5mb3J0dW5hdGVseSwgdGhlCisgICAgICAgIG1v
c3QgcmVjZW50IElOU0VSVCwgVVBEQVRFLCBvciBERUxFVEUgc3RhdGVtZW50IG1heSBub3QgYmUg
dGhlCisgICAgICAgIGxhc3Qgc3RhdGVtZW50LiBBcyBhIGNvbnNlcXVlbmNlLCBpZiB5b3UgSU5T
RVJUIDEgcm93LCB0aGVuCisgICAgICAgIGRvIGEgU0VMRUNULCBTUUxSZXN1bHRTZXQucm93c0Fm
ZmVjdGVkIHdpbGwgYmUgMSBmb3IgYm90aCB0aGUKKyAgICAgICAgSU5TRVJUIGFuZCB0aGUgU0VM
RUNUIHN0YXRlbWVudHMuCisKKyAgICAgICAgVGhlIHByb3Bvc2VkIHNvbHV0aW9uIGlzIHRvIGNo
ZWNrIGluIFNRTGl0ZURhdGFiYXNlOjpsYXN0Q2hhbmdlcygpCisgICAgICAgIGlmIHRoZSBsYXN0
IHN0YXRlbWVudCB3YXMgYSBJTlNFUlQsIFVQREFURSwgb3IgREVMRVRFIHN0YXRlbWVudC4KKyAg
ICAgICAgSXQgaXQgaXMgc3VjaCBzdGF0ZW1lbnQsIHRoZW4gd2UgY2FsbCBzcWxpdGUzX2NoYW5n
ZXMoKSB0byBnZXQKKyAgICAgICAgdGhlIG51bWJlciBvZiByb3dzIGFmZmVjdGVkIGJ5IHRoaXMg
bGFzdCBzdGF0ZW1lbnQuIElmIGl0IGlzIG5vdAorICAgICAgICBzdWNoIHN0YXRlbWVudCAoZS5n
LiBpdCBpcyBhIFNFTEVDVCBzdGF0ZW1lbnQpLCB0aGVuIHdlIHJldHVybgorICAgICAgICAwIGRp
cmVjdGx5IGluc3RlYWQgb2YgY2FsbGluZyBzcWxpdGUzX2NoYW5nZXMoKS4KKworICAgICAgICBU
ZXN0OiBzdG9yYWdlL3dlYnNxbC9leGVjdXRlLXNxbC1yb3dzQWZmZWN0ZWQuaHRtbAorCisgICAg
ICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNRTGl0ZURhdGFiYXNlOjpTUUxpdGVEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxp
dGVEYXRhYmFzZTo6c2V0TGFzdFN0YXRlbWVudE1heUNhdXNlQ2hhbmdlcyk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpsYXN0Q2hhbmdlcyk6
CisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmg6CisgICAgICAgIChTUUxp
dGVEYXRhYmFzZSk6CisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpxdWVyeU1heUNhdXNlQ2hhbmdlcyk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudDo6c3RlcCk6CisKIDIwMTIt
MTAtMDIgIE5pa2l0YSBWYXNpbHlldiAgPG1lQGVsdjFzLnJ1PgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IENTUyBwcm9wZXJ0eSBuYW1lcyBhdXRvY29tcGxldGU6IFN1Z2dlc3QgbW9zdCB1c2Vk
IHJhdGhlciB0aGFuIGFscGhhYmV0aWNhbHkgZmlyc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCmluZGV4IDY4ZDEyNGYuLjgwMTdkZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcApAQCAtNTgs
NiArNTgsNyBAQCBTUUxpdGVEYXRhYmFzZTo6U1FMaXRlRGF0YWJhc2UoKQogICAgICwgbV9pbnRl
cnJ1cHRlZChmYWxzZSkKICAgICAsIG1fb3BlbkVycm9yKFNRTElURV9FUlJPUikKICAgICAsIG1f
b3BlbkVycm9yTWVzc2FnZSgpCisgICAgLCBtX2xhc3RTdGF0ZW1lbnRNYXlDYXVzZUNoYW5nZXMo
ZmFsc2UpCiB7CiB9CiAKQEAgLTMyMSwxMCArMzIyLDIyIEBAIGludDY0X3QgU1FMaXRlRGF0YWJh
c2U6Omxhc3RJbnNlcnRSb3dJRCgpCiAgICAgcmV0dXJuIHNxbGl0ZTNfbGFzdF9pbnNlcnRfcm93
aWQobV9kYik7CiB9CiAKK3ZvaWQgU1FMaXRlRGF0YWJhc2U6OnNldExhc3RTdGF0ZW1lbnRNYXlD
YXVzZUNoYW5nZXMoYm9vbCB2YWx1ZSkKK3sKKyAgICBtX2xhc3RTdGF0ZW1lbnRNYXlDYXVzZUNo
YW5nZXMgPSB2YWx1ZTsKK30KKwogaW50IFNRTGl0ZURhdGFiYXNlOjpsYXN0Q2hhbmdlcygpCiB7
Ci0gICAgaWYgKCFtX2RiKQorICAgIC8vIG1fbGFzdFN0YXRlbWVudE1heUNhdXNlQ2hhbmdlcyBp
cyB0cnVlIGlmIHRoZSBsYXN0IHN0YXRlbWVudCB3YXMKKyAgICAvLyBlaXRoZXIgSU5TRVJULCBV
UERBVEUsIG9yIERFTEVURS4gVGhpcyBjaGVjayBpcyBuZWVkZWQgYmVjYXVzZQorICAgIC8vIHNx
bGl0ZTNfY2hhbmdlcygpIHJldHVybnMgdGhlIG51bWJlciBvZiBkaXJlY3Qgcm93IGNoYW5nZXMg
aW4gdGhlCisgICAgLy8gbW9zdCByZWNlbnQgSU5TRVJULCBVUERBVEUsIG9yIERFTEVURSBzdGF0
ZW1lbnQgd2l0aGluIHRoZSBzYW1lCisgICAgLy8gdHJpZ2dlciBjb250ZXh0LiBIb3dldmVyLCB3
ZSBhcmUgb25seSBpbnRlcmVzdGVkIGluIHRoZSBjaGFuZ2VzCisgICAgLy8gbWFkZSBieSB0aGUg
Kmxhc3QqIHN0YXRlbWVudCBoZXJlLgorICAgIGlmICghbV9kYiB8fCAhbV9sYXN0U3RhdGVtZW50
TWF5Q2F1c2VDaGFuZ2VzKQogICAgICAgICByZXR1cm4gMDsKKwogICAgIHJldHVybiBzcWxpdGUz
X2NoYW5nZXMobV9kYik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3NxbC9TUUxpdGVEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0
ZURhdGFiYXNlLmgKaW5kZXggNWE2NmQ0OS4uNDhjYTNlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKQEAgLTY1LDYgKzY1LDggQEAgcHVibGljOgog
ICAgIHZvaWQgaW50ZXJydXB0KCk7CiAgICAgYm9vbCBpc0ludGVycnVwdGVkKCk7CiAKKyAgICB2
b2lkIHNldExhc3RTdGF0ZW1lbnRNYXlDYXVzZUNoYW5nZXMoYm9vbCB2YWx1ZSk7CisKICAgICBi
b29sIGV4ZWN1dGVDb21tYW5kKGNvbnN0IFN0cmluZyYpOwogICAgIGJvb2wgcmV0dXJuc0F0TGVh
c3RPbmVSZXN1bHQoY29uc3QgU3RyaW5nJik7CiAgICAgCkBAIC0xNTgsNiArMTYwLDggQEAgcHJp
dmF0ZToKIAogICAgIGludCBtX29wZW5FcnJvcjsKICAgICBDU3RyaW5nIG1fb3BlbkVycm9yTWVz
c2FnZTsKKworICAgIGJvb2wgbV9sYXN0U3RhdGVtZW50TWF5Q2F1c2VDaGFuZ2VzOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwv
U1FMaXRlU3RhdGVtZW50LmNwcAppbmRleCBkMzA4ODcyLi4zM2NiZDFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlU3RhdGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlU3RhdGVtZW50LmNwcApAQCAtOTIsNiArOTIs
MTIgQEAgaW50IFNRTGl0ZVN0YXRlbWVudDo6cHJlcGFyZSgpCiAgICAgcmV0dXJuIGVycm9yOwog
fQogCitzdGF0aWMgaW5saW5lIGJvb2wgcXVlcnlNYXlDYXVzZUNoYW5nZXMoY29uc3QgU3RyaW5n
JiBxdWVyeSkKK3sKKyAgICBjb25zdCBTdHJpbmcgc3RyaXBwZWRRdWVyeSA9IHF1ZXJ5LnN0cmlw
V2hpdGVTcGFjZSgpOworICAgIHJldHVybiBzdHJpcHBlZFF1ZXJ5LnN0YXJ0c1dpdGgoIklOU0VS
VCIsIGZhbHNlKSB8fCBzdHJpcHBlZFF1ZXJ5LnN0YXJ0c1dpdGgoIlVQREFURSIsIGZhbHNlKSB8
fCBzdHJpcHBlZFF1ZXJ5LnN0YXJ0c1dpdGgoIkRFTEVURSIsIGZhbHNlKTsKK30KKwogaW50IFNR
TGl0ZVN0YXRlbWVudDo6c3RlcCgpCiB7CiAgICAgTXV0ZXhMb2NrZXIgZGF0YWJhc2VMb2NrKG1f
ZGF0YWJhc2UuZGF0YWJhc2VNdXRleCgpKTsKQEAgLTEwMSw2ICsxMDcsMTEgQEAgaW50IFNRTGl0
ZVN0YXRlbWVudDo6c3RlcCgpCiAKICAgICBpZiAoIW1fc3RhdGVtZW50KQogICAgICAgICByZXR1
cm4gU1FMSVRFX09LOworCisgICAgLy8gVGhlIGRhdGFiYXNlIG5lZWRzIHRvIGtub3cgaWYgdGhl
IGxhc3Qgc3RhdGVtZW50IG1heSBjYXVzZSByb3cgY2hhbmdlcworICAgIC8vIGluIG9yZGVyIHRv
IHByb3Blcmx5IGNvbXB1dGUgbGFzdENoYW5nZXMoKSByZXR1cm4gdmFsdWUuCisgICAgbV9kYXRh
YmFzZS5zZXRMYXN0U3RhdGVtZW50TWF5Q2F1c2VDaGFuZ2VzKHF1ZXJ5TWF5Q2F1c2VDaGFuZ2Vz
KG1fcXVlcnkpKTsKKwogICAgIExPRyhTUUxEYXRhYmFzZSwgIlNRTCAtIHN0ZXAgLSAlcyIsIG1f
cXVlcnkuYXNjaWkoKS5kYXRhKCkpOwogICAgIGludCBlcnJvciA9IHNxbGl0ZTNfc3RlcChtX3N0
YXRlbWVudCk7CiAgICAgaWYgKGVycm9yICE9IFNRTElURV9ET05FICYmIGVycm9yICE9IFNRTElU
RV9ST1cpIHsK
</data>
<flag name="review"
          id="179077"
          type_id="1"
          status="-"
          setter="andersca"
    />
    <flag name="commit-queue"
          id="179078"
          type_id="3"
          status="-"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167258</attachid>
            <date>2012-10-04 23:06:29 -0700</date>
            <delta_ts>2012-10-10 05:37:53 -0700</delta_ts>
            <desc>Patch (take #2)</desc>
            <filename>46070_sqlite_changes2.patch</filename>
            <type>text/plain</type>
            <size>8038</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMmUyN2Q2Li5lMDk1NjU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTAt
MDQgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBTUUxSZXN1bHRTZXQucm93c0FmZmVjdGVkIG5vdCBjbGVhcmVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjA3MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCB0byBjaGVj
ayB0aGF0IFNRTFJlc3VsdFNldC5yb3dzQWZmZWN0ZWQgaXMKKyAgICAgICAgY29ycmVjdCBpbiBl
eGVjdXRlU3FsKCkgc3VjY2VzcyBjYWxsYmFjay4KKworICAgICAgICAqIHN0b3JhZ2Uvd2Vic3Fs
L2V4ZWN1dGUtc3FsLXJvd3NBZmZlY3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHN0b3JhZ2Uvd2Vic3FsL2V4ZWN1dGUtc3FsLXJvd3NBZmZlY3RlZC5odG1sOiBBZGRlZC4KKwog
MjAxMi0xMC0wNCAgUmlrIENhYmFuaWVyICA8Y2FiYW5pZXJAYWRvYmUuY29tPgogCiAgICAgICAg
IFR1cm4gQ29tcG9zaXRpbmcgb24gYnkgZGVmYXVsdCBpbiBXZWJLaXQgYnVpbGQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL2V4ZWN1dGUtc3FsLXJvd3NBZmZlY3RlZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9leGVjdXRlLXNxbC1yb3dz
QWZmZWN0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjYzMGIwODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9l
eGVjdXRlLXNxbC1yb3dzQWZmZWN0ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Ro
aXMgdGVzdCB0ZXN0cyB0aGF0IFNRTFJlc3VsdFNldC5yb3dzQWZmZWN0ZWQgYXR0cmlidXRlIGlz
IGNvcnJlY3QgaW4gc3VjY2VzcyBjYWxsYmFjayBmb3IgZXhlY3V0ZVNxbCgpLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByb3dzQWZmZWN0ZWQgaXMgMQorUEFTUyByb3dz
QWZmZWN0ZWQgaXMgMQorUEFTUyByb3dzQWZmZWN0ZWQgaXMgMgorUEFTUyByb3dzQWZmZWN0ZWQg
aXMgMAorUEFTUyByb3dzQWZmZWN0ZWQgaXMgMgorUEFTUyByb3dzQWZmZWN0ZWQgaXMgMAorUEFT
UyByb3dzQWZmZWN0ZWQgaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL2V4
ZWN1dGUtc3FsLXJvd3NBZmZlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwv
ZXhlY3V0ZS1zcWwtcm93c0FmZmVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMjRkZjk0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
d2Vic3FsL2V4ZWN1dGUtc3FsLXJvd3NBZmZlY3RlZC5odG1sCkBAIC0wLDAgKzEsNDUgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRp
b24oIlRoaXMgdGVzdCB0ZXN0cyB0aGF0IFNRTFJlc3VsdFNldC5yb3dzQWZmZWN0ZWQgYXR0cmli
dXRlIGlzIGNvcnJlY3QgaW4gc3VjY2VzcyBjYWxsYmFjayBmb3IgZXhlY3V0ZVNxbCgpLiIpOwor
CitmdW5jdGlvbiBlcnJvckNhbGxiYWNrKHRyYW5zYWN0aW9uLCBlcnJvcikKK3sKKyAgICB0ZXN0
RmFpbGVkKCJEYXRhYmFzZSBlcnJvciBjb2RlOiAiICsgZXJyb3IuY29kZSArICIsIG1lc3NhZ2U6
ICIgKyBlcnJvci5tZXNzYWdlKTsKK30KKworZnVuY3Rpb24gcm93c0FmZmVjdGVkU2hvdWxkQmUo
cmVzdWx0U2V0LCBleHBlY3RlZCkKK3sKKyAgICByb3dzQWZmZWN0ZWQgPSByZXN1bHRTZXQucm93
c0FmZmVjdGVkOworICAgIHNob3VsZEJlKCJyb3dzQWZmZWN0ZWQiLCBleHBlY3RlZCk7Cit9CisK
K2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgdGVzdFJ1bm5lci5jbGVhckFsbERhdGFiYXNlcygpOworCisgICAgZGIgPSBvcGVuRGF0YWJh
c2UoIlJvd3NBZmZlY3RlZFRlc3QiLCAiMS4wIiwgIiIsIDEpOworICAgIGRiLnRyYW5zYWN0aW9u
KGZ1bmN0aW9uICh0KSB7CisgICAgICAgIHQuZXhlY3V0ZVNxbCgiQ1JFQVRFIFRBQkxFIElGIE5P
VCBFWElTVFMgUm93c0FmZmVjdGVkVGVzdCAoRm9vIElOVCwgdGV4dCBURVhUKSIpOworICAgICAg
ICB0LmV4ZWN1dGVTcWwoIklOU0VSVCBJTlRPIFJvd3NBZmZlY3RlZFRlc3QgVkFMVUVTICgxLCAn
YScpIiwgbnVsbCwgZnVuY3Rpb24odCwgcikgeyByb3dzQWZmZWN0ZWRTaG91bGRCZShyLCAiMSIp
OyB9LCBlcnJvckNhbGxiYWNrKTsKKyAgICAgICAgdC5leGVjdXRlU3FsKCJJTlNFUlQgSU5UTyBS
b3dzQWZmZWN0ZWRUZXN0IFZBTFVFUyAoMiwgJ2InKSIsIG51bGwsIGZ1bmN0aW9uKHQsIHIpIHsg
cm93c0FmZmVjdGVkU2hvdWxkQmUociwgIjEiKTsgfSwgZXJyb3JDYWxsYmFjayk7CisgICAgICAg
IHQuZXhlY3V0ZVNxbCgiVVBEQVRFIFJvd3NBZmZlY3RlZFRlc3QgU0VUIHRleHQgPSAnYyciLCBu
dWxsLCBmdW5jdGlvbih0LCByKSB7IHJvd3NBZmZlY3RlZFNob3VsZEJlKHIsICIyIik7IH0sIGVy
cm9yQ2FsbGJhY2spOworICAgICAgICB0LmV4ZWN1dGVTcWwoIlNFTEVDVCAqIEZST00gUm93c0Fm
ZmVjdGVkVGVzdCIsIG51bGwsIGZ1bmN0aW9uKHQsIHIpIHsgcm93c0FmZmVjdGVkU2hvdWxkQmUo
ciwgIjAiKTsgfSwgZXJyb3JDYWxsYmFjayk7CisgICAgICAgIHQuZXhlY3V0ZVNxbCgiREVMRVRF
IEZST00gUm93c0FmZmVjdGVkVGVzdCIsIG51bGwsIGZ1bmN0aW9uKHQsIHIpIHsgcm93c0FmZmVj
dGVkU2hvdWxkQmUociwgIjIiKTsgfSwgZXJyb3JDYWxsYmFjayk7CisgICAgICAgIHQuZXhlY3V0
ZVNxbCgiREVMRVRFIEZST00gUm93c0FmZmVjdGVkVGVzdCIsIG51bGwsIGZ1bmN0aW9uKHQsIHIp
IHsgcm93c0FmZmVjdGVkU2hvdWxkQmUociwgIjAiKTsgfSwgZXJyb3JDYWxsYmFjayk7CisgICAg
ICAgIHQuZXhlY3V0ZVNxbCgiU0VMRUNUICogRlJPTSBSb3dzQWZmZWN0ZWRUZXN0IiwgbnVsbCwg
ZnVuY3Rpb24odCwgcikgeyByb3dzQWZmZWN0ZWRTaG91bGRCZShyLCAiMCIpOyB9LCBlcnJvckNh
bGxiYWNrKTsKKyAgICB9LCBmdW5jdGlvbihlcnJvcikgeyBlcnJvckNhbGxiYWNrKG51bGwsIGVy
cm9yKTsgZmluaXNoSlNUZXN0KCk7IH0sIGZpbmlzaEpTVGVzdCk7Cit9CisKK3J1blRlc3QoKTsK
K3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2YjU1MjhkLi4zMzhiOGE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTItMTAtMDQgIENocmlzdG9waGUgRHVtZXogIDxj
aHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBTUUxSZXN1bHRTZXQucm93c0Fm
ZmVjdGVkIG5vdCBjbGVhcmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00NjA3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFNRTFJlc3VsdFNldC5yb3dzQWZmZWN0ZWQgaXMgc3VwcG9zZWQgdG8gcmV0dXJu
IHRoZSBudW1iZXIKKyAgICAgICAgb2Ygcm93cyB0aGF0IHdlcmUgY2hhbmdlZCBieSB0aGUgc3Rh
dGVtZW50LiBGb3IgIlNFTEVDVCIKKyAgICAgICAgc3RhdGVtZW50cywgaXQgc2hvdWxkIHJldHVy
biAwLgorCisgICAgICAgIEhvd2V2ZXIsIG91ciBpbXBsZW1lbnRhdGlvbiBjdXJyZW50bHkgcmVs
aWVzIG9uIHNxbGl0ZTNfY2hhbmdlcygpCisgICAgICAgIHRvIGNvbXB1dGUgdGhpcyB2YWx1ZS4g
c3FsaXRlM19jaGFuZ2VzKCkgcmV0dXJucyB0aGUgbnVtYmVyIG9mCisgICAgICAgIGRpcmVjdCBy
b3cgY2hhbmdlcyBpbiB0aGUgbW9zdCByZWNlbnQgSU5TRVJULCBVUERBVEUsIG9yIERFTEVURQor
ICAgICAgICBzdGF0ZW1lbnQgd2l0aGluIHRoZSBzYW1lIHRyaWdnZXIgY29udGV4dC4gVW5mb3J0
dW5hdGVseSwgdGhlCisgICAgICAgIG1vc3QgcmVjZW50IElOU0VSVCwgVVBEQVRFLCBvciBERUxF
VEUgc3RhdGVtZW50IG1heSBub3QgYmUgdGhlCisgICAgICAgIGxhc3Qgc3RhdGVtZW50LiBBcyBh
IGNvbnNlcXVlbmNlLCBpZiB5b3UgSU5TRVJUIDEgcm93LCB0aGVuCisgICAgICAgIGRvIGEgU0VM
RUNULCBTUUxSZXN1bHRTZXQucm93c0FmZmVjdGVkIHdpbGwgYmUgMSBmb3IgYm90aCB0aGUKKyAg
ICAgICAgSU5TRVJUIGFuZCB0aGUgU0VMRUNUIHN0YXRlbWVudHMuCisKKyAgICAgICAgVGhlIHBy
b3Bvc2VkIHNvbHV0aW9uIGlzIHRvIHVzZSBzcWxpdGUzX3RvdGFsX2NoYW5nZXMoKSBpbnN0ZWFk
CisgICAgICAgIG9mIHNxbGl0ZTNfY2hhbmdlcygpLiBzcWxpdGUzX3RvdGFsX2NoYW5nZXMoKSBy
ZXR1cm5zIHRoZSBudW1iZXIKKyAgICAgICAgb2Ygcm93IGNoYW5nZXMgY2F1c2VkIGJ5IElOU0VS
VCwgVVBEQVRFIG9yIERFTEVURSBzdGF0ZW1lbnRzIHNpbmNlCisgICAgICAgIHRoZSBkYXRhYmFz
ZSBjb25uZWN0aW9uIHdhcyBvcGVuZWQuIFdlIG5vdyBzdG9yZSB0aGUgdmFsdWUKKyAgICAgICAg
cmV0dXJuZWQgYnkgc3FsaXRlM190b3RhbF9jaGFuZ2VzKCkgYmVmb3JlIGVhY2ggc3RhdGVtZW50
IGluCisgICAgICAgIG9yZGVyIHRvIHJldHVybiB0aGUgY291bnQgZGlmZmVyZW5jZSBpbgorICAg
ICAgICBTUUxpdGVEYXRhYmFzZTo6bGFzdENoYW5nZXMoKS4KKworICAgICAgICBUZXN0OiBzdG9y
YWdlL3dlYnNxbC9leGVjdXRlLXNxbC1yb3dzQWZmZWN0ZWQuaHRtbAorCisgICAgICAgICogcGxh
dGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURh
dGFiYXNlOjpTUUxpdGVEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFz
ZTo6dXBkYXRlTGFzdENoYW5nZXNDb3VudCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpsYXN0Q2hhbmdlcyk6CisgICAgICAgICogcGxhdGZv
cm0vc3FsL1NRTGl0ZURhdGFiYXNlLmg6CisgICAgICAgIChTUUxpdGVEYXRhYmFzZSk6CisgICAg
ICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTUUxpdGVTdGF0ZW1lbnQ6OnN0ZXApOgorCiAyMDEyLTEwLTA0ICBQcmF2aW4gRCAgPHByYXZp
bmQuMms0QGdtYWlsLmNvbT4KIAogICAgICAgICBSZW1vdmluZyB0aGUgdW51c2VkIG1lbWJlciB2
YXJpYWJsZSBtX3dhc01hbGZvcm1lZCBmcm9tIEhUTUxGb3JtRWxlbWVudCBjbGFzcyBhbmQgaXRz
IHJlbGF0ZWQgY29kZSBmcmdtZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9T
UUxpdGVEYXRhYmFzZS5jcHAKaW5kZXggNjhkMTI0Zi4uMjQxOGZjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCkBAIC01OCw2ICs1OCw3IEBA
IFNRTGl0ZURhdGFiYXNlOjpTUUxpdGVEYXRhYmFzZSgpCiAgICAgLCBtX2ludGVycnVwdGVkKGZh
bHNlKQogICAgICwgbV9vcGVuRXJyb3IoU1FMSVRFX0VSUk9SKQogICAgICwgbV9vcGVuRXJyb3JN
ZXNzYWdlKCkKKyAgICAsIG1fbGFzdENoYW5nZXNDb3VudCgwKQogewogfQogCkBAIC0zMjEsMTEg
KzMyMiwyMCBAQCBpbnQ2NF90IFNRTGl0ZURhdGFiYXNlOjpsYXN0SW5zZXJ0Um93SUQoKQogICAg
IHJldHVybiBzcWxpdGUzX2xhc3RfaW5zZXJ0X3Jvd2lkKG1fZGIpOwogfQogCit2b2lkIFNRTGl0
ZURhdGFiYXNlOjp1cGRhdGVMYXN0Q2hhbmdlc0NvdW50KCkKK3sKKyAgICBpZiAoIW1fZGIpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fbGFzdENoYW5nZXNDb3VudCA9IHNxbGl0ZTNfdG90YWxf
Y2hhbmdlcyhtX2RiKTsKK30KKwogaW50IFNRTGl0ZURhdGFiYXNlOjpsYXN0Q2hhbmdlcygpCiB7
CiAgICAgaWYgKCFtX2RiKQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gc3FsaXRlM19j
aGFuZ2VzKG1fZGIpOworCisgICAgcmV0dXJuIHNxbGl0ZTNfdG90YWxfY2hhbmdlcyhtX2RiKSAt
IG1fbGFzdENoYW5nZXNDb3VudDsKIH0KIAogaW50IFNRTGl0ZURhdGFiYXNlOjpsYXN0RXJyb3Io
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAppbmRleCA1
YTY2ZDQ5Li5mMTU1MDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwv
U1FMaXRlRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuaApAQCAtNjUsNiArNjUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbnRlcnJ1cHQo
KTsKICAgICBib29sIGlzSW50ZXJydXB0ZWQoKTsKIAorICAgIHZvaWQgdXBkYXRlTGFzdENoYW5n
ZXNDb3VudCgpOworCiAgICAgYm9vbCBleGVjdXRlQ29tbWFuZChjb25zdCBTdHJpbmcmKTsKICAg
ICBib29sIHJldHVybnNBdExlYXN0T25lUmVzdWx0KGNvbnN0IFN0cmluZyYpOwogICAgIApAQCAt
MTU4LDYgKzE2MCw4IEBAIHByaXZhdGU6CiAKICAgICBpbnQgbV9vcGVuRXJyb3I7CiAgICAgQ1N0
cmluZyBtX29wZW5FcnJvck1lc3NhZ2U7CisKKyAgICBpbnQgbV9sYXN0Q2hhbmdlc0NvdW50Owog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcWwvU1FMaXRlU3RhdGVtZW50LmNwcAppbmRleCBkMzA4ODcyLi4zYzdlOTQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlU3RhdGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlU3RhdGVtZW50LmNwcApAQCAtMTAx
LDYgKzEwMSwxMSBAQCBpbnQgU1FMaXRlU3RhdGVtZW50OjpzdGVwKCkKIAogICAgIGlmICghbV9z
dGF0ZW1lbnQpCiAgICAgICAgIHJldHVybiBTUUxJVEVfT0s7CisKKyAgICAvLyBUaGUgZGF0YWJh
c2UgbmVlZHMgdG8gdXBkYXRlIGl0cyBsYXN0IGNoYW5nZXMgY291bnQgYmVmb3JlIGVhY2ggc3Rh
dGVtZW50CisgICAgLy8gaW4gb3JkZXIgdG8gY29tcHV0ZSBwcm9wZXJseSB0aGUgbGFzdENoYW5n
ZXMoKSByZXR1cm4gdmFsdWUuCisgICAgbV9kYXRhYmFzZS51cGRhdGVMYXN0Q2hhbmdlc0NvdW50
KCk7CisKICAgICBMT0coU1FMRGF0YWJhc2UsICJTUUwgLSBzdGVwIC0gJXMiLCBtX3F1ZXJ5LmFz
Y2lpKCkuZGF0YSgpKTsKICAgICBpbnQgZXJyb3IgPSBzcWxpdGUzX3N0ZXAobV9zdGF0ZW1lbnQp
OwogICAgIGlmIChlcnJvciAhPSBTUUxJVEVfRE9ORSAmJiBlcnJvciAhPSBTUUxJVEVfUk9XKSB7
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>