<?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>110375</bug_id>
          
          <creation_ts>2013-02-20 13:30:22 -0800</creation_ts>
          <short_desc>Add client callbacks to notify of changes of associated form controls</short_desc>
          <delta_ts>2013-03-22 16:14:34 -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>Forms</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="Dane Walllinga">dgwallinga</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>adamk</cc>
    
    <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>esprehn</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>mifenton</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>peter+ews</cc>
    
    <cc>philn</cc>
    
    <cc>rego+ews</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>837701</commentid>
    <comment_count>0</comment_count>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-02-20 13:30:22 -0800</bug_when>
    <thetext>Hook FormAssociatedElement, HTMLFormElement to notify EditorClient of form changes after a page has loaded</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837737</commentid>
    <comment_count>1</comment_count>
      <attachid>189372</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-02-20 14:08:33 -0800</bug_when>
    <thetext>Created attachment 189372
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837753</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-20 14:21:15 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837771</commentid>
    <comment_count>3</comment_count>
      <attachid>189372</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-20 14:30:22 -0800</bug_when>
    <thetext>Comment on attachment 189372
Patch

Attachment 189372 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16656545</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837773</commentid>
    <comment_count>4</comment_count>
      <attachid>189372</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-20 14:30:52 -0800</bug_when>
    <thetext>Comment on attachment 189372
Patch

Attachment 189372 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16661489</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837806</commentid>
    <comment_count>5</comment_count>
      <attachid>189372</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-20 15:02:10 -0800</bug_when>
    <thetext>Comment on attachment 189372
Patch

Attachment 189372 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16661504</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837813</commentid>
    <comment_count>6</comment_count>
      <attachid>189372</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-20 15:07:52 -0800</bug_when>
    <thetext>Comment on attachment 189372
Patch

Attachment 189372 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16647586</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837923</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-20 16:37:56 -0800</bug_when>
    <thetext>This is quite a bit of hooks added to core common code paths. What is the purpose of them, perhaps it can be achieved without performance impact?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837969</commentid>
    <comment_count>8</comment_count>
      <attachid>189372</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-20 17:14:27 -0800</bug_when>
    <thetext>Comment on attachment 189372
Patch

Attachment 189372 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16658607

New failing tests:
editing/pasteboard/paste-noscript.html
editing/pasteboard/paste-noscript-xhtml.xhtml
http/tests/xmlhttprequest/web-apps/018.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838539</commentid>
    <comment_count>9</comment_count>
      <attachid>189372</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-21 10:06:11 -0800</bug_when>
    <thetext>Comment on attachment 189372
Patch

Attachment 189372 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16695172</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838580</commentid>
    <comment_count>10</comment_count>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-02-21 10:51:53 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; This is quite a bit of hooks added to core common code paths. What is the purpose of them, perhaps it can be achieved without performance impact?

More or less, the idea is to allow autofill to be able to handle ajax-y pages, so if say filling out a form causes a new field to pop up, chromium be informed, and know to re-query the autofill server and keep going.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838669</commentid>
    <comment_count>11</comment_count>
      <attachid>189372</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-21 12:09:17 -0800</bug_when>
    <thetext>Comment on attachment 189372
Patch

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

&gt; Source/WebCore/html/FormAssociatedElement.cpp:166
&gt; +        &amp;&amp; element-&gt;document()-&gt;frame()-&gt;loader()-&gt;isComplete()) {

frame() might return 0

It&apos;s very unlikely that you want to call isComplete from this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838691</commentid>
    <comment_count>12</comment_count>
      <attachid>189372</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-21 12:22:25 -0800</bug_when>
    <thetext>Comment on attachment 189372
Patch

Attachment 189372 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16698229</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838795</commentid>
    <comment_count>13</comment_count>
      <attachid>189594</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-02-21 13:49:39 -0800</bug_when>
    <thetext>Created attachment 189594
add hooks to FormAssociatedElement, HTMLFormElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838801</commentid>
    <comment_count>14</comment_count>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-02-21 13:53:11 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 189372 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189372&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/FormAssociatedElement.cpp:166
&gt; &gt; +        &amp;&amp; element-&gt;document()-&gt;frame()-&gt;loader()-&gt;isComplete()) {
&gt; 
&gt; frame() might return 0
&gt; 
&gt; It&apos;s very unlikely that you want to call isComplete from this code.

Fixed, and instead conditioning on frame(). If frame() is present, will I need to worry about editor() or editor()-&gt;client() being 0? Couldn&apos;t get it to fail testing locally, but no doubt there are certain edge cases I didn&apos;t hit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838803</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-21 13:55:39 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #11)
&gt; &gt; (From update of attachment 189372 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189372&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/html/FormAssociatedElement.cpp:166
&gt; &gt; &gt; +        &amp;&amp; element-&gt;document()-&gt;frame()-&gt;loader()-&gt;isComplete()) {
&gt; &gt; 
&gt; &gt; frame() might return 0
&gt; &gt; 
&gt; &gt; It&apos;s very unlikely that you want to call isComplete from this code.
&gt; 
&gt; Fixed, and instead conditioning on frame(). If frame() is present, will I need to worry about editor() or editor()-&gt;client() being 0? Couldn&apos;t get it to fail testing locally, but no doubt there are certain edge cases I didn&apos;t hit.

Those will always be non-zero.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838805</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-21 13:56:50 -0800</bug_when>
    <thetext>WHy exactly do we need these callbacks?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838806</commentid>
    <comment_count>17</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-21 13:57:10 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #7)
&gt; &gt; This is quite a bit of hooks added to core common code paths. What is the purpose of them, perhaps it can be achieved without performance impact?
&gt; 
&gt; More or less, the idea is to allow autofill to be able to handle ajax-y pages, so if say filling out a form causes a new field to pop up, chromium be informed, and know to re-query the autofill server and keep going.

Please explain this in the change log.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838811</commentid>
    <comment_count>18</comment_count>
      <attachid>189594</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-21 13:59:54 -0800</bug_when>
    <thetext>Comment on attachment 189594
add hooks to FormAssociatedElement, HTMLFormElement

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

&gt; Source/WebCore/page/EditorClient.h:121
&gt; +    virtual void didAssociateInput(Element*) = 0;
&gt; +    virtual void didAddForm(Element*) = 0;
&gt; +

I don&apos;t think these callbacks belong in EditorClient. EditorClient is for editing operations.
Detecting a change in associated form control is nothing to do with editing operations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838812</commentid>
    <comment_count>19</comment_count>
      <attachid>189594</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-21 14:01:58 -0800</bug_when>
    <thetext>Comment on attachment 189594
add hooks to FormAssociatedElement, HTMLFormElement

Attachment 189594 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16689357</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838814</commentid>
    <comment_count>20</comment_count>
      <attachid>189597</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-02-21 14:02:56 -0800</bug_when>
    <thetext>Created attachment 189597
add hooks to FormAssociatedElement, HTMLFormElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838823</commentid>
    <comment_count>21</comment_count>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-02-21 14:08:57 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 189594 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189594&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/EditorClient.h:121
&gt; &gt; +    virtual void didAssociateInput(Element*) = 0;
&gt; &gt; +    virtual void didAddForm(Element*) = 0;
&gt; &gt; +
&gt; 
&gt; I don&apos;t think these callbacks belong in EditorClient. EditorClient is for editing operations.
&gt; Detecting a change in associated form control is nothing to do with editing operations.

Fair enough. I&apos;m fairly new to WebKit development - can you suggest a location that would be more appropriate to the use case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838824</commentid>
    <comment_count>22</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-02-21 14:09:27 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 189594 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189594&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/EditorClient.h:121
&gt; &gt; +    virtual void didAssociateInput(Element*) = 0;
&gt; &gt; +    virtual void didAddForm(Element*) = 0;
&gt; &gt; +
&gt; 
&gt; I don&apos;t think these callbacks belong in EditorClient. EditorClient is for editing operations.
&gt; Detecting a change in associated form control is nothing to do with editing operations.

I suggested we put them there because they&apos;re the concern of any editor that&apos;s implementing autocomplete or autofill. Right now the autocomplete implementation in Chromium needs to crawl the entire document on page load to find form inputs, and then we can&apos;t figure out if the page changes or there&apos;s dynamic forms. Dane had originally wanted to use MutationObserver, but that makes many DOM operations much slower since we start adding mutation records everywhere.  I suggested this approach instead.

Do you have a suggestion for where you&apos;d want these instead, could we the callbacks differently? EditorClient seems natural, that&apos;s also where spell checking and other things are which tie in with autocomplete. ex. Spellcheck should know all your autocomplete terms are not typos, and the spell check suggestion bubbles (the iOS thingers) should suggest text that&apos;s anywhere in the current form.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838826</commentid>
    <comment_count>23</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-02-21 14:10:16 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; ...
&gt; 
&gt; Do you have a suggestion for where you&apos;d want these instead, could we the *name the* callbacks differently?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838831</commentid>
    <comment_count>24</comment_count>
      <attachid>189597</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-21 14:16:34 -0800</bug_when>
    <thetext>Comment on attachment 189597
add hooks to FormAssociatedElement, HTMLFormElement

Attachment 189597 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16693310</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838833</commentid>
    <comment_count>25</comment_count>
      <attachid>189597</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-21 14:17:03 -0800</bug_when>
    <thetext>Comment on attachment 189597
add hooks to FormAssociatedElement, HTMLFormElement

Attachment 189597 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16692327</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838834</commentid>
    <comment_count>26</comment_count>
      <attachid>189597</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-21 14:17:14 -0800</bug_when>
    <thetext>Comment on attachment 189597
add hooks to FormAssociatedElement, HTMLFormElement

Attachment 189597 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16689373</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838837</commentid>
    <comment_count>27</comment_count>
      <attachid>189597</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-21 14:17:41 -0800</bug_when>
    <thetext>Comment on attachment 189597
add hooks to FormAssociatedElement, HTMLFormElement

Attachment 189597 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16690366</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838841</commentid>
    <comment_count>28</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-21 14:19:56 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #18)
&gt; &gt; (From update of attachment 189594 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189594&amp;action=review
&gt; &gt;
&gt; &gt; I don&apos;t think these callbacks belong in EditorClient. EditorClient is for editing operations.
&gt; &gt; Detecting a change in associated form control is nothing to do with editing operations.
&gt; 
&gt; Fair enough. I&apos;m fairly new to WebKit development - can you suggest a location that would be more appropriate to the use case?

ChromeClient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838856</commentid>
    <comment_count>29</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-21 14:40:58 -0800</bug_when>
    <thetext>Making synchronous callbacks in the middle of DOM manipulation is unsafe. You probably want to postpone sending notifications until after it finishes, e.g. on a zero delay timer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838899</commentid>
    <comment_count>30</comment_count>
      <attachid>189597</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-21 15:17:13 -0800</bug_when>
    <thetext>Comment on attachment 189597
add hooks to FormAssociatedElement, HTMLFormElement

Attachment 189597 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16693335

New failing tests:
editing/pasteboard/paste-noscript.html
editing/pasteboard/paste-noscript-xhtml.xhtml
http/tests/xmlhttprequest/web-apps/018.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838958</commentid>
    <comment_count>31</comment_count>
      <attachid>189597</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-21 15:54:29 -0800</bug_when>
    <thetext>Comment on attachment 189597
add hooks to FormAssociatedElement, HTMLFormElement

Attachment 189597 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16688467

New failing tests:
editing/pasteboard/paste-noscript.html
editing/pasteboard/paste-noscript-xhtml.xhtml
http/tests/xmlhttprequest/web-apps/018.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839088</commentid>
    <comment_count>32</comment_count>
      <attachid>189650</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-02-21 17:52:57 -0800</bug_when>
    <thetext>Created attachment 189650
add hooks to FormAssociatedElement, HTMLFormElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839092</commentid>
    <comment_count>33</comment_count>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-02-21 17:54:14 -0800</bug_when>
    <thetext>(In reply to comment #29)
&gt; Making synchronous callbacks in the middle of DOM manipulation is unsafe. You probably want to postpone sending notifications until after it finishes, e.g. on a zero delay timer.

ok, threw in some timers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839096</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-21 17:55:55 -0800</bug_when>
    <thetext>Attachment 189650 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/html/FormAssociatedElement.cpp&apos;, u&apos;Source/WebCore/html/FormAssociatedElement.h&apos;, u&apos;Source/WebCore/html/HTMLFormElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLFormElement.h&apos;, u&apos;Source/WebCore/loader/EmptyClients.h&apos;, u&apos;Source/WebCore/page/EditorClient.h&apos;, u&apos;Source/WebKit/chromium/ChangeLog&apos;, u&apos;Source/WebKit/chromium/public/WebAutofillClient.h&apos;, u&apos;Source/WebKit/chromium/src/EditorClientImpl.cpp&apos;, u&apos;Source/WebKit/chromium/src/EditorClientImpl.h&apos;]&quot; exit_code: 1
Source/WebCore/html/HTMLFormElement.cpp:146:  One line control clauses should not use braces.  [whitespace/braces] [4]
Source/WebCore/html/HTMLFormElement.cpp:757:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WebCore/html/HTMLFormElement.cpp:758:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
Source/WebCore/html/HTMLFormElement.cpp:760:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
Source/WebCore/html/FormAssociatedElement.cpp:278:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WebCore/html/FormAssociatedElement.cpp:281:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/html/FormAssociatedElement.cpp:282:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 7 in 11 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>839097</commentid>
    <comment_count>35</comment_count>
      <attachid>189650</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-21 17:57:45 -0800</bug_when>
    <thetext>Comment on attachment 189650
add hooks to FormAssociatedElement, HTMLFormElement

Attachment 189650 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16696465</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839098</commentid>
    <comment_count>36</comment_count>
      <attachid>189650</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-21 17:59:11 -0800</bug_when>
    <thetext>Comment on attachment 189650
add hooks to FormAssociatedElement, HTMLFormElement

Attachment 189650 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16696466</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839099</commentid>
    <comment_count>37</comment_count>
      <attachid>189653</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-02-21 18:01:20 -0800</bug_when>
    <thetext>Created attachment 189653
some style fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839108</commentid>
    <comment_count>38</comment_count>
      <attachid>189653</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-21 18:13:22 -0800</bug_when>
    <thetext>Comment on attachment 189653
some style fixes

Attachment 189653 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16689506</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839109</commentid>
    <comment_count>39</comment_count>
      <attachid>189653</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-21 18:14:13 -0800</bug_when>
    <thetext>Comment on attachment 189653
some style fixes

Attachment 189653 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16695468</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839110</commentid>
    <comment_count>40</comment_count>
      <attachid>189650</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-02-21 18:17:03 -0800</bug_when>
    <thetext>Comment on attachment 189650
add hooks to FormAssociatedElement, HTMLFormElement

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

This is going to be super spammy, lets batch together the changes so we don&apos;t make hundreds of these calls during page load. rniwa wanted this in ChromeClient so lets put it there too.

&gt; Source/WebCore/html/FormAssociatedElement.cpp:165
&gt; +    if (m_form &amp;&amp; m_form != currentForm &amp;&amp; m_form-&gt;inDocument()

We probably want the Client to have a method like bool shouldNotifyOnFormChanges() that lets you control if these are batched and if they&apos;re fired.

&gt;&gt; Source/WebCore/html/FormAssociatedElement.cpp:281
&gt;&gt; +      element-&gt;document()-&gt;frame()-&gt;editor()-&gt;client()-&gt;didAssociateInput(element);
&gt; 
&gt; Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]

This is going to spam you with notifications and also means you have tons of timers. This isn&apos;t the approach you want. Instead you want to collect in a HashSet (or ListHashSet) all the Elements that have changed and then give a batch notification to the client.

didAssociateFormControls(HashSet&lt;Element&gt;) or some such.

&gt;&gt; Source/WebCore/html/FormAssociatedElement.cpp:282
&gt;&gt; +    }
&gt; 
&gt; One line control clauses should not use braces.  [whitespace/braces] [4]

webkit-patch should be warning you about these before you upload. It&apos;s nice if you fix them before you upload. :)

&gt; Source/WebCore/html/FormAssociatedElement.h:122
&gt; +    Timer&lt;FormAssociatedElement&gt; m_didAssociateElementTimer;

This makes every form element bigger for just this feature which is bad. You want a shared timer per document probably.

&gt; Source/WebCore/html/HTMLFormElement.cpp:759
&gt; +    this-&gt;document()-&gt;frame()-&gt;editor()-&gt;client()-&gt;didAddForm(this);

Same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839111</commentid>
    <comment_count>41</comment_count>
      <attachid>189653</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-21 18:19:33 -0800</bug_when>
    <thetext>Comment on attachment 189653
some style fixes

Attachment 189653 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16690504</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839151</commentid>
    <comment_count>42</comment_count>
      <attachid>189653</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-21 19:34:54 -0800</bug_when>
    <thetext>Comment on attachment 189653
some style fixes

Attachment 189653 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16701414</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839189</commentid>
    <comment_count>43</comment_count>
      <attachid>189653</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-21 20:54:15 -0800</bug_when>
    <thetext>Comment on attachment 189653
some style fixes

Attachment 189653 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16700468

New failing tests:
editing/pasteboard/paste-noscript.html
http/tests/xmlhttprequest/workers/abort-exception-assert.html
fast/dom/HTMLFormElement/associated-elements-after-index-assertion-fail1.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839642</commentid>
    <comment_count>44</comment_count>
      <attachid>189653</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-22 09:09:43 -0800</bug_when>
    <thetext>Comment on attachment 189653
some style fixes

Attachment 189653 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16719001</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840213</commentid>
    <comment_count>45</comment_count>
      <attachid>189650</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-02-22 18:07:05 -0800</bug_when>
    <thetext>Comment on attachment 189650
add hooks to FormAssociatedElement, HTMLFormElement

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

&gt;&gt; Source/WebCore/html/FormAssociatedElement.cpp:165
&gt;&gt; +    if (m_form &amp;&amp; m_form != currentForm &amp;&amp; m_form-&gt;inDocument()
&gt; 
&gt; We probably want the Client to have a method like bool shouldNotifyOnFormChanges() that lets you control if these are batched and if they&apos;re fired.

Sounds reasonable enough. How do you feel about the argument for moving things to ChromeClient?

&gt;&gt;&gt; Source/WebCore/html/FormAssociatedElement.cpp:281
&gt;&gt;&gt; +      element-&gt;document()-&gt;frame()-&gt;editor()-&gt;client()-&gt;didAssociateInput(element);
&gt;&gt; 
&gt;&gt; Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
&gt; 
&gt; This is going to spam you with notifications and also means you have tons of timers. This isn&apos;t the approach you want. Instead you want to collect in a HashSet (or ListHashSet) all the Elements that have changed and then give a batch notification to the client.
&gt; 
&gt; didAssociateFormControls(HashSet&lt;Element&gt;) or some such.

Assuming we still don&apos;t want to increase the size of an HTMLFormElement or formAssociatedElement, this would be a HashSet (or ListHashSet) that&apos;s kept in the document, and then presumably we&apos;d call a method on document from somewhere in here that would be something like document()-&gt;didAssociateInput(element), which in turn keeps track of the set, and also sets its timer (or resets, if it&apos;s already set) to fire after some small number of milliseconds which will pass everything so far accumulated onto the EditorClient. Have I understood that correctly?

&gt;&gt;&gt; Source/WebCore/html/FormAssociatedElement.cpp:282
&gt;&gt;&gt; +    }
&gt;&gt; 
&gt;&gt; One line control clauses should not use braces.  [whitespace/braces] [4]
&gt; 
&gt; webkit-patch should be warning you about these before you upload. It&apos;s nice if you fix them before you upload. :)

Didn&apos;t notice any warnings from webkit-patch, but I had gotten into the habit of running check-webkit-style first. Just forgot to for this one.

&gt;&gt; Source/WebCore/html/FormAssociatedElement.h:122
&gt;&gt; +    Timer&lt;FormAssociatedElement&gt; m_didAssociateElementTimer;
&gt; 
&gt; This makes every form element bigger for just this feature which is bad. You want a shared timer per document probably.

fair enough</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840244</commentid>
    <comment_count>46</comment_count>
      <attachid>189650</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-22 18:52:26 -0800</bug_when>
    <thetext>Comment on attachment 189650
add hooks to FormAssociatedElement, HTMLFormElement

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

&gt;&gt;&gt;&gt; Source/WebCore/html/FormAssociatedElement.cpp:281
&gt;&gt;&gt;&gt; +      element-&gt;document()-&gt;frame()-&gt;editor()-&gt;client()-&gt;didAssociateInput(element);
&gt;&gt;&gt; 
&gt;&gt;&gt; Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
&gt;&gt; 
&gt;&gt; This is going to spam you with notifications and also means you have tons of timers. This isn&apos;t the approach you want. Instead you want to collect in a HashSet (or ListHashSet) all the Elements that have changed and then give a batch notification to the client.
&gt;&gt; 
&gt;&gt; didAssociateFormControls(HashSet&lt;Element&gt;) or some such.
&gt; 
&gt; Assuming we still don&apos;t want to increase the size of an HTMLFormElement or formAssociatedElement, this would be a HashSet (or ListHashSet) that&apos;s kept in the document, and then presumably we&apos;d call a method on document from somewhere in here that would be something like document()-&gt;didAssociateInput(element), which in turn keeps track of the set, and also sets its timer (or resets, if it&apos;s already set) to fire after some small number of milliseconds which will pass everything so far accumulated onto the EditorClient. Have I understood that correctly?

Yes, but please don&apos;t use EditorClient for this purpose.

By the way, it might make sense to create a new client interface that encompasses auto-completion/spellchecking related callbacks such as this one and existing ones on ChromeClient/Editor Client. But that&apos;s probably outside of the scope of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840245</commentid>
    <comment_count>47</comment_count>
      <attachid>189650</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-22 18:52:28 -0800</bug_when>
    <thetext>Comment on attachment 189650
add hooks to FormAssociatedElement, HTMLFormElement

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

&gt;&gt;&gt;&gt; Source/WebCore/html/FormAssociatedElement.cpp:281
&gt;&gt;&gt;&gt; +      element-&gt;document()-&gt;frame()-&gt;editor()-&gt;client()-&gt;didAssociateInput(element);
&gt;&gt;&gt; 
&gt;&gt;&gt; Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
&gt;&gt; 
&gt;&gt; This is going to spam you with notifications and also means you have tons of timers. This isn&apos;t the approach you want. Instead you want to collect in a HashSet (or ListHashSet) all the Elements that have changed and then give a batch notification to the client.
&gt;&gt; 
&gt;&gt; didAssociateFormControls(HashSet&lt;Element&gt;) or some such.
&gt; 
&gt; Assuming we still don&apos;t want to increase the size of an HTMLFormElement or formAssociatedElement, this would be a HashSet (or ListHashSet) that&apos;s kept in the document, and then presumably we&apos;d call a method on document from somewhere in here that would be something like document()-&gt;didAssociateInput(element), which in turn keeps track of the set, and also sets its timer (or resets, if it&apos;s already set) to fire after some small number of milliseconds which will pass everything so far accumulated onto the EditorClient. Have I understood that correctly?

Yes, but please don&apos;t use EditorClient for this purpose.

By the way, it might make sense to create a new client interface that encompasses auto-completion/spellchecking related callbacks such as this one and existing ones on ChromeClient/Editor Client. But that&apos;s probably outside of the scope of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840309</commentid>
    <comment_count>48</comment_count>
      <attachid>189653</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-22 22:42:44 -0800</bug_when>
    <thetext>Comment on attachment 189653
some style fixes

Attachment 189653 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16721416</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842282</commentid>
    <comment_count>49</comment_count>
      <attachid>190344</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-02-26 12:55:04 -0800</bug_when>
    <thetext>Created attachment 190344
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842288</commentid>
    <comment_count>50</comment_count>
      <attachid>190344</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-02-26 13:02:25 -0800</bug_when>
    <thetext>Comment on attachment 190344
Patch

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

Bunch of style things, but this looks fantastic.

&gt; Source/WebCore/dom/Document.cpp:6054
&gt; +    if (this-&gt;frame() &amp;&amp; this-&gt;frame()-&gt;page()-&gt;chrome()-&gt;client()-&gt;shouldNotifyOnFormChanges()) {

These two methods should early return, and you don&apos;t need the this-&gt; prefix.

if (!frame() || !frame()-&gt;...)
  return;
...

&gt; Source/WebCore/dom/Document.h:1577
&gt; +    void didAssociateFormControlsTimerFired(Timer&lt;Document&gt;*);

We don&apos;t usually intersperse methods and data members. Could you move the method up higher in the def with other methods?

&gt; Source/WebCore/dom/Document.h:1581
&gt; +    

extra ws.

&gt; Source/WebCore/html/HTMLFormElement.cpp:33
&gt; +#include &quot;EditorClient.h&quot;

This doesn&apos;t look needed now.

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:1176
&gt; +    if (m_webView-&gt;autofillClient()) {

Early return is usually nicer than wrapping an entire method body in an if statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842310</commentid>
    <comment_count>51</comment_count>
      <attachid>190344</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-26 13:28:14 -0800</bug_when>
    <thetext>Comment on attachment 190344
Patch

Attachment 190344 did not pass qt-wk2-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/16769477</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842312</commentid>
    <comment_count>52</comment_count>
      <attachid>190344</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-26 13:29:07 -0800</bug_when>
    <thetext>Comment on attachment 190344
Patch

Attachment 190344 did not pass qt-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/16771415</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842332</commentid>
    <comment_count>53</comment_count>
      <attachid>190353</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-02-26 13:51:19 -0800</bug_when>
    <thetext>Created attachment 190353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842360</commentid>
    <comment_count>54</comment_count>
      <attachid>190353</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-26 14:11:14 -0800</bug_when>
    <thetext>Comment on attachment 190353
Patch

Attachment 190353 did not pass qt-wk2-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/16769501</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842388</commentid>
    <comment_count>55</comment_count>
      <attachid>190353</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-26 14:43:40 -0800</bug_when>
    <thetext>Comment on attachment 190353
Patch

Attachment 190353 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/16776478</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842414</commentid>
    <comment_count>56</comment_count>
      <attachid>190344</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-02-26 15:05:13 -0800</bug_when>
    <thetext>Comment on attachment 190344
Patch

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

&gt;&gt; Source/WebCore/dom/Document.cpp:6054
&gt;&gt; +    if (this-&gt;frame() &amp;&amp; this-&gt;frame()-&gt;page()-&gt;chrome()-&gt;client()-&gt;shouldNotifyOnFormChanges()) {
&gt; 
&gt; These two methods should early return, and you don&apos;t need the this-&gt; prefix.
&gt; 
&gt; if (!frame() || !frame()-&gt;...)
&gt;   return;
&gt; ...

ah, good old deMorgan

&gt;&gt; Source/WebCore/dom/Document.h:1577
&gt;&gt; +    void didAssociateFormControlsTimerFired(Timer&lt;Document&gt;*);
&gt; 
&gt; We don&apos;t usually intersperse methods and data members. Could you move the method up higher in the def with other methods?

done

&gt;&gt; Source/WebCore/dom/Document.h:1581
&gt;&gt; +    
&gt; 
&gt; extra ws.

done

&gt;&gt; Source/WebCore/html/HTMLFormElement.cpp:33
&gt;&gt; +#include &quot;EditorClient.h&quot;
&gt; 
&gt; This doesn&apos;t look needed now.

good catch

&gt;&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:1176
&gt;&gt; +    if (m_webView-&gt;autofillClient()) {
&gt; 
&gt; Early return is usually nicer than wrapping an entire method body in an if statement.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842433</commentid>
    <comment_count>57</comment_count>
      <attachid>190353</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-26 15:26:17 -0800</bug_when>
    <thetext>Comment on attachment 190353
Patch

Attachment 190353 did not pass qt-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/16788006</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842456</commentid>
    <comment_count>58</comment_count>
      <attachid>190353</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-26 15:46:26 -0800</bug_when>
    <thetext>Comment on attachment 190353
Patch

Attachment 190353 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/16773517</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842467</commentid>
    <comment_count>59</comment_count>
      <attachid>190353</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-26 15:53:45 -0800</bug_when>
    <thetext>Comment on attachment 190353
Patch

Attachment 190353 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/16806006</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842528</commentid>
    <comment_count>60</comment_count>
      <attachid>190353</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-26 16:58:30 -0800</bug_when>
    <thetext>Comment on attachment 190353
Patch

Attachment 190353 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/16806032</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842552</commentid>
    <comment_count>61</comment_count>
      <attachid>190353</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 17:22:52 -0800</bug_when>
    <thetext>Comment on attachment 190353
Patch

Attachment 190353 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/16763027

New failing tests:
fast/js/dfg-inline-resolve.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844604</commentid>
    <comment_count>62</comment_count>
      <attachid>190353</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-28 16:23:57 -0800</bug_when>
    <thetext>Comment on attachment 190353
Patch

Attachment 190353 did not pass win-ews (win):
Output: http://webkit-commit-queue.appspot.com/results/16819464</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847977</commentid>
    <comment_count>63</comment_count>
      <attachid>191546</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-03-05 13:09:55 -0800</bug_when>
    <thetext>Created attachment 191546
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848044</commentid>
    <comment_count>64</comment_count>
      <attachid>191546</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-05 14:02:51 -0800</bug_when>
    <thetext>Comment on attachment 191546
Patch

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

&gt; Source/WebCore/dom/Document.cpp:6057
&gt; +    m_didAssociateFormControlsTimer.startOneShot(0.1);

Why not 0?

&gt; Source/WebCore/html/FormAssociatedElement.cpp:166
&gt; +    if (m_form &amp;&amp; m_form != currentForm &amp;&amp; m_form-&gt;inDocument())
&gt; +        element-&gt;document()-&gt;didAssociateFormControl(element);

What if we associated a form and then subsequently &quot;unassociated&quot; it?
Why is it okay to still notify the client.

It might be okay to do that for your specific use case but that doesn&apos;t sound like a sound API to me.

&gt; Source/WebCore/html/FormAssociatedElement.h:27
&gt; +#include &quot;Timer.h&quot;

Why do we need Timer here?

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:1178
&gt; +    WebVector&lt;WebNode*&gt; elementVector((size_t) elements.size());

Please use static_cast.

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:1182
&gt; +        elementVector[i] = new WebNode((*it));

I don&apos;t think this is the way to get WebNode. Simply call WebNode. r- because of this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848294</commentid>
    <comment_count>65</comment_count>
      <attachid>191613</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-03-05 17:22:07 -0800</bug_when>
    <thetext>Created attachment 191613
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848302</commentid>
    <comment_count>66</comment_count>
      <attachid>191546</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-03-05 17:26:44 -0800</bug_when>
    <thetext>Comment on attachment 191546
Patch

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

&gt;&gt; Source/WebCore/dom/Document.cpp:6057
&gt;&gt; +    m_didAssociateFormControlsTimer.startOneShot(0.1);
&gt; 
&gt; Why not 0?

done

&gt;&gt; Source/WebCore/html/FormAssociatedElement.cpp:166
&gt;&gt; +        element-&gt;document()-&gt;didAssociateFormControl(element);
&gt; 
&gt; What if we associated a form and then subsequently &quot;unassociated&quot; it?
&gt; Why is it okay to still notify the client.
&gt; 
&gt; It might be okay to do that for your specific use case but that doesn&apos;t sound like a sound API to me.

You&apos;re saying we should notify the ChromeClient of unassociations? Or that if an association is followed by an unassociation within the time it takes for the Document to send changes onward, we shouldn&apos;t inform ChromeClient of anything? That later doesn&apos;t make much sense to me, as it would then be the case that what the ChromeClient gets informed of depends on how things get batched.

&gt;&gt; Source/WebCore/html/FormAssociatedElement.h:27
&gt;&gt; +#include &quot;Timer.h&quot;
&gt; 
&gt; Why do we need Timer here?

because I was lazy in cleaning up dependencies after my last large change

&gt;&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:1178
&gt;&gt; +    WebVector&lt;WebNode*&gt; elementVector((size_t) elements.size());
&gt; 
&gt; Please use static_cast.

done

&gt;&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:1182
&gt;&gt; +        elementVector[i] = new WebNode((*it));
&gt; 
&gt; I don&apos;t think this is the way to get WebNode. Simply call WebNode. r- because of this.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848347</commentid>
    <comment_count>67</comment_count>
      <attachid>191632</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-03-05 18:32:32 -0800</bug_when>
    <thetext>Created attachment 191632
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848364</commentid>
    <comment_count>68</comment_count>
      <attachid>191632</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 19:01:03 -0800</bug_when>
    <thetext>Comment on attachment 191632
Patch

Attachment 191632 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17048245</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848366</commentid>
    <comment_count>69</comment_count>
      <attachid>191632</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-03-05 19:03:08 -0800</bug_when>
    <thetext>Comment on attachment 191632
Patch

Attachment 191632 did not pass qt-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/17036114</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848379</commentid>
    <comment_count>70</comment_count>
      <attachid>191632</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-03-05 19:16:41 -0800</bug_when>
    <thetext>Comment on attachment 191632
Patch

Attachment 191632 did not pass qt-wk2-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/17046265</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848393</commentid>
    <comment_count>71</comment_count>
      <attachid>191632</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-03-05 19:40:17 -0800</bug_when>
    <thetext>Comment on attachment 191632
Patch

Attachment 191632 did not pass cr-android-ews (chromium-android):
Output: http://webkit-commit-queue.appspot.com/results/17044103</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848422</commentid>
    <comment_count>72</comment_count>
      <attachid>191632</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 20:32:00 -0800</bug_when>
    <thetext>Comment on attachment 191632
Patch

Attachment 191632 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17067020</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848427</commentid>
    <comment_count>73</comment_count>
      <attachid>191632</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-05 20:47:39 -0800</bug_when>
    <thetext>Comment on attachment 191632
Patch

Attachment 191632 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17058017</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848505</commentid>
    <comment_count>74</comment_count>
      <attachid>191632</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-03-05 23:25:28 -0800</bug_when>
    <thetext>Comment on attachment 191632
Patch

Attachment 191632 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17003088</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848519</commentid>
    <comment_count>75</comment_count>
      <attachid>191632</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-03-05 23:54:48 -0800</bug_when>
    <thetext>Comment on attachment 191632
Patch

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

r- for the build breakages.

&gt; Source/WebCore/page/ChromeClient.h:387
&gt; +    virtual bool shouldNotifyOnFormChanges() = { return false; };

Wrong &quot;=&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849032</commentid>
    <comment_count>76</comment_count>
      <attachid>191787</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-03-06 10:31:03 -0800</bug_when>
    <thetext>Created attachment 191787
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849054</commentid>
    <comment_count>77</comment_count>
      <attachid>191787</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-06 10:45:58 -0800</bug_when>
    <thetext>Comment on attachment 191787
Patch

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

&gt; Source/WebCore/ChangeLog:5
&gt; +        Hook FormAssociatedElement, HTMLFormElement to notify EditorClient of form changes after a page has loaded.
&gt; +        Will be used to add autofill support for ajax-y webpages. e.g if while filling out a form, new fields
&gt; +        are dynamically created, autofill can know to re-query the autofill server and keep going.

This should be the bug title. Please put a long change description after &quot;Reviewed by&quot; line followed by a blank line.

&gt; Source/WebCore/dom/Document.cpp:6078
&gt; +    if (!frame() || !frame()-&gt;page()-&gt;chrome()-&gt;client()-&gt;shouldNotifyOnFormChanges())
&gt; +        return;

I don&apos;t like the fact we have to call this virtual function every time a form control association changes. Can this be a page setting instead?

&gt; Source/WebCore/dom/Document.cpp:6080
&gt; +    m_didAssociateFormControlsTimer.startOneShot(0);

You should check m_didAssociateFormControlsTimer is already active or not and call startOneShot only if the timer was inactive.

&gt; Source/WebCore/html/FormAssociatedElement.cpp:162
&gt; +    HTMLFormElement* currentForm = m_form;

It&apos;s strange to call this &quot;current&quot; form since the &quot;current&quot; value has been changed at where this variable is used again.
I would call it originalForm instead.

&gt; Source/WebCore/html/FormAssociatedElement.cpp:166
&gt; +    HTMLElement* element = toHTMLElement(this);     
&gt; +    if (m_form &amp;&amp; m_form != currentForm &amp;&amp; m_form-&gt;inDocument())
&gt; +        element-&gt;document()-&gt;didAssociateFormControl(element);

Given that we&apos;re notifying the client even when we &quot;unassociated&quot; a form, we should probably rename all these functions to something like didChangeFormControlAssociation.

&gt; Source/WebCore/html/FormAssociatedElement.cpp:174
&gt; +        HTMLFormElement* currentForm = m_form;

Ditto about the variable name.

&gt; Source/WebKit/chromium/public/WebAutofillClient.h:98
&gt; +    // These methods are called when the form structure of a page changes

I don&apos;t think this comment adds any value to the code if we had renamed the function name.
In fact, the comment is more ambiguous than the function name even as is.
Please remove it unless we have better things to say.

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:1156
&gt; +        elementVector[i] = WebNode((*it));

Nit: WebNode(*it)

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:1157
&gt; +        ++i;

Nit: Increment this in the for loop as in ++it, ++i.

Once you did that, please remove the curly brackets as this will become a single line statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849189</commentid>
    <comment_count>78</comment_count>
      <attachid>191787</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-03-06 12:33:08 -0800</bug_when>
    <thetext>Comment on attachment 191787
Patch

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

&gt;&gt; Source/WebCore/dom/Document.cpp:6078
&gt;&gt; +        return;
&gt; 
&gt; I don&apos;t like the fact we have to call this virtual function every time a form control association changes. Can this be a page setting instead?

That depends entirely upon what you mean by that. A field on the page returned by frame()-&gt;page() which is presumably initialized by a call to the same virtual function on the ChromeClient?

&gt;&gt; Source/WebCore/dom/Document.cpp:6080
&gt;&gt; +    m_didAssociateFormControlsTimer.startOneShot(0);
&gt; 
&gt; You should check m_didAssociateFormControlsTimer is already active or not and call startOneShot only if the timer was inactive.

done

&gt;&gt; Source/WebCore/html/FormAssociatedElement.cpp:162
&gt;&gt; +    HTMLFormElement* currentForm = m_form;
&gt; 
&gt; It&apos;s strange to call this &quot;current&quot; form since the &quot;current&quot; value has been changed at where this variable is used again.
&gt; I would call it originalForm instead.

done

&gt;&gt; Source/WebCore/html/FormAssociatedElement.cpp:166
&gt;&gt; +        element-&gt;document()-&gt;didAssociateFormControl(element);
&gt; 
&gt; Given that we&apos;re notifying the client even when we &quot;unassociated&quot; a form, we should probably rename all these functions to something like didChangeFormControlAssociation.

At the moment, we shouldn&apos;t be notifying when we unassociate a form - hence m_form being the first part of the condition.

&gt;&gt; Source/WebCore/html/FormAssociatedElement.cpp:174
&gt;&gt; +        HTMLFormElement* currentForm = m_form;
&gt; 
&gt; Ditto about the variable name.

done

&gt;&gt; Source/WebKit/chromium/public/WebAutofillClient.h:98
&gt;&gt; +    // These methods are called when the form structure of a page changes
&gt; 
&gt; I don&apos;t think this comment adds any value to the code if we had renamed the function name.
&gt; In fact, the comment is more ambiguous than the function name even as is.
&gt; Please remove it unless we have better things to say.

done

&gt;&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:1156
&gt;&gt; +        elementVector[i] = WebNode((*it));
&gt; 
&gt; Nit: WebNode(*it)

done

&gt;&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:1157
&gt;&gt; +        ++i;
&gt; 
&gt; Nit: Increment this in the for loop as in ++it, ++i.
&gt; 
&gt; Once you did that, please remove the curly brackets as this will become a single line statement.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849190</commentid>
    <comment_count>79</comment_count>
      <attachid>191811</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-03-06 12:33:35 -0800</bug_when>
    <thetext>Created attachment 191811
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849194</commentid>
    <comment_count>80</comment_count>
      <attachid>191811</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-06 12:38:47 -0800</bug_when>
    <thetext>Comment on attachment 191811
Patch

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

&gt; Source/WebCore/ChangeLog:5
&gt; +        Hook FormAssociatedElement, HTMLFormElement to notify EditorClient of form changes after a page has loaded.
&gt; +        Will be used to add autofill support for ajax-y webpages. e.g if while filling out a form, new fields
&gt; +        are dynamically created, autofill can know to re-query the autofill server and keep going.

As I pointed out on my previous comment, this long description of the patch should be below &quot;Reviewed by&quot; line followed by a blank line.
Just look at other change log entries.

&gt; Source/WebCore/ChangeLog:10
&gt; +        No new tests.

You should remove this line or explain why there is no new test.

&gt; Source/WebCore/dom/Document.cpp:6088
&gt; +    if (!this-&gt;frame())
&gt; +        return;
&gt; +    this-&gt;frame()-&gt;page()-&gt;chrome()-&gt;client()-&gt;didAssociateFormControls(m_associatedFormControls);

We don&apos;t need this-&gt;, do we?

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:1156
&gt; +    HashSet&lt;Element*&gt;::iterator end = elements.end();
&gt; +    for (HashSet&lt;Element*&gt;::iterator it = elements.begin(); it != end; ++it, ++i)
&gt; +        elementVector[i] = WebNode(*it);

So sad we can&apos;t use copyToVector :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851517</commentid>
    <comment_count>81</comment_count>
      <attachid>191811</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-03-08 14:39:24 -0800</bug_when>
    <thetext>Comment on attachment 191811
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:5
&gt;&gt; +        are dynamically created, autofill can know to re-query the autofill server and keep going.
&gt; 
&gt; As I pointed out on my previous comment, this long description of the patch should be below &quot;Reviewed by&quot; line followed by a blank line.
&gt; Just look at other change log entries.

done

&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt; +        No new tests.
&gt; 
&gt; You should remove this line or explain why there is no new test.

Is there testing that would be appropriate for this change? Shouldn&apos;t affect any layout stuff, and from what I can tell, WebKit isn&apos;t big on ordinary unit tests.

&gt;&gt; Source/WebCore/dom/Document.cpp:6088
&gt;&gt; +    this-&gt;frame()-&gt;page()-&gt;chrome()-&gt;client()-&gt;didAssociateFormControls(m_associatedFormControls);
&gt; 
&gt; We don&apos;t need this-&gt;, do we?

done

&gt;&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:1156
&gt;&gt; +        elementVector[i] = WebNode(*it);
&gt; 
&gt; So sad we can&apos;t use copyToVector :(

I&apos;ll take your word for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851518</commentid>
    <comment_count>82</comment_count>
      <attachid>192285</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-03-08 14:39:55 -0800</bug_when>
    <thetext>Created attachment 192285
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851519</commentid>
    <comment_count>83</comment_count>
      <attachid>192285</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-08 14:40:59 -0800</bug_when>
    <thetext>Comment on attachment 192285
Patch

Thanks for being patient and updating the patch! It looks much better now :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852727</commentid>
    <comment_count>84</comment_count>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-03-11 14:30:09 -0700</bug_when>
    <thetext>(In reply to comment #83)
&gt; (From update of attachment 192285 [details])
&gt; Thanks for being patient and updating the patch! It looks much better now :)

No worries. I had some questions on a few of your earlier comments; could you address them when you have a chance? Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856292</commentid>
    <comment_count>85</comment_count>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-03-15 14:37:52 -0700</bug_when>
    <thetext>ping</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856294</commentid>
    <comment_count>86</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-15 14:39:13 -0700</bug_when>
    <thetext>(In reply to comment #85)
&gt; ping

What are you pinging about?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856773</commentid>
    <comment_count>87</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-17 16:46:19 -0700</bug_when>
    <thetext>&gt; What are you pinging about?

Maybe Dane is asking for a commit-queue+    ?

Dane, the usual way of requesting that a patch be committed is to set the commit-queue flag to &quot;?&quot;.  You can do that when first uploading the patch for review if you like, or anytime afterwards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856774</commentid>
    <comment_count>88</comment_count>
      <attachid>192285</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-17 16:49:53 -0700</bug_when>
    <thetext>Comment on attachment 192285
Patch

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

&gt; Source/WebCore/dom/Document.cpp:6077
&gt; +    if (!frame() || !frame()-&gt;page()-&gt;chrome()-&gt;client()-&gt;shouldNotifyOnFormChanges())

Do we not need to null-check page here?

&gt; Source/WebCore/dom/Document.cpp:6084
&gt; +void Document::didAssociateFormControlsTimerFired(Timer&lt;Document&gt;*)

Usually we ASSERT_USED that the argument we get is the timer we expect (in this case m_didAssociateFormControlsTimer).

&gt; Source/WebCore/dom/Document.cpp:6088
&gt; +    frame()-&gt;page()-&gt;chrome()-&gt;client()-&gt;didAssociateFormControls(m_associatedFormControls);

or here?

&gt; Source/WebCore/dom/Document.cpp:6089
&gt; +    m_associatedFormControls.clear();

I would recommend swapping this set into a local variable before calling didAssociateFormControls in case the client callback ends up calling didAssociateFormControl.  Re-entrancy bugs can be nasty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857711</commentid>
    <comment_count>89</comment_count>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-03-18 16:35:41 -0700</bug_when>
    <thetext>(In reply to comment #86)
&gt; (In reply to comment #85)
&gt; &gt; ping
&gt; 
&gt; What are you pinging about?

See comment #84.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857716</commentid>
    <comment_count>90</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-18 16:39:26 -0700</bug_when>
    <thetext>(In reply to comment #89)
&gt; (In reply to comment #86)
&gt; &gt; (In reply to comment #85)
&gt; &gt; &gt; ping
&gt; &gt; 
&gt; &gt; What are you pinging about?
&gt; 
&gt; See comment #84.

If your question is whether we should be adding a test or not, then the answer is no, we shouldn&apos;t be adding a test for this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859606</commentid>
    <comment_count>91</comment_count>
      <attachid>192285</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-03-20 12:24:04 -0700</bug_when>
    <thetext>Comment on attachment 192285
Patch

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

&gt;&gt; Source/WebCore/dom/Document.cpp:6077
&gt;&gt; +    if (!frame() || !frame()-&gt;page()-&gt;chrome()-&gt;client()-&gt;shouldNotifyOnFormChanges())
&gt; 
&gt; Do we not need to null-check page here?

You tell me. Seems to work fine if we don&apos;t, but it&apos;s easy enough to add a check. How far down the line would I need to check for non-nullness?

&gt;&gt; Source/WebCore/dom/Document.cpp:6084
&gt;&gt; +void Document::didAssociateFormControlsTimerFired(Timer&lt;Document&gt;*)
&gt; 
&gt; Usually we ASSERT_USED that the argument we get is the timer we expect (in this case m_didAssociateFormControlsTimer).

Do you mean ASSERT_UNUSED?

&gt;&gt; Source/WebCore/dom/Document.cpp:6088
&gt;&gt; +    frame()-&gt;page()-&gt;chrome()-&gt;client()-&gt;didAssociateFormControls(m_associatedFormControls);
&gt; 
&gt; or here?

done

&gt;&gt; Source/WebCore/dom/Document.cpp:6089
&gt;&gt; +    m_associatedFormControls.clear();
&gt; 
&gt; I would recommend swapping this set into a local variable before calling didAssociateFormControls in case the client callback ends up calling didAssociateFormControl.  Re-entrancy bugs can be nasty.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859607</commentid>
    <comment_count>92</comment_count>
      <attachid>194095</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-03-20 12:24:31 -0700</bug_when>
    <thetext>Created attachment 194095
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859924</commentid>
    <comment_count>93</comment_count>
      <attachid>194095</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-20 18:32:57 -0700</bug_when>
    <thetext>Comment on attachment 194095
Patch

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

&gt; Source/WebCore/dom/Document.cpp:6078
&gt; +    if (!frame() || !frame()-&gt;page()
&gt; +        || !frame()-&gt;page()-&gt;chrome()-&gt;client()-&gt;shouldNotifyOnFormChanges())

Why are you wrapping the line here? We can fit both lines in one line.

&gt; Source/WebCore/dom/Document.cpp:6090
&gt; +    HashSet&lt;Element*&gt; associatedFormControls;

Adding a blank line here will improve the readability.

&gt; Source/WebCore/dom/Document.cpp:6094
&gt; +    HashSet&lt;Element*&gt;::iterator controlsEnd = m_associatedFormControls.end();
&gt; +    for (HashSet&lt;Element*&gt;::iterator it = m_associatedFormControls.begin(); it != controlsEnd; ++it)
&gt; +        associatedFormControls.add(*it);
&gt; +    frame()-&gt;page()-&gt;chrome()-&gt;client()-&gt;didAssociateFormControls(associatedFormControls);

Now I&apos;m reading this code for the second time, I feel like we should just pass a Vector to didAssociateFormControls because
then we can use copyToVector in HashSet.h as opposed to manually iterating over them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860723</commentid>
    <comment_count>94</comment_count>
      <attachid>194095</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-03-21 14:45:30 -0700</bug_when>
    <thetext>Comment on attachment 194095
Patch

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

&gt;&gt; Source/WebCore/dom/Document.cpp:6078
&gt;&gt; +        || !frame()-&gt;page()-&gt;chrome()-&gt;client()-&gt;shouldNotifyOnFormChanges())
&gt; 
&gt; Why are you wrapping the line here? We can fit both lines in one line.

Ok - I couldn&apos;t find anything in the style guide about line length restrictions.

&gt;&gt; Source/WebCore/dom/Document.cpp:6090
&gt;&gt; +    HashSet&lt;Element*&gt; associatedFormControls;
&gt; 
&gt; Adding a blank line here will improve the readability.

done

&gt;&gt; Source/WebCore/dom/Document.cpp:6094
&gt;&gt; +    frame()-&gt;page()-&gt;chrome()-&gt;client()-&gt;didAssociateFormControls(associatedFormControls);
&gt; 
&gt; Now I&apos;m reading this code for the second time, I feel like we should just pass a Vector to didAssociateFormControls because
&gt; then we can use copyToVector in HashSet.h as opposed to manually iterating over them.

sounds good to me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860726</commentid>
    <comment_count>95</comment_count>
      <attachid>194347</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-03-21 14:46:19 -0700</bug_when>
    <thetext>Created attachment 194347
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860862</commentid>
    <comment_count>96</comment_count>
      <attachid>194347</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-21 16:37:28 -0700</bug_when>
    <thetext>Comment on attachment 194347
Patch

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

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:1148
&gt; +void ChromeClientImpl::didAssociateFormControls(Vector&lt;Element*&gt;&amp; elements)

This should certainly be const Vector&lt;Element*&gt;&amp;. cq- because of this.

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:1156
&gt; +    Vector&lt;Element*&gt;::iterator end = elements.end();
&gt; +    for (Vector&lt;Element*&gt;::iterator it = elements.begin(); it != end; ++it, ++i)
&gt; +        elementVector[i] = WebNode(*it);

We prefer indexing over iterators for vectors.
See http://www.webkit.org/coding/coding-style.html#punctuation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861757</commentid>
    <comment_count>97</comment_count>
      <attachid>194616</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-03-22 12:24:03 -0700</bug_when>
    <thetext>Created attachment 194616
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861758</commentid>
    <comment_count>98</comment_count>
      <attachid>194616</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-22 12:25:18 -0700</bug_when>
    <thetext>Comment on attachment 194616
Patch

The patch looks great. Thanks for patiently working with me. And I&apos;m sorry it took so long to check this in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861763</commentid>
    <comment_count>99</comment_count>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-03-22 12:29:51 -0700</bug_when>
    <thetext>(In reply to comment #98)
&gt; (From update of attachment 194616 [details])
&gt; The patch looks great. Thanks for patiently working with me. And I&apos;m sorry it took so long to check this in.

No worries - considering how much else I have on my plate right now, and how long it&apos;s been since I&apos;ve done anything with C++, it could have taken a lot longer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861784</commentid>
    <comment_count>100</comment_count>
      <attachid>194616</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-22 13:01:47 -0700</bug_when>
    <thetext>Comment on attachment 194616
Patch

Attachment 194616 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17242309</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861821</commentid>
    <comment_count>101</comment_count>
      <attachid>194627</attachid>
    <who name="Dane Walllinga">dgwallinga</who>
    <bug_when>2013-03-22 13:55:19 -0700</bug_when>
    <thetext>Created attachment 194627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861943</commentid>
    <comment_count>102</comment_count>
      <attachid>194627</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-22 16:14:25 -0700</bug_when>
    <thetext>Comment on attachment 194627
Patch

Clearing flags on attachment: 194627

Committed r146672: &lt;http://trac.webkit.org/changeset/146672&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861944</commentid>
    <comment_count>103</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-22 16:14:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189372</attachid>
            <date>2013-02-20 14:08:33 -0800</date>
            <delta_ts>2013-02-21 13:49:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110375-20130220140454.patch</filename>
            <type>text/plain</type>
            <size>8936</size>
            <attacher name="Dane Walllinga">dgwallinga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM5Y2ViODg4MjZhYmQ5
YzA1YWJmMDM5MGQ1YTY1ZDg1ZDU1MjZmMi4uN2I0NWIxNzFjZTJlNzVmNWExOTQxMDA3Mzk3Zjk2
ZTAzM2NlNTgyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEzLTAyLTIwICBEYW5l
IFdhbGxpbmdhICA8ZGd3YWxsaW5nYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSG9vayBGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQsIEhUTUxGb3JtRWxlbWVudCB0byBub3RpZnkgRWRpdG9yQ2xpZW50
IG9mIGZvcm0gY2hhbmdlcyBhZnRlciBhIHBhZ2UgaGFzIGxvYWRlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMzc1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAg
ICogaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9y
bUFzc29jaWF0ZWRFbGVtZW50OjpyZXNldEZvcm1Pd25lcik6CisgICAgICAgIChXZWJDb3JlOjpG
b3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm1BdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgYWRk
IGNhbGxzIHRvIEVkaXRvckNsaWVudDo6ZGlkQXNzb2NpYXRlSW5wdXQgd2hlbiBmb3JtIGNoYW5n
ZXMKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRm9ybUVsZW1lbnQ6Omluc2VydGVkSW50byk6CisgICAgICAgIGFkZCBjYWxsIHRvIEVk
aXRvckNsaWVudDo6ZGlkQWRkRm9ybQorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50OjpkaWRBc3NvY2lhdGVJbnB1dCk6
CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUVkaXRvckNsaWVudDo6ZGlkQWRkRm9ybSk6CisgICAg
ICAgIChFbXB0eUVkaXRvckNsaWVudCk6CisgICAgICAgICogcGFnZS9FZGl0b3JDbGllbnQuaDoK
KyAgICAgICAgKEVkaXRvckNsaWVudCk6CisgICAgICAgIGFkZCBuZXcgbWV0aG9kcyBkaWRBc3Nv
Y2lhdGVJbnB1dCwgZGlkQWRkRm9ybQorCiAyMDEzLTAyLTE5ICBFbWlsIEEgRWtsdW5kICA8ZWFl
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBDaGFuZ2UgY29tcHV0ZVN0aWNreVBvc2l0aW9uQ29u
c3RyYWludHMgdG8gdXNlIExheW91dEJveEV4dGVudCBmb3IgbWFyZ2lucwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCA4NjZiNmJmMzAyYWRmMDNhZTBhOGViYzNiZWM2YjMwMmIzYTc1ZmI4
Li5mMmFmYmQzZWIwMDRjM2QyYTg4YmQ3YzA3Y2VlY2YxMjg2OTNlYzk1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAyLTIwICBEYW5lIFdhbGxpbmdh
ICA8ZGd3YWxsaW5nYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IEZvcm1Bc3Nv
Y2lhdGVkRWxlbWVudCwgSFRNTEZvcm1FbGVtZW50IG1ldGhvZHMgb2YgRWRpdG9yQ2xpZW50Cisg
ICAgICAgIHRvIGluZm9ybSBhdXRvZmlsbCBvZiBmb3JtIGNoYW5nZXMgYWZ0ZXIgYSBwYWdlIGhh
cyBsb2FkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExMDM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogcHVibGljL1dlYkF1dG9maWxsQ2xpZW50Lmg6CisgICAgICAgIChXZWJBdXRvZmlsbENsaWVu
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9maWxsQ2xpZW50OjpkaWRBc3NvY2lhdGVJbnB1
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9maWxsQ2xpZW50OjpkaWRBZGRGb3JtKToKKyAg
ICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRv
ckNsaWVudEltcGw6OmRpZEFzc29jaWF0ZUlucHV0KToKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OmRpZEFkZEZvcm0pOgorICAgICAgICAqIHNy
Yy9FZGl0b3JDbGllbnRJbXBsLmg6CisgICAgICAgIChFZGl0b3JDbGllbnRJbXBsKToKKwogMjAx
My0wMi0xOSAgQWRyaWVubmUgV2Fsa2VyICA8ZW5uZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0MzM4MiBhbmQgcjE0MzQwMS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcAppbmRleCBhMjIzNWIyOTA4NjQw
MmEwYWVlODQ5YzU3MDcyZmQxOGNjYjJlNWZhLi40YmYwNTI1M2Y2Mzg2ZmM2NmMyOTdjZTllZmFl
OGJlNmNlYjU5MjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lh
dGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVs
ZW1lbnQuY3BwCkBAIC0yNSw3ICsyNSw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiRm9ybUFzc29jaWF0ZWRFbGVtZW50LmgiCiAKKyNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIK
ICNpbmNsdWRlICJGb3JtQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVk
ZSAiSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtMTU3LDcgKzE1OSwxMyBAQCB2b2lkIEZvcm1B
c3NvY2lhdGVkRWxlbWVudDo6Zm9ybVdpbGxCZURlc3Ryb3llZCgpCiAKIHZvaWQgRm9ybUFzc29j
aWF0ZWRFbGVtZW50OjpyZXNldEZvcm1Pd25lcigpCiB7CisgICAgSFRNTEZvcm1FbGVtZW50KiBj
dXJyZW50Rm9ybSA9IG1fZm9ybTsKICAgICBzZXRGb3JtKGZpbmRBc3NvY2lhdGVkRm9ybSh0b0hU
TUxFbGVtZW50KHRoaXMpLCBtX2Zvcm0pKTsKKyAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IHRv
SFRNTEVsZW1lbnQodGhpcyk7CisgICAgaWYgKG1fZm9ybSAmJiBtX2Zvcm0gIT0gY3VycmVudEZv
cm0gJiYgbV9mb3JtLT5pbkRvY3VtZW50KCkKKyAgICAgICAgJiYgZWxlbWVudC0+ZG9jdW1lbnQo
KS0+ZnJhbWUoKS0+bG9hZGVyKCktPmlzQ29tcGxldGUoKSkgeworICAgICAgICBlbGVtZW50LT5k
b2N1bWVudCgpLT5mcmFtZSgpLT5lZGl0b3IoKS0+Y2xpZW50KCktPmRpZEFzc29jaWF0ZUlucHV0
KGVsZW1lbnQpOworICAgIH0KIH0KIAogdm9pZCBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm1B
dHRyaWJ1dGVDaGFuZ2VkKCkKQEAgLTE2NSw3ICsxNzMsMTMgQEAgdm9pZCBGb3JtQXNzb2NpYXRl
ZEVsZW1lbnQ6OmZvcm1BdHRyaWJ1dGVDaGFuZ2VkKCkKICAgICBIVE1MRWxlbWVudCogZWxlbWVu
dCA9IHRvSFRNTEVsZW1lbnQodGhpcyk7CiAgICAgaWYgKCFlbGVtZW50LT5mYXN0SGFzQXR0cmli
dXRlKGZvcm1BdHRyKSkgewogICAgICAgICAvLyBUaGUgZm9ybSBhdHRyaWJ1dGUgcmVtb3ZlZC4g
V2UgbmVlZCB0byByZXNldCBmb3JtIG93bmVyIGhlcmUuCisgICAgICAgIEhUTUxGb3JtRWxlbWVu
dCogY3VycmVudEZvcm0gPSBtX2Zvcm07CiAgICAgICAgIHNldEZvcm0oZWxlbWVudC0+ZmluZEZv
cm1BbmNlc3RvcigpKTsKKyAgICAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVt
ZW50KHRoaXMpOworICAgICAgICBpZiAobV9mb3JtICYmIG1fZm9ybSAhPSBjdXJyZW50Rm9ybSAm
JiBtX2Zvcm0tPmluRG9jdW1lbnQoKQorICAgICAgICAgICAgJiYgZWxlbWVudC0+ZG9jdW1lbnQo
KS0+ZnJhbWUoKS0+bG9hZGVyKCktPmlzQ29tcGxldGUoKSkgeworICAgICAgICAgICAgZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKS0+ZWRpdG9yKCktPmNsaWVudCgpLT5kaWRBc3NvY2lhdGVJ
bnB1dChlbGVtZW50KTsKKyAgICAgICAgfQogICAgICAgICBtX2Zvcm1BdHRyaWJ1dGVUYXJnZXRP
YnNlcnZlciA9IG51bGxwdHI7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcmVzZXRGb3JtT3duZXIo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRleCA5NTNmZWM2ZWQ3
MDJlYTc3YjEwMjc3NjYwYWZjZmMxZWU4MjY4MTdkLi5kNzg1YTYzOTgwNTVhMWY2OGY3ZTFlNDg5
OGJmNDk0Njk0M2VhYTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3Jt
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3Bw
CkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRE9NRm9ybURhdGEuaCIKICNpbmNsdWRlICJE
T01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVkaXRvckNsaWVu
dC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1
ZGUgIkZpbGVMaXN0LmgiCkBAIC0xMzksNiArMTQwLDggQEAgYm9vbCBIVE1MRm9ybUVsZW1lbnQ6
OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQpCiBO
b2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IEhUTUxGb3JtRWxlbWVudDo6aW5zZXJ0
ZWRJbnRvKENvbnRhaW5lck5vZGUqIGluc2VydGlvblBvaW50KQogewogICAgIEhUTUxFbGVtZW50
OjppbnNlcnRlZEludG8oaW5zZXJ0aW9uUG9pbnQpOworICAgIGlmIChpbnNlcnRpb25Qb2ludC0+
aW5Eb2N1bWVudCgpKQorICAgICAgICB0aGlzLT5kb2N1bWVudCgpLT5mcmFtZSgpLT5lZGl0b3Io
KS0+Y2xpZW50KCktPmRpZEFkZEZvcm0odGhpcyk7CiAgICAgcmV0dXJuIEluc2VydGlvbkRvbmU7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCAxZTFhMTRjNTYyZjY1
NTdiOTA5MDFlOGFhOTk4ODg3YTk1MWQ4NTlhLi5jODMwYzlmNDdlODEwYjBjMmQzYTI2NDFkMDI1
NmRlYWYwYzVjOGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC00NjMs
NiArNDYzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0ZXh0V2lsbEJlRGVsZXRlZElu
VGV4dEZpZWxkKEVsZW1lbnQqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdGV4dERpZENoYW5nZUlu
VGV4dEFyZWEoRWxlbWVudCopIHsgfQogCisgICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUlu
cHV0KEVsZW1lbnQqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkRm9ybShFbGVtZW50Kikg
eyB9CisKICNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIG1hcmtlZFRleHRBYmFu
ZG9uZWQoRnJhbWUqKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0
b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKaW5kZXggYzhi
YjNlNDhlODQ0NzA4YTg5MDVhYmU3NDUzMDdmOTE2NTJiZmQzNC4uNzdmNGRjMWVlOWY5YWU0ZGIy
MDM3YzdlNDk4MWI4NWRiMDJjNmU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
ZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCkBA
IC0xMTYsNiArMTE2LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0ZXh0V2lsbEJlRGVs
ZXRlZEluVGV4dEZpZWxkKEVsZW1lbnQqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRleHREaWRD
aGFuZ2VJblRleHRBcmVhKEVsZW1lbnQqKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXNz
b2NpYXRlSW5wdXQoRWxlbWVudCopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkRm9ybShF
bGVtZW50KikgPSAwOworCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgTlNTdHJpbmcq
IHVzZXJWaXNpYmxlU3RyaW5nKE5TVVJMKikgPSAwOwogICAgIHZpcnR1YWwgRG9jdW1lbnRGcmFn
bWVudCogZG9jdW1lbnRGcmFnbWVudEZyb21BdHRyaWJ1dGVkU3RyaW5nKE5TQXR0cmlidXRlZFN0
cmluZyosIFZlY3RvcjwgUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gPiYpID0gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxsQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBdXRvZmlsbENsaWVudC5oCmluZGV4IGFh
NGQwYTNkYWVkYjFjN2VjYmY2OWQ0Y2M0MjYwMjI2Y2QwNjM4ZjAuLjAxNjU2MzhiNTFhMjA0ZGYz
ZmY3OWIwNzQ3N2M5ZjMzZGNmNGJkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkF1dG9maWxsQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViQXV0b2ZpbGxDbGllbnQuaApAQCAtOTMsNiArOTMsMTAgQEAgcHVibGljOgog
ICAgIC8vIEluZm9ybXMgdGhlIGNsaWVudCB3aGV0aGVyIG9yIG5vdCBhbnkgc3Vic2VxdWVudCB0
ZXh0IGNoYW5nZXMgc2hvdWxkIGJlIGlnbm9yZWQuCiAgICAgdmlydHVhbCB2b2lkIHNldElnbm9y
ZVRleHRDaGFuZ2VzKGJvb2wgaWdub3JlKSB7IH0KIAorICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJl
IGNhbGxlZCB3aGVuIHRoZSBmb3JtIHN0cnVjdHVyZSBvZiBhIHBhZ2UgY2hhbmdlcworICAgIHZp
cnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVJbnB1dChjb25zdCBXZWJOb2RlJikgeyB9CisgICAgdmly
dHVhbCB2b2lkIGRpZEFkZEZvcm0oY29uc3QgV2ViTm9kZSYpIHsgfQorCiBwcm90ZWN0ZWQ6CiAg
ICAgdmlydHVhbCB+V2ViQXV0b2ZpbGxDbGllbnQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCmluZGV4IGMzYTBmOTE1NmVmMGU1
Y2QwMTkyZWRlN2Q4ZjQ3MDVlMTYzZWFhYzcuLjI5YTBlMmU3M2IzNzE0YWQ5MGI3NzhlYTc2N2Nm
YjU1NmQzMWEyY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRv
ckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNs
aWVudEltcGwuY3BwCkBAIC03MDIsNiArNzAyLDE4IEBAIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6
dGV4dERpZENoYW5nZUluVGV4dEFyZWEoRWxlbWVudCopCiB7CiB9CiAKK3ZvaWQgRWRpdG9yQ2xp
ZW50SW1wbDo6ZGlkQXNzb2NpYXRlSW5wdXQoRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAo
bV93ZWJWaWV3LT5hdXRvZmlsbENsaWVudCgpICYmIGVsZW1lbnQpCisgICAgICAgIG1fd2ViVmll
dy0+YXV0b2ZpbGxDbGllbnQoKS0+ZGlkQXNzb2NpYXRlSW5wdXQoV2ViTm9kZShlbGVtZW50KSk7
Cit9CisKK3ZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6ZGlkQWRkRm9ybShFbGVtZW50KiBlbGVtZW50
KQoreworICAgIGlmIChtX3dlYlZpZXctPmF1dG9maWxsQ2xpZW50KCkgJiYgZWxlbWVudCkKKyAg
ICAgICAgbV93ZWJWaWV3LT5hdXRvZmlsbENsaWVudCgpLT5kaWRBZGRGb3JtKFdlYk5vZGUoZWxl
bWVudCkpOworfQorCiBib29sIEVkaXRvckNsaWVudEltcGw6OnNob3VsZEVyYXNlTWFya2Vyc0Fm
dGVyQ2hhbmdlU2VsZWN0aW9uKFRleHRDaGVja2luZ1R5cGUgdHlwZSkgY29uc3QKIHsKICAgICBj
b25zdCBGcmFtZSogZnJhbWUgPSBtX3dlYlZpZXctPmZvY3VzZWRXZWJDb3JlRnJhbWUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaAppbmRleCBlNDIz
OGZkMjU5NDMwNmRhOTEyMWI4NjNlNDcwYTVjOTA4ZmNhZDQzLi5lOWExZDdiMDllMzg1NjEyYzgw
MGVjOWVmODAxMmQ4YmNhNWU2YTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
RWRpdG9yQ2xpZW50SW1wbC5oCkBAIC05NCw2ICs5NCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgdGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKFdlYkNvcmU6OkVsZW1lbnQqKTsKICAgICB2
aXJ0dWFsIHZvaWQgdGV4dEZpZWxkRGlkRW5kRWRpdGluZyhXZWJDb3JlOjpFbGVtZW50Kik7CiAg
ICAgdmlydHVhbCB2b2lkIHRleHREaWRDaGFuZ2VJblRleHRGaWVsZChXZWJDb3JlOjpFbGVtZW50
Kik7CisgICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUlucHV0KFdlYkNvcmU6OkVsZW1lbnQq
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkRm9ybShXZWJDb3JlOjpFbGVtZW50Kik7CiAgICAg
dmlydHVhbCBib29sIGRvVGV4dEZpZWxkQ29tbWFuZEZyb21FdmVudChXZWJDb3JlOjpFbGVtZW50
KiwgV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopOwogICAgIHZpcnR1YWwgdm9pZCB0ZXh0V2lsbEJl
RGVsZXRlZEluVGV4dEZpZWxkKFdlYkNvcmU6OkVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIHZvaWQg
dGV4dERpZENoYW5nZUluVGV4dEFyZWEoV2ViQ29yZTo6RWxlbWVudCopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189594</attachid>
            <date>2013-02-21 13:49:39 -0800</date>
            <delta_ts>2013-02-21 14:02:52 -0800</delta_ts>
            <desc>add hooks to FormAssociatedElement, HTMLFormElement</desc>
            <filename>bug-110375-20130221134600.patch</filename>
            <type>text/plain</type>
            <size>8622</size>
            <attacher name="Dane Walllinga">dgwallinga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM5Y2ViODg4MjZhYmQ5
YzA1YWJmMDM5MGQ1YTY1ZDg1ZDU1MjZmMi4uZGM5Zjk3NWNkODc2NGU3Y2JjY2ZkNTU2YTZkNDlm
Y2U2NGMzNzY3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTAyLTIwICBEYW5l
IFdhbGxpbmdhICA8ZGd3YWxsaW5nYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSG9vayBGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQsIEhUTUxGb3JtRWxlbWVudCB0byBub3RpZnkgRWRpdG9yQ2xpZW50
IG9mIGZvcm0gY2hhbmdlcyBhZnRlciBhIHBhZ2UgaGFzIGxvYWRlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMzc1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisK
KyAgICAgICAgKiBodG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6Omluc2VydGVkSW50byk6CisgICAgICAgICogaHRt
bC9IVE1MRm9ybUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50
OjppbnNlcnRlZEludG8pOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50OjpkaWRBc3NvY2lhdGVJbnB1dCk6CisgICAg
ICAgIChXZWJDb3JlOjpFbXB0eUVkaXRvckNsaWVudDo6ZGlkQWRkRm9ybSk6CisgICAgICAgIChF
bXB0eUVkaXRvckNsaWVudCk6CisgICAgICAgICogcGFnZS9FZGl0b3JDbGllbnQuaDoKKyAgICAg
ICAgKEVkaXRvckNsaWVudCk6CisKIDIwMTMtMDItMTkgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIENoYW5nZSBjb21wdXRlU3RpY2t5UG9zaXRpb25Db25zdHJh
aW50cyB0byB1c2UgTGF5b3V0Qm94RXh0ZW50IGZvciBtYXJnaW5zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDg2NmI2YmYzMDJhZGYwM2FlMGE4ZWJjM2JlYzZiMzAyYjNhNzVmYjguLjFm
NDY1ZDQ5MGM3ODAzMTM0NDExNDEzY2Q4MjZkN2U3ZjY3ZTkxNDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMDItMjAgIERhbmUgV2FsbGluZ2EgIDxk
Z3dhbGxpbmdhQGNocm9taXVtLm9yZz4KKworICAgICAgICBIb29rIEZvcm1Bc3NvY2lhdGVkRWxl
bWVudCwgSFRNTEZvcm1FbGVtZW50IHRvIG5vdGlmeSBFZGl0b3JDbGllbnQgb2YgZm9ybSBjaGFu
Z2VzIGFmdGVyIGEgcGFnZSBoYXMgbG9hZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJBdXRvZmlsbENsaWVudC5oOgorICAgICAg
ICAoV2ViQXV0b2ZpbGxDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvZmlsbENsaWVu
dDo6ZGlkQXNzb2NpYXRlSW5wdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvZmlsbENsaWVu
dDo6ZGlkQWRkRm9ybSk6CisgICAgICAgICogc3JjL0VkaXRvckNsaWVudEltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpkaWRBc3NvY2lhdGVJbnB1dCk6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpkaWRBZGRG
b3JtKToKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5oOgorICAgICAgICAoRWRpdG9y
Q2xpZW50SW1wbCk6CisKIDIwMTMtMDItMTkgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDMzODIgYW5kIHIx
NDM0MDEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAK
aW5kZXggYTIyMzViMjkwODY0MDJhMGFlZTg0OWM1NzA3MmZkMThjY2IyZTVmYS4uYWM4ZTY4NjYw
ODZhMTk3NzhmZDZjYWQ1MjFhNDcwYTJjMGQ0NzZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcApAQCAtMjUsNyArMjUsOSBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkZvcm1Bc3NvY2lhdGVkRWxlbWVudC5oIgogCisjaW5jbHVk
ZSAiRWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiRm9ybUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRl
ICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTE1Nyw3ICsx
NTksMTMgQEAgdm9pZCBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm1XaWxsQmVEZXN0cm95ZWQo
KQogCiB2b2lkIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6cmVzZXRGb3JtT3duZXIoKQogeworICAg
IEhUTUxGb3JtRWxlbWVudCogY3VycmVudEZvcm0gPSBtX2Zvcm07CiAgICAgc2V0Rm9ybShmaW5k
QXNzb2NpYXRlZEZvcm0odG9IVE1MRWxlbWVudCh0aGlzKSwgbV9mb3JtKSk7CisgICAgSFRNTEVs
ZW1lbnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KHRoaXMpOworICAgIGlmIChtX2Zvcm0gJiYg
bV9mb3JtICE9IGN1cnJlbnRGb3JtICYmIG1fZm9ybS0+aW5Eb2N1bWVudCgpCisgICAgICAgICYm
IGVsZW1lbnQtPmRvY3VtZW50KCktPmZyYW1lKCkpIHsKKyAgICAgICAgZWxlbWVudC0+ZG9jdW1l
bnQoKS0+ZnJhbWUoKS0+ZWRpdG9yKCktPmNsaWVudCgpLT5kaWRBc3NvY2lhdGVJbnB1dChlbGVt
ZW50KTsKKyAgICB9CiB9CiAKIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmli
dXRlQ2hhbmdlZCgpCkBAIC0xNjUsNyArMTczLDEzIEBAIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVt
ZW50Ojpmb3JtQXR0cmlidXRlQ2hhbmdlZCgpCiAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSB0
b0hUTUxFbGVtZW50KHRoaXMpOwogICAgIGlmICghZWxlbWVudC0+ZmFzdEhhc0F0dHJpYnV0ZShm
b3JtQXR0cikpIHsKICAgICAgICAgLy8gVGhlIGZvcm0gYXR0cmlidXRlIHJlbW92ZWQuIFdlIG5l
ZWQgdG8gcmVzZXQgZm9ybSBvd25lciBoZXJlLgorICAgICAgICBIVE1MRm9ybUVsZW1lbnQqIGN1
cnJlbnRGb3JtID0gbV9mb3JtOwogICAgICAgICBzZXRGb3JtKGVsZW1lbnQtPmZpbmRGb3JtQW5j
ZXN0b3IoKSk7CisgICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gdG9IVE1MRWxlbWVudCh0
aGlzKTsKKyAgICAgICAgaWYgKG1fZm9ybSAmJiBtX2Zvcm0gIT0gY3VycmVudEZvcm0gJiYgbV9m
b3JtLT5pbkRvY3VtZW50KCkKKyAgICAgICAgICAgICYmIGVsZW1lbnQtPmRvY3VtZW50KCktPmZy
YW1lKCkpIHsKKyAgICAgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPmZyYW1lKCktPmVkaXRv
cigpLT5jbGllbnQoKS0+ZGlkQXNzb2NpYXRlSW5wdXQoZWxlbWVudCk7CisgICAgICAgIH0KICAg
ICAgICAgbV9mb3JtQXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXIgPSBudWxscHRyOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIHJlc2V0Rm9ybU93bmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3Jt
RWxlbWVudC5jcHAKaW5kZXggOTUzZmVjNmVkNzAyZWE3N2IxMDI3NzY2MGFmY2ZjMWVlODI2ODE3
ZC4uZDc4NWE2Mzk4MDU1YTFmNjhmN2UxZTQ4OThiZjQ5NDY5NDNlYWExMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
IkRPTUZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGaWxlTGlzdC5oIgpAQCAtMTM5LDYgKzE0
MCw4IEBAIGJvb2wgSFRNTEZvcm1FbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVS
ZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0KQogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVx
dWVzdCBIVE1MRm9ybUVsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2RlKiBpbnNlcnRp
b25Qb2ludCkKIHsKICAgICBIVE1MRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKGluc2VydGlvblBvaW50
KTsKKyAgICBpZiAoaW5zZXJ0aW9uUG9pbnQtPmluRG9jdW1lbnQoKSkKKyAgICAgICAgdGhpcy0+
ZG9jdW1lbnQoKS0+ZnJhbWUoKS0+ZWRpdG9yKCktPmNsaWVudCgpLT5kaWRBZGRGb3JtKHRoaXMp
OwogICAgIHJldHVybiBJbnNlcnRpb25Eb25lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmgKaW5kZXggMWUxYTE0YzU2MmY2NTU3YjkwOTAxZThhYTk5ODg4N2E5NTFkODU5YS4u
YzgzMGM5ZjQ3ZTgxMGIwYzJkM2EyNjQxZDAyNTZkZWFmMGM1YzhkNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaApAQCAtNDYzLDYgKzQ2Myw5IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgdGV4dFdpbGxCZURlbGV0ZWRJblRleHRGaWVsZChFbGVtZW50KikgeyB9CiAgICAg
dmlydHVhbCB2b2lkIHRleHREaWRDaGFuZ2VJblRleHRBcmVhKEVsZW1lbnQqKSB7IH0KIAorICAg
IHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVJbnB1dChFbGVtZW50KikgeyB9CisgICAgdmlydHVh
bCB2b2lkIGRpZEFkZEZvcm0oRWxlbWVudCopIHsgfQorCiAjaWYgUExBVEZPUk0oTUFDKQogICAg
IHZpcnR1YWwgdm9pZCBtYXJrZWRUZXh0QWJhbmRvbmVkKEZyYW1lKikgeyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0VkaXRvckNsaWVudC5oCmluZGV4IGM4YmIzZTQ4ZTg0NDcwOGE4OTA1YWJlNzQ1MzA3Zjkx
NjUyYmZkMzQuLjc3ZjRkYzFlZTlmOWFlNGRiMjAzN2M3ZTQ5ODFiODVkYjAyYzZlNWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaApAQCAtMTE2LDYgKzExNiw5IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgdGV4dFdpbGxCZURlbGV0ZWRJblRleHRGaWVsZChFbGVtZW50KikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCB0ZXh0RGlkQ2hhbmdlSW5UZXh0QXJlYShFbGVtZW50KikgPSAw
OwogCisgICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUlucHV0KEVsZW1lbnQqKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZEFkZEZvcm0oRWxlbWVudCopID0gMDsKKwogI2lmIFBMQVRGT1JN
KE1BQykKICAgICB2aXJ0dWFsIE5TU3RyaW5nKiB1c2VyVmlzaWJsZVN0cmluZyhOU1VSTCopID0g
MDsKICAgICB2aXJ0dWFsIERvY3VtZW50RnJhZ21lbnQqIGRvY3VtZW50RnJhZ21lbnRGcm9tQXR0
cmlidXRlZFN0cmluZyhOU0F0dHJpYnV0ZWRTdHJpbmcqLCBWZWN0b3I8IFJlZlB0cjxBcmNoaXZl
UmVzb3VyY2U+ID4mKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJBdXRvZmlsbENsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViQXV0b2ZpbGxDbGllbnQuaAppbmRleCBhYTRkMGEzZGFlZGIxYzdlY2JmNjlkNGNjNDI2MDIy
NmNkMDYzOGYwLi4wMTY1NjM4YjUxYTIwNGRmM2ZmNzliMDc0NzdjOWYzM2RjZjRiZDhmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBdXRvZmlsbENsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxsQ2xpZW50LmgK
QEAgLTkzLDYgKzkzLDEwIEBAIHB1YmxpYzoKICAgICAvLyBJbmZvcm1zIHRoZSBjbGllbnQgd2hl
dGhlciBvciBub3QgYW55IHN1YnNlcXVlbnQgdGV4dCBjaGFuZ2VzIHNob3VsZCBiZSBpZ25vcmVk
LgogICAgIHZpcnR1YWwgdm9pZCBzZXRJZ25vcmVUZXh0Q2hhbmdlcyhib29sIGlnbm9yZSkgeyB9
CiAKKyAgICAvLyBUaGVzZSBtZXRob2RzIGFyZSBjYWxsZWQgd2hlbiB0aGUgZm9ybSBzdHJ1Y3R1
cmUgb2YgYSBwYWdlIGNoYW5nZXMKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlSW5wdXQo
Y29uc3QgV2ViTm9kZSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRGb3JtKGNvbnN0IFdl
Yk5vZGUmKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfldlYkF1dG9maWxsQ2xpZW50
KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9y
Q2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJ
bXBsLmNwcAppbmRleCBjM2EwZjkxNTZlZjBlNWNkMDE5MmVkZTdkOGY0NzA1ZTE2M2VhYWM3Li4y
OWEwZTJlNzNiMzcxNGFkOTBiNzc4ZWE3NjdjZmI1NTZkMzFhMmNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcApAQCAtNzAyLDYgKzcwMiwx
OCBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OnRleHREaWRDaGFuZ2VJblRleHRBcmVhKEVsZW1l
bnQqKQogewogfQogCit2b2lkIEVkaXRvckNsaWVudEltcGw6OmRpZEFzc29jaWF0ZUlucHV0KEVs
ZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKG1fd2ViVmlldy0+YXV0b2ZpbGxDbGllbnQoKSAm
JiBlbGVtZW50KQorICAgICAgICBtX3dlYlZpZXctPmF1dG9maWxsQ2xpZW50KCktPmRpZEFzc29j
aWF0ZUlucHV0KFdlYk5vZGUoZWxlbWVudCkpOworfQorCit2b2lkIEVkaXRvckNsaWVudEltcGw6
OmRpZEFkZEZvcm0oRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAobV93ZWJWaWV3LT5hdXRv
ZmlsbENsaWVudCgpICYmIGVsZW1lbnQpCisgICAgICAgIG1fd2ViVmlldy0+YXV0b2ZpbGxDbGll
bnQoKS0+ZGlkQWRkRm9ybShXZWJOb2RlKGVsZW1lbnQpKTsKK30KKwogYm9vbCBFZGl0b3JDbGll
bnRJbXBsOjpzaG91bGRFcmFzZU1hcmtlcnNBZnRlckNoYW5nZVNlbGVjdGlvbihUZXh0Q2hlY2tp
bmdUeXBlIHR5cGUpIGNvbnN0CiB7CiAgICAgY29uc3QgRnJhbWUqIGZyYW1lID0gbV93ZWJWaWV3
LT5mb2N1c2VkV2ViQ29yZUZyYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9F
ZGl0b3JDbGllbnRJbXBsLmgKaW5kZXggZTQyMzhmZDI1OTQzMDZkYTkxMjFiODYzZTQ3MGE1Yzkw
OGZjYWQ0My4uZTlhMWQ3YjA5ZTM4NTYxMmM4MDBlYzllZjgwMTJkOGJjYTVlNmEzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaApAQCAtOTQsNiAr
OTQsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHRleHRGaWVsZERpZEJlZ2luRWRpdGlu
ZyhXZWJDb3JlOjpFbGVtZW50Kik7CiAgICAgdmlydHVhbCB2b2lkIHRleHRGaWVsZERpZEVuZEVk
aXRpbmcoV2ViQ29yZTo6RWxlbWVudCopOwogICAgIHZpcnR1YWwgdm9pZCB0ZXh0RGlkQ2hhbmdl
SW5UZXh0RmllbGQoV2ViQ29yZTo6RWxlbWVudCopOworICAgIHZpcnR1YWwgdm9pZCBkaWRBc3Nv
Y2lhdGVJbnB1dChXZWJDb3JlOjpFbGVtZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEZv
cm0oV2ViQ29yZTo6RWxlbWVudCopOwogICAgIHZpcnR1YWwgYm9vbCBkb1RleHRGaWVsZENvbW1h
bmRGcm9tRXZlbnQoV2ViQ29yZTo6RWxlbWVudCosIFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKTsK
ICAgICB2aXJ0dWFsIHZvaWQgdGV4dFdpbGxCZURlbGV0ZWRJblRleHRGaWVsZChXZWJDb3JlOjpF
bGVtZW50Kik7CiAgICAgdmlydHVhbCB2b2lkIHRleHREaWRDaGFuZ2VJblRleHRBcmVhKFdlYkNv
cmU6OkVsZW1lbnQqKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189597</attachid>
            <date>2013-02-21 14:02:56 -0800</date>
            <delta_ts>2013-02-21 17:52:54 -0800</delta_ts>
            <desc>add hooks to FormAssociatedElement, HTMLFormElement</desc>
            <filename>bug-110375-20130221135916.patch</filename>
            <type>text/plain</type>
            <size>9066</size>
            <attacher name="Dane Walllinga">dgwallinga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM5Y2ViODg4MjZhYmQ5
YzA1YWJmMDM5MGQ1YTY1ZDg1ZDU1MjZmMi4uNjMwMjRhYmQxYjBkODY5MTBjNjdjMzc5ZjYyNmM5
Y2Q0ZmZmOGJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAyLTIwICBEYW5l
IFdhbGxpbmdhICA8ZGd3YWxsaW5nYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSG9vayBGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQsIEhUTUxGb3JtRWxlbWVudCB0byBub3RpZnkgRWRpdG9yQ2xpZW50
IG9mIGZvcm0gY2hhbmdlcyBhZnRlciBhIHBhZ2UgaGFzIGxvYWRlZC4KKyAgICAgICAgV2lsbCBi
ZSB1c2VkIHRvIGFkZCBhdXRvZmlsbCBzdXBwb3J0IGZvciBhamF4LXkgd2VicGFnZXMuIGUuZyBp
ZiB3aGlsZSBmaWxsaW5nIG91dCBhIGZvcm0sIG5ldyBmaWVsZHMKKyAgICAgICAgYXJlIGR5bmFt
aWNhbGx5IGNyZWF0ZWQsIGF1dG9maWxsIGNhbiBrbm93IHRvIHJlLXF1ZXJ5IHRoZSBhdXRvZmls
bCBzZXJ2ZXIgYW5kIGtlZXAgZ29pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTAzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBodG1sL0Zvcm1Bc3Nv
Y2lhdGVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb3JtQXNzb2NpYXRlZEVsZW1l
bnQ6OnJlc2V0Rm9ybU93bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxl
bWVudDo6Zm9ybUF0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICBhZGQgY2FsbHMgdG8gRWRpdG9y
Q2xpZW50OjpkaWRBc3NvY2lhdGVJbnB1dCB3aGVuIGZvcm0gY2hhbmdlcworICAgICAgICAqIGh0
bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVu
dDo6aW5zZXJ0ZWRJbnRvKToKKyAgICAgICAgYWRkIGNhbGwgdG8gRWRpdG9yQ2xpZW50OjpkaWRB
ZGRGb3JtCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlFZGl0b3JDbGllbnQ6OmRpZEFzc29jaWF0ZUlucHV0KToKKyAgICAgICAgKFdlYkNv
cmU6OkVtcHR5RWRpdG9yQ2xpZW50OjpkaWRBZGRGb3JtKToKKyAgICAgICAgKEVtcHR5RWRpdG9y
Q2xpZW50KToKKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOgorICAgICAgICAoRWRpdG9y
Q2xpZW50KToKKyAgICAgICAgYWRkIG5ldyBtZXRob2RzIGRpZEFzc29jaWF0ZUlucHV0LCBkaWRB
ZGRGb3JtCisKIDIwMTMtMDItMTkgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIENoYW5nZSBjb21wdXRlU3RpY2t5UG9zaXRpb25Db25zdHJhaW50cyB0byB1c2Ug
TGF5b3V0Qm94RXh0ZW50IGZvciBtYXJnaW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDg2NmI2YmYzMDJhZGYwM2FlMGE4ZWJjM2JlYzZiMzAyYjNhNzVmYjguLjFmNDY1ZDQ5MGM3ODAz
MTM0NDExNDEzY2Q4MjZkN2U3ZjY3ZTkxNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTMtMDItMjAgIERhbmUgV2FsbGluZ2EgIDxkZ3dhbGxpbmdhQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBIb29rIEZvcm1Bc3NvY2lhdGVkRWxlbWVudCwgSFRNTEZv
cm1FbGVtZW50IHRvIG5vdGlmeSBFZGl0b3JDbGllbnQgb2YgZm9ybSBjaGFuZ2VzIGFmdGVyIGEg
cGFnZSBoYXMgbG9hZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTAzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHB1YmxpYy9XZWJBdXRvZmlsbENsaWVudC5oOgorICAgICAgICAoV2ViQXV0b2Zp
bGxDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvZmlsbENsaWVudDo6ZGlkQXNzb2Np
YXRlSW5wdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvZmlsbENsaWVudDo6ZGlkQWRkRm9y
bSk6CisgICAgICAgICogc3JjL0VkaXRvckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpFZGl0b3JDbGllbnRJbXBsOjpkaWRBc3NvY2lhdGVJbnB1dCk6CisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpkaWRBZGRGb3JtKToKKyAgICAg
ICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50SW1wbCk6
CisKIDIwMTMtMDItMTkgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDMzODIgYW5kIHIxNDM0MDEuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAKaW5kZXggYTIyMzVi
MjkwODY0MDJhMGFlZTg0OWM1NzA3MmZkMThjY2IyZTVmYS4uYWM4ZTY4NjYwODZhMTk3NzhmZDZj
YWQ1MjFhNDcwYTJjMGQ0NzZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3Jt
QXNzb2NpYXRlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29j
aWF0ZWRFbGVtZW50LmNwcApAQCAtMjUsNyArMjUsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkZvcm1Bc3NvY2lhdGVkRWxlbWVudC5oIgogCisjaW5jbHVkZSAiRWRpdG9yQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiRm9ybUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTE1Nyw3ICsxNTksMTMgQEAgdm9p
ZCBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm1XaWxsQmVEZXN0cm95ZWQoKQogCiB2b2lkIEZv
cm1Bc3NvY2lhdGVkRWxlbWVudDo6cmVzZXRGb3JtT3duZXIoKQogeworICAgIEhUTUxGb3JtRWxl
bWVudCogY3VycmVudEZvcm0gPSBtX2Zvcm07CiAgICAgc2V0Rm9ybShmaW5kQXNzb2NpYXRlZEZv
cm0odG9IVE1MRWxlbWVudCh0aGlzKSwgbV9mb3JtKSk7CisgICAgSFRNTEVsZW1lbnQqIGVsZW1l
bnQgPSB0b0hUTUxFbGVtZW50KHRoaXMpOworICAgIGlmIChtX2Zvcm0gJiYgbV9mb3JtICE9IGN1
cnJlbnRGb3JtICYmIG1fZm9ybS0+aW5Eb2N1bWVudCgpCisgICAgICAgICYmIGVsZW1lbnQtPmRv
Y3VtZW50KCktPmZyYW1lKCkpIHsKKyAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUo
KS0+ZWRpdG9yKCktPmNsaWVudCgpLT5kaWRBc3NvY2lhdGVJbnB1dChlbGVtZW50KTsKKyAgICB9
CiB9CiAKIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmlidXRlQ2hhbmdlZCgp
CkBAIC0xNjUsNyArMTczLDEzIEBAIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0
cmlidXRlQ2hhbmdlZCgpCiAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50
KHRoaXMpOwogICAgIGlmICghZWxlbWVudC0+ZmFzdEhhc0F0dHJpYnV0ZShmb3JtQXR0cikpIHsK
ICAgICAgICAgLy8gVGhlIGZvcm0gYXR0cmlidXRlIHJlbW92ZWQuIFdlIG5lZWQgdG8gcmVzZXQg
Zm9ybSBvd25lciBoZXJlLgorICAgICAgICBIVE1MRm9ybUVsZW1lbnQqIGN1cnJlbnRGb3JtID0g
bV9mb3JtOwogICAgICAgICBzZXRGb3JtKGVsZW1lbnQtPmZpbmRGb3JtQW5jZXN0b3IoKSk7Cisg
ICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gdG9IVE1MRWxlbWVudCh0aGlzKTsKKyAgICAg
ICAgaWYgKG1fZm9ybSAmJiBtX2Zvcm0gIT0gY3VycmVudEZvcm0gJiYgbV9mb3JtLT5pbkRvY3Vt
ZW50KCkKKyAgICAgICAgICAgICYmIGVsZW1lbnQtPmRvY3VtZW50KCktPmZyYW1lKCkpIHsKKyAg
ICAgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPmZyYW1lKCktPmVkaXRvcigpLT5jbGllbnQo
KS0+ZGlkQXNzb2NpYXRlSW5wdXQoZWxlbWVudCk7CisgICAgICAgIH0KICAgICAgICAgbV9mb3Jt
QXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXIgPSBudWxscHRyOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IHJlc2V0Rm9ybU93bmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
b3JtRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAK
aW5kZXggOTUzZmVjNmVkNzAyZWE3N2IxMDI3NzY2MGFmY2ZjMWVlODI2ODE3ZC4uZDc4NWE2Mzk4
MDU1YTFmNjhmN2UxZTQ4OThiZjQ5NDY5NDNlYWExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1FbGVtZW50LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRPTUZvcm1EYXRh
LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50
TmFtZXMuaCIKICNpbmNsdWRlICJGaWxlTGlzdC5oIgpAQCAtMTM5LDYgKzE0MCw4IEBAIGJvb2wg
SFRNTEZvcm1FbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250
ZXh0JiBjb250ZXh0KQogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MRm9y
bUVsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2RlKiBpbnNlcnRpb25Qb2ludCkKIHsK
ICAgICBIVE1MRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKGluc2VydGlvblBvaW50KTsKKyAgICBpZiAo
aW5zZXJ0aW9uUG9pbnQtPmluRG9jdW1lbnQoKSkKKyAgICAgICAgdGhpcy0+ZG9jdW1lbnQoKS0+
ZnJhbWUoKS0+ZWRpdG9yKCktPmNsaWVudCgpLT5kaWRBZGRGb3JtKHRoaXMpOwogICAgIHJldHVy
biBJbnNlcnRpb25Eb25lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5k
ZXggMWUxYTE0YzU2MmY2NTU3YjkwOTAxZThhYTk5ODg4N2E5NTFkODU5YS4uYzgzMGM5ZjQ3ZTgx
MGIwYzJkM2EyNjQxZDAyNTZkZWFmMGM1YzhkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaApAQCAtNDYzLDYgKzQ2Myw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdGV4
dFdpbGxCZURlbGV0ZWRJblRleHRGaWVsZChFbGVtZW50KikgeyB9CiAgICAgdmlydHVhbCB2b2lk
IHRleHREaWRDaGFuZ2VJblRleHRBcmVhKEVsZW1lbnQqKSB7IH0KIAorICAgIHZpcnR1YWwgdm9p
ZCBkaWRBc3NvY2lhdGVJbnB1dChFbGVtZW50KikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEFk
ZEZvcm0oRWxlbWVudCopIHsgfQorCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9p
ZCBtYXJrZWRUZXh0QWJhbmRvbmVkKEZyYW1lKikgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNs
aWVudC5oCmluZGV4IGM4YmIzZTQ4ZTg0NDcwOGE4OTA1YWJlNzQ1MzA3ZjkxNjUyYmZkMzQuLjc3
ZjRkYzFlZTlmOWFlNGRiMjAzN2M3ZTQ5ODFiODVkYjAyYzZlNWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
ZGl0b3JDbGllbnQuaApAQCAtMTE2LDYgKzExNiw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgdGV4dFdpbGxCZURlbGV0ZWRJblRleHRGaWVsZChFbGVtZW50KikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCB0ZXh0RGlkQ2hhbmdlSW5UZXh0QXJlYShFbGVtZW50KikgPSAwOwogCisgICAgdmly
dHVhbCB2b2lkIGRpZEFzc29jaWF0ZUlucHV0KEVsZW1lbnQqKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGRpZEFkZEZvcm0oRWxlbWVudCopID0gMDsKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2
aXJ0dWFsIE5TU3RyaW5nKiB1c2VyVmlzaWJsZVN0cmluZyhOU1VSTCopID0gMDsKICAgICB2aXJ0
dWFsIERvY3VtZW50RnJhZ21lbnQqIGRvY3VtZW50RnJhZ21lbnRGcm9tQXR0cmlidXRlZFN0cmlu
ZyhOU0F0dHJpYnV0ZWRTdHJpbmcqLCBWZWN0b3I8IFJlZlB0cjxBcmNoaXZlUmVzb3VyY2U+ID4m
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBdXRv
ZmlsbENsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQXV0b2ZpbGxD
bGllbnQuaAppbmRleCBhYTRkMGEzZGFlZGIxYzdlY2JmNjlkNGNjNDI2MDIyNmNkMDYzOGYwLi4w
MTY1NjM4YjUxYTIwNGRmM2ZmNzliMDc0NzdjOWYzM2RjZjRiZDhmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBdXRvZmlsbENsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxsQ2xpZW50LmgKQEAgLTkzLDYgKzkz
LDEwIEBAIHB1YmxpYzoKICAgICAvLyBJbmZvcm1zIHRoZSBjbGllbnQgd2hldGhlciBvciBub3Qg
YW55IHN1YnNlcXVlbnQgdGV4dCBjaGFuZ2VzIHNob3VsZCBiZSBpZ25vcmVkLgogICAgIHZpcnR1
YWwgdm9pZCBzZXRJZ25vcmVUZXh0Q2hhbmdlcyhib29sIGlnbm9yZSkgeyB9CiAKKyAgICAvLyBU
aGVzZSBtZXRob2RzIGFyZSBjYWxsZWQgd2hlbiB0aGUgZm9ybSBzdHJ1Y3R1cmUgb2YgYSBwYWdl
IGNoYW5nZXMKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlSW5wdXQoY29uc3QgV2ViTm9k
ZSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRGb3JtKGNvbnN0IFdlYk5vZGUmKSB7IH0K
KwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfldlYkF1dG9maWxsQ2xpZW50KCkgeyB9CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAppbmRl
eCBjM2EwZjkxNTZlZjBlNWNkMDE5MmVkZTdkOGY0NzA1ZTE2M2VhYWM3Li4yOWEwZTJlNzNiMzcx
NGFkOTBiNzc4ZWE3NjdjZmI1NTZkMzFhMmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcApAQCAtNzAyLDYgKzcwMiwxOCBAQCB2b2lkIEVk
aXRvckNsaWVudEltcGw6OnRleHREaWRDaGFuZ2VJblRleHRBcmVhKEVsZW1lbnQqKQogewogfQog
Cit2b2lkIEVkaXRvckNsaWVudEltcGw6OmRpZEFzc29jaWF0ZUlucHV0KEVsZW1lbnQqIGVsZW1l
bnQpCit7CisgICAgaWYgKG1fd2ViVmlldy0+YXV0b2ZpbGxDbGllbnQoKSAmJiBlbGVtZW50KQor
ICAgICAgICBtX3dlYlZpZXctPmF1dG9maWxsQ2xpZW50KCktPmRpZEFzc29jaWF0ZUlucHV0KFdl
Yk5vZGUoZWxlbWVudCkpOworfQorCit2b2lkIEVkaXRvckNsaWVudEltcGw6OmRpZEFkZEZvcm0o
RWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAobV93ZWJWaWV3LT5hdXRvZmlsbENsaWVudCgp
ICYmIGVsZW1lbnQpCisgICAgICAgIG1fd2ViVmlldy0+YXV0b2ZpbGxDbGllbnQoKS0+ZGlkQWRk
Rm9ybShXZWJOb2RlKGVsZW1lbnQpKTsKK30KKwogYm9vbCBFZGl0b3JDbGllbnRJbXBsOjpzaG91
bGRFcmFzZU1hcmtlcnNBZnRlckNoYW5nZVNlbGVjdGlvbihUZXh0Q2hlY2tpbmdUeXBlIHR5cGUp
IGNvbnN0CiB7CiAgICAgY29uc3QgRnJhbWUqIGZyYW1lID0gbV93ZWJWaWV3LT5mb2N1c2VkV2Vi
Q29yZUZyYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0
b3JDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJ
bXBsLmgKaW5kZXggZTQyMzhmZDI1OTQzMDZkYTkxMjFiODYzZTQ3MGE1YzkwOGZjYWQ0My4uZTlh
MWQ3YjA5ZTM4NTYxMmM4MDBlYzllZjgwMTJkOGJjYTVlNmEzMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaApAQCAtOTQsNiArOTQsOCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHRleHRGaWVsZERpZEJlZ2luRWRpdGluZyhXZWJDb3JlOjpF
bGVtZW50Kik7CiAgICAgdmlydHVhbCB2b2lkIHRleHRGaWVsZERpZEVuZEVkaXRpbmcoV2ViQ29y
ZTo6RWxlbWVudCopOwogICAgIHZpcnR1YWwgdm9pZCB0ZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGQo
V2ViQ29yZTo6RWxlbWVudCopOworICAgIHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVJbnB1dChX
ZWJDb3JlOjpFbGVtZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEZvcm0oV2ViQ29yZTo6
RWxlbWVudCopOwogICAgIHZpcnR1YWwgYm9vbCBkb1RleHRGaWVsZENvbW1hbmRGcm9tRXZlbnQo
V2ViQ29yZTo6RWxlbWVudCosIFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKTsKICAgICB2aXJ0dWFs
IHZvaWQgdGV4dFdpbGxCZURlbGV0ZWRJblRleHRGaWVsZChXZWJDb3JlOjpFbGVtZW50Kik7CiAg
ICAgdmlydHVhbCB2b2lkIHRleHREaWRDaGFuZ2VJblRleHRBcmVhKFdlYkNvcmU6OkVsZW1lbnQq
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189650</attachid>
            <date>2013-02-21 17:52:57 -0800</date>
            <delta_ts>2013-02-22 18:52:28 -0800</delta_ts>
            <desc>add hooks to FormAssociatedElement, HTMLFormElement</desc>
            <filename>bug-110375-20130221174917.patch</filename>
            <type>text/plain</type>
            <size>11817</size>
            <attacher name="Dane Walllinga">dgwallinga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM5Y2ViODg4MjZhYmQ5
YzA1YWJmMDM5MGQ1YTY1ZDg1ZDU1MjZmMi4uNjMwMjRhYmQxYjBkODY5MTBjNjdjMzc5ZjYyNmM5
Y2Q0ZmZmOGJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAyLTIwICBEYW5l
IFdhbGxpbmdhICA8ZGd3YWxsaW5nYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSG9vayBGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQsIEhUTUxGb3JtRWxlbWVudCB0byBub3RpZnkgRWRpdG9yQ2xpZW50
IG9mIGZvcm0gY2hhbmdlcyBhZnRlciBhIHBhZ2UgaGFzIGxvYWRlZC4KKyAgICAgICAgV2lsbCBi
ZSB1c2VkIHRvIGFkZCBhdXRvZmlsbCBzdXBwb3J0IGZvciBhamF4LXkgd2VicGFnZXMuIGUuZyBp
ZiB3aGlsZSBmaWxsaW5nIG91dCBhIGZvcm0sIG5ldyBmaWVsZHMKKyAgICAgICAgYXJlIGR5bmFt
aWNhbGx5IGNyZWF0ZWQsIGF1dG9maWxsIGNhbiBrbm93IHRvIHJlLXF1ZXJ5IHRoZSBhdXRvZmls
bCBzZXJ2ZXIgYW5kIGtlZXAgZ29pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTAzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBodG1sL0Zvcm1Bc3Nv
Y2lhdGVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb3JtQXNzb2NpYXRlZEVsZW1l
bnQ6OnJlc2V0Rm9ybU93bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxl
bWVudDo6Zm9ybUF0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICBhZGQgY2FsbHMgdG8gRWRpdG9y
Q2xpZW50OjpkaWRBc3NvY2lhdGVJbnB1dCB3aGVuIGZvcm0gY2hhbmdlcworICAgICAgICAqIGh0
bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVu
dDo6aW5zZXJ0ZWRJbnRvKToKKyAgICAgICAgYWRkIGNhbGwgdG8gRWRpdG9yQ2xpZW50OjpkaWRB
ZGRGb3JtCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlFZGl0b3JDbGllbnQ6OmRpZEFzc29jaWF0ZUlucHV0KToKKyAgICAgICAgKFdlYkNv
cmU6OkVtcHR5RWRpdG9yQ2xpZW50OjpkaWRBZGRGb3JtKToKKyAgICAgICAgKEVtcHR5RWRpdG9y
Q2xpZW50KToKKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOgorICAgICAgICAoRWRpdG9y
Q2xpZW50KToKKyAgICAgICAgYWRkIG5ldyBtZXRob2RzIGRpZEFzc29jaWF0ZUlucHV0LCBkaWRB
ZGRGb3JtCisKIDIwMTMtMDItMTkgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIENoYW5nZSBjb21wdXRlU3RpY2t5UG9zaXRpb25Db25zdHJhaW50cyB0byB1c2Ug
TGF5b3V0Qm94RXh0ZW50IGZvciBtYXJnaW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDg2NmI2YmYzMDJhZGYwM2FlMGE4ZWJjM2JlYzZiMzAyYjNhNzVmYjguLmYyYWZiZDNlYjAwNGMz
ZDJhODhiZDdjMDdjZWVjZjEyODY5M2VjOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTMtMDItMjAgIERhbmUgV2FsbGluZ2EgIDxkZ3dhbGxpbmdhQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgRm9ybUFzc29jaWF0ZWRFbGVtZW50LCBI
VE1MRm9ybUVsZW1lbnQgbWV0aG9kcyBvZiBFZGl0b3JDbGllbnQKKyAgICAgICAgdG8gaW5mb3Jt
IGF1dG9maWxsIG9mIGZvcm0gY2hhbmdlcyBhZnRlciBhIHBhZ2UgaGFzIGxvYWRlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMzc1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViQXV0
b2ZpbGxDbGllbnQuaDoKKyAgICAgICAgKFdlYkF1dG9maWxsQ2xpZW50KToKKyAgICAgICAgKFdl
YktpdDo6V2ViQXV0b2ZpbGxDbGllbnQ6OmRpZEFzc29jaWF0ZUlucHV0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViQXV0b2ZpbGxDbGllbnQ6OmRpZEFkZEZvcm0pOgorICAgICAgICAqIHNyYy9FZGl0
b3JDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6ZGlk
QXNzb2NpYXRlSW5wdXQpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6RWRp
dG9yQ2xpZW50SW1wbDo6ZGlkQWRkRm9ybSk6CisgICAgICAgICogc3JjL0VkaXRvckNsaWVudElt
cGwuaDoKKyAgICAgICAgKEVkaXRvckNsaWVudEltcGwpOgorCiAyMDEzLTAyLTE5ICBBZHJpZW5u
ZSBXYWxrZXIgIDxlbm5lQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMTQzMzgyIGFuZCByMTQzNDAxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3Jt
QXNzb2NpYXRlZEVsZW1lbnQuY3BwCmluZGV4IGEyMjM1YjI5MDg2NDAyYTBhZWU4NDljNTcwNzJm
ZDE4Y2NiMmU1ZmEuLmM2Yjc3YTE0YzEyNzM0MDI3OTVkMzBlZjExZTJmYjI2M2U2OGUyNDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAKQEAgLTI1
LDcgKzI1LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGb3JtQXNzb2NpYXRl
ZEVsZW1lbnQuaCIKIAorI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUgIkZvcm1D
b250cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCkBAIC01MSw2ICs1Myw3IEBAIHByaXZhdGU6CiAKIEZvcm1Bc3NvY2lhdGVkRWxl
bWVudDo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50KCkKICAgICA6IG1fZm9ybSgwKQorICAgICwgbV9k
aWRBc3NvY2lhdGVFbGVtZW50VGltZXIodGhpcywgJkZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6ZGlk
QXNzb2NpYXRlRWxlbWVudFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTE1Nyw3ICsxNjAsMTIgQEAg
dm9pZCBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm1XaWxsQmVEZXN0cm95ZWQoKQogCiB2b2lk
IEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6cmVzZXRGb3JtT3duZXIoKQogeworICAgIEhUTUxGb3Jt
RWxlbWVudCogY3VycmVudEZvcm0gPSBtX2Zvcm07CiAgICAgc2V0Rm9ybShmaW5kQXNzb2NpYXRl
ZEZvcm0odG9IVE1MRWxlbWVudCh0aGlzKSwgbV9mb3JtKSk7CisgICAgaWYgKG1fZm9ybSAmJiBt
X2Zvcm0gIT0gY3VycmVudEZvcm0gJiYgbV9mb3JtLT5pbkRvY3VtZW50KCkKKyAgICAgICAgJiYg
IW1fZGlkQXNzb2NpYXRlRWxlbWVudFRpbWVyLmlzQWN0aXZlKCkpIHsKKyAgICAgICAgbV9kaWRB
c3NvY2lhdGVFbGVtZW50VGltZXIuc3RhcnRPbmVTaG90KDApOworICAgIH0KIH0KIAogdm9pZCBG
b3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm1BdHRyaWJ1dGVDaGFuZ2VkKCkKQEAgLTE2NSw3ICsx
NzMsMTIgQEAgdm9pZCBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm1BdHRyaWJ1dGVDaGFuZ2Vk
KCkKICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IHRvSFRNTEVsZW1lbnQodGhpcyk7CiAgICAg
aWYgKCFlbGVtZW50LT5mYXN0SGFzQXR0cmlidXRlKGZvcm1BdHRyKSkgewogICAgICAgICAvLyBU
aGUgZm9ybSBhdHRyaWJ1dGUgcmVtb3ZlZC4gV2UgbmVlZCB0byByZXNldCBmb3JtIG93bmVyIGhl
cmUuCisgICAgICAgIEhUTUxGb3JtRWxlbWVudCogY3VycmVudEZvcm0gPSBtX2Zvcm07CiAgICAg
ICAgIHNldEZvcm0oZWxlbWVudC0+ZmluZEZvcm1BbmNlc3RvcigpKTsKKyAgICAgICAgaWYgKG1f
Zm9ybSAmJiBtX2Zvcm0gIT0gY3VycmVudEZvcm0gJiYgbV9mb3JtLT5pbkRvY3VtZW50KCkKKyAg
ICAgICAgICAgICYmICFtX2RpZEFzc29jaWF0ZUVsZW1lbnRUaW1lci5pc0FjdGl2ZSgpKSB7Cisg
ICAgICAgICAgICBtX2RpZEFzc29jaWF0ZUVsZW1lbnRUaW1lci5zdGFydE9uZVNob3QoMCk7Cisg
ICAgICAgIH0KICAgICAgICAgbV9mb3JtQXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXIgPSBudWxscHRy
OwogICAgIH0gZWxzZSB7CiAgICAgICAgIHJlc2V0Rm9ybU93bmVyKCk7CkBAIC0yNjIsNiArMjc1
LDEzIEBAIGJvb2wgRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojppc0Zvcm1Db250cm9sRWxlbWVudFdp
dGhTdGF0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIEZvcm1Bc3NvY2lh
dGVkRWxlbWVudDo6ZGlkQXNzb2NpYXRlRWxlbWVudFRpbWVyRmlyZWQoVGltZXI8Rm9ybUFzc29j
aWF0ZWRFbGVtZW50PiopIHsKKyAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IHRvSFRNTEVsZW1l
bnQodGhpcyk7CisgICAgaWYgKGVsZW1lbnQtPmRvY3VtZW50KCktPmZyYW1lKCkvKi0+bG9hZGVy
KCktPmlzQ29tcGxldGUoKSovKSB7CisgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLT5mcmFtZSgp
LT5lZGl0b3IoKS0+Y2xpZW50KCktPmRpZEFzc29jaWF0ZUlucHV0KGVsZW1lbnQpOworICAgIH0K
K30KKwogY29uc3QgSFRNTEVsZW1lbnQqIHRvSFRNTEVsZW1lbnQoY29uc3QgRm9ybUFzc29jaWF0
ZWRFbGVtZW50KiBhc3NvY2lhdGVkRWxlbWVudCkKIHsKICAgICBpZiAoYXNzb2NpYXRlZEVsZW1l
bnQtPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNz
b2NpYXRlZEVsZW1lbnQuaAppbmRleCA0MGYyYjM2ZTEzM2U3Y2ExMjEwYjg3OTcxZWIwMmQxNDll
YTE1MzM0Li42NzBlNmE0ZTUxYWE3Y2EwOTcxZGRhYmY2NmU2NTU3NjBjYTc1ODhjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmgKQEAgLTI0LDYgKzI0LDcg
QEAKICNpZm5kZWYgRm9ybUFzc29jaWF0ZWRFbGVtZW50X2gKICNkZWZpbmUgRm9ybUFzc29jaWF0
ZWRFbGVtZW50X2gKIAorI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExNiw2ICsxMTcsOSBAQCBwcml2
YXRlOgogICAgIEhUTUxGb3JtRWxlbWVudCogbV9mb3JtOwogICAgIE93blB0cjxWYWxpZGl0eVN0
YXRlPiBtX3ZhbGlkaXR5U3RhdGU7CiAgICAgU3RyaW5nIG1fY3VzdG9tVmFsaWRhdGlvbk1lc3Nh
Z2U7CisKKyAgICB2b2lkIGRpZEFzc29jaWF0ZUVsZW1lbnRUaW1lckZpcmVkKFRpbWVyPEZvcm1B
c3NvY2lhdGVkRWxlbWVudD4qKTsKKyAgICBUaW1lcjxGb3JtQXNzb2NpYXRlZEVsZW1lbnQ+IG1f
ZGlkQXNzb2NpYXRlRWxlbWVudFRpbWVyOwogfTsKIAogSFRNTEVsZW1lbnQqIHRvSFRNTEVsZW1l
bnQoRm9ybUFzc29jaWF0ZWRFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxl
bWVudC5jcHAKaW5kZXggOTUzZmVjNmVkNzAyZWE3N2IxMDI3NzY2MGFmY2ZjMWVlODI2ODE3ZC4u
YTZjMTAxNTU2MzZkNjQ1Mzk0YTcyMmViZTBmMjFhZGE1ZjVmZjBkZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRP
TUZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1
ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGaWxlTGlzdC5oIgpAQCAtNzYsNiArNzcsNyBA
QCBIVE1MRm9ybUVsZW1lbnQ6OkhUTUxGb3JtRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbgogICAgICwgbV9zaG91bGRTdWJtaXQoZmFsc2UpCiAg
ICAgLCBtX2lzSW5SZXNldEZ1bmN0aW9uKGZhbHNlKQogICAgICwgbV93YXNEZW1vdGVkKGZhbHNl
KQorICAgICwgbV9kaWRBZGRGb3JtVGltZXIodGhpcywgJkhUTUxGb3JtRWxlbWVudDo6ZGlkQWRk
Rm9ybVRpbWVyRmlyZWQpCiAjaWYgRU5BQkxFKFJFUVVFU1RfQVVUT0NPTVBMRVRFKQogICAgICwg
bV9yZXF1ZXN0QXV0b2NvbXBsZXRlVGltZXIodGhpcywgJkhUTUxGb3JtRWxlbWVudDo6cmVxdWVz
dEF1dG9jb21wbGV0ZVRpbWVyRmlyZWQpCiAjZW5kaWYKQEAgLTEzOSw2ICsxNDEsOSBAQCBib29s
IEhUTUxGb3JtRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29u
dGV4dCYgY29udGV4dCkKIE5vZGU6Okluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgSFRNTEZv
cm1FbGVtZW50OjppbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSogaW5zZXJ0aW9uUG9pbnQpCiB7
CiAgICAgSFRNTEVsZW1lbnQ6Omluc2VydGVkSW50byhpbnNlcnRpb25Qb2ludCk7CisgICAgaWYg
KGluc2VydGlvblBvaW50LT5pbkRvY3VtZW50KCkgJiYgIW1fZGlkQWRkRm9ybVRpbWVyLmlzQWN0
aXZlKCkpIHsKKyAgICAgICAgbV9kaWRBZGRGb3JtVGltZXIuc3RhcnRPbmVTaG90KDApOworICAg
IH0KICAgICByZXR1cm4gSW5zZXJ0aW9uRG9uZTsKIH0KIApAQCAtNzQ5LDQgKzc1NCwxMCBAQCB2
b2lkIEhUTUxGb3JtRWxlbWVudDo6Y29weU5vbkF0dHJpYnV0ZVByb3BlcnRpZXNGcm9tRWxlbWVu
dChjb25zdCBFbGVtZW50JiBzb3VyYwogICAgIEhUTUxFbGVtZW50Ojpjb3B5Tm9uQXR0cmlidXRl
UHJvcGVydGllc0Zyb21FbGVtZW50KHNvdXJjZSk7CiB9CiAKK3ZvaWQgSFRNTEZvcm1FbGVtZW50
OjpkaWRBZGRGb3JtVGltZXJGaXJlZChUaW1lcjxIVE1MRm9ybUVsZW1lbnQ+KikgeworICAgICNp
ZiBQTEFURk9STShDSFJPTUlVTSkKKyAgICB0aGlzLT5kb2N1bWVudCgpLT5mcmFtZSgpLT5lZGl0
b3IoKS0+Y2xpZW50KCktPmRpZEFkZEZvcm0odGhpcyk7CisgICAgI2VuZGlmCit9CisKIH0gLy8g
bmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAppbmRleCA3NjBhYzk5
M2NiOTJhMmM0YTAwOWM5OGFhYzA0YzY3ZDdhN2UwMjkzLi5hY2FmNjYyYzk4YzcwOWE0Njg2ZWUx
YzRhNGVhODIxOTliYjE5NTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
b3JtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgK
QEAgLTE3Nyw2ICsxNzcsOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3dhc0RlbW90ZWQ7CiAK
KyAgICB2b2lkIGRpZEFkZEZvcm1UaW1lckZpcmVkKFRpbWVyPEhUTUxGb3JtRWxlbWVudD4qKTsK
KyAgICBUaW1lcjxIVE1MRm9ybUVsZW1lbnQ+IG1fZGlkQWRkRm9ybVRpbWVyOworCiAjaWYgRU5B
QkxFKFJFUVVFU1RfQVVUT0NPTVBMRVRFKQogICAgIHZvaWQgcmVxdWVzdEF1dG9jb21wbGV0ZVRp
bWVyRmlyZWQoVGltZXI8SFRNTEZvcm1FbGVtZW50PiopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmgKaW5kZXggMWUxYTE0YzU2MmY2NTU3YjkwOTAxZThhYTk5ODg4N2E5NTFkODU5
YS4uYzgzMGM5ZjQ3ZTgxMGIwYzJkM2EyNjQxZDAyNTZkZWFmMGM1YzhkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtNDYzLDYgKzQ2Myw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgdGV4dFdpbGxCZURlbGV0ZWRJblRleHRGaWVsZChFbGVtZW50KikgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIHRleHREaWRDaGFuZ2VJblRleHRBcmVhKEVsZW1lbnQqKSB7IH0KIAor
ICAgIHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVJbnB1dChFbGVtZW50KikgeyB9CisgICAgdmly
dHVhbCB2b2lkIGRpZEFkZEZvcm0oRWxlbWVudCopIHsgfQorCiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgIHZpcnR1YWwgdm9pZCBtYXJrZWRUZXh0QWJhbmRvbmVkKEZyYW1lKikgeyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0VkaXRvckNsaWVudC5oCmluZGV4IGM4YmIzZTQ4ZTg0NDcwOGE4OTA1YWJlNzQ1MzA3
ZjkxNjUyYmZkMzQuLjc3ZjRkYzFlZTlmOWFlNGRiMjAzN2M3ZTQ5ODFiODVkYjAyYzZlNWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaApAQCAtMTE2LDYgKzExNiw5IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgdGV4dFdpbGxCZURlbGV0ZWRJblRleHRGaWVsZChFbGVtZW50Kikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCB0ZXh0RGlkQ2hhbmdlSW5UZXh0QXJlYShFbGVtZW50Kikg
PSAwOwogCisgICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUlucHV0KEVsZW1lbnQqKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEZvcm0oRWxlbWVudCopID0gMDsKKwogI2lmIFBMQVRG
T1JNKE1BQykKICAgICB2aXJ0dWFsIE5TU3RyaW5nKiB1c2VyVmlzaWJsZVN0cmluZyhOU1VSTCop
ID0gMDsKICAgICB2aXJ0dWFsIERvY3VtZW50RnJhZ21lbnQqIGRvY3VtZW50RnJhZ21lbnRGcm9t
QXR0cmlidXRlZFN0cmluZyhOU0F0dHJpYnV0ZWRTdHJpbmcqLCBWZWN0b3I8IFJlZlB0cjxBcmNo
aXZlUmVzb3VyY2U+ID4mKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJBdXRvZmlsbENsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViQXV0b2ZpbGxDbGllbnQuaAppbmRleCBhYTRkMGEzZGFlZGIxYzdlY2JmNjlkNGNjNDI2
MDIyNmNkMDYzOGYwLi4wMTY1NjM4YjUxYTIwNGRmM2ZmNzliMDc0NzdjOWYzM2RjZjRiZDhmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBdXRvZmlsbENsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxsQ2xpZW50
LmgKQEAgLTkzLDYgKzkzLDEwIEBAIHB1YmxpYzoKICAgICAvLyBJbmZvcm1zIHRoZSBjbGllbnQg
d2hldGhlciBvciBub3QgYW55IHN1YnNlcXVlbnQgdGV4dCBjaGFuZ2VzIHNob3VsZCBiZSBpZ25v
cmVkLgogICAgIHZpcnR1YWwgdm9pZCBzZXRJZ25vcmVUZXh0Q2hhbmdlcyhib29sIGlnbm9yZSkg
eyB9CiAKKyAgICAvLyBUaGVzZSBtZXRob2RzIGFyZSBjYWxsZWQgd2hlbiB0aGUgZm9ybSBzdHJ1
Y3R1cmUgb2YgYSBwYWdlIGNoYW5nZXMKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlSW5w
dXQoY29uc3QgV2ViTm9kZSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRGb3JtKGNvbnN0
IFdlYk5vZGUmKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfldlYkF1dG9maWxsQ2xp
ZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRp
dG9yQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGll
bnRJbXBsLmNwcAppbmRleCBjM2EwZjkxNTZlZjBlNWNkMDE5MmVkZTdkOGY0NzA1ZTE2M2VhYWM3
Li4yOWEwZTJlNzNiMzcxNGFkOTBiNzc4ZWE3NjdjZmI1NTZkMzFhMmNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcApAQCAtNzAyLDYgKzcw
MiwxOCBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OnRleHREaWRDaGFuZ2VJblRleHRBcmVhKEVs
ZW1lbnQqKQogewogfQogCit2b2lkIEVkaXRvckNsaWVudEltcGw6OmRpZEFzc29jaWF0ZUlucHV0
KEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKG1fd2ViVmlldy0+YXV0b2ZpbGxDbGllbnQo
KSAmJiBlbGVtZW50KQorICAgICAgICBtX3dlYlZpZXctPmF1dG9maWxsQ2xpZW50KCktPmRpZEFz
c29jaWF0ZUlucHV0KFdlYk5vZGUoZWxlbWVudCkpOworfQorCit2b2lkIEVkaXRvckNsaWVudElt
cGw6OmRpZEFkZEZvcm0oRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAobV93ZWJWaWV3LT5h
dXRvZmlsbENsaWVudCgpICYmIGVsZW1lbnQpCisgICAgICAgIG1fd2ViVmlldy0+YXV0b2ZpbGxD
bGllbnQoKS0+ZGlkQWRkRm9ybShXZWJOb2RlKGVsZW1lbnQpKTsKK30KKwogYm9vbCBFZGl0b3JD
bGllbnRJbXBsOjpzaG91bGRFcmFzZU1hcmtlcnNBZnRlckNoYW5nZVNlbGVjdGlvbihUZXh0Q2hl
Y2tpbmdUeXBlIHR5cGUpIGNvbnN0CiB7CiAgICAgY29uc3QgRnJhbWUqIGZyYW1lID0gbV93ZWJW
aWV3LT5mb2N1c2VkV2ViQ29yZUZyYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9FZGl0b3JDbGllbnRJbXBsLmgKaW5kZXggZTQyMzhmZDI1OTQzMDZkYTkxMjFiODYzZTQ3MGE1
YzkwOGZjYWQ0My4uZTlhMWQ3YjA5ZTM4NTYxMmM4MDBlYzllZjgwMTJkOGJjYTVlNmEzMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaApAQCAtOTQs
NiArOTQsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHRleHRGaWVsZERpZEJlZ2luRWRp
dGluZyhXZWJDb3JlOjpFbGVtZW50Kik7CiAgICAgdmlydHVhbCB2b2lkIHRleHRGaWVsZERpZEVu
ZEVkaXRpbmcoV2ViQ29yZTo6RWxlbWVudCopOwogICAgIHZpcnR1YWwgdm9pZCB0ZXh0RGlkQ2hh
bmdlSW5UZXh0RmllbGQoV2ViQ29yZTo6RWxlbWVudCopOworICAgIHZpcnR1YWwgdm9pZCBkaWRB
c3NvY2lhdGVJbnB1dChXZWJDb3JlOjpFbGVtZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGRpZEFk
ZEZvcm0oV2ViQ29yZTo6RWxlbWVudCopOwogICAgIHZpcnR1YWwgYm9vbCBkb1RleHRGaWVsZENv
bW1hbmRGcm9tRXZlbnQoV2ViQ29yZTo6RWxlbWVudCosIFdlYkNvcmU6OktleWJvYXJkRXZlbnQq
KTsKICAgICB2aXJ0dWFsIHZvaWQgdGV4dFdpbGxCZURlbGV0ZWRJblRleHRGaWVsZChXZWJDb3Jl
OjpFbGVtZW50Kik7CiAgICAgdmlydHVhbCB2b2lkIHRleHREaWRDaGFuZ2VJblRleHRBcmVhKFdl
YkNvcmU6OkVsZW1lbnQqKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189653</attachid>
            <date>2013-02-21 18:01:20 -0800</date>
            <delta_ts>2013-02-26 12:54:58 -0800</delta_ts>
            <desc>some style fixes</desc>
            <filename>bug-110375-20130221175740.patch</filename>
            <type>text/plain</type>
            <size>12137</size>
            <attacher name="Dane Walllinga">dgwallinga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM5Y2ViODg4MjZhYmQ5
YzA1YWJmMDM5MGQ1YTY1ZDg1ZDU1MjZmMi4uNjNmZDFjZDdhMGQ1MWMzN2JmMDk5YjUwYmE0NGVj
YTE3ZGQxNmM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTAyLTIwICBEYW5l
IFdhbGxpbmdhICA8ZGd3YWxsaW5nYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSG9vayBGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQsIEhUTUxGb3JtRWxlbWVudCB0byBub3RpZnkgRWRpdG9yQ2xpZW50
IG9mIGZvcm0gY2hhbmdlcyBhZnRlciBhIHBhZ2UgaGFzIGxvYWRlZC4KKyAgICAgICAgV2lsbCBi
ZSB1c2VkIHRvIGFkZCBhdXRvZmlsbCBzdXBwb3J0IGZvciBhamF4LXkgd2VicGFnZXMuIGUuZyBp
ZiB3aGlsZSBmaWxsaW5nIG91dCBhIGZvcm0sIG5ldyBmaWVsZHMKKyAgICAgICAgYXJlIGR5bmFt
aWNhbGx5IGNyZWF0ZWQsIGF1dG9maWxsIGNhbiBrbm93IHRvIHJlLXF1ZXJ5IHRoZSBhdXRvZmls
bCBzZXJ2ZXIgYW5kIGtlZXAgZ29pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTAzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBodG1sL0Zvcm1Bc3Nv
Y2lhdGVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb3JtQXNzb2NpYXRlZEVsZW1l
bnQ6OkZvcm1Bc3NvY2lhdGVkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpGb3JtQXNzb2Np
YXRlZEVsZW1lbnQ6OnJlc2V0Rm9ybU93bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3Nv
Y2lhdGVkRWxlbWVudDo6Zm9ybUF0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
Rm9ybUFzc29jaWF0ZWRFbGVtZW50OjpkaWRBc3NvY2lhdGVFbGVtZW50VGltZXJGaXJlZCk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBodG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5o
OgorICAgICAgICAoRm9ybUFzc29jaWF0ZWRFbGVtZW50KToKKyAgICAgICAgYWRkIGNhbGxzIHRv
IEVkaXRvckNsaWVudDo6ZGlkQXNzb2NpYXRlSW5wdXQgd2hlbiBmb3JtIGNoYW5nZXMKKyAgICAg
ICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9y
bUVsZW1lbnQ6OkhUTUxGb3JtRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUVs
ZW1lbnQ6Omluc2VydGVkSW50byk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6
OmRpZEFkZEZvcm1UaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0
bWwvSFRNTEZvcm1FbGVtZW50Lmg6CisgICAgICAgIGFkZCBjYWxsIHRvIEVkaXRvckNsaWVudDo6
ZGlkQWRkRm9ybQorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50OjpkaWRBc3NvY2lhdGVJbnB1dCk6CisgICAgICAgIChX
ZWJDb3JlOjpFbXB0eUVkaXRvckNsaWVudDo6ZGlkQWRkRm9ybSk6CisgICAgICAgIChFbXB0eUVk
aXRvckNsaWVudCk6CisgICAgICAgICogcGFnZS9FZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKEVk
aXRvckNsaWVudCk6CisgICAgICAgIGFkZCBuZXcgbWV0aG9kcyBkaWRBc3NvY2lhdGVJbnB1dCwg
ZGlkQWRkRm9ybQorCiAyMDEzLTAyLTE5ICBFbWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBDaGFuZ2UgY29tcHV0ZVN0aWNreVBvc2l0aW9uQ29uc3RyYWludHMgdG8g
dXNlIExheW91dEJveEV4dGVudCBmb3IgbWFyZ2lucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpp
bmRleCA4NjZiNmJmMzAyYWRmMDNhZTBhOGViYzNiZWM2YjMwMmIzYTc1ZmI4Li5mMmFmYmQzZWIw
MDRjM2QyYTg4YmQ3YzA3Y2VlY2YxMjg2OTNlYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAyLTIwICBEYW5lIFdhbGxpbmdhICA8ZGd3YWxsaW5n
YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IEZvcm1Bc3NvY2lhdGVkRWxlbWVu
dCwgSFRNTEZvcm1FbGVtZW50IG1ldGhvZHMgb2YgRWRpdG9yQ2xpZW50CisgICAgICAgIHRvIGlu
Zm9ybSBhdXRvZmlsbCBvZiBmb3JtIGNoYW5nZXMgYWZ0ZXIgYSBwYWdlIGhhcyBsb2FkZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDM3NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dl
YkF1dG9maWxsQ2xpZW50Lmg6CisgICAgICAgIChXZWJBdXRvZmlsbENsaWVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9maWxsQ2xpZW50OjpkaWRBc3NvY2lhdGVJbnB1dCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9maWxsQ2xpZW50OjpkaWRBZGRGb3JtKToKKyAgICAgICAgKiBzcmMv
RWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6
OmRpZEFzc29jaWF0ZUlucHV0KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6
OkVkaXRvckNsaWVudEltcGw6OmRpZEFkZEZvcm0pOgorICAgICAgICAqIHNyYy9FZGl0b3JDbGll
bnRJbXBsLmg6CisgICAgICAgIChFZGl0b3JDbGllbnRJbXBsKToKKwogMjAxMy0wMi0xOSAgQWRy
aWVubmUgV2Fsa2VyICA8ZW5uZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjE0MzM4MiBhbmQgcjE0MzQwMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Rm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcAppbmRleCBhMjIzNWIyOTA4NjQwMmEwYWVlODQ5YzU3
MDcyZmQxOGNjYjJlNWZhLi4yMjNhNDMwNzYxODAwZjA3NDA1ZDZmNTk4NzZlMDA5ZmE3Y2FhNGY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwCkBA
IC0yNSw3ICsyNSw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRm9ybUFzc29j
aWF0ZWRFbGVtZW50LmgiCiAKKyNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJG
b3JtQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1D
b250cm9sRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgpAQCAtNTEsNiArNTMsNyBAQCBwcml2YXRlOgogCiBGb3JtQXNzb2NpYXRl
ZEVsZW1lbnQ6OkZvcm1Bc3NvY2lhdGVkRWxlbWVudCgpCiAgICAgOiBtX2Zvcm0oMCkKKyAgICAs
IG1fZGlkQXNzb2NpYXRlRWxlbWVudFRpbWVyKHRoaXMsICZGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6
OmRpZEFzc29jaWF0ZUVsZW1lbnRUaW1lckZpcmVkKQogewogfQogCkBAIC0xNTcsNyArMTYwLDEy
IEBAIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtV2lsbEJlRGVzdHJveWVkKCkKIAog
dm9pZCBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OnJlc2V0Rm9ybU93bmVyKCkKIHsKKyAgICBIVE1M
Rm9ybUVsZW1lbnQqIGN1cnJlbnRGb3JtID0gbV9mb3JtOwogICAgIHNldEZvcm0oZmluZEFzc29j
aWF0ZWRGb3JtKHRvSFRNTEVsZW1lbnQodGhpcyksIG1fZm9ybSkpOworICAgIGlmIChtX2Zvcm0g
JiYgbV9mb3JtICE9IGN1cnJlbnRGb3JtICYmIG1fZm9ybS0+aW5Eb2N1bWVudCgpCisgICAgICAg
ICYmICFtX2RpZEFzc29jaWF0ZUVsZW1lbnRUaW1lci5pc0FjdGl2ZSgpKSB7CisgICAgICAgIG1f
ZGlkQXNzb2NpYXRlRWxlbWVudFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKKyAgICB9CiB9CiAKIHZv
aWQgRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmlidXRlQ2hhbmdlZCgpCkBAIC0xNjUs
NyArMTczLDEyIEBAIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmlidXRlQ2hh
bmdlZCgpCiAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KHRoaXMpOwog
ICAgIGlmICghZWxlbWVudC0+ZmFzdEhhc0F0dHJpYnV0ZShmb3JtQXR0cikpIHsKICAgICAgICAg
Ly8gVGhlIGZvcm0gYXR0cmlidXRlIHJlbW92ZWQuIFdlIG5lZWQgdG8gcmVzZXQgZm9ybSBvd25l
ciBoZXJlLgorICAgICAgICBIVE1MRm9ybUVsZW1lbnQqIGN1cnJlbnRGb3JtID0gbV9mb3JtOwog
ICAgICAgICBzZXRGb3JtKGVsZW1lbnQtPmZpbmRGb3JtQW5jZXN0b3IoKSk7CisgICAgICAgIGlm
IChtX2Zvcm0gJiYgbV9mb3JtICE9IGN1cnJlbnRGb3JtICYmIG1fZm9ybS0+aW5Eb2N1bWVudCgp
CisgICAgICAgICAgICAmJiAhbV9kaWRBc3NvY2lhdGVFbGVtZW50VGltZXIuaXNBY3RpdmUoKSkg
eworICAgICAgICAgICAgbV9kaWRBc3NvY2lhdGVFbGVtZW50VGltZXIuc3RhcnRPbmVTaG90KDAp
OworICAgICAgICB9CiAgICAgICAgIG1fZm9ybUF0dHJpYnV0ZVRhcmdldE9ic2VydmVyID0gbnVs
bHB0cjsKICAgICB9IGVsc2UgewogICAgICAgICByZXNldEZvcm1Pd25lcigpOwpAQCAtMjYyLDYg
KzI3NSwxMyBAQCBib29sIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6aXNGb3JtQ29udHJvbEVsZW1l
bnRXaXRoU3RhdGUoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBGb3JtQXNz
b2NpYXRlZEVsZW1lbnQ6OmRpZEFzc29jaWF0ZUVsZW1lbnRUaW1lckZpcmVkKFRpbWVyPEZvcm1B
c3NvY2lhdGVkRWxlbWVudD4qKQoreworICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gdG9IVE1M
RWxlbWVudCh0aGlzKTsKKyAgICBpZiAoZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSkKKyAg
ICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKS0+ZWRpdG9yKCktPmNsaWVudCgpLT5k
aWRBc3NvY2lhdGVJbnB1dChlbGVtZW50KTsKK30KKwogY29uc3QgSFRNTEVsZW1lbnQqIHRvSFRN
TEVsZW1lbnQoY29uc3QgRm9ybUFzc29jaWF0ZWRFbGVtZW50KiBhc3NvY2lhdGVkRWxlbWVudCkK
IHsKICAgICBpZiAoYXNzb2NpYXRlZEVsZW1lbnQtPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaAppbmRleCA0MGYyYjM2
ZTEzM2U3Y2ExMjEwYjg3OTcxZWIwMmQxNDllYTE1MzM0Li42NzBlNmE0ZTUxYWE3Y2EwOTcxZGRh
YmY2NmU2NTU3NjBjYTc1ODhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1B
c3NvY2lhdGVkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0
ZWRFbGVtZW50LmgKQEAgLTI0LDYgKzI0LDcgQEAKICNpZm5kZWYgRm9ybUFzc29jaWF0ZWRFbGVt
ZW50X2gKICNkZWZpbmUgRm9ybUFzc29jaWF0ZWRFbGVtZW50X2gKIAorI2luY2x1ZGUgIlRpbWVy
LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTExNiw2ICsxMTcsOSBAQCBwcml2YXRlOgogICAgIEhUTUxGb3JtRWxlbWVudCogbV9m
b3JtOwogICAgIE93blB0cjxWYWxpZGl0eVN0YXRlPiBtX3ZhbGlkaXR5U3RhdGU7CiAgICAgU3Ry
aW5nIG1fY3VzdG9tVmFsaWRhdGlvbk1lc3NhZ2U7CisKKyAgICB2b2lkIGRpZEFzc29jaWF0ZUVs
ZW1lbnRUaW1lckZpcmVkKFRpbWVyPEZvcm1Bc3NvY2lhdGVkRWxlbWVudD4qKTsKKyAgICBUaW1l
cjxGb3JtQXNzb2NpYXRlZEVsZW1lbnQ+IG1fZGlkQXNzb2NpYXRlRWxlbWVudFRpbWVyOwogfTsK
IAogSFRNTEVsZW1lbnQqIHRvSFRNTEVsZW1lbnQoRm9ybUFzc29jaWF0ZWRFbGVtZW50Kik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKaW5kZXggOTUzZmVjNmVkNzAyZWE3
N2IxMDI3NzY2MGFmY2ZjMWVlODI2ODE3ZC4uM2ZlYThkM2Q1NjQ2ZmM4YmM5YjFjMGM4ZGRkMzBk
YmI3NDdjMTYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcApAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRPTUZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRE9NV2lu
ZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIK
ICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJG
aWxlTGlzdC5oIgpAQCAtNzYsNiArNzcsNyBAQCBIVE1MRm9ybUVsZW1lbnQ6OkhUTUxGb3JtRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbgogICAg
ICwgbV9zaG91bGRTdWJtaXQoZmFsc2UpCiAgICAgLCBtX2lzSW5SZXNldEZ1bmN0aW9uKGZhbHNl
KQogICAgICwgbV93YXNEZW1vdGVkKGZhbHNlKQorICAgICwgbV9kaWRBZGRGb3JtVGltZXIodGhp
cywgJkhUTUxGb3JtRWxlbWVudDo6ZGlkQWRkRm9ybVRpbWVyRmlyZWQpCiAjaWYgRU5BQkxFKFJF
UVVFU1RfQVVUT0NPTVBMRVRFKQogICAgICwgbV9yZXF1ZXN0QXV0b2NvbXBsZXRlVGltZXIodGhp
cywgJkhUTUxGb3JtRWxlbWVudDo6cmVxdWVzdEF1dG9jb21wbGV0ZVRpbWVyRmlyZWQpCiAjZW5k
aWYKQEAgLTEzOSw2ICsxNDEsOCBAQCBib29sIEhUTUxGb3JtRWxlbWVudDo6cmVuZGVyZXJJc05l
ZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCkKIE5vZGU6Okluc2VydGlv
bk5vdGlmaWNhdGlvblJlcXVlc3QgSFRNTEZvcm1FbGVtZW50OjppbnNlcnRlZEludG8oQ29udGFp
bmVyTm9kZSogaW5zZXJ0aW9uUG9pbnQpCiB7CiAgICAgSFRNTEVsZW1lbnQ6Omluc2VydGVkSW50
byhpbnNlcnRpb25Qb2ludCk7CisgICAgaWYgKGluc2VydGlvblBvaW50LT5pbkRvY3VtZW50KCkg
JiYgIW1fZGlkQWRkRm9ybVRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fZGlkQWRkRm9ybVRp
bWVyLnN0YXJ0T25lU2hvdCgwKTsKICAgICByZXR1cm4gSW5zZXJ0aW9uRG9uZTsKIH0KIApAQCAt
NzQ5LDQgKzc1Myw5IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50Ojpjb3B5Tm9uQXR0cmlidXRlUHJv
cGVydGllc0Zyb21FbGVtZW50KGNvbnN0IEVsZW1lbnQmIHNvdXJjCiAgICAgSFRNTEVsZW1lbnQ6
OmNvcHlOb25BdHRyaWJ1dGVQcm9wZXJ0aWVzRnJvbUVsZW1lbnQoc291cmNlKTsKIH0KIAordm9p
ZCBIVE1MRm9ybUVsZW1lbnQ6OmRpZEFkZEZvcm1UaW1lckZpcmVkKFRpbWVyPEhUTUxGb3JtRWxl
bWVudD4qKQoreworICAgIHRoaXMtPmRvY3VtZW50KCktPmZyYW1lKCktPmVkaXRvcigpLT5jbGll
bnQoKS0+ZGlkQWRkRm9ybSh0aGlzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtRWxlbWVudC5oCmluZGV4IDc2MGFjOTkzY2I5MmEyYzRhMDA5Yzk4YWFjMDRj
NjdkN2E3ZTAyOTMuLmFjYWY2NjJjOThjNzA5YTQ2ODZlZTFjNGE0ZWE4MjE5OWJiMTk1MDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaApAQCAtMTc3LDYgKzE3Nyw5IEBAIHBy
aXZhdGU6CiAKICAgICBib29sIG1fd2FzRGVtb3RlZDsKIAorICAgIHZvaWQgZGlkQWRkRm9ybVRp
bWVyRmlyZWQoVGltZXI8SFRNTEZvcm1FbGVtZW50PiopOworICAgIFRpbWVyPEhUTUxGb3JtRWxl
bWVudD4gbV9kaWRBZGRGb3JtVGltZXI7CisKICNpZiBFTkFCTEUoUkVRVUVTVF9BVVRPQ09NUExF
VEUpCiAgICAgdm9pZCByZXF1ZXN0QXV0b2NvbXBsZXRlVGltZXJGaXJlZChUaW1lcjxIVE1MRm9y
bUVsZW1lbnQ+Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCAxZTFh
MTRjNTYyZjY1NTdiOTA5MDFlOGFhOTk4ODg3YTk1MWQ4NTlhLi5jODMwYzlmNDdlODEwYjBjMmQz
YTI2NDFkMDI1NmRlYWYwYzVjOGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
CkBAIC00NjMsNiArNDYzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0ZXh0V2lsbEJl
RGVsZXRlZEluVGV4dEZpZWxkKEVsZW1lbnQqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdGV4dERp
ZENoYW5nZUluVGV4dEFyZWEoRWxlbWVudCopIHsgfQogCisgICAgdmlydHVhbCB2b2lkIGRpZEFz
c29jaWF0ZUlucHV0KEVsZW1lbnQqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkRm9ybShF
bGVtZW50KikgeyB9CisKICNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIG1hcmtl
ZFRleHRBYmFuZG9uZWQoRnJhbWUqKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgK
aW5kZXggYzhiYjNlNDhlODQ0NzA4YTg5MDVhYmU3NDUzMDdmOTE2NTJiZmQzNC4uNzdmNGRjMWVl
OWY5YWU0ZGIyMDM3YzdlNDk4MWI4NWRiMDJjNmU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNs
aWVudC5oCkBAIC0xMTYsNiArMTE2LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0ZXh0
V2lsbEJlRGVsZXRlZEluVGV4dEZpZWxkKEVsZW1lbnQqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHRleHREaWRDaGFuZ2VJblRleHRBcmVhKEVsZW1lbnQqKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkQXNzb2NpYXRlSW5wdXQoRWxlbWVudCopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
QWRkRm9ybShFbGVtZW50KikgPSAwOworCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwg
TlNTdHJpbmcqIHVzZXJWaXNpYmxlU3RyaW5nKE5TVVJMKikgPSAwOwogICAgIHZpcnR1YWwgRG9j
dW1lbnRGcmFnbWVudCogZG9jdW1lbnRGcmFnbWVudEZyb21BdHRyaWJ1dGVkU3RyaW5nKE5TQXR0
cmlidXRlZFN0cmluZyosIFZlY3RvcjwgUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gPiYpID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxsQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBdXRvZmlsbENsaWVudC5o
CmluZGV4IGFhNGQwYTNkYWVkYjFjN2VjYmY2OWQ0Y2M0MjYwMjI2Y2QwNjM4ZjAuLjAxNjU2Mzhi
NTFhMjA0ZGYzZmY3OWIwNzQ3N2M5ZjMzZGNmNGJkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxsQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViQXV0b2ZpbGxDbGllbnQuaApAQCAtOTMsNiArOTMsMTAgQEAg
cHVibGljOgogICAgIC8vIEluZm9ybXMgdGhlIGNsaWVudCB3aGV0aGVyIG9yIG5vdCBhbnkgc3Vi
c2VxdWVudCB0ZXh0IGNoYW5nZXMgc2hvdWxkIGJlIGlnbm9yZWQuCiAgICAgdmlydHVhbCB2b2lk
IHNldElnbm9yZVRleHRDaGFuZ2VzKGJvb2wgaWdub3JlKSB7IH0KIAorICAgIC8vIFRoZXNlIG1l
dGhvZHMgYXJlIGNhbGxlZCB3aGVuIHRoZSBmb3JtIHN0cnVjdHVyZSBvZiBhIHBhZ2UgY2hhbmdl
cworICAgIHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVJbnB1dChjb25zdCBXZWJOb2RlJikgeyB9
CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEZvcm0oY29uc3QgV2ViTm9kZSYpIHsgfQorCiBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCB+V2ViQXV0b2ZpbGxDbGllbnQoKSB7IH0KIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCmluZGV4IGMzYTBm
OTE1NmVmMGU1Y2QwMTkyZWRlN2Q4ZjQ3MDVlMTYzZWFhYzcuLjI5YTBlMmU3M2IzNzE0YWQ5MGI3
NzhlYTc2N2NmYjU1NmQzMWEyY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0VkaXRvckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0VkaXRvckNsaWVudEltcGwuY3BwCkBAIC03MDIsNiArNzAyLDE4IEBAIHZvaWQgRWRpdG9yQ2xp
ZW50SW1wbDo6dGV4dERpZENoYW5nZUluVGV4dEFyZWEoRWxlbWVudCopCiB7CiB9CiAKK3ZvaWQg
RWRpdG9yQ2xpZW50SW1wbDo6ZGlkQXNzb2NpYXRlSW5wdXQoRWxlbWVudCogZWxlbWVudCkKK3sK
KyAgICBpZiAobV93ZWJWaWV3LT5hdXRvZmlsbENsaWVudCgpICYmIGVsZW1lbnQpCisgICAgICAg
IG1fd2ViVmlldy0+YXV0b2ZpbGxDbGllbnQoKS0+ZGlkQXNzb2NpYXRlSW5wdXQoV2ViTm9kZShl
bGVtZW50KSk7Cit9CisKK3ZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6ZGlkQWRkRm9ybShFbGVtZW50
KiBlbGVtZW50KQoreworICAgIGlmIChtX3dlYlZpZXctPmF1dG9maWxsQ2xpZW50KCkgJiYgZWxl
bWVudCkKKyAgICAgICAgbV93ZWJWaWV3LT5hdXRvZmlsbENsaWVudCgpLT5kaWRBZGRGb3JtKFdl
Yk5vZGUoZWxlbWVudCkpOworfQorCiBib29sIEVkaXRvckNsaWVudEltcGw6OnNob3VsZEVyYXNl
TWFya2Vyc0FmdGVyQ2hhbmdlU2VsZWN0aW9uKFRleHRDaGVja2luZ1R5cGUgdHlwZSkgY29uc3QK
IHsKICAgICBjb25zdCBGcmFtZSogZnJhbWUgPSBtX3dlYlZpZXctPmZvY3VzZWRXZWJDb3JlRnJh
bWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVu
dEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaApp
bmRleCBlNDIzOGZkMjU5NDMwNmRhOTEyMWI4NjNlNDcwYTVjOTA4ZmNhZDQzLi5lOWExZDdiMDll
Mzg1NjEyYzgwMGVjOWVmODAxMmQ4YmNhNWU2YTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCkBAIC05NCw2ICs5NCw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgdGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKFdlYkNvcmU6OkVsZW1lbnQq
KTsKICAgICB2aXJ0dWFsIHZvaWQgdGV4dEZpZWxkRGlkRW5kRWRpdGluZyhXZWJDb3JlOjpFbGVt
ZW50Kik7CiAgICAgdmlydHVhbCB2b2lkIHRleHREaWRDaGFuZ2VJblRleHRGaWVsZChXZWJDb3Jl
OjpFbGVtZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUlucHV0KFdlYkNvcmU6
OkVsZW1lbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkRm9ybShXZWJDb3JlOjpFbGVtZW50
Kik7CiAgICAgdmlydHVhbCBib29sIGRvVGV4dEZpZWxkQ29tbWFuZEZyb21FdmVudChXZWJDb3Jl
OjpFbGVtZW50KiwgV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopOwogICAgIHZpcnR1YWwgdm9pZCB0
ZXh0V2lsbEJlRGVsZXRlZEluVGV4dEZpZWxkKFdlYkNvcmU6OkVsZW1lbnQqKTsKICAgICB2aXJ0
dWFsIHZvaWQgdGV4dERpZENoYW5nZUluVGV4dEFyZWEoV2ViQ29yZTo6RWxlbWVudCopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190344</attachid>
            <date>2013-02-26 12:55:04 -0800</date>
            <delta_ts>2013-02-26 15:05:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110375-20130226125118.patch</filename>
            <type>text/plain</type>
            <size>12814</size>
            <attacher name="Dane Walllinga">dgwallinga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM5Y2ViODg4MjZhYmQ5
YzA1YWJmMDM5MGQ1YTY1ZDg1ZDU1MjZmMi4uODQwZTY0MTBlNDI4YTVjYmQxOGZmY2JhM2NiYTli
OWViN2VkYjEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEzLTAyLTI2ICBEYW5l
IFdhbGxpbmdhICA8ZGd3YWxsaW5nYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSG9vayBGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQsIEhUTUxGb3JtRWxlbWVudCB0byBub3RpZnkgRWRpdG9yQ2xpZW50
IG9mIGZvcm0gY2hhbmdlcyBhZnRlciBhIHBhZ2UgaGFzIGxvYWRlZC4KKyAgICAgICAgV2lsbCBi
ZSB1c2VkIHRvIGFkZCBhdXRvZmlsbCBzdXBwb3J0IGZvciBhamF4LXkgd2VicGFnZXMuIGUuZyBp
ZiB3aGlsZSBmaWxsaW5nIG91dCBhIGZvcm0sIG5ldyBmaWVsZHMKKyAgICAgICAgYXJlIGR5bmFt
aWNhbGx5IGNyZWF0ZWQsIGF1dG9maWxsIGNhbiBrbm93IHRvIHJlLXF1ZXJ5IHRoZSBhdXRvZmls
bCBzZXJ2ZXIgYW5kIGtlZXAgZ29pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTAzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbCk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJv
bHNUaW1lckZpcmVkKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKERvY3Vt
ZW50KToKKyAgICAgICAgYWRkZWQgbWV0aG9kIGRpZEFzc29jaWF0ZUZvcm1Db250cm9sLCB3aGlj
aCBiYXRjaGVzIGZvcm0gY2hhbmdlcworICAgICAgICBhbmQgY2FsbHMgb3V0IHRvIENocm9tZUNs
aWVudCBvbiBhIHRpbWVyLgorICAgICAgICAqIGh0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6cmVzZXRGb3JtT3du
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmli
dXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBodG1sL0Zvcm1Bc3Nv
Y2lhdGVkRWxlbWVudC5oOgorICAgICAgICAoRm9ybUFzc29jaWF0ZWRFbGVtZW50KToKKyAgICAg
ICAgYWRkIGNhbGxzIHRvIERvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbCB3aGVuIGZv
cm0gY2hhbmdlcworICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50Lmg6CisgICAgICAgIGFkZCBjYWxs
IHRvIERvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbAorICAgICAgICAqIGxvYWRlci9F
bXB0eUNsaWVudHMuaDoKKyAgICAgICAgKEVtcHR5Q2hyb21lQ2xpZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMpOgorICAg
ICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnNob3VsZE5vdGlmeU9uRm9ybUNoYW5n
ZXMpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChDaHJvbWVDbGll
bnQpOgorICAgICAgICBhZGQgbmV3IG1ldGhvZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMKKwog
MjAxMy0wMi0xOSAgRW1pbCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
Q2hhbmdlIGNvbXB1dGVTdGlja3lQb3NpdGlvbkNvbnN0cmFpbnRzIHRvIHVzZSBMYXlvdXRCb3hF
eHRlbnQgZm9yIG1hcmdpbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggODY2YjZiZjMw
MmFkZjAzYWUwYThlYmMzYmVjNmIzMDJiM2E3NWZiOC4uOGUzOTgwMjI3MDRhOTJiODRkY2Q3YWFk
MGRlNTM2Yzc2NDcyMTc2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MyBAQAorMjAxMy0wMi0yNiAgRGFuZSBXYWxsaW5nYSAgPGRnd2FsbGluZ2FAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIEltcGxlbWVudCBmb3JtIGFzc29jaWF0aW9uIG1ldGhvZHMgb2YgQ2hyb21l
Q2xpZW50CisgICAgICAgIHRvIGluZm9ybSBhdXRvZmlsbCBvZiBmb3JtIGNoYW5nZXMgYWZ0ZXIg
YSBwYWdlIGhhcyBsb2FkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMDM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogcHVibGljL1dlYkF1dG9maWxsQ2xpZW50Lmg6CisgICAgICAgIChXZWJBdXRv
ZmlsbENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9maWxsQ2xpZW50OjpkaWRBc3Nv
Y2lhdGVJbnB1dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9maWxsQ2xpZW50OjpkaWRBZGRG
b3JtKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b2ZpbGxDbGllbnQ6OmRpZEFzc29jaWF0ZUZv
cm1Db250cm9scyk6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMpOgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6c2hv
dWxkTm90aWZ5T25Gb3JtQ2hhbmdlcyk6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwu
aDoKKyAgICAgICAgKENocm9tZUNsaWVudEltcGwpOgorCiAyMDEzLTAyLTE5ICBBZHJpZW5uZSBX
YWxrZXIgIDxlbm5lQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTQzMzgyIGFuZCByMTQzNDAxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNTVi
NGM5ODI0YWY4YzE3N2ExY2JlN2FmZTc5NzY5NDEwOGNlZjI2ZC4uYThkZTkxMDhlNTQ0ZDc2ZGUy
MTZmYWNiNjMwMGY3MjE1YzlmOWZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00ODAs
NiArNDgwLDcgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYg
dXJsLCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKQogI2lmIEVOQUJMRShURU1QTEFURV9FTEVN
RU5UKQogICAgICwgbV90ZW1wbGF0ZURvY3VtZW50SG9zdCgwKQogI2VuZGlmCisgICAgLCBtX2Rp
ZEFzc29jaWF0ZUZvcm1Db250cm9sc1RpbWVyKHRoaXMsICZEb2N1bWVudDo6ZGlkQXNzb2NpYXRl
Rm9ybUNvbnRyb2xzVGltZXJGaXJlZCkKIHsKICAgICBzZXRUcmVlU2NvcGUodGhpcyk7CiAKQEAg
LTYwNDgsNCArNjA0OSwyMCBAQCBEb2N1bWVudCogRG9jdW1lbnQ6OmVuc3VyZVRlbXBsYXRlRG9j
dW1lbnQoKQogfQogI2VuZGlmCiAKK3ZvaWQgRG9jdW1lbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250
cm9sKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKHRoaXMtPmZyYW1lKCkgJiYgdGhpcy0+
ZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPnNob3VsZE5vdGlmeU9uRm9ybUNo
YW5nZXMoKSkgeworICAgICAgICBtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHMuYWRkKGVsZW1lbnQp
OworICAgICAgICBtX2RpZEFzc29jaWF0ZUZvcm1Db250cm9sc1RpbWVyLnN0YXJ0T25lU2hvdCgw
LjEpOworICAgIH0KK30KKwordm9pZCBEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xz
VGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4qKQoreworICAgIGlmICh0aGlzLT5mcmFtZSgpKSB7
CisgICAgICAgIHRoaXMtPmZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpLT5kaWRB
c3NvY2lhdGVGb3JtQ29udHJvbHMobV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzKTsKKyAgICAgICAg
bV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzLmNsZWFyKCk7CisgICAgfQorfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDEyNjQzOGQ3MGVmMDE2MWJjMmFm
ZThmY2VhNzY4YTRiYzg3MDM3YWIuLmI4YTBlYWE0MWU3MDFhZTU2ZTBjMjg2YzU0ZWYwM2Q5ODJk
M2E4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAi
Vmlld3BvcnRBcmd1bWVudHMuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3
dGYvRml4ZWRBcnJheS5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KQEAgLTEyMDIsNiArMTIwMyw4IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudCog
dGVtcGxhdGVEb2N1bWVudEhvc3QoKSB7IHJldHVybiBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0OyB9
CiAjZW5kaWYKIAorICAgIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2woRWxlbWVudCopOwor
CiAgICAgdmlydHVhbCB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVu
dGlmaWVyID0gMCk7CiAKICAgICB2aXJ0dWFsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmln
aW4oKSBjb25zdCBPVkVSUklERTsKQEAgLTE1NzAsNiArMTU3MywxMiBAQCBwcml2YXRlOgogICAg
IFJlZlB0cjxEb2N1bWVudD4gbV90ZW1wbGF0ZURvY3VtZW50OwogICAgIERvY3VtZW50KiBtX3Rl
bXBsYXRlRG9jdW1lbnRIb3N0OyAvLyBNYW51YWxseSBtYW5hZ2VkIHdlYWtyZWYgKGJhY2twb2lu
dGVyIGZyb20gbV90ZW1wbGF0ZURvY3VtZW50KS4KICNlbmRpZgorCisgICAgdm9pZCBkaWRBc3Nv
Y2lhdGVGb3JtQ29udHJvbHNUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopOworICAgIFRpbWVy
PERvY3VtZW50PiBtX2RpZEFzc29jaWF0ZUZvcm1Db250cm9sc1RpbWVyOworICAgIEhhc2hTZXQ8
RWxlbWVudCo+IG1fYXNzb2NpYXRlZEZvcm1Db250cm9sczsKKworICAgIAogfTsKIAogaW5saW5l
IHZvaWQgRG9jdW1lbnQ6Om5vdGlmeVJlbW92ZVBlbmRpbmdTaGVldElmTmVlZGVkKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcAppbmRleCBhMjIzNWIy
OTA4NjQwMmEwYWVlODQ5YzU3MDcyZmQxOGNjYjJlNWZhLi5lZjU2NTI3MWM5NTFmYTM4Y2FiZGQy
MjBhYWFkMGU4NDEyZDNkNWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1B
c3NvY2lhdGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2Np
YXRlZEVsZW1lbnQuY3BwCkBAIC0yNSw3ICsyNSw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiRm9ybUFzc29jaWF0ZWRFbGVtZW50LmgiCiAKKyNpbmNsdWRlICJFZGl0b3JDbGll
bnQuaCIKICNpbmNsdWRlICJGb3JtQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtMTU3LDcgKzE1OSwxMSBAQCB2b2lk
IEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybVdpbGxCZURlc3Ryb3llZCgpCiAKIHZvaWQgRm9y
bUFzc29jaWF0ZWRFbGVtZW50OjpyZXNldEZvcm1Pd25lcigpCiB7CisgICAgSFRNTEZvcm1FbGVt
ZW50KiBjdXJyZW50Rm9ybSA9IG1fZm9ybTsKICAgICBzZXRGb3JtKGZpbmRBc3NvY2lhdGVkRm9y
bSh0b0hUTUxFbGVtZW50KHRoaXMpLCBtX2Zvcm0pKTsKKyAgICBIVE1MRWxlbWVudCogZWxlbWVu
dCA9IHRvSFRNTEVsZW1lbnQodGhpcyk7ICAgICAKKyAgICBpZiAobV9mb3JtICYmIG1fZm9ybSAh
PSBjdXJyZW50Rm9ybSAmJiBtX2Zvcm0tPmluRG9jdW1lbnQoKSkKKyAgICAgICAgZWxlbWVudC0+
ZG9jdW1lbnQoKS0+ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2woZWxlbWVudCk7CiB9CiAKIHZvaWQg
Rm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmlidXRlQ2hhbmdlZCgpCkBAIC0xNjUsNyAr
MTcxLDExIEBAIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmlidXRlQ2hhbmdl
ZCgpCiAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KHRoaXMpOwogICAg
IGlmICghZWxlbWVudC0+ZmFzdEhhc0F0dHJpYnV0ZShmb3JtQXR0cikpIHsKICAgICAgICAgLy8g
VGhlIGZvcm0gYXR0cmlidXRlIHJlbW92ZWQuIFdlIG5lZWQgdG8gcmVzZXQgZm9ybSBvd25lciBo
ZXJlLgorICAgICAgICBIVE1MRm9ybUVsZW1lbnQqIGN1cnJlbnRGb3JtID0gbV9mb3JtOwogICAg
ICAgICBzZXRGb3JtKGVsZW1lbnQtPmZpbmRGb3JtQW5jZXN0b3IoKSk7CisgICAgICAgIEhUTUxF
bGVtZW50KiBlbGVtZW50ID0gdG9IVE1MRWxlbWVudCh0aGlzKTsKKyAgICAgICAgaWYgKG1fZm9y
bSAmJiBtX2Zvcm0gIT0gY3VycmVudEZvcm0gJiYgbV9mb3JtLT5pbkRvY3VtZW50KCkpCisgICAg
ICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLT5kaWRBc3NvY2lhdGVGb3JtQ29udHJvbChlbGVt
ZW50KTsKICAgICAgICAgbV9mb3JtQXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXIgPSBudWxscHRyOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIHJlc2V0Rm9ybU93bmVyKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaAppbmRleCA0MGYyYjM2ZTEzM2U3Y2ExMjEwYjg3
OTcxZWIwMmQxNDllYTE1MzM0Li41ODk2OTAyYzY3MTAyZTE3Zjk2NmUzZDJiNzA3NjQ1MTg0MjM1
NGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmgKQEAg
LTI0LDYgKzI0LDcgQEAKICNpZm5kZWYgRm9ybUFzc29jaWF0ZWRFbGVtZW50X2gKICNkZWZpbmUg
Rm9ybUFzc29jaWF0ZWRFbGVtZW50X2gKIAorI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRleCA5NTNmZWM2ZWQ3MDJlYTc3YjEwMjc3NjYw
YWZjZmMxZWU4MjY4MTdkLi44Y2RjNGE2YjE4MjRkYjA2NTE3ZmFiZDBkMjQwZGZjNzU4MjRhMjE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCkBAIC0zMCw2ICszMCw3
IEBACiAjaW5jbHVkZSAiRE9NRm9ybURhdGEuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUg
IkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZpbGVMaXN0Lmgi
CkBAIC0xMzksNiArMTQwLDggQEAgYm9vbCBIVE1MRm9ybUVsZW1lbnQ6OnJlbmRlcmVySXNOZWVk
ZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQpCiBOb2RlOjpJbnNlcnRpb25O
b3RpZmljYXRpb25SZXF1ZXN0IEhUTUxGb3JtRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5l
ck5vZGUqIGluc2VydGlvblBvaW50KQogewogICAgIEhUTUxFbGVtZW50OjppbnNlcnRlZEludG8o
aW5zZXJ0aW9uUG9pbnQpOworICAgIGlmIChpbnNlcnRpb25Qb2ludC0+aW5Eb2N1bWVudCgpKQor
ICAgICAgICB0aGlzLT5kb2N1bWVudCgpLT5kaWRBc3NvY2lhdGVGb3JtQ29udHJvbCh0aGlzKTsK
ICAgICByZXR1cm4gSW5zZXJ0aW9uRG9uZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCmluZGV4IDFlMWExNGM1NjJmNjU1N2I5MDkwMWU4YWE5OTg4ODdhOTUxZDg1OWEuLjVi
ODNmZTA1ZjNmZTE1NGIxMTMxNTgwNTA0ZjllYTc0ZjFiMzM0YzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmgKQEAgLTIwOCw2ICsyMDgsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rp
b24pIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlzRW1w
dHlDaHJvbWVDbGllbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKEhhc2hTZXQ8RWxlbWVudCo+JikgeyB9CisgICAg
dmlydHVhbCBib29sIHNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKSB7IHJldHVybiBmYWxzZTsg
fQogfTsKIAogY2xhc3MgRW1wdHlGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBGcmFtZUxvYWRl
ckNsaWVudCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA1ZjZjZTM5YTUxOTA0
ZWE0NTMwZDViYjczZTU1YTIxODJmYzU1NTQ3Li5kYTAxMzZmNGFmNDlhNzcyOGEwZTI0ZmQ1MTI0
MjI3YTJlZWY0NDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTM4MCw2ICsz
ODAsOSBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IFBvcnQgc2hvdWxkIHJldHVybiB0cnVlIHVz
aW5nIGhldXJpc3RpYyBiYXNlZCBvbiBzY3JvbGxhYmxlKFJlbmRlckJveCkuCiAgICAgdmlydHVh
bCBib29sIHNob3VsZEF1dG9zY3JvbGxGb3JEcmFnQW5kRHJvcChSZW5kZXJCb3gqKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogCisgICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250
cm9scyhIYXNoU2V0PEVsZW1lbnQqPiYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTm90
aWZ5T25Gb3JtQ2hhbmdlcygpID0gMDsKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfkNocm9t
ZUNsaWVudCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYkF1dG9maWxsQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJBdXRvZmlsbENsaWVudC5oCmluZGV4IGFhNGQwYTNkYWVkYjFjN2VjYmY2OWQ0Y2M0MjYwMjI2
Y2QwNjM4ZjAuLjIyMWNjMDRiMTFmNWI4YzBmYjkwYTY1N2JkNmRiNDg1ZTJlMTEzNDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxsQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQXV0b2ZpbGxDbGllbnQuaApA
QCAtNDAsNiArNDAsOCBAQCBjbGFzcyBXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2ViTm9kZTsK
IGNsYXNzIFdlYlN0cmluZzsKIAordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYlZlY3Rv
cjsKKwogY2xhc3MgV2ViQXV0b2ZpbGxDbGllbnQgewogcHVibGljOgogICAgIGVudW0gewpAQCAt
OTMsNiArOTUsOSBAQCBwdWJsaWM6CiAgICAgLy8gSW5mb3JtcyB0aGUgY2xpZW50IHdoZXRoZXIg
b3Igbm90IGFueSBzdWJzZXF1ZW50IHRleHQgY2hhbmdlcyBzaG91bGQgYmUgaWdub3JlZC4KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0SWdub3JlVGV4dENoYW5nZXMoYm9vbCBpZ25vcmUpIHsgfQogCisg
ICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgY2FsbGVkIHdoZW4gdGhlIGZvcm0gc3RydWN0dXJlIG9m
IGEgcGFnZSBjaGFuZ2VzCisgICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9s
cyhjb25zdCBXZWJWZWN0b3I8V2ViTm9kZSo+JikgeyB9CisKIHByb3RlY3RlZDoKICAgICB2aXJ0
dWFsIH5XZWJBdXRvZmlsbENsaWVudCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5kZXggZTUyNzZmZmNiMzI2OWZiNWFkMTlh
YzU2NDFkYmQxODA3ZGZmOWMyMy4uNzMzYTA5MmM2NjM1NWEyMTQxOTUxYzk2ZWUzZjE1YWEzNWYz
YjUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1w
bC5jcHAKQEAgLTc4LDYgKzc4LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUg
IlRleHRGaWVsZERlY29yYXRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0
eU9iamVjdC5oIgorI2luY2x1ZGUgIldlYkF1dG9maWxsQ2xpZW50LmgiCiAjaWYgRU5BQkxFKElO
UFVUX1RZUEVfQ09MT1IpCiAjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyLmgiCiAjZW5kaWYKQEAg
LTExNzAsNiArMTE3MSwyNSBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OmFubm90YXRlZFJlZ2lv
bnNDaGFuZ2VkKCkKIH0KICNlbmRpZgogCit2b2lkIENocm9tZUNsaWVudEltcGw6OmRpZEFzc29j
aWF0ZUZvcm1Db250cm9scyhIYXNoU2V0PEVsZW1lbnQqPiYgZWxlbWVudHMpCit7CisgICAgaWYg
KG1fd2ViVmlldy0+YXV0b2ZpbGxDbGllbnQoKSkgeworICAgICAgICBXZWJWZWN0b3I8V2ViTm9k
ZSo+IGVsZW1lbnRWZWN0b3IoKHNpemVfdCkgZWxlbWVudHMuc2l6ZSgpKTsKKyAgICAgICAgc2l6
ZV90IGkgPSAwOworICAgICAgICBIYXNoU2V0PEVsZW1lbnQqPjo6aXRlcmF0b3IgZW5kID0gZWxl
bWVudHMuZW5kKCk7CisgICAgICAgIGZvciAoSGFzaFNldDxFbGVtZW50Kj46Oml0ZXJhdG9yIGl0
ID0gZWxlbWVudHMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgICAgICBlbGVt
ZW50VmVjdG9yW2ldID0gbmV3IFdlYk5vZGUoKCppdCkpOworICAgICAgICAgICAgKytpOworICAg
ICAgICB9CisgICAgICAgIG1fd2ViVmlldy0+YXV0b2ZpbGxDbGllbnQoKS0+ZGlkQXNzb2NpYXRl
Rm9ybUNvbnRyb2xzKGVsZW1lbnRWZWN0b3IpOworICAgIH0KK30KKworYm9vbCBDaHJvbWVDbGll
bnRJbXBsOjpzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwogI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKIFBhc3NPd25QdHI8TmF2
aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50SW1wbD4gTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50
SW1wbDo6Y3JlYXRlKFdlYlZpZXdJbXBsKiB3ZWJWaWV3KQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCmluZGV4IGQ1ZTlhZmYzYWE0M2U3M2JmYjk5
M2U5MDY1N2FmZTJlZmE2ZTIxZjcuLjkyZDhhMzIzZWUzZGQzZGVhZjkxMTQ5MTZlNjA4MDVmYTJm
MmFjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVu
dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmgKQEAgLTIzMyw2ICsyMzMsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzUG9pbnRl
ckxvY2tlZCgpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNv
bnRyb2xzKEhhc2hTZXQ8V2ViQ29yZTo6RWxlbWVudCo+Jik7CisgICAgdmlydHVhbCBib29sIHNo
b3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKTsKKwogcHJpdmF0ZToKICAgICBXZWJOYXZpZ2F0aW9u
UG9saWN5IGdldE5hdmlnYXRpb25Qb2xpY3koKTsKICAgICB2b2lkIGdldFBvcHVwTWVudUluZm8o
V2ViQ29yZTo6UG9wdXBDb250YWluZXIqLCBXZWJQb3B1cE1lbnVJbmZvKik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190353</attachid>
            <date>2013-02-26 13:51:19 -0800</date>
            <delta_ts>2013-03-05 13:09:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110375-20130226134733.patch</filename>
            <type>text/plain</type>
            <size>12868</size>
            <attacher name="Dane Walllinga">dgwallinga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM5Y2ViODg4MjZhYmQ5
YzA1YWJmMDM5MGQ1YTY1ZDg1ZDU1MjZmMi4uODQwZTY0MTBlNDI4YTVjYmQxOGZmY2JhM2NiYTli
OWViN2VkYjEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEzLTAyLTI2ICBEYW5l
IFdhbGxpbmdhICA8ZGd3YWxsaW5nYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSG9vayBGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQsIEhUTUxGb3JtRWxlbWVudCB0byBub3RpZnkgRWRpdG9yQ2xpZW50
IG9mIGZvcm0gY2hhbmdlcyBhZnRlciBhIHBhZ2UgaGFzIGxvYWRlZC4KKyAgICAgICAgV2lsbCBi
ZSB1c2VkIHRvIGFkZCBhdXRvZmlsbCBzdXBwb3J0IGZvciBhamF4LXkgd2VicGFnZXMuIGUuZyBp
ZiB3aGlsZSBmaWxsaW5nIG91dCBhIGZvcm0sIG5ldyBmaWVsZHMKKyAgICAgICAgYXJlIGR5bmFt
aWNhbGx5IGNyZWF0ZWQsIGF1dG9maWxsIGNhbiBrbm93IHRvIHJlLXF1ZXJ5IHRoZSBhdXRvZmls
bCBzZXJ2ZXIgYW5kIGtlZXAgZ29pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTAzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbCk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJv
bHNUaW1lckZpcmVkKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKERvY3Vt
ZW50KToKKyAgICAgICAgYWRkZWQgbWV0aG9kIGRpZEFzc29jaWF0ZUZvcm1Db250cm9sLCB3aGlj
aCBiYXRjaGVzIGZvcm0gY2hhbmdlcworICAgICAgICBhbmQgY2FsbHMgb3V0IHRvIENocm9tZUNs
aWVudCBvbiBhIHRpbWVyLgorICAgICAgICAqIGh0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6cmVzZXRGb3JtT3du
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmli
dXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBodG1sL0Zvcm1Bc3Nv
Y2lhdGVkRWxlbWVudC5oOgorICAgICAgICAoRm9ybUFzc29jaWF0ZWRFbGVtZW50KToKKyAgICAg
ICAgYWRkIGNhbGxzIHRvIERvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbCB3aGVuIGZv
cm0gY2hhbmdlcworICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50Lmg6CisgICAgICAgIGFkZCBjYWxs
IHRvIERvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbAorICAgICAgICAqIGxvYWRlci9F
bXB0eUNsaWVudHMuaDoKKyAgICAgICAgKEVtcHR5Q2hyb21lQ2xpZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMpOgorICAg
ICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnNob3VsZE5vdGlmeU9uRm9ybUNoYW5n
ZXMpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChDaHJvbWVDbGll
bnQpOgorICAgICAgICBhZGQgbmV3IG1ldGhvZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMKKwog
MjAxMy0wMi0xOSAgRW1pbCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
Q2hhbmdlIGNvbXB1dGVTdGlja3lQb3NpdGlvbkNvbnN0cmFpbnRzIHRvIHVzZSBMYXlvdXRCb3hF
eHRlbnQgZm9yIG1hcmdpbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggODY2YjZiZjMw
MmFkZjAzYWUwYThlYmMzYmVjNmIzMDJiM2E3NWZiOC4uOGUzOTgwMjI3MDRhOTJiODRkY2Q3YWFk
MGRlNTM2Yzc2NDcyMTc2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MyBAQAorMjAxMy0wMi0yNiAgRGFuZSBXYWxsaW5nYSAgPGRnd2FsbGluZ2FAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIEltcGxlbWVudCBmb3JtIGFzc29jaWF0aW9uIG1ldGhvZHMgb2YgQ2hyb21l
Q2xpZW50CisgICAgICAgIHRvIGluZm9ybSBhdXRvZmlsbCBvZiBmb3JtIGNoYW5nZXMgYWZ0ZXIg
YSBwYWdlIGhhcyBsb2FkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMDM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogcHVibGljL1dlYkF1dG9maWxsQ2xpZW50Lmg6CisgICAgICAgIChXZWJBdXRv
ZmlsbENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9maWxsQ2xpZW50OjpkaWRBc3Nv
Y2lhdGVJbnB1dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9maWxsQ2xpZW50OjpkaWRBZGRG
b3JtKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b2ZpbGxDbGllbnQ6OmRpZEFzc29jaWF0ZUZv
cm1Db250cm9scyk6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMpOgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6c2hv
dWxkTm90aWZ5T25Gb3JtQ2hhbmdlcyk6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwu
aDoKKyAgICAgICAgKENocm9tZUNsaWVudEltcGwpOgorCiAyMDEzLTAyLTE5ICBBZHJpZW5uZSBX
YWxrZXIgIDxlbm5lQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTQzMzgyIGFuZCByMTQzNDAxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNTVi
NGM5ODI0YWY4YzE3N2ExY2JlN2FmZTc5NzY5NDEwOGNlZjI2ZC4uYTQwZTNmNTI5MjNmMDYwOGE5
OTU3ZGZmNmFiNGFlZDk4NWFlMzM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00ODAs
NiArNDgwLDcgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYg
dXJsLCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKQogI2lmIEVOQUJMRShURU1QTEFURV9FTEVN
RU5UKQogICAgICwgbV90ZW1wbGF0ZURvY3VtZW50SG9zdCgwKQogI2VuZGlmCisgICAgLCBtX2Rp
ZEFzc29jaWF0ZUZvcm1Db250cm9sc1RpbWVyKHRoaXMsICZEb2N1bWVudDo6ZGlkQXNzb2NpYXRl
Rm9ybUNvbnRyb2xzVGltZXJGaXJlZCkKIHsKICAgICBzZXRUcmVlU2NvcGUodGhpcyk7CiAKQEAg
LTYwNDgsNCArNjA0OSwyMCBAQCBEb2N1bWVudCogRG9jdW1lbnQ6OmVuc3VyZVRlbXBsYXRlRG9j
dW1lbnQoKQogfQogI2VuZGlmCiAKK3ZvaWQgRG9jdW1lbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250
cm9sKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFmcmFtZSgpIHx8ICFmcmFtZSgpLT5w
YWdlKCktPmNocm9tZSgpLT5jbGllbnQoKS0+c2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcygpKQor
ICAgICAgICByZXR1cm47CisgICAgbV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzLmFkZChlbGVtZW50
KTsKKyAgICBtX2RpZEFzc29jaWF0ZUZvcm1Db250cm9sc1RpbWVyLnN0YXJ0T25lU2hvdCgwLjEp
OworfQorCit2b2lkIERvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lckZpcmVk
KFRpbWVyPERvY3VtZW50PiopCit7CisgICAgaWYgKCF0aGlzLT5mcmFtZSgpKQorICAgICAgICBy
ZXR1cm47CisgICAgdGhpcy0+ZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPmRp
ZEFzc29jaWF0ZUZvcm1Db250cm9scyhtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHMpOworICAgIG1f
YXNzb2NpYXRlZEZvcm1Db250cm9scy5jbGVhcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDEyNjQzOGQ3MGVmMDE2MWJjMmFmZThmY2VhNzY4
YTRiYzg3MDM3YWIuLmUxZDU5ZmY1ZjQ5NTc1YzU5OTE2NmNmMjA4MzFkMjk5NDNhMzIwODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAiVmlld3BvcnRB
cmd1bWVudHMuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRml4ZWRB
cnJheS5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KQEAgLTEyMDIsNiArMTIwMyw4IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudCogdGVtcGxhdGVE
b2N1bWVudEhvc3QoKSB7IHJldHVybiBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0OyB9CiAjZW5kaWYK
IAorICAgIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2woRWxlbWVudCopOworCiAgICAgdmly
dHVhbCB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0g
MCk7CiAKICAgICB2aXJ0dWFsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4oKSBjb25z
dCBPVkVSUklERTsKQEAgLTEyODYsNiArMTI4OSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRM
aXN0ZW5lclR5cGUoTGlzdGVuZXJUeXBlIGxpc3RlbmVyVHlwZSkgeyBtX2xpc3RlbmVyVHlwZXMg
fD0gbGlzdGVuZXJUeXBlOyB9CiAgICAgdm9pZCBhZGRNdXRhdGlvbkV2ZW50TGlzdGVuZXJUeXBl
SWZFbmFibGVkKExpc3RlbmVyVHlwZSk7CiAKKyAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250
cm9sc1RpbWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+Kik7CisKICAgICBpbnQgbV9ndWFyZFJlZkNv
dW50OwogCiAgICAgdm9pZCBzdHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXJGaXJlZChUaW1lcjxE
b2N1bWVudD4qKTsKQEAgLTE1NzAsNiArMTU3NSwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxE
b2N1bWVudD4gbV90ZW1wbGF0ZURvY3VtZW50OwogICAgIERvY3VtZW50KiBtX3RlbXBsYXRlRG9j
dW1lbnRIb3N0OyAvLyBNYW51YWxseSBtYW5hZ2VkIHdlYWtyZWYgKGJhY2twb2ludGVyIGZyb20g
bV90ZW1wbGF0ZURvY3VtZW50KS4KICNlbmRpZgorCisgICAgVGltZXI8RG9jdW1lbnQ+IG1fZGlk
QXNzb2NpYXRlRm9ybUNvbnRyb2xzVGltZXI7CisgICAgSGFzaFNldDxFbGVtZW50Kj4gbV9hc3Nv
Y2lhdGVkRm9ybUNvbnRyb2xzOworCiB9OwogCiBpbmxpbmUgdm9pZCBEb2N1bWVudDo6bm90aWZ5
UmVtb3ZlUGVuZGluZ1NoZWV0SWZOZWVkZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3Jt
QXNzb2NpYXRlZEVsZW1lbnQuY3BwCmluZGV4IGEyMjM1YjI5MDg2NDAyYTBhZWU4NDljNTcwNzJm
ZDE4Y2NiMmU1ZmEuLmVmNTY1MjcxYzk1MWZhMzhjYWJkZDIyMGFhYWQwZTg0MTJkM2Q1ZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAKQEAgLTI1
LDcgKzI1LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGb3JtQXNzb2NpYXRl
ZEVsZW1lbnQuaCIKIAorI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUgIkZvcm1D
b250cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCkBAIC0xNTcsNyArMTU5LDExIEBAIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVtZW50
Ojpmb3JtV2lsbEJlRGVzdHJveWVkKCkKIAogdm9pZCBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OnJl
c2V0Rm9ybU93bmVyKCkKIHsKKyAgICBIVE1MRm9ybUVsZW1lbnQqIGN1cnJlbnRGb3JtID0gbV9m
b3JtOwogICAgIHNldEZvcm0oZmluZEFzc29jaWF0ZWRGb3JtKHRvSFRNTEVsZW1lbnQodGhpcyks
IG1fZm9ybSkpOworICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gdG9IVE1MRWxlbWVudCh0aGlz
KTsgICAgIAorICAgIGlmIChtX2Zvcm0gJiYgbV9mb3JtICE9IGN1cnJlbnRGb3JtICYmIG1fZm9y
bS0+aW5Eb2N1bWVudCgpKQorICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLT5kaWRBc3NvY2lh
dGVGb3JtQ29udHJvbChlbGVtZW50KTsKIH0KIAogdm9pZCBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6
OmZvcm1BdHRyaWJ1dGVDaGFuZ2VkKCkKQEAgLTE2NSw3ICsxNzEsMTEgQEAgdm9pZCBGb3JtQXNz
b2NpYXRlZEVsZW1lbnQ6OmZvcm1BdHRyaWJ1dGVDaGFuZ2VkKCkKICAgICBIVE1MRWxlbWVudCog
ZWxlbWVudCA9IHRvSFRNTEVsZW1lbnQodGhpcyk7CiAgICAgaWYgKCFlbGVtZW50LT5mYXN0SGFz
QXR0cmlidXRlKGZvcm1BdHRyKSkgewogICAgICAgICAvLyBUaGUgZm9ybSBhdHRyaWJ1dGUgcmVt
b3ZlZC4gV2UgbmVlZCB0byByZXNldCBmb3JtIG93bmVyIGhlcmUuCisgICAgICAgIEhUTUxGb3Jt
RWxlbWVudCogY3VycmVudEZvcm0gPSBtX2Zvcm07CiAgICAgICAgIHNldEZvcm0oZWxlbWVudC0+
ZmluZEZvcm1BbmNlc3RvcigpKTsKKyAgICAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSB0b0hU
TUxFbGVtZW50KHRoaXMpOworICAgICAgICBpZiAobV9mb3JtICYmIG1fZm9ybSAhPSBjdXJyZW50
Rm9ybSAmJiBtX2Zvcm0tPmluRG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGVsZW1lbnQtPmRvY3Vt
ZW50KCktPmRpZEFzc29jaWF0ZUZvcm1Db250cm9sKGVsZW1lbnQpOwogICAgICAgICBtX2Zvcm1B
dHRyaWJ1dGVUYXJnZXRPYnNlcnZlciA9IG51bGxwdHI7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
cmVzZXRGb3JtT3duZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFz
c29jaWF0ZWRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxl
bWVudC5oCmluZGV4IDQwZjJiMzZlMTMzZTdjYTEyMTBiODc5NzFlYjAyZDE0OWVhMTUzMzQuLjU4
OTY5MDJjNjcxMDJlMTdmOTY2ZTNkMmI3MDc2NDUxODQyMzU0ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaApAQCAtMjQsNiArMjQsNyBAQAogI2lmbmRl
ZiBGb3JtQXNzb2NpYXRlZEVsZW1lbnRfaAogI2RlZmluZSBGb3JtQXNzb2NpYXRlZEVsZW1lbnRf
aAogCisjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQu
Y3BwCmluZGV4IDk1M2ZlYzZlZDcwMmVhNzdiMTAyNzc2NjBhZmNmYzFlZTgyNjgxN2QuLjQ3YjJi
MzZlZTZjNzNhMDcxNGIxZjZlNmFhYjAwYjg2NGI0M2ZlYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtRWxlbWVudC5jcHAKQEAgLTEzOSw2ICsxMzksOCBAQCBib29sIEhUTUxGb3JtRWxl
bWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYgY29udGV4
dCkKIE5vZGU6Okluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgSFRNTEZvcm1FbGVtZW50Ojpp
bnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSogaW5zZXJ0aW9uUG9pbnQpCiB7CiAgICAgSFRNTEVs
ZW1lbnQ6Omluc2VydGVkSW50byhpbnNlcnRpb25Qb2ludCk7CisgICAgaWYgKGluc2VydGlvblBv
aW50LT5pbkRvY3VtZW50KCkpCisgICAgICAgIHRoaXMtPmRvY3VtZW50KCktPmRpZEFzc29jaWF0
ZUZvcm1Db250cm9sKHRoaXMpOwogICAgIHJldHVybiBJbnNlcnRpb25Eb25lOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggMWUxYTE0YzU2MmY2NTU3YjkwOTAxZThh
YTk5ODg4N2E5NTFkODU5YS4uNWI4M2ZlMDVmM2ZlMTU0YjExMzE1ODA1MDRmOWVhNzRmMWIzMzRj
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMjA4LDYgKzIwOCw5IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdl
YkNvcmU6OlNjcm9sbERpcmVjdGlvbikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAKICAg
ICB2aXJ0dWFsIGJvb2wgaXNFbXB0eUNocm9tZUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KKworICAgIHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoSGFzaFNldDxF
bGVtZW50Kj4mKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdl
cygpIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiBjbGFzcyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50
IDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
CmluZGV4IDVmNmNlMzlhNTE5MDRlYTQ1MzBkNWJiNzNlNTVhMjE4MmZjNTU1NDcuLmRhMDEzNmY0
YWY0OWE3NzI4YTBlMjRmZDUxMjQyMjdhMmVlZjQ0ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaApAQCAtMzgwLDYgKzM4MCw5IEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogUG9ydCBz
aG91bGQgcmV0dXJuIHRydWUgdXNpbmcgaGV1cmlzdGljIGJhc2VkIG9uIHNjcm9sbGFibGUoUmVu
ZGVyQm94KS4KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXV0b3Njcm9sbEZvckRyYWdBbmREcm9w
KFJlbmRlckJveCopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKEhhc2hTZXQ8RWxlbWVudCo+JikgPSAwOworICAgIHZp
cnR1YWwgYm9vbCBzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkgPSAwOworCiBwcm90ZWN0ZWQ6
CiAgICAgdmlydHVhbCB+Q2hyb21lQ2xpZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQXV0b2ZpbGxDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxsQ2xpZW50LmgKaW5kZXggYWE0ZDBhM2RhZWRi
MWM3ZWNiZjY5ZDRjYzQyNjAyMjZjZDA2MzhmMC4uMjIxY2MwNGIxMWY1YjhjMGZiOTBhNjU3YmQ2
ZGI0ODVlMmUxMTM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViQXV0b2ZpbGxDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJBdXRvZmlsbENsaWVudC5oCkBAIC00MCw2ICs0MCw4IEBAIGNsYXNzIFdlYktleWJvYXJkRXZl
bnQ7CiBjbGFzcyBXZWJOb2RlOwogY2xhc3MgV2ViU3RyaW5nOwogCit0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4gY2xhc3MgV2ViVmVjdG9yOworCiBjbGFzcyBXZWJBdXRvZmlsbENsaWVudCB7CiBwdWJs
aWM6CiAgICAgZW51bSB7CkBAIC05Myw2ICs5NSw5IEBAIHB1YmxpYzoKICAgICAvLyBJbmZvcm1z
IHRoZSBjbGllbnQgd2hldGhlciBvciBub3QgYW55IHN1YnNlcXVlbnQgdGV4dCBjaGFuZ2VzIHNo
b3VsZCBiZSBpZ25vcmVkLgogICAgIHZpcnR1YWwgdm9pZCBzZXRJZ25vcmVUZXh0Q2hhbmdlcyhi
b29sIGlnbm9yZSkgeyB9CiAKKyAgICAvLyBUaGVzZSBtZXRob2RzIGFyZSBjYWxsZWQgd2hlbiB0
aGUgZm9ybSBzdHJ1Y3R1cmUgb2YgYSBwYWdlIGNoYW5nZXMKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
QXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNvbnN0IFdlYlZlY3RvcjxXZWJOb2RlKj4mKSB7IH0KKwog
cHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfldlYkF1dG9maWxsQ2xpZW50KCkgeyB9CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCBl
NTI3NmZmY2IzMjY5ZmI1YWQxOWFjNTY0MWRiZDE4MDdkZmY5YzIzLi5jZjI2MzY3NmMwMDY0ZDVl
ZWY3NTkzM2JiMjA5NjhkYzA5ZmMwNmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNzgsNiArNzgsNyBAQAogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQuaCIKICNpbmNs
dWRlICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVkZSAiV2ViQXV0b2ZpbGxDbGll
bnQuaCIKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICNpbmNsdWRlICJXZWJDb2xvckNo
b29zZXIuaCIKICNlbmRpZgpAQCAtMTE3MCw2ICsxMTcxLDI1IEBAIHZvaWQgQ2hyb21lQ2xpZW50
SW1wbDo6YW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKQogfQogI2VuZGlmCiAKK3ZvaWQgQ2hyb21l
Q2xpZW50SW1wbDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKEhhc2hTZXQ8RWxlbWVudCo+JiBl
bGVtZW50cykKK3sKKyAgICBpZiAoIW1fd2ViVmlldy0+YXV0b2ZpbGxDbGllbnQoKSkKKyAgICAg
ICAgcmV0dXJuOworICAgIFdlYlZlY3RvcjxXZWJOb2RlKj4gZWxlbWVudFZlY3Rvcigoc2l6ZV90
KSBlbGVtZW50cy5zaXplKCkpOworICAgIHNpemVfdCBpID0gMDsKKyAgICBIYXNoU2V0PEVsZW1l
bnQqPjo6aXRlcmF0b3IgZW5kID0gZWxlbWVudHMuZW5kKCk7CisgICAgZm9yIChIYXNoU2V0PEVs
ZW1lbnQqPjo6aXRlcmF0b3IgaXQgPSBlbGVtZW50cy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
IHsKKyAgICAgICAgZWxlbWVudFZlY3RvcltpXSA9IG5ldyBXZWJOb2RlKCgqaXQpKTsKKyAgICAg
ICAgKytpOworICAgIH0KKyAgICBtX3dlYlZpZXctPmF1dG9maWxsQ2xpZW50KCktPmRpZEFzc29j
aWF0ZUZvcm1Db250cm9scyhlbGVtZW50VmVjdG9yKTsKK30KKworYm9vbCBDaHJvbWVDbGllbnRJ
bXBsOjpzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KwogI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKIFBhc3NPd25QdHI8TmF2aWdh
dG9yQ29udGVudFV0aWxzQ2xpZW50SW1wbD4gTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50SW1w
bDo6Y3JlYXRlKFdlYlZpZXdJbXBsKiB3ZWJWaWV3KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCmluZGV4IGQ1ZTlhZmYzYWE0M2U3M2JmYjk5M2U5
MDY1N2FmZTJlZmE2ZTIxZjcuLjkyZDhhMzIzZWUzZGQzZGVhZjkxMTQ5MTZlNjA4MDVmYTJmMmFj
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudElt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgK
QEAgLTIzMyw2ICsyMzMsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzUG9pbnRlckxv
Y2tlZCgpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRy
b2xzKEhhc2hTZXQ8V2ViQ29yZTo6RWxlbWVudCo+Jik7CisgICAgdmlydHVhbCBib29sIHNob3Vs
ZE5vdGlmeU9uRm9ybUNoYW5nZXMoKTsKKwogcHJpdmF0ZToKICAgICBXZWJOYXZpZ2F0aW9uUG9s
aWN5IGdldE5hdmlnYXRpb25Qb2xpY3koKTsKICAgICB2b2lkIGdldFBvcHVwTWVudUluZm8oV2Vi
Q29yZTo6UG9wdXBDb250YWluZXIqLCBXZWJQb3B1cE1lbnVJbmZvKik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191546</attachid>
            <date>2013-03-05 13:09:55 -0800</date>
            <delta_ts>2013-03-05 17:26:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110375-20130305130601.patch</filename>
            <type>text/plain</type>
            <size>12902</size>
            <attacher name="Dane Walllinga">dgwallinga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM5Y2ViODg4MjZhYmQ5
YzA1YWJmMDM5MGQ1YTY1ZDg1ZDU1MjZmMi4uODQwZTY0MTBlNDI4YTVjYmQxOGZmY2JhM2NiYTli
OWViN2VkYjEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEzLTAyLTI2ICBEYW5l
IFdhbGxpbmdhICA8ZGd3YWxsaW5nYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSG9vayBGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQsIEhUTUxGb3JtRWxlbWVudCB0byBub3RpZnkgRWRpdG9yQ2xpZW50
IG9mIGZvcm0gY2hhbmdlcyBhZnRlciBhIHBhZ2UgaGFzIGxvYWRlZC4KKyAgICAgICAgV2lsbCBi
ZSB1c2VkIHRvIGFkZCBhdXRvZmlsbCBzdXBwb3J0IGZvciBhamF4LXkgd2VicGFnZXMuIGUuZyBp
ZiB3aGlsZSBmaWxsaW5nIG91dCBhIGZvcm0sIG5ldyBmaWVsZHMKKyAgICAgICAgYXJlIGR5bmFt
aWNhbGx5IGNyZWF0ZWQsIGF1dG9maWxsIGNhbiBrbm93IHRvIHJlLXF1ZXJ5IHRoZSBhdXRvZmls
bCBzZXJ2ZXIgYW5kIGtlZXAgZ29pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTAzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbCk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJv
bHNUaW1lckZpcmVkKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKERvY3Vt
ZW50KToKKyAgICAgICAgYWRkZWQgbWV0aG9kIGRpZEFzc29jaWF0ZUZvcm1Db250cm9sLCB3aGlj
aCBiYXRjaGVzIGZvcm0gY2hhbmdlcworICAgICAgICBhbmQgY2FsbHMgb3V0IHRvIENocm9tZUNs
aWVudCBvbiBhIHRpbWVyLgorICAgICAgICAqIGh0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6cmVzZXRGb3JtT3du
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmli
dXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBodG1sL0Zvcm1Bc3Nv
Y2lhdGVkRWxlbWVudC5oOgorICAgICAgICAoRm9ybUFzc29jaWF0ZWRFbGVtZW50KToKKyAgICAg
ICAgYWRkIGNhbGxzIHRvIERvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbCB3aGVuIGZv
cm0gY2hhbmdlcworICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50Lmg6CisgICAgICAgIGFkZCBjYWxs
IHRvIERvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbAorICAgICAgICAqIGxvYWRlci9F
bXB0eUNsaWVudHMuaDoKKyAgICAgICAgKEVtcHR5Q2hyb21lQ2xpZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMpOgorICAg
ICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnNob3VsZE5vdGlmeU9uRm9ybUNoYW5n
ZXMpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChDaHJvbWVDbGll
bnQpOgorICAgICAgICBhZGQgbmV3IG1ldGhvZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMKKwog
MjAxMy0wMi0xOSAgRW1pbCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
Q2hhbmdlIGNvbXB1dGVTdGlja3lQb3NpdGlvbkNvbnN0cmFpbnRzIHRvIHVzZSBMYXlvdXRCb3hF
eHRlbnQgZm9yIG1hcmdpbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggODY2YjZiZjMw
MmFkZjAzYWUwYThlYmMzYmVjNmIzMDJiM2E3NWZiOC4uOGUzOTgwMjI3MDRhOTJiODRkY2Q3YWFk
MGRlNTM2Yzc2NDcyMTc2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MyBAQAorMjAxMy0wMi0yNiAgRGFuZSBXYWxsaW5nYSAgPGRnd2FsbGluZ2FAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIEltcGxlbWVudCBmb3JtIGFzc29jaWF0aW9uIG1ldGhvZHMgb2YgQ2hyb21l
Q2xpZW50CisgICAgICAgIHRvIGluZm9ybSBhdXRvZmlsbCBvZiBmb3JtIGNoYW5nZXMgYWZ0ZXIg
YSBwYWdlIGhhcyBsb2FkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMDM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogcHVibGljL1dlYkF1dG9maWxsQ2xpZW50Lmg6CisgICAgICAgIChXZWJBdXRv
ZmlsbENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9maWxsQ2xpZW50OjpkaWRBc3Nv
Y2lhdGVJbnB1dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9maWxsQ2xpZW50OjpkaWRBZGRG
b3JtKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b2ZpbGxDbGllbnQ6OmRpZEFzc29jaWF0ZUZv
cm1Db250cm9scyk6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMpOgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6c2hv
dWxkTm90aWZ5T25Gb3JtQ2hhbmdlcyk6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwu
aDoKKyAgICAgICAgKENocm9tZUNsaWVudEltcGwpOgorCiAyMDEzLTAyLTE5ICBBZHJpZW5uZSBX
YWxrZXIgIDxlbm5lQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTQzMzgyIGFuZCByMTQzNDAxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNTVi
NGM5ODI0YWY4YzE3N2ExY2JlN2FmZTc5NzY5NDEwOGNlZjI2ZC4uYTQwZTNmNTI5MjNmMDYwOGE5
OTU3ZGZmNmFiNGFlZDk4NWFlMzM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00ODAs
NiArNDgwLDcgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYg
dXJsLCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKQogI2lmIEVOQUJMRShURU1QTEFURV9FTEVN
RU5UKQogICAgICwgbV90ZW1wbGF0ZURvY3VtZW50SG9zdCgwKQogI2VuZGlmCisgICAgLCBtX2Rp
ZEFzc29jaWF0ZUZvcm1Db250cm9sc1RpbWVyKHRoaXMsICZEb2N1bWVudDo6ZGlkQXNzb2NpYXRl
Rm9ybUNvbnRyb2xzVGltZXJGaXJlZCkKIHsKICAgICBzZXRUcmVlU2NvcGUodGhpcyk7CiAKQEAg
LTYwNDgsNCArNjA0OSwyMCBAQCBEb2N1bWVudCogRG9jdW1lbnQ6OmVuc3VyZVRlbXBsYXRlRG9j
dW1lbnQoKQogfQogI2VuZGlmCiAKK3ZvaWQgRG9jdW1lbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250
cm9sKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFmcmFtZSgpIHx8ICFmcmFtZSgpLT5w
YWdlKCktPmNocm9tZSgpLT5jbGllbnQoKS0+c2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcygpKQor
ICAgICAgICByZXR1cm47CisgICAgbV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzLmFkZChlbGVtZW50
KTsKKyAgICBtX2RpZEFzc29jaWF0ZUZvcm1Db250cm9sc1RpbWVyLnN0YXJ0T25lU2hvdCgwLjEp
OworfQorCit2b2lkIERvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lckZpcmVk
KFRpbWVyPERvY3VtZW50PiopCit7CisgICAgaWYgKCF0aGlzLT5mcmFtZSgpKQorICAgICAgICBy
ZXR1cm47CisgICAgdGhpcy0+ZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPmRp
ZEFzc29jaWF0ZUZvcm1Db250cm9scyhtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHMpOworICAgIG1f
YXNzb2NpYXRlZEZvcm1Db250cm9scy5jbGVhcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDEyNjQzOGQ3MGVmMDE2MWJjMmFmZThmY2VhNzY4
YTRiYzg3MDM3YWIuLmUxZDU5ZmY1ZjQ5NTc1YzU5OTE2NmNmMjA4MzFkMjk5NDNhMzIwODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAiVmlld3BvcnRB
cmd1bWVudHMuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRml4ZWRB
cnJheS5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KQEAgLTEyMDIsNiArMTIwMyw4IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudCogdGVtcGxhdGVE
b2N1bWVudEhvc3QoKSB7IHJldHVybiBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0OyB9CiAjZW5kaWYK
IAorICAgIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2woRWxlbWVudCopOworCiAgICAgdmly
dHVhbCB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0g
MCk7CiAKICAgICB2aXJ0dWFsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4oKSBjb25z
dCBPVkVSUklERTsKQEAgLTEyODYsNiArMTI4OSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRM
aXN0ZW5lclR5cGUoTGlzdGVuZXJUeXBlIGxpc3RlbmVyVHlwZSkgeyBtX2xpc3RlbmVyVHlwZXMg
fD0gbGlzdGVuZXJUeXBlOyB9CiAgICAgdm9pZCBhZGRNdXRhdGlvbkV2ZW50TGlzdGVuZXJUeXBl
SWZFbmFibGVkKExpc3RlbmVyVHlwZSk7CiAKKyAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250
cm9sc1RpbWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+Kik7CisKICAgICBpbnQgbV9ndWFyZFJlZkNv
dW50OwogCiAgICAgdm9pZCBzdHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXJGaXJlZChUaW1lcjxE
b2N1bWVudD4qKTsKQEAgLTE1NzAsNiArMTU3NSwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxE
b2N1bWVudD4gbV90ZW1wbGF0ZURvY3VtZW50OwogICAgIERvY3VtZW50KiBtX3RlbXBsYXRlRG9j
dW1lbnRIb3N0OyAvLyBNYW51YWxseSBtYW5hZ2VkIHdlYWtyZWYgKGJhY2twb2ludGVyIGZyb20g
bV90ZW1wbGF0ZURvY3VtZW50KS4KICNlbmRpZgorCisgICAgVGltZXI8RG9jdW1lbnQ+IG1fZGlk
QXNzb2NpYXRlRm9ybUNvbnRyb2xzVGltZXI7CisgICAgSGFzaFNldDxFbGVtZW50Kj4gbV9hc3Nv
Y2lhdGVkRm9ybUNvbnRyb2xzOworCiB9OwogCiBpbmxpbmUgdm9pZCBEb2N1bWVudDo6bm90aWZ5
UmVtb3ZlUGVuZGluZ1NoZWV0SWZOZWVkZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3Jt
QXNzb2NpYXRlZEVsZW1lbnQuY3BwCmluZGV4IGEyMjM1YjI5MDg2NDAyYTBhZWU4NDljNTcwNzJm
ZDE4Y2NiMmU1ZmEuLmVmNTY1MjcxYzk1MWZhMzhjYWJkZDIyMGFhYWQwZTg0MTJkM2Q1ZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAKQEAgLTI1
LDcgKzI1LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGb3JtQXNzb2NpYXRl
ZEVsZW1lbnQuaCIKIAorI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUgIkZvcm1D
b250cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCkBAIC0xNTcsNyArMTU5LDExIEBAIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVtZW50
Ojpmb3JtV2lsbEJlRGVzdHJveWVkKCkKIAogdm9pZCBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OnJl
c2V0Rm9ybU93bmVyKCkKIHsKKyAgICBIVE1MRm9ybUVsZW1lbnQqIGN1cnJlbnRGb3JtID0gbV9m
b3JtOwogICAgIHNldEZvcm0oZmluZEFzc29jaWF0ZWRGb3JtKHRvSFRNTEVsZW1lbnQodGhpcyks
IG1fZm9ybSkpOworICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gdG9IVE1MRWxlbWVudCh0aGlz
KTsgICAgIAorICAgIGlmIChtX2Zvcm0gJiYgbV9mb3JtICE9IGN1cnJlbnRGb3JtICYmIG1fZm9y
bS0+aW5Eb2N1bWVudCgpKQorICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLT5kaWRBc3NvY2lh
dGVGb3JtQ29udHJvbChlbGVtZW50KTsKIH0KIAogdm9pZCBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6
OmZvcm1BdHRyaWJ1dGVDaGFuZ2VkKCkKQEAgLTE2NSw3ICsxNzEsMTEgQEAgdm9pZCBGb3JtQXNz
b2NpYXRlZEVsZW1lbnQ6OmZvcm1BdHRyaWJ1dGVDaGFuZ2VkKCkKICAgICBIVE1MRWxlbWVudCog
ZWxlbWVudCA9IHRvSFRNTEVsZW1lbnQodGhpcyk7CiAgICAgaWYgKCFlbGVtZW50LT5mYXN0SGFz
QXR0cmlidXRlKGZvcm1BdHRyKSkgewogICAgICAgICAvLyBUaGUgZm9ybSBhdHRyaWJ1dGUgcmVt
b3ZlZC4gV2UgbmVlZCB0byByZXNldCBmb3JtIG93bmVyIGhlcmUuCisgICAgICAgIEhUTUxGb3Jt
RWxlbWVudCogY3VycmVudEZvcm0gPSBtX2Zvcm07CiAgICAgICAgIHNldEZvcm0oZWxlbWVudC0+
ZmluZEZvcm1BbmNlc3RvcigpKTsKKyAgICAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSB0b0hU
TUxFbGVtZW50KHRoaXMpOworICAgICAgICBpZiAobV9mb3JtICYmIG1fZm9ybSAhPSBjdXJyZW50
Rm9ybSAmJiBtX2Zvcm0tPmluRG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGVsZW1lbnQtPmRvY3Vt
ZW50KCktPmRpZEFzc29jaWF0ZUZvcm1Db250cm9sKGVsZW1lbnQpOwogICAgICAgICBtX2Zvcm1B
dHRyaWJ1dGVUYXJnZXRPYnNlcnZlciA9IG51bGxwdHI7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
cmVzZXRGb3JtT3duZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFz
c29jaWF0ZWRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxl
bWVudC5oCmluZGV4IDQwZjJiMzZlMTMzZTdjYTEyMTBiODc5NzFlYjAyZDE0OWVhMTUzMzQuLjU4
OTY5MDJjNjcxMDJlMTdmOTY2ZTNkMmI3MDc2NDUxODQyMzU0ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaApAQCAtMjQsNiArMjQsNyBAQAogI2lmbmRl
ZiBGb3JtQXNzb2NpYXRlZEVsZW1lbnRfaAogI2RlZmluZSBGb3JtQXNzb2NpYXRlZEVsZW1lbnRf
aAogCisjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQu
Y3BwCmluZGV4IDk1M2ZlYzZlZDcwMmVhNzdiMTAyNzc2NjBhZmNmYzFlZTgyNjgxN2QuLjQ3YjJi
MzZlZTZjNzNhMDcxNGIxZjZlNmFhYjAwYjg2NGI0M2ZlYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtRWxlbWVudC5jcHAKQEAgLTEzOSw2ICsxMzksOCBAQCBib29sIEhUTUxGb3JtRWxl
bWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYgY29udGV4
dCkKIE5vZGU6Okluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgSFRNTEZvcm1FbGVtZW50Ojpp
bnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSogaW5zZXJ0aW9uUG9pbnQpCiB7CiAgICAgSFRNTEVs
ZW1lbnQ6Omluc2VydGVkSW50byhpbnNlcnRpb25Qb2ludCk7CisgICAgaWYgKGluc2VydGlvblBv
aW50LT5pbkRvY3VtZW50KCkpCisgICAgICAgIHRoaXMtPmRvY3VtZW50KCktPmRpZEFzc29jaWF0
ZUZvcm1Db250cm9sKHRoaXMpOwogICAgIHJldHVybiBJbnNlcnRpb25Eb25lOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggMWUxYTE0YzU2MmY2NTU3YjkwOTAxZThh
YTk5ODg4N2E5NTFkODU5YS4uNWI4M2ZlMDVmM2ZlMTU0YjExMzE1ODA1MDRmOWVhNzRmMWIzMzRj
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMjA4LDYgKzIwOCw5IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdl
YkNvcmU6OlNjcm9sbERpcmVjdGlvbikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAKICAg
ICB2aXJ0dWFsIGJvb2wgaXNFbXB0eUNocm9tZUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KKworICAgIHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoSGFzaFNldDxF
bGVtZW50Kj4mKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdl
cygpIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiBjbGFzcyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50
IDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
CmluZGV4IDVmNmNlMzlhNTE5MDRlYTQ1MzBkNWJiNzNlNTVhMjE4MmZjNTU1NDcuLjk1MmQxYWNl
YWU3MjQ3YzM5NGI3NTZlMTgwMzhmYjgyYTUzNmYxY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaApAQCAtMzgwLDYgKzM4MCw5IEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogUG9ydCBz
aG91bGQgcmV0dXJuIHRydWUgdXNpbmcgaGV1cmlzdGljIGJhc2VkIG9uIHNjcm9sbGFibGUoUmVu
ZGVyQm94KS4KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXV0b3Njcm9sbEZvckRyYWdBbmREcm9w
KFJlbmRlckJveCopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKEhhc2hTZXQ8RWxlbWVudCo+JikgeyB9OworICAgIHZp
cnR1YWwgYm9vbCBzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkgPSB7IHJldHVybiBmYWxzZTsg
fTsKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfkNocm9tZUNsaWVudCgpIHsgfQogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxsQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBdXRvZmlsbENsaWVudC5oCmlu
ZGV4IGFhNGQwYTNkYWVkYjFjN2VjYmY2OWQ0Y2M0MjYwMjI2Y2QwNjM4ZjAuLjIyMWNjMDRiMTFm
NWI4YzBmYjkwYTY1N2JkNmRiNDg1ZTJlMTEzNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxsQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViQXV0b2ZpbGxDbGllbnQuaApAQCAtNDAsNiArNDAsOCBAQCBjbGFz
cyBXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2ViTm9kZTsKIGNsYXNzIFdlYlN0cmluZzsKIAor
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYlZlY3RvcjsKKwogY2xhc3MgV2ViQXV0b2Zp
bGxDbGllbnQgewogcHVibGljOgogICAgIGVudW0gewpAQCAtOTMsNiArOTUsOSBAQCBwdWJsaWM6
CiAgICAgLy8gSW5mb3JtcyB0aGUgY2xpZW50IHdoZXRoZXIgb3Igbm90IGFueSBzdWJzZXF1ZW50
IHRleHQgY2hhbmdlcyBzaG91bGQgYmUgaWdub3JlZC4KICAgICB2aXJ0dWFsIHZvaWQgc2V0SWdu
b3JlVGV4dENoYW5nZXMoYm9vbCBpZ25vcmUpIHsgfQogCisgICAgLy8gVGhlc2UgbWV0aG9kcyBh
cmUgY2FsbGVkIHdoZW4gdGhlIGZvcm0gc3RydWN0dXJlIG9mIGEgcGFnZSBjaGFuZ2VzCisgICAg
dmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhjb25zdCBXZWJWZWN0b3I8V2Vi
Tm9kZSo+JikgeyB9CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5XZWJBdXRvZmlsbENsaWVu
dCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5jcHAKaW5kZXggZTUyNzZmZmNiMzI2OWZiNWFkMTlhYzU2NDFkYmQxODA3ZGZmOWMyMy4u
Y2YyNjM2NzZjMDA2NGQ1ZWVmNzU5MzNiYjIwOTY4ZGMwOWZjMDZjYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTc4LDYgKzc4LDcg
QEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHRGaWVsZERlY29yYXRpb25F
bGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eU9iamVjdC5oIgorI2luY2x1ZGUg
IldlYkF1dG9maWxsQ2xpZW50LmgiCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAjaW5j
bHVkZSAiV2ViQ29sb3JDaG9vc2VyLmgiCiAjZW5kaWYKQEAgLTExNzAsNiArMTE3MSwyNSBAQCB2
b2lkIENocm9tZUNsaWVudEltcGw6OmFubm90YXRlZFJlZ2lvbnNDaGFuZ2VkKCkKIH0KICNlbmRp
ZgogCit2b2lkIENocm9tZUNsaWVudEltcGw6OmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhIYXNo
U2V0PEVsZW1lbnQqPiYgZWxlbWVudHMpCit7CisgICAgaWYgKCFtX3dlYlZpZXctPmF1dG9maWxs
Q2xpZW50KCkpCisgICAgICAgIHJldHVybjsKKyAgICBXZWJWZWN0b3I8V2ViTm9kZSo+IGVsZW1l
bnRWZWN0b3IoKHNpemVfdCkgZWxlbWVudHMuc2l6ZSgpKTsKKyAgICBzaXplX3QgaSA9IDA7Cisg
ICAgSGFzaFNldDxFbGVtZW50Kj46Oml0ZXJhdG9yIGVuZCA9IGVsZW1lbnRzLmVuZCgpOworICAg
IGZvciAoSGFzaFNldDxFbGVtZW50Kj46Oml0ZXJhdG9yIGl0ID0gZWxlbWVudHMuYmVnaW4oKTsg
aXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIGVsZW1lbnRWZWN0b3JbaV0gPSBuZXcgV2ViTm9k
ZSgoKml0KSk7CisgICAgICAgICsraTsKKyAgICB9CisgICAgbV93ZWJWaWV3LT5hdXRvZmlsbENs
aWVudCgpLT5kaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoZWxlbWVudFZlY3Rvcik7Cit9CisKK2Jv
b2wgQ2hyb21lQ2xpZW50SW1wbDo6c2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcygpCit7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKICNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCiBQ
YXNzT3duUHRyPE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudEltcGw+IE5hdmlnYXRvckNvbnRl
bnRVdGlsc0NsaWVudEltcGw6OmNyZWF0ZShXZWJWaWV3SW1wbCogd2ViVmlldykKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAppbmRleCBkNWU5YWZm
M2FhNDNlNzNiZmI5OTNlOTA2NTdhZmUyZWZhNmUyMWY3Li5kMmZiNTA2OGFiNDExZDJlYzI1ZWE1
OTVhY2I2MWI0ODliMzNiMGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21lQ2xpZW50SW1wbC5oCkBAIC0yMzMsNiArMjMzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBpc1BvaW50ZXJMb2NrZWQoKTsKICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lkIGRpZEFz
c29jaWF0ZUZvcm1Db250cm9scyhIYXNoU2V0PFdlYkNvcmU6OkVsZW1lbnQqPiYpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgYm9vbCBzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkgT1ZFUlJJREU7
CisKIHByaXZhdGU6CiAgICAgV2ViTmF2aWdhdGlvblBvbGljeSBnZXROYXZpZ2F0aW9uUG9saWN5
KCk7CiAgICAgdm9pZCBnZXRQb3B1cE1lbnVJbmZvKFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyKiwg
V2ViUG9wdXBNZW51SW5mbyopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191613</attachid>
            <date>2013-03-05 17:22:07 -0800</date>
            <delta_ts>2013-03-05 18:32:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110375-20130305171813.patch</filename>
            <type>text/plain</type>
            <size>12346</size>
            <attacher name="Dane Walllinga">dgwallinga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM5Y2ViODg4MjZhYmQ5
YzA1YWJmMDM5MGQ1YTY1ZDg1ZDU1MjZmMi4uM2JiNDUwMGM5N2QzMjUyODFiZWM1OGVjNDdhOTQ1
MDY2MTVmM2MxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEzLTAyLTI2ICBEYW5l
IFdhbGxpbmdhICA8ZGd3YWxsaW5nYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSG9vayBGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQsIEhUTUxGb3JtRWxlbWVudCB0byBub3RpZnkgRWRpdG9yQ2xpZW50
IG9mIGZvcm0gY2hhbmdlcyBhZnRlciBhIHBhZ2UgaGFzIGxvYWRlZC4KKyAgICAgICAgV2lsbCBi
ZSB1c2VkIHRvIGFkZCBhdXRvZmlsbCBzdXBwb3J0IGZvciBhamF4LXkgd2VicGFnZXMuIGUuZyBp
ZiB3aGlsZSBmaWxsaW5nIG91dCBhIGZvcm0sIG5ldyBmaWVsZHMKKyAgICAgICAgYXJlIGR5bmFt
aWNhbGx5IGNyZWF0ZWQsIGF1dG9maWxsIGNhbiBrbm93IHRvIHJlLXF1ZXJ5IHRoZSBhdXRvZmls
bCBzZXJ2ZXIgYW5kIGtlZXAgZ29pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTAzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbCk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJv
bHNUaW1lckZpcmVkKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKERvY3Vt
ZW50KToKKyAgICAgICAgYWRkZWQgbWV0aG9kIGRpZEFzc29jaWF0ZUZvcm1Db250cm9sLCB3aGlj
aCBiYXRjaGVzIGZvcm0gY2hhbmdlcworICAgICAgICBhbmQgY2FsbHMgb3V0IHRvIENocm9tZUNs
aWVudCBvbiBhIHRpbWVyLgorICAgICAgICAqIGh0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6cmVzZXRGb3JtT3du
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmli
dXRlQ2hhbmdlZCk6CisgICAgICAgIGFkZCBjYWxscyB0byBEb2N1bWVudDo6ZGlkQXNzb2NpYXRl
Rm9ybUNvbnRyb2wgd2hlbiBmb3JtIGNoYW5nZXMKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6Omluc2VydGVkSW50
byk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5o
OgorICAgICAgICBhZGQgY2FsbCB0byBEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2wK
KyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChFbXB0eUNocm9tZUNs
aWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6ZGlkQXNzb2NpYXRl
Rm9ybUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpzaG91
bGROb3RpZnlPbkZvcm1DaGFuZ2VzKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgor
ICAgICAgICAoQ2hyb21lQ2xpZW50KToKKyAgICAgICAgYWRkIG5ldyBtZXRob2QgZGlkQXNzb2Np
YXRlRm9ybUNvbnRyb2xzCisKIDIwMTMtMDItMTkgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIENoYW5nZSBjb21wdXRlU3RpY2t5UG9zaXRpb25Db25zdHJhaW50
cyB0byB1c2UgTGF5b3V0Qm94RXh0ZW50IGZvciBtYXJnaW5zCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IDg2NmI2YmYzMDJhZGYwM2FlMGE4ZWJjM2JlYzZiMzAyYjNhNzVmYjguLjhlMzk4
MDIyNzA0YTkyYjg0ZGNkN2FhZDBkZTUzNmM3NjQ3MjE3NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTMtMDItMjYgIERhbmUgV2FsbGluZ2EgIDxkZ3dh
bGxpbmdhQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgZm9ybSBhc3NvY2lhdGlv
biBtZXRob2RzIG9mIENocm9tZUNsaWVudAorICAgICAgICB0byBpbmZvcm0gYXV0b2ZpbGwgb2Yg
Zm9ybSBjaGFuZ2VzIGFmdGVyIGEgcGFnZSBoYXMgbG9hZGVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzNzUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJBdXRvZmlsbENsaWVudC5o
OgorICAgICAgICAoV2ViQXV0b2ZpbGxDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRv
ZmlsbENsaWVudDo6ZGlkQXNzb2NpYXRlSW5wdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRv
ZmlsbENsaWVudDo6ZGlkQWRkRm9ybSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9maWxsQ2xp
ZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMpOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGll
bnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6ZGlkQXNzb2Np
YXRlRm9ybUNvbnRyb2xzKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OkNo
cm9tZUNsaWVudEltcGw6OnNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMpOgorICAgICAgICAqIHNy
Yy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAgIChDaHJvbWVDbGllbnRJbXBsKToKKwogMjAx
My0wMi0xOSAgQWRyaWVubmUgV2Fsa2VyICA8ZW5uZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0MzM4MiBhbmQgcjE0MzQwMS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCmluZGV4IDU1YjRjOTgyNGFmOGMxNzdhMWNiZTdhZmU3OTc2OTQxMDhjZWYyNmQu
LjJjMjg5MmU2YTVlNWQ0MDk5OTMxNGNhNmRlZWNhNDNhODU3ZWY1Y2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcApAQCAtNDgwLDYgKzQ4MCw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSog
ZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICNpZiBF
TkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKICAgICAsIG1fdGVtcGxhdGVEb2N1bWVudEhvc3QoMCkK
ICNlbmRpZgorICAgICwgbV9kaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lcih0aGlzLCAmRG9j
dW1lbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250cm9sc1RpbWVyRmlyZWQpCiB7CiAgICAgc2V0VHJl
ZVNjb3BlKHRoaXMpOwogCkBAIC02MDQ4LDQgKzYwNDksMjAgQEAgRG9jdW1lbnQqIERvY3VtZW50
OjplbnN1cmVUZW1wbGF0ZURvY3VtZW50KCkKIH0KICNlbmRpZgogCit2b2lkIERvY3VtZW50Ojpk
aWRBc3NvY2lhdGVGb3JtQ29udHJvbChFbGVtZW50KiBlbGVtZW50KQoreworICAgIGlmICghZnJh
bWUoKSB8fCAhZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPnNob3VsZE5vdGlm
eU9uRm9ybUNoYW5nZXMoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fYXNzb2NpYXRlZEZvcm1D
b250cm9scy5hZGQoZWxlbWVudCk7CisgICAgbV9kaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUaW1l
ci5zdGFydE9uZVNob3QoMCk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OmRpZEFzc29jaWF0ZUZvcm1D
b250cm9sc1RpbWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+KikKK3sKKyAgICBpZiAoIXRoaXMtPmZy
YW1lKCkpCisgICAgICAgIHJldHVybjsKKyAgICB0aGlzLT5mcmFtZSgpLT5wYWdlKCktPmNocm9t
ZSgpLT5jbGllbnQoKS0+ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKG1fYXNzb2NpYXRlZEZvcm1D
b250cm9scyk7CisgICAgbV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzLmNsZWFyKCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMTI2NDM4ZDcwZWYw
MTYxYmMyYWZlOGZjZWE3NjhhNGJjODcwMzdhYi4uZTFkNTlmZjVmNDk1NzVjNTk5MTY2Y2YyMDgz
MWQyOTk0M2EzMjA4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTUyLDYgKzUyLDcgQEAKICNp
bmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9GaXhlZEFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtMTIwMiw2ICsxMjAzLDggQEAgcHVibGljOgogICAgIERv
Y3VtZW50KiB0ZW1wbGF0ZURvY3VtZW50SG9zdCgpIHsgcmV0dXJuIG1fdGVtcGxhdGVEb2N1bWVu
dEhvc3Q7IH0KICNlbmRpZgogCisgICAgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbChFbGVt
ZW50Kik7CisKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVx
dWVzdElkZW50aWZpZXIgPSAwKTsKIAogICAgIHZpcnR1YWwgY29uc3QgU2VjdXJpdHlPcmlnaW4q
IHRvcE9yaWdpbigpIGNvbnN0IE9WRVJSSURFOwpAQCAtMTI4Niw2ICsxMjg5LDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIGFkZExpc3RlbmVyVHlwZShMaXN0ZW5lclR5cGUgbGlzdGVuZXJUeXBlKSB7
IG1fbGlzdGVuZXJUeXBlcyB8PSBsaXN0ZW5lclR5cGU7IH0KICAgICB2b2lkIGFkZE11dGF0aW9u
RXZlbnRMaXN0ZW5lclR5cGVJZkVuYWJsZWQoTGlzdGVuZXJUeXBlKTsKIAorICAgIHZvaWQgZGlk
QXNzb2NpYXRlRm9ybUNvbnRyb2xzVGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4qKTsKKwogICAg
IGludCBtX2d1YXJkUmVmQ291bnQ7CiAKICAgICB2b2lkIHN0eWxlUmVzb2x2ZXJUaHJvd2F3YXlU
aW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopOwpAQCAtMTU3MCw2ICsxNTc1LDEwIEBAIHByaXZh
dGU6CiAgICAgUmVmUHRyPERvY3VtZW50PiBtX3RlbXBsYXRlRG9jdW1lbnQ7CiAgICAgRG9jdW1l
bnQqIG1fdGVtcGxhdGVEb2N1bWVudEhvc3Q7IC8vIE1hbnVhbGx5IG1hbmFnZWQgd2Vha3JlZiAo
YmFja3BvaW50ZXIgZnJvbSBtX3RlbXBsYXRlRG9jdW1lbnQpLgogI2VuZGlmCisKKyAgICBUaW1l
cjxEb2N1bWVudD4gbV9kaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lcjsKKyAgICBIYXNoU2V0
PEVsZW1lbnQqPiBtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHM7CisKIH07CiAKIGlubGluZSB2b2lk
IERvY3VtZW50Ojpub3RpZnlSZW1vdmVQZW5kaW5nU2hlZXRJZk5lZWRlZCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAKaW5kZXggYTIyMzViMjkwODY0
MDJhMGFlZTg0OWM1NzA3MmZkMThjY2IyZTVmYS4uZWY1NjUyNzFjOTUxZmEzOGNhYmRkMjIwYWFh
ZDBlODQxMmQzZDVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2Np
YXRlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRF
bGVtZW50LmNwcApAQCAtMjUsNyArMjUsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkZvcm1Bc3NvY2lhdGVkRWxlbWVudC5oIgogCisjaW5jbHVkZSAiRWRpdG9yQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiRm9ybUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTE1Nyw3ICsxNTksMTEgQEAgdm9pZCBGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm1XaWxsQmVEZXN0cm95ZWQoKQogCiB2b2lkIEZvcm1Bc3Nv
Y2lhdGVkRWxlbWVudDo6cmVzZXRGb3JtT3duZXIoKQogeworICAgIEhUTUxGb3JtRWxlbWVudCog
Y3VycmVudEZvcm0gPSBtX2Zvcm07CiAgICAgc2V0Rm9ybShmaW5kQXNzb2NpYXRlZEZvcm0odG9I
VE1MRWxlbWVudCh0aGlzKSwgbV9mb3JtKSk7CisgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSB0
b0hUTUxFbGVtZW50KHRoaXMpOyAgICAgCisgICAgaWYgKG1fZm9ybSAmJiBtX2Zvcm0gIT0gY3Vy
cmVudEZvcm0gJiYgbV9mb3JtLT5pbkRvY3VtZW50KCkpCisgICAgICAgIGVsZW1lbnQtPmRvY3Vt
ZW50KCktPmRpZEFzc29jaWF0ZUZvcm1Db250cm9sKGVsZW1lbnQpOwogfQogCiB2b2lkIEZvcm1B
c3NvY2lhdGVkRWxlbWVudDo6Zm9ybUF0dHJpYnV0ZUNoYW5nZWQoKQpAQCAtMTY1LDcgKzE3MSwx
MSBAQCB2b2lkIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybUF0dHJpYnV0ZUNoYW5nZWQoKQog
ICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gdG9IVE1MRWxlbWVudCh0aGlzKTsKICAgICBpZiAo
IWVsZW1lbnQtPmZhc3RIYXNBdHRyaWJ1dGUoZm9ybUF0dHIpKSB7CiAgICAgICAgIC8vIFRoZSBm
b3JtIGF0dHJpYnV0ZSByZW1vdmVkLiBXZSBuZWVkIHRvIHJlc2V0IGZvcm0gb3duZXIgaGVyZS4K
KyAgICAgICAgSFRNTEZvcm1FbGVtZW50KiBjdXJyZW50Rm9ybSA9IG1fZm9ybTsKICAgICAgICAg
c2V0Rm9ybShlbGVtZW50LT5maW5kRm9ybUFuY2VzdG9yKCkpOworICAgICAgICBIVE1MRWxlbWVu
dCogZWxlbWVudCA9IHRvSFRNTEVsZW1lbnQodGhpcyk7CisgICAgICAgIGlmIChtX2Zvcm0gJiYg
bV9mb3JtICE9IGN1cnJlbnRGb3JtICYmIG1fZm9ybS0+aW5Eb2N1bWVudCgpKQorICAgICAgICAg
ICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2woZWxlbWVudCk7
CiAgICAgICAgIG1fZm9ybUF0dHJpYnV0ZVRhcmdldE9ic2VydmVyID0gbnVsbHB0cjsKICAgICB9
IGVsc2UgewogICAgICAgICByZXNldEZvcm1Pd25lcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUVsZW1lbnQuY3BwCmluZGV4IDk1M2ZlYzZlZDcwMmVhNzdiMTAyNzc2NjBhZmNmYzFlZTgy
NjgxN2QuLjQ3YjJiMzZlZTZjNzNhMDcxNGIxZjZlNmFhYjAwYjg2NGI0M2ZlYmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKQEAgLTEzOSw2ICsxMzksOCBAQCBib29s
IEhUTUxGb3JtRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29u
dGV4dCYgY29udGV4dCkKIE5vZGU6Okluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgSFRNTEZv
cm1FbGVtZW50OjppbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSogaW5zZXJ0aW9uUG9pbnQpCiB7
CiAgICAgSFRNTEVsZW1lbnQ6Omluc2VydGVkSW50byhpbnNlcnRpb25Qb2ludCk7CisgICAgaWYg
KGluc2VydGlvblBvaW50LT5pbkRvY3VtZW50KCkpCisgICAgICAgIHRoaXMtPmRvY3VtZW50KCkt
PmRpZEFzc29jaWF0ZUZvcm1Db250cm9sKHRoaXMpOwogICAgIHJldHVybiBJbnNlcnRpb25Eb25l
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggMWUxYTE0YzU2MmY2
NTU3YjkwOTAxZThhYTk5ODg4N2E5NTFkODU5YS4uNWI4M2ZlMDVmM2ZlMTU0YjExMzE1ODA1MDRm
OWVhNzRmMWIzMzRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMjA4
LDYgKzIwOCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZElu
RGlyZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbikgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eUNocm9tZUNsaWVudCgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KKworICAgIHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJv
bHMoSGFzaFNldDxFbGVtZW50Kj4mKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTm90aWZ5
T25Gb3JtQ2hhbmdlcygpIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiBjbGFzcyBFbXB0eUZyYW1l
TG9hZGVyQ2xpZW50IDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCmluZGV4IDVmNmNlMzlhNTE5MDRlYTQ1MzBkNWJiNzNlNTVhMjE4MmZjNTU1
NDcuLjc0ZGM0MmM0YTBiY2VhNTY0ZGFhZmE4NmEzYWM2YmI3MTZiMDI4YzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzgwLDYgKzM4MCw5IEBAIHB1YmxpYzoKICAgICAvLyBG
SVhNRTogUG9ydCBzaG91bGQgcmV0dXJuIHRydWUgdXNpbmcgaGV1cmlzdGljIGJhc2VkIG9uIHNj
cm9sbGFibGUoUmVuZGVyQm94KS4KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXV0b3Njcm9sbEZv
ckRyYWdBbmREcm9wKFJlbmRlckJveCopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKEhhc2hTZXQ8RWxlbWVudCo+Jikg
eyB9CisgICAgdmlydHVhbCBib29sIHNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKSB7IHJldHVy
biBmYWxzZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+Q2hyb21lQ2xpZW50KCkgeyB9
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQXV0b2Zp
bGxDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxsQ2xp
ZW50LmgKaW5kZXggYWE0ZDBhM2RhZWRiMWM3ZWNiZjY5ZDRjYzQyNjAyMjZjZDA2MzhmMC4uYmYw
ZDI3ZWM3OGYzMDU4NTYyNzIxOGFhYWI4ZDNkNGQ2MGYxNDYyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQXV0b2ZpbGxDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBdXRvZmlsbENsaWVudC5oCkBAIC00MCw2ICs0MCw4
IEBAIGNsYXNzIFdlYktleWJvYXJkRXZlbnQ7CiBjbGFzcyBXZWJOb2RlOwogY2xhc3MgV2ViU3Ry
aW5nOwogCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgV2ViVmVjdG9yOworCiBjbGFzcyBX
ZWJBdXRvZmlsbENsaWVudCB7CiBwdWJsaWM6CiAgICAgZW51bSB7CkBAIC05Myw2ICs5NSw5IEBA
IHB1YmxpYzoKICAgICAvLyBJbmZvcm1zIHRoZSBjbGllbnQgd2hldGhlciBvciBub3QgYW55IHN1
YnNlcXVlbnQgdGV4dCBjaGFuZ2VzIHNob3VsZCBiZSBpZ25vcmVkLgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRJZ25vcmVUZXh0Q2hhbmdlcyhib29sIGlnbm9yZSkgeyB9CiAKKyAgICAvLyBUaGVzZSBt
ZXRob2RzIGFyZSBjYWxsZWQgd2hlbiB0aGUgZm9ybSBzdHJ1Y3R1cmUgb2YgYSBwYWdlIGNoYW5n
ZXMKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNvbnN0IFdlYlZl
Y3RvcjxXZWJOb2RlPiYpIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+V2ViQXV0b2Zp
bGxDbGllbnQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuY3BwCmluZGV4IGU1Mjc2ZmZjYjMyNjlmYjVhZDE5YWM1NjQxZGJkMTgwN2Rm
ZjljMjMuLjdlNjc4MDBkODY0MzU1Mzk4MzdiMjRiNzljZGVkMjE1MTc0YmUxYjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC03OCw2
ICs3OCw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0RmllbGREZWNv
cmF0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKyNp
bmNsdWRlICJXZWJBdXRvZmlsbENsaWVudC5oIgogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9S
KQogI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3Nlci5oIgogI2VuZGlmCkBAIC0xMTcwLDYgKzExNzEs
MjUgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjphbm5vdGF0ZWRSZWdpb25zQ2hhbmdlZCgpCiB9
CiAjZW5kaWYKIAordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpkaWRBc3NvY2lhdGVGb3JtQ29udHJv
bHMoSGFzaFNldDxFbGVtZW50Kj4mIGVsZW1lbnRzKQoreworICAgIGlmICghbV93ZWJWaWV3LT5h
dXRvZmlsbENsaWVudCgpKQorICAgICAgICByZXR1cm47CisgICAgV2ViVmVjdG9yPFdlYk5vZGU+
IGVsZW1lbnRWZWN0b3Ioc3RhdGljX2Nhc3Q8c2l6ZV90PihlbGVtZW50cy5zaXplKCkpKTsKKyAg
ICBzaXplX3QgaSA9IDA7CisgICAgSGFzaFNldDxFbGVtZW50Kj46Oml0ZXJhdG9yIGVuZCA9IGVs
ZW1lbnRzLmVuZCgpOworICAgIGZvciAoSGFzaFNldDxFbGVtZW50Kj46Oml0ZXJhdG9yIGl0ID0g
ZWxlbWVudHMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIGVsZW1lbnRWZWN0
b3JbaV0gPSBXZWJOb2RlKCgqaXQpKTsKKyAgICAgICAgKytpOworICAgIH0KKyAgICBtX3dlYlZp
ZXctPmF1dG9maWxsQ2xpZW50KCktPmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhlbGVtZW50VmVj
dG9yKTsKK30KKworYm9vbCBDaHJvbWVDbGllbnRJbXBsOjpzaG91bGROb3RpZnlPbkZvcm1DaGFu
Z2VzKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09O
VEVOVF9VVElMUykKIFBhc3NPd25QdHI8TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50SW1wbD4g
TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50SW1wbDo6Y3JlYXRlKFdlYlZpZXdJbXBsKiB3ZWJW
aWV3KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5o
CmluZGV4IGQ1ZTlhZmYzYWE0M2U3M2JmYjk5M2U5MDY1N2FmZTJlZmE2ZTIxZjcuLmQyZmI1MDY4
YWI0MTFkMmVjMjVlYTU5NWFjYjYxYjQ4OWIzM2IwYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKQEAgLTIzMyw2ICsyMzMsOSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIGlzUG9pbnRlckxvY2tlZCgpOwogI2VuZGlmCiAKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKEhhc2hTZXQ8V2ViQ29yZTo6RWxlbWVu
dCo+JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNob3VsZE5vdGlmeU9uRm9ybUNoYW5n
ZXMoKSBPVkVSUklERTsKKwogcHJpdmF0ZToKICAgICBXZWJOYXZpZ2F0aW9uUG9saWN5IGdldE5h
dmlnYXRpb25Qb2xpY3koKTsKICAgICB2b2lkIGdldFBvcHVwTWVudUluZm8oV2ViQ29yZTo6UG9w
dXBDb250YWluZXIqLCBXZWJQb3B1cE1lbnVJbmZvKik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191632</attachid>
            <date>2013-03-05 18:32:32 -0800</date>
            <delta_ts>2013-03-06 10:30:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110375-20130305182838.patch</filename>
            <type>text/plain</type>
            <size>12508</size>
            <attacher name="Dane Walllinga">dgwallinga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTkwNWQyZjA4ZTYzZDdh
YzAzNzg1NTNjNzJmNzQyNTdlZTBkNGY0ZC4uOGI3MjAzNGQxMTk2ZWIzZGU5MTQ2NzMxMWUwZjIw
Njk4YWIzZTNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEzLTAyLTI2ICBEYW5l
IFdhbGxpbmdhICA8ZGd3YWxsaW5nYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSG9vayBGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQsIEhUTUxGb3JtRWxlbWVudCB0byBub3RpZnkgRWRpdG9yQ2xpZW50
IG9mIGZvcm0gY2hhbmdlcyBhZnRlciBhIHBhZ2UgaGFzIGxvYWRlZC4KKyAgICAgICAgV2lsbCBi
ZSB1c2VkIHRvIGFkZCBhdXRvZmlsbCBzdXBwb3J0IGZvciBhamF4LXkgd2VicGFnZXMuIGUuZyBp
ZiB3aGlsZSBmaWxsaW5nIG91dCBhIGZvcm0sIG5ldyBmaWVsZHMKKyAgICAgICAgYXJlIGR5bmFt
aWNhbGx5IGNyZWF0ZWQsIGF1dG9maWxsIGNhbiBrbm93IHRvIHJlLXF1ZXJ5IHRoZSBhdXRvZmls
bCBzZXJ2ZXIgYW5kIGtlZXAgZ29pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTAzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbCk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJv
bHNUaW1lckZpcmVkKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKERvY3Vt
ZW50KToKKyAgICAgICAgYWRkZWQgbWV0aG9kIGRpZEFzc29jaWF0ZUZvcm1Db250cm9sLCB3aGlj
aCBiYXRjaGVzIGZvcm0gY2hhbmdlcworICAgICAgICBhbmQgY2FsbHMgb3V0IHRvIENocm9tZUNs
aWVudCBvbiBhIHRpbWVyLgorICAgICAgICAqIGh0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6cmVzZXRGb3JtT3du
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmli
dXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBodG1sL0Zvcm1Bc3Nv
Y2lhdGVkRWxlbWVudC5oOgorICAgICAgICAoRm9ybUFzc29jaWF0ZWRFbGVtZW50KToKKyAgICAg
ICAgYWRkIGNhbGxzIHRvIERvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbCB3aGVuIGZv
cm0gY2hhbmdlcworICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50Lmg6CisgICAgICAgIGFkZCBjYWxs
IHRvIERvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbAorICAgICAgICAqIGxvYWRlci9F
bXB0eUNsaWVudHMuaDoKKyAgICAgICAgKEVtcHR5Q2hyb21lQ2xpZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMpOgorICAg
ICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnNob3VsZE5vdGlmeU9uRm9ybUNoYW5n
ZXMpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChDaHJvbWVDbGll
bnQpOgorICAgICAgICBhZGQgbmV3IG1ldGhvZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMKKwog
MjAxMy0wMy0wNSAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogIAogICAg
ICAgICBBWDogU3VwcG9ydCBhcmlhLXBvc2luc2V0L3NldHNpemUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggZDg4ZTA0MzA5MTM1NDU1MDQyMjIzNjI5MmU3NmU5MWU0YmYxOGI0Yi4uMmNi
OTI3NjhkYmFmNGQ3YmQxODI3YjhmNzAzNWU1NWQ3OTU2ODMyZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMy0wMi0yNiAgRGFuZSBXYWxsaW5nYSAgPGRn
d2FsbGluZ2FAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVudCBmb3JtIGFzc29jaWF0
aW9uIG1ldGhvZHMgb2YgQ2hyb21lQ2xpZW50CisgICAgICAgIHRvIGluZm9ybSBhdXRvZmlsbCBv
ZiBmb3JtIGNoYW5nZXMgYWZ0ZXIgYSBwYWdlIGhhcyBsb2FkZWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDM3NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYkF1dG9maWxsQ2xpZW50
Lmg6CisgICAgICAgIChXZWJBdXRvZmlsbENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9maWxsQ2xpZW50OjpkaWRBc3NvY2lhdGVJbnB1dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9maWxsQ2xpZW50OjpkaWRBZGRGb3JtKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b2ZpbGxD
bGllbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyk6CisgICAgICAgICogc3JjL0Nocm9tZUNs
aWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpkaWRBc3Nv
Y2lhdGVGb3JtQ29udHJvbHMpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6
Q2hyb21lQ2xpZW50SW1wbDo6c2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcyk6CisgICAgICAgICog
c3JjL0Nocm9tZUNsaWVudEltcGwuaDoKKyAgICAgICAgKENocm9tZUNsaWVudEltcGwpOgorCiAy
MDEzLTAzLTA1ICBBbGV4YW5kcmUgRWxpYXMgIDxhZWxpYXNAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtjaHJvbWl1bV0gU2Nyb2xsIGRlbHRhcyBzaG91bGQgYmUgZmxvYXRzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAppbmRleCA5YThiNzhlMWE5ODE0NDg4MWQ2OWYwOTNmYjk1MDU2ZmY5NDMwM2Y3
Li44ODk3MWIxOWQ0ZWFkNjEzOWZjMjc4MmVhMTA2ZTM2MTUzYWIyZGFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKQEAgLTQ4Nyw2ICs0ODcsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUq
IGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAjaWYg
RU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCiAgICAgLCBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0KDAp
CiAjZW5kaWYKKyAgICAsIG1fZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzVGltZXIodGhpcywgJkRv
Y3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lckZpcmVkKQogewogICAgIG1fcHJp
bnRpbmcgPSBmYWxzZTsKICAgICBtX3BhZ2luYXRlZEZvclNjcmVlbiA9IGZhbHNlOwpAQCAtNjA3
MSw0ICs2MDcyLDIwIEBAIERvY3VtZW50KiBEb2N1bWVudDo6ZW5zdXJlVGVtcGxhdGVEb2N1bWVu
dCgpCiB9CiAjZW5kaWYKIAordm9pZCBEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2wo
RWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoIWZyYW1lKCkgfHwgIWZyYW1lKCktPnBhZ2Uo
KS0+Y2hyb21lKCktPmNsaWVudCgpLT5zaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkpCisgICAg
ICAgIHJldHVybjsKKyAgICBtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHMuYWRkKGVsZW1lbnQpOwor
ICAgIG1fZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzVGltZXIuc3RhcnRPbmVTaG90KDApOworfQor
Cit2b2lkIERvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lckZpcmVkKFRpbWVy
PERvY3VtZW50PiopCit7CisgICAgaWYgKCF0aGlzLT5mcmFtZSgpKQorICAgICAgICByZXR1cm47
CisgICAgdGhpcy0+ZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPmRpZEFzc29j
aWF0ZUZvcm1Db250cm9scyhtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHMpOworICAgIG1fYXNzb2Np
YXRlZEZvcm1Db250cm9scy5jbGVhcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IDFhZDYxNTEzNTNiNmFlNDI4ODdjYWU4YTUzMjU3ODM5OWU2
NGU2ZjMuLmU0NjFkMGMxYzA5NTk2YzQ0NWU2ODNlMTQ0YzYyNDc4MGY0ZWUzNjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVu
dHMuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRml4ZWRBcnJheS5o
PgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAg
LTExODgsNiArMTE4OSw4IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudCogdGVtcGxhdGVEb2N1bWVu
dEhvc3QoKSB7IHJldHVybiBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0OyB9CiAjZW5kaWYKIAorICAg
IHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2woRWxlbWVudCopOworCiAgICAgdmlydHVhbCB2
b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CiAK
ICAgICB2aXJ0dWFsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4oKSBjb25zdCBPVkVS
UklERTsKQEAgLTEyNzIsNiArMTI3NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRMaXN0ZW5l
clR5cGUoTGlzdGVuZXJUeXBlIGxpc3RlbmVyVHlwZSkgeyBtX2xpc3RlbmVyVHlwZXMgfD0gbGlz
dGVuZXJUeXBlOyB9CiAgICAgdm9pZCBhZGRNdXRhdGlvbkV2ZW50TGlzdGVuZXJUeXBlSWZFbmFi
bGVkKExpc3RlbmVyVHlwZSk7CiAKKyAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9sc1Rp
bWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+Kik7CisKICAgICB2b2lkIHN0eWxlUmVzb2x2ZXJUaHJv
d2F3YXlUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopOwogICAgIFRpbWVyPERvY3VtZW50PiBt
X3N0eWxlUmVzb2x2ZXJUaHJvd2F3YXlUaW1lcjsKICAgICBkb3VibGUgbV9sYXN0U3R5bGVSZXNv
bHZlckFjY2Vzc1RpbWU7CkBAIC0xNTU4LDYgKzE1NjMsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQ
dHI8RG9jdW1lbnQ+IG1fdGVtcGxhdGVEb2N1bWVudDsKICAgICBEb2N1bWVudCogbV90ZW1wbGF0
ZURvY3VtZW50SG9zdDsgLy8gTWFudWFsbHkgbWFuYWdlZCB3ZWFrcmVmIChiYWNrcG9pbnRlciBm
cm9tIG1fdGVtcGxhdGVEb2N1bWVudCkuCiAjZW5kaWYKKworICAgIFRpbWVyPERvY3VtZW50PiBt
X2RpZEFzc29jaWF0ZUZvcm1Db250cm9sc1RpbWVyOworICAgIEhhc2hTZXQ8RWxlbWVudCo+IG1f
YXNzb2NpYXRlZEZvcm1Db250cm9sczsKKwogfTsKIAogaW5saW5lIHZvaWQgRG9jdW1lbnQ6Om5v
dGlmeVJlbW92ZVBlbmRpbmdTaGVldElmTmVlZGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Rm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcAppbmRleCBhMjIzNWIyOTA4NjQwMmEwYWVlODQ5YzU3
MDcyZmQxOGNjYjJlNWZhLi5lZjU2NTI3MWM5NTFmYTM4Y2FiZGQyMjBhYWFkMGU4NDEyZDNkNWZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwCkBA
IC0yNSw3ICsyNSw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRm9ybUFzc29j
aWF0ZWRFbGVtZW50LmgiCiAKKyNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJG
b3JtQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1D
b250cm9sRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgpAQCAtMTU3LDcgKzE1OSwxMSBAQCB2b2lkIEZvcm1Bc3NvY2lhdGVkRWxl
bWVudDo6Zm9ybVdpbGxCZURlc3Ryb3llZCgpCiAKIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVtZW50
OjpyZXNldEZvcm1Pd25lcigpCiB7CisgICAgSFRNTEZvcm1FbGVtZW50KiBjdXJyZW50Rm9ybSA9
IG1fZm9ybTsKICAgICBzZXRGb3JtKGZpbmRBc3NvY2lhdGVkRm9ybSh0b0hUTUxFbGVtZW50KHRo
aXMpLCBtX2Zvcm0pKTsKKyAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IHRvSFRNTEVsZW1lbnQo
dGhpcyk7ICAgICAKKyAgICBpZiAobV9mb3JtICYmIG1fZm9ybSAhPSBjdXJyZW50Rm9ybSAmJiBt
X2Zvcm0tPmluRG9jdW1lbnQoKSkKKyAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZGlkQXNz
b2NpYXRlRm9ybUNvbnRyb2woZWxlbWVudCk7CiB9CiAKIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVt
ZW50Ojpmb3JtQXR0cmlidXRlQ2hhbmdlZCgpCkBAIC0xNjUsNyArMTcxLDExIEBAIHZvaWQgRm9y
bUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmlidXRlQ2hhbmdlZCgpCiAgICAgSFRNTEVsZW1l
bnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KHRoaXMpOwogICAgIGlmICghZWxlbWVudC0+ZmFz
dEhhc0F0dHJpYnV0ZShmb3JtQXR0cikpIHsKICAgICAgICAgLy8gVGhlIGZvcm0gYXR0cmlidXRl
IHJlbW92ZWQuIFdlIG5lZWQgdG8gcmVzZXQgZm9ybSBvd25lciBoZXJlLgorICAgICAgICBIVE1M
Rm9ybUVsZW1lbnQqIGN1cnJlbnRGb3JtID0gbV9mb3JtOwogICAgICAgICBzZXRGb3JtKGVsZW1l
bnQtPmZpbmRGb3JtQW5jZXN0b3IoKSk7CisgICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0g
dG9IVE1MRWxlbWVudCh0aGlzKTsKKyAgICAgICAgaWYgKG1fZm9ybSAmJiBtX2Zvcm0gIT0gY3Vy
cmVudEZvcm0gJiYgbV9mb3JtLT5pbkRvY3VtZW50KCkpCisgICAgICAgICAgICBlbGVtZW50LT5k
b2N1bWVudCgpLT5kaWRBc3NvY2lhdGVGb3JtQ29udHJvbChlbGVtZW50KTsKICAgICAgICAgbV9m
b3JtQXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXIgPSBudWxscHRyOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIHJlc2V0Rm9ybU93bmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5j
cHAKaW5kZXggOTUzZmVjNmVkNzAyZWE3N2IxMDI3NzY2MGFmY2ZjMWVlODI2ODE3ZC4uNDdiMmIz
NmVlNmM3M2EwNzE0YjFmNmU2YWFiMDBiODY0YjQzZmViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZvcm1FbGVtZW50LmNwcApAQCAtMTM5LDYgKzEzOSw4IEBAIGJvb2wgSFRNTEZvcm1FbGVt
ZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0
KQogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MRm9ybUVsZW1lbnQ6Omlu
c2VydGVkSW50byhDb250YWluZXJOb2RlKiBpbnNlcnRpb25Qb2ludCkKIHsKICAgICBIVE1MRWxl
bWVudDo6aW5zZXJ0ZWRJbnRvKGluc2VydGlvblBvaW50KTsKKyAgICBpZiAoaW5zZXJ0aW9uUG9p
bnQtPmluRG9jdW1lbnQoKSkKKyAgICAgICAgdGhpcy0+ZG9jdW1lbnQoKS0+ZGlkQXNzb2NpYXRl
Rm9ybUNvbnRyb2wodGhpcyk7CiAgICAgcmV0dXJuIEluc2VydGlvbkRvbmU7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCAxZTFhMTRjNTYyZjY1NTdiOTA5MDFlOGFh
OTk4ODg3YTk1MWQ4NTlhLi41YjgzZmUwNWYzZmUxNTRiMTEzMTU4MDUwNGY5ZWE3NGYxYjMzNGM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0yMDgsNiArMjA4LDkgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2Vi
Q29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIAogICAg
IHZpcnR1YWwgYm9vbCBpc0VtcHR5Q2hyb21lQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQorCisgICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhIYXNoU2V0PEVs
ZW1lbnQqPiYpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2Vz
KCkgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKIGNsYXNzIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQg
OiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
aW5kZXggYzc4YzcyYmYxNzA5ZjgzZmNjNmMzMjU1MWFiN2IyMDdmZTU5YjY3Yi4uYjk3NzVjYTJj
M2M5MWUwNTEzNzIxY2QzYTBjYzM5YTVkZDA1ODNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCkBAIC0zODMsNiArMzgzLDkgQEAgcHVibGljOgogICAgIC8vIEZJWE1FOiBQb3J0IHNo
b3VsZCByZXR1cm4gdHJ1ZSB1c2luZyBoZXVyaXN0aWMgYmFzZWQgb24gc2Nyb2xsYWJsZShSZW5k
ZXJCb3gpLgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBdXRvc2Nyb2xsRm9yRHJhZ0FuZERyb3Ao
UmVuZGVyQm94KikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBk
aWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoSGFzaFNldDxFbGVtZW50Kj4mKSB7IH07CisgICAgdmly
dHVhbCBib29sIHNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKSA9IHsgcmV0dXJuIGZhbHNlOyB9
OworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+Q2hyb21lQ2xpZW50KCkgeyB9CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQXV0b2ZpbGxDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxsQ2xpZW50LmgKaW5k
ZXggYWE0ZDBhM2RhZWRiMWM3ZWNiZjY5ZDRjYzQyNjAyMjZjZDA2MzhmMC4uYmYwZDI3ZWM3OGYz
MDU4NTYyNzIxOGFhYWI4ZDNkNGQ2MGYxNDYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViQXV0b2ZpbGxDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJBdXRvZmlsbENsaWVudC5oCkBAIC00MCw2ICs0MCw4IEBAIGNsYXNz
IFdlYktleWJvYXJkRXZlbnQ7CiBjbGFzcyBXZWJOb2RlOwogY2xhc3MgV2ViU3RyaW5nOwogCit0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgV2ViVmVjdG9yOworCiBjbGFzcyBXZWJBdXRvZmls
bENsaWVudCB7CiBwdWJsaWM6CiAgICAgZW51bSB7CkBAIC05Myw2ICs5NSw5IEBAIHB1YmxpYzoK
ICAgICAvLyBJbmZvcm1zIHRoZSBjbGllbnQgd2hldGhlciBvciBub3QgYW55IHN1YnNlcXVlbnQg
dGV4dCBjaGFuZ2VzIHNob3VsZCBiZSBpZ25vcmVkLgogICAgIHZpcnR1YWwgdm9pZCBzZXRJZ25v
cmVUZXh0Q2hhbmdlcyhib29sIGlnbm9yZSkgeyB9CiAKKyAgICAvLyBUaGVzZSBtZXRob2RzIGFy
ZSBjYWxsZWQgd2hlbiB0aGUgZm9ybSBzdHJ1Y3R1cmUgb2YgYSBwYWdlIGNoYW5nZXMKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNvbnN0IFdlYlZlY3RvcjxXZWJO
b2RlPiYpIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+V2ViQXV0b2ZpbGxDbGllbnQo
KSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVD
bGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudElt
cGwuY3BwCmluZGV4IGIxMTA4OTNkZDUzNzhlNjhlOTgxYzIxYzQ4NmNjOWUxMjc0YzA1YzIuLjBl
N2I2YTY3YzYzYWYyZDY2NzY4ODI5MDJlMTQ2NGQ4YjgyZTZiMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC03Nyw2ICs3Nyw3IEBA
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0RmllbGREZWNvcmF0aW9uRWxl
bWVudC5oIgogI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpbmNsdWRlICJX
ZWJBdXRvZmlsbENsaWVudC5oIgogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogI2luY2x1
ZGUgIldlYkNvbG9yQ2hvb3Nlci5oIgogI2VuZGlmCkBAIC0xMTQ0LDYgKzExNDUsMjUgQEAgdm9p
ZCBDaHJvbWVDbGllbnRJbXBsOjphbm5vdGF0ZWRSZWdpb25zQ2hhbmdlZCgpCiB9CiAjZW5kaWYK
IAordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoSGFzaFNl
dDxFbGVtZW50Kj4mIGVsZW1lbnRzKQoreworICAgIGlmICghbV93ZWJWaWV3LT5hdXRvZmlsbENs
aWVudCgpKQorICAgICAgICByZXR1cm47CisgICAgV2ViVmVjdG9yPFdlYk5vZGU+IGVsZW1lbnRW
ZWN0b3Ioc3RhdGljX2Nhc3Q8c2l6ZV90PihlbGVtZW50cy5zaXplKCkpKTsKKyAgICBzaXplX3Qg
aSA9IDA7CisgICAgSGFzaFNldDxFbGVtZW50Kj46Oml0ZXJhdG9yIGVuZCA9IGVsZW1lbnRzLmVu
ZCgpOworICAgIGZvciAoSGFzaFNldDxFbGVtZW50Kj46Oml0ZXJhdG9yIGl0ID0gZWxlbWVudHMu
YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIGVsZW1lbnRWZWN0b3JbaV0gPSBX
ZWJOb2RlKCgqaXQpKTsKKyAgICAgICAgKytpOworICAgIH0KKyAgICBtX3dlYlZpZXctPmF1dG9m
aWxsQ2xpZW50KCktPmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhlbGVtZW50VmVjdG9yKTsKK30K
KworYm9vbCBDaHJvbWVDbGllbnRJbXBsOjpzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkKK3sK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwogI2lmIEVOQUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElM
UykKIFBhc3NPd25QdHI8TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50SW1wbD4gTmF2aWdhdG9y
Q29udGVudFV0aWxzQ2xpZW50SW1wbDo6Y3JlYXRlKFdlYlZpZXdJbXBsKiB3ZWJWaWV3KQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCmluZGV4IDNl
MjhlNTM1YzcwMWJhMjNjZDBlMWFjNzkwNDFhYWViMTQ2ZmZlOTguLjU3ZmNjNzJkOGJlNjhlNzY0
YjhkMWIxMjJjMWI3NDQ2MzhjYjE4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmgKQEAgLTIzNCw2ICsyMzQsOSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGlzUG9pbnRlckxvY2tlZCgpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKEhhc2hTZXQ8V2ViQ29yZTo6RWxlbWVudCo+JikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBib29sIHNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKSBPVkVS
UklERTsKKwogcHJpdmF0ZToKICAgICBXZWJOYXZpZ2F0aW9uUG9saWN5IGdldE5hdmlnYXRpb25Q
b2xpY3koKTsKICAgICB2b2lkIGdldFBvcHVwTWVudUluZm8oV2ViQ29yZTo6UG9wdXBDb250YWlu
ZXIqLCBXZWJQb3B1cE1lbnVJbmZvKik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191787</attachid>
            <date>2013-03-06 10:31:03 -0800</date>
            <delta_ts>2013-03-06 12:33:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110375-20130306102708.patch</filename>
            <type>text/plain</type>
            <size>12506</size>
            <attacher name="Dane Walllinga">dgwallinga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTkwNWQyZjA4ZTYzZDdh
YzAzNzg1NTNjNzJmNzQyNTdlZTBkNGY0ZC4uOGI3MjAzNGQxMTk2ZWIzZGU5MTQ2NzMxMWUwZjIw
Njk4YWIzZTNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEzLTAyLTI2ICBEYW5l
IFdhbGxpbmdhICA8ZGd3YWxsaW5nYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSG9vayBGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQsIEhUTUxGb3JtRWxlbWVudCB0byBub3RpZnkgRWRpdG9yQ2xpZW50
IG9mIGZvcm0gY2hhbmdlcyBhZnRlciBhIHBhZ2UgaGFzIGxvYWRlZC4KKyAgICAgICAgV2lsbCBi
ZSB1c2VkIHRvIGFkZCBhdXRvZmlsbCBzdXBwb3J0IGZvciBhamF4LXkgd2VicGFnZXMuIGUuZyBp
ZiB3aGlsZSBmaWxsaW5nIG91dCBhIGZvcm0sIG5ldyBmaWVsZHMKKyAgICAgICAgYXJlIGR5bmFt
aWNhbGx5IGNyZWF0ZWQsIGF1dG9maWxsIGNhbiBrbm93IHRvIHJlLXF1ZXJ5IHRoZSBhdXRvZmls
bCBzZXJ2ZXIgYW5kIGtlZXAgZ29pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTAzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbCk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJv
bHNUaW1lckZpcmVkKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKERvY3Vt
ZW50KToKKyAgICAgICAgYWRkZWQgbWV0aG9kIGRpZEFzc29jaWF0ZUZvcm1Db250cm9sLCB3aGlj
aCBiYXRjaGVzIGZvcm0gY2hhbmdlcworICAgICAgICBhbmQgY2FsbHMgb3V0IHRvIENocm9tZUNs
aWVudCBvbiBhIHRpbWVyLgorICAgICAgICAqIGh0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6cmVzZXRGb3JtT3du
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmli
dXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBodG1sL0Zvcm1Bc3Nv
Y2lhdGVkRWxlbWVudC5oOgorICAgICAgICAoRm9ybUFzc29jaWF0ZWRFbGVtZW50KToKKyAgICAg
ICAgYWRkIGNhbGxzIHRvIERvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbCB3aGVuIGZv
cm0gY2hhbmdlcworICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50Lmg6CisgICAgICAgIGFkZCBjYWxs
IHRvIERvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbAorICAgICAgICAqIGxvYWRlci9F
bXB0eUNsaWVudHMuaDoKKyAgICAgICAgKEVtcHR5Q2hyb21lQ2xpZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMpOgorICAg
ICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnNob3VsZE5vdGlmeU9uRm9ybUNoYW5n
ZXMpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChDaHJvbWVDbGll
bnQpOgorICAgICAgICBhZGQgbmV3IG1ldGhvZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMKKwog
MjAxMy0wMy0wNSAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogIAogICAg
ICAgICBBWDogU3VwcG9ydCBhcmlhLXBvc2luc2V0L3NldHNpemUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggZDg4ZTA0MzA5MTM1NDU1MDQyMjIzNjI5MmU3NmU5MWU0YmYxOGI0Yi4uMmNi
OTI3NjhkYmFmNGQ3YmQxODI3YjhmNzAzNWU1NWQ3OTU2ODMyZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMy0wMi0yNiAgRGFuZSBXYWxsaW5nYSAgPGRn
d2FsbGluZ2FAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVudCBmb3JtIGFzc29jaWF0
aW9uIG1ldGhvZHMgb2YgQ2hyb21lQ2xpZW50CisgICAgICAgIHRvIGluZm9ybSBhdXRvZmlsbCBv
ZiBmb3JtIGNoYW5nZXMgYWZ0ZXIgYSBwYWdlIGhhcyBsb2FkZWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDM3NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYkF1dG9maWxsQ2xpZW50
Lmg6CisgICAgICAgIChXZWJBdXRvZmlsbENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9maWxsQ2xpZW50OjpkaWRBc3NvY2lhdGVJbnB1dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9maWxsQ2xpZW50OjpkaWRBZGRGb3JtKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b2ZpbGxD
bGllbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyk6CisgICAgICAgICogc3JjL0Nocm9tZUNs
aWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpkaWRBc3Nv
Y2lhdGVGb3JtQ29udHJvbHMpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6
Q2hyb21lQ2xpZW50SW1wbDo6c2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcyk6CisgICAgICAgICog
c3JjL0Nocm9tZUNsaWVudEltcGwuaDoKKyAgICAgICAgKENocm9tZUNsaWVudEltcGwpOgorCiAy
MDEzLTAzLTA1ICBBbGV4YW5kcmUgRWxpYXMgIDxhZWxpYXNAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtjaHJvbWl1bV0gU2Nyb2xsIGRlbHRhcyBzaG91bGQgYmUgZmxvYXRzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAppbmRleCA5YThiNzhlMWE5ODE0NDg4MWQ2OWYwOTNmYjk1MDU2ZmY5NDMwM2Y3
Li44ODk3MWIxOWQ0ZWFkNjEzOWZjMjc4MmVhMTA2ZTM2MTUzYWIyZGFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKQEAgLTQ4Nyw2ICs0ODcsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUq
IGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAjaWYg
RU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCiAgICAgLCBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0KDAp
CiAjZW5kaWYKKyAgICAsIG1fZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzVGltZXIodGhpcywgJkRv
Y3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lckZpcmVkKQogewogICAgIG1fcHJp
bnRpbmcgPSBmYWxzZTsKICAgICBtX3BhZ2luYXRlZEZvclNjcmVlbiA9IGZhbHNlOwpAQCAtNjA3
MSw0ICs2MDcyLDIwIEBAIERvY3VtZW50KiBEb2N1bWVudDo6ZW5zdXJlVGVtcGxhdGVEb2N1bWVu
dCgpCiB9CiAjZW5kaWYKIAordm9pZCBEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2wo
RWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoIWZyYW1lKCkgfHwgIWZyYW1lKCktPnBhZ2Uo
KS0+Y2hyb21lKCktPmNsaWVudCgpLT5zaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkpCisgICAg
ICAgIHJldHVybjsKKyAgICBtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHMuYWRkKGVsZW1lbnQpOwor
ICAgIG1fZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzVGltZXIuc3RhcnRPbmVTaG90KDApOworfQor
Cit2b2lkIERvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lckZpcmVkKFRpbWVy
PERvY3VtZW50PiopCit7CisgICAgaWYgKCF0aGlzLT5mcmFtZSgpKQorICAgICAgICByZXR1cm47
CisgICAgdGhpcy0+ZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPmRpZEFzc29j
aWF0ZUZvcm1Db250cm9scyhtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHMpOworICAgIG1fYXNzb2Np
YXRlZEZvcm1Db250cm9scy5jbGVhcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IDFhZDYxNTEzNTNiNmFlNDI4ODdjYWU4YTUzMjU3ODM5OWU2
NGU2ZjMuLmU0NjFkMGMxYzA5NTk2YzQ0NWU2ODNlMTQ0YzYyNDc4MGY0ZWUzNjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVu
dHMuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRml4ZWRBcnJheS5o
PgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAg
LTExODgsNiArMTE4OSw4IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudCogdGVtcGxhdGVEb2N1bWVu
dEhvc3QoKSB7IHJldHVybiBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0OyB9CiAjZW5kaWYKIAorICAg
IHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2woRWxlbWVudCopOworCiAgICAgdmlydHVhbCB2
b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CiAK
ICAgICB2aXJ0dWFsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4oKSBjb25zdCBPVkVS
UklERTsKQEAgLTEyNzIsNiArMTI3NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRMaXN0ZW5l
clR5cGUoTGlzdGVuZXJUeXBlIGxpc3RlbmVyVHlwZSkgeyBtX2xpc3RlbmVyVHlwZXMgfD0gbGlz
dGVuZXJUeXBlOyB9CiAgICAgdm9pZCBhZGRNdXRhdGlvbkV2ZW50TGlzdGVuZXJUeXBlSWZFbmFi
bGVkKExpc3RlbmVyVHlwZSk7CiAKKyAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9sc1Rp
bWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+Kik7CisKICAgICB2b2lkIHN0eWxlUmVzb2x2ZXJUaHJv
d2F3YXlUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopOwogICAgIFRpbWVyPERvY3VtZW50PiBt
X3N0eWxlUmVzb2x2ZXJUaHJvd2F3YXlUaW1lcjsKICAgICBkb3VibGUgbV9sYXN0U3R5bGVSZXNv
bHZlckFjY2Vzc1RpbWU7CkBAIC0xNTU4LDYgKzE1NjMsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQ
dHI8RG9jdW1lbnQ+IG1fdGVtcGxhdGVEb2N1bWVudDsKICAgICBEb2N1bWVudCogbV90ZW1wbGF0
ZURvY3VtZW50SG9zdDsgLy8gTWFudWFsbHkgbWFuYWdlZCB3ZWFrcmVmIChiYWNrcG9pbnRlciBm
cm9tIG1fdGVtcGxhdGVEb2N1bWVudCkuCiAjZW5kaWYKKworICAgIFRpbWVyPERvY3VtZW50PiBt
X2RpZEFzc29jaWF0ZUZvcm1Db250cm9sc1RpbWVyOworICAgIEhhc2hTZXQ8RWxlbWVudCo+IG1f
YXNzb2NpYXRlZEZvcm1Db250cm9sczsKKwogfTsKIAogaW5saW5lIHZvaWQgRG9jdW1lbnQ6Om5v
dGlmeVJlbW92ZVBlbmRpbmdTaGVldElmTmVlZGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Rm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcAppbmRleCBhMjIzNWIyOTA4NjQwMmEwYWVlODQ5YzU3
MDcyZmQxOGNjYjJlNWZhLi5lZjU2NTI3MWM5NTFmYTM4Y2FiZGQyMjBhYWFkMGU4NDEyZDNkNWZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwCkBA
IC0yNSw3ICsyNSw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRm9ybUFzc29j
aWF0ZWRFbGVtZW50LmgiCiAKKyNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJG
b3JtQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1D
b250cm9sRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgpAQCAtMTU3LDcgKzE1OSwxMSBAQCB2b2lkIEZvcm1Bc3NvY2lhdGVkRWxl
bWVudDo6Zm9ybVdpbGxCZURlc3Ryb3llZCgpCiAKIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVtZW50
OjpyZXNldEZvcm1Pd25lcigpCiB7CisgICAgSFRNTEZvcm1FbGVtZW50KiBjdXJyZW50Rm9ybSA9
IG1fZm9ybTsKICAgICBzZXRGb3JtKGZpbmRBc3NvY2lhdGVkRm9ybSh0b0hUTUxFbGVtZW50KHRo
aXMpLCBtX2Zvcm0pKTsKKyAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IHRvSFRNTEVsZW1lbnQo
dGhpcyk7ICAgICAKKyAgICBpZiAobV9mb3JtICYmIG1fZm9ybSAhPSBjdXJyZW50Rm9ybSAmJiBt
X2Zvcm0tPmluRG9jdW1lbnQoKSkKKyAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZGlkQXNz
b2NpYXRlRm9ybUNvbnRyb2woZWxlbWVudCk7CiB9CiAKIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVt
ZW50Ojpmb3JtQXR0cmlidXRlQ2hhbmdlZCgpCkBAIC0xNjUsNyArMTcxLDExIEBAIHZvaWQgRm9y
bUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmlidXRlQ2hhbmdlZCgpCiAgICAgSFRNTEVsZW1l
bnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KHRoaXMpOwogICAgIGlmICghZWxlbWVudC0+ZmFz
dEhhc0F0dHJpYnV0ZShmb3JtQXR0cikpIHsKICAgICAgICAgLy8gVGhlIGZvcm0gYXR0cmlidXRl
IHJlbW92ZWQuIFdlIG5lZWQgdG8gcmVzZXQgZm9ybSBvd25lciBoZXJlLgorICAgICAgICBIVE1M
Rm9ybUVsZW1lbnQqIGN1cnJlbnRGb3JtID0gbV9mb3JtOwogICAgICAgICBzZXRGb3JtKGVsZW1l
bnQtPmZpbmRGb3JtQW5jZXN0b3IoKSk7CisgICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0g
dG9IVE1MRWxlbWVudCh0aGlzKTsKKyAgICAgICAgaWYgKG1fZm9ybSAmJiBtX2Zvcm0gIT0gY3Vy
cmVudEZvcm0gJiYgbV9mb3JtLT5pbkRvY3VtZW50KCkpCisgICAgICAgICAgICBlbGVtZW50LT5k
b2N1bWVudCgpLT5kaWRBc3NvY2lhdGVGb3JtQ29udHJvbChlbGVtZW50KTsKICAgICAgICAgbV9m
b3JtQXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXIgPSBudWxscHRyOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIHJlc2V0Rm9ybU93bmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5j
cHAKaW5kZXggOTUzZmVjNmVkNzAyZWE3N2IxMDI3NzY2MGFmY2ZjMWVlODI2ODE3ZC4uNDdiMmIz
NmVlNmM3M2EwNzE0YjFmNmU2YWFiMDBiODY0YjQzZmViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZvcm1FbGVtZW50LmNwcApAQCAtMTM5LDYgKzEzOSw4IEBAIGJvb2wgSFRNTEZvcm1FbGVt
ZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0
KQogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MRm9ybUVsZW1lbnQ6Omlu
c2VydGVkSW50byhDb250YWluZXJOb2RlKiBpbnNlcnRpb25Qb2ludCkKIHsKICAgICBIVE1MRWxl
bWVudDo6aW5zZXJ0ZWRJbnRvKGluc2VydGlvblBvaW50KTsKKyAgICBpZiAoaW5zZXJ0aW9uUG9p
bnQtPmluRG9jdW1lbnQoKSkKKyAgICAgICAgdGhpcy0+ZG9jdW1lbnQoKS0+ZGlkQXNzb2NpYXRl
Rm9ybUNvbnRyb2wodGhpcyk7CiAgICAgcmV0dXJuIEluc2VydGlvbkRvbmU7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCAxZTFhMTRjNTYyZjY1NTdiOTA5MDFlOGFh
OTk4ODg3YTk1MWQ4NTlhLi41YjgzZmUwNWYzZmUxNTRiMTEzMTU4MDUwNGY5ZWE3NGYxYjMzNGM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0yMDgsNiArMjA4LDkgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2Vi
Q29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIAogICAg
IHZpcnR1YWwgYm9vbCBpc0VtcHR5Q2hyb21lQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQorCisgICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhIYXNoU2V0PEVs
ZW1lbnQqPiYpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2Vz
KCkgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKIGNsYXNzIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQg
OiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
aW5kZXggYzc4YzcyYmYxNzA5ZjgzZmNjNmMzMjU1MWFiN2IyMDdmZTU5YjY3Yi4uZDUyZTNhNzAx
NWMzZmRjYjI3OGEyOTQwMGJlMjUxZTNkMDM3Y2FmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCkBAIC0zODMsNiArMzgzLDkgQEAgcHVibGljOgogICAgIC8vIEZJWE1FOiBQb3J0IHNo
b3VsZCByZXR1cm4gdHJ1ZSB1c2luZyBoZXVyaXN0aWMgYmFzZWQgb24gc2Nyb2xsYWJsZShSZW5k
ZXJCb3gpLgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBdXRvc2Nyb2xsRm9yRHJhZ0FuZERyb3Ao
UmVuZGVyQm94KikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBk
aWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoSGFzaFNldDxFbGVtZW50Kj4mKSB7IH07CisgICAgdmly
dHVhbCBib29sIHNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKSB7IHJldHVybiBmYWxzZTsgfTsK
KwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfkNocm9tZUNsaWVudCgpIHsgfQogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxsQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBdXRvZmlsbENsaWVudC5oCmluZGV4
IGFhNGQwYTNkYWVkYjFjN2VjYmY2OWQ0Y2M0MjYwMjI2Y2QwNjM4ZjAuLmJmMGQyN2VjNzhmMzA1
ODU2MjcyMThhYWFiOGQzZDRkNjBmMTQ2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkF1dG9maWxsQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViQXV0b2ZpbGxDbGllbnQuaApAQCAtNDAsNiArNDAsOCBAQCBjbGFzcyBX
ZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2ViTm9kZTsKIGNsYXNzIFdlYlN0cmluZzsKIAordGVt
cGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYlZlY3RvcjsKKwogY2xhc3MgV2ViQXV0b2ZpbGxD
bGllbnQgewogcHVibGljOgogICAgIGVudW0gewpAQCAtOTMsNiArOTUsOSBAQCBwdWJsaWM6CiAg
ICAgLy8gSW5mb3JtcyB0aGUgY2xpZW50IHdoZXRoZXIgb3Igbm90IGFueSBzdWJzZXF1ZW50IHRl
eHQgY2hhbmdlcyBzaG91bGQgYmUgaWdub3JlZC4KICAgICB2aXJ0dWFsIHZvaWQgc2V0SWdub3Jl
VGV4dENoYW5nZXMoYm9vbCBpZ25vcmUpIHsgfQogCisgICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUg
Y2FsbGVkIHdoZW4gdGhlIGZvcm0gc3RydWN0dXJlIG9mIGEgcGFnZSBjaGFuZ2VzCisgICAgdmly
dHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhjb25zdCBXZWJWZWN0b3I8V2ViTm9k
ZT4mKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfldlYkF1dG9maWxsQ2xpZW50KCkg
eyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmNwcAppbmRleCBiMTEwODkzZGQ1Mzc4ZTY4ZTk4MWMyMWM0ODZjYzllMTI3NGMwNWMyLi4wZTdi
NmE2N2M2M2FmMmQ2Njc2ODgyOTAyZTE0NjRkOGI4MmU2YjAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNzcsNiArNzcsNyBAQAog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1l
bnQuaCIKICNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVkZSAiV2Vi
QXV0b2ZpbGxDbGllbnQuaCIKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICNpbmNsdWRl
ICJXZWJDb2xvckNob29zZXIuaCIKICNlbmRpZgpAQCAtMTE0NCw2ICsxMTQ1LDI1IEBAIHZvaWQg
Q2hyb21lQ2xpZW50SW1wbDo6YW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKQogfQogI2VuZGlmCiAK
K3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKEhhc2hTZXQ8
RWxlbWVudCo+JiBlbGVtZW50cykKK3sKKyAgICBpZiAoIW1fd2ViVmlldy0+YXV0b2ZpbGxDbGll
bnQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIFdlYlZlY3RvcjxXZWJOb2RlPiBlbGVtZW50VmVj
dG9yKHN0YXRpY19jYXN0PHNpemVfdD4oZWxlbWVudHMuc2l6ZSgpKSk7CisgICAgc2l6ZV90IGkg
PSAwOworICAgIEhhc2hTZXQ8RWxlbWVudCo+OjppdGVyYXRvciBlbmQgPSBlbGVtZW50cy5lbmQo
KTsKKyAgICBmb3IgKEhhc2hTZXQ8RWxlbWVudCo+OjppdGVyYXRvciBpdCA9IGVsZW1lbnRzLmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBlbGVtZW50VmVjdG9yW2ldID0gV2Vi
Tm9kZSgoKml0KSk7CisgICAgICAgICsraTsKKyAgICB9CisgICAgbV93ZWJWaWV3LT5hdXRvZmls
bENsaWVudCgpLT5kaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoZWxlbWVudFZlY3Rvcik7Cit9CisK
K2Jvb2wgQ2hyb21lQ2xpZW50SW1wbDo6c2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcygpCit7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKICNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMp
CiBQYXNzT3duUHRyPE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudEltcGw+IE5hdmlnYXRvckNv
bnRlbnRVdGlsc0NsaWVudEltcGw6OmNyZWF0ZShXZWJWaWV3SW1wbCogd2ViVmlldykKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAppbmRleCAzZTI4
ZTUzNWM3MDFiYTIzY2QwZTFhYzc5MDQxYWFlYjE0NmZmZTk4Li41N2ZjYzcyZDhiZTY4ZTc2NGI4
ZDFiMTIyYzFiNzQ0NjM4Y2IxODBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
Q2hyb21lQ2xpZW50SW1wbC5oCkBAIC0yMzQsNiArMjM0LDkgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBpc1BvaW50ZXJMb2NrZWQoKTsKICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lkIGRp
ZEFzc29jaWF0ZUZvcm1Db250cm9scyhIYXNoU2V0PFdlYkNvcmU6OkVsZW1lbnQqPiYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkgT1ZFUlJJ
REU7CisKIHByaXZhdGU6CiAgICAgV2ViTmF2aWdhdGlvblBvbGljeSBnZXROYXZpZ2F0aW9uUG9s
aWN5KCk7CiAgICAgdm9pZCBnZXRQb3B1cE1lbnVJbmZvKFdlYkNvcmU6OlBvcHVwQ29udGFpbmVy
KiwgV2ViUG9wdXBNZW51SW5mbyopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191811</attachid>
            <date>2013-03-06 12:33:35 -0800</date>
            <delta_ts>2013-03-08 14:39:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110375-20130306122940.patch</filename>
            <type>text/plain</type>
            <size>12473</size>
            <attacher name="Dane Walllinga">dgwallinga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTkwNWQyZjA4ZTYzZDdh
YzAzNzg1NTNjNzJmNzQyNTdlZTBkNGY0ZC4uOGI3MjAzNGQxMTk2ZWIzZGU5MTQ2NzMxMWUwZjIw
Njk4YWIzZTNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEzLTAyLTI2ICBEYW5l
IFdhbGxpbmdhICA8ZGd3YWxsaW5nYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSG9vayBGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQsIEhUTUxGb3JtRWxlbWVudCB0byBub3RpZnkgRWRpdG9yQ2xpZW50
IG9mIGZvcm0gY2hhbmdlcyBhZnRlciBhIHBhZ2UgaGFzIGxvYWRlZC4KKyAgICAgICAgV2lsbCBi
ZSB1c2VkIHRvIGFkZCBhdXRvZmlsbCBzdXBwb3J0IGZvciBhamF4LXkgd2VicGFnZXMuIGUuZyBp
ZiB3aGlsZSBmaWxsaW5nIG91dCBhIGZvcm0sIG5ldyBmaWVsZHMKKyAgICAgICAgYXJlIGR5bmFt
aWNhbGx5IGNyZWF0ZWQsIGF1dG9maWxsIGNhbiBrbm93IHRvIHJlLXF1ZXJ5IHRoZSBhdXRvZmls
bCBzZXJ2ZXIgYW5kIGtlZXAgZ29pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTAzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbCk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJv
bHNUaW1lckZpcmVkKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKERvY3Vt
ZW50KToKKyAgICAgICAgYWRkZWQgbWV0aG9kIGRpZEFzc29jaWF0ZUZvcm1Db250cm9sLCB3aGlj
aCBiYXRjaGVzIGZvcm0gY2hhbmdlcworICAgICAgICBhbmQgY2FsbHMgb3V0IHRvIENocm9tZUNs
aWVudCBvbiBhIHRpbWVyLgorICAgICAgICAqIGh0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6cmVzZXRGb3JtT3du
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmli
dXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBodG1sL0Zvcm1Bc3Nv
Y2lhdGVkRWxlbWVudC5oOgorICAgICAgICAoRm9ybUFzc29jaWF0ZWRFbGVtZW50KToKKyAgICAg
ICAgYWRkIGNhbGxzIHRvIERvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbCB3aGVuIGZv
cm0gY2hhbmdlcworICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50Lmg6CisgICAgICAgIGFkZCBjYWxs
IHRvIERvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbAorICAgICAgICAqIGxvYWRlci9F
bXB0eUNsaWVudHMuaDoKKyAgICAgICAgKEVtcHR5Q2hyb21lQ2xpZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMpOgorICAg
ICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnNob3VsZE5vdGlmeU9uRm9ybUNoYW5n
ZXMpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChDaHJvbWVDbGll
bnQpOgorICAgICAgICBhZGQgbmV3IG1ldGhvZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMKKwog
MjAxMy0wMy0wNSAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogIAogICAg
ICAgICBBWDogU3VwcG9ydCBhcmlhLXBvc2luc2V0L3NldHNpemUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggZDg4ZTA0MzA5MTM1NDU1MDQyMjIzNjI5MmU3NmU5MWU0YmYxOGI0Yi4uMmNi
OTI3NjhkYmFmNGQ3YmQxODI3YjhmNzAzNWU1NWQ3OTU2ODMyZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMy0wMi0yNiAgRGFuZSBXYWxsaW5nYSAgPGRn
d2FsbGluZ2FAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVudCBmb3JtIGFzc29jaWF0
aW9uIG1ldGhvZHMgb2YgQ2hyb21lQ2xpZW50CisgICAgICAgIHRvIGluZm9ybSBhdXRvZmlsbCBv
ZiBmb3JtIGNoYW5nZXMgYWZ0ZXIgYSBwYWdlIGhhcyBsb2FkZWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDM3NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYkF1dG9maWxsQ2xpZW50
Lmg6CisgICAgICAgIChXZWJBdXRvZmlsbENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9maWxsQ2xpZW50OjpkaWRBc3NvY2lhdGVJbnB1dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9maWxsQ2xpZW50OjpkaWRBZGRGb3JtKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b2ZpbGxD
bGllbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyk6CisgICAgICAgICogc3JjL0Nocm9tZUNs
aWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpkaWRBc3Nv
Y2lhdGVGb3JtQ29udHJvbHMpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6
Q2hyb21lQ2xpZW50SW1wbDo6c2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcyk6CisgICAgICAgICog
c3JjL0Nocm9tZUNsaWVudEltcGwuaDoKKyAgICAgICAgKENocm9tZUNsaWVudEltcGwpOgorCiAy
MDEzLTAzLTA1ICBBbGV4YW5kcmUgRWxpYXMgIDxhZWxpYXNAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtjaHJvbWl1bV0gU2Nyb2xsIGRlbHRhcyBzaG91bGQgYmUgZmxvYXRzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAppbmRleCA5YThiNzhlMWE5ODE0NDg4MWQ2OWYwOTNmYjk1MDU2ZmY5NDMwM2Y3
Li45YWM3M2ZiNzQ5OTJhNzAyNTQyMmI3YWNjMTBmMmE0ODhhYTgyZjE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKQEAgLTQ4Nyw2ICs0ODcsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUq
IGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAjaWYg
RU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCiAgICAgLCBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0KDAp
CiAjZW5kaWYKKyAgICAsIG1fZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzVGltZXIodGhpcywgJkRv
Y3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lckZpcmVkKQogewogICAgIG1fcHJp
bnRpbmcgPSBmYWxzZTsKICAgICBtX3BhZ2luYXRlZEZvclNjcmVlbiA9IGZhbHNlOwpAQCAtNjA3
MSw0ICs2MDcyLDIxIEBAIERvY3VtZW50KiBEb2N1bWVudDo6ZW5zdXJlVGVtcGxhdGVEb2N1bWVu
dCgpCiB9CiAjZW5kaWYKIAordm9pZCBEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2wo
RWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoIWZyYW1lKCkgfHwgIWZyYW1lKCktPnBhZ2Uo
KS0+Y2hyb21lKCktPmNsaWVudCgpLT5zaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkpCisgICAg
ICAgIHJldHVybjsKKyAgICBtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHMuYWRkKGVsZW1lbnQpOwor
ICAgIGlmICghbV9kaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lci5pc0FjdGl2ZSgpKQorICAg
ICAgICBtX2RpZEFzc29jaWF0ZUZvcm1Db250cm9sc1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30K
Kwordm9pZCBEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzVGltZXJGaXJlZChUaW1l
cjxEb2N1bWVudD4qKQoreworICAgIGlmICghdGhpcy0+ZnJhbWUoKSkKKyAgICAgICAgcmV0dXJu
OworICAgIHRoaXMtPmZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpLT5kaWRBc3Nv
Y2lhdGVGb3JtQ29udHJvbHMobV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzKTsKKyAgICBtX2Fzc29j
aWF0ZWRGb3JtQ29udHJvbHMuY2xlYXIoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAppbmRleCAxYWQ2MTUxMzUzYjZhZTQyODg3Y2FlOGE1MzI1NzgzOTll
NjRlNmYzLi5lNDYxZDBjMWMwOTU5NmM0NDVlNjgzZTE0NGM2MjQ3ODBmNGVlMzY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1l
bnRzLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0ZpeGVkQXJyYXku
aD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CkBA
IC0xMTg4LDYgKzExODksOCBAQCBwdWJsaWM6CiAgICAgRG9jdW1lbnQqIHRlbXBsYXRlRG9jdW1l
bnRIb3N0KCkgeyByZXR1cm4gbV90ZW1wbGF0ZURvY3VtZW50SG9zdDsgfQogI2VuZGlmCiAKKyAg
ICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9sKEVsZW1lbnQqKTsKKwogICAgIHZpcnR1YWwg
dm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwog
CiAgICAgdmlydHVhbCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKCkgY29uc3QgT1ZF
UlJJREU7CkBAIC0xMjcyLDYgKzEyNzUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRkTGlzdGVu
ZXJUeXBlKExpc3RlbmVyVHlwZSBsaXN0ZW5lclR5cGUpIHsgbV9saXN0ZW5lclR5cGVzIHw9IGxp
c3RlbmVyVHlwZTsgfQogICAgIHZvaWQgYWRkTXV0YXRpb25FdmVudExpc3RlbmVyVHlwZUlmRW5h
YmxlZChMaXN0ZW5lclR5cGUpOwogCisgICAgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNU
aW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopOworCiAgICAgdm9pZCBzdHlsZVJlc29sdmVyVGhy
b3dhd2F5VGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4qKTsKICAgICBUaW1lcjxEb2N1bWVudD4g
bV9zdHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXI7CiAgICAgZG91YmxlIG1fbGFzdFN0eWxlUmVz
b2x2ZXJBY2Nlc3NUaW1lOwpAQCAtMTU1OCw2ICsxNTYzLDEwIEBAIHByaXZhdGU6CiAgICAgUmVm
UHRyPERvY3VtZW50PiBtX3RlbXBsYXRlRG9jdW1lbnQ7CiAgICAgRG9jdW1lbnQqIG1fdGVtcGxh
dGVEb2N1bWVudEhvc3Q7IC8vIE1hbnVhbGx5IG1hbmFnZWQgd2Vha3JlZiAoYmFja3BvaW50ZXIg
ZnJvbSBtX3RlbXBsYXRlRG9jdW1lbnQpLgogI2VuZGlmCisKKyAgICBUaW1lcjxEb2N1bWVudD4g
bV9kaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lcjsKKyAgICBIYXNoU2V0PEVsZW1lbnQqPiBt
X2Fzc29jaWF0ZWRGb3JtQ29udHJvbHM7CisKIH07CiAKIGlubGluZSB2b2lkIERvY3VtZW50Ojpu
b3RpZnlSZW1vdmVQZW5kaW5nU2hlZXRJZk5lZWRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAKaW5kZXggYTIyMzViMjkwODY0MDJhMGFlZTg0OWM1
NzA3MmZkMThjY2IyZTVmYS4uNGY1M2FkYjU4ZjEyOGYxMzQ2NjEyMGI3ZTkyMTk1MzlhNzhjNDgx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcApA
QCAtMjUsNyArMjUsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZvcm1Bc3Nv
Y2lhdGVkRWxlbWVudC5oIgogCisjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAi
Rm9ybUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKQEAgLTE1Nyw3ICsxNTksMTEgQEAgdm9pZCBGb3JtQXNzb2NpYXRlZEVs
ZW1lbnQ6OmZvcm1XaWxsQmVEZXN0cm95ZWQoKQogCiB2b2lkIEZvcm1Bc3NvY2lhdGVkRWxlbWVu
dDo6cmVzZXRGb3JtT3duZXIoKQogeworICAgIEhUTUxGb3JtRWxlbWVudCogb3JpZ2luYWxGb3Jt
ID0gbV9mb3JtOwogICAgIHNldEZvcm0oZmluZEFzc29jaWF0ZWRGb3JtKHRvSFRNTEVsZW1lbnQo
dGhpcyksIG1fZm9ybSkpOworICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gdG9IVE1MRWxlbWVu
dCh0aGlzKTsgICAgIAorICAgIGlmIChtX2Zvcm0gJiYgbV9mb3JtICE9IG9yaWdpbmFsRm9ybSAm
JiBtX2Zvcm0tPmluRG9jdW1lbnQoKSkKKyAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZGlk
QXNzb2NpYXRlRm9ybUNvbnRyb2woZWxlbWVudCk7CiB9CiAKIHZvaWQgRm9ybUFzc29jaWF0ZWRF
bGVtZW50Ojpmb3JtQXR0cmlidXRlQ2hhbmdlZCgpCkBAIC0xNjUsNyArMTcxLDExIEBAIHZvaWQg
Rm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmlidXRlQ2hhbmdlZCgpCiAgICAgSFRNTEVs
ZW1lbnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KHRoaXMpOwogICAgIGlmICghZWxlbWVudC0+
ZmFzdEhhc0F0dHJpYnV0ZShmb3JtQXR0cikpIHsKICAgICAgICAgLy8gVGhlIGZvcm0gYXR0cmli
dXRlIHJlbW92ZWQuIFdlIG5lZWQgdG8gcmVzZXQgZm9ybSBvd25lciBoZXJlLgorICAgICAgICBI
VE1MRm9ybUVsZW1lbnQqIG9yaWdpbmFsRm9ybSA9IG1fZm9ybTsKICAgICAgICAgc2V0Rm9ybShl
bGVtZW50LT5maW5kRm9ybUFuY2VzdG9yKCkpOworICAgICAgICBIVE1MRWxlbWVudCogZWxlbWVu
dCA9IHRvSFRNTEVsZW1lbnQodGhpcyk7CisgICAgICAgIGlmIChtX2Zvcm0gJiYgbV9mb3JtICE9
IG9yaWdpbmFsRm9ybSAmJiBtX2Zvcm0tPmluRG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGVsZW1l
bnQtPmRvY3VtZW50KCktPmRpZEFzc29jaWF0ZUZvcm1Db250cm9sKGVsZW1lbnQpOwogICAgICAg
ICBtX2Zvcm1BdHRyaWJ1dGVUYXJnZXRPYnNlcnZlciA9IG51bGxwdHI7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgcmVzZXRGb3JtT3duZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVt
ZW50LmNwcAppbmRleCA5NTNmZWM2ZWQ3MDJlYTc3YjEwMjc3NjYwYWZjZmMxZWU4MjY4MTdkLi40
N2IyYjM2ZWU2YzczYTA3MTRiMWY2ZTZhYWIwMGI4NjRiNDNmZWJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCkBAIC0xMzksNiArMTM5LDggQEAgYm9vbCBIVE1MRm9y
bUVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmIGNv
bnRleHQpCiBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IEhUTUxGb3JtRWxlbWVu
dDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUqIGluc2VydGlvblBvaW50KQogewogICAgIEhU
TUxFbGVtZW50OjppbnNlcnRlZEludG8oaW5zZXJ0aW9uUG9pbnQpOworICAgIGlmIChpbnNlcnRp
b25Qb2ludC0+aW5Eb2N1bWVudCgpKQorICAgICAgICB0aGlzLT5kb2N1bWVudCgpLT5kaWRBc3Nv
Y2lhdGVGb3JtQ29udHJvbCh0aGlzKTsKICAgICByZXR1cm4gSW5zZXJ0aW9uRG9uZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDFlMWExNGM1NjJmNjU1N2I5MDkw
MWU4YWE5OTg4ODdhOTUxZDg1OWEuLjViODNmZTA1ZjNmZTE1NGIxMTMxNTgwNTA0ZjllYTc0ZjFi
MzM0YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTIwOCw2ICsyMDgs
OSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlv
bihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
CiAgICAgdmlydHVhbCBib29sIGlzRW1wdHlDaHJvbWVDbGllbnQoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKEhhc2hT
ZXQ8RWxlbWVudCo+JikgeyB9CisgICAgdmlydHVhbCBib29sIHNob3VsZE5vdGlmeU9uRm9ybUNo
YW5nZXMoKSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAogY2xhc3MgRW1wdHlGcmFtZUxvYWRlckNs
aWVudCA6IHB1YmxpYyBGcmFtZUxvYWRlckNsaWVudCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAppbmRleCBjNzhjNzJiZjE3MDlmODNmY2M2YzMyNTUxYWI3YjIwN2ZlNTliNjdiLi5kNTJl
M2E3MDE1YzNmZGNiMjc4YTI5NDAwYmUyNTFlM2QwMzdjYWY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKQEAgLTM4Myw2ICszODMsOSBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IFBv
cnQgc2hvdWxkIHJldHVybiB0cnVlIHVzaW5nIGhldXJpc3RpYyBiYXNlZCBvbiBzY3JvbGxhYmxl
KFJlbmRlckJveCkuCiAgICAgdmlydHVhbCBib29sIHNob3VsZEF1dG9zY3JvbGxGb3JEcmFnQW5k
RHJvcChSZW5kZXJCb3gqKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCisgICAgdmlydHVhbCB2
b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhIYXNoU2V0PEVsZW1lbnQqPiYpIHsgfTsKKyAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcygpIHsgcmV0dXJuIGZhbHNl
OyB9OworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+Q2hyb21lQ2xpZW50KCkgeyB9CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQXV0b2ZpbGxDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxsQ2xpZW50LmgK
aW5kZXggYWE0ZDBhM2RhZWRiMWM3ZWNiZjY5ZDRjYzQyNjAyMjZjZDA2MzhmMC4uYjY5MDQzMzE3
ZTM0Yjg1NmRkZDM3ZTdkMDgxYzE3ODhlNGFiOTg4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViQXV0b2ZpbGxDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJBdXRvZmlsbENsaWVudC5oCkBAIC00MCw2ICs0MCw4IEBAIGNs
YXNzIFdlYktleWJvYXJkRXZlbnQ7CiBjbGFzcyBXZWJOb2RlOwogY2xhc3MgV2ViU3RyaW5nOwog
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgV2ViVmVjdG9yOworCiBjbGFzcyBXZWJBdXRv
ZmlsbENsaWVudCB7CiBwdWJsaWM6CiAgICAgZW51bSB7CkBAIC05Myw2ICs5NSw4IEBAIHB1Ymxp
YzoKICAgICAvLyBJbmZvcm1zIHRoZSBjbGllbnQgd2hldGhlciBvciBub3QgYW55IHN1YnNlcXVl
bnQgdGV4dCBjaGFuZ2VzIHNob3VsZCBiZSBpZ25vcmVkLgogICAgIHZpcnR1YWwgdm9pZCBzZXRJ
Z25vcmVUZXh0Q2hhbmdlcyhib29sIGlnbm9yZSkgeyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
QXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNvbnN0IFdlYlZlY3RvcjxXZWJOb2RlPiYpIHsgfQorCiBw
cm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+V2ViQXV0b2ZpbGxDbGllbnQoKSB7IH0KIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4IGIx
MTA4OTNkZDUzNzhlNjhlOTgxYzIxYzQ4NmNjOWUxMjc0YzA1YzIuLjI0ZjBmMjJlZDIzMmMzZDA0
MjQ2N2U5MGU0OTZjYjU5YzIyZTRmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC03Nyw2ICs3Nyw3IEBACiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0RmllbGREZWNvcmF0aW9uRWxlbWVudC5oIgogI2luY2x1
ZGUgIldlYkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpbmNsdWRlICJXZWJBdXRvZmlsbENsaWVu
dC5oIgogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogI2luY2x1ZGUgIldlYkNvbG9yQ2hv
b3Nlci5oIgogI2VuZGlmCkBAIC0xMTQ0LDYgKzExNDUsMjMgQEAgdm9pZCBDaHJvbWVDbGllbnRJ
bXBsOjphbm5vdGF0ZWRSZWdpb25zQ2hhbmdlZCgpCiB9CiAjZW5kaWYKIAordm9pZCBDaHJvbWVD
bGllbnRJbXBsOjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoSGFzaFNldDxFbGVtZW50Kj4mIGVs
ZW1lbnRzKQoreworICAgIGlmICghbV93ZWJWaWV3LT5hdXRvZmlsbENsaWVudCgpKQorICAgICAg
ICByZXR1cm47CisgICAgV2ViVmVjdG9yPFdlYk5vZGU+IGVsZW1lbnRWZWN0b3Ioc3RhdGljX2Nh
c3Q8c2l6ZV90PihlbGVtZW50cy5zaXplKCkpKTsKKyAgICBzaXplX3QgaSA9IDA7CisgICAgSGFz
aFNldDxFbGVtZW50Kj46Oml0ZXJhdG9yIGVuZCA9IGVsZW1lbnRzLmVuZCgpOworICAgIGZvciAo
SGFzaFNldDxFbGVtZW50Kj46Oml0ZXJhdG9yIGl0ID0gZWxlbWVudHMuYmVnaW4oKTsgaXQgIT0g
ZW5kOyArK2l0LCArK2kpCisgICAgICAgIGVsZW1lbnRWZWN0b3JbaV0gPSBXZWJOb2RlKCppdCk7
CisgICAgbV93ZWJWaWV3LT5hdXRvZmlsbENsaWVudCgpLT5kaWRBc3NvY2lhdGVGb3JtQ29udHJv
bHMoZWxlbWVudFZlY3Rvcik7Cit9CisKK2Jvb2wgQ2hyb21lQ2xpZW50SW1wbDo6c2hvdWxkTm90
aWZ5T25Gb3JtQ2hhbmdlcygpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKICNpZiBFTkFCTEUo
TkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpCiBQYXNzT3duUHRyPE5hdmlnYXRvckNvbnRlbnRVdGls
c0NsaWVudEltcGw+IE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudEltcGw6OmNyZWF0ZShXZWJW
aWV3SW1wbCogd2ViVmlldykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0Nocm9tZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuaAppbmRleCAzZTI4ZTUzNWM3MDFiYTIzY2QwZTFhYzc5MDQxYWFlYjE0NmZm
ZTk4Li41N2ZjYzcyZDhiZTY4ZTc2NGI4ZDFiMTIyYzFiNzQ0NjM4Y2IxODBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCkBAIC0yMzQsNiArMjM0
LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1BvaW50ZXJMb2NrZWQoKTsKICNlbmRp
ZgogCisgICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhIYXNoU2V0PFdl
YkNvcmU6OkVsZW1lbnQqPiYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGROb3Rp
ZnlPbkZvcm1DaGFuZ2VzKCkgT1ZFUlJJREU7CisKIHByaXZhdGU6CiAgICAgV2ViTmF2aWdhdGlv
blBvbGljeSBnZXROYXZpZ2F0aW9uUG9saWN5KCk7CiAgICAgdm9pZCBnZXRQb3B1cE1lbnVJbmZv
KFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyKiwgV2ViUG9wdXBNZW51SW5mbyopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192285</attachid>
            <date>2013-03-08 14:39:55 -0800</date>
            <delta_ts>2013-03-20 12:24:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110375-20130308143558.patch</filename>
            <type>text/plain</type>
            <size>12654</size>
            <attacher name="Dane Walllinga">dgwallinga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTkwNWQyZjA4ZTYzZDdh
YzAzNzg1NTNjNzJmNzQyNTdlZTBkNGY0ZC4uNjJkYmFlYjAyMzdiNzFiNmI2OGJkNTEwMjg2ZTQw
YzE0YTk4MTQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTAyLTI2ICBEYW5l
IFdhbGxpbmdhICA8ZGd3YWxsaW5nYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGNsaWVu
dCBjYWxsYmFja3MgdG8gbm90aWZ5IG9mIGNoYW5nZXMgb2YgYXNzb2NpYXRlZCBmcm9tIGNvbnRy
b2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAz
NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIb29r
IEZvcm1Bc3NvY2lhdGVkRWxlbWVudCwgSFRNTEZvcm1FbGVtZW50IHRvIG5vdGlmeSBFZGl0b3JD
bGllbnQgb2YgZm9ybSBjaGFuZ2VzIGFmdGVyIGEgcGFnZSBoYXMgbG9hZGVkLgorICAgICAgICBX
aWxsIGJlIHVzZWQgdG8gYWRkIGF1dG9maWxsIHN1cHBvcnQgZm9yIGFqYXgteSB3ZWJwYWdlcy4g
ZS5nIGlmIHdoaWxlIGZpbGxpbmcgb3V0IGEgZm9ybSwgbmV3IGZpZWxkcworICAgICAgICBhcmUg
ZHluYW1pY2FsbHkgY3JlYXRlZCwgYXV0b2ZpbGwgY2FuIGtub3cgdG8gcmUtcXVlcnkgdGhlIGF1
dG9maWxsIHNlcnZlciBhbmQga2VlcCBnb2luZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDM3NQorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2wpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xz
VGltZXJGaXJlZCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1bWVu
dCk6CisgICAgICAgIGFkZGVkIG1ldGhvZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbCwgd2hpY2gg
YmF0Y2hlcyBmb3JtIGNoYW5nZXMKKyAgICAgICAgYW5kIGNhbGxzIG91dCB0byBDaHJvbWVDbGll
bnQgb24gYSB0aW1lci4KKyAgICAgICAgKiBodG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OnJlc2V0Rm9ybU93bmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybUF0dHJpYnV0
ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9Gb3JtQXNzb2Np
YXRlZEVsZW1lbnQuaDoKKyAgICAgICAgKEZvcm1Bc3NvY2lhdGVkRWxlbWVudCk6CisgICAgICAg
IGFkZCBjYWxscyB0byBEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2wgd2hlbiBmb3Jt
IGNoYW5nZXMKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6Omluc2VydGVkSW50byk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5oOgorICAgICAgICBhZGQgY2FsbCB0
byBEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2wKKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmg6CisgICAgICAgIChFbXB0eUNocm9tZUNsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpFbXB0eUNocm9tZUNsaWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2Vz
KToKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50
KToKKyAgICAgICAgYWRkIG5ldyBtZXRob2QgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzCisKIDIw
MTMtMDMtMDUgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KICAKICAgICAg
ICAgQVg6IFN1cHBvcnQgYXJpYS1wb3NpbnNldC9zZXRzaXplCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IGQ4OGUwNDMwOTEzNTQ1NTA0MjIyMzYyOTJlNzZlOTFlNGJmMThiNGIuLjU0YWZj
ZDczZDZkNjNjYmYxZmZlYmYxNTE5ZDgwODM5NTIwOGYyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTMtMDItMjYgIERhbmUgV2FsbGluZ2EgIDxkZ3dh
bGxpbmdhQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgY2xpZW50IGNhbGxiYWNrcyB0byBu
b3RpZnkgb2YgY2hhbmdlcyBvZiBhc3NvY2lhdGVkIGZyb20gY29udHJvbHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDM3NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBmb3JtIGFzc29j
aWF0aW9uIG1ldGhvZHMgb2YgQ2hyb21lQ2xpZW50CisgICAgICAgIHRvIGluZm9ybSBhdXRvZmls
bCBvZiBmb3JtIGNoYW5nZXMgYWZ0ZXIgYSBwYWdlIGhhcyBsb2FkZWQKKworICAgICAgICAqIHB1
YmxpYy9XZWJBdXRvZmlsbENsaWVudC5oOgorICAgICAgICAoV2ViQXV0b2ZpbGxDbGllbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJBdXRvZmlsbENsaWVudDo6ZGlkQXNzb2NpYXRlSW5wdXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJBdXRvZmlsbENsaWVudDo6ZGlkQWRkRm9ybSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9maWxsQ2xpZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMpOgor
ICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50SW1wbDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKToKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNob3VsZE5vdGlmeU9uRm9y
bUNoYW5nZXMpOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAgIChD
aHJvbWVDbGllbnRJbXBsKToKKwogMjAxMy0wMy0wNSAgQWxleGFuZHJlIEVsaWFzICA8YWVsaWFz
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFNjcm9sbCBkZWx0YXMgc2hvdWxk
IGJlIGZsb2F0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggOWE4Yjc4ZTFhOTgxNDQ4ODFk
NjlmMDkzZmI5NTA1NmZmOTQzMDNmNy4uNDc3MTM0ZjJmNDU3NWNhYWNiYmE2Y2VjZjNjMGRmNTQw
MmE4N2RmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00ODcsNiArNDg3LDcgQEAgRG9j
dW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGlzWEhU
TUwsIGJvb2wgaXNIVE1MKQogI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQogICAgICwgbV90
ZW1wbGF0ZURvY3VtZW50SG9zdCgwKQogI2VuZGlmCisgICAgLCBtX2RpZEFzc29jaWF0ZUZvcm1D
b250cm9sc1RpbWVyKHRoaXMsICZEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzVGlt
ZXJGaXJlZCkKIHsKICAgICBtX3ByaW50aW5nID0gZmFsc2U7CiAgICAgbV9wYWdpbmF0ZWRGb3JT
Y3JlZW4gPSBmYWxzZTsKQEAgLTYwNzEsNCArNjA3MiwyMSBAQCBEb2N1bWVudCogRG9jdW1lbnQ6
OmVuc3VyZVRlbXBsYXRlRG9jdW1lbnQoKQogfQogI2VuZGlmCiAKK3ZvaWQgRG9jdW1lbnQ6OmRp
ZEFzc29jaWF0ZUZvcm1Db250cm9sKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFmcmFt
ZSgpIHx8ICFmcmFtZSgpLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKS0+c2hvdWxkTm90aWZ5
T25Gb3JtQ2hhbmdlcygpKQorICAgICAgICByZXR1cm47CisgICAgbV9hc3NvY2lhdGVkRm9ybUNv
bnRyb2xzLmFkZChlbGVtZW50KTsKKyAgICBpZiAoIW1fZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xz
VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9kaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUaW1l
ci5zdGFydE9uZVNob3QoMCk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OmRpZEFzc29jaWF0ZUZvcm1D
b250cm9sc1RpbWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+KikKK3sKKyAgICBpZiAoIWZyYW1lKCkp
CisgICAgICAgIHJldHVybjsKKyAgICBmcmFtZSgpLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQo
KS0+ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKG1fYXNzb2NpYXRlZEZvcm1Db250cm9scyk7Cisg
ICAgbV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzLmNsZWFyKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMWFkNjE1MTM1M2I2YWU0Mjg4N2NhZThh
NTMyNTc4Mzk5ZTY0ZTZmMy4uZTQ2MWQwYzFjMDk1OTZjNDQ1ZTY4M2UxNDRjNjI0NzgwZjRlZTM2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJWaWV3
cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9G
aXhlZEFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgpAQCAtMTE4OCw2ICsxMTg5LDggQEAgcHVibGljOgogICAgIERvY3VtZW50KiB0ZW1w
bGF0ZURvY3VtZW50SG9zdCgpIHsgcmV0dXJuIG1fdGVtcGxhdGVEb2N1bWVudEhvc3Q7IH0KICNl
bmRpZgogCisgICAgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbChFbGVtZW50Kik7CisKICAg
ICB2aXJ0dWFsIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZp
ZXIgPSAwKTsKIAogICAgIHZpcnR1YWwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbigp
IGNvbnN0IE9WRVJSSURFOwpAQCAtMTI3Miw2ICsxMjc1LDggQEAgcHJpdmF0ZToKICAgICB2b2lk
IGFkZExpc3RlbmVyVHlwZShMaXN0ZW5lclR5cGUgbGlzdGVuZXJUeXBlKSB7IG1fbGlzdGVuZXJU
eXBlcyB8PSBsaXN0ZW5lclR5cGU7IH0KICAgICB2b2lkIGFkZE11dGF0aW9uRXZlbnRMaXN0ZW5l
clR5cGVJZkVuYWJsZWQoTGlzdGVuZXJUeXBlKTsKIAorICAgIHZvaWQgZGlkQXNzb2NpYXRlRm9y
bUNvbnRyb2xzVGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4qKTsKKwogICAgIHZvaWQgc3R5bGVS
ZXNvbHZlclRocm93YXdheVRpbWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+Kik7CiAgICAgVGltZXI8
RG9jdW1lbnQ+IG1fc3R5bGVSZXNvbHZlclRocm93YXdheVRpbWVyOwogICAgIGRvdWJsZSBtX2xh
c3RTdHlsZVJlc29sdmVyQWNjZXNzVGltZTsKQEAgLTE1NTgsNiArMTU2MywxMCBAQCBwcml2YXRl
OgogICAgIFJlZlB0cjxEb2N1bWVudD4gbV90ZW1wbGF0ZURvY3VtZW50OwogICAgIERvY3VtZW50
KiBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0OyAvLyBNYW51YWxseSBtYW5hZ2VkIHdlYWtyZWYgKGJh
Y2twb2ludGVyIGZyb20gbV90ZW1wbGF0ZURvY3VtZW50KS4KICNlbmRpZgorCisgICAgVGltZXI8
RG9jdW1lbnQ+IG1fZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzVGltZXI7CisgICAgSGFzaFNldDxF
bGVtZW50Kj4gbV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzOworCiB9OwogCiBpbmxpbmUgdm9pZCBE
b2N1bWVudDo6bm90aWZ5UmVtb3ZlUGVuZGluZ1NoZWV0SWZOZWVkZWQoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwCmluZGV4IGEyMjM1YjI5MDg2NDAy
YTBhZWU4NDljNTcwNzJmZDE4Y2NiMmU1ZmEuLjRmNTNhZGI1OGYxMjhmMTM0NjYxMjBiN2U5MjE5
NTM5YTc4YzQ4MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0
ZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxl
bWVudC5jcHAKQEAgLTI1LDcgKzI1LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJGb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCIKIAorI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgog
I2luY2x1ZGUgIkZvcm1Db250cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCkBAIC0xNTcsNyArMTU5LDExIEBAIHZvaWQgRm9ybUFz
c29jaWF0ZWRFbGVtZW50Ojpmb3JtV2lsbEJlRGVzdHJveWVkKCkKIAogdm9pZCBGb3JtQXNzb2Np
YXRlZEVsZW1lbnQ6OnJlc2V0Rm9ybU93bmVyKCkKIHsKKyAgICBIVE1MRm9ybUVsZW1lbnQqIG9y
aWdpbmFsRm9ybSA9IG1fZm9ybTsKICAgICBzZXRGb3JtKGZpbmRBc3NvY2lhdGVkRm9ybSh0b0hU
TUxFbGVtZW50KHRoaXMpLCBtX2Zvcm0pKTsKKyAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IHRv
SFRNTEVsZW1lbnQodGhpcyk7ICAgICAKKyAgICBpZiAobV9mb3JtICYmIG1fZm9ybSAhPSBvcmln
aW5hbEZvcm0gJiYgbV9mb3JtLT5pbkRvY3VtZW50KCkpCisgICAgICAgIGVsZW1lbnQtPmRvY3Vt
ZW50KCktPmRpZEFzc29jaWF0ZUZvcm1Db250cm9sKGVsZW1lbnQpOwogfQogCiB2b2lkIEZvcm1B
c3NvY2lhdGVkRWxlbWVudDo6Zm9ybUF0dHJpYnV0ZUNoYW5nZWQoKQpAQCAtMTY1LDcgKzE3MSwx
MSBAQCB2b2lkIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybUF0dHJpYnV0ZUNoYW5nZWQoKQog
ICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gdG9IVE1MRWxlbWVudCh0aGlzKTsKICAgICBpZiAo
IWVsZW1lbnQtPmZhc3RIYXNBdHRyaWJ1dGUoZm9ybUF0dHIpKSB7CiAgICAgICAgIC8vIFRoZSBm
b3JtIGF0dHJpYnV0ZSByZW1vdmVkLiBXZSBuZWVkIHRvIHJlc2V0IGZvcm0gb3duZXIgaGVyZS4K
KyAgICAgICAgSFRNTEZvcm1FbGVtZW50KiBvcmlnaW5hbEZvcm0gPSBtX2Zvcm07CiAgICAgICAg
IHNldEZvcm0oZWxlbWVudC0+ZmluZEZvcm1BbmNlc3RvcigpKTsKKyAgICAgICAgSFRNTEVsZW1l
bnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KHRoaXMpOworICAgICAgICBpZiAobV9mb3JtICYm
IG1fZm9ybSAhPSBvcmlnaW5hbEZvcm0gJiYgbV9mb3JtLT5pbkRvY3VtZW50KCkpCisgICAgICAg
ICAgICBlbGVtZW50LT5kb2N1bWVudCgpLT5kaWRBc3NvY2lhdGVGb3JtQ29udHJvbChlbGVtZW50
KTsKICAgICAgICAgbV9mb3JtQXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXIgPSBudWxscHRyOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIHJlc2V0Rm9ybU93bmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtRWxlbWVudC5jcHAKaW5kZXggOTUzZmVjNmVkNzAyZWE3N2IxMDI3NzY2MGFmY2ZjMWVl
ODI2ODE3ZC4uNDdiMmIzNmVlNmM3M2EwNzE0YjFmNmU2YWFiMDBiODY0YjQzZmViYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcApAQCAtMTM5LDYgKzEzOSw4IEBAIGJv
b2wgSFRNTEZvcm1FbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdD
b250ZXh0JiBjb250ZXh0KQogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1M
Rm9ybUVsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2RlKiBpbnNlcnRpb25Qb2ludCkK
IHsKICAgICBIVE1MRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKGluc2VydGlvblBvaW50KTsKKyAgICBp
ZiAoaW5zZXJ0aW9uUG9pbnQtPmluRG9jdW1lbnQoKSkKKyAgICAgICAgdGhpcy0+ZG9jdW1lbnQo
KS0+ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2wodGhpcyk7CiAgICAgcmV0dXJuIEluc2VydGlvbkRv
bmU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCAxZTFhMTRjNTYy
ZjY1NTdiOTA5MDFlOGFhOTk4ODg3YTk1MWQ4NTlhLi41YjgzZmUwNWYzZmUxNTRiMTEzMTU4MDUw
NGY5ZWE3NGYxYjMzNGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0y
MDgsNiArMjA4LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5k
SW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIAogICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5Q2hyb21lQ2xpZW50KCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQorCisgICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250
cm9scyhIYXNoU2V0PEVsZW1lbnQqPiYpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGROb3Rp
ZnlPbkZvcm1DaGFuZ2VzKCkgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKIGNsYXNzIEVtcHR5RnJh
bWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmgKaW5kZXggYzc4YzcyYmYxNzA5ZjgzZmNjNmMzMjU1MWFiN2IyMDdmZTU5
YjY3Yi4uZDUyZTNhNzAxNWMzZmRjYjI3OGEyOTQwMGJlMjUxZTNkMDM3Y2FmOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zODMsNiArMzgzLDkgQEAgcHVibGljOgogICAgIC8v
IEZJWE1FOiBQb3J0IHNob3VsZCByZXR1cm4gdHJ1ZSB1c2luZyBoZXVyaXN0aWMgYmFzZWQgb24g
c2Nyb2xsYWJsZShSZW5kZXJCb3gpLgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBdXRvc2Nyb2xs
Rm9yRHJhZ0FuZERyb3AoUmVuZGVyQm94KikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAg
IHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoSGFzaFNldDxFbGVtZW50Kj4m
KSB7IH07CisgICAgdmlydHVhbCBib29sIHNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKSB7IHJl
dHVybiBmYWxzZTsgfTsKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfkNocm9tZUNsaWVudCgp
IHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1
dG9maWxsQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBdXRvZmls
bENsaWVudC5oCmluZGV4IGFhNGQwYTNkYWVkYjFjN2VjYmY2OWQ0Y2M0MjYwMjI2Y2QwNjM4ZjAu
LmI2OTA0MzMxN2UzNGI4NTZkZGQzN2U3ZDA4MWMxNzg4ZTRhYjk4OGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxsQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQXV0b2ZpbGxDbGllbnQuaApAQCAtNDAsNiAr
NDAsOCBAQCBjbGFzcyBXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2ViTm9kZTsKIGNsYXNzIFdl
YlN0cmluZzsKIAordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYlZlY3RvcjsKKwogY2xh
c3MgV2ViQXV0b2ZpbGxDbGllbnQgewogcHVibGljOgogICAgIGVudW0gewpAQCAtOTMsNiArOTUs
OCBAQCBwdWJsaWM6CiAgICAgLy8gSW5mb3JtcyB0aGUgY2xpZW50IHdoZXRoZXIgb3Igbm90IGFu
eSBzdWJzZXF1ZW50IHRleHQgY2hhbmdlcyBzaG91bGQgYmUgaWdub3JlZC4KICAgICB2aXJ0dWFs
IHZvaWQgc2V0SWdub3JlVGV4dENoYW5nZXMoYm9vbCBpZ25vcmUpIHsgfQogCisgICAgdmlydHVh
bCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhjb25zdCBXZWJWZWN0b3I8V2ViTm9kZT4m
KSB7IH0KKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfldlYkF1dG9maWxsQ2xpZW50KCkgeyB9
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNw
cAppbmRleCBiMTEwODkzZGQ1Mzc4ZTY4ZTk4MWMyMWM0ODZjYzllMTI3NGMwNWMyLi4yNGYwZjIy
ZWQyMzJjM2QwNDI0NjdlOTBlNDk2Y2I1OWMyMmU0ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNzcsNiArNzcsNyBAQAogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQu
aCIKICNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVkZSAiV2ViQXV0
b2ZpbGxDbGllbnQuaCIKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICNpbmNsdWRlICJX
ZWJDb2xvckNob29zZXIuaCIKICNlbmRpZgpAQCAtMTE0NCw2ICsxMTQ1LDIzIEBAIHZvaWQgQ2hy
b21lQ2xpZW50SW1wbDo6YW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKQogfQogI2VuZGlmCiAKK3Zv
aWQgQ2hyb21lQ2xpZW50SW1wbDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKEhhc2hTZXQ8RWxl
bWVudCo+JiBlbGVtZW50cykKK3sKKyAgICBpZiAoIW1fd2ViVmlldy0+YXV0b2ZpbGxDbGllbnQo
KSkKKyAgICAgICAgcmV0dXJuOworICAgIFdlYlZlY3RvcjxXZWJOb2RlPiBlbGVtZW50VmVjdG9y
KHN0YXRpY19jYXN0PHNpemVfdD4oZWxlbWVudHMuc2l6ZSgpKSk7CisgICAgc2l6ZV90IGkgPSAw
OworICAgIEhhc2hTZXQ8RWxlbWVudCo+OjppdGVyYXRvciBlbmQgPSBlbGVtZW50cy5lbmQoKTsK
KyAgICBmb3IgKEhhc2hTZXQ8RWxlbWVudCo+OjppdGVyYXRvciBpdCA9IGVsZW1lbnRzLmJlZ2lu
KCk7IGl0ICE9IGVuZDsgKytpdCwgKytpKQorICAgICAgICBlbGVtZW50VmVjdG9yW2ldID0gV2Vi
Tm9kZSgqaXQpOworICAgIG1fd2ViVmlldy0+YXV0b2ZpbGxDbGllbnQoKS0+ZGlkQXNzb2NpYXRl
Rm9ybUNvbnRyb2xzKGVsZW1lbnRWZWN0b3IpOworfQorCitib29sIENocm9tZUNsaWVudEltcGw6
OnNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKQoreworICAgIHJldHVybiB0cnVlOworfQorCiAj
aWYgRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQogUGFzc093blB0cjxOYXZpZ2F0b3JD
b250ZW50VXRpbHNDbGllbnRJbXBsPiBOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnRJbXBsOjpj
cmVhdGUoV2ViVmlld0ltcGwqIHdlYlZpZXcpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXggM2UyOGU1MzVjNzAxYmEyM2NkMGUxYWM3OTA0
MWFhZWIxNDZmZmU5OC4uNTdmY2M3MmQ4YmU2OGU3NjRiOGQxYjEyMmMxYjc0NDYzOGNiMTgwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaApAQCAt
MjM0LDYgKzIzNCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNQb2ludGVyTG9ja2Vk
KCk7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMo
SGFzaFNldDxXZWJDb3JlOjpFbGVtZW50Kj4mKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcygpIE9WRVJSSURFOworCiBwcml2YXRlOgogICAgIFdl
Yk5hdmlnYXRpb25Qb2xpY3kgZ2V0TmF2aWdhdGlvblBvbGljeSgpOwogICAgIHZvaWQgZ2V0UG9w
dXBNZW51SW5mbyhXZWJDb3JlOjpQb3B1cENvbnRhaW5lciosIFdlYlBvcHVwTWVudUluZm8qKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194095</attachid>
            <date>2013-03-20 12:24:31 -0700</date>
            <delta_ts>2013-03-21 14:46:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110375-20130320122020.patch</filename>
            <type>text/plain</type>
            <size>13047</size>
            <attacher name="Dane Walllinga">dgwallinga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTkwNWQyZjA4ZTYzZDdh
YzAzNzg1NTNjNzJmNzQyNTdlZTBkNGY0ZC4uNjJkYmFlYjAyMzdiNzFiNmI2OGJkNTEwMjg2ZTQw
YzE0YTk4MTQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTAyLTI2ICBEYW5l
IFdhbGxpbmdhICA8ZGd3YWxsaW5nYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGNsaWVu
dCBjYWxsYmFja3MgdG8gbm90aWZ5IG9mIGNoYW5nZXMgb2YgYXNzb2NpYXRlZCBmcm9tIGNvbnRy
b2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAz
NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIb29r
IEZvcm1Bc3NvY2lhdGVkRWxlbWVudCwgSFRNTEZvcm1FbGVtZW50IHRvIG5vdGlmeSBFZGl0b3JD
bGllbnQgb2YgZm9ybSBjaGFuZ2VzIGFmdGVyIGEgcGFnZSBoYXMgbG9hZGVkLgorICAgICAgICBX
aWxsIGJlIHVzZWQgdG8gYWRkIGF1dG9maWxsIHN1cHBvcnQgZm9yIGFqYXgteSB3ZWJwYWdlcy4g
ZS5nIGlmIHdoaWxlIGZpbGxpbmcgb3V0IGEgZm9ybSwgbmV3IGZpZWxkcworICAgICAgICBhcmUg
ZHluYW1pY2FsbHkgY3JlYXRlZCwgYXV0b2ZpbGwgY2FuIGtub3cgdG8gcmUtcXVlcnkgdGhlIGF1
dG9maWxsIHNlcnZlciBhbmQga2VlcCBnb2luZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDM3NQorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2wpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xz
VGltZXJGaXJlZCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1bWVu
dCk6CisgICAgICAgIGFkZGVkIG1ldGhvZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbCwgd2hpY2gg
YmF0Y2hlcyBmb3JtIGNoYW5nZXMKKyAgICAgICAgYW5kIGNhbGxzIG91dCB0byBDaHJvbWVDbGll
bnQgb24gYSB0aW1lci4KKyAgICAgICAgKiBodG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OnJlc2V0Rm9ybU93bmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybUF0dHJpYnV0
ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9Gb3JtQXNzb2Np
YXRlZEVsZW1lbnQuaDoKKyAgICAgICAgKEZvcm1Bc3NvY2lhdGVkRWxlbWVudCk6CisgICAgICAg
IGFkZCBjYWxscyB0byBEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2wgd2hlbiBmb3Jt
IGNoYW5nZXMKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6Omluc2VydGVkSW50byk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5oOgorICAgICAgICBhZGQgY2FsbCB0
byBEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2wKKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmg6CisgICAgICAgIChFbXB0eUNocm9tZUNsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpFbXB0eUNocm9tZUNsaWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2Vz
KToKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50
KToKKyAgICAgICAgYWRkIG5ldyBtZXRob2QgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzCisKIDIw
MTMtMDMtMDUgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KICAKICAgICAg
ICAgQVg6IFN1cHBvcnQgYXJpYS1wb3NpbnNldC9zZXRzaXplCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IGQ4OGUwNDMwOTEzNTQ1NTA0MjIyMzYyOTJlNzZlOTFlNGJmMThiNGIuLjU0YWZj
ZDczZDZkNjNjYmYxZmZlYmYxNTE5ZDgwODM5NTIwOGYyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTMtMDItMjYgIERhbmUgV2FsbGluZ2EgIDxkZ3dh
bGxpbmdhQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgY2xpZW50IGNhbGxiYWNrcyB0byBu
b3RpZnkgb2YgY2hhbmdlcyBvZiBhc3NvY2lhdGVkIGZyb20gY29udHJvbHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDM3NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBmb3JtIGFzc29j
aWF0aW9uIG1ldGhvZHMgb2YgQ2hyb21lQ2xpZW50CisgICAgICAgIHRvIGluZm9ybSBhdXRvZmls
bCBvZiBmb3JtIGNoYW5nZXMgYWZ0ZXIgYSBwYWdlIGhhcyBsb2FkZWQKKworICAgICAgICAqIHB1
YmxpYy9XZWJBdXRvZmlsbENsaWVudC5oOgorICAgICAgICAoV2ViQXV0b2ZpbGxDbGllbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJBdXRvZmlsbENsaWVudDo6ZGlkQXNzb2NpYXRlSW5wdXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJBdXRvZmlsbENsaWVudDo6ZGlkQWRkRm9ybSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9maWxsQ2xpZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMpOgor
ICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50SW1wbDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKToKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNob3VsZE5vdGlmeU9uRm9y
bUNoYW5nZXMpOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAgIChD
aHJvbWVDbGllbnRJbXBsKToKKwogMjAxMy0wMy0wNSAgQWxleGFuZHJlIEVsaWFzICA8YWVsaWFz
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFNjcm9sbCBkZWx0YXMgc2hvdWxk
IGJlIGZsb2F0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggOWE4Yjc4ZTFhOTgxNDQ4ODFk
NjlmMDkzZmI5NTA1NmZmOTQzMDNmNy4uNGI5ZTQ1NTE2MWFhYmMzYTRiZWM2ZTAxYTQxZTY1NWU2
YjgwNzhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00ODcsNiArNDg3LDcgQEAgRG9j
dW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGlzWEhU
TUwsIGJvb2wgaXNIVE1MKQogI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQogICAgICwgbV90
ZW1wbGF0ZURvY3VtZW50SG9zdCgwKQogI2VuZGlmCisgICAgLCBtX2RpZEFzc29jaWF0ZUZvcm1D
b250cm9sc1RpbWVyKHRoaXMsICZEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzVGlt
ZXJGaXJlZCkKIHsKICAgICBtX3ByaW50aW5nID0gZmFsc2U7CiAgICAgbV9wYWdpbmF0ZWRGb3JT
Y3JlZW4gPSBmYWxzZTsKQEAgLTYwNzEsNCArNjA3MiwyNyBAQCBEb2N1bWVudCogRG9jdW1lbnQ6
OmVuc3VyZVRlbXBsYXRlRG9jdW1lbnQoKQogfQogI2VuZGlmCiAKK3ZvaWQgRG9jdW1lbnQ6OmRp
ZEFzc29jaWF0ZUZvcm1Db250cm9sKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFmcmFt
ZSgpIHx8ICFmcmFtZSgpLT5wYWdlKCkKKyAgICAgICAgfHwgIWZyYW1lKCktPnBhZ2UoKS0+Y2hy
b21lKCktPmNsaWVudCgpLT5zaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkpCisgICAgICAgIHJl
dHVybjsKKyAgICBtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHMuYWRkKGVsZW1lbnQpOworICAgIGlm
ICghbV9kaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBt
X2RpZEFzc29jaWF0ZUZvcm1Db250cm9sc1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwordm9p
ZCBEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzVGltZXJGaXJlZChUaW1lcjxEb2N1
bWVudD4qIHRpbWVyKQoreworICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX2Rp
ZEFzc29jaWF0ZUZvcm1Db250cm9sc1RpbWVyKTsKKyAgICBpZiAoIWZyYW1lKCkgfHwgIWZyYW1l
KCktPnBhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEhhc2hTZXQ8RWxlbWVudCo+IGFzc29j
aWF0ZWRGb3JtQ29udHJvbHM7CisgICAgSGFzaFNldDxFbGVtZW50Kj46Oml0ZXJhdG9yIGNvbnRy
b2xzRW5kID0gbV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzLmVuZCgpOworICAgIGZvciAoSGFzaFNl
dDxFbGVtZW50Kj46Oml0ZXJhdG9yIGl0ID0gbV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzLmJlZ2lu
KCk7IGl0ICE9IGNvbnRyb2xzRW5kOyArK2l0KQorICAgICAgICBhc3NvY2lhdGVkRm9ybUNvbnRy
b2xzLmFkZCgqaXQpOworICAgIGZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpLT5k
aWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoYXNzb2NpYXRlZEZvcm1Db250cm9scyk7CisgICAgbV9h
c3NvY2lhdGVkRm9ybUNvbnRyb2xzLmNsZWFyKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMWFkNjE1MTM1M2I2YWU0Mjg4N2NhZThhNTMyNTc4
Mzk5ZTY0ZTZmMy4uZTQ2MWQwYzFjMDk1OTZjNDQ1ZTY4M2UxNDRjNjI0NzgwZjRlZTM2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJWaWV3cG9ydEFy
Z3VtZW50cy5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9GaXhlZEFy
cmF5Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgpAQCAtMTE4OCw2ICsxMTg5LDggQEAgcHVibGljOgogICAgIERvY3VtZW50KiB0ZW1wbGF0ZURv
Y3VtZW50SG9zdCgpIHsgcmV0dXJuIG1fdGVtcGxhdGVEb2N1bWVudEhvc3Q7IH0KICNlbmRpZgog
CisgICAgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbChFbGVtZW50Kik7CisKICAgICB2aXJ0
dWFsIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAw
KTsKIAogICAgIHZpcnR1YWwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbigpIGNvbnN0
IE9WRVJSSURFOwpAQCAtMTI3Miw2ICsxMjc1LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZExp
c3RlbmVyVHlwZShMaXN0ZW5lclR5cGUgbGlzdGVuZXJUeXBlKSB7IG1fbGlzdGVuZXJUeXBlcyB8
PSBsaXN0ZW5lclR5cGU7IH0KICAgICB2b2lkIGFkZE11dGF0aW9uRXZlbnRMaXN0ZW5lclR5cGVJ
ZkVuYWJsZWQoTGlzdGVuZXJUeXBlKTsKIAorICAgIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRy
b2xzVGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4qKTsKKwogICAgIHZvaWQgc3R5bGVSZXNvbHZl
clRocm93YXdheVRpbWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+Kik7CiAgICAgVGltZXI8RG9jdW1l
bnQ+IG1fc3R5bGVSZXNvbHZlclRocm93YXdheVRpbWVyOwogICAgIGRvdWJsZSBtX2xhc3RTdHls
ZVJlc29sdmVyQWNjZXNzVGltZTsKQEAgLTE1NTgsNiArMTU2MywxMCBAQCBwcml2YXRlOgogICAg
IFJlZlB0cjxEb2N1bWVudD4gbV90ZW1wbGF0ZURvY3VtZW50OwogICAgIERvY3VtZW50KiBtX3Rl
bXBsYXRlRG9jdW1lbnRIb3N0OyAvLyBNYW51YWxseSBtYW5hZ2VkIHdlYWtyZWYgKGJhY2twb2lu
dGVyIGZyb20gbV90ZW1wbGF0ZURvY3VtZW50KS4KICNlbmRpZgorCisgICAgVGltZXI8RG9jdW1l
bnQ+IG1fZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzVGltZXI7CisgICAgSGFzaFNldDxFbGVtZW50
Kj4gbV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzOworCiB9OwogCiBpbmxpbmUgdm9pZCBEb2N1bWVu
dDo6bm90aWZ5UmVtb3ZlUGVuZGluZ1NoZWV0SWZOZWVkZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwCmluZGV4IGEyMjM1YjI5MDg2NDAyYTBhZWU4
NDljNTcwNzJmZDE4Y2NiMmU1ZmEuLjRmNTNhZGI1OGYxMjhmMTM0NjYxMjBiN2U5MjE5NTM5YTc4
YzQ4MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5j
cHAKQEAgLTI1LDcgKzI1LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQuaCIKIAorI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgogI2luY2x1
ZGUgIkZvcm1Db250cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCkBAIC0xNTcsNyArMTU5LDExIEBAIHZvaWQgRm9ybUFzc29jaWF0
ZWRFbGVtZW50Ojpmb3JtV2lsbEJlRGVzdHJveWVkKCkKIAogdm9pZCBGb3JtQXNzb2NpYXRlZEVs
ZW1lbnQ6OnJlc2V0Rm9ybU93bmVyKCkKIHsKKyAgICBIVE1MRm9ybUVsZW1lbnQqIG9yaWdpbmFs
Rm9ybSA9IG1fZm9ybTsKICAgICBzZXRGb3JtKGZpbmRBc3NvY2lhdGVkRm9ybSh0b0hUTUxFbGVt
ZW50KHRoaXMpLCBtX2Zvcm0pKTsKKyAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IHRvSFRNTEVs
ZW1lbnQodGhpcyk7ICAgICAKKyAgICBpZiAobV9mb3JtICYmIG1fZm9ybSAhPSBvcmlnaW5hbEZv
cm0gJiYgbV9mb3JtLT5pbkRvY3VtZW50KCkpCisgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCkt
PmRpZEFzc29jaWF0ZUZvcm1Db250cm9sKGVsZW1lbnQpOwogfQogCiB2b2lkIEZvcm1Bc3NvY2lh
dGVkRWxlbWVudDo6Zm9ybUF0dHJpYnV0ZUNoYW5nZWQoKQpAQCAtMTY1LDcgKzE3MSwxMSBAQCB2
b2lkIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybUF0dHJpYnV0ZUNoYW5nZWQoKQogICAgIEhU
TUxFbGVtZW50KiBlbGVtZW50ID0gdG9IVE1MRWxlbWVudCh0aGlzKTsKICAgICBpZiAoIWVsZW1l
bnQtPmZhc3RIYXNBdHRyaWJ1dGUoZm9ybUF0dHIpKSB7CiAgICAgICAgIC8vIFRoZSBmb3JtIGF0
dHJpYnV0ZSByZW1vdmVkLiBXZSBuZWVkIHRvIHJlc2V0IGZvcm0gb3duZXIgaGVyZS4KKyAgICAg
ICAgSFRNTEZvcm1FbGVtZW50KiBvcmlnaW5hbEZvcm0gPSBtX2Zvcm07CiAgICAgICAgIHNldEZv
cm0oZWxlbWVudC0+ZmluZEZvcm1BbmNlc3RvcigpKTsKKyAgICAgICAgSFRNTEVsZW1lbnQqIGVs
ZW1lbnQgPSB0b0hUTUxFbGVtZW50KHRoaXMpOworICAgICAgICBpZiAobV9mb3JtICYmIG1fZm9y
bSAhPSBvcmlnaW5hbEZvcm0gJiYgbV9mb3JtLT5pbkRvY3VtZW50KCkpCisgICAgICAgICAgICBl
bGVtZW50LT5kb2N1bWVudCgpLT5kaWRBc3NvY2lhdGVGb3JtQ29udHJvbChlbGVtZW50KTsKICAg
ICAgICAgbV9mb3JtQXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXIgPSBudWxscHRyOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIHJlc2V0Rm9ybU93bmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3Jt
RWxlbWVudC5jcHAKaW5kZXggOTUzZmVjNmVkNzAyZWE3N2IxMDI3NzY2MGFmY2ZjMWVlODI2ODE3
ZC4uNDdiMmIzNmVlNmM3M2EwNzE0YjFmNmU2YWFiMDBiODY0YjQzZmViYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcApAQCAtMTM5LDYgKzEzOSw4IEBAIGJvb2wgSFRN
TEZvcm1FbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0
JiBjb250ZXh0KQogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MRm9ybUVs
ZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2RlKiBpbnNlcnRpb25Qb2ludCkKIHsKICAg
ICBIVE1MRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKGluc2VydGlvblBvaW50KTsKKyAgICBpZiAoaW5z
ZXJ0aW9uUG9pbnQtPmluRG9jdW1lbnQoKSkKKyAgICAgICAgdGhpcy0+ZG9jdW1lbnQoKS0+ZGlk
QXNzb2NpYXRlRm9ybUNvbnRyb2wodGhpcyk7CiAgICAgcmV0dXJuIEluc2VydGlvbkRvbmU7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCAxZTFhMTRjNTYyZjY1NTdi
OTA5MDFlOGFhOTk4ODg3YTk1MWQ4NTlhLi41YjgzZmUwNWYzZmUxNTRiMTEzMTU4MDUwNGY5ZWE3
NGYxYjMzNGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0yMDgsNiAr
MjA4LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJl
Y3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIAogICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5Q2hyb21lQ2xpZW50KCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQorCisgICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhI
YXNoU2V0PEVsZW1lbnQqPiYpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGROb3RpZnlPbkZv
cm1DaGFuZ2VzKCkgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKIGNsYXNzIEVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKaW5kZXggYzc4YzcyYmYxNzA5ZjgzZmNjNmMzMjU1MWFiN2IyMDdmZTU5YjY3Yi4u
ZDUyZTNhNzAxNWMzZmRjYjI3OGEyOTQwMGJlMjUxZTNkMDM3Y2FmOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCkBAIC0zODMsNiArMzgzLDkgQEAgcHVibGljOgogICAgIC8vIEZJWE1F
OiBQb3J0IHNob3VsZCByZXR1cm4gdHJ1ZSB1c2luZyBoZXVyaXN0aWMgYmFzZWQgb24gc2Nyb2xs
YWJsZShSZW5kZXJCb3gpLgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBdXRvc2Nyb2xsRm9yRHJh
Z0FuZERyb3AoUmVuZGVyQm94KikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHZpcnR1
YWwgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoSGFzaFNldDxFbGVtZW50Kj4mKSB7IH07
CisgICAgdmlydHVhbCBib29sIHNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKSB7IHJldHVybiBm
YWxzZTsgfTsKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfkNocm9tZUNsaWVudCgpIHsgfQog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxs
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBdXRvZmlsbENsaWVu
dC5oCmluZGV4IGFhNGQwYTNkYWVkYjFjN2VjYmY2OWQ0Y2M0MjYwMjI2Y2QwNjM4ZjAuLmI2OTA0
MzMxN2UzNGI4NTZkZGQzN2U3ZDA4MWMxNzg4ZTRhYjk4OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxsQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQXV0b2ZpbGxDbGllbnQuaApAQCAtNDAsNiArNDAsOCBA
QCBjbGFzcyBXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2ViTm9kZTsKIGNsYXNzIFdlYlN0cmlu
ZzsKIAordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYlZlY3RvcjsKKwogY2xhc3MgV2Vi
QXV0b2ZpbGxDbGllbnQgewogcHVibGljOgogICAgIGVudW0gewpAQCAtOTMsNiArOTUsOCBAQCBw
dWJsaWM6CiAgICAgLy8gSW5mb3JtcyB0aGUgY2xpZW50IHdoZXRoZXIgb3Igbm90IGFueSBzdWJz
ZXF1ZW50IHRleHQgY2hhbmdlcyBzaG91bGQgYmUgaWdub3JlZC4KICAgICB2aXJ0dWFsIHZvaWQg
c2V0SWdub3JlVGV4dENoYW5nZXMoYm9vbCBpZ25vcmUpIHsgfQogCisgICAgdmlydHVhbCB2b2lk
IGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhjb25zdCBXZWJWZWN0b3I8V2ViTm9kZT4mKSB7IH0K
KwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfldlYkF1dG9maWxsQ2xpZW50KCkgeyB9CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRl
eCBiMTEwODkzZGQ1Mzc4ZTY4ZTk4MWMyMWM0ODZjYzllMTI3NGMwNWMyLi4yNGYwZjIyZWQyMzJj
M2QwNDI0NjdlOTBlNDk2Y2I1OWMyMmU0ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNzcsNiArNzcsNyBAQAogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQuaCIKICNp
bmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVkZSAiV2ViQXV0b2ZpbGxD
bGllbnQuaCIKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICNpbmNsdWRlICJXZWJDb2xv
ckNob29zZXIuaCIKICNlbmRpZgpAQCAtMTE0NCw2ICsxMTQ1LDIzIEBAIHZvaWQgQ2hyb21lQ2xp
ZW50SW1wbDo6YW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKQogfQogI2VuZGlmCiAKK3ZvaWQgQ2hy
b21lQ2xpZW50SW1wbDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKEhhc2hTZXQ8RWxlbWVudCo+
JiBlbGVtZW50cykKK3sKKyAgICBpZiAoIW1fd2ViVmlldy0+YXV0b2ZpbGxDbGllbnQoKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIFdlYlZlY3RvcjxXZWJOb2RlPiBlbGVtZW50VmVjdG9yKHN0YXRp
Y19jYXN0PHNpemVfdD4oZWxlbWVudHMuc2l6ZSgpKSk7CisgICAgc2l6ZV90IGkgPSAwOworICAg
IEhhc2hTZXQ8RWxlbWVudCo+OjppdGVyYXRvciBlbmQgPSBlbGVtZW50cy5lbmQoKTsKKyAgICBm
b3IgKEhhc2hTZXQ8RWxlbWVudCo+OjppdGVyYXRvciBpdCA9IGVsZW1lbnRzLmJlZ2luKCk7IGl0
ICE9IGVuZDsgKytpdCwgKytpKQorICAgICAgICBlbGVtZW50VmVjdG9yW2ldID0gV2ViTm9kZSgq
aXQpOworICAgIG1fd2ViVmlldy0+YXV0b2ZpbGxDbGllbnQoKS0+ZGlkQXNzb2NpYXRlRm9ybUNv
bnRyb2xzKGVsZW1lbnRWZWN0b3IpOworfQorCitib29sIENocm9tZUNsaWVudEltcGw6OnNob3Vs
ZE5vdGlmeU9uRm9ybUNoYW5nZXMoKQoreworICAgIHJldHVybiB0cnVlOworfQorCiAjaWYgRU5B
QkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQogUGFzc093blB0cjxOYXZpZ2F0b3JDb250ZW50
VXRpbHNDbGllbnRJbXBsPiBOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnRJbXBsOjpjcmVhdGUo
V2ViVmlld0ltcGwqIHdlYlZpZXcpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmgKaW5kZXggM2UyOGU1MzVjNzAxYmEyM2NkMGUxYWM3OTA0MWFhZWIx
NDZmZmU5OC4uNTdmY2M3MmQ4YmU2OGU3NjRiOGQxYjEyMmMxYjc0NDYzOGNiMTgwZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaApAQCAtMjM0LDYg
KzIzNCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNQb2ludGVyTG9ja2VkKCk7CiAj
ZW5kaWYKIAorICAgIHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoSGFzaFNl
dDxXZWJDb3JlOjpFbGVtZW50Kj4mKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
Tm90aWZ5T25Gb3JtQ2hhbmdlcygpIE9WRVJSSURFOworCiBwcml2YXRlOgogICAgIFdlYk5hdmln
YXRpb25Qb2xpY3kgZ2V0TmF2aWdhdGlvblBvbGljeSgpOwogICAgIHZvaWQgZ2V0UG9wdXBNZW51
SW5mbyhXZWJDb3JlOjpQb3B1cENvbnRhaW5lciosIFdlYlBvcHVwTWVudUluZm8qKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194347</attachid>
            <date>2013-03-21 14:46:19 -0700</date>
            <delta_ts>2013-03-22 12:23:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110375-20130321144207.patch</filename>
            <type>text/plain</type>
            <size>12881</size>
            <attacher name="Dane Walllinga">dgwallinga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTkwNWQyZjA4ZTYzZDdh
YzAzNzg1NTNjNzJmNzQyNTdlZTBkNGY0ZC4uNjJkYmFlYjAyMzdiNzFiNmI2OGJkNTEwMjg2ZTQw
YzE0YTk4MTQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTAyLTI2ICBEYW5l
IFdhbGxpbmdhICA8ZGd3YWxsaW5nYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGNsaWVu
dCBjYWxsYmFja3MgdG8gbm90aWZ5IG9mIGNoYW5nZXMgb2YgYXNzb2NpYXRlZCBmcm9tIGNvbnRy
b2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAz
NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIb29r
IEZvcm1Bc3NvY2lhdGVkRWxlbWVudCwgSFRNTEZvcm1FbGVtZW50IHRvIG5vdGlmeSBFZGl0b3JD
bGllbnQgb2YgZm9ybSBjaGFuZ2VzIGFmdGVyIGEgcGFnZSBoYXMgbG9hZGVkLgorICAgICAgICBX
aWxsIGJlIHVzZWQgdG8gYWRkIGF1dG9maWxsIHN1cHBvcnQgZm9yIGFqYXgteSB3ZWJwYWdlcy4g
ZS5nIGlmIHdoaWxlIGZpbGxpbmcgb3V0IGEgZm9ybSwgbmV3IGZpZWxkcworICAgICAgICBhcmUg
ZHluYW1pY2FsbHkgY3JlYXRlZCwgYXV0b2ZpbGwgY2FuIGtub3cgdG8gcmUtcXVlcnkgdGhlIGF1
dG9maWxsIHNlcnZlciBhbmQga2VlcCBnb2luZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDM3NQorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2wpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xz
VGltZXJGaXJlZCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1bWVu
dCk6CisgICAgICAgIGFkZGVkIG1ldGhvZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbCwgd2hpY2gg
YmF0Y2hlcyBmb3JtIGNoYW5nZXMKKyAgICAgICAgYW5kIGNhbGxzIG91dCB0byBDaHJvbWVDbGll
bnQgb24gYSB0aW1lci4KKyAgICAgICAgKiBodG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OnJlc2V0Rm9ybU93bmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybUF0dHJpYnV0
ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9Gb3JtQXNzb2Np
YXRlZEVsZW1lbnQuaDoKKyAgICAgICAgKEZvcm1Bc3NvY2lhdGVkRWxlbWVudCk6CisgICAgICAg
IGFkZCBjYWxscyB0byBEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2wgd2hlbiBmb3Jt
IGNoYW5nZXMKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6Omluc2VydGVkSW50byk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5oOgorICAgICAgICBhZGQgY2FsbCB0
byBEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2wKKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmg6CisgICAgICAgIChFbXB0eUNocm9tZUNsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpFbXB0eUNocm9tZUNsaWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2Vz
KToKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50
KToKKyAgICAgICAgYWRkIG5ldyBtZXRob2QgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzCisKIDIw
MTMtMDMtMDUgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KICAKICAgICAg
ICAgQVg6IFN1cHBvcnQgYXJpYS1wb3NpbnNldC9zZXRzaXplCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IGQ4OGUwNDMwOTEzNTQ1NTA0MjIyMzYyOTJlNzZlOTFlNGJmMThiNGIuLjU0YWZj
ZDczZDZkNjNjYmYxZmZlYmYxNTE5ZDgwODM5NTIwOGYyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTMtMDItMjYgIERhbmUgV2FsbGluZ2EgIDxkZ3dh
bGxpbmdhQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgY2xpZW50IGNhbGxiYWNrcyB0byBu
b3RpZnkgb2YgY2hhbmdlcyBvZiBhc3NvY2lhdGVkIGZyb20gY29udHJvbHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDM3NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBmb3JtIGFzc29j
aWF0aW9uIG1ldGhvZHMgb2YgQ2hyb21lQ2xpZW50CisgICAgICAgIHRvIGluZm9ybSBhdXRvZmls
bCBvZiBmb3JtIGNoYW5nZXMgYWZ0ZXIgYSBwYWdlIGhhcyBsb2FkZWQKKworICAgICAgICAqIHB1
YmxpYy9XZWJBdXRvZmlsbENsaWVudC5oOgorICAgICAgICAoV2ViQXV0b2ZpbGxDbGllbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJBdXRvZmlsbENsaWVudDo6ZGlkQXNzb2NpYXRlSW5wdXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJBdXRvZmlsbENsaWVudDo6ZGlkQWRkRm9ybSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9maWxsQ2xpZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMpOgor
ICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50SW1wbDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKToKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNob3VsZE5vdGlmeU9uRm9y
bUNoYW5nZXMpOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAgIChD
aHJvbWVDbGllbnRJbXBsKToKKwogMjAxMy0wMy0wNSAgQWxleGFuZHJlIEVsaWFzICA8YWVsaWFz
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFNjcm9sbCBkZWx0YXMgc2hvdWxk
IGJlIGZsb2F0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggOWE4Yjc4ZTFhOTgxNDQ4ODFk
NjlmMDkzZmI5NTA1NmZmOTQzMDNmNy4uMzk1OTAzN2Q3MGQ0NTcwZjIyMDcwMGZiOWFjZmU5YzZi
NmE1ZjFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00ODcsNiArNDg3LDcgQEAgRG9j
dW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGlzWEhU
TUwsIGJvb2wgaXNIVE1MKQogI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQogICAgICwgbV90
ZW1wbGF0ZURvY3VtZW50SG9zdCgwKQogI2VuZGlmCisgICAgLCBtX2RpZEFzc29jaWF0ZUZvcm1D
b250cm9sc1RpbWVyKHRoaXMsICZEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzVGlt
ZXJGaXJlZCkKIHsKICAgICBtX3ByaW50aW5nID0gZmFsc2U7CiAgICAgbV9wYWdpbmF0ZWRGb3JT
Y3JlZW4gPSBmYWxzZTsKQEAgLTYwNzEsNCArNjA3MiwyNiBAQCBEb2N1bWVudCogRG9jdW1lbnQ6
OmVuc3VyZVRlbXBsYXRlRG9jdW1lbnQoKQogfQogI2VuZGlmCiAKK3ZvaWQgRG9jdW1lbnQ6OmRp
ZEFzc29jaWF0ZUZvcm1Db250cm9sKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFmcmFt
ZSgpIHx8ICFmcmFtZSgpLT5wYWdlKCkgfHwgIWZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPmNs
aWVudCgpLT5zaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkpCisgICAgICAgIHJldHVybjsKKyAg
ICBtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHMuYWRkKGVsZW1lbnQpOworICAgIGlmICghbV9kaWRB
c3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2RpZEFzc29j
aWF0ZUZvcm1Db250cm9sc1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwordm9pZCBEb2N1bWVu
dDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzVGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4qIHRp
bWVyKQoreworICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX2RpZEFzc29jaWF0
ZUZvcm1Db250cm9sc1RpbWVyKTsKKyAgICBpZiAoIWZyYW1lKCkgfHwgIWZyYW1lKCktPnBhZ2Uo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgVmVjdG9yPEVsZW1lbnQqPiBhc3NvY2lhdGVkRm9y
bUNvbnRyb2xzOworICAgIGNvcHlUb1ZlY3RvcihtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHMsIGFz
c29jaWF0ZWRGb3JtQ29udHJvbHMpOworCisgICAgZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+
Y2xpZW50KCktPmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhhc3NvY2lhdGVkRm9ybUNvbnRyb2xz
KTsKKyAgICBtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHMuY2xlYXIoKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAxYWQ2MTUxMzUzYjZhZTQyODg3
Y2FlOGE1MzI1NzgzOTllNjRlNmYzLi5lNDYxZDBjMWMwOTU5NmM0NDVlNjgzZTE0NGM2MjQ3ODBm
NGVlMzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUg
IlZpZXdwb3J0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8
d3RmL0ZpeGVkQXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0
Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CkBAIC0xMTg4LDYgKzExODksOCBAQCBwdWJsaWM6CiAgICAgRG9jdW1lbnQq
IHRlbXBsYXRlRG9jdW1lbnRIb3N0KCkgeyByZXR1cm4gbV90ZW1wbGF0ZURvY3VtZW50SG9zdDsg
fQogI2VuZGlmCiAKKyAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9sKEVsZW1lbnQqKTsK
KwogICAgIHZpcnR1YWwgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNz
YWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRl
bnRpZmllciA9IDApOwogCiAgICAgdmlydHVhbCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3Jp
Z2luKCkgY29uc3QgT1ZFUlJJREU7CkBAIC0xMjcyLDYgKzEyNzUsOCBAQCBwcml2YXRlOgogICAg
IHZvaWQgYWRkTGlzdGVuZXJUeXBlKExpc3RlbmVyVHlwZSBsaXN0ZW5lclR5cGUpIHsgbV9saXN0
ZW5lclR5cGVzIHw9IGxpc3RlbmVyVHlwZTsgfQogICAgIHZvaWQgYWRkTXV0YXRpb25FdmVudExp
c3RlbmVyVHlwZUlmRW5hYmxlZChMaXN0ZW5lclR5cGUpOwogCisgICAgdm9pZCBkaWRBc3NvY2lh
dGVGb3JtQ29udHJvbHNUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopOworCiAgICAgdm9pZCBz
dHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4qKTsKICAgICBU
aW1lcjxEb2N1bWVudD4gbV9zdHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXI7CiAgICAgZG91Ymxl
IG1fbGFzdFN0eWxlUmVzb2x2ZXJBY2Nlc3NUaW1lOwpAQCAtMTU1OCw2ICsxNTYzLDEwIEBAIHBy
aXZhdGU6CiAgICAgUmVmUHRyPERvY3VtZW50PiBtX3RlbXBsYXRlRG9jdW1lbnQ7CiAgICAgRG9j
dW1lbnQqIG1fdGVtcGxhdGVEb2N1bWVudEhvc3Q7IC8vIE1hbnVhbGx5IG1hbmFnZWQgd2Vha3Jl
ZiAoYmFja3BvaW50ZXIgZnJvbSBtX3RlbXBsYXRlRG9jdW1lbnQpLgogI2VuZGlmCisKKyAgICBU
aW1lcjxEb2N1bWVudD4gbV9kaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lcjsKKyAgICBIYXNo
U2V0PEVsZW1lbnQqPiBtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHM7CisKIH07CiAKIGlubGluZSB2
b2lkIERvY3VtZW50Ojpub3RpZnlSZW1vdmVQZW5kaW5nU2hlZXRJZk5lZWRlZCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAKaW5kZXggYTIyMzViMjkw
ODY0MDJhMGFlZTg0OWM1NzA3MmZkMThjY2IyZTVmYS4uNGY1M2FkYjU4ZjEyOGYxMzQ2NjEyMGI3
ZTkyMTk1MzlhNzhjNDgxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNz
b2NpYXRlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0
ZWRFbGVtZW50LmNwcApAQCAtMjUsNyArMjUsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkZvcm1Bc3NvY2lhdGVkRWxlbWVudC5oIgogCisjaW5jbHVkZSAiRWRpdG9yQ2xpZW50
LmgiCiAjaW5jbHVkZSAiRm9ybUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2lu
Y2x1ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTE1Nyw3ICsxNTksMTEgQEAgdm9pZCBG
b3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm1XaWxsQmVEZXN0cm95ZWQoKQogCiB2b2lkIEZvcm1B
c3NvY2lhdGVkRWxlbWVudDo6cmVzZXRGb3JtT3duZXIoKQogeworICAgIEhUTUxGb3JtRWxlbWVu
dCogb3JpZ2luYWxGb3JtID0gbV9mb3JtOwogICAgIHNldEZvcm0oZmluZEFzc29jaWF0ZWRGb3Jt
KHRvSFRNTEVsZW1lbnQodGhpcyksIG1fZm9ybSkpOworICAgIEhUTUxFbGVtZW50KiBlbGVtZW50
ID0gdG9IVE1MRWxlbWVudCh0aGlzKTsgICAgIAorICAgIGlmIChtX2Zvcm0gJiYgbV9mb3JtICE9
IG9yaWdpbmFsRm9ybSAmJiBtX2Zvcm0tPmluRG9jdW1lbnQoKSkKKyAgICAgICAgZWxlbWVudC0+
ZG9jdW1lbnQoKS0+ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2woZWxlbWVudCk7CiB9CiAKIHZvaWQg
Rm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmlidXRlQ2hhbmdlZCgpCkBAIC0xNjUsNyAr
MTcxLDExIEBAIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmlidXRlQ2hhbmdl
ZCgpCiAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KHRoaXMpOwogICAg
IGlmICghZWxlbWVudC0+ZmFzdEhhc0F0dHJpYnV0ZShmb3JtQXR0cikpIHsKICAgICAgICAgLy8g
VGhlIGZvcm0gYXR0cmlidXRlIHJlbW92ZWQuIFdlIG5lZWQgdG8gcmVzZXQgZm9ybSBvd25lciBo
ZXJlLgorICAgICAgICBIVE1MRm9ybUVsZW1lbnQqIG9yaWdpbmFsRm9ybSA9IG1fZm9ybTsKICAg
ICAgICAgc2V0Rm9ybShlbGVtZW50LT5maW5kRm9ybUFuY2VzdG9yKCkpOworICAgICAgICBIVE1M
RWxlbWVudCogZWxlbWVudCA9IHRvSFRNTEVsZW1lbnQodGhpcyk7CisgICAgICAgIGlmIChtX2Zv
cm0gJiYgbV9mb3JtICE9IG9yaWdpbmFsRm9ybSAmJiBtX2Zvcm0tPmluRG9jdW1lbnQoKSkKKyAg
ICAgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPmRpZEFzc29jaWF0ZUZvcm1Db250cm9sKGVs
ZW1lbnQpOwogICAgICAgICBtX2Zvcm1BdHRyaWJ1dGVUYXJnZXRPYnNlcnZlciA9IG51bGxwdHI7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgcmVzZXRGb3JtT3duZXIoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRleCA5NTNmZWM2ZWQ3MDJlYTc3YjEwMjc3NjYwYWZj
ZmMxZWU4MjY4MTdkLi40N2IyYjM2ZWU2YzczYTA3MTRiMWY2ZTZhYWIwMGI4NjRiNDNmZWJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCkBAIC0xMzksNiArMTM5LDgg
QEAgYm9vbCBIVE1MRm9ybUVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRl
cmluZ0NvbnRleHQmIGNvbnRleHQpCiBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0
IEhUTUxGb3JtRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUqIGluc2VydGlvblBv
aW50KQogewogICAgIEhUTUxFbGVtZW50OjppbnNlcnRlZEludG8oaW5zZXJ0aW9uUG9pbnQpOwor
ICAgIGlmIChpbnNlcnRpb25Qb2ludC0+aW5Eb2N1bWVudCgpKQorICAgICAgICB0aGlzLT5kb2N1
bWVudCgpLT5kaWRBc3NvY2lhdGVGb3JtQ29udHJvbCh0aGlzKTsKICAgICByZXR1cm4gSW5zZXJ0
aW9uRG9uZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDFlMWEx
NGM1NjJmNjU1N2I5MDkwMWU4YWE5OTg4ODdhOTUxZDg1OWEuLmE3Y2JkYzFlYzRhMzYwNjQ5N2U2
YmZjOWE3ODFjNTU4Y2I0NWE3OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
QEAgLTIwOCw2ICsyMDgsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJl
ckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlzRW1wdHlDaHJvbWVDbGllbnQoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9y
bUNvbnRyb2xzKFZlY3RvcjxFbGVtZW50Kj4mKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
Tm90aWZ5T25Gb3JtQ2hhbmdlcygpIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiBjbGFzcyBFbXB0
eUZyYW1lTG9hZGVyQ2xpZW50IDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGM3OGM3MmJmMTcwOWY4M2ZjYzZjMzI1NTFhYjdiMjA3
ZmU1OWI2N2IuLjFjMDkxZmNiYWVmYWFiMTYyNmE3ZTE2YTIzYmVkMDBhZjgyMjQ2MjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzgzLDYgKzM4Myw5IEBAIHB1YmxpYzoKICAg
ICAvLyBGSVhNRTogUG9ydCBzaG91bGQgcmV0dXJuIHRydWUgdXNpbmcgaGV1cmlzdGljIGJhc2Vk
IG9uIHNjcm9sbGFibGUoUmVuZGVyQm94KS4KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXV0b3Nj
cm9sbEZvckRyYWdBbmREcm9wKFJlbmRlckJveCopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKFZlY3RvcjxFbGVtZW50
Kj4mKSB7IH07CisgICAgdmlydHVhbCBib29sIHNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKSB7
IHJldHVybiBmYWxzZTsgfTsKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfkNocm9tZUNsaWVu
dCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YkF1dG9maWxsQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBdXRv
ZmlsbENsaWVudC5oCmluZGV4IGFhNGQwYTNkYWVkYjFjN2VjYmY2OWQ0Y2M0MjYwMjI2Y2QwNjM4
ZjAuLmI2OTA0MzMxN2UzNGI4NTZkZGQzN2U3ZDA4MWMxNzg4ZTRhYjk4OGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxsQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQXV0b2ZpbGxDbGllbnQuaApAQCAtNDAs
NiArNDAsOCBAQCBjbGFzcyBXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2ViTm9kZTsKIGNsYXNz
IFdlYlN0cmluZzsKIAordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYlZlY3RvcjsKKwog
Y2xhc3MgV2ViQXV0b2ZpbGxDbGllbnQgewogcHVibGljOgogICAgIGVudW0gewpAQCAtOTMsNiAr
OTUsOCBAQCBwdWJsaWM6CiAgICAgLy8gSW5mb3JtcyB0aGUgY2xpZW50IHdoZXRoZXIgb3Igbm90
IGFueSBzdWJzZXF1ZW50IHRleHQgY2hhbmdlcyBzaG91bGQgYmUgaWdub3JlZC4KICAgICB2aXJ0
dWFsIHZvaWQgc2V0SWdub3JlVGV4dENoYW5nZXMoYm9vbCBpZ25vcmUpIHsgfQogCisgICAgdmly
dHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhjb25zdCBXZWJWZWN0b3I8V2ViTm9k
ZT4mKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfldlYkF1dG9maWxsQ2xpZW50KCkg
eyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmNwcAppbmRleCBiMTEwODkzZGQ1Mzc4ZTY4ZTk4MWMyMWM0ODZjYzllMTI3NGMwNWMyLi44NmUz
OGE5MTA1MDFjZjNmMzViN2RlZTcwNWUwNGQyMDc0MGY0ZGJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNzcsNiArNzcsNyBAQAog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1l
bnQuaCIKICNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVkZSAiV2Vi
QXV0b2ZpbGxDbGllbnQuaCIKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICNpbmNsdWRl
ICJXZWJDb2xvckNob29zZXIuaCIKICNlbmRpZgpAQCAtMTE0NCw2ICsxMTQ1LDIzIEBAIHZvaWQg
Q2hyb21lQ2xpZW50SW1wbDo6YW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKQogfQogI2VuZGlmCiAK
K3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKFZlY3RvcjxF
bGVtZW50Kj4mIGVsZW1lbnRzKQoreworICAgIGlmICghbV93ZWJWaWV3LT5hdXRvZmlsbENsaWVu
dCgpKQorICAgICAgICByZXR1cm47CisgICAgV2ViVmVjdG9yPFdlYk5vZGU+IGVsZW1lbnRWZWN0
b3Ioc3RhdGljX2Nhc3Q8c2l6ZV90PihlbGVtZW50cy5zaXplKCkpKTsKKyAgICBzaXplX3QgaSA9
IDA7CisgICAgVmVjdG9yPEVsZW1lbnQqPjo6aXRlcmF0b3IgZW5kID0gZWxlbWVudHMuZW5kKCk7
CisgICAgZm9yIChWZWN0b3I8RWxlbWVudCo+OjppdGVyYXRvciBpdCA9IGVsZW1lbnRzLmJlZ2lu
KCk7IGl0ICE9IGVuZDsgKytpdCwgKytpKQorICAgICAgICBlbGVtZW50VmVjdG9yW2ldID0gV2Vi
Tm9kZSgqaXQpOworICAgIG1fd2ViVmlldy0+YXV0b2ZpbGxDbGllbnQoKS0+ZGlkQXNzb2NpYXRl
Rm9ybUNvbnRyb2xzKGVsZW1lbnRWZWN0b3IpOworfQorCitib29sIENocm9tZUNsaWVudEltcGw6
OnNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKQoreworICAgIHJldHVybiB0cnVlOworfQorCiAj
aWYgRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQogUGFzc093blB0cjxOYXZpZ2F0b3JD
b250ZW50VXRpbHNDbGllbnRJbXBsPiBOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnRJbXBsOjpj
cmVhdGUoV2ViVmlld0ltcGwqIHdlYlZpZXcpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXggM2UyOGU1MzVjNzAxYmEyM2NkMGUxYWM3OTA0
MWFhZWIxNDZmZmU5OC4uZTUwY2I4NzEzMjc3YWFhYmE4MmU1MDFlZjViMGE1NDIyOWZmZmNjOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaApAQCAt
MjM0LDYgKzIzNCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNQb2ludGVyTG9ja2Vk
KCk7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMo
VmVjdG9yPFdlYkNvcmU6OkVsZW1lbnQqPiYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBz
aG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkgT1ZFUlJJREU7CisKIHByaXZhdGU6CiAgICAgV2Vi
TmF2aWdhdGlvblBvbGljeSBnZXROYXZpZ2F0aW9uUG9saWN5KCk7CiAgICAgdm9pZCBnZXRQb3B1
cE1lbnVJbmZvKFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyKiwgV2ViUG9wdXBNZW51SW5mbyopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194616</attachid>
            <date>2013-03-22 12:24:03 -0700</date>
            <delta_ts>2013-03-22 13:55:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110375-20130322121950.patch</filename>
            <type>text/plain</type>
            <size>12836</size>
            <attacher name="Dane Walllinga">dgwallinga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTkwNWQyZjA4ZTYzZDdh
YzAzNzg1NTNjNzJmNzQyNTdlZTBkNGY0ZC4uNjJkYmFlYjAyMzdiNzFiNmI2OGJkNTEwMjg2ZTQw
YzE0YTk4MTQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTAyLTI2ICBEYW5l
IFdhbGxpbmdhICA8ZGd3YWxsaW5nYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGNsaWVu
dCBjYWxsYmFja3MgdG8gbm90aWZ5IG9mIGNoYW5nZXMgb2YgYXNzb2NpYXRlZCBmcm9tIGNvbnRy
b2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAz
NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIb29r
IEZvcm1Bc3NvY2lhdGVkRWxlbWVudCwgSFRNTEZvcm1FbGVtZW50IHRvIG5vdGlmeSBFZGl0b3JD
bGllbnQgb2YgZm9ybSBjaGFuZ2VzIGFmdGVyIGEgcGFnZSBoYXMgbG9hZGVkLgorICAgICAgICBX
aWxsIGJlIHVzZWQgdG8gYWRkIGF1dG9maWxsIHN1cHBvcnQgZm9yIGFqYXgteSB3ZWJwYWdlcy4g
ZS5nIGlmIHdoaWxlIGZpbGxpbmcgb3V0IGEgZm9ybSwgbmV3IGZpZWxkcworICAgICAgICBhcmUg
ZHluYW1pY2FsbHkgY3JlYXRlZCwgYXV0b2ZpbGwgY2FuIGtub3cgdG8gcmUtcXVlcnkgdGhlIGF1
dG9maWxsIHNlcnZlciBhbmQga2VlcCBnb2luZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDM3NQorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2wpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xz
VGltZXJGaXJlZCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1bWVu
dCk6CisgICAgICAgIGFkZGVkIG1ldGhvZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbCwgd2hpY2gg
YmF0Y2hlcyBmb3JtIGNoYW5nZXMKKyAgICAgICAgYW5kIGNhbGxzIG91dCB0byBDaHJvbWVDbGll
bnQgb24gYSB0aW1lci4KKyAgICAgICAgKiBodG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OnJlc2V0Rm9ybU93bmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybUF0dHJpYnV0
ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9Gb3JtQXNzb2Np
YXRlZEVsZW1lbnQuaDoKKyAgICAgICAgKEZvcm1Bc3NvY2lhdGVkRWxlbWVudCk6CisgICAgICAg
IGFkZCBjYWxscyB0byBEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2wgd2hlbiBmb3Jt
IGNoYW5nZXMKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6Omluc2VydGVkSW50byk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5oOgorICAgICAgICBhZGQgY2FsbCB0
byBEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2wKKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmg6CisgICAgICAgIChFbXB0eUNocm9tZUNsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpFbXB0eUNocm9tZUNsaWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2Vz
KToKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50
KToKKyAgICAgICAgYWRkIG5ldyBtZXRob2QgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzCisKIDIw
MTMtMDMtMDUgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KICAKICAgICAg
ICAgQVg6IFN1cHBvcnQgYXJpYS1wb3NpbnNldC9zZXRzaXplCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IGQ4OGUwNDMwOTEzNTQ1NTA0MjIyMzYyOTJlNzZlOTFlNGJmMThiNGIuLjU0YWZj
ZDczZDZkNjNjYmYxZmZlYmYxNTE5ZDgwODM5NTIwOGYyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTMtMDItMjYgIERhbmUgV2FsbGluZ2EgIDxkZ3dh
bGxpbmdhQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgY2xpZW50IGNhbGxiYWNrcyB0byBu
b3RpZnkgb2YgY2hhbmdlcyBvZiBhc3NvY2lhdGVkIGZyb20gY29udHJvbHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDM3NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBmb3JtIGFzc29j
aWF0aW9uIG1ldGhvZHMgb2YgQ2hyb21lQ2xpZW50CisgICAgICAgIHRvIGluZm9ybSBhdXRvZmls
bCBvZiBmb3JtIGNoYW5nZXMgYWZ0ZXIgYSBwYWdlIGhhcyBsb2FkZWQKKworICAgICAgICAqIHB1
YmxpYy9XZWJBdXRvZmlsbENsaWVudC5oOgorICAgICAgICAoV2ViQXV0b2ZpbGxDbGllbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJBdXRvZmlsbENsaWVudDo6ZGlkQXNzb2NpYXRlSW5wdXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJBdXRvZmlsbENsaWVudDo6ZGlkQWRkRm9ybSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9maWxsQ2xpZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMpOgor
ICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50SW1wbDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKToKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNob3VsZE5vdGlmeU9uRm9y
bUNoYW5nZXMpOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAgIChD
aHJvbWVDbGllbnRJbXBsKToKKwogMjAxMy0wMy0wNSAgQWxleGFuZHJlIEVsaWFzICA8YWVsaWFz
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFNjcm9sbCBkZWx0YXMgc2hvdWxk
IGJlIGZsb2F0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggOWE4Yjc4ZTFhOTgxNDQ4ODFk
NjlmMDkzZmI5NTA1NmZmOTQzMDNmNy4uMzk1OTAzN2Q3MGQ0NTcwZjIyMDcwMGZiOWFjZmU5YzZi
NmE1ZjFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00ODcsNiArNDg3LDcgQEAgRG9j
dW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGlzWEhU
TUwsIGJvb2wgaXNIVE1MKQogI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQogICAgICwgbV90
ZW1wbGF0ZURvY3VtZW50SG9zdCgwKQogI2VuZGlmCisgICAgLCBtX2RpZEFzc29jaWF0ZUZvcm1D
b250cm9sc1RpbWVyKHRoaXMsICZEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzVGlt
ZXJGaXJlZCkKIHsKICAgICBtX3ByaW50aW5nID0gZmFsc2U7CiAgICAgbV9wYWdpbmF0ZWRGb3JT
Y3JlZW4gPSBmYWxzZTsKQEAgLTYwNzEsNCArNjA3MiwyNiBAQCBEb2N1bWVudCogRG9jdW1lbnQ6
OmVuc3VyZVRlbXBsYXRlRG9jdW1lbnQoKQogfQogI2VuZGlmCiAKK3ZvaWQgRG9jdW1lbnQ6OmRp
ZEFzc29jaWF0ZUZvcm1Db250cm9sKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFmcmFt
ZSgpIHx8ICFmcmFtZSgpLT5wYWdlKCkgfHwgIWZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPmNs
aWVudCgpLT5zaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkpCisgICAgICAgIHJldHVybjsKKyAg
ICBtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHMuYWRkKGVsZW1lbnQpOworICAgIGlmICghbV9kaWRB
c3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2RpZEFzc29j
aWF0ZUZvcm1Db250cm9sc1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwordm9pZCBEb2N1bWVu
dDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzVGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4qIHRp
bWVyKQoreworICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX2RpZEFzc29jaWF0
ZUZvcm1Db250cm9sc1RpbWVyKTsKKyAgICBpZiAoIWZyYW1lKCkgfHwgIWZyYW1lKCktPnBhZ2Uo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgVmVjdG9yPEVsZW1lbnQqPiBhc3NvY2lhdGVkRm9y
bUNvbnRyb2xzOworICAgIGNvcHlUb1ZlY3RvcihtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHMsIGFz
c29jaWF0ZWRGb3JtQ29udHJvbHMpOworCisgICAgZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+
Y2xpZW50KCktPmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhhc3NvY2lhdGVkRm9ybUNvbnRyb2xz
KTsKKyAgICBtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHMuY2xlYXIoKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAxYWQ2MTUxMzUzYjZhZTQyODg3
Y2FlOGE1MzI1NzgzOTllNjRlNmYzLi5lNDYxZDBjMWMwOTU5NmM0NDVlNjgzZTE0NGM2MjQ3ODBm
NGVlMzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUg
IlZpZXdwb3J0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8
d3RmL0ZpeGVkQXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0
Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CkBAIC0xMTg4LDYgKzExODksOCBAQCBwdWJsaWM6CiAgICAgRG9jdW1lbnQq
IHRlbXBsYXRlRG9jdW1lbnRIb3N0KCkgeyByZXR1cm4gbV90ZW1wbGF0ZURvY3VtZW50SG9zdDsg
fQogI2VuZGlmCiAKKyAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9sKEVsZW1lbnQqKTsK
KwogICAgIHZpcnR1YWwgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNz
YWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRl
bnRpZmllciA9IDApOwogCiAgICAgdmlydHVhbCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3Jp
Z2luKCkgY29uc3QgT1ZFUlJJREU7CkBAIC0xMjcyLDYgKzEyNzUsOCBAQCBwcml2YXRlOgogICAg
IHZvaWQgYWRkTGlzdGVuZXJUeXBlKExpc3RlbmVyVHlwZSBsaXN0ZW5lclR5cGUpIHsgbV9saXN0
ZW5lclR5cGVzIHw9IGxpc3RlbmVyVHlwZTsgfQogICAgIHZvaWQgYWRkTXV0YXRpb25FdmVudExp
c3RlbmVyVHlwZUlmRW5hYmxlZChMaXN0ZW5lclR5cGUpOwogCisgICAgdm9pZCBkaWRBc3NvY2lh
dGVGb3JtQ29udHJvbHNUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopOworCiAgICAgdm9pZCBz
dHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4qKTsKICAgICBU
aW1lcjxEb2N1bWVudD4gbV9zdHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXI7CiAgICAgZG91Ymxl
IG1fbGFzdFN0eWxlUmVzb2x2ZXJBY2Nlc3NUaW1lOwpAQCAtMTU1OCw2ICsxNTYzLDEwIEBAIHBy
aXZhdGU6CiAgICAgUmVmUHRyPERvY3VtZW50PiBtX3RlbXBsYXRlRG9jdW1lbnQ7CiAgICAgRG9j
dW1lbnQqIG1fdGVtcGxhdGVEb2N1bWVudEhvc3Q7IC8vIE1hbnVhbGx5IG1hbmFnZWQgd2Vha3Jl
ZiAoYmFja3BvaW50ZXIgZnJvbSBtX3RlbXBsYXRlRG9jdW1lbnQpLgogI2VuZGlmCisKKyAgICBU
aW1lcjxEb2N1bWVudD4gbV9kaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lcjsKKyAgICBIYXNo
U2V0PEVsZW1lbnQqPiBtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHM7CisKIH07CiAKIGlubGluZSB2
b2lkIERvY3VtZW50Ojpub3RpZnlSZW1vdmVQZW5kaW5nU2hlZXRJZk5lZWRlZCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAKaW5kZXggYTIyMzViMjkw
ODY0MDJhMGFlZTg0OWM1NzA3MmZkMThjY2IyZTVmYS4uNGY1M2FkYjU4ZjEyOGYxMzQ2NjEyMGI3
ZTkyMTk1MzlhNzhjNDgxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNz
b2NpYXRlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0
ZWRFbGVtZW50LmNwcApAQCAtMjUsNyArMjUsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkZvcm1Bc3NvY2lhdGVkRWxlbWVudC5oIgogCisjaW5jbHVkZSAiRWRpdG9yQ2xpZW50
LmgiCiAjaW5jbHVkZSAiRm9ybUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2lu
Y2x1ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTE1Nyw3ICsxNTksMTEgQEAgdm9pZCBG
b3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm1XaWxsQmVEZXN0cm95ZWQoKQogCiB2b2lkIEZvcm1B
c3NvY2lhdGVkRWxlbWVudDo6cmVzZXRGb3JtT3duZXIoKQogeworICAgIEhUTUxGb3JtRWxlbWVu
dCogb3JpZ2luYWxGb3JtID0gbV9mb3JtOwogICAgIHNldEZvcm0oZmluZEFzc29jaWF0ZWRGb3Jt
KHRvSFRNTEVsZW1lbnQodGhpcyksIG1fZm9ybSkpOworICAgIEhUTUxFbGVtZW50KiBlbGVtZW50
ID0gdG9IVE1MRWxlbWVudCh0aGlzKTsgICAgIAorICAgIGlmIChtX2Zvcm0gJiYgbV9mb3JtICE9
IG9yaWdpbmFsRm9ybSAmJiBtX2Zvcm0tPmluRG9jdW1lbnQoKSkKKyAgICAgICAgZWxlbWVudC0+
ZG9jdW1lbnQoKS0+ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2woZWxlbWVudCk7CiB9CiAKIHZvaWQg
Rm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmlidXRlQ2hhbmdlZCgpCkBAIC0xNjUsNyAr
MTcxLDExIEBAIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmlidXRlQ2hhbmdl
ZCgpCiAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KHRoaXMpOwogICAg
IGlmICghZWxlbWVudC0+ZmFzdEhhc0F0dHJpYnV0ZShmb3JtQXR0cikpIHsKICAgICAgICAgLy8g
VGhlIGZvcm0gYXR0cmlidXRlIHJlbW92ZWQuIFdlIG5lZWQgdG8gcmVzZXQgZm9ybSBvd25lciBo
ZXJlLgorICAgICAgICBIVE1MRm9ybUVsZW1lbnQqIG9yaWdpbmFsRm9ybSA9IG1fZm9ybTsKICAg
ICAgICAgc2V0Rm9ybShlbGVtZW50LT5maW5kRm9ybUFuY2VzdG9yKCkpOworICAgICAgICBIVE1M
RWxlbWVudCogZWxlbWVudCA9IHRvSFRNTEVsZW1lbnQodGhpcyk7CisgICAgICAgIGlmIChtX2Zv
cm0gJiYgbV9mb3JtICE9IG9yaWdpbmFsRm9ybSAmJiBtX2Zvcm0tPmluRG9jdW1lbnQoKSkKKyAg
ICAgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPmRpZEFzc29jaWF0ZUZvcm1Db250cm9sKGVs
ZW1lbnQpOwogICAgICAgICBtX2Zvcm1BdHRyaWJ1dGVUYXJnZXRPYnNlcnZlciA9IG51bGxwdHI7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgcmVzZXRGb3JtT3duZXIoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRleCA5NTNmZWM2ZWQ3MDJlYTc3YjEwMjc3NjYwYWZj
ZmMxZWU4MjY4MTdkLi40N2IyYjM2ZWU2YzczYTA3MTRiMWY2ZTZhYWIwMGI4NjRiNDNmZWJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCkBAIC0xMzksNiArMTM5LDgg
QEAgYm9vbCBIVE1MRm9ybUVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRl
cmluZ0NvbnRleHQmIGNvbnRleHQpCiBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0
IEhUTUxGb3JtRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUqIGluc2VydGlvblBv
aW50KQogewogICAgIEhUTUxFbGVtZW50OjppbnNlcnRlZEludG8oaW5zZXJ0aW9uUG9pbnQpOwor
ICAgIGlmIChpbnNlcnRpb25Qb2ludC0+aW5Eb2N1bWVudCgpKQorICAgICAgICB0aGlzLT5kb2N1
bWVudCgpLT5kaWRBc3NvY2lhdGVGb3JtQ29udHJvbCh0aGlzKTsKICAgICByZXR1cm4gSW5zZXJ0
aW9uRG9uZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDFlMWEx
NGM1NjJmNjU1N2I5MDkwMWU4YWE5OTg4ODdhOTUxZDg1OWEuLmE3Y2JkYzFlYzRhMzYwNjQ5N2U2
YmZjOWE3ODFjNTU4Y2I0NWE3OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
QEAgLTIwOCw2ICsyMDgsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJl
ckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlzRW1wdHlDaHJvbWVDbGllbnQoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9y
bUNvbnRyb2xzKFZlY3RvcjxFbGVtZW50Kj4mKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
Tm90aWZ5T25Gb3JtQ2hhbmdlcygpIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiBjbGFzcyBFbXB0
eUZyYW1lTG9hZGVyQ2xpZW50IDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGM3OGM3MmJmMTcwOWY4M2ZjYzZjMzI1NTFhYjdiMjA3
ZmU1OWI2N2IuLjFlODZhYmFkMjU2ZmY0NzEwODg5ZWMyN2IwZjIyMDJkNWI4MWE2YzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzgzLDYgKzM4Myw5IEBAIHB1YmxpYzoKICAg
ICAvLyBGSVhNRTogUG9ydCBzaG91bGQgcmV0dXJuIHRydWUgdXNpbmcgaGV1cmlzdGljIGJhc2Vk
IG9uIHNjcm9sbGFibGUoUmVuZGVyQm94KS4KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXV0b3Nj
cm9sbEZvckRyYWdBbmREcm9wKFJlbmRlckJveCopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxF
bGVtZW50Kj4mKSB7IH07CisgICAgdmlydHVhbCBib29sIHNob3VsZE5vdGlmeU9uRm9ybUNoYW5n
ZXMoKSB7IHJldHVybiBmYWxzZTsgfTsKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfkNocm9t
ZUNsaWVudCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYkF1dG9maWxsQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJBdXRvZmlsbENsaWVudC5oCmluZGV4IGFhNGQwYTNkYWVkYjFjN2VjYmY2OWQ0Y2M0MjYwMjI2
Y2QwNjM4ZjAuLmI2OTA0MzMxN2UzNGI4NTZkZGQzN2U3ZDA4MWMxNzg4ZTRhYjk4OGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxsQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQXV0b2ZpbGxDbGllbnQuaApA
QCAtNDAsNiArNDAsOCBAQCBjbGFzcyBXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2ViTm9kZTsK
IGNsYXNzIFdlYlN0cmluZzsKIAordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYlZlY3Rv
cjsKKwogY2xhc3MgV2ViQXV0b2ZpbGxDbGllbnQgewogcHVibGljOgogICAgIGVudW0gewpAQCAt
OTMsNiArOTUsOCBAQCBwdWJsaWM6CiAgICAgLy8gSW5mb3JtcyB0aGUgY2xpZW50IHdoZXRoZXIg
b3Igbm90IGFueSBzdWJzZXF1ZW50IHRleHQgY2hhbmdlcyBzaG91bGQgYmUgaWdub3JlZC4KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0SWdub3JlVGV4dENoYW5nZXMoYm9vbCBpZ25vcmUpIHsgfQogCisg
ICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhjb25zdCBXZWJWZWN0b3I8
V2ViTm9kZT4mKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfldlYkF1dG9maWxsQ2xp
ZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmNwcAppbmRleCBiMTEwODkzZGQ1Mzc4ZTY4ZTk4MWMyMWM0ODZjYzllMTI3NGMwNWMy
Li45MjhmNzlkOTA0OGRjNmIyYThmZWQxY2M0MzRiNzYyMjExMTdlOGI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNzcsNiArNzcs
NyBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dEZpZWxkRGVjb3JhdGlv
bkVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVk
ZSAiV2ViQXV0b2ZpbGxDbGllbnQuaCIKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICNp
bmNsdWRlICJXZWJDb2xvckNob29zZXIuaCIKICNlbmRpZgpAQCAtMTE0NCw2ICsxMTQ1LDIyIEBA
IHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6YW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKQogfQogI2Vu
ZGlmCiAKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNv
bnN0IFZlY3RvcjxFbGVtZW50Kj4mIGVsZW1lbnRzKQoreworICAgIGlmICghbV93ZWJWaWV3LT5h
dXRvZmlsbENsaWVudCgpKQorICAgICAgICByZXR1cm47CisgICAgV2ViVmVjdG9yPFdlYk5vZGU+
IGVsZW1lbnRWZWN0b3Ioc3RhdGljX2Nhc3Q8c2l6ZV90PihlbGVtZW50cy5zaXplKCkpKTsKKyAg
ICBzaXplX3QgZWxlbWVudHNDb3VudCA9IGVsZW1lbnRzLnNpemUoKTsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGVsZW1lbnRzQ291bnQ7ICsraSkKKyAgICAgICAgZWxlbWVudFZlY3Rvcltp
XSA9IGVsZW1lbnRzW2ldOworICAgIG1fd2ViVmlldy0+YXV0b2ZpbGxDbGllbnQoKS0+ZGlkQXNz
b2NpYXRlRm9ybUNvbnRyb2xzKGVsZW1lbnRWZWN0b3IpOworfQorCitib29sIENocm9tZUNsaWVu
dEltcGw6OnNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKQoreworICAgIHJldHVybiB0cnVlOwor
fQorCiAjaWYgRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQogUGFzc093blB0cjxOYXZp
Z2F0b3JDb250ZW50VXRpbHNDbGllbnRJbXBsPiBOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnRJ
bXBsOjpjcmVhdGUoV2ViVmlld0ltcGwqIHdlYlZpZXcpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXggM2UyOGU1MzVjNzAxYmEyM2NkMGUx
YWM3OTA0MWFhZWIxNDZmZmU5OC4uNTdiMzE2OTkwYzc2N2EyNmJiYTA0MTk2YzA5MjNhYzYyOWFm
Mzk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwu
aApAQCAtMjM0LDYgKzIzNCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNQb2ludGVy
TG9ja2VkKCk7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29u
dHJvbHMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkVsZW1lbnQqPiYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgYm9vbCBzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkgT1ZFUlJJREU7CisKIHByaXZh
dGU6CiAgICAgV2ViTmF2aWdhdGlvblBvbGljeSBnZXROYXZpZ2F0aW9uUG9saWN5KCk7CiAgICAg
dm9pZCBnZXRQb3B1cE1lbnVJbmZvKFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyKiwgV2ViUG9wdXBN
ZW51SW5mbyopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194627</attachid>
            <date>2013-03-22 13:55:19 -0700</date>
            <delta_ts>2013-03-22 16:14:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110375-20130322135106.patch</filename>
            <type>text/plain</type>
            <size>12842</size>
            <attacher name="Dane Walllinga">dgwallinga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTkwNWQyZjA4ZTYzZDdh
YzAzNzg1NTNjNzJmNzQyNTdlZTBkNGY0ZC4uNjJkYmFlYjAyMzdiNzFiNmI2OGJkNTEwMjg2ZTQw
YzE0YTk4MTQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTAyLTI2ICBEYW5l
IFdhbGxpbmdhICA8ZGd3YWxsaW5nYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGNsaWVu
dCBjYWxsYmFja3MgdG8gbm90aWZ5IG9mIGNoYW5nZXMgb2YgYXNzb2NpYXRlZCBmcm9tIGNvbnRy
b2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAz
NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIb29r
IEZvcm1Bc3NvY2lhdGVkRWxlbWVudCwgSFRNTEZvcm1FbGVtZW50IHRvIG5vdGlmeSBFZGl0b3JD
bGllbnQgb2YgZm9ybSBjaGFuZ2VzIGFmdGVyIGEgcGFnZSBoYXMgbG9hZGVkLgorICAgICAgICBX
aWxsIGJlIHVzZWQgdG8gYWRkIGF1dG9maWxsIHN1cHBvcnQgZm9yIGFqYXgteSB3ZWJwYWdlcy4g
ZS5nIGlmIHdoaWxlIGZpbGxpbmcgb3V0IGEgZm9ybSwgbmV3IGZpZWxkcworICAgICAgICBhcmUg
ZHluYW1pY2FsbHkgY3JlYXRlZCwgYXV0b2ZpbGwgY2FuIGtub3cgdG8gcmUtcXVlcnkgdGhlIGF1
dG9maWxsIHNlcnZlciBhbmQga2VlcCBnb2luZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDM3NQorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2wpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xz
VGltZXJGaXJlZCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1bWVu
dCk6CisgICAgICAgIGFkZGVkIG1ldGhvZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbCwgd2hpY2gg
YmF0Y2hlcyBmb3JtIGNoYW5nZXMKKyAgICAgICAgYW5kIGNhbGxzIG91dCB0byBDaHJvbWVDbGll
bnQgb24gYSB0aW1lci4KKyAgICAgICAgKiBodG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OnJlc2V0Rm9ybU93bmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybUF0dHJpYnV0
ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9Gb3JtQXNzb2Np
YXRlZEVsZW1lbnQuaDoKKyAgICAgICAgKEZvcm1Bc3NvY2lhdGVkRWxlbWVudCk6CisgICAgICAg
IGFkZCBjYWxscyB0byBEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2wgd2hlbiBmb3Jt
IGNoYW5nZXMKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6Omluc2VydGVkSW50byk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5oOgorICAgICAgICBhZGQgY2FsbCB0
byBEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2wKKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmg6CisgICAgICAgIChFbXB0eUNocm9tZUNsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpFbXB0eUNocm9tZUNsaWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2Vz
KToKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50
KToKKyAgICAgICAgYWRkIG5ldyBtZXRob2QgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzCisKIDIw
MTMtMDMtMDUgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KICAKICAgICAg
ICAgQVg6IFN1cHBvcnQgYXJpYS1wb3NpbnNldC9zZXRzaXplCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IGQ4OGUwNDMwOTEzNTQ1NTA0MjIyMzYyOTJlNzZlOTFlNGJmMThiNGIuLjU0YWZj
ZDczZDZkNjNjYmYxZmZlYmYxNTE5ZDgwODM5NTIwOGYyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTMtMDItMjYgIERhbmUgV2FsbGluZ2EgIDxkZ3dh
bGxpbmdhQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgY2xpZW50IGNhbGxiYWNrcyB0byBu
b3RpZnkgb2YgY2hhbmdlcyBvZiBhc3NvY2lhdGVkIGZyb20gY29udHJvbHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDM3NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBmb3JtIGFzc29j
aWF0aW9uIG1ldGhvZHMgb2YgQ2hyb21lQ2xpZW50CisgICAgICAgIHRvIGluZm9ybSBhdXRvZmls
bCBvZiBmb3JtIGNoYW5nZXMgYWZ0ZXIgYSBwYWdlIGhhcyBsb2FkZWQKKworICAgICAgICAqIHB1
YmxpYy9XZWJBdXRvZmlsbENsaWVudC5oOgorICAgICAgICAoV2ViQXV0b2ZpbGxDbGllbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJBdXRvZmlsbENsaWVudDo6ZGlkQXNzb2NpYXRlSW5wdXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJBdXRvZmlsbENsaWVudDo6ZGlkQWRkRm9ybSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9maWxsQ2xpZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMpOgor
ICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50SW1wbDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKToKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNob3VsZE5vdGlmeU9uRm9y
bUNoYW5nZXMpOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAgIChD
aHJvbWVDbGllbnRJbXBsKToKKwogMjAxMy0wMy0wNSAgQWxleGFuZHJlIEVsaWFzICA8YWVsaWFz
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFNjcm9sbCBkZWx0YXMgc2hvdWxk
IGJlIGZsb2F0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggOWE4Yjc4ZTFhOTgxNDQ4ODFk
NjlmMDkzZmI5NTA1NmZmOTQzMDNmNy4uMzk1OTAzN2Q3MGQ0NTcwZjIyMDcwMGZiOWFjZmU5YzZi
NmE1ZjFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00ODcsNiArNDg3LDcgQEAgRG9j
dW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGlzWEhU
TUwsIGJvb2wgaXNIVE1MKQogI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQogICAgICwgbV90
ZW1wbGF0ZURvY3VtZW50SG9zdCgwKQogI2VuZGlmCisgICAgLCBtX2RpZEFzc29jaWF0ZUZvcm1D
b250cm9sc1RpbWVyKHRoaXMsICZEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzVGlt
ZXJGaXJlZCkKIHsKICAgICBtX3ByaW50aW5nID0gZmFsc2U7CiAgICAgbV9wYWdpbmF0ZWRGb3JT
Y3JlZW4gPSBmYWxzZTsKQEAgLTYwNzEsNCArNjA3MiwyNiBAQCBEb2N1bWVudCogRG9jdW1lbnQ6
OmVuc3VyZVRlbXBsYXRlRG9jdW1lbnQoKQogfQogI2VuZGlmCiAKK3ZvaWQgRG9jdW1lbnQ6OmRp
ZEFzc29jaWF0ZUZvcm1Db250cm9sKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFmcmFt
ZSgpIHx8ICFmcmFtZSgpLT5wYWdlKCkgfHwgIWZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPmNs
aWVudCgpLT5zaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkpCisgICAgICAgIHJldHVybjsKKyAg
ICBtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHMuYWRkKGVsZW1lbnQpOworICAgIGlmICghbV9kaWRB
c3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2RpZEFzc29j
aWF0ZUZvcm1Db250cm9sc1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwordm9pZCBEb2N1bWVu
dDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzVGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4qIHRp
bWVyKQoreworICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX2RpZEFzc29jaWF0
ZUZvcm1Db250cm9sc1RpbWVyKTsKKyAgICBpZiAoIWZyYW1lKCkgfHwgIWZyYW1lKCktPnBhZ2Uo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgVmVjdG9yPEVsZW1lbnQqPiBhc3NvY2lhdGVkRm9y
bUNvbnRyb2xzOworICAgIGNvcHlUb1ZlY3RvcihtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHMsIGFz
c29jaWF0ZWRGb3JtQ29udHJvbHMpOworCisgICAgZnJhbWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+
Y2xpZW50KCktPmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhhc3NvY2lhdGVkRm9ybUNvbnRyb2xz
KTsKKyAgICBtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHMuY2xlYXIoKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAxYWQ2MTUxMzUzYjZhZTQyODg3
Y2FlOGE1MzI1NzgzOTllNjRlNmYzLi5lNDYxZDBjMWMwOTU5NmM0NDVlNjgzZTE0NGM2MjQ3ODBm
NGVlMzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUg
IlZpZXdwb3J0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8
d3RmL0ZpeGVkQXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0
Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CkBAIC0xMTg4LDYgKzExODksOCBAQCBwdWJsaWM6CiAgICAgRG9jdW1lbnQq
IHRlbXBsYXRlRG9jdW1lbnRIb3N0KCkgeyByZXR1cm4gbV90ZW1wbGF0ZURvY3VtZW50SG9zdDsg
fQogI2VuZGlmCiAKKyAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9sKEVsZW1lbnQqKTsK
KwogICAgIHZpcnR1YWwgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNz
YWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRl
bnRpZmllciA9IDApOwogCiAgICAgdmlydHVhbCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3Jp
Z2luKCkgY29uc3QgT1ZFUlJJREU7CkBAIC0xMjcyLDYgKzEyNzUsOCBAQCBwcml2YXRlOgogICAg
IHZvaWQgYWRkTGlzdGVuZXJUeXBlKExpc3RlbmVyVHlwZSBsaXN0ZW5lclR5cGUpIHsgbV9saXN0
ZW5lclR5cGVzIHw9IGxpc3RlbmVyVHlwZTsgfQogICAgIHZvaWQgYWRkTXV0YXRpb25FdmVudExp
c3RlbmVyVHlwZUlmRW5hYmxlZChMaXN0ZW5lclR5cGUpOwogCisgICAgdm9pZCBkaWRBc3NvY2lh
dGVGb3JtQ29udHJvbHNUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopOworCiAgICAgdm9pZCBz
dHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4qKTsKICAgICBU
aW1lcjxEb2N1bWVudD4gbV9zdHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXI7CiAgICAgZG91Ymxl
IG1fbGFzdFN0eWxlUmVzb2x2ZXJBY2Nlc3NUaW1lOwpAQCAtMTU1OCw2ICsxNTYzLDEwIEBAIHBy
aXZhdGU6CiAgICAgUmVmUHRyPERvY3VtZW50PiBtX3RlbXBsYXRlRG9jdW1lbnQ7CiAgICAgRG9j
dW1lbnQqIG1fdGVtcGxhdGVEb2N1bWVudEhvc3Q7IC8vIE1hbnVhbGx5IG1hbmFnZWQgd2Vha3Jl
ZiAoYmFja3BvaW50ZXIgZnJvbSBtX3RlbXBsYXRlRG9jdW1lbnQpLgogI2VuZGlmCisKKyAgICBU
aW1lcjxEb2N1bWVudD4gbV9kaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lcjsKKyAgICBIYXNo
U2V0PEVsZW1lbnQqPiBtX2Fzc29jaWF0ZWRGb3JtQ29udHJvbHM7CisKIH07CiAKIGlubGluZSB2
b2lkIERvY3VtZW50Ojpub3RpZnlSZW1vdmVQZW5kaW5nU2hlZXRJZk5lZWRlZCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAKaW5kZXggYTIyMzViMjkw
ODY0MDJhMGFlZTg0OWM1NzA3MmZkMThjY2IyZTVmYS4uNGY1M2FkYjU4ZjEyOGYxMzQ2NjEyMGI3
ZTkyMTk1MzlhNzhjNDgxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNz
b2NpYXRlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0
ZWRFbGVtZW50LmNwcApAQCAtMjUsNyArMjUsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkZvcm1Bc3NvY2lhdGVkRWxlbWVudC5oIgogCisjaW5jbHVkZSAiRWRpdG9yQ2xpZW50
LmgiCiAjaW5jbHVkZSAiRm9ybUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2lu
Y2x1ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTE1Nyw3ICsxNTksMTEgQEAgdm9pZCBG
b3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm1XaWxsQmVEZXN0cm95ZWQoKQogCiB2b2lkIEZvcm1B
c3NvY2lhdGVkRWxlbWVudDo6cmVzZXRGb3JtT3duZXIoKQogeworICAgIEhUTUxGb3JtRWxlbWVu
dCogb3JpZ2luYWxGb3JtID0gbV9mb3JtOwogICAgIHNldEZvcm0oZmluZEFzc29jaWF0ZWRGb3Jt
KHRvSFRNTEVsZW1lbnQodGhpcyksIG1fZm9ybSkpOworICAgIEhUTUxFbGVtZW50KiBlbGVtZW50
ID0gdG9IVE1MRWxlbWVudCh0aGlzKTsgICAgIAorICAgIGlmIChtX2Zvcm0gJiYgbV9mb3JtICE9
IG9yaWdpbmFsRm9ybSAmJiBtX2Zvcm0tPmluRG9jdW1lbnQoKSkKKyAgICAgICAgZWxlbWVudC0+
ZG9jdW1lbnQoKS0+ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2woZWxlbWVudCk7CiB9CiAKIHZvaWQg
Rm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmlidXRlQ2hhbmdlZCgpCkBAIC0xNjUsNyAr
MTcxLDExIEBAIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtQXR0cmlidXRlQ2hhbmdl
ZCgpCiAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KHRoaXMpOwogICAg
IGlmICghZWxlbWVudC0+ZmFzdEhhc0F0dHJpYnV0ZShmb3JtQXR0cikpIHsKICAgICAgICAgLy8g
VGhlIGZvcm0gYXR0cmlidXRlIHJlbW92ZWQuIFdlIG5lZWQgdG8gcmVzZXQgZm9ybSBvd25lciBo
ZXJlLgorICAgICAgICBIVE1MRm9ybUVsZW1lbnQqIG9yaWdpbmFsRm9ybSA9IG1fZm9ybTsKICAg
ICAgICAgc2V0Rm9ybShlbGVtZW50LT5maW5kRm9ybUFuY2VzdG9yKCkpOworICAgICAgICBIVE1M
RWxlbWVudCogZWxlbWVudCA9IHRvSFRNTEVsZW1lbnQodGhpcyk7CisgICAgICAgIGlmIChtX2Zv
cm0gJiYgbV9mb3JtICE9IG9yaWdpbmFsRm9ybSAmJiBtX2Zvcm0tPmluRG9jdW1lbnQoKSkKKyAg
ICAgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPmRpZEFzc29jaWF0ZUZvcm1Db250cm9sKGVs
ZW1lbnQpOwogICAgICAgICBtX2Zvcm1BdHRyaWJ1dGVUYXJnZXRPYnNlcnZlciA9IG51bGxwdHI7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgcmVzZXRGb3JtT3duZXIoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRleCA5NTNmZWM2ZWQ3MDJlYTc3YjEwMjc3NjYwYWZj
ZmMxZWU4MjY4MTdkLi40N2IyYjM2ZWU2YzczYTA3MTRiMWY2ZTZhYWIwMGI4NjRiNDNmZWJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCkBAIC0xMzksNiArMTM5LDgg
QEAgYm9vbCBIVE1MRm9ybUVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRl
cmluZ0NvbnRleHQmIGNvbnRleHQpCiBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0
IEhUTUxGb3JtRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUqIGluc2VydGlvblBv
aW50KQogewogICAgIEhUTUxFbGVtZW50OjppbnNlcnRlZEludG8oaW5zZXJ0aW9uUG9pbnQpOwor
ICAgIGlmIChpbnNlcnRpb25Qb2ludC0+aW5Eb2N1bWVudCgpKQorICAgICAgICB0aGlzLT5kb2N1
bWVudCgpLT5kaWRBc3NvY2lhdGVGb3JtQ29udHJvbCh0aGlzKTsKICAgICByZXR1cm4gSW5zZXJ0
aW9uRG9uZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDFlMWEx
NGM1NjJmNjU1N2I5MDkwMWU4YWE5OTg4ODdhOTUxZDg1OWEuLmU5ZjNjZjk5MmFhMzViZmY2MTFi
ODY4MmZmMjA3YWM5MmI0MDkxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
QEAgLTIwOCw2ICsyMDgsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJl
ckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlzRW1wdHlDaHJvbWVDbGllbnQoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9y
bUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxFbGVtZW50Kj4mKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcygpIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiBjbGFz
cyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGM3OGM3MmJmMTcwOWY4M2ZjYzZjMzI1NTFh
YjdiMjA3ZmU1OWI2N2IuLjFlODZhYmFkMjU2ZmY0NzEwODg5ZWMyN2IwZjIyMDJkNWI4MWE2Yzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzgzLDYgKzM4Myw5IEBAIHB1Ymxp
YzoKICAgICAvLyBGSVhNRTogUG9ydCBzaG91bGQgcmV0dXJuIHRydWUgdXNpbmcgaGV1cmlzdGlj
IGJhc2VkIG9uIHNjcm9sbGFibGUoUmVuZGVyQm94KS4KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
QXV0b3Njcm9sbEZvckRyYWdBbmREcm9wKFJlbmRlckJveCopIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZl
Y3RvcjxFbGVtZW50Kj4mKSB7IH07CisgICAgdmlydHVhbCBib29sIHNob3VsZE5vdGlmeU9uRm9y
bUNoYW5nZXMoKSB7IHJldHVybiBmYWxzZTsgfTsKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwg
fkNocm9tZUNsaWVudCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkF1dG9maWxsQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJBdXRvZmlsbENsaWVudC5oCmluZGV4IGFhNGQwYTNkYWVkYjFjN2VjYmY2OWQ0Y2M0
MjYwMjI2Y2QwNjM4ZjAuLmI2OTA0MzMxN2UzNGI4NTZkZGQzN2U3ZDA4MWMxNzg4ZTRhYjk4OGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxsQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQXV0b2ZpbGxDbGll
bnQuaApAQCAtNDAsNiArNDAsOCBAQCBjbGFzcyBXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2Vi
Tm9kZTsKIGNsYXNzIFdlYlN0cmluZzsKIAordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdl
YlZlY3RvcjsKKwogY2xhc3MgV2ViQXV0b2ZpbGxDbGllbnQgewogcHVibGljOgogICAgIGVudW0g
ewpAQCAtOTMsNiArOTUsOCBAQCBwdWJsaWM6CiAgICAgLy8gSW5mb3JtcyB0aGUgY2xpZW50IHdo
ZXRoZXIgb3Igbm90IGFueSBzdWJzZXF1ZW50IHRleHQgY2hhbmdlcyBzaG91bGQgYmUgaWdub3Jl
ZC4KICAgICB2aXJ0dWFsIHZvaWQgc2V0SWdub3JlVGV4dENoYW5nZXMoYm9vbCBpZ25vcmUpIHsg
fQogCisgICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhjb25zdCBXZWJW
ZWN0b3I8V2ViTm9kZT4mKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfldlYkF1dG9m
aWxsQ2xpZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJv
bWVDbGllbnRJbXBsLmNwcAppbmRleCBiMTEwODkzZGQ1Mzc4ZTY4ZTk4MWMyMWM0ODZjYzllMTI3
NGMwNWMyLi45MjhmNzlkOTA0OGRjNmIyYThmZWQxY2M0MzRiNzYyMjExMTdlOGI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNzcs
NiArNzcsNyBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dEZpZWxkRGVj
b3JhdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisj
aW5jbHVkZSAiV2ViQXV0b2ZpbGxDbGllbnQuaCIKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xP
UikKICNpbmNsdWRlICJXZWJDb2xvckNob29zZXIuaCIKICNlbmRpZgpAQCAtMTE0NCw2ICsxMTQ1
LDIyIEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6YW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKQog
fQogI2VuZGlmCiAKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRy
b2xzKGNvbnN0IFZlY3RvcjxFbGVtZW50Kj4mIGVsZW1lbnRzKQoreworICAgIGlmICghbV93ZWJW
aWV3LT5hdXRvZmlsbENsaWVudCgpKQorICAgICAgICByZXR1cm47CisgICAgV2ViVmVjdG9yPFdl
Yk5vZGU+IGVsZW1lbnRWZWN0b3Ioc3RhdGljX2Nhc3Q8c2l6ZV90PihlbGVtZW50cy5zaXplKCkp
KTsKKyAgICBzaXplX3QgZWxlbWVudHNDb3VudCA9IGVsZW1lbnRzLnNpemUoKTsKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGVsZW1lbnRzQ291bnQ7ICsraSkKKyAgICAgICAgZWxlbWVudFZl
Y3RvcltpXSA9IGVsZW1lbnRzW2ldOworICAgIG1fd2ViVmlldy0+YXV0b2ZpbGxDbGllbnQoKS0+
ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGVsZW1lbnRWZWN0b3IpOworfQorCitib29sIENocm9t
ZUNsaWVudEltcGw6OnNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKQoreworICAgIHJldHVybiB0
cnVlOworfQorCiAjaWYgRU5BQkxFKE5BVklHQVRPUl9DT05URU5UX1VUSUxTKQogUGFzc093blB0
cjxOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnRJbXBsPiBOYXZpZ2F0b3JDb250ZW50VXRpbHND
bGllbnRJbXBsOjpjcmVhdGUoV2ViVmlld0ltcGwqIHdlYlZpZXcpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXggM2UyOGU1MzVjNzAxYmEy
M2NkMGUxYWM3OTA0MWFhZWIxNDZmZmU5OC4uNTdiMzE2OTkwYzc2N2EyNmJiYTA0MTk2YzA5MjNh
YzYyOWFmMzk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21l
Q2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVu
dEltcGwuaApAQCAtMjM0LDYgKzIzNCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNQ
b2ludGVyTG9ja2VkKCk7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVG
b3JtQ29udHJvbHMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkVsZW1lbnQqPiYpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkgT1ZFUlJJREU7CisK
IHByaXZhdGU6CiAgICAgV2ViTmF2aWdhdGlvblBvbGljeSBnZXROYXZpZ2F0aW9uUG9saWN5KCk7
CiAgICAgdm9pZCBnZXRQb3B1cE1lbnVJbmZvKFdlYkNvcmU6OlBvcHVwQ29udGFpbmVyKiwgV2Vi
UG9wdXBNZW51SW5mbyopOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>