<?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>74921</bug_id>
          
          <creation_ts>2011-12-20 04:43:52 -0800</creation_ts>
          <short_desc>[EFL] Add new commands for Ewk_Editor_Command.</short_desc>
          <delta_ts>2012-05-16 02:16:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>
          <dependson>85046</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Michal Pakula vel Rutka">mpakulavelrutka</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>g.czajkowski</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>t.morawski</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>524531</commentid>
    <comment_count>0</comment_count>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2011-12-20 04:43:52 -0800</bug_when>
    <thetext>This extends Ewk_Editor_Command with new commands. Also a table of editor command strings was introduced. Numerous calls of _ewk_view_editor_command for each case in ewk_view_execute_editor_command were replaced by one call of functions obtaining a command string from a table for given Ewk_Editor_Command value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524533</commentid>
    <comment_count>1</comment_count>
      <attachid>120009</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2011-12-20 04:45:23 -0800</bug_when>
    <thetext>Created attachment 120009
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528745</commentid>
    <comment_count>2</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2012-01-03 06:02:45 -0800</bug_when>
    <thetext>Mostly LGTM.

&gt; Source/WebKit/efl/ewk/ewk_view.cpp:1480
&gt; +            &amp;&amp; (command &lt; static_cast&lt;int&gt;(sizeof(_ewk_view_editor_commands) / sizeof(const char*))))

This line has wrong indent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529152</commentid>
    <comment_count>3</comment_count>
      <attachid>120009</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-01-03 16:37:12 -0800</bug_when>
    <thetext>Comment on attachment 120009
proposed patch

I think editor command can be implemented by new file. For example, ewk_editor.cpp or ewk_editor_command.cpp and so on. As you know, there are many features and functions in ewk_view.cpp. How do you think about my suggestion?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529447</commentid>
    <comment_count>4</comment_count>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-01-04 03:57:36 -0800</bug_when>
    <thetext>I am OK with this, but into this new file I can put only the ewk_view_editor_command* functions there for now. I will prepare a new patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533577</commentid>
    <comment_count>5</comment_count>
      <attachid>120009</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-01-10 19:26:58 -0800</bug_when>
    <thetext>Comment on attachment 120009
proposed patch

Clearing r? flag while the patch is being reworked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534750</commentid>
    <comment_count>6</comment_count>
      <attachid>122215</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-01-12 04:47:52 -0800</bug_when>
    <thetext>Created attachment 122215
move implementation to new files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534796</commentid>
    <comment_count>7</comment_count>
      <attachid>122231</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-01-12 06:48:33 -0800</bug_when>
    <thetext>Created attachment 122231
changelog and style fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607612</commentid>
    <comment_count>8</comment_count>
      <attachid>138327</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-04-23 05:37:03 -0700</bug_when>
    <thetext>Created attachment 138327
rebased patch

previous patch become obsolete as CMakelistEfl was removed and PlatformEfl.cmake was added</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609559</commentid>
    <comment_count>9</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2012-04-25 02:05:22 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=138327&amp;action=review

&gt; Source/WebKit/ChangeLog:8
&gt; +        This extends Ewk_Editor_Command with new commands and moving it to new ewk_editor files.

Please mention what exactly is changed here. I think description: &quot;Added ewk_editor.cpp and ewk_editor.h files&quot; is sufficient.

&gt; Source/WebKit/PlatformEfl.cmake:100
&gt; +    efl/ewk/ewk_editor.cpp

Please keep alphabetical order.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609563</commentid>
    <comment_count>10</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2012-04-25 02:12:06 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 120009 [details])
&gt; I think editor command can be implemented by new file. For example, ewk_editor.cpp or ewk_editor_command.cpp and so on. As you know, there are many features and functions in ewk_view.cpp. How do you think about my suggestion?

I think it&apos;s good idea to split out this feature to new files. What about name ewk_view_editor(h/cpp) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609759</commentid>
    <comment_count>11</comment_count>
      <attachid>138327</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-04-25 08:05:41 -0700</bug_when>
    <thetext>Comment on attachment 138327
rebased patch

I think separating the enum definition from the _ewk_editor_commands array is error prone; one might inadvertently make the two data structures out of sync and cause havoc. How about doing the following in ewk_editor.cpp (this is similar to what exists in EditorClientQt.cpp):

  struct EditorCommand {
      Ewk_Editor_Command ewkCommand;
      const char editorCommand;
  };

  static const EditorCommand editorCommands[] = {
      { EWK_EDITOR_COMMAND_INSERT_IMAGE, &quot;InsertImage&quot; },
      { EWK_EDITOR_COMMAND_INSERT_TEXT, &quot;InsertText&quot; },
      // ...
  };

  static const char* _ewk_editor_command_get(Ewk_Editor_Command command)
  {
      static Eina_Hash* commandHash = 0;

      if (!commandHash) {
          // Initialize the hash map with Ewk_Editor_Command as key and
          // a const char* as value.
      }

      return static_cast&lt;const char*&gt;(eina_hash_find(...));
  }

  Eina_Bool ewk_editor_command_execute(...)
  {
      // ...
  }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609760</commentid>
    <comment_count>12</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-04-25 08:08:02 -0700</bug_when>
    <thetext>As for the splitting being proposed, I still find it weird to call an ewk_view function without the ewk_view prefix as is the case with ewk_editor_command_execute. You&apos;re expected to pass a sort of &quot;self&quot; or &quot;this&quot; as the first parameter and the function name should match it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609777</commentid>
    <comment_count>13</comment_count>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-04-25 08:23:35 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; As for the splitting being proposed, I still find it weird to call an ewk_view function without the ewk_view prefix as is the case with ewk_editor_command_execute. You&apos;re expected to pass a sort of &quot;self&quot; or &quot;this&quot; as the first parameter and the function name should match it.

In case of a file name proposed by Grzegorz: ewk_view_editor.h/cpp, the function name will be changed to ewk_view_editor. Will it be good for you to use ewkView then? Still it won&apos;t be &apos;self&apos; or &apos;this&apos;, but at least names will match.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609794</commentid>
    <comment_count>14</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-04-25 08:36:21 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; In case of a file name proposed by Grzegorz: ewk_view_editor.h/cpp, the function name will be changed to ewk_view_editor. Will it be good for you to use ewkView then? Still it won&apos;t be &apos;self&apos; or &apos;this&apos;, but at least names will match.

It sounds better; personally, I still don&apos;t see much reason not to just put these things into ewk_view.cpp itself, but if you guys prefer to split, ewk_view_editor is better than ewk_editor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609810</commentid>
    <comment_count>15</comment_count>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-04-25 08:49:57 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 138327 [details])
&gt; I think separating the enum definition from the _ewk_editor_commands array is error prone; one might inadvertently make the two data structures out of sync and cause havoc. How about doing the following in ewk_editor.cpp (this is similar to what exists in EditorClientQt.cpp):
&gt; 
&gt;   struct EditorCommand {
&gt;       Ewk_Editor_Command ewkCommand;
&gt;       const char editorCommand;
&gt;   };
&gt; 
&gt;   static const EditorCommand editorCommands[] = {
&gt;       { EWK_EDITOR_COMMAND_INSERT_IMAGE, &quot;InsertImage&quot; },
&gt;       { EWK_EDITOR_COMMAND_INSERT_TEXT, &quot;InsertText&quot; },
&gt;       // ...
&gt;   };
&gt; 
&gt;   static const char* _ewk_editor_command_get(Ewk_Editor_Command command)
&gt;   {
&gt;       static Eina_Hash* commandHash = 0;
&gt; 
&gt;       if (!commandHash) {
&gt;           // Initialize the hash map with Ewk_Editor_Command as key and
&gt;           // a const char* as value.
&gt;       }
&gt; 
&gt;       return static_cast&lt;const char*&gt;(eina_hash_find(...));
&gt;   }
&gt; 
&gt;   Eina_Bool ewk_editor_command_execute(...)
&gt;   {
&gt;       // ...
&gt;   }

Good idea, I will apply it as soon as naming discussion will be over.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610400</commentid>
    <comment_count>16</comment_count>
    <who name="Tomasz Morawski">t.morawski</who>
    <bug_when>2012-04-26 00:20:10 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; In case of a file name proposed by Grzegorz: ewk_view_editor.h/cpp, the function name will be changed to ewk_view_editor. Will it be good for you to use ewkView then? Still it won&apos;t be &apos;self&apos; or &apos;this&apos;, but at least names will match.
&gt; 
&gt; It sounds better; personally, I still don&apos;t see much reason not to just put these things into ewk_view.cpp itself, but if you guys prefer to split, ewk_view_editor is better than ewk_editor.
I agree with you. I think it should be put into ewk_view.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610403</commentid>
    <comment_count>17</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2012-04-26 00:28:18 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #14)
&gt; &gt; (In reply to comment #13)
&gt; &gt; &gt; In case of a file name proposed by Grzegorz: ewk_view_editor.h/cpp, the function name will be changed to ewk_view_editor. Will it be good for you to use ewkView then? Still it won&apos;t be &apos;self&apos; or &apos;this&apos;, but at least names will match.
&gt; &gt; 
&gt; &gt; It sounds better; personally, I still don&apos;t see much reason not to just put these things into ewk_view.cpp itself, but if you guys prefer to split, ewk_view_editor is better than ewk_editor.
&gt; I agree with you. I think it should be put into ewk_view.cpp.

Ok, those arguments are convincing to keep thie feature into ewk_view files. Thanks for your opinions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610636</commentid>
    <comment_count>18</comment_count>
      <attachid>139008</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-04-26 08:16:05 -0700</bug_when>
    <thetext>Created attachment 139008
move back implementation to ewk_view

Implementation is moved back to ewk_view and a hash table proposed by Raphael was added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611159</commentid>
    <comment_count>19</comment_count>
      <attachid>139008</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-04-26 18:30:04 -0700</bug_when>
    <thetext>Comment on attachment 139008
move back implementation to ewk_view

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

&gt; Source/WebKit/efl/ewk/ewk_view.cpp:321
&gt; +    Eina_Hash* editorCommandHash;

I didn&apos;t understand why this was added to the private data instead of being a static variable inside _ewk_view_editor_command_string_get -- every time a new view is created a new hash will be created with the exact same data.

&gt; Source/WebKit/efl/ewk/ewk_view.cpp:1219
&gt; +            eina_hash_add(priv-&gt;editorCommandHash, &amp;editorCommands[i].ewkEditorCommand,
&gt; +                    editorCommands[i].editorCommandString);

We usually don&apos;t wrap at 80 characters, so these lines can be merged.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611162</commentid>
    <comment_count>20</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-04-26 18:37:20 -0700</bug_when>
    <thetext>One other thing I&apos;d like to ask is whether other ports implement something similar, and if they don&apos;t, if they achieve the functionality implemented here in another way.

I started wondering about this after taking a look at bug 82286 -- it&apos;s rather unfortunate that we can&apos;t exercise the function being changed here in DumpRenderTree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611360</commentid>
    <comment_count>21</comment_count>
      <attachid>139008</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-04-27 03:29:25 -0700</bug_when>
    <thetext>Comment on attachment 139008
move back implementation to ewk_view

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

&gt;&gt; Source/WebKit/efl/ewk/ewk_view.cpp:321
&gt;&gt; +    Eina_Hash* editorCommandHash;
&gt; 
&gt; I didn&apos;t understand why this was added to the private data instead of being a static variable inside _ewk_view_editor_command_string_get -- every time a new view is created a new hash will be created with the exact same data.

I had difficulties with calling eina_hash_free on static Eina_Hash inside function. I will move the hash table back to function and replace it with OwnPtr&lt;Eina_Hash&gt;.

&gt;&gt; Source/WebKit/efl/ewk/ewk_view.cpp:1219
&gt;&gt; +                    editorCommands[i].editorCommandString);
&gt; 
&gt; We usually don&apos;t wrap at 80 characters, so these lines can be merged.

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611365</commentid>
    <comment_count>22</comment_count>
      <attachid>139166</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-04-27 03:58:15 -0700</bug_when>
    <thetext>Created attachment 139166
new patch using OwnPtr

A new patch moving hash table back inside static function using OwnPtr approach for freeing Eina_Hash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611471</commentid>
    <comment_count>23</comment_count>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-04-27 07:14:07 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; One other thing I&apos;d like to ask is whether other ports implement something similar, and if they don&apos;t, if they achieve the functionality implemented here in another way.
&gt; 
&gt; I started wondering about this after taking a look at bug 82286 -- it&apos;s rather unfortunate that we can&apos;t exercise the function being changed here in DumpRenderTree.

The most similar can be found in QT: QWebPage::triggerAction, where we can call some editing actions from API using enum. I am not 100% sure but I think there are some API function using commands as strings in Chromium (WebFrameImpl::executeCommand) and Windows (WebView::executeCoreCommandByName). All ports mentioned above are using the methods in DumpRendererTree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613310</commentid>
    <comment_count>24</comment_count>
      <attachid>139166</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-01 01:18:41 -0700</bug_when>
    <thetext>Comment on attachment 139166
new patch using OwnPtr

Attachment 139166 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/12592488</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614957</commentid>
    <comment_count>25</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-05-02 20:16:19 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 139008 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=139008&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/efl/ewk/ewk_view.cpp:321
&gt; &gt;&gt; +    Eina_Hash* editorCommandHash;
&gt; &gt; 
&gt; &gt; I didn&apos;t understand why this was added to the private data instead of being a static variable inside _ewk_view_editor_command_string_get -- every time a new view is created a new hash will be created with the exact same data.
&gt; 
&gt; I had difficulties with calling eina_hash_free on static Eina_Hash inside function. I will move the hash table back to function and replace it with OwnPtr&lt;Eina_Hash&gt;.

Note that this approach &quot;leaks&quot; as much as using a static raw pointer -- even if you do call the OwnPtr destructor, it will be done at the program shutdown anyway. I guess that&apos;s why this idiom is not found elsewhere in the code base, by the way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617512</commentid>
    <comment_count>26</comment_count>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-05-07 04:24:31 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #21)
&gt; &gt; (From update of attachment 139008 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=139008&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebKit/efl/ewk/ewk_view.cpp:321
&gt; &gt; &gt;&gt; +    Eina_Hash* editorCommandHash;
&gt; &gt; &gt; 
&gt; &gt; &gt; I didn&apos;t understand why this was added to the private data instead of being a static variable inside _ewk_view_editor_command_string_get -- every time a new view is created a new hash will be created with the exact same data.
&gt; &gt; 
&gt; &gt; I had difficulties with calling eina_hash_free on static Eina_Hash inside function. I will move the hash table back to function and replace it with OwnPtr&lt;Eina_Hash&gt;.
&gt; 
&gt; Note that this approach &quot;leaks&quot; as much as using a static raw pointer -- even if you do call the OwnPtr destructor, it will be done at the program shutdown anyway. I guess that&apos;s why this idiom is not found elsewhere in the code base, by the way.

I just thought that it will be better to clean up after myself by calling eina_hash_free explicitly than leaving it unfreed as we destroy the application.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617608</commentid>
    <comment_count>27</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-05-07 08:14:41 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; &gt; Note that this approach &quot;leaks&quot; as much as using a static raw pointer -- even if you do call the OwnPtr destructor, it will be done at the program shutdown anyway. I guess that&apos;s why this idiom is not found elsewhere in the code base, by the way.
&gt; 
&gt; I just thought that it will be better to clean up after myself by calling eina_hash_free explicitly than leaving it unfreed as we destroy the application.

In practice this will make no difference, and WebKit itself already does that in many other places, including WebCore. The patch size could be reduced a bit if you just leak the raw pointer, and you wouldn&apos;t need to depend on the Eina_Hash OwnPtr bug to land this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620555</commentid>
    <comment_count>28</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-05-10 07:05:21 -0700</bug_when>
    <thetext>Please resend the patch now that bug 85046 has landed so we can check if it passes the EFL EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620573</commentid>
    <comment_count>29</comment_count>
      <attachid>141167</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-05-10 07:34:54 -0700</bug_when>
    <thetext>Created attachment 141167
rebased patch

rebase patch after https://bugs.webkit.org/attachment.cgi?bugid=85046 has landed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624144</commentid>
    <comment_count>30</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-05-15 08:47:50 -0700</bug_when>
    <thetext>LGTM now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625157</commentid>
    <comment_count>31</comment_count>
      <attachid>141167</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-16 02:03:45 -0700</bug_when>
    <thetext>Comment on attachment 141167
rebased patch

rubberstamping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625168</commentid>
    <comment_count>32</comment_count>
      <attachid>141167</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-16 02:16:12 -0700</bug_when>
    <thetext>Comment on attachment 141167
rebased patch

Clearing flags on attachment: 141167

Committed r117239: &lt;http://trac.webkit.org/changeset/117239&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625169</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-16 02:16:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120009</attachid>
            <date>2011-12-20 04:45:23 -0800</date>
            <delta_ts>2012-01-12 04:47:52 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>patch_editor_command.diff</filename>
            <type>text/plain</type>
            <size>9042</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCBkNTY5ODBjLi5lYzJiNTc0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTEtMTItMjAgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxt
LnBha3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBBZGQgbmV3IGNvbW1hbmRzIGZv
ciBFd2tfRWRpdG9yX0NvbW1hbmQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03NDkyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgZXh0ZW5kcyBFd2tfRWRpdG9yX0NvbW1hbmQgd2l0aCBuZXcgY29t
bWFuZHMuIEFsc28gYSB0YWJsZSBvZiBlZGl0b3IgY29tbWFuZAorICAgICAgICBzdHJpbmdzIHdh
cyBpbnRyb2R1Y2VkLiBOdW1lcm91cyBjYWxscyBvZiBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmQg
Zm9yIGVhY2ggY2FzZSBpbgorICAgICAgICBld2tfdmlld19leGVjdXRlX2VkaXRvcl9jb21tYW5k
IHdlcmUgcmVwbGFjZWQgYnkgb25lIGNhbGwgb2YgZnVuY3Rpb25zIG9idGFpbmluZyBhIGNvbW1h
bmQKKyAgICAgICAgc3RyaW5nIGZyb20gYSB0YWJsZSBmb3IgZ2l2ZW4gRXdrX0VkaXRvcl9Db21t
YW5kIHZhbHVlLgorCisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDogQWRkZWQgc3RhdGljIHRh
YmxlIGNvbnRhaW5pbmcgY29tbWFuZCBzdHJpbmdzLgorICAgICAgICAoZXdrX3ZpZXdfZWRpdG9y
X2NvbW1hbmRfc3RyaW5nX2dldCk6IEltcGxlbWVudGVkIGZ1bmN0aW9uIHJldHVybmluZyBjb21t
YW5kIHN0cmluZy4KKyAgICAgICAgKGV3a192aWV3X2V4ZWN1dGVfZWRpdG9yX2NvbW1hbmQpOiBB
ZGp1c3RlZCB0byB1c2UgZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmRfc3RyaW5nX2dldC4KKyAgICAg
ICAgKiBld2svZXdrX3ZpZXcuaDogQWRkZWQgbmV3IEV3a19FZGl0b3JfQ29tbWFuZCB2YWx1ZXMu
CisKIDIwMTEtMTItMTkgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgogCiAg
ICAgICAgIFtFRkxdIENoYW5nZSB0aGUgYmVoYXZpb3Igb2YgZXdrX3ZpZXdfc2NhbGVfc2V0Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggOTFlZWVhMS4uYTM2YmZlZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC0xMTgsNiArMTE4LDQ4IEBAIHN0YXRpYyBjb25z
dCBFdmFzX1NtYXJ0X0NiX0Rlc2NyaXB0aW9uIF9ld2tfdmlld19jYWxsYmFja19uYW1lc1tdID0g
ewogICAgIHsgMCwgMCB9CiB9OwogCitzdGF0aWMgY29uc3QgY2hhciogX2V3a192aWV3X2VkaXRv
cl9jb21tYW5kc1tdID0geworICAgICJJbnNlcnRJbWFnZSIsIC8vIEVXS19FRElUT1JfQ09NTUFO
RF9JTlNFUlRfSU1BR0UsCisgICAgIkluc2VydFRleHQiLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRf
SU5TRVJUX1RFWFQsCisgICAgIlNlbGVjdE5vbmUiLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfU0VM
RUNUX05PTkUsCisgICAgIlNlbGVjdEFsbCIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1Rf
QUxMLAorICAgICJTZWxlY3RQYXJhZ3JhcGgiLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNU
X1BBUkFHUkFQSCwKKyAgICAiU2VsZWN0U2VudGVuY2UiLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRf
U0VMRUNUX1NFTlRFTkNFLAorICAgICJTZWxlY3RMaW5lIiwgLy8gRVdLX0VESVRPUl9DT01NQU5E
X1NFTEVDVF9MSU5FLAorICAgICJTZWxlY3RXb3JkIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX1NF
TEVDVF9XT1JELAorICAgICJNb3ZlRm9yd2FyZCIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9NT1ZF
X1RPX05FWFRfQ0hBUiwKKyAgICAiTW92ZUJhY2t3YXJkIiwgLy8gRVdLX0VESVRPUl9DT01NQU5E
X01PVkVfVE9fUFJFVklPVVNfQ0hBUiwKKyAgICAiTW92ZVdvcmRGb3J3YXJkIiwgLy8gRVdLX0VE
SVRPUl9DT01NQU5EX01PVkVfVE9fTkVYVF9XT1JELAorICAgICJNb3ZlV29yZEJhY2t3YXJkIiwg
Ly8gRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fUFJFVklPVVNfV09SRCwKKyAgICAiTW92ZURv
d24iLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19ORVhUX0xJTkUsCisgICAgIk1vdmVV
cCIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX1BSRVZJT1VTX0xJTkUsCisgICAgIk1v
dmVUb0JlZ2lubmluZ09mTGluZSIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX0JFR0lO
TklOR19PRl9MSU5FLAorICAgICJNb3ZlVG9FbmRPZkxpbmUiLCAvLyBFV0tfRURJVE9SX0NPTU1B
TkRfTU9WRV9UT19FTkRfT0ZfTElORSwKKyAgICAiTW92ZVRvQmVnaW5uaW5nT2ZQYXJhZ3JhcGgi
LCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19CRUdJTk5JTkdfT0ZfUEFSQUdSQVBILAor
ICAgICJNb3ZlVG9FbmRPZlBhcmFncmFwaCIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9NT1ZFX1RP
X0VORF9PRl9QQVJBR1JBUEgsCisgICAgIk1vdmVUb0JlZ2lubmluZ09mRG9jdW1lbnQiLCAvLyBF
V0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19CRUdJTk5JTkdfT0ZfRE9DVU1FTlQsCisgICAgIk1v
dmVUb0VuZE9mRG9jdW1lbnQiLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19FTkRfT0Zf
RE9DVU1FTlQsCisgICAgIk1vdmVGb3J3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uIiwgLy8gRVdLX0VE
SVRPUl9DT01NQU5EX1NFTEVDVF9ORVhUX0NIQVIsCisgICAgIk1vdmVCYWNrd2FyZEFuZE1vZGlm
eVNlbGVjdGlvbiIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfUFJFVklPVVNfQ0hBUiwK
KyAgICAiTW92ZVdvcmRGb3J3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uIiwgLy8gRVdLX0VESVRPUl9D
T01NQU5EX1NFTEVDVF9ORVhUX1dPUkQsCisgICAgIk1vdmVXb3JkQmFja3dhcmRBbmRNb2RpZnlT
ZWxlY3Rpb24iLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1BSRVZJT1VTX1dPUkQsCisg
ICAgIk1vdmVEb3duQW5kTW9kaWZ5U2VsZWN0aW9uIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX1NF
TEVDVF9ORVhUX0xJTkUsCisgICAgIk1vdmVVcEFuZE1vZGlmeVNlbGVjdGlvbiIsIC8vIEVXS19F
RElUT1JfQ09NTUFORF9TRUxFQ1RfUFJFVklPVVNfTElORSwKKyAgICAiTW92ZVRvQmVnaW5uaW5n
T2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9uIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9T
VEFSVF9PRl9MSU5FLAorICAgICJNb3ZlVG9FbmRPZkxpbmVBbmRNb2RpZnlTZWxlY3Rpb24iLCAv
LyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX0VORF9PRl9MSU5FLAorICAgICJNb3ZlVG9CZWdp
bm5pbmdPZlBhcmFncmFwaEFuZE1vZGlmeVNlbGVjdGlvbiIsIC8vIEVXS19FRElUT1JfQ09NTUFO
RF9TRUxFQ1RfU1RBUlRfT0ZfUEFSQUdSQVBILAorICAgICJNb3ZlVG9FbmRPZlBhcmFncmFwaEFu
ZE1vZGlmeVNlbGVjdGlvbiIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfRU5EX09GX1BB
UkFHUkFQSCwKKyAgICAiTW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlv
biIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfU1RBUlRfT0ZfRE9DVU1FTlQsCisgICAg
Ik1vdmVUb0VuZE9mRG9jdW1lbnRBbmRNb2RpZnlTZWxlY3Rpb24iLCAvLyBFV0tfRURJVE9SX0NP
TU1BTkRfU0VMRUNUX0VORF9PRl9ET0NVTUVOVCwKKyAgICAiRGVsZXRlV29yZEJhY2t3YXJkIiwg
Ly8gRVdLX0VESVRPUl9DT01NQU5EX0RFTEVURV9XT1JEX0JBQ0tXQVJELAorICAgICJEZWxldGVX
b3JkRm9yd2FyZCIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9ERUxFVEVfV09SRF9GT1JXQVJELAor
ICAgICJJbnNlcnROZXdsaW5lIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9QQVJBR1JB
UEhfU0VQQVJBVE9SLAorICAgICJJbnNlcnRMaW5lQnJlYWsiLCAvLyBFV0tfRURJVE9SX0NPTU1B
TkRfSU5TRVJUX0xJTkVfU0VQQVJBVE9SLAorICAgICJTdHJpa2V0aHJvdWdoIiwgLy8gRVdLX0VE
SVRPUl9DT01NQU5EX1NUUklLRVRIUk9VR0gsCisgICAgIlN1YnNjcmlwdCIsIC8vIEVXS19FRElU
T1JfQ09NTUFORF9TVUJTQ1JJUFQsCisgICAgIlN1cGVyc2NyaXB0IiwgLy8gRVdLX0VESVRPUl9D
T01NQU5EX1NVUEVSU0NJUFQKK307CisKIC8qKgogICogQGJyaWVmIFByaXZhdGUgZGF0YSB0aGF0
IGlzIHVzZWQgaW50ZXJuYWxseSBieSBFRkwgV2ViS2l0CiAgKiBhbmQgc2hvdWxkIG5ldmVyIGJl
IG1vZGlmaWVkIGZyb20gb3V0c2lkZS4KQEAgLTE0MjQsMzEgKzE0NjYsMzEgQEAgc3RhdGljIEVp
bmFfQm9vbCBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmQoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBw
cml2LCBjb25zdCBjaGEKICAgICByZXR1cm4gcHJpdi0+cGFnZS0+Zm9jdXNDb250cm9sbGVyKCkt
PmZvY3VzZWRPck1haW5GcmFtZSgpLT5lZGl0b3IoKS0+Y29tbWFuZChXVEY6OlN0cmluZzo6ZnJv
bVVURjgoY29tbWFuZCkpLmV4ZWN1dGUoV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKSk7CiB9
CiAKKy8qKgorICogQGludGVybmFsCisgKiBHZXRzIGVkaXRvciBjb21tYW5kIHN0cmluZyBmcm9t
IGdpdmVuIEV3a19FZGl0b3JfQ29tbWFuZCB2YWx1ZS4KKyAqCisgKiBAcGFyYW0gY29tbWFuZCBF
d2tfRWRpdG9yX0NvbW1hbmQgdG8gZ2V0IHN0cmluZy4KKyAqCisgKiBAcmV0dXJuIGNvbW1hbmQg
c3RyaW5nIGlmIEV3a19FZGl0b3JfQ29tbWFuZCB3YXMgY29ycmVjdCBvciBAYyAwIG90aGVyd2lz
ZS4KKyAqLworc3RhdGljIGNvbnN0IGNoYXIqIF9ld2tfdmlld19lZGl0b3JfY29tbWFuZF9zdHJp
bmdfZ2V0KGNvbnN0IEV3a19FZGl0b3JfQ29tbWFuZCBjb21tYW5kKQoreworICAgIGlmICgoY29t
bWFuZCA+IEVXS19FRElUT1JfQ09NTUFORF9OT05FKQorICAgICAgICAgICAgJiYgKGNvbW1hbmQg
PCBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihfZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmRzKSAvIHNp
emVvZihjb25zdCBjaGFyKikpKSkKKyAgICAgICAgcmV0dXJuIF9ld2tfdmlld19lZGl0b3JfY29t
bWFuZHNbY29tbWFuZF07CisgICAgcmV0dXJuIDA7Cit9CisKIEVpbmFfQm9vbCBld2tfdmlld19l
eGVjdXRlX2VkaXRvcl9jb21tYW5kKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFd2tfRWRp
dG9yX0NvbW1hbmQgY29tbWFuZCwgY29uc3QgY2hhciogdmFsdWUpCiB7CiAgICAgRVdLX1ZJRVdf
U0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKICAgICBFV0tfVklF
V19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAKLSAgICBzd2l0
Y2ggKGNvbW1hbmQpIHsKLSAgICBjYXNlIEVXS19FRElUT1JfQ09NTUFORF9JTlNFUlRfSU1BR0U6
Ci0gICAgICAgIHJldHVybiBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmQocHJpdiwgIkluc2VydElt
YWdlIiwgdmFsdWUpOwotICAgIGNhc2UgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9URVhUOgot
ICAgICAgICByZXR1cm4gX2V3a192aWV3X2VkaXRvcl9jb21tYW5kKHByaXYsICJJbnNlcnRUZXh0
IiwgdmFsdWUpOwotICAgIGNhc2UgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9OT05FOgotICAg
ICAgICByZXR1cm4gX2V3a192aWV3X2VkaXRvcl9jb21tYW5kKHByaXYsICJVbnNlbGVjdCIpOwot
ICAgIGNhc2UgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9BTEw6Ci0gICAgICAgIHJldHVybiBf
ZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmQocHJpdiwgIlNlbGVjdEFsbCIpOwotICAgIGNhc2UgRVdL
X0VESVRPUl9DT01NQU5EX1NFTEVDVF9QQVJBR1JBUEg6Ci0gICAgICAgIHJldHVybiBfZXdrX3Zp
ZXdfZWRpdG9yX2NvbW1hbmQocHJpdiwgIlNlbGVjdFBhcmFncmFwaCIpOwotICAgIGNhc2UgRVdL
X0VESVRPUl9DT01NQU5EX1NFTEVDVF9TRU5URU5DRToKLSAgICAgICAgcmV0dXJuIF9ld2tfdmll
d19lZGl0b3JfY29tbWFuZChwcml2LCAiU2VsZWN0U2VudGVuY2UiKTsKLSAgICBjYXNlIEVXS19F
RElUT1JfQ09NTUFORF9TRUxFQ1RfTElORToKLSAgICAgICAgcmV0dXJuIF9ld2tfdmlld19lZGl0
b3JfY29tbWFuZChwcml2LCAiU2VsZWN0TGluZSIpOwotICAgIGNhc2UgRVdLX0VESVRPUl9DT01N
QU5EX1NFTEVDVF9XT1JEOgotICAgICAgICByZXR1cm4gX2V3a192aWV3X2VkaXRvcl9jb21tYW5k
KHByaXYsICJTZWxlY3RXb3JkIik7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0KKyAgICBjb25zdCBjaGFyKiBjb21tYW5kU3RyaW5nID0gX2V3a192aWV3X2VkaXRv
cl9jb21tYW5kX3N0cmluZ19nZXQoY29tbWFuZCk7CisgICAgaWYgKGNvbW1hbmRTdHJpbmcpCisg
ICAgICAgIHJldHVybiBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmQocHJpdiwgY29tbWFuZFN0cmlu
ZywgdmFsdWUpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogRWluYV9Cb29sIGV3a192aWV3X2Nv
bnRleHRfbWVudV9mb3J3YXJkX2V2ZW50KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFdmFz
X0V2ZW50X01vdXNlX0Rvd24qIGRvd25FdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKaW5k
ZXggZWM1NjY1Yy4uOTQ0Njg4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a192aWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKQEAgLTcxOSw2
ICs3MTksNyBAQCBFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2Fy
ZF9ldmVudChFdmFzX09iamVjdCAqbywgY29uc3QgRXZhcwogCiAvLy8gQ29udGFpbnMgY29tbWFu
ZHMgdG8gZXhlY3V0ZS4KIGVudW0gX0V3a19FZGl0b3JfQ29tbWFuZCB7CisgICAgRVdLX0VESVRP
Ul9DT01NQU5EX05PTkUgPSAtMSwKICAgICBFV0tfRURJVE9SX0NPTU1BTkRfSU5TRVJUX0lNQUdF
ID0gMCwKICAgICBFV0tfRURJVE9SX0NPTU1BTkRfSU5TRVJUX1RFWFQsCiAgICAgRVdLX0VESVRP
Ul9DT01NQU5EX1NFTEVDVF9OT05FLApAQCAtNzI2LDcgKzcyNywzOCBAQCBlbnVtIF9Fd2tfRWRp
dG9yX0NvbW1hbmQgewogICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfUEFSQUdSQVBILAog
ICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfU0VOVEVOQ0UsCiAgICAgRVdLX0VESVRPUl9D
T01NQU5EX1NFTEVDVF9MSU5FLAotICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfV09SRAor
ICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfV09SRCwKKyAgICBFV0tfRURJVE9SX0NPTU1B
TkRfTU9WRV9UT19ORVhUX0NIQVIsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fUFJF
VklPVVNfQ0hBUiwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19ORVhUX1dPUkQsCisg
ICAgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fUFJFVklPVVNfV09SRCwKKyAgICBFV0tfRURJ
VE9SX0NPTU1BTkRfTU9WRV9UT19ORVhUX0xJTkUsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX01P
VkVfVE9fUFJFVklPVVNfTElORSwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19CRUdJ
Tk5JTkdfT0ZfTElORSwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19FTkRfT0ZfTElO
RSwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19CRUdJTk5JTkdfT0ZfUEFSQUdSQVBI
LAorICAgIEVXS19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX0VORF9PRl9QQVJBR1JBUEgsCisgICAg
RVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fQkVHSU5OSU5HX09GX0RPQ1VNRU5ULAorICAgIEVX
S19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX0VORF9PRl9ET0NVTUVOVCwKKyAgICBFV0tfRURJVE9S
X0NPTU1BTkRfU0VMRUNUX05FWFRfQ0hBUiwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNU
X1BSRVZJT1VTX0NIQVIsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9ORVhUX1dPUkQs
CisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9QUkVWSU9VU19XT1JELAorICAgIEVXS19F
RElUT1JfQ09NTUFORF9TRUxFQ1RfTkVYVF9MSU5FLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9T
RUxFQ1RfUFJFVklPVVNfTElORSwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1NUQVJU
X09GX0xJTkUsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9FTkRfT0ZfTElORSwKKyAg
ICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1NUQVJUX09GX1BBUkFHUkFQSCwKKyAgICBFV0tf
RURJVE9SX0NPTU1BTkRfU0VMRUNUX0VORF9PRl9QQVJBR1JBUEgsCisgICAgRVdLX0VESVRPUl9D
T01NQU5EX1NFTEVDVF9TVEFSVF9PRl9ET0NVTUVOVCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRf
U0VMRUNUX0VORF9PRl9ET0NVTUVOVCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfREVMRVRFX1dP
UkRfQkFDS1dBUkQsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX0RFTEVURV9XT1JEX0ZPUldBUkQs
CisgICAgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9QQVJBR1JBUEhfU0VQQVJBVE9SLAorICAg
IEVXS19FRElUT1JfQ09NTUFORF9JTlNFUlRfTElORV9TRVBBUkFUT1IsCisgICAgRVdLX0VESVRP
Ul9DT01NQU5EX1NUUklLRVRIUk9VR0gsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NVQlNDUklQ
VCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU1VQRVJTQ1JJUFQKIH07CiAvLy8gQ3JlYXRlcyBh
IHR5cGUgbmFtZSBmb3IgQGEgX0V3a19FZGl0b3JfQ29tbWFuZC4KIHR5cGVkZWYgZW51bSBfRXdr
X0VkaXRvcl9Db21tYW5kIEV3a19FZGl0b3JfQ29tbWFuZDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122215</attachid>
            <date>2012-01-12 04:47:52 -0800</date>
            <delta_ts>2012-01-12 06:48:33 -0800</delta_ts>
            <desc>move implementation to new files</desc>
            <filename>patch_editor_new_file.diff</filename>
            <type>text/plain</type>
            <size>15229</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0IGIvU291cmNl
L1dlYktpdC9lZmwvQ01ha2VMaXN0c0VmbC50eHQKaW5kZXggYzVlZjY1Ni4uZjAxZDVkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ01ha2VMaXN0c0VmbC50eHQKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvQ01ha2VMaXN0c0VmbC50eHQKQEAgLTc4LDYgKzc4LDcgQEAgTElTVChBUFBF
TkQgV2ViS2l0X1NPVVJDRVMKIAogICAgIGVmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcAogICAg
IGVmbC9ld2svZXdrX2Nvb2tpZXMuY3BwCisgICAgZWZsL2V3ay9ld2tfZWRpdG9yLmNwcAogICAg
IGVmbC9ld2svZXdrX2ZyYW1lLmNwcAogICAgIGVmbC9ld2svZXdrX2hpc3RvcnkuY3BwCiAgICAg
ZWZsL2V3ay9ld2tfbWFpbi5jcHAKQEAgLTIzNiw2ICsyMzcsNyBAQCBTRVQoRVdlYktpdF9IRUFE
RVJTCiAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2VmbC9ld2svZXdrX2F1dGguaAog
ICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5o
CiAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2VmbC9ld2svZXdrX2Nvb2tpZXMuaAor
ICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a19lZGl0b3IuaAogICAg
ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a19mcmFtZS5oCiAgICAgJHtD
TUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2VmbC9ld2svZXdrX2hpc3RvcnkuaAogICAgICR7Q01B
S0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a19qcy5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5k
ZXggN2EwYmQyNi4uYzcxMjBlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisy
MDEyLTAxLTEyICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5j
b20+CisKKyAgICAgICAgQWRkIG5ldyBjb21tYW5kcyBmb3IgRXdrX0VkaXRvcl9Db21tYW5kLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5MjEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRo
aXMgZXh0ZW5kcyBFd2tfRWRpdG9yX0NvbW1hbmQgd2l0aCBuZXcgY29tbWFuZHMuIEFsc28gYSB0
YWJsZSBvZiBlZGl0b3IgY29tbWFuZAorICAgICAgICBzdHJpbmdzIHdhcyBpbnRyb2R1Y2VkIGlu
IG5ldyBmaWxlIGV3a19lZGl0b3IuY3BwLiBOdW1lcm91cyBjYWxscyBvZiAKKyAgICAgICAgX2V3
a192aWV3X2VkaXRvcl9jb21tYW5kIGZvciBlYWNoIGNhc2UgaW4gZXdrX3ZpZXdfZXhlY3V0ZV9l
ZGl0b3JfY29tbWFuZCB3ZXJlIHJlcGxhY2VkCisgICAgICAgIGJ5IG9uZSBjYWxsIG9mIGZ1bmN0
aW9ucyBvYnRhaW5pbmcgYSBjb21tYW5kIHN0cmluZyBmcm9tIGEgdGFibGUgZm9yIGdpdmVuIAor
ICAgICAgICBFd2tfRWRpdG9yX0NvbW1hbmQgdmFsdWUuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
RWZsLnR4dDogQWRkZWQgZXdrX2VkaXRvci5jcHAgYW5kIGV3a19lZGl0b3IuaCBmaWxlcy4KKyAg
ICAgICAgKiBld2svRVdlYktpdC5oOgorICAgICAgICAqIGV3ay9ld2tfZWRpdG9yLmNwcDogQWRk
ZWQuCisgICAgICAgIChfZXdrX2VkaXRvcl9jb21tYW5kX3N0cmluZ19nZXQpOiBJbXBsZW1lbnRl
ZCBmdW5jdGlvbiByZXR1cm5pbmcgY29tbWFuZCBzdHJpbmcuCisgICAgICAgIChld2tfZWRpdG9y
X2NvbW1hbmRfZXhlY3V0ZSk6CisgICAgICAgICogZXdrL2V3a19lZGl0b3IuaDogQWRkZWQuCisg
ICAgICAgICogZXdrL2V3a19wcml2YXRlLmg6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoK
KyAgICAgICAgKGV3a192aWV3X2VkaXRvcl9jb21tYW5kX2V4ZWN1dGUpOiBBZGRlZC4KKyAgICAg
ICAgKiBld2svZXdrX3ZpZXcuaDogUmVtb3ZlIEV3a19FZGl0b3JfQ29tbWFuZCBlbnVtIGFuZCBl
d2tfdmlld19leGVjdXRlX2VkaXRvcl9jb21tYW5kLgorCiAyMDEyLTAxLTEyICBHcnplZ29yeiBD
emFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIE1v
dmUgbWFjcm8gY2hlY2tpbmcgdG8gZnVuY3Rpb25zJyBkZWZpbml0aW9uIGluIGV3a19qcy5jcHAu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svRVdlYktpdC5oIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL0VXZWJLaXQuaAppbmRleCAzZjc5NGZiLi5kMjFlOTcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svRVdlYktpdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9FV2ViS2l0LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJld2tfYXV0aC5oIgog
I2luY2x1ZGUgImV3a19jb250ZXh0bWVudS5oIgogI2luY2x1ZGUgImV3a19jb29raWVzLmgiCisj
aW5jbHVkZSAiZXdrX2VkaXRvci5oIgogI2luY2x1ZGUgImV3a19mcmFtZS5oIgogI2luY2x1ZGUg
ImV3a19oaXN0b3J5LmgiCiAjaW5jbHVkZSAiZXdrX2pzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX2VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X2VkaXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzhkYjkwZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZWRpdG9yLmNwcApA
QCAtMCwwICsxLDkzIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0
cm9uaWNzCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImV3a19lZGl0b3IuaCIK
KworI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCisjaW5jbHVkZSA8RWluYS5oPgorCitzdGF0aWMg
Y29uc3QgY2hhciogX2V3a19lZGl0b3JfY29tbWFuZHNbXSA9IHsKKyAgICAiSW5zZXJ0SW1hZ2Ui
LCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfSU5TRVJUX0lNQUdFLAorICAgICJJbnNlcnRUZXh0Iiwg
Ly8gRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9URVhULAorICAgICJTZWxlY3ROb25lIiwgLy8g
RVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9OT05FLAorICAgICJTZWxlY3RBbGwiLCAvLyBFV0tf
RURJVE9SX0NPTU1BTkRfU0VMRUNUX0FMTCwKKyAgICAiU2VsZWN0UGFyYWdyYXBoIiwgLy8gRVdL
X0VESVRPUl9DT01NQU5EX1NFTEVDVF9QQVJBR1JBUEgsCisgICAgIlNlbGVjdFNlbnRlbmNlIiwg
Ly8gRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9TRU5URU5DRSwKKyAgICAiU2VsZWN0TGluZSIs
IC8vIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfTElORSwKKyAgICAiU2VsZWN0V29yZCIsIC8v
IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfV09SRCwKKyAgICAiTW92ZUZvcndhcmQiLCAvLyBF
V0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19ORVhUX0NIQVIsCisgICAgIk1vdmVCYWNrd2FyZCIs
IC8vIEVXS19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX1BSRVZJT1VTX0NIQVIsCisgICAgIk1vdmVX
b3JkRm9yd2FyZCIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX05FWFRfV09SRCwKKyAg
ICAiTW92ZVdvcmRCYWNrd2FyZCIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX1BSRVZJ
T1VTX1dPUkQsCisgICAgIk1vdmVEb3duIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9f
TkVYVF9MSU5FLAorICAgICJNb3ZlVXAiLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19Q
UkVWSU9VU19MSU5FLAorICAgICJNb3ZlVG9CZWdpbm5pbmdPZkxpbmUiLCAvLyBFV0tfRURJVE9S
X0NPTU1BTkRfTU9WRV9UT19CRUdJTk5JTkdfT0ZfTElORSwKKyAgICAiTW92ZVRvRW5kT2ZMaW5l
IiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fRU5EX09GX0xJTkUsCisgICAgIk1vdmVU
b0JlZ2lubmluZ09mUGFyYWdyYXBoIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fQkVH
SU5OSU5HX09GX1BBUkFHUkFQSCwKKyAgICAiTW92ZVRvRW5kT2ZQYXJhZ3JhcGgiLCAvLyBFV0tf
RURJVE9SX0NPTU1BTkRfTU9WRV9UT19FTkRfT0ZfUEFSQUdSQVBILAorICAgICJNb3ZlVG9CZWdp
bm5pbmdPZkRvY3VtZW50IiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fQkVHSU5OSU5H
X09GX0RPQ1VNRU5ULAorICAgICJNb3ZlVG9FbmRPZkRvY3VtZW50IiwgLy8gRVdLX0VESVRPUl9D
T01NQU5EX01PVkVfVE9fRU5EX09GX0RPQ1VNRU5ULAorICAgICJNb3ZlRm9yd2FyZEFuZE1vZGlm
eVNlbGVjdGlvbiIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfTkVYVF9DSEFSLAorICAg
ICJNb3ZlQmFja3dhcmRBbmRNb2RpZnlTZWxlY3Rpb24iLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRf
U0VMRUNUX1BSRVZJT1VTX0NIQVIsCisgICAgIk1vdmVXb3JkRm9yd2FyZEFuZE1vZGlmeVNlbGVj
dGlvbiIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfTkVYVF9XT1JELAorICAgICJNb3Zl
V29yZEJhY2t3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX1NF
TEVDVF9QUkVWSU9VU19XT1JELAorICAgICJNb3ZlRG93bkFuZE1vZGlmeVNlbGVjdGlvbiIsIC8v
IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfTkVYVF9MSU5FLAorICAgICJNb3ZlVXBBbmRNb2Rp
ZnlTZWxlY3Rpb24iLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1BSRVZJT1VTX0xJTkUs
CisgICAgIk1vdmVUb0JlZ2lubmluZ09mTGluZUFuZE1vZGlmeVNlbGVjdGlvbiIsIC8vIEVXS19F
RElUT1JfQ09NTUFORF9TRUxFQ1RfU1RBUlRfT0ZfTElORSwKKyAgICAiTW92ZVRvRW5kT2ZMaW5l
QW5kTW9kaWZ5U2VsZWN0aW9uIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9FTkRfT0Zf
TElORSwKKyAgICAiTW92ZVRvQmVnaW5uaW5nT2ZQYXJhZ3JhcGhBbmRNb2RpZnlTZWxlY3Rpb24i
LCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1NUQVJUX09GX1BBUkFHUkFQSCwKKyAgICAi
TW92ZVRvRW5kT2ZQYXJhZ3JhcGhBbmRNb2RpZnlTZWxlY3Rpb24iLCAvLyBFV0tfRURJVE9SX0NP
TU1BTkRfU0VMRUNUX0VORF9PRl9QQVJBR1JBUEgsCisgICAgIk1vdmVUb0JlZ2lubmluZ09mRG9j
dW1lbnRBbmRNb2RpZnlTZWxlY3Rpb24iLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1NU
QVJUX09GX0RPQ1VNRU5ULAorICAgICJNb3ZlVG9FbmRPZkRvY3VtZW50QW5kTW9kaWZ5U2VsZWN0
aW9uIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9FTkRfT0ZfRE9DVU1FTlQsCisgICAg
IkRlbGV0ZVdvcmRCYWNrd2FyZCIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9ERUxFVEVfV09SRF9C
QUNLV0FSRCwKKyAgICAiRGVsZXRlV29yZEZvcndhcmQiLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRf
REVMRVRFX1dPUkRfRk9SV0FSRCwKKyAgICAiSW5zZXJ0TmV3bGluZSIsIC8vIEVXS19FRElUT1Jf
Q09NTUFORF9JTlNFUlRfUEFSQUdSQVBIX1NFUEFSQVRPUiwKKyAgICAiSW5zZXJ0TGluZUJyZWFr
IiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9MSU5FX1NFUEFSQVRPUiwKKyAgICAiU3Ry
aWtldGhyb3VnaCIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9TVFJJS0VUSFJPVUdILAorICAgICJT
dWJzY3JpcHQiLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfU1VCU0NSSVBULAorICAgICJTdXBlcnNj
cmlwdCIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9TVVBFUlNDSVBUCit9OworCisvKioKKyAqIEBp
bnRlcm5hbAorICogR2V0cyBlZGl0b3IgY29tbWFuZCBzdHJpbmcgZnJvbSBnaXZlbiBFd2tfRWRp
dG9yX0NvbW1hbmQgdmFsdWUuCisgKgorICogQHBhcmFtIGNvbW1hbmQgRXdrX0VkaXRvcl9Db21t
YW5kIHRvIGdldCBzdHJpbmcuCisgKgorICogQHJldHVybiBjb21tYW5kIHN0cmluZyBpZiBFd2tf
RWRpdG9yX0NvbW1hbmQgd2FzIGNvcnJlY3Qgb3IgQGMgMCBvdGhlcndpc2UuCisgKi8KK3N0YXRp
YyBjb25zdCBjaGFyKiBfZXdrX2VkaXRvcl9jb21tYW5kX3N0cmluZ19nZXQoY29uc3QgRXdrX0Vk
aXRvcl9Db21tYW5kIGNvbW1hbmQpCit7CisgICAgaWYgKChjb21tYW5kID4gRVdLX0VESVRPUl9D
T01NQU5EX05PTkUpCisgICAgICAgICAgICAmJiAoY29tbWFuZCA8IHN0YXRpY19jYXN0PGludD4o
c2l6ZW9mKF9ld2tfZWRpdG9yX2NvbW1hbmRzKSAvIHNpemVvZihjb25zdCBjaGFyKikpKSkKKyAg
ICAgICAgcmV0dXJuIF9ld2tfZWRpdG9yX2NvbW1hbmRzW2NvbW1hbmRdOworcmV0dXJuIDA7Cit9
CisKK0VpbmFfQm9vbCBld2tfZWRpdG9yX2NvbW1hbmRfZXhlY3V0ZShjb25zdCBFdmFzX09iamVj
dCogZXdrVmlldywgY29uc3QgRXdrX0VkaXRvcl9Db21tYW5kIGNvbW1hbmQsIGNvbnN0IGNoYXIq
IHZhbHVlKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChld2tWaWV3LCBm
YWxzZSk7CisKKyAgICBjb25zdCBjaGFyKiBjb21tYW5kU3RyaW5nID0gX2V3a19lZGl0b3JfY29t
bWFuZF9zdHJpbmdfZ2V0KGNvbW1hbmQpOworICAgIGlmIChjb21tYW5kU3RyaW5nKQorICAgICAg
ICByZXR1cm4gZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmRfZXhlY3V0ZShld2tWaWV3LCBjb21tYW5k
U3RyaW5nLCB2YWx1ZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX2VkaXRvci5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19lZGl0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzg2MmVjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19lZGl0b3IuaApAQCAt
MCwwICsxLDg5IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9u
aWNzCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorKi8KKworI2lmbmRlZiBld2tfZWRpdG9yX2gKKyNkZWZpbmUgZXdrX2VkaXRvcl9oCisKKyNp
bmNsdWRlIDxFdmFzLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5k
aWYKKworLyogQ29udGFpbnMgY29tbWFuZHMgdG8gZXhlY3V0ZS4gKi8KK2VudW0gX0V3a19FZGl0
b3JfQ29tbWFuZCB7CisgICAgRVdLX0VESVRPUl9DT01NQU5EX05PTkUgPSAtMSwKKyAgICBFV0tf
RURJVE9SX0NPTU1BTkRfSU5TRVJUX0lNQUdFID0gMCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRf
SU5TRVJUX1RFWFQsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9OT05FLAorICAgIEVX
S19FRElUT1JfQ09NTUFORF9TRUxFQ1RfQUxMLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxF
Q1RfUEFSQUdSQVBILAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfU0VOVEVOQ0UsCisg
ICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9MSU5FLAorICAgIEVXS19FRElUT1JfQ09NTUFO
RF9TRUxFQ1RfV09SRCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19ORVhUX0NIQVIs
CisgICAgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fUFJFVklPVVNfQ0hBUiwKKyAgICBFV0tf
RURJVE9SX0NPTU1BTkRfTU9WRV9UT19ORVhUX1dPUkQsCisgICAgRVdLX0VESVRPUl9DT01NQU5E
X01PVkVfVE9fUFJFVklPVVNfV09SRCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19O
RVhUX0xJTkUsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fUFJFVklPVVNfTElORSwK
KyAgICBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19CRUdJTk5JTkdfT0ZfTElORSwKKyAgICBF
V0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19FTkRfT0ZfTElORSwKKyAgICBFV0tfRURJVE9SX0NP
TU1BTkRfTU9WRV9UT19CRUdJTk5JTkdfT0ZfUEFSQUdSQVBILAorICAgIEVXS19FRElUT1JfQ09N
TUFORF9NT1ZFX1RPX0VORF9PRl9QQVJBR1JBUEgsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX01P
VkVfVE9fQkVHSU5OSU5HX09GX0RPQ1VNRU5ULAorICAgIEVXS19FRElUT1JfQ09NTUFORF9NT1ZF
X1RPX0VORF9PRl9ET0NVTUVOVCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX05FWFRf
Q0hBUiwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1BSRVZJT1VTX0NIQVIsCisgICAg
RVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9ORVhUX1dPUkQsCisgICAgRVdLX0VESVRPUl9DT01N
QU5EX1NFTEVDVF9QUkVWSU9VU19XT1JELAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1Rf
TkVYVF9MSU5FLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfUFJFVklPVVNfTElORSwK
KyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1NUQVJUX09GX0xJTkUsCisgICAgRVdLX0VE
SVRPUl9DT01NQU5EX1NFTEVDVF9FTkRfT0ZfTElORSwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRf
U0VMRUNUX1NUQVJUX09GX1BBUkFHUkFQSCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNU
X0VORF9PRl9QQVJBR1JBUEgsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9TVEFSVF9P
Rl9ET0NVTUVOVCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX0VORF9PRl9ET0NVTUVO
VCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfREVMRVRFX1dPUkRfQkFDS1dBUkQsCisgICAgRVdL
X0VESVRPUl9DT01NQU5EX0RFTEVURV9XT1JEX0ZPUldBUkQsCisgICAgRVdLX0VESVRPUl9DT01N
QU5EX0lOU0VSVF9QQVJBR1JBUEhfU0VQQVJBVE9SLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9J
TlNFUlRfTElORV9TRVBBUkFUT1IsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NUUklLRVRIUk9V
R0gsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NVQlNDUklQVCwKKyAgICBFV0tfRURJVE9SX0NP
TU1BTkRfU1VQRVJTQ1JJUFQKK307CisvKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBAYSBfRXdr
X0VkaXRvcl9Db21tYW5kLiAqLwordHlwZWRlZiBlbnVtIF9Fd2tfRWRpdG9yX0NvbW1hbmQgRXdr
X0VkaXRvcl9Db21tYW5kOworCisvKioKKyAqIEV4ZWN1dGVzIGVkaXRvciBjb21tYW5kLgorICoK
KyAqIEBwYXJhbSBld2tWaWV3IHZpZXcgb2JqZWN0IHRvIGV4ZWN1dGUgY29tbWFuZAorICogQHBh
cmFtIGNvbW1hbmQgZWRpdG9yIGNvbW1hbmQgdG8gZXhlY3V0ZQorICogQHBhcmFtIHZhbHVlIHRo
ZSB2YWx1ZSB0byBiZSBwYXNzZWQgaW50byBjb21tYW5kCisgKgorICogQHJldHVybiBAYyBFSU5B
X1RSVUUgb24gc3VjY2VzcyBvciBAYyBFSU5BX0ZBTFNFIG9uIGZhaWx1cmUKKyAqLworRUFQSSBF
aW5hX0Jvb2wgICAgZXdrX2VkaXRvcl9jb21tYW5kX2V4ZWN1dGUoY29uc3QgRXZhc19PYmplY3Qq
IGV3a1ZpZXcsIGNvbnN0IEV3a19FZGl0b3JfQ29tbWFuZCBjb21tYW5kLCBjb25zdCBjaGFyKiB2
YWx1ZSk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisjZW5kaWYgLy8gZXdrX2Vk
aXRvcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCmluZGV4IDIwMjU5NDEuLmQ0NDdk
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCkBAIC0xNTksNiArMTU5LDggQEAg
dm9pZCBld2tfdmlld19uZWVkX3RvdWNoX2V2ZW50c19zZXQoRXZhc19PYmplY3QqLCBib29sIG5l
ZWRlZCk7CiBib29sIGV3a192aWV3X25lZWRfdG91Y2hfZXZlbnRzX2dldChjb25zdCBFdmFzX09i
amVjdCopOwogI2VuZGlmCiAKK0VpbmFfQm9vbCBld2tfdmlld19lZGl0b3JfY29tbWFuZF9leGVj
dXRlKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFyKiBjb21tYW5kLCBjb25z
dCBjaGFyKiB2YWx1ZSk7CisKIEV3a19IaXN0b3J5X0l0ZW0gKmV3a19oaXN0b3J5X2l0ZW1fbmV3
X2Zyb21fY29yZShXZWJDb3JlOjpIaXN0b3J5SXRlbSAqY29yZSk7CiBFd2tfSGlzdG9yeSogZXdr
X2hpc3RvcnlfbmV3KFdlYkNvcmU6OkJhY2tGb3J3YXJkTGlzdEltcGwqIGhpc3RvcnkpOwogdm9p
ZCBld2tfaGlzdG9yeV9mcmVlKEV3a19IaXN0b3J5KiBoaXN0b3J5KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXcuY3BwCmluZGV4IDdmZGJjMTEuLjg3MGE5NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a192aWV3LmNwcApAQCAtMTQzMCwzNiArMTQzMCwxMiBAQCBjaGFyKiBld2tfdmlld19zZWxlY3Rp
b25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIHJldHVybiBzdHJkdXAoc2Vs
ZWN0ZWRTdHJpbmcuZGF0YSgpKTsKIH0KIAotc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfZWRp
dG9yX2NvbW1hbmQoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBwcml2LCBjb25zdCBjaGFyKiBjb21t
YW5kLCBjb25zdCBjaGFyKiB2YWx1ZSA9IDApCi17Ci0gICAgcmV0dXJuIHByaXYtPnBhZ2UtPmZv
Y3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKS0+ZWRpdG9yKCktPmNvbW1hbmQo
V1RGOjpTdHJpbmc6OmZyb21VVEY4KGNvbW1hbmQpKS5leGVjdXRlKFdURjo6U3RyaW5nOjpmcm9t
VVRGOCh2YWx1ZSkpOwotfQotCi1FaW5hX0Jvb2wgZXdrX3ZpZXdfZXhlY3V0ZV9lZGl0b3JfY29t
bWFuZChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgRXdrX0VkaXRvcl9Db21tYW5kIGNvbW1h
bmQsIGNvbnN0IGNoYXIqIHZhbHVlKQorRWluYV9Cb29sIGV3a192aWV3X2VkaXRvcl9jb21tYW5k
X2V4ZWN1dGUoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IGNoYXIqIGNvbW1hbmQs
IGNvbnN0IGNoYXIqIHZhbHVlKQogewogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdr
Vmlldywgc21hcnREYXRhLCBmYWxzZSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJO
KHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogCi0gICAgc3dpdGNoIChjb21tYW5kKSB7Ci0gICAg
Y2FzZSBFV0tfRURJVE9SX0NPTU1BTkRfSU5TRVJUX0lNQUdFOgotICAgICAgICByZXR1cm4gX2V3
a192aWV3X2VkaXRvcl9jb21tYW5kKHByaXYsICJJbnNlcnRJbWFnZSIsIHZhbHVlKTsKLSAgICBj
YXNlIEVXS19FRElUT1JfQ09NTUFORF9JTlNFUlRfVEVYVDoKLSAgICAgICAgcmV0dXJuIF9ld2tf
dmlld19lZGl0b3JfY29tbWFuZChwcml2LCAiSW5zZXJ0VGV4dCIsIHZhbHVlKTsKLSAgICBjYXNl
IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfTk9ORToKLSAgICAgICAgcmV0dXJuIF9ld2tfdmll
d19lZGl0b3JfY29tbWFuZChwcml2LCAiVW5zZWxlY3QiKTsKLSAgICBjYXNlIEVXS19FRElUT1Jf
Q09NTUFORF9TRUxFQ1RfQUxMOgotICAgICAgICByZXR1cm4gX2V3a192aWV3X2VkaXRvcl9jb21t
YW5kKHByaXYsICJTZWxlY3RBbGwiKTsKLSAgICBjYXNlIEVXS19FRElUT1JfQ09NTUFORF9TRUxF
Q1RfUEFSQUdSQVBIOgotICAgICAgICByZXR1cm4gX2V3a192aWV3X2VkaXRvcl9jb21tYW5kKHBy
aXYsICJTZWxlY3RQYXJhZ3JhcGgiKTsKLSAgICBjYXNlIEVXS19FRElUT1JfQ09NTUFORF9TRUxF
Q1RfU0VOVEVOQ0U6Ci0gICAgICAgIHJldHVybiBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmQocHJp
diwgIlNlbGVjdFNlbnRlbmNlIik7Ci0gICAgY2FzZSBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNU
X0xJTkU6Ci0gICAgICAgIHJldHVybiBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmQocHJpdiwgIlNl
bGVjdExpbmUiKTsKLSAgICBjYXNlIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfV09SRDoKLSAg
ICAgICAgcmV0dXJuIF9ld2tfdmlld19lZGl0b3JfY29tbWFuZChwcml2LCAiU2VsZWN0V29yZCIp
OwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9CisgICAgcmV0dXJu
IHByaXYtPnBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKS0+ZWRp
dG9yKCktPmNvbW1hbmQoV1RGOjpTdHJpbmc6OmZyb21VVEY4KGNvbW1hbmQpKS5leGVjdXRlKFdU
Rjo6U3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3ZpZXdfY29u
dGV4dF9tZW51X2ZvcndhcmRfZXZlbnQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV2YXNf
RXZlbnRfTW91c2VfRG93biogZG93bkV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a192aWV3LmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAppbmRl
eCBkMGJlNjFkLi43OTY5OGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaApAQCAtNzIxLDMx
ICs3MjEsNiBAQCBFQVBJIGNoYXIgICAgICAgICpld2tfdmlld19zZWxlY3Rpb25fZ2V0KGNvbnN0
IEV2YXNfT2JqZWN0ICpvKTsKICAqLwogRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdfY29udGV4
dF9tZW51X2ZvcndhcmRfZXZlbnQoRXZhc19PYmplY3QgKm8sIGNvbnN0IEV2YXNfRXZlbnRfTW91
c2VfRG93biAqZXYpOwogCi0vLy8gQ29udGFpbnMgY29tbWFuZHMgdG8gZXhlY3V0ZS4KLWVudW0g
X0V3a19FZGl0b3JfQ29tbWFuZCB7Ci0gICAgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9JTUFH
RSA9IDAsCi0gICAgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9URVhULAotICAgIEVXS19FRElU
T1JfQ09NTUFORF9TRUxFQ1RfTk9ORSwKLSAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX0FM
TCwKLSAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1BBUkFHUkFQSCwKLSAgICBFV0tfRURJ
VE9SX0NPTU1BTkRfU0VMRUNUX1NFTlRFTkNFLAotICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxF
Q1RfTElORSwKLSAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1dPUkQKLX07Ci0vLy8gQ3Jl
YXRlcyBhIHR5cGUgbmFtZSBmb3IgQGEgX0V3a19FZGl0b3JfQ29tbWFuZC4KLXR5cGVkZWYgZW51
bSBfRXdrX0VkaXRvcl9Db21tYW5kIEV3a19FZGl0b3JfQ29tbWFuZDsKLQotLyoqCi0gKiBFeGVj
dXRlcyBlZGl0b3IgY29tbWFuZC4KLSAqCi0gKiBAcGFyYW0gbyB2aWV3IG9iamVjdCB0byBleGVj
dXRlIGNvbW1hbmQKLSAqIEBwYXJhbSBjb21tYW5kIGVkaXRvciBjb21tYW5kIHRvIGV4ZWN1dGUK
LSAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gYmUgcGFzc2VkIGludG8gY29tbWFuZAotICoK
LSAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3Mgb3IgQGMgRUlOQV9GQUxTRSBvbiBm
YWlsdXJlCi0gKi8KLUVBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X2V4ZWN1dGVfZWRpdG9yX2Nv
bW1hbmQoRXZhc19PYmplY3QgKm8sIGNvbnN0IEV3a19FZGl0b3JfQ29tbWFuZCBjb21tYW5kLCBj
b25zdCBjaGFyICp2YWx1ZSk7Ci0KIC8qKgogICogQ2hhbmdlcyBjdXJyZW50bHkgc2VsZWN0ZWQg
aXRlbS4KICAqCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122231</attachid>
            <date>2012-01-12 06:48:33 -0800</date>
            <delta_ts>2012-04-23 05:37:03 -0700</delta_ts>
            <desc>changelog and style fixes</desc>
            <filename>patch_editor_new_file_style.diff</filename>
            <type>text/plain</type>
            <size>15310</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0IGIvU291cmNl
L1dlYktpdC9lZmwvQ01ha2VMaXN0c0VmbC50eHQKaW5kZXggYzVlZjY1Ni4uZjAxZDVkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ01ha2VMaXN0c0VmbC50eHQKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvQ01ha2VMaXN0c0VmbC50eHQKQEAgLTc4LDYgKzc4LDcgQEAgTElTVChBUFBF
TkQgV2ViS2l0X1NPVVJDRVMKIAogICAgIGVmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcAogICAg
IGVmbC9ld2svZXdrX2Nvb2tpZXMuY3BwCisgICAgZWZsL2V3ay9ld2tfZWRpdG9yLmNwcAogICAg
IGVmbC9ld2svZXdrX2ZyYW1lLmNwcAogICAgIGVmbC9ld2svZXdrX2hpc3RvcnkuY3BwCiAgICAg
ZWZsL2V3ay9ld2tfbWFpbi5jcHAKQEAgLTIzNiw2ICsyMzcsNyBAQCBTRVQoRVdlYktpdF9IRUFE
RVJTCiAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2VmbC9ld2svZXdrX2F1dGguaAog
ICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5o
CiAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2VmbC9ld2svZXdrX2Nvb2tpZXMuaAor
ICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a19lZGl0b3IuaAogICAg
ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a19mcmFtZS5oCiAgICAgJHtD
TUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2VmbC9ld2svZXdrX2hpc3RvcnkuaAogICAgICR7Q01B
S0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a19qcy5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5k
ZXggN2EwYmQyNi4uNTlhOWRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisy
MDEyLTAxLTEyICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5j
b20+CisKKyAgICAgICAgW0VGTF0gQWRkIG5ldyBmaWxlcyBmb3IgRXdrX0VkaXRvcl9Db21tYW5k
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5MjEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAg
IFRoaXMgZXh0ZW5kcyBFd2tfRWRpdG9yX0NvbW1hbmQgd2l0aCBuZXcgY29tbWFuZHMgYW5kIG1v
dmluZyBpdCB0byBuZXcgZXdrX2VkaXRvciBmaWxlcy4KKyAgICAgICAgQSB0YWJsZSBvZiBlZGl0
b3IgY29tbWFuZCBzdHJpbmdzIHdhcyBpbnRyb2R1Y2VkIGluIGV3a19lZGl0b3IuY3BwLiBOdW1l
cm91cyBjYWxscyBvZgorICAgICAgICBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmQgZm9yIGVhY2gg
Y2FzZSBpbiBld2tfdmlld19leGVjdXRlX2VkaXRvcl9jb21tYW5kIHdlcmUgcmVwbGFjZWQKKyAg
ICAgICAgYnkgb25lIGNhbGwgb2YgZnVuY3Rpb25zIG9idGFpbmluZyBhIGNvbW1hbmQgc3RyaW5n
IGZyb20gYSB0YWJsZSBmb3IgZ2l2ZW4KKyAgICAgICAgRXdrX0VkaXRvcl9Db21tYW5kIHZhbHVl
LgorCisgICAgICAgICogQ01ha2VMaXN0c0VmbC50eHQ6IEFkZGVkIGV3a19lZGl0b3IuY3BwIGFu
ZCBld2tfZWRpdG9yLmggZmlsZXMuCisgICAgICAgICogZXdrL0VXZWJLaXQuaDoKKyAgICAgICAg
KiBld2svZXdrX2VkaXRvci5jcHA6IEFkZGVkLgorICAgICAgICAoX2V3a19lZGl0b3JfY29tbWFu
ZF9zdHJpbmdfZ2V0KTogSW1wbGVtZW50ZWQgZnVuY3Rpb24gcmV0dXJuaW5nIGNvbW1hbmQgc3Ry
aW5nLgorICAgICAgICAoZXdrX2VkaXRvcl9jb21tYW5kX2V4ZWN1dGUpOgorICAgICAgICAqIGV3
ay9ld2tfZWRpdG9yLmg6IEFkZGVkLgorICAgICAgICAqIGV3ay9ld2tfcHJpdmF0ZS5oOgorICAg
ICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAgICAgIChld2tfdmlld19lZGl0b3JfY29tbWFu
ZF9leGVjdXRlKTogQWRkZWQuCisgICAgICAgICogZXdrL2V3a192aWV3Lmg6IFJlbW92ZSBFd2tf
RWRpdG9yX0NvbW1hbmQgZW51bSBhbmQgZXdrX3ZpZXdfZXhlY3V0ZV9lZGl0b3JfY29tbWFuZC4K
KwogMjAxMi0wMS0xMiAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1zdW5n
LmNvbT4KIAogICAgICAgICBbRUZMXSBNb3ZlIG1hY3JvIGNoZWNraW5nIHRvIGZ1bmN0aW9ucycg
ZGVmaW5pdGlvbiBpbiBld2tfanMuY3BwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL0VXZWJLaXQuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9FV2ViS2l0LmgKaW5kZXggM2Y3
OTRmYi4uZDIxZTk3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL0VXZWJLaXQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svRVdlYktpdC5oCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW5jbHVkZSAiZXdrX2F1dGguaCIKICNpbmNsdWRlICJld2tfY29udGV4dG1lbnUuaCIKICNp
bmNsdWRlICJld2tfY29va2llcy5oIgorI2luY2x1ZGUgImV3a19lZGl0b3IuaCIKICNpbmNsdWRl
ICJld2tfZnJhbWUuaCIKICNpbmNsdWRlICJld2tfaGlzdG9yeS5oIgogI2luY2x1ZGUgImV3a19q
cy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19lZGl0b3IuY3BwIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19lZGl0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjI1ODlmNDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX2VkaXRvci5jcHAKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAgICBDb3B5cmln
aHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisg
ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAg
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJld2tfZWRpdG9yLmgiCisKKyNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgPEVpbmEuaD4KKworc3RhdGljIGNvbnN0IGNoYXIqIF9ld2tfZWRpdG9yX2NvbW1hbmRz
W10gPSB7CisgICAgIkluc2VydEltYWdlIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9J
TUFHRSwKKyAgICAiSW5zZXJ0VGV4dCIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9JTlNFUlRfVEVY
VCwKKyAgICAiU2VsZWN0Tm9uZSIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfTk9ORSwK
KyAgICAiU2VsZWN0QWxsIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9BTEwsCisgICAg
IlNlbGVjdFBhcmFncmFwaCIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfUEFSQUdSQVBI
LAorICAgICJTZWxlY3RTZW50ZW5jZSIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfU0VO
VEVOQ0UsCisgICAgIlNlbGVjdExpbmUiLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX0xJ
TkUsCisgICAgIlNlbGVjdFdvcmQiLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1dPUkQs
CisgICAgIk1vdmVGb3J3YXJkIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fTkVYVF9D
SEFSLAorICAgICJNb3ZlQmFja3dhcmQiLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19Q
UkVWSU9VU19DSEFSLAorICAgICJNb3ZlV29yZEZvcndhcmQiLCAvLyBFV0tfRURJVE9SX0NPTU1B
TkRfTU9WRV9UT19ORVhUX1dPUkQsCisgICAgIk1vdmVXb3JkQmFja3dhcmQiLCAvLyBFV0tfRURJ
VE9SX0NPTU1BTkRfTU9WRV9UT19QUkVWSU9VU19XT1JELAorICAgICJNb3ZlRG93biIsIC8vIEVX
S19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX05FWFRfTElORSwKKyAgICAiTW92ZVVwIiwgLy8gRVdL
X0VESVRPUl9DT01NQU5EX01PVkVfVE9fUFJFVklPVVNfTElORSwKKyAgICAiTW92ZVRvQmVnaW5u
aW5nT2ZMaW5lIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fQkVHSU5OSU5HX09GX0xJ
TkUsCisgICAgIk1vdmVUb0VuZE9mTGluZSIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9NT1ZFX1RP
X0VORF9PRl9MSU5FLAorICAgICJNb3ZlVG9CZWdpbm5pbmdPZlBhcmFncmFwaCIsIC8vIEVXS19F
RElUT1JfQ09NTUFORF9NT1ZFX1RPX0JFR0lOTklOR19PRl9QQVJBR1JBUEgsCisgICAgIk1vdmVU
b0VuZE9mUGFyYWdyYXBoIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fRU5EX09GX1BB
UkFHUkFQSCwKKyAgICAiTW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudCIsIC8vIEVXS19FRElUT1Jf
Q09NTUFORF9NT1ZFX1RPX0JFR0lOTklOR19PRl9ET0NVTUVOVCwKKyAgICAiTW92ZVRvRW5kT2ZE
b2N1bWVudCIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX0VORF9PRl9ET0NVTUVOVCwK
KyAgICAiTW92ZUZvcndhcmRBbmRNb2RpZnlTZWxlY3Rpb24iLCAvLyBFV0tfRURJVE9SX0NPTU1B
TkRfU0VMRUNUX05FWFRfQ0hBUiwKKyAgICAiTW92ZUJhY2t3YXJkQW5kTW9kaWZ5U2VsZWN0aW9u
IiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9QUkVWSU9VU19DSEFSLAorICAgICJNb3Zl
V29yZEZvcndhcmRBbmRNb2RpZnlTZWxlY3Rpb24iLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfU0VM
RUNUX05FWFRfV09SRCwKKyAgICAiTW92ZVdvcmRCYWNrd2FyZEFuZE1vZGlmeVNlbGVjdGlvbiIs
IC8vIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfUFJFVklPVVNfV09SRCwKKyAgICAiTW92ZURv
d25BbmRNb2RpZnlTZWxlY3Rpb24iLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX05FWFRf
TElORSwKKyAgICAiTW92ZVVwQW5kTW9kaWZ5U2VsZWN0aW9uIiwgLy8gRVdLX0VESVRPUl9DT01N
QU5EX1NFTEVDVF9QUkVWSU9VU19MSU5FLAorICAgICJNb3ZlVG9CZWdpbm5pbmdPZkxpbmVBbmRN
b2RpZnlTZWxlY3Rpb24iLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1NUQVJUX09GX0xJ
TkUsCisgICAgIk1vdmVUb0VuZE9mTGluZUFuZE1vZGlmeVNlbGVjdGlvbiIsIC8vIEVXS19FRElU
T1JfQ09NTUFORF9TRUxFQ1RfRU5EX09GX0xJTkUsCisgICAgIk1vdmVUb0JlZ2lubmluZ09mUGFy
YWdyYXBoQW5kTW9kaWZ5U2VsZWN0aW9uIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9T
VEFSVF9PRl9QQVJBR1JBUEgsCisgICAgIk1vdmVUb0VuZE9mUGFyYWdyYXBoQW5kTW9kaWZ5U2Vs
ZWN0aW9uIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9FTkRfT0ZfUEFSQUdSQVBILAor
ICAgICJNb3ZlVG9CZWdpbm5pbmdPZkRvY3VtZW50QW5kTW9kaWZ5U2VsZWN0aW9uIiwgLy8gRVdL
X0VESVRPUl9DT01NQU5EX1NFTEVDVF9TVEFSVF9PRl9ET0NVTUVOVCwKKyAgICAiTW92ZVRvRW5k
T2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9TRUxF
Q1RfRU5EX09GX0RPQ1VNRU5ULAorICAgICJEZWxldGVXb3JkQmFja3dhcmQiLCAvLyBFV0tfRURJ
VE9SX0NPTU1BTkRfREVMRVRFX1dPUkRfQkFDS1dBUkQsCisgICAgIkRlbGV0ZVdvcmRGb3J3YXJk
IiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX0RFTEVURV9XT1JEX0ZPUldBUkQsCisgICAgIkluc2Vy
dE5ld2xpbmUiLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfSU5TRVJUX1BBUkFHUkFQSF9TRVBBUkFU
T1IsCisgICAgIkluc2VydExpbmVCcmVhayIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9JTlNFUlRf
TElORV9TRVBBUkFUT1IsCisgICAgIlN0cmlrZXRocm91Z2giLCAvLyBFV0tfRURJVE9SX0NPTU1B
TkRfU1RSSUtFVEhST1VHSCwKKyAgICAiU3Vic2NyaXB0IiwgLy8gRVdLX0VESVRPUl9DT01NQU5E
X1NVQlNDUklQVCwKKyAgICAiU3VwZXJzY3JpcHQiLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfU1VQ
RVJTQ0lQVAorfTsKKworLyoqCisgKiBAaW50ZXJuYWwKKyAqIEdldHMgZWRpdG9yIGNvbW1hbmQg
c3RyaW5nIGZyb20gZ2l2ZW4gRXdrX0VkaXRvcl9Db21tYW5kIHZhbHVlLgorICoKKyAqIEBwYXJh
bSBjb21tYW5kIEV3a19FZGl0b3JfQ29tbWFuZCB0byBnZXQgc3RyaW5nLgorICoKKyAqIEByZXR1
cm4gY29tbWFuZCBzdHJpbmcgaWYgRXdrX0VkaXRvcl9Db21tYW5kIHdhcyBjb3JyZWN0IG9yIEBj
IDAgb3RoZXJ3aXNlLgorICovCitzdGF0aWMgY29uc3QgY2hhciogX2V3a19lZGl0b3JfY29tbWFu
ZF9zdHJpbmdfZ2V0KGNvbnN0IEV3a19FZGl0b3JfQ29tbWFuZCBjb21tYW5kKQoreworICAgIGlm
ICgoY29tbWFuZCA+IEVXS19FRElUT1JfQ09NTUFORF9OT05FKQorICAgICAgICAmJiAoY29tbWFu
ZCA8IHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKF9ld2tfZWRpdG9yX2NvbW1hbmRzKSAvIHNpemVv
Zihjb25zdCBjaGFyKikpKSkKKyAgICAgICAgcmV0dXJuIF9ld2tfZWRpdG9yX2NvbW1hbmRzW2Nv
bW1hbmRdOworICAgIHJldHVybiAwOworfQorCitFaW5hX0Jvb2wgZXdrX2VkaXRvcl9jb21tYW5k
X2V4ZWN1dGUoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV3a19FZGl0b3JfQ29t
bWFuZCBjb21tYW5kLCBjb25zdCBjaGFyKiB2YWx1ZSkKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTl9WQUwoZXdrVmlldywgZmFsc2UpOworCisgICAgY29uc3QgY2hhciogY29tbWFu
ZFN0cmluZyA9IF9ld2tfZWRpdG9yX2NvbW1hbmRfc3RyaW5nX2dldChjb21tYW5kKTsKKyAgICBp
ZiAoY29tbWFuZFN0cmluZykKKyAgICAgICAgcmV0dXJuIGV3a192aWV3X2VkaXRvcl9jb21tYW5k
X2V4ZWN1dGUoZXdrVmlldywgY29tbWFuZFN0cmluZywgdmFsdWUpOworICAgIHJldHVybiBmYWxz
ZTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZWRpdG9yLmggYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2VkaXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjIzODYwNDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX2VkaXRvci5oCkBAIC0wLDAgKzEsOTUgQEAKKy8qCisgICAgQ29weXJpZ2h0IChD
KSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIGV3a19lZGl0b3JfaAorI2Rl
ZmluZSBld2tfZWRpdG9yX2gKKworI2luY2x1ZGUgPEV2YXMuaD4KKworI2lmZGVmIF9fY3BsdXNw
bHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKioKKyAqIEBmaWxlICAgIGV3a19lZGl0b3Iu
aAorICogQGJyaWVmICAgRWRpdGluZyBmb3IgV2ViS2l0LUVGTC4KKyAqLworCisvLy8gQ29udGFp
bnMgY29tbWFuZHMgdG8gZXhlY3V0ZS4KK2VudW0gX0V3a19FZGl0b3JfQ29tbWFuZCB7CisgICAg
RVdLX0VESVRPUl9DT01NQU5EX05PTkUgPSAtMSwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfSU5T
RVJUX0lNQUdFID0gMCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfSU5TRVJUX1RFWFQsCisgICAg
RVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9OT05FLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9T
RUxFQ1RfQUxMLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfUEFSQUdSQVBILAorICAg
IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfU0VOVEVOQ0UsCisgICAgRVdLX0VESVRPUl9DT01N
QU5EX1NFTEVDVF9MSU5FLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfV09SRCwKKyAg
ICBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19ORVhUX0NIQVIsCisgICAgRVdLX0VESVRPUl9D
T01NQU5EX01PVkVfVE9fUFJFVklPVVNfQ0hBUiwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfTU9W
RV9UT19ORVhUX1dPUkQsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fUFJFVklPVVNf
V09SRCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19ORVhUX0xJTkUsCisgICAgRVdL
X0VESVRPUl9DT01NQU5EX01PVkVfVE9fUFJFVklPVVNfTElORSwKKyAgICBFV0tfRURJVE9SX0NP
TU1BTkRfTU9WRV9UT19CRUdJTk5JTkdfT0ZfTElORSwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRf
TU9WRV9UT19FTkRfT0ZfTElORSwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19CRUdJ
Tk5JTkdfT0ZfUEFSQUdSQVBILAorICAgIEVXS19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX0VORF9P
Rl9QQVJBR1JBUEgsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fQkVHSU5OSU5HX09G
X0RPQ1VNRU5ULAorICAgIEVXS19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX0VORF9PRl9ET0NVTUVO
VCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX05FWFRfQ0hBUiwKKyAgICBFV0tfRURJ
VE9SX0NPTU1BTkRfU0VMRUNUX1BSRVZJT1VTX0NIQVIsCisgICAgRVdLX0VESVRPUl9DT01NQU5E
X1NFTEVDVF9ORVhUX1dPUkQsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9QUkVWSU9V
U19XT1JELAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfTkVYVF9MSU5FLAorICAgIEVX
S19FRElUT1JfQ09NTUFORF9TRUxFQ1RfUFJFVklPVVNfTElORSwKKyAgICBFV0tfRURJVE9SX0NP
TU1BTkRfU0VMRUNUX1NUQVJUX09GX0xJTkUsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVD
VF9FTkRfT0ZfTElORSwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1NUQVJUX09GX1BB
UkFHUkFQSCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX0VORF9PRl9QQVJBR1JBUEgs
CisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9TVEFSVF9PRl9ET0NVTUVOVCwKKyAgICBF
V0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX0VORF9PRl9ET0NVTUVOVCwKKyAgICBFV0tfRURJVE9S
X0NPTU1BTkRfREVMRVRFX1dPUkRfQkFDS1dBUkQsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX0RF
TEVURV9XT1JEX0ZPUldBUkQsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9QQVJBR1JB
UEhfU0VQQVJBVE9SLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9JTlNFUlRfTElORV9TRVBBUkFU
T1IsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NUUklLRVRIUk9VR0gsCisgICAgRVdLX0VESVRP
Ul9DT01NQU5EX1NVQlNDUklQVCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU1VQRVJTQ1JJUFQK
K307CisKKy8vLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBAYSBfRXdrX0VkaXRvcl9Db21tYW5k
LgordHlwZWRlZiBlbnVtIF9Fd2tfRWRpdG9yX0NvbW1hbmQgRXdrX0VkaXRvcl9Db21tYW5kOwor
CisvKioKKyAqIEV4ZWN1dGVzIGVkaXRvciBjb21tYW5kLgorICoKKyAqIEBwYXJhbSBvIHZpZXcg
b2JqZWN0IHRvIGV4ZWN1dGUgY29tbWFuZAorICogQHBhcmFtIGNvbW1hbmQgZWRpdG9yIGNvbW1h
bmQgdG8gZXhlY3V0ZQorICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBiZSBwYXNzZWQgaW50
byBjb21tYW5kCisgKgorICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2VzcyBvciBAYyBF
SU5BX0ZBTFNFIG9uIGZhaWx1cmUKKyAqLworRUFQSSBFaW5hX0Jvb2wgZXdrX2VkaXRvcl9jb21t
YW5kX2V4ZWN1dGUoY29uc3QgRXZhc19PYmplY3QgKm8sIGNvbnN0IEV3a19FZGl0b3JfQ29tbWFu
ZCBjb21tYW5kLCBjb25zdCBjaGFyICp2YWx1ZSk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQor
I2VuZGlmCisjZW5kaWYgLy8gZXdrX2VkaXRvcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0
ZS5oCmluZGV4IDIwMjU5NDEuLmQ0NDdkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0
ZS5oCkBAIC0xNTksNiArMTU5LDggQEAgdm9pZCBld2tfdmlld19uZWVkX3RvdWNoX2V2ZW50c19z
ZXQoRXZhc19PYmplY3QqLCBib29sIG5lZWRlZCk7CiBib29sIGV3a192aWV3X25lZWRfdG91Y2hf
ZXZlbnRzX2dldChjb25zdCBFdmFzX09iamVjdCopOwogI2VuZGlmCiAKK0VpbmFfQm9vbCBld2tf
dmlld19lZGl0b3JfY29tbWFuZF9leGVjdXRlKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBj
b25zdCBjaGFyKiBjb21tYW5kLCBjb25zdCBjaGFyKiB2YWx1ZSk7CisKIEV3a19IaXN0b3J5X0l0
ZW0gKmV3a19oaXN0b3J5X2l0ZW1fbmV3X2Zyb21fY29yZShXZWJDb3JlOjpIaXN0b3J5SXRlbSAq
Y29yZSk7CiBFd2tfSGlzdG9yeSogZXdrX2hpc3RvcnlfbmV3KFdlYkNvcmU6OkJhY2tGb3J3YXJk
TGlzdEltcGwqIGhpc3RvcnkpOwogdm9pZCBld2tfaGlzdG9yeV9mcmVlKEV3a19IaXN0b3J5KiBo
aXN0b3J5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDdmZGJjMTEuLjg3MGE5
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMTQzMCwzNiArMTQzMCwxMiBA
QCBjaGFyKiBld2tfdmlld19zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3
KQogICAgIHJldHVybiBzdHJkdXAoc2VsZWN0ZWRTdHJpbmcuZGF0YSgpKTsKIH0KIAotc3RhdGlj
IEVpbmFfQm9vbCBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmQoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRh
KiBwcml2LCBjb25zdCBjaGFyKiBjb21tYW5kLCBjb25zdCBjaGFyKiB2YWx1ZSA9IDApCi17Ci0g
ICAgcmV0dXJuIHByaXYtPnBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJh
bWUoKS0+ZWRpdG9yKCktPmNvbW1hbmQoV1RGOjpTdHJpbmc6OmZyb21VVEY4KGNvbW1hbmQpKS5l
eGVjdXRlKFdURjo6U3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSkpOwotfQotCi1FaW5hX0Jvb2wgZXdr
X3ZpZXdfZXhlY3V0ZV9lZGl0b3JfY29tbWFuZChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3Qg
RXdrX0VkaXRvcl9Db21tYW5kIGNvbW1hbmQsIGNvbnN0IGNoYXIqIHZhbHVlKQorRWluYV9Cb29s
IGV3a192aWV3X2VkaXRvcl9jb21tYW5kX2V4ZWN1dGUoY29uc3QgRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIGNvbnN0IGNoYXIqIGNvbW1hbmQsIGNvbnN0IGNoYXIqIHZhbHVlKQogewogICAgIEVXS19W
SUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CiAgICAgRVdL
X1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogCi0gICAg
c3dpdGNoIChjb21tYW5kKSB7Ci0gICAgY2FzZSBFV0tfRURJVE9SX0NPTU1BTkRfSU5TRVJUX0lN
QUdFOgotICAgICAgICByZXR1cm4gX2V3a192aWV3X2VkaXRvcl9jb21tYW5kKHByaXYsICJJbnNl
cnRJbWFnZSIsIHZhbHVlKTsKLSAgICBjYXNlIEVXS19FRElUT1JfQ09NTUFORF9JTlNFUlRfVEVY
VDoKLSAgICAgICAgcmV0dXJuIF9ld2tfdmlld19lZGl0b3JfY29tbWFuZChwcml2LCAiSW5zZXJ0
VGV4dCIsIHZhbHVlKTsKLSAgICBjYXNlIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfTk9ORToK
LSAgICAgICAgcmV0dXJuIF9ld2tfdmlld19lZGl0b3JfY29tbWFuZChwcml2LCAiVW5zZWxlY3Qi
KTsKLSAgICBjYXNlIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfQUxMOgotICAgICAgICByZXR1
cm4gX2V3a192aWV3X2VkaXRvcl9jb21tYW5kKHByaXYsICJTZWxlY3RBbGwiKTsKLSAgICBjYXNl
IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfUEFSQUdSQVBIOgotICAgICAgICByZXR1cm4gX2V3
a192aWV3X2VkaXRvcl9jb21tYW5kKHByaXYsICJTZWxlY3RQYXJhZ3JhcGgiKTsKLSAgICBjYXNl
IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfU0VOVEVOQ0U6Ci0gICAgICAgIHJldHVybiBfZXdr
X3ZpZXdfZWRpdG9yX2NvbW1hbmQocHJpdiwgIlNlbGVjdFNlbnRlbmNlIik7Ci0gICAgY2FzZSBF
V0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX0xJTkU6Ci0gICAgICAgIHJldHVybiBfZXdrX3ZpZXdf
ZWRpdG9yX2NvbW1hbmQocHJpdiwgIlNlbGVjdExpbmUiKTsKLSAgICBjYXNlIEVXS19FRElUT1Jf
Q09NTUFORF9TRUxFQ1RfV09SRDoKLSAgICAgICAgcmV0dXJuIF9ld2tfdmlld19lZGl0b3JfY29t
bWFuZChwcml2LCAiU2VsZWN0V29yZCIpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9CisgICAgcmV0dXJuIHByaXYtPnBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5m
b2N1c2VkT3JNYWluRnJhbWUoKS0+ZWRpdG9yKCktPmNvbW1hbmQoV1RGOjpTdHJpbmc6OmZyb21V
VEY4KGNvbW1hbmQpKS5leGVjdXRlKFdURjo6U3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSkpOwogfQog
CiBFaW5hX0Jvb2wgZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIGNvbnN0IEV2YXNfRXZlbnRfTW91c2VfRG93biogZG93bkV2ZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmggYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3ZpZXcuaAppbmRleCBkMGJlNjFkLi43OTY5OGRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuaApAQCAtNzIxLDMxICs3MjEsNiBAQCBFQVBJIGNoYXIgICAgICAgICpld2tf
dmlld19zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKICAqLwogRUFQSSBFaW5h
X0Jvb2wgICAgZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQoRXZhc19PYmplY3Qg
Km8sIGNvbnN0IEV2YXNfRXZlbnRfTW91c2VfRG93biAqZXYpOwogCi0vLy8gQ29udGFpbnMgY29t
bWFuZHMgdG8gZXhlY3V0ZS4KLWVudW0gX0V3a19FZGl0b3JfQ29tbWFuZCB7Ci0gICAgRVdLX0VE
SVRPUl9DT01NQU5EX0lOU0VSVF9JTUFHRSA9IDAsCi0gICAgRVdLX0VESVRPUl9DT01NQU5EX0lO
U0VSVF9URVhULAotICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfTk9ORSwKLSAgICBFV0tf
RURJVE9SX0NPTU1BTkRfU0VMRUNUX0FMTCwKLSAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNU
X1BBUkFHUkFQSCwKLSAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1NFTlRFTkNFLAotICAg
IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfTElORSwKLSAgICBFV0tfRURJVE9SX0NPTU1BTkRf
U0VMRUNUX1dPUkQKLX07Ci0vLy8gQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgQGEgX0V3a19FZGl0
b3JfQ29tbWFuZC4KLXR5cGVkZWYgZW51bSBfRXdrX0VkaXRvcl9Db21tYW5kIEV3a19FZGl0b3Jf
Q29tbWFuZDsKLQotLyoqCi0gKiBFeGVjdXRlcyBlZGl0b3IgY29tbWFuZC4KLSAqCi0gKiBAcGFy
YW0gbyB2aWV3IG9iamVjdCB0byBleGVjdXRlIGNvbW1hbmQKLSAqIEBwYXJhbSBjb21tYW5kIGVk
aXRvciBjb21tYW5kIHRvIGV4ZWN1dGUKLSAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gYmUg
cGFzc2VkIGludG8gY29tbWFuZAotICoKLSAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nl
c3Mgb3IgQGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlCi0gKi8KLUVBUEkgRWluYV9Cb29sICAgIGV3
a192aWV3X2V4ZWN1dGVfZWRpdG9yX2NvbW1hbmQoRXZhc19PYmplY3QgKm8sIGNvbnN0IEV3a19F
ZGl0b3JfQ29tbWFuZCBjb21tYW5kLCBjb25zdCBjaGFyICp2YWx1ZSk7Ci0KIC8qKgogICogQ2hh
bmdlcyBjdXJyZW50bHkgc2VsZWN0ZWQgaXRlbS4KICAqCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138327</attachid>
            <date>2012-04-23 05:37:03 -0700</date>
            <delta_ts>2012-04-26 08:16:05 -0700</delta_ts>
            <desc>rebased patch</desc>
            <filename>editor-command-rebased.diff</filename>
            <type>text/plain</type>
            <size>16209</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggNjM1MGI4Mi4uNjc3YmE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAxMi0wNC0yMyAgTWljaGHFgiBQYWt1xYJhIHZlbCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1bmcu
Y29tPgorCisgICAgICAgIFtFRkxdIEFkZCBuZXcgZmlsZXMgZm9yIEV3a19FZGl0b3JfQ29tbWFu
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTIx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBl
eHRlbmRzIEV3a19FZGl0b3JfQ29tbWFuZCB3aXRoIG5ldyBjb21tYW5kcyBhbmQgbW92aW5nIGl0
IHRvIG5ldyBld2tfZWRpdG9yIGZpbGVzLgorICAgICAgICBBIHRhYmxlIG9mIGVkaXRvciBjb21t
YW5kIHN0cmluZ3Mgd2FzIGludHJvZHVjZWQgaW4gZXdrX2VkaXRvci5jcHAuIE51bWVyb3VzIGNh
bGxzIG9mCisgICAgICAgIF9ld2tfdmlld19lZGl0b3JfY29tbWFuZCBmb3IgZWFjaCBjYXNlIGlu
IGV3a192aWV3X2V4ZWN1dGVfZWRpdG9yX2NvbW1hbmQgd2VyZSByZXBsYWNlZAorICAgICAgICBi
eSBvbmUgY2FsbCBvZiBmdW5jdGlvbnMgb2J0YWluaW5nIGEgY29tbWFuZCBzdHJpbmcgZnJvbSBh
IHRhYmxlIGZvciBnaXZlbgorICAgICAgICBFd2tfRWRpdG9yX0NvbW1hbmQgdmFsdWUuCisKKyAg
ICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZTogQWRkZWQgZXdrX2VkaXRvci5jcHAgYW5kIGV3a19l
ZGl0b3IuaCBmaWxlcy4KKwogMjAxMi0wNC0yMCAgTWlrZSBMYXR0YW56aW8gIDxtbGF0dGFuemlv
QHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIEV4cG9zZSBXZWJWaWV3cG9ydEFyZ3Vt
ZW50cyB0byBXZWJQYWdlQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
RWZsLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBjNzdhOGI1
Li4xZDQ4ZTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTk3LDYgKzk3LDcgQEAgTElT
VChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBlZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAK
ICAgICBlZmwvZXdrL2V3a19jb29raWVzLmNwcAogICAgIGVmbC9ld2svZXdrX2ZyYW1lLmNwcAor
ICAgIGVmbC9ld2svZXdrX2VkaXRvci5jcHAKICAgICBlZmwvZXdrL2V3a19oaXN0b3J5LmNwcAog
ICAgIGVmbC9ld2svZXdrX2pzLmNwcAogICAgIGVmbC9ld2svZXdrX21haW4uY3BwCkBAIC0yNDcs
NiArMjQ4LDcgQEAgU0VUKEVXZWJLaXRfSEVBREVSUwogICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VS
Q0VfRElSfS9lZmwvZXdrL2V3a19hdXRoX3NvdXAuaAogICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VS
Q0VfRElSfS9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5oCiAgICAgJHtDTUFLRV9DVVJSRU5UX1NP
VVJDRV9ESVJ9L2VmbC9ld2svZXdrX2Nvb2tpZXMuaAorICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VS
Q0VfRElSfS9lZmwvZXdrL2V3a19lZGl0b3IuaAogICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0Vf
RElSfS9lZmwvZXdrL2V3a19mcmFtZS5oCiAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9
L2VmbC9ld2svZXdrX2hpc3RvcnkuaAogICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9l
ZmwvZXdrL2V3a19qcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNjJiMjY1Zi4uOWJkMmJlZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA0LTIzICBNaWNoYcWCIFBha3XF
gmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRk
IG5ldyBmaWxlcyBmb3IgRXdrX0VkaXRvcl9Db21tYW5kLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5MjEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGV4dGVuZHMgRXdrX0VkaXRvcl9Db21tYW5k
IHdpdGggbmV3IGNvbW1hbmRzIGFuZCBtb3ZpbmcgaXQgdG8gbmV3IGV3a19lZGl0b3IgZmlsZXMu
CisgICAgICAgIEEgdGFibGUgb2YgZWRpdG9yIGNvbW1hbmQgc3RyaW5ncyB3YXMgaW50cm9kdWNl
ZCBpbiBld2tfZWRpdG9yLmNwcC4gTnVtZXJvdXMgY2FsbHMgb2YKKyAgICAgICAgX2V3a192aWV3
X2VkaXRvcl9jb21tYW5kIGZvciBlYWNoIGNhc2UgaW4gZXdrX3ZpZXdfZXhlY3V0ZV9lZGl0b3Jf
Y29tbWFuZCB3ZXJlIHJlcGxhY2VkCisgICAgICAgIGJ5IG9uZSBjYWxsIG9mIGZ1bmN0aW9ucyBv
YnRhaW5pbmcgYSBjb21tYW5kIHN0cmluZyBmcm9tIGEgdGFibGUgZm9yIGdpdmVuCisgICAgICAg
IEV3a19FZGl0b3JfQ29tbWFuZCB2YWx1ZS4KKworICAgICAgICAqIGV3ay9FV2ViS2l0Lmg6Cisg
ICAgICAgICogZXdrL2V3a19lZGl0b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKF9ld2tfZWRpdG9y
X2NvbW1hbmRfc3RyaW5nX2dldCk6IEltcGxlbWVudGVkIGZ1bmN0aW9uIHJldHVybmluZyBjb21t
YW5kIHN0cmluZy4KKyAgICAgICAgKGV3a19lZGl0b3JfY29tbWFuZF9leGVjdXRlKToKKyAgICAg
ICAgKiBld2svZXdrX2VkaXRvci5oOiBBZGRlZC4KKyAgICAgICAgKiBld2svZXdrX3ByaXZhdGUu
aDoKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoZXdrX3ZpZXdfZWRpdG9y
X2NvbW1hbmRfZXhlY3V0ZSk6IEFkZGVkLgorICAgICAgICAqIGV3ay9ld2tfdmlldy5oOiBSZW1v
dmUgRXdrX0VkaXRvcl9Db21tYW5kIGVudW0gYW5kIGV3a192aWV3X2V4ZWN1dGVfZWRpdG9yX2Nv
bW1hbmQuCisKIDIwMTItMDQtMjAgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNh
bnRvc0BpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gQWRkIFNlY3VyaXR5IE9yaWdpbiBBUEkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9FV2ViS2l0LmggYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svRVdlYktpdC5oCmluZGV4IDMyZmUyYjQuLmQ0MjA5OTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9FV2ViS2l0LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL0VXZWJLaXQuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgImV3a19hdXRoLmgiCiAj
aW5jbHVkZSAiZXdrX2NvbnRleHRtZW51LmgiCiAjaW5jbHVkZSAiZXdrX2Nvb2tpZXMuaCIKKyNp
bmNsdWRlICJld2tfZWRpdG9yLmgiCiAjaW5jbHVkZSAiZXdrX2ZyYW1lLmgiCiAjaW5jbHVkZSAi
ZXdrX2hpc3RvcnkuaCIKICNpbmNsdWRlICJld2tfanMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfZWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
ZWRpdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTg5ZjQ3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19lZGl0b3IuY3BwCkBA
IC0wLDAgKzEsOTIgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ry
b25pY3MKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZXdrX2VkaXRvci5oIgor
CisjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKKyNpbmNsdWRlIDxFaW5hLmg+CisKK3N0YXRpYyBj
b25zdCBjaGFyKiBfZXdrX2VkaXRvcl9jb21tYW5kc1tdID0geworICAgICJJbnNlcnRJbWFnZSIs
IC8vIEVXS19FRElUT1JfQ09NTUFORF9JTlNFUlRfSU1BR0UsCisgICAgIkluc2VydFRleHQiLCAv
LyBFV0tfRURJVE9SX0NPTU1BTkRfSU5TRVJUX1RFWFQsCisgICAgIlNlbGVjdE5vbmUiLCAvLyBF
V0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX05PTkUsCisgICAgIlNlbGVjdEFsbCIsIC8vIEVXS19F
RElUT1JfQ09NTUFORF9TRUxFQ1RfQUxMLAorICAgICJTZWxlY3RQYXJhZ3JhcGgiLCAvLyBFV0tf
RURJVE9SX0NPTU1BTkRfU0VMRUNUX1BBUkFHUkFQSCwKKyAgICAiU2VsZWN0U2VudGVuY2UiLCAv
LyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1NFTlRFTkNFLAorICAgICJTZWxlY3RMaW5lIiwg
Ly8gRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9MSU5FLAorICAgICJTZWxlY3RXb3JkIiwgLy8g
RVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9XT1JELAorICAgICJNb3ZlRm9yd2FyZCIsIC8vIEVX
S19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX05FWFRfQ0hBUiwKKyAgICAiTW92ZUJhY2t3YXJkIiwg
Ly8gRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fUFJFVklPVVNfQ0hBUiwKKyAgICAiTW92ZVdv
cmRGb3J3YXJkIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fTkVYVF9XT1JELAorICAg
ICJNb3ZlV29yZEJhY2t3YXJkIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fUFJFVklP
VVNfV09SRCwKKyAgICAiTW92ZURvd24iLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19O
RVhUX0xJTkUsCisgICAgIk1vdmVVcCIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX1BS
RVZJT1VTX0xJTkUsCisgICAgIk1vdmVUb0JlZ2lubmluZ09mTGluZSIsIC8vIEVXS19FRElUT1Jf
Q09NTUFORF9NT1ZFX1RPX0JFR0lOTklOR19PRl9MSU5FLAorICAgICJNb3ZlVG9FbmRPZkxpbmUi
LCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19FTkRfT0ZfTElORSwKKyAgICAiTW92ZVRv
QmVnaW5uaW5nT2ZQYXJhZ3JhcGgiLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19CRUdJ
Tk5JTkdfT0ZfUEFSQUdSQVBILAorICAgICJNb3ZlVG9FbmRPZlBhcmFncmFwaCIsIC8vIEVXS19F
RElUT1JfQ09NTUFORF9NT1ZFX1RPX0VORF9PRl9QQVJBR1JBUEgsCisgICAgIk1vdmVUb0JlZ2lu
bmluZ09mRG9jdW1lbnQiLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19CRUdJTk5JTkdf
T0ZfRE9DVU1FTlQsCisgICAgIk1vdmVUb0VuZE9mRG9jdW1lbnQiLCAvLyBFV0tfRURJVE9SX0NP
TU1BTkRfTU9WRV9UT19FTkRfT0ZfRE9DVU1FTlQsCisgICAgIk1vdmVGb3J3YXJkQW5kTW9kaWZ5
U2VsZWN0aW9uIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9ORVhUX0NIQVIsCisgICAg
Ik1vdmVCYWNrd2FyZEFuZE1vZGlmeVNlbGVjdGlvbiIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9T
RUxFQ1RfUFJFVklPVVNfQ0hBUiwKKyAgICAiTW92ZVdvcmRGb3J3YXJkQW5kTW9kaWZ5U2VsZWN0
aW9uIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9ORVhUX1dPUkQsCisgICAgIk1vdmVX
b3JkQmFja3dhcmRBbmRNb2RpZnlTZWxlY3Rpb24iLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfU0VM
RUNUX1BSRVZJT1VTX1dPUkQsCisgICAgIk1vdmVEb3duQW5kTW9kaWZ5U2VsZWN0aW9uIiwgLy8g
RVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9ORVhUX0xJTkUsCisgICAgIk1vdmVVcEFuZE1vZGlm
eVNlbGVjdGlvbiIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfUFJFVklPVVNfTElORSwK
KyAgICAiTW92ZVRvQmVnaW5uaW5nT2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9uIiwgLy8gRVdLX0VE
SVRPUl9DT01NQU5EX1NFTEVDVF9TVEFSVF9PRl9MSU5FLAorICAgICJNb3ZlVG9FbmRPZkxpbmVB
bmRNb2RpZnlTZWxlY3Rpb24iLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX0VORF9PRl9M
SU5FLAorICAgICJNb3ZlVG9CZWdpbm5pbmdPZlBhcmFncmFwaEFuZE1vZGlmeVNlbGVjdGlvbiIs
IC8vIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfU1RBUlRfT0ZfUEFSQUdSQVBILAorICAgICJN
b3ZlVG9FbmRPZlBhcmFncmFwaEFuZE1vZGlmeVNlbGVjdGlvbiIsIC8vIEVXS19FRElUT1JfQ09N
TUFORF9TRUxFQ1RfRU5EX09GX1BBUkFHUkFQSCwKKyAgICAiTW92ZVRvQmVnaW5uaW5nT2ZEb2N1
bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfU1RB
UlRfT0ZfRE9DVU1FTlQsCisgICAgIk1vdmVUb0VuZE9mRG9jdW1lbnRBbmRNb2RpZnlTZWxlY3Rp
b24iLCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX0VORF9PRl9ET0NVTUVOVCwKKyAgICAi
RGVsZXRlV29yZEJhY2t3YXJkIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX0RFTEVURV9XT1JEX0JB
Q0tXQVJELAorICAgICJEZWxldGVXb3JkRm9yd2FyZCIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9E
RUxFVEVfV09SRF9GT1JXQVJELAorICAgICJJbnNlcnROZXdsaW5lIiwgLy8gRVdLX0VESVRPUl9D
T01NQU5EX0lOU0VSVF9QQVJBR1JBUEhfU0VQQVJBVE9SLAorICAgICJJbnNlcnRMaW5lQnJlYWsi
LCAvLyBFV0tfRURJVE9SX0NPTU1BTkRfSU5TRVJUX0xJTkVfU0VQQVJBVE9SLAorICAgICJTdHJp
a2V0aHJvdWdoIiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX1NUUklLRVRIUk9VR0gsCisgICAgIlN1
YnNjcmlwdCIsIC8vIEVXS19FRElUT1JfQ09NTUFORF9TVUJTQ1JJUFQsCisgICAgIlN1cGVyc2Ny
aXB0IiwgLy8gRVdLX0VESVRPUl9DT01NQU5EX1NVUEVSU0NJUFQKK307CisKKy8qKgorICogQGlu
dGVybmFsCisgKiBHZXRzIGVkaXRvciBjb21tYW5kIHN0cmluZyBmcm9tIGdpdmVuIEV3a19FZGl0
b3JfQ29tbWFuZCB2YWx1ZS4KKyAqCisgKiBAcGFyYW0gY29tbWFuZCBFd2tfRWRpdG9yX0NvbW1h
bmQgdG8gZ2V0IHN0cmluZy4KKyAqCisgKiBAcmV0dXJuIGNvbW1hbmQgc3RyaW5nIGlmIEV3a19F
ZGl0b3JfQ29tbWFuZCB3YXMgY29ycmVjdCBvciBAYyAwIG90aGVyd2lzZS4KKyAqLworc3RhdGlj
IGNvbnN0IGNoYXIqIF9ld2tfZWRpdG9yX2NvbW1hbmRfc3RyaW5nX2dldChjb25zdCBFd2tfRWRp
dG9yX0NvbW1hbmQgY29tbWFuZCkKK3sKKyAgICBpZiAoKGNvbW1hbmQgPiBFV0tfRURJVE9SX0NP
TU1BTkRfTk9ORSkKKyAgICAgICAgJiYgKGNvbW1hbmQgPCBzdGF0aWNfY2FzdDxpbnQ+KHNpemVv
ZihfZXdrX2VkaXRvcl9jb21tYW5kcykgLyBzaXplb2YoY29uc3QgY2hhciopKSkpCisgICAgICAg
IHJldHVybiBfZXdrX2VkaXRvcl9jb21tYW5kc1tjb21tYW5kXTsKKyAgICByZXR1cm4gMDsKK30K
KworRWluYV9Cb29sIGV3a19lZGl0b3JfY29tbWFuZF9leGVjdXRlKGNvbnN0IEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBjb25zdCBFd2tfRWRpdG9yX0NvbW1hbmQgY29tbWFuZCwgY29uc3QgY2hhciog
dmFsdWUpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGV3a1ZpZXcsIGZh
bHNlKTsKKworICAgIGNvbnN0IGNoYXIqIGNvbW1hbmRTdHJpbmcgPSBfZXdrX2VkaXRvcl9jb21t
YW5kX3N0cmluZ19nZXQoY29tbWFuZCk7CisgICAgaWYgKGNvbW1hbmRTdHJpbmcpCisgICAgICAg
IHJldHVybiBld2tfdmlld19lZGl0b3JfY29tbWFuZF9leGVjdXRlKGV3a1ZpZXcsIGNvbW1hbmRT
dHJpbmcsIHZhbHVlKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX2VkaXRvci5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19l
ZGl0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzg2MDQ3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19lZGl0b3IuaApAQCAtMCww
ICsxLDk1IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNz
CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
Ki8KKworI2lmbmRlZiBld2tfZWRpdG9yX2gKKyNkZWZpbmUgZXdrX2VkaXRvcl9oCisKKyNpbmNs
dWRlIDxFdmFzLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYK
KworLyoqCisgKiBAZmlsZSAgICBld2tfZWRpdG9yLmgKKyAqIEBicmllZiAgIEVkaXRpbmcgZm9y
IFdlYktpdC1FRkwuCisgKi8KKworLy8vIENvbnRhaW5zIGNvbW1hbmRzIHRvIGV4ZWN1dGUuCitl
bnVtIF9Fd2tfRWRpdG9yX0NvbW1hbmQgeworICAgIEVXS19FRElUT1JfQ09NTUFORF9OT05FID0g
LTEsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9JTUFHRSA9IDAsCisgICAgRVdLX0VE
SVRPUl9DT01NQU5EX0lOU0VSVF9URVhULAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1Rf
Tk9ORSwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX0FMTCwKKyAgICBFV0tfRURJVE9S
X0NPTU1BTkRfU0VMRUNUX1BBUkFHUkFQSCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNU
X1NFTlRFTkNFLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfTElORSwKKyAgICBFV0tf
RURJVE9SX0NPTU1BTkRfU0VMRUNUX1dPUkQsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX01PVkVf
VE9fTkVYVF9DSEFSLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX1BSRVZJT1VTX0NI
QVIsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fTkVYVF9XT1JELAorICAgIEVXS19F
RElUT1JfQ09NTUFORF9NT1ZFX1RPX1BSRVZJT1VTX1dPUkQsCisgICAgRVdLX0VESVRPUl9DT01N
QU5EX01PVkVfVE9fTkVYVF9MSU5FLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX1BS
RVZJT1VTX0xJTkUsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fQkVHSU5OSU5HX09G
X0xJTkUsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fRU5EX09GX0xJTkUsCisgICAg
RVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fQkVHSU5OSU5HX09GX1BBUkFHUkFQSCwKKyAgICBF
V0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19FTkRfT0ZfUEFSQUdSQVBILAorICAgIEVXS19FRElU
T1JfQ09NTUFORF9NT1ZFX1RPX0JFR0lOTklOR19PRl9ET0NVTUVOVCwKKyAgICBFV0tfRURJVE9S
X0NPTU1BTkRfTU9WRV9UT19FTkRfT0ZfRE9DVU1FTlQsCisgICAgRVdLX0VESVRPUl9DT01NQU5E
X1NFTEVDVF9ORVhUX0NIQVIsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9QUkVWSU9V
U19DSEFSLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfTkVYVF9XT1JELAorICAgIEVX
S19FRElUT1JfQ09NTUFORF9TRUxFQ1RfUFJFVklPVVNfV09SRCwKKyAgICBFV0tfRURJVE9SX0NP
TU1BTkRfU0VMRUNUX05FWFRfTElORSwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1BS
RVZJT1VTX0xJTkUsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9TVEFSVF9PRl9MSU5F
LAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfRU5EX09GX0xJTkUsCisgICAgRVdLX0VE
SVRPUl9DT01NQU5EX1NFTEVDVF9TVEFSVF9PRl9QQVJBR1JBUEgsCisgICAgRVdLX0VESVRPUl9D
T01NQU5EX1NFTEVDVF9FTkRfT0ZfUEFSQUdSQVBILAorICAgIEVXS19FRElUT1JfQ09NTUFORF9T
RUxFQ1RfU1RBUlRfT0ZfRE9DVU1FTlQsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9F
TkRfT0ZfRE9DVU1FTlQsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX0RFTEVURV9XT1JEX0JBQ0tX
QVJELAorICAgIEVXS19FRElUT1JfQ09NTUFORF9ERUxFVEVfV09SRF9GT1JXQVJELAorICAgIEVX
S19FRElUT1JfQ09NTUFORF9JTlNFUlRfUEFSQUdSQVBIX1NFUEFSQVRPUiwKKyAgICBFV0tfRURJ
VE9SX0NPTU1BTkRfSU5TRVJUX0xJTkVfU0VQQVJBVE9SLAorICAgIEVXS19FRElUT1JfQ09NTUFO
RF9TVFJJS0VUSFJPVUdILAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TVUJTQ1JJUFQsCisgICAg
RVdLX0VESVRPUl9DT01NQU5EX1NVUEVSU0NSSVBUCit9OworCisvLy8gQ3JlYXRlcyBhIHR5cGUg
bmFtZSBmb3IgQGEgX0V3a19FZGl0b3JfQ29tbWFuZC4KK3R5cGVkZWYgZW51bSBfRXdrX0VkaXRv
cl9Db21tYW5kIEV3a19FZGl0b3JfQ29tbWFuZDsKKworLyoqCisgKiBFeGVjdXRlcyBlZGl0b3Ig
Y29tbWFuZC4KKyAqCisgKiBAcGFyYW0gbyB2aWV3IG9iamVjdCB0byBleGVjdXRlIGNvbW1hbmQK
KyAqIEBwYXJhbSBjb21tYW5kIGVkaXRvciBjb21tYW5kIHRvIGV4ZWN1dGUKKyAqIEBwYXJhbSB2
YWx1ZSB0aGUgdmFsdWUgdG8gYmUgcGFzc2VkIGludG8gY29tbWFuZAorICoKKyAqIEByZXR1cm4g
QGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3Mgb3IgQGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlCisgKi8K
K0VBUEkgRWluYV9Cb29sIGV3a19lZGl0b3JfY29tbWFuZF9leGVjdXRlKGNvbnN0IEV2YXNfT2Jq
ZWN0ICpvLCBjb25zdCBFd2tfRWRpdG9yX0NvbW1hbmQgY29tbWFuZCwgY29uc3QgY2hhciAqdmFs
dWUpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorI2VuZGlmIC8vIGV3a19lZGl0
b3JfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaAppbmRleCBmNGI5OWFjZS4uYWZmMGE4
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKQEAgLTE4NSw2ICsxODUsOCBAQCB2
b2lkIGV3a192aWV3X25lZWRfdG91Y2hfZXZlbnRzX3NldChFdmFzX09iamVjdCosIGJvb2wgbmVl
ZGVkKTsKIGJvb2wgZXdrX3ZpZXdfbmVlZF90b3VjaF9ldmVudHNfZ2V0KGNvbnN0IEV2YXNfT2Jq
ZWN0Kik7CiAjZW5kaWYKIAorRWluYV9Cb29sIGV3a192aWV3X2VkaXRvcl9jb21tYW5kX2V4ZWN1
dGUoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IGNoYXIqIGNvbW1hbmQsIGNvbnN0
IGNoYXIqIHZhbHVlKTsKKwogRXdrX0hpc3RvcnlfSXRlbSAqZXdrX2hpc3RvcnlfaXRlbV9uZXdf
ZnJvbV9jb3JlKFdlYkNvcmU6Okhpc3RvcnlJdGVtICpjb3JlKTsKIEV3a19IaXN0b3J5KiBld2tf
aGlzdG9yeV9uZXcoV2ViQ29yZTo6QmFja0ZvcndhcmRMaXN0SW1wbCogaGlzdG9yeSk7CiB2b2lk
IGV3a19oaXN0b3J5X2ZyZWUoRXdrX0hpc3RvcnkqIGhpc3RvcnkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdmlldy5jcHAKaW5kZXggZjdmOTNkOS4uMWI5OTM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXcuY3BwCkBAIC0xNDQ4LDM2ICsxNDQ4LDEyIEBAIGNoYXIqIGV3a192aWV3X3NlbGVjdGlv
bl9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgcmV0dXJuIHN0cmR1cChzZWxl
Y3RlZFN0cmluZy5kYXRhKCkpOwogfQogCi1zdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19lZGl0
b3JfY29tbWFuZChFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYsIGNvbnN0IGNoYXIqIGNvbW1h
bmQsIGNvbnN0IGNoYXIqIHZhbHVlID0gMCkKLXsKLSAgICByZXR1cm4gcHJpdi0+cGFnZS0+Zm9j
dXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpLT5lZGl0b3IoKS0+Y29tbWFuZChX
VEY6OlN0cmluZzo6ZnJvbVVURjgoY29tbWFuZCkpLmV4ZWN1dGUoV1RGOjpTdHJpbmc6OmZyb21V
VEY4KHZhbHVlKSk7Ci19Ci0KLUVpbmFfQm9vbCBld2tfdmlld19leGVjdXRlX2VkaXRvcl9jb21t
YW5kKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFd2tfRWRpdG9yX0NvbW1hbmQgY29tbWFu
ZCwgY29uc3QgY2hhciogdmFsdWUpCitFaW5hX0Jvb2wgZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmRf
ZXhlY3V0ZShjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgY2hhciogY29tbWFuZCwg
Y29uc3QgY2hhciogdmFsdWUpCiB7CiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tW
aWV3LCBzbWFydERhdGEsIGZhbHNlKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4o
c21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAKLSAgICBzd2l0Y2ggKGNvbW1hbmQpIHsKLSAgICBj
YXNlIEVXS19FRElUT1JfQ09NTUFORF9JTlNFUlRfSU1BR0U6Ci0gICAgICAgIHJldHVybiBfZXdr
X3ZpZXdfZWRpdG9yX2NvbW1hbmQocHJpdiwgIkluc2VydEltYWdlIiwgdmFsdWUpOwotICAgIGNh
c2UgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9URVhUOgotICAgICAgICByZXR1cm4gX2V3a192
aWV3X2VkaXRvcl9jb21tYW5kKHByaXYsICJJbnNlcnRUZXh0IiwgdmFsdWUpOwotICAgIGNhc2Ug
RVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9OT05FOgotICAgICAgICByZXR1cm4gX2V3a192aWV3
X2VkaXRvcl9jb21tYW5kKHByaXYsICJVbnNlbGVjdCIpOwotICAgIGNhc2UgRVdLX0VESVRPUl9D
T01NQU5EX1NFTEVDVF9BTEw6Ci0gICAgICAgIHJldHVybiBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1h
bmQocHJpdiwgIlNlbGVjdEFsbCIpOwotICAgIGNhc2UgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVD
VF9QQVJBR1JBUEg6Ci0gICAgICAgIHJldHVybiBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmQocHJp
diwgIlNlbGVjdFBhcmFncmFwaCIpOwotICAgIGNhc2UgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVD
VF9TRU5URU5DRToKLSAgICAgICAgcmV0dXJuIF9ld2tfdmlld19lZGl0b3JfY29tbWFuZChwcml2
LCAiU2VsZWN0U2VudGVuY2UiKTsKLSAgICBjYXNlIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1Rf
TElORToKLSAgICAgICAgcmV0dXJuIF9ld2tfdmlld19lZGl0b3JfY29tbWFuZChwcml2LCAiU2Vs
ZWN0TGluZSIpOwotICAgIGNhc2UgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9XT1JEOgotICAg
ICAgICByZXR1cm4gX2V3a192aWV3X2VkaXRvcl9jb21tYW5kKHByaXYsICJTZWxlY3RXb3JkIik7
Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KKyAgICByZXR1cm4g
cHJpdi0+cGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpLT5lZGl0
b3IoKS0+Y29tbWFuZChXVEY6OlN0cmluZzo6ZnJvbVVURjgoY29tbWFuZCkpLmV4ZWN1dGUoV1RG
OjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfdmlld19jb250
ZXh0X21lbnVfZm9yd2FyZF9ldmVudChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgRXZhc19F
dmVudF9Nb3VzZV9Eb3duKiBkb3duRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4
IGYyZjBiZTEuLjhjYTBmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC03NDEsMzEg
Kzc0MSw2IEBAIEVBUEkgY2hhciAgICAgICAgKmV3a192aWV3X3NlbGVjdGlvbl9nZXQoY29uc3Qg
RXZhc19PYmplY3QgKm8pOwogICovCiBFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19jb250ZXh0
X21lbnVfZm9yd2FyZF9ldmVudChFdmFzX09iamVjdCAqbywgY29uc3QgRXZhc19FdmVudF9Nb3Vz
ZV9Eb3duICpldik7CiAKLS8vLyBDb250YWlucyBjb21tYW5kcyB0byBleGVjdXRlLgotZW51bSBf
RXdrX0VkaXRvcl9Db21tYW5kIHsKLSAgICBFV0tfRURJVE9SX0NPTU1BTkRfSU5TRVJUX0lNQUdF
ID0gMCwKLSAgICBFV0tfRURJVE9SX0NPTU1BTkRfSU5TRVJUX1RFWFQsCi0gICAgRVdLX0VESVRP
Ul9DT01NQU5EX1NFTEVDVF9OT05FLAotICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfQUxM
LAotICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfUEFSQUdSQVBILAotICAgIEVXS19FRElU
T1JfQ09NTUFORF9TRUxFQ1RfU0VOVEVOQ0UsCi0gICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVD
VF9MSU5FLAotICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfV09SRAotfTsKLS8vLyBDcmVh
dGVzIGEgdHlwZSBuYW1lIGZvciBAYSBfRXdrX0VkaXRvcl9Db21tYW5kLgotdHlwZWRlZiBlbnVt
IF9Fd2tfRWRpdG9yX0NvbW1hbmQgRXdrX0VkaXRvcl9Db21tYW5kOwotCi0vKioKLSAqIEV4ZWN1
dGVzIGVkaXRvciBjb21tYW5kLgotICoKLSAqIEBwYXJhbSBvIHZpZXcgb2JqZWN0IHRvIGV4ZWN1
dGUgY29tbWFuZAotICogQHBhcmFtIGNvbW1hbmQgZWRpdG9yIGNvbW1hbmQgdG8gZXhlY3V0ZQot
ICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBiZSBwYXNzZWQgaW50byBjb21tYW5kCi0gKgot
ICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2VzcyBvciBAYyBFSU5BX0ZBTFNFIG9uIGZh
aWx1cmUKLSAqLwotRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdfZXhlY3V0ZV9lZGl0b3JfY29t
bWFuZChFdmFzX09iamVjdCAqbywgY29uc3QgRXdrX0VkaXRvcl9Db21tYW5kIGNvbW1hbmQsIGNv
bnN0IGNoYXIgKnZhbHVlKTsKLQogLyoqCiAgKiBEZXN0cm95cyBhIHByZXZpb3VzbHkgY3JlYXRl
ZCBjb2xvciBjaG9vc2VyLgogICoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139008</attachid>
            <date>2012-04-26 08:16:05 -0700</date>
            <delta_ts>2012-04-27 03:58:15 -0700</delta_ts>
            <desc>move back implementation to ewk_view</desc>
            <filename>editor_command_new_patch.diff</filename>
            <type>text/plain</type>
            <size>13598</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA3NDQzZmY1Li4zZDE1NDM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTItMDQtMjYgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxt
LnBha3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBBZGQgbmV3IGNvbW1hbmRzIGZv
ciBFd2tfRWRpdG9yX0NvbW1hbmQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03NDkyMQorCisgICAgICAgIEFkZCBuZXcgY29tbWFuZHMgZm9yIEV3a19F
ZGl0b3JfQ29tbWFuZCBlbnVtIGFuZCBpbnRyb2R1Y2UgbmV3IHRhYmxlIHRvIGtlZXAKKyAgICAg
ICAgZW51bSBhbmQgc3RyaW5nIHZhbHVlcyBpbiBzeW5jLgorCisgICAgICAgICogZXdrL2V3a192
aWV3LmNwcDogQWRkZWQgYSB0YWJsZSB3aXRoIEVkaXRvckNvbW1hbmQgc3RydWN0IGVsZW1lbnRz
LgorICAgICAgICAoRWRpdG9yQ29tbWFuZCk6IEFkZGVkIHN0cnVjdHVyZSBjb25zaXN0aW5nIG9m
IGVudW0gYW5kIHN0cmluZyB2YWx1ZS4KKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGEp
OgorICAgICAgICAoX2V3a192aWV3X3ByaXZfbmV3KToKKyAgICAgICAgKF9ld2tfdmlld19wcml2
X2RlbCk6CisgICAgICAgIChfZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmRfc3RyaW5nX2dldCk6IEFk
ZGVkLgorICAgICAgICAoZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmRfZXhlY3V0ZSk6IEV3a19FZGl0
b3JfQ29tbWFuZCBlbnVtIGV4dGVuZGVkLgorICAgICAgICAqIGV3ay9ld2tfdmlldy5oOgorCiAy
MDEyLTA0LTIzICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+
CiAKICAgICAgICAgW0VGTF0gRUZMJ3MgTGF5b3V0VGVzdENvbnRyb2xsZXIgZG9lcyBub3QgaW1w
bGVtZW50IGVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdmlldy5jcHAKaW5kZXggZjdmOTNkOS4uNzdhNmVmMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuY3BwCkBAIC0xNDcsNiArMTQ3LDc5IEBAIHN0YXRpYyBjb25zdCBFdmFzX1Nt
YXJ0X0NiX0Rlc2NyaXB0aW9uIF9ld2tfdmlld19jYWxsYmFja19uYW1lc1tdID0gewogICAgIHsg
MCwgMCB9CiB9OwogCitzdHJ1Y3QgRWRpdG9yQ29tbWFuZCB7CisgICAgRXdrX0VkaXRvcl9Db21t
YW5kIGV3a0VkaXRvckNvbW1hbmQ7CisgICAgY29uc3QgY2hhciogZWRpdG9yQ29tbWFuZFN0cmlu
ZzsKK307CisKKy8qKgorICogQGJyaWVmIEEgdGFibGUgZ3JvdXBpbmcgRXdrX0VkaXRvcl9Db21t
YW5kIGVudW1zIHdpdGggY29ycmVzcG9uZGluZyBjb21tYW5kCisgKiBzdHJpbmdzIHVzZWQgYnkg
V2ViQ29yZTo6RWRpdG9yQ29tbWFuZCwga2VlcGluZyBib3RoIGluIHN5bmMuCisgKgorICogQGlu
dGVybmFsCisgKi8KK3N0YXRpYyBjb25zdCBFZGl0b3JDb21tYW5kIGVkaXRvckNvbW1hbmRzW10g
PSB7CisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfVU5ETywgIlVuZG8iIH0sCisgICAgeyBFV0tf
RURJVE9SX0NPTU1BTkRfUkVETywgIlJlZG8iIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRf
VE9HR0xFX0JPTEQsICJUb2dnbGVCb2xkIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX1RP
R0dMRV9JVEFMSUMsICJUb2dnbGVJdGFsaWMiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRf
VE9HR0xFX1VOREVSTElORSwgIlRvZ2dsZVVuZGVybGluZSIgfSwKKyAgICB7IEVXS19FRElUT1Jf
Q09NTUFORF9UT0dHTEVfU1RSSUtFVEhST1VHSCwgIlN0cmlrZXRocm91Z2giIH0sCisgICAgeyBF
V0tfRURJVE9SX0NPTU1BTkRfVE9HR0xFX1NVQlNDUklQVCwgIlN1YlNjcmlwdCIgfSwKKyAgICB7
IEVXS19FRElUT1JfQ09NTUFORF9UT0dHTEVfU1VQRVJTQ1JJUFQsICJTdXBlclNjcmlwdCIgfSwK
KyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9JTkRFTlQsICJJbmRlbnQiIH0sCisgICAgeyBFV0tf
RURJVE9SX0NPTU1BTkRfT1VUREVOVCwgIk91dGRlbnQiIH0sCisgICAgeyBFV0tfRURJVE9SX0NP
TU1BTkRfSU5TRVJUX09SREVSRURMSVNULCAiSW5zZXJ0T3JkZXJlZExpc3QiIH0sCisgICAgeyBF
V0tfRURJVE9SX0NPTU1BTkRfSU5TRVJUX1VOT1JERVJFRExJU1QsICJJbnNlcnRVbm9yZGVyZWRM
aXN0IiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9JTUFHRSwgIkluc2VydElt
YWdlIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9URVhULCAiSW5zZXJ0VGV4
dCIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9JTlNFUlRfSFRNTCwgIkluc2VydEhUTUwi
IH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfSU5TRVJUX1BBUkFHUkFQSCwgIkluc2VydFBh
cmFncmFwaCIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9JTlNFUlRfUEFSQUdSQVBIX1NF
UEFSQVRPUiwgIkluc2VydE5ld0xpbmUiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfSU5T
RVJUX0xJTkVfU0VQQVJBVE9SLCAiSW5zZXJ0TGluZUJyZWFrIiB9LAorICAgIHsgRVdLX0VESVRP
Ul9DT01NQU5EX0JBQ0tfQ09MT1IsICJCYWNrQ29sb3IiIH0sCisgICAgeyBFV0tfRURJVE9SX0NP
TU1BTkRfRk9SRV9DT0xPUiwgIkZvcmVDb2xvciIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFO
RF9ISUxJVEVfQ09MT1IsICJIaWxpdGVDb2xvciIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFO
RF9GT05UX1NJWkUsICJGb250U2l6ZSIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9BTElH
Tl9DRU5URVIsICJBbGlnbkNlbnRlciIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9BTElH
Tl9KVVNUSUZJRUQsICJBbGlnbkp1c3RpZmllZCIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFO
RF9BTElHTl9MRUZULCAiQWxpZ25MZWZ0IiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX0FM
SUdOX1JJR0hULCAiQWxpZ25SaWdodCIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9NT1ZF
X1RPX05FWFRfQ0hBUiwgIk1vdmVGb3J3YXJkIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5E
X01PVkVfVE9fUFJFVklPVVNfQ0hBUiwgIk1vdmVCYWNrd2FyZCIgfSwKKyAgICB7IEVXS19FRElU
T1JfQ09NTUFORF9NT1ZFX1RPX05FWFRfV09SRCwgIk1vdmVXb3JkRm9yd2FyZCIgfSwKKyAgICB7
IEVXS19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX1BSRVZJT1VTX1dPUkQsICJNb3ZlV29yZEJhY2t3
YXJkIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fTkVYVF9MSU5FLCAiTW92
ZURvd24iIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19QUkVWSU9VU19MSU5F
LCAiTW92ZVVwIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fQkVHSU5OSU5H
X09GX0xJTkUsICJNb3ZlVG9CZWdpbm5pbmdPZkxpbmUiIH0sCisgICAgeyBFV0tfRURJVE9SX0NP
TU1BTkRfTU9WRV9UT19FTkRfT0ZfTElORSwgIk1vdmVUb0VuZE9mTGluZSIgfSwKKyAgICB7IEVX
S19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX0JFR0lOTklOR19PRl9QQVJBR1JBUEgsICJNb3ZlVG9C
ZWdpbm5pbmdPZlBhcmFncmFwaCIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9NT1ZFX1RP
X0VORF9PRl9QQVJBR1JBUEgsICJNb3ZlVG9FbmRPZlBhcmFncmFwaCIgfSwKKyAgICB7IEVXS19F
RElUT1JfQ09NTUFORF9NT1ZFX1RPX0JFR0lOTklOR19PRl9ET0NVTUVOVCwgIk1vdmVUb0JlZ2lu
bmluZ09mRG9jdW1lbnQiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19FTkRf
T0ZfRE9DVU1FTlQsICJNb3ZlVG9FbmRPZkRvY3VtZW50IiB9LAorICAgIHsgRVdLX0VESVRPUl9D
T01NQU5EX1NFTEVDVF9OT05FLCAiU2VsZWN0Tm9uZSIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09N
TUFORF9TRUxFQ1RfQUxMLCAiU2VsZWN0QWxsIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5E
X1NFTEVDVF9QQVJBR1JBUEgsICJTZWxlY3RQYXJhZ3JhcGgiIH0sCisgICAgeyBFV0tfRURJVE9S
X0NPTU1BTkRfU0VMRUNUX1NFTlRFTkNFLCAiU2VsZWN0U2VudGVuY2UiIH0sCisgICAgeyBFV0tf
RURJVE9SX0NPTU1BTkRfU0VMRUNUX0xJTkUsICJTZWxlY3RMaW5lIiB9LAorICAgIHsgRVdLX0VE
SVRPUl9DT01NQU5EX1NFTEVDVF9XT1JELCAiU2VsZWN0V29yZCIgfSwKKyAgICB7IEVXS19FRElU
T1JfQ09NTUFORF9TRUxFQ1RfTkVYVF9DSEFSLCAiTW92ZUZvcndhcmRBbmRNb2RpZnlTZWxlY3Rp
b24iIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1BSRVZJT1VTX0NIQVIsICJN
b3ZlQmFja3dhcmRBbmRNb2RpZnlTZWxlY3Rpb24iIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1B
TkRfU0VMRUNUX05FWFRfV09SRCwgIk1vdmVXb3JkRm9yd2FyZEFuZE1vZGlmeVNlbGVjdGlvbiIg
fSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfUFJFVklPVVNfV09SRCwgIk1vdmVX
b3JkQmFja3dhcmRBbmRNb2RpZnlTZWxlY3Rpb24iIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1B
TkRfU0VMRUNUX05FWFRfTElORSwgIk1vdmVEb3duQW5kTW9kaWZ5U2VsZWN0aW9uIiB9LAorICAg
IHsgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9QUkVWSU9VU19MSU5FLCAiTW92ZVVwQW5kTW9k
aWZ5U2VsZWN0aW9uIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9TVEFSVF9P
Rl9MSU5FLCAiTW92ZVRvQmVnaW5uaW5nT2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9uIiB9LAorICAg
IHsgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9FTkRfT0ZfTElORSwgIk1vdmVUb0VuZE9mTGlu
ZUFuZE1vZGlmeVNlbGVjdGlvbiIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1Rf
U1RBUlRfT0ZfUEFSQUdSQVBILCAiTW92ZVRvQmVnaW5uaW5nT2ZQYXJhZ3JhcGhBbmRNb2RpZnlT
ZWxlY3Rpb24iIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX0VORF9PRl9QQVJB
R1JBUEgsICJNb3ZlVG9FbmRPZlBhcmFncmFwaEFuZE1vZGlmeVNlbGVjdGlvbiIgfSwKKyAgICB7
IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfU1RBUlRfT0ZfRE9DVU1FTlQsICJNb3ZlVG9CZWdp
bm5pbmdPZkRvY3VtZW50QW5kTW9kaWZ5U2VsZWN0aW9uIiB9LAorICAgIHsgRVdLX0VESVRPUl9D
T01NQU5EX1NFTEVDVF9FTkRfT0ZfRE9DVU1FTlQsICJNb3ZlVG9FbmRPZkRvY3VtZW50QW5kTW9k
aWZ5U2VsZWN0aW9uIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX0RFTEVURV9XT1JEX0JB
Q0tXQVJELCAiRGVsZXRlV29yZEJhY2t3YXJkIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5E
X0RFTEVURV9XT1JEX0ZPUldBUkQsICJEZWxldGVXb3JkRm9yd2FyZCIgfSwKKyAgICB7IEVXS19F
RElUT1JfQ09NTUFORF9OT05FLCAwIH0gLy8gRVdLX0VESVRPUl9DT01NQU5EX05PTkUgbXVzdCBi
ZSB0aGUgbGFzdCBlbGVtZW50LgorfTsKKwogLyoqCiAgKiBAYnJpZWYgUHJpdmF0ZSBkYXRhIHRo
YXQgaXMgdXNlZCBpbnRlcm5hbGx5IGJ5IEVGTCBXZWJLaXQKICAqIGFuZCBzaG91bGQgbmV2ZXIg
YmUgbW9kaWZpZWQgZnJvbSBvdXRzaWRlLgpAQCAtMjQ0LDYgKzMxNyw4IEBAIHN0cnVjdCBfRXdr
X1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICAgICAgICAgRWNvcmVfQW5pbWF0b3IqIGFuaW1hdG9yOwog
ICAgIH0gYW5pbWF0ZWRab29tOwogICAgIFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbjsKKworICAg
IEVpbmFfSGFzaCogZWRpdG9yQ29tbWFuZEhhc2g7CiB9OwogCiAjaWZuZGVmIEVXS19UWVBFX0NI
RUNLCkBAIC03NDYsNiArODIxLDggQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3
a192aWV3X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIAogICAgIHBy
aXYtPnBhZ2VDbGllbnQgPSBhZG9wdFB0cihuZXcgUGFnZUNsaWVudEVmbChzbWFydERhdGEtPnNl
bGYpKTsKIAorICAgIHByaXYtPmVkaXRvckNvbW1hbmRIYXNoID0gMDsKKwogICAgIHJldHVybiBw
cml2OwogfQogCkBAIC03NzYsNiArODUzLDggQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3ByaXZf
ZGVsKEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdikKIAogICAgIGV3a19oaXN0b3J5X2ZyZWUo
cHJpdi0+aGlzdG9yeSk7CiAKKyAgICBlaW5hX2hhc2hfZnJlZShwcml2LT5lZGl0b3JDb21tYW5k
SGFzaCk7CisKICAgICBkZWxldGUgcHJpdjsKIH0KIApAQCAtMTEzMSw2ICsxMjEwLDE3IEBAIHN0
YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X2VuYWJsZV9yZW5kZXIoRXdrX1ZpZXdfU21h
cnRfRGF0YSogc21hcnREYXRhKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3RhdGljIGNvbnN0
IGNoYXIqIF9ld2tfdmlld19lZGl0b3JfY29tbWFuZF9zdHJpbmdfZ2V0KEV3a19WaWV3X1ByaXZh
dGVfRGF0YSogcHJpdiwgRXdrX0VkaXRvcl9Db21tYW5kIGV3a0NvbW1hbmQpCit7CisgICAgaWYg
KCFwcml2LT5lZGl0b3JDb21tYW5kSGFzaCkgeworICAgICAgICBwcml2LT5lZGl0b3JDb21tYW5k
SGFzaCA9IGVpbmFfaGFzaF9pbnQzMl9uZXcoMCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBl
ZGl0b3JDb21tYW5kc1tpXS5ld2tFZGl0b3JDb21tYW5kICE9IEVXS19FRElUT1JfQ09NTUFORF9O
T05FOyBpKyspCisgICAgICAgICAgICBlaW5hX2hhc2hfYWRkKHByaXYtPmVkaXRvckNvbW1hbmRI
YXNoLCAmZWRpdG9yQ29tbWFuZHNbaV0uZXdrRWRpdG9yQ29tbWFuZCwKKyAgICAgICAgICAgICAg
ICAgICAgZWRpdG9yQ29tbWFuZHNbaV0uZWRpdG9yQ29tbWFuZFN0cmluZyk7CisgICAgfQorICAg
IHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihlaW5hX2hhc2hfZmluZChwcml2
LT5lZGl0b3JDb21tYW5kSGFzaCwgJmV3a0NvbW1hbmQpKTsKK30KKwogRWluYV9Cb29sIGV3a192
aWV3X2Jhc2Vfc21hcnRfc2V0KEV3a19WaWV3X1NtYXJ0X0NsYXNzKiBhcGkpCiB7CiAgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGFwaSwgZmFsc2UpOwpAQCAtMTQ0OCwzNiArMTUz
OCwxNiBAQCBjaGFyKiBld2tfdmlld19zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBl
d2tWaWV3KQogICAgIHJldHVybiBzdHJkdXAoc2VsZWN0ZWRTdHJpbmcuZGF0YSgpKTsKIH0KIAot
c3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmQoRXdrX1ZpZXdfUHJpdmF0
ZV9EYXRhKiBwcml2LCBjb25zdCBjaGFyKiBjb21tYW5kLCBjb25zdCBjaGFyKiB2YWx1ZSA9IDAp
Ci17Ci0gICAgcmV0dXJuIHByaXYtPnBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JN
YWluRnJhbWUoKS0+ZWRpdG9yKCktPmNvbW1hbmQoV1RGOjpTdHJpbmc6OmZyb21VVEY4KGNvbW1h
bmQpKS5leGVjdXRlKFdURjo6U3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSkpOwotfQotCi1FaW5hX0Jv
b2wgZXdrX3ZpZXdfZXhlY3V0ZV9lZGl0b3JfY29tbWFuZChFdmFzX09iamVjdCogZXdrVmlldywg
Y29uc3QgRXdrX0VkaXRvcl9Db21tYW5kIGNvbW1hbmQsIGNvbnN0IGNoYXIqIHZhbHVlKQorRWlu
YV9Cb29sIGV3a192aWV3X2VkaXRvcl9jb21tYW5kX2V4ZWN1dGUoY29uc3QgRXZhc19PYmplY3Qq
IGV3a1ZpZXcsIGNvbnN0IEV3a19FZGl0b3JfQ29tbWFuZCBjb21tYW5kLCBjb25zdCBjaGFyKiB2
YWx1ZSkKIHsKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0
YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHBy
aXYsIGZhbHNlKTsKIAotICAgIHN3aXRjaCAoY29tbWFuZCkgewotICAgIGNhc2UgRVdLX0VESVRP
Ul9DT01NQU5EX0lOU0VSVF9JTUFHRToKLSAgICAgICAgcmV0dXJuIF9ld2tfdmlld19lZGl0b3Jf
Y29tbWFuZChwcml2LCAiSW5zZXJ0SW1hZ2UiLCB2YWx1ZSk7Ci0gICAgY2FzZSBFV0tfRURJVE9S
X0NPTU1BTkRfSU5TRVJUX1RFWFQ6Ci0gICAgICAgIHJldHVybiBfZXdrX3ZpZXdfZWRpdG9yX2Nv
bW1hbmQocHJpdiwgIkluc2VydFRleHQiLCB2YWx1ZSk7Ci0gICAgY2FzZSBFV0tfRURJVE9SX0NP
TU1BTkRfU0VMRUNUX05PTkU6Ci0gICAgICAgIHJldHVybiBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1h
bmQocHJpdiwgIlVuc2VsZWN0Iik7Ci0gICAgY2FzZSBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNU
X0FMTDoKLSAgICAgICAgcmV0dXJuIF9ld2tfdmlld19lZGl0b3JfY29tbWFuZChwcml2LCAiU2Vs
ZWN0QWxsIik7Ci0gICAgY2FzZSBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1BBUkFHUkFQSDoK
LSAgICAgICAgcmV0dXJuIF9ld2tfdmlld19lZGl0b3JfY29tbWFuZChwcml2LCAiU2VsZWN0UGFy
YWdyYXBoIik7Ci0gICAgY2FzZSBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1NFTlRFTkNFOgot
ICAgICAgICByZXR1cm4gX2V3a192aWV3X2VkaXRvcl9jb21tYW5kKHByaXYsICJTZWxlY3RTZW50
ZW5jZSIpOwotICAgIGNhc2UgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9MSU5FOgotICAgICAg
ICByZXR1cm4gX2V3a192aWV3X2VkaXRvcl9jb21tYW5kKHByaXYsICJTZWxlY3RMaW5lIik7Ci0g
ICAgY2FzZSBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1dPUkQ6Ci0gICAgICAgIHJldHVybiBf
ZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmQocHJpdiwgIlNlbGVjdFdvcmQiKTsKLSAgICBkZWZhdWx0
OgorICAgIGNvbnN0IGNoYXIqIGNvbW1hbmRTdHJpbmcgPSBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1h
bmRfc3RyaW5nX2dldChwcml2LCBjb21tYW5kKTsKKyAgICBpZiAoIWNvbW1hbmRTdHJpbmcpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9CisKKyAgICByZXR1cm4gcHJpdi0+cGFnZS0+Zm9j
dXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpLT5lZGl0b3IoKS0+Y29tbWFuZChj
b21tYW5kU3RyaW5nKS5leGVjdXRlKFdURjo6U3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSkpOwogfQog
CiBFaW5hX0Jvb2wgZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIGNvbnN0IEV2YXNfRXZlbnRfTW91c2VfRG93biogZG93bkV2ZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmggYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3ZpZXcuaAppbmRleCBmMmYwYmUxLi5hOGZlY2FlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuaApAQCAtMzY1LDYgKzM2NSw3MiBAQCBlbnVtIF9Fd2tfRm9udF9GYW1pbHkg
ewogLy8vIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEBhIF9Fd2tfRm9udF9GYW1pbHkuCiB0eXBl
ZGVmIGVudW0gX0V3a19Gb250X0ZhbWlseSBFd2tfRm9udF9GYW1pbHk7CiAKKy8vLyBDb250YWlu
cyBjb21tYW5kcyB0byBleGVjdXRlLgorZW51bSBfRXdrX0VkaXRvcl9Db21tYW5kIHsKKyAgICBF
V0tfRURJVE9SX0NPTU1BTkRfTk9ORSA9IC0xLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9VTkRP
ID0gMCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfUkVETywKKyAgICBFV0tfRURJVE9SX0NPTU1B
TkRfVE9HR0xFX0JPTEQsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1RPR0dMRV9JVEFMSUMsCisg
ICAgRVdLX0VESVRPUl9DT01NQU5EX1RPR0dMRV9VTkRFUkxJTkUsCisgICAgRVdLX0VESVRPUl9D
T01NQU5EX1RPR0dMRV9TVFJJS0VUSFJPVUdILAorICAgIEVXS19FRElUT1JfQ09NTUFORF9UT0dH
TEVfU1VCU0NSSVBULAorICAgIEVXS19FRElUT1JfQ09NTUFORF9UT0dHTEVfU1VQRVJTQ1JJUFQs
CisgICAgRVdLX0VESVRPUl9DT01NQU5EX0lOREVOVCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRf
T1VUREVOVCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfSU5TRVJUX09SREVSRURMSVNULAorICAg
IEVXS19FRElUT1JfQ09NTUFORF9JTlNFUlRfVU5PUkRFUkVETElTVCwKKyAgICBFV0tfRURJVE9S
X0NPTU1BTkRfSU5TRVJUX0lNQUdFLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9JTlNFUlRfVEVY
VCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfSU5TRVJUX0hUTUwsCisgICAgRVdLX0VESVRPUl9D
T01NQU5EX0lOU0VSVF9QQVJBR1JBUEgsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9Q
QVJBR1JBUEhfU0VQQVJBVE9SLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9JTlNFUlRfTElORV9T
RVBBUkFUT1IsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX0JBQ0tfQ09MT1IsCisgICAgRVdLX0VE
SVRPUl9DT01NQU5EX0ZPUkVfQ09MT1IsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX0hJTElURV9D
T0xPUiwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfRk9OVF9TSVpFLAorICAgIEVXS19FRElUT1Jf
Q09NTUFORF9BTElHTl9DRU5URVIsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX0FMSUdOX0pVU1RJ
RklFRCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfQUxJR05fTEVGVCwKKyAgICBFV0tfRURJVE9S
X0NPTU1BTkRfQUxJR05fUklHSFQsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fTkVY
VF9DSEFSLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX1BSRVZJT1VTX0NIQVIsCisg
ICAgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fTkVYVF9XT1JELAorICAgIEVXS19FRElUT1Jf
Q09NTUFORF9NT1ZFX1RPX1BSRVZJT1VTX1dPUkQsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX01P
VkVfVE9fTkVYVF9MSU5FLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX1BSRVZJT1VT
X0xJTkUsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fQkVHSU5OSU5HX09GX0xJTkUs
CisgICAgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fRU5EX09GX0xJTkUsCisgICAgRVdLX0VE
SVRPUl9DT01NQU5EX01PVkVfVE9fQkVHSU5OSU5HX09GX1BBUkFHUkFQSCwKKyAgICBFV0tfRURJ
VE9SX0NPTU1BTkRfTU9WRV9UT19FTkRfT0ZfUEFSQUdSQVBILAorICAgIEVXS19FRElUT1JfQ09N
TUFORF9NT1ZFX1RPX0JFR0lOTklOR19PRl9ET0NVTUVOVCwKKyAgICBFV0tfRURJVE9SX0NPTU1B
TkRfTU9WRV9UT19FTkRfT0ZfRE9DVU1FTlQsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVD
VF9OT05FLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfQUxMLAorICAgIEVXS19FRElU
T1JfQ09NTUFORF9TRUxFQ1RfUEFSQUdSQVBILAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxF
Q1RfU0VOVEVOQ0UsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9MSU5FLAorICAgIEVX
S19FRElUT1JfQ09NTUFORF9TRUxFQ1RfV09SRCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VM
RUNUX05FWFRfQ0hBUiwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1BSRVZJT1VTX0NI
QVIsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9ORVhUX1dPUkQsCisgICAgRVdLX0VE
SVRPUl9DT01NQU5EX1NFTEVDVF9QUkVWSU9VU19XT1JELAorICAgIEVXS19FRElUT1JfQ09NTUFO
RF9TRUxFQ1RfTkVYVF9MSU5FLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfUFJFVklP
VVNfTElORSwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1NUQVJUX09GX0xJTkUsCisg
ICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9FTkRfT0ZfTElORSwKKyAgICBFV0tfRURJVE9S
X0NPTU1BTkRfU0VMRUNUX1NUQVJUX09GX1BBUkFHUkFQSCwKKyAgICBFV0tfRURJVE9SX0NPTU1B
TkRfU0VMRUNUX0VORF9PRl9QQVJBR1JBUEgsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVD
VF9TVEFSVF9PRl9ET0NVTUVOVCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX0VORF9P
Rl9ET0NVTUVOVCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfREVMRVRFX1dPUkRfQkFDS1dBUkQs
CisgICAgRVdLX0VESVRPUl9DT01NQU5EX0RFTEVURV9XT1JEX0ZPUldBUkQKK307CisKKy8vLyBD
cmVhdGVzIGEgdHlwZSBuYW1lIGZvciBAYSBfRXdrX0VkaXRvcl9Db21tYW5kLgordHlwZWRlZiBl
bnVtIF9Fd2tfRWRpdG9yX0NvbW1hbmQgRXdrX0VkaXRvcl9Db21tYW5kOworCiAvKioKICAqIEBi
cmllZiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBAYSBfRXdrX1RpbGVfVW51c2VkX0NhY2hlLgog
ICoKQEAgLTc0MSwyMCArODA3LDYgQEAgRUFQSSBjaGFyICAgICAgICAqZXdrX3ZpZXdfc2VsZWN0
aW9uX2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CiAgKi8KIEVBUEkgRWluYV9Cb29sICAgIGV3
a192aWV3X2NvbnRleHRfbWVudV9mb3J3YXJkX2V2ZW50KEV2YXNfT2JqZWN0ICpvLCBjb25zdCBF
dmFzX0V2ZW50X01vdXNlX0Rvd24gKmV2KTsKIAotLy8vIENvbnRhaW5zIGNvbW1hbmRzIHRvIGV4
ZWN1dGUuCi1lbnVtIF9Fd2tfRWRpdG9yX0NvbW1hbmQgewotICAgIEVXS19FRElUT1JfQ09NTUFO
RF9JTlNFUlRfSU1BR0UgPSAwLAotICAgIEVXS19FRElUT1JfQ09NTUFORF9JTlNFUlRfVEVYVCwK
LSAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX05PTkUsCi0gICAgRVdLX0VESVRPUl9DT01N
QU5EX1NFTEVDVF9BTEwsCi0gICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9QQVJBR1JBUEgs
Ci0gICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9TRU5URU5DRSwKLSAgICBFV0tfRURJVE9S
X0NPTU1BTkRfU0VMRUNUX0xJTkUsCi0gICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9XT1JE
Ci19OwotLy8vIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEBhIF9Fd2tfRWRpdG9yX0NvbW1hbmQu
Ci10eXBlZGVmIGVudW0gX0V3a19FZGl0b3JfQ29tbWFuZCBFd2tfRWRpdG9yX0NvbW1hbmQ7Ci0K
IC8qKgogICogRXhlY3V0ZXMgZWRpdG9yIGNvbW1hbmQuCiAgKgpAQCAtNzY0LDcgKzgxNiw3IEBA
IHR5cGVkZWYgZW51bSBfRXdrX0VkaXRvcl9Db21tYW5kIEV3a19FZGl0b3JfQ29tbWFuZDsKICAq
CiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNzIG9yIEBjIEVJTkFfRkFMU0Ugb24g
ZmFpbHVyZQogICovCi1FQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19leGVjdXRlX2VkaXRvcl9j
b21tYW5kKEV2YXNfT2JqZWN0ICpvLCBjb25zdCBFd2tfRWRpdG9yX0NvbW1hbmQgY29tbWFuZCwg
Y29uc3QgY2hhciAqdmFsdWUpOworRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdfZWRpdG9yX2Nv
bW1hbmRfZXhlY3V0ZShjb25zdCBFdmFzX09iamVjdCAqbywgY29uc3QgRXdrX0VkaXRvcl9Db21t
YW5kIGNvbW1hbmQsIGNvbnN0IGNoYXIgKnZhbHVlKTsKIAogLyoqCiAgKiBEZXN0cm95cyBhIHBy
ZXZpb3VzbHkgY3JlYXRlZCBjb2xvciBjaG9vc2VyLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139166</attachid>
            <date>2012-04-27 03:58:15 -0700</date>
            <delta_ts>2012-05-10 07:34:54 -0700</delta_ts>
            <desc>new patch using OwnPtr</desc>
            <filename>editor_command_ownptr.diff</filename>
            <type>text/plain</type>
            <size>12970</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA3NDQzZmY1Li5lMjZmYjE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTItMDQtMjcgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxt
LnBha3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBBZGQgbmV3IGNvbW1hbmRzIGZv
ciBFd2tfRWRpdG9yX0NvbW1hbmQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03NDkyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBuZXcgY29tbWFuZHMgZm9yIEV3a19FZGl0b3JfQ29tbWFuZCBlbnVt
IGFuZCBpbnRyb2R1Y2UgbmV3IHRhYmxlIHRvIGtlZXAKKyAgICAgICAgZW51bSBhbmQgc3RyaW5n
IHZhbHVlcyBpbiBzeW5jLgorCisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDogQWRkZWQgYSB0
YWJsZSB3aXRoIEVkaXRvckNvbW1hbmQgc3RydWN0IGVsZW1lbnRzLgorICAgICAgICAoRWRpdG9y
Q29tbWFuZCk6IEFkZGVkIHN0cnVjdHVyZSBjb25zaXN0aW5nIG9mIGVudW0gYW5kIHN0cmluZyB2
YWx1ZS4KKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAgICAgICAoX2V3a192
aWV3X2VkaXRvcl9jb21tYW5kX3N0cmluZ19nZXQpOiBBZGRlZC4KKyAgICAgICAgKGV3a192aWV3
X2VkaXRvcl9jb21tYW5kX2V4ZWN1dGUpOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5oOiBFd2tf
RWRpdG9yX0NvbW1hbmQgZW51bSBleHRlbmRlZC4KKwogMjAxMi0wNC0yMyAgQ2hyaXN0b3BoZSBE
dW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIEVGTCdz
IExheW91dFRlc3RDb250cm9sbGVyIGRvZXMgbm90IGltcGxlbWVudCBlbGVtZW50RG9lc0F1dG9D
b21wbGV0ZUZvckVsZW1lbnRXaXRoSWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4
IGY3ZjkzZDkuLmI4NDdjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMTQ3
LDYgKzE0Nyw3OSBAQCBzdGF0aWMgY29uc3QgRXZhc19TbWFydF9DYl9EZXNjcmlwdGlvbiBfZXdr
X3ZpZXdfY2FsbGJhY2tfbmFtZXNbXSA9IHsKICAgICB7IDAsIDAgfQogfTsKIAorc3RydWN0IEVk
aXRvckNvbW1hbmQgeworICAgIEV3a19FZGl0b3JfQ29tbWFuZCBld2tFZGl0b3JDb21tYW5kOwor
ICAgIGNvbnN0IGNoYXIqIGVkaXRvckNvbW1hbmRTdHJpbmc7Cit9OworCisvKioKKyAqIEBicmll
ZiBBIHRhYmxlIGdyb3VwaW5nIEV3a19FZGl0b3JfQ29tbWFuZCBlbnVtcyB3aXRoIGNvcnJlc3Bv
bmRpbmcgY29tbWFuZAorICogc3RyaW5ncyB1c2VkIGJ5IFdlYkNvcmU6OkVkaXRvckNvbW1hbmQs
IGtlZXBpbmcgYm90aCBpbiBzeW5jLgorICoKKyAqIEBpbnRlcm5hbAorICovCitzdGF0aWMgY29u
c3QgRWRpdG9yQ29tbWFuZCBlZGl0b3JDb21tYW5kc1tdID0geworICAgIHsgRVdLX0VESVRPUl9D
T01NQU5EX1VORE8sICJVbmRvIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX1JFRE8sICJS
ZWRvIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX1RPR0dMRV9CT0xELCAiVG9nZ2xlQm9s
ZCIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9UT0dHTEVfSVRBTElDLCAiVG9nZ2xlSXRh
bGljIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX1RPR0dMRV9VTkRFUkxJTkUsICJUb2dn
bGVVbmRlcmxpbmUiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfVE9HR0xFX1NUUklLRVRI
Uk9VR0gsICJTdHJpa2V0aHJvdWdoIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX1RPR0dM
RV9TVUJTQ1JJUFQsICJTdWJTY3JpcHQiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfVE9H
R0xFX1NVUEVSU0NSSVBULCAiU3VwZXJTY3JpcHQiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1B
TkRfSU5ERU5ULCAiSW5kZW50IiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX09VVERFTlQs
ICJPdXRkZW50IiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9PUkRFUkVETElT
VCwgIkluc2VydE9yZGVyZWRMaXN0IiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VS
VF9VTk9SREVSRURMSVNULCAiSW5zZXJ0VW5vcmRlcmVkTGlzdCIgfSwKKyAgICB7IEVXS19FRElU
T1JfQ09NTUFORF9JTlNFUlRfSU1BR0UsICJJbnNlcnRJbWFnZSIgfSwKKyAgICB7IEVXS19FRElU
T1JfQ09NTUFORF9JTlNFUlRfVEVYVCwgIkluc2VydFRleHQiIH0sCisgICAgeyBFV0tfRURJVE9S
X0NPTU1BTkRfSU5TRVJUX0hUTUwsICJJbnNlcnRIVE1MIiB9LAorICAgIHsgRVdLX0VESVRPUl9D
T01NQU5EX0lOU0VSVF9QQVJBR1JBUEgsICJJbnNlcnRQYXJhZ3JhcGgiIH0sCisgICAgeyBFV0tf
RURJVE9SX0NPTU1BTkRfSU5TRVJUX1BBUkFHUkFQSF9TRVBBUkFUT1IsICJJbnNlcnROZXdMaW5l
IiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9MSU5FX1NFUEFSQVRPUiwgIklu
c2VydExpbmVCcmVhayIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9CQUNLX0NPTE9SLCAi
QmFja0NvbG9yIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX0ZPUkVfQ09MT1IsICJGb3Jl
Q29sb3IiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfSElMSVRFX0NPTE9SLCAiSGlsaXRl
Q29sb3IiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfRk9OVF9TSVpFLCAiRm9udFNpemUi
IH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfQUxJR05fQ0VOVEVSLCAiQWxpZ25DZW50ZXIi
IH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfQUxJR05fSlVTVElGSUVELCAiQWxpZ25KdXN0
aWZpZWQiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfQUxJR05fTEVGVCwgIkFsaWduTGVm
dCIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9BTElHTl9SSUdIVCwgIkFsaWduUmlnaHQi
IH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19ORVhUX0NIQVIsICJNb3ZlRm9y
d2FyZCIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX1BSRVZJT1VTX0NIQVIs
ICJNb3ZlQmFja3dhcmQiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19ORVhU
X1dPUkQsICJNb3ZlV29yZEZvcndhcmQiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfTU9W
RV9UT19QUkVWSU9VU19XT1JELCAiTW92ZVdvcmRCYWNrd2FyZCIgfSwKKyAgICB7IEVXS19FRElU
T1JfQ09NTUFORF9NT1ZFX1RPX05FWFRfTElORSwgIk1vdmVEb3duIiB9LAorICAgIHsgRVdLX0VE
SVRPUl9DT01NQU5EX01PVkVfVE9fUFJFVklPVVNfTElORSwgIk1vdmVVcCIgfSwKKyAgICB7IEVX
S19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX0JFR0lOTklOR19PRl9MSU5FLCAiTW92ZVRvQmVnaW5u
aW5nT2ZMaW5lIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fRU5EX09GX0xJ
TkUsICJNb3ZlVG9FbmRPZkxpbmUiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9U
T19CRUdJTk5JTkdfT0ZfUEFSQUdSQVBILCAiTW92ZVRvQmVnaW5uaW5nT2ZQYXJhZ3JhcGgiIH0s
CisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19FTkRfT0ZfUEFSQUdSQVBILCAiTW92
ZVRvRW5kT2ZQYXJhZ3JhcGgiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19C
RUdJTk5JTkdfT0ZfRE9DVU1FTlQsICJNb3ZlVG9CZWdpbm5pbmdPZkRvY3VtZW50IiB9LAorICAg
IHsgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fRU5EX09GX0RPQ1VNRU5ULCAiTW92ZVRvRW5k
T2ZEb2N1bWVudCIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfTk9ORSwgIlNl
bGVjdE5vbmUiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX0FMTCwgIlNlbGVj
dEFsbCIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfUEFSQUdSQVBILCAiU2Vs
ZWN0UGFyYWdyYXBoIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9TRU5URU5D
RSwgIlNlbGVjdFNlbnRlbmNlIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9M
SU5FLCAiU2VsZWN0TGluZSIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfV09S
RCwgIlNlbGVjdFdvcmQiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX05FWFRf
Q0hBUiwgIk1vdmVGb3J3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uIiB9LAorICAgIHsgRVdLX0VESVRP
Ul9DT01NQU5EX1NFTEVDVF9QUkVWSU9VU19DSEFSLCAiTW92ZUJhY2t3YXJkQW5kTW9kaWZ5U2Vs
ZWN0aW9uIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9ORVhUX1dPUkQsICJN
b3ZlV29yZEZvcndhcmRBbmRNb2RpZnlTZWxlY3Rpb24iIH0sCisgICAgeyBFV0tfRURJVE9SX0NP
TU1BTkRfU0VMRUNUX1BSRVZJT1VTX1dPUkQsICJNb3ZlV29yZEJhY2t3YXJkQW5kTW9kaWZ5U2Vs
ZWN0aW9uIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9ORVhUX0xJTkUsICJN
b3ZlRG93bkFuZE1vZGlmeVNlbGVjdGlvbiIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9T
RUxFQ1RfUFJFVklPVVNfTElORSwgIk1vdmVVcEFuZE1vZGlmeVNlbGVjdGlvbiIgfSwKKyAgICB7
IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfU1RBUlRfT0ZfTElORSwgIk1vdmVUb0JlZ2lubmlu
Z09mTGluZUFuZE1vZGlmeVNlbGVjdGlvbiIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9T
RUxFQ1RfRU5EX09GX0xJTkUsICJNb3ZlVG9FbmRPZkxpbmVBbmRNb2RpZnlTZWxlY3Rpb24iIH0s
CisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1NUQVJUX09GX1BBUkFHUkFQSCwgIk1v
dmVUb0JlZ2lubmluZ09mUGFyYWdyYXBoQW5kTW9kaWZ5U2VsZWN0aW9uIiB9LAorICAgIHsgRVdL
X0VESVRPUl9DT01NQU5EX1NFTEVDVF9FTkRfT0ZfUEFSQUdSQVBILCAiTW92ZVRvRW5kT2ZQYXJh
Z3JhcGhBbmRNb2RpZnlTZWxlY3Rpb24iIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfU0VM
RUNUX1NUQVJUX09GX0RPQ1VNRU5ULCAiTW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudEFuZE1vZGlm
eVNlbGVjdGlvbiIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfRU5EX09GX0RP
Q1VNRU5ULCAiTW92ZVRvRW5kT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIgfSwKKyAgICB7
IEVXS19FRElUT1JfQ09NTUFORF9ERUxFVEVfV09SRF9CQUNLV0FSRCwgIkRlbGV0ZVdvcmRCYWNr
d2FyZCIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9ERUxFVEVfV09SRF9GT1JXQVJELCAi
RGVsZXRlV29yZEZvcndhcmQiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfTk9ORSwgMCB9
IC8vIEVXS19FRElUT1JfQ09NTUFORF9OT05FIG11c3QgYmUgdGhlIGxhc3QgZWxlbWVudC4KK307
CisKIC8qKgogICogQGJyaWVmIFByaXZhdGUgZGF0YSB0aGF0IGlzIHVzZWQgaW50ZXJuYWxseSBi
eSBFRkwgV2ViS2l0CiAgKiBhbmQgc2hvdWxkIG5ldmVyIGJlIG1vZGlmaWVkIGZyb20gb3V0c2lk
ZS4KQEAgLTExMzEsNiArMTIwNCwxOCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFy
dF9lbmFibGVfcmVuZGVyKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyBjb25zdCBjaGFyKiBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1h
bmRfc3RyaW5nX2dldChFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYsIEV3a19FZGl0b3JfQ29t
bWFuZCBld2tDb21tYW5kKQoreworICAgIHN0YXRpYyBPd25QdHI8RWluYV9IYXNoPiBlZGl0b3JD
b21tYW5kSGFzaDsKKworICAgIGlmICghZWRpdG9yQ29tbWFuZEhhc2gpIHsKKyAgICAgICAgZWRp
dG9yQ29tbWFuZEhhc2ggPSBhZG9wdFB0cihlaW5hX2hhc2hfaW50MzJfbmV3KDApKTsKKyAgICAg
ICAgZm9yIChpbnQgaSA9IDA7IGVkaXRvckNvbW1hbmRzW2ldLmV3a0VkaXRvckNvbW1hbmQgIT0g
RVdLX0VESVRPUl9DT01NQU5EX05PTkU7IGkrKykKKyAgICAgICAgICAgIGVpbmFfaGFzaF9hZGQo
ZWRpdG9yQ29tbWFuZEhhc2guZ2V0KCksICZlZGl0b3JDb21tYW5kc1tpXS5ld2tFZGl0b3JDb21t
YW5kLCBlZGl0b3JDb21tYW5kc1tpXS5lZGl0b3JDb21tYW5kU3RyaW5nKTsKKyAgICB9CisgICAg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGVpbmFfaGFzaF9maW5kKGVkaXRv
ckNvbW1hbmRIYXNoLmdldCgpLCAmZXdrQ29tbWFuZCkpOworfQorCiBFaW5hX0Jvb2wgZXdrX3Zp
ZXdfYmFzZV9zbWFydF9zZXQoRXdrX1ZpZXdfU21hcnRfQ2xhc3MqIGFwaSkKIHsKICAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoYXBpLCBmYWxzZSk7CkBAIC0xNDQ4LDM2ICsxNTMz
LDE2IEBAIGNoYXIqIGV3a192aWV3X3NlbGVjdGlvbl9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3
a1ZpZXcpCiAgICAgcmV0dXJuIHN0cmR1cChzZWxlY3RlZFN0cmluZy5kYXRhKCkpOwogfQogCi1z
dGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19lZGl0b3JfY29tbWFuZChFd2tfVmlld19Qcml2YXRl
X0RhdGEqIHByaXYsIGNvbnN0IGNoYXIqIGNvbW1hbmQsIGNvbnN0IGNoYXIqIHZhbHVlID0gMCkK
LXsKLSAgICByZXR1cm4gcHJpdi0+cGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1h
aW5GcmFtZSgpLT5lZGl0b3IoKS0+Y29tbWFuZChXVEY6OlN0cmluZzo6ZnJvbVVURjgoY29tbWFu
ZCkpLmV4ZWN1dGUoV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKSk7Ci19Ci0KLUVpbmFfQm9v
bCBld2tfdmlld19leGVjdXRlX2VkaXRvcl9jb21tYW5kKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBj
b25zdCBFd2tfRWRpdG9yX0NvbW1hbmQgY29tbWFuZCwgY29uc3QgY2hhciogdmFsdWUpCitFaW5h
X0Jvb2wgZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmRfZXhlY3V0ZShjb25zdCBFdmFzX09iamVjdCog
ZXdrVmlldywgY29uc3QgRXdrX0VkaXRvcl9Db21tYW5kIGNvbW1hbmQsIGNvbnN0IGNoYXIqIHZh
bHVlKQogewogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRh
LCBmYWxzZSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJp
diwgZmFsc2UpOwogCi0gICAgc3dpdGNoIChjb21tYW5kKSB7Ci0gICAgY2FzZSBFV0tfRURJVE9S
X0NPTU1BTkRfSU5TRVJUX0lNQUdFOgotICAgICAgICByZXR1cm4gX2V3a192aWV3X2VkaXRvcl9j
b21tYW5kKHByaXYsICJJbnNlcnRJbWFnZSIsIHZhbHVlKTsKLSAgICBjYXNlIEVXS19FRElUT1Jf
Q09NTUFORF9JTlNFUlRfVEVYVDoKLSAgICAgICAgcmV0dXJuIF9ld2tfdmlld19lZGl0b3JfY29t
bWFuZChwcml2LCAiSW5zZXJ0VGV4dCIsIHZhbHVlKTsKLSAgICBjYXNlIEVXS19FRElUT1JfQ09N
TUFORF9TRUxFQ1RfTk9ORToKLSAgICAgICAgcmV0dXJuIF9ld2tfdmlld19lZGl0b3JfY29tbWFu
ZChwcml2LCAiVW5zZWxlY3QiKTsKLSAgICBjYXNlIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1Rf
QUxMOgotICAgICAgICByZXR1cm4gX2V3a192aWV3X2VkaXRvcl9jb21tYW5kKHByaXYsICJTZWxl
Y3RBbGwiKTsKLSAgICBjYXNlIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfUEFSQUdSQVBIOgot
ICAgICAgICByZXR1cm4gX2V3a192aWV3X2VkaXRvcl9jb21tYW5kKHByaXYsICJTZWxlY3RQYXJh
Z3JhcGgiKTsKLSAgICBjYXNlIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfU0VOVEVOQ0U6Ci0g
ICAgICAgIHJldHVybiBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmQocHJpdiwgIlNlbGVjdFNlbnRl
bmNlIik7Ci0gICAgY2FzZSBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX0xJTkU6Ci0gICAgICAg
IHJldHVybiBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmQocHJpdiwgIlNlbGVjdExpbmUiKTsKLSAg
ICBjYXNlIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfV09SRDoKLSAgICAgICAgcmV0dXJuIF9l
d2tfdmlld19lZGl0b3JfY29tbWFuZChwcml2LCAiU2VsZWN0V29yZCIpOwotICAgIGRlZmF1bHQ6
CisgICAgY29uc3QgY2hhciogY29tbWFuZFN0cmluZyA9IF9ld2tfdmlld19lZGl0b3JfY29tbWFu
ZF9zdHJpbmdfZ2V0KHByaXYsIGNvbW1hbmQpOworICAgIGlmICghY29tbWFuZFN0cmluZykKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KKworICAgIHJldHVybiBwcml2LT5wYWdlLT5mb2N1
c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCktPmVkaXRvcigpLT5jb21tYW5kKGNv
bW1hbmRTdHJpbmcpLmV4ZWN1dGUoV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKSk7CiB9CiAK
IEVpbmFfQm9vbCBld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudChFdmFzX09iamVj
dCogZXdrVmlldywgY29uc3QgRXZhc19FdmVudF9Nb3VzZV9Eb3duKiBkb3duRXZlbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4IGYyZjBiZTEuLmE4ZmVjYWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfdmlldy5oCkBAIC0zNjUsNiArMzY1LDcyIEBAIGVudW0gX0V3a19Gb250X0ZhbWlseSB7
CiAvLy8gQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgQGEgX0V3a19Gb250X0ZhbWlseS4KIHR5cGVk
ZWYgZW51bSBfRXdrX0ZvbnRfRmFtaWx5IEV3a19Gb250X0ZhbWlseTsKIAorLy8vIENvbnRhaW5z
IGNvbW1hbmRzIHRvIGV4ZWN1dGUuCitlbnVtIF9Fd2tfRWRpdG9yX0NvbW1hbmQgeworICAgIEVX
S19FRElUT1JfQ09NTUFORF9OT05FID0gLTEsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1VORE8g
PSAwLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9SRURPLAorICAgIEVXS19FRElUT1JfQ09NTUFO
RF9UT0dHTEVfQk9MRCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfVE9HR0xFX0lUQUxJQywKKyAg
ICBFV0tfRURJVE9SX0NPTU1BTkRfVE9HR0xFX1VOREVSTElORSwKKyAgICBFV0tfRURJVE9SX0NP
TU1BTkRfVE9HR0xFX1NUUklLRVRIUk9VR0gsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1RPR0dM
RV9TVUJTQ1JJUFQsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1RPR0dMRV9TVVBFUlNDUklQVCwK
KyAgICBFV0tfRURJVE9SX0NPTU1BTkRfSU5ERU5ULAorICAgIEVXS19FRElUT1JfQ09NTUFORF9P
VVRERU5ULAorICAgIEVXS19FRElUT1JfQ09NTUFORF9JTlNFUlRfT1JERVJFRExJU1QsCisgICAg
RVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9VTk9SREVSRURMSVNULAorICAgIEVXS19FRElUT1Jf
Q09NTUFORF9JTlNFUlRfSU1BR0UsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9URVhU
LAorICAgIEVXS19FRElUT1JfQ09NTUFORF9JTlNFUlRfSFRNTCwKKyAgICBFV0tfRURJVE9SX0NP
TU1BTkRfSU5TRVJUX1BBUkFHUkFQSCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfSU5TRVJUX1BB
UkFHUkFQSF9TRVBBUkFUT1IsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9MSU5FX1NF
UEFSQVRPUiwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfQkFDS19DT0xPUiwKKyAgICBFV0tfRURJ
VE9SX0NPTU1BTkRfRk9SRV9DT0xPUiwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfSElMSVRFX0NP
TE9SLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9GT05UX1NJWkUsCisgICAgRVdLX0VESVRPUl9D
T01NQU5EX0FMSUdOX0NFTlRFUiwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfQUxJR05fSlVTVElG
SUVELAorICAgIEVXS19FRElUT1JfQ09NTUFORF9BTElHTl9MRUZULAorICAgIEVXS19FRElUT1Jf
Q09NTUFORF9BTElHTl9SSUdIVCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19ORVhU
X0NIQVIsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fUFJFVklPVVNfQ0hBUiwKKyAg
ICBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19ORVhUX1dPUkQsCisgICAgRVdLX0VESVRPUl9D
T01NQU5EX01PVkVfVE9fUFJFVklPVVNfV09SRCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfTU9W
RV9UT19ORVhUX0xJTkUsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fUFJFVklPVVNf
TElORSwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19CRUdJTk5JTkdfT0ZfTElORSwK
KyAgICBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19FTkRfT0ZfTElORSwKKyAgICBFV0tfRURJ
VE9SX0NPTU1BTkRfTU9WRV9UT19CRUdJTk5JTkdfT0ZfUEFSQUdSQVBILAorICAgIEVXS19FRElU
T1JfQ09NTUFORF9NT1ZFX1RPX0VORF9PRl9QQVJBR1JBUEgsCisgICAgRVdLX0VESVRPUl9DT01N
QU5EX01PVkVfVE9fQkVHSU5OSU5HX09GX0RPQ1VNRU5ULAorICAgIEVXS19FRElUT1JfQ09NTUFO
RF9NT1ZFX1RPX0VORF9PRl9ET0NVTUVOVCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNU
X05PTkUsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9BTEwsCisgICAgRVdLX0VESVRP
Ul9DT01NQU5EX1NFTEVDVF9QQVJBR1JBUEgsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVD
VF9TRU5URU5DRSwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX0xJTkUsCisgICAgRVdL
X0VESVRPUl9DT01NQU5EX1NFTEVDVF9XT1JELAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxF
Q1RfTkVYVF9DSEFSLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfUFJFVklPVVNfQ0hB
UiwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX05FWFRfV09SRCwKKyAgICBFV0tfRURJ
VE9SX0NPTU1BTkRfU0VMRUNUX1BSRVZJT1VTX1dPUkQsCisgICAgRVdLX0VESVRPUl9DT01NQU5E
X1NFTEVDVF9ORVhUX0xJTkUsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9QUkVWSU9V
U19MSU5FLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfU1RBUlRfT0ZfTElORSwKKyAg
ICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX0VORF9PRl9MSU5FLAorICAgIEVXS19FRElUT1Jf
Q09NTUFORF9TRUxFQ1RfU1RBUlRfT0ZfUEFSQUdSQVBILAorICAgIEVXS19FRElUT1JfQ09NTUFO
RF9TRUxFQ1RfRU5EX09GX1BBUkFHUkFQSCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNU
X1NUQVJUX09GX0RPQ1VNRU5ULAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfRU5EX09G
X0RPQ1VNRU5ULAorICAgIEVXS19FRElUT1JfQ09NTUFORF9ERUxFVEVfV09SRF9CQUNLV0FSRCwK
KyAgICBFV0tfRURJVE9SX0NPTU1BTkRfREVMRVRFX1dPUkRfRk9SV0FSRAorfTsKKworLy8vIENy
ZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEBhIF9Fd2tfRWRpdG9yX0NvbW1hbmQuCit0eXBlZGVmIGVu
dW0gX0V3a19FZGl0b3JfQ29tbWFuZCBFd2tfRWRpdG9yX0NvbW1hbmQ7CisKIC8qKgogICogQGJy
aWVmIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEBhIF9Fd2tfVGlsZV9VbnVzZWRfQ2FjaGUuCiAg
KgpAQCAtNzQxLDIwICs4MDcsNiBAQCBFQVBJIGNoYXIgICAgICAgICpld2tfdmlld19zZWxlY3Rp
b25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKICAqLwogRUFQSSBFaW5hX0Jvb2wgICAgZXdr
X3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQoRXZhc19PYmplY3QgKm8sIGNvbnN0IEV2
YXNfRXZlbnRfTW91c2VfRG93biAqZXYpOwogCi0vLy8gQ29udGFpbnMgY29tbWFuZHMgdG8gZXhl
Y3V0ZS4KLWVudW0gX0V3a19FZGl0b3JfQ29tbWFuZCB7Ci0gICAgRVdLX0VESVRPUl9DT01NQU5E
X0lOU0VSVF9JTUFHRSA9IDAsCi0gICAgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9URVhULAot
ICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfTk9ORSwKLSAgICBFV0tfRURJVE9SX0NPTU1B
TkRfU0VMRUNUX0FMTCwKLSAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1BBUkFHUkFQSCwK
LSAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1NFTlRFTkNFLAotICAgIEVXS19FRElUT1Jf
Q09NTUFORF9TRUxFQ1RfTElORSwKLSAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1dPUkQK
LX07Ci0vLy8gQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgQGEgX0V3a19FZGl0b3JfQ29tbWFuZC4K
LXR5cGVkZWYgZW51bSBfRXdrX0VkaXRvcl9Db21tYW5kIEV3a19FZGl0b3JfQ29tbWFuZDsKLQog
LyoqCiAgKiBFeGVjdXRlcyBlZGl0b3IgY29tbWFuZC4KICAqCkBAIC03NjQsNyArODE2LDcgQEAg
dHlwZWRlZiBlbnVtIF9Fd2tfRWRpdG9yX0NvbW1hbmQgRXdrX0VkaXRvcl9Db21tYW5kOwogICoK
ICAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3Mgb3IgQGMgRUlOQV9GQUxTRSBvbiBm
YWlsdXJlCiAgKi8KLUVBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X2V4ZWN1dGVfZWRpdG9yX2Nv
bW1hbmQoRXZhc19PYmplY3QgKm8sIGNvbnN0IEV3a19FZGl0b3JfQ29tbWFuZCBjb21tYW5kLCBj
b25zdCBjaGFyICp2YWx1ZSk7CitFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19lZGl0b3JfY29t
bWFuZF9leGVjdXRlKGNvbnN0IEV2YXNfT2JqZWN0ICpvLCBjb25zdCBFd2tfRWRpdG9yX0NvbW1h
bmQgY29tbWFuZCwgY29uc3QgY2hhciAqdmFsdWUpOwogCiAvKioKICAqIERlc3Ryb3lzIGEgcHJl
dmlvdXNseSBjcmVhdGVkIGNvbG9yIGNob29zZXIuCg==
</data>
<flag name="commit-queue"
          id="145249"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141167</attachid>
            <date>2012-05-10 07:34:54 -0700</date>
            <delta_ts>2012-05-16 02:16:12 -0700</delta_ts>
            <desc>rebased patch</desc>
            <filename>editor_command_ownptr_rebased.diff</filename>
            <type>text/plain</type>
            <size>12907</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA0OTIxYTJjLi4zNTc1YzU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTItMDUtMTAgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxt
LnBha3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBBZGQgbmV3IGNvbW1hbmRzIGZv
ciBFd2tfRWRpdG9yX0NvbW1hbmQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03NDkyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBuZXcgY29tbWFuZHMgZm9yIEV3a19FZGl0b3JfQ29tbWFuZCBlbnVt
IGFuZCBpbnRyb2R1Y2UgbmV3IHRhYmxlIHRvIGtlZXAKKyAgICAgICAgZW51bSBhbmQgc3RyaW5n
IHZhbHVlcyBpbiBzeW5jLgorCisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDogQWRkZWQgYSB0
YWJsZSB3aXRoIEVkaXRvckNvbW1hbmQgc3RydWN0IGVsZW1lbnRzLgorICAgICAgICAoRWRpdG9y
Q29tbWFuZCk6IEFkZGVkIHN0cnVjdHVyZSBjb25zaXN0aW5nIG9mIGVudW0gYW5kIHN0cmluZyB2
YWx1ZS4KKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAgICAgICAoX2V3a192
aWV3X2VkaXRvcl9jb21tYW5kX3N0cmluZ19nZXQpOiBBZGRlZC4KKyAgICAgICAgKGV3a192aWV3
X2VkaXRvcl9jb21tYW5kX2V4ZWN1dGUpOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5oOiBFd2tf
RWRpdG9yX0NvbW1hbmQgZW51bSBleHRlbmRlZC4KKwogMjAxMi0wNS0xMCAgU2hlcmlmZiBCb3Qg
IDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjExNjYzMy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDdhMGVl
MWUuLjM1ZDdmNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMTQ3LDYgKzE0
Nyw3OSBAQCBzdGF0aWMgY29uc3QgRXZhc19TbWFydF9DYl9EZXNjcmlwdGlvbiBfZXdrX3ZpZXdf
Y2FsbGJhY2tfbmFtZXNbXSA9IHsKICAgICB7IDAsIDAgfQogfTsKIAorc3RydWN0IEVkaXRvckNv
bW1hbmQgeworICAgIEV3a19FZGl0b3JfQ29tbWFuZCBld2tFZGl0b3JDb21tYW5kOworICAgIGNv
bnN0IGNoYXIqIGVkaXRvckNvbW1hbmRTdHJpbmc7Cit9OworCisvKioKKyAqIEBicmllZiBBIHRh
YmxlIGdyb3VwaW5nIEV3a19FZGl0b3JfQ29tbWFuZCBlbnVtcyB3aXRoIGNvcnJlc3BvbmRpbmcg
Y29tbWFuZAorICogc3RyaW5ncyB1c2VkIGJ5IFdlYkNvcmU6OkVkaXRvckNvbW1hbmQsIGtlZXBp
bmcgYm90aCBpbiBzeW5jLgorICoKKyAqIEBpbnRlcm5hbAorICovCitzdGF0aWMgY29uc3QgRWRp
dG9yQ29tbWFuZCBlZGl0b3JDb21tYW5kc1tdID0geworICAgIHsgRVdLX0VESVRPUl9DT01NQU5E
X1VORE8sICJVbmRvIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX1JFRE8sICJSZWRvIiB9
LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX1RPR0dMRV9CT0xELCAiVG9nZ2xlQm9sZCIgfSwK
KyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9UT0dHTEVfSVRBTElDLCAiVG9nZ2xlSXRhbGljIiB9
LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX1RPR0dMRV9VTkRFUkxJTkUsICJUb2dnbGVVbmRl
cmxpbmUiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfVE9HR0xFX1NUUklLRVRIUk9VR0gs
ICJTdHJpa2V0aHJvdWdoIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX1RPR0dMRV9TVUJT
Q1JJUFQsICJTdWJTY3JpcHQiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfVE9HR0xFX1NV
UEVSU0NSSVBULCAiU3VwZXJTY3JpcHQiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfSU5E
RU5ULCAiSW5kZW50IiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX09VVERFTlQsICJPdXRk
ZW50IiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9PUkRFUkVETElTVCwgIklu
c2VydE9yZGVyZWRMaXN0IiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9VTk9S
REVSRURMSVNULCAiSW5zZXJ0VW5vcmRlcmVkTGlzdCIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09N
TUFORF9JTlNFUlRfSU1BR0UsICJJbnNlcnRJbWFnZSIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09N
TUFORF9JTlNFUlRfVEVYVCwgIkluc2VydFRleHQiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1B
TkRfSU5TRVJUX0hUTUwsICJJbnNlcnRIVE1MIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5E
X0lOU0VSVF9QQVJBR1JBUEgsICJJbnNlcnRQYXJhZ3JhcGgiIH0sCisgICAgeyBFV0tfRURJVE9S
X0NPTU1BTkRfSU5TRVJUX1BBUkFHUkFQSF9TRVBBUkFUT1IsICJJbnNlcnROZXdMaW5lIiB9LAor
ICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9MSU5FX1NFUEFSQVRPUiwgIkluc2VydExp
bmVCcmVhayIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9CQUNLX0NPTE9SLCAiQmFja0Nv
bG9yIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX0ZPUkVfQ09MT1IsICJGb3JlQ29sb3Ii
IH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfSElMSVRFX0NPTE9SLCAiSGlsaXRlQ29sb3Ii
IH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfRk9OVF9TSVpFLCAiRm9udFNpemUiIH0sCisg
ICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfQUxJR05fQ0VOVEVSLCAiQWxpZ25DZW50ZXIiIH0sCisg
ICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfQUxJR05fSlVTVElGSUVELCAiQWxpZ25KdXN0aWZpZWQi
IH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfQUxJR05fTEVGVCwgIkFsaWduTGVmdCIgfSwK
KyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9BTElHTl9SSUdIVCwgIkFsaWduUmlnaHQiIH0sCisg
ICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19ORVhUX0NIQVIsICJNb3ZlRm9yd2FyZCIg
fSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9NT1ZFX1RPX1BSRVZJT1VTX0NIQVIsICJNb3Zl
QmFja3dhcmQiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19ORVhUX1dPUkQs
ICJNb3ZlV29yZEZvcndhcmQiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19Q
UkVWSU9VU19XT1JELCAiTW92ZVdvcmRCYWNrd2FyZCIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09N
TUFORF9NT1ZFX1RPX05FWFRfTElORSwgIk1vdmVEb3duIiB9LAorICAgIHsgRVdLX0VESVRPUl9D
T01NQU5EX01PVkVfVE9fUFJFVklPVVNfTElORSwgIk1vdmVVcCIgfSwKKyAgICB7IEVXS19FRElU
T1JfQ09NTUFORF9NT1ZFX1RPX0JFR0lOTklOR19PRl9MSU5FLCAiTW92ZVRvQmVnaW5uaW5nT2ZM
aW5lIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fRU5EX09GX0xJTkUsICJN
b3ZlVG9FbmRPZkxpbmUiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19CRUdJ
Tk5JTkdfT0ZfUEFSQUdSQVBILCAiTW92ZVRvQmVnaW5uaW5nT2ZQYXJhZ3JhcGgiIH0sCisgICAg
eyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19FTkRfT0ZfUEFSQUdSQVBILCAiTW92ZVRvRW5k
T2ZQYXJhZ3JhcGgiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19CRUdJTk5J
TkdfT0ZfRE9DVU1FTlQsICJNb3ZlVG9CZWdpbm5pbmdPZkRvY3VtZW50IiB9LAorICAgIHsgRVdL
X0VESVRPUl9DT01NQU5EX01PVkVfVE9fRU5EX09GX0RPQ1VNRU5ULCAiTW92ZVRvRW5kT2ZEb2N1
bWVudCIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfTk9ORSwgIlNlbGVjdE5v
bmUiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX0FMTCwgIlNlbGVjdEFsbCIg
fSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfUEFSQUdSQVBILCAiU2VsZWN0UGFy
YWdyYXBoIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9TRU5URU5DRSwgIlNl
bGVjdFNlbnRlbmNlIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9MSU5FLCAi
U2VsZWN0TGluZSIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfV09SRCwgIlNl
bGVjdFdvcmQiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX05FWFRfQ0hBUiwg
Ik1vdmVGb3J3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uIiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01N
QU5EX1NFTEVDVF9QUkVWSU9VU19DSEFSLCAiTW92ZUJhY2t3YXJkQW5kTW9kaWZ5U2VsZWN0aW9u
IiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9ORVhUX1dPUkQsICJNb3ZlV29y
ZEZvcndhcmRBbmRNb2RpZnlTZWxlY3Rpb24iIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRf
U0VMRUNUX1BSRVZJT1VTX1dPUkQsICJNb3ZlV29yZEJhY2t3YXJkQW5kTW9kaWZ5U2VsZWN0aW9u
IiB9LAorICAgIHsgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9ORVhUX0xJTkUsICJNb3ZlRG93
bkFuZE1vZGlmeVNlbGVjdGlvbiIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1Rf
UFJFVklPVVNfTElORSwgIk1vdmVVcEFuZE1vZGlmeVNlbGVjdGlvbiIgfSwKKyAgICB7IEVXS19F
RElUT1JfQ09NTUFORF9TRUxFQ1RfU1RBUlRfT0ZfTElORSwgIk1vdmVUb0JlZ2lubmluZ09mTGlu
ZUFuZE1vZGlmeVNlbGVjdGlvbiIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1Rf
RU5EX09GX0xJTkUsICJNb3ZlVG9FbmRPZkxpbmVBbmRNb2RpZnlTZWxlY3Rpb24iIH0sCisgICAg
eyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1NUQVJUX09GX1BBUkFHUkFQSCwgIk1vdmVUb0Jl
Z2lubmluZ09mUGFyYWdyYXBoQW5kTW9kaWZ5U2VsZWN0aW9uIiB9LAorICAgIHsgRVdLX0VESVRP
Ul9DT01NQU5EX1NFTEVDVF9FTkRfT0ZfUEFSQUdSQVBILCAiTW92ZVRvRW5kT2ZQYXJhZ3JhcGhB
bmRNb2RpZnlTZWxlY3Rpb24iIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1NU
QVJUX09GX0RPQ1VNRU5ULCAiTW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVj
dGlvbiIgfSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfRU5EX09GX0RPQ1VNRU5U
LCAiTW92ZVRvRW5kT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIgfSwKKyAgICB7IEVXS19F
RElUT1JfQ09NTUFORF9ERUxFVEVfV09SRF9CQUNLV0FSRCwgIkRlbGV0ZVdvcmRCYWNrd2FyZCIg
fSwKKyAgICB7IEVXS19FRElUT1JfQ09NTUFORF9ERUxFVEVfV09SRF9GT1JXQVJELCAiRGVsZXRl
V29yZEZvcndhcmQiIH0sCisgICAgeyBFV0tfRURJVE9SX0NPTU1BTkRfTk9ORSwgMCB9IC8vIEVX
S19FRElUT1JfQ09NTUFORF9OT05FIG11c3QgYmUgdGhlIGxhc3QgZWxlbWVudC4KK307CisKIC8q
KgogICogQGJyaWVmIFByaXZhdGUgZGF0YSB0aGF0IGlzIHVzZWQgaW50ZXJuYWxseSBieSBFRkwg
V2ViS2l0CiAgKiBhbmQgc2hvdWxkIG5ldmVyIGJlIG1vZGlmaWVkIGZyb20gb3V0c2lkZS4KQEAg
LTExNTksNiArMTIzMiwxOCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9lbmFi
bGVfcmVuZGVyKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK3N0YXRpYyBjb25zdCBjaGFyKiBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmRfc3Ry
aW5nX2dldChFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYsIEV3a19FZGl0b3JfQ29tbWFuZCBl
d2tDb21tYW5kKQoreworICAgIHN0YXRpYyBPd25QdHI8RWluYV9IYXNoPiBlZGl0b3JDb21tYW5k
SGFzaDsKKworICAgIGlmICghZWRpdG9yQ29tbWFuZEhhc2gpIHsKKyAgICAgICAgZWRpdG9yQ29t
bWFuZEhhc2ggPSBhZG9wdFB0cihlaW5hX2hhc2hfaW50MzJfbmV3KDApKTsKKyAgICAgICAgZm9y
IChpbnQgaSA9IDA7IGVkaXRvckNvbW1hbmRzW2ldLmV3a0VkaXRvckNvbW1hbmQgIT0gRVdLX0VE
SVRPUl9DT01NQU5EX05PTkU7IGkrKykKKyAgICAgICAgICAgIGVpbmFfaGFzaF9hZGQoZWRpdG9y
Q29tbWFuZEhhc2guZ2V0KCksICZlZGl0b3JDb21tYW5kc1tpXS5ld2tFZGl0b3JDb21tYW5kLCBl
ZGl0b3JDb21tYW5kc1tpXS5lZGl0b3JDb21tYW5kU3RyaW5nKTsKKyAgICB9CisgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGVpbmFfaGFzaF9maW5kKGVkaXRvckNvbW1h
bmRIYXNoLmdldCgpLCAmZXdrQ29tbWFuZCkpOworfQorCiBFaW5hX0Jvb2wgZXdrX3ZpZXdfYmFz
ZV9zbWFydF9zZXQoRXdrX1ZpZXdfU21hcnRfQ2xhc3MqIGFwaSkKIHsKICAgICBFSU5BX1NBRkVU
WV9PTl9OVUxMX1JFVFVSTl9WQUwoYXBpLCBmYWxzZSk7CkBAIC0xNDc2LDM2ICsxNTYxLDE2IEBA
IGNoYXIqIGV3a192aWV3X3NlbGVjdGlvbl9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcp
CiAgICAgcmV0dXJuIHN0cmR1cChzZWxlY3RlZFN0cmluZy5kYXRhKCkpOwogfQogCi1zdGF0aWMg
RWluYV9Cb29sIF9ld2tfdmlld19lZGl0b3JfY29tbWFuZChFd2tfVmlld19Qcml2YXRlX0RhdGEq
IHByaXYsIGNvbnN0IGNoYXIqIGNvbW1hbmQsIGNvbnN0IGNoYXIqIHZhbHVlID0gMCkKLXsKLSAg
ICByZXR1cm4gcHJpdi0+cGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFt
ZSgpLT5lZGl0b3IoKS0+Y29tbWFuZChXVEY6OlN0cmluZzo6ZnJvbVVURjgoY29tbWFuZCkpLmV4
ZWN1dGUoV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKSk7Ci19Ci0KLUVpbmFfQm9vbCBld2tf
dmlld19leGVjdXRlX2VkaXRvcl9jb21tYW5kKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBF
d2tfRWRpdG9yX0NvbW1hbmQgY29tbWFuZCwgY29uc3QgY2hhciogdmFsdWUpCitFaW5hX0Jvb2wg
ZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmRfZXhlY3V0ZShjb25zdCBFdmFzX09iamVjdCogZXdrVmll
dywgY29uc3QgRXdrX0VkaXRvcl9Db21tYW5kIGNvbW1hbmQsIGNvbnN0IGNoYXIqIHZhbHVlKQog
ewogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxz
ZSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFs
c2UpOwogCi0gICAgc3dpdGNoIChjb21tYW5kKSB7Ci0gICAgY2FzZSBFV0tfRURJVE9SX0NPTU1B
TkRfSU5TRVJUX0lNQUdFOgotICAgICAgICByZXR1cm4gX2V3a192aWV3X2VkaXRvcl9jb21tYW5k
KHByaXYsICJJbnNlcnRJbWFnZSIsIHZhbHVlKTsKLSAgICBjYXNlIEVXS19FRElUT1JfQ09NTUFO
RF9JTlNFUlRfVEVYVDoKLSAgICAgICAgcmV0dXJuIF9ld2tfdmlld19lZGl0b3JfY29tbWFuZChw
cml2LCAiSW5zZXJ0VGV4dCIsIHZhbHVlKTsKLSAgICBjYXNlIEVXS19FRElUT1JfQ09NTUFORF9T
RUxFQ1RfTk9ORToKLSAgICAgICAgcmV0dXJuIF9ld2tfdmlld19lZGl0b3JfY29tbWFuZChwcml2
LCAiVW5zZWxlY3QiKTsKLSAgICBjYXNlIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfQUxMOgot
ICAgICAgICByZXR1cm4gX2V3a192aWV3X2VkaXRvcl9jb21tYW5kKHByaXYsICJTZWxlY3RBbGwi
KTsKLSAgICBjYXNlIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfUEFSQUdSQVBIOgotICAgICAg
ICByZXR1cm4gX2V3a192aWV3X2VkaXRvcl9jb21tYW5kKHByaXYsICJTZWxlY3RQYXJhZ3JhcGgi
KTsKLSAgICBjYXNlIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfU0VOVEVOQ0U6Ci0gICAgICAg
IHJldHVybiBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmQocHJpdiwgIlNlbGVjdFNlbnRlbmNlIik7
Ci0gICAgY2FzZSBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX0xJTkU6Ci0gICAgICAgIHJldHVy
biBfZXdrX3ZpZXdfZWRpdG9yX2NvbW1hbmQocHJpdiwgIlNlbGVjdExpbmUiKTsKLSAgICBjYXNl
IEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfV09SRDoKLSAgICAgICAgcmV0dXJuIF9ld2tfdmll
d19lZGl0b3JfY29tbWFuZChwcml2LCAiU2VsZWN0V29yZCIpOwotICAgIGRlZmF1bHQ6CisgICAg
Y29uc3QgY2hhciogY29tbWFuZFN0cmluZyA9IF9ld2tfdmlld19lZGl0b3JfY29tbWFuZF9zdHJp
bmdfZ2V0KHByaXYsIGNvbW1hbmQpOworICAgIGlmICghY29tbWFuZFN0cmluZykKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KKworICAgIHJldHVybiBwcml2LT5wYWdlLT5mb2N1c0NvbnRy
b2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCktPmVkaXRvcigpLT5jb21tYW5kKGNvbW1hbmRT
dHJpbmcpLmV4ZWN1dGUoV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKSk7CiB9CiAKIEVpbmFf
Qm9vbCBld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudChFdmFzX09iamVjdCogZXdr
VmlldywgY29uc3QgRXZhc19FdmVudF9Nb3VzZV9Eb3duKiBkb3duRXZlbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfdmlldy5oCmluZGV4IDk4MjEwZjguLmEwYzE2ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5oCkBAIC0zNzIsNiArMzcyLDcyIEBAIGVudW0gX0V3a19Gb250X0ZhbWlseSB7CiAvLy8g
Q3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgQGEgX0V3a19Gb250X0ZhbWlseS4KIHR5cGVkZWYgZW51
bSBfRXdrX0ZvbnRfRmFtaWx5IEV3a19Gb250X0ZhbWlseTsKIAorLy8vIENvbnRhaW5zIGNvbW1h
bmRzIHRvIGV4ZWN1dGUuCitlbnVtIF9Fd2tfRWRpdG9yX0NvbW1hbmQgeworICAgIEVXS19FRElU
T1JfQ09NTUFORF9OT05FID0gLTEsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1VORE8gPSAwLAor
ICAgIEVXS19FRElUT1JfQ09NTUFORF9SRURPLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9UT0dH
TEVfQk9MRCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfVE9HR0xFX0lUQUxJQywKKyAgICBFV0tf
RURJVE9SX0NPTU1BTkRfVE9HR0xFX1VOREVSTElORSwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRf
VE9HR0xFX1NUUklLRVRIUk9VR0gsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1RPR0dMRV9TVUJT
Q1JJUFQsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1RPR0dMRV9TVVBFUlNDUklQVCwKKyAgICBF
V0tfRURJVE9SX0NPTU1BTkRfSU5ERU5ULAorICAgIEVXS19FRElUT1JfQ09NTUFORF9PVVRERU5U
LAorICAgIEVXS19FRElUT1JfQ09NTUFORF9JTlNFUlRfT1JERVJFRExJU1QsCisgICAgRVdLX0VE
SVRPUl9DT01NQU5EX0lOU0VSVF9VTk9SREVSRURMSVNULAorICAgIEVXS19FRElUT1JfQ09NTUFO
RF9JTlNFUlRfSU1BR0UsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9URVhULAorICAg
IEVXS19FRElUT1JfQ09NTUFORF9JTlNFUlRfSFRNTCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRf
SU5TRVJUX1BBUkFHUkFQSCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfSU5TRVJUX1BBUkFHUkFQ
SF9TRVBBUkFUT1IsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9MSU5FX1NFUEFSQVRP
UiwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfQkFDS19DT0xPUiwKKyAgICBFV0tfRURJVE9SX0NP
TU1BTkRfRk9SRV9DT0xPUiwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfSElMSVRFX0NPTE9SLAor
ICAgIEVXS19FRElUT1JfQ09NTUFORF9GT05UX1NJWkUsCisgICAgRVdLX0VESVRPUl9DT01NQU5E
X0FMSUdOX0NFTlRFUiwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfQUxJR05fSlVTVElGSUVELAor
ICAgIEVXS19FRElUT1JfQ09NTUFORF9BTElHTl9MRUZULAorICAgIEVXS19FRElUT1JfQ09NTUFO
RF9BTElHTl9SSUdIVCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19ORVhUX0NIQVIs
CisgICAgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fUFJFVklPVVNfQ0hBUiwKKyAgICBFV0tf
RURJVE9SX0NPTU1BTkRfTU9WRV9UT19ORVhUX1dPUkQsCisgICAgRVdLX0VESVRPUl9DT01NQU5E
X01PVkVfVE9fUFJFVklPVVNfV09SRCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19O
RVhUX0xJTkUsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX01PVkVfVE9fUFJFVklPVVNfTElORSwK
KyAgICBFV0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19CRUdJTk5JTkdfT0ZfTElORSwKKyAgICBF
V0tfRURJVE9SX0NPTU1BTkRfTU9WRV9UT19FTkRfT0ZfTElORSwKKyAgICBFV0tfRURJVE9SX0NP
TU1BTkRfTU9WRV9UT19CRUdJTk5JTkdfT0ZfUEFSQUdSQVBILAorICAgIEVXS19FRElUT1JfQ09N
TUFORF9NT1ZFX1RPX0VORF9PRl9QQVJBR1JBUEgsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX01P
VkVfVE9fQkVHSU5OSU5HX09GX0RPQ1VNRU5ULAorICAgIEVXS19FRElUT1JfQ09NTUFORF9NT1ZF
X1RPX0VORF9PRl9ET0NVTUVOVCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX05PTkUs
CisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9BTEwsCisgICAgRVdLX0VESVRPUl9DT01N
QU5EX1NFTEVDVF9QQVJBR1JBUEgsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9TRU5U
RU5DRSwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX0xJTkUsCisgICAgRVdLX0VESVRP
Ul9DT01NQU5EX1NFTEVDVF9XT1JELAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfTkVY
VF9DSEFSLAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfUFJFVklPVVNfQ0hBUiwKKyAg
ICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX05FWFRfV09SRCwKKyAgICBFV0tfRURJVE9SX0NP
TU1BTkRfU0VMRUNUX1BSRVZJT1VTX1dPUkQsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVD
VF9ORVhUX0xJTkUsCisgICAgRVdLX0VESVRPUl9DT01NQU5EX1NFTEVDVF9QUkVWSU9VU19MSU5F
LAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfU1RBUlRfT0ZfTElORSwKKyAgICBFV0tf
RURJVE9SX0NPTU1BTkRfU0VMRUNUX0VORF9PRl9MSU5FLAorICAgIEVXS19FRElUT1JfQ09NTUFO
RF9TRUxFQ1RfU1RBUlRfT0ZfUEFSQUdSQVBILAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxF
Q1RfRU5EX09GX1BBUkFHUkFQSCwKKyAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1NUQVJU
X09GX0RPQ1VNRU5ULAorICAgIEVXS19FRElUT1JfQ09NTUFORF9TRUxFQ1RfRU5EX09GX0RPQ1VN
RU5ULAorICAgIEVXS19FRElUT1JfQ09NTUFORF9ERUxFVEVfV09SRF9CQUNLV0FSRCwKKyAgICBF
V0tfRURJVE9SX0NPTU1BTkRfREVMRVRFX1dPUkRfRk9SV0FSRAorfTsKKworLy8vIENyZWF0ZXMg
YSB0eXBlIG5hbWUgZm9yIEBhIF9Fd2tfRWRpdG9yX0NvbW1hbmQuCit0eXBlZGVmIGVudW0gX0V3
a19FZGl0b3JfQ29tbWFuZCBFd2tfRWRpdG9yX0NvbW1hbmQ7CisKIC8qKgogICogQGJyaWVmIENy
ZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEBhIF9Fd2tfVGlsZV9VbnVzZWRfQ2FjaGUuCiAgKgpAQCAt
NzQ4LDIwICs4MTQsNiBAQCBFQVBJIGNoYXIgICAgICAgICpld2tfdmlld19zZWxlY3Rpb25fZ2V0
KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKICAqLwogRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdf
Y29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQoRXZhc19PYmplY3QgKm8sIGNvbnN0IEV2YXNfRXZl
bnRfTW91c2VfRG93biAqZXYpOwogCi0vLy8gQ29udGFpbnMgY29tbWFuZHMgdG8gZXhlY3V0ZS4K
LWVudW0gX0V3a19FZGl0b3JfQ29tbWFuZCB7Ci0gICAgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VS
VF9JTUFHRSA9IDAsCi0gICAgRVdLX0VESVRPUl9DT01NQU5EX0lOU0VSVF9URVhULAotICAgIEVX
S19FRElUT1JfQ09NTUFORF9TRUxFQ1RfTk9ORSwKLSAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VM
RUNUX0FMTCwKLSAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1BBUkFHUkFQSCwKLSAgICBF
V0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1NFTlRFTkNFLAotICAgIEVXS19FRElUT1JfQ09NTUFO
RF9TRUxFQ1RfTElORSwKLSAgICBFV0tfRURJVE9SX0NPTU1BTkRfU0VMRUNUX1dPUkQKLX07Ci0v
Ly8gQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgQGEgX0V3a19FZGl0b3JfQ29tbWFuZC4KLXR5cGVk
ZWYgZW51bSBfRXdrX0VkaXRvcl9Db21tYW5kIEV3a19FZGl0b3JfQ29tbWFuZDsKLQogLyoqCiAg
KiBFeGVjdXRlcyBlZGl0b3IgY29tbWFuZC4KICAqCkBAIC03NzEsNyArODIzLDcgQEAgdHlwZWRl
ZiBlbnVtIF9Fd2tfRWRpdG9yX0NvbW1hbmQgRXdrX0VkaXRvcl9Db21tYW5kOwogICoKICAqIEBy
ZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3Mgb3IgQGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJl
CiAgKi8KLUVBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X2V4ZWN1dGVfZWRpdG9yX2NvbW1hbmQo
RXZhc19PYmplY3QgKm8sIGNvbnN0IEV3a19FZGl0b3JfQ29tbWFuZCBjb21tYW5kLCBjb25zdCBj
aGFyICp2YWx1ZSk7CitFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19lZGl0b3JfY29tbWFuZF9l
eGVjdXRlKGNvbnN0IEV2YXNfT2JqZWN0ICpvLCBjb25zdCBFd2tfRWRpdG9yX0NvbW1hbmQgY29t
bWFuZCwgY29uc3QgY2hhciAqdmFsdWUpOwogCiAvKioKICAqIERlc3Ryb3lzIGEgcHJldmlvdXNs
eSBjcmVhdGVkIGNvbG9yIGNob29zZXIuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>