<?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>57070</bug_id>
          
          <creation_ts>2011-03-24 18:34:41 -0700</creation_ts>
          <short_desc>[chromium] Add setters for various client interfaces, and add WbSpellCheckClient</short_desc>
          <delta_ts>2011-03-25 13:34:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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>1</everconfirmed>
          <reporter name="John Abd-El-Malek">jam</reporter>
          <assigned_to name="John Abd-El-Malek">jam</assigned_to>
          <cc>fishd</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>373246</commentid>
    <comment_count>0</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-03-24 18:34:41 -0700</bug_when>
    <thetext>[chromium] Add setters for various client interfaces, and add WbSpellCheckClient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373248</commentid>
    <comment_count>1</comment_count>
      <attachid>86865</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-03-24 18:35:10 -0700</bug_when>
    <thetext>Created attachment 86865
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373250</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-24 18:36:30 -0700</bug_when>
    <thetext>Attachment 86865 did not pass style-queue:

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

Source/WebKit/chromium/src/EditorClientImpl.cpp:899:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373251</commentid>
    <comment_count>3</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-03-24 18:36:57 -0700</bug_when>
    <thetext>This is needed as part of the chromium refactoring.  A (chrome&apos;s) RenderView embedder might not care, or even want to know, about spellchecking, autofill, dev tools etc.  By having setters, the code in src\chrome can add them when it gets notified that a RenderView has been created.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373253</commentid>
    <comment_count>4</comment_count>
      <attachid>86867</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-03-24 18:38:58 -0700</bug_when>
    <thetext>Created attachment 86867
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373254</commentid>
    <comment_count>5</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-03-24 18:39:44 -0700</bug_when>
    <thetext>cc&apos;ing some reviewers, guys whoever wants dibs please go ahead</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373257</commentid>
    <comment_count>6</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-03-24 18:41:26 -0700</bug_when>
    <thetext>Darin is usually the gatekeeper for Chromium WebKit API changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373270</commentid>
    <comment_count>7</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-03-24 19:17:57 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Darin is usually the gatekeeper for Chromium WebKit API changes.

oops, forgot about that.  it&apos;s been a while :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373300</commentid>
    <comment_count>8</comment_count>
      <attachid>86878</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-03-24 21:31:17 -0700</bug_when>
    <thetext>Created attachment 86878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373408</commentid>
    <comment_count>9</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-03-25 02:11:36 -0700</bug_when>
    <thetext>Thank you for doing this change!
Could you align WebSpellCheckClient method to platform/text/TextCheckingClient if possible?
I&apos;d like to move hunspell-based checker code into WebKit from Chromium, and aligning APIs will help.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373570</commentid>
    <comment_count>10</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-03-25 09:53:10 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Thank you for doing this change!
&gt; Could you align WebSpellCheckClient method to platform/text/TextCheckingClient if possible?
&gt; I&apos;d like to move hunspell-based checker code into WebKit from Chromium, and aligning APIs will help.

I think it&apos;s best if these different tasks (refactoring content, and moving the chrome spelling code into webkit) are done separately, since they&apos;re orthogonal.  It&apos;s better if someone who&apos;s familiar with the spelling code to do the latter, and to take care of the WebKit API changes etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373687</commentid>
    <comment_count>11</comment_count>
      <attachid>86878</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-03-25 12:48:29 -0700</bug_when>
    <thetext>Comment on attachment 86878
Patch

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

I think this is fine, can land after fixes.

&gt; Source/WebKit/chromium/ChangeLog:5
&gt; +        [chromium] Add setters for various client interfaces, and add WbSpellCheckClient

WebSpellCheckClient

&gt; Source/WebKit/chromium/src/WebViewImpl.h:119
&gt; +    virtual void setWebDevToolsAgentClient(WebDevToolsAgentClient*);
&gt; +    virtual void setWebAutoFillClient(WebAutoFillClient*);
&gt; +    virtual void setWebSpellCheckClient(WebSpellCheckClient*);

take out the &quot;Web&quot; in the names for consistency?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373702</commentid>
    <comment_count>12</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-03-25 13:34:28 -0700</bug_when>
    <thetext>Committed r81987: &lt;http://trac.webkit.org/changeset/81987&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86865</attachid>
            <date>2011-03-24 18:35:10 -0700</date>
            <delta_ts>2011-03-24 18:38:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57070-20110324183431.patch</filename>
            <type>text/plain</type>
            <size>14052</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA4MTkyNykKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUg
QEAKKzIwMTEtMDMtMjQgIEpvaG4gQWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1d
IEFkZCBzZXR0ZXJzIGZvciB2YXJpb3VzIGNsaWVudCBpbnRlcmZhY2VzLCBhbmQgYWRkIFdiU3Bl
bGxDaGVja0NsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTcwNzAKKworICAgICAgICAqIHB1YmxpYy9XZWJTcGVsbENoZWNrQ2xpZW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVsbENoZWNrQ2xpZW50OjpzcGVsbENoZWNrKToK
KyAgICAgICAgKFdlYktpdDo6V2ViU3BlbGxDaGVja0NsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZU
ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlbGxDaGVja0NsaWVudDo6YXV0b0NvcnJlY3RX
b3JkKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlbGxDaGVja0NsaWVudDo6c2hvd1NwZWxsaW5n
VUkpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVsbENoZWNrQ2xpZW50Ojppc1Nob3dpbmdTcGVs
bGluZ1VJKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlbGxDaGVja0NsaWVudDo6dXBkYXRlU3Bl
bGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWxsQ2hl
Y2tDbGllbnQ6On5XZWJTcGVsbENoZWNrQ2xpZW50KToKKyAgICAgICAgKiBwdWJsaWMvV2ViVmll
dy5oOgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgICogc3JjL0Vk
aXRvckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpj
aGVja1NwZWxsaW5nT2ZTdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBs
OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVu
dEltcGw6OmdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKToKKyAgICAg
ICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6dXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVs
bGVkV29yZCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OnNob3dTcGVsbGlu
Z1VJKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6c3BlbGxpbmdVSUlzU2hv
d2luZyk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNldFdlYkRldlRvb2xzQWdlbnRDbGllbnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6c2V0V2ViQXV0b0ZpbGxDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6c2V0V2ViU3BlbGxDaGVja0NsaWVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzcGVsbENoZWNrQ2xpZW50KToKKwogMjAxMS0w
My0yMyAgSm9obiBBYmQtRWwtTWFsZWsgIDxqYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFRvbnkgQ2hhbmcuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTcGVsbENoZWNrQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViU3BlbGxDaGVja0NsaWVudC5oCShyZXZpc2lvbiAwKQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3BlbGxDaGVja0NsaWVudC5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJTcGVsbENoZWNrQ2xpZW50X2gKKyNkZWZpbmUg
V2ViU3BlbGxDaGVja0NsaWVudF9oCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJT
dHJpbmc7CisKK2NsYXNzIFdlYlNwZWxsQ2hlY2tDbGllbnQgeworcHVibGljOgorICAgIC8vIFRo
ZSBjbGllbnQgc2hvdWxkIHBlcmZvcm0gc3BlbGwtY2hlY2tpbmcgb24gdGhlIGdpdmVuIHRleHQu
IElmIHRoZQorICAgIC8vIHRleHQgY29udGFpbnMgYSBtaXNzcGVsbGVkIHdvcmQsIHRoZW4gdXBv
biByZXR1cm4gbWlzc3BlbGxlZE9mZnNldAorICAgIC8vIHdpbGwgcG9pbnQgdG8gdGhlIHN0YXJ0
IG9mIHRoZSBtaXNzcGVsbGVkIHdvcmQsIGFuZCBtaXNzcGVsbGVkTGVuZ3RoCisgICAgLy8gd2ls
bCBpbmRpY2F0ZXMgaXRzIGxlbmd0aC4gT3RoZXJ3aXNlLCBpZiB0aGVyZSB3YXMgbm90IGEgc3Bl
bGxpbmcKKyAgICAvLyBlcnJvciwgdGhlbiB1cG9uIHJldHVybiBtaXNzcGVsbGVkTGVuZ3RoIGlz
IDAuCisgICAgdmlydHVhbCB2b2lkIHNwZWxsQ2hlY2soCisgICAgICAgIGNvbnN0IFdlYlN0cmlu
ZyYgdGV4dCwgaW50JiBtaXNzcGVsbGVkT2Zmc2V0LCBpbnQmIG1pc3NwZWxsZWRMZW5ndGgpIHsg
fQorICAgIC8vIFJlcXVlc3RzIGFzeW5jaHJvbm91cyBzcGVsbGluZyBhbmQgZ3JhbW1hciBjaGVj
a2luZywgd2hvc2UgcmVzdWx0IHNob3VsZCBiZQorICAgIC8vIHJldHVybmVkIGJ5IHBhc3NlZCBj
b21wbGV0aW9uIG9iamVjdC4KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZUZXh0
KGNvbnN0IFdlYlN0cmluZyYsIFdlYlRleHRDaGVja2luZ0NvbXBsZXRpb24qKSB7IH0KKworICAg
IC8vIENvbXB1dGVzIGFuIGF1dG8tY29ycmVjdGVkIHJlcGxhY2VtZW50IGZvciBhIG1pc3NwZWxs
ZWQgd29yZC4gSWYgbm8KKyAgICAvLyByZXBsYWNlbWVudCBpcyBmb3VuZCwgdGhlbiBhbiBlbXB0
eSBzdHJpbmcgaXMgcmV0dXJuZWQuCisgICAgdmlydHVhbCBXZWJTdHJpbmcgYXV0b0NvcnJlY3RX
b3JkKGNvbnN0IFdlYlN0cmluZyYgbWlzc3BlbGxlZFdvcmQpIHsgcmV0dXJuIFdlYlN0cmluZygp
OyB9CisKKyAgICAvLyBTaG93IG9yIGhpZGUgdGhlIHNwZWxsaW5nIFVJLgorICAgIHZpcnR1YWwg
dm9pZCBzaG93U3BlbGxpbmdVSShib29sIHNob3cpIHsgfQorCisgICAgLy8gUmV0dXJucyB0cnVl
IGlmIHRoZSBzcGVsbGluZyBVSSBpcyBzaG93aW5nLgorICAgIHZpcnR1YWwgYm9vbCBpc1Nob3dp
bmdTcGVsbGluZ1VJKCkgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIC8vIFVwZGF0ZSB0aGUgc3Bl
bGxpbmcgVUkgd2l0aCB0aGUgZ2l2ZW4gd29yZC4KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3Bl
bGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBXZWJTdHJpbmcmIHdvcmQpIHsgfQorCitw
cm90ZWN0ZWQ6CisgICAgfldlYlNwZWxsQ2hlY2tDbGllbnQoKSB7IH0KK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlNwZWxsQ2hlY2tDbGllbnQuaApfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVk
OiBzdm46ZXhlY3V0YWJsZQogICArICoKCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVmlldy5oCShyZXZpc2lvbiA4MTkyNikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsOSArMzYsNiBAQAogI2luY2x1
ZGUgIldlYlZlY3Rvci5oIgogI2luY2x1ZGUgIldlYldpZGdldC5oIgogCi0vLyBGSVhNRShqYW0p
OiB0YWtlIG91dCBvbmNlIENocm9taXVtIHJvbGxzIHBhc3QgdGhpcyByZXZpc2lvbgotI2RlZmlu
ZSBXRUJLSVRfSEFTX1dFQl9BVVRPX0ZJTExfQ0xJRU5UCi0KIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OwpAQCAtNTEsNiArNDgsNyBAQCBjbGFzcyBX
ZWJGcmFtZUNsaWVudDsKIGNsYXNzIFdlYkdyYXBoaWNzQ29udGV4dDNEOwogY2xhc3MgV2ViTm9k
ZTsKIGNsYXNzIFdlYlNldHRpbmdzOworY2xhc3MgV2ViU3BlbGxDaGVja0NsaWVudDsKIGNsYXNz
IFdlYlN0cmluZzsKIGNsYXNzIFdlYlZpZXdDbGllbnQ7CiBzdHJ1Y3QgV2ViTWVkaWFQbGF5ZXJB
Y3Rpb247CkBAIC04Niw5ICs4NCwxMCBAQCBwdWJsaWM6CiAgICAgLy8gQ3JlYXRlcyBhIFdlYlZp
ZXcgdGhhdCBpcyBOT1QgeWV0IGluaXRpYWxpemVkLiAgWW91IHdpbGwgbmVlZCB0bwogICAgIC8v
IGNhbGwgaW5pdGlhbGl6ZU1haW5GcmFtZSB0byBmaW5pc2ggdGhlIGluaXRpYWxpemF0aW9uLiAg
SXQgaXMgdmFsaWQKICAgICAvLyB0byBwYXNzIG51bGwgY2xpZW50IHBvaW50ZXJzLgorICAgIC8v
IEZJWE1FKGphbSk6IHRha2Ugb3V0IGRlZmF1bHQgcGFyYW1ldGVycyBvbmNlIGNocm9taXVtIHN0
b3BzIHBhc3NpbmcgdGhlbS4KICAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJWaWV3KiBjcmVhdGUo
V2ViVmlld0NsaWVudCosCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdl
YkRldlRvb2xzQWdlbnRDbGllbnQqLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXZWJBdXRvRmlsbENsaWVudCopOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXZWJEZXZUb29sc0FnZW50Q2xpZW50KiA9IDAsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYkF1dG9GaWxsQ2xpZW50KiA9IDApOwogCiAgICAgLy8gQWZ0
ZXIgY3JlYXRpbmcgYSBXZWJWaWV3LCB5b3Ugc2hvdWxkIGltbWVkaWF0ZWx5IGNhbGwgdGhpcyBt
ZXRob2QuCiAgICAgLy8gWW91IGNhbiBvcHRpb25hbGx5IG1vZGlmeSB0aGUgc2V0dGluZ3MgYmVm
b3JlIGNhbGxpbmcgdGhpcyBtZXRob2QuCkBAIC05Niw2ICs5NSwxMSBAQCBwdWJsaWM6CiAgICAg
Ly8gY2hpbGQgZnJhbWVzLiAgSXQgaXMgdmFsaWQgdG8gcGFzcyBhIG51bGwgV2ViRnJhbWVDbGll
bnQgcG9pbnRlci4KICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZU1haW5GcmFtZShXZWJGcmFt
ZUNsaWVudCopID0gMDsKIAorICAgIC8vIEluaXRpYWxpemVzIHRoZSB2YXJpb3VzIGNsaWVudCBp
bnRlcmZhY2VzLgorICAgIHZpcnR1YWwgdm9pZCBzZXRXZWJEZXZUb29sc0FnZW50Q2xpZW50KFdl
YkRldlRvb2xzQWdlbnRDbGllbnQqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFdlYkF1dG9G
aWxsQ2xpZW50KFdlYkF1dG9GaWxsQ2xpZW50KikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRX
ZWJTcGVsbENoZWNrQ2xpZW50KFdlYlNwZWxsQ2hlY2tDbGllbnQqKSA9IDA7CisKIAogICAgIC8v
IE9wdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJW
aWV3Q2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViVmlld0NsaWVudC5oCShyZXZpc2lvbiA4MTkyNikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTcxLDYgKzE3MSw3
IEBAIHB1YmxpYzoKIAogCiAgICAgLy8gU3BlbGxjaGVja2VyIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRklYTUUoamFtKTog
cmVtb3ZlIG9uY2UgY2hyb21pdW0gaXMgdXBkYXRlZCB0byB1c2UgV2ViU3BlbGxDaGVja0NsaWVu
dAogCiAgICAgLy8gVGhlIGNsaWVudCBzaG91bGQgcGVyZm9ybSBzcGVsbC1jaGVja2luZyBvbiB0
aGUgZ2l2ZW4gdGV4dC4gIElmIHRoZQogICAgIC8vIHRleHQgY29udGFpbnMgYSBtaXNzcGVsbGVk
IHdvcmQsIHRoZW4gdXBvbiByZXR1cm4gbWlzc3BlbGxlZE9mZnNldApJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDgx
OTI2KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTg1Niw2ICs4NTYsOSBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6
OmNoZWNrU3BlbGxpbmdPZlN0CiAgICAgaW50IHNwZWxsTGVuZ3RoID0gMDsKIAogICAgIC8vIENo
ZWNrIHRvIHNlZSBpZiB0aGUgcHJvdmlkZWQgdGV4dCBpcyBzcGVsbGVkIGNvcnJlY3RseS4KKyAg
ICAvLyBGSVhNRShqYW0pOiByZW1vdmUgb25jZSBjaHJvbWUgaXMgdXBkYXRlZC4KKyAgICBpZiAo
aXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSAmJiBtX3dlYlZpZXctPnNwZWxsQ2hl
Y2tDbGllbnQoKSkKKyAgICAgICAgbV93ZWJWaWV3LT5zcGVsbENoZWNrQ2xpZW50KCktPnNwZWxs
Q2hlY2soV2ViU3RyaW5nKHRleHQsIGxlbmd0aCksIHNwZWxsTG9jYXRpb24sIHNwZWxsTGVuZ3Ro
KTsKICAgICBpZiAoaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSAmJiBtX3dlYlZp
ZXctPmNsaWVudCgpKQogICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5zcGVsbENoZWNrKFdl
YlN0cmluZyh0ZXh0LCBsZW5ndGgpLCBzcGVsbExvY2F0aW9uLCBzcGVsbExlbmd0aCk7CiAgICAg
ZWxzZSB7CkBAIC04NzMsNyArODc2LDExIEBAIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6Y2hlY2tT
cGVsbGluZ09mU3QKIAogdm9pZCBFZGl0b3JDbGllbnRJbXBsOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhTcGVsbENoZWNrZXIqIHNlbmRlciwgaW50IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
dGV4dCkKIHsKLSAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdPZlRleHQo
dGV4dCwgbmV3IFdlYlRleHRDaGVja2luZ0NvbXBsZXRpb25JbXBsKGlkZW50aWZpZXIsIHNlbmRl
cikpOworICAgIC8vIEZJWE1FKGphbSk6IHJlbW92ZSBvbmNlIGNocm9tZSBpcyB1cGRhdGVkLgor
ICAgIGlmIChtX3dlYlZpZXctPnNwZWxsQ2hlY2tDbGllbnQoKSkKKyAgICAgICAgbV93ZWJWaWV3
LT5zcGVsbENoZWNrQ2xpZW50KCktPnJlcXVlc3RDaGVja2luZ09mVGV4dCh0ZXh0LCBuZXcgV2Vi
VGV4dENoZWNraW5nQ29tcGxldGlvbkltcGwoaWRlbnRpZmllciwgc2VuZGVyKSk7CisgICAgZWxz
ZQorICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdPZlRleHQodGV4
dCwgbmV3IFdlYlRleHRDaGVja2luZ0NvbXBsZXRpb25JbXBsKGlkZW50aWZpZXIsIHNlbmRlcikp
OwogfQogCiBTdHJpbmcgRWRpdG9yQ2xpZW50SW1wbDo6Z2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9u
Rm9yTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJiBtaXNzcGVsbGVkV29yZCkKQEAgLTg4OCw3
ICs4OTUsMTEgQEAgU3RyaW5nIEVkaXRvckNsaWVudEltcGw6OmdldEF1dG9Db3JyZWN0UwogICAg
ICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KIAotICAgIHJldHVybiBtX3dlYlZpZXct
PmNsaWVudCgpLT5hdXRvQ29ycmVjdFdvcmQoV2ViU3RyaW5nKG1pc3NwZWxsZWRXb3JkKSk7Cisg
ICAgLy8gRklYTUUoamFtKTogcmVtb3ZlIG9uY2UgY2hyb21lIGlzIHVwZGF0ZWQuCisgICAgaWYg
KG1fd2ViVmlldy0+c3BlbGxDaGVja0NsaWVudCgpKQorICAgICAgICByZXR1cm4gbV93ZWJWaWV3
LT5zcGVsbENoZWNrQ2xpZW50KCktPmF1dG9Db3JyZWN0V29yZChXZWJTdHJpbmcobWlzc3BlbGxl
ZFdvcmQpKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBtX3dlYlZpZXctPmNsaWVudCgpLT5h
dXRvQ29ycmVjdFdvcmQoV2ViU3RyaW5nKG1pc3NwZWxsZWRXb3JkKSk7CiB9CiAKIHZvaWQgRWRp
dG9yQ2xpZW50SW1wbDo6Y2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVu
Z3RoLApAQCAtOTExLDE4ICs5MjIsMjcgQEAgdm9pZCBFZGl0b3JDbGllbnRJbXBsOjp1cGRhdGVT
cGVsbGluZ1VJVwogCiB2b2lkIEVkaXRvckNsaWVudEltcGw6OnVwZGF0ZVNwZWxsaW5nVUlXaXRo
TWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJiBtaXNzcGVsbGVkV29yZCkKIHsKLSAgICBpZiAo
bV93ZWJWaWV3LT5jbGllbnQoKSkKKyAgICAvLyBGSVhNRShqYW0pOiByZW1vdmUgb25jZSBjaHJv
bWUgaXMgdXBkYXRlZC4KKyAgICBpZiAobV93ZWJWaWV3LT5zcGVsbENoZWNrQ2xpZW50KCkpCisg
ICAgICAgIG1fd2ViVmlldy0+c3BlbGxDaGVja0NsaWVudCgpLT51cGRhdGVTcGVsbGluZ1VJV2l0
aE1pc3NwZWxsZWRXb3JkKFdlYlN0cmluZyhtaXNzcGVsbGVkV29yZCkpOworICAgIGVsc2UgaWYg
KG1fd2ViVmlldy0+Y2xpZW50KCkpCiAgICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCktPnVwZGF0
ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoV2ViU3RyaW5nKG1pc3NwZWxsZWRXb3JkKSk7
CiB9CiAKIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6c2hvd1NwZWxsaW5nVUkoYm9vbCBzaG93KQog
ewotICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgpKQorICAgIC8vIEZJWE1FKGphbSk6IHJlbW92
ZSBvbmNlIGNocm9tZSBpcyB1cGRhdGVkLgorICAgIGlmIChtX3dlYlZpZXctPnNwZWxsQ2hlY2tD
bGllbnQoKSkKKyAgICAgICAgbV93ZWJWaWV3LT5zcGVsbENoZWNrQ2xpZW50KCktPnNob3dTcGVs
bGluZ1VJKHNob3cpOworICAgIGVsc2UgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCiAgICAgICAg
IG1fd2ViVmlldy0+Y2xpZW50KCktPnNob3dTcGVsbGluZ1VJKHNob3cpOwogfQogCiBib29sIEVk
aXRvckNsaWVudEltcGw6OnNwZWxsaW5nVUlJc1Nob3dpbmcoKQogeworICAgIC8vIEZJWE1FKGph
bSk6IHJlbW92ZSBvbmNlIGNocm9tZSBpcyB1cGRhdGVkLgorICAgIGlmIChtX3dlYlZpZXctPnNw
ZWxsQ2hlY2tDbGllbnQoKSkKKyAgICAgICAgcmV0dXJuIG1fd2ViVmlldy0+c3BlbGxDaGVja0Ns
aWVudCgpLT5pc1Nob3dpbmdTcGVsbGluZ1VJKCk7CiAgICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50
KCkpCiAgICAgICAgIHJldHVybiBtX3dlYlZpZXctPmNsaWVudCgpLT5pc1Nob3dpbmdTcGVsbGlu
Z1VJKCk7CiAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcAkocmV2aXNpb24gODE5MjYpCisrKyBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2OSw5ICsyNjks
MjggQEAgdm9pZCBXZWJWaWV3SW1wbDo6aW5pdGlhbGl6ZU1haW5GcmFtZShXZQogICAgIFNlY3Vy
aXR5T3JpZ2luOjpzZXRMb2NhbExvYWRQb2xpY3koU2VjdXJpdHlPcmlnaW46OkFsbG93TG9jYWxM
b2Fkc0ZvckxvY2FsT25seSk7CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OnNldFdlYkRldlRvb2xz
QWdlbnRDbGllbnQoV2ViRGV2VG9vbHNBZ2VudENsaWVudCogZGV2VG9vbHNDbGllbnQpIAorewor
ICAgIGlmIChkZXZUb29sc0NsaWVudCkKKyAgICAgICAgbV9kZXZUb29sc0FnZW50ID0gbmV3IFdl
YkRldlRvb2xzQWdlbnRJbXBsKHRoaXMsIGRldlRvb2xzQ2xpZW50KTsKKyAgICBlbHNlCisgICAg
ICAgIG1fZGV2VG9vbHNBZ2VudC5jbGVhcigpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRX
ZWJBdXRvRmlsbENsaWVudChXZWJBdXRvRmlsbENsaWVudCogYXV0b0ZpbGxDbGllbnQpCit7Cisg
ICAgbV9hdXRvRmlsbENsaWVudCA9IGF1dG9GaWxsQ2xpZW50OworfQorCit2b2lkIFdlYlZpZXdJ
bXBsOjpzZXRXZWJTcGVsbENoZWNrQ2xpZW50KFdlYlNwZWxsQ2hlY2tDbGllbnQqIHNwZWxsQ2hl
Y2tDbGllbnQpCit7CisgICAgbV9zcGVsbENoZWNrQ2xpZW50ID0gc3BlbGxDaGVja0NsaWVudDsK
K30KKwogV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVudCwgV2Vi
RGV2VG9vbHNBZ2VudENsaWVudCogZGV2VG9vbHNDbGllbnQsIFdlYkF1dG9GaWxsQ2xpZW50KiBh
dXRvRmlsbENsaWVudCkKICAgICA6IG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fYXV0b0ZpbGxD
bGllbnQoYXV0b0ZpbGxDbGllbnQpCisgICAgLCBtX3NwZWxsQ2hlY2tDbGllbnQoMCkKICAgICAs
IG1fY2hyb21lQ2xpZW50SW1wbCh0aGlzKQogICAgICwgbV9jb250ZXh0TWVudUNsaWVudEltcGwo
dGhpcykKICAgICAsIG1fZHJhZ0NsaWVudEltcGwodGhpcykKQEAgLTMxOSw4ICszMzgsNyBAQCBX
ZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCoKICAgICAvLyBzZXQgdG8gaW1w
b3NzaWJsZSBwb2ludCBzbyB3ZSBhbHdheXMgZ2V0IHRoZSBmaXJzdCBtb3VzZSBwb3MKICAgICBt
X2xhc3RNb3VzZVBvc2l0aW9uID0gV2ViUG9pbnQoLTEsIC0xKTsKIAotICAgIGlmIChkZXZUb29s
c0NsaWVudCkKLSAgICAgICAgbV9kZXZUb29sc0FnZW50ID0gbmV3IFdlYkRldlRvb2xzQWdlbnRJ
bXBsKHRoaXMsIGRldlRvb2xzQ2xpZW50KTsKKyAgICBzZXRXZWJEZXZUb29sc0FnZW50Q2xpZW50
KGRldlRvb2xzQ2xpZW50KTsKIAogICAgIFBhZ2U6OlBhZ2VDbGllbnRzIHBhZ2VDbGllbnRzOwog
ICAgIHBhZ2VDbGllbnRzLmNocm9tZUNsaWVudCA9ICZtX2Nocm9tZUNsaWVudEltcGw7CkluZGV4
OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHJldmlzaW9uIDgxOTI2
KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAkod29ya2luZyBj
b3B5KQpAQCAtMTE0LDYgKzExNCw5IEBAIHB1YmxpYzoKIAogICAgIC8vIFdlYlZpZXcgbWV0aG9k
czoKICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZU1haW5GcmFtZShXZWJGcmFtZUNsaWVudCop
OworICAgIHZpcnR1YWwgdm9pZCBzZXRXZWJEZXZUb29sc0FnZW50Q2xpZW50KFdlYkRldlRvb2xz
QWdlbnRDbGllbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0V2ViQXV0b0ZpbGxDbGllbnQoV2Vi
QXV0b0ZpbGxDbGllbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0V2ViU3BlbGxDaGVja0NsaWVu
dChXZWJTcGVsbENoZWNrQ2xpZW50Kik7CiAgICAgdmlydHVhbCBXZWJTZXR0aW5ncyogc2V0dGlu
Z3MoKTsKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBwYWdlRW5jb2RpbmcoKSBjb25zdDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0UGFnZUVuY29kaW5nKGNvbnN0IFdlYlN0cmluZyYgZW5jb2RpbmcpOwpA
QCAtMjI0LDYgKzIyNywxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2F1dG9GaWxsQ2xp
ZW50OwogICAgIH0KIAorICAgIFdlYlNwZWxsQ2hlY2tDbGllbnQqIHNwZWxsQ2hlY2tDbGllbnQo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fc3BlbGxDaGVja0NsaWVudDsKKyAgICB9CisKICAg
ICAvLyBSZXR1cm5zIHRoZSBwYWdlIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyB2aWV3LiBU
aGlzIG1heSBiZSBudWxsIHdoZW4KICAgICAvLyB0aGUgcGFnZSBpcyBzaHV0dGluZyBkb3duLCBi
dXQgd2lsbCBiZSB2YWxpZCBhdCBhbGwgb3RoZXIgdGltZXMuCiAgICAgV2ViQ29yZTo6UGFnZSog
cGFnZSgpIGNvbnN0CkBAIC00MDgsNiArNDE2LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYlZpZXdD
bGllbnQqIG1fY2xpZW50OwogICAgIFdlYkF1dG9GaWxsQ2xpZW50KiBtX2F1dG9GaWxsQ2xpZW50
OworICAgIFdlYlNwZWxsQ2hlY2tDbGllbnQqIG1fc3BlbGxDaGVja0NsaWVudDsKIAogICAgIENo
cm9tZUNsaWVudEltcGwgbV9jaHJvbWVDbGllbnRJbXBsOwogICAgIENvbnRleHRNZW51Q2xpZW50
SW1wbCBtX2NvbnRleHRNZW51Q2xpZW50SW1wbDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86867</attachid>
            <date>2011-03-24 18:38:58 -0700</date>
            <delta_ts>2011-03-24 21:31:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57070-20110324183819.patch</filename>
            <type>text/plain</type>
            <size>13889</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA4MTkyNykKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUg
QEAKKzIwMTEtMDMtMjQgIEpvaG4gQWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1d
IEFkZCBzZXR0ZXJzIGZvciB2YXJpb3VzIGNsaWVudCBpbnRlcmZhY2VzLCBhbmQgYWRkIFdiU3Bl
bGxDaGVja0NsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTcwNzAKKworICAgICAgICAqIHB1YmxpYy9XZWJTcGVsbENoZWNrQ2xpZW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVsbENoZWNrQ2xpZW50OjpzcGVsbENoZWNrKToK
KyAgICAgICAgKFdlYktpdDo6V2ViU3BlbGxDaGVja0NsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZU
ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlbGxDaGVja0NsaWVudDo6YXV0b0NvcnJlY3RX
b3JkKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlbGxDaGVja0NsaWVudDo6c2hvd1NwZWxsaW5n
VUkpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVsbENoZWNrQ2xpZW50Ojppc1Nob3dpbmdTcGVs
bGluZ1VJKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlbGxDaGVja0NsaWVudDo6dXBkYXRlU3Bl
bGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWxsQ2hl
Y2tDbGllbnQ6On5XZWJTcGVsbENoZWNrQ2xpZW50KToKKyAgICAgICAgKiBwdWJsaWMvV2ViVmll
dy5oOgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgICogc3JjL0Vk
aXRvckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpj
aGVja1NwZWxsaW5nT2ZTdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBs
OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVu
dEltcGw6OmdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKToKKyAgICAg
ICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6dXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVs
bGVkV29yZCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OnNob3dTcGVsbGlu
Z1VJKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6c3BlbGxpbmdVSUlzU2hv
d2luZyk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNldFdlYkRldlRvb2xzQWdlbnRDbGllbnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6c2V0V2ViQXV0b0ZpbGxDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6c2V0V2ViU3BlbGxDaGVja0NsaWVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzcGVsbENoZWNrQ2xpZW50KToKKwogMjAxMS0w
My0yMyAgSm9obiBBYmQtRWwtTWFsZWsgIDxqYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFRvbnkgQ2hhbmcuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTcGVsbENoZWNrQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViU3BlbGxDaGVja0NsaWVudC5oCShyZXZpc2lvbiAwKQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3BlbGxDaGVja0NsaWVudC5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJTcGVsbENoZWNrQ2xpZW50X2gKKyNkZWZpbmUg
V2ViU3BlbGxDaGVja0NsaWVudF9oCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJT
dHJpbmc7CisKK2NsYXNzIFdlYlNwZWxsQ2hlY2tDbGllbnQgeworcHVibGljOgorICAgIC8vIFRo
ZSBjbGllbnQgc2hvdWxkIHBlcmZvcm0gc3BlbGwtY2hlY2tpbmcgb24gdGhlIGdpdmVuIHRleHQu
IElmIHRoZQorICAgIC8vIHRleHQgY29udGFpbnMgYSBtaXNzcGVsbGVkIHdvcmQsIHRoZW4gdXBv
biByZXR1cm4gbWlzc3BlbGxlZE9mZnNldAorICAgIC8vIHdpbGwgcG9pbnQgdG8gdGhlIHN0YXJ0
IG9mIHRoZSBtaXNzcGVsbGVkIHdvcmQsIGFuZCBtaXNzcGVsbGVkTGVuZ3RoCisgICAgLy8gd2ls
bCBpbmRpY2F0ZXMgaXRzIGxlbmd0aC4gT3RoZXJ3aXNlLCBpZiB0aGVyZSB3YXMgbm90IGEgc3Bl
bGxpbmcKKyAgICAvLyBlcnJvciwgdGhlbiB1cG9uIHJldHVybiBtaXNzcGVsbGVkTGVuZ3RoIGlz
IDAuCisgICAgdmlydHVhbCB2b2lkIHNwZWxsQ2hlY2soCisgICAgICAgIGNvbnN0IFdlYlN0cmlu
ZyYgdGV4dCwgaW50JiBtaXNzcGVsbGVkT2Zmc2V0LCBpbnQmIG1pc3NwZWxsZWRMZW5ndGgpIHsg
fQorICAgIC8vIFJlcXVlc3RzIGFzeW5jaHJvbm91cyBzcGVsbGluZyBhbmQgZ3JhbW1hciBjaGVj
a2luZywgd2hvc2UgcmVzdWx0IHNob3VsZCBiZQorICAgIC8vIHJldHVybmVkIGJ5IHBhc3NlZCBj
b21wbGV0aW9uIG9iamVjdC4KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZUZXh0
KGNvbnN0IFdlYlN0cmluZyYsIFdlYlRleHRDaGVja2luZ0NvbXBsZXRpb24qKSB7IH0KKworICAg
IC8vIENvbXB1dGVzIGFuIGF1dG8tY29ycmVjdGVkIHJlcGxhY2VtZW50IGZvciBhIG1pc3NwZWxs
ZWQgd29yZC4gSWYgbm8KKyAgICAvLyByZXBsYWNlbWVudCBpcyBmb3VuZCwgdGhlbiBhbiBlbXB0
eSBzdHJpbmcgaXMgcmV0dXJuZWQuCisgICAgdmlydHVhbCBXZWJTdHJpbmcgYXV0b0NvcnJlY3RX
b3JkKGNvbnN0IFdlYlN0cmluZyYgbWlzc3BlbGxlZFdvcmQpIHsgcmV0dXJuIFdlYlN0cmluZygp
OyB9CisKKyAgICAvLyBTaG93IG9yIGhpZGUgdGhlIHNwZWxsaW5nIFVJLgorICAgIHZpcnR1YWwg
dm9pZCBzaG93U3BlbGxpbmdVSShib29sIHNob3cpIHsgfQorCisgICAgLy8gUmV0dXJucyB0cnVl
IGlmIHRoZSBzcGVsbGluZyBVSSBpcyBzaG93aW5nLgorICAgIHZpcnR1YWwgYm9vbCBpc1Nob3dp
bmdTcGVsbGluZ1VJKCkgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIC8vIFVwZGF0ZSB0aGUgc3Bl
bGxpbmcgVUkgd2l0aCB0aGUgZ2l2ZW4gd29yZC4KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3Bl
bGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBXZWJTdHJpbmcmIHdvcmQpIHsgfQorCitw
cm90ZWN0ZWQ6CisgICAgfldlYlNwZWxsQ2hlY2tDbGllbnQoKSB7IH0KK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlNwZWxsQ2hlY2tDbGllbnQuaApfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVk
OiBzdm46ZXhlY3V0YWJsZQogICArICoKCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVmlldy5oCShyZXZpc2lvbiA4MTkyNikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsOSArMzYsNiBAQAogI2luY2x1
ZGUgIldlYlZlY3Rvci5oIgogI2luY2x1ZGUgIldlYldpZGdldC5oIgogCi0vLyBGSVhNRShqYW0p
OiB0YWtlIG91dCBvbmNlIENocm9taXVtIHJvbGxzIHBhc3QgdGhpcyByZXZpc2lvbgotI2RlZmlu
ZSBXRUJLSVRfSEFTX1dFQl9BVVRPX0ZJTExfQ0xJRU5UCi0KIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OwpAQCAtNTEsNiArNDgsNyBAQCBjbGFzcyBX
ZWJGcmFtZUNsaWVudDsKIGNsYXNzIFdlYkdyYXBoaWNzQ29udGV4dDNEOwogY2xhc3MgV2ViTm9k
ZTsKIGNsYXNzIFdlYlNldHRpbmdzOworY2xhc3MgV2ViU3BlbGxDaGVja0NsaWVudDsKIGNsYXNz
IFdlYlN0cmluZzsKIGNsYXNzIFdlYlZpZXdDbGllbnQ7CiBzdHJ1Y3QgV2ViTWVkaWFQbGF5ZXJB
Y3Rpb247CkBAIC04Niw5ICs4NCwxMCBAQCBwdWJsaWM6CiAgICAgLy8gQ3JlYXRlcyBhIFdlYlZp
ZXcgdGhhdCBpcyBOT1QgeWV0IGluaXRpYWxpemVkLiAgWW91IHdpbGwgbmVlZCB0bwogICAgIC8v
IGNhbGwgaW5pdGlhbGl6ZU1haW5GcmFtZSB0byBmaW5pc2ggdGhlIGluaXRpYWxpemF0aW9uLiAg
SXQgaXMgdmFsaWQKICAgICAvLyB0byBwYXNzIG51bGwgY2xpZW50IHBvaW50ZXJzLgorICAgIC8v
IEZJWE1FKGphbSk6IHRha2Ugb3V0IGRlZmF1bHQgcGFyYW1ldGVycyBvbmNlIGNocm9taXVtIHN0
b3BzIHBhc3NpbmcgdGhlbS4KICAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJWaWV3KiBjcmVhdGUo
V2ViVmlld0NsaWVudCosCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdl
YkRldlRvb2xzQWdlbnRDbGllbnQqLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXZWJBdXRvRmlsbENsaWVudCopOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXZWJEZXZUb29sc0FnZW50Q2xpZW50KiA9IDAsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYkF1dG9GaWxsQ2xpZW50KiA9IDApOwogCiAgICAgLy8gQWZ0
ZXIgY3JlYXRpbmcgYSBXZWJWaWV3LCB5b3Ugc2hvdWxkIGltbWVkaWF0ZWx5IGNhbGwgdGhpcyBt
ZXRob2QuCiAgICAgLy8gWW91IGNhbiBvcHRpb25hbGx5IG1vZGlmeSB0aGUgc2V0dGluZ3MgYmVm
b3JlIGNhbGxpbmcgdGhpcyBtZXRob2QuCkBAIC05Niw2ICs5NSwxMSBAQCBwdWJsaWM6CiAgICAg
Ly8gY2hpbGQgZnJhbWVzLiAgSXQgaXMgdmFsaWQgdG8gcGFzcyBhIG51bGwgV2ViRnJhbWVDbGll
bnQgcG9pbnRlci4KICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZU1haW5GcmFtZShXZWJGcmFt
ZUNsaWVudCopID0gMDsKIAorICAgIC8vIEluaXRpYWxpemVzIHRoZSB2YXJpb3VzIGNsaWVudCBp
bnRlcmZhY2VzLgorICAgIHZpcnR1YWwgdm9pZCBzZXRXZWJEZXZUb29sc0FnZW50Q2xpZW50KFdl
YkRldlRvb2xzQWdlbnRDbGllbnQqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFdlYkF1dG9G
aWxsQ2xpZW50KFdlYkF1dG9GaWxsQ2xpZW50KikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRX
ZWJTcGVsbENoZWNrQ2xpZW50KFdlYlNwZWxsQ2hlY2tDbGllbnQqKSA9IDA7CisKIAogICAgIC8v
IE9wdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJW
aWV3Q2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViVmlld0NsaWVudC5oCShyZXZpc2lvbiA4MTkyNikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTcxLDYgKzE3MSw3
IEBAIHB1YmxpYzoKIAogCiAgICAgLy8gU3BlbGxjaGVja2VyIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRklYTUUoamFtKTog
cmVtb3ZlIG9uY2UgY2hyb21pdW0gaXMgdXBkYXRlZCB0byB1c2UgV2ViU3BlbGxDaGVja0NsaWVu
dAogCiAgICAgLy8gVGhlIGNsaWVudCBzaG91bGQgcGVyZm9ybSBzcGVsbC1jaGVja2luZyBvbiB0
aGUgZ2l2ZW4gdGV4dC4gIElmIHRoZQogICAgIC8vIHRleHQgY29udGFpbnMgYSBtaXNzcGVsbGVk
IHdvcmQsIHRoZW4gdXBvbiByZXR1cm4gbWlzc3BlbGxlZE9mZnNldApJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDgx
OTI2KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTg1Niw2ICs4NTYsOSBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6
OmNoZWNrU3BlbGxpbmdPZlN0CiAgICAgaW50IHNwZWxsTGVuZ3RoID0gMDsKIAogICAgIC8vIENo
ZWNrIHRvIHNlZSBpZiB0aGUgcHJvdmlkZWQgdGV4dCBpcyBzcGVsbGVkIGNvcnJlY3RseS4KKyAg
ICAvLyBGSVhNRShqYW0pOiByZW1vdmUgb25jZSBjaHJvbWUgaXMgdXBkYXRlZC4KKyAgICBpZiAo
aXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSAmJiBtX3dlYlZpZXctPnNwZWxsQ2hl
Y2tDbGllbnQoKSkKKyAgICAgICAgbV93ZWJWaWV3LT5zcGVsbENoZWNrQ2xpZW50KCktPnNwZWxs
Q2hlY2soV2ViU3RyaW5nKHRleHQsIGxlbmd0aCksIHNwZWxsTG9jYXRpb24sIHNwZWxsTGVuZ3Ro
KTsKICAgICBpZiAoaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSAmJiBtX3dlYlZp
ZXctPmNsaWVudCgpKQogICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5zcGVsbENoZWNrKFdl
YlN0cmluZyh0ZXh0LCBsZW5ndGgpLCBzcGVsbExvY2F0aW9uLCBzcGVsbExlbmd0aCk7CiAgICAg
ZWxzZSB7CkBAIC04NzMsNyArODc2LDExIEBAIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6Y2hlY2tT
cGVsbGluZ09mU3QKIAogdm9pZCBFZGl0b3JDbGllbnRJbXBsOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhTcGVsbENoZWNrZXIqIHNlbmRlciwgaW50IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
dGV4dCkKIHsKLSAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdPZlRleHQo
dGV4dCwgbmV3IFdlYlRleHRDaGVja2luZ0NvbXBsZXRpb25JbXBsKGlkZW50aWZpZXIsIHNlbmRl
cikpOworICAgIC8vIEZJWE1FKGphbSk6IHJlbW92ZSBvbmNlIGNocm9tZSBpcyB1cGRhdGVkLgor
ICAgIGlmIChtX3dlYlZpZXctPnNwZWxsQ2hlY2tDbGllbnQoKSkKKyAgICAgICAgbV93ZWJWaWV3
LT5zcGVsbENoZWNrQ2xpZW50KCktPnJlcXVlc3RDaGVja2luZ09mVGV4dCh0ZXh0LCBuZXcgV2Vi
VGV4dENoZWNraW5nQ29tcGxldGlvbkltcGwoaWRlbnRpZmllciwgc2VuZGVyKSk7CisgICAgZWxz
ZQorICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdPZlRleHQodGV4
dCwgbmV3IFdlYlRleHRDaGVja2luZ0NvbXBsZXRpb25JbXBsKGlkZW50aWZpZXIsIHNlbmRlcikp
OwogfQogCiBTdHJpbmcgRWRpdG9yQ2xpZW50SW1wbDo6Z2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9u
Rm9yTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJiBtaXNzcGVsbGVkV29yZCkKQEAgLTg4OCw2
ICs4OTUsOSBAQCBTdHJpbmcgRWRpdG9yQ2xpZW50SW1wbDo6Z2V0QXV0b0NvcnJlY3RTCiAgICAg
ICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgfQogCisgICAgLy8gRklYTUUoamFtKTogcmVt
b3ZlIG9uY2UgY2hyb21lIGlzIHVwZGF0ZWQuCisgICAgaWYgKG1fd2ViVmlldy0+c3BlbGxDaGVj
a0NsaWVudCgpKQorICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5zcGVsbENoZWNrQ2xpZW50KCkt
PmF1dG9Db3JyZWN0V29yZChXZWJTdHJpbmcobWlzc3BlbGxlZFdvcmQpKTsKICAgICByZXR1cm4g
bV93ZWJWaWV3LT5jbGllbnQoKS0+YXV0b0NvcnJlY3RXb3JkKFdlYlN0cmluZyhtaXNzcGVsbGVk
V29yZCkpOwogfQogCkBAIC05MTEsMTggKzkyMSwyNyBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6
OnVwZGF0ZVNwZWxsaW5nVUlXCiAKIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6dXBkYXRlU3BlbGxp
bmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmIG1pc3NwZWxsZWRXb3JkKQogewot
ICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgpKQorICAgIC8vIEZJWE1FKGphbSk6IHJlbW92ZSBv
bmNlIGNocm9tZSBpcyB1cGRhdGVkLgorICAgIGlmIChtX3dlYlZpZXctPnNwZWxsQ2hlY2tDbGll
bnQoKSkKKyAgICAgICAgbV93ZWJWaWV3LT5zcGVsbENoZWNrQ2xpZW50KCktPnVwZGF0ZVNwZWxs
aW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoV2ViU3RyaW5nKG1pc3NwZWxsZWRXb3JkKSk7CisgICAg
ZWxzZSBpZiAobV93ZWJWaWV3LT5jbGllbnQoKSkKICAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQo
KS0+dXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChXZWJTdHJpbmcobWlzc3BlbGxl
ZFdvcmQpKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRJbXBsOjpzaG93U3BlbGxpbmdVSShib29s
IHNob3cpCiB7Ci0gICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCisgICAgLy8gRklYTUUoamFt
KTogcmVtb3ZlIG9uY2UgY2hyb21lIGlzIHVwZGF0ZWQuCisgICAgaWYgKG1fd2ViVmlldy0+c3Bl
bGxDaGVja0NsaWVudCgpKQorICAgICAgICBtX3dlYlZpZXctPnNwZWxsQ2hlY2tDbGllbnQoKS0+
c2hvd1NwZWxsaW5nVUkoc2hvdyk7CisgICAgZWxzZSBpZiAobV93ZWJWaWV3LT5jbGllbnQoKSkK
ICAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+c2hvd1NwZWxsaW5nVUkoc2hvdyk7CiB9CiAK
IGJvb2wgRWRpdG9yQ2xpZW50SW1wbDo6c3BlbGxpbmdVSUlzU2hvd2luZygpCiB7CisgICAgLy8g
RklYTUUoamFtKTogcmVtb3ZlIG9uY2UgY2hyb21lIGlzIHVwZGF0ZWQuCisgICAgaWYgKG1fd2Vi
Vmlldy0+c3BlbGxDaGVja0NsaWVudCgpKQorICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5zcGVs
bENoZWNrQ2xpZW50KCktPmlzU2hvd2luZ1NwZWxsaW5nVUkoKTsKICAgICBpZiAobV93ZWJWaWV3
LT5jbGllbnQoKSkKICAgICAgICAgcmV0dXJuIG1fd2ViVmlldy0+Y2xpZW50KCktPmlzU2hvd2lu
Z1NwZWxsaW5nVUkoKTsKICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA4MTkyNikKKysrIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY5
LDkgKzI2OSwyOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjppbml0aWFsaXplTWFpbkZyYW1lKFdlCiAg
ICAgU2VjdXJpdHlPcmlnaW46OnNldExvY2FsTG9hZFBvbGljeShTZWN1cml0eU9yaWdpbjo6QWxs
b3dMb2NhbExvYWRzRm9yTG9jYWxPbmx5KTsKIH0KIAordm9pZCBXZWJWaWV3SW1wbDo6c2V0V2Vi
RGV2VG9vbHNBZ2VudENsaWVudChXZWJEZXZUb29sc0FnZW50Q2xpZW50KiBkZXZUb29sc0NsaWVu
dCkgCit7CisgICAgaWYgKGRldlRvb2xzQ2xpZW50KQorICAgICAgICBtX2RldlRvb2xzQWdlbnQg
PSBuZXcgV2ViRGV2VG9vbHNBZ2VudEltcGwodGhpcywgZGV2VG9vbHNDbGllbnQpOworICAgIGVs
c2UKKyAgICAgICAgbV9kZXZUb29sc0FnZW50LmNsZWFyKCk7Cit9CisKK3ZvaWQgV2ViVmlld0lt
cGw6OnNldFdlYkF1dG9GaWxsQ2xpZW50KFdlYkF1dG9GaWxsQ2xpZW50KiBhdXRvRmlsbENsaWVu
dCkKK3sKKyAgICBtX2F1dG9GaWxsQ2xpZW50ID0gYXV0b0ZpbGxDbGllbnQ7Cit9CisKK3ZvaWQg
V2ViVmlld0ltcGw6OnNldFdlYlNwZWxsQ2hlY2tDbGllbnQoV2ViU3BlbGxDaGVja0NsaWVudCog
c3BlbGxDaGVja0NsaWVudCkKK3sKKyAgICBtX3NwZWxsQ2hlY2tDbGllbnQgPSBzcGVsbENoZWNr
Q2xpZW50OworfQorCiBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xp
ZW50LCBXZWJEZXZUb29sc0FnZW50Q2xpZW50KiBkZXZUb29sc0NsaWVudCwgV2ViQXV0b0ZpbGxD
bGllbnQqIGF1dG9GaWxsQ2xpZW50KQogICAgIDogbV9jbGllbnQoY2xpZW50KQogICAgICwgbV9h
dXRvRmlsbENsaWVudChhdXRvRmlsbENsaWVudCkKKyAgICAsIG1fc3BlbGxDaGVja0NsaWVudCgw
KQogICAgICwgbV9jaHJvbWVDbGllbnRJbXBsKHRoaXMpCiAgICAgLCBtX2NvbnRleHRNZW51Q2xp
ZW50SW1wbCh0aGlzKQogICAgICwgbV9kcmFnQ2xpZW50SW1wbCh0aGlzKQpAQCAtMzE5LDggKzMz
OCw3IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KgogICAgIC8vIHNl
dCB0byBpbXBvc3NpYmxlIHBvaW50IHNvIHdlIGFsd2F5cyBnZXQgdGhlIGZpcnN0IG1vdXNlIHBv
cwogICAgIG1fbGFzdE1vdXNlUG9zaXRpb24gPSBXZWJQb2ludCgtMSwgLTEpOwogCi0gICAgaWYg
KGRldlRvb2xzQ2xpZW50KQotICAgICAgICBtX2RldlRvb2xzQWdlbnQgPSBuZXcgV2ViRGV2VG9v
bHNBZ2VudEltcGwodGhpcywgZGV2VG9vbHNDbGllbnQpOworICAgIHNldFdlYkRldlRvb2xzQWdl
bnRDbGllbnQoZGV2VG9vbHNDbGllbnQpOwogCiAgICAgUGFnZTo6UGFnZUNsaWVudHMgcGFnZUNs
aWVudHM7CiAgICAgcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0gJm1fY2hyb21lQ2xpZW50SW1w
bDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAkocmV2aXNp
b24gODE5MjYpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTQsNiArMTE0LDkgQEAgcHVibGljOgogCiAgICAgLy8gV2ViVmll
dyBtZXRob2RzOgogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplTWFpbkZyYW1lKFdlYkZyYW1l
Q2xpZW50Kik7CisgICAgdmlydHVhbCB2b2lkIHNldFdlYkRldlRvb2xzQWdlbnRDbGllbnQoV2Vi
RGV2VG9vbHNBZ2VudENsaWVudCopOworICAgIHZpcnR1YWwgdm9pZCBzZXRXZWJBdXRvRmlsbENs
aWVudChXZWJBdXRvRmlsbENsaWVudCopOworICAgIHZpcnR1YWwgdm9pZCBzZXRXZWJTcGVsbENo
ZWNrQ2xpZW50KFdlYlNwZWxsQ2hlY2tDbGllbnQqKTsKICAgICB2aXJ0dWFsIFdlYlNldHRpbmdz
KiBzZXR0aW5ncygpOwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIHBhZ2VFbmNvZGluZygpIGNvbnN0
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdlRW5jb2RpbmcoY29uc3QgV2ViU3RyaW5nJiBlbmNv
ZGluZyk7CkBAIC0yMjQsNiArMjI3LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fYXV0
b0ZpbGxDbGllbnQ7CiAgICAgfQogCisgICAgV2ViU3BlbGxDaGVja0NsaWVudCogc3BlbGxDaGVj
a0NsaWVudCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9zcGVsbENoZWNrQ2xpZW50OworICAg
IH0KKwogICAgIC8vIFJldHVybnMgdGhlIHBhZ2Ugb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlz
IHZpZXcuIFRoaXMgbWF5IGJlIG51bGwgd2hlbgogICAgIC8vIHRoZSBwYWdlIGlzIHNodXR0aW5n
IGRvd24sIGJ1dCB3aWxsIGJlIHZhbGlkIGF0IGFsbCBvdGhlciB0aW1lcy4KICAgICBXZWJDb3Jl
OjpQYWdlKiBwYWdlKCkgY29uc3QKQEAgLTQwOCw2ICs0MTYsNyBAQCBwcml2YXRlOgogCiAgICAg
V2ViVmlld0NsaWVudCogbV9jbGllbnQ7CiAgICAgV2ViQXV0b0ZpbGxDbGllbnQqIG1fYXV0b0Zp
bGxDbGllbnQ7CisgICAgV2ViU3BlbGxDaGVja0NsaWVudCogbV9zcGVsbENoZWNrQ2xpZW50Owog
CiAgICAgQ2hyb21lQ2xpZW50SW1wbCBtX2Nocm9tZUNsaWVudEltcGw7CiAgICAgQ29udGV4dE1l
bnVDbGllbnRJbXBsIG1fY29udGV4dE1lbnVDbGllbnRJbXBsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86878</attachid>
            <date>2011-03-24 21:31:17 -0700</date>
            <delta_ts>2011-03-25 12:48:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57070-20110324213038.patch</filename>
            <type>text/plain</type>
            <size>14168</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA4MTkyNykKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUg
QEAKKzIwMTEtMDMtMjQgIEpvaG4gQWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1d
IEFkZCBzZXR0ZXJzIGZvciB2YXJpb3VzIGNsaWVudCBpbnRlcmZhY2VzLCBhbmQgYWRkIFdiU3Bl
bGxDaGVja0NsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTcwNzAKKworICAgICAgICAqIHB1YmxpYy9XZWJTcGVsbENoZWNrQ2xpZW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVsbENoZWNrQ2xpZW50OjpzcGVsbENoZWNrKToK
KyAgICAgICAgKFdlYktpdDo6V2ViU3BlbGxDaGVja0NsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZU
ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlbGxDaGVja0NsaWVudDo6YXV0b0NvcnJlY3RX
b3JkKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlbGxDaGVja0NsaWVudDo6c2hvd1NwZWxsaW5n
VUkpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVsbENoZWNrQ2xpZW50Ojppc1Nob3dpbmdTcGVs
bGluZ1VJKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlbGxDaGVja0NsaWVudDo6dXBkYXRlU3Bl
bGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWxsQ2hl
Y2tDbGllbnQ6On5XZWJTcGVsbENoZWNrQ2xpZW50KToKKyAgICAgICAgKiBwdWJsaWMvV2ViVmll
dy5oOgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgICogc3JjL0Vk
aXRvckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpj
aGVja1NwZWxsaW5nT2ZTdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBs
OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVu
dEltcGw6OmdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKToKKyAgICAg
ICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6dXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVs
bGVkV29yZCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OnNob3dTcGVsbGlu
Z1VJKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6c3BlbGxpbmdVSUlzU2hv
d2luZyk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNldFdlYkRldlRvb2xzQWdlbnRDbGllbnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6c2V0V2ViQXV0b0ZpbGxDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6c2V0V2ViU3BlbGxDaGVja0NsaWVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzcGVsbENoZWNrQ2xpZW50KToKKwogMjAxMS0w
My0yMyAgSm9obiBBYmQtRWwtTWFsZWsgIDxqYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFRvbnkgQ2hhbmcuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTcGVsbENoZWNrQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViU3BlbGxDaGVja0NsaWVudC5oCShyZXZpc2lvbiAwKQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3BlbGxDaGVja0NsaWVudC5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJTcGVsbENoZWNrQ2xpZW50X2gKKyNkZWZpbmUg
V2ViU3BlbGxDaGVja0NsaWVudF9oCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJT
dHJpbmc7CitjbGFzcyBXZWJUZXh0Q2hlY2tpbmdDb21wbGV0aW9uOworCitjbGFzcyBXZWJTcGVs
bENoZWNrQ2xpZW50IHsKK3B1YmxpYzoKKyAgICAvLyBUaGUgY2xpZW50IHNob3VsZCBwZXJmb3Jt
IHNwZWxsLWNoZWNraW5nIG9uIHRoZSBnaXZlbiB0ZXh0LiBJZiB0aGUKKyAgICAvLyB0ZXh0IGNv
bnRhaW5zIGEgbWlzc3BlbGxlZCB3b3JkLCB0aGVuIHVwb24gcmV0dXJuIG1pc3NwZWxsZWRPZmZz
ZXQKKyAgICAvLyB3aWxsIHBvaW50IHRvIHRoZSBzdGFydCBvZiB0aGUgbWlzc3BlbGxlZCB3b3Jk
LCBhbmQgbWlzc3BlbGxlZExlbmd0aAorICAgIC8vIHdpbGwgaW5kaWNhdGVzIGl0cyBsZW5ndGgu
IE90aGVyd2lzZSwgaWYgdGhlcmUgd2FzIG5vdCBhIHNwZWxsaW5nCisgICAgLy8gZXJyb3IsIHRo
ZW4gdXBvbiByZXR1cm4gbWlzc3BlbGxlZExlbmd0aCBpcyAwLgorICAgIHZpcnR1YWwgdm9pZCBz
cGVsbENoZWNrKAorICAgICAgICBjb25zdCBXZWJTdHJpbmcmIHRleHQsIGludCYgbWlzc3BlbGxl
ZE9mZnNldCwgaW50JiBtaXNzcGVsbGVkTGVuZ3RoKSB7IH0KKyAgICAvLyBSZXF1ZXN0cyBhc3lu
Y2hyb25vdXMgc3BlbGxpbmcgYW5kIGdyYW1tYXIgY2hlY2tpbmcsIHdob3NlIHJlc3VsdCBzaG91
bGQgYmUKKyAgICAvLyByZXR1cm5lZCBieSBwYXNzZWQgY29tcGxldGlvbiBvYmplY3QuCisgICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mVGV4dChjb25zdCBXZWJTdHJpbmcmLCBXZWJU
ZXh0Q2hlY2tpbmdDb21wbGV0aW9uKikgeyB9CisKKyAgICAvLyBDb21wdXRlcyBhbiBhdXRvLWNv
cnJlY3RlZCByZXBsYWNlbWVudCBmb3IgYSBtaXNzcGVsbGVkIHdvcmQuIElmIG5vCisgICAgLy8g
cmVwbGFjZW1lbnQgaXMgZm91bmQsIHRoZW4gYW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkLgor
ICAgIHZpcnR1YWwgV2ViU3RyaW5nIGF1dG9Db3JyZWN0V29yZChjb25zdCBXZWJTdHJpbmcmIG1p
c3NwZWxsZWRXb3JkKSB7IHJldHVybiBXZWJTdHJpbmcoKTsgfQorCisgICAgLy8gU2hvdyBvciBo
aWRlIHRoZSBzcGVsbGluZyBVSS4KKyAgICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9v
bCBzaG93KSB7IH0KKworICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgc3BlbGxpbmcgVUkgaXMg
c2hvd2luZy4KKyAgICB2aXJ0dWFsIGJvb2wgaXNTaG93aW5nU3BlbGxpbmdVSSgpIHsgcmV0dXJu
IGZhbHNlOyB9CisKKyAgICAvLyBVcGRhdGUgdGhlIHNwZWxsaW5nIFVJIHdpdGggdGhlIGdpdmVu
IHdvcmQuCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdv
cmQoY29uc3QgV2ViU3RyaW5nJiB3b3JkKSB7IH0KKworcHJvdGVjdGVkOgorICAgIH5XZWJTcGVs
bENoZWNrQ2xpZW50KCkgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJT
cGVsbENoZWNrQ2xpZW50LmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKICAgKyAq
CgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAkocmV2aXNpb24g
ODE5MjYpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgJKHdvcmtp
bmcgY29weSkKQEAgLTM2LDkgKzM2LDYgQEAKICNpbmNsdWRlICJXZWJWZWN0b3IuaCIKICNpbmNs
dWRlICJXZWJXaWRnZXQuaCIKIAotLy8gRklYTUUoamFtKTogdGFrZSBvdXQgb25jZSBDaHJvbWl1
bSByb2xscyBwYXN0IHRoaXMgcmV2aXNpb24KLSNkZWZpbmUgV0VCS0lUX0hBU19XRUJfQVVUT19G
SUxMX0NMSUVOVAotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQWNjZXNzaWJpbGl0
eU9iamVjdDsKQEAgLTUxLDYgKzQ4LDcgQEAgY2xhc3MgV2ViRnJhbWVDbGllbnQ7CiBjbGFzcyBX
ZWJHcmFwaGljc0NvbnRleHQzRDsKIGNsYXNzIFdlYk5vZGU7CiBjbGFzcyBXZWJTZXR0aW5nczsK
K2NsYXNzIFdlYlNwZWxsQ2hlY2tDbGllbnQ7CiBjbGFzcyBXZWJTdHJpbmc7CiBjbGFzcyBXZWJW
aWV3Q2xpZW50Owogc3RydWN0IFdlYk1lZGlhUGxheWVyQWN0aW9uOwpAQCAtODYsOSArODQsMTAg
QEAgcHVibGljOgogICAgIC8vIENyZWF0ZXMgYSBXZWJWaWV3IHRoYXQgaXMgTk9UIHlldCBpbml0
aWFsaXplZC4gIFlvdSB3aWxsIG5lZWQgdG8KICAgICAvLyBjYWxsIGluaXRpYWxpemVNYWluRnJh
bWUgdG8gZmluaXNoIHRoZSBpbml0aWFsaXphdGlvbi4gIEl0IGlzIHZhbGlkCiAgICAgLy8gdG8g
cGFzcyBudWxsIGNsaWVudCBwb2ludGVycy4KKyAgICAvLyBGSVhNRShqYW0pOiB0YWtlIG91dCBk
ZWZhdWx0IHBhcmFtZXRlcnMgb25jZSBjaHJvbWl1bSBzdG9wcyBwYXNzaW5nIHRoZW0uCiAgICAg
V0VCS0lUX0FQSSBzdGF0aWMgV2ViVmlldyogY3JlYXRlKFdlYlZpZXdDbGllbnQqLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEZXZUb29sc0FnZW50Q2xpZW50KiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViQXV0b0ZpbGxDbGllbnQq
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRGV2VG9vbHNBZ2Vu
dENsaWVudCogPSAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJB
dXRvRmlsbENsaWVudCogPSAwKTsKIAogICAgIC8vIEFmdGVyIGNyZWF0aW5nIGEgV2ViVmlldywg
eW91IHNob3VsZCBpbW1lZGlhdGVseSBjYWxsIHRoaXMgbWV0aG9kLgogICAgIC8vIFlvdSBjYW4g
b3B0aW9uYWxseSBtb2RpZnkgdGhlIHNldHRpbmdzIGJlZm9yZSBjYWxsaW5nIHRoaXMgbWV0aG9k
LgpAQCAtOTYsNiArOTUsMTEgQEAgcHVibGljOgogICAgIC8vIGNoaWxkIGZyYW1lcy4gIEl0IGlz
IHZhbGlkIHRvIHBhc3MgYSBudWxsIFdlYkZyYW1lQ2xpZW50IHBvaW50ZXIuCiAgICAgdmlydHVh
bCB2b2lkIGluaXRpYWxpemVNYWluRnJhbWUoV2ViRnJhbWVDbGllbnQqKSA9IDA7CiAKKyAgICAv
LyBJbml0aWFsaXplcyB0aGUgdmFyaW91cyBjbGllbnQgaW50ZXJmYWNlcy4KKyAgICB2aXJ0dWFs
IHZvaWQgc2V0V2ViRGV2VG9vbHNBZ2VudENsaWVudChXZWJEZXZUb29sc0FnZW50Q2xpZW50Kikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRXZWJBdXRvRmlsbENsaWVudChXZWJBdXRvRmlsbENs
aWVudCopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0V2ViU3BlbGxDaGVja0NsaWVudChXZWJT
cGVsbENoZWNrQ2xpZW50KikgPSAwOworCiAKICAgICAvLyBPcHRpb25zIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApJbmRleDog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAkocmV2aXNp
b24gODE5MjYpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3MSw2ICsxNzEsNyBAQCBwdWJsaWM6CiAKIAogICAgIC8v
IFNwZWxsY2hlY2tlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorICAgIC8vIEZJWE1FKGphbSk6IHJlbW92ZSBvbmNlIGNocm9taXVtIGlz
IHVwZGF0ZWQgdG8gdXNlIFdlYlNwZWxsQ2hlY2tDbGllbnQKIAogICAgIC8vIFRoZSBjbGllbnQg
c2hvdWxkIHBlcmZvcm0gc3BlbGwtY2hlY2tpbmcgb24gdGhlIGdpdmVuIHRleHQuICBJZiB0aGUK
ICAgICAvLyB0ZXh0IGNvbnRhaW5zIGEgbWlzc3BlbGxlZCB3b3JkLCB0aGVuIHVwb24gcmV0dXJu
IG1pc3NwZWxsZWRPZmZzZXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRv
ckNsaWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0VkaXRvckNsaWVudEltcGwuY3BwCShyZXZpc2lvbiA4MTkyNikKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2
ICs1NCw3IEBACiAjaW5jbHVkZSAiV2ViTm9kZS5oIgogI2luY2x1ZGUgIldlYlBhc3N3b3JkQXV0
b2NvbXBsZXRlTGlzdGVuZXIuaCIKICNpbmNsdWRlICJXZWJSYW5nZS5oIgorI2luY2x1ZGUgIldl
YlNwZWxsQ2hlY2tDbGllbnQuaCIKICNpbmNsdWRlICJXZWJUZXh0QWZmaW5pdHkuaCIKICNpbmNs
dWRlICJXZWJUZXh0Q2hlY2tpbmdDb21wbGV0aW9uSW1wbC5oIgogI2luY2x1ZGUgIldlYlZpZXdD
bGllbnQuaCIKQEAgLTg1Niw2ICs4NTcsOSBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OmNoZWNr
U3BlbGxpbmdPZlN0CiAgICAgaW50IHNwZWxsTGVuZ3RoID0gMDsKIAogICAgIC8vIENoZWNrIHRv
IHNlZSBpZiB0aGUgcHJvdmlkZWQgdGV4dCBpcyBzcGVsbGVkIGNvcnJlY3RseS4KKyAgICAvLyBG
SVhNRShqYW0pOiByZW1vdmUgb25jZSBjaHJvbWUgaXMgdXBkYXRlZC4KKyAgICBpZiAoaXNDb250
aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSAmJiBtX3dlYlZpZXctPnNwZWxsQ2hlY2tDbGll
bnQoKSkKKyAgICAgICAgbV93ZWJWaWV3LT5zcGVsbENoZWNrQ2xpZW50KCktPnNwZWxsQ2hlY2so
V2ViU3RyaW5nKHRleHQsIGxlbmd0aCksIHNwZWxsTG9jYXRpb24sIHNwZWxsTGVuZ3RoKTsKICAg
ICBpZiAoaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSAmJiBtX3dlYlZpZXctPmNs
aWVudCgpKQogICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5zcGVsbENoZWNrKFdlYlN0cmlu
Zyh0ZXh0LCBsZW5ndGgpLCBzcGVsbExvY2F0aW9uLCBzcGVsbExlbmd0aCk7CiAgICAgZWxzZSB7
CkBAIC04NzMsNyArODc3LDExIEBAIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6Y2hlY2tTcGVsbGlu
Z09mU3QKIAogdm9pZCBFZGl0b3JDbGllbnRJbXBsOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhT
cGVsbENoZWNrZXIqIHNlbmRlciwgaW50IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdGV4dCkK
IHsKLSAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdPZlRleHQodGV4dCwg
bmV3IFdlYlRleHRDaGVja2luZ0NvbXBsZXRpb25JbXBsKGlkZW50aWZpZXIsIHNlbmRlcikpOwor
ICAgIC8vIEZJWE1FKGphbSk6IHJlbW92ZSBvbmNlIGNocm9tZSBpcyB1cGRhdGVkLgorICAgIGlm
IChtX3dlYlZpZXctPnNwZWxsQ2hlY2tDbGllbnQoKSkKKyAgICAgICAgbV93ZWJWaWV3LT5zcGVs
bENoZWNrQ2xpZW50KCktPnJlcXVlc3RDaGVja2luZ09mVGV4dCh0ZXh0LCBuZXcgV2ViVGV4dENo
ZWNraW5nQ29tcGxldGlvbkltcGwoaWRlbnRpZmllciwgc2VuZGVyKSk7CisgICAgZWxzZQorICAg
ICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdPZlRleHQodGV4dCwgbmV3
IFdlYlRleHRDaGVja2luZ0NvbXBsZXRpb25JbXBsKGlkZW50aWZpZXIsIHNlbmRlcikpOwogfQog
CiBTdHJpbmcgRWRpdG9yQ2xpZW50SW1wbDo6Z2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlz
c3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJiBtaXNzcGVsbGVkV29yZCkKQEAgLTg4OCw2ICs4OTYs
OSBAQCBTdHJpbmcgRWRpdG9yQ2xpZW50SW1wbDo6Z2V0QXV0b0NvcnJlY3RTCiAgICAgICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CiAgICAgfQogCisgICAgLy8gRklYTUUoamFtKTogcmVtb3ZlIG9u
Y2UgY2hyb21lIGlzIHVwZGF0ZWQuCisgICAgaWYgKG1fd2ViVmlldy0+c3BlbGxDaGVja0NsaWVu
dCgpKQorICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5zcGVsbENoZWNrQ2xpZW50KCktPmF1dG9D
b3JyZWN0V29yZChXZWJTdHJpbmcobWlzc3BlbGxlZFdvcmQpKTsKICAgICByZXR1cm4gbV93ZWJW
aWV3LT5jbGllbnQoKS0+YXV0b0NvcnJlY3RXb3JkKFdlYlN0cmluZyhtaXNzcGVsbGVkV29yZCkp
OwogfQogCkBAIC05MTEsMTggKzkyMiwyNyBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OnVwZGF0
ZVNwZWxsaW5nVUlXCiAKIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6dXBkYXRlU3BlbGxpbmdVSVdp
dGhNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmIG1pc3NwZWxsZWRXb3JkKQogewotICAgIGlm
IChtX3dlYlZpZXctPmNsaWVudCgpKQorICAgIC8vIEZJWE1FKGphbSk6IHJlbW92ZSBvbmNlIGNo
cm9tZSBpcyB1cGRhdGVkLgorICAgIGlmIChtX3dlYlZpZXctPnNwZWxsQ2hlY2tDbGllbnQoKSkK
KyAgICAgICAgbV93ZWJWaWV3LT5zcGVsbENoZWNrQ2xpZW50KCktPnVwZGF0ZVNwZWxsaW5nVUlX
aXRoTWlzc3BlbGxlZFdvcmQoV2ViU3RyaW5nKG1pc3NwZWxsZWRXb3JkKSk7CisgICAgZWxzZSBp
ZiAobV93ZWJWaWV3LT5jbGllbnQoKSkKICAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+dXBk
YXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChXZWJTdHJpbmcobWlzc3BlbGxlZFdvcmQp
KTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRJbXBsOjpzaG93U3BlbGxpbmdVSShib29sIHNob3cp
CiB7Ci0gICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCisgICAgLy8gRklYTUUoamFtKTogcmVt
b3ZlIG9uY2UgY2hyb21lIGlzIHVwZGF0ZWQuCisgICAgaWYgKG1fd2ViVmlldy0+c3BlbGxDaGVj
a0NsaWVudCgpKQorICAgICAgICBtX3dlYlZpZXctPnNwZWxsQ2hlY2tDbGllbnQoKS0+c2hvd1Nw
ZWxsaW5nVUkoc2hvdyk7CisgICAgZWxzZSBpZiAobV93ZWJWaWV3LT5jbGllbnQoKSkKICAgICAg
ICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+c2hvd1NwZWxsaW5nVUkoc2hvdyk7CiB9CiAKIGJvb2wg
RWRpdG9yQ2xpZW50SW1wbDo6c3BlbGxpbmdVSUlzU2hvd2luZygpCiB7CisgICAgLy8gRklYTUUo
amFtKTogcmVtb3ZlIG9uY2UgY2hyb21lIGlzIHVwZGF0ZWQuCisgICAgaWYgKG1fd2ViVmlldy0+
c3BlbGxDaGVja0NsaWVudCgpKQorICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5zcGVsbENoZWNr
Q2xpZW50KCktPmlzU2hvd2luZ1NwZWxsaW5nVUkoKTsKICAgICBpZiAobV93ZWJWaWV3LT5jbGll
bnQoKSkKICAgICAgICAgcmV0dXJuIG1fd2ViVmlldy0+Y2xpZW50KCktPmlzU2hvd2luZ1NwZWxs
aW5nVUkoKTsKICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA4MTkyNikKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY5LDkgKzI2
OSwyOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjppbml0aWFsaXplTWFpbkZyYW1lKFdlCiAgICAgU2Vj
dXJpdHlPcmlnaW46OnNldExvY2FsTG9hZFBvbGljeShTZWN1cml0eU9yaWdpbjo6QWxsb3dMb2Nh
bExvYWRzRm9yTG9jYWxPbmx5KTsKIH0KIAordm9pZCBXZWJWaWV3SW1wbDo6c2V0V2ViRGV2VG9v
bHNBZ2VudENsaWVudChXZWJEZXZUb29sc0FnZW50Q2xpZW50KiBkZXZUb29sc0NsaWVudCkgCit7
CisgICAgaWYgKGRldlRvb2xzQ2xpZW50KQorICAgICAgICBtX2RldlRvb2xzQWdlbnQgPSBuZXcg
V2ViRGV2VG9vbHNBZ2VudEltcGwodGhpcywgZGV2VG9vbHNDbGllbnQpOworICAgIGVsc2UKKyAg
ICAgICAgbV9kZXZUb29sc0FnZW50LmNsZWFyKCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNl
dFdlYkF1dG9GaWxsQ2xpZW50KFdlYkF1dG9GaWxsQ2xpZW50KiBhdXRvRmlsbENsaWVudCkKK3sK
KyAgICBtX2F1dG9GaWxsQ2xpZW50ID0gYXV0b0ZpbGxDbGllbnQ7Cit9CisKK3ZvaWQgV2ViVmll
d0ltcGw6OnNldFdlYlNwZWxsQ2hlY2tDbGllbnQoV2ViU3BlbGxDaGVja0NsaWVudCogc3BlbGxD
aGVja0NsaWVudCkKK3sKKyAgICBtX3NwZWxsQ2hlY2tDbGllbnQgPSBzcGVsbENoZWNrQ2xpZW50
OworfQorCiBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xpZW50LCBX
ZWJEZXZUb29sc0FnZW50Q2xpZW50KiBkZXZUb29sc0NsaWVudCwgV2ViQXV0b0ZpbGxDbGllbnQq
IGF1dG9GaWxsQ2xpZW50KQogICAgIDogbV9jbGllbnQoY2xpZW50KQogICAgICwgbV9hdXRvRmls
bENsaWVudChhdXRvRmlsbENsaWVudCkKKyAgICAsIG1fc3BlbGxDaGVja0NsaWVudCgwKQogICAg
ICwgbV9jaHJvbWVDbGllbnRJbXBsKHRoaXMpCiAgICAgLCBtX2NvbnRleHRNZW51Q2xpZW50SW1w
bCh0aGlzKQogICAgICwgbV9kcmFnQ2xpZW50SW1wbCh0aGlzKQpAQCAtMzE5LDggKzMzOCw3IEBA
IFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KgogICAgIC8vIHNldCB0byBp
bXBvc3NpYmxlIHBvaW50IHNvIHdlIGFsd2F5cyBnZXQgdGhlIGZpcnN0IG1vdXNlIHBvcwogICAg
IG1fbGFzdE1vdXNlUG9zaXRpb24gPSBXZWJQb2ludCgtMSwgLTEpOwogCi0gICAgaWYgKGRldlRv
b2xzQ2xpZW50KQotICAgICAgICBtX2RldlRvb2xzQWdlbnQgPSBuZXcgV2ViRGV2VG9vbHNBZ2Vu
dEltcGwodGhpcywgZGV2VG9vbHNDbGllbnQpOworICAgIHNldFdlYkRldlRvb2xzQWdlbnRDbGll
bnQoZGV2VG9vbHNDbGllbnQpOwogCiAgICAgUGFnZTo6UGFnZUNsaWVudHMgcGFnZUNsaWVudHM7
CiAgICAgcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0gJm1fY2hyb21lQ2xpZW50SW1wbDsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAkocmV2aXNpb24gODE5
MjYpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTQsNiArMTE0LDkgQEAgcHVibGljOgogCiAgICAgLy8gV2ViVmlldyBtZXRo
b2RzOgogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplTWFpbkZyYW1lKFdlYkZyYW1lQ2xpZW50
Kik7CisgICAgdmlydHVhbCB2b2lkIHNldFdlYkRldlRvb2xzQWdlbnRDbGllbnQoV2ViRGV2VG9v
bHNBZ2VudENsaWVudCopOworICAgIHZpcnR1YWwgdm9pZCBzZXRXZWJBdXRvRmlsbENsaWVudChX
ZWJBdXRvRmlsbENsaWVudCopOworICAgIHZpcnR1YWwgdm9pZCBzZXRXZWJTcGVsbENoZWNrQ2xp
ZW50KFdlYlNwZWxsQ2hlY2tDbGllbnQqKTsKICAgICB2aXJ0dWFsIFdlYlNldHRpbmdzKiBzZXR0
aW5ncygpOwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIHBhZ2VFbmNvZGluZygpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBzZXRQYWdlRW5jb2RpbmcoY29uc3QgV2ViU3RyaW5nJiBlbmNvZGluZyk7
CkBAIC0yMjQsNiArMjI3LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fYXV0b0ZpbGxD
bGllbnQ7CiAgICAgfQogCisgICAgV2ViU3BlbGxDaGVja0NsaWVudCogc3BlbGxDaGVja0NsaWVu
dCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9zcGVsbENoZWNrQ2xpZW50OworICAgIH0KKwog
ICAgIC8vIFJldHVybnMgdGhlIHBhZ2Ugb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHZpZXcu
IFRoaXMgbWF5IGJlIG51bGwgd2hlbgogICAgIC8vIHRoZSBwYWdlIGlzIHNodXR0aW5nIGRvd24s
IGJ1dCB3aWxsIGJlIHZhbGlkIGF0IGFsbCBvdGhlciB0aW1lcy4KICAgICBXZWJDb3JlOjpQYWdl
KiBwYWdlKCkgY29uc3QKQEAgLTQwOCw2ICs0MTYsNyBAQCBwcml2YXRlOgogCiAgICAgV2ViVmll
d0NsaWVudCogbV9jbGllbnQ7CiAgICAgV2ViQXV0b0ZpbGxDbGllbnQqIG1fYXV0b0ZpbGxDbGll
bnQ7CisgICAgV2ViU3BlbGxDaGVja0NsaWVudCogbV9zcGVsbENoZWNrQ2xpZW50OwogCiAgICAg
Q2hyb21lQ2xpZW50SW1wbCBtX2Nocm9tZUNsaWVudEltcGw7CiAgICAgQ29udGV4dE1lbnVDbGll
bnRJbXBsIG1fY29udGV4dE1lbnVDbGllbnRJbXBsOwo=
</data>
<flag name="review"
          id="79241"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>