<?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>19456</bug_id>
          
          <creation_ts>2008-06-09 19:56:57 -0700</creation_ts>
          <short_desc>[GTK] Editing capabilities</short_desc>
          <delta_ts>2013-10-03 14:42:21 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>15616</dependson>
          <blocked>35351</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alp Toker">alp</reporter>
          <assigned_to name="Christian Dywan">christian</assigned_to>
          <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fejj</cc>
    
    <cc>jonathon</cc>
    
    <cc>mbarnes</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pachoramos1</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>82784</commentid>
    <comment_count>0</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-06-09 19:56:57 -0700</bug_when>
    <thetext>We provide web_view_get/set_editable() but HTML composers need more convenience API which we need to support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82788</commentid>
    <comment_count>1</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-06-09 20:11:34 -0700</bug_when>
    <thetext>The Evolution email client&apos;s composer is a good place to look for inspiration.

The important things we can learn from it:

gtkhtml_editor_run_command()

^ For running editor commands. We have this in WebKit but the command strings may be different.

gtkhtml_editor_get_action()
gtkhtml_editor_get_ui_manager()

^ For hooking up UI actions directly to the composer.

gtkhtml_editor_get_html()
gtkhtml_editor_set_html()

^ For accessing the full content.

gtkhtml_editor_get_paragraph_data()
gtkhtml_editor_set_paragraph_data()

^ For accessing individual paragraph contents(?)

It will also be important to hook up Undo/Redo for editing, which is available in WebKit but not yet hooked up in the GTK+ port. Note the ability to group editing actions and label them in undo history.

Other things to note are the spell checking support and smiley conversion (we should make it easy for this kind of cute feature to be implemented directly in the app since it doesn&apos;t really belong in the widget).

Another interesting design decision is that the editor is a subclass of the HTML widget. It might be worth doing this kind of separation over WebView.

See also:
http://www.go-evolution.org/New_Composer

Grep of gtkhtml use in the composer:

gnome/evolution/composer$ grep gtkhtml_ *
e-composer-actions.c:	response = gtkhtml_editor_file_chooser_dialog_run (
e-composer-actions.c:	if (!gtkhtml_editor_get_changed (editor) &amp;&amp;
e-composer-actions.c:	gtkhtml_editor_set_changed (editor, TRUE);
e-composer-actions.c:	gtkhtml_editor_set_changed (editor, TRUE);
e-composer-actions.c:	filename = gtkhtml_editor_get_filename (editor);
e-composer-actions.c:	if (!gtkhtml_editor_save (editor, filename, TRUE, &amp;error)) {
e-composer-actions.c:	gtkhtml_editor_run_command (GTKHTML_EDITOR (composer), &quot;saved&quot;);
e-composer-actions.c:	response = gtkhtml_editor_file_chooser_dialog_run (
e-composer-actions.c:	gtkhtml_editor_set_filename (GTKHTML_EDITOR (composer), filename);
e-composer-actions.c:	gtkhtml_editor_set_changed (editor, TRUE);
e-composer-actions.c:	gtkhtml_editor_set_changed (editor, TRUE);
e-composer-actions.c:	manager = gtkhtml_editor_get_ui_manager (GTKHTML_EDITOR (composer));
e-composer-actions.h:	(gtkhtml_editor_get_action (GTKHTML_EDITOR (composer), (name)))
e-composer-autosave.c:	if (!gtkhtml_editor_get_changed (editor))
e-composer-autosave.c:	gtkhtml_editor_set_changed (editor, FALSE);
e-composer-private.c:	manager = gtkhtml_editor_get_ui_manager (GTKHTML_EDITOR (composer));
e-composer-private.c:	manager = gtkhtml_editor_get_ui_manager (GTKHTML_EDITOR (composer));
e-composer-private.c:	manager = gtkhtml_editor_get_ui_manager (editor);
e-msg-composer.c:		text = gtkhtml_editor_get_text_plain (editor, &amp;length);
e-msg-composer.c:			gtkhtml_editor_run_command (editor, &quot;save-data-on&quot;);
e-msg-composer.c:		text = gtkhtml_editor_get_text_html (editor, &amp;length);
e-msg-composer.c:			gtkhtml_editor_run_command (editor, &quot;save-data-off&quot;);
e-msg-composer.c:	gtkhtml_editor_set_text_html (GTKHTML_EDITOR (composer), body, -1);
e-msg-composer.c:	gtkhtml_editor_set_changed (editor, TRUE);
e-msg-composer.c:		gtkhtml_editor_set_inline_spelling (editor, enable);
e-msg-composer.c:		gtkhtml_editor_set_magic_links (editor, enable);
e-msg-composer.c:		gtkhtml_editor_set_magic_smileys (editor, enable);
e-msg-composer.c:	gtkhtml_editor_set_changed (editor, TRUE);
e-msg-composer.c:	gtkhtml_editor_set_html_mode (GTKHTML_EDITOR (composer), active);
e-msg-composer.c:		language = gtkhtml_spell_language_lookup (language_code);
e-msg-composer.c:	gtkhtml_editor_set_spell_languages (
e-msg-composer.c:	gtkhtml_editor_run_command (GTKHTML_EDITOR (widget), &quot;grab-focus&quot;);
e-msg-composer.c:		gtkhtml_editor_run_command (
e-msg-composer.c:	data = gtkhtml_editor_get_paragraph_data (editor, &quot;orig&quot;);
e-msg-composer.c:		gtkhtml_editor_run_command (editor, &quot;text-default-color&quot;);
e-msg-composer.c:		gtkhtml_editor_run_command (editor, &quot;italic-off&quot;);
e-msg-composer.c:	data = gtkhtml_editor_get_paragraph_data (editor, &quot;signature&quot;);
e-msg-composer.c:		gtkhtml_editor_run_command (editor, &quot;text-default-color&quot;);
e-msg-composer.c:		gtkhtml_editor_run_command (editor, &quot;italic-off&quot;);
e-msg-composer.c:	gtkhtml_editor_run_command (editor, &quot;italic-off&quot;);
e-msg-composer.c:	data = gtkhtml_editor_get_paragraph_data (editor, &quot;orig&quot;);
e-msg-composer.c:	gtkhtml_editor_set_paragraph_data (editor, &quot;orig&quot;, &quot;0&quot;);
e-msg-composer.c:	data = gtkhtml_editor_get_paragraph_data (editor, &quot;signature&quot;);
e-msg-composer.c:	if (gtkhtml_editor_is_paragraph_empty (editor))
e-msg-composer.c:		gtkhtml_editor_set_paragraph_data (editor, &quot;signature&quot; ,&quot;0&quot;);
e-msg-composer.c:	else if (gtkhtml_editor_is_previous_paragraph_empty (editor) &amp;&amp;
e-msg-composer.c:		gtkhtml_editor_run_command (editor, &quot;cursor-backward&quot;)) {
e-msg-composer.c:		gtkhtml_editor_set_paragraph_data (editor, &quot;signature&quot;, &quot;0&quot;);
e-msg-composer.c:		gtkhtml_editor_run_command (editor, &quot;cursor-forward&quot;);
e-msg-composer.c:	gtkhtml_editor_run_command (editor, &quot;text-default-color&quot;);
e-msg-composer.c:	gtkhtml_editor_run_command (editor, &quot;italic-off&quot;);
e-msg-composer.c:	if (!gtkhtml_editor_is_paragraph_empty (editor))
e-msg-composer.c:	data = gtkhtml_editor_get_paragraph_data (editor, &quot;orig&quot;);
e-msg-composer.c:		gtkhtml_editor_set_paragraph_data (editor, &quot;orig&quot;, &quot;0&quot;);
e-msg-composer.c:		gtkhtml_editor_run_command (editor, &quot;indent-zero&quot;);
e-msg-composer.c:		gtkhtml_editor_run_command (editor, &quot;style-normal&quot;);
e-msg-composer.c:		gtkhtml_editor_run_command (editor, &quot;text-default-color&quot;);
e-msg-composer.c:		gtkhtml_editor_run_command (editor, &quot;italic-off&quot;);
e-msg-composer.c:		gtkhtml_editor_run_command (editor, &quot;insert-paragraph&quot;);
e-msg-composer.c:		gtkhtml_editor_run_command (editor, &quot;delete-back&quot;);
e-msg-composer.c:	data = gtkhtml_editor_get_paragraph_data (editor, &quot;signature&quot;);
e-msg-composer.c:		gtkhtml_editor_set_paragraph_data (editor, &quot;signature&quot;, &quot;0&quot;);
e-msg-composer.c:	html = gtkhtml_editor_get_html (editor);
e-msg-composer.c:		gtkhtml_editor_get_html (editor), stream,
e-msg-composer.c:	html = gtkhtml_editor_get_html (editor);
e-msg-composer.c:	manager = gtkhtml_editor_get_ui_manager (editor);
e-msg-composer.c:	gtkhtml_editor_set_changed (editor, FALSE);
e-msg-composer.c:	if (!gtkhtml_editor_search_by_data (editor, 1, &quot;ClueFlow&quot;, &quot;signature&quot;, &quot;1&quot;))
e-msg-composer.c:	data = gtkhtml_editor_get_paragraph_data (editor, &quot;signature_name&quot;);
e-msg-composer.c:				gtkhtml_editor_set_html_mode (
e-msg-composer.c:				gtkhtml_editor_set_html_mode (
e-msg-composer.c:	gtkhtml_editor_run_command (editor, &quot;editable-off&quot;);
e-msg-composer.c:	gtkhtml_editor_set_changed (editor, FALSE);
e-msg-composer.c:	html_content = gtkhtml_editor_get_html_mode (editor);
e-msg-composer.c:	gtkhtml_editor_set_html_mode (GTKHTML_EDITOR (composer), FALSE);
e-msg-composer.c:	html_content = gtkhtml_editor_get_html_mode (editor);
e-msg-composer.c:	html_content = gtkhtml_editor_get_html_mode (editor);
e-msg-composer.c:	html_content = gtkhtml_editor_get_html_mode (editor);
e-msg-composer.c:	html = gtkhtml_editor_get_html (editor);
e-msg-composer.c:	gtkhtml_editor_freeze (editor);
e-msg-composer.c:	gtkhtml_editor_run_command (editor, &quot;cursor-position-save&quot;);
e-msg-composer.c:	gtkhtml_editor_undo_begin (editor, &quot;Set signature&quot;, &quot;Reset signature&quot;);
e-msg-composer.c:	gtkhtml_editor_run_command (editor, &quot;block-selection&quot;);
e-msg-composer.c:	gtkhtml_editor_run_command (editor, &quot;cursor-bod&quot;);
e-msg-composer.c:	if (gtkhtml_editor_search_by_data (editor, 1, &quot;ClueFlow&quot;, &quot;signature&quot;, &quot;1&quot;)) {
e-msg-composer.c:		gtkhtml_editor_run_command (editor, &quot;select-paragraph&quot;);
e-msg-composer.c:		gtkhtml_editor_run_command (editor, &quot;delete&quot;);
e-msg-composer.c:		gtkhtml_editor_set_paragraph_data (editor, &quot;signature&quot;, &quot;0&quot;);
e-msg-composer.c:		gtkhtml_editor_run_command (editor, &quot;delete-back&quot;);
e-msg-composer.c:	gtkhtml_editor_run_command (editor, &quot;unblock-selection&quot;);
e-msg-composer.c:		gtkhtml_editor_run_command (editor, &quot;insert-paragraph&quot;);
e-msg-composer.c:		if (!gtkhtml_editor_run_command (editor, &quot;cursor-backward&quot;))
e-msg-composer.c:			gtkhtml_editor_run_command (editor, &quot;insert-paragraph&quot;);
e-msg-composer.c:			gtkhtml_editor_run_command (editor, &quot;cursor-forward&quot;);
e-msg-composer.c:		gtkhtml_editor_set_paragraph_data (editor, &quot;orig&quot;, &quot;0&quot;);
e-msg-composer.c:		gtkhtml_editor_run_command (editor, &quot;indent-zero&quot;);
e-msg-composer.c:		gtkhtml_editor_run_command (editor, &quot;style-normal&quot;);
e-msg-composer.c:		gtkhtml_editor_insert_html (editor, html_text);
e-msg-composer.c:	gtkhtml_editor_undo_end (editor);
e-msg-composer.c:	gtkhtml_editor_run_command (editor, &quot;cursor-position-restore&quot;);
e-msg-composer.c:	gtkhtml_editor_thaw (editor);
e-msg-composer.c:	text = gtkhtml_editor_get_text_plain (editor, &amp;length);
e-msg-composer.c:	gtkhtml_editor_set_html_mode (editor, !alt);
e-msg-composer.c:	if (!gtkhtml_editor_is_paragraph_empty (editor)) {
e-msg-composer.c:		if (gtkhtml_editor_is_previous_paragraph_empty (editor))
e-msg-composer.c:			gtkhtml_editor_run_command (editor, &quot;cursor-backward&quot;);
e-msg-composer.c:			gtkhtml_editor_run_command (editor, &quot;text-default-color&quot;);
e-msg-composer.c:			gtkhtml_editor_run_command (editor, &quot;italic-off&quot;);
e-msg-composer.c:			gtkhtml_editor_run_command (editor, &quot;insert-paragraph&quot;);
e-msg-composer.c:	gtkhtml_editor_run_command (editor, &quot;style-normal&quot;);
e-msg-composer.c:	gtkhtml_editor_run_command (editor, &quot;indent-zero&quot;);
e-msg-composer.c:	gtkhtml_editor_run_command (editor, &quot;text-default-color&quot;);
e-msg-composer.c:	gtkhtml_editor_run_command (editor, &quot;italic-off&quot;);
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84612</commentid>
    <comment_count>2</comment_count>
    <who name="Matthew Barnes">mbarnes</who>
    <bug_when>2008-06-27 19:29:15 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; gtkhtml_editor_get_paragraph_data()
&gt; gtkhtml_editor_set_paragraph_data()
&gt; 
&gt; ^ For accessing individual paragraph contents(?)

I think this is for tagging paragraphs with metadata, such as whether it&apos;s a signature paragraph or not.  Evolution treats signature paragraphs special.


&gt; Other things to note are the spell checking support and smiley conversion (we
&gt; should make it easy for this kind of cute feature to be implemented directly 
&gt; in the app since it doesn&apos;t really belong in the widget).

If WebKit could not try to implement spell checking itself but just provide a suitable virtual API to subclass and the ability to mark misspellings, that would be preferable.


&gt; Another interesting design decision is that the editor is a subclass of the
&gt; HTML widget. It might be worth doing this kind of separation over WebView.

To clarify, the HTML editor is just a GtkWindow and contains a GtkHTML instance.  Evolution&apos;s message composer is a subclass of the HTML editor window.  I anticipate swapping the GtkHTML instance for a WebView instance without changing the fundamental design.


Also, does WebKit have the capacity to convert HTML content to plain text and vice versa?  GtkHtml has such a converter but it may need some updating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173092</commentid>
    <comment_count>3</comment_count>
      <attachid>45136</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2009-12-18 03:09:13 -0800</bug_when>
    <thetext>Created attachment 45136
Implement webkit_web_view_execute_command and command-executed signal

This adds a function to execute commands, such as to make text bold, move text and other things. I&apos;m not sure what the best way to document it is. I guess the documentation should list commands... if you agree with the functionality I intend to look into documenting it.

Use cases:
Implement custom context menu
Keep a history of executed commands
Execute commands with custom key bindings
Prevent commands to restrict text editing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173094</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-18 03:13:59 -0800</bug_when>
    <thetext>Attachment 45136 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp:483:  Extra space before ( in function call  [whitespace/parens] [4]
WebKit/gtk/webkit/webkitwebview.cpp:2117:  Use 0 instead of NULL.  [readability/null] [5]
WebKit/gtk/webkit/webkitwebview.cpp:3941:  webkit_web_view_execute_command is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKit/gtk/webkit/webkitwebview.cpp:3948:  Extra space before ( in function call  [whitespace/parens] [4]
WebKit/gtk/webkit/webkitwebview.h:360:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173115</commentid>
    <comment_count>5</comment_count>
      <attachid>45143</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2009-12-18 04:24:54 -0800</bug_when>
    <thetext>Created attachment 45143
Implement webkit_web_view_execute_command, command-executed, catch internal commands

I updated the patch since I noticed that commands coming from WebCore, ie. through Javascript were not handled at all. So I added a shouldExecuteCommand to EditorClient.

One remaining issue: for some reason internal commands have no command names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173116</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-18 04:26:37 -0800</bug_when>
    <thetext>Attachment 45143 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp:109:  Extra space before ( in function call  [whitespace/parens] [4]
WebKit/gtk/webkit/webkitwebview.cpp:2118:  Use 0 instead of NULL.  [readability/null] [5]
WebKit/gtk/webkit/webkitwebview.cpp:3946:  webkit_web_view_execute_command is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKit/gtk/webkit/webkitwebview.h:360:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175608</commentid>
    <comment_count>7</comment_count>
      <attachid>45143</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-12-29 09:48:33 -0800</bug_when>
    <thetext>Comment on attachment 45143
Implement webkit_web_view_execute_command, command-executed, catch internal commands

&gt; +#if PLATFORM(GTK)
&gt; +     if (!m_frame-&gt;editor()-&gt;client()-&gt;shouldExecuteCommand(m_command-&gt;value (m_frame.get(), triggeringEvent)))
&gt; +        return false;
&gt; +#endif

Indentation seems off. I think we should not make this gtk-specific. Just add a call to shouldExecuteCommand, and make the default implementation for all ports except ours be return true;

&gt; +
&gt; +#if PLATFORM(GTK)
&gt; +    virtual bool shouldExecuteCommand(const String&amp;) = 0;
&gt; +#endif

Same here. Just add the function, and make sure to add it to all the ports.

&gt; +    /**
&gt; +     * WebKitWebView::command-executed:

Perhaps we should name this editor-command, and get away with the &apos;executed&apos; part? The command has not really been executed yet - it will be.

&gt; +     * Since: 1.1.14

1.1.19, I guess =)

&gt; +    webkit_web_view_signals[RESOURCE_REQUEST_STARTING] = g_signal_new(&quot;command-executed&quot;,

wrong index

&gt; +/**
&gt; + * webkit_web_view_execute_command:

I don&apos;t like &apos;execute_command&apos;. It is too generic, and it&apos;s not really easy to figure out what we are talking about. I would prefer webkit_web_view_execute_editor_command, or editing_command.

&gt; + * @web_view: a #WebKitWebView
&gt; + * @command: a command string
&gt; + *
&gt; + * Executes the specified command, if possible.

What makes it not possible? We should document that the command will be executed in the focused frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352023</commentid>
    <comment_count>8</comment_count>
      <attachid>82624</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2011-02-16 06:26:08 -0800</bug_when>
    <thetext>Created attachment 82624
Implement webkit_web_view_execute_editor_command and editor-command-executed

(In reply to comment #7)
&gt; Indentation seems off. I think we should not make this gtk-specific. Just add a call to shouldExecuteCommand, and make the default implementation for all ports except ours be return true;

I removed the platform guards now.

&gt; Perhaps we should name this editor-command, and get away with the &apos;executed&apos; part? The command has not really been executed yet - it will be.

I renamed the signal &quot;editor-command&quot; and documented that it is called *before* execution.

&gt; &gt; +    webkit_web_view_signals[RESOURCE_REQUEST_STARTING] = g_signal_new(&quot;command-executed&quot;,

Fixed.

&gt; I don&apos;t like &apos;execute_command&apos;. It is too generic, and it&apos;s not really easy to figure out what we are talking about. I would prefer webkit_web_view_execute_editor_command, or editing_command.

Renamed the function to execute_editor_command() taking two string arguments. The second string argument depends on the command, for example an URL for insertImage, createLink.

&gt; &gt; + * @web_view: a #WebKitWebView
&gt; &gt; + * @command: a command string
&gt; &gt; + *
&gt; &gt; + * Executes the specified command, if possible.
&gt; 
&gt; What makes it not possible? We should document that the command will be executed in the focused frame.

I gave insertImage and ToggleBold as examples of failure. It fails if there is no selection, because that is what the change applies to.

I listed useful commands there, the list is not complete and mostly based on most likely useful commands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352024</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-16 06:27:49 -0800</bug_when>
    <thetext>Attachment 82624 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit/gtk/webkit/webkitwebview.h:387:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WebKit/gtk/webkit/webkitwebview.h:387:  WEBKIT_API should only appear in the chromium public directory.  [readability/webkit_api] [5]
Source/WebKit/gtk/webkit/webkitwebview.h:387:  The parameter name &quot;web_view&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp:275:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 4 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352026</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-16 06:30:19 -0800</bug_when>
    <thetext>Attachment 82624 did not build on chromium:
Build output: http://queues.webkit.org/results/7917350</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352027</commentid>
    <comment_count>11</comment_count>
      <attachid>82625</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2011-02-16 06:31:35 -0800</bug_when>
    <thetext>Created attachment 82625
Implement webkit_web_view_execute_editor_command and editor-command-executed

My apologies, the previous patch was not quite uptodate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352028</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-16 06:32:35 -0800</bug_when>
    <thetext>Attachment 82625 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Tools/GtkLauncher/main.c:238:  Extra space before ( in function call  [whitespace/parens] [4]
Tools/GtkLauncher/main.c:242:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WebKit/gtk/webkit/webkitwebview.h:387:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WebKit/gtk/webkit/webkitwebview.h:387:  WEBKIT_API should only appear in the chromium public directory.  [readability/webkit_api] [5]
Source/WebKit/gtk/webkit/webkitwebview.h:387:  The parameter name &quot;web_view&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp:275:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 6 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352029</commentid>
    <comment_count>13</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-16 06:36:06 -0800</bug_when>
    <thetext>Attachment 82624 did not build on qt:
Build output: http://queues.webkit.org/results/7926222</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352032</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-16 06:41:16 -0800</bug_when>
    <thetext>Attachment 82625 did not build on chromium:
Build output: http://queues.webkit.org/results/7920279</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352036</commentid>
    <comment_count>15</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-16 06:45:14 -0800</bug_when>
    <thetext>Attachment 82625 did not build on qt:
Build output: http://queues.webkit.org/results/7927169</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352043</commentid>
    <comment_count>16</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-16 07:07:39 -0800</bug_when>
    <thetext>Attachment 82625 did not build on win:
Build output: http://queues.webkit.org/results/7918303</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352071</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-16 07:55:59 -0800</bug_when>
    <thetext>Attachment 82625 did not build on chromium:
Build output: http://queues.webkit.org/results/7927190</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352125</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-16 09:13:21 -0800</bug_when>
    <thetext>Attachment 82625 did not build on mac:
Build output: http://queues.webkit.org/results/7927207</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353206</commentid>
    <comment_count>19</comment_count>
      <attachid>82625</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-02-17 15:26:02 -0800</bug_when>
    <thetext>Comment on attachment 82625
Implement webkit_web_view_execute_editor_command and editor-command-executed

r- for the build breaks and style issues. Do you mind checking if the editing delegate signals added not so long ago fulfill your requirements instead of adding a new signal?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353527</commentid>
    <comment_count>20</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2011-02-18 04:31:33 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 82625 [details])
&gt; r- for the build breaks and style issues. Do you mind checking if the editing delegate signals added not so long ago fulfill your requirements instead of adding a new signal?

&quot;should-begin-editing&quot;
&quot;should-end-editing&quot;
&quot;should-insert-node&quot;
&quot;should-insert-text&quot;
&quot;should-delete-range&quot;
&quot;should-change-selected-range&quot;
&quot;should-apply-style&quot;
&quot;user-changed-contents&quot;
&quot;editing-ended&quot;
&quot;selection-changed&quot;

All of them are key binding/ action signals, first wins. That means I can&apos;t intercept changes individually. And as far as I see, I can&apos;t see what changed, it only tells me that something changed. Please correct me if I&apos;m wrong here.

Let&apos;s take an example: I want to prevent users from making text bold or italic. Control+B and Control+I allow that even if I don&apos;t provide any buttons. So I need a signal to catch the style change and prevent it. I still want to allow normal editing commands of course, so I can&apos;t use a first_wins signal.

I also don&apos;t want users to affect text I previously styled as a quotation, so I need to prevent colour changes. To be exact, cursor information would be useful for that which my proposed signal doesn&apos;t solve yet.

I would appreciate thoughts on solving these use cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935988</commentid>
    <comment_count>21</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-10-03 14:42:21 -0700</bug_when>
    <thetext>We have the ability to execute commands now (WebKit2, at least) and we have DOM bindings for complicated things. Perhaps we can reopen this when we have a better understanding of a usecase we don&apos;t support.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45136</attachid>
            <date>2009-12-18 03:09:13 -0800</date>
            <delta_ts>2009-12-18 04:24:54 -0800</delta_ts>
            <desc>Implement webkit_web_view_execute_command and command-executed signal</desc>
            <filename>executecommand.diff</filename>
            <type>text/plain</type>
            <size>5259</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
aW5kZXggZTQ2NGVlNy4uNmUwNGNkYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAwOS0xMi0xOCAg
Q2hyaXN0aWFuIER5d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBFZGl0aW5nIGNhcGFiaWxp
dGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0
NTYKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6IEhhbmRsZSBj
b21tYW5kLWV4ZWN1dGVkLgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19leGVjdXRlX2NvbW1hbmQpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3Lmg6
IEltcGxlbWVudCB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9jb21tYW5kCisgICAgICAgICogd2Vi
a2l0bWFyc2hhbC5saXN0OgorCiAyMDA5LTEyLTE3ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxn
dXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhh
biBMb3Blei4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNw
cAppbmRleCA2ZWM2YmFmLi5iNjM0Mjk0IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRHdGsuY3BwCkBAIC00NzksNiArNDc5LDEyIEBAIHZvaWQgRWRpdG9yQ2xp
ZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogCiAgICAgY29u
c3QgZ2NoYXIqIGVkaXRvckNvbW1hbmRTdHJpbmcgPSBpbnRlcnByZXRFZGl0b3JDb21tYW5kS2V5
RXZlbnQoZXZlbnQpOwogICAgIGlmIChlZGl0b3JDb21tYW5kU3RyaW5nKSB7CisgICAgICAgIGdi
b29sZWFuIGhhbmRsZWQ7CisgICAgICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSAobV93ZWJWaWV3
LCAiY29tbWFuZC1leGVjdXRlZCIsIGtpdChmcmFtZSksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZWRpdG9yQ29tbWFuZFN0cmluZywgJmhhbmRsZWQpOworICAgICAgICBpZiAoaGFu
ZGxlZCkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBFZGl0b3I6OkNvbW1hbmQgY29t
bWFuZCA9IGZyYW1lLT5lZGl0b3IoKS0+Y29tbWFuZChlZGl0b3JDb21tYW5kU3RyaW5nKTsKIAog
ICAgICAgICAvLyBPbiBlZGl0b3IgY29tbWFuZHMgZnJvbSBrZXkgZG93biBldmVudHMsIHdlIG9u
bHkgd2FudCB0byBsZXQgdGhlIGV2ZW50IGJ1YmJsZSB1cCB0bwpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcAppbmRleCBiOWM3MGM2Li5mMjJhMzVkIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcApAQCAtMTUzLDYgKzE1Myw3IEBAIGVudW0gewogICAgIFJFRE8sCiAgICAgREFU
QUJBU0VfUVVPVEFfRVhDRUVERUQsCiAgICAgUkVTT1VSQ0VfUkVRVUVTVF9TVEFSVElORywKKyAg
ICBDT01NQU5EX0VYRUNVVEVELAogICAgIExBU1RfU0lHTkFMCiB9OwogCkBAIC0yMDk0LDYgKzIw
OTUsMzEgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoV2ViS2l0V2Vi
Vmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICAgICAgICBXRUJLSVRfVFlQRV9ORVRXT1JL
X1JFUVVFU1QsCiAgICAgICAgICAgICBXRUJLSVRfVFlQRV9ORVRXT1JLX1JFU1BPTlNFKTsKIAor
ICAgIC8qKgorICAgICAqIFdlYktpdFdlYlZpZXc6OmNvbW1hbmQtZXhlY3V0ZWQ6CisgICAgICog
QHdlYl92aWV3OiB0aGUgb2JqZWN0IHdoaWNoIHJlY2VpdmVkIHRoZSBzaWduYWwKKyAgICAgKiBA
d2ViX2ZyYW1lOiB0aGUgI1dlYktpdFdlYkZyYW1lIGFmZmVjdGVkIGJ5IHRoZSBjb21tYW5kCisg
ICAgICogQGNvbW1hbmQ6IHRoZSBjb21tYW5kIHN0cmluZworICAgICAqCisgICAgICogRW1pdHRl
ZCB3aGVuIGEgY29tbWFuZCBpcyBleGVjdXRlZCBvbiB0aGUgQHdlYl9mcmFtZSwgc3VjaAorICAg
ICAqIGFzIHdoZW4gdGhlIHVzZXIgdXNlcyBhIGhvdGtleSwgdGhlIGNvbnRleHQgbWVudSBvcgor
ICAgICAqIHdlYmtpdF93ZWJfdmlld19leGVjdXRlX2NvbW1hbmQoKSBpcyB1c2VkLgorICAgICAq
CisgICAgICogUmV0dXJuICVUUlVFIGlmIHlvdSB3YW50IHRvIGNhbmNlbCB0aGUgY29tbWFuZC4K
KyAgICAgKgorICAgICAqIFNpbmNlOiAxLjEuMTQKKyAgICAgKi8KKyAgICB3ZWJraXRfd2ViX3Zp
ZXdfc2lnbmFsc1tSRVNPVVJDRV9SRVFVRVNUX1NUQVJUSU5HXSA9IGdfc2lnbmFsX25ldygiY29t
bWFuZC1leGVjdXRlZCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xh
c3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJ
R05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIHdlYmtpdF9zaWduYWxf
YWNjdW11bGF0b3Jfb2JqZWN0X2hhbmRsZWQsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAg
ICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fT0JKRUNUX09CSkVDVF9TVFJJTkcsCisgICAgICAg
ICAgICBHX1RZUEVfQk9PTEVBTiwgMiwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9GUkFN
RSwKKyAgICAgICAgICAgIEdfVFlQRV9TVFJJTkcpOworCiAgICAgLyoKICAgICAgKiBpbXBsZW1l
bnRhdGlvbnMgb2YgdmlydHVhbCBtZXRob2RzCiAgICAgICovCkBAIC0zOTAzLDYgKzM5MjksMjgg
QEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVkbyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAg
ICAgICBnX3NpZ25hbF9lbWl0KHdlYlZpZXcsIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1JFRE9d
LCAwKTsKIH0KIAorLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9jb21tYW5kOgorICog
QHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3CisgKiBAY29tbWFuZDogYSBjb21tYW5kIHN0cmlu
ZworICoKKyAqIEV4ZWN1dGVzIHRoZSBzcGVjaWZpZWQgY29tbWFuZCwgaWYgcG9zc2libGUuCisg
KgorICogU2luY2U6IDEuMS4xOAorICovCitnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0
ZV9jb21tYW5kKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyKiBjb21tYW5kKQor
eworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwg
RkFMU0UpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvbW1hbmQsIEZBTFNFKTsKKworICAg
IEZyYW1lKiBmcmFtZSA9IGNvcmUod2ViVmlldyktPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2Vk
T3JNYWluRnJhbWUoKTsKKyAgICBnYm9vbGVhbiBoYW5kbGVkOworICAgIGdfc2lnbmFsX2VtaXQg
KHdlYlZpZXcsIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW0NPTU1BTkRfRVhFQ1VURURdLCAwLCBr
aXQoZnJhbWUpLCBjb21tYW5kLCAmaGFuZGxlZCk7CisKKyAgICBpZiAoIWhhbmRsZWQpCisgICAg
ICAgIHJldHVybiBmcmFtZS0+ZWRpdG9yKCktPmNvbW1hbmQoY29tbWFuZCkuZXhlY3V0ZSgpID8g
VFJVRSA6IEZBTFNFOworICAgIHJldHVybiBGQUxTRTsKK30KIAogLyoqCiAgKiB3ZWJraXRfd2Vi
X3ZpZXdfc2V0X3ZpZXdfc291cmNlX21vZGU6CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJ2aWV3LmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgKaW5k
ZXggOGRkN2YzOS4uYjg4ZDk3YiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2Vidmlldy5oCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaApAQCAtMzU2
LDYgKzM1NiwxMCBAQCB3ZWJraXRfd2ViX3ZpZXdfcmVkbyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYlZpZXcpOwogV0VCS0lUX0FQSSBnYm9vbGVh
bgogd2Via2l0X3dlYl92aWV3X2Nhbl9yZWRvICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktp
dFdlYlZpZXcgICAgICAgICp3ZWJWaWV3KTsKIAorV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0
X3dlYl92aWV3X2V4ZWN1dGVfY29tbWFuZCAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcg
ICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqY29tbWFuZCk7CisKIFdFQktJVF9BUEkg
dm9pZAogd2Via2l0X3dlYl92aWV3X3NldF92aWV3X3NvdXJjZV9tb2RlICAgICAgICAgICAgKFdl
YktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICB2aWV3X3NvdXJjZV9t
b2RlKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5saXN0IGIvV2ViS2l0
L2d0ay93ZWJraXRtYXJzaGFsLmxpc3QKaW5kZXggZmVmZGZmMy4uM2IyYmI2NSAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay93ZWJraXRtYXJzaGFsLmxpc3QKKysrIGIvV2ViS2l0L2d0ay93ZWJraXRt
YXJzaGFsLmxpc3QKQEAgLTIsNiArMiw3IEBAIEJPT0xFQU46RU5VTSxJTlQKIEJPT0xFQU46SU5U
LElOVCxTVFJJTkcKIEJPT0xFQU46T0JKRUNUCiBCT09MRUFOOk9CSkVDVCxPQkpFQ1QsT0JKRUNU
LE9CSkVDVAorQk9PTEVBTjpPQkpFQ1QsT0JKRUNULFNUUklORwogQk9PTEVBTjpPQkpFQ1QsT0JK
RUNULFNUUklORyxPQkpFQ1QKIEJPT0xFQU46T0JKRUNULFNUUklORwogQk9PTEVBTjpPQkpFQ1Qs
U1RSSU5HLFBPSU5URVIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45143</attachid>
            <date>2009-12-18 04:24:54 -0800</date>
            <delta_ts>2011-02-16 06:26:08 -0800</delta_ts>
            <desc>Implement webkit_web_view_execute_command, command-executed, catch internal commands</desc>
            <filename>executecommand.diff</filename>
            <type>text/plain</type>
            <size>7649</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzhmNTlhYS4uMmUwZDEyNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAwOS0xMi0xOCAgQ2hyaXN0aWFuIER5
d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBFZGl0aW5nIGNhcGFiaWxpdGllcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NTYKKworICAgICAg
ICAqIGVkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OkNvbW1hbmQ6OmV4ZWN1dGUpOgorICAgICAgICAqIHBhZ2UvRWRpdG9yQ2xpZW50Lmg6IEFkZCBz
aG91bGRFeGVjdXRlQ29tbWFuZCBmb3IgdGhlIEdUSysgcG9ydC4KKwogMjAwOS0xMi0xNyAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAgYi9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggMzM3OWIzYy4uMTQ4Njk2NSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCisrKyBiL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcApAQCAtMTUyMCw2ICsxNTIwLDEwIEBAIGJvb2wg
RWRpdG9yOjpDb21tYW5kOjpleGVjdXRlKGNvbnN0IFN0cmluZyYgcGFyYW1ldGVyLCBFdmVudCog
dHJpZ2dlcmluZ0V2ZW50KSBjCiAgICAgICAgIGlmICghaXNTdXBwb3J0ZWQoKSB8fCAhbV9mcmFt
ZSB8fCAhbV9jb21tYW5kLT5hbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CisjaWYgUExBVEZPUk0oR1RLKQorICAgICBpZiAoIW1fZnJh
bWUtPmVkaXRvcigpLT5jbGllbnQoKS0+c2hvdWxkRXhlY3V0ZUNvbW1hbmQobV9jb21tYW5kLT52
YWx1ZSAobV9mcmFtZS5nZXQoKSwgdHJpZ2dlcmluZ0V2ZW50KSkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyNlbmRpZgogICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgIHJldHVybiBtX2NvbW1hbmQtPmV4ZWN1dGUobV9m
cmFtZS5nZXQoKSwgdHJpZ2dlcmluZ0V2ZW50LCBtX3NvdXJjZSwgcGFyYW1ldGVyKTsKIH0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaCBiL1dlYkNvcmUvcGFnZS9FZGl0
b3JDbGllbnQuaAppbmRleCBjZGYwYmQ4Li5lNWYzZWRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bh
Z2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCkBAIC04
Myw3ICs4MywxMSBAQCBjbGFzcyBFZGl0b3JDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwg
fkVkaXRvckNsaWVudCgpIHsgIH0KICAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpID0g
MDsKLSAgICAKKworI2lmIFBMQVRGT1JNKEdUSykKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRXhl
Y3V0ZUNvbW1hbmQoY29uc3QgU3RyaW5nJikgPSAwOworI2VuZGlmCisKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkRGVsZXRlUmFuZ2UoUmFuZ2UqKSA9IDA7CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZFNob3dEZWxldGVJbnRlcmZhY2UoSFRNTEVsZW1lbnQqKSA9IDA7CiAgICAgdmlydHVhbCBib29s
IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpID0gMDsgCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGU0NjRlZTcuLjNjYmY5ZTAg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMTItMTggIENocmlzdGlhbiBEeXdhbiAgPGNocmlz
dGlhbkB0d290b2FzdHMuZGU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW0dUS10gRWRpdGluZyBjYXBhYmlsaXRpZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDU2CisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGll
bnQ6OnNob3VsZEV4ZWN1dGVDb21tYW5kKTogRW1pdCBjb21tYW5kLWV4ZWN1dGVkIHRvCisgICAg
ICAgIGRldGVybWluZSBpZiBhIGNvbW1hbmQgbWF5IGJlIGV4ZWN1dGVkLgorICAgICAgICAoV2Vi
S2l0OjpFZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQpOiBVc2Ugc2hvdWxkRXhlY3V0
ZUNvbW1hbmQoKS4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoK
KyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9jb21t
YW5kKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5oOiBJbXBsZW1lbnQgd2Via2l0
X3dlYl92aWV3X2V4ZWN1dGVfY29tbWFuZAorCiAyMDA5LTEyLTE3ICBHdXN0YXZvIE5vcm9uaGEg
U2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IFhhbiBMb3Blei4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50R3RrLmNwcAppbmRleCA2ZWM2YmFmLi5iNDVjOGUyIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCkBAIC0xMDIsNiArMTAyLDE3IEBAIHZvaWQg
RWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgYWN0aXZlKQogI2VuZGlmCiB9
CiAKK2Jvb2wgRWRpdG9yQ2xpZW50OjpzaG91bGRFeGVjdXRlQ29tbWFuZChjb25zdCBTdHJpbmcm
IGNvbW1hbmQpCit7CisgICAgRnJhbWUqIGZyYW1lID0gY29yZShtX3dlYlZpZXcpLT5mb2N1c0Nv
bnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAgZ2Jvb2xlYW4gaGFuZGxlZDsK
KyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUgKG1fd2ViVmlldywgImNvbW1hbmQtZXhlY3V0ZWQi
LCBraXQoZnJhbWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZC51dGY4KCku
ZGF0YSgpLCAmaGFuZGxlZCk7CisgICAgaWYgKGhhbmRsZWQpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBFZGl0b3JDbGllbnQ6OnNob3VsZERlbGV0
ZVJhbmdlKFJhbmdlKikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAtNDc5LDYgKzQ5MCw5
IEBAIHZvaWQgRWRpdG9yQ2xpZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQq
IGV2ZW50KQogCiAgICAgY29uc3QgZ2NoYXIqIGVkaXRvckNvbW1hbmRTdHJpbmcgPSBpbnRlcnBy
ZXRFZGl0b3JDb21tYW5kS2V5RXZlbnQoZXZlbnQpOwogICAgIGlmIChlZGl0b3JDb21tYW5kU3Ry
aW5nKSB7CisgICAgICAgIGlmICghc2hvdWxkRXhlY3V0ZUNvbW1hbmQoZWRpdG9yQ29tbWFuZFN0
cmluZykpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgRWRpdG9yOjpDb21tYW5kIGNv
bW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCktPmNvbW1hbmQoZWRpdG9yQ29tbWFuZFN0cmluZyk7CiAK
ICAgICAgICAgLy8gT24gZWRpdG9yIGNvbW1hbmRzIGZyb20ga2V5IGRvd24gZXZlbnRzLCB3ZSBv
bmx5IHdhbnQgdG8gbGV0IHRoZSBldmVudCBidWJibGUgdXAgdG8KZGlmZiAtLWdpdCBhL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCmluZGV4IDkyOTI2NTEuLjdlNDFlYjcgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKKysrIGIv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaApAQCAtNTcsNiArNTcs
OCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgLy8gZnJvbSBFZGl0b3JDbGllbnQKICAg
ICAgICAgdmlydHVhbCB2b2lkIHBhZ2VEZXN0cm95ZWQoKTsKIAorICAgICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkRXhlY3V0ZUNvbW1hbmQoY29uc3QgV2ViQ29yZTo6U3RyaW5nJik7CisKICAgICAg
ICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKFdlYkNvcmU6OlJhbmdlKik7CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTaG93RGVsZXRlSW50ZXJmYWNlKFdlYkNvcmU6OkhUTUxF
bGVtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
KTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKaW5kZXggYjljNzBjNi4uZGJlZGY0NyAx
MDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTE1Myw2ICsxNTMsNyBAQCBlbnVt
IHsKICAgICBSRURPLAogICAgIERBVEFCQVNFX1FVT1RBX0VYQ0VFREVELAogICAgIFJFU09VUkNF
X1JFUVVFU1RfU1RBUlRJTkcsCisgICAgQ09NTUFORF9FWEVDVVRFRCwKICAgICBMQVNUX1NJR05B
TAogfTsKIApAQCAtMjA5NCw2ICsyMDk1LDMxIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmll
d19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgICAgICAg
ICAgV0VCS0lUX1RZUEVfTkVUV09SS19SRVFVRVNULAogICAgICAgICAgICAgV0VCS0lUX1RZUEVf
TkVUV09SS19SRVNQT05TRSk7CiAKKyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJWaWV3Ojpjb21t
YW5kLWV4ZWN1dGVkOgorICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCB3aGljaCByZWNlaXZl
ZCB0aGUgc2lnbmFsCisgICAgICogQHdlYl9mcmFtZTogdGhlICNXZWJLaXRXZWJGcmFtZSBhZmZl
Y3RlZCBieSB0aGUgY29tbWFuZAorICAgICAqIEBjb21tYW5kOiB0aGUgY29tbWFuZCBzdHJpbmcK
KyAgICAgKgorICAgICAqIEVtaXR0ZWQgd2hlbiBhIGNvbW1hbmQgaXMgZXhlY3V0ZWQgb24gdGhl
IEB3ZWJfZnJhbWUsIHN1Y2gKKyAgICAgKiBhcyB3aGVuIHRoZSB1c2VyIHVzZXMgYSBob3RrZXks
IHRoZSBjb250ZXh0IG1lbnUgb3IKKyAgICAgKiB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9jb21t
YW5kKCkgaXMgdXNlZC4KKyAgICAgKgorICAgICAqIFJldHVybiAlVFJVRSBpZiB5b3Ugd2FudCB0
byBjYW5jZWwgdGhlIGNvbW1hbmQuCisgICAgICoKKyAgICAgKiBTaW5jZTogMS4xLjE0CisgICAg
ICovCisgICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbUkVTT1VSQ0VfUkVRVUVTVF9TVEFSVElO
R10gPSBnX3NpZ25hbF9uZXcoImNvbW1hbmQtZXhlY3V0ZWQiLAorICAgICAgICAgICAgR19UWVBF
X0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdf
U0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAg
ICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsCisgICAgICAgICAgICBO
VUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fT0JKRUNUX1NUUklORywK
KyAgICAgICAgICAgIEdfVFlQRV9CT09MRUFOLCAyLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVf
V0VCX0ZSQU1FLAorICAgICAgICAgICAgR19UWVBFX1NUUklORyk7CisKICAgICAvKgogICAgICAq
IGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAgKi8KQEAgLTM5MDMsNiAr
MzkyOSwyMyBAQCB2b2lkIHdlYmtpdF93ZWJfdmlld19yZWRvKFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcpCiAgICAgICAgIGdfc2lnbmFsX2VtaXQod2ViVmlldywgd2Via2l0X3dlYl92aWV3X3NpZ25h
bHNbUkVET10sIDApOwogfQogCisvKioKKyAqIHdlYmtpdF93ZWJfdmlld19leGVjdXRlX2NvbW1h
bmQ6CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqIEBjb21tYW5kOiBhIGNvbW1h
bmQgc3RyaW5nCisgKgorICogRXhlY3V0ZXMgdGhlIHNwZWNpZmllZCBjb21tYW5kLCBpZiBwb3Nz
aWJsZS4KKyAqCisgKiBTaW5jZTogMS4xLjE4CisgKi8KK2dib29sZWFuIHdlYmtpdF93ZWJfdmll
d19leGVjdXRlX2NvbW1hbmQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgZ2NoYXIqIGNv
bW1hbmQpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdl
YlZpZXcpLCBGQUxTRSk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoY29tbWFuZCwgRkFMU0Up
OworCisgICAgRnJhbWUqIGZyYW1lID0gY29yZSh3ZWJWaWV3KS0+Zm9jdXNDb250cm9sbGVyKCkt
PmZvY3VzZWRPck1haW5GcmFtZSgpOworICAgIHJldHVybiBmcmFtZS0+ZWRpdG9yKCktPmNvbW1h
bmQoY29tbWFuZCkuZXhlY3V0ZSgpID8gVFJVRSA6IEZBTFNFOworfQogCiAvKioKICAqIHdlYmtp
dF93ZWJfdmlld19zZXRfdmlld19zb3VyY2VfbW9kZToKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnZpZXcuaCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcu
aAppbmRleCA4ZGQ3ZjM5Li5iODhkOTdiIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3LmgKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5oCkBA
IC0zNTYsNiArMzU2LDEwIEBAIHdlYmtpdF93ZWJfdmlld19yZWRvICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViVmlldyk7CiBXRUJLSVRfQVBJIGdi
b29sZWFuCiB3ZWJraXRfd2ViX3ZpZXdfY2FuX3JlZG8gICAgICAgICAgICAgICAgICAgICAgICAo
V2ViS2l0V2ViVmlldyAgICAgICAgKndlYlZpZXcpOwogCitXRUJLSVRfQVBJIGdib29sZWFuCit3
ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9jb21tYW5kICAgICAgICAgICAgICAgICAoV2ViS2l0V2Vi
VmlldyAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICpjb21tYW5kKTsKKwogV0VCS0lU
X0FQSSB2b2lkCiB3ZWJraXRfd2ViX3ZpZXdfc2V0X3ZpZXdfc291cmNlX21vZGUgICAgICAgICAg
ICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAgIHZpZXdfc291
cmNlX21vZGUpOwo=
</data>
<flag name="review"
          id="27122"
          type_id="1"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82624</attachid>
            <date>2011-02-16 06:26:08 -0800</date>
            <delta_ts>2011-02-16 06:31:35 -0800</delta_ts>
            <desc>Implement webkit_web_view_execute_editor_command and editor-command-executed</desc>
            <filename>0001-GTK-Editing-capabilities.diff</filename>
            <type>text/plain</type>
            <size>12127</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">RnJvbSAwYmZkNTZjMTc4NWY4NWIyY2JlZjM4YjRkYzFmYmE2YTM4N2IwZjNiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RpYW4gRHl3YW4gPGNocmlzdGlhbkB0d290b2FzdHMu
ZGU+CkRhdGU6IFR1ZSwgMTUgRmViIDIwMTEgMTY6NTE6NTEgKzAxMDAKU3ViamVjdDogW1BBVENI
XSBbR1RLXSBFZGl0aW5nIGNhcGFiaWxpdGllcwogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5NDU2CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClNvdXJjZS9X
ZWJDb3JlOgoKKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgooV2ViQ29yZTo6RWRpdG9yOjpD
b21tYW5kOjpleGVjdXRlKToKKiBwYWdlL0VkaXRvckNsaWVudC5oOiBBZGQgc2hvdWxkRXhlY3V0
ZUNvbW1hbmQgZm9yIHRoZSBHVEsrIHBvcnQuCgpTb3VyY2UvV2ViS2l0L2d0azoKCiogV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzaG91
bGRFeGVjdXRlQ29tbWFuZCk6IEVtaXQgY29tbWFuZC1leGVjdXRlZCB0bwpkZXRlcm1pbmUgaWYg
YSBjb21tYW5kIG1heSBiZSBleGVjdXRlZC4KKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpoYW5kbGVL
ZXlib2FyZEV2ZW50KTogVXNlCnNob3VsZEV4ZWN1dGVDb21tYW5kKCkuCiogV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50R3RrLmg6Ciogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgood2Via2l0
X3dlYl92aWV3X2NsYXNzX2luaXQpOgood2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfY29tbWFuZCk6
Ciogd2Via2l0L3dlYmtpdHdlYnZpZXcuaDogSW1wbGVtZW50IHdlYmtpdF93ZWJfdmlld19leGVj
dXRlX2NvbW1hbmQKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTEgKysrKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21t
YW5kLmNwcCAgICAgICAgICAgfCAgICA0ICsKIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaCAgICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRv
ckNsaWVudC5oICAgICAgICAgICAgICAgICB8ICAgIDEgKwogU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE4ICsrKysrKwogLi4uL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcCAgfCAgIDE0ICsrKysrCiBTb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCB8ICAgIDEgKwog
U291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwICAgICAgICAgfCAgIDYy
ICsrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
dmlldy5oICAgICAgICAgICB8ICAgIDUgKysKIFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdG1hcnNo
YWwubGlzdCAgICAgICAgICAgICAgIHwgICAgMSArCiAxMCBmaWxlcyBjaGFuZ2VkLCAxMTggaW5z
ZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmQyZDdmNS4uOGIxZGJk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTAyLTE2ICBDaHJpc3RpYW4gRHl3
YW4gIDxjaHJpc3RpYW5AbGFuZWRvLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBbR1RLXSBFZGl0aW5nIGNhcGFiaWxpdGllcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NTYKKworICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OkNv
bW1hbmQ6OmV4ZWN1dGUpOgorICAgICAgICAqIHBhZ2UvRWRpdG9yQ2xpZW50Lmg6IEFkZCBzaG91
bGRFeGVjdXRlQ29tbWFuZCBmb3IgdGhlIEdUSysgcG9ydC4KKwogMjAxMS0wMi0xNSAgQW5kcmFz
IEJlY3NpICA8YWJlY3NpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQ3NhYmEg
T3N6dHJvZ29uw6FjLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5k
ZXggM2Q5ZTJiNi4uNzM5M2MxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1h
bmQuY3BwCkBAIC0xNjQ4LDYgKzE2NDgsMTAgQEAgYm9vbCBFZGl0b3I6OkNvbW1hbmQ6OmV4ZWN1
dGUoY29uc3QgU3RyaW5nJiBwYXJhbWV0ZXIsIEV2ZW50KiB0cmlnZ2VyaW5nRXZlbnQpIGMKICAg
ICAgICAgaWYgKCFpc1N1cHBvcnRlZCgpIHx8ICFtX2ZyYW1lIHx8ICFtX2NvbW1hbmQtPmFsbG93
RXhlY3V0aW9uV2hlbkRpc2FibGVkKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
KworICAgIGlmICghbV9mcmFtZS0+ZWRpdG9yKCktPmNsaWVudCgpLT5zaG91bGRFeGVjdXRlQ29t
bWFuZChtX2NvbW1hbmQtPnZhbHVlIChtX2ZyYW1lLmdldCgpLCB0cmlnZ2VyaW5nRXZlbnQpLCBw
YXJhbWV0ZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBtX2ZyYW1lLT5kb2N1bWVu
dCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICByZXR1cm4g
bV9jb21tYW5kLT5leGVjdXRlKG1fZnJhbWUuZ2V0KCksIHRyaWdnZXJpbmdFdmVudCwgbV9zb3Vy
Y2UsIHBhcmFtZXRlcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXgg
NGNmMjdkYi4uNzNjODQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAt
NDE5LDYgKzQxOSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5FbXB0eUVkaXRvckNsaWVudCgp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBwYWdlRGVzdHJveWVkKCkgeyB9CiAKKyAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkRXhlY3V0ZUNvbW1hbmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoUmFu
Z2UqKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTaG93RGVsZXRl
SW50ZXJmYWNlKEhUTUxFbGVtZW50KikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgc21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0VkaXRvckNsaWVudC5oCmluZGV4IGNlNmFkYWMuLjU0MzdkYzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FZGl0b3JDbGllbnQuaApAQCAtNzgsNiArNzgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+
RWRpdG9yQ2xpZW50KCkgeyAgfQogICAgIHZpcnR1YWwgdm9pZCBwYWdlRGVzdHJveWVkKCkgPSAw
OwogICAgIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRFeGVjdXRlQ29tbWFuZChjb25zdCBTdHJp
bmcmLCBjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJh
bmdlKFJhbmdlKikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTaG93RGVsZXRlSW50ZXJm
YWNlKEhUTUxFbGVtZW50KikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBzbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoKSA9IDA7IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGNjYzRmNzcuLjIzODBjYjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMS0wMi0xNiAgQ2hyaXN0aWFuIER5
d2FuICA8Y2hyaXN0aWFuQGxhbmVkby5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW0dUS10gRWRpdGluZyBjYXBhYmlsaXRpZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDU2CisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpF
ZGl0b3JDbGllbnQ6OnNob3VsZEV4ZWN1dGVDb21tYW5kKTogRW1pdCBjb21tYW5kLWV4ZWN1dGVk
IHRvCisgICAgICAgIGRldGVybWluZSBpZiBhIGNvbW1hbmQgbWF5IGJlIGV4ZWN1dGVkLgorICAg
ICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQpOiBVc2UKKyAg
ICAgICAgc2hvdWxkRXhlY3V0ZUNvbW1hbmQoKS4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRHdGsuaDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Cisg
ICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfZXhlY3V0ZV9jb21tYW5kKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5o
OiBJbXBsZW1lbnQgd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfY29tbWFuZAorCiAyMDExLTAyLTE1
ICBDaHJpc3RpYW4gRHl3YW4gIDxjaHJpc3RpYW5AbGFuZWRvLmNvbT4KIAogICAgICAgICBSdWJi
ZXItc3RhbXBlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwIGIvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAppbmRleCBjZDM5NTIy
Li5mMjA0MTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJXZWJLaXRE
T01Ob2RlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTVJhbmdlUHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCisjaW5jbHVkZSAid2Via2l0d2ViZnJhbWVw
cml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0Z2xvYmFsc3ByaXZhdGUuaCIKICNpbmNsdWRlICJ3
ZWJraXRtYXJzaGFsLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmgiCkBA
IC0yNjcsNiArMjY4LDE3IEBAIHZvaWQgRWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRl
KGJvb2wgYWN0aXZlKQogI2VuZGlmCiB9CiAKK2Jvb2wgRWRpdG9yQ2xpZW50OjpzaG91bGRFeGVj
dXRlQ29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmQsIGNvbnN0IFN0cmluZyYgdmFsdWUpCit7
CisgICAgRnJhbWUqIGZyYW1lID0gY29yZShtX3dlYlZpZXcpLT5mb2N1c0NvbnRyb2xsZXIoKS0+
Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAgZ2Jvb2xlYW4gaGFuZGxlZDsKKyAgICBnX3NpZ25h
bF9lbWl0X2J5X25hbWUgKG1fd2ViVmlldywgImVkaXRvci1jb21tYW5kLWV4ZWN1dGVkIiwga2l0
KGZyYW1lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQudXRmOCgpLmRhdGEo
KSwgdmFsdWUudXRmOCgpLmRhdGEoKSwgJmhhbmRsZWQpOworICAgIGlmIChoYW5kbGVkKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wgRWRpdG9yQ2xp
ZW50OjpzaG91bGREZWxldGVSYW5nZShSYW5nZSogcmFuZ2UpCiB7CiAgICAgZ2Jvb2xlYW4gYWNj
ZXB0ID0gVFJVRTsKQEAgLTY3OSw2ICs2OTEsOCBAQCBib29sIEVkaXRvckNsaWVudDo6ZXhlY3V0
ZVBlbmRpbmdFZGl0b3JDb21tYW5kcyhGcmFtZSogZnJhbWUsIGJvb2wgYWxsb3dUZXh0SW5zZQog
ICAgICAgICBjb25zdCBjaGFyKiBjb21tYW5kU3RyaW5nID0gbV9wZW5kaW5nRWRpdG9yQ29tbWFu
ZHMuYXQoaSk7CiAgICAgICAgIEFTU0VSVChjb21tYW5kU3RyaW5nKTsKICAgICAgICAgRWRpdG9y
OjpDb21tYW5kIGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCktPmNvbW1hbmQoY29tbWFuZFN0cmlu
Zyk7CisgICAgICAgIGlmICghc2hvdWxkRXhlY3V0ZUNvbW1hbmQoY29tbWFuZFN0cmluZywgY29t
bWFuZC52YWx1ZSgpKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKGNv
bW1hbmQuaXNUZXh0SW5zZXJ0aW9uKCkgJiYgIWFsbG93VGV4dEluc2VydGlvbikKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRHdGsuaAppbmRleCAyNzk0NzRlLi4xMGQwNTY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaApAQCAt
NzEsNiArNzEsNyBAQCBjbGFzcyBFZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9y
Q2xpZW50LCAgcHVibGljIFdlYkNvcmU6OlRleHRDaGVja2VyQwogICAgICAgICAvLyBmcm9tIEVk
aXRvckNsaWVudAogICAgICAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpOwogCisgICAg
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRFeGVjdXRlQ29tbWFuZChjb25zdCBXVEY6OlN0cmluZyYs
IGNvbnN0IFdURjo6U3RyaW5nJik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVS
YW5nZShXZWJDb3JlOjpSYW5nZSopOwogICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2hvd0Rl
bGV0ZUludGVyZmFjZShXZWJDb3JlOjpIVE1MRWxlbWVudCopOwogICAgICAgICB2aXJ0dWFsIGJv
b2wgc21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2Vidmlldy5jcHAKaW5kZXggZDJiMGFlMC4uNmFlNDUyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcApAQCAtMTg4LDYgKzE4OCw3IEBAIGVudW0g
ewogICAgIEdFT0xPQ0FUSU9OX1BPTElDWV9ERUNJU0lPTl9DQU5DRUxMRUQsCiAgICAgT05MT0FE
X0VWRU5ULAogICAgIEZSQU1FX0NSRUFURUQsCisgICAgRURJVE9SX0NPTU1BTkRfRVhFQ1VURUQs
CiAgICAgU0hPVUxEX0JFR0lOX0VESVRJTkcsCiAgICAgU0hPVUxEX0VORF9FRElUSU5HLAogICAg
IFNIT1VMRF9JTlNFUlRfTk9ERSwKQEAgLTI3MjYsNiArMjcyNywzMyBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFz
cykKICAgICAgICAgICAgIEdfVFlQRV9OT05FLCAxLAogICAgICAgICAgICAgV0VCS0lUX1RZUEVf
V0VCX0ZSQU1FKTsKIAorICAgIC8qKgorICAgICAqIFdlYktpdFdlYlZpZXc6OmVkaXRvci1jb21t
YW5kLWV4ZWN1dGVkOgorICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCB3aGljaCByZWNlaXZl
ZCB0aGUgc2lnbmFsCisgICAgICogQHdlYl9mcmFtZTogdGhlICNXZWJLaXRXZWJGcmFtZSBhZmZl
Y3RlZCBieSB0aGUgY29tbWFuZAorICAgICAqIEBjb21tYW5kOiB0aGUgY29tbWFuZCBzdHJpbmcK
KyAgICAgKiBAdmFsdWU6IHRoZSBhcmd1bWVudCBwYXNzZWQgdG8gdGhlIGNvbW1hbmQKKyAgICAg
KgorICAgICAqIEVtaXR0ZWQgd2hlbiBhIGNvbW1hbmQgaXMgZXhlY3V0ZWQgb24gdGhlIEB3ZWJf
ZnJhbWUsIHN1Y2gKKyAgICAgKiBhcyB3aGVuIHRoZSB1c2VyIHVzZXMgYSBob3RrZXksIHRoZSBj
b250ZXh0IG1lbnUgb3IKKyAgICAgKiB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0b3JfY29t
bWFuZCgpIGlzIHVzZWQuCisgICAgICoKKyAgICAgKiBSZXR1cm4gJVRSVUUgaWYgeW91IHdhbnQg
dG8gY2FuY2VsIHRoZSBjb21tYW5kLgorICAgICAqCisgICAgICogU2luY2U6IDEuMy40CisgICAg
ICoqLworICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW0VESVRPUl9DT01NQU5EX0VYRUNVVEVE
XSA9IGdfc2lnbmFsX25ldygiZWRpdG9yLWNvbW1hbmQtZXhlY3V0ZWQiLAorICAgICAgICAgICAg
R19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxh
Z3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAs
CisgICAgICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsCisgICAgICAg
ICAgICBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fT0JKRUNUX1NU
UklOR19TVFJJTkcsCisgICAgICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMywKKyAgICAgICAgICAg
IFdFQktJVF9UWVBFX1dFQl9GUkFNRSwKKyAgICAgICAgICAgIEdfVFlQRV9TVFJJTkcsCisgICAg
ICAgICAgICBHX1RZUEVfU1RSSU5HKTsKKwogICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1NI
T1VMRF9CRUdJTl9FRElUSU5HXSA9IGdfc2lnbmFsX25ldygic2hvdWxkLWJlZ2luLWVkaXRpbmci
LAogICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLCBzdGF0aWNfY2FzdDxH
U2lnbmFsRmxhZ3M+KEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKICAgICAg
ICAgR19TVFJVQ1RfT0ZGU0VUKFdlYktpdFdlYlZpZXdDbGFzcywgc2hvdWxkX2FsbG93X2VkaXRp
bmdfYWN0aW9uKSwgZ19zaWduYWxfYWNjdW11bGF0b3JfZmlyc3Rfd2lucywgMCwKQEAgLTQ4ODEs
NiArNDkwOSw0MCBAQCB2b2lkIHdlYmtpdF93ZWJfdmlld19yZWRvKFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcpCiAKIAogLyoqCisgKgorICogd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdG9yX2Nv
bW1hbmQ6CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqIEBjb21tYW5kOiBhIGNv
bW1hbmQgc3RyaW5nCisgKiBAdmFsdWU6IGFuIGFyZ3VtZW50IGRlcGVuZGluZyBvbiB0aGUgY29t
bWFuZAorICoKKyAqIEV4ZWN1dGVzIHRoZSBzcGVjaWZpZWQgY29tbWFuZCwgaWYgcG9zc2libGUu
IFRoZSBAdmFsdWUgaXMKKyAqIHNwZWNpZmljIHRvIHRoZSBjb21tYW5kLCBpbiBjYXNlIG9mICJJ
bnNlcnRJbWFnZSIgaXQgaXMgdGhlCisgKiBVUkwgb2YgYW4gaW1hZ2UuCisgKgorICogVGhlIGNv
bW1hbmQgY2FuIGZhaWwsIGZvciBleGFtcGxlICJJbnNlcnRJbWFnZSIgZmFpbHMgaWYgdGhlcmUK
KyAqIGlzIG5vdGhpbmcgc2VsZWN0ZWQuCisgKgorICogU2VlIHRoZSA6OmVkaXRvci1jb21tYW5k
LWV4ZWN1dGVkIHNpZ25hbCBmb3IgYSB3YXkgdG8KKyAqIGludGVyY2VwdCBhcmJpdHJhcnkgY29t
bWFuZHMuCisgKgorICogU29tZSB1c2VmdWwgY29tbWFuZHM6CisgKiBpbnNlcnRIVE1MLCBpbnNl
cnRJbWFnZSwgY3JlYXRlTGluaywgZm9udE5hbWUsIGZvbnRTaXplLCBmb3JlQ29sb3IsIGZvcm1h
dEJsb2NrLAorICogdG9nZ2xlQm9sZCwgdG9nZ2xlSXRhbGljLCB1bmRlcmxpbmUsIHN1YnNjcmlw
dCwgc3VwZXJzY3JpcHQsIHN0cmlrZVRocm91Z2gsCisgKiB1bnNlbGVjdCwgcmVtb3ZlRm9ybWF0
LCBqdXN0aWZ5TGVmdCwganVzdGlmeVJpZ2h0LCBqdXN0aWZ5Q2VudGVyLAorICogaW5zZXJ0VW5v
cmRlcmVkTGlzdCwgaW5zZXJ0T3JkZXJlZExpc3QsIGluc2VydEhvcml6b250YWxSdWxlLCBpbmRl
bnQKKyAqCisgKiBTaW5jZTogMS4zLjQKKyAqKi8KK2dib29sZWFuIHdlYmtpdF93ZWJfdmlld19l
eGVjdXRlX2VkaXRvcl9jb21tYW5kKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFy
KiBjb21tYW5kLCBjb25zdCBnY2hhciogdmFsdWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBGQUxTRSk7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoY29tbWFuZCwgRkFMU0UpOworCisgICAgRnJhbWUqIGZyYW1lID0gY29yZSh3ZWJW
aWV3KS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOworICAgIHJldHVy
biBmcmFtZS0+ZWRpdG9yKCktPmNvbW1hbmQoY29tbWFuZCkuZXhlY3V0ZSh2YWx1ZSkgPyBUUlVF
IDogRkFMU0U7Cit9CisKKy8qKgogICogd2Via2l0X3dlYl92aWV3X3NldF92aWV3X3NvdXJjZV9t
b2RlOgogICogQHdlYlZpZXc6IGEgI1dlYktpdFdlYlZpZXcKICAqIEB2aWV3X3NvdXJjZV9tb2Rl
OiB0aGUgbW9kZSB0byB0dXJuIG9uIG9yIG9mZiB2aWV3IHNvdXJjZSBtb2RlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5oIGIvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaAppbmRleCAxODM4YmZlLi5jZjdlZDM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgKQEAgLTM4Myw2ICszODMsMTEg
QEAgd2Via2l0X3dlYl92aWV3X3JlZG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktp
dFdlYlZpZXcgICAgICAgICp3ZWJWaWV3KTsKIFdFQktJVF9BUEkgZ2Jvb2xlYW4KIHdlYmtpdF93
ZWJfdmlld19jYW5fcmVkbyAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAg
ICAgICAqd2ViVmlldyk7CiAKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJfdmlld19l
eGVjdXRlX2VkaXRvcl9jb21tYW5kICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2Vi
X3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgZ2NoYXIgICAgICAgICAgKmNvbW1hbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgKnZhbHVlKTsKKwog
V0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfd2ViX3ZpZXdfc2V0X3ZpZXdfc291cmNlX21vZGUgICAg
ICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYlZpZXcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgdmll
d19zb3VyY2VfbW9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXRtYXJz
aGFsLmxpc3QgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXRtYXJzaGFsLmxpc3QKaW5kZXggNTM3
MmM1Ny4uOTY2ZWM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0bWFyc2hh
bC5saXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdG1hcnNoYWwubGlzdApAQCAtOCw2
ICs4LDcgQEAgQk9PTEVBTjpPQkpFQ1QsT0JKRUNULE9CSkVDVCxPQkpFQ1QKIEJPT0xFQU46T0JK
RUNULE9CSkVDVCxTVFJJTkcsT0JKRUNUCiBCT09MRUFOOk9CSkVDVCxTVFJJTkcKIEJPT0xFQU46
T0JKRUNULFNUUklORyxQT0lOVEVSCitCT09MRUFOOk9CSkVDVCxTVFJJTkcsU1RSSU5HCiBCT09M
RUFOOk9CSkVDVCxTVFJJTkcsU1RSSU5HLFNUUklORwogQk9PTEVBTjpTVFJJTkcsSU5ULFNUUklO
RwogQk9PTEVBTjpTVFJJTkcsT0JKRUNULEVOVU0KLS0gCjEuNy4zLjUKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82625</attachid>
            <date>2011-02-16 06:31:35 -0800</date>
            <delta_ts>2011-02-17 15:26:02 -0800</delta_ts>
            <desc>Implement webkit_web_view_execute_editor_command and editor-command-executed</desc>
            <filename>0001-GTK-Editing-capabilities.diff</filename>
            <type>text/plain</type>
            <size>14225</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">RnJvbSAzMTRlNDA4MGQ3MDVmMWI5MjZkYTY0YjM1Y2MyMTUxOWE0N2FlMzRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RpYW4gRHl3YW4gPGNocmlzdGlhbkBsYW5lZG8uY29t
PgpEYXRlOiBUdWUsIDE2IEZlYiAyMDExIDE1OjMwOjEzICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
W0dUS10gRWRpdGluZyBjYXBhYmlsaXRpZXMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTQ1NgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpTb3VyY2UvV2Vi
Q29yZToKCiogZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKFdlYkNvcmU6OkVkaXRvcjo6Q29t
bWFuZDo6ZXhlY3V0ZSk6CiogcGFnZS9FZGl0b3JDbGllbnQuaDogQWRkIHNob3VsZEV4ZWN1dGVD
b21tYW5kIGZvciB0aGUgR1RLKyBwb3J0LgoKU291cmNlL1dlYktpdC9ndGs6CgoqIFdlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6CihXZWJLaXQ6OkVkaXRvckNsaWVudDo6c2hvdWxk
RXhlY3V0ZUNvbW1hbmQpOiBFbWl0IGNvbW1hbmQtZXhlY3V0ZWQgdG8KZGV0ZXJtaW5lIGlmIGEg
Y29tbWFuZCBtYXkgYmUgZXhlY3V0ZWQuCihXZWJLaXQ6OkVkaXRvckNsaWVudDo6aGFuZGxlS2V5
Ym9hcmRFdmVudCk6IFVzZQpzaG91bGRFeGVjdXRlQ29tbWFuZCgpLgoqIFdlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5oOgoqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKHdlYmtpdF93
ZWJfdmlld19jbGFzc19pbml0KToKKHdlYmtpdF93ZWJfdmlld19leGVjdXRlX2NvbW1hbmQpOgoq
IHdlYmtpdC93ZWJraXR3ZWJ2aWV3Lmg6IEltcGxlbWVudCB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0
ZV9jb21tYW5kCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDExICsrKysKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFu
ZC5jcHAgICAgICAgICAgIHwgICAgNCArCiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmggICAgICAgICAgICAgICB8ICAgIDEgKwogU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JD
bGllbnQuaCAgICAgICAgICAgICAgICAgfCAgICAxICsKIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOCArKysrKysKIC4uLi9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAgIHwgICAxNCArKysrCiBTb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCB8ICAgIDEgKwogU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwICAgICAgICAgfCAgIDYzICsr
KysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmll
dy5oICAgICAgICAgICB8ICAgIDUgKysKIFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdG1hcnNoYWwu
bGlzdCAgICAgICAgICAgICAgIHwgICAgMSArCiBUb29scy9HdGtMYXVuY2hlci9tYWluLmMgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTggKysrKystCiAxMSBmaWxlcyBjaGFuZ2VkLCAx
MzYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmQyZDdmNS4u
OGIxZGJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTAyLTE2ICBDaHJpc3Rp
YW4gRHl3YW4gIDxjaHJpc3RpYW5AbGFuZWRvLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBFZGl0aW5nIGNhcGFiaWxpdGllcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NTYKKworICAg
ICAgICAqIGVkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3I6OkNvbW1hbmQ6OmV4ZWN1dGUpOgorICAgICAgICAqIHBhZ2UvRWRpdG9yQ2xpZW50Lmg6IEFk
ZCBzaG91bGRFeGVjdXRlQ29tbWFuZCBmb3IgdGhlIEdUSysgcG9ydC4KKwogMjAxMS0wMi0xNSAg
QW5kcmFzIEJlY3NpICA8YWJlY3NpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
Q3NhYmEgT3N6dHJvZ29uw6FjLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5j
cHAKaW5kZXggM2Q5ZTJiNi4uNzM5M2MxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ckNvbW1hbmQuY3BwCkBAIC0xNjQ4LDYgKzE2NDgsMTAgQEAgYm9vbCBFZGl0b3I6OkNvbW1hbmQ6
OmV4ZWN1dGUoY29uc3QgU3RyaW5nJiBwYXJhbWV0ZXIsIEV2ZW50KiB0cmlnZ2VyaW5nRXZlbnQp
IGMKICAgICAgICAgaWYgKCFpc1N1cHBvcnRlZCgpIHx8ICFtX2ZyYW1lIHx8ICFtX2NvbW1hbmQt
PmFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KKworICAgIGlmICghbV9mcmFtZS0+ZWRpdG9yKCktPmNsaWVudCgpLT5zaG91bGRFeGVj
dXRlQ29tbWFuZChtX2NvbW1hbmQtPnZhbHVlIChtX2ZyYW1lLmdldCgpLCB0cmlnZ2VyaW5nRXZl
bnQpLCBwYXJhbWV0ZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBtX2ZyYW1lLT5k
b2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBy
ZXR1cm4gbV9jb21tYW5kLT5leGVjdXRlKG1fZnJhbWUuZ2V0KCksIHRyaWdnZXJpbmdFdmVudCwg
bV9zb3VyY2UsIHBhcmFtZXRlcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
aW5kZXggNGNmMjdkYi4uNzNjODQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aApAQCAtNDE5LDYgKzQxOSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5FbXB0eUVkaXRvckNs
aWVudCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwYWdlRGVzdHJveWVkKCkgeyB9CiAKKyAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkRXhlY3V0ZUNvbW1hbmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGVsZXRlUmFu
Z2UoUmFuZ2UqKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTaG93
RGVsZXRlSW50ZXJmYWNlKEhUTUxFbGVtZW50KikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIGJvb2wgc21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0VkaXRvckNsaWVudC5oCmluZGV4IGNlNmFkYWMuLjU0MzdkYzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FZGl0b3JDbGllbnQuaApAQCAtNzgsNiArNzgsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB+RWRpdG9yQ2xpZW50KCkgeyAgfQogICAgIHZpcnR1YWwgdm9pZCBwYWdlRGVzdHJveWVk
KCkgPSAwOwogICAgIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRFeGVjdXRlQ29tbWFuZChjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCBib29sIHNob3VsZERl
bGV0ZVJhbmdlKFJhbmdlKikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTaG93RGVsZXRl
SW50ZXJmYWNlKEhUTUxFbGVtZW50KikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBzbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoKSA9IDA7IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGNjYzRmNzcuLjIzODBj
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMS0wMi0xNiAgQ2hyaXN0
aWFuIER5d2FuICA8Y2hyaXN0aWFuQGxhbmVkby5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gRWRpdGluZyBjYXBhYmlsaXRpZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDU2CisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpFZGl0b3JDbGllbnQ6OnNob3VsZEV4ZWN1dGVDb21tYW5kKTogRW1pdCBjb21tYW5kLWV4
ZWN1dGVkIHRvCisgICAgICAgIGRldGVybWluZSBpZiBhIGNvbW1hbmQgbWF5IGJlIGV4ZWN1dGVk
LgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQpOiBV
c2UKKyAgICAgICAgc2hvdWxkRXhlY3V0ZUNvbW1hbmQoKS4KKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5j
cHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfZXhlY3V0ZV9jb21tYW5kKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
dmlldy5oOiBJbXBsZW1lbnQgd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfY29tbWFuZAorCiAyMDEx
LTAyLTE1ICBDaHJpc3RpYW4gRHl3YW4gIDxjaHJpc3RpYW5AbGFuZWRvLmNvbT4KIAogICAgICAg
ICBSdWJiZXItc3RhbXBlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwIGIvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAppbmRleCBj
ZDM5NTIyLi5mNWEyZWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJX
ZWJLaXRET01Ob2RlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTVJhbmdlUHJpdmF0ZS5o
IgogI2luY2x1ZGUgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCisjaW5jbHVkZSAid2Via2l0d2Vi
ZnJhbWVwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0Z2xvYmFsc3ByaXZhdGUuaCIKICNpbmNs
dWRlICJ3ZWJraXRtYXJzaGFsLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vic2V0dGluZ3Nwcml2YXRl
LmgiCkBAIC0yNjcsNiArMjY4LDE3IEBAIHZvaWQgRWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhv
ZFN0YXRlKGJvb2wgYWN0aXZlKQogI2VuZGlmCiB9CiAKK2Jvb2wgRWRpdG9yQ2xpZW50OjpzaG91
bGRFeGVjdXRlQ29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmQsIGNvbnN0IFN0cmluZyYgdmFs
dWUpCit7CisgICAgRnJhbWUqIGZyYW1lID0gY29yZShtX3dlYlZpZXcpLT5mb2N1c0NvbnRyb2xs
ZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAgZ2Jvb2xlYW4gaGFuZGxlZDsKKyAgICBn
X3NpZ25hbF9lbWl0X2J5X25hbWUgKG1fd2ViVmlldywgImVkaXRvci1jb21tYW5kIiwga2l0KGZy
YW1lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQudXRmOCgpLmRhdGEoKSwg
dmFsdWUudXRmOCgpLmRhdGEoKSwgJmhhbmRsZWQpOworICAgIGlmIChoYW5kbGVkKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wgRWRpdG9yQ2xpZW50
OjpzaG91bGREZWxldGVSYW5nZShSYW5nZSogcmFuZ2UpCiB7CiAgICAgZ2Jvb2xlYW4gYWNjZXB0
ID0gVFJVRTsKQEAgLTY3OSw2ICs2OTEsOCBAQCBib29sIEVkaXRvckNsaWVudDo6ZXhlY3V0ZVBl
bmRpbmdFZGl0b3JDb21tYW5kcyhGcmFtZSogZnJhbWUsIGJvb2wgYWxsb3dUZXh0SW5zZQogICAg
ICAgICBjb25zdCBjaGFyKiBjb21tYW5kU3RyaW5nID0gbV9wZW5kaW5nRWRpdG9yQ29tbWFuZHMu
YXQoaSk7CiAgICAgICAgIEFTU0VSVChjb21tYW5kU3RyaW5nKTsKICAgICAgICAgRWRpdG9yOjpD
b21tYW5kIGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCktPmNvbW1hbmQoY29tbWFuZFN0cmluZyk7
CisgICAgICAgIGlmICghc2hvdWxkRXhlY3V0ZUNvbW1hbmQoY29tbWFuZFN0cmluZywgY29tbWFu
ZC52YWx1ZSgpKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKGNvbW1h
bmQuaXNUZXh0SW5zZXJ0aW9uKCkgJiYgIWFsbG93VGV4dEluc2VydGlvbikKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRHdGsuaAppbmRleCAyNzk0NzRlLi4xMGQwNTY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaApAQCAtNzEs
NiArNzEsNyBAQCBjbGFzcyBFZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xp
ZW50LCAgcHVibGljIFdlYkNvcmU6OlRleHRDaGVja2VyQwogICAgICAgICAvLyBmcm9tIEVkaXRv
ckNsaWVudAogICAgICAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpOwogCisgICAgICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRFeGVjdXRlQ29tbWFuZChjb25zdCBXVEY6OlN0cmluZyYsIGNv
bnN0IFdURjo6U3RyaW5nJik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5n
ZShXZWJDb3JlOjpSYW5nZSopOwogICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2hvd0RlbGV0
ZUludGVyZmFjZShXZWJDb3JlOjpIVE1MRWxlbWVudCopOwogICAgICAgICB2aXJ0dWFsIGJvb2wg
c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2Vidmlldy5jcHAKaW5kZXggZDJiMGFlMC4uMzFlZTRmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcApAQCAtMTg4LDYgKzE4OCw3IEBAIGVudW0gewog
ICAgIEdFT0xPQ0FUSU9OX1BPTElDWV9ERUNJU0lPTl9DQU5DRUxMRUQsCiAgICAgT05MT0FEX0VW
RU5ULAogICAgIEZSQU1FX0NSRUFURUQsCisgICAgRURJVE9SX0NPTU1BTkRfRVhFQ1VURUQsCiAg
ICAgU0hPVUxEX0JFR0lOX0VESVRJTkcsCiAgICAgU0hPVUxEX0VORF9FRElUSU5HLAogICAgIFNI
T1VMRF9JTlNFUlRfTk9ERSwKQEAgLTI3MjYsNiArMjcyNywzMyBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykK
ICAgICAgICAgICAgIEdfVFlQRV9OT05FLCAxLAogICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VC
X0ZSQU1FKTsKIAorICAgIC8qKgorICAgICAqIFdlYktpdFdlYlZpZXc6OmVkaXRvci1jb21tYW5k
OgorICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCB3aGljaCByZWNlaXZlZCB0aGUgc2lnbmFs
CisgICAgICogQHdlYl9mcmFtZTogdGhlICNXZWJLaXRXZWJGcmFtZSBhZmZlY3RlZCBieSB0aGUg
Y29tbWFuZAorICAgICAqIEBjb21tYW5kOiB0aGUgY29tbWFuZCBzdHJpbmcKKyAgICAgKiBAdmFs
dWU6IHRoZSBhcmd1bWVudCBwYXNzZWQgdG8gdGhlIGNvbW1hbmQKKyAgICAgKgorICAgICAqIEVt
aXR0ZWQgYmVmb3JlIGEgY29tbWFuZCBpcyBleGVjdXRlZCBvbiB0aGUgQHdlYl9mcmFtZSwgc3Vj
aAorICAgICAqIGFzIHdoZW4gdGhlIHVzZXIgdXNlcyBhIGhvdGtleSwgdGhlIGNvbnRleHQgbWVu
dSBvcgorICAgICAqIHdlYmtpdF93ZWJfdmlld19leGVjdXRlX2VkaXRvcl9jb21tYW5kKCkgaXMg
dXNlZC4KKyAgICAgKgorICAgICAqIFJldHVybiAlVFJVRSBpZiB5b3Ugd2FudCB0byBjYW5jZWwg
dGhlIGNvbW1hbmQuCisgICAgICoKKyAgICAgKiBTaW5jZTogMS4zLjQKKyAgICAgKiovCisgICAg
d2Via2l0X3dlYl92aWV3X3NpZ25hbHNbRURJVE9SX0NPTU1BTkRfRVhFQ1VURURdID0gZ19zaWdu
YWxfbmV3KCJlZGl0b3ItY29tbWFuZCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3
ZWJWaWV3Q2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xB
U1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIGdfc2ln
bmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxlZCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAg
ICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19PQkpFQ1RfU1RSSU5HX1NUUklORywKKyAgICAg
ICAgICAgIEdfVFlQRV9CT09MRUFOLCAzLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX0ZS
QU1FLAorICAgICAgICAgICAgR19UWVBFX1NUUklORywKKyAgICAgICAgICAgIEdfVFlQRV9TVFJJ
TkcpOworCiAgICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbU0hPVUxEX0JFR0lOX0VESVRJTkdd
ID0gZ19zaWduYWxfbmV3KCJzaG91bGQtYmVnaW4tZWRpdGluZyIsCiAgICAgICAgIEdfVFlQRV9G
Uk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksIHN0YXRpY19jYXN0PEdTaWduYWxGbGFncz4oR19TSUdO
QUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAogICAgICAgICBHX1NUUlVDVF9PRkZTRVQo
V2ViS2l0V2ViVmlld0NsYXNzLCBzaG91bGRfYWxsb3dfZWRpdGluZ19hY3Rpb24pLCBnX3NpZ25h
bF9hY2N1bXVsYXRvcl9maXJzdF93aW5zLCAwLApAQCAtNDg4MSw2ICs0OTA5LDQxIEBAIHZvaWQg
d2Via2l0X3dlYl92aWV3X3JlZG8oV2ViS2l0V2ViVmlldyogd2ViVmlldykKIAogCiAvKioKKyAq
CisgKiB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0b3JfY29tbWFuZDoKKyAqIEB3ZWJfdmll
dzogYSAjV2ViS2l0V2ViVmlldworICogQGNvbW1hbmQ6IGEgY29tbWFuZCBzdHJpbmcKKyAqIEB2
YWx1ZTogYW4gYXJndW1lbnQgZGVwZW5kaW5nIG9uIHRoZSBjb21tYW5kCisgKgorICogRXhlY3V0
ZXMgdGhlIHNwZWNpZmllZCBjb21tYW5kLCBpZiBwb3NzaWJsZS4gVGhlIEB2YWx1ZSBpcworICog
c3BlY2lmaWMgdG8gdGhlIGNvbW1hbmQsIGluIGNhc2Ugb2YgIkluc2VydEltYWdlIiBpdCBpcyB0
aGUKKyAqIFVSTCBvZiBhbiBpbWFnZS4KKyAqCisgKiBUaGUgY29tbWFuZCBpcyBleGVjdXRlZCBp
biB0aGUgZm9jdXNzZWQgZnJhbWUuCisgKgorICogVGhlIGNvbW1hbmQgY2FuIGZhaWwsIGZvciBl
eGFtcGxlICJJbnNlcnRJbWFnZSIgZmFpbHMgaWYgbm90aGluZyBpcyBzZWxlY3RlZAorICogYW5k
IFRvZ2dsZUJvbGQgbmVlZHMgYSBzZWxlY3Rpb24gdG8gYXBwbHkgdG8uCisgKgorICogU2VlIHRo
ZSA6OmVkaXRvci1jb21tYW5kIHNpZ25hbCBmb3IgYSB3YXkgdG8gaW50ZXJjZXB0IGFyYml0cmFy
eSBjb21tYW5kcy4KKyAqCisgKiBTb21lIHVzZWZ1bCBjb21tYW5kczoKKyAqIGluc2VydEhUTUws
IGluc2VydEltYWdlLCBjcmVhdGVMaW5rLCBmb250TmFtZSwgZm9udFNpemUsIGZvcmVDb2xvciwg
Zm9ybWF0QmxvY2ssCisgKiB0b2dnbGVCb2xkLCB0b2dnbGVJdGFsaWMsIHVuZGVybGluZSwgc3Vi
c2NyaXB0LCBzdXBlcnNjcmlwdCwgc3RyaWtlVGhyb3VnaCwKKyAqIHVuc2VsZWN0LCByZW1vdmVG
b3JtYXQsIGp1c3RpZnlMZWZ0LCBqdXN0aWZ5UmlnaHQsIGp1c3RpZnlDZW50ZXIsCisgKiBpbnNl
cnRVbm9yZGVyZWRMaXN0LCBpbnNlcnRPcmRlcmVkTGlzdCwgaW5zZXJ0SG9yaXpvbnRhbFJ1bGUs
IGluZGVudAorICoKKyAqIFNpbmNlOiAxLjMuNAorICoqLworZ2Jvb2xlYW4gd2Via2l0X3dlYl92
aWV3X2V4ZWN1dGVfZWRpdG9yX2NvbW1hbmQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3Qg
Z2NoYXIqIGNvbW1hbmQsIGNvbnN0IGdjaGFyKiB2YWx1ZSkKK3sKKyAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIEZBTFNFKTsKKyAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChjb21tYW5kLCBGQUxTRSk7CisKKyAgICBGcmFtZSogZnJhbWUgPSBjb3Jl
KHdlYlZpZXcpLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAg
cmV0dXJuIGZyYW1lLT5lZGl0b3IoKS0+Y29tbWFuZChjb21tYW5kKS5leGVjdXRlKHZhbHVlKSA/
IFRSVUUgOiBGQUxTRTsKK30KKworLyoqCiAgKiB3ZWJraXRfd2ViX3ZpZXdfc2V0X3ZpZXdfc291
cmNlX21vZGU6CiAgKiBAd2ViVmlldzogYSAjV2ViS2l0V2ViVmlldwogICogQHZpZXdfc291cmNl
X21vZGU6IHRoZSBtb2RlIHRvIHR1cm4gb24gb3Igb2ZmIHZpZXcgc291cmNlIG1vZGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmggYi9Tb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5oCmluZGV4IDE4MzhiZmUuLmNmN2VkMzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgKKysr
IGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaApAQCAtMzgzLDYgKzM4
MywxMSBAQCB3ZWJraXRfd2ViX3ZpZXdfcmVkbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
V2ViS2l0V2ViVmlldyAgICAgICAgKndlYlZpZXcpOwogV0VCS0lUX0FQSSBnYm9vbGVhbgogd2Vi
a2l0X3dlYl92aWV3X2Nhbl9yZWRvICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZp
ZXcgICAgICAgICp3ZWJWaWV3KTsKIAorV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3dlYl92
aWV3X2V4ZWN1dGVfZWRpdG9yX2NvbW1hbmQgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAg
ICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBnY2hhciAgICAgICAgICAqY29tbWFuZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqdmFsdWUp
OworCiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF93ZWJfdmlld19zZXRfdmlld19zb3VyY2VfbW9k
ZSAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViVmlldywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAg
ICB2aWV3X3NvdXJjZV9tb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dG1hcnNoYWwubGlzdCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdG1hcnNoYWwubGlzdAppbmRl
eCA1MzcyYzU3Li45NjZlYzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXRt
YXJzaGFsLmxpc3QKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5saXN0CkBA
IC04LDYgKzgsNyBAQCBCT09MRUFOOk9CSkVDVCxPQkpFQ1QsT0JKRUNULE9CSkVDVAogQk9PTEVB
TjpPQkpFQ1QsT0JKRUNULFNUUklORyxPQkpFQ1QKIEJPT0xFQU46T0JKRUNULFNUUklORwogQk9P
TEVBTjpPQkpFQ1QsU1RSSU5HLFBPSU5URVIKK0JPT0xFQU46T0JKRUNULFNUUklORyxTVFJJTkcK
IEJPT0xFQU46T0JKRUNULFNUUklORyxTVFJJTkcsU1RSSU5HCiBCT09MRUFOOlNUUklORyxJTlQs
U1RSSU5HCiBCT09MRUFOOlNUUklORyxPQkpFQ1QsRU5VTQpkaWZmIC0tZ2l0IGEvVG9vbHMvR3Rr
TGF1bmNoZXIvbWFpbi5jIGIvVG9vbHMvR3RrTGF1bmNoZXIvbWFpbi5jCmluZGV4IGFkNjY2ZTIu
LjNlNTBkNGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0d0a0xhdW5jaGVyL21haW4uYworKysgYi9Ub29s
cy9HdGtMYXVuY2hlci9tYWluLmMKQEAgLTE4NSwxMiArMTg1LDEyIEBAIHN0YXRpYyBHdGtXaWRn
ZXQqIGNyZWF0ZVRvb2xiYXIoR3RrV2lkZ2V0KiB1cmlFbnRyeSwgV2ViS2l0V2ViVmlldyogd2Vi
VmlldykKICAgICByZXR1cm4gdG9vbGJhcjsKIH0KIAorc3RhdGljIEd0a1dpZGdldCAqdXJpRW50
cnkgPSBOVUxMOwogc3RhdGljIEd0a1dpZGdldCogY3JlYXRlV2luZG93KFdlYktpdFdlYlZpZXcq
KiBvdXRXZWJWaWV3KQogewogICAgIFdlYktpdFdlYlZpZXcgKndlYlZpZXc7CiAgICAgR3RrV2lk
Z2V0ICp2Ym94OwogICAgIEd0a1dpZGdldCAqd2luZG93OwotICAgIEd0a1dpZGdldCAqdXJpRW50
cnk7CiAgICAgR3RrV2lkZ2V0ICpzdGF0dXNiYXI7CiAKICAgICBnX2F0b21pY19pbnRfaW5jKCZ3
aW5kb3dDb3VudCk7CkBAIC0yMzAsNiArMjMwLDIyIEBAIHN0YXRpYyBnY2hhciogZmlsZW5hbWVU
b1VSTChjb25zdCBjaGFyKiBmaWxlbmFtZSkKICAgICByZXR1cm4gZmlsZVVSTDsKIH0KIAorc3Rh
dGljIGdib29sZWFuIGVkaXRvckNvbW1hbmRFeGVjdXRlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
LCBXZWJLaXRXZWJGcmFtZSogd2ViRnJhbWUsIGNvbnN0IGdjaGFyKiBjb21tYW5kLCBjb25zdCBn
Y2hhciogdmFsdWUpCit7CisgICAgcHJpbnRmKCJleGVjdXRlZDogJXMgJXNcbiIsIGNvbW1hbmQs
IHZhbHVlKTsKKyAgICBpZiAoZ19zdHJfZXF1YWwgKGNvbW1hbmQsICJUb2dnbGVCb2xkIikpCisg
ICAgICAgIHJldHVybiBUUlVFOworICAgIGlmIChGQUxTRSAmJiBnX3N0cl9lcXVhbCAoY29tbWFu
ZCwgIlRvZ2dsZUl0YWxpYyIpKSB7CisgICAgICAgIHdlYmtpdF93ZWJfdmlld19leGVjdXRlX2Vk
aXRvcl9jb21tYW5kKHdlYlZpZXcsICJVbmRlcmxpbmUiLCBOVUxMKTsKKyAgICAgICAgcmV0dXJu
IFRSVUU7CisgICAgfQorICAgIGlmIChnX3N0cl9lcXVhbCAoY29tbWFuZCwgIlRvZ2dsZUl0YWxp
YyIpKSB7CisgICAgICAgIHdlYmtpdF93ZWJfdmlld19leGVjdXRlX2VkaXRvcl9jb21tYW5kKHdl
YlZpZXcsIGd0a19lbnRyeV9nZXRfdGV4dChHVEtfRU5UUlkodXJpRW50cnkpKSwgImRhdGE6aW1h
Z2UvanBnO2Jhc2U2NCwvOWovNEFBUVNrWkpSZ0FCQVFFQVNBQklBQUQvMndCREFBWUVCQVFGQkFZ
RkJRWUpCZ1VHQ1FzSUJnWUlDd3dLQ2dzS0Nnd1FEQXdNREF3TUVBd09EeEFQRGd3VEV4UVVFeE1j
R3hzYkhDQWdJQ0FnSUNBZ0lDRC8yd0JEQVFjSEJ3ME1EUmdRRUJnYUZSRVZHaUFnSUNBZ0lDQWdJ
Q0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNEL3dB
QVJDQUZLQUJzREFSRUFBaEVCQXhFQi84UUFHUUFCQVFFQkFRRUFBQUFBQUFBQUFBQUFBQUVDQkFN
SS84UUFGeEFCQVFFQkFBQUFBQUFBQUFBQUFBQUFBQkVTRS8vRUFCUUJBUUFBQUFBQUFBQUFBQUFB
QUFBQUFBRC94QUFVRVFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBLzlvQURBTUJBQUlSQXhFQVB3RDZw
QUFBQUFBQUJBQUFBU2dVQ2dVRUFBQUJBQUFBU2dVQ2dVQUFBQUdRQUFBS0JRS0JRUUFBQUVBQUFC
QUFBQVNnVUNnVUVBQUFCQUFBQVNnVUNnVUVBQUFCQUFBQVFBQUFFb0ZBb0ZCQUFBQVFBQUFFb0ZB
b0ZBQUFBQmtBQUFDZ1VDZ1VFQUFBQkFBQUFRQUFBRW9GQW9GQkFBQUFRQUFBRW9GQW9GQkFBQUFR
QUFBRUFBQUI0N0EyQnNEWU9ib0IwQTZBZEFjM1FEb0IwQTZBNXRnYkEyQnNHUUFBQWYvWiIpOwor
ICAgICAgICByZXR1cm4gVFJVRTsKKyAgICB9CisgICAgcmV0dXJuIEZBTFNFOworfQorCiAjaWZu
ZGVmIEdUS19BUElfVkVSU0lPTl8yCiBzdGF0aWMgdm9pZCBkaXNhYmxlUGx1Z2luKGNvbnN0IGNo
YXIqIHBsdWdpbk5hbWUpCiB7Ci0tIAoxLjcuMy41Cgo=
</data>
<flag name="review"
          id="74298"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>