<?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>64475</bug_id>
          
          <creation_ts>2011-07-13 11:38:17 -0700</creation_ts>
          <short_desc>Move forwardEvent from RenderTextControl to HTMLTextFormControlElement</short_desc>
          <delta_ts>2011-07-14 00:49:33 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>mjs</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>436561</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-07-13 11:38:17 -0700</bug_when>
    <thetext>Render objects shouldn&apos;t be forwarding events around.  Now that RenderTextControl no longer owns the shadow DOM, forwardEvent should be a member function of HTMLTextFormControlElement, not of RenderTextControl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436569</commentid>
    <comment_count>1</comment_count>
      <attachid>100697</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-07-13 11:46:29 -0700</bug_when>
    <thetext>Created attachment 100697
cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436787</commentid>
    <comment_count>2</comment_count>
      <attachid>100697</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-07-13 17:42:53 -0700</bug_when>
    <thetext>Comment on attachment 100697
cleanup

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

&gt; Source/WebCore/html/HTMLTextFormControlElement.h:42
&gt;  public:
&gt;      enum NeedsToCheckDirtyFlag {CheckDirtyFlag, IgnoreDirtyFlag};
&gt;  
&gt;      virtual ~HTMLTextFormControlElement();
&gt; +    
&gt; +    void forwardEvent(Event*);

protected: is enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436853</commentid>
    <comment_count>3</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-07-13 19:06:42 -0700</bug_when>
    <thetext>Awesome patch! It would be great to get rid of event forwarding altogether. And this is a great first step.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436939</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-07-13 22:49:51 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 100697 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=100697&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLTextFormControlElement.h:42
&gt; &gt;  public:
&gt; &gt;      enum NeedsToCheckDirtyFlag {CheckDirtyFlag, IgnoreDirtyFlag};
&gt; &gt;  
&gt; &gt;      virtual ~HTMLTextFormControlElement();
&gt; &gt; +    
&gt; &gt; +    void forwardEvent(Event*);
&gt; 
&gt; protected: is enough.

This turned out to be not the case because TextFieldInputType::forwardEvent calls it :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436940</commentid>
    <comment_count>5</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-07-13 22:54:11 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; protected: is enough.
&gt; 
&gt; This turned out to be not the case because TextFieldInputType::forwardEvent calls it :(

Oh, I see.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436967</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-07-14 00:08:48 -0700</bug_when>
    <thetext>Committed r90983: &lt;http://trac.webkit.org/changeset/90983&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436981</commentid>
    <comment_count>7</comment_count>
      <attachid>100783</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-07-14 00:45:19 -0700</bug_when>
    <thetext>Created attachment 100783
Moved timer-related functions and variables to SearchInputType</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436984</commentid>
    <comment_count>8</comment_count>
      <attachid>100783</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-07-14 00:49:33 -0700</bug_when>
    <thetext>Comment on attachment 100783
Moved timer-related functions and variables to SearchInputType

wrong bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100697</attachid>
            <date>2011-07-13 11:46:29 -0700</date>
            <delta_ts>2011-07-14 00:45:15 -0700</delta_ts>
            <desc>cleanup</desc>
            <filename>bug-64475-20110713114628.patch</filename>
            <type>text/plain</type>
            <size>10967</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkwOTMzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMDctMTMgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBmb3J3YXJkRXZlbnQgZnJv
bSBSZW5kZXJUZXh0Q29udHJvbCB0byBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ0NzUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlZCBmb3J3YXJkRXZl
bnQgZnJvbSBSZW5kZXJUZXh0Q29udHJvbCwgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLCBh
bmQgUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUKKyAgICAgICAgdG8gSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQsIEhUTUxJbnB1dEVsZW1lbnQsIGFuZCBIVE1MVGV4dEFyZWFFbGVtZW50Lgor
CisgICAgICAgIFRoaXMgcmVtb3ZlcyB0aGUgbGFzdCBkZXBlbmRlbmN5IG9uIEV2ZW50LmggYW5k
IEV2ZW50TmFtZXMuaCBpbiB0aGUgY3BwIGZpbGVzIGZvciB0aGUgYWJvdmUgcmVuZGVyCisgICAg
ICAgIG9iamVjdHMgY2xhc3Nlcy4KKworICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpkZWZhdWx0RXZl
bnRIYW5kbGVyKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpmb3J3YXJk
RXZlbnQpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0RmllbGRJbnB1dFR5cGU6OmZvcndhcmRFdmVudCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRleHRDb250cm9sLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2wuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3Bw
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKwogMjAxMS0wNy0x
MiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBEb24ndCByZXVz
ZSB0aGUgbGFzdCBJbnNlcnRUZXh0Q29tbWFuZApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCShyZXZpc2lvbiA5MDkzMykKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNSw3
ICsyMzUsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0ZUZvY3VzQXBwCiB2b2lk
IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQog
ewogICAgIGlmIChyZW5kZXJlcigpICYmIChldmVudC0+aXNNb3VzZUV2ZW50KCkgfHwgZXZlbnQt
PmlzRHJhZ0V2ZW50KCkgfHwgZXZlbnQtPmlzV2hlZWxFdmVudCgpIHx8IGV2ZW50LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLmJsdXJFdmVudCkpCi0gICAgICAgIHRvUmVuZGVyVGV4dENvbnRyb2xN
dWx0aUxpbmUocmVuZGVyZXIoKSktPmZvcndhcmRFdmVudChldmVudCk7CisgICAgICAgIGZvcndh
cmRFdmVudChldmVudCk7CiAgICAgZWxzZSBpZiAocmVuZGVyZXIoKSAmJiBldmVudC0+aXNCZWZv
cmVUZXh0SW5zZXJ0ZWRFdmVudCgpKQogICAgICAgICBoYW5kbGVCZWZvcmVUZXh0SW5zZXJ0ZWRF
dmVudChzdGF0aWNfY2FzdDxCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudCo+KGV2ZW50KSk7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQuY3BwCShyZXZpc2lvbiA5MDkzMykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSw2ICs4OSwxMyBAQCB2
b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpkZWZhdWx0CiAgICAgSFRNTEZvcm1Db250
cm9sRWxlbWVudFdpdGhTdGF0ZTo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiB9CiAKK3Zv
aWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmZvcndhcmRFdmVudChFdmVudCogZXZlbnQp
Cit7CisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmJsdXJFdmVudCB8fCBl
dmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50KQorICAgICAgICByZXR1cm47
CisgICAgaW5uZXJUZXh0RWxlbWVudCgpLT5kZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKK30K
KwogU3RyaW5nIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzdHJpcHBlZFBsYWNlaG9sZGVy
KCkgY29uc3QKIHsKICAgICAvLyBBY2NvcmRpbmcgdG8gdGhlIEhUTUw1IHNwZWNpZmljYXRpb24s
IHdlIG5lZWQgdG8gcmVtb3ZlIENSIGFuZCBMRiBmcm9tCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCShyZXZpc2lvbiA5MDkzMykK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzgsNiArMzgsOCBAQCBwdWJsaWM6CiAgICAgZW51bSBOZWVkc1RvQ2hl
Y2tEaXJ0eUZsYWcge0NoZWNrRGlydHlGbGFnLCBJZ25vcmVEaXJ0eUZsYWd9OwogCiAgICAgdmly
dHVhbCB+SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQoKTsKKyAgICAKKyAgICB2b2lkIGZvcndh
cmRFdmVudChFdmVudCopOwogCiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50
KCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAJ
KHJldmlzaW9uIDkwOTMzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5
cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSFRNTElu
cHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJQYWdl
LmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlNoYWRv
d1Jvb3QuaCIKQEAgLTExNSw4ICsxMTYsMjAgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6Omhh
bmRsZVdoZWVsRXZlbgogCiB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Zm9yd2FyZEV2ZW50KEV2
ZW50KiBldmVudCkKIHsKLSAgICBpZiAoZWxlbWVudCgpLT5yZW5kZXJlcigpICYmIChldmVudC0+
aXNNb3VzZUV2ZW50KCkgfHwgZXZlbnQtPmlzRHJhZ0V2ZW50KCkgfHwgZXZlbnQtPmlzV2hlZWxF
dmVudCgpIHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmJsdXJFdmVudCB8fCBldmVu
dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50KSkKLSAgICAgICAgdG9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUoZWxlbWVudCgpLT5yZW5kZXJlcigpKS0+Zm9yd2FyZEV2ZW50
KGV2ZW50KTsKKyAgICBpZiAoZWxlbWVudCgpLT5yZW5kZXJlcigpICYmIChldmVudC0+aXNNb3Vz
ZUV2ZW50KCkgfHwgZXZlbnQtPmlzRHJhZ0V2ZW50KCkgfHwgZXZlbnQtPmlzV2hlZWxFdmVudCgp
IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmJsdXJFdmVudCB8fCBldmVudC0+dHlw
ZSgpID09IGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50KSkgeworICAgICAgICBSZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUqIHJlbmRlclRleHRDb250cm9sID0gdG9SZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmUoZWxlbWVudCgpLT5yZW5kZXJlcigpKTsKKyAgICAgICAgaWYgKGV2ZW50LT50eXBl
KCkgPT0gZXZlbnROYW1lcygpLmJsdXJFdmVudCkgeworICAgICAgICAgICAgaWYgKFJlbmRlckJv
eCogaW5uZXJUZXh0UmVuZGVyZXIgPSBpbm5lclRleHRFbGVtZW50KCktPnJlbmRlckJveCgpKSB7
CisgICAgICAgICAgICAgICAgaWYgKFJlbmRlckxheWVyKiBpbm5lckxheWVyID0gaW5uZXJUZXh0
UmVuZGVyZXItPmxheWVyKCkpCisgICAgICAgICAgICAgICAgICAgIGlubmVyTGF5ZXItPnNjcm9s
bFRvT2Zmc2V0KCFyZW5kZXJUZXh0Q29udHJvbC0+c3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVj
dGlvbigpID8gaW5uZXJMYXllci0+c2Nyb2xsV2lkdGgoKSA6IDAsIDAsIFJlbmRlckxheWVyOjpT
Y3JvbGxPZmZzZXRDbGFtcGVkKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVuZGVy
VGV4dENvbnRyb2wtPmNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpOworICAgICAgICB9IGVs
c2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmZvY3VzRXZlbnQpCisgICAgICAg
ICAgICByZW5kZXJUZXh0Q29udHJvbC0+Y2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkKCk7CisK
KyAgICAgICAgZWxlbWVudCgpLT5mb3J3YXJkRXZlbnQoZXZlbnQpOworICAgIH0KIH0KIAogYm9v
bCBUZXh0RmllbGRJbnB1dFR5cGU6OnNob3VsZFN1Ym1pdEltcGxpY2l0bHkoRXZlbnQqIGV2ZW50
KQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wu
Y3BwCShyZXZpc2lvbiA5MDkzMykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDEwICsyNCw3IEBACiAKICNpbmNs
dWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCi0jaW5jbHVkZSAiRXZl
bnQuaCIKLSNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNs
dWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIkhUTUxCUkVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCkBAIC0zMTgs
MTMgKzMxNSw2IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OmhpdElubmVyVGV4dEVsZW0KICAg
ICByZXN1bHQuc2V0TG9jYWxQb2ludChwb2ludEluQ29udGFpbmVyIC0gdG9TaXplKGFkanVzdGVk
TG9jYXRpb24gKyBpbm5lclRleHQtPnJlbmRlckJveCgpLT5sb2NhdGlvbigpKSk7CiB9CiAKLXZv
aWQgUmVuZGVyVGV4dENvbnRyb2w6OmZvcndhcmRFdmVudChFdmVudCogZXZlbnQpCi17Ci0gICAg
aWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmJsdXJFdmVudCB8fCBldmVudC0+dHlw
ZSgpID09IGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50KQotICAgICAgICByZXR1cm47Ci0gICAgaW5u
ZXJUZXh0RWxlbWVudCgpLT5kZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKLX0KLQogc3RhdGlj
IGNvbnN0IGNoYXIqIGZvbnRGYW1pbGllc1dpdGhJbnZhbGlkQ2hhcldpZHRoW10gPSB7CiAgICAg
IkFtZXJpY2FuIFR5cGV3cml0ZXIiLAogICAgICJBcmlhbCBIZWJyZXciLApJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgJKHJldmlzaW9uIDkwOTMz
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgJKHdvcmtp
bmcgY29weSkKQEAgLTU5LDcgKzU5LDYgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBz
dHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHls
ZSk7CiAKICAgICB2b2lkIGhpdElubmVyVGV4dEVsZW1lbnQoSGl0VGVzdFJlc3VsdCYsIGNvbnN0
IExheW91dFBvaW50JiBwb2ludEluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11
bGF0ZWRPZmZzZXQpOwotICAgIHZvaWQgZm9yd2FyZEV2ZW50KEV2ZW50Kik7CiAKICAgICBpbnQg
dGV4dEJsb2NrV2lkdGgoKSBjb25zdDsKICAgICBpbnQgdGV4dEJsb2NrSGVpZ2h0KCkgY29uc3Q7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxp
bmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbE11bHRpTGluZS5jcHAJKHJldmlzaW9uIDkwOTMzKQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjIsOCArMjIsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbmRlclRl
eHRDb250cm9sTXVsdGlMaW5lLmgiCiAKLSNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkV2
ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgog
I2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKQEAgLTcwLDExICs2OCw2IEBAIGJvb2wg
UmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6Om5vZGVBdFAKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotdm9pZCBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZTo6Zm9yd2FyZEV2ZW50KEV2ZW50KiBl
dmVudCkKLXsKLSAgICBSZW5kZXJUZXh0Q29udHJvbDo6Zm9yd2FyZEV2ZW50KGV2ZW50KTsKLX0K
LQogZmxvYXQgUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6OmdldEF2Z0NoYXJXaWR0aChBdG9t
aWNTdHJpbmcgZmFtaWx5KQogewogICAgIC8vIFNpbmNlIEx1Y2lkYSBHcmFuZGUgaXMgdGhlIGRl
ZmF1bHQgZm9udCwgd2Ugd2FudCB0aGlzIHRvIG1hdGNoIHRoZSB3aWR0aApJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5l
LmgJKHJldmlzaW9uIDkwOTMzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sTXVsdGlMaW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMxLDYgQEAgcHVi
bGljOgogICAgIFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lKE5vZGUqLCBib29sKTsKICAgICB2
aXJ0dWFsIH5SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZSgpOwogCi0gICAgdm9pZCBmb3J3YXJk
RXZlbnQoRXZlbnQqKTsKLQogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0QXJlYSgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAJKHJldmlzaW9u
IDkwOTMzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDYgQEAKICNpbmNsdWRlICJD
U1NGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVk
ZSAiQ2hyb21lLmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIKLSNpbmNsdWRlICJFdmVudE5hbWVzLmgi
CiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1
ZGUgIkZyYW1lVmlldy5oIgpAQCAtMzYsMTIgKzM0LDEyIEBACiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmlu
Z3MuaCIKLSNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAj
aW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKKyNp
bmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1
ZGUgIlNpbXBsZUZvbnREYXRhLmgiCiAjaW5jbHVkZSAiVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmgiCkBAIC0zNTAsMjMgKzM0OCw2IEBAIGJvb2wgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
Ojpub2RlQXQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmU6OmZvcndhcmRFdmVudChFdmVudCogZXZlbnQpCi17Ci0gICAgUmVuZGVyQm94KiBp
bm5lclRleHRSZW5kZXJlciA9IGlubmVyVGV4dEVsZW1lbnQoKS0+cmVuZGVyQm94KCk7Ci0KLSAg
ICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuYmx1ckV2ZW50KSB7Ci0gICAgICAg
IGlmIChpbm5lclRleHRSZW5kZXJlcikgewotICAgICAgICAgICAgaWYgKFJlbmRlckxheWVyKiBp
bm5lckxheWVyID0gaW5uZXJUZXh0UmVuZGVyZXItPmxheWVyKCkpCi0gICAgICAgICAgICAgICAg
aW5uZXJMYXllci0+c2Nyb2xsVG9PZmZzZXQoIXN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rp
b24oKSA/IGlubmVyTGF5ZXItPnNjcm9sbFdpZHRoKCkgOiAwLCAwLCBSZW5kZXJMYXllcjo6U2Ny
b2xsT2Zmc2V0Q2xhbXBlZCk7Ci0gICAgICAgIH0KLQotICAgICAgICBjYXBzTG9ja1N0YXRlTWF5
SGF2ZUNoYW5nZWQoKTsKLSAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1l
cygpLmZvY3VzRXZlbnQpCi0gICAgICAgIGNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpOwot
Ci0gICAgUmVuZGVyVGV4dENvbnRyb2w6OmZvcndhcmRFdmVudChldmVudCk7Ci19Ci0KIHZvaWQg
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVu
Y2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQogewogICAgIG1fZGVzaXJlZElu
bmVyVGV4dEhlaWdodCA9IC0xOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAkocmV2aXNpb24gOTA5MzMpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIzLDE1ICsyMywxNCBAQAogI2lmbmRlZiBSZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmVfaAogI2RlZmluZSBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmVfaAog
Ci0jaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVu
dC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9w
dXBNZW51LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBIVE1MSW5wdXRFbGVtZW50OworY2xhc3MgU2VhcmNoUG9wdXBNZW51OwogCiBjbGFzcyBS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUgOiBwdWJsaWMgUmVuZGVyVGV4dENvbnRyb2wsIHBy
aXZhdGUgUG9wdXBNZW51Q2xpZW50IHsKIHB1YmxpYzoKQEAgLTUxLDggKzUwLDYgQEAgcHVibGlj
OgogICAgIHZvaWQgc2hvd1BvcHVwKCk7CiAgICAgdm9pZCBoaWRlUG9wdXAoKTsKIAotICAgIHZv
aWQgZm9yd2FyZEV2ZW50KEV2ZW50Kik7Ci0KICAgICB2b2lkIGNhcHNMb2NrU3RhdGVNYXlIYXZl
Q2hhbmdlZCgpOwogCiBwcml2YXRlOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100783</attachid>
            <date>2011-07-14 00:45:19 -0700</date>
            <delta_ts>2011-07-14 00:49:33 -0700</delta_ts>
            <desc>Moved timer-related functions and variables to SearchInputType</desc>
            <filename>bug-64475-20110714004518.patch</filename>
            <type>text/plain</type>
            <size>21011</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkwOTg0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMDctMTQgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBmb3J3YXJkRXZlbnQgZnJv
bSBSZW5kZXJUZXh0Q29udHJvbCB0byBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ0NzUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlZCBzdWJ0cmVlSGFz
Q2hhbmdlZCBmcm9tIFJlbmRlclRleHRDb250cm9sLCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUsIGFuZAorICAgICAgICBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZSB0byBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudCwgSFRNTElucHV0RWxlbWVudCwgYW5kCisgICAgICAgIEhUTUxUZXh0
QXJlYUVsZW1lbnQuIEFsc28gbW92ZWQgbV9zZWFyY2hFdmVudFRpbWVyIGFuZCByZWxhdGVkIGZ1
bmN0aW9ucyBmcm9tCisgICAgICAgIFJlbmRlclRleHRTaW5nbGVMaW5lIHRvIFNlYXJjaElucHV0
VHlwZS4KKworICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdWJ0cmVlSGFzQ2hhbmdlZCk6IE1vdmVkIGZyb20g
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0
RWxlbWVudDo6b25TZWFyY2gpOiBDYWxscyBzdG9wU2VhcmNoRXZlbnRUaW1lci4KKyAgICAgICAg
KiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6c3VidHJl
ZUhhc0NoYW5nZWQpOiBNb3ZlZCBmcm9tIFJlbmRlclRleHRNdWx0aUxpbmUuCisgICAgICAgICog
aHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6IENhbGxzIHN1YnRyZWVIYXNDaGFuZ2VkLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnN1YnRyZWVIYXND
aGFuZ2VkKTogQWRkZWQ7IGNhbGxzIHJlc3BvbmRUb0NoYW5nZUJ5VXNlci4KKyAgICAgICAgKiBo
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9TZWFyY2hJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoSW5wdXRUeXBlOjpTZWFyY2hJ
bnB1dFR5cGUpOiBJbml0aWFsaXplcyBtX3NlYXJjaEV2ZW50VGltZXIuCisgICAgICAgIChXZWJD
b3JlOjpTZWFyY2hJbnB1dFR5cGU6OnN0YXJ0U2VhcmNoRXZlbnRUaW1lcik6IE1vdmVkIGZyb20g
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoSW5w
dXRUeXBlOjpzdG9wU2VhcmNoRXZlbnRUaW1lcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
U2VhcmNoSW5wdXRUeXBlOjpzZWFyY2hFdmVudFRpbWVyRmlyZWQpOiBEaXR0by4KKyAgICAgICAg
KiBodG1sL1NlYXJjaElucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6aGFuZGxlQmVm
b3JlVGV4dEluc2VydGVkRXZlbnQpOiBVcGRhdGVkIGNvbW1lbnQuCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2wuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjpyZXNwb25k
VG9DaGFuZ2VCeVVzZXIpOiBSZW5hbWVkIGZyb20gc3VidHJlZUhhc0NoYW5nZWQuCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKTog
Tm8gbG9uZ2VyIGluaXRpYWxpemVzCisgICAgICAgIG1fc2VhcmNoRXZlbnRUaW1lci4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisKIDIwMTEtMDct
MTMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW92ZSBmb3J3
YXJkRXZlbnQgZnJvbSBSZW5kZXJUZXh0Q29udHJvbCB0byBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCShyZXZp
c2lvbiA5MDk4MCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlJ1
bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJTZWFyY2hJbnB1dFR5cGUuaCIKICNp
bmNsdWRlICJTY3JpcHRFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudC5oIgog
I2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CkBAIC02MTQsNiArNjE1LDQ1IEBAIHZvaWQgSFRN
TElucHV0RWxlbWVudDo6dXBkYXRlVHlwZSgpCiAgICAgbm90aWZ5Rm9ybVN0YXRlQ2hhbmdlZCgp
OwogfQogCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnN1YnRyZWVIYXNDaGFuZ2VkKCkKK3sKKyAg
ICBBU1NFUlQoaXNUZXh0RmllbGQoKSk7CisgICAgQVNTRVJUKHJlbmRlcmVyKCkpOworICAgIFJl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZSogcmVuZGVyVGV4dENvbnRyb2wgPSB0b1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZShyZW5kZXJlcigpKTsKKworICAgIEhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50OjpzdWJ0cmVlSGFzQ2hhbmdlZCgpOworCisgICAgYm9vbCB3YXNDaGFuZ2VkID0g
d2FzQ2hhbmdlZFNpbmNlTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsKKyAgICBzZXRDaGFu
Z2VkU2luY2VMYXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudCh0cnVlKTsKKworICAgIC8vIFdlIGRv
bid0IG5lZWQgdG8gY2FsbCBzYW5pdGl6ZVVzZXJJbnB1dFZhbHVlKCkgZnVuY3Rpb24gaGVyZSBi
ZWNhdXNlCisgICAgLy8gSFRNTElucHV0RWxlbWVudDo6aGFuZGxlQmVmb3JlVGV4dEluc2VydGVk
RXZlbnQoKSBoYXMgYWxyZWFkeSBjYWxsZWQKKyAgICAvLyBzYW5pdGl6ZVVzZXJJbnB1dFZhbHVl
KCkuCisgICAgLy8gc2FuaXRpemVWYWx1ZSgpIGlzIG5lZWRlZCBiZWNhdXNlIElNRSBpbnB1dCBk
b2Vzbid0IGRpc3BhdGNoIEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LgorICAgIFN0cmluZyB2YWx1
ZSA9IHRvUmVuZGVyVGV4dENvbnRyb2wocmVuZGVyZXIoKSktPnRleHQoKTsKKyAgICBpZiAoaXNB
Y2NlcHRhYmxlVmFsdWUodmFsdWUpKQorICAgICAgICBzZXRWYWx1ZUZyb21SZW5kZXJlcihzYW5p
dGl6ZVZhbHVlKGNvbnZlcnRGcm9tVmlzaWJsZVZhbHVlKHZhbHVlKSkpOworICAgIC8vIFJlY2Fs
YyBmb3IgOmludmFsaWQgYW5kIGhhc1VuYWNjZXB0YWJsZVZhbHVlKCkgY2hhbmdlLgorICAgIHNl
dE5lZWRzU3R5bGVSZWNhbGMoKTsKKworICAgIGlmIChjYW5jZWxCdXR0b25FbGVtZW50KCkpCisg
ICAgICAgIHJlbmRlclRleHRDb250cm9sLT51cGRhdGVDYW5jZWxCdXR0b25WaXNpYmlsaXR5KCk7
CisKKyAgICAvLyBJZiB0aGUgaW5jcmVtZW50YWwgYXR0cmlidXRlIGlzIHNldCwgdGhlbiBkaXNw
YXRjaCB0aGUgc2VhcmNoIGV2ZW50CisgICAgaWYgKHNlYXJjaEV2ZW50c1Nob3VsZEJlRGlzcGF0
Y2hlZCgpICYmIGlzU2VhcmNoRmllbGQoKSAmJiBtX2lucHV0VHlwZSkKKyAgICAgICAgc3RhdGlj
X2Nhc3Q8U2VhcmNoSW5wdXRUeXBlKj4obV9pbnB1dFR5cGUuZ2V0KCkpLT5zdGFydFNlYXJjaEV2
ZW50VGltZXIoKTsKKworICAgIGlmICghd2FzQ2hhbmdlZCAmJiBmb2N1c2VkKCkpIHsKKyAgICAg
ICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCkpCisgICAgICAgICAgICBm
cmFtZS0+ZWRpdG9yKCktPnRleHRGaWVsZERpZEJlZ2luRWRpdGluZyh0aGlzKTsKKyAgICB9CisK
KyAgICBpZiAoZm9jdXNlZCgpKSB7CisgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVu
dCgpLT5mcmFtZSgpKQorICAgICAgICAgICAgZnJhbWUtPmVkaXRvcigpLT50ZXh0RGlkQ2hhbmdl
SW5UZXh0RmllbGQodGhpcyk7CisgICAgfQorfQorCiBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxJ
bnB1dEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW5w
dXRUeXBlLT5mb3JtQ29udHJvbFR5cGUoKTsKQEAgLTEzNzMsOCArMTQxMyw4IEBAIHZvaWQgSFRN
TElucHV0RWxlbWVudDo6YWRkU2VhcmNoUmVzdWx0KCkKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6
b25TZWFyY2goKQogewogICAgIEFTU0VSVChpc1NlYXJjaEZpZWxkKCkpOwotICAgIGlmIChyZW5k
ZXJlcigpKQotICAgICAgICB0b1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZShyZW5kZXJlcigp
KS0+c3RvcFNlYXJjaEV2ZW50VGltZXIoKTsKKyAgICBpZiAobV9pbnB1dFR5cGUpCisgICAgICAg
IHN0YXRpY19jYXN0PFNlYXJjaElucHV0VHlwZSo+KG1faW5wdXRUeXBlLmdldCgpKS0+c3RvcFNl
YXJjaEV2ZW50VGltZXIoKTsKICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLnNlYXJjaEV2ZW50LCB0cnVlLCBmYWxzZSkpOwogfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAkocmV2aXNpb24gOTA5ODApCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzE1LDYgKzMx
NSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlY2FsY1dpbGxWYWxpZGF0ZSgpIGNv
bnN0OwogCiAgICAgdm9pZCB1cGRhdGVUeXBlKCk7CisgICAgCisgICAgdmlydHVhbCB2b2lkIHN1
YnRyZWVIYXNDaGFuZ2VkKCk7CiAKICAgICBib29sIGdldEFsbG93ZWRWYWx1ZVN0ZXBXaXRoRGVj
aW1hbFBsYWNlcyhBbnlTdGVwSGFuZGxpbmcsIGRvdWJsZSosIHVuc2lnbmVkKikgY29uc3Q7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAkocmV2
aXNpb24gOTA5ODApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDIsNiArMjQyLDIxIEBAIHZvaWQgSFRNTFRleHRBcmVh
RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGEKICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6
ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiB9CiAKK3ZvaWQgSFRNTFRleHRBcmVhRWxlbWVu
dDo6c3VidHJlZUhhc0NoYW5nZWQoKQoreworICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
OjpzdWJ0cmVlSGFzQ2hhbmdlZCgpOworCisgICAgc2V0Q2hhbmdlZFNpbmNlTGFzdEZvcm1Db250
cm9sQ2hhbmdlRXZlbnQodHJ1ZSk7CisgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5k
ZXJlcihmYWxzZSk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CisKKyAgICBpZiAoIWZv
Y3VzZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3Vt
ZW50KCktPmZyYW1lKCkpCisgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+dGV4dERpZENoYW5nZUlu
VGV4dEFyZWEodGhpcyk7Cit9CisKIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6aGFuZGxlQmVm
b3JlVGV4dEluc2VydGVkRXZlbnQoQmVmb3JlVGV4dEluc2VydGVkRXZlbnQqIGV2ZW50KSBjb25z
dAogewogICAgIEFTU0VSVChldmVudCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuaAkocmV2aXNpb24gOTA5ODApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtODIsNiArODIsOCBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1JlcXVpcmVkRm9ybUNvbnRyb2woKSBjb25zdCB7
IHJldHVybiByZXF1aXJlZCgpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFu
ZGxlcihFdmVudCopOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBzdWJ0cmVlSGFzQ2hhbmdlZCgp
OwogCiAgICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50LmNwcAkocmV2aXNpb24gOTA5ODApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIsMTMg
KzgyLDE4IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc3BhdGMKIHZvaWQg
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2
ZW50KQogewogICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS53ZWJraXRFZGl0
YWJsZUNvbnRlbnRDaGFuZ2VkRXZlbnQgJiYgcmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5pc1Rl
eHRDb250cm9sKCkpIHsKLSAgICAgICAgdG9SZW5kZXJUZXh0Q29udHJvbChyZW5kZXJlcigpKS0+
c3VidHJlZUhhc0NoYW5nZWQoKTsKKyAgICAgICAgc3VidHJlZUhhc0NoYW5nZWQoKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6
OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwogfQogCit2b2lkIEhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50OjpzdWJ0cmVlSGFzQ2hhbmdlZCgpCit7CisgICAgdG9SZW5kZXJUZXh0Q29udHJv
bChyZW5kZXJlcigpKS0+cmVzcG9uZFRvQ2hhbmdlQnlVc2VyKCk7Cit9CisKIFN0cmluZyBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudDo6c3RyaXBwZWRQbGFjZWhvbGRlcigpIGNvbnN0CiB7CiAg
ICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBIVE1MNSBzcGVjaWZpY2F0aW9uLCB3ZSBuZWVkIHRvIHJl
bW92ZSBDUiBhbmQgTEYgZnJvbQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAkocmV2aXNpb24gOTA5ODApCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTg3LDYgKzg3LDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaGFzQ2FjaGVkU2VsZWN0aW9uRW5k
KCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTZWxlY3Rpb25FbmQgPj0gMDsgfQogCiAgICAgdmly
dHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c3VidHJlZUhhc0NoYW5nZWQoKTsKIAogcHJpdmF0ZToKICAgICBpbnQgY29tcHV0ZVNlbGVjdGlv
blN0YXJ0KCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlw
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUu
Y3BwCShyZXZpc2lvbiA5MDk4MCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRU
eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlNlYXJj
aElucHV0VHlwZS5oIgogCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUg
IlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIK
ICNpbmNsdWRlICJUZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCIKICNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgpAQCAtNDAsNiArNDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGlubGlu
ZSBTZWFyY2hJbnB1dFR5cGU6OlNlYXJjaElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVt
ZW50KQogICAgIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkKKyAgICAsIG1fc2VhcmNoRXZl
bnRUaW1lcih0aGlzLCAmU2VhcmNoSW5wdXRUeXBlOjpzZWFyY2hFdmVudFRpbWVyRmlyZWQpCiB7
CiB9CiAKQEAgLTEwNCw1ICsxMDYsMzEgQEAgdm9pZCBTZWFyY2hJbnB1dFR5cGU6OmRlc3Ryb3lT
aGFkb3dTdWJ0cgogICAgIG1fY2FuY2VsQnV0dG9uLmNsZWFyKCk7CiB9CiAKK3ZvaWQgU2VhcmNo
SW5wdXRUeXBlOjpzdGFydFNlYXJjaEV2ZW50VGltZXIoKQoreworICAgIEFTU0VSVChlbGVtZW50
KCktPnJlbmRlcmVyKCkpOworICAgIHVuc2lnbmVkIGxlbmd0aCA9IHRvUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lKGVsZW1lbnQoKS0+cmVuZGVyZXIoKSktPnRleHQoKS5sZW5ndGgoKTsKKwor
ICAgIGlmICghbGVuZ3RoKSB7CisgICAgICAgIHN0b3BTZWFyY2hFdmVudFRpbWVyKCk7CisgICAg
ICAgIGVsZW1lbnQoKS0+b25TZWFyY2goKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IC8vIEFmdGVyIHR5cGluZyB0aGUgZmlyc3Qga2V5LCB3ZSB3YWl0IDAuNSBzZWNvbmRzLgorICAg
IC8vIEFmdGVyIHRoZSBzZWNvbmQga2V5LCAwLjQgc2Vjb25kcywgdGhlbiAwLjMsIHRoZW4gMC4y
IGZyb20gdGhlbiBvbi4KKyAgICBtX3NlYXJjaEV2ZW50VGltZXIuc3RhcnRPbmVTaG90KG1heCgw
LjIsIDAuNiAtIDAuMSAqIGxlbmd0aCkpOworfQorCit2b2lkIFNlYXJjaElucHV0VHlwZTo6c3Rv
cFNlYXJjaEV2ZW50VGltZXIoKQoreworICAgIG1fc2VhcmNoRXZlbnRUaW1lci5zdG9wKCk7Cit9
CisKK3ZvaWQgU2VhcmNoSW5wdXRUeXBlOjpzZWFyY2hFdmVudFRpbWVyRmlyZWQoVGltZXI8U2Vh
cmNoSW5wdXRUeXBlPiopCit7CisgICAgZWxlbWVudCgpLT5vblNlYXJjaCgpOworfQorCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5w
dXRUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5
cGUuaAkocmV2aXNpb24gOTA5ODApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0
VHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIFNlYXJjaElu
cHV0VHlwZV9oCiAKICNpbmNsdWRlICJCYXNlVGV4dElucHV0VHlwZS5oIgorI2luY2x1ZGUgIlRp
bWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDIsNiArNDMsOSBAQCBjbGFzcyBT
ZWFyY2hJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZVRleHRJCiBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCopOwogCisgICAgdm9p
ZCBzdGFydFNlYXJjaEV2ZW50VGltZXIoKTsKKyAgICB2b2lkIHN0b3BTZWFyY2hFdmVudFRpbWVy
KCk7CisKIHByaXZhdGU6CiAgICAgU2VhcmNoSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqKTsK
ICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7
CkBAIC01Myw4ICs1NywxMSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgSFRNTEVsZW1lbnQqIHJl
c3VsdHNCdXR0b25FbGVtZW50KCkgY29uc3Q7CiAgICAgdmlydHVhbCBIVE1MRWxlbWVudCogY2Fu
Y2VsQnV0dG9uRWxlbWVudCgpIGNvbnN0OwogCisgICAgdm9pZCBzZWFyY2hFdmVudFRpbWVyRmly
ZWQoVGltZXI8U2VhcmNoSW5wdXRUeXBlPiopOworCiAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBt
X3Jlc3VsdHNCdXR0b247CiAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBtX2NhbmNlbEJ1dHRvbjsK
KyAgICBUaW1lcjxTZWFyY2hJbnB1dFR5cGU+IG1fc2VhcmNoRXZlbnRUaW1lcjsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxk
SW5wdXRUeXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVs
ZElucHV0VHlwZS5jcHAJKHJldmlzaW9uIDkwOTgwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0RmllbGRJbnB1dFR5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjYsNyArMjY2LDcgQEAg
dm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmhhbmRsZUJlZm9yZVRleAogCiAgICAgLy8gV2UgdXNl
IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dGV4dCgpIGluc3RlYWQgb2YgSW5wdXRFbGVt
ZW50Ojp2YWx1ZSgpCiAgICAgLy8gYmVjYXVzZSB0aGV5IGNhbiBiZSBtaXNtYXRjaGVkIGJ5IHNh
bml0aXplVmFsdWUoKSBpbgotICAgIC8vIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c3Vi
dHJlZUhhc0NoYW5nZWQoKSBpbiBzb21lIGNhc2VzLgorICAgIC8vIEhUTUxJbnB1dEVsZW1lbnQ6
OnN1YnRyZWVIYXNDaGFuZ2VkKCkgaW4gc29tZSBjYXNlcy4KICAgICB1bnNpZ25lZCBvbGRMZW5n
dGggPSBudW1HcmFwaGVtZUNsdXN0ZXJzKHRvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKGVs
ZW1lbnQoKS0+cmVuZGVyZXIoKSktPnRleHQoKSk7CiAKICAgICAvLyBzZWxlY3Rpb25MZW5ndGgg
cmVwcmVzZW50cyB0aGUgc2VsZWN0aW9uIGxlbmd0aCBvZiB0aGlzIHRleHQgZmllbGQgdG8gYmUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNw
cAkocmV2aXNpb24gOTA5ODApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2wuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUsMTIgKzE3NSw2IEBAIHZvaWQgUmVu
ZGVyVGV4dENvbnRyb2w6OnNldElubmVyVGV4dFZhbHUKICAgICBzdGF0aWNfY2FzdDxFbGVtZW50
Kj4obm9kZSgpKS0+c2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKIH0K
IAotdm9pZCBSZW5kZXJUZXh0Q29udHJvbDo6c2V0TGFzdENoYW5nZVdhc1VzZXJFZGl0KGJvb2wg
bGFzdENoYW5nZVdhc1VzZXJFZGl0KQotewotICAgIG1fbGFzdENoYW5nZVdhc1VzZXJFZGl0ID0g
bGFzdENoYW5nZVdhc1VzZXJFZGl0OwotICAgIGRvY3VtZW50KCktPnNldElnbm9yZUF1dG9mb2N1
cyhsYXN0Q2hhbmdlV2FzVXNlckVkaXQpOwotfQotCiBWaXNpYmxlUG9zaXRpb24gUmVuZGVyVGV4
dENvbnRyb2w6OnZpc2libGVQb3NpdGlvbkZvckluZGV4KGludCBpbmRleCkgY29uc3QKIHsKICAg
ICBpZiAoaW5kZXggPD0gMCkKQEAgLTE5NCwxMSArMTg4LDYgQEAgVmlzaWJsZVBvc2l0aW9uIFJl
bmRlclRleHRDb250cm9sOjp2aXNpYgogICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oaXQucmFu
Z2UoKS0+ZW5kUG9zaXRpb24oKSwgVVBTVFJFQU0pOwogfQogCi12b2lkIFJlbmRlclRleHRDb250
cm9sOjpzdWJ0cmVlSGFzQ2hhbmdlZCgpCi17Ci0gICAgbV9sYXN0Q2hhbmdlV2FzVXNlckVkaXQg
PSB0cnVlOwotfQotCiBzdGF0aWMgU3RyaW5nIGZpbmlzaFRleHQoU3RyaW5nQnVpbGRlciYgcmVz
dWx0KQogewogICAgIC8vIFJlbW92ZSBvbmUgdHJhaWxpbmcgbmV3bGluZTsgdGhlcmUncyBhbHdh
eXMgb25lIHRoYXQncyBjb2xsYXBzZWQgb3V0IGJ5IHJlbmRlcmluZy4KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCShyZXZpc2lvbiA5MDk4MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiw5ICszNiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
UmVuZGVyU3R5bGU+IGNyZWF0ZUlubmVyVGV4dFN0eWxlKGNvbnN0IFJlbmRlclN0eWxlKiBzdGFy
dFN0eWxlKSBjb25zdCA9IDA7CiAKICAgICBib29sIGxhc3RDaGFuZ2VXYXNVc2VyRWRpdCgpIGNv
bnN0IHsgcmV0dXJuIG1fbGFzdENoYW5nZVdhc1VzZXJFZGl0OyB9Ci0gICAgdm9pZCBzZXRMYXN0
Q2hhbmdlV2FzVXNlckVkaXQoYm9vbCBsYXN0Q2hhbmdlV2FzVXNlckVkaXQpOwotCi0gICAgdmly
dHVhbCB2b2lkIHN1YnRyZWVIYXNDaGFuZ2VkKCk7CisgICAgdm9pZCByZXNwb25kVG9DaGFuZ2VC
eVVzZXIoKSB7IG1fbGFzdENoYW5nZVdhc1VzZXJFZGl0ID0gdHJ1ZTsgfQogICAgIFN0cmluZyB0
ZXh0KCk7CiAgICAgU3RyaW5nIHRleHRXaXRoSGFyZExpbmVCcmVha3MoKTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0
aUxpbmUuY3BwCShyZXZpc2lvbiA5MDk4MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDIxICs0
NCw2IEBAIFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lOjp+UmVuZGVyVGV4dEMKICAgICAgICAg
c3RhdGljX2Nhc3Q8SFRNTFRleHRBcmVhRWxlbWVudCo+KG5vZGUoKSktPnJlbmRlcmVyV2lsbEJl
RGVzdHJveWVkKCk7CiB9CiAKLXZvaWQgUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6OnN1YnRy
ZWVIYXNDaGFuZ2VkKCkKLXsKLSAgICBSZW5kZXJUZXh0Q29udHJvbDo6c3VidHJlZUhhc0NoYW5n
ZWQoKTsKLSAgICBIVE1MVGV4dEFyZWFFbGVtZW50KiB0ZXh0QXJlYSA9IHN0YXRpY19jYXN0PEhU
TUxUZXh0QXJlYUVsZW1lbnQqPihub2RlKCkpOwotICAgIHRleHRBcmVhLT5zZXRDaGFuZ2VkU2lu
Y2VMYXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudCh0cnVlKTsKLSAgICB0ZXh0QXJlYS0+c2V0Rm9y
bUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcihmYWxzZSk7Ci0gICAgdGV4dEFyZWEtPnNldE5l
ZWRzVmFsaWRpdHlDaGVjaygpOwotCi0gICAgaWYgKCFub2RlKCktPmZvY3VzZWQoKSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgaWYgKEZyYW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCkpCi0gICAg
ICAgIGZyYW1lLT5lZGl0b3IoKS0+dGV4dERpZENoYW5nZUluVGV4dEFyZWEodGV4dEFyZWEpOwot
fQotCiBib29sIFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lOjpub2RlQXRQb2ludChjb25zdCBI
aXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBMYXlv
dXRQb2ludCYgcG9pbnRJbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVk
T2Zmc2V0LCBIaXRUZXN0QWN0aW9uIGhpdFRlc3RBY3Rpb24pCiB7CiAgICAgaWYgKCFSZW5kZXJU
ZXh0Q29udHJvbDo6bm9kZUF0UG9pbnQocmVxdWVzdCwgcmVzdWx0LCBwb2ludEluQ29udGFpbmVy
LCBhY2N1bXVsYXRlZE9mZnNldCwgaGl0VGVzdEFjdGlvbikpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaAkocmV2
aXNpb24gOTA5ODApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2xNdWx0aUxpbmUuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsOCArMzYsNiBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1RleHRBcmVhKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHN1YnRyZWVIYXNDaGFuZ2VkKCk7Ci0KICAgICB2aXJ0
dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0
JiwgY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50SW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50
JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbik7CiAKICAgICB2aXJ0dWFsIGZsb2F0
IGdldEF2Z0NoYXJXaWR0aChBdG9taWNTdHJpbmcgZmFtaWx5KTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUu
Y3BwCShyZXZpc2lvbiA5MDk4MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NCw3ICs3NCw2IEBA
IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6UmVuZGVyVGV4dEMKICAgICAsIG1fc2VhcmNo
UG9wdXBJc1Zpc2libGUoZmFsc2UpCiAgICAgLCBtX3Nob3VsZERyYXdDYXBzTG9ja0luZGljYXRv
cihmYWxzZSkKICAgICAsIG1fZGVzaXJlZElubmVyVGV4dEhlaWdodCgtMSkKLSAgICAsIG1fc2Vh
cmNoRXZlbnRUaW1lcih0aGlzLCAmUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZWFyY2hF
dmVudFRpbWVyRmlyZWQpCiAgICAgLCBtX3NlYXJjaFBvcHVwKDApCiB7CiAgICAgQVNTRVJUKG5v
ZGUtPmlzSFRNTEVsZW1lbnQoKSk7CkBAIC0xNTgsMTEgKzE1Nyw2IEBAIHZvaWQgUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lOjphZGRTZWEKICAgICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50
U2VhcmNoZXMobmFtZSwgbV9yZWNlbnRTZWFyY2hlcyk7CiB9CiAKLXZvaWQgUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lOjpzdG9wU2VhcmNoRXZlbnRUaW1lcigpCi17Ci0gICAgbV9zZWFyY2hF
dmVudFRpbWVyLnN0b3AoKTsKLX0KLQogdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6
OnNob3dQb3B1cCgpCiB7CiAgICAgaWYgKG1fc2VhcmNoUG9wdXBJc1Zpc2libGUpCkBAIC0xOTgs
NDQgKzE5Miw2IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpoaWRlUG8KICAg
ICAgICAgbV9zZWFyY2hQb3B1cC0+cG9wdXBNZW51KCktPmhpZGUoKTsKIH0KIAotdm9pZCBSZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnN1YnRyZWVIYXNDaGFuZ2VkKCkKLXsKLSAgICBSZW5k
ZXJUZXh0Q29udHJvbDo6c3VidHJlZUhhc0NoYW5nZWQoKTsKLQotICAgIEFTU0VSVChub2RlKCkt
PmlzRWxlbWVudE5vZGUoKSk7Ci0gICAgRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PEVs
ZW1lbnQqPihub2RlKCkpOwotICAgIGJvb2wgd2FzQ2hhbmdlZCA9IGVsZW1lbnQtPndhc0NoYW5n
ZWRTaW5jZUxhc3RGb3JtQ29udHJvbENoYW5nZUV2ZW50KCk7Ci0gICAgZWxlbWVudC0+c2V0Q2hh
bmdlZFNpbmNlTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQodHJ1ZSk7Ci0KLSAgICBIVE1MSW5w
dXRFbGVtZW50KiBpbnB1dCA9IGlucHV0RWxlbWVudCgpOwotICAgIC8vIFdlIGRvbid0IG5lZWQg
dG8gY2FsbCBzYW5pdGl6ZVVzZXJJbnB1dFZhbHVlKCkgZnVuY3Rpb24gaGVyZSBiZWNhdXNlCi0g
ICAgLy8gSFRNTElucHV0RWxlbWVudDo6aGFuZGxlQmVmb3JlVGV4dEluc2VydGVkRXZlbnQoKSBo
YXMgYWxyZWFkeSBjYWxsZWQKLSAgICAvLyBzYW5pdGl6ZVVzZXJJbnB1dFZhbHVlKCkuCi0gICAg
Ly8gc2FuaXRpemVWYWx1ZSgpIGlzIG5lZWRlZCBiZWNhdXNlIElNRSBpbnB1dCBkb2Vzbid0IGRp
c3BhdGNoIEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LgotICAgIFN0cmluZyB2YWx1ZSA9IHRleHQo
KTsKLSAgICBpZiAoaW5wdXQtPmlzQWNjZXB0YWJsZVZhbHVlKHZhbHVlKSkKLSAgICAgICAgaW5w
dXQtPnNldFZhbHVlRnJvbVJlbmRlcmVyKGlucHV0LT5zYW5pdGl6ZVZhbHVlKGlucHV0LT5jb252
ZXJ0RnJvbVZpc2libGVWYWx1ZSh2YWx1ZSkpKTsKLSAgICAvLyBSZWNhbGMgZm9yIDppbnZhbGlk
IGFuZCBoYXNVbmFjY2VwdGFibGVWYWx1ZSgpIGNoYW5nZS4KLSAgICBpbnB1dC0+c2V0TmVlZHNT
dHlsZVJlY2FsYygpOwotCi0gICAgaWYgKGNhbmNlbEJ1dHRvbkVsZW1lbnQoKSkKLSAgICAgICAg
dXBkYXRlQ2FuY2VsQnV0dG9uVmlzaWJpbGl0eSgpOwotCi0gICAgLy8gSWYgdGhlIGluY3JlbWVu
dGFsIGF0dHJpYnV0ZSBpcyBzZXQsIHRoZW4gZGlzcGF0Y2ggdGhlIHNlYXJjaCBldmVudAotICAg
IGlmIChpbnB1dC0+c2VhcmNoRXZlbnRzU2hvdWxkQmVEaXNwYXRjaGVkKCkpCi0gICAgICAgIHN0
YXJ0U2VhcmNoRXZlbnRUaW1lcigpOwotCi0gICAgaWYgKCF3YXNDaGFuZ2VkICYmIG5vZGUoKS0+
Zm9jdXNlZCgpKSB7Ci0gICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSB0aGlzLT5mcmFtZSgpKQot
ICAgICAgICAgICAgZnJhbWUtPmVkaXRvcigpLT50ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcoc3Rh
dGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUoKSkpOwotICAgIH0KLQotICAgIGlmIChub2RlKCktPmZv
Y3VzZWQoKSkgewotICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUo
KSkKLSAgICAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+dGV4dERpZENoYW5nZUluVGV4dEZpZWxk
KHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKCkpKTsKLSAgICB9Ci19Ci0KIHZvaWQgUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lOjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3Qg
TGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogewogICAgIFJlbmRlclRleHRDb250cm9sOjpwYWlu
dChwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKQEAgLTYwNywyNyArNTYzLDYgQEAgY29uc3QgQXRv
bWljU3RyaW5nJiBSZW5kZXJUZXh0Q29udHJvbFNpbgogICAgIHJldHVybiBzdGF0aWNfY2FzdDxF
bGVtZW50Kj4obm9kZSgpKS0+Z2V0QXR0cmlidXRlKGF1dG9zYXZlQXR0cik7CiB9CiAKLXZvaWQg
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzdGFydFNlYXJjaEV2ZW50VGltZXIoKQotewot
ICAgIHVuc2lnbmVkIGxlbmd0aCA9IHRleHQoKS5sZW5ndGgoKTsKLQotICAgIC8vIElmIHRoZXJl
J3Mgbm8gdGV4dCwgZmlyZSB0aGUgZXZlbnQgcmlnaHQgYXdheS4KLSAgICBpZiAoIWxlbmd0aCkg
ewotICAgICAgICBzdG9wU2VhcmNoRXZlbnRUaW1lcigpOwotICAgICAgICBpbnB1dEVsZW1lbnQo
KS0+b25TZWFyY2goKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8vIEFmdGVyIHR5
cGluZyB0aGUgZmlyc3Qga2V5LCB3ZSB3YWl0IDAuNSBzZWNvbmRzLgotICAgIC8vIEFmdGVyIHRo
ZSBzZWNvbmQga2V5LCAwLjQgc2Vjb25kcywgdGhlbiAwLjMsIHRoZW4gMC4yIGZyb20gdGhlbiBv
bi4KLSAgICBtX3NlYXJjaEV2ZW50VGltZXIuc3RhcnRPbmVTaG90KG1heCgwLjIsIDAuNiAtIDAu
MSAqIGxlbmd0aCkpOwotfQotCi12b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2Vh
cmNoRXZlbnRUaW1lckZpcmVkKFRpbWVyPFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZT4qKQot
ewotICAgIGlucHV0RWxlbWVudCgpLT5vblNlYXJjaCgpOwotfQotCiAvLyBQb3B1cE1lbnVDbGll
bnQgbWV0aG9kcwogdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnZhbHVlQ2hhbmdl
ZCh1bnNpZ25lZCBsaXN0SW5kZXgsIGJvb2wgZmlyZUV2ZW50cykKIHsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmgJKHJldmlzaW9uIDkwOTgwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw2IEBACiAj
aW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2wu
aCIKICNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKLSNpbmNsdWRlICJUaW1lci5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQwLDYgKzM5LDcgQEAgcHVibGljOgogICAgIC8vIEZJ
WE1FOiBNb3ZlIGNyZWF0ZSpTdHlsZSgpIHRvIHRoZWlyIGNsYXNzZXMuCiAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjcmVhdGVJbm5lclRleHRTdHlsZShjb25zdCBSZW5kZXJT
dHlsZSogc3RhcnRTdHlsZSkgY29uc3Q7CiAgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gY3Jl
YXRlSW5uZXJCbG9ja1N0eWxlKGNvbnN0IFJlbmRlclN0eWxlKiBzdGFydFN0eWxlKSBjb25zdDsK
KyAgICB2b2lkIHVwZGF0ZUNhbmNlbEJ1dHRvblZpc2liaWxpdHkoKSBjb25zdDsKIAogICAgIHZv
aWQgYWRkU2VhcmNoUmVzdWx0KCk7CiAgICAgdm9pZCBzdG9wU2VhcmNoRXZlbnRUaW1lcigpOwpA
QCAtNTcsNyArNTcsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgSW50UmVjdCBjb250cm9sQ2xp
cFJlY3QoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0Rmll
bGQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3VidHJlZUhh
c0NoYW5nZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5
b3V0UG9pbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CiAKQEAgLTg1LDEzICs4NCw5
IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFJlbmRlclN0eWxlKiB0ZXh0QmFzZVN0eWxlKCkg
Y29uc3Q7CiAKLSAgICB2b2lkIHVwZGF0ZUNhbmNlbEJ1dHRvblZpc2liaWxpdHkoKSBjb25zdDsK
ICAgICBFVmlzaWJpbGl0eSB2aXNpYmlsaXR5Rm9yQ2FuY2VsQnV0dG9uKCkgY29uc3Q7CiAgICAg
Y29uc3QgQXRvbWljU3RyaW5nJiBhdXRvc2F2ZU5hbWUoKSBjb25zdDsKIAotICAgIHZvaWQgc3Rh
cnRTZWFyY2hFdmVudFRpbWVyKCk7Ci0gICAgdm9pZCBzZWFyY2hFdmVudFRpbWVyRmlyZWQoVGlt
ZXI8UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lPiopOwotCiAgICAgLy8gUG9wdXBNZW51Q2xp
ZW50IG1ldGhvZHMKICAgICB2aXJ0dWFsIHZvaWQgdmFsdWVDaGFuZ2VkKHVuc2lnbmVkIGxpc3RJ
bmRleCwgYm9vbCBmaXJlRXZlbnRzID0gdHJ1ZSk7CiAgICAgdmlydHVhbCB2b2lkIHNlbGVjdGlv
bkNoYW5nZWQodW5zaWduZWQsIGJvb2wpIHt9CkBAIC0xMzUsNyArMTMwLDYgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fc2VhcmNoUG9wdXBJc1Zpc2libGU7CiAgICAgYm9vbCBtX3Nob3VsZERyYXdD
YXBzTG9ja0luZGljYXRvcjsKICAgICBMYXlvdXRVbml0IG1fZGVzaXJlZElubmVyVGV4dEhlaWdo
dDsKLSAgICBUaW1lcjxSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU+IG1fc2VhcmNoRXZlbnRU
aW1lcjsKICAgICBSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBtX3NlYXJjaFBvcHVwOwogICAgIFZl
Y3RvcjxTdHJpbmc+IG1fcmVjZW50U2VhcmNoZXM7CiB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>