<?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>138880</bug_id>
          
          <creation_ts>2014-11-19 13:24:13 -0800</creation_ts>
          <short_desc>Move pseudo-style code from RenderObject to RenderElement.</short_desc>
          <delta_ts>2014-11-19 16:17:42 -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>Layout and Rendering</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="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1049886</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-11-19 13:24:13 -0800</bug_when>
    <thetext>RenderText doesn&apos;t have style, so we should really move pseudo style code from RenderObject to RenderElement, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049887</commentid>
    <comment_count>1</comment_count>
      <attachid>241881</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-11-19 13:25:40 -0800</bug_when>
    <thetext>Created attachment 241881
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049888</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-19 13:28:00 -0800</bug_when>
    <thetext>Attachment 241881 did not pass style-queue:


ERROR: Source/WebCore/rendering/RenderElement.h:50:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049942</commentid>
    <comment_count>3</comment_count>
      <attachid>241881</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-11-19 15:30:47 -0800</bug_when>
    <thetext>Comment on attachment 241881
Patch

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

&gt; Source/WebCore/rendering/RenderElement.cpp:1419
&gt; +RenderStyle* RenderElement::getCachedPseudoStyle(PseudoId pseudo, RenderStyle* parentStyle) const

get* naming here is not consistent with the current style, would be nice to fix that too at some point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049978</commentid>
    <comment_count>4</comment_count>
      <attachid>241881</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-19 16:17:37 -0800</bug_when>
    <thetext>Comment on attachment 241881
Patch

Clearing flags on attachment: 241881

Committed r176365: &lt;http://trac.webkit.org/changeset/176365&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049979</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-19 16:17:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241881</attachid>
            <date>2014-11-19 13:25:40 -0800</date>
            <delta_ts>2014-11-19 16:17:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>138880.diff</filename>
            <type>text/plain</type>
            <size>23294</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxZGViMzA4Li44YTM0ZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAg
QEAKKzIwMTQtMTEtMTkgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIE1vdmUgcHNldWRvLXN0eWxlIGNvZGUgZnJvbSBSZW5kZXJPYmplY3QgdG8gUmVuZGVyRWxl
bWVudC4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzODg4MD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNaWdyYXRlIGdldCpQc2V1ZG9T
dHlsZSgpIHRvIFJlbmRlckVsZW1lbnQsIGFuZCB0aGUgc2VsZWN0aW9uIGNvbG9yCisgICAgICAg
IGZ1bmN0aW9ucyBhbG9uZyB3aXRoIHRoZW0uIFRoaXMgZ2V0cyByaWQgb2YgYSBET00gYW5jZXN0
b3Igd2FsayBpbgorICAgICAgICBwc2V1ZG8gc3R5bGUgbG9va3VwLgorCisgICAgICAgIE5hcnJv
dyBkb3duIHNvbWUgYXJndW1lbnQgdHlwZXMgdG8ga2VlcCB0aGluZ3MgYnVpbGRpbmcuCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0U2VsZWN0aW9uR2FwKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJsb2NrOjpsb2dpY2FsUmlnaHRTZWxlY3Rpb25HYXApOgorICAgICAgICAoV2ViQ29yZTo6
c3R5bGVGb3JGaXJzdExldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBk
YXRlRmlyc3RMZXR0ZXJTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y3Jl
YXRlRmlyc3RMZXR0ZXJSZW5kZXJlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRWxlbWVudDo6Z2V0Q2FjaGVkUHNldWRvU3R5bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRWxlbWVudDo6Z2V0VW5jYWNoZWRQc2V1ZG9TdHlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzZWxlY3Rpb25Db2xvcik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJFbGVtZW50OjpzZWxlY3Rpb25Qc2V1ZG9TdHlsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJFbGVtZW50OjpzZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRWxlbWVudDo6c2VsZWN0aW9uRW1waGFzaXNNYXJrQ29sb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2Jq
ZWN0OjpzZWxlY3Rpb25Db2xvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJP
YmplY3Q6OnNlbGVjdGlvblBzZXVkb1N0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6c2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c2VsZWN0aW9uRW1waGFzaXNNYXJrQ29sb3IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpnZXRDYWNoZWRQc2V1ZG9T
dHlsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmdldFVuY2Fj
aGVkUHNldWRvU3R5bGUpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGV4dDo6Z2V0Q2FjaGVkUHNldWRvU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGV4dDo6c2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRleHQ6OnNlbGVjdGlvbkZvcmVncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUZXh0OjpzZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvcik6CisgICAgICAgICogcmVu
ZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0lu
bGluZVRleHRCb3g6OnBhaW50U2VsZWN0aW9uQmFja2dyb3VuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdJbmxpbmVUZXh0Qm94OjpwYWludCk6CisKIDIwMTQtMTEtMTggIEFuZHJlYXMgS2xpbmcg
IDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIEF2b2lkIHN5bmNocm9ub3VzIHN0eWxlIHJl
Y2FsYyBpbiBEb2N1bWVudC5hY3RpdmVFbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcAppbmRleCA4NmVkZmZhLi5mMWJjZjU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTE5ODcsNyArMTk4Nyw3IEBAIExheW91dFJlY3Qg
UmVuZGVyQmxvY2s6OmJsb2NrU2VsZWN0aW9uR2FwKFJlbmRlckJsb2NrJiByb290QmxvY2ssIGNv
bnN0IExheW91dFBvCiB9CiAKIExheW91dFJlY3QgUmVuZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0U2Vs
ZWN0aW9uR2FwKFJlbmRlckJsb2NrJiByb290QmxvY2ssIGNvbnN0IExheW91dFBvaW50JiByb290
QmxvY2tQaHlzaWNhbFBvc2l0aW9uLCBjb25zdCBMYXlvdXRTaXplJiBvZmZzZXRGcm9tUm9vdEJs
b2NrLAotICAgIFJlbmRlck9iamVjdCogc2VsT2JqLCBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBM
YXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgY29uc3QgTG9n
aWNhbFNlbGVjdGlvbk9mZnNldENhY2hlcyYgY2FjaGUsIGNvbnN0IFBhaW50SW5mbyogcGFpbnRJ
bmZvKQorICAgIFJlbmRlckJveE1vZGVsT2JqZWN0KiBzZWxPYmosIExheW91dFVuaXQgbG9naWNh
bExlZnQsIExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBj
b25zdCBMb2dpY2FsU2VsZWN0aW9uT2Zmc2V0Q2FjaGVzJiBjYWNoZSwgY29uc3QgUGFpbnRJbmZv
KiBwYWludEluZm8pCiB7CiAgICAgTGF5b3V0VW5pdCByb290QmxvY2tMb2dpY2FsVG9wID0gYmxv
Y2tEaXJlY3Rpb25PZmZzZXQocm9vdEJsb2NrLCBvZmZzZXRGcm9tUm9vdEJsb2NrKSArIGxvZ2lj
YWxUb3A7CiAgICAgTGF5b3V0VW5pdCByb290QmxvY2tMb2dpY2FsTGVmdCA9IHN0ZDo6bWF4KGxv
Z2ljYWxMZWZ0U2VsZWN0aW9uT2Zmc2V0KHJvb3RCbG9jaywgbG9naWNhbFRvcCwgY2FjaGUpLCBs
b2dpY2FsTGVmdFNlbGVjdGlvbk9mZnNldChyb290QmxvY2ssIGxvZ2ljYWxUb3AgKyBsb2dpY2Fs
SGVpZ2h0LCBjYWNoZSkpOwpAQCAtMjAwNCw3ICsyMDA0LDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJC
bG9jazo6bG9naWNhbExlZnRTZWxlY3Rpb25HYXAoUmVuZGVyQmxvY2smIHJvb3RCbG9jaywgY29u
c3QgTGEKIH0KIAogTGF5b3V0UmVjdCBSZW5kZXJCbG9jazo6bG9naWNhbFJpZ2h0U2VsZWN0aW9u
R2FwKFJlbmRlckJsb2NrJiByb290QmxvY2ssIGNvbnN0IExheW91dFBvaW50JiByb290QmxvY2tQ
aHlzaWNhbFBvc2l0aW9uLCBjb25zdCBMYXlvdXRTaXplJiBvZmZzZXRGcm9tUm9vdEJsb2NrLAot
ICAgIFJlbmRlck9iamVjdCogc2VsT2JqLCBMYXlvdXRVbml0IGxvZ2ljYWxSaWdodCwgTGF5b3V0
VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIGNvbnN0IExvZ2ljYWxT
ZWxlY3Rpb25PZmZzZXRDYWNoZXMmIGNhY2hlLCBjb25zdCBQYWludEluZm8qIHBhaW50SW5mbykK
KyAgICBSZW5kZXJCb3hNb2RlbE9iamVjdCogc2VsT2JqLCBMYXlvdXRVbml0IGxvZ2ljYWxSaWdo
dCwgTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIGNvbnN0
IExvZ2ljYWxTZWxlY3Rpb25PZmZzZXRDYWNoZXMmIGNhY2hlLCBjb25zdCBQYWludEluZm8qIHBh
aW50SW5mbykKIHsKICAgICBMYXlvdXRVbml0IHJvb3RCbG9ja0xvZ2ljYWxUb3AgPSBibG9ja0Rp
cmVjdGlvbk9mZnNldChyb290QmxvY2ssIG9mZnNldEZyb21Sb290QmxvY2spICsgbG9naWNhbFRv
cDsKICAgICBMYXlvdXRVbml0IHJvb3RCbG9ja0xvZ2ljYWxMZWZ0ID0gc3RkOjptYXgoaW5saW5l
RGlyZWN0aW9uT2Zmc2V0KHJvb3RCbG9jaywgb2Zmc2V0RnJvbVJvb3RCbG9jaykgKyBsb2dpY2Fs
UmlnaHQsCkBAIC0yOTY3LDcgKzI5NjcsNyBAQCBSZW5kZXJCbG9jayogUmVuZGVyQmxvY2s6OmZp
cnN0TGluZUJsb2NrKCkgY29uc3QKICAgICByZXR1cm4gZmlyc3RMaW5lQmxvY2s7CiB9CiAKLXN0
YXRpYyBSZW5kZXJTdHlsZSYgc3R5bGVGb3JGaXJzdExldHRlcihSZW5kZXJPYmplY3QqIGZpcnN0
TGV0dGVyQmxvY2ssIFJlbmRlck9iamVjdCogZmlyc3RMZXR0ZXJDb250YWluZXIpCitzdGF0aWMg
UmVuZGVyU3R5bGUmIHN0eWxlRm9yRmlyc3RMZXR0ZXIoUmVuZGVyRWxlbWVudCogZmlyc3RMZXR0
ZXJCbG9jaywgUmVuZGVyT2JqZWN0KiBmaXJzdExldHRlckNvbnRhaW5lcikKIHsKICAgICBSZW5k
ZXJTdHlsZSogcHNldWRvU3R5bGUgPSBmaXJzdExldHRlckJsb2NrLT5nZXRDYWNoZWRQc2V1ZG9T
dHlsZShGSVJTVF9MRVRURVIsICZmaXJzdExldHRlckNvbnRhaW5lci0+Zmlyc3RMaW5lU3R5bGUo
KSk7CiAgICAgCkBAIC0zMDQ4LDcgKzMwNDgsNyBAQCBzdGF0aWMgaW5saW5lIFJlbmRlckJsb2Nr
KiBmaW5kRmlyc3RMZXR0ZXJCbG9jayhSZW5kZXJCbG9jayogc3RhcnQpCiAgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKLXZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZUZpcnN0TGV0dGVyU3R5bGUoUmVu
ZGVyT2JqZWN0KiBmaXJzdExldHRlckJsb2NrLCBSZW5kZXJPYmplY3QqIGN1cnJlbnRDaGlsZCkK
K3ZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZUZpcnN0TGV0dGVyU3R5bGUoUmVuZGVyRWxlbWVudCog
Zmlyc3RMZXR0ZXJCbG9jaywgUmVuZGVyT2JqZWN0KiBjdXJyZW50Q2hpbGQpCiB7CiAgICAgUmVu
ZGVyRWxlbWVudCogZmlyc3RMZXR0ZXIgPSBjdXJyZW50Q2hpbGQtPnBhcmVudCgpOwogICAgIFJl
bmRlckVsZW1lbnQqIGZpcnN0TGV0dGVyQ29udGFpbmVyID0gZmlyc3RMZXR0ZXItPnBhcmVudCgp
OwpAQCAtMzA5MCw3ICszMDkwLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlRmlyc3RMZXR0
ZXJTdHlsZShSZW5kZXJPYmplY3QqIGZpcnN0TGV0dGVyQmxvY2ssIFJlbmRlck8KICAgICAgICAg
Zmlyc3RMZXR0ZXItPnNldFN0eWxlKHBzZXVkb1N0eWxlKTsKIH0KIAotdm9pZCBSZW5kZXJCbG9j
azo6Y3JlYXRlRmlyc3RMZXR0ZXJSZW5kZXJlcihSZW5kZXJPYmplY3QqIGZpcnN0TGV0dGVyQmxv
Y2ssIFJlbmRlclRleHQqIGN1cnJlbnRUZXh0Q2hpbGQpCit2b2lkIFJlbmRlckJsb2NrOjpjcmVh
dGVGaXJzdExldHRlclJlbmRlcmVyKFJlbmRlckVsZW1lbnQqIGZpcnN0TGV0dGVyQmxvY2ssIFJl
bmRlclRleHQqIGN1cnJlbnRUZXh0Q2hpbGQpCiB7CiAgICAgUmVuZGVyRWxlbWVudCogZmlyc3RM
ZXR0ZXJDb250YWluZXIgPSBjdXJyZW50VGV4dENoaWxkLT5wYXJlbnQoKTsKICAgICBSZW5kZXJT
dHlsZSYgcHNldWRvU3R5bGUgPSBzdHlsZUZvckZpcnN0TGV0dGVyKGZpcnN0TGV0dGVyQmxvY2ss
IGZpcnN0TGV0dGVyQ29udGFpbmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmgKaW5kZXggYjg5OTM3NS4uYTI1MjRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmgKQEAgLTE3Miw5ICsxNzIsOSBAQCBwdWJsaWM6CiAKICAgICBHYXBSZWN0cyBzZWxl
Y3Rpb25HYXBSZWN0c0ZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lcik7CiAgICAgTGF5b3V0UmVjdCBsb2dpY2FsTGVmdFNlbGVjdGlvbkdhcChS
ZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBMYXlvdXRQb2ludCYgcm9vdEJsb2NrUGh5c2lj
YWxQb3NpdGlvbiwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0RnJvbVJvb3RCbG9jaywKLSAgICAg
ICAgUmVuZGVyT2JqZWN0KiBzZWxPYmosIExheW91dFVuaXQgbG9naWNhbExlZnQsIExheW91dFVu
aXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBjb25zdCBMb2dpY2FsU2Vs
ZWN0aW9uT2Zmc2V0Q2FjaGVzJiwgY29uc3QgUGFpbnRJbmZvKik7CisgICAgICAgIFJlbmRlckJv
eE1vZGVsT2JqZWN0KiBzZWxPYmosIExheW91dFVuaXQgbG9naWNhbExlZnQsIExheW91dFVuaXQg
bG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBjb25zdCBMb2dpY2FsU2VsZWN0
aW9uT2Zmc2V0Q2FjaGVzJiwgY29uc3QgUGFpbnRJbmZvKik7CiAgICAgTGF5b3V0UmVjdCBsb2dp
Y2FsUmlnaHRTZWxlY3Rpb25HYXAoUmVuZGVyQmxvY2smIHJvb3RCbG9jaywgY29uc3QgTGF5b3V0
UG9pbnQmIHJvb3RCbG9ja1BoeXNpY2FsUG9zaXRpb24sIGNvbnN0IExheW91dFNpemUmIG9mZnNl
dEZyb21Sb290QmxvY2ssCi0gICAgICAgIFJlbmRlck9iamVjdCogc2VsT2JqLCBMYXlvdXRVbml0
IGxvZ2ljYWxSaWdodCwgTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxI
ZWlnaHQsIGNvbnN0IExvZ2ljYWxTZWxlY3Rpb25PZmZzZXRDYWNoZXMmLCBjb25zdCBQYWludElu
Zm8qKTsKKyAgICAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIHNlbE9iaiwgTGF5b3V0VW5pdCBs
b2dpY2FsUmlnaHQsIExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVp
Z2h0LCBjb25zdCBMb2dpY2FsU2VsZWN0aW9uT2Zmc2V0Q2FjaGVzJiwgY29uc3QgUGFpbnRJbmZv
Kik7CiAgICAgdm9pZCBnZXRTZWxlY3Rpb25HYXBJbmZvKFNlbGVjdGlvblN0YXRlLCBib29sJiBs
ZWZ0R2FwLCBib29sJiByaWdodEdhcCk7CiAgICAgUmVuZGVyQmxvY2sqIGJsb2NrQmVmb3JlV2l0
aGluU2VsZWN0aW9uUm9vdChMYXlvdXRTaXplJiBvZmZzZXQpIGNvbnN0OwogCkBAIC00MjEsOCAr
NDIxLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGluc2VydEludG9UcmFja2VkUmVuZGVyZXJNYXBz
KFJlbmRlckJveCYgZGVzY2VuZGFudCwgVHJhY2tlZERlc2NlbmRhbnRzTWFwKiYsIFRyYWNrZWRD
b250YWluZXJNYXAqJik7CiAgICAgc3RhdGljIHZvaWQgcmVtb3ZlRnJvbVRyYWNrZWRSZW5kZXJl
ck1hcHMoUmVuZGVyQm94JiBkZXNjZW5kYW50LCBUcmFja2VkRGVzY2VuZGFudHNNYXAqJiwgVHJh
Y2tlZENvbnRhaW5lck1hcComKTsKIAotICAgIHZvaWQgY3JlYXRlRmlyc3RMZXR0ZXJSZW5kZXJl
cihSZW5kZXJPYmplY3QqIGZpcnN0TGV0dGVyQmxvY2ssIFJlbmRlclRleHQqIGN1cnJlbnRUZXh0
Q2hpbGQpOwotICAgIHZvaWQgdXBkYXRlRmlyc3RMZXR0ZXJTdHlsZShSZW5kZXJPYmplY3QqIGZp
cnN0TGV0dGVyQmxvY2ssIFJlbmRlck9iamVjdCogZmlyc3RMZXR0ZXJDb250YWluZXIpOworICAg
IHZvaWQgY3JlYXRlRmlyc3RMZXR0ZXJSZW5kZXJlcihSZW5kZXJFbGVtZW50KiBmaXJzdExldHRl
ckJsb2NrLCBSZW5kZXJUZXh0KiBjdXJyZW50VGV4dENoaWxkKTsKKyAgICB2b2lkIHVwZGF0ZUZp
cnN0TGV0dGVyU3R5bGUoUmVuZGVyRWxlbWVudCogZmlyc3RMZXR0ZXJCbG9jaywgUmVuZGVyT2Jq
ZWN0KiBmaXJzdExldHRlckNvbnRhaW5lcik7CiAKICAgICBOb2RlKiBub2RlRm9ySGl0VGVzdCgp
IGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5k
ZXggODYxZGM0MC4uYmJiZmQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bGVtZW50LmNwcApAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNp
bmNsdWRlICJTVkdSZW5kZXJTdXBwb3J0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNs
dWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUg
PHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1N0YWNrU3RhdHMuaD4KQEAgLTE0MTUs
NCArMTQxNiwxMDMgQEAgdm9pZCBSZW5kZXJFbGVtZW50OjphZGRDb250cm9sU3RhdGVzRm9yUmVu
ZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvLCBDb250cm9sU3QKICAgICBjb250cm9sU3RhdGVz
UmVuZGVyZXJNYXAoKS5hZGQobywgc3RhdGVzKTsKIH0KIAorUmVuZGVyU3R5bGUqIFJlbmRlckVs
ZW1lbnQ6OmdldENhY2hlZFBzZXVkb1N0eWxlKFBzZXVkb0lkIHBzZXVkbywgUmVuZGVyU3R5bGUq
IHBhcmVudFN0eWxlKSBjb25zdAoreworICAgIGlmIChwc2V1ZG8gPCBGSVJTVF9JTlRFUk5BTF9Q
U0VVRE9JRCAmJiAhc3R5bGUoKS5oYXNQc2V1ZG9TdHlsZShwc2V1ZG8pKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKworICAgIFJlbmRlclN0eWxlKiBjYWNoZWRTdHlsZSA9IHN0eWxlKCkuZ2V0
Q2FjaGVkUHNldWRvU3R5bGUocHNldWRvKTsKKyAgICBpZiAoY2FjaGVkU3R5bGUpCisgICAgICAg
IHJldHVybiBjYWNoZWRTdHlsZTsKKworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gcmVzdWx0ID0g
Z2V0VW5jYWNoZWRQc2V1ZG9TdHlsZShQc2V1ZG9TdHlsZVJlcXVlc3QocHNldWRvKSwgcGFyZW50
U3R5bGUpOworICAgIGlmIChyZXN1bHQpCisgICAgICAgIHJldHVybiBzdHlsZSgpLmFkZENhY2hl
ZFBzZXVkb1N0eWxlKHJlc3VsdC5yZWxlYXNlKCkpOworICAgIHJldHVybiBudWxscHRyOworfQor
CitQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBSZW5kZXJFbGVtZW50OjpnZXRVbmNhY2hlZFBzZXVk
b1N0eWxlKGNvbnN0IFBzZXVkb1N0eWxlUmVxdWVzdCYgcHNldWRvU3R5bGVSZXF1ZXN0LCBSZW5k
ZXJTdHlsZSogcGFyZW50U3R5bGUsIFJlbmRlclN0eWxlKiBvd25TdHlsZSkgY29uc3QKK3sKKyAg
ICBpZiAocHNldWRvU3R5bGVSZXF1ZXN0LnBzZXVkb0lkIDwgRklSU1RfSU5URVJOQUxfUFNFVURP
SUQgJiYgIW93blN0eWxlICYmICFzdHlsZSgpLmhhc1BzZXVkb1N0eWxlKHBzZXVkb1N0eWxlUmVx
dWVzdC5wc2V1ZG9JZCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKCFwYXJl
bnRTdHlsZSkgeworICAgICAgICBBU1NFUlQoIW93blN0eWxlKTsKKyAgICAgICAgcGFyZW50U3R5
bGUgPSAmc3R5bGUoKTsKKyAgICB9CisKKyAgICBpZiAoaXNBbm9ueW1vdXMoKSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAocHNldWRvU3R5bGVSZXF1ZXN0LnBzZXVkb0lkID09
IEZJUlNUX0xJTkVfSU5IRVJJVEVEKSB7CisgICAgICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gcmVz
dWx0ID0gZG9jdW1lbnQoKS5lbnN1cmVTdHlsZVJlc29sdmVyKCkuc3R5bGVGb3JFbGVtZW50KGVs
ZW1lbnQoKSwgcGFyZW50U3R5bGUsIERpc2FsbG93U3R5bGVTaGFyaW5nKTsKKyAgICAgICAgcmVz
dWx0LT5zZXRTdHlsZVR5cGUoRklSU1RfTElORV9JTkhFUklURUQpOworICAgICAgICByZXR1cm4g
cmVzdWx0LnJlbGVhc2UoKTsKKyAgICB9CisKKyAgICByZXR1cm4gZG9jdW1lbnQoKS5lbnN1cmVT
dHlsZVJlc29sdmVyKCkucHNldWRvU3R5bGVGb3JFbGVtZW50KGVsZW1lbnQoKSwgcHNldWRvU3R5
bGVSZXF1ZXN0LCBwYXJlbnRTdHlsZSk7Cit9CisKK0NvbG9yIFJlbmRlckVsZW1lbnQ6OnNlbGVj
dGlvbkNvbG9yKGludCBjb2xvclByb3BlcnR5KSBjb25zdAoreworICAgIC8vIElmIHRoZSBlbGVt
ZW50IGlzIHVuc2VsZWN0YWJsZSwgb3Igd2UgYXJlIG9ubHkgcGFpbnRpbmcgdGhlIHNlbGVjdGlv
biwKKyAgICAvLyBkb24ndCBvdmVycmlkZSB0aGUgZm9yZWdyb3VuZCBjb2xvciB3aXRoIHRoZSBz
ZWxlY3Rpb24gZm9yZWdyb3VuZCBjb2xvci4KKyAgICBpZiAoc3R5bGUoKS51c2VyU2VsZWN0KCkg
PT0gU0VMRUNUX05PTkUKKyAgICAgICAgfHwgKHZpZXcoKS5mcmFtZVZpZXcoKS5wYWludEJlaGF2
aW9yKCkgJiBQYWludEJlaGF2aW9yU2VsZWN0aW9uT25seSkpCisgICAgICAgIHJldHVybiBDb2xv
cigpOworCisgICAgaWYgKFJlZlB0cjxSZW5kZXJTdHlsZT4gcHNldWRvU3R5bGUgPSBzZWxlY3Rp
b25Qc2V1ZG9TdHlsZSgpKSB7CisgICAgICAgIENvbG9yIGNvbG9yID0gcHNldWRvU3R5bGUtPnZp
c2l0ZWREZXBlbmRlbnRDb2xvcihjb2xvclByb3BlcnR5KTsKKyAgICAgICAgaWYgKCFjb2xvci5p
c1ZhbGlkKCkpCisgICAgICAgICAgICBjb2xvciA9IHBzZXVkb1N0eWxlLT52aXNpdGVkRGVwZW5k
ZW50Q29sb3IoQ1NTUHJvcGVydHlDb2xvcik7CisgICAgICAgIHJldHVybiBjb2xvcjsKKyAgICB9
CisKKyAgICBpZiAoZnJhbWUoKS5zZWxlY3Rpb24oKS5pc0ZvY3VzZWRBbmRBY3RpdmUoKSkKKyAg
ICAgICAgcmV0dXJuIHRoZW1lKCkuYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCk7Cisg
ICAgcmV0dXJuIHRoZW1lKCkuaW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKTsKK30K
KworUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gUmVuZGVyRWxlbWVudDo6c2VsZWN0aW9uUHNldWRv
U3R5bGUoKSBjb25zdAoreworICAgIGlmIChpc0Fub255bW91cygpKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGlmIChTaGFkb3dSb290KiByb290ID0gZWxlbWVudCgpLT5jb250YWlu
aW5nU2hhZG93Um9vdCgpKSB7CisgICAgICAgIGlmIChyb290LT50eXBlKCkgPT0gU2hhZG93Um9v
dDo6VXNlckFnZW50U2hhZG93Um9vdCkgeworICAgICAgICAgICAgaWYgKEVsZW1lbnQqIHNoYWRv
d0hvc3QgPSBlbGVtZW50KCktPnNoYWRvd0hvc3QoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
c2hhZG93SG9zdC0+cmVuZGVyZXIoKS0+Z2V0VW5jYWNoZWRQc2V1ZG9TdHlsZShQc2V1ZG9TdHls
ZVJlcXVlc3QoU0VMRUNUSU9OKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZ2V0
VW5jYWNoZWRQc2V1ZG9TdHlsZShQc2V1ZG9TdHlsZVJlcXVlc3QoU0VMRUNUSU9OKSk7Cit9CisK
K0NvbG9yIFJlbmRlckVsZW1lbnQ6OnNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHNlbGVjdGlvbkNvbG9yKENTU1Byb3BlcnR5V2Via2l0VGV4dEZpbGxDb2xv
cik7Cit9CisKK0NvbG9yIFJlbmRlckVsZW1lbnQ6OnNlbGVjdGlvbkVtcGhhc2lzTWFya0NvbG9y
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc2VsZWN0aW9uQ29sb3IoQ1NTUHJvcGVydHlXZWJraXRU
ZXh0RW1waGFzaXNDb2xvcik7Cit9CisKK0NvbG9yIFJlbmRlckVsZW1lbnQ6OnNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcigpIGNvbnN0Cit7CisgICAgaWYgKHN0eWxlKCkudXNlclNlbGVjdCgpID09
IFNFTEVDVF9OT05FKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsKKworICAgIGlmIChmcmFtZSgp
LnNlbGVjdGlvbigpLnNob3VsZFNob3dCbG9ja0N1cnNvcigpICYmIGZyYW1lKCkuc2VsZWN0aW9u
KCkuaXNDYXJldCgpKQorICAgICAgICByZXR1cm4gc3R5bGUoKS52aXNpdGVkRGVwZW5kZW50Q29s
b3IoQ1NTUHJvcGVydHlDb2xvcikuYmxlbmRXaXRoV2hpdGUoKTsKKworICAgIFJlZlB0cjxSZW5k
ZXJTdHlsZT4gcHNldWRvU3R5bGUgPSBzZWxlY3Rpb25Qc2V1ZG9TdHlsZSgpOworICAgIGlmIChw
c2V1ZG9TdHlsZSAmJiBwc2V1ZG9TdHlsZS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3Bl
cnR5QmFja2dyb3VuZENvbG9yKS5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBwc2V1ZG9TdHls
ZS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKS5ibGVu
ZFdpdGhXaGl0ZSgpOworCisgICAgaWYgKGZyYW1lKCkuc2VsZWN0aW9uKCkuaXNGb2N1c2VkQW5k
QWN0aXZlKCkpCisgICAgICAgIHJldHVybiB0aGVtZSgpLmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcigpOworICAgIHJldHVybiB0aGVtZSgpLmluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5o
CmluZGV4IDNjMGM4MWQuLjM3YzdmYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuaApAQCAtNDcsNiArNDcsMTEgQEAgcHVibGljOgogICAgIC8vIENhbGxlZCB0byB1
cGRhdGUgYSBzdHlsZSB0aGF0IGlzIGFsbG93ZWQgdG8gdHJpZ2dlciBhbmltYXRpb25zLgogICAg
IHZvaWQgc2V0QW5pbWF0YWJsZVN0eWxlKFBhc3NSZWY8UmVuZGVyU3R5bGU+KTsKIAorICAgIC8v
IFRoZSBwc2V1ZG8gZWxlbWVudCBzdHlsZSBjYW4gYmUgY2FjaGVkIG9yIHVuY2FjaGVkLiAgVXNl
IHRoZSBjYWNoZWQgbWV0aG9kIGlmIHRoZSBwc2V1ZG8gZWxlbWVudCBkb2Vzbid0IHJlc3BlY3QK
KyAgICAvLyBhbnkgcHNldWRvIGNsYXNzZXMgKGFuZCB0aGVyZWZvcmUgaGFzIG5vIGNvbmNlcHQg
b2YgY2hhbmdpbmcgc3RhdGUpLgorICAgIFJlbmRlclN0eWxlKiBnZXRDYWNoZWRQc2V1ZG9TdHls
ZShQc2V1ZG9JZCwgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlID0gMCkgY29uc3Q7CisgICAgUGFz
c1JlZlB0cjxSZW5kZXJTdHlsZT4gZ2V0VW5jYWNoZWRQc2V1ZG9TdHlsZShjb25zdCBQc2V1ZG9T
dHlsZVJlcXVlc3QmLCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUgPSAwLCBSZW5kZXJTdHlsZSog
b3duU3R5bGUgPSAwKSBjb25zdDsKKwogICAgIC8vIFRoaXMgaXMgbnVsbCBmb3IgYW5vbnltb3Vz
IHJlbmRlcmVycy4KICAgICBFbGVtZW50KiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gZG93bmNh
c3Q8RWxlbWVudD4oUmVuZGVyT2JqZWN0Ojpub2RlKCkpOyB9CiAgICAgRWxlbWVudCogbm9uUHNl
dWRvRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PEVsZW1lbnQ+KFJlbmRlck9iamVj
dDo6bm9uUHNldWRvTm9kZSgpKTsgfQpAQCAtNTksNiArNjQsMTQgQEAgcHVibGljOgogCiAgICAg
Ym9vbCBjYW5Db250YWluRml4ZWRQb3NpdGlvbk9iamVjdHMoKSBjb25zdDsKIAorICAgIENvbG9y
IHNlbGVjdGlvbkNvbG9yKGludCBjb2xvclByb3BlcnR5KSBjb25zdDsKKyAgICBQYXNzUmVmUHRy
PFJlbmRlclN0eWxlPiBzZWxlY3Rpb25Qc2V1ZG9TdHlsZSgpIGNvbnN0OworCisgICAgLy8gT2J0
YWlucyB0aGUgc2VsZWN0aW9uIGNvbG9ycyB0aGF0IHNob3VsZCBiZSB1c2VkIHdoZW4gcGFpbnRp
bmcgYSBzZWxlY3Rpb24uCisgICAgQ29sb3Igc2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29u
c3Q7CisgICAgQ29sb3Igc2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3Q7CisgICAgQ29s
b3Igc2VsZWN0aW9uRW1waGFzaXNNYXJrQ29sb3IoKSBjb25zdDsKKwogICAgIC8vIEZJWE1FOiBN
YWtlIHRoZXNlIHN0YW5kYWxvbmUgYW5kIG1vdmUgdG8gcmVsZXZhbnQgZmlsZXMuCiAgICAgYm9v
bCBpc1JlbmRlckxheWVyTW9kZWxPYmplY3QoKSBjb25zdDsKICAgICBib29sIGlzQm94TW9kZWxP
YmplY3QoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAK
aW5kZXggNDgyMDEzMy4uNTQ2ODQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAKQEAgLTYyLDcgKzYyLDYgQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAj
aW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5j
bHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRl
ICJUcmFuc2Zvcm1TdGF0ZS5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCkBAIC0xNTYyLDY4
ICsxNTYxLDYgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnNob3dSZW5kZXJTdWJUcmVlQW5kTWFyayhj
b25zdCBSZW5kZXJPYmplY3QqIG1hcmtlZE9iamVjdCwgaW4KIAogI2VuZGlmIC8vIE5ERUJVRwog
Ci1Db2xvciBSZW5kZXJPYmplY3Q6OnNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0Ci17
Ci0gICAgQ29sb3IgY29sb3I7Ci0gICAgaWYgKHN0eWxlKCkudXNlclNlbGVjdCgpICE9IFNFTEVD
VF9OT05FKSB7Ci0gICAgICAgIGlmIChmcmFtZSgpLnNlbGVjdGlvbigpLnNob3VsZFNob3dCbG9j
a0N1cnNvcigpICYmIGZyYW1lKCkuc2VsZWN0aW9uKCkuaXNDYXJldCgpKQotICAgICAgICAgICAg
Y29sb3IgPSBzdHlsZSgpLnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUNvbG9yKS5i
bGVuZFdpdGhXaGl0ZSgpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIFJlZlB0cjxSZW5k
ZXJTdHlsZT4gcHNldWRvU3R5bGUgPSBzZWxlY3Rpb25Qc2V1ZG9TdHlsZSgpOwotICAgICAgICAg
ICAgaWYgKHBzZXVkb1N0eWxlICYmIHBzZXVkb1N0eWxlLT52aXNpdGVkRGVwZW5kZW50Q29sb3Io
Q1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLmlzVmFsaWQoKSkKLSAgICAgICAgICAgICAgICBj
b2xvciA9IHBzZXVkb1N0eWxlLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNr
Z3JvdW5kQ29sb3IpLmJsZW5kV2l0aFdoaXRlKCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgY29sb3IgPSBmcmFtZSgpLnNlbGVjdGlvbigpLmlzRm9jdXNlZEFuZEFjdGl2ZSgp
ID8gdGhlbWUoKS5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSA6IHRoZW1lKCkuaW5h
Y3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IHJldHVybiBjb2xvcjsKLX0KLQotQ29sb3IgUmVuZGVyT2JqZWN0OjpzZWxlY3Rpb25Db2xvcihp
bnQgY29sb3JQcm9wZXJ0eSkgY29uc3QKLXsKLSAgICBDb2xvciBjb2xvcjsKLSAgICAvLyBJZiB0
aGUgZWxlbWVudCBpcyB1bnNlbGVjdGFibGUsIG9yIHdlIGFyZSBvbmx5IHBhaW50aW5nIHRoZSBz
ZWxlY3Rpb24sCi0gICAgLy8gZG9uJ3Qgb3ZlcnJpZGUgdGhlIGZvcmVncm91bmQgY29sb3Igd2l0
aCB0aGUgc2VsZWN0aW9uIGZvcmVncm91bmQgY29sb3IuCi0gICAgaWYgKHN0eWxlKCkudXNlclNl
bGVjdCgpID09IFNFTEVDVF9OT05FCi0gICAgICAgIHx8ICh2aWV3KCkuZnJhbWVWaWV3KCkucGFp
bnRCZWhhdmlvcigpICYgUGFpbnRCZWhhdmlvclNlbGVjdGlvbk9ubHkpKQotICAgICAgICByZXR1
cm4gY29sb3I7Ci0KLSAgICBpZiAoUmVmUHRyPFJlbmRlclN0eWxlPiBwc2V1ZG9TdHlsZSA9IHNl
bGVjdGlvblBzZXVkb1N0eWxlKCkpIHsKLSAgICAgICAgY29sb3IgPSBwc2V1ZG9TdHlsZS0+dmlz
aXRlZERlcGVuZGVudENvbG9yKGNvbG9yUHJvcGVydHkpOwotICAgICAgICBpZiAoIWNvbG9yLmlz
VmFsaWQoKSkKLSAgICAgICAgICAgIGNvbG9yID0gcHNldWRvU3R5bGUtPnZpc2l0ZWREZXBlbmRl
bnRDb2xvcihDU1NQcm9wZXJ0eUNvbG9yKTsKLSAgICB9IGVsc2UKLSAgICAgICAgY29sb3IgPSBm
cmFtZSgpLnNlbGVjdGlvbigpLmlzRm9jdXNlZEFuZEFjdGl2ZSgpID8gdGhlbWUoKS5hY3RpdmVT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSA6IHRoZW1lKCkuaW5hY3RpdmVTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoKTsKLQotICAgIHJldHVybiBjb2xvcjsKLX0KLQotUGFzc1JlZlB0cjxSZW5k
ZXJTdHlsZT4gUmVuZGVyT2JqZWN0OjpzZWxlY3Rpb25Qc2V1ZG9TdHlsZSgpIGNvbnN0Ci17Ci0g
ICAgaWYgKGlzQW5vbnltb3VzKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgaWYg
KFNoYWRvd1Jvb3QqIHJvb3QgPSBtX25vZGUuY29udGFpbmluZ1NoYWRvd1Jvb3QoKSkgewotICAg
ICAgICBpZiAocm9vdC0+dHlwZSgpID09IFNoYWRvd1Jvb3Q6OlVzZXJBZ2VudFNoYWRvd1Jvb3Qp
IHsKLSAgICAgICAgICAgIGlmIChFbGVtZW50KiBzaGFkb3dIb3N0ID0gbV9ub2RlLnNoYWRvd0hv
c3QoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gc2hhZG93SG9zdC0+cmVuZGVyZXIoKS0+Z2V0
VW5jYWNoZWRQc2V1ZG9TdHlsZShQc2V1ZG9TdHlsZVJlcXVlc3QoU0VMRUNUSU9OKSk7Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gZ2V0VW5jYWNoZWRQc2V1ZG9TdHlsZShQc2V1ZG9T
dHlsZVJlcXVlc3QoU0VMRUNUSU9OKSk7Ci19Ci0KLUNvbG9yIFJlbmRlck9iamVjdDo6c2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QKLXsKLSAgICByZXR1cm4gc2VsZWN0aW9uQ29sb3Io
Q1NTUHJvcGVydHlXZWJraXRUZXh0RmlsbENvbG9yKTsKLX0KLQotQ29sb3IgUmVuZGVyT2JqZWN0
OjpzZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHNlbGVj
dGlvbkNvbG9yKENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzQ29sb3IpOwotfQotCiBTZWxl
Y3Rpb25TdWJ0cmVlUm9vdCYgUmVuZGVyT2JqZWN0OjpzZWxlY3Rpb25Sb290KCkgY29uc3QKIHsK
ICAgICBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0gZmxvd1RocmVhZENvbnRhaW5pbmdC
bG9jaygpOwpAQCAtMjE1MCw0OCArMjA4Nyw2IEBAIGludCBSZW5kZXJPYmplY3Q6OmlubmVyTGlu
ZUhlaWdodCgpIGNvbnN0CiAgICAgcmV0dXJuIHN0eWxlKCkuY29tcHV0ZWRMaW5lSGVpZ2h0KCk7
CiB9CiAKLVJlbmRlclN0eWxlKiBSZW5kZXJPYmplY3Q6OmdldENhY2hlZFBzZXVkb1N0eWxlKFBz
ZXVkb0lkIHBzZXVkbywgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlKSBjb25zdAotewotICAgIGlm
IChwc2V1ZG8gPCBGSVJTVF9JTlRFUk5BTF9QU0VVRE9JRCAmJiAhc3R5bGUoKS5oYXNQc2V1ZG9T
dHlsZShwc2V1ZG8pKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIFJlbmRlclN0eWxlKiBjYWNo
ZWRTdHlsZSA9IHN0eWxlKCkuZ2V0Q2FjaGVkUHNldWRvU3R5bGUocHNldWRvKTsKLSAgICBpZiAo
Y2FjaGVkU3R5bGUpCi0gICAgICAgIHJldHVybiBjYWNoZWRTdHlsZTsKLSAgICAKLSAgICBSZWZQ
dHI8UmVuZGVyU3R5bGU+IHJlc3VsdCA9IGdldFVuY2FjaGVkUHNldWRvU3R5bGUoUHNldWRvU3R5
bGVSZXF1ZXN0KHBzZXVkbyksIHBhcmVudFN0eWxlKTsKLSAgICBpZiAocmVzdWx0KQotICAgICAg
ICByZXR1cm4gc3R5bGUoKS5hZGRDYWNoZWRQc2V1ZG9TdHlsZShyZXN1bHQucmVsZWFzZSgpKTsK
LSAgICByZXR1cm4gMDsKLX0KLQotUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gUmVuZGVyT2JqZWN0
OjpnZXRVbmNhY2hlZFBzZXVkb1N0eWxlKGNvbnN0IFBzZXVkb1N0eWxlUmVxdWVzdCYgcHNldWRv
U3R5bGVSZXF1ZXN0LCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUsIFJlbmRlclN0eWxlKiBvd25T
dHlsZSkgY29uc3QKLXsKLSAgICBpZiAocHNldWRvU3R5bGVSZXF1ZXN0LnBzZXVkb0lkIDwgRklS
U1RfSU5URVJOQUxfUFNFVURPSUQgJiYgIW93blN0eWxlICYmICFzdHlsZSgpLmhhc1BzZXVkb1N0
eWxlKHBzZXVkb1N0eWxlUmVxdWVzdC5wc2V1ZG9JZCkpCi0gICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIAotICAgIGlmICghcGFyZW50U3R5bGUpIHsKLSAgICAgICAgQVNTRVJUKCFvd25TdHls
ZSk7Ci0gICAgICAgIHBhcmVudFN0eWxlID0gJnN0eWxlKCk7Ci0gICAgfQotCi0gICAgLy8gRklY
TUU6IFRoaXMgImZpbmQgbmVhcmVzdCBlbGVtZW50IHBhcmVudCIgc2hvdWxkIGJlIGEgaGVscGVy
IGZ1bmN0aW9uLgotICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7Ci0gICAgd2hpbGUgKG5v
ZGUgJiYgIWlzPEVsZW1lbnQ+KCpub2RlKSkKLSAgICAgICAgbm9kZSA9IG5vZGUtPnBhcmVudE5v
ZGUoKTsKLSAgICBpZiAoIW5vZGUpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIEVsZW1l
bnQmIGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSk7Ci0KLSAgICBpZiAocHNldWRv
U3R5bGVSZXF1ZXN0LnBzZXVkb0lkID09IEZJUlNUX0xJTkVfSU5IRVJJVEVEKSB7Ci0gICAgICAg
IFJlZlB0cjxSZW5kZXJTdHlsZT4gcmVzdWx0ID0gZG9jdW1lbnQoKS5lbnN1cmVTdHlsZVJlc29s
dmVyKCkuc3R5bGVGb3JFbGVtZW50KCZlbGVtZW50LCBwYXJlbnRTdHlsZSwgRGlzYWxsb3dTdHls
ZVNoYXJpbmcpOwotICAgICAgICByZXN1bHQtPnNldFN0eWxlVHlwZShGSVJTVF9MSU5FX0lOSEVS
SVRFRCk7Ci0gICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOwotICAgIH0KLQotICAgIHJl
dHVybiBkb2N1bWVudCgpLmVuc3VyZVN0eWxlUmVzb2x2ZXIoKS5wc2V1ZG9TdHlsZUZvckVsZW1l
bnQoJmVsZW1lbnQsIHBzZXVkb1N0eWxlUmVxdWVzdCwgcGFyZW50U3R5bGUpOwotfQotCiBzdGF0
aWMgQ29sb3IgZGVjb3JhdGlvbkNvbG9yKFJlbmRlclN0eWxlKiBzdHlsZSkKIHsKICAgICBDb2xv
ciByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggYzdm
ODQ4Ni4uYWQ0MjQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApA
QCAtNTU0LDExICs1NTQsNiBAQCBwdWJsaWM6CiAKICAgICBpbmxpbmUgYm9vbCBwcmVzZXJ2ZXNO
ZXdsaW5lKCkgY29uc3Q7CiAKLSAgICAvLyBUaGUgcHNldWRvIGVsZW1lbnQgc3R5bGUgY2FuIGJl
IGNhY2hlZCBvciB1bmNhY2hlZC4gIFVzZSB0aGUgY2FjaGVkIG1ldGhvZCBpZiB0aGUgcHNldWRv
IGVsZW1lbnQgZG9lc24ndCByZXNwZWN0Ci0gICAgLy8gYW55IHBzZXVkbyBjbGFzc2VzIChhbmQg
dGhlcmVmb3JlIGhhcyBubyBjb25jZXB0IG9mIGNoYW5naW5nIHN0YXRlKS4KLSAgICBSZW5kZXJT
dHlsZSogZ2V0Q2FjaGVkUHNldWRvU3R5bGUoUHNldWRvSWQsIFJlbmRlclN0eWxlKiBwYXJlbnRT
dHlsZSA9IDApIGNvbnN0OwotICAgIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IGdldFVuY2FjaGVk
UHNldWRvU3R5bGUoY29uc3QgUHNldWRvU3R5bGVSZXF1ZXN0JiwgUmVuZGVyU3R5bGUqIHBhcmVu
dFN0eWxlID0gMCwgUmVuZGVyU3R5bGUqIG93blN0eWxlID0gMCkgY29uc3Q7Ci0gICAgCiAgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZURyYWdTdGF0ZShib29sIGRyYWdPbik7CiAKICAgICBSZW5kZXJW
aWV3JiB2aWV3KCkgY29uc3QgeyByZXR1cm4gKmRvY3VtZW50KCkucmVuZGVyVmlldygpOyB9OwpA
QCAtNzgyLDExICs3NzcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNhbkJlU2VsZWN0
aW9uTGVhZigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBoYXNTZWxlY3RlZENo
aWxkcmVuKCkgY29uc3QgeyByZXR1cm4gc2VsZWN0aW9uU3RhdGUoKSAhPSBTZWxlY3Rpb25Ob25l
OyB9CiAKLSAgICAvLyBPYnRhaW5zIHRoZSBzZWxlY3Rpb24gY29sb3JzIHRoYXQgc2hvdWxkIGJl
IHVzZWQgd2hlbiBwYWludGluZyBhIHNlbGVjdGlvbi4KLSAgICBDb2xvciBzZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoKSBjb25zdDsKLSAgICBDb2xvciBzZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Io
KSBjb25zdDsKLSAgICBDb2xvciBzZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvcigpIGNvbnN0Owot
CiAgICAgLy8gV2hldGhlciBvciBub3QgYSBnaXZlbiBibG9jayBuZWVkcyB0byBwYWludCBzZWxl
Y3Rpb24gZ2Fwcy4KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGFpbnRTZWxlY3Rpb25HYXBzKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIApAQCAtODgzLDkgKzg3Myw2IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCByZW1vdmVGcm9tUmVuZGVyRmxvd1RocmVhZCgpOwogICAgIHZvaWQgcmVtb3ZlRnJv
bVJlbmRlckZsb3dUaHJlYWRJbmNsdWRpbmdEZXNjZW5kYW50cyhib29sKTsKIAotICAgIENvbG9y
IHNlbGVjdGlvbkNvbG9yKGludCBjb2xvclByb3BlcnR5KSBjb25zdDsKLSAgICBQYXNzUmVmUHRy
PFJlbmRlclN0eWxlPiBzZWxlY3Rpb25Qc2V1ZG9TdHlsZSgpIGNvbnN0OwotCiAgICAgTm9kZSog
Z2VuZXJhdGluZ1BzZXVkb0hvc3RFbGVtZW50KCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wg
aXNXQlIoKSBjb25zdCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gZmFsc2U7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCmluZGV4IDM5NGMyYjguLjZjNzE4ZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaApAQCAtNDgsNiArNDgsMTEgQEAgcHVi
bGljOgogCiAgICAgUmVuZGVyU3R5bGUmIHN0eWxlKCkgY29uc3Q7CiAgICAgUmVuZGVyU3R5bGUm
IGZpcnN0TGluZVN0eWxlKCkgY29uc3Q7CisgICAgUmVuZGVyU3R5bGUqIGdldENhY2hlZFBzZXVk
b1N0eWxlKFBzZXVkb0lkLCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUgPSBudWxscHRyKSBjb25z
dDsKKworICAgIENvbG9yIHNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0OworICAgIENv
bG9yIHNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0OworICAgIENvbG9yIHNlbGVjdGlv
bkVtcGhhc2lzTWFya0NvbG9yKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIFN0cmluZyBvcmlnaW5h
bFRleHQoKSBjb25zdDsKIApAQCAtMjQ3LDYgKzI1MiwyNiBAQCBpbmxpbmUgUmVuZGVyU3R5bGUm
IFJlbmRlclRleHQ6OmZpcnN0TGluZVN0eWxlKCkgY29uc3QKICAgICByZXR1cm4gcGFyZW50KCkt
PmZpcnN0TGluZVN0eWxlKCk7CiB9CiAKK2lubGluZSBSZW5kZXJTdHlsZSogUmVuZGVyVGV4dDo6
Z2V0Q2FjaGVkUHNldWRvU3R5bGUoUHNldWRvSWQgcHNldWRvSWQsIFJlbmRlclN0eWxlKiBwYXJl
bnRTdHlsZSkgY29uc3QKK3sKKyAgICByZXR1cm4gcGFyZW50KCktPmdldENhY2hlZFBzZXVkb1N0
eWxlKHBzZXVkb0lkLCBwYXJlbnRTdHlsZSk7Cit9CisKK2lubGluZSBDb2xvciBSZW5kZXJUZXh0
OjpzZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAoreworICAgIHJldHVybiBwYXJlbnQo
KS0+c2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7Cit9CisKK2lubGluZSBDb2xvciBSZW5kZXJU
ZXh0OjpzZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAoreworICAgIHJldHVybiBwYXJl
bnQoKS0+c2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCk7Cit9CisKK2lubGluZSBDb2xvciBSZW5k
ZXJUZXh0OjpzZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvcigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHBhcmVudCgpLT5zZWxlY3Rpb25FbXBoYXNpc01hcmtDb2xvcigpOworfQorCiB2b2lkIGFwcGx5
VGV4dFRyYW5zZm9ybShjb25zdCBSZW5kZXJTdHlsZSYsIFN0cmluZyYsIFVDaGFyKTsKIHZvaWQg
bWFrZUNhcGl0YWxpemVkKFN0cmluZyosIFVDaGFyIHByZXZpb3VzKTsKICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwCmluZGV4IDA3
MGYxZjcuLmM5NDQ1N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdJbmxpbmVUZXh0Qm94LmNwcApAQCAtMTg5LDcgKzE4OSw3IEBAIHZvaWQgU1ZHSW5saW5lVGV4
dEJveDo6cGFpbnRTZWxlY3Rpb25CYWNrZ3JvdW5kKFBhaW50SW5mbyYgcGFpbnRJbmZvKQogICAg
IGlmIChyZW5kZXJlcigpLnN0eWxlKCkudmlzaWJpbGl0eSgpICE9IFZJU0lCTEUpCiAgICAgICAg
IHJldHVybjsKIAotICAgIFJlbmRlck9iamVjdCYgcGFyZW50UmVuZGVyZXIgPSBwYXJlbnQoKS0+
cmVuZGVyZXIoKTsKKyAgICBhdXRvJiBwYXJlbnRSZW5kZXJlciA9IHBhcmVudCgpLT5yZW5kZXJl
cigpOwogICAgIEFTU0VSVCghcGFyZW50UmVuZGVyZXIuZG9jdW1lbnQoKS5wcmludGluZygpKTsK
IAogICAgIC8vIERldGVybWluZSB3aGV0aGVyIG9yIG5vdCB3ZSdyZSBzZWxlY3RlZC4KQEAgLTI0
OSw3ICsyNDksNyBAQCB2b2lkIFNWR0lubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZQogICAgIC8vIE5vdGU6IFdlJ3Jl
IGV4cGxpY2l0ZWx5IG5vdCBzdXBwb3J0aW5nIGNvbXBvc2l0aW9uICYgY3VzdG9tIHVuZGVybGlu
ZXMgYW5kIGN1c3RvbSBoaWdobGlnaHRlcnMgLSB1bmxpa2UgSW5saW5lVGV4dEJveC4KICAgICAv
LyBJZiB3ZSBldmVyIG5lZWQgdGhhdCBmb3IgU1ZHLCBpdCdzIHZlcnkgZWFzeSB0byByZWZhY3Rv
ciBhbmQgcmV1c2UgdGhlIGNvZGUuCiAKLSAgICBSZW5kZXJPYmplY3QmIHBhcmVudFJlbmRlcmVy
ID0gcGFyZW50KCktPnJlbmRlcmVyKCk7CisgICAgYXV0byYgcGFyZW50UmVuZGVyZXIgPSBwYXJl
bnQoKS0+cmVuZGVyZXIoKTsKIAogICAgIGJvb2wgcGFpbnRTZWxlY3RlZFRleHRPbmx5ID0gcGFp
bnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VTZWxlY3Rpb247CiAgICAgYm9vbCBoYXNTZWxlY3Rp
b24gPSAhcGFyZW50UmVuZGVyZXIuZG9jdW1lbnQoKS5wcmludGluZygpICYmIHNlbGVjdGlvblN0
YXRlKCkgIT0gUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25Ob25lOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>