<?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>160123</bug_id>
          
          <creation_ts>2016-07-23 12:47:04 -0700</creation_ts>
          <short_desc>table*BorderAdjoiningCell and borderAdjoiningCell* should take reference instead of RenderTableCell*.</short_desc>
          <delta_ts>2016-07-23 18:40:20 -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>Layout and Rendering</component>
          <version>WebKit 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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1213936</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2016-07-23 12:47:04 -0700</bug_when>
    <thetext>SSIA.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213937</commentid>
    <comment_count>1</comment_count>
      <attachid>284421</attachid>
    <who name="alan">zalan</who>
    <bug_when>2016-07-23 12:50:37 -0700</bug_when>
    <thetext>Created attachment 284421
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213992</commentid>
    <comment_count>2</comment_count>
      <attachid>284421</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-23 18:40:15 -0700</bug_when>
    <thetext>Comment on attachment 284421
Patch

Clearing flags on attachment: 284421

Committed r203657: &lt;http://trac.webkit.org/changeset/203657&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213993</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-23 18:40:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284421</attachid>
            <date>2016-07-23 12:50:37 -0700</date>
            <delta_ts>2016-07-23 18:40:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160123-20160723124933.patch</filename>
            <type>text/plain</type>
            <size>28520</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWRmNDczMDFjZGJmNTBl
ODE2ZDcwYzY4MmM5YzMxZDJjZmI1NTQ5Yi4uMDdmZjU3ODViZjNhMjQ3MjhmOGIyNWRiY2VkMzdl
YzljOWExY2FiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE2LTA3LTIzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgdGFibGUqQm9yZGVyQWRqb2lu
aW5nQ2VsbCBhbmQgYm9yZGVyQWRqb2luaW5nQ2VsbCogc2hvdWxkIHRha2UgcmVmZXJlbmNlIGlu
c3RlYWQgb2YgUmVuZGVyVGFibGVDZWxsKi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2MDEyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5LgorCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRh
YmxlOjp0YWJsZVN0YXJ0Qm9yZGVyQWRqb2luaW5nQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUYWJsZTo6dGFibGVFbmRCb3JkZXJBZGpvaW5pbmdDZWxsKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGFibGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6Y29tcHV0ZUNvbGxhcHNl
ZFN0YXJ0Qm9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6Y29tcHV0
ZUNvbGxhcHNlZEVuZEJvcmRlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2Vs
bC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpib3JkZXJBZGpvaW5pbmdD
ZWxsQmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6Ym9yZGVyQWRq
b2luaW5nQ2VsbEFmdGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDb2w6OmJvcmRlckFkam9pbmluZ0NlbGxT
dGFydEJvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNvbDo6Ym9yZGVyQWRq
b2luaW5nQ2VsbEVuZEJvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNvbDo6
Ym9yZGVyQWRqb2luaW5nQ2VsbEJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJs
ZUNvbDo6Ym9yZGVyQWRqb2luaW5nQ2VsbEFmdGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGFibGVDb2wuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVSb3c6OmJvcmRlckFkam9pbmluZ1N0YXJ0Q2Vs
bCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVJvdzo6Ym9yZGVyQWRqb2luaW5nRW5k
Q2VsbCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93Lmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUYWJsZVNlY3Rpb246OmJvcmRlckFkam9pbmluZ1N0YXJ0Q2VsbCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmJvcmRlckFkam9pbmluZ0VuZENlbGwpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaDoKKwogMjAxNi0wNy0yMSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFBhcmFtZXRlciB0byBEb2N1bWVu
dC5jcmVhdGVFdmVudCgpIHNob3VsZCBiZSBtYW5kYXRvcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGUuY3BwCmluZGV4IGQ4YThkNmVmYjk0NjlmNDA2ZThjYzU3OTVmZTQ0MTA1
M2Q5OTI5OTguLmY2Mzc2MjMxZDRkYTQzYWQxMGUwOGJjNDEwMWJjMmNmMGU4YWI4N2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcApAQCAtMTU2MiwxOSArMTU2Miwx
OSBAQCBSZW5kZXJUYWJsZSogUmVuZGVyVGFibGU6OmNyZWF0ZUFub255bW91c1dpdGhQYXJlbnRS
ZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqCiAgICAgcmV0dXJuIHRhYmxlOwogfQogCi1jb25z
dCBCb3JkZXJWYWx1ZSYgUmVuZGVyVGFibGU6OnRhYmxlU3RhcnRCb3JkZXJBZGpvaW5pbmdDZWxs
KGNvbnN0IFJlbmRlclRhYmxlQ2VsbCogY2VsbCkgY29uc3QKK2NvbnN0IEJvcmRlclZhbHVlJiBS
ZW5kZXJUYWJsZTo6dGFibGVTdGFydEJvcmRlckFkam9pbmluZ0NlbGwoY29uc3QgUmVuZGVyVGFi
bGVDZWxsJiBjZWxsKSBjb25zdAogewotICAgIEFTU0VSVChjZWxsLT5pc0ZpcnN0T3JMYXN0Q2Vs
bEluUm93KCkpOwotICAgIGlmIChoYXNTYW1lRGlyZWN0aW9uQXMoY2VsbC0+cm93KCkpKQorICAg
IEFTU0VSVChjZWxsLmlzRmlyc3RPckxhc3RDZWxsSW5Sb3coKSk7CisgICAgaWYgKGhhc1NhbWVE
aXJlY3Rpb25BcyhjZWxsLnJvdygpKSkKICAgICAgICAgcmV0dXJuIHN0eWxlKCkuYm9yZGVyU3Rh
cnQoKTsKIAogICAgIHJldHVybiBzdHlsZSgpLmJvcmRlckVuZCgpOwogfQogCi1jb25zdCBCb3Jk
ZXJWYWx1ZSYgUmVuZGVyVGFibGU6OnRhYmxlRW5kQm9yZGVyQWRqb2luaW5nQ2VsbChjb25zdCBS
ZW5kZXJUYWJsZUNlbGwqIGNlbGwpIGNvbnN0Citjb25zdCBCb3JkZXJWYWx1ZSYgUmVuZGVyVGFi
bGU6OnRhYmxlRW5kQm9yZGVyQWRqb2luaW5nQ2VsbChjb25zdCBSZW5kZXJUYWJsZUNlbGwmIGNl
bGwpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGNlbGwtPmlzRmlyc3RPckxhc3RDZWxsSW5Sb3coKSk7
Ci0gICAgaWYgKGhhc1NhbWVEaXJlY3Rpb25BcyhjZWxsLT5yb3coKSkpCisgICAgQVNTRVJUKGNl
bGwuaXNGaXJzdE9yTGFzdENlbGxJblJvdygpKTsKKyAgICBpZiAoaGFzU2FtZURpcmVjdGlvbkFz
KGNlbGwucm93KCkpKQogICAgICAgICByZXR1cm4gc3R5bGUoKS5ib3JkZXJFbmQoKTsKIAogICAg
IHJldHVybiBzdHlsZSgpLmJvcmRlclN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZS5oCmluZGV4IDVjYjM0ZjkxZjJhMTNjYWIzNjM4ZjA3MDM2YmQxYWIzMjdjZDdiMWYu
LjQ2ODViZGUwYmFkODVhNzVkZGQ0ZDNkNWE0Yjc4NGM0ZGIxODM1MjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCkBAIC0yNTcsOCArMjU3LDggQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gY3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyKHBhcmVudCk7CiAg
ICAgfQogCi0gICAgY29uc3QgQm9yZGVyVmFsdWUmIHRhYmxlU3RhcnRCb3JkZXJBZGpvaW5pbmdD
ZWxsKGNvbnN0IFJlbmRlclRhYmxlQ2VsbCopIGNvbnN0OwotICAgIGNvbnN0IEJvcmRlclZhbHVl
JiB0YWJsZUVuZEJvcmRlckFkam9pbmluZ0NlbGwoY29uc3QgUmVuZGVyVGFibGVDZWxsKikgY29u
c3Q7CisgICAgY29uc3QgQm9yZGVyVmFsdWUmIHRhYmxlU3RhcnRCb3JkZXJBZGpvaW5pbmdDZWxs
KGNvbnN0IFJlbmRlclRhYmxlQ2VsbCYpIGNvbnN0OworICAgIGNvbnN0IEJvcmRlclZhbHVlJiB0
YWJsZUVuZEJvcmRlckFkam9pbmluZ0NlbGwoY29uc3QgUmVuZGVyVGFibGVDZWxsJikgY29uc3Q7
CiAKICAgICB2b2lkIGFkZENhcHRpb24oY29uc3QgUmVuZGVyVGFibGVDYXB0aW9uKik7CiAgICAg
dm9pZCByZW1vdmVDYXB0aW9uKGNvbnN0IFJlbmRlclRhYmxlQ2FwdGlvbiopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAppbmRleCA4MGYyMWM3Njg4M2Uz
NGMzNTM4YWYwMDdjYzY2ODQ0OWYyODJjODU0Li5hNWIzMWZlZDRiZTZjMTdiZGFmMDhjYWY5OTA3
ODVhNDk1Y2FkOGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVDZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVD
ZWxsLmNwcApAQCAtNTYxLDcgKzU2MSw3IEBAIENvbGxhcHNlZEJvcmRlclZhbHVlIFJlbmRlclRh
YmxlQ2VsbDo6Y29tcHV0ZUNvbGxhcHNlZFN0YXJ0Qm9yZGVyKEluY2x1ZGVCb3JkZXJDCiAgICAg
Ly8gKDIpIFRoZSBlbmQgYm9yZGVyIG9mIHRoZSBwcmVjZWRpbmcgY2VsbC4KICAgICBSZW5kZXJU
YWJsZUNlbGwqIGNlbGxCZWZvcmUgPSB0YWJsZS0+Y2VsbEJlZm9yZSh0aGlzKTsKICAgICBpZiAo
Y2VsbEJlZm9yZSkgewotICAgICAgICBDb2xsYXBzZWRCb3JkZXJWYWx1ZSBjZWxsQmVmb3JlQWRq
b2luaW5nQm9yZGVyID0gQ29sbGFwc2VkQm9yZGVyVmFsdWUoY2VsbEJlZm9yZS0+Ym9yZGVyQWRq
b2luaW5nQ2VsbEFmdGVyKHRoaXMpLCBpbmNsdWRlQ29sb3IgPyBjZWxsQmVmb3JlLT5zdHlsZSgp
LnZpc2l0ZWREZXBlbmRlbnRDb2xvcihlbmRDb2xvclByb3BlcnR5KSA6IENvbG9yKCksIEJDRUxM
KTsKKyAgICAgICAgQ29sbGFwc2VkQm9yZGVyVmFsdWUgY2VsbEJlZm9yZUFkam9pbmluZ0JvcmRl
ciA9IENvbGxhcHNlZEJvcmRlclZhbHVlKGNlbGxCZWZvcmUtPmJvcmRlckFkam9pbmluZ0NlbGxB
ZnRlcigqdGhpcyksIGluY2x1ZGVDb2xvciA/IGNlbGxCZWZvcmUtPnN0eWxlKCkudmlzaXRlZERl
cGVuZGVudENvbG9yKGVuZENvbG9yUHJvcGVydHkpIDogQ29sb3IoKSwgQkNFTEwpOwogICAgICAg
ICAvLyB8cmVzdWx0fCBzaG91bGQgYmUgdGhlIDJuZCBhcmd1bWVudCBhcyB8Y2VsbEJlZm9yZXwg
c2hvdWxkIHdpbiBpbiBjYXNlIG9mIGVxdWFsaXR5IHBlciBDU1MgMi4xIChCb3JkZXIgY29uZmxp
Y3QgcmVzb2x1dGlvbiwgcG9pbnQgNCkuCiAgICAgICAgIHJlc3VsdCA9IGNob29zZUJvcmRlcihj
ZWxsQmVmb3JlQWRqb2luaW5nQm9yZGVyLCByZXN1bHQpOwogICAgICAgICBpZiAoIXJlc3VsdC5l
eGlzdHMoKSkKQEAgLTU3MSwxMiArNTcxLDEyIEBAIENvbGxhcHNlZEJvcmRlclZhbHVlIFJlbmRl
clRhYmxlQ2VsbDo6Y29tcHV0ZUNvbGxhcHNlZFN0YXJ0Qm9yZGVyKEluY2x1ZGVCb3JkZXJDCiAg
ICAgYm9vbCBzdGFydEJvcmRlckFkam9pbnNUYWJsZSA9IGhhc1N0YXJ0Qm9yZGVyQWRqb2luaW5n
VGFibGUoKTsKICAgICBpZiAoc3RhcnRCb3JkZXJBZGpvaW5zVGFibGUpIHsKICAgICAgICAgLy8g
KDMpIE91ciByb3cncyBzdGFydCBib3JkZXIuCi0gICAgICAgIHJlc3VsdCA9IGNob29zZUJvcmRl
cihyZXN1bHQsIENvbGxhcHNlZEJvcmRlclZhbHVlKHJvdygpLT5ib3JkZXJBZGpvaW5pbmdTdGFy
dENlbGwodGhpcyksIGluY2x1ZGVDb2xvciA/IHBhcmVudCgpLT5zdHlsZSgpLnZpc2l0ZWREZXBl
bmRlbnRDb2xvcihzdGFydENvbG9yUHJvcGVydHkpIDogQ29sb3IoKSwgQlJPVykpOworICAgICAg
ICByZXN1bHQgPSBjaG9vc2VCb3JkZXIocmVzdWx0LCBDb2xsYXBzZWRCb3JkZXJWYWx1ZShyb3co
KS0+Ym9yZGVyQWRqb2luaW5nU3RhcnRDZWxsKCp0aGlzKSwgaW5jbHVkZUNvbG9yID8gcGFyZW50
KCktPnN0eWxlKCkudmlzaXRlZERlcGVuZGVudENvbG9yKHN0YXJ0Q29sb3JQcm9wZXJ0eSkgOiBD
b2xvcigpLCBCUk9XKSk7CiAgICAgICAgIGlmICghcmVzdWx0LmV4aXN0cygpKQogICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKIAogICAgICAgICAvLyAoNCkgT3VyIHJvdyBncm91cCdzIHN0YXJ0
IGJvcmRlci4KLSAgICAgICAgcmVzdWx0ID0gY2hvb3NlQm9yZGVyKHJlc3VsdCwgQ29sbGFwc2Vk
Qm9yZGVyVmFsdWUoc2VjdGlvbigpLT5ib3JkZXJBZGpvaW5pbmdTdGFydENlbGwodGhpcyksIGlu
Y2x1ZGVDb2xvciA/IHNlY3Rpb24oKS0+c3R5bGUoKS52aXNpdGVkRGVwZW5kZW50Q29sb3Ioc3Rh
cnRDb2xvclByb3BlcnR5KSA6IENvbG9yKCksIEJST1dHUk9VUCkpOworICAgICAgICByZXN1bHQg
PSBjaG9vc2VCb3JkZXIocmVzdWx0LCBDb2xsYXBzZWRCb3JkZXJWYWx1ZShzZWN0aW9uKCktPmJv
cmRlckFkam9pbmluZ1N0YXJ0Q2VsbCgqdGhpcyksIGluY2x1ZGVDb2xvciA/IHNlY3Rpb24oKS0+
c3R5bGUoKS52aXNpdGVkRGVwZW5kZW50Q29sb3Ioc3RhcnRDb2xvclByb3BlcnR5KSA6IENvbG9y
KCksIEJST1dHUk9VUCkpOwogICAgICAgICBpZiAoIXJlc3VsdC5leGlzdHMoKSkKICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpAQCAtNTg3LDE5ICs1ODcsMTkgQEAgQ29sbGFwc2Vk
Qm9yZGVyVmFsdWUgUmVuZGVyVGFibGVDZWxsOjpjb21wdXRlQ29sbGFwc2VkU3RhcnRCb3JkZXIo
SW5jbHVkZUJvcmRlckMKICAgICBpZiAoUmVuZGVyVGFibGVDb2wqIGNvbEVsdCA9IHRhYmxlLT5j
b2xFbGVtZW50KGNvbCgpLCAmc3RhcnRDb2xFZGdlLCAmZW5kQ29sRWRnZSkpIHsKICAgICAgICAg
aWYgKGNvbEVsdC0+aXNUYWJsZUNvbHVtbkdyb3VwKCkgJiYgc3RhcnRDb2xFZGdlKSB7CiAgICAg
ICAgICAgICAvLyBUaGUgfGNvbEVsdHwgaXMgYSBjb2x1bW4gZ3JvdXAgYW5kIGlzIGFsc28gdGhl
IGZpcnN0IGNvbGdyb3VwIChpbiBjYXNlIG9mIHNwYW5uZWQgY29sZ3JvdXBzKS4KLSAgICAgICAg
ICAgIHJlc3VsdCA9IGNob29zZUJvcmRlcihyZXN1bHQsIENvbGxhcHNlZEJvcmRlclZhbHVlKGNv
bEVsdC0+Ym9yZGVyQWRqb2luaW5nQ2VsbFN0YXJ0Qm9yZGVyKHRoaXMpLCBpbmNsdWRlQ29sb3Ig
PyBjb2xFbHQtPnN0eWxlKCkudmlzaXRlZERlcGVuZGVudENvbG9yKHN0YXJ0Q29sb3JQcm9wZXJ0
eSkgOiBDb2xvcigpLCBCQ09MR1JPVVApKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGNob29zZUJv
cmRlcihyZXN1bHQsIENvbGxhcHNlZEJvcmRlclZhbHVlKGNvbEVsdC0+Ym9yZGVyQWRqb2luaW5n
Q2VsbFN0YXJ0Qm9yZGVyKCksIGluY2x1ZGVDb2xvciA/IGNvbEVsdC0+c3R5bGUoKS52aXNpdGVk
RGVwZW5kZW50Q29sb3Ioc3RhcnRDb2xvclByb3BlcnR5KSA6IENvbG9yKCksIEJDT0xHUk9VUCkp
OwogICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXhpc3RzKCkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICAgICAgfSBlbHNlIGlmICghY29sRWx0LT5pc1RhYmxlQ29sdW1uR3Jv
dXAoKSkgewogICAgICAgICAgICAgLy8gV2UgZmlyc3QgY29uc2lkZXIgdGhlIHxjb2xFbHR8IGFu
ZCBpcnJlc3BlY3RpdmUgb2Ygd2hldGhlciBpdCBpcyBhIHNwYW5uZWQgY29sIG9yIG5vdCwgd2Ug
YXBwbHkKICAgICAgICAgICAgIC8vIGl0cyBzdGFydCBib3JkZXIuIFRoaXMgaXMgYXMgcGVyIEhU
TUw1IHdoaWNoIHN0YXRlcyB0aGF0OiAiRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGUgQ1NTIHRhYmxl
IG1vZGVsLAogICAgICAgICAgICAgLy8gdGhlIGNvbCBlbGVtZW50IGlzIGV4cGVjdGVkIHRvIGJl
IHRyZWF0ZWQgYXMgaWYgaXQgd2FzIHByZXNlbnQgYXMgbWFueSB0aW1lcyBhcyBpdHMgc3BhbiBh
dHRyaWJ1dGUgc3BlY2lmaWVzIi4KLSAgICAgICAgICAgIHJlc3VsdCA9IGNob29zZUJvcmRlcihy
ZXN1bHQsIENvbGxhcHNlZEJvcmRlclZhbHVlKGNvbEVsdC0+Ym9yZGVyQWRqb2luaW5nQ2VsbFN0
YXJ0Qm9yZGVyKHRoaXMpLCBpbmNsdWRlQ29sb3IgPyBjb2xFbHQtPnN0eWxlKCkudmlzaXRlZERl
cGVuZGVudENvbG9yKHN0YXJ0Q29sb3JQcm9wZXJ0eSkgOiBDb2xvcigpLCBCQ09MKSk7CisgICAg
ICAgICAgICByZXN1bHQgPSBjaG9vc2VCb3JkZXIocmVzdWx0LCBDb2xsYXBzZWRCb3JkZXJWYWx1
ZShjb2xFbHQtPmJvcmRlckFkam9pbmluZ0NlbGxTdGFydEJvcmRlcigpLCBpbmNsdWRlQ29sb3Ig
PyBjb2xFbHQtPnN0eWxlKCkudmlzaXRlZERlcGVuZGVudENvbG9yKHN0YXJ0Q29sb3JQcm9wZXJ0
eSkgOiBDb2xvcigpLCBCQ09MKSk7CiAgICAgICAgICAgICBpZiAoIXJlc3VsdC5leGlzdHMoKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgICAgLy8gTmV4dCwgYXBw
bHkgdGhlIHN0YXJ0IGJvcmRlciBvZiB0aGUgZW5jbG9zaW5nIGNvbGdyb3VwIGJ1dCBvbmx5IGlm
IGl0IGlzIGFkamFjZW50IHRvIHRoZSBjZWxsJ3MgZWRnZS4KICAgICAgICAgICAgIGlmIChSZW5k
ZXJUYWJsZUNvbCogZW5jbG9zaW5nQ29sdW1uR3JvdXAgPSBjb2xFbHQtPmVuY2xvc2luZ0NvbHVt
bkdyb3VwSWZBZGphY2VudEJlZm9yZSgpKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gY2hv
b3NlQm9yZGVyKHJlc3VsdCwgQ29sbGFwc2VkQm9yZGVyVmFsdWUoZW5jbG9zaW5nQ29sdW1uR3Jv
dXAtPmJvcmRlckFkam9pbmluZ0NlbGxTdGFydEJvcmRlcih0aGlzKSwgaW5jbHVkZUNvbG9yID8g
ZW5jbG9zaW5nQ29sdW1uR3JvdXAtPnN0eWxlKCkudmlzaXRlZERlcGVuZGVudENvbG9yKHN0YXJ0
Q29sb3JQcm9wZXJ0eSkgOiBDb2xvcigpLCBCQ09MR1JPVVApKTsKKyAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBjaG9vc2VCb3JkZXIocmVzdWx0LCBDb2xsYXBzZWRCb3JkZXJWYWx1ZShlbmNsb3Np
bmdDb2x1bW5Hcm91cC0+Ym9yZGVyQWRqb2luaW5nQ2VsbFN0YXJ0Qm9yZGVyKCksIGluY2x1ZGVD
b2xvciA/IGVuY2xvc2luZ0NvbHVtbkdyb3VwLT5zdHlsZSgpLnZpc2l0ZWREZXBlbmRlbnRDb2xv
cihzdGFydENvbG9yUHJvcGVydHkpIDogQ29sb3IoKSwgQkNPTEdST1VQKSk7CiAgICAgICAgICAg
ICAgICAgaWYgKCFyZXN1bHQuZXhpc3RzKCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAgICAgICAgICAgICB9CkBAIC02MTEsMTggKzYxMSwxOCBAQCBDb2xsYXBzZWRCb3Jk
ZXJWYWx1ZSBSZW5kZXJUYWJsZUNlbGw6OmNvbXB1dGVDb2xsYXBzZWRTdGFydEJvcmRlcihJbmNs
dWRlQm9yZGVyQwogICAgICAgICBpZiAoUmVuZGVyVGFibGVDb2wqIGNvbEVsdCA9IHRhYmxlLT5j
b2xFbGVtZW50KGNvbCgpIC0gMSwgJnN0YXJ0Q29sRWRnZSwgJmVuZENvbEVkZ2UpKSB7CiAgICAg
ICAgICAgICBpZiAoY29sRWx0LT5pc1RhYmxlQ29sdW1uR3JvdXAoKSAmJiBlbmRDb2xFZGdlKSB7
CiAgICAgICAgICAgICAgICAgLy8gVGhlIGVsZW1lbnQgaXMgYSBjb2xncm91cCBhbmQgaXMgYWxz
byB0aGUgbGFzdCBjb2xncm91cCAoaW4gY2FzZSBvZiBzcGFubmVkIGNvbGdyb3VwcykuCi0gICAg
ICAgICAgICAgICAgcmVzdWx0ID0gY2hvb3NlQm9yZGVyKENvbGxhcHNlZEJvcmRlclZhbHVlKGNv
bEVsdC0+Ym9yZGVyQWRqb2luaW5nQ2VsbEFmdGVyKHRoaXMpLCBpbmNsdWRlQ29sb3IgPyBjb2xF
bHQtPnN0eWxlKCkudmlzaXRlZERlcGVuZGVudENvbG9yKGVuZENvbG9yUHJvcGVydHkpIDogQ29s
b3IoKSwgQkNPTEdST1VQKSwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBjaG9v
c2VCb3JkZXIoQ29sbGFwc2VkQm9yZGVyVmFsdWUoY29sRWx0LT5ib3JkZXJBZGpvaW5pbmdDZWxs
QWZ0ZXIoKnRoaXMpLCBpbmNsdWRlQ29sb3IgPyBjb2xFbHQtPnN0eWxlKCkudmlzaXRlZERlcGVu
ZGVudENvbG9yKGVuZENvbG9yUHJvcGVydHkpIDogQ29sb3IoKSwgQkNPTEdST1VQKSwgcmVzdWx0
KTsKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5leGlzdHMoKSkKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29sRWx0LT5pc1Rh
YmxlQ29sdW1uKCkpIHsKICAgICAgICAgICAgICAgICAvLyBSZXNvbHZlIHRoZSBjb2xsYXBzaW5n
IGJvcmRlciBhZ2FpbnN0IHRoZSBjb2wncyBib3JkZXIgaWdub3JpbmcgYW55ICdzcGFuJyBhcyBw
ZXIgSFRNTDUuCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gY2hvb3NlQm9yZGVyKENvbGxhcHNl
ZEJvcmRlclZhbHVlKGNvbEVsdC0+Ym9yZGVyQWRqb2luaW5nQ2VsbEFmdGVyKHRoaXMpLCBpbmNs
dWRlQ29sb3IgPyBjb2xFbHQtPnN0eWxlKCkudmlzaXRlZERlcGVuZGVudENvbG9yKGVuZENvbG9y
UHJvcGVydHkpIDogQ29sb3IoKSwgQkNPTCksIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgcmVz
dWx0ID0gY2hvb3NlQm9yZGVyKENvbGxhcHNlZEJvcmRlclZhbHVlKGNvbEVsdC0+Ym9yZGVyQWRq
b2luaW5nQ2VsbEFmdGVyKCp0aGlzKSwgaW5jbHVkZUNvbG9yID8gY29sRWx0LT5zdHlsZSgpLnZp
c2l0ZWREZXBlbmRlbnRDb2xvcihlbmRDb2xvclByb3BlcnR5KSA6IENvbG9yKCksIEJDT0wpLCBy
ZXN1bHQpOwogICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmV4aXN0cygpKQogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgICAgICAgIC8vIE5leHQsIGlmIHRo
ZSBwcmV2aW91cyBjb2wgaGFzIGEgcGFyZW50IGNvbGdyb3VwIHRoZW4gaXRzIGVuZCBib3JkZXIg
c2hvdWxkIGJlIGFwcGxpZWQKICAgICAgICAgICAgICAgICAvLyBidXQgb25seSBpZiBpdCBpcyBh
ZGphY2VudCB0byB0aGUgY2VsbCdzIGVkZ2UuCiAgICAgICAgICAgICAgICAgaWYgKFJlbmRlclRh
YmxlQ29sKiBlbmNsb3NpbmdDb2x1bW5Hcm91cCA9IGNvbEVsdC0+ZW5jbG9zaW5nQ29sdW1uR3Jv
dXBJZkFkamFjZW50QWZ0ZXIoKSkgewotICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBjaG9v
c2VCb3JkZXIoQ29sbGFwc2VkQm9yZGVyVmFsdWUoZW5jbG9zaW5nQ29sdW1uR3JvdXAtPmJvcmRl
ckFkam9pbmluZ0NlbGxFbmRCb3JkZXIodGhpcyksIGluY2x1ZGVDb2xvciA/IGVuY2xvc2luZ0Nv
bHVtbkdyb3VwLT5zdHlsZSgpLnZpc2l0ZWREZXBlbmRlbnRDb2xvcihlbmRDb2xvclByb3BlcnR5
KSA6IENvbG9yKCksIEJDT0xHUk9VUCksIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgIHJl
c3VsdCA9IGNob29zZUJvcmRlcihDb2xsYXBzZWRCb3JkZXJWYWx1ZShlbmNsb3NpbmdDb2x1bW5H
cm91cC0+Ym9yZGVyQWRqb2luaW5nQ2VsbEVuZEJvcmRlcigpLCBpbmNsdWRlQ29sb3IgPyBlbmNs
b3NpbmdDb2x1bW5Hcm91cC0+c3R5bGUoKS52aXNpdGVkRGVwZW5kZW50Q29sb3IoZW5kQ29sb3JQ
cm9wZXJ0eSkgOiBDb2xvcigpLCBCQ09MR1JPVVApLCByZXN1bHQpOwogICAgICAgICAgICAgICAg
ICAgICBpZiAoIXJlc3VsdC5leGlzdHMoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgICAgICAgICAgICAgfQpAQCAtNjMyLDcgKzYzMiw3IEBAIENvbGxhcHNl
ZEJvcmRlclZhbHVlIFJlbmRlclRhYmxlQ2VsbDo6Y29tcHV0ZUNvbGxhcHNlZFN0YXJ0Qm9yZGVy
KEluY2x1ZGVCb3JkZXJDCiAKICAgICBpZiAoc3RhcnRCb3JkZXJBZGpvaW5zVGFibGUpIHsKICAg
ICAgICAgLy8gKDcpIFRoZSB0YWJsZSdzIHN0YXJ0IGJvcmRlci4KLSAgICAgICAgcmVzdWx0ID0g
Y2hvb3NlQm9yZGVyKHJlc3VsdCwgQ29sbGFwc2VkQm9yZGVyVmFsdWUodGFibGUtPnRhYmxlU3Rh
cnRCb3JkZXJBZGpvaW5pbmdDZWxsKHRoaXMpLCBpbmNsdWRlQ29sb3IgPyB0YWJsZS0+c3R5bGUo
KS52aXNpdGVkRGVwZW5kZW50Q29sb3Ioc3RhcnRDb2xvclByb3BlcnR5KSA6IENvbG9yKCksIEJU
QUJMRSkpOworICAgICAgICByZXN1bHQgPSBjaG9vc2VCb3JkZXIocmVzdWx0LCBDb2xsYXBzZWRC
b3JkZXJWYWx1ZSh0YWJsZS0+dGFibGVTdGFydEJvcmRlckFkam9pbmluZ0NlbGwoKnRoaXMpLCBp
bmNsdWRlQ29sb3IgPyB0YWJsZS0+c3R5bGUoKS52aXNpdGVkRGVwZW5kZW50Q29sb3Ioc3RhcnRD
b2xvclByb3BlcnR5KSA6IENvbG9yKCksIEJUQUJMRSkpOwogICAgICAgICBpZiAoIXJlc3VsdC5l
eGlzdHMoKSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpAQCAtNjc1LDcgKzY3
NSw3IEBAIENvbGxhcHNlZEJvcmRlclZhbHVlIFJlbmRlclRhYmxlQ2VsbDo6Y29tcHV0ZUNvbGxh
cHNlZEVuZEJvcmRlcihJbmNsdWRlQm9yZGVyQ29sCiAgICAgLy8gKDIpIFRoZSBzdGFydCBib3Jk
ZXIgb2YgdGhlIGZvbGxvd2luZyBjZWxsLgogICAgIGlmICghaXNFbmRDb2x1bW4pIHsKICAgICAg
ICAgaWYgKFJlbmRlclRhYmxlQ2VsbCogY2VsbEFmdGVyID0gdGFibGUtPmNlbGxBZnRlcih0aGlz
KSkgewotICAgICAgICAgICAgQ29sbGFwc2VkQm9yZGVyVmFsdWUgY2VsbEFmdGVyQWRqb2luaW5n
Qm9yZGVyID0gQ29sbGFwc2VkQm9yZGVyVmFsdWUoY2VsbEFmdGVyLT5ib3JkZXJBZGpvaW5pbmdD
ZWxsQmVmb3JlKHRoaXMpLCBpbmNsdWRlQ29sb3IgPyBjZWxsQWZ0ZXItPnN0eWxlKCkudmlzaXRl
ZERlcGVuZGVudENvbG9yKHN0YXJ0Q29sb3JQcm9wZXJ0eSkgOiBDb2xvcigpLCBCQ0VMTCk7Cisg
ICAgICAgICAgICBDb2xsYXBzZWRCb3JkZXJWYWx1ZSBjZWxsQWZ0ZXJBZGpvaW5pbmdCb3JkZXIg
PSBDb2xsYXBzZWRCb3JkZXJWYWx1ZShjZWxsQWZ0ZXItPmJvcmRlckFkam9pbmluZ0NlbGxCZWZv
cmUoKnRoaXMpLCBpbmNsdWRlQ29sb3IgPyBjZWxsQWZ0ZXItPnN0eWxlKCkudmlzaXRlZERlcGVu
ZGVudENvbG9yKHN0YXJ0Q29sb3JQcm9wZXJ0eSkgOiBDb2xvcigpLCBCQ0VMTCk7CiAgICAgICAg
ICAgICByZXN1bHQgPSBjaG9vc2VCb3JkZXIocmVzdWx0LCBjZWxsQWZ0ZXJBZGpvaW5pbmdCb3Jk
ZXIpOwogICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXhpc3RzKCkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKQEAgLTY4NSwxMiArNjg1LDEyIEBAIENvbGxhcHNlZEJvcmRlclZhbHVl
IFJlbmRlclRhYmxlQ2VsbDo6Y29tcHV0ZUNvbGxhcHNlZEVuZEJvcmRlcihJbmNsdWRlQm9yZGVy
Q29sCiAgICAgYm9vbCBlbmRCb3JkZXJBZGpvaW5zVGFibGUgPSBoYXNFbmRCb3JkZXJBZGpvaW5p
bmdUYWJsZSgpOwogICAgIGlmIChlbmRCb3JkZXJBZGpvaW5zVGFibGUpIHsKICAgICAgICAgLy8g
KDMpIE91ciByb3cncyBlbmQgYm9yZGVyLgotICAgICAgICByZXN1bHQgPSBjaG9vc2VCb3JkZXIo
cmVzdWx0LCBDb2xsYXBzZWRCb3JkZXJWYWx1ZShyb3coKS0+Ym9yZGVyQWRqb2luaW5nRW5kQ2Vs
bCh0aGlzKSwgaW5jbHVkZUNvbG9yID8gcGFyZW50KCktPnN0eWxlKCkudmlzaXRlZERlcGVuZGVu
dENvbG9yKGVuZENvbG9yUHJvcGVydHkpIDogQ29sb3IoKSwgQlJPVykpOworICAgICAgICByZXN1
bHQgPSBjaG9vc2VCb3JkZXIocmVzdWx0LCBDb2xsYXBzZWRCb3JkZXJWYWx1ZShyb3coKS0+Ym9y
ZGVyQWRqb2luaW5nRW5kQ2VsbCgqdGhpcyksIGluY2x1ZGVDb2xvciA/IHBhcmVudCgpLT5zdHls
ZSgpLnZpc2l0ZWREZXBlbmRlbnRDb2xvcihlbmRDb2xvclByb3BlcnR5KSA6IENvbG9yKCksIEJS
T1cpKTsKICAgICAgICAgaWYgKCFyZXN1bHQuZXhpc3RzKCkpCiAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgICAgICAKICAgICAgICAgLy8gKDQpIE91ciByb3cgZ3JvdXAncyBlbmQgYm9y
ZGVyLgotICAgICAgICByZXN1bHQgPSBjaG9vc2VCb3JkZXIocmVzdWx0LCBDb2xsYXBzZWRCb3Jk
ZXJWYWx1ZShzZWN0aW9uKCktPmJvcmRlckFkam9pbmluZ0VuZENlbGwodGhpcyksIGluY2x1ZGVD
b2xvciA/IHNlY3Rpb24oKS0+c3R5bGUoKS52aXNpdGVkRGVwZW5kZW50Q29sb3IoZW5kQ29sb3JQ
cm9wZXJ0eSkgOiBDb2xvcigpLCBCUk9XR1JPVVApKTsKKyAgICAgICAgcmVzdWx0ID0gY2hvb3Nl
Qm9yZGVyKHJlc3VsdCwgQ29sbGFwc2VkQm9yZGVyVmFsdWUoc2VjdGlvbigpLT5ib3JkZXJBZGpv
aW5pbmdFbmRDZWxsKCp0aGlzKSwgaW5jbHVkZUNvbG9yID8gc2VjdGlvbigpLT5zdHlsZSgpLnZp
c2l0ZWREZXBlbmRlbnRDb2xvcihlbmRDb2xvclByb3BlcnR5KSA6IENvbG9yKCksIEJST1dHUk9V
UCkpOwogICAgICAgICBpZiAoIXJlc3VsdC5leGlzdHMoKSkKICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAgICAgfQpAQCAtNzAxLDE5ICs3MDEsMTkgQEAgQ29sbGFwc2VkQm9yZGVyVmFsdWUg
UmVuZGVyVGFibGVDZWxsOjpjb21wdXRlQ29sbGFwc2VkRW5kQm9yZGVyKEluY2x1ZGVCb3JkZXJD
b2wKICAgICBpZiAoUmVuZGVyVGFibGVDb2wqIGNvbEVsdCA9IHRhYmxlLT5jb2xFbGVtZW50KGNv
bCgpICsgY29sU3BhbigpIC0gMSwgJnN0YXJ0Q29sRWRnZSwgJmVuZENvbEVkZ2UpKSB7CiAgICAg
ICAgIGlmIChjb2xFbHQtPmlzVGFibGVDb2x1bW5Hcm91cCgpICYmIGVuZENvbEVkZ2UpIHsKICAg
ICAgICAgICAgIC8vIFRoZSBlbGVtZW50IGlzIGEgY29sZ3JvdXAgYW5kIGlzIGFsc28gdGhlIGxh
c3QgY29sZ3JvdXAgKGluIGNhc2Ugb2Ygc3Bhbm5lZCBjb2xncm91cHMpLgotICAgICAgICAgICAg
cmVzdWx0ID0gY2hvb3NlQm9yZGVyKHJlc3VsdCwgQ29sbGFwc2VkQm9yZGVyVmFsdWUoY29sRWx0
LT5ib3JkZXJBZGpvaW5pbmdDZWxsRW5kQm9yZGVyKHRoaXMpLCBpbmNsdWRlQ29sb3IgPyBjb2xF
bHQtPnN0eWxlKCkudmlzaXRlZERlcGVuZGVudENvbG9yKGVuZENvbG9yUHJvcGVydHkpIDogQ29s
b3IoKSwgQkNPTEdST1VQKSk7CisgICAgICAgICAgICByZXN1bHQgPSBjaG9vc2VCb3JkZXIocmVz
dWx0LCBDb2xsYXBzZWRCb3JkZXJWYWx1ZShjb2xFbHQtPmJvcmRlckFkam9pbmluZ0NlbGxFbmRC
b3JkZXIoKSwgaW5jbHVkZUNvbG9yID8gY29sRWx0LT5zdHlsZSgpLnZpc2l0ZWREZXBlbmRlbnRD
b2xvcihlbmRDb2xvclByb3BlcnR5KSA6IENvbG9yKCksIEJDT0xHUk9VUCkpOwogICAgICAgICAg
ICAgaWYgKCFyZXN1bHQuZXhpc3RzKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
ICAgICAgICAgfSBlbHNlIGlmICghY29sRWx0LT5pc1RhYmxlQ29sdW1uR3JvdXAoKSkgewogICAg
ICAgICAgICAgLy8gRmlyc3QgYXBwbHkgdGhlIGVuZCBib3JkZXIgb2YgdGhlIGNvbHVtbiBpcnJl
c3BlY3RpdmUgb2Ygd2hldGhlciBpdCBpcyBzcGFubmVkIG9yIG5vdC4gVGhpcyBpcyBhcyBwZXIK
ICAgICAgICAgICAgIC8vIEhUTUw1IHdoaWNoIHN0YXRlcyB0aGF0OiAiRm9yIHRoZSBwdXJwb3Nl
cyBvZiB0aGUgQ1NTIHRhYmxlIG1vZGVsLCB0aGUgY29sIGVsZW1lbnQgaXMgZXhwZWN0ZWQgdG8g
YmUKICAgICAgICAgICAgIC8vIHRyZWF0ZWQgYXMgaWYgaXQgd2FzIHByZXNlbnQgYXMgbWFueSB0
aW1lcyBhcyBpdHMgc3BhbiBhdHRyaWJ1dGUgc3BlY2lmaWVzIi4KLSAgICAgICAgICAgIHJlc3Vs
dCA9IGNob29zZUJvcmRlcihyZXN1bHQsIENvbGxhcHNlZEJvcmRlclZhbHVlKGNvbEVsdC0+Ym9y
ZGVyQWRqb2luaW5nQ2VsbEVuZEJvcmRlcih0aGlzKSwgaW5jbHVkZUNvbG9yID8gY29sRWx0LT5z
dHlsZSgpLnZpc2l0ZWREZXBlbmRlbnRDb2xvcihlbmRDb2xvclByb3BlcnR5KSA6IENvbG9yKCks
IEJDT0wpKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGNob29zZUJvcmRlcihyZXN1bHQsIENvbGxh
cHNlZEJvcmRlclZhbHVlKGNvbEVsdC0+Ym9yZGVyQWRqb2luaW5nQ2VsbEVuZEJvcmRlcigpLCBp
bmNsdWRlQ29sb3IgPyBjb2xFbHQtPnN0eWxlKCkudmlzaXRlZERlcGVuZGVudENvbG9yKGVuZENv
bG9yUHJvcGVydHkpIDogQ29sb3IoKSwgQkNPTCkpOwogICAgICAgICAgICAgaWYgKCFyZXN1bHQu
ZXhpc3RzKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgIC8v
IE5leHQsIGlmIGl0IGhhcyBhIHBhcmVudCBjb2xncm91cCB0aGVuIHdlIGFwcGx5IGl0cyBlbmQg
Ym9yZGVyIGJ1dCBvbmx5IGlmIGl0IGlzIGFkamFjZW50IHRvIHRoZSBjZWxsLgogICAgICAgICAg
ICAgaWYgKFJlbmRlclRhYmxlQ29sKiBlbmNsb3NpbmdDb2x1bW5Hcm91cCA9IGNvbEVsdC0+ZW5j
bG9zaW5nQ29sdW1uR3JvdXBJZkFkamFjZW50QWZ0ZXIoKSkgewotICAgICAgICAgICAgICAgIHJl
c3VsdCA9IGNob29zZUJvcmRlcihyZXN1bHQsIENvbGxhcHNlZEJvcmRlclZhbHVlKGVuY2xvc2lu
Z0NvbHVtbkdyb3VwLT5ib3JkZXJBZGpvaW5pbmdDZWxsRW5kQm9yZGVyKHRoaXMpLCBpbmNsdWRl
Q29sb3IgPyBlbmNsb3NpbmdDb2x1bW5Hcm91cC0+c3R5bGUoKS52aXNpdGVkRGVwZW5kZW50Q29s
b3IoZW5kQ29sb3JQcm9wZXJ0eSkgOiBDb2xvcigpLCBCQ09MR1JPVVApKTsKKyAgICAgICAgICAg
ICAgICByZXN1bHQgPSBjaG9vc2VCb3JkZXIocmVzdWx0LCBDb2xsYXBzZWRCb3JkZXJWYWx1ZShl
bmNsb3NpbmdDb2x1bW5Hcm91cC0+Ym9yZGVyQWRqb2luaW5nQ2VsbEVuZEJvcmRlcigpLCBpbmNs
dWRlQ29sb3IgPyBlbmNsb3NpbmdDb2x1bW5Hcm91cC0+c3R5bGUoKS52aXNpdGVkRGVwZW5kZW50
Q29sb3IoZW5kQ29sb3JQcm9wZXJ0eSkgOiBDb2xvcigpLCBCQ09MR1JPVVApKTsKICAgICAgICAg
ICAgICAgICBpZiAoIXJlc3VsdC5leGlzdHMoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICAgICAgICAgIH0KQEAgLTcyNSwxNyArNzI1LDE3IEBAIENvbGxhcHNlZEJv
cmRlclZhbHVlIFJlbmRlclRhYmxlQ2VsbDo6Y29tcHV0ZUNvbGxhcHNlZEVuZEJvcmRlcihJbmNs
dWRlQm9yZGVyQ29sCiAgICAgICAgIGlmIChSZW5kZXJUYWJsZUNvbCogY29sRWx0ID0gdGFibGUt
PmNvbEVsZW1lbnQoY29sKCkgKyBjb2xTcGFuKCksICZzdGFydENvbEVkZ2UsICZlbmRDb2xFZGdl
KSkgewogICAgICAgICAgICAgaWYgKGNvbEVsdC0+aXNUYWJsZUNvbHVtbkdyb3VwKCkgJiYgc3Rh
cnRDb2xFZGdlKSB7CiAgICAgICAgICAgICAgICAgLy8gVGhpcyBjYXNlIGlzIGEgY29sZ3JvdXAg
d2l0aG91dCBhbnkgY29sLCB3ZSBvbmx5IGNvbXB1dGUgaXQgaWYgaXQgaXMgYWRqYWNlbnQgdG8g
dGhlIGNlbGwncyBlZGdlLgotICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNob29zZUJvcmRlcihy
ZXN1bHQsIENvbGxhcHNlZEJvcmRlclZhbHVlKGNvbEVsdC0+Ym9yZGVyQWRqb2luaW5nQ2VsbEJl
Zm9yZSh0aGlzKSwgaW5jbHVkZUNvbG9yID8gY29sRWx0LT5zdHlsZSgpLnZpc2l0ZWREZXBlbmRl
bnRDb2xvcihzdGFydENvbG9yUHJvcGVydHkpIDogQ29sb3IoKSwgQkNPTEdST1VQKSk7CisgICAg
ICAgICAgICAgICAgcmVzdWx0ID0gY2hvb3NlQm9yZGVyKHJlc3VsdCwgQ29sbGFwc2VkQm9yZGVy
VmFsdWUoY29sRWx0LT5ib3JkZXJBZGpvaW5pbmdDZWxsQmVmb3JlKCp0aGlzKSwgaW5jbHVkZUNv
bG9yID8gY29sRWx0LT5zdHlsZSgpLnZpc2l0ZWREZXBlbmRlbnRDb2xvcihzdGFydENvbG9yUHJv
cGVydHkpIDogQ29sb3IoKSwgQkNPTEdST1VQKSk7CiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1
bHQuZXhpc3RzKCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAg
ICAgICB9IGVsc2UgaWYgKGNvbEVsdC0+aXNUYWJsZUNvbHVtbigpKSB7CiAgICAgICAgICAgICAg
ICAgLy8gUmVzb2x2ZSB0aGUgY29sbGFwc2luZyBib3JkZXIgYWdhaW5zdCB0aGUgY29sJ3MgYm9y
ZGVyIGlnbm9yaW5nIGFueSAnc3BhbicgYXMgcGVyIEhUTUw1LgotICAgICAgICAgICAgICAgIHJl
c3VsdCA9IGNob29zZUJvcmRlcihyZXN1bHQsIENvbGxhcHNlZEJvcmRlclZhbHVlKGNvbEVsdC0+
Ym9yZGVyQWRqb2luaW5nQ2VsbEJlZm9yZSh0aGlzKSwgaW5jbHVkZUNvbG9yID8gY29sRWx0LT5z
dHlsZSgpLnZpc2l0ZWREZXBlbmRlbnRDb2xvcihzdGFydENvbG9yUHJvcGVydHkpIDogQ29sb3Io
KSwgQkNPTCkpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNob29zZUJvcmRlcihyZXN1bHQs
IENvbGxhcHNlZEJvcmRlclZhbHVlKGNvbEVsdC0+Ym9yZGVyQWRqb2luaW5nQ2VsbEJlZm9yZSgq
dGhpcyksIGluY2x1ZGVDb2xvciA/IGNvbEVsdC0+c3R5bGUoKS52aXNpdGVkRGVwZW5kZW50Q29s
b3Ioc3RhcnRDb2xvclByb3BlcnR5KSA6IENvbG9yKCksIEJDT0wpKTsKICAgICAgICAgICAgICAg
ICBpZiAoIXJlc3VsdC5leGlzdHMoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICAgICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgcGFyZW50IGNvbGdyb3VwLCByZXNv
bHZlIHRoZSBib3JkZXIgb25seSBpZiBpdCBpcyBhZGphY2VudCB0byB0aGUgY2VsbC4KICAgICAg
ICAgICAgICAgICBpZiAoUmVuZGVyVGFibGVDb2wqIGVuY2xvc2luZ0NvbHVtbkdyb3VwID0gY29s
RWx0LT5lbmNsb3NpbmdDb2x1bW5Hcm91cElmQWRqYWNlbnRCZWZvcmUoKSkgewotICAgICAgICAg
ICAgICAgICAgICByZXN1bHQgPSBjaG9vc2VCb3JkZXIocmVzdWx0LCBDb2xsYXBzZWRCb3JkZXJW
YWx1ZShlbmNsb3NpbmdDb2x1bW5Hcm91cC0+Ym9yZGVyQWRqb2luaW5nQ2VsbFN0YXJ0Qm9yZGVy
KHRoaXMpLCBpbmNsdWRlQ29sb3IgPyBlbmNsb3NpbmdDb2x1bW5Hcm91cC0+c3R5bGUoKS52aXNp
dGVkRGVwZW5kZW50Q29sb3Ioc3RhcnRDb2xvclByb3BlcnR5KSA6IENvbG9yKCksIEJDT0xHUk9V
UCkpOworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBjaG9vc2VCb3JkZXIocmVzdWx0LCBD
b2xsYXBzZWRCb3JkZXJWYWx1ZShlbmNsb3NpbmdDb2x1bW5Hcm91cC0+Ym9yZGVyQWRqb2luaW5n
Q2VsbFN0YXJ0Qm9yZGVyKCksIGluY2x1ZGVDb2xvciA/IGVuY2xvc2luZ0NvbHVtbkdyb3VwLT5z
dHlsZSgpLnZpc2l0ZWREZXBlbmRlbnRDb2xvcihzdGFydENvbG9yUHJvcGVydHkpIDogQ29sb3Io
KSwgQkNPTEdST1VQKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmV4aXN0cygp
KQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgICAg
ICB9CkBAIC03NDUsNyArNzQ1LDcgQEAgQ29sbGFwc2VkQm9yZGVyVmFsdWUgUmVuZGVyVGFibGVD
ZWxsOjpjb21wdXRlQ29sbGFwc2VkRW5kQm9yZGVyKEluY2x1ZGVCb3JkZXJDb2wKIAogICAgIGlm
IChlbmRCb3JkZXJBZGpvaW5zVGFibGUpIHsKICAgICAgICAgLy8gKDcpIFRoZSB0YWJsZSdzIGVu
ZCBib3JkZXIuCi0gICAgICAgIHJlc3VsdCA9IGNob29zZUJvcmRlcihyZXN1bHQsIENvbGxhcHNl
ZEJvcmRlclZhbHVlKHRhYmxlLT50YWJsZUVuZEJvcmRlckFkam9pbmluZ0NlbGwodGhpcyksIGlu
Y2x1ZGVDb2xvciA/IHRhYmxlLT5zdHlsZSgpLnZpc2l0ZWREZXBlbmRlbnRDb2xvcihlbmRDb2xv
clByb3BlcnR5KSA6IENvbG9yKCksIEJUQUJMRSkpOworICAgICAgICByZXN1bHQgPSBjaG9vc2VC
b3JkZXIocmVzdWx0LCBDb2xsYXBzZWRCb3JkZXJWYWx1ZSh0YWJsZS0+dGFibGVFbmRCb3JkZXJB
ZGpvaW5pbmdDZWxsKCp0aGlzKSwgaW5jbHVkZUNvbG9yID8gdGFibGUtPnN0eWxlKCkudmlzaXRl
ZERlcGVuZGVudENvbG9yKGVuZENvbG9yUHJvcGVydHkpIDogQ29sb3IoKSwgQlRBQkxFKSk7CiAg
ICAgICAgIGlmICghcmVzdWx0LmV4aXN0cygpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVD
ZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKaW5kZXgg
YjU5MmY3NTQzYzQ2Zjc2OWJkNzE0YjY0ZjhkMDkxZTlmNjY1NzczNS4uNmZkNDZiYmI0MmJkMjVl
MTA0ZWQyNjgzMjgzYTNjOGQ4NDZiMzQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZUNlbGwuaApAQCAtMTIxLDggKzEyMSw4IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0
IEJvcmRlclZhbHVlJiBib3JkZXJBZGpvaW5pbmdUYWJsZVN0YXJ0KCkgY29uc3Q7CiAgICAgY29u
c3QgQm9yZGVyVmFsdWUmIGJvcmRlckFkam9pbmluZ1RhYmxlRW5kKCkgY29uc3Q7Ci0gICAgY29u
c3QgQm9yZGVyVmFsdWUmIGJvcmRlckFkam9pbmluZ0NlbGxCZWZvcmUoY29uc3QgUmVuZGVyVGFi
bGVDZWxsKik7Ci0gICAgY29uc3QgQm9yZGVyVmFsdWUmIGJvcmRlckFkam9pbmluZ0NlbGxBZnRl
cihjb25zdCBSZW5kZXJUYWJsZUNlbGwqKTsKKyAgICBjb25zdCBCb3JkZXJWYWx1ZSYgYm9yZGVy
QWRqb2luaW5nQ2VsbEJlZm9yZShjb25zdCBSZW5kZXJUYWJsZUNlbGwmKTsKKyAgICBjb25zdCBC
b3JkZXJWYWx1ZSYgYm9yZGVyQWRqb2luaW5nQ2VsbEFmdGVyKGNvbnN0IFJlbmRlclRhYmxlQ2Vs
bCYpOwogCiAgICAgdXNpbmcgUmVuZGVyQmxvY2tGbG93Ojpub2RlQXRQb2ludDsKICNpZm5kZWYg
TkRFQlVHCkBAIC0zMTYsMTYgKzMxNiwxNiBAQCBpbmxpbmUgY29uc3QgQm9yZGVyVmFsdWUmIFJl
bmRlclRhYmxlQ2VsbDo6Ym9yZGVyQWRqb2luaW5nVGFibGVFbmQoKSBjb25zdAogICAgIHJldHVy
biBzdHlsZSgpLmJvcmRlclN0YXJ0KCk7CiB9CiAKLWlubGluZSBjb25zdCBCb3JkZXJWYWx1ZSYg
UmVuZGVyVGFibGVDZWxsOjpib3JkZXJBZGpvaW5pbmdDZWxsQmVmb3JlKGNvbnN0IFJlbmRlclRh
YmxlQ2VsbCogY2VsbCkKK2lubGluZSBjb25zdCBCb3JkZXJWYWx1ZSYgUmVuZGVyVGFibGVDZWxs
Ojpib3JkZXJBZGpvaW5pbmdDZWxsQmVmb3JlKGNvbnN0IFJlbmRlclRhYmxlQ2VsbCYgY2VsbCkK
IHsKLSAgICBBU1NFUlRfVU5VU0VEKGNlbGwsIHRhYmxlKCktPmNlbGxBZnRlcihjZWxsKSA9PSB0
aGlzKTsKKyAgICBBU1NFUlRfVU5VU0VEKGNlbGwsIHRhYmxlKCktPmNlbGxBZnRlcigmY2VsbCkg
PT0gdGhpcyk7CiAgICAgLy8gRklYTUU6IGh0dHBzOi8vd2Via2l0Lm9yZy9iLzc5MjcyIC0gQWRk
IHN1cHBvcnQgZm9yIG1peGVkIGRpcmVjdGlvbmFsaXR5IGF0IHRoZSBjZWxsIGxldmVsLgogICAg
IHJldHVybiBzdHlsZSgpLmJvcmRlclN0YXJ0KCk7CiB9CiAKLWlubGluZSBjb25zdCBCb3JkZXJW
YWx1ZSYgUmVuZGVyVGFibGVDZWxsOjpib3JkZXJBZGpvaW5pbmdDZWxsQWZ0ZXIoY29uc3QgUmVu
ZGVyVGFibGVDZWxsKiBjZWxsKQoraW5saW5lIGNvbnN0IEJvcmRlclZhbHVlJiBSZW5kZXJUYWJs
ZUNlbGw6OmJvcmRlckFkam9pbmluZ0NlbGxBZnRlcihjb25zdCBSZW5kZXJUYWJsZUNlbGwmIGNl
bGwpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRChjZWxsLCB0YWJsZSgpLT5jZWxsQmVmb3JlKGNlbGwp
ID09IHRoaXMpOworICAgIEFTU0VSVF9VTlVTRUQoY2VsbCwgdGFibGUoKS0+Y2VsbEJlZm9yZSgm
Y2VsbCkgPT0gdGhpcyk7CiAgICAgLy8gRklYTUU6IGh0dHBzOi8vd2Via2l0Lm9yZy9iLzc5Mjcy
IC0gQWRkIHN1cHBvcnQgZm9yIG1peGVkIGRpcmVjdGlvbmFsaXR5IGF0IHRoZSBjZWxsIGxldmVs
LgogICAgIHJldHVybiBzdHlsZSgpLmJvcmRlckVuZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZUNvbC5jcHAKaW5kZXggYjAxZjZmNjg5NjgxNGYzZWQ3ZTUwZWY3
ZTQ4YjFmZjA5ZWVjMjEyYi4uYjY1NWQ1MmI2M2E4YzlmZWFkZjdjZjQ2ZTE0NWU0ZjgyZDg0YTE4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuY3BwCkBAIC0x
NzksMjUgKzE3OSwyNSBAQCBSZW5kZXJUYWJsZUNvbCogUmVuZGVyVGFibGVDb2w6Om5leHRDb2x1
bW4oKSBjb25zdAogICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJUYWJsZUNvbD4obmV4dCk7CiB9
CiAKLWNvbnN0IEJvcmRlclZhbHVlJiBSZW5kZXJUYWJsZUNvbDo6Ym9yZGVyQWRqb2luaW5nQ2Vs
bFN0YXJ0Qm9yZGVyKGNvbnN0IFJlbmRlclRhYmxlQ2VsbCopIGNvbnN0Citjb25zdCBCb3JkZXJW
YWx1ZSYgUmVuZGVyVGFibGVDb2w6OmJvcmRlckFkam9pbmluZ0NlbGxTdGFydEJvcmRlcigpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIHN0eWxlKCkuYm9yZGVyU3RhcnQoKTsKIH0KIAotY29uc3QgQm9y
ZGVyVmFsdWUmIFJlbmRlclRhYmxlQ29sOjpib3JkZXJBZGpvaW5pbmdDZWxsRW5kQm9yZGVyKGNv
bnN0IFJlbmRlclRhYmxlQ2VsbCopIGNvbnN0Citjb25zdCBCb3JkZXJWYWx1ZSYgUmVuZGVyVGFi
bGVDb2w6OmJvcmRlckFkam9pbmluZ0NlbGxFbmRCb3JkZXIoKSBjb25zdAogewogICAgIHJldHVy
biBzdHlsZSgpLmJvcmRlckVuZCgpOwogfQogCi1jb25zdCBCb3JkZXJWYWx1ZSYgUmVuZGVyVGFi
bGVDb2w6OmJvcmRlckFkam9pbmluZ0NlbGxCZWZvcmUoY29uc3QgUmVuZGVyVGFibGVDZWxsKiBj
ZWxsKSBjb25zdAorY29uc3QgQm9yZGVyVmFsdWUmIFJlbmRlclRhYmxlQ29sOjpib3JkZXJBZGpv
aW5pbmdDZWxsQmVmb3JlKGNvbnN0IFJlbmRlclRhYmxlQ2VsbCYgY2VsbCkgY29uc3QKIHsKLSAg
ICBBU1NFUlRfVU5VU0VEKGNlbGwsIHRhYmxlKCktPmNvbEVsZW1lbnQoY2VsbC0+Y29sKCkgKyBj
ZWxsLT5jb2xTcGFuKCkpID09IHRoaXMpOworICAgIEFTU0VSVF9VTlVTRUQoY2VsbCwgdGFibGUo
KS0+Y29sRWxlbWVudChjZWxsLmNvbCgpICsgY2VsbC5jb2xTcGFuKCkpID09IHRoaXMpOwogICAg
IHJldHVybiBzdHlsZSgpLmJvcmRlclN0YXJ0KCk7CiB9CiAKLWNvbnN0IEJvcmRlclZhbHVlJiBS
ZW5kZXJUYWJsZUNvbDo6Ym9yZGVyQWRqb2luaW5nQ2VsbEFmdGVyKGNvbnN0IFJlbmRlclRhYmxl
Q2VsbCogY2VsbCkgY29uc3QKK2NvbnN0IEJvcmRlclZhbHVlJiBSZW5kZXJUYWJsZUNvbDo6Ym9y
ZGVyQWRqb2luaW5nQ2VsbEFmdGVyKGNvbnN0IFJlbmRlclRhYmxlQ2VsbCYgY2VsbCkgY29uc3QK
IHsKLSAgICBBU1NFUlRfVU5VU0VEKGNlbGwsIHRhYmxlKCktPmNvbEVsZW1lbnQoY2VsbC0+Y29s
KCkgLSAxKSA9PSB0aGlzKTsKKyAgICBBU1NFUlRfVU5VU0VEKGNlbGwsIHRhYmxlKCktPmNvbEVs
ZW1lbnQoY2VsbC5jb2woKSAtIDEpID09IHRoaXMpOwogICAgIHJldHVybiBzdHlsZSgpLmJvcmRl
ckVuZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVDb2wuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5oCmlu
ZGV4IGFlMTllMTUyN2I1NTg4ZDUzNWVkZmM4ODk0Y2Q3MDY2NzcwNDkxZjMuLmI0ZmNlZDNiYTM0
Yzc2OWVhNDgwNmZjN2VlMzkwZTQ0NjU1N2VlMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZUNvbC5oCkBAIC01NCwxMCArNTQsMTAgQEAgcHVibGljOgogICAgIC8vIFJl
dHVybnMgdGhlIG5leHQgY29sdW1uIG9yIGNvbHVtbi1ncm91cC4KICAgICBSZW5kZXJUYWJsZUNv
bCogbmV4dENvbHVtbigpIGNvbnN0OwogCi0gICAgY29uc3QgQm9yZGVyVmFsdWUmIGJvcmRlckFk
am9pbmluZ0NlbGxTdGFydEJvcmRlcihjb25zdCBSZW5kZXJUYWJsZUNlbGwqKSBjb25zdDsKLSAg
ICBjb25zdCBCb3JkZXJWYWx1ZSYgYm9yZGVyQWRqb2luaW5nQ2VsbEVuZEJvcmRlcihjb25zdCBS
ZW5kZXJUYWJsZUNlbGwqKSBjb25zdDsKLSAgICBjb25zdCBCb3JkZXJWYWx1ZSYgYm9yZGVyQWRq
b2luaW5nQ2VsbEJlZm9yZShjb25zdCBSZW5kZXJUYWJsZUNlbGwqKSBjb25zdDsKLSAgICBjb25z
dCBCb3JkZXJWYWx1ZSYgYm9yZGVyQWRqb2luaW5nQ2VsbEFmdGVyKGNvbnN0IFJlbmRlclRhYmxl
Q2VsbCopIGNvbnN0OworICAgIGNvbnN0IEJvcmRlclZhbHVlJiBib3JkZXJBZGpvaW5pbmdDZWxs
U3RhcnRCb3JkZXIoKSBjb25zdDsKKyAgICBjb25zdCBCb3JkZXJWYWx1ZSYgYm9yZGVyQWRqb2lu
aW5nQ2VsbEVuZEJvcmRlcigpIGNvbnN0OworICAgIGNvbnN0IEJvcmRlclZhbHVlJiBib3JkZXJB
ZGpvaW5pbmdDZWxsQmVmb3JlKGNvbnN0IFJlbmRlclRhYmxlQ2VsbCYpIGNvbnN0OworICAgIGNv
bnN0IEJvcmRlclZhbHVlJiBib3JkZXJBZGpvaW5pbmdDZWxsQWZ0ZXIoY29uc3QgUmVuZGVyVGFi
bGVDZWxsJikgY29uc3Q7CiAKICAgICBMYXlvdXRVbml0IG9mZnNldExlZnQoKSBjb25zdCBvdmVy
cmlkZTsKICAgICBMYXlvdXRVbml0IG9mZnNldFRvcCgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5jcHAKaW5kZXggZDA3YzIzMDU0NjU3
ZjE2ZWU2NjFiMjFjMmU1YTY1YzFkZTNjZTcxYy4uNmU2ODAzZmQ5ODUwZDNiYTRiMzkyZWNlY2Mx
ZDdmYjJjZWU2MDAxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlUm93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVS
b3cuY3BwCkBAIC05MiwxNiArOTIsMTYgQEAgdm9pZCBSZW5kZXJUYWJsZVJvdzo6c3R5bGVEaWRD
aGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGQKICAgICB9
CiB9CiAKLWNvbnN0IEJvcmRlclZhbHVlJiBSZW5kZXJUYWJsZVJvdzo6Ym9yZGVyQWRqb2luaW5n
U3RhcnRDZWxsKGNvbnN0IFJlbmRlclRhYmxlQ2VsbCogY2VsbCkgY29uc3QKK2NvbnN0IEJvcmRl
clZhbHVlJiBSZW5kZXJUYWJsZVJvdzo6Ym9yZGVyQWRqb2luaW5nU3RhcnRDZWxsKGNvbnN0IFJl
bmRlclRhYmxlQ2VsbCYgY2VsbCkgY29uc3QKIHsKLSAgICBBU1NFUlRfVU5VU0VEKGNlbGwsIGNl
bGwtPmlzRmlyc3RPckxhc3RDZWxsSW5Sb3coKSk7CisgICAgQVNTRVJUX1VOVVNFRChjZWxsLCBj
ZWxsLmlzRmlyc3RPckxhc3RDZWxsSW5Sb3coKSk7CiAgICAgLy8gRklYTUU6IGh0dHBzOi8vd2Vi
a2l0Lm9yZy9iLzc5MjcyIC0gQWRkIHN1cHBvcnQgZm9yIG1peGVkIGRpcmVjdGlvbmFsaXR5IGF0
IHRoZSBjZWxsIGxldmVsLgogICAgIHJldHVybiBzdHlsZSgpLmJvcmRlclN0YXJ0KCk7CiB9CiAK
LWNvbnN0IEJvcmRlclZhbHVlJiBSZW5kZXJUYWJsZVJvdzo6Ym9yZGVyQWRqb2luaW5nRW5kQ2Vs
bChjb25zdCBSZW5kZXJUYWJsZUNlbGwqIGNlbGwpIGNvbnN0Citjb25zdCBCb3JkZXJWYWx1ZSYg
UmVuZGVyVGFibGVSb3c6OmJvcmRlckFkam9pbmluZ0VuZENlbGwoY29uc3QgUmVuZGVyVGFibGVD
ZWxsJiBjZWxsKSBjb25zdAogewotICAgIEFTU0VSVF9VTlVTRUQoY2VsbCwgY2VsbC0+aXNGaXJz
dE9yTGFzdENlbGxJblJvdygpKTsKKyAgICBBU1NFUlRfVU5VU0VEKGNlbGwsIGNlbGwuaXNGaXJz
dE9yTGFzdENlbGxJblJvdygpKTsKICAgICAvLyBGSVhNRTogaHR0cHM6Ly93ZWJraXQub3JnL2Iv
NzkyNzIgLSBBZGQgc3VwcG9ydCBmb3IgbWl4ZWQgZGlyZWN0aW9uYWxpdHkgYXQgdGhlIGNlbGwg
bGV2ZWwuCiAgICAgcmV0dXJuIHN0eWxlKCkuYm9yZGVyRW5kKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oCmluZGV4IDE2Y2UxYjRjZTg0NjNlM2RhNWJlYWMw
YzY2MWJjZGM4MTFhMmQxOGMuLjMzOTllNDFhM2E5MDkwMDUzZjk0MjEzYjc3YWEwY2NjNmVkMDM1
NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oCkBAIC01Niw4
ICs1Niw4IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IEJvcmRlclZhbHVlJiBib3JkZXJBZGpvaW5p
bmdUYWJsZVN0YXJ0KCkgY29uc3Q7CiAgICAgY29uc3QgQm9yZGVyVmFsdWUmIGJvcmRlckFkam9p
bmluZ1RhYmxlRW5kKCkgY29uc3Q7Ci0gICAgY29uc3QgQm9yZGVyVmFsdWUmIGJvcmRlckFkam9p
bmluZ1N0YXJ0Q2VsbChjb25zdCBSZW5kZXJUYWJsZUNlbGwqKSBjb25zdDsKLSAgICBjb25zdCBC
b3JkZXJWYWx1ZSYgYm9yZGVyQWRqb2luaW5nRW5kQ2VsbChjb25zdCBSZW5kZXJUYWJsZUNlbGwq
KSBjb25zdDsKKyAgICBjb25zdCBCb3JkZXJWYWx1ZSYgYm9yZGVyQWRqb2luaW5nU3RhcnRDZWxs
KGNvbnN0IFJlbmRlclRhYmxlQ2VsbCYpIGNvbnN0OworICAgIGNvbnN0IEJvcmRlclZhbHVlJiBi
b3JkZXJBZGpvaW5pbmdFbmRDZWxsKGNvbnN0IFJlbmRlclRhYmxlQ2VsbCYpIGNvbnN0OwogCiAg
ICAgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9y
ZUNoaWxkID0gMCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlU2VjdGlvbi5jcHAKaW5kZXggNmY1ODY5N2NiOWRiODdhNmIyYTVkYjg3ZjA1NzNj
OWQ0NTU4MWM0ZC4uNGY4NmU0YjBlYzg1NTYzZWMyMmVmZTQxYTY1Njk3ZjczMTRlODgzZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKQEAg
LTE0MTksMTYgKzE0MTksMTYgQEAgdW5zaWduZWQgUmVuZGVyVGFibGVTZWN0aW9uOjpudW1Db2x1
bW5zKCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0ICsgMTsKIH0KIAotY29uc3QgQm9yZGVyVmFs
dWUmIFJlbmRlclRhYmxlU2VjdGlvbjo6Ym9yZGVyQWRqb2luaW5nU3RhcnRDZWxsKGNvbnN0IFJl
bmRlclRhYmxlQ2VsbCogY2VsbCkgY29uc3QKK2NvbnN0IEJvcmRlclZhbHVlJiBSZW5kZXJUYWJs
ZVNlY3Rpb246OmJvcmRlckFkam9pbmluZ1N0YXJ0Q2VsbChjb25zdCBSZW5kZXJUYWJsZUNlbGwm
IGNlbGwpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGNlbGwtPmlzRmlyc3RPckxhc3RDZWxsSW5Sb3co
KSk7Ci0gICAgcmV0dXJuIGhhc1NhbWVEaXJlY3Rpb25BcyhjZWxsKSA/IHN0eWxlKCkuYm9yZGVy
U3RhcnQoKSA6IHN0eWxlKCkuYm9yZGVyRW5kKCk7CisgICAgQVNTRVJUKGNlbGwuaXNGaXJzdE9y
TGFzdENlbGxJblJvdygpKTsKKyAgICByZXR1cm4gaGFzU2FtZURpcmVjdGlvbkFzKCZjZWxsKSA/
IHN0eWxlKCkuYm9yZGVyU3RhcnQoKSA6IHN0eWxlKCkuYm9yZGVyRW5kKCk7CiB9CiAKLWNvbnN0
IEJvcmRlclZhbHVlJiBSZW5kZXJUYWJsZVNlY3Rpb246OmJvcmRlckFkam9pbmluZ0VuZENlbGwo
Y29uc3QgUmVuZGVyVGFibGVDZWxsKiBjZWxsKSBjb25zdAorY29uc3QgQm9yZGVyVmFsdWUmIFJl
bmRlclRhYmxlU2VjdGlvbjo6Ym9yZGVyQWRqb2luaW5nRW5kQ2VsbChjb25zdCBSZW5kZXJUYWJs
ZUNlbGwmIGNlbGwpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGNlbGwtPmlzRmlyc3RPckxhc3RDZWxs
SW5Sb3coKSk7Ci0gICAgcmV0dXJuIGhhc1NhbWVEaXJlY3Rpb25BcyhjZWxsKSA/IHN0eWxlKCku
Ym9yZGVyRW5kKCkgOiBzdHlsZSgpLmJvcmRlclN0YXJ0KCk7CisgICAgQVNTRVJUKGNlbGwuaXNG
aXJzdE9yTGFzdENlbGxJblJvdygpKTsKKyAgICByZXR1cm4gaGFzU2FtZURpcmVjdGlvbkFzKCZj
ZWxsKSA/IHN0eWxlKCkuYm9yZGVyRW5kKCkgOiBzdHlsZSgpLmJvcmRlclN0YXJ0KCk7CiB9CiAK
IGNvbnN0IFJlbmRlclRhYmxlQ2VsbCogUmVuZGVyVGFibGVTZWN0aW9uOjpmaXJzdFJvd0NlbGxB
ZGpvaW5pbmdUYWJsZVN0YXJ0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZVNlY3Rpb24uaAppbmRleCBmZTQ4ZTJkNTc5ZGE2ZDA2NjIyNjIxNzNlZTkyY2Rj
OWQxZDY0NGM5Li4zYjc3N2Y1ZmNiZGNhZjVkMWNmZWFkODc2NWJlOWRlY2QzYzc0M2ZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oCkBAIC05Myw4
ICs5Myw4IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IEJvcmRlclZhbHVlJiBib3JkZXJBZGpvaW5p
bmdUYWJsZVN0YXJ0KCkgY29uc3Q7CiAgICAgY29uc3QgQm9yZGVyVmFsdWUmIGJvcmRlckFkam9p
bmluZ1RhYmxlRW5kKCkgY29uc3Q7Ci0gICAgY29uc3QgQm9yZGVyVmFsdWUmIGJvcmRlckFkam9p
bmluZ1N0YXJ0Q2VsbChjb25zdCBSZW5kZXJUYWJsZUNlbGwqKSBjb25zdDsKLSAgICBjb25zdCBC
b3JkZXJWYWx1ZSYgYm9yZGVyQWRqb2luaW5nRW5kQ2VsbChjb25zdCBSZW5kZXJUYWJsZUNlbGwq
KSBjb25zdDsKKyAgICBjb25zdCBCb3JkZXJWYWx1ZSYgYm9yZGVyQWRqb2luaW5nU3RhcnRDZWxs
KGNvbnN0IFJlbmRlclRhYmxlQ2VsbCYpIGNvbnN0OworICAgIGNvbnN0IEJvcmRlclZhbHVlJiBi
b3JkZXJBZGpvaW5pbmdFbmRDZWxsKGNvbnN0IFJlbmRlclRhYmxlQ2VsbCYpIGNvbnN0OwogCiAg
ICAgY29uc3QgUmVuZGVyVGFibGVDZWxsKiBmaXJzdFJvd0NlbGxBZGpvaW5pbmdUYWJsZVN0YXJ0
KCkgY29uc3Q7CiAgICAgY29uc3QgUmVuZGVyVGFibGVDZWxsKiBmaXJzdFJvd0NlbGxBZGpvaW5p
bmdUYWJsZUVuZCgpIGNvbnN0Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>