<?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>126435</bug_id>
          
          <creation_ts>2014-01-03 10:01:15 -0800</creation_ts>
          <short_desc>Move WebCore storage code to C++11 lambdas, std::function</short_desc>
          <delta_ts>2014-08-24 23:04:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>andersca</cc>
    
    <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>964144</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-03 10:01:15 -0800</bug_when>
    <thetext>Move WebCore storage code to std::bind, std::function</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964148</commentid>
    <comment_count>1</comment_count>
      <attachid>220316</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-03 10:07:13 -0800</bug_when>
    <thetext>Created attachment 220316
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964149</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-03 10:09:25 -0800</bug_when>
    <thetext>Attachment 220316 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/storage/StorageAreaSync.cpp&apos;, u&apos;Source/WebCore/storage/StorageSyncManager.cpp&apos;, u&apos;Source/WebCore/storage/StorageSyncManager.h&apos;, u&apos;Source/WebCore/storage/StorageThread.cpp&apos;, u&apos;Source/WebCore/storage/StorageThread.h&apos;, u&apos;Source/WebCore/storage/StorageTracker.cpp&apos;, &apos;--commit-queue&apos;]&quot; exit_code: 1
ERROR: Source/WebCore/storage/StorageThread.cpp:79:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.cpp:83:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.cpp:95:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.h:48:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.h:61:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageTracker.cpp:305:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageSyncManager.h:44:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageSyncManager.cpp:74:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 8 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964157</commentid>
    <comment_count>3</comment_count>
      <attachid>220316</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-03 10:20:27 -0800</bug_when>
    <thetext>Comment on attachment 220316
Patch

Attachment 220316 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/5418391959502848</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964168</commentid>
    <comment_count>4</comment_count>
      <attachid>220316</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-03 10:40:45 -0800</bug_when>
    <thetext>Comment on attachment 220316
Patch

Attachment 220316 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/6403554377990144</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964189</commentid>
    <comment_count>5</comment_count>
      <attachid>220316</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-03 11:21:47 -0800</bug_when>
    <thetext>Comment on attachment 220316
Patch

I don&apos;t think this is correct. WTF::bind has some tricks to automatically ref/deref objects that are captured and I think that&apos;s lost in this conversion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964192</commentid>
    <comment_count>6</comment_count>
      <attachid>220324</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-03 11:26:53 -0800</bug_when>
    <thetext>Created attachment 220324
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964194</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-03 11:28:40 -0800</bug_when>
    <thetext>Attachment 220324 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/storage/StorageAreaSync.cpp&apos;, u&apos;Source/WebCore/storage/StorageSyncManager.cpp&apos;, u&apos;Source/WebCore/storage/StorageSyncManager.h&apos;, u&apos;Source/WebCore/storage/StorageThread.cpp&apos;, u&apos;Source/WebCore/storage/StorageThread.h&apos;, u&apos;Source/WebCore/storage/StorageTracker.cpp&apos;, &apos;--commit-queue&apos;]&quot; exit_code: 1
ERROR: Source/WebCore/storage/StorageThread.cpp:79:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.cpp:83:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.cpp:95:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.h:49:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.h:62:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageTracker.cpp:305:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageSyncManager.h:45:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageSyncManager.cpp:74:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 8 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964220</commentid>
    <comment_count>8</comment_count>
      <attachid>220324</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-03 12:24:16 -0800</bug_when>
    <thetext>Comment on attachment 220324
Patch

Removing the r? flag, still has the same issue as the previous patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964618</commentid>
    <comment_count>9</comment_count>
      <attachid>220433</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-06 06:49:09 -0800</bug_when>
    <thetext>Created attachment 220433
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964619</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-06 06:51:46 -0800</bug_when>
    <thetext>Attachment 220433 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/storage/StorageAreaSync.cpp&apos;, u&apos;Source/WebCore/storage/StorageSyncManager.cpp&apos;, u&apos;Source/WebCore/storage/StorageSyncManager.h&apos;, u&apos;Source/WebCore/storage/StorageThread.cpp&apos;, u&apos;Source/WebCore/storage/StorageThread.h&apos;, u&apos;Source/WebCore/storage/StorageTracker.cpp&apos;, &apos;--commit-queue&apos;]&quot; exit_code: 1
ERROR: Source/WebCore/storage/StorageThread.cpp:79:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.cpp:83:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.cpp:95:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.h:49:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.h:62:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageTracker.cpp:305:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageSyncManager.h:45:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageAreaSync.cpp:115:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebCore/storage/StorageSyncManager.cpp:74:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 9 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964620</commentid>
    <comment_count>11</comment_count>
      <attachid>220433</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-06 06:59:33 -0800</bug_when>
    <thetext>Comment on attachment 220433
Patch

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

&gt; Source/WebCore/storage/StorageAreaSync.cpp:78
&gt; -    m_syncManager-&gt;dispatch(bind(&amp;StorageAreaSync::performImport, this));
&gt; +    m_syncManager-&gt;dispatch(std::bind(&amp;StorageAreaSync::performImport,
&gt; +        std::bind([](const RefPtr&lt;StorageAreaSync&gt;&amp; storageArea) { return storageArea.get(); }, RefPtr&lt;StorageAreaSync&gt;(this))));

To handle referencing and dereferencing of the StorageAreaSync object on which the member function should be called, a nested bind expression is used that holds onto a RefPtr&lt;StorageAreaSync&gt; object and returns a raw pointer to the StorageAreaSync object when called.

If this approach makes sense it can be abstracted into a helper template.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964673</commentid>
    <comment_count>12</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-06 11:01:15 -0800</bug_when>
    <thetext>I&apos;d rather we moved away from std::bind to lambdas instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964739</commentid>
    <comment_count>13</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-06 13:42:24 -0800</bug_when>
    <thetext>Lambdas would work and look better, but capturing the this pointer wouldn&apos;t handle the (de)referencing, so a RefPtr&lt;T&gt; variable would have to be initalized and captured by value.

C++14 adds support for inlining lambda capture initializations. That&apos;s available in Clang 3.4 and GCC 4.9.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964932</commentid>
    <comment_count>14</comment_count>
      <attachid>220505</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-07 02:16:16 -0800</bug_when>
    <thetext>Created attachment 220505
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964933</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-07 02:17:31 -0800</bug_when>
    <thetext>Attachment 220505 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/storage/StorageAreaSync.cpp&apos;, u&apos;Source/WebCore/storage/StorageSyncManager.cpp&apos;, u&apos;Source/WebCore/storage/StorageSyncManager.h&apos;, u&apos;Source/WebCore/storage/StorageThread.cpp&apos;, u&apos;Source/WebCore/storage/StorageThread.h&apos;, u&apos;Source/WebCore/storage/StorageTracker.cpp&apos;, &apos;--commit-queue&apos;]&quot; exit_code: 1
ERROR: Source/WebCore/storage/StorageThread.cpp:79:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.cpp:83:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.cpp:95:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.h:49:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.h:62:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageTracker.cpp:175:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebCore/storage/StorageTracker.cpp:238:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebCore/storage/StorageTracker.cpp:306:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageTracker.cpp:315:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebCore/storage/StorageTracker.cpp:315:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageTracker.cpp:388:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebCore/storage/StorageTracker.cpp:485:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebCore/storage/StorageSyncManager.h:45:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageAreaSync.cpp:115:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebCore/storage/StorageSyncManager.cpp:74:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 15 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964935</commentid>
    <comment_count>16</comment_count>
      <attachid>220505</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-07 02:32:47 -0800</bug_when>
    <thetext>Comment on attachment 220505
Patch

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

&gt; Source/WebCore/storage/StorageTracker.cpp:288
&gt; -        callOnMainThread(bind(&amp;StorageTracker::deleteOriginWithIdentifier, this, originIdentifier.isolatedCopy()));
&gt; +        callOnMainThread(std::bind([this](const String&amp; originIdentifier) { deleteOriginWithIdentifier(originIdentifier); },
&gt; +            originIdentifier.isolatedCopy()));

std::bind() remains in use here and in similar places to avoid unnecessarily copying the isolated copies through lambda capture:

    String originIdentifierCopy = originIdentifier.isolatedCopy();
    callOnMainThread([this, originIdentifierCopy] { deleteOriginWithIdentifier(originIdentifier); });

Again, C++14 lambda improvements will allow just this:

    callOnMainThread([this, originIdentifierCopy = originIdentifier.copy()] { deleteOriginWithIdentifier(originIdentifier); });</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965496</commentid>
    <comment_count>17</comment_count>
      <attachid>220636</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-08 08:24:38 -0800</bug_when>
    <thetext>Created attachment 220636
Patch

Get rid of the multiple-commands-on-same-line style errors. The errors caused by the space between the return type and the leading parantheses of the wrapped function signature should be resolved in the style checker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965499</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-08 08:26:25 -0800</bug_when>
    <thetext>Attachment 220636 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/storage/StorageAreaSync.cpp&apos;, u&apos;Source/WebCore/storage/StorageSyncManager.cpp&apos;, u&apos;Source/WebCore/storage/StorageSyncManager.h&apos;, u&apos;Source/WebCore/storage/StorageThread.cpp&apos;, u&apos;Source/WebCore/storage/StorageThread.h&apos;, u&apos;Source/WebCore/storage/StorageTracker.cpp&apos;, &apos;--commit-queue&apos;]&quot; exit_code: 1
ERROR: Source/WebCore/storage/StorageThread.cpp:79:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.cpp:83:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.cpp:95:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.h:49:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.h:62:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageTracker.cpp:311:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageTracker.cpp:320:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageSyncManager.h:45:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageSyncManager.cpp:74:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 9 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030695</commentid>
    <comment_count>19</comment_count>
      <attachid>220636</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-08-22 01:29:09 -0700</bug_when>
    <thetext>Comment on attachment 220636
Patch

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

&gt; Source/WebCore/storage/StorageTracker.cpp:293
&gt; +        callOnMainThread(std::bind([this](const String&amp; originIdentifier) {
&gt; +            deleteOriginWithIdentifier(originIdentifier);
&gt; +        }, originIdentifier.isolatedCopy()));

In cases such as this we now mostly use a pure lambda that captures an isolated copy of the necessary string instead of relying on std::bind().

I&apos;ll update this patch to use that approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030922</commentid>
    <comment_count>20</comment_count>
      <attachid>237031</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-08-23 01:56:18 -0700</bug_when>
    <thetext>Created attachment 237031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030923</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-23 01:58:52 -0700</bug_when>
    <thetext>Attachment 237031 did not pass style-queue:


ERROR: Source/WebCore/storage/StorageThread.cpp:79:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.cpp:83:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.cpp:95:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.h:49:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageThread.h:62:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageSyncManager.h:45:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/storage/StorageSyncManager.cpp:74:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 7 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030984</commentid>
    <comment_count>22</comment_count>
      <attachid>237031</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-24 12:02:43 -0700</bug_when>
    <thetext>Comment on attachment 237031
Patch

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

&gt; Source/WebCore/storage/StorageAreaSync.cpp:75
&gt; +    m_syncManager-&gt;dispatch([=] {

Is there a good reason that in sites like this we have [=] instead of [protector]?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031036</commentid>
    <comment_count>23</comment_count>
      <attachid>237031</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-08-24 23:02:37 -0700</bug_when>
    <thetext>Comment on attachment 237031
Patch

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

&gt;&gt; Source/WebCore/storage/StorageAreaSync.cpp:75
&gt;&gt; +    m_syncManager-&gt;dispatch([=] {
&gt; 
&gt; Is there a good reason that in sites like this we have [=] instead of [protector]?

Not really, explicitly listing the captured variables is generally a better idea since it prevents accidentally capturing unwanted objects.

I&apos;ll fix that before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031037</commentid>
    <comment_count>24</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-08-24 23:04:56 -0700</bug_when>
    <thetext>Committed r172901: &lt;http://trac.webkit.org/changeset/172901&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220316</attachid>
            <date>2014-01-03 10:07:13 -0800</date>
            <delta_ts>2014-01-03 11:26:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126435-20140103100712.patch</filename>
            <type>text/plain</type>
            <size>10627</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxMjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTViYjI3MzFiMDRmMDMy
NTc0Njk5MDg1OTJlNGRiNDE4MzFhMDMwOC4uZjBkNjU3NDVjZTAxZjgxYjkzYzMwMTY3YTZmMWQ2
M2E1ZTI4YzE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTAxLTAzICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBNb3ZlIFdlYkNvcmUg
c3RvcmFnZSBjb2RlIHRvIHN0ZDo6YmluZCwgc3RkOjpmdW5jdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NDM1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHN0ZDo6YmluZCBpbnN0ZWFkIG9m
IFdURjo6YmluZCBhbmQgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBpbnN0ZWFkIG9mIFdURjo6RnVu
Y3Rpb248dm9pZCAoKT4KKyAgICAgICAgaW4gU3RvcmFnZUFyZWFTeW5jLCBTdG9yYWdlU3luY01h
bmFnZXIsIFN0b3JhZ2VUaHJlYWQgYW5kIFN0b3JhZ2VUcmFja2VyIGNsYXNzZXMuCisKKyAgICAg
ICAgKiBzdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9y
YWdlQXJlYVN5bmM6OlN0b3JhZ2VBcmVhU3luYyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdl
QXJlYVN5bmM6OnNjaGVkdWxlRmluYWxTeW5jKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VB
cmVhU3luYzo6c3luY1RpbWVyRmlyZWQpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVN5bmNN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VTeW5jTWFuYWdlcjo6ZGlzcGF0
Y2gpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2VyLmg6CisgICAgICAgICog
c3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUaHJl
YWQ6OmRpc3BhdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUaHJlYWQ6OnRlcm1pbmF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVGhyZWFkOjpyZWxlYXNlRmFzdE1hbGxvY0Zy
ZWVNZW1vcnlJbkFsbFRocmVhZHMpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVRocmVhZC5o
OgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3RvcmFnZVRyYWNrZXI6OmltcG9ydE9yaWdpbklkZW50aWZpZXJzKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpzeW5jSW1wb3J0T3JpZ2luSWRlbnRpZmllcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnN5bmNGaWxlU3lzdGVtQW5kVHJhY2tlckRh
dGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpzZXRPcmlnaW5EZXRh
aWxzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpkZWxldGVBbGxPcmlnaW5z
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpkZWxldGVPcmlnaW4pOgorCiAy
MDE0LTAxLTAyICBKYWVodW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CiAKICAgICAg
ICAgSWNvbkNvbnRyb2xsZXIuY3BwIG5lZWRzIHRvIGluY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcAppbmRleCA3YjAy
NjdmMTUwN2FhMDc1ZTU4OGIxZDcxMjUzMTNjZTRjODk5NjJlLi4yYTYxMTI2ZGQ4NWJhODI3OGY2
NjQzYTc0NzdiZTJhZmQ3MmQ0YmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VBcmVhU3luYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
QXJlYVN5bmMuY3BwCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAiU3RvcmFnZVN5bmNNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVRyYWNrZXIuaCIKICNpbmNsdWRlICJTdWRkZW5UZXJt
aW5hdGlvbi5oIgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTc1LDcgKzc0
LDcgQEAgaW5saW5lIFN0b3JhZ2VBcmVhU3luYzo6U3RvcmFnZUFyZWFTeW5jKFBhc3NSZWZQdHI8
U3RvcmFnZVN5bmNNYW5hZ2VyPiBzdG9yYWdlU3kKIAogICAgIC8vIEZJWE1FOiBJZiBpdCBjYW4n
dCBpbXBvcnQsIHRoZW4gdGhlIGRlZmF1bHQgV2ViS2l0IGJlaGF2aW9yIHNob3VsZCBiZSB0aGF0
IG9mIHByaXZhdGUgYnJvd3NpbmcsCiAgICAgLy8gbm90IHNpbGVudGx5IGlnbm9yaW5nIGl0LiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU4OTQKLSAgICBtX3N5bmNN
YW5hZ2VyLT5kaXNwYXRjaChiaW5kKCZTdG9yYWdlQXJlYVN5bmM6OnBlcmZvcm1JbXBvcnQsIHRo
aXMpKTsKKyAgICBtX3N5bmNNYW5hZ2VyLT5kaXNwYXRjaChzdGQ6OmJpbmQoJlN0b3JhZ2VBcmVh
U3luYzo6cGVyZm9ybUltcG9ydCwgdGhpcykpOwogfQogCiBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVh
U3luYz4gU3RvcmFnZUFyZWFTeW5jOjpjcmVhdGUoUGFzc1JlZlB0cjxTdG9yYWdlU3luY01hbmFn
ZXI+IHN0b3JhZ2VTeW5jTWFuYWdlciwgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYUltcGw+IHN0b3Jh
Z2VBcmVhLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRlbnRpZmllcikKQEAgLTExMSw3ICsxMTAs
NyBAQCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6c2NoZWR1bGVGaW5hbFN5bmMoKQogICAgIG1fZmlu
YWxTeW5jU2NoZWR1bGVkID0gdHJ1ZTsKICAgICBzeW5jVGltZXJGaXJlZCgmbV9zeW5jVGltZXIp
OwogCi0gICAgbV9zeW5jTWFuYWdlci0+ZGlzcGF0Y2goYmluZCgmU3RvcmFnZUFyZWFTeW5jOjpk
ZWxldGVFbXB0eURhdGFiYXNlLCB0aGlzKSk7CisgICAgbV9zeW5jTWFuYWdlci0+ZGlzcGF0Y2go
c3RkOjpiaW5kKCZTdG9yYWdlQXJlYVN5bmM6OmRlbGV0ZUVtcHR5RGF0YWJhc2UsIHRoaXMpKTsK
IH0KIAogdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnNjaGVkdWxlSXRlbUZvclN5bmMoY29uc3QgU3Ry
aW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpCkBAIC0yMTMsNyArMjEyLDcgQEAgdm9pZCBT
dG9yYWdlQXJlYVN5bmM6OnN5bmNUaW1lckZpcmVkKFRpbWVyPFN0b3JhZ2VBcmVhU3luYz4qKQog
ICAgICAgICAgICAgLy8gcGVyZm9ybVN5bmMgZnVuY3Rpb24uCiAgICAgICAgICAgICBkaXNhYmxl
U3VkZGVuVGVybWluYXRpb24oKTsKIAotICAgICAgICAgICAgbV9zeW5jTWFuYWdlci0+ZGlzcGF0
Y2goYmluZCgmU3RvcmFnZUFyZWFTeW5jOjpwZXJmb3JtU3luYywgdGhpcykpOworICAgICAgICAg
ICAgbV9zeW5jTWFuYWdlci0+ZGlzcGF0Y2goc3RkOjpiaW5kKCZTdG9yYWdlQXJlYVN5bmM6OnBl
cmZvcm1TeW5jLCB0aGlzKSk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2VyLmNwcAppbmRleCAyMjE5N2Q1Nzk1NDA1MmM5ZjI1
MDYyMmRiMDdmNzQ2NDEwOGFjNjBlLi4wZmU3YjUyOWNjNmUzN2MxN2Y1ZmI5MjcxMjZkOTZkODBh
ODU4NGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIu
Y3BwCkBAIC03MSw3ICs3MSw3IEBAIFN0cmluZyBTdG9yYWdlU3luY01hbmFnZXI6OmZ1bGxEYXRh
YmFzZUZpbGVuYW1lKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZGVudGlmaWVyCiAgICAgcmV0dXJu
IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX3BhdGgsIGRhdGFiYXNlSWRlbnRpZmllciArICIu
bG9jYWxzdG9yYWdlIik7CiB9CiAKLXZvaWQgU3RvcmFnZVN5bmNNYW5hZ2VyOjpkaXNwYXRjaChj
b25zdCBGdW5jdGlvbjx2b2lkICgpPiYgZnVuY3Rpb24pCit2b2lkIFN0b3JhZ2VTeW5jTWFuYWdl
cjo6ZGlzcGF0Y2goY29uc3Qgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiYgZnVuY3Rpb24pCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQobV90aHJlYWQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2VyLmgKaW5kZXggNjRkMDEwMDk3MmNk
MDdhMzcxZjE5ZWU2MmZjMjI5Y2I0MDc5YzBhMi4uZTc3ZmViNWFmM2IyNTllYzZiY2UzYjkyNGFl
MGJiOWIyMThlY2M2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
U3luY01hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFu
YWdlci5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dG9yYWdlU3luY01hbmFnZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGgpOwogICAgIH5TdG9y
YWdlU3luY01hbmFnZXIoKTsKIAotICAgIHZvaWQgZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9p
ZCAoKT4mKTsKKyAgICB2b2lkIGRpc3BhdGNoKGNvbnN0IHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4m
KTsKICAgICB2b2lkIGNsb3NlKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlVGhyZWFkLmNwcAppbmRleCA3OGZiZTcwMzI5Yzc3Y2MxZmM0MzM4ZWQyNWViNzU5NzJk
Nzg4MmUzLi5jZmUwYjUzNGZiYWEyMTAzYmFjOGE5Mjc0Zjk0Yzk1OGI4MWY0MWQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRocmVhZC5jcHAKQEAgLTc2LDExICs3NiwxMSBAQCB2
b2lkIFN0b3JhZ2VUaHJlYWQ6OnRocmVhZEVudHJ5UG9pbnQoKQogICAgIH0KIH0KIAotdm9pZCBT
dG9yYWdlVGhyZWFkOjpkaXNwYXRjaChjb25zdCBGdW5jdGlvbjx2b2lkICgpPiYgZnVuY3Rpb24p
Cit2b2lkIFN0b3JhZ2VUaHJlYWQ6OmRpc3BhdGNoKGNvbnN0IHN0ZDo6ZnVuY3Rpb248dm9pZCAo
KT4mIGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJU
KCFtX3F1ZXVlLmtpbGxlZCgpICYmIG1fdGhyZWFkSUQpOwotICAgIG1fcXVldWUuYXBwZW5kKHN0
ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCAoKT4+KGZ1bmN0aW9uKSk7CisgICAgbV9xdWV1
ZS5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+PihmdW5jdGlv
bikpOwogfQogCiB2b2lkIFN0b3JhZ2VUaHJlYWQ6OnRlcm1pbmF0ZSgpCkBAIC05Miw3ICs5Miw3
IEBAIHZvaWQgU3RvcmFnZVRocmVhZDo6dGVybWluYXRlKCkKICAgICBpZiAoIW1fdGhyZWFkSUQp
CiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcXVldWUuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8
RnVuY3Rpb248dm9pZCAoKT4+KGJpbmQoJlN0b3JhZ2VUaHJlYWQ6OnBlcmZvcm1UZXJtaW5hdGUs
IHRoaXMpKSk7CisgICAgbV9xdWV1ZS5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxzdGQ6OmZ1bmN0
aW9uPHZvaWQgKCk+PihzdGQ6OmJpbmQoJlN0b3JhZ2VUaHJlYWQ6OnBlcmZvcm1UZXJtaW5hdGUs
IHRoaXMpKSk7CiAgICAgd2FpdEZvclRocmVhZENvbXBsZXRpb24obV90aHJlYWRJRCk7CiAgICAg
QVNTRVJUKG1fcXVldWUua2lsbGVkKCkpOwogICAgIG1fdGhyZWFkSUQgPSAwOwpAQCAtMTA5LDcg
KzEwOSw3IEBAIHZvaWQgU3RvcmFnZVRocmVhZDo6cmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5
SW5BbGxUaHJlYWRzKCkKICAgICBIYXNoU2V0PFN0b3JhZ2VUaHJlYWQqPiYgdGhyZWFkcyA9IGFj
dGl2ZVN0b3JhZ2VUaHJlYWRzKCk7CiAKICAgICBmb3IgKEhhc2hTZXQ8U3RvcmFnZVRocmVhZCo+
OjppdGVyYXRvciBpdCA9IHRocmVhZHMuYmVnaW4oKSwgZW5kID0gdGhyZWFkcy5lbmQoKTsgaXQg
IT0gZW5kOyArK2l0KQotICAgICAgICAoKml0KS0+ZGlzcGF0Y2goYmluZChXVEY6OnJlbGVhc2VG
YXN0TWFsbG9jRnJlZU1lbW9yeSkpOworICAgICAgICAoKml0KS0+ZGlzcGF0Y2goc3RkOjpiaW5k
KFdURjo6cmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5KSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlVGhyZWFkLmgKaW5kZXggOGYwOTJkMDgwNmNkMWUzM2ZlNTc3NzMxYWUw
NTI5ODE5ZjQ2MDEzMS4uMjg1NDFmOTQxZGIyNzdkZjEzZDQ5Y2JlMDJjMGZkNTE3NmIzOGFkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGhyZWFkLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGhyZWFkLmgKQEAgLTI2LDcgKzI2LDYgQEAK
ICNpZm5kZWYgU3RvcmFnZVRocmVhZF9oCiAjZGVmaW5lIFN0b3JhZ2VUaHJlYWRfaAogCi0jaW5j
bHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1
ZGUgPHd0Zi9NZXNzYWdlUXVldWUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAt
NDYsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzdGFydCgpOwogICAgIHZvaWQgdGVybWlu
YXRlKCk7CiAKLSAgICB2b2lkIGRpc3BhdGNoKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKTsKKyAg
ICB2b2lkIGRpc3BhdGNoKGNvbnN0IHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4mKTsKIAogICAgIHN0
YXRpYyB2b2lkIHJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeUluQWxsVGhyZWFkcygpOwogCkBA
IC01OSw3ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwZXJmb3JtVGVybWluYXRlKCk7CiAK
ICAgICBUaHJlYWRJZGVudGlmaWVyIG1fdGhyZWFkSUQ7Ci0gICAgTWVzc2FnZVF1ZXVlPEZ1bmN0
aW9uPHZvaWQgKCk+PiBtX3F1ZXVlOworICAgIE1lc3NhZ2VRdWV1ZTxzdGQ6OmZ1bmN0aW9uPHZv
aWQgKCk+PiBtX3F1ZXVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcAppbmRleCA5NzZkY2RhZWY0YjA4ZTYxYmU4
NDFlNTdhODI1MDE1ZDdkYTZiMTE1Li4yNzEyZmVjYzJlYTRjNjdlMjBlNDdlOWRkZjZkMTIzNDBk
NmYzMGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUcmFja2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcApAQCAt
MzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU3Rv
cmFnZVRyYWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKLSNpbmNsdWRl
IDx3dGYvRnVuY3Rpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTE3Myw3
ICsxNzIsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjppbXBvcnRPcmlnaW5JZGVudGlmaWVycygp
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQobV90aHJlYWQpOwogCi0g
ICAgbV90aHJlYWQtPmRpc3BhdGNoKGJpbmQoJlN0b3JhZ2VUcmFja2VyOjpzeW5jSW1wb3J0T3Jp
Z2luSWRlbnRpZmllcnMsIHRoaXMpKTsKKyAgICBtX3RocmVhZC0+ZGlzcGF0Y2goc3RkOjpiaW5k
KCZTdG9yYWdlVHJhY2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZW50aWZpZXJzLCB0aGlzKSk7CiB9
CiAKIHZvaWQgU3RvcmFnZVRyYWNrZXI6OmZpbmlzaGVkSW1wb3J0aW5nT3JpZ2luSWRlbnRpZmll
cnMoKQpAQCAtMjM2LDcgKzIzNSw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNJbXBvcnRP
cmlnaW5JZGVudGlmaWVycygpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBjYWxsT25NYWluVGhy
ZWFkKGJpbmQoJlN0b3JhZ2VUcmFja2VyOjpmaW5pc2hlZEltcG9ydGluZ09yaWdpbklkZW50aWZp
ZXJzLCB0aGlzKSk7CisgICAgY2FsbE9uTWFpblRocmVhZChzdGQ6OmJpbmQoJlN0b3JhZ2VUcmFj
a2VyOjpmaW5pc2hlZEltcG9ydGluZ09yaWdpbklkZW50aWZpZXJzLCB0aGlzKSk7CiB9CiAgICAg
CiB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jRmlsZVN5c3RlbUFuZFRyYWNrZXJEYXRhYmFzZSgp
CkBAIC0yODUsNyArMjg0LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY0ZpbGVTeXN0ZW1B
bmRUcmFja2VyRGF0YWJhc2UoKQogICAgICAgICBpZiAoZm91bmRPcmlnaW5zLmNvbnRhaW5zKG9y
aWdpbklkZW50aWZpZXIpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgY2FsbE9u
TWFpblRocmVhZChiaW5kKCZTdG9yYWdlVHJhY2tlcjo6ZGVsZXRlT3JpZ2luV2l0aElkZW50aWZp
ZXIsIHRoaXMsIG9yaWdpbklkZW50aWZpZXIuaXNvbGF0ZWRDb3B5KCkpKTsKKyAgICAgICAgY2Fs
bE9uTWFpblRocmVhZChzdGQ6OmJpbmQoJlN0b3JhZ2VUcmFja2VyOjpkZWxldGVPcmlnaW5XaXRo
SWRlbnRpZmllciwgdGhpcywgb3JpZ2luSWRlbnRpZmllci5pc29sYXRlZENvcHkoKSkpOwogICAg
IH0KIH0KIApAQCAtMzAzLDE0ICszMDIsMTQgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c2V0T3Jp
Z2luRGV0YWlscyhjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmkKICAg
ICAgICAgbV9vcmlnaW5TZXQuYWRkKG9yaWdpbklkZW50aWZpZXIpOwogICAgIH0KIAotICAgIEZ1
bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9uID0gYmluZCgmU3RvcmFnZVRyYWNrZXI6OnN5bmNTZXRP
cmlnaW5EZXRhaWxzLCB0aGlzLCBvcmlnaW5JZGVudGlmaWVyLmlzb2xhdGVkQ29weSgpLCBkYXRh
YmFzZUZpbGUuaXNvbGF0ZWRDb3B5KCkpOworICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZnVu
Y3Rpb24gPSBzdGQ6OmJpbmQoJlN0b3JhZ2VUcmFja2VyOjpzeW5jU2V0T3JpZ2luRGV0YWlscywg
dGhpcywgb3JpZ2luSWRlbnRpZmllci5pc29sYXRlZENvcHkoKSwgZGF0YWJhc2VGaWxlLmlzb2xh
dGVkQ29weSgpKTsKIAogICAgIGlmIChpc01haW5UaHJlYWQoKSkgewogICAgICAgICBBU1NFUlQo
bV90aHJlYWQpOwotICAgICAgICBtX3RocmVhZC0+ZGlzcGF0Y2goZnVuY3Rpb24pOworICAgICAg
ICBtX3RocmVhZC0+ZGlzcGF0Y2goc3RkOjptb3ZlKGZ1bmN0aW9uKSk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgLy8gRklYTUU6IFRoaXMgd2VpcmQgcGluZy1wb25naW5nIHdhcyBkb25lIHRvIGZp
eCBhIGRlYWRsb2NrLiBXZSBzaG91bGQgZmlndXJlIG91dCBhIGNsZWFuZXIgd2F5IHRvIGF2b2lk
IGl0IGluc3RlYWQuCi0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoYmluZCgmU3RvcmFnZVRocmVh
ZDo6ZGlzcGF0Y2gsIG1fdGhyZWFkLmdldCgpLCBmdW5jdGlvbikpOworICAgICAgICBjYWxsT25N
YWluVGhyZWFkKHN0ZDo6YmluZCgmU3RvcmFnZVRocmVhZDo6ZGlzcGF0Y2gsIG1fdGhyZWFkLmdl
dCgpLCBzdGQ6Om1vdmUoZnVuY3Rpb24pKSk7CiAgICAgfQogfQogCkBAIC0zODMsNyArMzgyLDcg
QEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6ZGVsZXRlQWxsT3JpZ2lucygpCiAKICAgICBQYWdlR3Jv
dXA6OmNsZWFyTG9jYWxTdG9yYWdlRm9yQWxsT3JpZ2lucygpOwogCi0gICAgbV90aHJlYWQtPmRp
c3BhdGNoKGJpbmQoJlN0b3JhZ2VUcmFja2VyOjpzeW5jRGVsZXRlQWxsT3JpZ2lucywgdGhpcykp
OworICAgIG1fdGhyZWFkLT5kaXNwYXRjaChzdGQ6OmJpbmQoJlN0b3JhZ2VUcmFja2VyOjpzeW5j
RGVsZXRlQWxsT3JpZ2lucywgdGhpcykpOwogfQogICAgIAogdm9pZCBTdG9yYWdlVHJhY2tlcjo6
c3luY0RlbGV0ZUFsbE9yaWdpbnMoKQpAQCAtNDgwLDcgKzQ3OSw3IEBAIHZvaWQgU3RvcmFnZVRy
YWNrZXI6OmRlbGV0ZU9yaWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogICAgICAgICBtX29y
aWdpblNldC5yZW1vdmUob3JpZ2luSWQpOwogICAgIH0KIAotICAgIG1fdGhyZWFkLT5kaXNwYXRj
aChiaW5kKCZTdG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0ZU9yaWdpbiwgdGhpcywgb3JpZ2luSWQu
aXNvbGF0ZWRDb3B5KCkpKTsKKyAgICBtX3RocmVhZC0+ZGlzcGF0Y2goc3RkOjpiaW5kKCZTdG9y
YWdlVHJhY2tlcjo6c3luY0RlbGV0ZU9yaWdpbiwgdGhpcywgb3JpZ2luSWQuaXNvbGF0ZWRDb3B5
KCkpKTsKIH0KIAogdm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0ZU9yaWdpbihjb25zdCBT
dHJpbmcmIG9yaWdpbklkZW50aWZpZXIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220324</attachid>
            <date>2014-01-03 11:26:53 -0800</date>
            <delta_ts>2014-01-06 06:49:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126435-20140103202650.patch</filename>
            <type>text/plain</type>
            <size>10837</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxMjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTViYjI3MzFiMDRmMDMy
NTc0Njk5MDg1OTJlNGRiNDE4MzFhMDMwOC4uZjBkNjU3NDVjZTAxZjgxYjkzYzMwMTY3YTZmMWQ2
M2E1ZTI4YzE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTAxLTAzICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBNb3ZlIFdlYkNvcmUg
c3RvcmFnZSBjb2RlIHRvIHN0ZDo6YmluZCwgc3RkOjpmdW5jdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NDM1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHN0ZDo6YmluZCBpbnN0ZWFkIG9m
IFdURjo6YmluZCBhbmQgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBpbnN0ZWFkIG9mIFdURjo6RnVu
Y3Rpb248dm9pZCAoKT4KKyAgICAgICAgaW4gU3RvcmFnZUFyZWFTeW5jLCBTdG9yYWdlU3luY01h
bmFnZXIsIFN0b3JhZ2VUaHJlYWQgYW5kIFN0b3JhZ2VUcmFja2VyIGNsYXNzZXMuCisKKyAgICAg
ICAgKiBzdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9y
YWdlQXJlYVN5bmM6OlN0b3JhZ2VBcmVhU3luYyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdl
QXJlYVN5bmM6OnNjaGVkdWxlRmluYWxTeW5jKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VB
cmVhU3luYzo6c3luY1RpbWVyRmlyZWQpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVN5bmNN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VTeW5jTWFuYWdlcjo6ZGlzcGF0
Y2gpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2VyLmg6CisgICAgICAgICog
c3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUaHJl
YWQ6OmRpc3BhdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUaHJlYWQ6OnRlcm1pbmF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVGhyZWFkOjpyZWxlYXNlRmFzdE1hbGxvY0Zy
ZWVNZW1vcnlJbkFsbFRocmVhZHMpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVRocmVhZC5o
OgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3RvcmFnZVRyYWNrZXI6OmltcG9ydE9yaWdpbklkZW50aWZpZXJzKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpzeW5jSW1wb3J0T3JpZ2luSWRlbnRpZmllcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnN5bmNGaWxlU3lzdGVtQW5kVHJhY2tlckRh
dGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpzZXRPcmlnaW5EZXRh
aWxzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpkZWxldGVBbGxPcmlnaW5z
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpkZWxldGVPcmlnaW4pOgorCiAy
MDE0LTAxLTAyICBKYWVodW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CiAKICAgICAg
ICAgSWNvbkNvbnRyb2xsZXIuY3BwIG5lZWRzIHRvIGluY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcAppbmRleCA3YjAy
NjdmMTUwN2FhMDc1ZTU4OGIxZDcxMjUzMTNjZTRjODk5NjJlLi4yYTYxMTI2ZGQ4NWJhODI3OGY2
NjQzYTc0NzdiZTJhZmQ3MmQ0YmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VBcmVhU3luYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
QXJlYVN5bmMuY3BwCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAiU3RvcmFnZVN5bmNNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVRyYWNrZXIuaCIKICNpbmNsdWRlICJTdWRkZW5UZXJt
aW5hdGlvbi5oIgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTc1LDcgKzc0
LDcgQEAgaW5saW5lIFN0b3JhZ2VBcmVhU3luYzo6U3RvcmFnZUFyZWFTeW5jKFBhc3NSZWZQdHI8
U3RvcmFnZVN5bmNNYW5hZ2VyPiBzdG9yYWdlU3kKIAogICAgIC8vIEZJWE1FOiBJZiBpdCBjYW4n
dCBpbXBvcnQsIHRoZW4gdGhlIGRlZmF1bHQgV2ViS2l0IGJlaGF2aW9yIHNob3VsZCBiZSB0aGF0
IG9mIHByaXZhdGUgYnJvd3NpbmcsCiAgICAgLy8gbm90IHNpbGVudGx5IGlnbm9yaW5nIGl0LiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU4OTQKLSAgICBtX3N5bmNN
YW5hZ2VyLT5kaXNwYXRjaChiaW5kKCZTdG9yYWdlQXJlYVN5bmM6OnBlcmZvcm1JbXBvcnQsIHRo
aXMpKTsKKyAgICBtX3N5bmNNYW5hZ2VyLT5kaXNwYXRjaChzdGQ6OmJpbmQoJlN0b3JhZ2VBcmVh
U3luYzo6cGVyZm9ybUltcG9ydCwgdGhpcykpOwogfQogCiBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVh
U3luYz4gU3RvcmFnZUFyZWFTeW5jOjpjcmVhdGUoUGFzc1JlZlB0cjxTdG9yYWdlU3luY01hbmFn
ZXI+IHN0b3JhZ2VTeW5jTWFuYWdlciwgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYUltcGw+IHN0b3Jh
Z2VBcmVhLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRlbnRpZmllcikKQEAgLTExMSw3ICsxMTAs
NyBAQCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6c2NoZWR1bGVGaW5hbFN5bmMoKQogICAgIG1fZmlu
YWxTeW5jU2NoZWR1bGVkID0gdHJ1ZTsKICAgICBzeW5jVGltZXJGaXJlZCgmbV9zeW5jVGltZXIp
OwogCi0gICAgbV9zeW5jTWFuYWdlci0+ZGlzcGF0Y2goYmluZCgmU3RvcmFnZUFyZWFTeW5jOjpk
ZWxldGVFbXB0eURhdGFiYXNlLCB0aGlzKSk7CisgICAgbV9zeW5jTWFuYWdlci0+ZGlzcGF0Y2go
c3RkOjpiaW5kKCZTdG9yYWdlQXJlYVN5bmM6OmRlbGV0ZUVtcHR5RGF0YWJhc2UsIHRoaXMpKTsK
IH0KIAogdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnNjaGVkdWxlSXRlbUZvclN5bmMoY29uc3QgU3Ry
aW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpCkBAIC0yMTMsNyArMjEyLDcgQEAgdm9pZCBT
dG9yYWdlQXJlYVN5bmM6OnN5bmNUaW1lckZpcmVkKFRpbWVyPFN0b3JhZ2VBcmVhU3luYz4qKQog
ICAgICAgICAgICAgLy8gcGVyZm9ybVN5bmMgZnVuY3Rpb24uCiAgICAgICAgICAgICBkaXNhYmxl
U3VkZGVuVGVybWluYXRpb24oKTsKIAotICAgICAgICAgICAgbV9zeW5jTWFuYWdlci0+ZGlzcGF0
Y2goYmluZCgmU3RvcmFnZUFyZWFTeW5jOjpwZXJmb3JtU3luYywgdGhpcykpOworICAgICAgICAg
ICAgbV9zeW5jTWFuYWdlci0+ZGlzcGF0Y2goc3RkOjpiaW5kKCZTdG9yYWdlQXJlYVN5bmM6OnBl
cmZvcm1TeW5jLCB0aGlzKSk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2VyLmNwcAppbmRleCAyMjE5N2Q1Nzk1NDA1MmM5ZjI1
MDYyMmRiMDdmNzQ2NDEwOGFjNjBlLi4wZmU3YjUyOWNjNmUzN2MxN2Y1ZmI5MjcxMjZkOTZkODBh
ODU4NGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIu
Y3BwCkBAIC03MSw3ICs3MSw3IEBAIFN0cmluZyBTdG9yYWdlU3luY01hbmFnZXI6OmZ1bGxEYXRh
YmFzZUZpbGVuYW1lKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZGVudGlmaWVyCiAgICAgcmV0dXJu
IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX3BhdGgsIGRhdGFiYXNlSWRlbnRpZmllciArICIu
bG9jYWxzdG9yYWdlIik7CiB9CiAKLXZvaWQgU3RvcmFnZVN5bmNNYW5hZ2VyOjpkaXNwYXRjaChj
b25zdCBGdW5jdGlvbjx2b2lkICgpPiYgZnVuY3Rpb24pCit2b2lkIFN0b3JhZ2VTeW5jTWFuYWdl
cjo6ZGlzcGF0Y2goY29uc3Qgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiYgZnVuY3Rpb24pCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQobV90aHJlYWQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2VyLmgKaW5kZXggNjRkMDEwMDk3MmNk
MDdhMzcxZjE5ZWU2MmZjMjI5Y2I0MDc5YzBhMi4uNDg2NTFjYTFkMjM0YmU2ZDYzZTc5MjhjYTE4
N2M4MTMxZDlkZmMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
U3luY01hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFu
YWdlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFN0b3JhZ2VTeW5jTWFuYWdlcl9oCiAj
ZGVmaW5lIFN0b3JhZ2VTeW5jTWFuYWdlcl9oCiAKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNDEsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNNYW5hZ2VyPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBw
YXRoKTsKICAgICB+U3RvcmFnZVN5bmNNYW5hZ2VyKCk7CiAKLSAgICB2b2lkIGRpc3BhdGNoKGNv
bnN0IEZ1bmN0aW9uPHZvaWQgKCk+Jik7CisgICAgdm9pZCBkaXNwYXRjaChjb25zdCBzdGQ6OmZ1
bmN0aW9uPHZvaWQgKCk+Jik7CiAgICAgdm9pZCBjbG9zZSgpOwogCiBwcml2YXRlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRocmVhZC5jcHAKaW5kZXggNzhmYmU3MDMyOWM3N2NjMWZj
NDMzOGVkMjVlYjc1OTcyZDc4ODJlMy4uY2ZlMGI1MzRmYmFhMjEwM2JhYzhhOTI3NGY5NGM5NThi
ODFmNDFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGhyZWFk
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwCkBAIC03
NiwxMSArNzYsMTEgQEAgdm9pZCBTdG9yYWdlVGhyZWFkOjp0aHJlYWRFbnRyeVBvaW50KCkKICAg
ICB9CiB9CiAKLXZvaWQgU3RvcmFnZVRocmVhZDo6ZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9p
ZCAoKT4mIGZ1bmN0aW9uKQordm9pZCBTdG9yYWdlVGhyZWFkOjpkaXNwYXRjaChjb25zdCBzdGQ6
OmZ1bmN0aW9uPHZvaWQgKCk+JiBmdW5jdGlvbikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwogICAgIEFTU0VSVCghbV9xdWV1ZS5raWxsZWQoKSAmJiBtX3RocmVhZElEKTsKLSAgICBt
X3F1ZXVlLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEZ1bmN0aW9uPHZvaWQgKCk+PihmdW5jdGlv
bikpOworICAgIG1fcXVldWUuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpmdW5jdGlvbjx2
b2lkICgpPj4oZnVuY3Rpb24pKTsKIH0KIAogdm9pZCBTdG9yYWdlVGhyZWFkOjp0ZXJtaW5hdGUo
KQpAQCAtOTIsNyArOTIsNyBAQCB2b2lkIFN0b3JhZ2VUaHJlYWQ6OnRlcm1pbmF0ZSgpCiAgICAg
aWYgKCFtX3RocmVhZElEKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3F1ZXVlLmFwcGVuZChz
dGQ6Om1ha2VfdW5pcXVlPEZ1bmN0aW9uPHZvaWQgKCk+PihiaW5kKCZTdG9yYWdlVGhyZWFkOjpw
ZXJmb3JtVGVybWluYXRlLCB0aGlzKSkpOworICAgIG1fcXVldWUuYXBwZW5kKHN0ZDo6bWFrZV91
bmlxdWU8c3RkOjpmdW5jdGlvbjx2b2lkICgpPj4oc3RkOjpiaW5kKCZTdG9yYWdlVGhyZWFkOjpw
ZXJmb3JtVGVybWluYXRlLCB0aGlzKSkpOwogICAgIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKG1f
dGhyZWFkSUQpOwogICAgIEFTU0VSVChtX3F1ZXVlLmtpbGxlZCgpKTsKICAgICBtX3RocmVhZElE
ID0gMDsKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIFN0b3JhZ2VUaHJlYWQ6OnJlbGVhc2VGYXN0
TWFsbG9jRnJlZU1lbW9yeUluQWxsVGhyZWFkcygpCiAgICAgSGFzaFNldDxTdG9yYWdlVGhyZWFk
Kj4mIHRocmVhZHMgPSBhY3RpdmVTdG9yYWdlVGhyZWFkcygpOwogCiAgICAgZm9yIChIYXNoU2V0
PFN0b3JhZ2VUaHJlYWQqPjo6aXRlcmF0b3IgaXQgPSB0aHJlYWRzLmJlZ2luKCksIGVuZCA9IHRo
cmVhZHMuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgKCppdCktPmRpc3BhdGNoKGJp
bmQoV1RGOjpyZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnkpKTsKKyAgICAgICAgKCppdCktPmRp
c3BhdGNoKHN0ZDo6YmluZChXVEY6OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeSkpOwogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRocmVhZC5oCmluZGV4IDhmMDkyZDA4MDZj
ZDFlMzNmZTU3NzczMWFlMDUyOTgxOWY0NjAxMzEuLjI2M2M3OGU4MjYyZTljZmQ4NjVkZGQ1OTAx
OTU0OTJmNWU3ODUzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZVRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRocmVhZC5oCkBA
IC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIFN0b3JhZ2VUaHJlYWRfaAogI2RlZmluZSBTdG9yYWdl
VGhyZWFkX2gKIAotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbmFsLmg+CisjaW5jbHVkZSA8ZnVuY3Rp
b25hbD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9NZXNzYWdlUXVl
dWUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtNDYsNyArNDYsNyBAQCBwdWJs
aWM6CiAgICAgYm9vbCBzdGFydCgpOwogICAgIHZvaWQgdGVybWluYXRlKCk7CiAKLSAgICB2b2lk
IGRpc3BhdGNoKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKTsKKyAgICB2b2lkIGRpc3BhdGNoKGNv
bnN0IHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4mKTsKIAogICAgIHN0YXRpYyB2b2lkIHJlbGVhc2VG
YXN0TWFsbG9jRnJlZU1lbW9yeUluQWxsVGhyZWFkcygpOwogCkBAIC01OSw3ICs1OSw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBwZXJmb3JtVGVybWluYXRlKCk7CiAKICAgICBUaHJlYWRJZGVudGlm
aWVyIG1fdGhyZWFkSUQ7Ci0gICAgTWVzc2FnZVF1ZXVlPEZ1bmN0aW9uPHZvaWQgKCk+PiBtX3F1
ZXVlOworICAgIE1lc3NhZ2VRdWV1ZTxzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+PiBtX3F1ZXVlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3Jh
Z2VUcmFja2VyLmNwcAppbmRleCA5NzZkY2RhZWY0YjA4ZTYxYmU4NDFlNTdhODI1MDE1ZDdkYTZi
MTE1Li4yNzEyZmVjYzJlYTRjNjdlMjBlNDdlOWRkZjZkMTIzNDBkNmYzMGVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVRyYWNrZXJDbGllbnQu
aCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb25hbC5o
PgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTE3Myw3ICsxNzIsNyBAQCB2b2lkIFN0
b3JhZ2VUcmFja2VyOjppbXBvcnRPcmlnaW5JZGVudGlmaWVycygpCiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKICAgICBBU1NFUlQobV90aHJlYWQpOwogCi0gICAgbV90aHJlYWQtPmRpc3Bh
dGNoKGJpbmQoJlN0b3JhZ2VUcmFja2VyOjpzeW5jSW1wb3J0T3JpZ2luSWRlbnRpZmllcnMsIHRo
aXMpKTsKKyAgICBtX3RocmVhZC0+ZGlzcGF0Y2goc3RkOjpiaW5kKCZTdG9yYWdlVHJhY2tlcjo6
c3luY0ltcG9ydE9yaWdpbklkZW50aWZpZXJzLCB0aGlzKSk7CiB9CiAKIHZvaWQgU3RvcmFnZVRy
YWNrZXI6OmZpbmlzaGVkSW1wb3J0aW5nT3JpZ2luSWRlbnRpZmllcnMoKQpAQCAtMjM2LDcgKzIz
NSw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNJbXBvcnRPcmlnaW5JZGVudGlmaWVycygp
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBjYWxsT25NYWluVGhyZWFkKGJpbmQoJlN0b3JhZ2VU
cmFja2VyOjpmaW5pc2hlZEltcG9ydGluZ09yaWdpbklkZW50aWZpZXJzLCB0aGlzKSk7CisgICAg
Y2FsbE9uTWFpblRocmVhZChzdGQ6OmJpbmQoJlN0b3JhZ2VUcmFja2VyOjpmaW5pc2hlZEltcG9y
dGluZ09yaWdpbklkZW50aWZpZXJzLCB0aGlzKSk7CiB9CiAgICAgCiB2b2lkIFN0b3JhZ2VUcmFj
a2VyOjpzeW5jRmlsZVN5c3RlbUFuZFRyYWNrZXJEYXRhYmFzZSgpCkBAIC0yODUsNyArMjg0LDcg
QEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY0ZpbGVTeXN0ZW1BbmRUcmFja2VyRGF0YWJhc2Uo
KQogICAgICAgICBpZiAoZm91bmRPcmlnaW5zLmNvbnRhaW5zKG9yaWdpbklkZW50aWZpZXIpKQog
ICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChiaW5kKCZT
dG9yYWdlVHJhY2tlcjo6ZGVsZXRlT3JpZ2luV2l0aElkZW50aWZpZXIsIHRoaXMsIG9yaWdpbklk
ZW50aWZpZXIuaXNvbGF0ZWRDb3B5KCkpKTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChzdGQ6
OmJpbmQoJlN0b3JhZ2VUcmFja2VyOjpkZWxldGVPcmlnaW5XaXRoSWRlbnRpZmllciwgdGhpcywg
b3JpZ2luSWRlbnRpZmllci5pc29sYXRlZENvcHkoKSkpOwogICAgIH0KIH0KIApAQCAtMzAzLDE0
ICszMDIsMTQgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c2V0T3JpZ2luRGV0YWlscyhjb25zdCBT
dHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmkKICAgICAgICAgbV9vcmlnaW5TZXQu
YWRkKG9yaWdpbklkZW50aWZpZXIpOwogICAgIH0KIAotICAgIEZ1bmN0aW9uPHZvaWQgKCk+IGZ1
bmN0aW9uID0gYmluZCgmU3RvcmFnZVRyYWNrZXI6OnN5bmNTZXRPcmlnaW5EZXRhaWxzLCB0aGlz
LCBvcmlnaW5JZGVudGlmaWVyLmlzb2xhdGVkQ29weSgpLCBkYXRhYmFzZUZpbGUuaXNvbGF0ZWRD
b3B5KCkpOworICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rpb24gPSBzdGQ6OmJpbmQo
JlN0b3JhZ2VUcmFja2VyOjpzeW5jU2V0T3JpZ2luRGV0YWlscywgdGhpcywgb3JpZ2luSWRlbnRp
Zmllci5pc29sYXRlZENvcHkoKSwgZGF0YWJhc2VGaWxlLmlzb2xhdGVkQ29weSgpKTsKIAogICAg
IGlmIChpc01haW5UaHJlYWQoKSkgewogICAgICAgICBBU1NFUlQobV90aHJlYWQpOwotICAgICAg
ICBtX3RocmVhZC0+ZGlzcGF0Y2goZnVuY3Rpb24pOworICAgICAgICBtX3RocmVhZC0+ZGlzcGF0
Y2goc3RkOjptb3ZlKGZ1bmN0aW9uKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gRklYTUU6
IFRoaXMgd2VpcmQgcGluZy1wb25naW5nIHdhcyBkb25lIHRvIGZpeCBhIGRlYWRsb2NrLiBXZSBz
aG91bGQgZmlndXJlIG91dCBhIGNsZWFuZXIgd2F5IHRvIGF2b2lkIGl0IGluc3RlYWQuCi0gICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoYmluZCgmU3RvcmFnZVRocmVhZDo6ZGlzcGF0Y2gsIG1fdGhy
ZWFkLmdldCgpLCBmdW5jdGlvbikpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKHN0ZDo6Ymlu
ZCgmU3RvcmFnZVRocmVhZDo6ZGlzcGF0Y2gsIG1fdGhyZWFkLmdldCgpLCBzdGQ6Om1vdmUoZnVu
Y3Rpb24pKSk7CiAgICAgfQogfQogCkBAIC0zODMsNyArMzgyLDcgQEAgdm9pZCBTdG9yYWdlVHJh
Y2tlcjo6ZGVsZXRlQWxsT3JpZ2lucygpCiAKICAgICBQYWdlR3JvdXA6OmNsZWFyTG9jYWxTdG9y
YWdlRm9yQWxsT3JpZ2lucygpOwogCi0gICAgbV90aHJlYWQtPmRpc3BhdGNoKGJpbmQoJlN0b3Jh
Z2VUcmFja2VyOjpzeW5jRGVsZXRlQWxsT3JpZ2lucywgdGhpcykpOworICAgIG1fdGhyZWFkLT5k
aXNwYXRjaChzdGQ6OmJpbmQoJlN0b3JhZ2VUcmFja2VyOjpzeW5jRGVsZXRlQWxsT3JpZ2lucywg
dGhpcykpOwogfQogICAgIAogdm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0ZUFsbE9yaWdp
bnMoKQpAQCAtNDgwLDcgKzQ3OSw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OmRlbGV0ZU9yaWdp
bihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogICAgICAgICBtX29yaWdpblNldC5yZW1vdmUob3Jp
Z2luSWQpOwogICAgIH0KIAotICAgIG1fdGhyZWFkLT5kaXNwYXRjaChiaW5kKCZTdG9yYWdlVHJh
Y2tlcjo6c3luY0RlbGV0ZU9yaWdpbiwgdGhpcywgb3JpZ2luSWQuaXNvbGF0ZWRDb3B5KCkpKTsK
KyAgICBtX3RocmVhZC0+ZGlzcGF0Y2goc3RkOjpiaW5kKCZTdG9yYWdlVHJhY2tlcjo6c3luY0Rl
bGV0ZU9yaWdpbiwgdGhpcywgb3JpZ2luSWQuaXNvbGF0ZWRDb3B5KCkpKTsKIH0KIAogdm9pZCBT
dG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0ZU9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50
aWZpZXIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220433</attachid>
            <date>2014-01-06 06:49:09 -0800</date>
            <delta_ts>2014-01-07 02:16:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126435-20140106064908.patch</filename>
            <type>text/plain</type>
            <size>11195</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxMzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdjMjkyZWY5ODFkNTEx
OGU0NmUyYWJiYWUzMTJhZGY1YmRiYzg2MS4uZmNjOWJjMzM4MWYxZjViNjEwYjJjMTUyYWFjNmJh
MzQ2MzUxYzgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTAxLTA2ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBNb3ZlIFdlYkNvcmUg
c3RvcmFnZSBjb2RlIHRvIHN0ZDo6YmluZCwgc3RkOjpmdW5jdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NDM1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHN0ZDo6YmluZCBpbnN0ZWFkIG9m
IFdURjo6YmluZCBhbmQgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBpbnN0ZWFkIG9mIFdURjo6RnVu
Y3Rpb248dm9pZCAoKT4KKyAgICAgICAgaW4gU3RvcmFnZUFyZWFTeW5jLCBTdG9yYWdlU3luY01h
bmFnZXIsIFN0b3JhZ2VUaHJlYWQgYW5kIFN0b3JhZ2VUcmFja2VyIGNsYXNzZXMuCisKKyAgICAg
ICAgKiBzdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9y
YWdlQXJlYVN5bmM6OlN0b3JhZ2VBcmVhU3luYyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdl
QXJlYVN5bmM6OnNjaGVkdWxlRmluYWxTeW5jKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VB
cmVhU3luYzo6c3luY1RpbWVyRmlyZWQpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVN5bmNN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VTeW5jTWFuYWdlcjo6ZGlzcGF0
Y2gpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2VyLmg6CisgICAgICAgICog
c3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUaHJl
YWQ6OmRpc3BhdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUaHJlYWQ6OnRlcm1pbmF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVGhyZWFkOjpyZWxlYXNlRmFzdE1hbGxvY0Zy
ZWVNZW1vcnlJbkFsbFRocmVhZHMpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVRocmVhZC5o
OgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3RvcmFnZVRyYWNrZXI6OmltcG9ydE9yaWdpbklkZW50aWZpZXJzKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpzeW5jSW1wb3J0T3JpZ2luSWRlbnRpZmllcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnN5bmNGaWxlU3lzdGVtQW5kVHJhY2tlckRh
dGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpzZXRPcmlnaW5EZXRh
aWxzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpkZWxldGVBbGxPcmlnaW5z
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpkZWxldGVPcmlnaW4pOgorCiAy
MDE0LTAxLTA1ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBV
c2UgbGluZWFnZU9mVHlwZSB0byBzaW1wbGlmeSB0d28gcmVuZGVyaW5nIGhlbHBlcnMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAKaW5kZXggN2IwMjY3ZjE1MDdh
YTA3NWU1ODhiMWQ3MTI1MzEzY2U0Yzg5OTYyZS4uMzk5Y2YxODE0NDFmMWYyYjNlODQ1OGE5Mzg2
NDU5YTY2YTMxZWJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
QXJlYVN5bmMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5j
LmNwcApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIlN0b3JhZ2VTeW5jTWFuYWdlci5oIgog
I2luY2x1ZGUgIlN0b3JhZ2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiU3VkZGVuVGVybWluYXRpb24u
aCIKLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFk
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC03NSw3ICs3NCw4IEBAIGlu
bGluZSBTdG9yYWdlQXJlYVN5bmM6OlN0b3JhZ2VBcmVhU3luYyhQYXNzUmVmUHRyPFN0b3JhZ2VT
eW5jTWFuYWdlcj4gc3RvcmFnZVN5CiAKICAgICAvLyBGSVhNRTogSWYgaXQgY2FuJ3QgaW1wb3J0
LCB0aGVuIHRoZSBkZWZhdWx0IFdlYktpdCBiZWhhdmlvciBzaG91bGQgYmUgdGhhdCBvZiBwcml2
YXRlIGJyb3dzaW5nLAogICAgIC8vIG5vdCBzaWxlbnRseSBpZ25vcmluZyBpdC4gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1ODk0Ci0gICAgbV9zeW5jTWFuYWdlci0+
ZGlzcGF0Y2goYmluZCgmU3RvcmFnZUFyZWFTeW5jOjpwZXJmb3JtSW1wb3J0LCB0aGlzKSk7Cisg
ICAgbV9zeW5jTWFuYWdlci0+ZGlzcGF0Y2goc3RkOjpiaW5kKCZTdG9yYWdlQXJlYVN5bmM6OnBl
cmZvcm1JbXBvcnQsCisgICAgICAgIHN0ZDo6YmluZChbXShjb25zdCBSZWZQdHI8U3RvcmFnZUFy
ZWFTeW5jPiYgc3RvcmFnZUFyZWEpIHsgcmV0dXJuIHN0b3JhZ2VBcmVhLmdldCgpOyB9LCBSZWZQ
dHI8U3RvcmFnZUFyZWFTeW5jPih0aGlzKSkpKTsKIH0KIAogUGFzc1JlZlB0cjxTdG9yYWdlQXJl
YVN5bmM+IFN0b3JhZ2VBcmVhU3luYzo6Y3JlYXRlKFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNNYW5h
Z2VyPiBzdG9yYWdlU3luY01hbmFnZXIsIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFJbXBsPiBzdG9y
YWdlQXJlYSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkZW50aWZpZXIpCkBAIC0xMTEsNyArMTEx
LDggQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnNjaGVkdWxlRmluYWxTeW5jKCkKICAgICBtX2Zp
bmFsU3luY1NjaGVkdWxlZCA9IHRydWU7CiAgICAgc3luY1RpbWVyRmlyZWQoJm1fc3luY1RpbWVy
KTsKIAotICAgIG1fc3luY01hbmFnZXItPmRpc3BhdGNoKGJpbmQoJlN0b3JhZ2VBcmVhU3luYzo6
ZGVsZXRlRW1wdHlEYXRhYmFzZSwgdGhpcykpOworICAgIG1fc3luY01hbmFnZXItPmRpc3BhdGNo
KHN0ZDo6YmluZCgmU3RvcmFnZUFyZWFTeW5jOjpkZWxldGVFbXB0eURhdGFiYXNlLAorICAgICAg
ICBzdGQ6OmJpbmQoW10oY29uc3QgUmVmUHRyPFN0b3JhZ2VBcmVhU3luYz4mIHN0b3JhZ2VBcmVh
KSB7IHJldHVybiBzdG9yYWdlQXJlYS5nZXQoKTsgfSwgUmVmUHRyPFN0b3JhZ2VBcmVhU3luYz4o
dGhpcykpKSk7CiB9CiAKIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpzY2hlZHVsZUl0ZW1Gb3JTeW5j
KGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKQpAQCAtMjEzLDcgKzIxNCw4
IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpzeW5jVGltZXJGaXJlZChUaW1lcjxTdG9yYWdlQXJl
YVN5bmM+KikKICAgICAgICAgICAgIC8vIHBlcmZvcm1TeW5jIGZ1bmN0aW9uLgogICAgICAgICAg
ICAgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAKLSAgICAgICAgICAgIG1fc3luY01hbmFn
ZXItPmRpc3BhdGNoKGJpbmQoJlN0b3JhZ2VBcmVhU3luYzo6cGVyZm9ybVN5bmMsIHRoaXMpKTsK
KyAgICAgICAgICAgIG1fc3luY01hbmFnZXItPmRpc3BhdGNoKHN0ZDo6YmluZCgmU3RvcmFnZUFy
ZWFTeW5jOjpwZXJmb3JtU3luYywKKyAgICAgICAgICAgICAgICBzdGQ6OmJpbmQoW10oY29uc3Qg
UmVmUHRyPFN0b3JhZ2VBcmVhU3luYz4mIHN0b3JhZ2VBcmVhKSB7IHJldHVybiBzdG9yYWdlQXJl
YS5nZXQoKTsgfSwgUmVmUHRyPFN0b3JhZ2VBcmVhU3luYz4odGhpcykpKSk7CiAgICAgICAgIH0K
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVN5bmNN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2VyLmNw
cAppbmRleCAyMjE5N2Q1Nzk1NDA1MmM5ZjI1MDYyMmRiMDdmNzQ2NDEwOGFjNjBlLi4wZmU3YjUy
OWNjNmUzN2MxN2Y1ZmI5MjcxMjZkOTZkODBhODU4NGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwCkBAIC03MSw3ICs3MSw3IEBAIFN0cmluZyBT
dG9yYWdlU3luY01hbmFnZXI6OmZ1bGxEYXRhYmFzZUZpbGVuYW1lKGNvbnN0IFN0cmluZyYgZGF0
YWJhc2VJZGVudGlmaWVyCiAgICAgcmV0dXJuIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX3Bh
dGgsIGRhdGFiYXNlSWRlbnRpZmllciArICIubG9jYWxzdG9yYWdlIik7CiB9CiAKLXZvaWQgU3Rv
cmFnZVN5bmNNYW5hZ2VyOjpkaXNwYXRjaChjb25zdCBGdW5jdGlvbjx2b2lkICgpPiYgZnVuY3Rp
b24pCit2b2lkIFN0b3JhZ2VTeW5jTWFuYWdlcjo6ZGlzcGF0Y2goY29uc3Qgc3RkOjpmdW5jdGlv
bjx2b2lkICgpPiYgZnVuY3Rpb24pCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAg
ICBBU1NFUlQobV90aHJlYWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlU3luY01hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVN5bmNN
YW5hZ2VyLmgKaW5kZXggNjRkMDEwMDk3MmNkMDdhMzcxZjE5ZWU2MmZjMjI5Y2I0MDc5YzBhMi4u
NDg2NTFjYTFkMjM0YmU2ZDYzZTc5MjhjYTE4N2M4MTMxZDlkZmMwYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZu
ZGVmIFN0b3JhZ2VTeW5jTWFuYWdlcl9oCiAjZGVmaW5lIFN0b3JhZ2VTeW5jTWFuYWdlcl9oCiAK
KyNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNDEs
NyArNDIsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNNYW5h
Z2VyPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXRoKTsKICAgICB+U3RvcmFnZVN5bmNNYW5hZ2Vy
KCk7CiAKLSAgICB2b2lkIGRpc3BhdGNoKGNvbnN0IEZ1bmN0aW9uPHZvaWQgKCk+Jik7CisgICAg
dm9pZCBkaXNwYXRjaChjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+Jik7CiAgICAgdm9pZCBj
bG9zZSgpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRocmVhZC5j
cHAKaW5kZXggNzhmYmU3MDMyOWM3N2NjMWZjNDMzOGVkMjVlYjc1OTcyZDc4ODJlMy4uZGFhN2U5
MjdkM2QwMGJiYTI5MWYwZjQ1MmFkZDJjZjZiMDRiZjZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VUaHJlYWQuY3BwCkBAIC03NiwxMSArNzYsMTEgQEAgdm9pZCBTdG9yYWdlVGhy
ZWFkOjp0aHJlYWRFbnRyeVBvaW50KCkKICAgICB9CiB9CiAKLXZvaWQgU3RvcmFnZVRocmVhZDo6
ZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCAoKT4mIGZ1bmN0aW9uKQordm9pZCBTdG9yYWdl
VGhyZWFkOjpkaXNwYXRjaChjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+JiBmdW5jdGlvbikK
IHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVCghbV9xdWV1ZS5raWxs
ZWQoKSAmJiBtX3RocmVhZElEKTsKLSAgICBtX3F1ZXVlLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVl
PEZ1bmN0aW9uPHZvaWQgKCk+PihmdW5jdGlvbikpOworICAgIG1fcXVldWUuYXBwZW5kKHN0ZDo6
bWFrZV91bmlxdWU8c3RkOjpmdW5jdGlvbjx2b2lkICgpPj4oZnVuY3Rpb24pKTsKIH0KIAogdm9p
ZCBTdG9yYWdlVGhyZWFkOjp0ZXJtaW5hdGUoKQpAQCAtOTIsNyArOTIsNyBAQCB2b2lkIFN0b3Jh
Z2VUaHJlYWQ6OnRlcm1pbmF0ZSgpCiAgICAgaWYgKCFtX3RocmVhZElEKQogICAgICAgICByZXR1
cm47CiAKLSAgICBtX3F1ZXVlLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEZ1bmN0aW9uPHZvaWQg
KCk+PihiaW5kKCZTdG9yYWdlVGhyZWFkOjpwZXJmb3JtVGVybWluYXRlLCB0aGlzKSkpOworICAg
IG1fcXVldWUuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpmdW5jdGlvbjx2b2lkICgpPj4o
c3RkOjpiaW5kKCZTdG9yYWdlVGhyZWFkOjpwZXJmb3JtVGVybWluYXRlLCB0aGlzKSkpOwogICAg
IHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKG1fdGhyZWFkSUQpOwogICAgIEFTU0VSVChtX3F1ZXVl
LmtpbGxlZCgpKTsKICAgICBtX3RocmVhZElEID0gMDsKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lk
IFN0b3JhZ2VUaHJlYWQ6OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeUluQWxsVGhyZWFkcygp
CiAgICAgSGFzaFNldDxTdG9yYWdlVGhyZWFkKj4mIHRocmVhZHMgPSBhY3RpdmVTdG9yYWdlVGhy
ZWFkcygpOwogCiAgICAgZm9yIChIYXNoU2V0PFN0b3JhZ2VUaHJlYWQqPjo6aXRlcmF0b3IgaXQg
PSB0aHJlYWRzLmJlZ2luKCksIGVuZCA9IHRocmVhZHMuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkK
LSAgICAgICAgKCppdCktPmRpc3BhdGNoKGJpbmQoV1RGOjpyZWxlYXNlRmFzdE1hbGxvY0ZyZWVN
ZW1vcnkpKTsKKyAgICAgICAgKCppdCktPmRpc3BhdGNoKFdURjo6cmVsZWFzZUZhc3RNYWxsb2NG
cmVlTWVtb3J5KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQuaApp
bmRleCA4ZjA5MmQwODA2Y2QxZTMzZmU1Nzc3MzFhZTA1Mjk4MTlmNDYwMTMxLi4yNjNjNzhlODI2
MmU5Y2ZkODY1ZGRkNTkwMTk1NDkyZjVlNzg1MzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VUaHJlYWQuaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBTdG9yYWdlVGhyZWFkX2gK
ICNkZWZpbmUgU3RvcmFnZVRocmVhZF9oCiAKLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb25hbC5oPgor
I2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvTWVzc2FnZVF1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAgLTQ2
LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIGJvb2wgc3RhcnQoKTsKICAgICB2b2lkIHRlcm1pbmF0
ZSgpOwogCi0gICAgdm9pZCBkaXNwYXRjaChjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7CisgICAg
dm9pZCBkaXNwYXRjaChjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+Jik7CiAKICAgICBzdGF0
aWMgdm9pZCByZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnlJbkFsbFRocmVhZHMoKTsKIApAQCAt
NTksNyArNTksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGVyZm9ybVRlcm1pbmF0ZSgpOwogCiAg
ICAgVGhyZWFkSWRlbnRpZmllciBtX3RocmVhZElEOwotICAgIE1lc3NhZ2VRdWV1ZTxGdW5jdGlv
bjx2b2lkICgpPj4gbV9xdWV1ZTsKKyAgICBNZXNzYWdlUXVldWU8c3RkOjpmdW5jdGlvbjx2b2lk
ICgpPj4gbV9xdWV1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAKaW5kZXggOTc2ZGNkYWVmNGIwOGU2MWJlODQx
ZTU3YTgyNTAxNWQ3ZGE2YjExNS4uMjcxMmZlY2MyZWE0YzY3ZTIwZTQ3ZTlkZGY2ZDEyMzQwZDZm
MzBlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAKQEAgLTM2
LDcgKzM2LDYgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlN0b3Jh
Z2VUcmFja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCi0jaW5jbHVkZSA8
d3RmL0Z1bmN0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUg
PHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0xNzMsNyAr
MTcyLDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6aW1wb3J0T3JpZ2luSWRlbnRpZmllcnMoKQog
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fdGhyZWFkKTsKIAotICAg
IG1fdGhyZWFkLT5kaXNwYXRjaChiaW5kKCZTdG9yYWdlVHJhY2tlcjo6c3luY0ltcG9ydE9yaWdp
bklkZW50aWZpZXJzLCB0aGlzKSk7CisgICAgbV90aHJlYWQtPmRpc3BhdGNoKHN0ZDo6YmluZCgm
U3RvcmFnZVRyYWNrZXI6OnN5bmNJbXBvcnRPcmlnaW5JZGVudGlmaWVycywgdGhpcykpOwogfQog
CiB2b2lkIFN0b3JhZ2VUcmFja2VyOjpmaW5pc2hlZEltcG9ydGluZ09yaWdpbklkZW50aWZpZXJz
KCkKQEAgLTIzNiw3ICsyMzUsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jSW1wb3J0T3Jp
Z2luSWRlbnRpZmllcnMoKQogICAgICAgICB9CiAgICAgfQogCi0gICAgY2FsbE9uTWFpblRocmVh
ZChiaW5kKCZTdG9yYWdlVHJhY2tlcjo6ZmluaXNoZWRJbXBvcnRpbmdPcmlnaW5JZGVudGlmaWVy
cywgdGhpcykpOworICAgIGNhbGxPbk1haW5UaHJlYWQoc3RkOjpiaW5kKCZTdG9yYWdlVHJhY2tl
cjo6ZmluaXNoZWRJbXBvcnRpbmdPcmlnaW5JZGVudGlmaWVycywgdGhpcykpOwogfQogICAgIAog
dm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY0ZpbGVTeXN0ZW1BbmRUcmFja2VyRGF0YWJhc2UoKQpA
QCAtMjg1LDcgKzI4NCw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNGaWxlU3lzdGVtQW5k
VHJhY2tlckRhdGFiYXNlKCkKICAgICAgICAgaWYgKGZvdW5kT3JpZ2lucy5jb250YWlucyhvcmln
aW5JZGVudGlmaWVyKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGNhbGxPbk1h
aW5UaHJlYWQoYmluZCgmU3RvcmFnZVRyYWNrZXI6OmRlbGV0ZU9yaWdpbldpdGhJZGVudGlmaWVy
LCB0aGlzLCBvcmlnaW5JZGVudGlmaWVyLmlzb2xhdGVkQ29weSgpKSk7CisgICAgICAgIGNhbGxP
bk1haW5UaHJlYWQoc3RkOjpiaW5kKCZTdG9yYWdlVHJhY2tlcjo6ZGVsZXRlT3JpZ2luV2l0aElk
ZW50aWZpZXIsIHRoaXMsIG9yaWdpbklkZW50aWZpZXIuaXNvbGF0ZWRDb3B5KCkpKTsKICAgICB9
CiB9CiAKQEAgLTMwMywxNCArMzAyLDE0IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnNldE9yaWdp
bkRldGFpbHMoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpCiAgICAg
ICAgIG1fb3JpZ2luU2V0LmFkZChvcmlnaW5JZGVudGlmaWVyKTsKICAgICB9CiAKLSAgICBGdW5j
dGlvbjx2b2lkICgpPiBmdW5jdGlvbiA9IGJpbmQoJlN0b3JhZ2VUcmFja2VyOjpzeW5jU2V0T3Jp
Z2luRGV0YWlscywgdGhpcywgb3JpZ2luSWRlbnRpZmllci5pc29sYXRlZENvcHkoKSwgZGF0YWJh
c2VGaWxlLmlzb2xhdGVkQ29weSgpKTsKKyAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0
aW9uID0gc3RkOjpiaW5kKCZTdG9yYWdlVHJhY2tlcjo6c3luY1NldE9yaWdpbkRldGFpbHMsIHRo
aXMsIG9yaWdpbklkZW50aWZpZXIuaXNvbGF0ZWRDb3B5KCksIGRhdGFiYXNlRmlsZS5pc29sYXRl
ZENvcHkoKSk7CiAKICAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKICAgICAgICAgQVNTRVJUKG1f
dGhyZWFkKTsKLSAgICAgICAgbV90aHJlYWQtPmRpc3BhdGNoKGZ1bmN0aW9uKTsKKyAgICAgICAg
bV90aHJlYWQtPmRpc3BhdGNoKHN0ZDo6bW92ZShmdW5jdGlvbikpOwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIHdlaXJkIHBpbmctcG9uZ2luZyB3YXMgZG9uZSB0byBmaXgg
YSBkZWFkbG9jay4gV2Ugc2hvdWxkIGZpZ3VyZSBvdXQgYSBjbGVhbmVyIHdheSB0byBhdm9pZCBp
dCBpbnN0ZWFkLgotICAgICAgICBjYWxsT25NYWluVGhyZWFkKGJpbmQoJlN0b3JhZ2VUaHJlYWQ6
OmRpc3BhdGNoLCBtX3RocmVhZC5nZXQoKSwgZnVuY3Rpb24pKTsKKyAgICAgICAgY2FsbE9uTWFp
blRocmVhZChzdGQ6OmJpbmQoJlN0b3JhZ2VUaHJlYWQ6OmRpc3BhdGNoLCBtX3RocmVhZC5nZXQo
KSwgc3RkOjptb3ZlKGZ1bmN0aW9uKSkpOwogICAgIH0KIH0KIApAQCAtMzgzLDcgKzM4Miw3IEBA
IHZvaWQgU3RvcmFnZVRyYWNrZXI6OmRlbGV0ZUFsbE9yaWdpbnMoKQogCiAgICAgUGFnZUdyb3Vw
OjpjbGVhckxvY2FsU3RvcmFnZUZvckFsbE9yaWdpbnMoKTsKIAotICAgIG1fdGhyZWFkLT5kaXNw
YXRjaChiaW5kKCZTdG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0ZUFsbE9yaWdpbnMsIHRoaXMpKTsK
KyAgICBtX3RocmVhZC0+ZGlzcGF0Y2goc3RkOjpiaW5kKCZTdG9yYWdlVHJhY2tlcjo6c3luY0Rl
bGV0ZUFsbE9yaWdpbnMsIHRoaXMpKTsKIH0KICAgICAKIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5
bmNEZWxldGVBbGxPcmlnaW5zKCkKQEAgLTQ4MCw3ICs0NzksNyBAQCB2b2lkIFN0b3JhZ2VUcmFj
a2VyOjpkZWxldGVPcmlnaW4oU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKICAgICAgICAgbV9vcmln
aW5TZXQucmVtb3ZlKG9yaWdpbklkKTsKICAgICB9CiAKLSAgICBtX3RocmVhZC0+ZGlzcGF0Y2go
YmluZCgmU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVPcmlnaW4sIHRoaXMsIG9yaWdpbklkLmlz
b2xhdGVkQ29weSgpKSk7CisgICAgbV90aHJlYWQtPmRpc3BhdGNoKHN0ZDo6YmluZCgmU3RvcmFn
ZVRyYWNrZXI6OnN5bmNEZWxldGVPcmlnaW4sIHRoaXMsIG9yaWdpbklkLmlzb2xhdGVkQ29weSgp
KSk7CiB9CiAKIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVPcmlnaW4oY29uc3QgU3Ry
aW5nJiBvcmlnaW5JZGVudGlmaWVyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220505</attachid>
            <date>2014-01-07 02:16:16 -0800</date>
            <delta_ts>2014-01-08 08:24:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126435-20140107021615.patch</filename>
            <type>text/plain</type>
            <size>11031</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxMzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdjMjkyZWY5ODFkNTEx
OGU0NmUyYWJiYWUzMTJhZGY1YmRiYzg2MS4uNTk0NmVjOTI2MWVkZDg4N2JlM2RjY2RiMDRkNTdi
MzRmNWI2MjViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTAxLTA2ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBNb3ZlIFdlYkNvcmUg
c3RvcmFnZSBjb2RlIHRvIHN0ZDo6YmluZCwgQysrMTEgbGFtYmRhcywgc3RkOjpmdW5jdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NDM1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHN0ZDo6
YmluZCBvciBsYW1iZGFzIGluc3RlYWQgb2YgV1RGOjpiaW5kIGFuZCBzdGQ6OmZ1bmN0aW9uPHZv
aWQgKCk+IGluc3RlYWQgb2YgV1RGOjpGdW5jdGlvbjx2b2lkICgpPgorICAgICAgICBpbiBTdG9y
YWdlQXJlYVN5bmMsIFN0b3JhZ2VTeW5jTWFuYWdlciwgU3RvcmFnZVRocmVhZCBhbmQgU3RvcmFn
ZVRyYWNrZXIgY2xhc3Nlcy4KKworICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhU3luYzo6U3RvcmFnZUFyZWFTeW5jKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhU3luYzo6c2NoZWR1bGVGaW5hbFN5bmMpOgor
ICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjpzeW5jVGltZXJGaXJlZCk6CisgICAg
ICAgICogc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3RvcmFnZVN5bmNNYW5hZ2VyOjpkaXNwYXRjaCk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdl
U3luY01hbmFnZXIuaDoKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3RvcmFnZVRocmVhZDo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29y
ZTo6U3RvcmFnZVRocmVhZDo6dGVybWluYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VU
aHJlYWQ6OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeUluQWxsVGhyZWFkcyk6CisgICAgICAg
ICogc3RvcmFnZS9TdG9yYWdlVGhyZWFkLmg6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlVHJh
Y2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6aW1wb3J0T3JpZ2lu
SWRlbnRpZmllcnMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnN5bmNJbXBv
cnRPcmlnaW5JZGVudGlmaWVycyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6
c3luY0ZpbGVTeXN0ZW1BbmRUcmFja2VyRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6U3Rv
cmFnZVRyYWNrZXI6OnNldE9yaWdpbkRldGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFn
ZVRyYWNrZXI6OmRlbGV0ZUFsbE9yaWdpbnMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRy
YWNrZXI6OmRlbGV0ZU9yaWdpbik6CisKIDIwMTQtMDEtMDUgIEFuZHJlYXMgS2xpbmcgIDxha2xp
bmdAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBsaW5lYWdlT2ZUeXBlIHRvIHNpbXBsaWZ5IHR3
byByZW5kZXJpbmcgaGVscGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
U3RvcmFnZUFyZWFTeW5jLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFT
eW5jLmNwcAppbmRleCA3YjAyNjdmMTUwN2FhMDc1ZTU4OGIxZDcxMjUzMTNjZTRjODk5NjJlLi4y
MDVjOWMyNzQ2M2ZiZjUwZjllOGJhZjJlZTNlNTY4MzI2MWM2MzU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVk
ZSAiU3RvcmFnZVN5bmNNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVRyYWNrZXIuaCIKICNp
bmNsdWRlICJTdWRkZW5UZXJtaW5hdGlvbi5oIgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbmFsLmg+
CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CiAKQEAgLTc1LDcgKzc0LDggQEAgaW5saW5lIFN0b3JhZ2VBcmVhU3luYzo6U3RvcmFnZUFy
ZWFTeW5jKFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNNYW5hZ2VyPiBzdG9yYWdlU3kKIAogICAgIC8v
IEZJWE1FOiBJZiBpdCBjYW4ndCBpbXBvcnQsIHRoZW4gdGhlIGRlZmF1bHQgV2ViS2l0IGJlaGF2
aW9yIHNob3VsZCBiZSB0aGF0IG9mIHByaXZhdGUgYnJvd3NpbmcsCiAgICAgLy8gbm90IHNpbGVu
dGx5IGlnbm9yaW5nIGl0LiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjU4OTQKLSAgICBtX3N5bmNNYW5hZ2VyLT5kaXNwYXRjaChiaW5kKCZTdG9yYWdlQXJlYVN5bmM6
OnBlcmZvcm1JbXBvcnQsIHRoaXMpKTsKKyAgICBSZWZQdHI8U3RvcmFnZUFyZWFTeW5jPiBwcm90
ZWN0b3IodGhpcyk7CisgICAgbV9zeW5jTWFuYWdlci0+ZGlzcGF0Y2goWz1dIHsgcHJvdGVjdG9y
LT5wZXJmb3JtSW1wb3J0KCk7IH0pOwogfQogCiBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhU3luYz4g
U3RvcmFnZUFyZWFTeW5jOjpjcmVhdGUoUGFzc1JlZlB0cjxTdG9yYWdlU3luY01hbmFnZXI+IHN0
b3JhZ2VTeW5jTWFuYWdlciwgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYUltcGw+IHN0b3JhZ2VBcmVh
LCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRlbnRpZmllcikKQEAgLTExMSw3ICsxMTEsOCBAQCB2
b2lkIFN0b3JhZ2VBcmVhU3luYzo6c2NoZWR1bGVGaW5hbFN5bmMoKQogICAgIG1fZmluYWxTeW5j
U2NoZWR1bGVkID0gdHJ1ZTsKICAgICBzeW5jVGltZXJGaXJlZCgmbV9zeW5jVGltZXIpOwogCi0g
ICAgbV9zeW5jTWFuYWdlci0+ZGlzcGF0Y2goYmluZCgmU3RvcmFnZUFyZWFTeW5jOjpkZWxldGVF
bXB0eURhdGFiYXNlLCB0aGlzKSk7CisgICAgUmVmUHRyPFN0b3JhZ2VBcmVhU3luYz4gcHJvdGVj
dG9yKHRoaXMpOworICAgIG1fc3luY01hbmFnZXItPmRpc3BhdGNoKFs9XSB7IHByb3RlY3Rvci0+
ZGVsZXRlRW1wdHlEYXRhYmFzZSgpOyB9KTsKIH0KIAogdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnNj
aGVkdWxlSXRlbUZvclN5bmMoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUp
CkBAIC0yMTMsNyArMjE0LDggQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnN5bmNUaW1lckZpcmVk
KFRpbWVyPFN0b3JhZ2VBcmVhU3luYz4qKQogICAgICAgICAgICAgLy8gcGVyZm9ybVN5bmMgZnVu
Y3Rpb24uCiAgICAgICAgICAgICBkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKTsKIAotICAgICAg
ICAgICAgbV9zeW5jTWFuYWdlci0+ZGlzcGF0Y2goYmluZCgmU3RvcmFnZUFyZWFTeW5jOjpwZXJm
b3JtU3luYywgdGhpcykpOworICAgICAgICAgICAgUmVmUHRyPFN0b3JhZ2VBcmVhU3luYz4gcHJv
dGVjdG9yKHRoaXMpOworICAgICAgICAgICAgbV9zeW5jTWFuYWdlci0+ZGlzcGF0Y2goWz1dIHsg
cHJvdGVjdG9yLT5wZXJmb3JtU3luYygpOyB9KTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwCmluZGV4IDIyMTk3ZDU3
OTU0MDUyYzlmMjUwNjIyZGIwN2Y3NDY0MTA4YWM2MGUuLjBmZTdiNTI5Y2M2ZTM3YzE3ZjVmYjky
NzEyNmQ5NmQ4MGE4NTg0YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZVN5bmNNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VT
eW5jTWFuYWdlci5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgU3RyaW5nIFN0b3JhZ2VTeW5jTWFuYWdl
cjo6ZnVsbERhdGFiYXNlRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkZW50aWZpZXIK
ICAgICByZXR1cm4gcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fcGF0aCwgZGF0YWJhc2VJZGVu
dGlmaWVyICsgIi5sb2NhbHN0b3JhZ2UiKTsKIH0KIAotdm9pZCBTdG9yYWdlU3luY01hbmFnZXI6
OmRpc3BhdGNoKGNvbnN0IEZ1bmN0aW9uPHZvaWQgKCk+JiBmdW5jdGlvbikKK3ZvaWQgU3RvcmFn
ZVN5bmNNYW5hZ2VyOjpkaXNwYXRjaChjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+JiBmdW5j
dGlvbikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX3RocmVh
ZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdl
ci5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuaAppbmRleCA2
NGQwMTAwOTcyY2QwN2EzNzFmMTllZTYyZmMyMjljYjQwNzljMGEyLi40ODY1MWNhMWQyMzRiZTZk
NjNlNzkyOGNhMTg3YzgxMzFkOWRmYzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZVN5bmNNYW5hZ2VyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgU3RvcmFnZVN5bmNN
YW5hZ2VyX2gKICNkZWZpbmUgU3RvcmFnZVN5bmNNYW5hZ2VyX2gKIAorI2luY2x1ZGUgPGZ1bmN0
aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00MSw3ICs0Miw3IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdG9yYWdlU3luY01hbmFnZXI+IGNyZWF0ZShjb25z
dCBTdHJpbmcmIHBhdGgpOwogICAgIH5TdG9yYWdlU3luY01hbmFnZXIoKTsKIAotICAgIHZvaWQg
ZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCAoKT4mKTsKKyAgICB2b2lkIGRpc3BhdGNoKGNv
bnN0IHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4mKTsKICAgICB2b2lkIGNsb3NlKCk7CiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcAppbmRleCA3OGZiZTcw
MzI5Yzc3Y2MxZmM0MzM4ZWQyNWViNzU5NzJkNzg4MmUzLi4yMjdiMzhiNmRkMWU2YTM2YTM3ZWYx
ZTAxMjE2MmYzYWJkZDM0NjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRocmVh
ZC5jcHAKQEAgLTc2LDExICs3NiwxMSBAQCB2b2lkIFN0b3JhZ2VUaHJlYWQ6OnRocmVhZEVudHJ5
UG9pbnQoKQogICAgIH0KIH0KIAotdm9pZCBTdG9yYWdlVGhyZWFkOjpkaXNwYXRjaChjb25zdCBG
dW5jdGlvbjx2b2lkICgpPiYgZnVuY3Rpb24pCit2b2lkIFN0b3JhZ2VUaHJlYWQ6OmRpc3BhdGNo
KGNvbnN0IHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4mIGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKCFtX3F1ZXVlLmtpbGxlZCgpICYmIG1fdGhyZWFk
SUQpOwotICAgIG1fcXVldWUuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCAo
KT4+KGZ1bmN0aW9uKSk7CisgICAgbV9xdWV1ZS5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxzdGQ6
OmZ1bmN0aW9uPHZvaWQgKCk+PihmdW5jdGlvbikpOwogfQogCiB2b2lkIFN0b3JhZ2VUaHJlYWQ6
OnRlcm1pbmF0ZSgpCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgU3RvcmFnZVRocmVhZDo6dGVybWlu
YXRlKCkKICAgICBpZiAoIW1fdGhyZWFkSUQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcXVl
dWUuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCAoKT4+KGJpbmQoJlN0b3Jh
Z2VUaHJlYWQ6OnBlcmZvcm1UZXJtaW5hdGUsIHRoaXMpKSk7CisgICAgbV9xdWV1ZS5hcHBlbmQo
c3RkOjptYWtlX3VuaXF1ZTxzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+PihbdGhpc10geyBwZXJmb3Jt
VGVybWluYXRlKCk7IH0pKTsKICAgICB3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbihtX3RocmVhZElE
KTsKICAgICBBU1NFUlQobV9xdWV1ZS5raWxsZWQoKSk7CiAgICAgbV90aHJlYWRJRCA9IDA7CkBA
IC0xMDksNyArMTA5LDcgQEAgdm9pZCBTdG9yYWdlVGhyZWFkOjpyZWxlYXNlRmFzdE1hbGxvY0Zy
ZWVNZW1vcnlJbkFsbFRocmVhZHMoKQogICAgIEhhc2hTZXQ8U3RvcmFnZVRocmVhZCo+JiB0aHJl
YWRzID0gYWN0aXZlU3RvcmFnZVRocmVhZHMoKTsKIAogICAgIGZvciAoSGFzaFNldDxTdG9yYWdl
VGhyZWFkKj46Oml0ZXJhdG9yIGl0ID0gdGhyZWFkcy5iZWdpbigpLCBlbmQgPSB0aHJlYWRzLmVu
ZCgpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgICgqaXQpLT5kaXNwYXRjaChiaW5kKFdURjo6
cmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5KSk7CisgICAgICAgICgqaXQpLT5kaXNwYXRjaChX
VEY6OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlVGhyZWFkLmgKaW5kZXggOGYwOTJkMDgwNmNkMWUzM2ZlNTc3NzMxYWUwNTI5
ODE5ZjQ2MDEzMS4uMjYzYzc4ZTgyNjJlOWNmZDg2NWRkZDU5MDE5NTQ5MmY1ZTc4NTM5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGhyZWFkLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGhyZWFkLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNp
Zm5kZWYgU3RvcmFnZVRocmVhZF9oCiAjZGVmaW5lIFN0b3JhZ2VUaHJlYWRfaAogCi0jaW5jbHVk
ZSA8d3RmL0Z1bmN0aW9uYWwuaD4KKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL01lc3NhZ2VRdWV1ZS5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICBib29sIHN0YXJ0
KCk7CiAgICAgdm9pZCB0ZXJtaW5hdGUoKTsKIAotICAgIHZvaWQgZGlzcGF0Y2goY29uc3QgRnVu
Y3Rpb248dm9pZCgpPiYpOworICAgIHZvaWQgZGlzcGF0Y2goY29uc3Qgc3RkOjpmdW5jdGlvbjx2
b2lkICgpPiYpOwogCiAgICAgc3RhdGljIHZvaWQgcmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5
SW5BbGxUaHJlYWRzKCk7CiAKQEAgLTU5LDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBl
cmZvcm1UZXJtaW5hdGUoKTsKIAogICAgIFRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJRDsKLSAg
ICBNZXNzYWdlUXVldWU8RnVuY3Rpb248dm9pZCAoKT4+IG1fcXVldWU7CisgICAgTWVzc2FnZVF1
ZXVlPHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4+IG1fcXVldWU7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUcmFj
a2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwCmluZGV4
IDk3NmRjZGFlZjRiMDhlNjFiZTg0MWU1N2E4MjUwMTVkN2RhNmIxMTUuLjMwNDdlZjE4ZTA4ODM5
NjA3YTM1NTA5ZDcxNDIwN2E1NjUwMDg4MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZVRyYWNrZXIuY3BwCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmln
aW4uaCIKICNpbmNsdWRlICJTdG9yYWdlVHJhY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlRleHRF
bmNvZGluZy5oIgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgpAQCAtMTczLDcgKzE3Miw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OmltcG9y
dE9yaWdpbklkZW50aWZpZXJzKCkKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFT
U0VSVChtX3RocmVhZCk7CiAKLSAgICBtX3RocmVhZC0+ZGlzcGF0Y2goYmluZCgmU3RvcmFnZVRy
YWNrZXI6OnN5bmNJbXBvcnRPcmlnaW5JZGVudGlmaWVycywgdGhpcykpOworICAgIG1fdGhyZWFk
LT5kaXNwYXRjaChbdGhpc10geyBzeW5jSW1wb3J0T3JpZ2luSWRlbnRpZmllcnMoKTsgfSk7CiB9
CiAKIHZvaWQgU3RvcmFnZVRyYWNrZXI6OmZpbmlzaGVkSW1wb3J0aW5nT3JpZ2luSWRlbnRpZmll
cnMoKQpAQCAtMjM2LDcgKzIzNSw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNJbXBvcnRP
cmlnaW5JZGVudGlmaWVycygpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBjYWxsT25NYWluVGhy
ZWFkKGJpbmQoJlN0b3JhZ2VUcmFja2VyOjpmaW5pc2hlZEltcG9ydGluZ09yaWdpbklkZW50aWZp
ZXJzLCB0aGlzKSk7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpc10geyBmaW5pc2hlZEltcG9y
dGluZ09yaWdpbklkZW50aWZpZXJzKCk7IH0pOwogfQogICAgIAogdm9pZCBTdG9yYWdlVHJhY2tl
cjo6c3luY0ZpbGVTeXN0ZW1BbmRUcmFja2VyRGF0YWJhc2UoKQpAQCAtMjg1LDcgKzI4NCw4IEBA
IHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNGaWxlU3lzdGVtQW5kVHJhY2tlckRhdGFiYXNlKCkK
ICAgICAgICAgaWYgKGZvdW5kT3JpZ2lucy5jb250YWlucyhvcmlnaW5JZGVudGlmaWVyKSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoYmluZCgmU3Rv
cmFnZVRyYWNrZXI6OmRlbGV0ZU9yaWdpbldpdGhJZGVudGlmaWVyLCB0aGlzLCBvcmlnaW5JZGVu
dGlmaWVyLmlzb2xhdGVkQ29weSgpKSk7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoc3RkOjpi
aW5kKFt0aGlzXShjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpIHsgZGVsZXRlT3JpZ2lu
V2l0aElkZW50aWZpZXIob3JpZ2luSWRlbnRpZmllcik7IH0sCisgICAgICAgICAgICBvcmlnaW5J
ZGVudGlmaWVyLmlzb2xhdGVkQ29weSgpKSk7CiAgICAgfQogfQogCkBAIC0zMDMsMTQgKzMwMywx
NiBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzZXRPcmlnaW5EZXRhaWxzKGNvbnN0IFN0cmluZyYg
b3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaQogICAgICAgICBtX29yaWdpblNldC5hZGQob3Jp
Z2luSWRlbnRpZmllcik7CiAgICAgfQogCi0gICAgRnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rpb24g
PSBiaW5kKCZTdG9yYWdlVHJhY2tlcjo6c3luY1NldE9yaWdpbkRldGFpbHMsIHRoaXMsIG9yaWdp
bklkZW50aWZpZXIuaXNvbGF0ZWRDb3B5KCksIGRhdGFiYXNlRmlsZS5pc29sYXRlZENvcHkoKSk7
CisgICAgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbiA9IHN0ZDo6YmluZCgKKyAgICAg
ICAgW3RoaXNdKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBk
YXRhYmFzZUZpbGUpIHsgc3luY1NldE9yaWdpbkRldGFpbHMob3JpZ2luSWRlbnRpZmllciwgZGF0
YWJhc2VGaWxlKTsgfSwKKyAgICAgICAgb3JpZ2luSWRlbnRpZmllci5pc29sYXRlZENvcHkoKSwg
ZGF0YWJhc2VGaWxlLmlzb2xhdGVkQ29weSgpKTsKIAogICAgIGlmIChpc01haW5UaHJlYWQoKSkg
ewogICAgICAgICBBU1NFUlQobV90aHJlYWQpOwogICAgICAgICBtX3RocmVhZC0+ZGlzcGF0Y2go
ZnVuY3Rpb24pOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHdlaXJkIHBp
bmctcG9uZ2luZyB3YXMgZG9uZSB0byBmaXggYSBkZWFkbG9jay4gV2Ugc2hvdWxkIGZpZ3VyZSBv
dXQgYSBjbGVhbmVyIHdheSB0byBhdm9pZCBpdCBpbnN0ZWFkLgotICAgICAgICBjYWxsT25NYWlu
VGhyZWFkKGJpbmQoJlN0b3JhZ2VUaHJlYWQ6OmRpc3BhdGNoLCBtX3RocmVhZC5nZXQoKSwgZnVu
Y3Rpb24pKTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChzdGQ6OmJpbmQoW3RoaXNdKHN0ZDo6
ZnVuY3Rpb248dm9pZCAoKT4mIGZ1bmN0aW9uKSB7IG1fdGhyZWFkLT5kaXNwYXRjaChmdW5jdGlv
bik7IH0sIHN0ZDo6bW92ZShmdW5jdGlvbikpKTsKICAgICB9CiB9CiAKQEAgLTM4Myw3ICszODUs
NyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpkZWxldGVBbGxPcmlnaW5zKCkKIAogICAgIFBhZ2VH
cm91cDo6Y2xlYXJMb2NhbFN0b3JhZ2VGb3JBbGxPcmlnaW5zKCk7CiAKLSAgICBtX3RocmVhZC0+
ZGlzcGF0Y2goYmluZCgmU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVBbGxPcmlnaW5zLCB0aGlz
KSk7CisgICAgbV90aHJlYWQtPmRpc3BhdGNoKFt0aGlzXSB7IHN5bmNEZWxldGVBbGxPcmlnaW5z
KCk7IH0pOwogfQogICAgIAogdm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0ZUFsbE9yaWdp
bnMoKQpAQCAtNDgwLDcgKzQ4Miw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OmRlbGV0ZU9yaWdp
bihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogICAgICAgICBtX29yaWdpblNldC5yZW1vdmUob3Jp
Z2luSWQpOwogICAgIH0KIAotICAgIG1fdGhyZWFkLT5kaXNwYXRjaChiaW5kKCZTdG9yYWdlVHJh
Y2tlcjo6c3luY0RlbGV0ZU9yaWdpbiwgdGhpcywgb3JpZ2luSWQuaXNvbGF0ZWRDb3B5KCkpKTsK
KyAgICBtX3RocmVhZC0+ZGlzcGF0Y2goc3RkOjpiaW5kKFt0aGlzXShjb25zdCBTdHJpbmcmIG9y
aWdpbklkKSB7IHN5bmNEZWxldGVPcmlnaW4ob3JpZ2luSWQpOyB9LCBvcmlnaW5JZC5pc29sYXRl
ZENvcHkoKSkpOwogfQogCiB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jRGVsZXRlT3JpZ2luKGNv
bnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220636</attachid>
            <date>2014-01-08 08:24:38 -0800</date>
            <delta_ts>2014-08-23 01:56:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126435-20140108172436.patch</filename>
            <type>text/plain</type>
            <size>11283</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxNDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDdhOTgzZDk4YjEzYTQw
MzZjMTU3ZjJlNTY2MjQwYTI2Y2VkZWY3MS4uZTBmYmZmYTJiZDA1ZjEwNDU1OTgyY2M2Yjg4MzRi
ZTBmNTVmNjgwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM1IEBACiAyMDE0LTAxLTA4ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBNb3ZlIFdlYkNvcmUg
c3RvcmFnZSBjb2RlIHRvIHN0ZDo6YmluZCwgQysrMTEgbGFtYmRhcywgc3RkOjpmdW5jdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NDM1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHN0ZDo6
YmluZCBvciBsYW1iZGFzIGluc3RlYWQgb2YgV1RGOjpiaW5kIGFuZCBzdGQ6OmZ1bmN0aW9uPHZv
aWQgKCk+IGluc3RlYWQgb2YgV1RGOjpGdW5jdGlvbjx2b2lkICgpPgorICAgICAgICBpbiBTdG9y
YWdlQXJlYVN5bmMsIFN0b3JhZ2VTeW5jTWFuYWdlciwgU3RvcmFnZVRocmVhZCBhbmQgU3RvcmFn
ZVRyYWNrZXIgY2xhc3Nlcy4KKworICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhU3luYzo6U3RvcmFnZUFyZWFTeW5jKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhU3luYzo6c2NoZWR1bGVGaW5hbFN5bmMpOgor
ICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjpzeW5jVGltZXJGaXJlZCk6CisgICAg
ICAgICogc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3RvcmFnZVN5bmNNYW5hZ2VyOjpkaXNwYXRjaCk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdl
U3luY01hbmFnZXIuaDoKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3RvcmFnZVRocmVhZDo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29y
ZTo6U3RvcmFnZVRocmVhZDo6dGVybWluYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VU
aHJlYWQ6OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeUluQWxsVGhyZWFkcyk6CisgICAgICAg
ICogc3RvcmFnZS9TdG9yYWdlVGhyZWFkLmg6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlVHJh
Y2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6aW1wb3J0T3JpZ2lu
SWRlbnRpZmllcnMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnN5bmNJbXBv
cnRPcmlnaW5JZGVudGlmaWVycyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6
c3luY0ZpbGVTeXN0ZW1BbmRUcmFja2VyRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6U3Rv
cmFnZVRyYWNrZXI6OnNldE9yaWdpbkRldGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFn
ZVRyYWNrZXI6OmRlbGV0ZUFsbE9yaWdpbnMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRy
YWNrZXI6OmRlbGV0ZU9yaWdpbik6CisKKzIwMTQtMDEtMDggIFphbiBEb2JlcnNlayAgPHpkb2Jl
cnNla0BpZ2FsaWEuY29tPgorCiAgICAgICAgIFtBdXRvbWFrZV0gU2NyaXB0cyBmb3IgZ2VuZXJh
dGVkIGJ1aWxkIHRhcmdldHMgZG8gbm90IG5lY2Vzc2FyaWx5IHByb2R1Y2UgdGhlaXIgb3V0cHV0
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjYzNzgK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCmluZGV4IDdiMDI2
N2YxNTA3YWEwNzVlNTg4YjFkNzEyNTMxM2NlNGM4OTk2MmUuLmE5OWFiNmJkMGMzZDcxZTdiMGRh
MTBlYThiZDlmYWUzODMxYzVlNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
U3RvcmFnZUFyZWFTeW5jLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VB
cmVhU3luYy5jcHAKQEAgLTM3LDcgKzM3LDYgQEAKICNpbmNsdWRlICJTdG9yYWdlU3luY01hbmFn
ZXIuaCIKICNpbmNsdWRlICJTdG9yYWdlVHJhY2tlci5oIgogI2luY2x1ZGUgIlN1ZGRlblRlcm1p
bmF0aW9uLmgiCi0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvTWFp
blRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtNzUsNyArNzQs
MTAgQEAgaW5saW5lIFN0b3JhZ2VBcmVhU3luYzo6U3RvcmFnZUFyZWFTeW5jKFBhc3NSZWZQdHI8
U3RvcmFnZVN5bmNNYW5hZ2VyPiBzdG9yYWdlU3kKIAogICAgIC8vIEZJWE1FOiBJZiBpdCBjYW4n
dCBpbXBvcnQsIHRoZW4gdGhlIGRlZmF1bHQgV2ViS2l0IGJlaGF2aW9yIHNob3VsZCBiZSB0aGF0
IG9mIHByaXZhdGUgYnJvd3NpbmcsCiAgICAgLy8gbm90IHNpbGVudGx5IGlnbm9yaW5nIGl0LiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU4OTQKLSAgICBtX3N5bmNN
YW5hZ2VyLT5kaXNwYXRjaChiaW5kKCZTdG9yYWdlQXJlYVN5bmM6OnBlcmZvcm1JbXBvcnQsIHRo
aXMpKTsKKyAgICBSZWZQdHI8U3RvcmFnZUFyZWFTeW5jPiBwcm90ZWN0b3IodGhpcyk7CisgICAg
bV9zeW5jTWFuYWdlci0+ZGlzcGF0Y2goWz1dIHsKKyAgICAgICAgcHJvdGVjdG9yLT5wZXJmb3Jt
SW1wb3J0KCk7CisgICAgfSk7CiB9CiAKIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFTeW5jPiBTdG9y
YWdlQXJlYVN5bmM6OmNyZWF0ZShQYXNzUmVmUHRyPFN0b3JhZ2VTeW5jTWFuYWdlcj4gc3RvcmFn
ZVN5bmNNYW5hZ2VyLCBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhSW1wbD4gc3RvcmFnZUFyZWEsIGNv
bnN0IFN0cmluZyYgZGF0YWJhc2VJZGVudGlmaWVyKQpAQCAtMTExLDcgKzExMywxMCBAQCB2b2lk
IFN0b3JhZ2VBcmVhU3luYzo6c2NoZWR1bGVGaW5hbFN5bmMoKQogICAgIG1fZmluYWxTeW5jU2No
ZWR1bGVkID0gdHJ1ZTsKICAgICBzeW5jVGltZXJGaXJlZCgmbV9zeW5jVGltZXIpOwogCi0gICAg
bV9zeW5jTWFuYWdlci0+ZGlzcGF0Y2goYmluZCgmU3RvcmFnZUFyZWFTeW5jOjpkZWxldGVFbXB0
eURhdGFiYXNlLCB0aGlzKSk7CisgICAgUmVmUHRyPFN0b3JhZ2VBcmVhU3luYz4gcHJvdGVjdG9y
KHRoaXMpOworICAgIG1fc3luY01hbmFnZXItPmRpc3BhdGNoKFs9XSB7CisgICAgICAgIHByb3Rl
Y3Rvci0+ZGVsZXRlRW1wdHlEYXRhYmFzZSgpOworICAgIH0pOwogfQogCiB2b2lkIFN0b3JhZ2VB
cmVhU3luYzo6c2NoZWR1bGVJdGVtRm9yU3luYyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSkKQEAgLTIxMyw3ICsyMTgsMTAgQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnN5
bmNUaW1lckZpcmVkKFRpbWVyPFN0b3JhZ2VBcmVhU3luYz4qKQogICAgICAgICAgICAgLy8gcGVy
Zm9ybVN5bmMgZnVuY3Rpb24uCiAgICAgICAgICAgICBkaXNhYmxlU3VkZGVuVGVybWluYXRpb24o
KTsKIAotICAgICAgICAgICAgbV9zeW5jTWFuYWdlci0+ZGlzcGF0Y2goYmluZCgmU3RvcmFnZUFy
ZWFTeW5jOjpwZXJmb3JtU3luYywgdGhpcykpOworICAgICAgICAgICAgUmVmUHRyPFN0b3JhZ2VB
cmVhU3luYz4gcHJvdGVjdG9yKHRoaXMpOworICAgICAgICAgICAgbV9zeW5jTWFuYWdlci0+ZGlz
cGF0Y2goWz1dIHsKKyAgICAgICAgICAgICAgICBwcm90ZWN0b3ItPnBlcmZvcm1TeW5jKCk7Cisg
ICAgICAgICAgICB9KTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwCmluZGV4IDIyMTk3ZDU3OTU0MDUyYzlmMjUwNjIy
ZGIwN2Y3NDY0MTA4YWM2MGUuLjBmZTdiNTI5Y2M2ZTM3YzE3ZjVmYjkyNzEyNmQ5NmQ4MGE4NTg0
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5jcHAK
QEAgLTcxLDcgKzcxLDcgQEAgU3RyaW5nIFN0b3JhZ2VTeW5jTWFuYWdlcjo6ZnVsbERhdGFiYXNl
RmlsZW5hbWUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkZW50aWZpZXIKICAgICByZXR1cm4gcGF0
aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fcGF0aCwgZGF0YWJhc2VJZGVudGlmaWVyICsgIi5sb2Nh
bHN0b3JhZ2UiKTsKIH0KIAotdm9pZCBTdG9yYWdlU3luY01hbmFnZXI6OmRpc3BhdGNoKGNvbnN0
IEZ1bmN0aW9uPHZvaWQgKCk+JiBmdW5jdGlvbikKK3ZvaWQgU3RvcmFnZVN5bmNNYW5hZ2VyOjpk
aXNwYXRjaChjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+JiBmdW5jdGlvbikKIHsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX3RocmVhZCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5oIGIvU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuaAppbmRleCA2NGQwMTAwOTcyY2QwN2Ez
NzFmMTllZTYyZmMyMjljYjQwNzljMGEyLi40ODY1MWNhMWQyMzRiZTZkNjNlNzkyOGNhMTg3Yzgx
MzFkOWRmYzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5j
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2Vy
LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgU3RvcmFnZVN5bmNNYW5hZ2VyX2gKICNkZWZp
bmUgU3RvcmFnZVN5bmNNYW5hZ2VyX2gKIAorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00MSw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdG9yYWdlU3luY01hbmFnZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGgp
OwogICAgIH5TdG9yYWdlU3luY01hbmFnZXIoKTsKIAotICAgIHZvaWQgZGlzcGF0Y2goY29uc3Qg
RnVuY3Rpb248dm9pZCAoKT4mKTsKKyAgICB2b2lkIGRpc3BhdGNoKGNvbnN0IHN0ZDo6ZnVuY3Rp
b248dm9pZCAoKT4mKTsKICAgICB2b2lkIGNsb3NlKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcAppbmRleCA3OGZiZTcwMzI5Yzc3Y2MxZmM0MzM4
ZWQyNWViNzU5NzJkNzg4MmUzLi5kYThlMWM5ODhjODA3ZTJhMmFkMjBmNDkzMzU2NzhlZTA0MDYw
YzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRocmVhZC5jcHAKQEAgLTc2LDEx
ICs3NiwxMSBAQCB2b2lkIFN0b3JhZ2VUaHJlYWQ6OnRocmVhZEVudHJ5UG9pbnQoKQogICAgIH0K
IH0KIAotdm9pZCBTdG9yYWdlVGhyZWFkOjpkaXNwYXRjaChjb25zdCBGdW5jdGlvbjx2b2lkICgp
PiYgZnVuY3Rpb24pCit2b2lkIFN0b3JhZ2VUaHJlYWQ6OmRpc3BhdGNoKGNvbnN0IHN0ZDo6ZnVu
Y3Rpb248dm9pZCAoKT4mIGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAgICAgQVNTRVJUKCFtX3F1ZXVlLmtpbGxlZCgpICYmIG1fdGhyZWFkSUQpOwotICAgIG1fcXVl
dWUuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCAoKT4+KGZ1bmN0aW9uKSk7
CisgICAgbV9xdWV1ZS5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxzdGQ6OmZ1bmN0aW9uPHZvaWQg
KCk+PihmdW5jdGlvbikpOwogfQogCiB2b2lkIFN0b3JhZ2VUaHJlYWQ6OnRlcm1pbmF0ZSgpCkBA
IC05Miw3ICs5Miw5IEBAIHZvaWQgU3RvcmFnZVRocmVhZDo6dGVybWluYXRlKCkKICAgICBpZiAo
IW1fdGhyZWFkSUQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcXVldWUuYXBwZW5kKHN0ZDo6
bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCAoKT4+KGJpbmQoJlN0b3JhZ2VUaHJlYWQ6OnBlcmZv
cm1UZXJtaW5hdGUsIHRoaXMpKSk7CisgICAgbV9xdWV1ZS5hcHBlbmQoc3RkOjptYWtlX3VuaXF1
ZTxzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+PihbdGhpc10geworICAgICAgICBwZXJmb3JtVGVybWlu
YXRlKCk7CisgICAgfSkpOwogICAgIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKG1fdGhyZWFkSUQp
OwogICAgIEFTU0VSVChtX3F1ZXVlLmtpbGxlZCgpKTsKICAgICBtX3RocmVhZElEID0gMDsKQEAg
LTEwOSw3ICsxMTEsNyBAQCB2b2lkIFN0b3JhZ2VUaHJlYWQ6OnJlbGVhc2VGYXN0TWFsbG9jRnJl
ZU1lbW9yeUluQWxsVGhyZWFkcygpCiAgICAgSGFzaFNldDxTdG9yYWdlVGhyZWFkKj4mIHRocmVh
ZHMgPSBhY3RpdmVTdG9yYWdlVGhyZWFkcygpOwogCiAgICAgZm9yIChIYXNoU2V0PFN0b3JhZ2VU
aHJlYWQqPjo6aXRlcmF0b3IgaXQgPSB0aHJlYWRzLmJlZ2luKCksIGVuZCA9IHRocmVhZHMuZW5k
KCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgKCppdCktPmRpc3BhdGNoKGJpbmQoV1RGOjpy
ZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnkpKTsKKyAgICAgICAgKCppdCktPmRpc3BhdGNoKFdU
Rjo6cmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VUaHJlYWQuaAppbmRleCA4ZjA5MmQwODA2Y2QxZTMzZmU1Nzc3MzFhZTA1Mjk4
MTlmNDYwMTMxLi4yNjNjNzhlODI2MmU5Y2ZkODY1ZGRkNTkwMTk1NDkyZjVlNzg1MzlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQuaApAQCAtMjYsNyArMjYsNyBAQAogI2lm
bmRlZiBTdG9yYWdlVGhyZWFkX2gKICNkZWZpbmUgU3RvcmFnZVRocmVhZF9oCiAKLSNpbmNsdWRl
IDx3dGYvRnVuY3Rpb25hbC5oPgorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTWVzc2FnZVF1ZXVlLmg+CiAjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIGJvb2wgc3RhcnQo
KTsKICAgICB2b2lkIHRlcm1pbmF0ZSgpOwogCi0gICAgdm9pZCBkaXNwYXRjaChjb25zdCBGdW5j
dGlvbjx2b2lkKCk+Jik7CisgICAgdm9pZCBkaXNwYXRjaChjb25zdCBzdGQ6OmZ1bmN0aW9uPHZv
aWQgKCk+Jik7CiAKICAgICBzdGF0aWMgdm9pZCByZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnlJ
bkFsbFRocmVhZHMoKTsKIApAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGVy
Zm9ybVRlcm1pbmF0ZSgpOwogCiAgICAgVGhyZWFkSWRlbnRpZmllciBtX3RocmVhZElEOwotICAg
IE1lc3NhZ2VRdWV1ZTxGdW5jdGlvbjx2b2lkICgpPj4gbV9xdWV1ZTsKKyAgICBNZXNzYWdlUXVl
dWU8c3RkOjpmdW5jdGlvbjx2b2lkICgpPj4gbV9xdWV1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNr
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAKaW5kZXgg
OTc2ZGNkYWVmNGIwOGU2MWJlODQxZTU3YTgyNTAxNWQ3ZGE2YjExNS4uMjI1MmUxZDJhMjBmMjgw
YjkwMjMyMGJjYmE3OTgyY2U3OTk2NmZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlVHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlVHJhY2tlci5jcHAKQEAgLTM2LDcgKzM2LDYgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdp
bi5oIgogI2luY2x1ZGUgIlN0b3JhZ2VUcmFja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiVGV4dEVu
Y29kaW5nLmgiCi0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvTWFp
blRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CkBAIC0xNzMsNyArMTcyLDkgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6aW1wb3J0
T3JpZ2luSWRlbnRpZmllcnMoKQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNT
RVJUKG1fdGhyZWFkKTsKIAotICAgIG1fdGhyZWFkLT5kaXNwYXRjaChiaW5kKCZTdG9yYWdlVHJh
Y2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZW50aWZpZXJzLCB0aGlzKSk7CisgICAgbV90aHJlYWQt
PmRpc3BhdGNoKFt0aGlzXSB7CisgICAgICAgIHN5bmNJbXBvcnRPcmlnaW5JZGVudGlmaWVycygp
OworICAgIH0pOwogfQogCiB2b2lkIFN0b3JhZ2VUcmFja2VyOjpmaW5pc2hlZEltcG9ydGluZ09y
aWdpbklkZW50aWZpZXJzKCkKQEAgLTIzNiw3ICsyMzcsOSBAQCB2b2lkIFN0b3JhZ2VUcmFja2Vy
OjpzeW5jSW1wb3J0T3JpZ2luSWRlbnRpZmllcnMoKQogICAgICAgICB9CiAgICAgfQogCi0gICAg
Y2FsbE9uTWFpblRocmVhZChiaW5kKCZTdG9yYWdlVHJhY2tlcjo6ZmluaXNoZWRJbXBvcnRpbmdP
cmlnaW5JZGVudGlmaWVycywgdGhpcykpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXNdIHsK
KyAgICAgICAgZmluaXNoZWRJbXBvcnRpbmdPcmlnaW5JZGVudGlmaWVycygpOworICAgIH0pOwog
fQogICAgIAogdm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY0ZpbGVTeXN0ZW1BbmRUcmFja2VyRGF0
YWJhc2UoKQpAQCAtMjg1LDcgKzI4OCw5IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNGaWxl
U3lzdGVtQW5kVHJhY2tlckRhdGFiYXNlKCkKICAgICAgICAgaWYgKGZvdW5kT3JpZ2lucy5jb250
YWlucyhvcmlnaW5JZGVudGlmaWVyKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAg
IGNhbGxPbk1haW5UaHJlYWQoYmluZCgmU3RvcmFnZVRyYWNrZXI6OmRlbGV0ZU9yaWdpbldpdGhJ
ZGVudGlmaWVyLCB0aGlzLCBvcmlnaW5JZGVudGlmaWVyLmlzb2xhdGVkQ29weSgpKSk7CisgICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoc3RkOjpiaW5kKFt0aGlzXShjb25zdCBTdHJpbmcmIG9yaWdp
bklkZW50aWZpZXIpIHsKKyAgICAgICAgICAgIGRlbGV0ZU9yaWdpbldpdGhJZGVudGlmaWVyKG9y
aWdpbklkZW50aWZpZXIpOworICAgICAgICB9LCBvcmlnaW5JZGVudGlmaWVyLmlzb2xhdGVkQ29w
eSgpKSk7CiAgICAgfQogfQogCkBAIC0zMDMsMTQgKzMwOCwxOCBAQCB2b2lkIFN0b3JhZ2VUcmFj
a2VyOjpzZXRPcmlnaW5EZXRhaWxzKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29u
c3QgU3RyaQogICAgICAgICBtX29yaWdpblNldC5hZGQob3JpZ2luSWRlbnRpZmllcik7CiAgICAg
fQogCi0gICAgRnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rpb24gPSBiaW5kKCZTdG9yYWdlVHJhY2tl
cjo6c3luY1NldE9yaWdpbkRldGFpbHMsIHRoaXMsIG9yaWdpbklkZW50aWZpZXIuaXNvbGF0ZWRD
b3B5KCksIGRhdGFiYXNlRmlsZS5pc29sYXRlZENvcHkoKSk7CisgICAgc3RkOjpmdW5jdGlvbjx2
b2lkICgpPiBmdW5jdGlvbiA9IHN0ZDo6YmluZChbdGhpc10oY29uc3QgU3RyaW5nJiBvcmlnaW5J
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlRmlsZSkgeworICAgICAgICBzeW5jU2V0
T3JpZ2luRGV0YWlscyhvcmlnaW5JZGVudGlmaWVyLCBkYXRhYmFzZUZpbGUpOworICAgIH0sIG9y
aWdpbklkZW50aWZpZXIuaXNvbGF0ZWRDb3B5KCksIGRhdGFiYXNlRmlsZS5pc29sYXRlZENvcHko
KSk7CiAKICAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKICAgICAgICAgQVNTRVJUKG1fdGhyZWFk
KTsKICAgICAgICAgbV90aHJlYWQtPmRpc3BhdGNoKGZ1bmN0aW9uKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICAvLyBGSVhNRTogVGhpcyB3ZWlyZCBwaW5nLXBvbmdpbmcgd2FzIGRvbmUgdG8gZml4
IGEgZGVhZGxvY2suIFdlIHNob3VsZCBmaWd1cmUgb3V0IGEgY2xlYW5lciB3YXkgdG8gYXZvaWQg
aXQgaW5zdGVhZC4KLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChiaW5kKCZTdG9yYWdlVGhyZWFk
OjpkaXNwYXRjaCwgbV90aHJlYWQuZ2V0KCksIGZ1bmN0aW9uKSk7CisgICAgICAgIGNhbGxPbk1h
aW5UaHJlYWQoc3RkOjpiaW5kKFt0aGlzXShzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+JiBmdW5jdGlv
bikgeworICAgICAgICAgICAgbV90aHJlYWQtPmRpc3BhdGNoKGZ1bmN0aW9uKTsKKyAgICAgICAg
fSwgc3RkOjptb3ZlKGZ1bmN0aW9uKSkpOwogICAgIH0KIH0KIApAQCAtMzgzLDcgKzM5Miw5IEBA
IHZvaWQgU3RvcmFnZVRyYWNrZXI6OmRlbGV0ZUFsbE9yaWdpbnMoKQogCiAgICAgUGFnZUdyb3Vw
OjpjbGVhckxvY2FsU3RvcmFnZUZvckFsbE9yaWdpbnMoKTsKIAotICAgIG1fdGhyZWFkLT5kaXNw
YXRjaChiaW5kKCZTdG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0ZUFsbE9yaWdpbnMsIHRoaXMpKTsK
KyAgICBtX3RocmVhZC0+ZGlzcGF0Y2goW3RoaXNdIHsKKyAgICAgICAgc3luY0RlbGV0ZUFsbE9y
aWdpbnMoKTsKKyAgICB9KTsKIH0KICAgICAKIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxl
dGVBbGxPcmlnaW5zKCkKQEAgLTQ4MCw3ICs0OTEsOSBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpk
ZWxldGVPcmlnaW4oU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKICAgICAgICAgbV9vcmlnaW5TZXQu
cmVtb3ZlKG9yaWdpbklkKTsKICAgICB9CiAKLSAgICBtX3RocmVhZC0+ZGlzcGF0Y2goYmluZCgm
U3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVPcmlnaW4sIHRoaXMsIG9yaWdpbklkLmlzb2xhdGVk
Q29weSgpKSk7CisgICAgbV90aHJlYWQtPmRpc3BhdGNoKHN0ZDo6YmluZChbdGhpc10oY29uc3Qg
U3RyaW5nJiBvcmlnaW5JZCkgeworICAgICAgICBzeW5jRGVsZXRlT3JpZ2luKG9yaWdpbklkKTsK
KyAgICB9LCBvcmlnaW5JZC5pc29sYXRlZENvcHkoKSkpOwogfQogCiB2b2lkIFN0b3JhZ2VUcmFj
a2VyOjpzeW5jRGVsZXRlT3JpZ2luKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237031</attachid>
            <date>2014-08-23 01:56:18 -0700</date>
            <delta_ts>2014-08-24 23:02:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126435-20140823015608.patch</filename>
            <type>text/plain</type>
            <size>11297</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyODg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFjMDUwMDE2YzI3MDU0
OTA2NWUwMGVlOTAzMzA5ZTVhZmFhNDRhOS4uOTNkMWU2NTkxNTg2OGE5ZThlOWFmMGYyMmVlOWZj
NjcxZmI0OGFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDE0LTA4LTIzICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBNb3ZlIFdlYkNvcmUg
c3RvcmFnZSBjb2RlIHRvIEMrKzExIGxhbWJkYXMsIHN0ZDo6ZnVuY3Rpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjQzNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBDKysxMSBsYW1iZGFzIGlu
c3RlYWQgb2YgV1RGOjpiaW5kIGFuZCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+CisgICAgICAgIGlu
c3RlYWQgb2YgV1RGOjpGdW5jdGlvbjx2b2lkICgpPiBpbiBTdG9yYWdlQXJlYVN5bmMsIFN0b3Jh
Z2VTeW5jTWFuYWdlciwKKyAgICAgICAgU3RvcmFnZVRocmVhZCBhbmQgU3RvcmFnZVRyYWNrZXIg
Y2xhc3Nlcy4KKworICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhU3luYzo6U3RvcmFnZUFyZWFTeW5jKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0b3JhZ2VBcmVhU3luYzo6c2NoZWR1bGVGaW5hbFN5bmMpOgorICAgICAgICAo
V2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjpzeW5jVGltZXJGaXJlZCk6CisgICAgICAgICogc3Rv
cmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVN5
bmNNYW5hZ2VyOjpkaXNwYXRjaCk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlU3luY01hbmFn
ZXIuaDoKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U3RvcmFnZVRocmVhZDo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFn
ZVRocmVhZDo6dGVybWluYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUaHJlYWQ6OnJl
bGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeUluQWxsVGhyZWFkcyk6CisgICAgICAgICogc3RvcmFn
ZS9TdG9yYWdlVGhyZWFkLmg6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6aW1wb3J0T3JpZ2luSWRlbnRpZmll
cnMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnN5bmNJbXBvcnRPcmlnaW5J
ZGVudGlmaWVycyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6c3luY0ZpbGVT
eXN0ZW1BbmRUcmFja2VyRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNr
ZXI6OnNldE9yaWdpbkRldGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6
OmRlbGV0ZUFsbE9yaWdpbnMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OmRl
bGV0ZU9yaWdpbik6CisKKzIwMTQtMDgtMjMgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2Fs
aWEuY29tPgorCiAgICAgICAgIFJlbW92ZSB1c2VzIG9mIENyb3NzVGhyZWFkVGFzayBpbiBUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIsIFdvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzM5NTQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
QXJlYVN5bmMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3Bw
CmluZGV4IGVlYTVlYmU2Zjg3OTQ5MDE0ZmQwYmZmNDExNzc1MDgyNzcwMTg1M2IuLmI4NzZjODJm
OGUxMjg5YzNiZmE2Njc4Mzg2MmY2ZGRlZDk4YmZmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAKQEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlICJTdG9y
YWdlU3luY01hbmFnZXIuaCIKICNpbmNsdWRlICJTdG9yYWdlVHJhY2tlci5oIgogI2luY2x1ZGUg
IlN1ZGRlblRlcm1pbmF0aW9uLmgiCi0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KICNpbmNs
dWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApA
QCAtNzIsNyArNzEsMTAgQEAgaW5saW5lIFN0b3JhZ2VBcmVhU3luYzo6U3RvcmFnZUFyZWFTeW5j
KFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNNYW5hZ2VyPiBzdG9yYWdlU3kKIAogICAgIC8vIEZJWE1F
OiBJZiBpdCBjYW4ndCBpbXBvcnQsIHRoZW4gdGhlIGRlZmF1bHQgV2ViS2l0IGJlaGF2aW9yIHNo
b3VsZCBiZSB0aGF0IG9mIHByaXZhdGUgYnJvd3NpbmcsCiAgICAgLy8gbm90IHNpbGVudGx5IGln
bm9yaW5nIGl0LiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU4OTQK
LSAgICBtX3N5bmNNYW5hZ2VyLT5kaXNwYXRjaChiaW5kKCZTdG9yYWdlQXJlYVN5bmM6OnBlcmZv
cm1JbXBvcnQsIHRoaXMpKTsKKyAgICBSZWZQdHI8U3RvcmFnZUFyZWFTeW5jPiBwcm90ZWN0b3Io
dGhpcyk7CisgICAgbV9zeW5jTWFuYWdlci0+ZGlzcGF0Y2goWz1dIHsKKyAgICAgICAgcHJvdGVj
dG9yLT5wZXJmb3JtSW1wb3J0KCk7CisgICAgfSk7CiB9CiAKIFBhc3NSZWZQdHI8U3RvcmFnZUFy
ZWFTeW5jPiBTdG9yYWdlQXJlYVN5bmM6OmNyZWF0ZShQYXNzUmVmUHRyPFN0b3JhZ2VTeW5jTWFu
YWdlcj4gc3RvcmFnZVN5bmNNYW5hZ2VyLCBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhSW1wbD4gc3Rv
cmFnZUFyZWEsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZGVudGlmaWVyKQpAQCAtMTA4LDcgKzEx
MCwxMCBAQCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6c2NoZWR1bGVGaW5hbFN5bmMoKQogICAgIG1f
ZmluYWxTeW5jU2NoZWR1bGVkID0gdHJ1ZTsKICAgICBzeW5jVGltZXJGaXJlZCgmbV9zeW5jVGlt
ZXIpOwogCi0gICAgbV9zeW5jTWFuYWdlci0+ZGlzcGF0Y2goYmluZCgmU3RvcmFnZUFyZWFTeW5j
OjpkZWxldGVFbXB0eURhdGFiYXNlLCB0aGlzKSk7CisgICAgUmVmUHRyPFN0b3JhZ2VBcmVhU3lu
Yz4gcHJvdGVjdG9yKHRoaXMpOworICAgIG1fc3luY01hbmFnZXItPmRpc3BhdGNoKFs9XSB7Cisg
ICAgICAgIHByb3RlY3Rvci0+ZGVsZXRlRW1wdHlEYXRhYmFzZSgpOworICAgIH0pOwogfQogCiB2
b2lkIFN0b3JhZ2VBcmVhU3luYzo6c2NoZWR1bGVJdGVtRm9yU3luYyhjb25zdCBTdHJpbmcmIGtl
eSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTIxMCw3ICsyMTUsMTAgQEAgdm9pZCBTdG9yYWdl
QXJlYVN5bmM6OnN5bmNUaW1lckZpcmVkKFRpbWVyPFN0b3JhZ2VBcmVhU3luYz4qKQogICAgICAg
ICAgICAgLy8gcGVyZm9ybVN5bmMgZnVuY3Rpb24uCiAgICAgICAgICAgICBkaXNhYmxlU3VkZGVu
VGVybWluYXRpb24oKTsKIAotICAgICAgICAgICAgbV9zeW5jTWFuYWdlci0+ZGlzcGF0Y2goYmlu
ZCgmU3RvcmFnZUFyZWFTeW5jOjpwZXJmb3JtU3luYywgdGhpcykpOworICAgICAgICAgICAgUmVm
UHRyPFN0b3JhZ2VBcmVhU3luYz4gcHJvdGVjdG9yKHRoaXMpOworICAgICAgICAgICAgbV9zeW5j
TWFuYWdlci0+ZGlzcGF0Y2goWz1dIHsKKyAgICAgICAgICAgICAgICBwcm90ZWN0b3ItPnBlcmZv
cm1TeW5jKCk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwCmluZGV4IDIyMTk3ZDU3OTU0
MDUyYzlmMjUwNjIyZGIwN2Y3NDY0MTA4YWM2MGUuLjBmZTdiNTI5Y2M2ZTM3YzE3ZjVmYjkyNzEy
NmQ5NmQ4MGE4NTg0YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZVN5bmNNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5j
TWFuYWdlci5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgU3RyaW5nIFN0b3JhZ2VTeW5jTWFuYWdlcjo6
ZnVsbERhdGFiYXNlRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkZW50aWZpZXIKICAg
ICByZXR1cm4gcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fcGF0aCwgZGF0YWJhc2VJZGVudGlm
aWVyICsgIi5sb2NhbHN0b3JhZ2UiKTsKIH0KIAotdm9pZCBTdG9yYWdlU3luY01hbmFnZXI6OmRp
c3BhdGNoKGNvbnN0IEZ1bmN0aW9uPHZvaWQgKCk+JiBmdW5jdGlvbikKK3ZvaWQgU3RvcmFnZVN5
bmNNYW5hZ2VyOjpkaXNwYXRjaChjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+JiBmdW5jdGlv
bikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX3RocmVhZCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5o
IGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuaAppbmRleCA2NGQw
MTAwOTcyY2QwN2EzNzFmMTllZTYyZmMyMjljYjQwNzljMGEyLi40ODY1MWNhMWQyMzRiZTZkNjNl
NzkyOGNhMTg3YzgxMzFkOWRmYzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VTeW5jTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZVN5bmNNYW5hZ2VyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgU3RvcmFnZVN5bmNNYW5h
Z2VyX2gKICNkZWZpbmUgU3RvcmFnZVN5bmNNYW5hZ2VyX2gKIAorI2luY2x1ZGUgPGZ1bmN0aW9u
YWw+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00MSw3ICs0Miw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdG9yYWdlU3luY01hbmFnZXI+IGNyZWF0ZShjb25zdCBT
dHJpbmcmIHBhdGgpOwogICAgIH5TdG9yYWdlU3luY01hbmFnZXIoKTsKIAotICAgIHZvaWQgZGlz
cGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCAoKT4mKTsKKyAgICB2b2lkIGRpc3BhdGNoKGNvbnN0
IHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4mKTsKICAgICB2b2lkIGNsb3NlKCk7CiAKIHByaXZhdGU6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcAppbmRleCBiYmExMjBmYmY5
NTVmMTA2YmYwZWQ2ZDgyMDliMGJiOTAwNWQwYTZiLi4yNGJjNDVhYjk5YTc2NWJlYTNjYmM1N2Q2
ZDViODlhZDcxYWFjNTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3Jh
Z2VUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRocmVhZC5j
cHAKQEAgLTc2LDExICs3NiwxMSBAQCB2b2lkIFN0b3JhZ2VUaHJlYWQ6OnRocmVhZEVudHJ5UG9p
bnQoKQogICAgIH0KIH0KIAotdm9pZCBTdG9yYWdlVGhyZWFkOjpkaXNwYXRjaChjb25zdCBGdW5j
dGlvbjx2b2lkICgpPiYgZnVuY3Rpb24pCit2b2lkIFN0b3JhZ2VUaHJlYWQ6OmRpc3BhdGNoKGNv
bnN0IHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4mIGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKCFtX3F1ZXVlLmtpbGxlZCgpICYmIG1fdGhyZWFkSUQp
OwotICAgIG1fcXVldWUuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCAoKT4+
KGZ1bmN0aW9uKSk7CisgICAgbV9xdWV1ZS5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxzdGQ6OmZ1
bmN0aW9uPHZvaWQgKCk+PihmdW5jdGlvbikpOwogfQogCiB2b2lkIFN0b3JhZ2VUaHJlYWQ6OnRl
cm1pbmF0ZSgpCkBAIC05Miw3ICs5Miw5IEBAIHZvaWQgU3RvcmFnZVRocmVhZDo6dGVybWluYXRl
KCkKICAgICBpZiAoIW1fdGhyZWFkSUQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcXVldWUu
YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8RnVuY3Rpb248dm9pZCAoKT4+KGJpbmQoJlN0b3JhZ2VU
aHJlYWQ6OnBlcmZvcm1UZXJtaW5hdGUsIHRoaXMpKSk7CisgICAgbV9xdWV1ZS5hcHBlbmQoc3Rk
OjptYWtlX3VuaXF1ZTxzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+PihbdGhpc10geworICAgICAgICBw
ZXJmb3JtVGVybWluYXRlKCk7CisgICAgfSkpOwogICAgIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9u
KG1fdGhyZWFkSUQpOwogICAgIEFTU0VSVChtX3F1ZXVlLmtpbGxlZCgpKTsKICAgICBtX3RocmVh
ZElEID0gMDsKQEAgLTEwOSw3ICsxMTEsNyBAQCB2b2lkIFN0b3JhZ2VUaHJlYWQ6OnJlbGVhc2VG
YXN0TWFsbG9jRnJlZU1lbW9yeUluQWxsVGhyZWFkcygpCiAgICAgSGFzaFNldDxTdG9yYWdlVGhy
ZWFkKj4mIHRocmVhZHMgPSBhY3RpdmVTdG9yYWdlVGhyZWFkcygpOwogCiAgICAgZm9yIChIYXNo
U2V0PFN0b3JhZ2VUaHJlYWQqPjo6aXRlcmF0b3IgaXQgPSB0aHJlYWRzLmJlZ2luKCksIGVuZCA9
IHRocmVhZHMuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgKCppdCktPmRpc3BhdGNo
KGJpbmQoV1RGOjpyZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnkpKTsKKyAgICAgICAgKCppdCkt
PmRpc3BhdGNoKFdURjo6cmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5KTsKIH0KIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGhyZWFkLmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQuaAppbmRleCA4ZjA5MmQwODA2Y2QxZTMzZmU1
Nzc3MzFhZTA1Mjk4MTlmNDYwMTMxLi4yNjNjNzhlODI2MmU5Y2ZkODY1ZGRkNTkwMTk1NDkyZjVl
Nzg1MzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQuaApAQCAtMjYsNyAr
MjYsNyBAQAogI2lmbmRlZiBTdG9yYWdlVGhyZWFkX2gKICNkZWZpbmUgU3RvcmFnZVRocmVhZF9o
CiAKLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb25hbC5oPgorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAj
aW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTWVzc2FnZVF1ZXVlLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAg
IGJvb2wgc3RhcnQoKTsKICAgICB2b2lkIHRlcm1pbmF0ZSgpOwogCi0gICAgdm9pZCBkaXNwYXRj
aChjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7CisgICAgdm9pZCBkaXNwYXRjaChjb25zdCBzdGQ6
OmZ1bmN0aW9uPHZvaWQgKCk+Jik7CiAKICAgICBzdGF0aWMgdm9pZCByZWxlYXNlRmFzdE1hbGxv
Y0ZyZWVNZW1vcnlJbkFsbFRocmVhZHMoKTsKIApAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcGVyZm9ybVRlcm1pbmF0ZSgpOwogCiAgICAgVGhyZWFkSWRlbnRpZmllciBtX3Ro
cmVhZElEOwotICAgIE1lc3NhZ2VRdWV1ZTxGdW5jdGlvbjx2b2lkICgpPj4gbV9xdWV1ZTsKKyAg
ICBNZXNzYWdlUXVldWU8c3RkOjpmdW5jdGlvbjx2b2lkICgpPj4gbV9xdWV1ZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
U3RvcmFnZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tl
ci5jcHAKaW5kZXggZGMyMzZjM2YwZTE4NmIyNGM5MzhjNWEwOThlMDAyMjBhMDY4YjFiMi4uYzE5
NTYxNzI3ODNjNzUwZTFhNDk3N2Y0NGQyNjNjZTRkZjdiOTQyMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAKQEAgLTM3LDcgKzM3LDYgQEAKICNpbmNsdWRlICJT
dG9yYWdlVGhyZWFkLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVRyYWNrZXJDbGllbnQuaCIKICNpbmNs
dWRlICJUZXh0RW5jb2RpbmcuaCIKLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb25hbC5oPgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTE3MCw3ICsxNjksOSBAQCB2b2lkIFN0b3JhZ2VUcmFj
a2VyOjppbXBvcnRPcmlnaW5JZGVudGlmaWVycygpCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKICAgICBBU1NFUlQobV90aHJlYWQpOwogCi0gICAgbV90aHJlYWQtPmRpc3BhdGNoKGJpbmQo
JlN0b3JhZ2VUcmFja2VyOjpzeW5jSW1wb3J0T3JpZ2luSWRlbnRpZmllcnMsIHRoaXMpKTsKKyAg
ICBtX3RocmVhZC0+ZGlzcGF0Y2goW3RoaXNdIHsKKyAgICAgICAgc3luY0ltcG9ydE9yaWdpbklk
ZW50aWZpZXJzKCk7CisgICAgfSk7CiB9CiAKIHZvaWQgU3RvcmFnZVRyYWNrZXI6OmZpbmlzaGVk
SW1wb3J0aW5nT3JpZ2luSWRlbnRpZmllcnMoKQpAQCAtMjMyLDcgKzIzMyw5IEBAIHZvaWQgU3Rv
cmFnZVRyYWNrZXI6OnN5bmNJbXBvcnRPcmlnaW5JZGVudGlmaWVycygpCiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICBjYWxsT25NYWluVGhyZWFkKGJpbmQoJlN0b3JhZ2VUcmFja2VyOjpmaW5pc2hl
ZEltcG9ydGluZ09yaWdpbklkZW50aWZpZXJzLCB0aGlzKSk7CisgICAgY2FsbE9uTWFpblRocmVh
ZChbdGhpc10geworICAgICAgICBmaW5pc2hlZEltcG9ydGluZ09yaWdpbklkZW50aWZpZXJzKCk7
CisgICAgfSk7CiB9CiAgICAgCiB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jRmlsZVN5c3RlbUFu
ZFRyYWNrZXJEYXRhYmFzZSgpCkBAIC0yODEsNyArMjg0LDEwIEBAIHZvaWQgU3RvcmFnZVRyYWNr
ZXI6OnN5bmNGaWxlU3lzdGVtQW5kVHJhY2tlckRhdGFiYXNlKCkKICAgICAgICAgaWYgKGZvdW5k
T3JpZ2lucy5jb250YWlucyhvcmlnaW5JZGVudGlmaWVyKSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogCi0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoYmluZCgmU3RvcmFnZVRyYWNrZXI6OmRlbGV0
ZU9yaWdpbldpdGhJZGVudGlmaWVyLCB0aGlzLCBvcmlnaW5JZGVudGlmaWVyLmlzb2xhdGVkQ29w
eSgpKSk7CisgICAgICAgIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyQ29weSA9IG9yaWdpbklkZW50
aWZpZXIuaXNvbGF0ZWRDb3B5KCk7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIG9y
aWdpbklkZW50aWZpZXJDb3B5XSB7CisgICAgICAgICAgICBkZWxldGVPcmlnaW5XaXRoSWRlbnRp
ZmllcihvcmlnaW5JZGVudGlmaWVyQ29weSk7CisgICAgICAgIH0pOwogICAgIH0KIH0KIApAQCAt
Mjk5LDE0ICszMDUsMjAgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c2V0T3JpZ2luRGV0YWlscyhj
b25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmkKICAgICAgICAgbV9vcmln
aW5TZXQuYWRkKG9yaWdpbklkZW50aWZpZXIpOwogICAgIH0KIAotICAgIEZ1bmN0aW9uPHZvaWQg
KCk+IGZ1bmN0aW9uID0gYmluZCgmU3RvcmFnZVRyYWNrZXI6OnN5bmNTZXRPcmlnaW5EZXRhaWxz
LCB0aGlzLCBvcmlnaW5JZGVudGlmaWVyLmlzb2xhdGVkQ29weSgpLCBkYXRhYmFzZUZpbGUuaXNv
bGF0ZWRDb3B5KCkpOworICAgIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyQ29weSA9IG9yaWdpbklk
ZW50aWZpZXIuaXNvbGF0ZWRDb3B5KCk7CisgICAgU3RyaW5nIGRhdGFiYXNlRmlsZUNvcHkgPSBk
YXRhYmFzZUZpbGUuaXNvbGF0ZWRDb3B5KCk7CisgICAgYXV0byBmdW5jdGlvbiA9IFt0aGlzLCBv
cmlnaW5JZGVudGlmaWVyQ29weSwgZGF0YWJhc2VGaWxlQ29weV0geworICAgICAgICBzeW5jU2V0
T3JpZ2luRGV0YWlscyhvcmlnaW5JZGVudGlmaWVyQ29weSwgZGF0YWJhc2VGaWxlQ29weSk7Cisg
ICAgfTsKIAogICAgIGlmIChpc01haW5UaHJlYWQoKSkgewogICAgICAgICBBU1NFUlQobV90aHJl
YWQpOwogICAgICAgICBtX3RocmVhZC0+ZGlzcGF0Y2goZnVuY3Rpb24pOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHdlaXJkIHBpbmctcG9uZ2luZyB3YXMgZG9uZSB0byBm
aXggYSBkZWFkbG9jay4gV2Ugc2hvdWxkIGZpZ3VyZSBvdXQgYSBjbGVhbmVyIHdheSB0byBhdm9p
ZCBpdCBpbnN0ZWFkLgotICAgICAgICBjYWxsT25NYWluVGhyZWFkKGJpbmQoJlN0b3JhZ2VUaHJl
YWQ6OmRpc3BhdGNoLCBtX3RocmVhZC5nZXQoKSwgZnVuY3Rpb24pKTsKKyAgICAgICAgY2FsbE9u
TWFpblRocmVhZChbdGhpcywgZnVuY3Rpb25dIHsKKyAgICAgICAgICAgIG1fdGhyZWFkLT5kaXNw
YXRjaChmdW5jdGlvbik7CisgICAgICAgIH0pOwogICAgIH0KIH0KIApAQCAtMzc4LDcgKzM5MCw5
IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OmRlbGV0ZUFsbE9yaWdpbnMoKQogCiAgICAgUGFnZUdy
b3VwOjpjbGVhckxvY2FsU3RvcmFnZUZvckFsbE9yaWdpbnMoKTsKIAotICAgIG1fdGhyZWFkLT5k
aXNwYXRjaChiaW5kKCZTdG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0ZUFsbE9yaWdpbnMsIHRoaXMp
KTsKKyAgICBtX3RocmVhZC0+ZGlzcGF0Y2goW3RoaXNdIHsKKyAgICAgICAgc3luY0RlbGV0ZUFs
bE9yaWdpbnMoKTsKKyAgICB9KTsKIH0KICAgICAKIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNE
ZWxldGVBbGxPcmlnaW5zKCkKQEAgLTQ3NCw3ICs0ODgsMTAgQEAgdm9pZCBTdG9yYWdlVHJhY2tl
cjo6ZGVsZXRlT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiAgICAgICAgIG1fb3JpZ2lu
U2V0LnJlbW92ZShvcmlnaW5JZCk7CiAgICAgfQogCi0gICAgbV90aHJlYWQtPmRpc3BhdGNoKGJp
bmQoJlN0b3JhZ2VUcmFja2VyOjpzeW5jRGVsZXRlT3JpZ2luLCB0aGlzLCBvcmlnaW5JZC5pc29s
YXRlZENvcHkoKSkpOworICAgIFN0cmluZyBvcmlnaW5JZENvcHkgPSBvcmlnaW5JZC5pc29sYXRl
ZENvcHkoKTsKKyAgICBtX3RocmVhZC0+ZGlzcGF0Y2goW3RoaXMsIG9yaWdpbklkQ29weV0gewor
ICAgICAgICBzeW5jRGVsZXRlT3JpZ2luKG9yaWdpbklkQ29weSk7CisgICAgfSk7CiB9CiAKIHZv
aWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVPcmlnaW4oY29uc3QgU3RyaW5nJiBvcmlnaW5J
ZGVudGlmaWVyKQo=
</data>
<flag name="review"
          id="261742"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>