<?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>41286</bug_id>
          
          <creation_ts>2010-06-28 10:53:15 -0700</creation_ts>
          <short_desc>[chromium] EditorClient should forward text field related calls to the WebViewClient</short_desc>
          <delta_ts>2010-07-08 22:26:10 -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 Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Jay Civelli">jcivelli</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dpranke</cc>
    
    <cc>fishd</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>243773</commentid>
    <comment_count>0</comment_count>
    <who name="Jay Civelli">jcivelli</who>
    <bug_when>2010-06-28 10:53:15 -0700</bug_when>
    <thetext>In order to be able to move password autocomplete and field autocomplete code from EditorClientImpl.cpp to the Chromium code, the text field related methods should be exposed on the WebViewClient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243860</commentid>
    <comment_count>1</comment_count>
      <attachid>59930</attachid>
    <who name="Jay Civelli">jcivelli</who>
    <bug_when>2010-06-28 13:25:44 -0700</bug_when>
    <thetext>Created attachment 59930
First version of the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246023</commentid>
    <comment_count>2</comment_count>
      <attachid>59930</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-07-02 12:27:28 -0700</bug_when>
    <thetext>Comment on attachment 59930
First version of the patch

Looks basically good to me, but I&apos;m neither an expert on this area of the code nor a reviewer :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246067</commentid>
    <comment_count>3</comment_count>
      <attachid>59930</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-02 13:38:35 -0700</bug_when>
    <thetext>Comment on attachment 59930
First version of the patch

WebKit/chromium/src/EditorClientImpl.cpp:823
 +      HTMLInputElement* inputElement = WebKit::toHTMLInputElement(element);
EditorClientImpl is defined in the WebKit namespace, so you don&apos;t
need to have the WebKit:: prefix before toHTMLInputElement.

WebKit/chromium/public/WebViewClient.h:146
 +      virtual void textFieldHandlingKeyDown(const WebInputElement&amp;, const WebKeyboardEvent&amp;) { }
textFieldDidReceiveKeyDown?

WebKit/chromium/public/WebViewClient.h:144
 +      virtual void textDidChangeInTextField(const WebInputElement&amp;) { }
textFieldDidChange?

WebKit/chromium/public/WebInputElement.h:83
 +          WEBKIT_API bool readOnly() const;
hmm... maybe this should be named isReadOnly to match isEnabledFormControl.
i know you are just replicating readOnly from the WebCore name.

looks good otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246122</commentid>
    <comment_count>4</comment_count>
      <attachid>60411</attachid>
    <who name="Jay Civelli">jcivelli</who>
    <bug_when>2010-07-02 15:11:53 -0700</bug_when>
    <thetext>Created attachment 60411
Updated with fishd&apos;s suggested changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246239</commentid>
    <comment_count>5</comment_count>
      <attachid>60411</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-02 22:11:41 -0700</bug_when>
    <thetext>Comment on attachment 60411
Updated with fishd&apos;s suggested changes

WebKit/chromium/public/WebViewClient.h:142
 +      // Called when a key down happens in a text-field.
this comment seems fairly redundant now with the method name, so you could
leave it out.

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247868</commentid>
    <comment_count>6</comment_count>
      <attachid>60808</attachid>
    <who name="Jay Civelli">jcivelli</who>
    <bug_when>2010-07-07 17:12:45 -0700</bug_when>
    <thetext>Created attachment 60808
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247893</commentid>
    <comment_count>7</comment_count>
      <attachid>60808</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-07 17:44:41 -0700</bug_when>
    <thetext>Comment on attachment 60808
Patch for landing

Rejecting patch 60808 from commit-queue.

jcivelli@chromium.org does not have committer permissions according to http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/common/config/committers.py.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in WebKitTools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  Due to bug 30084 the commit-queue will require a restart after your change.  Please contact eseidel@chromium.org to request a commit-queue restart.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248733</commentid>
    <comment_count>8</comment_count>
      <attachid>60808</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-08 22:26:05 -0700</bug_when>
    <thetext>Comment on attachment 60808
Patch for landing

Clearing flags on attachment: 60808

Committed r62893: &lt;http://trac.webkit.org/changeset/62893&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248734</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-08 22:26:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59930</attachid>
            <date>2010-06-28 13:25:44 -0700</date>
            <delta_ts>2010-07-02 15:11:53 -0700</delta_ts>
            <desc>First version of the patch</desc>
            <filename>editor_client.patch</filename>
            <type>text/plain</type>
            <size>10792</size>
            <attacher name="Jay Civelli">jcivelli</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA2MjAzMCkKKysrIFdlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzOCBAQAorMjAxMC0wNi0yOCAgSmF5
IENpdmVsbGkgIDxqY2l2ZWxsaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBFeHBvc2luZyB0aGUgRWRpdG9y
Q2xpZW50IHRleHQgZmllbGQgcmVsYXRlZCBtZXRob2RzCisgICAgICAgIHRvIHRoZSBXZWJWaWV3
Q2xpZW50LiBBbHNvIGFkZGluZyBzb21lIG1vcmUgYWNjZXNzb3JzIG1ldGhvZHMKKyAgICAgICAg
dG8gdGhlIFdlYk5vZGUgYW5kIFdlYklucHV0RWxlbWVudC4KKyAgICAgICAgVGhpcyBpcyBuZWVk
ZWQgdG8gbW92ZSB0aGUgcGFzc3dvcmQgYXV0b2NvbXBsZXRlIG91dCBvZiB0aGUKKyAgICAgICAg
Q2hyb21pdW0gV2ViS2l0IEFQSSB0byB0aGUgQ2hyb21pdW0gY29kZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMjg2CisKKyAgICAgICAgKiBwdWJs
aWMvV2ViSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogcHVibGljL1dlYk5vZGUuaDoKKyAgICAg
ICAgKFdlYktpdDo6b3BlcmF0b3IhPSk6CisgICAgICAgIChXZWJLaXQ6Om9wZXJhdG9yPCk6Cisg
ICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0NsaWVudDo6dGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0NsaWVudDo6dGV4dEZpZWxkRGlkRW5kRWRpdGluZyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdDbGllbnQ6OnRleHREaWRDaGFuZ2VJblRleHRGaWVsZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdDbGllbnQ6OnRleHRGaWVsZEhhbmRsaW5nS2V5RG93bik6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdDbGllbnQ6OmRpZEFjY2VwdEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24pOgorICAg
ICAgICAqIHNyYy9FZGl0b3JDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9y
Q2xpZW50SW1wbDo6dGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKToKKyAgICAgICAgKFdlYktpdDo6
RWRpdG9yQ2xpZW50SW1wbDo6dGV4dEZpZWxkRGlkRW5kRWRpdGluZyk6CisgICAgICAgIChXZWJL
aXQ6OkVkaXRvckNsaWVudEltcGw6OnRleHREaWRDaGFuZ2VJblRleHRGaWVsZCk6CisgICAgICAg
IChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6Om9uQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbkFjY2Vw
dGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6ZG9UZXh0RmllbGRDb21t
YW5kRnJvbUV2ZW50KToKKyAgICAgICAgKiBzcmMvV2ViSW5wdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViSW5wdXRFbGVtZW50OjpyZWFkT25seSk6CisgICAgICAgIChXZWJLaXQ6
OldlYklucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5w
dXRFbGVtZW50OjpzZWxlY3Rpb25FbmQpOgorICAgICAgICAqIHNyYy9XZWJOb2RlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViTm9kZTo6bGVzc1RoYW4pOgorCiAyMDEwLTA2LTI4ICBZdXJ5IFNl
bWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEZp
eCBDaHJvbWl1bSBkZWJ1Z2dlciB0ZXN0cy4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViSW5wdXRFbGVtZW50LmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYklucHV0RWxlbWVudC5oCShyZXZpc2lvbiA2MjAxOCkKKysrIFdlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViSW5wdXRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTgwLDYgKzgwLDcgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIH07CiAKICAgICAgICAgV0VCS0lUX0FQSSBib29s
IGF1dG9Db21wbGV0ZSgpIGNvbnN0OworICAgICAgICBXRUJLSVRfQVBJIGJvb2wgcmVhZE9ubHko
KSBjb25zdDsKICAgICAgICAgV0VCS0lUX0FQSSBib29sIGlzRW5hYmxlZEZvcm1Db250cm9sKCkg
Y29uc3Q7CiAgICAgICAgIFdFQktJVF9BUEkgSW5wdXRUeXBlIGlucHV0VHlwZSgpIGNvbnN0Owog
ICAgICAgICBXRUJLSVRfQVBJIGludCBtYXhMZW5ndGgoKSBjb25zdDsKQEAgLTk0LDYgKzk1LDgg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIFdFQktJVF9BUEkgdm9pZCBzZXRBdXRvZmls
bGVkKGJvb2wpOwogICAgICAgICBXRUJLSVRfQVBJIHZvaWQgZGlzcGF0Y2hGb3JtQ29udHJvbENo
YW5nZUV2ZW50KCk7CiAgICAgICAgIFdFQktJVF9BUEkgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShp
bnQsIGludCk7CisgICAgICAgIFdFQktJVF9BUEkgaW50IHNlbGVjdGlvblN0YXJ0KCk7CisgICAg
ICAgIFdFQktJVF9BUEkgaW50IHNlbGVjdGlvbkVuZCgpOwogCiAjaWYgV0VCS0lUX0lNUExFTUVO
VEFUSU9OCiAgICAgICAgIFdlYklucHV0RWxlbWVudChjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2Vi
Q29yZTo6SFRNTElucHV0RWxlbWVudD4mKTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViTm9kZS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOb2Rl
LmgJKHJldmlzaW9uIDYyMDE4KQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOb2RlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTYxLDcgKzYxLDEwIEBAIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJ
IHZvaWQgYXNzaWduKGNvbnN0IFdlYk5vZGUmKTsKIAogICAgIFdFQktJVF9BUEkgYm9vbCBlcXVh
bHMoY29uc3QgV2ViTm9kZSYpIGNvbnN0OwotCisgICAgLy8gUmVxdWlyZWQgZm9yIHVzaW5nIFdl
Yk5vZGVzIGluIHN0ZCBtYXBzLiAgTm90ZSB0aGUgb3JkZXIgdXNlZCBpcworICAgIC8vIGFyYml0
cmFyeSBhbmQgc2hvdWxkIG5vdCBiZSBleHBlY3RlZCB0byBoYXZlIGFueSBzcGVjaWZpYyBtZWFu
aW5nLgorICAgIFdFQktJVF9BUEkgYm9vbCBsZXNzVGhhbihjb25zdCBXZWJOb2RlJikgY29uc3Q7
CisgICAgCiAgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGUuaXNOdWxs
KCk7IH0KIAogICAgIGVudW0gTm9kZVR5cGUgewpAQCAtMTUwLDYgKzE1MywxMSBAQCBpbmxpbmUg
Ym9vbCBvcGVyYXRvciE9KGNvbnN0IFdlYk5vZGUmIGEsCiAgICAgcmV0dXJuICEoYSA9PSBiKTsK
IH0KIAoraW5saW5lIGJvb2wgb3BlcmF0b3I8KGNvbnN0IFdlYk5vZGUmIGEsIGNvbnN0IFdlYk5v
ZGUmIGIpCit7CisgICAgcmV0dXJuIGEubGVzc1RoYW4oYik7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0Ns
aWVudC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xp
ZW50LmgJKHJldmlzaW9uIDYyMDE4KQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDEwICs0NSwxMyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDsKIGNsYXNzIFdlYkRyYWdEYXRh
OworY2xhc3MgV2ViRWxlbWVudDsKIGNsYXNzIFdlYkZpbGVDaG9vc2VyQ29tcGxldGlvbjsKIGNs
YXNzIFdlYkZyYW1lOwogY2xhc3MgV2ViR2VvbG9jYXRpb25TZXJ2aWNlOwogY2xhc3MgV2ViSW1h
Z2U7CitjbGFzcyBXZWJJbnB1dEVsZW1lbnQ7CitjbGFzcyBXZWJLZXlib2FyZEV2ZW50OwogY2xh
c3MgV2ViTm9kZTsKIGNsYXNzIFdlYk5vdGlmaWNhdGlvblByZXNlbnRlcjsKIGNsYXNzIFdlYlJh
bmdlOwpAQCAtMTM1LDYgKzEzOCwxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4
ZWN1dGVDb21tYW5kKGNvbnN0IFdlYlN0cmluZyYgY29tbWFuZE5hbWUpIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBkaWRFbmRFZGl0aW5nKCkgeyB9CiAKKyAgICAvLyBUaGVzZSBtZXRob2RzIGFyZSBj
YWxsZWQgd2hlbiB0aGUgdXNlcnMgZWRpdHMgYSB0ZXh0LWZpZWxkLgorICAgIHZpcnR1YWwgdm9p
ZCB0ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcoY29uc3QgV2ViSW5wdXRFbGVtZW50JikgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIHRleHRGaWVsZERpZEVuZEVkaXRpbmcoY29uc3QgV2ViSW5wdXRFbGVt
ZW50JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHRleHREaWRDaGFuZ2VJblRleHRGaWVsZChjb25z
dCBXZWJJbnB1dEVsZW1lbnQmKSB7IH0KKyAgICAvLyBDYWxsZWQgd2hlbiBhIGtleSBkb3duIGhh
cHBlbnMgaW4gYSB0ZXh0LWZpZWxkLgorICAgIHZpcnR1YWwgdm9pZCB0ZXh0RmllbGRIYW5kbGlu
Z0tleURvd24oY29uc3QgV2ViSW5wdXRFbGVtZW50JiwgY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYp
IHsgfQorCiAgICAgLy8gVGhpcyBtZXRob2QgaXMgY2FsbGVkIGluIHJlc3BvbnNlIHRvIFdlYlZp
ZXcncyBoYW5kbGVJbnB1dEV2ZW50KCkKICAgICAvLyB3aGVuIHRoZSBkZWZhdWx0IGFjdGlvbiBm
b3IgdGhlIGN1cnJlbnQga2V5Ym9hcmQgZXZlbnQgaXMgbm90CiAgICAgLy8gc3VwcHJlc3NlZCBi
eSB0aGUgcGFnZSwgdG8gZ2l2ZSB0aGUgZW1iZWRkZXIgYSBjaGFuY2UgdG8gaGFuZGxlCkBAIC0z
MTUsNiArMzI1LDExIEBAIHB1YmxpYzoKICAgICAvLyBrZXlzIHRvIG5hdmlnYXRlIG91dHNpZGUg
dGhlIHJhbmdlIG9mIHBvc3NpYmxlIHNlbGVjdGlvbnMuCiAgICAgdmlydHVhbCB2b2lkIGRpZENs
ZWFyQXV0b0ZpbGxTZWxlY3Rpb24oY29uc3QgV2ViTm9kZSYpIHsgfQogCisgICAgLy8gSW5mb3Jt
cyB0aGUgYnJvd3NlciB0aGF0IHRoZSB1c2VyIGhhcyBzZWxlY3RlZCBhbiBhdXRvY29tcGxldGUg
KHBhc3N3b3JkCisgICAgLy8gb3IgZmllbGQpIHN1Z2dlc3Rpb24gZnJvbSB0aGUgZHJvcC1kb3du
LiAgVGhlIGlucHV0IGVsZW1lbnQgdGV4dCBoYXMKKyAgICAvLyBhbHJlYWR5IGJlZW4gc2V0IHRv
IHRoZSBzZWxlY3RlZCBzdWdnZXN0aW9uLgorICAgIHZpcnR1YWwgdm9pZCBkaWRBY2NlcHRBdXRv
Y29tcGxldGVTdWdnZXN0aW9uKGNvbnN0IFdlYklucHV0RWxlbWVudCYpIHsgfQorCiAgICAgLy8g
R2VvbG9jYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAKICAgICAvLyBBY2Nlc3MgdGhlIGVtYmVkZGVyIEFQSSBmb3IgZ2VvbG9j
YXRpb24gc2VydmljZXMuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudElt
cGwuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJ
bXBsLmNwcAkocmV2aXNpb24gNjIwMTgpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNs
aWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw5ICs0MywxMSBAQAogCiAjaW5jbHVk
ZSAiRE9NVXRpbGl0aWVzUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkVkaXRpbmdBY3Rpb24uaCIK
KyNpbmNsdWRlICJXZWJFbGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVJbXBsLmgiCiAjaW5j
bHVkZSAiV2ViS2l0LmgiCiAjaW5jbHVkZSAiV2ViSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAi
V2ViSW5wdXRFdmVudENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJXZWJOb2RlLmgiCiAjaW5jbHVk
ZSAiV2ViUGFzc3dvcmRBdXRvY29tcGxldGVMaXN0ZW5lci5oIgogI2luY2x1ZGUgIldlYlJhbmdl
LmgiCkBAIC02NDQsMTIgKzY0NiwxOSBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OmhhbmRsZUlu
cHV0TWV0aG9kCiAgICAgLy8gV2UgaGFuZGxlIElNRSB3aXRoaW4gY2hyb21lLgogfQogCi12b2lk
IEVkaXRvckNsaWVudEltcGw6OnRleHRGaWVsZERpZEJlZ2luRWRpdGluZyhFbGVtZW50KikKK3Zv
aWQgRWRpdG9yQ2xpZW50SW1wbDo6dGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKEVsZW1lbnQqIGVs
ZW1lbnQpCiB7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gV2ViS2l0Ojp0
b0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCk7CisgICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkg
JiYgaW5wdXRFbGVtZW50KQorICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT50ZXh0RmllbGRE
aWRCZWdpbkVkaXRpbmcoV2ViSW5wdXRFbGVtZW50KGlucHV0RWxlbWVudCkpOwogfQogCiB2b2lk
IEVkaXRvckNsaWVudEltcGw6OnRleHRGaWVsZERpZEVuZEVkaXRpbmcoRWxlbWVudCogZWxlbWVu
dCkKIHsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBXZWJLaXQ6OnRvSFRN
TElucHV0RWxlbWVudChlbGVtZW50KTsKKyAgICBpZiAobV93ZWJWaWV3LT5jbGllbnQoKSAmJiBp
bnB1dEVsZW1lbnQpCisgICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCktPnRleHRGaWVsZERpZEVu
ZEVkaXRpbmcoV2ViSW5wdXRFbGVtZW50KGlucHV0RWxlbWVudCkpOworCiAgICAgLy8gTm90aWZp
Y2F0aW9uIHRoYXQgZm9jdXMgd2FzIGxvc3QuICBCZSBjYXJlZnVsIHdpdGggdGhpcywgaXQncyBh
bHNvIHNlbnQKICAgICAvLyB3aGVuIHRoZSBwYWdlIGlzIGJlaW5nIGNsb3NlZC4KIApAQCAtNjY0
LDcgKzY3Myw2IEBAIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6dGV4dEZpZWxkRGlkRW5kRWQKICAg
ICAgICAgcmV0dXJuOyAvLyBUaGUgcGFnZSBpcyBnZXR0aW5nIGNsb3NlZCwgZG9uJ3QgZmlsbCB0
aGUgcGFzc3dvcmQuCiAKICAgICAvLyBOb3RpZnkgYW55IHBhc3N3b3JkLWxpc3RlbmVyIG9mIHRo
ZSBmb2N1cyBjaGFuZ2UuCi0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gV2Vi
S2l0Ojp0b0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCk7CiAgICAgaWYgKCFpbnB1dEVsZW1lbnQp
CiAgICAgICAgIHJldHVybjsKIApAQCAtNjgyLDEwICs2OTAsMTMgQEAgdm9pZCBFZGl0b3JDbGll
bnRJbXBsOjp0ZXh0RmllbGREaWRFbmRFZAogdm9pZCBFZGl0b3JDbGllbnRJbXBsOjp0ZXh0RGlk
Q2hhbmdlSW5UZXh0RmllbGQoRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBBU1NFUlQoZWxlbWVu
dC0+aGFzTG9jYWxOYW1lKEhUTUxOYW1lczo6aW5wdXRUYWcpKTsKKyAgICBIVE1MSW5wdXRFbGVt
ZW50KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZWxlbWVu
dCk7CisgICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCisgICAgICAgIG1fd2ViVmlldy0+Y2xp
ZW50KCktPnRleHREaWRDaGFuZ2VJblRleHRGaWVsZChXZWJJbnB1dEVsZW1lbnQoaW5wdXRFbGVt
ZW50KSk7CisKICAgICAvLyBOb3RlIHRoYXQgd2Ugb25seSBzaG93IHRoZSBhdXRvZmlsbCBwb3B1
cCBpbiB0aGlzIGNhc2UgaWYgdGhlIGNhcmV0IGlzIGF0CiAgICAgLy8gdGhlIGVuZC4gIFRoaXMg
bWF0Y2hlcyBGaXJlRm94IGFuZCBTYWZhcmkgYnV0IG5vdCBJRS4KLSAgICBhdXRvZmlsbChzdGF0
aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZWxlbWVudCksIGZhbHNlLCBmYWxzZSwKLSAgICAg
ICAgICAgICB0cnVlKTsKKyAgICBhdXRvZmlsbChpbnB1dEVsZW1lbnQsIGZhbHNlLCBmYWxzZSwg
dHJ1ZSk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50SW1wbDo6c2hvd0Zvcm1BdXRvZmlsbEZvck5v
ZGUoTm9kZSogbm9kZSkKQEAgLTc5Miw2ICs4MDMsOSBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6
OmNhbmNlbFBlbmRpbmdBdXRvCiAKIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6b25BdXRvY29tcGxl
dGVTdWdnZXN0aW9uQWNjZXB0ZWQoSFRNTElucHV0RWxlbWVudCogdGV4dEZpZWxkKQogeworICAg
IGlmIChtX3dlYlZpZXctPmNsaWVudCgpKQorICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5k
aWRBY2NlcHRBdXRvY29tcGxldGVTdWdnZXN0aW9uKFdlYklucHV0RWxlbWVudCh0ZXh0RmllbGQp
KTsKKwogICAgIFdlYkZyYW1lSW1wbCogd2ViZnJhbWUgPSBXZWJGcmFtZUltcGw6OmZyb21GcmFt
ZSh0ZXh0RmllbGQtPmRvY3VtZW50KCktPmZyYW1lKCkpOwogICAgIGlmICghd2ViZnJhbWUpCiAg
ICAgICAgIHJldHVybjsKQEAgLTgwNiw2ICs4MjAsMTIgQEAgdm9pZCBFZGl0b3JDbGllbnRJbXBs
OjpvbkF1dG9jb21wbGV0ZVN1ZwogYm9vbCBFZGl0b3JDbGllbnRJbXBsOjpkb1RleHRGaWVsZENv
bW1hbmRGcm9tRXZlbnQoRWxlbWVudCogZWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleWJvYXJkRXZlbnQqIGV2ZW50KQogeworICAg
IEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IFdlYktpdDo6dG9IVE1MSW5wdXRFbGVt
ZW50KGVsZW1lbnQpOworICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgpICYmIGlucHV0RWxlbWVu
dCkgeworICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT50ZXh0RmllbGRIYW5kbGluZ0tleURv
d24oV2ViSW5wdXRFbGVtZW50KGlucHV0RWxlbWVudCksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLZXlib2FyZEV2ZW50QnVpbGRlcigq
ZXZlbnQpKTsKKyAgICB9CisKICAgICAvLyBSZW1lbWJlciBpZiBiYWNrc3BhY2Ugd2FzIHByZXNz
ZWQgZm9yIHRoZSBhdXRvZmlsbC4gIEl0IGlzIG5vdCBjbGVhciBob3cgdG8KICAgICAvLyBmaW5k
IGlmIGJhY2tzcGFjZSB3YXMgcHJlc3NlZCBmcm9tIHRleHRGaWVsZERpZEJlZ2luRWRpdGluZyBh
bmQKICAgICAvLyB0ZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGQgYXMgd2hlbiB0aGVzZSBtZXRob2Rz
IGFyZSBjYWxsZWQgdGhlIHZhbHVlIG9mIHRoZQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJbnB1dEVsZW1lbnQuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJbnB1dEVsZW1lbnQuY3BwCShyZXZpc2lvbiA2MjAxOCkKKysrIFdlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSW5wdXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsMTEgQEAg
Ym9vbCBXZWJJbnB1dEVsZW1lbnQ6OmF1dG9Db21wbGV0ZSgpIGNvbgogICAgIHJldHVybiBjb25z
dFVud3JhcDxIVE1MSW5wdXRFbGVtZW50PigpLT5hdXRvQ29tcGxldGUoKTsKIH0KIAorYm9vbCBX
ZWJJbnB1dEVsZW1lbnQ6OnJlYWRPbmx5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29uc3RVbndy
YXA8SFRNTElucHV0RWxlbWVudD4oKS0+cmVhZE9ubHkoKTsKK30KKwogYm9vbCBXZWJJbnB1dEVs
ZW1lbnQ6OmlzRW5hYmxlZEZvcm1Db250cm9sKCkgY29uc3QKIHsKICAgICByZXR1cm4gY29uc3RV
bndyYXA8SFRNTElucHV0RWxlbWVudD4oKS0+aXNFbmFibGVkRm9ybUNvbnRyb2woKTsKQEAgLTEx
NSw2ICsxMjAsMTYgQEAgdm9pZCBXZWJJbnB1dEVsZW1lbnQ6OnNldFNlbGVjdGlvblJhbmdlKAog
ICAgIHVud3JhcDxIVE1MSW5wdXRFbGVtZW50PigpLT5zZXRTZWxlY3Rpb25SYW5nZShzdGFydCwg
ZW5kKTsKIH0KIAoraW50IFdlYklucHV0RWxlbWVudDo6c2VsZWN0aW9uU3RhcnQoKQoreworICAg
IHJldHVybiB1bndyYXA8SFRNTElucHV0RWxlbWVudD4oKS0+c2VsZWN0aW9uU3RhcnQoKTsKK30K
KworaW50IFdlYklucHV0RWxlbWVudDo6c2VsZWN0aW9uRW5kKCkKK3sKKyAgICByZXR1cm4gdW53
cmFwPEhUTUxJbnB1dEVsZW1lbnQ+KCktPnNlbGVjdGlvbkVuZCgpOworfQorCiBXZWJJbnB1dEVs
ZW1lbnQ6OldlYklucHV0RWxlbWVudChjb25zdCBQYXNzUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+
JiBlbGVtKQogICAgIDogV2ViRm9ybUNvbnRyb2xFbGVtZW50KGVsZW0pCiB7CkluZGV4OiBXZWJL
aXQvY2hyb21pdW0vc3JjL1dlYk5vZGUuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJOb2RlLmNwcAkocmV2aXNpb24gNjIwMTgpCisrKyBXZWJLaXQvY2hyb21pdW0v
c3JjL1dlYk5vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw2ICs2NywxMSBAQCBib29sIFdl
Yk5vZGU6OmVxdWFscyhjb25zdCBXZWJOb2RlJiBuKSBjCiAgICAgcmV0dXJuIChtX3ByaXZhdGUu
Z2V0KCkgPT0gbi5tX3ByaXZhdGUuZ2V0KCkpOwogfQogCitib29sIFdlYk5vZGU6Omxlc3NUaGFu
KGNvbnN0IFdlYk5vZGUmIG4pIGNvbnN0Cit7CisgICAgcmV0dXJuIChtX3ByaXZhdGUuZ2V0KCkg
PCBuLm1fcHJpdmF0ZS5nZXQoKSk7Cit9CisKIFdlYk5vZGU6Ok5vZGVUeXBlIFdlYk5vZGU6Om5v
ZGVUeXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Tm9kZVR5cGU+KG1fcHJp
dmF0ZS0+bm9kZVR5cGUoKSk7Cg==
</data>
<flag name="review"
          id="47114"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60411</attachid>
            <date>2010-07-02 15:11:53 -0700</date>
            <delta_ts>2010-07-07 17:12:26 -0700</delta_ts>
            <desc>Updated with fishd&apos;s suggested changes</desc>
            <filename>editor_client.patch</filename>
            <type>text/plain</type>
            <size>11395</size>
            <attacher name="Jay Civelli">jcivelli</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA2MjEyNSkKKysrIFdlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzOCBAQAorMjAxMC0wNi0yOCAgSmF5
IENpdmVsbGkgIDxqY2l2ZWxsaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBFeHBvc2luZyB0aGUgRWRpdG9y
Q2xpZW50IHRleHQgZmllbGQgcmVsYXRlZCBtZXRob2RzCisgICAgICAgIHRvIHRoZSBXZWJWaWV3
Q2xpZW50LiBBbHNvIGFkZGluZyBzb21lIG1vcmUgYWNjZXNzb3JzIG1ldGhvZHMKKyAgICAgICAg
dG8gdGhlIFdlYk5vZGUgYW5kIFdlYklucHV0RWxlbWVudC4KKyAgICAgICAgVGhpcyBpcyBuZWVk
ZWQgdG8gbW92ZSB0aGUgcGFzc3dvcmQgYXV0b2NvbXBsZXRlIG91dCBvZiB0aGUKKyAgICAgICAg
Q2hyb21pdW0gV2ViS2l0IEFQSSB0byB0aGUgQ2hyb21pdW0gY29kZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMjg2CisKKyAgICAgICAgKiBwdWJs
aWMvV2ViSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogcHVibGljL1dlYk5vZGUuaDoKKyAgICAg
ICAgKFdlYktpdDo6b3BlcmF0b3IhPSk6CisgICAgICAgIChXZWJLaXQ6Om9wZXJhdG9yPCk6Cisg
ICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0NsaWVudDo6dGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0NsaWVudDo6dGV4dEZpZWxkRGlkRW5kRWRpdGluZyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdDbGllbnQ6OnRleHREaWRDaGFuZ2VJblRleHRGaWVsZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdDbGllbnQ6OnRleHRGaWVsZEhhbmRsaW5nS2V5RG93bik6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdDbGllbnQ6OmRpZEFjY2VwdEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24pOgorICAg
ICAgICAqIHNyYy9FZGl0b3JDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9y
Q2xpZW50SW1wbDo6dGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKToKKyAgICAgICAgKFdlYktpdDo6
RWRpdG9yQ2xpZW50SW1wbDo6dGV4dEZpZWxkRGlkRW5kRWRpdGluZyk6CisgICAgICAgIChXZWJL
aXQ6OkVkaXRvckNsaWVudEltcGw6OnRleHREaWRDaGFuZ2VJblRleHRGaWVsZCk6CisgICAgICAg
IChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6Om9uQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbkFjY2Vw
dGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6ZG9UZXh0RmllbGRDb21t
YW5kRnJvbUV2ZW50KToKKyAgICAgICAgKiBzcmMvV2ViSW5wdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViSW5wdXRFbGVtZW50OjpyZWFkT25seSk6CisgICAgICAgIChXZWJLaXQ6
OldlYklucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5w
dXRFbGVtZW50OjpzZWxlY3Rpb25FbmQpOgorICAgICAgICAqIHNyYy9XZWJOb2RlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViTm9kZTo6bGVzc1RoYW4pOgorCiAyMDEwLTA2LTI5ICBQYXZlbCBQ
b2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFl1cnkgU2VtaWtoYXRza3kuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklucHV0
RWxlbWVudC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnB1
dEVsZW1lbnQuaAkocmV2aXNpb24gNjI0MDQpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YklucHV0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC04MCw2ICs4MCw3IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogICAgICAgICB9OwogCiAgICAgICAgIFdFQktJVF9BUEkgYm9vbCBhdXRvQ29t
cGxldGUoKSBjb25zdDsKKyAgICAgICAgV0VCS0lUX0FQSSBib29sIGlzUmVhZE9ubHkoKSBjb25z
dDsKICAgICAgICAgV0VCS0lUX0FQSSBib29sIGlzRW5hYmxlZEZvcm1Db250cm9sKCkgY29uc3Q7
CiAgICAgICAgIFdFQktJVF9BUEkgSW5wdXRUeXBlIGlucHV0VHlwZSgpIGNvbnN0OwogICAgICAg
ICBXRUJLSVRfQVBJIGludCBtYXhMZW5ndGgoKSBjb25zdDsKQEAgLTk0LDYgKzk1LDggQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIFdFQktJVF9BUEkgdm9pZCBzZXRBdXRvZmlsbGVkKGJv
b2wpOwogICAgICAgICBXRUJLSVRfQVBJIHZvaWQgZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2
ZW50KCk7CiAgICAgICAgIFdFQktJVF9BUEkgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShpbnQsIGlu
dCk7CisgICAgICAgIFdFQktJVF9BUEkgaW50IHNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgIFdF
QktJVF9BUEkgaW50IHNlbGVjdGlvbkVuZCgpOwogCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9O
CiAgICAgICAgIFdlYklucHV0RWxlbWVudChjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6
SFRNTElucHV0RWxlbWVudD4mKTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTm9k
ZS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOb2RlLmgJKHJl
dmlzaW9uIDYyNDA0KQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOb2RlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTYxLDcgKzYxLDEwIEBAIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJIHZvaWQg
YXNzaWduKGNvbnN0IFdlYk5vZGUmKTsKIAogICAgIFdFQktJVF9BUEkgYm9vbCBlcXVhbHMoY29u
c3QgV2ViTm9kZSYpIGNvbnN0OwotCisgICAgLy8gUmVxdWlyZWQgZm9yIHVzaW5nIFdlYk5vZGVz
IGluIHN0ZCBtYXBzLiAgTm90ZSB0aGUgb3JkZXIgdXNlZCBpcworICAgIC8vIGFyYml0cmFyeSBh
bmQgc2hvdWxkIG5vdCBiZSBleHBlY3RlZCB0byBoYXZlIGFueSBzcGVjaWZpYyBtZWFuaW5nLgor
ICAgIFdFQktJVF9BUEkgYm9vbCBsZXNzVGhhbihjb25zdCBXZWJOb2RlJikgY29uc3Q7CisgICAg
CiAgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGUuaXNOdWxsKCk7IH0K
IAogICAgIGVudW0gTm9kZVR5cGUgewpAQCAtMTUwLDYgKzE1MywxMSBAQCBpbmxpbmUgYm9vbCBv
cGVyYXRvciE9KGNvbnN0IFdlYk5vZGUmIGEsCiAgICAgcmV0dXJuICEoYSA9PSBiKTsKIH0KIAor
aW5saW5lIGJvb2wgb3BlcmF0b3I8KGNvbnN0IFdlYk5vZGUmIGEsIGNvbnN0IFdlYk5vZGUmIGIp
Cit7CisgICAgcmV0dXJuIGEubGVzc1RoYW4oYik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCiAjZW5kaWYKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5o
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgJ
KHJldmlzaW9uIDYyNDA0KQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDEwICs0NSwxMyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogY2xhc3MgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDsKIGNsYXNzIFdlYkRyYWdEYXRhOworY2xh
c3MgV2ViRWxlbWVudDsKIGNsYXNzIFdlYkZpbGVDaG9vc2VyQ29tcGxldGlvbjsKIGNsYXNzIFdl
YkZyYW1lOwogY2xhc3MgV2ViR2VvbG9jYXRpb25TZXJ2aWNlOwogY2xhc3MgV2ViSW1hZ2U7Citj
bGFzcyBXZWJJbnB1dEVsZW1lbnQ7CitjbGFzcyBXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2Vi
Tm9kZTsKIGNsYXNzIFdlYk5vdGlmaWNhdGlvblByZXNlbnRlcjsKIGNsYXNzIFdlYlJhbmdlOwpA
QCAtMTMyLDYgKzEzNSwxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4ZWN1dGVD
b21tYW5kKGNvbnN0IFdlYlN0cmluZyYgY29tbWFuZE5hbWUpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBkaWRFbmRFZGl0aW5nKCkgeyB9CiAKKyAgICAvLyBUaGVzZSBtZXRob2RzIGFyZSBjYWxsZWQg
d2hlbiB0aGUgdXNlcnMgZWRpdHMgYSB0ZXh0LWZpZWxkLgorICAgIHZpcnR1YWwgdm9pZCB0ZXh0
RmllbGREaWRCZWdpbkVkaXRpbmcoY29uc3QgV2ViSW5wdXRFbGVtZW50JikgeyB9CisgICAgdmly
dHVhbCB2b2lkIHRleHRGaWVsZERpZEVuZEVkaXRpbmcoY29uc3QgV2ViSW5wdXRFbGVtZW50Jikg
eyB9CisgICAgdmlydHVhbCB2b2lkIHRleHRGaWVsZERpZENoYW5nZShjb25zdCBXZWJJbnB1dEVs
ZW1lbnQmKSB7IH0KKyAgICAvLyBDYWxsZWQgd2hlbiBhIGtleSBkb3duIGhhcHBlbnMgaW4gYSB0
ZXh0LWZpZWxkLgorICAgIHZpcnR1YWwgdm9pZCB0ZXh0RmllbGREaWRSZWNlaXZlS2V5RG93bihj
b25zdCBXZWJJbnB1dEVsZW1lbnQmLCBjb25zdCBXZWJLZXlib2FyZEV2ZW50JikgeyB9CisKICAg
ICAvLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgaW4gcmVzcG9uc2UgdG8gV2ViVmlldydzIGhhbmRs
ZUlucHV0RXZlbnQoKQogICAgIC8vIHdoZW4gdGhlIGRlZmF1bHQgYWN0aW9uIGZvciB0aGUgY3Vy
cmVudCBrZXlib2FyZCBldmVudCBpcyBub3QKICAgICAvLyBzdXBwcmVzc2VkIGJ5IHRoZSBwYWdl
LCB0byBnaXZlIHRoZSBlbWJlZGRlciBhIGNoYW5jZSB0byBoYW5kbGUKQEAgLTMxMiw2ICszMjIs
MTEgQEAgcHVibGljOgogICAgIC8vIGtleXMgdG8gbmF2aWdhdGUgb3V0c2lkZSB0aGUgcmFuZ2Ug
b2YgcG9zc2libGUgc2VsZWN0aW9ucy4KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYXJBdXRvRmls
bFNlbGVjdGlvbihjb25zdCBXZWJOb2RlJikgeyB9CiAKKyAgICAvLyBJbmZvcm1zIHRoZSBicm93
c2VyIHRoYXQgdGhlIHVzZXIgaGFzIHNlbGVjdGVkIGFuIGF1dG9jb21wbGV0ZSAocGFzc3dvcmQK
KyAgICAvLyBvciBmaWVsZCkgc3VnZ2VzdGlvbiBmcm9tIHRoZSBkcm9wLWRvd24uICBUaGUgaW5w
dXQgZWxlbWVudCB0ZXh0IGhhcworICAgIC8vIGFscmVhZHkgYmVlbiBzZXQgdG8gdGhlIHNlbGVj
dGVkIHN1Z2dlc3Rpb24uCisgICAgdmlydHVhbCB2b2lkIGRpZEFjY2VwdEF1dG9jb21wbGV0ZVN1
Z2dlc3Rpb24oY29uc3QgV2ViSW5wdXRFbGVtZW50JikgeyB9CisKICAgICAvLyBHZW9sb2NhdGlv
biAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIAogICAgIC8vIEFjY2VzcyB0aGUgZW1iZWRkZXIgQVBJIGZvciBnZW9sb2NhdGlvbiBzZXJ2
aWNlcy4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHANCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCi0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCShy
ZXZpc2lvbiA2MjQwNCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDkgKzQzLDExIEBACiAKICNpbmNsdWRlICJET01VdGls
aXRpZXNQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViRWRpdGluZ0FjdGlvbi5oIgorI2luY2x1ZGUg
IldlYkVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKICNpbmNsdWRlICJXZWJL
aXQuaCIKICNpbmNsdWRlICJXZWJJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJXZWJJbnB1dEV2
ZW50Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYk5vZGUuaCIKICNpbmNsdWRlICJXZWJQYXNz
d29yZEF1dG9jb21wbGV0ZUxpc3RlbmVyLmgiCiAjaW5jbHVkZSAiV2ViUmFuZ2UuaCIKQEAgLTkw
LDcgKzkyLDcgQEAgYm9vbCBFZGl0b3JDbGllbnRJbXBsOjpzaG91bGRTaG93RGVsZXRlSQogICAg
IC8vIE5vcm1hbGx5LCB3ZSBkb24ndCBjYXJlIHRvIHNob3cgV2ViQ29yZSdzIGRlbGV0aW9uIFVJ
LCBzbyB3ZSBvbmx5IGVuYWJsZQogICAgIC8vIGl0IGlmIGluIHRlc3RpbmcgbW9kZSBhbmQgdGhl
IHRlc3Qgc3BlY2lmaWNhbGx5IHJlcXVlc3RzIGl0IGJ5IHVzaW5nIHRoaXMKICAgICAvLyBtYWdp
YyBjbGFzcyBuYW1lLgotICAgIHJldHVybiBXZWJLaXQ6OmxheW91dFRlc3RNb2RlKCkKKyAgICBy
ZXR1cm4gbGF5b3V0VGVzdE1vZGUoKQogICAgICAgICAgICAmJiBlbGVtLT5nZXRBdHRyaWJ1dGUo
SFRNTE5hbWVzOjpjbGFzc0F0dHIpID09ICJuZWVkc0RlbGV0aW9uVUkiOwogfQogCkBAIC02NDQs
MTIgKzY0NiwxOSBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OmhhbmRsZUlucHV0TWV0aG9kCiAg
ICAgLy8gV2UgaGFuZGxlIElNRSB3aXRoaW4gY2hyb21lLgogfQogCi12b2lkIEVkaXRvckNsaWVu
dEltcGw6OnRleHRGaWVsZERpZEJlZ2luRWRpdGluZyhFbGVtZW50KikKK3ZvaWQgRWRpdG9yQ2xp
ZW50SW1wbDo6dGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKEVsZW1lbnQqIGVsZW1lbnQpCiB7Cisg
ICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gdG9IVE1MSW5wdXRFbGVtZW50KGVs
ZW1lbnQpOworICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgpICYmIGlucHV0RWxlbWVudCkKKyAg
ICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+dGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKFdlYklu
cHV0RWxlbWVudChpbnB1dEVsZW1lbnQpKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRJbXBsOjp0
ZXh0RmllbGREaWRFbmRFZGl0aW5nKEVsZW1lbnQqIGVsZW1lbnQpCiB7CisgICAgSFRNTElucHV0
RWxlbWVudCogaW5wdXRFbGVtZW50ID0gdG9IVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpOworICAg
IGlmIChtX3dlYlZpZXctPmNsaWVudCgpICYmIGlucHV0RWxlbWVudCkKKyAgICAgICAgbV93ZWJW
aWV3LT5jbGllbnQoKS0+dGV4dEZpZWxkRGlkRW5kRWRpdGluZyhXZWJJbnB1dEVsZW1lbnQoaW5w
dXRFbGVtZW50KSk7CisKICAgICAvLyBOb3RpZmljYXRpb24gdGhhdCBmb2N1cyB3YXMgbG9zdC4g
IEJlIGNhcmVmdWwgd2l0aCB0aGlzLCBpdCdzIGFsc28gc2VudAogICAgIC8vIHdoZW4gdGhlIHBh
Z2UgaXMgYmVpbmcgY2xvc2VkLgogCkBAIC02NjQsNyArNjczLDYgQEAgdm9pZCBFZGl0b3JDbGll
bnRJbXBsOjp0ZXh0RmllbGREaWRFbmRFZAogICAgICAgICByZXR1cm47IC8vIFRoZSBwYWdlIGlz
IGdldHRpbmcgY2xvc2VkLCBkb24ndCBmaWxsIHRoZSBwYXNzd29yZC4KIAogICAgIC8vIE5vdGlm
eSBhbnkgcGFzc3dvcmQtbGlzdGVuZXIgb2YgdGhlIGZvY3VzIGNoYW5nZS4KLSAgICBIVE1MSW5w
dXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBXZWJLaXQ6OnRvSFRNTElucHV0RWxlbWVudChlbGVt
ZW50KTsKICAgICBpZiAoIWlucHV0RWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCkBAIC02ODIs
MTUgKzY5MCwxOCBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OnRleHRGaWVsZERpZEVuZEVkCiB2
b2lkIEVkaXRvckNsaWVudEltcGw6OnRleHREaWRDaGFuZ2VJblRleHRGaWVsZChFbGVtZW50KiBl
bGVtZW50KQogewogICAgIEFTU0VSVChlbGVtZW50LT5oYXNMb2NhbE5hbWUoSFRNTE5hbWVzOjpp
bnB1dFRhZykpOworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0YXRpY19j
YXN0PEhUTUxJbnB1dEVsZW1lbnQqPihlbGVtZW50KTsKKyAgICBpZiAobV93ZWJWaWV3LT5jbGll
bnQoKSkKKyAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+dGV4dEZpZWxkRGlkQ2hhbmdlKFdl
YklucHV0RWxlbWVudChpbnB1dEVsZW1lbnQpKTsKKwogICAgIC8vIE5vdGUgdGhhdCB3ZSBvbmx5
IHNob3cgdGhlIGF1dG9maWxsIHBvcHVwIGluIHRoaXMgY2FzZSBpZiB0aGUgY2FyZXQgaXMgYXQK
ICAgICAvLyB0aGUgZW5kLiAgVGhpcyBtYXRjaGVzIEZpcmVGb3ggYW5kIFNhZmFyaSBidXQgbm90
IElFLgotICAgIGF1dG9maWxsKHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihlbGVtZW50
KSwgZmFsc2UsIGZhbHNlLAotICAgICAgICAgICAgIHRydWUpOworICAgIGF1dG9maWxsKGlucHV0
RWxlbWVudCwgZmFsc2UsIGZhbHNlLCB0cnVlKTsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnRJbXBs
OjpzaG93Rm9ybUF1dG9maWxsRm9yTm9kZShOb2RlKiBub2RlKQogewotICAgIEhUTUxJbnB1dEVs
ZW1lbnQqIGlucHV0RWxlbWVudCA9IFdlYktpdDo6dG9IVE1MSW5wdXRFbGVtZW50KG5vZGUpOwor
ICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVudChu
b2RlKTsKICAgICBpZiAoaW5wdXRFbGVtZW50KQogICAgICAgICByZXR1cm4gYXV0b2ZpbGwoaW5w
dXRFbGVtZW50LCB0cnVlLCB0cnVlLCBmYWxzZSk7CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNzky
LDYgKzgwMyw5IEBAIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6Y2FuY2VsUGVuZGluZ0F1dG8KIAog
dm9pZCBFZGl0b3JDbGllbnRJbXBsOjpvbkF1dG9jb21wbGV0ZVN1Z2dlc3Rpb25BY2NlcHRlZChI
VE1MSW5wdXRFbGVtZW50KiB0ZXh0RmllbGQpCiB7CisgICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50
KCkpCisgICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCktPmRpZEFjY2VwdEF1dG9jb21wbGV0ZVN1
Z2dlc3Rpb24oV2ViSW5wdXRFbGVtZW50KHRleHRGaWVsZCkpOworCiAgICAgV2ViRnJhbWVJbXBs
KiB3ZWJmcmFtZSA9IFdlYkZyYW1lSW1wbDo6ZnJvbUZyYW1lKHRleHRGaWVsZC0+ZG9jdW1lbnQo
KS0+ZnJhbWUoKSk7CiAgICAgaWYgKCF3ZWJmcmFtZSkKICAgICAgICAgcmV0dXJuOwpAQCAtODAy
LDYgKzgxNiwxMiBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6Om9uQXV0b2NvbXBsZXRlU3VnCiBi
b29sIEVkaXRvckNsaWVudEltcGw6OmRvVGV4dEZpZWxkQ29tbWFuZEZyb21FdmVudChFbGVtZW50
KiBlbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5w
dXRFbGVtZW50ID0gdG9IVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpOworICAgIGlmIChtX3dlYlZp
ZXctPmNsaWVudCgpICYmIGlucHV0RWxlbWVudCkgeworICAgICAgICBtX3dlYlZpZXctPmNsaWVu
dCgpLT50ZXh0RmllbGREaWRSZWNlaXZlS2V5RG93bihXZWJJbnB1dEVsZW1lbnQoaW5wdXRFbGVt
ZW50KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV2ViS2V5Ym9hcmRFdmVudEJ1aWxkZXIoKmV2ZW50KSk7CisgICAgfQorCiAgICAgLy8g
UmVtZW1iZXIgaWYgYmFja3NwYWNlIHdhcyBwcmVzc2VkIGZvciB0aGUgYXV0b2ZpbGwuICBJdCBp
cyBub3QgY2xlYXIgaG93IHRvCiAgICAgLy8gZmluZCBpZiBiYWNrc3BhY2Ugd2FzIHByZXNzZWQg
ZnJvbSB0ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcgYW5kCiAgICAgLy8gdGV4dERpZENoYW5nZUlu
VGV4dEZpZWxkIGFzIHdoZW4gdGhlc2UgbWV0aG9kcyBhcmUgY2FsbGVkIHRoZSB2YWx1ZSBvZiB0
aGUKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFbGVtZW50LmNwcA0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFbGVtZW50LmNwcAkocmV2aXNp
b24gNjI0MDQpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDExIEBAIGJvb2wgV2ViSW5wdXRFbGVtZW50OjphdXRv
Q29tcGxldGUoKSBjb24KICAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTElucHV0RWxlbWVudD4o
KS0+YXV0b0NvbXBsZXRlKCk7CiB9CiAKK2Jvb2wgV2ViSW5wdXRFbGVtZW50Ojppc1JlYWRPbmx5
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTElucHV0RWxlbWVudD4oKS0+
cmVhZE9ubHkoKTsKK30KKwogYm9vbCBXZWJJbnB1dEVsZW1lbnQ6OmlzRW5hYmxlZEZvcm1Db250
cm9sKCkgY29uc3QKIHsKICAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTElucHV0RWxlbWVudD4o
KS0+aXNFbmFibGVkRm9ybUNvbnRyb2woKTsKQEAgLTExNSw2ICsxMjAsMTYgQEAgdm9pZCBXZWJJ
bnB1dEVsZW1lbnQ6OnNldFNlbGVjdGlvblJhbmdlKAogICAgIHVud3JhcDxIVE1MSW5wdXRFbGVt
ZW50PigpLT5zZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kKTsKIH0KIAoraW50IFdlYklucHV0
RWxlbWVudDo6c2VsZWN0aW9uU3RhcnQoKQoreworICAgIHJldHVybiB1bndyYXA8SFRNTElucHV0
RWxlbWVudD4oKS0+c2VsZWN0aW9uU3RhcnQoKTsKK30KKworaW50IFdlYklucHV0RWxlbWVudDo6
c2VsZWN0aW9uRW5kKCkKK3sKKyAgICByZXR1cm4gdW53cmFwPEhUTUxJbnB1dEVsZW1lbnQ+KCkt
PnNlbGVjdGlvbkVuZCgpOworfQorCiBXZWJJbnB1dEVsZW1lbnQ6OldlYklucHV0RWxlbWVudChj
b25zdCBQYXNzUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+JiBlbGVtKQogICAgIDogV2ViRm9ybUNv
bnRyb2xFbGVtZW50KGVsZW0pCiB7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYk5vZGUu
Y3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJOb2RlLmNwcAkocmV2
aXNpb24gNjI0MDQpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYk5vZGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02Nyw2ICs2NywxMSBAQCBib29sIFdlYk5vZGU6OmVxdWFscyhjb25zdCBXZWJO
b2RlJiBuKSBjCiAgICAgcmV0dXJuIChtX3ByaXZhdGUuZ2V0KCkgPT0gbi5tX3ByaXZhdGUuZ2V0
KCkpOwogfQogCitib29sIFdlYk5vZGU6Omxlc3NUaGFuKGNvbnN0IFdlYk5vZGUmIG4pIGNvbnN0
Cit7CisgICAgcmV0dXJuIChtX3ByaXZhdGUuZ2V0KCkgPCBuLm1fcHJpdmF0ZS5nZXQoKSk7Cit9
CisKIFdlYk5vZGU6Ok5vZGVUeXBlIFdlYk5vZGU6Om5vZGVUeXBlKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Tm9kZVR5cGU+KG1fcHJpdmF0ZS0+bm9kZVR5cGUoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60808</attachid>
            <date>2010-07-07 17:12:45 -0700</date>
            <delta_ts>2010-07-08 22:26:05 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-41286-20100707171244.patch</filename>
            <type>text/plain</type>
            <size>11359</size>
            <attacher name="Jay Civelli">jcivelli</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjI3MDQpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzggQEAKKzIwMTAtMDYtMjggIEpheSBD
aXZlbGxpICA8amNpdmVsbGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEZpc2hlci4KKworICAgICAgICBbY2hyb21pdW1dIEV4cG9zaW5nIHRoZSBFZGl0b3JDbGll
bnQgdGV4dCBmaWVsZCByZWxhdGVkIG1ldGhvZHMKKyAgICAgICAgdG8gdGhlIFdlYlZpZXdDbGll
bnQuIEFsc28gYWRkaW5nIHNvbWUgbW9yZSBhY2Nlc3NvcnMgbWV0aG9kcworICAgICAgICB0byB0
aGUgV2ViTm9kZSBhbmQgV2ViSW5wdXRFbGVtZW50LgorICAgICAgICBUaGlzIGlzIG5lZWRlZCB0
byBtb3ZlIHRoZSBwYXNzd29yZCBhdXRvY29tcGxldGUgb3V0IG9mIHRoZQorICAgICAgICBDaHJv
bWl1bSBXZWJLaXQgQVBJIHRvIHRoZSBDaHJvbWl1bSBjb2RlLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDEyODYKKworICAgICAgICAqIHB1YmxpYy9X
ZWJJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViTm9kZS5oOgorICAgICAgICAo
V2ViS2l0OjpvcGVyYXRvciE9KToKKyAgICAgICAgKFdlYktpdDo6b3BlcmF0b3I8KToKKyAgICAg
ICAgKiBwdWJsaWMvV2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xp
ZW50Ojp0ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
Q2xpZW50Ojp0ZXh0RmllbGREaWRFbmRFZGl0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0NsaWVudDo6dGV4dERpZENoYW5nZUluVGV4dEZpZWxkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0NsaWVudDo6dGV4dEZpZWxkSGFuZGxpbmdLZXlEb3duKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0NsaWVudDo6ZGlkQWNjZXB0QXV0b2NvbXBsZXRlU3VnZ2VzdGlvbik6CisgICAgICAg
ICogc3JjL0VkaXRvckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGll
bnRJbXBsOjp0ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpFZGl0
b3JDbGllbnRJbXBsOjp0ZXh0RmllbGREaWRFbmRFZGl0aW5nKToKKyAgICAgICAgKFdlYktpdDo6
RWRpdG9yQ2xpZW50SW1wbDo6dGV4dERpZENoYW5nZUluVGV4dEZpZWxkKToKKyAgICAgICAgKFdl
YktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6b25BdXRvY29tcGxldGVTdWdnZXN0aW9uQWNjZXB0ZWQp
OgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpkb1RleHRGaWVsZENvbW1hbmRG
cm9tRXZlbnQpOgorICAgICAgICAqIHNyYy9XZWJJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnB1dEVsZW1lbnQ6OnJlYWRPbmx5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
SW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklu
cHV0RWxlbWVudDo6c2VsZWN0aW9uU3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnB1dEVs
ZW1lbnQ6OnNlbGVjdGlvbkVuZCk6CisgICAgICAgICogc3JjL1dlYk5vZGUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJOb2RlOjpsZXNzVGhhbik6CisKIDIwMTAtMDctMDcgIEphbWVzIFJvYmlu
c29uICA8amFtZXNyQGNocm9taXVtLm9yZz4gYW5kIFZpbmNlbnQgU2NoZWliIDxzY2hpZWJAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KSW5kZXg6
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW5wdXRFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnB1dEVsZW1lbnQuaAkocmV2aXNpb24gNjI3MDQp
CisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklucHV0RWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC04MCw2ICs4MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICB9OwogCiAg
ICAgICAgIFdFQktJVF9BUEkgYm9vbCBhdXRvQ29tcGxldGUoKSBjb25zdDsKKyAgICAgICAgV0VC
S0lUX0FQSSBib29sIGlzUmVhZE9ubHkoKSBjb25zdDsKICAgICAgICAgV0VCS0lUX0FQSSBib29s
IGlzRW5hYmxlZEZvcm1Db250cm9sKCkgY29uc3Q7CiAgICAgICAgIFdFQktJVF9BUEkgSW5wdXRU
eXBlIGlucHV0VHlwZSgpIGNvbnN0OwogICAgICAgICBXRUJLSVRfQVBJIGludCBtYXhMZW5ndGgo
KSBjb25zdDsKQEAgLTk0LDYgKzk1LDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIFdF
QktJVF9BUEkgdm9pZCBzZXRBdXRvZmlsbGVkKGJvb2wpOwogICAgICAgICBXRUJLSVRfQVBJIHZv
aWQgZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KCk7CiAgICAgICAgIFdFQktJVF9BUEkg
dm9pZCBzZXRTZWxlY3Rpb25SYW5nZShpbnQsIGludCk7CisgICAgICAgIFdFQktJVF9BUEkgaW50
IHNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgIFdFQktJVF9BUEkgaW50IHNlbGVjdGlvbkVuZCgp
OwogCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCiAgICAgICAgIFdlYklucHV0RWxlbWVudChj
b25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTElucHV0RWxlbWVudD4mKTsKSW5kZXg6
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViTm9kZS5oCShyZXZpc2lvbiA2MjcwNCkKKysrIFdlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSwxMCBAQCBw
dWJsaWM6CiAgICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihjb25zdCBXZWJOb2RlJik7CiAKICAg
ICBXRUJLSVRfQVBJIGJvb2wgZXF1YWxzKGNvbnN0IFdlYk5vZGUmKSBjb25zdDsKLQorICAgIC8v
IFJlcXVpcmVkIGZvciB1c2luZyBXZWJOb2RlcyBpbiBzdGQgbWFwcy4gIE5vdGUgdGhlIG9yZGVy
IHVzZWQgaXMKKyAgICAvLyBhcmJpdHJhcnkgYW5kIHNob3VsZCBub3QgYmUgZXhwZWN0ZWQgdG8g
aGF2ZSBhbnkgc3BlY2lmaWMgbWVhbmluZy4KKyAgICBXRUJLSVRfQVBJIGJvb2wgbGVzc1RoYW4o
Y29uc3QgV2ViTm9kZSYpIGNvbnN0OworICAgIAogICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyBy
ZXR1cm4gbV9wcml2YXRlLmlzTnVsbCgpOyB9CiAKICAgICBlbnVtIE5vZGVUeXBlIHsKQEAgLTE1
MCw2ICsxNTMsMTEgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBXZWJOb2RlJiBhLAog
ICAgIHJldHVybiAhKGEgPT0gYik7CiB9CiAKK2lubGluZSBib29sIG9wZXJhdG9yPChjb25zdCBX
ZWJOb2RlJiBhLCBjb25zdCBXZWJOb2RlJiBiKQoreworICAgIHJldHVybiBhLmxlc3NUaGFuKGIp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmCkluZGV4OiBXZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAkocmV2aXNpb24gNjI3MDQpCisrKyBXZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsMTAgKzQ1
LDEzIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
OwogY2xhc3MgV2ViRHJhZ0RhdGE7CitjbGFzcyBXZWJFbGVtZW50OwogY2xhc3MgV2ViRmlsZUNo
b29zZXJDb21wbGV0aW9uOwogY2xhc3MgV2ViRnJhbWU7CiBjbGFzcyBXZWJHZW9sb2NhdGlvblNl
cnZpY2U7CiBjbGFzcyBXZWJJbWFnZTsKK2NsYXNzIFdlYklucHV0RWxlbWVudDsKK2NsYXNzIFdl
YktleWJvYXJkRXZlbnQ7CiBjbGFzcyBXZWJOb2RlOwogY2xhc3MgV2ViTm90aWZpY2F0aW9uUHJl
c2VudGVyOwogY2xhc3MgV2ViUmFuZ2U7CkBAIC0xMzIsNiArMTM1LDEyIEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkRXhlY3V0ZUNvbW1hbmQoY29uc3QgV2ViU3RyaW5nJiBjb21tYW5k
TmFtZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEVuZEVkaXRpbmcoKSB7IH0KIAorICAgIC8v
IFRoZXNlIG1ldGhvZHMgYXJlIGNhbGxlZCB3aGVuIHRoZSB1c2VycyBlZGl0cyBhIHRleHQtZmll
bGQuCisgICAgdmlydHVhbCB2b2lkIHRleHRGaWVsZERpZEJlZ2luRWRpdGluZyhjb25zdCBXZWJJ
bnB1dEVsZW1lbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdGV4dEZpZWxkRGlkRW5kRWRpdGlu
Zyhjb25zdCBXZWJJbnB1dEVsZW1lbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdGV4dEZpZWxk
RGlkQ2hhbmdlKGNvbnN0IFdlYklucHV0RWxlbWVudCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB0
ZXh0RmllbGREaWRSZWNlaXZlS2V5RG93bihjb25zdCBXZWJJbnB1dEVsZW1lbnQmLCBjb25zdCBX
ZWJLZXlib2FyZEV2ZW50JikgeyB9CisKICAgICAvLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgaW4g
cmVzcG9uc2UgdG8gV2ViVmlldydzIGhhbmRsZUlucHV0RXZlbnQoKQogICAgIC8vIHdoZW4gdGhl
IGRlZmF1bHQgYWN0aW9uIGZvciB0aGUgY3VycmVudCBrZXlib2FyZCBldmVudCBpcyBub3QKICAg
ICAvLyBzdXBwcmVzc2VkIGJ5IHRoZSBwYWdlLCB0byBnaXZlIHRoZSBlbWJlZGRlciBhIGNoYW5j
ZSB0byBoYW5kbGUKQEAgLTMxMiw2ICszMjEsMTEgQEAgcHVibGljOgogICAgIC8vIGtleXMgdG8g
bmF2aWdhdGUgb3V0c2lkZSB0aGUgcmFuZ2Ugb2YgcG9zc2libGUgc2VsZWN0aW9ucy4KICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2xlYXJBdXRvRmlsbFNlbGVjdGlvbihjb25zdCBXZWJOb2RlJikgeyB9
CiAKKyAgICAvLyBJbmZvcm1zIHRoZSBicm93c2VyIHRoYXQgdGhlIHVzZXIgaGFzIHNlbGVjdGVk
IGFuIGF1dG9jb21wbGV0ZSAocGFzc3dvcmQKKyAgICAvLyBvciBmaWVsZCkgc3VnZ2VzdGlvbiBm
cm9tIHRoZSBkcm9wLWRvd24uICBUaGUgaW5wdXQgZWxlbWVudCB0ZXh0IGhhcworICAgIC8vIGFs
cmVhZHkgYmVlbiBzZXQgdG8gdGhlIHNlbGVjdGVkIHN1Z2dlc3Rpb24uCisgICAgdmlydHVhbCB2
b2lkIGRpZEFjY2VwdEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24oY29uc3QgV2ViSW5wdXRFbGVtZW50
JikgeyB9CisKICAgICAvLyBHZW9sb2NhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogICAgIC8vIEFjY2VzcyB0aGUgZW1iZWRk
ZXIgQVBJIGZvciBnZW9sb2NhdGlvbiBzZXJ2aWNlcy4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9z
cmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3Ny
Yy9FZGl0b3JDbGllbnRJbXBsLmNwcAkocmV2aXNpb24gNjI3MDQpCisrKyBXZWJLaXQvY2hyb21p
dW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw5ICs0Mywx
MSBAQAogCiAjaW5jbHVkZSAiRE9NVXRpbGl0aWVzUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkVk
aXRpbmdBY3Rpb24uaCIKKyNpbmNsdWRlICJXZWJFbGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViRnJh
bWVJbXBsLmgiCiAjaW5jbHVkZSAiV2ViS2l0LmgiCiAjaW5jbHVkZSAiV2ViSW5wdXRFbGVtZW50
LmgiCisjaW5jbHVkZSAiV2ViSW5wdXRFdmVudENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJXZWJO
b2RlLmgiCiAjaW5jbHVkZSAiV2ViUGFzc3dvcmRBdXRvY29tcGxldGVMaXN0ZW5lci5oIgogI2lu
Y2x1ZGUgIldlYlJhbmdlLmgiCkBAIC05MCw3ICs5Miw3IEBAIGJvb2wgRWRpdG9yQ2xpZW50SW1w
bDo6c2hvdWxkU2hvd0RlbGV0ZUkKICAgICAvLyBOb3JtYWxseSwgd2UgZG9uJ3QgY2FyZSB0byBz
aG93IFdlYkNvcmUncyBkZWxldGlvbiBVSSwgc28gd2Ugb25seSBlbmFibGUKICAgICAvLyBpdCBp
ZiBpbiB0ZXN0aW5nIG1vZGUgYW5kIHRoZSB0ZXN0IHNwZWNpZmljYWxseSByZXF1ZXN0cyBpdCBi
eSB1c2luZyB0aGlzCiAgICAgLy8gbWFnaWMgY2xhc3MgbmFtZS4KLSAgICByZXR1cm4gV2ViS2l0
OjpsYXlvdXRUZXN0TW9kZSgpCisgICAgcmV0dXJuIGxheW91dFRlc3RNb2RlKCkKICAgICAgICAg
ICAgJiYgZWxlbS0+Z2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyKSA9PSAibmVlZHNE
ZWxldGlvblVJIjsKIH0KIApAQCAtNjQ0LDEyICs2NDYsMTkgQEAgdm9pZCBFZGl0b3JDbGllbnRJ
bXBsOjpoYW5kbGVJbnB1dE1ldGhvZAogICAgIC8vIFdlIGhhbmRsZSBJTUUgd2l0aGluIGNocm9t
ZS4KIH0KIAotdm9pZCBFZGl0b3JDbGllbnRJbXBsOjp0ZXh0RmllbGREaWRCZWdpbkVkaXRpbmco
RWxlbWVudCopCit2b2lkIEVkaXRvckNsaWVudEltcGw6OnRleHRGaWVsZERpZEJlZ2luRWRpdGlu
ZyhFbGVtZW50KiBlbGVtZW50KQogeworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVu
dCA9IHRvSFRNTElucHV0RWxlbWVudChlbGVtZW50KTsKKyAgICBpZiAobV93ZWJWaWV3LT5jbGll
bnQoKSAmJiBpbnB1dEVsZW1lbnQpCisgICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCktPnRleHRG
aWVsZERpZEJlZ2luRWRpdGluZyhXZWJJbnB1dEVsZW1lbnQoaW5wdXRFbGVtZW50KSk7CiB9CiAK
IHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6dGV4dEZpZWxkRGlkRW5kRWRpdGluZyhFbGVtZW50KiBl
bGVtZW50KQogeworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHRvSFRNTElu
cHV0RWxlbWVudChlbGVtZW50KTsKKyAgICBpZiAobV93ZWJWaWV3LT5jbGllbnQoKSAmJiBpbnB1
dEVsZW1lbnQpCisgICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCktPnRleHRGaWVsZERpZEVuZEVk
aXRpbmcoV2ViSW5wdXRFbGVtZW50KGlucHV0RWxlbWVudCkpOworCiAgICAgLy8gTm90aWZpY2F0
aW9uIHRoYXQgZm9jdXMgd2FzIGxvc3QuICBCZSBjYXJlZnVsIHdpdGggdGhpcywgaXQncyBhbHNv
IHNlbnQKICAgICAvLyB3aGVuIHRoZSBwYWdlIGlzIGJlaW5nIGNsb3NlZC4KIApAQCAtNjY0LDcg
KzY3Myw2IEBAIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6dGV4dEZpZWxkRGlkRW5kRWQKICAgICAg
ICAgcmV0dXJuOyAvLyBUaGUgcGFnZSBpcyBnZXR0aW5nIGNsb3NlZCwgZG9uJ3QgZmlsbCB0aGUg
cGFzc3dvcmQuCiAKICAgICAvLyBOb3RpZnkgYW55IHBhc3N3b3JkLWxpc3RlbmVyIG9mIHRoZSBm
b2N1cyBjaGFuZ2UuCi0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gV2ViS2l0
Ojp0b0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCk7CiAgICAgaWYgKCFpbnB1dEVsZW1lbnQpCiAg
ICAgICAgIHJldHVybjsKIApAQCAtNjgyLDE1ICs2OTAsMTggQEAgdm9pZCBFZGl0b3JDbGllbnRJ
bXBsOjp0ZXh0RmllbGREaWRFbmRFZAogdm9pZCBFZGl0b3JDbGllbnRJbXBsOjp0ZXh0RGlkQ2hh
bmdlSW5UZXh0RmllbGQoRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBBU1NFUlQoZWxlbWVudC0+
aGFzTG9jYWxOYW1lKEhUTUxOYW1lczo6aW5wdXRUYWcpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50
KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZWxlbWVudCk7
CisgICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCisgICAgICAgIG1fd2ViVmlldy0+Y2xpZW50
KCktPnRleHRGaWVsZERpZENoYW5nZShXZWJJbnB1dEVsZW1lbnQoaW5wdXRFbGVtZW50KSk7CisK
ICAgICAvLyBOb3RlIHRoYXQgd2Ugb25seSBzaG93IHRoZSBhdXRvZmlsbCBwb3B1cCBpbiB0aGlz
IGNhc2UgaWYgdGhlIGNhcmV0IGlzIGF0CiAgICAgLy8gdGhlIGVuZC4gIFRoaXMgbWF0Y2hlcyBG
aXJlRm94IGFuZCBTYWZhcmkgYnV0IG5vdCBJRS4KLSAgICBhdXRvZmlsbChzdGF0aWNfY2FzdDxI
VE1MSW5wdXRFbGVtZW50Kj4oZWxlbWVudCksIGZhbHNlLCBmYWxzZSwKLSAgICAgICAgICAgICB0
cnVlKTsKKyAgICBhdXRvZmlsbChpbnB1dEVsZW1lbnQsIGZhbHNlLCBmYWxzZSwgdHJ1ZSk7CiB9
CiAKIGJvb2wgRWRpdG9yQ2xpZW50SW1wbDo6c2hvd0Zvcm1BdXRvZmlsbEZvck5vZGUoTm9kZSog
bm9kZSkKIHsKLSAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBXZWJLaXQ6OnRv
SFRNTElucHV0RWxlbWVudChub2RlKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1l
bnQgPSB0b0hUTUxJbnB1dEVsZW1lbnQobm9kZSk7CiAgICAgaWYgKGlucHV0RWxlbWVudCkKICAg
ICAgICAgcmV0dXJuIGF1dG9maWxsKGlucHV0RWxlbWVudCwgdHJ1ZSwgdHJ1ZSwgZmFsc2UpOwog
ICAgIHJldHVybiBmYWxzZTsKQEAgLTc5Miw2ICs4MDMsOSBAQCB2b2lkIEVkaXRvckNsaWVudElt
cGw6OmNhbmNlbFBlbmRpbmdBdXRvCiAKIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6b25BdXRvY29t
cGxldGVTdWdnZXN0aW9uQWNjZXB0ZWQoSFRNTElucHV0RWxlbWVudCogdGV4dEZpZWxkKQogewor
ICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgpKQorICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgp
LT5kaWRBY2NlcHRBdXRvY29tcGxldGVTdWdnZXN0aW9uKFdlYklucHV0RWxlbWVudCh0ZXh0Rmll
bGQpKTsKKwogICAgIFdlYkZyYW1lSW1wbCogd2ViZnJhbWUgPSBXZWJGcmFtZUltcGw6OmZyb21G
cmFtZSh0ZXh0RmllbGQtPmRvY3VtZW50KCktPmZyYW1lKCkpOwogICAgIGlmICghd2ViZnJhbWUp
CiAgICAgICAgIHJldHVybjsKQEAgLTgwMiw2ICs4MTYsMTIgQEAgdm9pZCBFZGl0b3JDbGllbnRJ
bXBsOjpvbkF1dG9jb21wbGV0ZVN1ZwogYm9vbCBFZGl0b3JDbGllbnRJbXBsOjpkb1RleHRGaWVs
ZENvbW1hbmRGcm9tRXZlbnQoRWxlbWVudCogZWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewor
ICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVudChl
bGVtZW50KTsKKyAgICBpZiAobV93ZWJWaWV3LT5jbGllbnQoKSAmJiBpbnB1dEVsZW1lbnQpIHsK
KyAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+dGV4dEZpZWxkRGlkUmVjZWl2ZUtleURvd24o
V2ViSW5wdXRFbGVtZW50KGlucHV0RWxlbWVudCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktleWJvYXJkRXZlbnRCdWlsZGVyKCpl
dmVudCkpOworICAgIH0KKwogICAgIC8vIFJlbWVtYmVyIGlmIGJhY2tzcGFjZSB3YXMgcHJlc3Nl
ZCBmb3IgdGhlIGF1dG9maWxsLiAgSXQgaXMgbm90IGNsZWFyIGhvdyB0bwogICAgIC8vIGZpbmQg
aWYgYmFja3NwYWNlIHdhcyBwcmVzc2VkIGZyb20gdGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nIGFu
ZAogICAgIC8vIHRleHREaWRDaGFuZ2VJblRleHRGaWVsZCBhcyB3aGVuIHRoZXNlIG1ldGhvZHMg
YXJlIGNhbGxlZCB0aGUgdmFsdWUgb2YgdGhlCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklucHV0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
bnB1dEVsZW1lbnQuY3BwCShyZXZpc2lvbiA2MjcwNCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSW5wdXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsMTEgQEAgYm9v
bCBXZWJJbnB1dEVsZW1lbnQ6OmF1dG9Db21wbGV0ZSgpIGNvbgogICAgIHJldHVybiBjb25zdFVu
d3JhcDxIVE1MSW5wdXRFbGVtZW50PigpLT5hdXRvQ29tcGxldGUoKTsKIH0KIAorYm9vbCBXZWJJ
bnB1dEVsZW1lbnQ6OmlzUmVhZE9ubHkoKSBjb25zdAoreworICAgIHJldHVybiBjb25zdFVud3Jh
cDxIVE1MSW5wdXRFbGVtZW50PigpLT5yZWFkT25seSgpOworfQorCiBib29sIFdlYklucHV0RWxl
bWVudDo6aXNFbmFibGVkRm9ybUNvbnRyb2woKSBjb25zdAogewogICAgIHJldHVybiBjb25zdFVu
d3JhcDxIVE1MSW5wdXRFbGVtZW50PigpLT5pc0VuYWJsZWRGb3JtQ29udHJvbCgpOwpAQCAtMTE1
LDYgKzEyMCwxNiBAQCB2b2lkIFdlYklucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UoCiAg
ICAgdW53cmFwPEhUTUxJbnB1dEVsZW1lbnQ+KCktPnNldFNlbGVjdGlvblJhbmdlKHN0YXJ0LCBl
bmQpOwogfQogCitpbnQgV2ViSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25TdGFydCgpCit7CisgICAg
cmV0dXJuIHVud3JhcDxIVE1MSW5wdXRFbGVtZW50PigpLT5zZWxlY3Rpb25TdGFydCgpOworfQor
CitpbnQgV2ViSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25FbmQoKQoreworICAgIHJldHVybiB1bndy
YXA8SFRNTElucHV0RWxlbWVudD4oKS0+c2VsZWN0aW9uRW5kKCk7Cit9CisKIFdlYklucHV0RWxl
bWVudDo6V2ViSW5wdXRFbGVtZW50KGNvbnN0IFBhc3NSZWZQdHI8SFRNTElucHV0RWxlbWVudD4m
IGVsZW0pCiAgICAgOiBXZWJGb3JtQ29udHJvbEVsZW1lbnQoZWxlbSkKIHsKSW5kZXg6IFdlYktp
dC9jaHJvbWl1bS9zcmMvV2ViTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJOb2RlLmNwcAkocmV2aXNpb24gNjI3MDQpCisrKyBXZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYk5vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw2ICs2NywxMSBAQCBib29sIFdlYk5v
ZGU6OmVxdWFscyhjb25zdCBXZWJOb2RlJiBuKSBjCiAgICAgcmV0dXJuIChtX3ByaXZhdGUuZ2V0
KCkgPT0gbi5tX3ByaXZhdGUuZ2V0KCkpOwogfQogCitib29sIFdlYk5vZGU6Omxlc3NUaGFuKGNv
bnN0IFdlYk5vZGUmIG4pIGNvbnN0Cit7CisgICAgcmV0dXJuIChtX3ByaXZhdGUuZ2V0KCkgPCBu
Lm1fcHJpdmF0ZS5nZXQoKSk7Cit9CisKIFdlYk5vZGU6Ok5vZGVUeXBlIFdlYk5vZGU6Om5vZGVU
eXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Tm9kZVR5cGU+KG1fcHJpdmF0
ZS0+bm9kZVR5cGUoKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>