<?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>105863</bug_id>
          
          <creation_ts>2012-12-29 14:19:12 -0800</creation_ts>
          <short_desc>Move pointer to Document up from SelectorChecker to StyleResolver.</short_desc>
          <delta_ts>2012-12-29 16:31:11 -0800</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>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>
          
          <blocked>89879</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>798169</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-12-29 14:19:12 -0800</bug_when>
    <thetext>Move pointer to Document up from SelectorChecker to StyleResolver.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798170</commentid>
    <comment_count>1</comment_count>
      <attachid>180945</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-12-29 14:27:16 -0800</bug_when>
    <thetext>Created attachment 180945
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798172</commentid>
    <comment_count>2</comment_count>
      <attachid>180945</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-29 14:41:17 -0800</bug_when>
    <thetext>Comment on attachment 180945
Patch

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

Looks reasonable.

&gt; Source/WebCore/css/SelectorChecker.h:104
&gt; +    bool checkScrollbarPseudoClass(Document*, CSSSelector*) const;

Does this method belong on SelectorChecker?  It seems odd to be the only method which takes a Document pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798174</commentid>
    <comment_count>3</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-12-29 14:45:42 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 180945 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=180945&amp;action=review
&gt; 
&gt; Looks reasonable.
&gt; 
&gt; &gt; Source/WebCore/css/SelectorChecker.h:104
&gt; &gt; +    bool checkScrollbarPseudoClass(Document*, CSSSelector*) const;
&gt; 
&gt; Does this method belong on SelectorChecker?  It seems odd to be the only method which takes a Document pointer.

This guy definitely needs to be refactored. I haven&apos;t figured out how to untangle this properly yet, but I am thinking about it :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798179</commentid>
    <comment_count>4</comment_count>
      <attachid>180945</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-29 16:31:07 -0800</bug_when>
    <thetext>Comment on attachment 180945
Patch

Clearing flags on attachment: 180945

Committed r138571: &lt;http://trac.webkit.org/changeset/138571&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798180</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-29 16:31:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180945</attachid>
            <date>2012-12-29 14:27:16 -0800</date>
            <delta_ts>2012-12-29 16:31:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105863-20121229142426.patch</filename>
            <type>text/plain</type>
            <size>19867</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmZlNTA5NDJiOTVhZWU4
ODU4NGUzMjUyNzU3NjYzZTMyMjIxYmIyZS4uZmFiM2YyNzFlNjNjMTk2OGJjMTk3YzljMTE3ZjM2
OGVmNWU1ZmZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTEyLTI5ICBEaW1p
dHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBwb2lu
dGVyIHRvIERvY3VtZW50IHVwIGZyb20gU2VsZWN0b3JDaGVja2VyIHRvIFN0eWxlUmVzb2x2ZXIu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU4NjMK
KworICAgICAgICBOb3cgdGhhdCBTZWxlY3RvckNoZWNrZXIgaXMgbW9zdGx5IHN0YXRlbGVzcywg
aXQgbm8gbG9uZ2VyIG5lZWRzIHRvIGtlZXAgYSBwb2ludGVyIHRvIERvY3VtZW50LCB3aGljaAor
ICAgICAgICBtYWtlcyBhbGwgdGhlIGNvZGUgaW4gU3R5bGVSZXNvbHZlciB0aGF0IHJlYWNoZXMg
Zm9yIGl0IHNvcnQgb2Ygd2VpcmQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHksIGNvdmVyZWQgYnkgZXhp
c3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6U2VsZWN0b3JDaGVja2VyKTogQ2hhbmdlZCB0
byB0YWtlIGRvY3VtZW50IGFzIGFyZ3VtZW50IChvbmx5IHVzZWQgdG8gc2V0IGJpdCBmaWVsZHMp
LgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKTog
Q2hhbmdlZCB0byB1c2UgZWxlbWVudCBkb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlNlbGVj
dG9yQ2hlY2tlcjo6Y2hlY2tTY3JvbGxiYXJQc2V1ZG9DbGFzcyk6IERpdHRvLgorICAgICAgICAq
IGNzcy9TZWxlY3RvckNoZWNrZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOiBSZW1vdmVkIHVubmVj
ZXNzYXJ5IERvY3VtZW50IGZvcndhcmQgZGVjbGFyYXRpb24uCisgICAgICAgIChTZWxlY3RvckNo
ZWNrZXIpOiBDaGFuZ2VkIGNvbnN0cnVjdG9yIGRlY2xhcmF0aW9uLCBhbmQgcmVtb3ZlZCBtX2Rv
Y3VtZW50IG1lbWJlci4KKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpTdHlsZVJlc29sdmVyKTogQWRqdXN0ZWQgU2VsZWN0
b3JDaGVja2VyIGluaXRpYWxpemVyIGFjY29yZGluZ2x5LgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGVSZXNvbHZlcjo6aW5pdEVsZW1lbnQpOiBDaGFuZ2VkIHRvIHVzZSBvd24gZG9jdW1lbnQgYWNj
ZXNzb3IuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjppbml0Rm9yU3R5bGVSZXNv
bHZlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjptYXRjaFVBUnVs
ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yUGFn
ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0
eSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y2hlY2tGb3JHZW5l
cmljRmFtaWx5Q2hhbmdlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVy
Ojppbml0aWFsaXplRm9udFN0eWxlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJl
c29sdmVyOjpzZXRGb250U2l6ZSk6IERpdHRvLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpkb2N1bWVudCk6IENoYW5nZWQg
dG8gdXNlIG93biBtZW1iZXIuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpkb2N1
bWVudFNldHRpbmdzKTogRGl0dG8uCisgICAgICAgIChTdHlsZVJlc29sdmVyKTogQWRkZWQgbV9k
b2N1bWVudCBtZW1iZXIuCisgICAgICAgICogZG9tL1NlbGVjdG9yUXVlcnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2VsZWN0b3JRdWVyeTo6bWF0Y2hlcyk6IENoYW5nZWQgY2FsbHNpdGUgdG8g
cmVmbGVjdCBuZXcgY29uc3RydWN0b3Igc2lnbmF0dXJlLgorICAgICAgICAoV2ViQ29yZTo6U2Vs
ZWN0b3JRdWVyeTo6cXVlcnlBbGwpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9y
UXVlcnk6OnF1ZXJ5Rmlyc3QpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9Db250ZW50
U2VsZWN0b3JRdWVyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VsZWN0b3JDaGVj
a2VyOjpDb250ZW50U2VsZWN0b3JDaGVja2VyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50U2VsZWN0b3JRdWVyeTo6Q29udGVudFNlbGVjdG9yUXVlcnkpOiBEaXR0by4KKyAgICAg
ICAgKiBodG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oOgorICAgICAgICAoQ29udGVu
dFNlbGVjdG9yQ2hlY2tlcik6IFJlbW92ZWQgdW5uZWNlc3NhcnkgYXJndW1lbnQuCisKIDIwMTIt
MTItMjkgIE90dG8gRGVyZWsgQ2hldW5nICA8b3RjaGV1bmdAcmltLmNvbT4KIAogICAgICAgICBb
QmxhY2tCZXJyeV0gQ29va2llcyB3aXRoIGFuIElQIGRvbWFpbiBhcmUgbm90IGJlaW5nIGxvYWRl
ZCBwcm9wZXJseSBpbnRvIG1lbW9yeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1Nl
bGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNw
cAppbmRleCBiMmQ5YjkyOWVlODNmODhlNjIxNGUxZjk3Njc2ZDljNTQxZmIxNzM0Li5lZjg5YTE2
OTFiNDBlZGNmZTA1YzdkYjE3MzBhMDcyNGY1YjIxOTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2Vs
ZWN0b3JDaGVja2VyLmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkNTU1NlbGVjdG9y
LmgiCiAjaW5jbHVkZSAiQ1NTU2VsZWN0b3JMaXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
LSNpbmNsdWRlICJEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiRm9j
dXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVj
dGlvbi5oIgpAQCAtNjAsOSArNTksOCBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBz
dGF0aWMgYm9vbCBodG1sQXR0cmlidXRlSGFzQ2FzZUluc2Vuc2l0aXZlVmFsdWUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0cik7CiAKLVNlbGVjdG9yQ2hlY2tlcjo6U2VsZWN0b3JDaGVja2VyKERv
Y3VtZW50KiBkb2N1bWVudCwgYm9vbCBzdHJpY3RQYXJzaW5nKQotICAgIDogbV9kb2N1bWVudChk
b2N1bWVudCkKLSAgICAsIG1fc3RyaWN0UGFyc2luZyhzdHJpY3RQYXJzaW5nKQorU2VsZWN0b3JD
aGVja2VyOjpTZWxlY3RvckNoZWNrZXIoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogbV9zdHJp
Y3RQYXJzaW5nKCFkb2N1bWVudC0+aW5RdWlya3NNb2RlKCkpCiAgICAgLCBtX2RvY3VtZW50SXNI
VE1MKGRvY3VtZW50LT5pc0hUTUxEb2N1bWVudCgpKQogICAgICwgbV9tb2RlKFJlc29sdmluZ1N0
eWxlKQogewpAQCAtNTkyLDEwICs1OTAsMTAgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNr
T25lU2VsZWN0b3IoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGNvbnRleHQsIGMKICAg
ICAgICAgfSBlbHNlIGlmIChjb250ZXh0Lmhhc1Njcm9sbGJhclBzZXVkbykgewogICAgICAgICAg
ICAgLy8gQ1NTIHNjcm9sbGJhcnMgbWF0Y2ggYSBzcGVjaWZpYyBzdWJzZXQgb2YgcHNldWRvIGNs
YXNzZXMsIGFuZCB0aGV5IGhhdmUgc3BlY2lhbGl6ZWQgcnVsZXMgZm9yIGVhY2gKICAgICAgICAg
ICAgIC8vIChzaW5jZSB0aGVyZSBhcmUgbm8gZWxlbWVudHMgaW52b2x2ZWQpLgotICAgICAgICAg
ICAgcmV0dXJuIGNoZWNrU2Nyb2xsYmFyUHNldWRvQ2xhc3Moc2VsZWN0b3IpOworICAgICAgICAg
ICAgcmV0dXJuIGNoZWNrU2Nyb2xsYmFyUHNldWRvQ2xhc3MoZWxlbWVudC0+ZG9jdW1lbnQoKSwg
c2VsZWN0b3IpOwogICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHQuaGFzU2VsZWN0aW9uUHNldWRv
KSB7CiAgICAgICAgICAgICBpZiAoc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSA9PSBDU1NTZWxlY3Rv
cjo6UHNldWRvV2luZG93SW5hY3RpdmUpCi0gICAgICAgICAgICAgICAgcmV0dXJuICFtX2RvY3Vt
ZW50LT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLT5pc0FjdGl2ZSgpOworICAgICAgICAgICAg
ICAgIHJldHVybiAhZWxlbWVudC0+ZG9jdW1lbnQoKS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIo
KS0+aXNBY3RpdmUoKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIE5vcm1hbCBlbGVtZW50IHBz
ZXVkbyBjbGFzcyBjaGVja2luZy4KQEAgLTk2MSw3ICs5NTksNyBAQCBib29sIFNlbGVjdG9yQ2hl
Y2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcihjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29u
dGV4dCwgYwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hl
Y2tTY3JvbGxiYXJQc2V1ZG9DbGFzcyhDU1NTZWxlY3Rvciogc2VsKSBjb25zdAorYm9vbCBTZWxl
Y3RvckNoZWNrZXI6OmNoZWNrU2Nyb2xsYmFyUHNldWRvQ2xhc3MoRG9jdW1lbnQqIGRvY3VtZW50
LCBDU1NTZWxlY3Rvciogc2VsKSBjb25zdAogewogICAgIFJlbmRlclNjcm9sbGJhciogc2Nyb2xs
YmFyID0gUmVuZGVyU2Nyb2xsYmFyOjpzY3JvbGxiYXJGb3JTdHlsZVJlc29sdmUoKTsKICAgICBT
Y3JvbGxiYXJQYXJ0IHBhcnQgPSBSZW5kZXJTY3JvbGxiYXI6OnBhcnRGb3JTdHlsZVJlc29sdmUo
KTsKQEAgLTk2OSw3ICs5NjcsNyBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tTY3JvbGxi
YXJQc2V1ZG9DbGFzcyhDU1NTZWxlY3Rvciogc2VsKSBjb25zdAogICAgIC8vIEZJWE1FOiBUaGlz
IGlzIGEgdGVtcG9yYXJ5IGhhY2sgZm9yIHJlc2l6ZXJzIGFuZCBzY3JvbGxiYXIgY29ybmVycy4g
RXZlbnR1YWxseSA6d2luZG93LWluYWN0aXZlIHNob3VsZCBiZWNvbWUgYSByZWFsCiAgICAgLy8g
cHNldWRvIGNsYXNzIGFuZCBqdXN0IGFwcGx5IHRvIGV2ZXJ5dGhpbmcuCiAgICAgaWYgKHNlbC0+
cHNldWRvVHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9XaW5kb3dJbmFjdGl2ZSkKLSAgICAg
ICAgcmV0dXJuICFtX2RvY3VtZW50LT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLT5pc0FjdGl2
ZSgpOworICAgICAgICByZXR1cm4gIWRvY3VtZW50LT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigp
LT5pc0FjdGl2ZSgpOwogCiAgICAgaWYgKCFzY3JvbGxiYXIpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaAppbmRleCBjMjhjZjA2YzdhMDRlYzkz
OWJkNTg1Y2M4NTg1Y2Q2YjczNWRiMjdmLi4zMzE5M2Y3NmJjMzI4MjZhZDBkM2VlNjE0NTE1Yjli
YWM1ZDI1MjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oCkBAIC0zOSwxMyAr
MzksMTIgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NTU2VsZWN0b3I7Ci1jbGFz
cyBEb2N1bWVudDsKIGNsYXNzIFJlbmRlclN0eWxlOwogCiBjbGFzcyBTZWxlY3RvckNoZWNrZXIg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNlbGVjdG9yQ2hlY2tlcik7CiBwdWJsaWM6Ci0g
ICAgU2VsZWN0b3JDaGVja2VyKERvY3VtZW50KiwgYm9vbCBzdHJpY3RQYXJzaW5nKTsKKyAgICBl
eHBsaWNpdCBTZWxlY3RvckNoZWNrZXIoRG9jdW1lbnQqKTsKIAogICAgIGVudW0gU2VsZWN0b3JN
YXRjaCB7IFNlbGVjdG9yTWF0Y2hlcywgU2VsZWN0b3JGYWlsc0xvY2FsbHksIFNlbGVjdG9yRmFp
bHNBbGxTaWJsaW5ncywgU2VsZWN0b3JGYWlsc0NvbXBsZXRlbHkgfTsKICAgICBlbnVtIFZpc2l0
ZWRNYXRjaFR5cGUgeyBWaXNpdGVkTWF0Y2hEaXNhYmxlZCwgVmlzaXRlZE1hdGNoRW5hYmxlZCB9
OwpAQCAtODYsNyArODUsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaXNGYXN0Q2hlY2th
YmxlU2VsZWN0b3IoY29uc3QgQ1NTU2VsZWN0b3IqKTsKICAgICBib29sIGZhc3RDaGVja1NlbGVj
dG9yKGNvbnN0IENTU1NlbGVjdG9yKiwgY29uc3QgRWxlbWVudCopIGNvbnN0OwogCi0gICAgRG9j
dW1lbnQqIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfQogICAgIGJvb2wg
c3RyaWN0UGFyc2luZygpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaWN0UGFyc2luZzsgfQogCiAgICAg
TW9kZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2RlOyB9CkBAIC0xMDMsMTMgKzEwMSwxMiBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIHVuc2lnbmVkIGRldGVybWluZUxpbmtNYXRjaFR5cGUoY29u
c3QgQ1NTU2VsZWN0b3IqKTsKIAogcHJpdmF0ZToKLSAgICBib29sIGNoZWNrU2Nyb2xsYmFyUHNl
dWRvQ2xhc3MoQ1NTU2VsZWN0b3IqKSBjb25zdDsKKyAgICBib29sIGNoZWNrU2Nyb2xsYmFyUHNl
dWRvQ2xhc3MoRG9jdW1lbnQqLCBDU1NTZWxlY3RvciopIGNvbnN0OwogICAgIHN0YXRpYyBib29s
IGlzRnJhbWVGb2N1c2VkKGNvbnN0IEVsZW1lbnQqKTsKIAogICAgIGJvb2wgZmFzdENoZWNrUmln
aHRtb3N0U2VsZWN0b3IoY29uc3QgQ1NTU2VsZWN0b3IqLCBjb25zdCBFbGVtZW50KiwgVmlzaXRl
ZE1hdGNoVHlwZSkgY29uc3Q7CiAgICAgYm9vbCBjb21tb25Qc2V1ZG9DbGFzc1NlbGVjdG9yTWF0
Y2hlcyhjb25zdCBFbGVtZW50KiwgY29uc3QgQ1NTU2VsZWN0b3IqLCBWaXNpdGVkTWF0Y2hUeXBl
KSBjb25zdDsKIAotICAgIERvY3VtZW50KiBtX2RvY3VtZW50OwogICAgIGJvb2wgbV9zdHJpY3RQ
YXJzaW5nOwogICAgIGJvb2wgbV9kb2N1bWVudElzSFRNTDsKICAgICBNb2RlIG1fbW9kZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCAxMDcwMjQ3MTU2OWQwMGVkOTM1ZjA1
NzhlZGViMmY4ZGI0NGFhOTFlLi4xM2FkMzFmNDFjZjE2NzE1MzEzYjFmMGJkMWFhNjg1MWZkZjc1
Zjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0yNjQsNyArMjY0LDgg
QEAgU3R5bGVSZXNvbHZlcjo6U3R5bGVSZXNvbHZlcihEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wg
bWF0Y2hBdXRob3JBbmRVc2VyU3R5bGVzKQogICAgICwgbV9iYWNrZ3JvdW5kRGF0YShCYWNrZ3Jv
dW5kRmlsbExheWVyKQogICAgICwgbV9tYXRjaGVkUHJvcGVydGllc0NhY2hlQWRkaXRpb25zU2lu
Y2VMYXN0U3dlZXAoMCkKICAgICAsIG1fbWF0Y2hlZFByb3BlcnRpZXNDYWNoZVN3ZWVwVGltZXIo
dGhpcywgJlN0eWxlUmVzb2x2ZXI6OnN3ZWVwTWF0Y2hlZFByb3BlcnRpZXNDYWNoZSkKLSAgICAs
IG1fY2hlY2tlcihkb2N1bWVudCwgIWRvY3VtZW50LT5pblF1aXJrc01vZGUoKSkKKyAgICAsIG1f
ZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgLCBtX2NoZWNrZXIoZG9jdW1lbnQpCiAgICAgLCBtX3Bh
cmVudFN0eWxlKDApCiAgICAgLCBtX3Jvb3RFbGVtZW50U3R5bGUoMCkKICAgICAsIG1fZWxlbWVu
dCgwKQpAQCAtOTY0LDcgKzk2NSw3IEBAIGlubGluZSB2b2lkIFN0eWxlUmVzb2x2ZXI6OmluaXRF
bGVtZW50KEVsZW1lbnQqIGUpCiAgICAgaWYgKG1fZWxlbWVudCAhPSBlKSB7CiAgICAgICAgIG1f
ZWxlbWVudCA9IGU7CiAgICAgICAgIG1fc3R5bGVkRWxlbWVudCA9IG1fZWxlbWVudCAmJiBtX2Vs
ZW1lbnQtPmlzU3R5bGVkRWxlbWVudCgpID8gc3RhdGljX2Nhc3Q8U3R5bGVkRWxlbWVudCo+KG1f
ZWxlbWVudCkgOiAwOwotICAgICAgICBtX2VsZW1lbnRMaW5rU3RhdGUgPSBtX2NoZWNrZXIuZG9j
dW1lbnQoKS0+dmlzaXRlZExpbmtTdGF0ZSgpLT5kZXRlcm1pbmVMaW5rU3RhdGUobV9lbGVtZW50
KTsKKyAgICAgICAgbV9lbGVtZW50TGlua1N0YXRlID0gZG9jdW1lbnQoKS0+dmlzaXRlZExpbmtT
dGF0ZSgpLT5kZXRlcm1pbmVMaW5rU3RhdGUobV9lbGVtZW50KTsKICAgICAgICAgaWYgKGUgJiYg
ZSA9PSBlLT5kb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSkgewogICAgICAgICAgICAgZS0+
ZG9jdW1lbnQoKS0+c2V0RGlyZWN0aW9uU2V0T25Eb2N1bWVudEVsZW1lbnQoZmFsc2UpOwogICAg
ICAgICAgICAgZS0+ZG9jdW1lbnQoKS0+c2V0V3JpdGluZ01vZGVTZXRPbkRvY3VtZW50RWxlbWVu
dChmYWxzZSk7CkBAIC05OTAsNyArOTkxLDcgQEAgaW5saW5lIHZvaWQgU3R5bGVSZXNvbHZlcjo6
aW5pdEZvclN0eWxlUmVzb2x2ZShFbGVtZW50KiBlLCBSZW5kZXJTdHlsZSogcGFyZW50U3QKICAg
ICB9CiAKICAgICBOb2RlKiBkb2NFbGVtZW50ID0gZSA/IGUtPmRvY3VtZW50KCktPmRvY3VtZW50
RWxlbWVudCgpIDogMDsKLSAgICBSZW5kZXJTdHlsZSogZG9jU3R5bGUgPSBtX2NoZWNrZXIuZG9j
dW1lbnQoKS0+cmVuZGVyU3R5bGUoKTsKKyAgICBSZW5kZXJTdHlsZSogZG9jU3R5bGUgPSBkb2N1
bWVudCgpLT5yZW5kZXJTdHlsZSgpOwogICAgIG1fcm9vdEVsZW1lbnRTdHlsZSA9IGRvY0VsZW1l
bnQgJiYgZSAhPSBkb2NFbGVtZW50ID8gZG9jRWxlbWVudC0+cmVuZGVyU3R5bGUoKSA6IGRvY1N0
eWxlOwogCiAgICAgbV9zdHlsZSA9IDA7CkBAIC0xMzM3LDcgKzEzMzgsNyBAQCB2b2lkIFN0eWxl
UmVzb2x2ZXI6Om1hdGNoVUFSdWxlcyhNYXRjaFJlc3VsdCYgcmVzdWx0KQogICAgICAgICBtYXRj
aFVBUnVsZXMocmVzdWx0LCBkZWZhdWx0UXVpcmtzU3R5bGUpOwogCiAgICAgLy8gSWYgZG9jdW1l
bnQgdXNlcyB2aWV3IHNvdXJjZSBzdHlsZXMgKGluIHZpZXcgc291cmNlIG1vZGUgb3IgaW4geG1s
IHZpZXdlciBtb2RlKSwgdGhlbiB3ZSBtYXRjaCBydWxlcyBmcm9tIHRoZSB2aWV3IHNvdXJjZSBz
dHlsZSBzaGVldC4KLSAgICBpZiAobV9jaGVja2VyLmRvY3VtZW50KCktPmlzVmlld1NvdXJjZSgp
KSB7CisgICAgaWYgKGRvY3VtZW50KCktPmlzVmlld1NvdXJjZSgpKSB7CiAgICAgICAgIGlmICgh
ZGVmYXVsdFZpZXdTb3VyY2VTdHlsZSkKICAgICAgICAgICAgIGxvYWRWaWV3U291cmNlU3R5bGUo
KTsKICAgICAgICAgbWF0Y2hVQVJ1bGVzKHJlc3VsdCwgZGVmYXVsdFZpZXdTb3VyY2VTdHlsZSk7
CkBAIC0xNzU4LDcgKzE3NTksNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29s
dmVyOjpwc2V1ZG9TdHlsZUZvckVsZW1lbnQoUHNldWRvSWQgcHNldWRvLCBFbAogCiBQYXNzUmVm
UHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvclBhZ2UoaW50IHBhZ2VJbmRl
eCkKIHsKLSAgICBpbml0Rm9yU3R5bGVSZXNvbHZlKG1fY2hlY2tlci5kb2N1bWVudCgpLT5kb2N1
bWVudEVsZW1lbnQoKSk7IC8vIG1fcm9vdEVsZW1lbnRTdHlsZSB3aWxsIGJlIHNldCB0byB0aGUg
ZG9jdW1lbnQgc3R5bGUuCisgICAgaW5pdEZvclN0eWxlUmVzb2x2ZShkb2N1bWVudCgpLT5kb2N1
bWVudEVsZW1lbnQoKSk7IC8vIG1fcm9vdEVsZW1lbnRTdHlsZSB3aWxsIGJlIHNldCB0byB0aGUg
ZG9jdW1lbnQgc3R5bGUuCiAKICAgICBtX3N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZSgpOwog
ICAgIG1fc3R5bGUtPmluaGVyaXRGcm9tKG1fcm9vdEVsZW1lbnRTdHlsZSk7CkBAIC0zMDg5LDcg
KzMwOTAsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJ
RCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBhZGp1c3Qg
dGhlIHNpemUgdG8gYWNjb3VudCBmb3IgdGhlIGdlbmVyaWMgZmFtaWx5IGNoYW5nZSBmcm9tIG1v
bm9zcGFjZQogICAgICAgICAgICAgLy8gdG8gbm9uLW1vbm9zcGFjZS4KICAgICAgICAgICAgIGlm
IChmb250RGVzY3JpcHRpb24ua2V5d29yZFNpemUoKSAmJiBmb250RGVzY3JpcHRpb24udXNlRml4
ZWREZWZhdWx0U2l6ZSgpKQotICAgICAgICAgICAgICAgIHNldEZvbnRTaXplKGZvbnREZXNjcmlw
dGlvbiwgZm9udFNpemVGb3JLZXl3b3JkKG1fY2hlY2tlci5kb2N1bWVudCgpLCBDU1NWYWx1ZVh4
U21hbGwgKyBmb250RGVzY3JpcHRpb24ua2V5d29yZFNpemUoKSAtIDEsIGZhbHNlKSk7CisgICAg
ICAgICAgICAgICAgc2V0Rm9udFNpemUoZm9udERlc2NyaXB0aW9uLCBmb250U2l6ZUZvcktleXdv
cmQoZG9jdW1lbnQoKSwgQ1NTVmFsdWVYeFNtYWxsICsgZm9udERlc2NyaXB0aW9uLmtleXdvcmRT
aXplKCkgLSAxLCBmYWxzZSkpOwogICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldEdlbmVy
aWNGYW1pbHkoaW5pdGlhbERlc2MuZ2VuZXJpY0ZhbWlseSgpKTsKICAgICAgICAgICAgIGlmICgh
aW5pdGlhbERlc2MuZmlyc3RGYW1pbHkoKS5mYW1pbHlJc0VtcHR5KCkpCiAgICAgICAgICAgICAg
ICAgZm9udERlc2NyaXB0aW9uLnNldEZhbWlseShpbml0aWFsRGVzYy5maXJzdEZhbWlseSgpKTsK
QEAgLTMxNjgsNyArMzE2OSw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShD
U1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAgIC8vIElmIGN1cnJGYW1p
bHkgaXMgbm9uLXplcm8gdGhlbiB3ZSBzZXQgYXQgbGVhc3Qgb25lIGZhbWlseSBvbiB0aGlzIGRl
c2NyaXB0aW9uLgogICAgICAgICBpZiAoY3VyckZhbWlseSkgewogICAgICAgICAgICAgaWYgKGZv
bnREZXNjcmlwdGlvbi5rZXl3b3JkU2l6ZSgpICYmIGZvbnREZXNjcmlwdGlvbi51c2VGaXhlZERl
ZmF1bHRTaXplKCkgIT0gb2xkRmFtaWx5VXNlZEZpeGVkRGVmYXVsdFNpemUpCi0gICAgICAgICAg
ICAgICAgc2V0Rm9udFNpemUoZm9udERlc2NyaXB0aW9uLCBmb250U2l6ZUZvcktleXdvcmQobV9j
aGVja2VyLmRvY3VtZW50KCksIENTU1ZhbHVlWHhTbWFsbCArIGZvbnREZXNjcmlwdGlvbi5rZXl3
b3JkU2l6ZSgpIC0gMSwgIW9sZEZhbWlseVVzZWRGaXhlZERlZmF1bHRTaXplKSk7CisgICAgICAg
ICAgICAgICAgc2V0Rm9udFNpemUoZm9udERlc2NyaXB0aW9uLCBmb250U2l6ZUZvcktleXdvcmQo
ZG9jdW1lbnQoKSwgQ1NTVmFsdWVYeFNtYWxsICsgZm9udERlc2NyaXB0aW9uLmtleXdvcmRTaXpl
KCkgLSAxLCAhb2xkRmFtaWx5VXNlZEZpeGVkRGVmYXVsdFNpemUpKTsKIAogICAgICAgICAgICAg
c2V0Rm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7CiAgICAgICAgIH0KQEAgLTMyMTcs
MTAgKzMyMTgsMTAgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3Bl
cnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgICAgICAgICBpZiAoIXNldHRpbmdz
KQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgZm9udERlc2Ny
aXB0aW9uLnNldFJlbmRlcmluZ01vZGUoc2V0dGluZ3MtPmZvbnRSZW5kZXJpbmdNb2RlKCkpOwot
ICAgICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRVc2VQcmludGVyRm9udChtX2NoZWNr
ZXIuZG9jdW1lbnQoKS0+cHJpbnRpbmcoKSB8fCAhc2V0dGluZ3MtPnNjcmVlbkZvbnRTdWJzdGl0
dXRpb25FbmFibGVkKCkpOworICAgICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRVc2VQ
cmludGVyRm9udChkb2N1bWVudCgpLT5wcmludGluZygpIHx8ICFzZXR0aW5ncy0+c2NyZWVuRm9u
dFN1YnN0aXR1dGlvbkVuYWJsZWQoKSk7CiAKICAgICAgICAgICAgICAgICAvLyBIYW5kbGUgdGhl
IHpvb20gZmFjdG9yLgotICAgICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRDb21wdXRl
ZFNpemUoZ2V0Q29tcHV0ZWRTaXplRnJvbVNwZWNpZmllZFNpemUobV9jaGVja2VyLmRvY3VtZW50
KCksIG1fc3R5bGUuZ2V0KCksIGZvbnREZXNjcmlwdGlvbi5pc0Fic29sdXRlU2l6ZSgpLCBmb250
RGVzY3JpcHRpb24uc3BlY2lmaWVkU2l6ZSgpLCB1c2VTVkdab29tUnVsZXMoKSkpOworICAgICAg
ICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUoZ2V0Q29tcHV0ZWRTaXpl
RnJvbVNwZWNpZmllZFNpemUoZG9jdW1lbnQoKSwgbV9zdHlsZS5nZXQoKSwgZm9udERlc2NyaXB0
aW9uLmlzQWJzb2x1dGVTaXplKCksIGZvbnREZXNjcmlwdGlvbi5zcGVjaWZpZWRTaXplKCksIHVz
ZVNWR1pvb21SdWxlcygpKSk7CiAgICAgICAgICAgICAgICAgc2V0Rm9udERlc2NyaXB0aW9uKGZv
bnREZXNjcmlwdGlvbik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUt
PmlzRm9udFZhbHVlKCkpIHsKQEAgLTQxMDEsNyArNDEwMiw3IEBAIHZvaWQgU3R5bGVSZXNvbHZl
cjo6Y2hlY2tGb3JHZW5lcmljRmFtaWx5Q2hhbmdlKFJlbmRlclN0eWxlKiBzdHlsZSwgUmVuZGVy
U3R5bGUqCiAgICAgLy8gbXVsdGlwbHlpbmcgYnkgb3VyIHNjYWxlIGZhY3Rvci4KICAgICBmbG9h
dCBzaXplOwogICAgIGlmIChjaGlsZEZvbnQua2V5d29yZFNpemUoKSkKLSAgICAgICAgc2l6ZSA9
IGZvbnRTaXplRm9yS2V5d29yZChtX2NoZWNrZXIuZG9jdW1lbnQoKSwgQ1NTVmFsdWVYeFNtYWxs
ICsgY2hpbGRGb250LmtleXdvcmRTaXplKCkgLSAxLCBjaGlsZEZvbnQudXNlRml4ZWREZWZhdWx0
U2l6ZSgpKTsKKyAgICAgICAgc2l6ZSA9IGZvbnRTaXplRm9yS2V5d29yZChkb2N1bWVudCgpLCBD
U1NWYWx1ZVh4U21hbGwgKyBjaGlsZEZvbnQua2V5d29yZFNpemUoKSAtIDEsIGNoaWxkRm9udC51
c2VGaXhlZERlZmF1bHRTaXplKCkpOwogICAgIGVsc2UgewogICAgICAgICBTZXR0aW5ncyogc2V0
dGluZ3MgPSBkb2N1bWVudFNldHRpbmdzKCk7CiAgICAgICAgIGZsb2F0IGZpeGVkU2NhbGVGYWN0
b3IgPSAoc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmRlZmF1bHRGaXhlZEZvbnRTaXplKCkgJiYgc2V0
dGluZ3MtPmRlZmF1bHRGb250U2l6ZSgpKQpAQCAtNDEyMiwxNCArNDEyMywxNCBAQCB2b2lkIFN0
eWxlUmVzb2x2ZXI6OmluaXRpYWxpemVGb250U3R5bGUoU2V0dGluZ3MqIHNldHRpbmdzKQogICAg
IEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb247CiAgICAgZm9udERlc2NyaXB0aW9uLnNl
dEdlbmVyaWNGYW1pbHkoRm9udERlc2NyaXB0aW9uOjpTdGFuZGFyZEZhbWlseSk7CiAgICAgZm9u
dERlc2NyaXB0aW9uLnNldFJlbmRlcmluZ01vZGUoc2V0dGluZ3MtPmZvbnRSZW5kZXJpbmdNb2Rl
KCkpOwotICAgIGZvbnREZXNjcmlwdGlvbi5zZXRVc2VQcmludGVyRm9udChtX2NoZWNrZXIuZG9j
dW1lbnQoKS0+cHJpbnRpbmcoKSB8fCAhc2V0dGluZ3MtPnNjcmVlbkZvbnRTdWJzdGl0dXRpb25F
bmFibGVkKCkpOworICAgIGZvbnREZXNjcmlwdGlvbi5zZXRVc2VQcmludGVyRm9udChkb2N1bWVu
dCgpLT5wcmludGluZygpIHx8ICFzZXR0aW5ncy0+c2NyZWVuRm9udFN1YnN0aXR1dGlvbkVuYWJs
ZWQoKSk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBzdGFuZGFyZEZvbnRGYW1pbHkgPSBkb2N1
bWVudFNldHRpbmdzKCktPnN0YW5kYXJkRm9udEZhbWlseSgpOwogICAgIGlmICghc3RhbmRhcmRG
b250RmFtaWx5LmlzRW1wdHkoKSkgewogICAgICAgICBmb250RGVzY3JpcHRpb24uZmlyc3RGYW1p
bHkoKS5zZXRGYW1pbHkoc3RhbmRhcmRGb250RmFtaWx5KTsKICAgICAgICAgZm9udERlc2NyaXB0
aW9uLmZpcnN0RmFtaWx5KCkuYXBwZW5kRmFtaWx5KDApOwogICAgIH0KICAgICBmb250RGVzY3Jp
cHRpb24uc2V0S2V5d29yZFNpemUoQ1NTVmFsdWVNZWRpdW0gLSBDU1NWYWx1ZVh4U21hbGwgKyAx
KTsKLSAgICBzZXRGb250U2l6ZShmb250RGVzY3JpcHRpb24sIGZvbnRTaXplRm9yS2V5d29yZCht
X2NoZWNrZXIuZG9jdW1lbnQoKSwgQ1NTVmFsdWVNZWRpdW0sIGZhbHNlKSk7CisgICAgc2V0Rm9u
dFNpemUoZm9udERlc2NyaXB0aW9uLCBmb250U2l6ZUZvcktleXdvcmQoZG9jdW1lbnQoKSwgQ1NT
VmFsdWVNZWRpdW0sIGZhbHNlKSk7CiAgICAgbV9zdHlsZS0+c2V0TGluZUhlaWdodChSZW5kZXJT
dHlsZTo6aW5pdGlhbExpbmVIZWlnaHQoKSk7CiAgICAgbV9saW5lSGVpZ2h0VmFsdWUgPSAwOwog
ICAgIHNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOwpAQCAtNDEzOCw3ICs0MTM5
LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjppbml0aWFsaXplRm9udFN0eWxlKFNldHRpbmdzKiBz
ZXR0aW5ncykKIHZvaWQgU3R5bGVSZXNvbHZlcjo6c2V0Rm9udFNpemUoRm9udERlc2NyaXB0aW9u
JiBmb250RGVzY3JpcHRpb24sIGZsb2F0IHNpemUpCiB7CiAgICAgZm9udERlc2NyaXB0aW9uLnNl
dFNwZWNpZmllZFNpemUoc2l6ZSk7Ci0gICAgZm9udERlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6
ZShnZXRDb21wdXRlZFNpemVGcm9tU3BlY2lmaWVkU2l6ZShtX2NoZWNrZXIuZG9jdW1lbnQoKSwg
bV9zdHlsZS5nZXQoKSwgZm9udERlc2NyaXB0aW9uLmlzQWJzb2x1dGVTaXplKCksIHNpemUsIHVz
ZVNWR1pvb21SdWxlcygpKSk7CisgICAgZm9udERlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZShn
ZXRDb21wdXRlZFNpemVGcm9tU3BlY2lmaWVkU2l6ZShkb2N1bWVudCgpLCBtX3N0eWxlLmdldCgp
LCBmb250RGVzY3JpcHRpb24uaXNBYnNvbHV0ZVNpemUoKSwgc2l6ZSwgdXNlU1ZHWm9vbVJ1bGVz
KCkpKTsKIH0KIAogZmxvYXQgU3R5bGVSZXNvbHZlcjo6Z2V0Q29tcHV0ZWRTaXplRnJvbVNwZWNp
ZmllZFNpemUoRG9jdW1lbnQqIGRvY3VtZW50LCBSZW5kZXJTdHlsZSogc3R5bGUsIGJvb2wgaXNB
YnNvbHV0ZVNpemUsIGZsb2F0IHNwZWNpZmllZFNpemUsIGJvb2wgdXNlU1ZHWm9vbVJ1bGVzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKaW5kZXggMmJmMzJkYWNiMzhlMTc2NzBiZDEyNGQz
NTI2Y2NjODU2ZGUxNjFmNi4uM2NkOGZhYmVlZDIyNTIwNzVjOGM1NTBjOTk5NmQ4NWE3OTEwNmJk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC0xNjQsNyArMTY0LDcgQEAgcHVi
bGljOgogICAgIFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFy
ZW50U3R5bGU7IH0KICAgICBSZW5kZXJTdHlsZSogcm9vdEVsZW1lbnRTdHlsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fcm9vdEVsZW1lbnRTdHlsZTsgfQogICAgIEVsZW1lbnQqIGVsZW1lbnQoKSBjb25z
dCB7IHJldHVybiBtX2VsZW1lbnQ7IH0KLSAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdCB7
IHJldHVybiBtX2NoZWNrZXIuZG9jdW1lbnQoKTsgfQorICAgIERvY3VtZW50KiBkb2N1bWVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KICAgICBjb25zdCBGb250RGVzY3JpcHRpb24m
IGZvbnREZXNjcmlwdGlvbigpIHsgcmV0dXJuIHN0eWxlKCktPmZvbnREZXNjcmlwdGlvbigpOyB9
CiAgICAgY29uc3QgRm9udERlc2NyaXB0aW9uJiBwYXJlbnRGb250RGVzY3JpcHRpb24oKSB7IHJl
dHVybiBwYXJlbnRTdHlsZSgpLT5mb250RGVzY3JpcHRpb24oKTsgfQogICAgIHZvaWQgc2V0Rm9u
dERlc2NyaXB0aW9uKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSB7IG1f
Zm9udERpcnR5IHw9IHN0eWxlKCktPnNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24p
OyB9CkBAIC0zODYsNyArMzg2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgbWF0Y2hQYWdlUnVs
ZXMoTWF0Y2hSZXN1bHQmLCBSdWxlU2V0KiwgYm9vbCBpc0xlZnRQYWdlLCBib29sIGlzRmlyc3RQ
YWdlLCBjb25zdCBTdHJpbmcmIHBhZ2VOYW1lKTsKICAgICB2b2lkIG1hdGNoUGFnZVJ1bGVzRm9y
TGlzdChWZWN0b3I8U3R5bGVSdWxlUGFnZSo+JiBtYXRjaGVkUnVsZXMsIGNvbnN0IFZlY3RvcjxT
dHlsZVJ1bGVQYWdlKj4mLCBib29sIGlzTGVmdFBhZ2UsIGJvb2wgaXNGaXJzdFBhZ2UsIGNvbnN0
IFN0cmluZyYgcGFnZU5hbWUpOwotICAgIFNldHRpbmdzKiBkb2N1bWVudFNldHRpbmdzKCkgeyBy
ZXR1cm4gbV9jaGVja2VyLmRvY3VtZW50KCktPnNldHRpbmdzKCk7IH0KKyAgICBTZXR0aW5ncyog
ZG9jdW1lbnRTZXR0aW5ncygpIHsgcmV0dXJuIG1fZG9jdW1lbnQtPnNldHRpbmdzKCk7IH0KIAog
ICAgIGJvb2wgaXNMZWZ0UGFnZShpbnQgcGFnZUluZGV4KSBjb25zdDsKICAgICBib29sIGlzUmln
aHRQYWdlKGludCBwYWdlSW5kZXgpIGNvbnN0IHsgcmV0dXJuICFpc0xlZnRQYWdlKHBhZ2VJbmRl
eCk7IH0KQEAgLTQ4OCw2ICs0ODgsNyBAQCBwcml2YXRlOgogICAgIFBzZXVkb0lkIG1fZHluYW1p
Y1BzZXVkbzsKICAgICBQc2V1ZG9JZCBtX3BzZXVkb1N0eWxlOwogCisgICAgRG9jdW1lbnQqIG1f
ZG9jdW1lbnQ7CiAgICAgU2VsZWN0b3JDaGVja2VyIG1fY2hlY2tlcjsKICAgICBTZWxlY3RvckZp
bHRlciBtX3NlbGVjdG9yRmlsdGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2VsZWN0b3JRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAK
aW5kZXggZmExNDljMDdhMzdjOGQyYTAzOGFlMjUxMTE3NTRjYWMzYWU1ZDI0YS4uYTlkNjZmNWFm
NzA5ZGNlNTljMDU2YTlhMzAxMWI4NmYxN2RkM2EwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3Rv
clF1ZXJ5LmNwcApAQCAtMTUyLDIwICsxNTIsMjAgQEAgU2VsZWN0b3JRdWVyeTo6U2VsZWN0b3JR
dWVyeShjb25zdCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9yTGlzdCkKIAogYm9vbCBTZWxlY3Rv
clF1ZXJ5OjptYXRjaGVzKEVsZW1lbnQqIGVsZW1lbnQpIGNvbnN0CiB7Ci0gICAgU2VsZWN0b3JD
aGVja2VyIHNlbGVjdG9yQ2hlY2tlcihlbGVtZW50LT5kb2N1bWVudCgpLCAhZWxlbWVudC0+ZG9j
dW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpOworICAgIFNlbGVjdG9yQ2hlY2tlciBzZWxlY3RvckNo
ZWNrZXIoZWxlbWVudC0+ZG9jdW1lbnQoKSk7CiAgICAgcmV0dXJuIG1fc2VsZWN0b3JzLm1hdGNo
ZXMoc2VsZWN0b3JDaGVja2VyLCBlbGVtZW50KTsKIH0KIAogUGFzc1JlZlB0cjxOb2RlTGlzdD4g
U2VsZWN0b3JRdWVyeTo6cXVlcnlBbGwoTm9kZSogcm9vdE5vZGUpIGNvbnN0CiB7Ci0gICAgU2Vs
ZWN0b3JDaGVja2VyIHNlbGVjdG9yQ2hlY2tlcihyb290Tm9kZS0+ZG9jdW1lbnQoKSwgIXJvb3RO
b2RlLT5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSk7CisgICAgU2VsZWN0b3JDaGVja2VyIHNl
bGVjdG9yQ2hlY2tlcihyb290Tm9kZS0+ZG9jdW1lbnQoKSk7CiAgICAgc2VsZWN0b3JDaGVja2Vy
LnNldE1vZGUoU2VsZWN0b3JDaGVja2VyOjpRdWVyeWluZ1J1bGVzKTsKICAgICByZXR1cm4gbV9z
ZWxlY3RvcnMucXVlcnlBbGwoc2VsZWN0b3JDaGVja2VyLCByb290Tm9kZSk7CiB9CiAKIFBhc3NS
ZWZQdHI8RWxlbWVudD4gU2VsZWN0b3JRdWVyeTo6cXVlcnlGaXJzdChOb2RlKiByb290Tm9kZSkg
Y29uc3QKIHsKLSAgICBTZWxlY3RvckNoZWNrZXIgc2VsZWN0b3JDaGVja2VyKHJvb3ROb2RlLT5k
b2N1bWVudCgpLCAhcm9vdE5vZGUtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKTsKKyAgICBT
ZWxlY3RvckNoZWNrZXIgc2VsZWN0b3JDaGVja2VyKHJvb3ROb2RlLT5kb2N1bWVudCgpKTsKICAg
ICBzZWxlY3RvckNoZWNrZXIuc2V0TW9kZShTZWxlY3RvckNoZWNrZXI6OlF1ZXJ5aW5nUnVsZXMp
OwogICAgIHJldHVybiBtX3NlbGVjdG9ycy5xdWVyeUZpcnN0KHNlbGVjdG9yQ2hlY2tlciwgcm9v
dE5vZGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVu
dFNlbGVjdG9yUXVlcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNl
bGVjdG9yUXVlcnkuY3BwCmluZGV4IGRiZTVhOGU5NTYyZjY4ZmE2YTA3ZjNjMzM5NzBmYTg1ZjNi
ODZiYjQuLjYxMThjNTJjODExNGI1M2NjY2YwMDE5NDFjMzUwMzVkZTQxMjFmMmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHAK
QEAgLTM1LDggKzM1LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Db250ZW50U2VsZWN0
b3JDaGVja2VyOjpDb250ZW50U2VsZWN0b3JDaGVja2VyKERvY3VtZW50KiBkb2N1bWVudCwgYm9v
bCBzdHJpY3RQYXJzaW5nKQotICAgIDogbV9zZWxlY3RvckNoZWNrZXIoZG9jdW1lbnQsIHN0cmlj
dFBhcnNpbmcpCitDb250ZW50U2VsZWN0b3JDaGVja2VyOjpDb250ZW50U2VsZWN0b3JDaGVja2Vy
KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IG1fc2VsZWN0b3JDaGVja2VyKGRvY3VtZW50KQog
ewogICAgIG1fc2VsZWN0b3JDaGVja2VyLnNldE1vZGUoU2VsZWN0b3JDaGVja2VyOjpDb2xsZWN0
aW5nUnVsZXMpOwogfQpAQCAtNjYsNyArNjYsNyBAQCBib29sIENvbnRlbnRTZWxlY3RvckRhdGFM
aXN0OjptYXRjaGVzKGNvbnN0IENvbnRlbnRTZWxlY3RvckNoZWNrZXImIHNlbGVjdG9yQ2hlYwog
CiBDb250ZW50U2VsZWN0b3JRdWVyeTo6Q29udGVudFNlbGVjdG9yUXVlcnkoSW5zZXJ0aW9uUG9p
bnQqIGluc2VydGlvblBvaW50KQogICAgIDogbV9pbnNlcnRpb25Qb2ludChpbnNlcnRpb25Qb2lu
dCkKLSAgICAsIG1fc2VsZWN0b3JDaGVja2VyKGluc2VydGlvblBvaW50LT5kb2N1bWVudCgpLCAh
aW5zZXJ0aW9uUG9pbnQtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKQorICAgICwgbV9zZWxl
Y3RvckNoZWNrZXIoaW5zZXJ0aW9uUG9pbnQtPmRvY3VtZW50KCkpCiB7CiAgICAgaWYgKGluc2Vy
dGlvblBvaW50LT5pc1NlbGVjdFZhbGlkKCkpCiAgICAgICAgIG1fc2VsZWN0b3JzLmluaXRpYWxp
emUoaW5zZXJ0aW9uUG9pbnQtPnNlbGVjdG9yTGlzdCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oCmluZGV4IDc4YTA4MjQ1NGM5ZDEy
ZjJiMGYzYzU1MDRhOGI5MGFiZTllMWViZTYuLjZhNGYzMzgxNTQ2YWFhM2EzMDk4OTQ2Mzc1Mzc4
ZjM2MDQ1ZTFjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRl
bnRTZWxlY3RvclF1ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVu
dFNlbGVjdG9yUXVlcnkuaApAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBJbnNlcnRpb25Qb2ludDsK
IAogY2xhc3MgQ29udGVudFNlbGVjdG9yQ2hlY2tlciB7CiBwdWJsaWM6Ci0gICAgQ29udGVudFNl
bGVjdG9yQ2hlY2tlcihEb2N1bWVudCosIGJvb2wgc3RyaWN0UGFyc2luZyk7CisgICAgQ29udGVu
dFNlbGVjdG9yQ2hlY2tlcihEb2N1bWVudCopOwogCiAgICAgYm9vbCBjaGVja0NvbnRlbnRTZWxl
Y3RvcihDU1NTZWxlY3RvciosIGNvbnN0IFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiYgc2libGluZ3Ms
IGludCBudGhOb2RlKSBjb25zdDsKIHByaXZhdGU6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>