<?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>211395</bug_id>
          
          <creation_ts>2020-05-04 13:51:45 -0700</creation_ts>
          <short_desc>[JSC] DFG NotCellUse is used without considering about BigInt32</short_desc>
          <delta_ts>2020-05-04 22:05:32 -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>JavaScriptCore</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1648712</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-05-04 13:51:45 -0700</bug_when>
    <thetext>We are using NonCellUse without considering about BigInt32 case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648779</commentid>
    <comment_count>1</comment_count>
      <attachid>398426</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-05-04 15:30:47 -0700</bug_when>
    <thetext>Created attachment 398426
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648865</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-05-04 17:38:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/62845759&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648936</commentid>
    <comment_count>3</comment_count>
      <attachid>398426</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-04 21:39:38 -0700</bug_when>
    <thetext>Comment on attachment 398426
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:10849
&gt; +    GPRReg tempGPR = temp.gpr();

Gonna be unused when USE(BIGINT32) is false

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:17609
&gt; +        LValue nonCell = lowNotCell(edge);

You’re gonna need an UNUSED_PARAM below this for non bigint32</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648948</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-05-04 22:05:32 -0700</bug_when>
    <thetext>Committed r261147: &lt;https://trac.webkit.org/changeset/261147&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398426</attachid>
            <date>2020-05-04 15:30:47 -0700</date>
            <delta_ts>2020-05-04 21:39:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211395-20200504153045.patch</filename>
            <type>text/plain</type>
            <size>26651</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
YmZiNTZhZWE3MjUzZGIxNzZjYWU0OTU2NmNmNzhlYzA3NjViYmVlLi5hMjNkMWE1MjA3M2IyMGEx
OGQzMzYyNmU1Zjk5MzkwYTAyODMxZGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NiBAQAorMjAyMC0wNS0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIERGRyBOb3RDZWxsVXNlIGlzIHVzZWQgd2l0aG91dCBjb25zaWRl
cmluZyBhYm91dCBCaWdJbnQzMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjExMzk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2hlbiB3ZSBzZWUgQ29tcGFyZVhYWChCaWdJbnQzMiwgRG91YmxlKSwgd2Ug
YXJlIGVtaXR0aW5nIENvbXBhcmVYWFgoRG91YmxlUmVwKEJpZ0ludDpOb3RDZWxsVXNlKSwgRG91
YmxlKS4gQnV0IHRoaXMgaGFzIHR3byBwcm9ibGVtcy4KKworICAgICAgICAxLiBXZSBzaG91bGQg
ZW1pdCBDb21wYXJlWFhYKFVudHlwZWRVc2UsIFVudHlwZWRVc2UpIGluIHRoaXMgY2FzZS4KKyAg
ICAgICAgMi4gRG91YmxlUmVwKE5vdENlbGxVc2UpIGRvZXMgbm90IHN1cHBvcnQgY29udmVydGlu
ZyBCaWdJbnQzMiB0byBkb3VibGUuIFNpbmNlIERvdWJsZVJlcCdzIHNlbWFudGljcyBpcyBmb3Ig
VG9OdW1iZXIsIGl0IHNob3VsZCBub3QKKyAgICAgICAgICAgYWNjZXB0IEJpZ0ludDMyIHNpbmNl
IGl0IHNob3VsZCB0aHJvdyBhbiBlcnJvci4gSG93ZXZlciwgRG91YmxlUmVwIGN1cnJlbnRseSBh
c3N1bWVzIHRoYXQgTm90Q2VsbFVzZSB2YWx1ZSBjYW4gYmUgY29udmVydGVkIHRvIGRvdWJsZQor
ICAgICAgICAgICB3aXRob3V0IGFueSBlcnJvcnMuCisKKyAgICAgICAgVG8ga2VlcCBEb3VibGVS
ZXAncyBzZW1hbnRpY3MgVG9OdW1iZXIsIHdlIHJlcGxhY2UgTm90Q2VsbFVzZSB3aXRoIE5vdENl
bGxOb3JCaWdJbnRVc2UsIHdoaWNoIHJlamVjdHMgQmlnSW50MzIuIFRoaXMgcGF0Y2ggYWxzbyB1
c2VzIE5vdENlbGxOb3JCaWdJbnRVc2UKKyAgICAgICAgZm9yIFZhbHVlVG9JbnQzMiBiZWNhdXNl
IG9mIHRoZSBzYW1lIHJlYXNvbi4KKworICAgICAgICBGb3IgQ29tcGFyZVhYWCBhbmQgQ29tcGFy
ZUVxIG5vZGVzLCB3ZSBjYW4gb3B0aW1pemUgaXQgaWYgd2UgaW50cm9kdWNlIG5ldyBEb3VibGVS
ZXBBY2NlcHRpbmdCaWdJbnQzMiBERkcgbm9kZSB3aGljaCBjYW4gY29udmVydCBCaWdJbnQzMiB0
byBEb3VibGUsIHNpbmNlCisgICAgICAgIENvbXBhcmVYWFggYW5kIENvbXBhcmVFcSBhcmUgbm90
IHJlcXVpcmluZyB0b051bWJlciBzZW1hbnRpY3MuIFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gYSBz
ZXBhcmF0ZSBidWcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTQw
Ny4KKworICAgICAgICAqIGJ5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmg6CisgICAgICAgIChKU0M6
OmlzTm90Q2VsbE5vckJpZ0ludFNwZWN1bGF0aW9uKToKKyAgICAgICAgKiBkZmcvREZHQWJzdHJh
Y3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVy
cHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRm
Zy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1
cE5vZGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeEludENvbnZlcnRpbmdF
ZGdlKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cENoZWNrc0luQmxvY2sp
OgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6c2hv
dWxkU3BlY3VsYXRlTm90Q2VsbE5vckJpZ0ludCk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4
ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlVG9FeGVjdXRlRWRnZTo6b3BlcmF0b3Io
KSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlVG9JbnQzMik6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEb3VibGVSZXApOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVOb3RDZWxsTm9yQmlnSW50KToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKToKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5jcHA6CisgICAgICAg
IChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdVc2VLaW5kLmg6CisgICAg
ICAgIChKU0M6OkRGRzo6dHlwZUZpbHRlckZvcik6CisgICAgICAgIChKU0M6OkRGRzo6Y2hlY2tN
YXlDcmFzaElmSW5wdXRJc0VtcHR5KToKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNw
cDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTG93
ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29t
cGlsZURvdWJsZVJlcCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNv
bXBpbGVWYWx1ZVRvSW50MzIpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0Iz
OjpudW1iZXJPck5vdENlbGxOb3JCaWdJbnRUb0ludDMyKToKKyAgICAgICAgKEpTQzo6RlRMOjpE
Rkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9CMzo6c3BlY3VsYXRlTm90Q2VsbE5vckJpZ0ludCk6CisgICAgICAgIChKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvQjM6Om51bWJlck9yTm90Q2VsbFRvSW50MzIpOiBEZWxldGVkLgor
CiAyMDIwLTA1LTA0ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBXb3JrZXI6IHNob3VsZCB1c2UgdGhlIG5hbWUgb2YgdGhlIHdvcmtl
ciBpZiBpdCBleGlzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TcGVjdWxhdGVkVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1
bGF0ZWRUeXBlLmgKaW5kZXggOWY2M2Q4NDdkOTMyOTY0YmRiNWUyM2IyMjlkOWQ2NTg5NTczNTRi
MC4uN2I3YWEyMjUzY2VlMmIzMDkzNjE3YTJjN2E5MWQyZTg3MzdlOWM1MCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKQEAgLTE1Miw2ICsx
NTIsMTEgQEAgaW5saW5lIGJvb2wgaXNOb3RDZWxsU3BlY3VsYXRpb24oU3BlY3VsYXRlZFR5cGUg
dmFsdWUpCiAgICAgcmV0dXJuICEodmFsdWUgJiBTcGVjQ2VsbENoZWNrKSAmJiB2YWx1ZTsKIH0K
IAoraW5saW5lIGJvb2wgaXNOb3RDZWxsTm9yQmlnSW50U3BlY3VsYXRpb24oU3BlY3VsYXRlZFR5
cGUgdmFsdWUpCit7CisgICAgcmV0dXJuICEodmFsdWUgJiAoU3BlY0NlbGxDaGVjayB8IFNwZWNC
aWdJbnQpKSAmJiB2YWx1ZTsKK30KKwogaW5saW5lIGJvb2wgaXNPYmplY3RTcGVjdWxhdGlvbihT
cGVjdWxhdGVkVHlwZSB2YWx1ZSkKIHsKICAgICByZXR1cm4gISEodmFsdWUgJiBTcGVjT2JqZWN0
KSAmJiAhKHZhbHVlICYgflNwZWNPYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDU5NDI2
MzljZDIxMGQxMGQ4YmVmODEwNjJiZGIxNzZmMjJlOTVhZjMuLmUxNWZmMDA1YTU3YjhkNTQzMWM1
MTRkZGNlMmYwMGNmOTc3M2IxNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTcwOSw3ICs3MDks
NyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRl
RWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogCiAgICAgICAgIFNwZWN1bGF0ZWRUeXBlIHR5
cGUgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5tX3R5cGU7CiAgICAgICAgIHN3aXRjaCAobm9k
ZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7Ci0gICAgICAgIGNhc2UgTm90Q2VsbFVzZTogeworICAg
ICAgICBjYXNlIE5vdENlbGxOb3JCaWdJbnRVc2U6IHsKICAgICAgICAgICAgIGlmICh0eXBlICYg
U3BlY090aGVyKSB7CiAgICAgICAgICAgICAgICAgdHlwZSAmPSB+U3BlY090aGVyOwogICAgICAg
ICAgICAgICAgIHR5cGUgfD0gU3BlY0RvdWJsZVB1cmVOYU4gfCBTcGVjQm9vbEludDMyOyAvLyBO
dWxsIGJlY29tZXMgemVybywgdW5kZWZpbmVkIGJlY29tZXMgTmFOLgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggODBlZDRhMDA2YWNhMGEyNDA5NGJl
NDQ0MDgzNGNhZmRhMDlkOTIwZS4uYTAxYTA1ZDY1NWM5MDY0ZjdkN2JmN2JlNjBiZDI2ZTQxNjU0
Mzc3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBA
IC00MjksNyArNDI5LDcgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAg
ICAgIH0KIAogICAgICAgICBjYXNlIEFyaXRoQ2x6MzI6IHsKLSAgICAgICAgICAgIGlmIChub2Rl
LT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlTm90Q2VsbCgpKSB7CisgICAgICAgICAgICBpZiAo
bm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZU5vdENlbGxOb3JCaWdJbnQoKSkgewogICAg
ICAgICAgICAgICAgIGZpeEludENvbnZlcnRpbmdFZGdlKG5vZGUtPmNoaWxkMSgpKTsKICAgICAg
ICAgICAgICAgICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOwogICAgICAgICAg
ICAgfSBlbHNlCkBAIC00NzYsNyArNDc2LDcgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQ
aGFzZSB7CiAgICAgICAgICAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRl
KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlm
IChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlTm90Q2VsbCgpKSB7CisgICAgICAgICAg
ICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZU5vdENlbGxOb3JCaWdJbnQoKSkg
ewogICAgICAgICAgICAgICAgIG5vZGUtPnNldE9wKEFyaXRoTmVnYXRlKTsKICAgICAgICAgICAg
ICAgICBmaXhEb3VibGVPckJvb2xlYW5FZGdlKG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAg
ICAgICBub2RlLT5zZXRSZXN1bHQoTm9kZVJlc3VsdERvdWJsZSk7CkBAIC03NDEsNyArNzQxLDcg
QEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hv
dWxkU3BlY3VsYXRlTm90Q2VsbCgpKSB7CisgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkt
PnNob3VsZFNwZWN1bGF0ZU5vdENlbGxOb3JCaWdJbnQoKSkgewogICAgICAgICAgICAgICAgIGZp
eERvdWJsZU9yQm9vbGVhbkVkZ2Uobm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgIG5v
ZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSk7CiAgICAgICAgICAgICB9IGVsc2UKQEAg
LTgwMCw3ICs4MDAsNyBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAg
ICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9JZGVudGl0eSgpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91
bGRTcGVjdWxhdGVOb3RDZWxsKCkpIHsKKyAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+
c2hvdWxkU3BlY3VsYXRlTm90Q2VsbE5vckJpZ0ludCgpKSB7CiAgICAgICAgICAgICAgICAgZml4
RG91YmxlT3JCb29sZWFuRWRnZShub2RlLT5jaGlsZDEoKSk7CiAKICAgICAgICAgICAgICAgICBp
ZiAoaXNJbnQzMk9yQm9vbGVhblNwZWN1bGF0aW9uKG5vZGUtPmdldEhlYXBQcmVkaWN0aW9uKCkp
ICYmIG1fZ3JhcGgucm91bmRTaG91bGRTcGVjdWxhdGVJbnQzMihub2RlLCBGaXh1cFBhc3MpKSB7
CkBAIC04MjMsNyArODIzLDcgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAg
ICAgICAgIGNhc2UgQXJpdGhTcXJ0OgogICAgICAgICBjYXNlIEFyaXRoVW5hcnk6IHsKICAgICAg
ICAgICAgIEVkZ2UmIGNoaWxkMSA9IG5vZGUtPmNoaWxkMSgpOwotICAgICAgICAgICAgaWYgKGNo
aWxkMS0+c2hvdWxkU3BlY3VsYXRlTm90Q2VsbCgpKSB7CisgICAgICAgICAgICBpZiAoY2hpbGQx
LT5zaG91bGRTcGVjdWxhdGVOb3RDZWxsTm9yQmlnSW50KCkpIHsKICAgICAgICAgICAgICAgICBm
aXhEb3VibGVPckJvb2xlYW5FZGdlKGNoaWxkMSk7CiAgICAgICAgICAgICAgICAgbm9kZS0+Y2xl
YXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlKTsKICAgICAgICAgICAgIH0gZWxzZQpAQCAtOTEwLDkg
KzkxMCwxMiBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAg
ICAgICBmaXhEb3VibGVPckJvb2xlYW5FZGdlKG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAg
ICAgICBmaXhEb3VibGVPckJvb2xlYW5FZGdlKG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgLy8gRklYTUU6IFdlIGNhbiBjb252ZXJ0IEJpZ0ludDMyIHRvIERv
dWJsZSBpbiBDb21wYXJlIG5vZGVzIHNpbmNlIHRoZXkgZG8gbm90IHJlcXVpcmUgVG9OdW1iZXIg
c2VtYW50aWNzLgorICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxMTQwNwogICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgIT0gQ29tcGFyZUVx
Ci0gICAgICAgICAgICAgICAgJiYgbm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZU5vdENl
bGwoKQotICAgICAgICAgICAgICAgICYmIG5vZGUtPmNoaWxkMigpLT5zaG91bGRTcGVjdWxhdGVO
b3RDZWxsKCkpIHsKKyAgICAgICAgICAgICAgICAmJiBub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3Bl
Y3VsYXRlTm90Q2VsbE5vckJpZ0ludCgpCisgICAgICAgICAgICAgICAgJiYgbm9kZS0+Y2hpbGQy
KCktPnNob3VsZFNwZWN1bGF0ZU5vdENlbGxOb3JCaWdJbnQoKSkgewogICAgICAgICAgICAgICAg
IGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlTnVtYmVyT3JCb29sZWFuKCkpCiAg
ICAgICAgICAgICAgICAgICAgIGZpeERvdWJsZU9yQm9vbGVhbkVkZ2Uobm9kZS0+Y2hpbGQxKCkp
OwogICAgICAgICAgICAgICAgIGVsc2UKQEAgLTM2OTAsNyArMzY5Myw3IEBAIGNsYXNzIEZpeHVw
UGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICBlbHNlIGlmIChub2RlLT5zaG91bGRTcGVj
dWxhdGVOdW1iZXIoKSkKICAgICAgICAgICAgIHVzZUtpbmQgPSBEb3VibGVSZXBVc2U7CiAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIHVzZUtpbmQgPSBOb3RDZWxsVXNlOworICAgICAgICAgICAg
dXNlS2luZCA9IE5vdENlbGxOb3JCaWdJbnRVc2U7CiAgICAgICAgIE5vZGUqIG5ld05vZGUgPSBt
X2luc2VydGlvblNldC5pbnNlcnROb2RlKAogICAgICAgICAgICAgbV9pbmRleEluQmxvY2ssIFNw
ZWNJbnQzMk9ubHksIFZhbHVlVG9JbnQzMiwgbV9jdXJyZW50Tm9kZS0+b3JpZ2luLAogICAgICAg
ICAgICAgRWRnZShub2RlLCB1c2VLaW5kKSk7CkBAIC00MzQxLDcgKzQzNDQsNyBAQCBjbGFzcyBG
aXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
bHNlIGlmIChlZGdlLT5zaG91bGRTcGVjdWxhdGVOdW1iZXIoKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdXNlS2luZCA9IE51bWJlclVzZTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZUtpbmQgPSBO
b3RDZWxsVXNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VLaW5kID0gTm90
Q2VsbE5vckJpZ0ludFVzZTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9
IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluZGV4Rm9yQ2hlY2tzLCBTcGVjQnl0ZWNvZGVEb3VibGUsIERvdWJsZVJlcCwgb3JpZ2lu
Rm9yQ2hlY2tzLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRleCA4NzJjZDEwN2U2
OGNkMDVkYjdhYWI4YTQxYTFjY2QwOWZkZjU5ZmZmLi5mZjM4Y2VkNWViNTA5N2ZkYWI2MGI2ZDVi
YTRiMjM3YzdlNTI0Nzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApAQCAtMjc2
NSw2ICsyNzY1LDExIEBAIHN0cnVjdCBOb2RlIHsKICAgICB7CiAgICAgICAgIHJldHVybiBpc05v
dENlbGxTcGVjdWxhdGlvbihwcmVkaWN0aW9uKCkpOwogICAgIH0KKworICAgIGJvb2wgc2hvdWxk
U3BlY3VsYXRlTm90Q2VsbE5vckJpZ0ludCgpCisgICAgeworICAgICAgICByZXR1cm4gaXNOb3RD
ZWxsTm9yQmlnSW50U3BlY3VsYXRpb24ocHJlZGljdGlvbigpKTsKKyAgICB9CiAgICAgCiAgICAg
Ym9vbCBzaG91bGRTcGVjdWxhdGVVbnR5cGVkRm9yQXJpdGhtZXRpYygpCiAgICAgewpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCA0MzZiZmIxNTIw
OWYyZTYyZGIwYzFiM2QzY2I4N2M4YjYzMTk5MTYyLi44YzczZjU1MWNiNTUxNWZjOGZiMjg3NmYw
ZDE4MDU4OTdiODE3NTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVU
b0V4ZWN1dGUuaApAQCAtODcsNiArODcsNyBAQCBjbGFzcyBTYWZlVG9FeGVjdXRlRWRnZSB7CiAg
ICAgICAgIGNhc2UgTm90U3RyaW5nVmFyVXNlOgogICAgICAgICBjYXNlIE5vdFN5bWJvbFVzZToK
ICAgICAgICAgY2FzZSBOb3RDZWxsVXNlOgorICAgICAgICBjYXNlIE5vdENlbGxOb3JCaWdJbnRV
c2U6CiAgICAgICAgIGNhc2UgT3RoZXJVc2U6CiAgICAgICAgIGNhc2UgTWlzY1VzZToKICAgICAg
ICAgY2FzZSBBbnlJbnRVc2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwCmluZGV4IDc3Y2QzMTViMjgyZWNhMjM5NzEyZjJhOGZiYThmNWIwNDBh
YTY3NWMuLmMxNDY0OTQ0Y2U5ODkwMWFkN2E5MjkzZGMyZTE3MjU4ZWZkMzU5NzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0yMzgz
LDcgKzIzODMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVUb0ludDMyKE5v
ZGUqIG5vZGUpCiAgICAgfQogICAgIAogICAgIGNhc2UgTnVtYmVyVXNlOgotICAgIGNhc2UgTm90
Q2VsbFVzZTogeworICAgIGNhc2UgTm90Q2VsbE5vckJpZ0ludFVzZTogewogICAgICAgICBzd2l0
Y2ggKGNoZWNrR2VuZXJhdGVkVHlwZUZvclRvSW50MzIobm9kZS0+Y2hpbGQxKCkubm9kZSgpKSkg
ewogICAgICAgICBjYXNlIEdlbmVyYXRlZE9wZXJhbmRJbnRlZ2VyOiB7CiAgICAgICAgICAgICBT
cGVjdWxhdGVJbnQzMk9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpLCBNYW51YWxPcGVy
YW5kU3BlY3VsYXRpb24pOwpAQCAtMjQxNCw2ICsyNDE0LDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVWYWx1ZVRvSW50MzIoTm9kZSogbm9kZSkKICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICBERkdfVFlQRV9DSEVDSygKICAgICAgICAgICAgICAgICAgICAgSlNWYWx1
ZVJlZ3MoZ3ByKSwgbm9kZS0+Y2hpbGQxKCksIH5TcGVjQ2VsbENoZWNrLCBtX2ppdC5icmFuY2hJ
ZkNlbGwoSlNWYWx1ZVJlZ3MoZ3ByKSkpOworI2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAgICAg
ICAgICBERkdfVFlQRV9DSEVDSygKKyAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MoZ3By
KSwgbm9kZS0+Y2hpbGQxKCksIH5TcGVjQ2VsbENoZWNrICYgflNwZWNCaWdJbnQsIG1faml0LmJy
YW5jaElmQmlnSW50MzIoSlNWYWx1ZVJlZ3MoZ3ByKSwgcmVzdWx0R3ByKSk7CisjZW5kaWYKICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAvLyBJdCdzIG5vdCBhIGNlbGw6IHNvIHRy
dWUgdHVybnMgaW50byAxIGFuZCBhbGwgZWxzZSB0dXJucyBpbnRvIDAuCiAgICAgICAgICAgICAg
ICAgbV9qaXQuY29tcGFyZTY0KEpJVENvbXBpbGVyOjpFcXVhbCwgZ3ByLCBUcnVzdGVkSW1tMzIo
SlNWYWx1ZTo6VmFsdWVUcnVlKSwgcmVzdWx0R3ByKTsKQEAgLTI2MDksNyArMjYxMyw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEb3VibGVSZXAoTm9kZSogbm9kZSkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICAgICAKLSAgICBjYXNlIE5vdENlbGxVc2U6CisgICAgY2FzZSBOb3RD
ZWxsTm9yQmlnSW50VXNlOgogICAgIGNhc2UgTnVtYmVyVXNlOiB7CiAgICAgICAgIFNwZWN1bGF0
ZWRUeXBlIHBvc3NpYmxlVHlwZXMgPSBtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLm1f
dHlwZTsKICAgICAgICAgaWYgKGlzSW50MzJTcGVjdWxhdGlvbihwb3NzaWJsZVR5cGVzKSkgewpA
QCAtMjYzMyw3ICsyNjM3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURvdWJsZVJl
cChOb2RlKiBub2RlKQogCiAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGlzSW50ZWdlciA9IG1f
aml0LmJyYW5jaElmSW50MzIob3AxR1BSKTsKIAotICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCku
dXNlS2luZCgpID09IE5vdENlbGxVc2UpIHsKKyAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVz
ZUtpbmQoKSA9PSBOb3RDZWxsTm9yQmlnSW50VXNlKSB7CiAgICAgICAgICAgICBKSVRDb21waWxl
cjo6SnVtcCBpc051bWJlciA9IG1faml0LmJyYW5jaElmTnVtYmVyKG9wMUdQUik7CiAgICAgICAg
ICAgICBKSVRDb21waWxlcjo6SnVtcCBpc1VuZGVmaW5lZCA9IG1faml0LmJyYW5jaElmVW5kZWZp
bmVkKG9wMUdQUik7CiAKQEAgLTI2NDMsNyArMjY0Nyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVEb3VibGVSZXAoTm9kZSogbm9kZSkKICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpK
dW1wIGlzTnVsbCA9IG1faml0LmJyYW5jaElmTnVsbChvcDFHUFIpOwogICAgICAgICAgICAgZG9u
ZS5hcHBlbmQoaXNOdWxsKTsKIAotICAgICAgICAgICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVJl
Z3Mob3AxR1BSKSwgbm9kZS0+Y2hpbGQxKCksIH5TcGVjQ2VsbENoZWNrLAorICAgICAgICAgICAg
REZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVJlZ3Mob3AxR1BSKSwgbm9kZS0+Y2hpbGQxKCksIH5TcGVj
Q2VsbENoZWNrICYgflNwZWNCaWdJbnQsCiAgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoVGVz
dDY0KEpJVENvbXBpbGVyOjpaZXJvLCBvcDFHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCb29s
VGFnKSkpOwogCiAgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBpc0ZhbHNlID0gbV9qaXQu
YnJhbmNoNjQoSklUQ29tcGlsZXI6OkVxdWFsLCBvcDFHUFIsIFRydXN0ZWRJbW02NChKU1ZhbHVl
OjpWYWx1ZUZhbHNlKSk7CkBAIC0yNjgxLDcgKzI2ODUsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlRG91YmxlUmVwKE5vZGUqIG5vZGUpCiAgICAgCiAgICAgICAgIEpJVENvbXBpbGVy
OjpKdW1wIGlzSW50ZWdlciA9IG1faml0LmJyYW5jaElmSW50MzIob3AxVGFnR1BSKTsKIAotICAg
ICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IE5vdENlbGxVc2UpIHsKKyAgICAg
ICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBOb3RDZWxsTm9yQmlnSW50VXNlKSB7
CiAgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBpc051bWJlciA9IG1faml0LmJyYW5jaDMy
KEpJVENvbXBpbGVyOjpCZWxvdywgb3AxVGFnR1BSLCBKSVRDb21waWxlcjo6VHJ1c3RlZEltbTMy
KEpTVmFsdWU6Okxvd2VzdFRhZyArIDEpKTsKICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1w
IGlzVW5kZWZpbmVkID0gbV9qaXQuYnJhbmNoSWZVbmRlZmluZWQob3AxVGFnR1BSKTsKIApAQCAt
MTA4MzMsNiArMTA4MzcsMjMgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90Q2Vs
bChFZGdlIGVkZ2UpCiAgICAgc3BlY3VsYXRlTm90Q2VsbChlZGdlLCBvcGVyYW5kLmpzVmFsdWVS
ZWdzKCkpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVOb3RDZWxsTm9yQmln
SW50KEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIH5TcGVjQ2Vs
bENoZWNrICYgflNwZWNCaWdJbnQpKQorICAgICAgICByZXR1cm47CisKKyAgICBKU1ZhbHVlT3Bl
cmFuZCBvcGVyYW5kKHRoaXMsIGVkZ2UsIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7CisgICAg
R1BSVGVtcG9yYXJ5IHRlbXAodGhpcyk7CisKKyAgICBKU1ZhbHVlUmVncyByZWdzID0gb3BlcmFu
ZC5qc1ZhbHVlUmVncygpOworICAgIEdQUlJlZyB0ZW1wR1BSID0gdGVtcC5ncHIoKTsKKworICAg
IERGR19UWVBFX0NIRUNLKHJlZ3MsIGVkZ2UsIH5TcGVjQ2VsbENoZWNrLCBtX2ppdC5icmFuY2hJ
ZkNlbGwocmVncykpOworI2lmIFVTRShCSUdJTlQzMikKKyAgICBERkdfVFlQRV9DSEVDSyhyZWdz
LCBlZGdlLCB+U3BlY0NlbGxDaGVjayAmIH5TcGVjQmlnSW50LCBtX2ppdC5icmFuY2hJZkJpZ0lu
dDMyKHJlZ3MsIHRlbXBHUFIpKTsKKyNlbmRpZgorfQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpz
cGVjdWxhdGVPdGhlcihFZGdlIGVkZ2UsIEpTVmFsdWVSZWdzIHJlZ3MsIEdQUlJlZyB0ZW1wR1BS
KQogewogICAgIERGR19UWVBFX0NIRUNLKHJlZ3MsIGVkZ2UsIFNwZWNPdGhlciwgbV9qaXQuYnJh
bmNoSWZOb3RPdGhlcihyZWdzLCB0ZW1wR1BSKSk7CkBAIC0xMTAxMiw2ICsxMTAzMyw5IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZShOb2RlKiwgRWRnZSBlZGdlKQogICAgIGNhc2Ug
Tm90Q2VsbFVzZToKICAgICAgICAgc3BlY3VsYXRlTm90Q2VsbChlZGdlKTsKICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBOb3RDZWxsTm9yQmlnSW50VXNlOgorICAgICAgICBzcGVjdWxhdGVOb3RD
ZWxsTm9yQmlnSW50KGVkZ2UpOworICAgICAgICBicmVhazsKICAgICBjYXNlIE90aGVyVXNlOgog
ICAgICAgICBzcGVjdWxhdGVPdGhlcihlZGdlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggNzc5NmQwNTZlMTEy
ZTVmYjNjZWIyM2I4ODc1MDI3MDk0ODVlZDRjMy4uMzE5OTQ4MTE2ZWIwOTgxMGY0NGI0MjQxMWMy
Y2U4ZTU4MDkzNzBlNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaApAQCAtMTYzOSw2ICsxNjM5LDcgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewog
ICAgIHZvaWQgc3BlY3VsYXRlSGVhcEJpZ0ludChFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZU5v
dENlbGwoRWRnZSwgSlNWYWx1ZVJlZ3MpOwogICAgIHZvaWQgc3BlY3VsYXRlTm90Q2VsbChFZGdl
KTsKKyAgICB2b2lkIHNwZWN1bGF0ZU5vdENlbGxOb3JCaWdJbnQoRWRnZSk7CiAgICAgdm9pZCBz
cGVjdWxhdGVPdGhlcihFZGdlLCBKU1ZhbHVlUmVncywgR1BSUmVnIHRlbXApOwogICAgIHZvaWQg
c3BlY3VsYXRlT3RoZXIoRWRnZSwgSlNWYWx1ZVJlZ3MpOwogICAgIHZvaWQgc3BlY3VsYXRlT3Ro
ZXIoRWRnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtp
bmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcAppbmRleCBh
YjYzMWM5Y2RiN2QzN2YxNGE1ZDlkZTMwZDE4N2YyMzVjNWUwMTk0Li43YWJkOGQxZGI3ZjVlOGM2
MWE4YWE0YzIzY2QyNmVhOGI0MjBmN2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1VzZUtpbmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VXNlS2luZC5jcHAKQEAgLTE2OSw2ICsxNjksOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRT
dHJlYW0mIG91dCwgVXNlS2luZCB1c2VLaW5kKQogICAgIGNhc2UgTm90Q2VsbFVzZToKICAgICAg
ICAgb3V0LnByaW50KCJOb3RDZWxsIik7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIE5vdENl
bGxOb3JCaWdJbnRVc2U6CisgICAgICAgIG91dC5wcmludCgiTm90Q2VsbE5vckJpZ0ludCIpOwor
ICAgICAgICByZXR1cm47CiAgICAgY2FzZSBLbm93bk90aGVyVXNlOgogICAgICAgICBvdXQucHJp
bnQoIktub3duT3RoZXIiKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1VzZUtpbmQuaAppbmRleCBmNGY3YjMzYmI1NWYzOWU4NzBjZmJmNjE0MjU1ODIyNDZhMzcy
M2ViLi5jYmYwODM3OGRmNjVmNGM4M2ViNzBmMGIyMjFmYmEwY2M5NzQ2ZTY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaApAQCAtODAsNiArODAsNyBAQCBlbnVtIFVzZUtp
bmQgewogICAgIE5vdFN0cmluZ1ZhclVzZSwKICAgICBOb3RTeW1ib2xVc2UsCiAgICAgTm90Q2Vs
bFVzZSwKKyAgICBOb3RDZWxsTm9yQmlnSW50VXNlLAogICAgIEtub3duT3RoZXJVc2UsCiAgICAg
T3RoZXJVc2UsCiAgICAgTWlzY1VzZSwKQEAgLTE4NCw2ICsxODUsOCBAQCBpbmxpbmUgU3BlY3Vs
YXRlZFR5cGUgdHlwZUZpbHRlckZvcihVc2VLaW5kIHVzZUtpbmQpCiAgICAgICAgIHJldHVybiB+
U3BlY1N5bWJvbDsKICAgICBjYXNlIE5vdENlbGxVc2U6CiAgICAgICAgIHJldHVybiB+U3BlY0Nl
bGxDaGVjazsKKyAgICBjYXNlIE5vdENlbGxOb3JCaWdJbnRVc2U6CisgICAgICAgIHJldHVybiB+
U3BlY0NlbGxDaGVjayAmIH5TcGVjQmlnSW50OwogICAgIGNhc2UgS25vd25PdGhlclVzZToKICAg
ICBjYXNlIE90aGVyVXNlOgogICAgICAgICByZXR1cm4gU3BlY090aGVyOwpAQCAtMzAxLDYgKzMw
NCw3IEBAIGlubGluZSBib29sIGNoZWNrTWF5Q3Jhc2hJZklucHV0SXNFbXB0eShVc2VLaW5kIGtp
bmQpCiAgICAgY2FzZSBPdGhlclVzZToKICAgICBjYXNlIE1pc2NVc2U6CiAgICAgY2FzZSBOb3RD
ZWxsVXNlOgorICAgIGNhc2UgTm90Q2VsbE5vckJpZ0ludFVzZToKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCmluZGV4IGJjOTczMDdlMWE3ZmQ4NTZm
ZDI4YWU5Yzc1MWViMDI1YzIyZGExM2MuLjBiZDcyNzdhMzc3YWE1MGMyODFjMjE5YmU3MWIzODAz
NzJiZjY0ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJp
bGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGll
cy5jcHAKQEAgLTUwMCw2ICs1MDAsNyBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShHcmFw
aCYgZ3JhcGgpCiAgICAgICAgICAgICAgICAgY2FzZSBQcm94eU9iamVjdFVzZToKICAgICAgICAg
ICAgICAgICBjYXNlIERlcml2ZWRBcnJheVVzZToKICAgICAgICAgICAgICAgICBjYXNlIE5vdENl
bGxVc2U6CisgICAgICAgICAgICAgICAgY2FzZSBOb3RDZWxsTm9yQmlnSW50VXNlOgogICAgICAg
ICAgICAgICAgIGNhc2UgT3RoZXJVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBLbm93bk90aGVy
VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgTWlzY1VzZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCAzODEyM2FlMTc2NDNkNWU2YTAxMmRh
ZmIyODE4MGM5OTBmY2EyNzU5Li45ZTE0MmMyYmJlZTJiNzVlYzE4YjAxNTQyODMxNTZlMWViZGY1
ODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9C
My5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
CkBAIC0xNzU0LDkgKzE3NTQsOSBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgY2FzZSBOb3RDZWxsVXNl
OgorICAgICAgICBjYXNlIE5vdENlbGxOb3JCaWdJbnRVc2U6CiAgICAgICAgIGNhc2UgTnVtYmVy
VXNlOiB7Ci0gICAgICAgICAgICBib29sIHNob3VsZENvbnZlcnROb25OdW1iZXIgPSBtX25vZGUt
PmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBOb3RDZWxsVXNlOworICAgICAgICAgICAgYm9vbCBzaG91
bGRDb252ZXJ0Tm9uTnVtYmVyID0gbV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gTm90Q2Vs
bE5vckJpZ0ludFVzZTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0g
bG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwog
CkBAIC0xODE5LDcgKzE4MTksNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAg
ICAgIG1fb3V0LmFwcGVuZFRvKGNvbnZlcnRCb29sZWFuRmFsc2VDYXNlLCBjb250aW51YXRpb24p
OwogCiAgICAgICAgICAgICAgICAgTFZhbHVlIHZhbHVlSXNOb3RCb29sZWFuRmFsc2UgPSBtX291
dC5ub3RFcXVhbCh2YWx1ZSwgbV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjpWYWx1ZUZhbHNlKSk7
Ci0gICAgICAgICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKHZhbHVlKSwgbV9u
b2RlLT5jaGlsZDEoKSwgflNwZWNDZWxsQ2hlY2ssIHZhbHVlSXNOb3RCb29sZWFuRmFsc2UpOwor
ICAgICAgICAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZSh2YWx1ZSksIG1fbm9k
ZS0+Y2hpbGQxKCksIH5TcGVjQ2VsbENoZWNrICYgflNwZWNCaWdJbnQsIHZhbHVlSXNOb3RCb29s
ZWFuRmFsc2UpOwogICAgICAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGNvbnZlcnRlZEZhbHNl
ID0gbV9vdXQuYW5jaG9yKG1fb3V0LmNvbnN0RG91YmxlKDApKTsKICAgICAgICAgICAgICAgICBt
X291dC5qdW1wKGNvbnRpbnVhdGlvbik7CiAKQEAgLTE5MTQsNyArMTkxNCw3IEBAIGNsYXNzIExv
d2VyREZHVG9CMyB7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgICAgICBj
YXNlIE51bWJlclVzZToKLSAgICAgICAgY2FzZSBOb3RDZWxsVXNlOiB7CisgICAgICAgIGNhc2Ug
Tm90Q2VsbE5vckJpZ0ludFVzZTogewogICAgICAgICAgICAgTG93ZXJlZE5vZGVWYWx1ZSB2YWx1
ZSA9IG1faW50MzJWYWx1ZXMuZ2V0KG1fbm9kZS0+Y2hpbGQxKCkubm9kZSgpKTsKICAgICAgICAg
ICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkgewogICAgICAgICAgICAgICAgIHNldEludDMyKHZhbHVl
LnZhbHVlKCkpOwpAQCAtMTkyMywxNCArMTkyMywxNCBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewog
ICAgICAgICAgICAgCiAgICAgICAgICAgICB2YWx1ZSA9IG1fanNWYWx1ZVZhbHVlcy5nZXQobV9u
b2RlLT5jaGlsZDEoKS5ub2RlKCkpOwogICAgICAgICAgICAgaWYgKGlzVmFsaWQodmFsdWUpKSB7
Ci0gICAgICAgICAgICAgICAgc2V0SW50MzIobnVtYmVyT3JOb3RDZWxsVG9JbnQzMihtX25vZGUt
PmNoaWxkMSgpLCB2YWx1ZS52YWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgc2V0SW50MzIobnVt
YmVyT3JOb3RDZWxsTm9yQmlnSW50VG9JbnQzMihtX25vZGUtPmNoaWxkMSgpLCB2YWx1ZS52YWx1
ZSgpKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIC8vIFdlJ2xsIGJhc2ljYWxseSBqdXN0IGdldCBoZXJlIGZvciBjb25z
dGFudHMuIEJ1dCBpdCdzIGdvb2QgdG8gaGF2ZSB0aGlzCiAgICAgICAgICAgICAvLyBjYXRjaC1h
bGwgc2luY2Ugd2Ugb2Z0ZW4gYWRkIG5ldyByZXByZXNlbnRhdGlvbnMgaW50byB0aGUgbWl4Lgog
ICAgICAgICAgICAgc2V0SW50MzIoCi0gICAgICAgICAgICAgICAgbnVtYmVyT3JOb3RDZWxsVG9J
bnQzMigKKyAgICAgICAgICAgICAgICBudW1iZXJPck5vdENlbGxOb3JCaWdJbnRUb0ludDMyKAog
ICAgICAgICAgICAgICAgICAgICBtX25vZGUtPmNoaWxkMSgpLAogICAgICAgICAgICAgICAgICAg
ICBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCksIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbikp
KTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTMxNjUsMTMgKzEzMTY1LDEzIEBAIGNsYXNzIExv
d2VyREZHVG9CMyB7CiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5l
eHQpOwogICAgIH0KICAgICAKLSAgICBMVmFsdWUgbnVtYmVyT3JOb3RDZWxsVG9JbnQzMihFZGdl
IGVkZ2UsIExWYWx1ZSB2YWx1ZSkKKyAgICBMVmFsdWUgbnVtYmVyT3JOb3RDZWxsTm9yQmlnSW50
VG9JbnQzMihFZGdlIGVkZ2UsIExWYWx1ZSB2YWx1ZSkKICAgICB7CiAgICAgICAgIExCYXNpY0Js
b2NrIGludENhc2UgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBub3RJ
bnRDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJhc2ljQmxvY2sgZG91YmxlQ2Fz
ZSA9IDA7CiAgICAgICAgIExCYXNpY0Jsb2NrIG5vdE51bWJlckNhc2UgPSAwOwotICAgICAgICBp
ZiAoZWRnZS51c2VLaW5kKCkgPT0gTm90Q2VsbFVzZSkgeworICAgICAgICBpZiAoZWRnZS51c2VL
aW5kKCkgPT0gTm90Q2VsbE5vckJpZ0ludFVzZSkgewogICAgICAgICAgICAgZG91YmxlQ2FzZSA9
IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgICAgICBub3ROdW1iZXJDYXNlID0gbV9vdXQubmV3
QmxvY2soKTsKICAgICAgICAgfQpAQCAtMTMyMDIsNiArMTMyMDIsOSBAQCBjbGFzcyBMb3dlckRG
R1RvQjMgewogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm90TnVtYmVyQ2FzZSwgY29udGlu
dWF0aW9uKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1
ZVZhbHVlKHZhbHVlKSwgZWRnZSwgflNwZWNDZWxsQ2hlY2ssIGlzQ2VsbCh2YWx1ZSkpOworI2lm
IFVTRShCSUdJTlQzMikKKyAgICAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZSh2
YWx1ZSksIGVkZ2UsIH5TcGVjQ2VsbENoZWNrICYgflNwZWNCaWdJbnQsIGlzQmlnSW50MzIodmFs
dWUpKTsKKyNlbmRpZgogICAgICAgICAgICAgCiAgICAgICAgICAgICBMVmFsdWUgc3BlY2lhbFJl
c3VsdCA9IG1fb3V0LnNlbGVjdCgKICAgICAgICAgICAgICAgICBtX291dC5lcXVhbCh2YWx1ZSwg
bV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHRydWUpKSkpLApAQCAt
MTc1NjMsNiArMTc1NjYsOSBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBjYXNlIE5v
dENlbGxVc2U6CiAgICAgICAgICAgICBzcGVjdWxhdGVOb3RDZWxsKGVkZ2UpOwogICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm90Q2VsbE5vckJpZ0ludFVzZToKKyAgICAgICAgICAg
IHNwZWN1bGF0ZU5vdENlbGxOb3JCaWdJbnQoZWRnZSk7CisgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBPdGhlclVzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZU90aGVyKGVkZ2UpOwog
ICAgICAgICAgICAgYnJlYWs7CkBAIC0xNzU5NSw2ICsxNzYwMSwxNiBAQCBjbGFzcyBMb3dlckRG
R1RvQjMgewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBsb3dOb3RDZWxsKGVkZ2UpOwog
ICAgIH0KKworICAgIHZvaWQgc3BlY3VsYXRlTm90Q2VsbE5vckJpZ0ludChFZGdlIGVkZ2UpCisg
ICAgeworICAgICAgICBpZiAoIW1faW50ZXJwcmV0ZXIubmVlZHNUeXBlQ2hlY2soZWRnZSkpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIExWYWx1ZSBub25DZWxsID0gbG93Tm90Q2VsbChl
ZGdlKTsKKyNpZiBVU0UoQklHSU5UMzIpCisgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVW
YWx1ZShub25DZWxsKSwgZWRnZSwgflNwZWNDZWxsQ2hlY2sgJiB+U3BlY0JpZ0ludCwgaXNCaWdJ
bnQzMihub25DZWxsKSk7CisjZW5kaWYKKyAgICB9CiAgICAgCiAgICAgdm9pZCBzcGVjdWxhdGVD
ZWxsT3JPdGhlcihFZGdlIGVkZ2UpCiAgICAgewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VM
b2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCBhZTk4MGFhYWE1NzYxZDM1ZjQxZjRlNmYwOWQw
ZDY5OTc2ZjEyN2Y4Li5kODdiMTA2OWNlODc5ZDVhZmIzNWZkMzQ4YTQ4NzViMGM0OTI5YmUzIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI0IEBACisyMDIwLTA1LTA0ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CisKKyAgICAgICAgW0pTQ10gREZHIE5vdENlbGxVc2UgaXMgdXNlZCB3aXRob3V0IGNvbnNp
ZGVyaW5nIGFib3V0IEJpZ0ludDMyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTEzOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHN0cmVzcy9ub24tY2VsbC1ub3ItYmlnaW50LXNob3VsZC1iZS1lbWl0
dGVkLWZvci10by1udW1iZXItdGFyZ2V0LWlmLWJpZ2ludC1hcHBlYXJzLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHNob3VsZFRocm93KToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAoaS5zaG91bGRU
aHJvdyk6CisgICAgICAgICogc3RyZXNzL25vbi1jZWxsLW5vci1iaWdpbnQtc2hvdWxkLXJlamVj
dC1iaWdpbnQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6
CisgICAgICAgICogc3RyZXNzL3Nob3VsZC1ub3QtZW1pdC1kb3VibGUtcmVwLWZvci1iaWdpbnQu
anM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiBzdHJlc3MvdXJzaGlmdC12YWx1
ZS10by1pbnQzMi1zaG91bGQtcmVqZWN0LWJpZ2ludC5qczogQWRkZWQuCisgICAgICAgIChzaG91
bGRUaHJvdyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKGkuc2hvdWxkVGhyb3cpOgorCiAy
MDIwLTA1LTAxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAg
Rml4IHN0cmVzcy9iaWctaW50LW5lZ2F0ZS1qaXQuanMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL25vbi1jZWxsLW5vci1iaWdpbnQtc2hvdWxkLWJlLWVtaXR0ZWQtZm9yLXRvLW51bWJlci10
YXJnZXQtaWYtYmlnaW50LWFwcGVhcnMuanMgYi9KU1Rlc3RzL3N0cmVzcy9ub24tY2VsbC1ub3It
YmlnaW50LXNob3VsZC1iZS1lbWl0dGVkLWZvci10by1udW1iZXItdGFyZ2V0LWlmLWJpZ2ludC1h
cHBlYXJzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyMWYyNGY2ZThlZWU4NDJmNmE4NWQzZmJmM2NiYTM0YzZl
NTIxMTMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9ub24tY2VsbC1ub3ItYmln
aW50LXNob3VsZC1iZS1lbWl0dGVkLWZvci10by1udW1iZXItdGFyZ2V0LWlmLWJpZ2ludC1hcHBl
YXJzLmpzCkBAIC0wLDAgKzEsNDIgQEAKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9y
TWVzc2FnZSkgeworICAgIHZhciBlcnJvclRocm93biA9IGZhbHNlOworICAgIHZhciBlcnJvciA9
IG51bGw7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgICAgZXJyb3JUaHJvd24gPSB0cnVlOworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAg
IGlmICghZXJyb3JUaHJvd24pCisgICAgICAgIHRocm93IG5ldyBFcnJvcignbm90IHRocm93bicp
OworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSBlcnJvck1lc3NhZ2UpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcihgYmFkIGVycm9yOiAke1N0cmluZyhlcnJvcil9YCk7Cit9CisKK2Z1bmN0aW9u
IHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3Rl
ZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQor
CitmdW5jdGlvbiB0ZXN0KHZhbHVlKSB7CisgICAgcmV0dXJuIE1hdGguYWJzKHZhbHVlKTsKK30K
K25vSW5saW5lKHRlc3QpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAg
c2hvdWxkQmUodGVzdChudWxsKSwgMCk7CisgICAgc2hvdWxkQmUodGVzdChmYWxzZSksIDApOwor
ICAgIHNob3VsZEJlKHRlc3QoMC41KSwgMC41KTsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAx
ZTI7ICsraSkgeworICAgIHNob3VsZFRocm93KCgpID0+IHsKKyAgICAgICAgdGVzdCgybik7Cisg
ICAgfSwgYFR5cGVFcnJvcjogQ29udmVyc2lvbiBmcm9tICdCaWdJbnQnIHRvICdudW1iZXInIGlz
IG5vdCBhbGxvd2VkLmApOworICAgIHNob3VsZFRocm93KCgpID0+IHsKKyAgICAgICAgdGVzdCgw
eGYwMDAwMG4pOworICAgIH0sIGBUeXBlRXJyb3I6IENvbnZlcnNpb24gZnJvbSAnQmlnSW50JyB0
byAnbnVtYmVyJyBpcyBub3QgYWxsb3dlZC5gKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiB7Cisg
ICAgICAgIHRlc3QoMHhmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm4pOworICAgIH0sIGBUeXBl
RXJyb3I6IENvbnZlcnNpb24gZnJvbSAnQmlnSW50JyB0byAnbnVtYmVyJyBpcyBub3QgYWxsb3dl
ZC5gKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL25vbi1jZWxsLW5vci1iaWdpbnQt
c2hvdWxkLXJlamVjdC1iaWdpbnQuanMgYi9KU1Rlc3RzL3N0cmVzcy9ub24tY2VsbC1ub3ItYmln
aW50LXNob3VsZC1yZWplY3QtYmlnaW50LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4M2EzYTkxZjU5OTNiNGE3
OTEwYTdiN2E3ZGFlOGFhNmU5OTkwZjgKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVz
cy9ub24tY2VsbC1ub3ItYmlnaW50LXNob3VsZC1yZWplY3QtYmlnaW50LmpzCkBAIC0wLDAgKzEs
MTkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0
dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcg
KyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0KGEsIGIpIHsKKyAgICByZXR1cm4gYSA8IGI7
Cit9Citub0lubGluZSh0ZXN0KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgewor
ICAgIHNob3VsZEJlKHRlc3QobnVsbCwgMC4yKSwgdHJ1ZSk7CisgICAgc2hvdWxkQmUodGVzdCgw
LjUsIDAuMiksIGZhbHNlKTsKKyAgICBzaG91bGRCZSh0ZXN0KDAuNSwgdW5kZWZpbmVkKSwgZmFs
c2UpOworfQorCitzaG91bGRCZSh0ZXN0KDEsIDIpLCB0cnVlKTsKK2ZvciAodmFyIGkgPSAwOyBp
IDwgMWUzOyArK2kpCisgICAgc2hvdWxkQmUodGVzdCgxbiwgMiksIHRydWUpOwpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3Mvc2hvdWxkLW5vdC1lbWl0LWRvdWJsZS1yZXAtZm9yLWJpZ2ludC5q
cyBiL0pTVGVzdHMvc3RyZXNzL3Nob3VsZC1ub3QtZW1pdC1kb3VibGUtcmVwLWZvci1iaWdpbnQu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjgwMTFkNTU1MjZjMmNlNWEwM2U1NDVjNTg5YzcyMGExOTU4M2ZjZQot
LS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3Nob3VsZC1ub3QtZW1pdC1kb3VibGUt
cmVwLWZvci1iaWdpbnQuanMKQEAgLTAsMCArMSwxMCBAQAorLy9AIHJ1bkRlZmF1bHQoIi0tdmFs
aWRhdGVBYnN0cmFjdEludGVycHJldGVyU3RhdGU9MSIpCisKK2Z1bmN0aW9uIGZvbyh4KSB7Cisg
IGlmICh4ID4gMG4pCisgICAgcmV0dXJuCit9CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDAw
MDA7IGkrKykgeworICAgIGZvbygxKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3Vy
c2hpZnQtdmFsdWUtdG8taW50MzItc2hvdWxkLXJlamVjdC1iaWdpbnQuanMgYi9KU1Rlc3RzL3N0
cmVzcy91cnNoaWZ0LXZhbHVlLXRvLWludDMyLXNob3VsZC1yZWplY3QtYmlnaW50LmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBkYzAwYjk1NGY5YjY1YzFlODk5YWQ5MjBjMjEwZmU4M2Y1OTg4ODcKLS0tIC9kZXYv
bnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy91cnNoaWZ0LXZhbHVlLXRvLWludDMyLXNob3VsZC1y
ZWplY3QtYmlnaW50LmpzCkBAIC0wLDAgKzEsNDIgQEAKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1
bmMsIGVycm9yTWVzc2FnZSkgeworICAgIHZhciBlcnJvclRocm93biA9IGZhbHNlOworICAgIHZh
ciBlcnJvciA9IG51bGw7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgIH0gY2F0Y2gg
KGUpIHsKKyAgICAgICAgZXJyb3JUaHJvd24gPSB0cnVlOworICAgICAgICBlcnJvciA9IGU7Cisg
ICAgfQorICAgIGlmICghZXJyb3JUaHJvd24pCisgICAgICAgIHRocm93IG5ldyBFcnJvcignbm90
IHRocm93bicpOworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSBlcnJvck1lc3NhZ2UpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcihgYmFkIGVycm9yOiAke1N0cmluZyhlcnJvcil9YCk7Cit9CisK
K2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9
PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1
YWwpOworfQorCitmdW5jdGlvbiB0ZXN0KHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVlID4+PiAz
OworfQorbm9JbmxpbmUodGVzdCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsK
KyAgICBzaG91bGRCZSh0ZXN0KG51bGwpLCAwKTsKKyAgICBzaG91bGRCZSh0ZXN0KGZhbHNlKSwg
MCk7CisgICAgc2hvdWxkQmUodGVzdCgxMDAwMDAwMCksIDEyNTAwMDApOworfQorCitmb3IgKHZh
ciBpID0gMDsgaSA8IDFlMjsgKytpKSB7CisgICAgc2hvdWxkVGhyb3coKCkgPT4geworICAgICAg
ICB0ZXN0KDJuKTsKKyAgICB9LCBgVHlwZUVycm9yOiBCaWdJbnQgZG9lcyBub3Qgc3VwcG9ydCA+
Pj4gb3BlcmF0b3JgKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiB7CisgICAgICAgIHRlc3QoMHhm
MDAwMDBuKTsKKyAgICB9LCBgVHlwZUVycm9yOiBCaWdJbnQgZG9lcyBub3Qgc3VwcG9ydCA+Pj4g
b3BlcmF0b3JgKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiB7CisgICAgICAgIHRlc3QoMHhmZmZm
ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm4pOworICAgIH0sIGBUeXBlRXJyb3I6IEJpZ0ludCBkb2Vz
IG5vdCBzdXBwb3J0ID4+PiBvcGVyYXRvcmApOworfQo=
</data>
<flag name="review"
          id="413813"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>