<?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>48969</bug_id>
          
          <creation_ts>2010-11-03 19:14:42 -0700</creation_ts>
          <short_desc>Need a way to test in WebKit2 whether a form field contains marked text</short_desc>
          <delta_ts>2010-11-04 11:29:56 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Enrica Casucci">enrica</reporter>
          <assigned_to name="Enrica Casucci">enrica</assigned_to>
          <cc>ap</cc>
    
    <cc>sullivan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>304423</commentid>
    <comment_count>0</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-11-03 19:14:42 -0700</bug_when>
    <thetext>This is required to support autofill.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304430</commentid>
    <comment_count>1</comment_count>
      <attachid>72897</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-11-03 19:30:12 -0700</bug_when>
    <thetext>Created attachment 72897
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304746</commentid>
    <comment_count>2</comment_count>
      <attachid>72897</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-04 10:45:50 -0700</bug_when>
    <thetext>Comment on attachment 72897
Patch

+    // Need to declare these attribute names because AppKit exports them but does not make them available in API or SPI headers.
+    
+    extern NSString *NSMarkedClauseSegmentAttributeName;

This one is in 10.5 SDK.

+    extern NSString *NSTextInputReplacementRangeAttributeName;

This one is not - please file a bug, and reference it in a comment.

+    BOOL _isSelectionInPasswordField;

Since you added this, you probably already know that there is some advanced trickery going on to make sure that password fields are handled correctly by input methods. This is not relevant to this patch, but I wanted to be sure that you look into that later.


+    Frame* frame = m_page-&gt;corePage()-&gt;focusController()-&gt;focusedOrMainFrame();
+    if (!frame)
+        return;

Why ask for main frame if there is no focused one?

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304770</commentid>
    <comment_count>3</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-11-04 11:29:19 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 72897 [details])
&gt; +    // Need to declare these attribute names because AppKit exports them but does not make them available in API or SPI headers.
&gt; +    
&gt; +    extern NSString *NSMarkedClauseSegmentAttributeName;
&gt; 
&gt; This one is in 10.5 SDK.
&gt; 
&gt; +    extern NSString *NSTextInputReplacementRangeAttributeName;
&gt; 
&gt; This one is not - please file a bug, and reference it in a comment.

Done.

&gt; 
&gt; +    BOOL _isSelectionInPasswordField;
&gt; 
&gt; Since you added this, you probably already know that there is some advanced trickery going on to make sure that password fields are handled correctly by input methods. This is not relevant to this patch, but I wanted to be sure that you look into that later.

Yes! 

&gt; 
&gt; 
&gt; +    Frame* frame = m_page-&gt;corePage()-&gt;focusController()-&gt;focusedOrMainFrame();
&gt; +    if (!frame)
&gt; +        return;
&gt; 
&gt; Why ask for main frame if there is no focused one?

Sorry, just copy/paste mistake.

&gt; 
&gt; r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304771</commentid>
    <comment_count>4</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-11-04 11:29:56 -0700</bug_when>
    <thetext>Committed revision 71347.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72897</attachid>
            <date>2010-11-03 19:30:12 -0700</date>
            <delta_ts>2010-11-04 10:45:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>hasmarkedtext.txt</filename>
            <type>text/plain</type>
            <size>15243</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTI5NykKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTAgQEAKKzIwMTAtMTEtMDMgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
ZWVkIGEgd2F5IHRvIHRlc3QgaW4gV2ViS2l0MiB3aGV0aGVyIGEgZm9ybSBmaWVsZCBjb250YWlu
cyBtYXJrZWQgdGV4dAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU1NTI5Mz4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4OTY5CisgICAgICAgIAor
ICAgICAgICBBZGRlZCBhIHNlbGVjdGlvbiBjaGFuZ2VkIG5vdGlmaWNhdGlvbiBmcm9tIHRoZSBX
ZWIgcHJvY2VzcyB0byB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgVGhlIG1lc3NhZ2UgYmVpbmcg
c2VudCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCBzZWxlY3Rpb24uCisg
ICAgICAgIEV2ZW50IHRob3VnaCBmb3IgdGhpcyBzcGVjaWZpYyBidWcgdGhlIG9ubHkgaW5mb3Jt
YXRpb24gcmVxdWlyZWQgaXMgdGhlIG1hcmtlZCB0ZXh0LAorICAgICAgICBJJ3ZlIGFkZGVkIG90
aGVyIHNlbGVjdGlvbiBpbmZvcm1hdGlvbiB0aGF0IHdpbGwgYmUgbmVlZGVkIHRvIHN1cHBvcnQg
SU1FLgorICAgICAgICBBbGwgdGhlIHN0dWJiZWQgbWV0aG9kcyBhcmUgcmVxdWlyZWQgbWV0aG9k
cyBieSB0aGUgTlNUZXh0SW5wdXQgcHJvdG9jb2wuCisgICAgICAgIAorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9t
YWMvUGFnZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpz
ZWxlY3Rpb25DaGFuZ2VkKTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAo
LVtXS1ZpZXcgaW5pdFdpdGhGcmFtZTpwYWdlTmFtZXNwYWNlUmVmOl0pOiBBZGRlZCBpbml0aWFs
aXphdGlvbiBvZiBuZXcgbWVtYmVycy4KKyAgICAgICAgKC1bV0tWaWV3IF9zZWxlY3Rpb25DaGFu
Z2VkOmlzRWRpdGFibGU6aXNQYXNzd29yZDpoYXNNYXJrZWRUZXh0Ol0pOiBTdG9yZXMgdGhlIHZh
bHVlcyBmcm9tCisgICAgICAgIHRoZSBzZWxlY3Rpb24gY2hhbmdlZCBtZXNzYWdlLgorICAgICAg
ICAoLVtXS1ZpZXcgc2VsZWN0ZWRSYW5nZV0pOiBBZGRlZCBzdHViLgorICAgICAgICAoLVtXS1Zp
ZXcgaGFzTWFya2VkVGV4dF0pOiBJbXBsZW1lbnRlZC4KKyAgICAgICAgKC1bV0tWaWV3IHVubWFy
a1RleHRdKTogQWRkZWQgc3R1Yi4KKyAgICAgICAgKC1bV0tWaWV3IHZhbGlkQXR0cmlidXRlc0Zv
ck1hcmtlZFRleHRdKTogQWRkZWQgc3R1Yi4KKyAgICAgICAgKC1bV0tWaWV3IHNldE1hcmtlZFRl
eHQ6c2VsZWN0ZWRSYW5nZTpdKTogQWRkZWQgc3R1Yi4KKyAgICAgICAgKC1bV0tWaWV3IG1hcmtl
ZFJhbmdlXSk6IEFkZGVkIHN0dWIuCisgICAgICAgICgtW1dLVmlldyBhdHRyaWJ1dGVkU3Vic3Ry
aW5nRnJvbVJhbmdlOl0pOiBBZGRlZCBzdHViLgorICAgICAgICAoLVtXS1ZpZXcgY29udmVyc2F0
aW9uSWRlbnRpZmllcl0pOiBBZGRlZCBzdHViLgorICAgICAgICAoLVtXS1ZpZXcgY2hhcmFjdGVy
SW5kZXhGb3JQb2ludDpdKTogQWRkZWQgc3R1Yi4KKyAgICAgICAgKC1bV0tWaWV3IGZpcnN0UmVj
dEZvckNoYXJhY3RlclJhbmdlOl0pOiBBZGRlZCBzdHViLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2tw
YWdlLmNwcDoKKyAgICAgICAgKFFXS1BhZ2VQcml2YXRlOjpzZWxlY3Rpb25DaGFuZ2VkKTogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3AuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFNlbGVjdGlvbkNoYW5nZSk6
IE5ldyBtZXNzYWdlIGhhbmRsZXIuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6
c2VsZWN0aW9uQ2hhbmdlZCk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViVmll
dy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50OjpyZXNwb25kVG9DaGFuZ2Vk
U2VsZWN0aW9uKTogQWRkZWQgaW1wbGVtZW50YXRpb24uCisKIDIwMTAtMTEtMDMgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFt
IFJvYmVuLgpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAkocmV2aXNpb24gNzEyOTYpCisrKyBX
ZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTcxLDYgKzcx
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZlcnRUb1Vz
ZXJTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZv
aWQgZGlkTm90SGFuZGxlS2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0aW9uQ2hhbmdlZChib29sLCBib29sLCBib29sLCBi
b29sKSA9IDA7CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNy
ZWF0ZVBvcHVwTWVudVByb3h5KCkgPSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb250
ZXh0TWVudVByb3h5PiBjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSopID0gMDsK
SW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gNzEyOTYpCisrKyBX
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDc3
LDYgKzEwNzcsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmJhY2tGb3J3YXJkRm9yd2FyZExpcwog
ICAgIGNvdW50ID0gbV9iYWNrRm9yd2FyZExpc3QtPmZvcndhcmRMaXN0Q291bnQoKTsKIH0KIAor
Ly8gU2VsZWN0aW9uIGNoYW5nZSBzdXBwb3J0Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU2VsZWN0
aW9uQ2hhbmdlKGJvb2wgaXNOb25lLCBib29sIGlzQ29udGVudEVkaXRhYmxlLCBib29sIGlzUGFz
c3dvcmRGaWVsZCwgYm9vbCBoYXNDb21wb3NpdGlvbikKK3sKKyAgICBtX3BhZ2VDbGllbnQtPnNl
bGVjdGlvbkNoYW5nZWQoaXNOb25lLCBpc0NvbnRlbnRFZGl0YWJsZSwgaXNQYXNzd29yZEZpZWxk
LCBoYXNDb21wb3NpdGlvbik7Cit9CisgICAgCiAvLyBVbmRvIG1hbmFnZW1lbnQKIAogdm9pZCBX
ZWJQYWdlUHJveHk6OnJlZ2lzdGVyRWRpdENvbW1hbmRGb3JVbmRvKHVpbnQ2NF90IGNvbW1hbmRJ
RCwgdWludDMyX3QgZWRpdEFjdGlvbikKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShy
ZXZpc2lvbiA3MTI5NikKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMjAsNiArMjIwLDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkRWRpdENv
bW1hbmQoV2ViRWRpdENvbW1hbmRQcm94eSopOwogICAgIHZvaWQgcmVtb3ZlRWRpdENvbW1hbmQo
V2ViRWRpdENvbW1hbmRQcm94eSopOwogICAgIHZvaWQgcmVnaXN0ZXJFZGl0Q29tbWFuZChQYXNz
UmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBVbmRvT3JSZWRvKTsKKyAgICB2b2lkIGRpZFNl
bGVjdGlvbkNoYW5nZShib29sLCBib29sLCBib29sLCBib29sKTsKIAogICAgIFdlYlByb2Nlc3NQ
cm94eSogcHJvY2VzcygpIGNvbnN0OwogICAgIFdlYlBhZ2VOYW1lc3BhY2UqIHBhZ2VOYW1lc3Bh
Y2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VOYW1lc3BhY2UuZ2V0KCk7IH0KSW5kZXg6IFdlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDcxMjk2KQor
KysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDgsNiArMTA4LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICAj
IFVuZG8vUmVkbyBtZXNzYWdlcy4KICAgICBSZWdpc3RlckVkaXRDb21tYW5kRm9yVW5kbyh1aW50
NjRfdCBjb21tYW5kSUQsIHVpbnQzMl90IGVkaXRBY3Rpb24pCiAgICAgQ2xlYXJBbGxFZGl0Q29t
bWFuZHMoKQorICAgIAorICAgICMgU2VsZWN0aW9uIG1lc3NhZ2VzLgorICAgIERpZFNlbGVjdGlv
bkNoYW5nZShib29sIGlzTm9uZSwgYm9vbCBpc0NvbnRlbnRFZGl0YWJsZSwgYm9vbCBpc1Bhc3N3
b3JkRmllbGQsIGJvb2wgaGFzQ29tcG9zaXRpb24pCiAKICAgICAjIEZpbmQuCiAgICAgRGlkQ291
bnRTdHJpbmdNYXRjaGVzKFdURjo6U3RyaW5nIHN0cmluZywgdWludDMyX3QgbWF0Y2hDb3VudCkK
SW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmgJKHJldmlz
aW9uIDcxMjk2KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5o
CSh3b3JraW5nIGNvcHkpCkBAIC02NCw2ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBX
ZWJDb3JlOjpGbG9hdFJlY3QgY29udmVydFRvVXNlclNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEhhbmRsZUtleUV2ZW50KGNvbnN0IE5h
dGl2ZVdlYktleWJvYXJkRXZlbnQmKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0aW9uQ2hhbmdl
ZChib29sLCBib29sLCBib29sLCBib29sKTsKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJQ
b3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHkoKTsKICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8V2ViQ29udGV4dE1lbnVQcm94eT4gY3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdl
UHJveHkqKTsKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1w
bC5tbQkocmV2aXNpb24gNzEyOTYpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VD
bGllbnRJbXBsLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNDcsNiArMTQ3LDExIEBAIHZvaWQgUGFn
ZUNsaWVudEltcGw6OnNldFZpZXdwb3J0QXJndW1lbnQKIAogfQogCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpzZWxlY3Rpb25DaGFuZ2VkKGJvb2wgaXNOb25lLCBib29sIGlzQ29udGVudEVkaXRhYmxl
LCBib29sIGlzUGFzc3dvcmRGaWVsZCwgYm9vbCBoYXNDb21wb3NpdGlvbikKK3sKKyAgICBbbV93
a1ZpZXcgX3NlbGVjdGlvbkNoYW5nZWQ6aXNOb25lIGlzRWRpdGFibGU6aXNDb250ZW50RWRpdGFi
bGUgaXNQYXNzd29yZDppc1Bhc3N3b3JkRmllbGQgaGFzTWFya2VkVGV4dDpoYXNDb21wb3NpdGlv
bl07Cit9CisKIHN0YXRpYyBOU1N0cmluZyogbmFtZUZvckVkaXRBY3Rpb24oRWRpdEFjdGlvbiBl
ZGl0QWN0aW9uKQogewogICAgIC8vIEZJWE1FOiBVc2UgbG9jYWxpemVkIHN0cmluZ3MuCkluZGV4
OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3LmgJKHJldmlzaW9uIDcxMjk2KQorKysgV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjks
NyBAQAogQGNsYXNzIFdLVmlld0RhdGE7CiAKIFdLX0VYUE9SVAotQGludGVyZmFjZSBXS1ZpZXcg
OiBOU1ZpZXcgeworQGludGVyZmFjZSBXS1ZpZXcgOiBOU1ZpZXcgPE5TVGV4dElucHV0PiB7CiAg
ICAgV0tWaWV3RGF0YSAqX2RhdGE7CiB9CiAKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvV0tWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3Lm1tCShyZXZpc2lvbiA3MTI5NikKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1MiwxNSBAQAogI2ltcG9ydCA8d3RmL1Jl
ZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCitleHRlcm4gIkMiIHsKKyAgICAK
KyAgICAvLyBOZWVkIHRvIGRlY2xhcmUgdGhlc2UgYXR0cmlidXRlIG5hbWVzIGJlY2F1c2UgQXBw
S2l0IGV4cG9ydHMgdGhlbSBidXQgZG9lcyBub3QgbWFrZSB0aGVtIGF2YWlsYWJsZSBpbiBBUEkg
b3IgU1BJIGhlYWRlcnMuCisgICAgCisgICAgZXh0ZXJuIE5TU3RyaW5nICpOU01hcmtlZENsYXVz
ZVNlZ21lbnRBdHRyaWJ1dGVOYW1lOworICAgIGV4dGVybiBOU1N0cmluZyAqTlNUZXh0SW5wdXRS
ZXBsYWNlbWVudFJhbmdlQXR0cmlidXRlTmFtZTsKKyAgICAKK30KKwogdXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC05Myw2ICsxMDIsMTAgQEAg
QGludGVyZmFjZSBXS1ZpZXdEYXRhIDogTlNPYmplY3QgewogICAgIC8vIHRoYXQgaGFzIGJlZW4g
YWxyZWFkeSBzZW50IHRvIFdlYkNvcmUuCiAgICAgTlNFdmVudCAqX2tleURvd25FdmVudEJlaW5n
UmVzZW50OwogICAgIFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+IF9jb21tYW5kc0xpc3Q7CisgICAg
Qk9PTCBfaXNTZWxlY3Rpb25Ob25lOworICAgIEJPT0wgX2lzU2VsZWN0aW9uRWRpdGFibGU7Cisg
ICAgQk9PTCBfaXNTZWxlY3Rpb25JblBhc3N3b3JkRmllbGQ7CisgICAgQk9PTCBfaGFzTWFya2Vk
VGV4dDsKIH0KIEBlbmQKIApAQCAtMTI4LDcgKzE0MSwxMSBAQCAtIChpZClpbml0V2l0aEZyYW1l
OihOU1JlY3QpZnJhbWUgcGFnZU5hCiAgICAgCiAgICAgX2RhdGEtPl9tZW51RW50cmllc0NvdW50
ID0gMDsKICAgICBfZGF0YS0+X2lzUGVyZm9ybWluZ1VwZGF0ZSA9IGZhbHNlOwotCisgICAgX2Rh
dGEtPl9pc1NlbGVjdGlvbk5vbmUgPSBZRVM7CisgICAgX2RhdGEtPl9pc1NlbGVjdGlvbkVkaXRh
YmxlID0gTk87CisgICAgX2RhdGEtPl9pc1NlbGVjdGlvbkluUGFzc3dvcmRGaWVsZCA9IE5POwor
ICAgIF9kYXRhLT5faGFzTWFya2VkVGV4dCA9IE5POworICAgIAogICAgIHJldHVybiBzZWxmOwog
fQogCkBAIC0zNzIsNiArMzg5LDE0IEBAIC0gKHZvaWQpX3NldEV2ZW50QmVpbmdSZXNlbnQ6KE5T
RXZlbnQgKikKICAgICBfZGF0YS0+X2tleURvd25FdmVudEJlaW5nUmVzZW50ID0gW2V2ZW50IHJl
dGFpbl07CiB9CiAKKy0gKHZvaWQpX3NlbGVjdGlvbkNoYW5nZWQ6KEJPT0wpaXNOb25lIGlzRWRp
dGFibGU6KEJPT0wpaXNDb250ZW50RWRpdGFibGUgaXNQYXNzd29yZDooQk9PTClpc1Bhc3N3b3Jk
RmllbGQgaGFzTWFya2VkVGV4dDooQk9PTCloYXNDb21wb3NpdGlvbgoreworICAgIF9kYXRhLT5f
aXNTZWxlY3Rpb25Ob25lID0gaXNOb25lOworICAgIF9kYXRhLT5faXNTZWxlY3Rpb25FZGl0YWJs
ZSA9IGlzQ29udGVudEVkaXRhYmxlOworICAgIF9kYXRhLT5faXNTZWxlY3Rpb25JblBhc3N3b3Jk
RmllbGQgPSBpc1Bhc3N3b3JkRmllbGQ7CisgICAgX2RhdGEtPl9oYXNNYXJrZWRUZXh0ID0gaGFz
Q29tcG9zaXRpb247Cit9CisKIC0gKFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+JilfaW50ZXJjZXB0
S2V5RXZlbnQ6KE5TRXZlbnQgKil0aGVFdmVudAogewogICAgIF9kYXRhLT5fY29tbWFuZHNMaXN0
LmNsZWFyKCk7CkBAIC00MDIsNiArNDI3LDcyIEBAIC0gKHZvaWQpa2V5RG93bjooTlNFdmVudCAq
KXRoZUV2ZW50CiAgICAgX2RhdGEtPl9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdl
YktleWJvYXJkRXZlbnQodGhlRXZlbnQsIHNlbGYpKTsKIH0KIAorLSAoTlNSYW5nZSlzZWxlY3Rl
ZFJhbmdlCit7CisgICAgcmV0dXJuIE5TTWFrZVJhbmdlKE5TTm90Rm91bmQsIDApOworfQorCist
IChCT09MKWhhc01hcmtlZFRleHQKK3sKKyAgICByZXR1cm4gX2RhdGEtPl9oYXNNYXJrZWRUZXh0
OworfQorCistICh2b2lkKXVubWFya1RleHQKK3sKKyAgICAvLyBOb3QgaW1wbGVtZW50ZWQKK30K
KworLSAoTlNBcnJheSAqKXZhbGlkQXR0cmlidXRlc0Zvck1hcmtlZFRleHQKK3sKKyAgICBzdGF0
aWMgTlNBcnJheSAqdmFsaWRBdHRyaWJ1dGVzOworICAgIGlmICghdmFsaWRBdHRyaWJ1dGVzKSB7
CisgICAgICAgIHZhbGlkQXR0cmlidXRlcyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmpl
Y3RzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgTlNVbmRlcmxpbmVTdHlsZUF0dHJpYnV0
ZU5hbWUsIE5TVW5kZXJsaW5lQ29sb3JBdHRyaWJ1dGVOYW1lLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTlNNYXJrZWRDbGF1c2VTZWdtZW50QXR0cmlidXRlTmFtZSwgTlNUZXh0SW5wdXRS
ZXBsYWNlbWVudFJhbmdlQXR0cmlidXRlTmFtZSwgbmlsXTsKKyAgICAgICAgLy8gTlNUZXh0IGFs
c28gc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzLCBidXQgaXQncworICAgICAgICAv
LyBoYXJkIHRvIHRlbGwgd2hpY2ggYXJlIHJlYWxseSByZXF1aXJlZCBmb3IgdGV4dCBpbnB1dCB0
bworICAgICAgICAvLyB3b3JrIHdlbGw7IEkgaGF2ZSBub3Qgc2VlbiBhbnkgaW5wdXQgbWV0aG9k
IG1ha2UgdXNlIG9mIHRoZW0geWV0LgorICAgICAgICAvLyAgICAgTlNGb250QXR0cmlidXRlTmFt
ZSwgTlNGb3JlZ3JvdW5kQ29sb3JBdHRyaWJ1dGVOYW1lLAorICAgICAgICAvLyAgICAgTlNCYWNr
Z3JvdW5kQ29sb3JBdHRyaWJ1dGVOYW1lLCBOU0xhbmd1YWdlQXR0cmlidXRlTmFtZS4KKyAgICAg
ICAgQ0ZSZXRhaW4odmFsaWRBdHRyaWJ1dGVzKTsKKyAgICB9CisgICAgcmV0dXJuIHZhbGlkQXR0
cmlidXRlczsKK30KKworLSAodm9pZClzZXRNYXJrZWRUZXh0OihpZClzdHJpbmcgc2VsZWN0ZWRS
YW5nZTooTlNSYW5nZSluZXdTZWxSYW5nZQoreworICAgIC8vIE5vdCBpbXBsZW1lbnRlZAorfQor
CistIChOU1JhbmdlKW1hcmtlZFJhbmdlCit7CisgICAgLy8gTm90IGltcGxlbWVudGVkCisgICAg
cmV0dXJuIE5TTWFrZVJhbmdlKDAsIDApOworfQorCistIChOU0F0dHJpYnV0ZWRTdHJpbmcgKilh
dHRyaWJ1dGVkU3Vic3RyaW5nRnJvbVJhbmdlOihOU1JhbmdlKW5zUmFuZ2UKK3sKKyAgICAvLyBO
b3QgaW1wbGVtZW50ZWQKKyAgICByZXR1cm4gbmlsOworfQorCistIChOU0ludGVnZXIpY29udmVy
c2F0aW9uSWRlbnRpZmllcgoreworICAgIHJldHVybiAoTlNJbnRlZ2VyKXNlbGY7Cit9CisKKy0g
KE5TVUludGVnZXIpY2hhcmFjdGVySW5kZXhGb3JQb2ludDooTlNQb2ludCl0aGVQb2ludAorewor
ICAgIC8vIE5vdCBpbXBsZW1lbnRlZAorICAgIHJldHVybiBOU05vdEZvdW5kOworfQorCistIChO
U1JlY3QpZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2U6KE5TUmFuZ2UpdGhlUmFuZ2UKK3sgCisg
ICAgLy8gTm90IGltcGxlbWVudGVkCisgICAgcmV0dXJuIE5TTWFrZVJlY3QoMCwgMCwgMCwgMCk7
Cit9CisKIC0gKHZvaWQpX3VwZGF0ZUFjdGl2ZVN0YXRlCiB7CiAgICAgX2RhdGEtPl9wYWdlLT5z
ZXRBY3RpdmUoW1tzZWxmIHdpbmRvd10gaXNLZXlXaW5kb3ddKTsKSW5kZXg6IFdlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgJKHJldmlzaW9uIDcxMjk2KQorKysgV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00MSw2ICs0MSw3IEBAIEBpbnRlcmZhY2UgV0tWaWV3IChJbnRlcm5hbCkKIC0gKHZvaWQpX3Nl
dEV2ZW50QmVpbmdSZXNlbnQ6KE5TRXZlbnQgKilldmVudDsKIC0gKE5TUmVjdClfY29udmVydFRv
RGV2aWNlU3BhY2U6KE5TUmVjdClyZWN0OwogLSAoTlNSZWN0KV9jb252ZXJ0VG9Vc2VyU3BhY2U6
KE5TUmVjdClyZWN0OworLSAodm9pZClfc2VsZWN0aW9uQ2hhbmdlZDooQk9PTClpc05vbmUgaXNF
ZGl0YWJsZTooQk9PTClpc0NvbnRlbnRFZGl0YWJsZSBpc1Bhc3N3b3JkOihCT09MKWlzUGFzc3dv
cmRGaWVsZCBoYXNNYXJrZWRUZXh0OihCT09MKWhhc0NvbXBvc2l0aW9uOwogCiAtICh2b2lkKV9z
ZXRGaW5kSW5kaWNhdG9yOihQYXNzUmVmUHRyPFdlYktpdDo6RmluZEluZGljYXRvcj4pZmluZElu
ZGljYXRvciBmYWRlT3V0OihCT09MKWZhZGVPdXQ7CiAKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2twYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdrcGFnZS5jcHAJKHJldmlzaW9uIDcxMjk2KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F3a3BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjYsNiArMTI2LDEwIEBAIEZsb2F0
UmVjdCBRV0tQYWdlUHJpdmF0ZTo6Y29udmVydFRvVXNlclMKICAgICByZXR1cm4gcmVjdDsKIH0K
IAordm9pZCBRV0tQYWdlUHJpdmF0ZTo6c2VsZWN0aW9uQ2hhbmdlZChib29sLCBib29sLCBib29s
LCBib29sKQoreworfQorCiB2b2lkIFFXS1BhZ2VQcml2YXRlOjpkaWROb3RIYW5kbGVLZXlFdmVu
dChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JikKIHsKIH0KSW5kZXg6IFdlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xd2twYWdlX3AuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdrcGFnZV9wLmgJKHJldmlzaW9uIDcxMjk2KQorKysgV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3F3a3BhZ2VfcC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBjb252ZXJ0VG9EZXZpY2VTcGFj
ZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0
UmVjdCBjb252ZXJ0VG9Vc2VyU3BhY2UoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CiAgICAg
dmlydHVhbCB2b2lkIGRpZE5vdEhhbmRsZUtleUV2ZW50KGNvbnN0IFdlYktpdDo6TmF0aXZlV2Vi
S2V5Ym9hcmRFdmVudCYpOworICAgIHZpcnR1YWwgdm9pZCBzZWxlY3Rpb25DaGFuZ2VkKGJvb2ws
IGJvb2wsIGJvb2wsIGJvb2wpOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJLaXQ6OldlYlBv
cHVwTWVudVByb3h5PiBjcmVhdGVQb3B1cE1lbnVQcm94eSgpOwogICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHk+IGNyZWF0ZUNvbnRleHRNZW51UHJveHko
V2ViS2l0OjpXZWJQYWdlUHJveHkqKTsKIApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dl
YlZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNw
cAkocmV2aXNpb24gNzEyOTYpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTYxNCw2ICs2MTQsMTEgQEAgRmxvYXRSZWN0IFdlYlZpZXc6OmNv
bnZlcnRUb1VzZXJTcGFjZShjbwogICAgIHJldHVybiByZWN0OwogfQogCit2b2lkIFdlYlZpZXc6
OnNlbGVjdGlvbkNoYW5nZWQoYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCkKK3sKKyAgICAvLyBGSVhN
RTogSW1wbGVtZW50LgorfQorCiB2b2lkIFdlYlZpZXc6OmRpZE5vdEhhbmRsZUtleUV2ZW50KGNv
bnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmIGV2ZW50KQogewogICAgIC8vIENhbGxpbmcgOjpE
ZWZXaW5kb3dQcm9jVyB3aWxsIGVuc3VyZSB0aGF0IHByZXNzaW5nIHRoZSBBbHQga2V5IHdpbGwg
Z2VuZXJhdGUgYSBXTV9TWVNDT01NQU5ECkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2Vi
Vmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgJKHJl
dmlzaW9uIDcxMjk2KQorKysgV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTA0LDYgKzEwNCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXZWJDb3Jl
OjpGbG9hdFJlY3QgY29udmVydFRvRGV2aWNlU3BhY2UoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
Jik7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgY29udmVydFRvVXNlclNwYWNlKGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWROb3RIYW5kbGVL
ZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50Jik7CisgICAgdmlydHVhbCB2b2lk
IHNlbGVjdGlvbkNoYW5nZWQoYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCk7CiAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBjcmVhdGVQb3B1cE1lbnVQcm94eSgpOwogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVudVByb3h5PiBjcmVhdGVDb250ZXh0TWVu
dVByb3h5KFdlYlBhZ2VQcm94eSopOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGaW5kSW5kaWNhdG9y
KFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wgZmFkZU91dCk7CkluZGV4OiBXZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNw
cAkocmV2aXNpb24gNzEyOTYpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsMTEgKzM1LDEzIEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9BcmNoaXZlUmVzb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rv
Y3VtZW50RnJhZ21lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0VkaXRDb21tYW5kLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9Gb2N1c0NvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MSW5wdXRFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9IVE1MTmFtZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxUZXh0QXJlYUVsZW1lbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMTgwLDcgKzE4MiwxMCBAQCB2b2lkIFdl
YkVkaXRvckNsaWVudDo6cmVzcG9uZFRvQ2hhbmdlZFNlCiB7CiAgICAgc3RhdGljIGNvbnN0IFN0
cmluZyBXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uID0gIldlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24iOwogICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVF
ZGl0b3JDbGllbnQoKS5kaWRDaGFuZ2VTZWxlY3Rpb24obV9wYWdlLCBXZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uTm90aWZpY2F0aW9uLmltcGwoKSk7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBGcmFtZSogZnJhbWUgPSBtX3BhZ2UtPmNvcmVQYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLT5m
b2N1c2VkT3JNYWluRnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm47Cisg
ICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFNlbGVjdGlvbkNoYW5n
ZShmcmFtZS0+c2VsZWN0aW9uKCktPmlzTm9uZSgpLCBmcmFtZS0+c2VsZWN0aW9uKCktPmlzQ29u
dGVudEVkaXRhYmxlKCksIGZyYW1lLT5zZWxlY3Rpb24oKS0+aXNJblBhc3N3b3JkRmllbGQoKSwg
ZnJhbWUtPmVkaXRvcigpLT5oYXNDb21wb3NpdGlvbigpKSk7CiB9CiAKIHZvaWQgV2ViRWRpdG9y
Q2xpZW50OjpkaWRFbmRFZGl0aW5nKCkK
</data>
<flag name="review"
          id="63235"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>