<?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>133353</bug_id>
          
          <creation_ts>2014-05-28 12:23:59 -0700</creation_ts>
          <short_desc>Make DOM properties exposed as instance properties use the base object instead of |this|</short_desc>
          <delta_ts>2014-05-28 13:55:09 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>alecflett</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1012263</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-05-28 12:23:59 -0700</bug_when>
    <thetext>Make DOM properties exposed as instance properties use the base object instead of |this|</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012266</commentid>
    <comment_count>1</comment_count>
      <attachid>232209</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-05-28 12:34:42 -0700</bug_when>
    <thetext>Created attachment 232209
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012283</commentid>
    <comment_count>2</comment_count>
      <attachid>232209</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-05-28 13:52:52 -0700</bug_when>
    <thetext>Comment on attachment 232209
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012284</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-05-28 13:55:09 -0700</bug_when>
    <thetext>Committed r169433: &lt;http://trac.webkit.org/changeset/169433&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232209</attachid>
            <date>2014-05-28 12:34:42 -0700</date>
            <delta_ts>2014-05-28 13:52:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133353-20140528123418.patch</filename>
            <type>text/plain</type>
            <size>80534</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM3OWJhYTA1ZGZmNzc4
NWExYmVlZGU4ZDJlM2Y1YzFmMGU0NGEzZi4uNGQyOGQ3ZDY2ODE2MzcyMDM2YWViMGFhMGQ5M2Zl
YjU4NzA4YzliYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE0LTA1LTI4ICBPbGl2
ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBET00gcHJvcGVydGll
cyBleHBvc2VkIGFzIGluc3RhbmNlIHByb3BlcnRpZXMgdXNlIHRoZSBiYXNlIG9iamVjdCBpbnN0
ZWFkIG9mIHx0aGlzfAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTMzMzUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTWFrZSB0aGUgYmluZGluZ3MgZ2VuZXJhdG9yIGVtaXQgY29kZSB0aGF0IHVzZXMgdGhl
IGJhc2Ugb2JqZWN0IGZvcgorICAgICAgICBhIHByb3BlcnR5LCByYXRoZXIgdGhhbiB0aGUgdGhp
cyBvYmplY3QuIFRoaXMgbWVhbnMgdGhhdCBhdHRyaWJ1dGVzCisgICAgICAgIHRoYXQgd2UgbmVl
ZCB0byBiZSB0cmVhdGVkIGFzIGluc3RhbmNlIHByb3BlcnRpZXMgd2lsbCBtYXRjaCB0aGVpciBv
bGQKKyAgICAgICAgaW5zdGFuY2UtYmFzZWQgYmVoYXZpb3VyLgorCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChJbnRlcmZhY2VSZXF1aXJl
c0F0dHJpYnV0ZXNPbkluc3RhbmNlRm9yQ29tcGF0aWJpbGl0eSk6CisgICAgICAgIChJbnRlcmZh
Y2VSZXF1aXJlc0F0dHJpYnV0ZXNPbkluc3RhbmNlKToKKyAgICAgICAgKEdldENhc3RpbmdIZWxw
ZXJGb3JCYXNlT2JqZWN0KToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0QWN0aXZlRE9NT2JqZWN0RXhjaXRpbmdBdHRyKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEV4Y2VwdGlvbk5hbWUpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c1N0cjMpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RJbnRlcmZhY2VDb25zdHJ1Y3RvckltcGxlbWVudHNTdGF0aWNBdHRyKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNTdHIyKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNTdHIzKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OnNl
dEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZSk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0
aWNXcml0ZWFibGVBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5vbmRldGVybWlu
aXN0aWNOb25kZXRlcm1pbmlzdGljRXhjZXB0aW9uQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY0dldHRlckV4Y2VwdGlvbkF0
dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVy
bWluaXN0aWNTZXR0ZXJFeGNlcHRpb25BdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRlc3RTdWJPYmopOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0cik6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RUeXBlZGVmc0ltbXV0YWJsZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RUeXBlZGVmc0F0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFR5cGVkZWZzQXR0cldpdGhTZXR0ZXJF
eGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNTdHJpbmdBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RUeXBlZGVm
c1N0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKToKKwogMjAxNC0wNS0yNyAgQ2hyaXMgRmxl
aXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBXZWJLaXQgZG9lcyBu
b3QgcmVjb2duaXplIEFSSUEgMS4xIHRhYmxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAzYTY3YTRjY2EyNjdlZWU0NTUz
NjMwYzQzMzk4NmEzOTRlZGE4YjA1Li5iMjZkNzExNDlmZTZlOThiMmY1NzkxNWIyZGE0MmIzYmQ2
ODM2M2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQpAQCAtNjAyLDYgKzYwMiwxOSBAQCBzdWIgSGFzQ29tcGxleEdldE93blBy
b3BlcnR5CiAgICAgcmV0dXJuIDA7CiB9CiAKKworc3ViIEludGVyZmFjZVJlcXVpcmVzQXR0cmli
dXRlc09uSW5zdGFuY2VGb3JDb21wYXRpYmlsaXR5Cit7CisgICAgbXkgJGludGVyZmFjZSA9IHNo
aWZ0OworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+bmFtZTsKKworICAgICMg
TmVlZGVkIGZvciBjb21wYXRpYmlsaXR5IHdpdGggZXhpc3RpbmcgY29udGVudAorICAgIHJldHVy
biAxIGlmICRpbnRlcmZhY2VOYW1lID1+ICJUb3VjaCI7CisgICAgcmV0dXJuIDEgaWYgJGludGVy
ZmFjZU5hbWUgPX4gIk5hdmlnYXRvciI7CisKKyAgICByZXR1cm4gMDsKK30KKwogc3ViIEludGVy
ZmFjZVJlcXVpcmVzQXR0cmlidXRlc09uSW5zdGFuY2UKIHsKICAgICBteSAkaW50ZXJmYWNlID0g
c2hpZnQ7CkBAIC02MjMsMTIgKzYzNiwxMCBAQCBzdWIgSW50ZXJmYWNlUmVxdWlyZXNBdHRyaWJ1
dGVzT25JbnN0YW5jZQogICAgICMgRklYTUU6IFRoZXNlIHR3byBzaG91bGQgYmUgZml4ZWQgYnkg
cmVtb3ZpbmcgdGhlIGN1c3RvbSBvdmVycmlkZSBvZiBtZXNzYWdlLCBldGMKICAgICByZXR1cm4g
MSBpZiAkaW50ZXJmYWNlTmFtZSA9fiAiRXhjZXB0aW9uIjsKICAgICByZXR1cm4gMSBpZiAkaW50
ZXJmYWNlTmFtZSA9fiAiRXJyb3IiOwotICAgIHJldHVybiAxIGlmICRpbnRlcmZhY2VOYW1lID1+
ICJOYXZpZ2F0b3IiOwogCiAgICAgcmV0dXJuIDEgaWYgSXNET01HbG9iYWxPYmplY3QoJGludGVy
ZmFjZSk7CiAKLSAgICAjIE5lZWRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGV4aXN0aW5nIGNv
bnRlbnQKLSAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlTmFtZSA9fiAiVG91Y2giOworICAgIHJl
dHVybiAxIGlmIEludGVyZmFjZVJlcXVpcmVzQXR0cmlidXRlc09uSW5zdGFuY2VGb3JDb21wYXRp
YmlsaXR5KCRpbnRlcmZhY2UpOwogCiAgICAgI0ZJWE1FOiBXZSBjdXJyZW50bHkgY2xvYmJlciBw
ZXJmb3JtYW5jZSBmb3IgYSBudW1iZXIgb2YgdGhlIGxpc3QgdHlwZXMKICAgICByZXR1cm4gMSBp
ZiAkaW50ZXJmYWNlTmFtZSA9fiAiTGlzdCI7CkBAIC0xNjk3LDYgKzE3MDgsMTkgQEAgc3ViIEdl
dENhc3RpbmdIZWxwZXJGb3JUaGlzT2JqZWN0CiAgICAgcmV0dXJuICJqc0R5bmFtaWNDYXN0PEpT
IiAuICRpbnRlcmZhY2UtPm5hbWUgLiAiKj4iOwogfQogCitzdWIgR2V0Q2FzdGluZ0hlbHBlckZv
ckJhc2VPYmplY3QKK3sKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisKKyAgICBpZiAoJGlu
dGVyZmFjZS0+bmFtZSBlcSAiTm9kZSIpIHsKKyAgICAgICAgcmV0dXJuICJqc05vZGVDYXN0IjsK
KyAgICB9CisgICAgaWYgKCRpbnRlcmZhY2UtPm5hbWUgZXEgIkVsZW1lbnQiKSB7CisgICAgICAg
IHJldHVybiAianNFbGVtZW50Q2FzdCI7CisgICAgfQorICAgIHJldHVybiAianNDYXN0PEpTIiAu
ICRpbnRlcmZhY2UtPm5hbWUgLiAiKj4iOworfQorCiBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bgogewogICAgIG15ICgkb2JqZWN0LCAkaW50ZXJmYWNlKSA9IEBfOwpAQCAtMjEyNiwyMSArMjE1
MCwyOCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJFbmNvZGVkSlNWYWx1ZSAke2dldEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBl
eGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogCisg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBVTlVTRURfUEFSQU0oZXhlYyk7XG4i
KTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJBTShzbG90
QmFzZSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9Q
QVJBTSh0aGlzVmFsdWUpO1xuIik7CiAgICAgICAgICAgICBpZiAoISRhdHRyaWJ1dGUtPmlzU3Rh
dGljIHx8ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSA9fiAvQ29uc3RydWN0b3IkLykgewog
ICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3Vz
dG9tUHJveHlUb0pTT2JqZWN0In0pIHsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiBjYXN0ZWRUaGlzID0gdG8ke2NsYXNzTmFtZX0oSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpO1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNpZiAo
QXR0cmlidXRlU2hvdWxkQmVPbkluc3RhbmNlKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSog
Y2FzdGVkVGhpcyA9ICIgLiBHZXRDYXN0aW5nSGVscGVyRm9yQmFzZU9iamVjdCgkaW50ZXJmYWNl
KSAuICIoc2xvdEJhc2UpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIGlmIChJbnRlcmZhY2VS
ZXF1aXJlc0F0dHJpYnV0ZXNPbkluc3RhbmNlRm9yQ29tcGF0aWJpbGl0eSgkaW50ZXJmYWNlKSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFz
c05hbWV9KiBjYXN0ZWRUaGlzT2JqZWN0ID0gIiAuIEdldENhc3RpbmdIZWxwZXJGb3JUaGlzT2Jq
ZWN0KCRpbnRlcmZhY2UpIC4gIihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7XG4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChVTkxJS0VM
WSghY2FzdGVkVGhpc09iamVjdCkpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICAgICByZXBvcnREZXByZWNhdGVkR2V0dGVyRXJyb3IoKmV4ZWMs
IFwiJGludGVyZmFjZU5hbWVcIiwgXCIkbmFtZVwiKTtcbiIpOworICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiBjYXN0ZWRUaGlzID0gIiAuIEdldENhc3Rp
bmdIZWxwZXJGb3JUaGlzT2JqZWN0KCRpbnRlcmZhY2UpIC4gIihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkge1xuIik7CisgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBpZiAoanNEeW5hbWljQ2FzdDwke2NsYXNzTmFt
ZX1Qcm90b3R5cGUqPihzbG90QmFzZSkpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgICAgICByZXR1cm4gcmVwb3J0RGVwcmVjYXRlZEdldHRlckVy
cm9yKCpleGVjLCBcIiRpbnRlcmZhY2VOYW1lXCIsIFwiJG5hbWVcIik7XG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0aHJvd0dldHRl
clR5cGVFcnJvcigqZXhlYywgXCIkaW50ZXJmYWNlTmFtZVwiLCBcIiRuYW1lXCIpO1xuIik7Cisg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgifSA9IDE7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkge1xuIik7Ci0gICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PCR7Y2xhc3NOYW1lfVBy
b3RvdHlwZSo+KHNsb3RCYXNlKSlcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICAgICAgICAgcmV0dXJuIHJlcG9ydERlcHJlY2F0ZWRHZXR0ZXJFcnJvcigqZXhl
YywgXCIkaW50ZXJmYWNlTmFtZVwiLCBcIiRuYW1lXCIpO1xuIik7Ci0gICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0aHJvd0dldHRlclR5cGVFcnJvcigq
ZXhlYywgXCIkaW50ZXJmYWNlTmFtZVwiLCBcIiRuYW1lXCIpO1xuIik7Ci0gICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7Ci0gICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJBTSh0aGlz
VmFsdWUpO1xuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5V
U0VEX1BBUkFNKHNsb3RCYXNlKTtcbiIpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBt
eSBAYXJndW1lbnRzID0gKCk7CkBAIC0yNDcxLDI0ICsyNTAyLDM2IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZUNvbmRpdGlvbmFsU3Ry
aW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAk
e2F0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGF0dHJpYnV0ZUNvbmRpdGlvbmFs
U3RyaW5nOwogCi0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7cHV0
RnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICov
LCBFbmNvZGVkSlNWYWx1ZSIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
dm9pZCAke3B1dEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9i
amVjdCwgRW5jb2RlZEpTVmFsdWUiKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiB0aGlzVmFsdWUiKSBpZiAhJGF0dHJpYnV0ZS0+aXNTdGF0aWM7CiAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSlcbiIp
OwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkVmFsdWUpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpO1xuIik7CiAgICAgICAgICAgICAgICAg
aWYgKCEkYXR0cmlidXRlLT5pc1N0YXRpYykgewogICAgICAgICAgICAgICAgICAgICBpZiAoJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVByb3h5VG9KU09iamVjdCJ9KSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNz
TmFtZX0qIGNhc3RlZFRoaXMgPSB0byR7Y2xhc3NOYW1lfShKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoQXR0cmlidXRlU2hvdWxk
QmVPbkluc3RhbmNlKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTtc
biIpOworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtj
bGFzc05hbWV9KiBjYXN0ZWRUaGlzID0gIiAuIEdldENhc3RpbmdIZWxwZXJGb3JCYXNlT2JqZWN0
KCRpbnRlcmZhY2UpIC4gIihiYXNlT2JqZWN0KTtcbiIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKEludGVyZmFjZVJlcXVpcmVzQXR0cmlidXRlc09uSW5zdGFuY2VGb3JDb21wYXRpYmls
aXR5KCRpbnRlcmZhY2UpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiBjYXN0ZWRUaGlzT2JqZWN0ID0gIiAuIEdldENh
c3RpbmdIZWxwZXJGb3JUaGlzT2JqZWN0KCRpbnRlcmZhY2UpIC4gIihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXNPYmplY3QpKVxuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJlcG9y
dERlcHJlY2F0ZWRTZXR0ZXJFcnJvcigqZXhlYywgXCIkaW50ZXJmYWNlTmFtZVwiLCBcIiRuYW1l
XCIpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJBTSh0aGlz
VmFsdWUpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgVU5VU0VEX1BBUkFNKGV4ZWMpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIGNhc3RlZFRoaXMgPSAiIC4g
R2V0Q2FzdGluZ0hlbHBlckZvclRoaXNPYmplY3QoJGludGVyZmFjZSkgLiAiKEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkge1xuIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgaWYgKGpzRHluYW1p
Y0Nhc3Q8JHtjbGFzc05hbWV9UHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
KVxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgICAgIHJlcG9ydERlcHJlY2F0ZWRTZXR0ZXJFcnJvcigqZXhlYywgXCIkaW50ZXJmYWNlTmFt
ZVwiLCBcIiRuYW1lXCIpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgZWxzZVxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpleGVjLCBc
IiRpbnRlcmZhY2VOYW1lXCIsIFwiJG5hbWVcIik7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOwogICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHtcbiIpOwotICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8JHtjbGFzc05hbWV9UHJv
dG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKVxuIik7Ci0gICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICAgICAgcmVwb3J0RGVwcmVjYXRlZFNl
dHRlckVycm9yKCpleGVjLCBcIiRpbnRlcmZhY2VOYW1lXCIsIFwiJG5hbWVcIik7XG4iKTsKLSAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGVsc2VcbiIpOwot
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgICAgIHRocm93
U2V0dGVyVHlwZUVycm9yKCpleGVjLCBcIiRpbnRlcmZhY2VOYW1lXCIsIFwiJG5hbWVcIik7XG4i
KTsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVy
bjtcbiIpOwotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4i
KTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja1NlY3VyaXR5In0gJiYgISRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRvTm90Q2hlY2tTZWN1cml0eSJ9KSB7CiAgICAg
ICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFj
dGl2ZURPTU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAppbmRleCA3NzMzNGZiZjViNjM2ZjMyMTZmMGU5
NTZlMjk5MjIwZTljYTI5MjM0Li40MmM1NzY3ZGIwYWViZDY3MzgwNzNmMDE0N2M3ODllOWUzYzQ0
MTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcApAQCAtMTQ2LDEyICsxNDYs
NyBAQCBib29sIEpTVGVzdEFjdGl2ZURPTU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2Jq
ZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYwogCiBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RBY3Rp
dmVET01PYmplY3RFeGNpdGluZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJh
c2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAgIEpTVGVz
dEFjdGl2ZURPTU9iamVjdCogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0QWN0aXZl
RE9NT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwotICAgIGlmIChVTkxJS0VM
WSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0QWN0aXZl
RE9NT2JqZWN0UHJvdG90eXBlKj4oc2xvdEJhc2UpKQotICAgICAgICAgICAgcmV0dXJuIHJlcG9y
dERlcHJlY2F0ZWRHZXR0ZXJFcnJvcigqZXhlYywgIlRlc3RBY3RpdmVET01PYmplY3QiLCAiZXhj
aXRpbmdBdHRyIik7Ci0gICAgICAgIHJldHVybiB0aHJvd0dldHRlclR5cGVFcnJvcigqZXhlYywg
IlRlc3RBY3RpdmVET01PYmplY3QiLCAiZXhjaXRpbmdBdHRyIik7Ci0gICAgfQorICAgIEpTVGVz
dEFjdGl2ZURPTU9iamVjdCogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RBY3RpdmVET01PYmpl
Y3QqPihzbG90QmFzZSk7CiAgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNj
ZXNzVG9ET01XaW5kb3coZXhlYywgY2FzdGVkVGhpcy0+aW1wbCgpKSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBUZXN0QWN0aXZlRE9NT2JqZWN0
JiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAppbmRleCA1
ZTNhNmViMzBlOTYxZWViZjU3ODdlN2MxNmZiY2Y3OWEyZmFjNjQ3Li4xZjdlYjNmMzI4ZTQ1NDdl
ZTJmYjJlNjNkMWY0NjRiNWJkMGJmYjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcApAQCAtMTM4
LDEyICsxMzgsNyBAQCBib29sIEpTVGVzdEV4Y2VwdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEpT
T2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcAogCiBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RFeGNlcHRpb25OYW1lKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBKU1Rlc3RFeGNl
cHRpb24qIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV4Y2VwdGlvbio+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKLSAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7
Ci0gICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZSo+KHNs
b3RCYXNlKSkKLSAgICAgICAgICAgIHJldHVybiByZXBvcnREZXByZWNhdGVkR2V0dGVyRXJyb3Io
KmV4ZWMsICJUZXN0RXhjZXB0aW9uIiwgIm5hbWUiKTsKLSAgICAgICAgcmV0dXJuIHRocm93R2V0
dGVyVHlwZUVycm9yKCpleGVjLCAiVGVzdEV4Y2VwdGlvbiIsICJuYW1lIik7Ci0gICAgfQorICAg
IEpTVGVzdEV4Y2VwdGlvbiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RFeGNlcHRpb24qPihz
bG90QmFzZSk7CiAgICAgVGVzdEV4Y2VwdGlvbiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsK
ICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIGltcGwubmFtZSgp
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2Uu
Y3BwCmluZGV4IDFlYTFlNmYwMjBhM2IwZDRjYjYyZjM1OWI2NWRiYmUzMWRjN2VjOTcuLjRkODRk
MmM3NThiZjIwZWY2YjljZDRmMjczMDNiODFjZGUwZTlhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2Uu
Y3BwCkBAIC00NjgsMTIgKzQ2OCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUlt
cGxlbWVudHNTdHIyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlCiAjaWYgRU5B
QkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCiBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBz
bG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAg
SlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZh
Y2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7Ci0gICAgaWYgKFVOTElLRUxZKCFjYXN0
ZWRUaGlzKSkgewotICAgICAgICBpZiAoanNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2VQcm90
b3R5cGUqPihzbG90QmFzZSkpCi0gICAgICAgICAgICByZXR1cm4gcmVwb3J0RGVwcmVjYXRlZEdl
dHRlckVycm9yKCpleGVjLCAiVGVzdEludGVyZmFjZSIsICJpbXBsZW1lbnRzU3RyMyIpOwotICAg
ICAgICByZXR1cm4gdGhyb3dHZXR0ZXJUeXBlRXJyb3IoKmV4ZWMsICJUZXN0SW50ZXJmYWNlIiwg
ImltcGxlbWVudHNTdHIzIik7Ci0gICAgfQorICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhp
cyA9IGpzQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihzbG90QmFzZSk7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShjYXN0ZWRUaGlzLT5pbXBsZW1lbnRzU3RyMyhleGVjKSk7CiB9CiAKQEAgLTU1
MiwxMiArNTQ3LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFs
U3RyMihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmEKICNpZiBFTkFCTEUoQ29uZGl0
aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVy
ZmFjZVN1cHBsZW1lbnRhbFN0cjMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2Us
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAgIEpTVGVzdElu
dGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwotICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykp
IHsKLSAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlKj4o
c2xvdEJhc2UpKQotICAgICAgICAgICAgcmV0dXJuIHJlcG9ydERlcHJlY2F0ZWRHZXR0ZXJFcnJv
cigqZXhlYywgIlRlc3RJbnRlcmZhY2UiLCAic3VwcGxlbWVudGFsU3RyMyIpOwotICAgICAgICBy
ZXR1cm4gdGhyb3dHZXR0ZXJUeXBlRXJyb3IoKmV4ZWMsICJUZXN0SW50ZXJmYWNlIiwgInN1cHBs
ZW1lbnRhbFN0cjMiKTsKLSAgICB9CisgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0g
anNDYXN0PEpTVGVzdEludGVyZmFjZSo+KHNsb3RCYXNlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGNhc3RlZFRoaXMtPnN1cHBsZW1lbnRhbFN0cjMoZXhlYykpOwogfQogCkBAIC02MDgs
OSArNTk4LDEwIEBAIHZvaWQgSlNUZXN0SW50ZXJmYWNlOjpwdXRCeUluZGV4KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpbmRleCwKIH0KIAogI2lmIEVOQUJMRShDb25k
aXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VD
b25zdHJ1Y3RvckltcGxlbWVudHNTdGF0aWNBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IC8qIGJhc2VPYmplY3QgKi8sIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCit2b2lkIHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9ySW1wbGVtZW50c1N0YXRp
Y0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VPYmpl
Y3QpOwogICAgIGNvbnN0IFN0cmluZyYgbmF0aXZlVmFsdWUodmFsdWUuaXNFbXB0eSgpID8gU3Ry
aW5nKCkgOiB2YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgIGlmIChVTkxJ
S0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKQEAgLTYyMCw5ICs2
MTEsMTAgQEAgdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckltcGxlbWVudHNTdGF0
aWNBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QKICNlbmRpZgogCiAjaWYgRU5BQkxFKENv
bmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi12b2lkIHNldEpTVGVzdEludGVyZmFj
ZUltcGxlbWVudHNTdHIyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3Qg
Ki8sIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQordm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMihFeGVjU3RhdGUqIGV4ZWMs
IEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRWYWx1ZSk7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOwogICAgIEpT
VGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNl
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpIHsKICAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlUHJvdG90
eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKQpAQCAtNjQxLDI2ICs2MzMsMjIgQEAg
dm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMihFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiAvKiBiYXNlT2JqZWN0ICoKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIy
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi12b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVu
dHNTdHIzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBz
ZXRKU1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRWYWx1ZSk7Ci0gICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RJbnRlcmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7Ci0gICAgaWYg
KFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICBpZiAoanNEeW5hbWljQ2FzdDxKU1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpCi0gICAg
ICAgICAgICByZXBvcnREZXByZWNhdGVkU2V0dGVyRXJyb3IoKmV4ZWMsICJUZXN0SW50ZXJmYWNl
IiwgImltcGxlbWVudHNTdHIzIik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRocm93U2V0
dGVyVHlwZUVycm9yKCpleGVjLCAiVGVzdEludGVyZmFjZSIsICJpbXBsZW1lbnRzU3RyMyIpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAg
ICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKKyAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRo
aXMgPSBqc0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oYmFzZU9iamVjdCk7CiAgICAgY2FzdGVkVGhp
cy0+c2V0SW1wbGVtZW50c1N0cjMoZXhlYywgdmFsdWUpOwogfQogCiAjZW5kaWYKIAogI2lmIEVO
QUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotdm9pZCBzZXRKU1Rlc3RJ
bnRlcmZhY2VJbXBsZW1lbnRzTm9kZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNl
T2JqZWN0ICovLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c05vZGUoRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsK
ICAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdElu
dGVyZmFjZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTVGVzdEludGVyZmFj
ZVByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkKQEAgLTY3OSw5ICs2Njcs
MTAgQEAgdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzTm9kZShFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICoKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRp
dGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi12b2lkIHNldEpTVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0
YXRpY0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVl
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VP
YmplY3QpOwogICAgIGNvbnN0IFN0cmluZyYgbmF0aXZlVmFsdWUodmFsdWUuaXNFbXB0eSgpID8g
U3RyaW5nKCkgOiB2YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgIGlmIChV
TkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKQEAgLTY5MSw5
ICs2ODAsMTAgQEAgdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRh
bFN0YXRpY0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamUKICNlbmRpZgogCiAjaWYgRU5BQkxF
KENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi12b2lkIHNldEpTVGVzdEludGVy
ZmFjZVN1cHBsZW1lbnRhbFN0cjIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9i
amVjdCAqLywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCit2b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIoRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsK
ICAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdElu
dGVyZmFjZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTVGVzdEludGVyZmFj
ZVByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkKQEAgLTcxMiwyNiArNzAy
LDIyIEBAIHZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMihFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25k
aXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VT
dXBwbGVtZW50YWxTdHIzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3Qg
Ki8sIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQordm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdEludGVyZmFjZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKLSAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIGlmIChqc0R5bmFt
aWNDYXN0PEpTVGVzdEludGVyZmFjZVByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKSkKLSAgICAgICAgICAgIHJlcG9ydERlcHJlY2F0ZWRTZXR0ZXJFcnJvcigqZXhlYywgIlRl
c3RJbnRlcmZhY2UiLCAic3VwcGxlbWVudGFsU3RyMyIpOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqZXhlYywgIlRlc3RJbnRlcmZhY2UiLCAic3VwcGxl
bWVudGFsU3RyMyIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIFVOVVNFRF9QQVJBTShi
YXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKKyAgICBKU1Rlc3RJbnRl
cmZhY2UqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oYmFzZU9iamVjdCk7
CiAgICAgY2FzdGVkVGhpcy0+c2V0U3VwcGxlbWVudGFsU3RyMyhleGVjLCB2YWx1ZSk7CiB9CiAK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIp
Ci12b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoRXhlY1N0YXRlKiBleGVj
LCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBs
ZW1lbnRhbE5vZGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
SlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIFVOVVNF
RF9QQVJBTShiYXNlT2JqZWN0KTsKICAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdEludGVyZmFjZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIGlmIChqc0R5bmFt
aWNDYXN0PEpTVGVzdEludGVyZmFjZVByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcAppbmRleCAzOTkzNmJiOGM0
ZmQwZGQyNzIzYzExZjZlZmU1NjNkMzJlZmNlYzM2Li5iN2U5ZjA2MDc5MzM2M2I2YzIwYWY3ZjU0
NWIyMmJkOTk1YzIzM2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwCkBA
IC0zMzQsOSArMzM0LDEwIEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWND
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1Rlc3ROb25kZXRlcm1pbmlzdGljOjpnZXRDb25zdHJ1Y3RvcihleGVj
LT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0
Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNXcml0ZWFibGVBdHRyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1p
bmlzdGljTm9uZGV0ZXJtaW5pc3RpY1dyaXRlYWJsZUF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09i
amVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkVmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKICAgICBKU1Rlc3RO
b25kZXRlcm1pbmlzdGljKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROb25kZXRl
cm1pbmlzdGljKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VM
WSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9uZGV0
ZXJtaW5pc3RpY1Byb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkKQEAgLTM1
Myw5ICszNTQsMTAgQEAgdm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5p
c3RpY1dyaXRlYWJsZUF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU08KIH0KIAogCi12b2lkIHNldEpT
VGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljRXhjZXB0aW9uQXR0cihFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0Tm9uZGV0
ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNFeGNlcHRpb25BdHRyKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZFZhbHVlKTsKKyAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CiAgICAgSlNU
ZXN0Tm9uZGV0ZXJtaW5pc3RpYyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9u
ZGV0ZXJtaW5pc3RpYyo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTVGVzdE5v
bmRldGVybWluaXN0aWNQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpCkBA
IC0zNzIsOSArMzc0LDEwIEBAIHZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVy
bWluaXN0aWNFeGNlcHRpb25BdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPCiB9CiAKIAotdm9pZCBz
ZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY0dldHRlckV4Y2VwdGlvbkF0
dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpT
VGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljR2V0dGVyRXhjZXB0aW9uQXR0cihF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVl
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VP
YmplY3QpOwogICAgIEpTVGVzdE5vbmRldGVybWluaXN0aWMqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE5vbmRldGVybWluaXN0aWMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICBpZiAoanNEeW5h
bWljQ2FzdDxKU1Rlc3ROb25kZXRlcm1pbmlzdGljUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpKQpAQCAtMzkxLDkgKzM5NCwxMCBAQCB2b2lkIHNldEpTVGVzdE5vbmRldGVy
bWluaXN0aWNOb25kZXRlcm1pbmlzdGljR2V0dGVyRXhjZXB0aW9uQXR0cihFeGVjU3RhdGUqIGV4
ZQogfQogCiAKLXZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNT
ZXR0ZXJFeGNlcHRpb25BdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmpl
Y3QgKi8sIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQordm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY1NldHRl
ckV4Y2VwdGlvbkF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIFVO
VVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKICAgICBKU1Rlc3ROb25kZXRlcm1pbmlzdGljKiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROb25kZXRlcm1pbmlzdGljKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAg
ICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY1Byb3RvdHlwZSo+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggMGVjZDY1MTFjODJk
NDcxOGZkMWU5YjkyOGU0YTMwNGRhYzhhNjRlMi4uN2IxNTMxZmY1MTM3OTE3MjA1NTBjMTJmMDE4
YmUzYmU4ODJiNGVjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTEwNjgsMjQgKzEwNjgsMTQgQEAgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIHMKIAogRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JU
ZXN0U3ViT2JqKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKLSAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIGlmIChqc0R5bmFt
aWNDYXN0PEpTVGVzdE9ialByb3RvdHlwZSo+KHNsb3RCYXNlKSkKLSAgICAgICAgICAgIHJldHVy
biByZXBvcnREZXByZWNhdGVkR2V0dGVyRXJyb3IoKmV4ZWMsICJUZXN0T2JqIiwgIlRlc3RTdWJP
YmoiKTsKLSAgICAgICAgcmV0dXJuIHRocm93R2V0dGVyVHlwZUVycm9yKCpleGVjLCAiVGVzdE9i
aiIsICJUZXN0U3ViT2JqIik7Ci0gICAgfQorICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpz
Q2FzdDxKU1Rlc3RPYmoqPihzbG90QmFzZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1Rlc3RTdWJPYmo6OmdldENvbnN0cnVjdG9yKGV4ZWMtPnZtKCksIGNhc3RlZFRoaXMtPmdsb2Jh
bE9iamVjdCgpKSk7CiB9CiAKIAogRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdFN1Yk9iakVu
YWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90
QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNU
ZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7Ci0gICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAg
ICAgICBpZiAoanNEeW5hbWljQ2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUqPihzbG90QmFzZSkpCi0g
ICAgICAgICAgICByZXR1cm4gcmVwb3J0RGVwcmVjYXRlZEdldHRlckVycm9yKCpleGVjLCAiVGVz
dE9iaiIsICJUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZyIpOwotICAgICAgICByZXR1cm4gdGhy
b3dHZXR0ZXJUeXBlRXJyb3IoKmV4ZWMsICJUZXN0T2JqIiwgIlRlc3RTdWJPYmpFbmFibGVkQnlT
ZXR0aW5nIik7Ci0gICAgfQorICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rl
c3RPYmoqPihzbG90QmFzZSk7CiAgICAgaWYgKCFjYXN0ZWRUaGlzLT5pbXBsKCkuZnJhbWUoKSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBTZXR0
aW5ncyYgc2V0dGluZ3MgPSBjYXN0ZWRUaGlzLT5pbXBsKCkuZnJhbWUoKS0+c2V0dGluZ3MoKTsK
QEAgLTE0NjUsMTIgKzE0NTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRy
V2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KgogCiBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpDdXN0b21BdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNs
b3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBK
U1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKLSAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0g
ICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTVGVzdE9ialByb3RvdHlwZSo+KHNsb3RCYXNlKSkK
LSAgICAgICAgICAgIHJldHVybiByZXBvcnREZXByZWNhdGVkR2V0dGVyRXJyb3IoKmV4ZWMsICJU
ZXN0T2JqIiwgImN1c3RvbUF0dHIiKTsKLSAgICAgICAgcmV0dXJuIHRocm93R2V0dGVyVHlwZUVy
cm9yKCpleGVjLCAiVGVzdE9iaiIsICJjdXN0b21BdHRyIik7Ci0gICAgfQorICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPihzbG90QmFzZSk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5jdXN0b21BdHRyKGV4ZWMpKTsKIH0KIApAQCAt
MTY1OSwxMiArMTY0NCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0
cjMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuCiAjaWYgRU5BQkxFKENv
bmRpdGlvbjEpCiBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwot
ICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgaWYgKGpzRHluYW1pY0Nh
c3Q8SlNUZXN0T2JqUHJvdG90eXBlKj4oc2xvdEJhc2UpKQotICAgICAgICAgICAgcmV0dXJuIHJl
cG9ydERlcHJlY2F0ZWRHZXR0ZXJFcnJvcigqZXhlYywgIlRlc3RPYmoiLCAiY29uZGl0aW9uYWxB
dHRyNCIpOwotICAgICAgICByZXR1cm4gdGhyb3dHZXR0ZXJUeXBlRXJyb3IoKmV4ZWMsICJUZXN0
T2JqIiwgImNvbmRpdGlvbmFsQXR0cjQiKTsKLSAgICB9CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHNsb3RCYXNlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEpTVGVzdE9iamVjdEE6OmdldENvbnN0cnVjdG9yKGV4ZWMtPnZtKCksIGNhc3RlZFRo
aXMtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKQEAgLTE2NzMsMTIgKzE2NTMsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBl
eGVjLCBKU09iamVjdCogcwogI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29uZGl0
aW9uMikKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7Ci0gICAg
aWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICBpZiAoanNEeW5hbWljQ2FzdDxK
U1Rlc3RPYmpQcm90b3R5cGUqPihzbG90QmFzZSkpCi0gICAgICAgICAgICByZXR1cm4gcmVwb3J0
RGVwcmVjYXRlZEdldHRlckVycm9yKCpleGVjLCAiVGVzdE9iaiIsICJjb25kaXRpb25hbEF0dHI1
Iik7Ci0gICAgICAgIHJldHVybiB0aHJvd0dldHRlclR5cGVFcnJvcigqZXhlYywgIlRlc3RPYmoi
LCAiY29uZGl0aW9uYWxBdHRyNSIpOwotICAgIH0KKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMg
PSBqc0Nhc3Q8SlNUZXN0T2JqKj4oc2xvdEJhc2UpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoSlNUZXN0T2JqZWN0Qjo6Z2V0Q29uc3RydWN0b3IoZXhlYy0+dm0oKSwgY2FzdGVkVGhpcy0+
Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIApAQCAtMTY4NywxMiArMTY2Miw3IEBAIEVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMs
IEpTT2JqZWN0KiBzCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24y
KQogRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKLSAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTVGVz
dE9ialByb3RvdHlwZSo+KHNsb3RCYXNlKSkKLSAgICAgICAgICAgIHJldHVybiByZXBvcnREZXBy
ZWNhdGVkR2V0dGVyRXJyb3IoKmV4ZWMsICJUZXN0T2JqIiwgImNvbmRpdGlvbmFsQXR0cjYiKTsK
LSAgICAgICAgcmV0dXJuIHRocm93R2V0dGVyVHlwZUVycm9yKCpleGVjLCAiVGVzdE9iaiIsICJj
b25kaXRpb25hbEF0dHI2Iik7Ci0gICAgfQorICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpz
Q2FzdDxKU1Rlc3RPYmoqPihzbG90QmFzZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1Rlc3RPYmplY3RDOjpnZXRDb25zdHJ1Y3RvcihleGVjLT52bSgpLCBjYXN0ZWRUaGlzLT5nbG9i
YWxPYmplY3QoKSkpOwogfQogCkBAIC0xNzQ4LDEyICsxNzE4LDcgQEAgRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqQW55QXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNl
LCBFbmNvZGUKIAogRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29udGVudERvY3VtZW50KEV4ZWNT
dGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKLSAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKLSAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
alByb3RvdHlwZSo+KHNsb3RCYXNlKSkKLSAgICAgICAgICAgIHJldHVybiByZXBvcnREZXByZWNh
dGVkR2V0dGVyRXJyb3IoKmV4ZWMsICJUZXN0T2JqIiwgImNvbnRlbnREb2N1bWVudCIpOwotICAg
ICAgICByZXR1cm4gdGhyb3dHZXR0ZXJUeXBlRXJyb3IoKmV4ZWMsICJUZXN0T2JqIiwgImNvbnRl
bnREb2N1bWVudCIpOwotICAgIH0KKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8
SlNUZXN0T2JqKj4oc2xvdEJhc2UpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5p
bXBsKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzaG91bGRBbGxvd0FjY2Vzc1RvTm9k
ZShleGVjLCBpbXBsLmNvbnRlbnREb2N1bWVudCgpKSA/IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+
Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKGltcGwuY29udGVudERvY3VtZW50KCkpKSA6IGpz
TnVsbCgpKTsKIH0KQEAgLTIwMTEsOSArMTk3NiwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29k
ZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0T2JqOjpnZXRDb25zdHJ1Y3Rvcihl
eGVjLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLXZvaWQgc2V0SlNU
ZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmpl
Y3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cihF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKKyAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CiAg
ICAgY29uc3QgU3RyaW5nJiBuYXRpdmVWYWx1ZSh2YWx1ZS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6
IHZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjAyMSwyNSArMTk4Nywy
MSBAQCB2b2lkIHNldEpTVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cihFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlTwogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqVGVz
dFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2Jq
ZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqVGVzdFN1Yk9iakVuYWJsZWRC
eVNldHRpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0g
ICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7Ci0gICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkg
ewotICAgICAgICBpZiAoanNEeW5hbWljQ2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSkpCi0gICAgICAgICAgICByZXBvcnREZXByZWNhdGVkU2V0dGVy
RXJyb3IoKmV4ZWMsICJUZXN0T2JqIiwgIlRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nIik7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpleGVjLCAiVGVz
dE9iaiIsICJUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZyIpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQorICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhp
c1ZhbHVlKTsKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4o
YmFzZU9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IKICAg
ICBjYXN0ZWRUaGlzLT5wdXREaXJlY3QoZXhlYy0+dm0oKSwgSWRlbnRpZmllcihleGVjLCAiVGVz
dFN1Yk9iakVuYWJsZWRCeVNldHRpbmciKSwgdmFsdWUpOwogfQogCiAKLXZvaWQgc2V0SlNUZXN0
T2JqRW51bUF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2
b2lkIHNldEpTVGVzdE9iakVudW1BdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVl
KTsKKyAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICBpZiAoanNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkp
CkBAIC0yMDU4LDkgKzIwMjAsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpFbnVtQXR0cihFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlMKIH0KIAogCi12
b2lkIHNldEpTVGVzdE9iakJ5dGVBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJh
c2VPYmplY3QgKi8sIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpCeXRlQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRWYWx1ZSk7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAg
ICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpKQpAQCAtMjA3Nyw5ICsyMDQwLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqQnl0
ZUF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2Rl
ZEpTCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpPY3RldEF0dHIoRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9iak9jdGV0QXR0cihFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VPYmpl
Y3QpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2Jq
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpIHsKICAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqUHJvdG90eXBlKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKQpAQCAtMjA5Niw5ICsyMDYwLDEwIEBAIHZvaWQg
c2V0SlNUZXN0T2JqT2N0ZXRBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VP
YmplY3QgKi8sIEVuY29kZWRKCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpTaG9ydEF0dHIoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9i
alNob3J0QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBK
U1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CisgICAgVU5VU0VE
X1BBUkFNKGJhc2VPYmplY3QpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0
T2JqUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKQpAQCAtMjExNSw5ICsy
MDgwLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqU2hvcnRBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29kZWRKCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RP
YmpVbnNpZ25lZFNob3J0QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2Jq
ZWN0ICovLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoRXhlY1N0YXRlKiBleGVj
LCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkVmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKICAgICBK
U1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAg
ICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTVGVzdE9ialByb3RvdHlwZSo+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKSkKQEAgLTIxMzQsOSArMjEwMCwxMCBAQCB2b2lkIHNldEpTVGVzdE9i
alVuc2lnbmVkU2hvcnRBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmpl
Y3QgKi8sCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpMb25nQXR0cihFeGVjU3RhdGUqIGV4ZWMs
IEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqTG9uZ0F0dHIoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShiYXNlT2Jq
ZWN0KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7CiAgICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTVGVzdE9ialByb3RvdHlwZSo+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkKQEAgLTIxNTMsOSArMjEyMCwxMCBAQCB2b2lk
IHNldEpTVGVzdE9iakxvbmdBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VP
YmplY3QgKi8sIEVuY29kZWRKUwogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqTG9uZ0xvbmdBdHRy
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rl
c3RPYmpMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAg
IFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIGlmIChqc0R5bmFtaWNDYXN0
PEpTVGVzdE9ialByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkKQEAgLTIx
NzIsOSArMjE0MCwxMCBAQCB2b2lkIHNldEpTVGVzdE9iakxvbmdMb25nQXR0cihFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZAogfQogCiAKLXZvaWQgc2V0
SlNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
LyogYmFzZU9iamVjdCAqLywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyKEV4
ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKKyAgICBVTlVTRURfUEFSQU0oYmFzZU9i
amVjdCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RP
YmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0
ZWRUaGlzKSkgewogICAgICAgICBpZiAoanNEeW5hbWljQ2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpCkBAIC0yMTkxLDkgKzIxNjAsMTAgQEAgdm9p
ZCBzZXRKU1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2Jq
ZWN0KiAvKiBiYXNlT2JqZWN0ICoKIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHIo
RXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVz
dE9ialN0cmluZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIFVO
VVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpT
VGVzdE9ialByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkKQEAgLTIyMTAs
OSArMjE4MCwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHIoRXhlY1N0YXRlKiBleGVj
LCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlZAogfQogCiAKLXZvaWQgc2V0SlNU
ZXN0T2JqVGVzdE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVj
dCAqLywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCit2b2lkIHNldEpTVGVzdE9ialRlc3RPYmpBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmpl
Y3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFZhbHVlKTsKKyAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICBp
ZiAoanNEeW5hbWljQ2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSkpCkBAIC0yMjI5LDkgKzIyMDAsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpUZXN0T2Jq
QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGUK
IH0KIAogCi12b2lkIHNldEpTVGVzdE9ialhNTE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09i
amVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialhNTE9iakF0dHIoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0
KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRo
aXMpKSB7CiAgICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTVGVzdE9ialByb3RvdHlwZSo+KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkKQEAgLTIyNDgsOSArMjIyMCwxMCBAQCB2b2lkIHNl
dEpTVGVzdE9ialhNTE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9i
amVjdCAqLywgRW5jb2RlZAogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqQ3JlYXRlKEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpDcmVh
dGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2
YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShi
YXNlT2JqZWN0KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTVGVzdE9ialByb3Rv
dHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkKQEAgLTIyNjcsOSArMjI0MCwxMCBA
QCB2b2lkIHNldEpTVGVzdE9iakNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBi
YXNlT2JqZWN0ICovLCBFbmNvZGVkSlNWYQogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqUmVmbGVj
dGVkU3RyaW5nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICov
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRWYWx1ZSk7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAg
ICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpKQpAQCAtMjI4Niw5ICsyMjYwLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVm
bGVjdGVkU3RyaW5nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0
ICovCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialJl
ZmxlY3RlZEludGVncmFsQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Cisg
ICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgaWYgKGpzRHluYW1pY0Nh
c3Q8SlNUZXN0T2JqUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKQpAQCAt
MjMwNSw5ICsyMjgwLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRy
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QKIH0KIAogCi12b2lkIHNl
dEpTVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVbnNp
Z25lZEludGVncmFsQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CisgICAg
VU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKQpAQCAtMjMy
NCw5ICsyMzAwLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3Jh
bEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzCiB9CiAKIAotdm9pZCBzZXRK
U1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAv
KiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShiYXNlT2Jq
ZWN0KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7CiAgICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTVGVzdE9ialByb3RvdHlwZSo+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkKQEAgLTIzNDMsOSArMjMyMCwxMCBAQCB2b2lk
IHNldEpTVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmpl
Y3QqIC8qIGJhc2VPYmplY3QgKgogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJM
QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0
SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNl
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1
ZSk7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOwogICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgaWYgKGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
KQpAQCAtMjM2Miw5ICsyMzQwLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0
cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFCiB9CiAKIAot
dm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdB
dHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUg
dmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKKyAgICBVTlVTRURfUEFSQU0o
YmFzZU9iamVjdCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFjYXN0ZWRUaGlzKSkgewogICAgICAgICBpZiAoanNEeW5hbWljQ2FzdDxKU1Rlc3RPYmpQcm90
b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpCkBAIC0yMzgxLDkgKzIzNjAsMTAg
QEAgdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8KIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialJlZmxl
Y3RlZEN1c3RvbUludGVncmFsQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNl
T2JqZWN0ICovLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEV4
ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKKyAgICBVTlVTRURfUEFSQU0oYmFzZU9i
amVjdCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RP
YmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0
ZWRUaGlzKSkgewogICAgICAgICBpZiAoanNEeW5hbWljQ2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpCkBAIC0yNDAwLDkgKzIzODAsMTAgQEAgdm9p
ZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBleGVj
LCBKU09iamVjdCogLyogYmFzZU8KIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1
c3RvbUJvb2xlYW5BdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3Qg
Ki8sIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQordm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOwog
ICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykp
IHsKICAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqUHJvdG90eXBlKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKQpAQCAtMjQxOSw5ICsyNDAwLDEwIEBAIHZvaWQgc2V0SlNU
ZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogLyogYmFzZU9iCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxB
dHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRK
U1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZFZhbHVlKTsKKyAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICBpZiAo
anNEeW5hbWljQ2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSkpCkBAIC0yNDM4LDkgKzI0MjAsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRD
dXN0b21VUkxBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QKIH0K
IAogCi12b2lkIHNldEpTVGVzdE9ialR5cGVkQXJyYXlBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpUeXBlZEFycmF5QXR0cihF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVl
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VP
YmplY3QpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpIHsKICAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqUHJvdG90eXBl
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKQpAQCAtMjQ1Nyw5ICsyNDQwLDEwIEBAIHZv
aWQgc2V0SlNUZXN0T2JqVHlwZWRBcnJheUF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
LyogYmFzZU9iamVjdCAqLywgRW5jCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICov
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K3ZvaWQgc2V0SlNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVj
LCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkVmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKICAgICBK
U1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAg
ICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTVGVzdE9ialByb3RvdHlwZSo+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKSkKQEAgLTI0NzYsOSArMjQ2MCwxMCBAQCB2b2lkIHNldEpTVGVzdE9i
akF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJh
c2VPYmplYwogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24o
RXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVz
dE9iakF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJh
c2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZh
bHVlKTsKKyAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICBpZiAoanNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSkpCkBAIC0yNDk3LDkgKzI0ODIsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aFNldHRl
ckV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWMKIH0KIAog
Ci12b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpTdHJp
bmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNl
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1
ZSk7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOwogICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgaWYgKGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
KQpAQCAtMjUxNiw5ICsyNTAyLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqU3RyaW5nQXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzCiB9CiAKIAot
dm9pZCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqU3RyaW5n
QXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUp
OworICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIGlmIChqc0R5bmFt
aWNDYXN0PEpTVGVzdE9ialByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkK
QEAgLTI1MzcsMjQgKzI1MjQsMjAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNl
dHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXMKIH0KIAogCi12
b2lkIHNldEpTVGVzdE9iakN1c3RvbUF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyog
YmFzZU9iamVjdCAqLywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9iakN1c3RvbUF0dHIoRXhlY1N0YXRlKiBleGVj
LCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkVmFsdWUpOwotICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwotICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0
T2JqUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKQotICAgICAgICAgICAg
cmVwb3J0RGVwcmVjYXRlZFNldHRlckVycm9yKCpleGVjLCAiVGVzdE9iaiIsICJjdXN0b21BdHRy
Iik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpleGVj
LCAiVGVzdE9iaiIsICJjdXN0b21BdHRyIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAg
VU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwor
ICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPihiYXNlT2JqZWN0
KTsKICAgICBjYXN0ZWRUaGlzLT5zZXRDdXN0b21BdHRyKGV4ZWMsIHZhbHVlKTsKIH0KIAogCi12
b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdFN0
YXRlQXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKKyAgICBVTlVT
RURfUEFSQU0oYmFzZU9iamVjdCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICBpZiAoanNEeW5hbWljQ2FzdDxKU1Rl
c3RPYmpQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpCkBAIC0yNTcxLDkg
KzI1NTQsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamUKIH0KIAogCi12b2lkIHNldEpTVGVz
dE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7
CisgICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgaWYgKGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0T2JqUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKQpA
QCAtMjU5Myw5ICsyNTc3LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCoKIH0KIAogCi12b2lk
IHNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlw
dFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsK
KyAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlz
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICBpZiAoanNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpCkBA
IC0yNjEyLDkgKzI1OTcsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRy
aWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmEKIH0KIAogCi12b2lk
IHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKEV4
ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RP
YmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsK
ICAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqUHJvdG90eXBlKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpKQpAQCAtMjYzNCw5ICsyNjIwLDEwIEBAIHZvaWQgc2V0SlNUZXN0
T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBl
eGVjLCBKU09iCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8q
IGJhc2VPYmplY3QgKi8sIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVl
KTsKKyAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICBpZiAoanNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkp
CkBAIC0yNjU2LDkgKzI2NDMsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKEV4ZWNTdGF0ZSogZXgKIH0KIAogCi12
b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVB
dHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAq
LywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Cit2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3Rh
dGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAg
IFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIGlmIChqc0R5bmFtaWNDYXN0
PEpTVGVzdE9ialByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkKQEAgLTI2
NzgsOSArMjY2NiwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YQogfQogCiAKLXZvaWQgc2V0
SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFj
ZXNBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2
b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVX
aXRoU3BhY2VzQXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKKyAg
ICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICBpZiAoanNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmpQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpCkBAIC0y
NzAwLDkgKzI2ODksMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShFeGUKIH0KIAogCi12b2lkIHNl
dEpTVGVzdE9ialdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialdp
dGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkVmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKICAgICBKU1Rl
c3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAg
ICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTVGVzdE9ialByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKSkKQEAgLTI3MjAsOSArMjcxMCwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialdp
dGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVjLCBK
U09iagogCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKLXZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0
aW9uYWxBdHRyMShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3Zv
aWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRWYWx1ZSk7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgaWYg
KGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpKQpAQCAtMjc0MSw5ICsyNzMyLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9u
YWxBdHRyMShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFCiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29uZGl0aW9uMikKLXZv
aWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VPYmpl
Y3QpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2Jq
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpIHsKICAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqUHJvdG90eXBlKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKQpAQCAtMjc2Miw5ICsyNzU0LDEwIEBAIHZvaWQg
c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAv
KiBiYXNlT2JqZWN0ICovLCBFCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBF
TkFCTEUoQ29uZGl0aW9uMikKLXZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyhFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2Jq
Q29uZGl0aW9uYWxBdHRyMyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CisgICAg
VU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKQpAQCAtMjc4
MywxNyArMjc3NiwxMiBAQCB2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRQogI2VuZGlmCiAKICNpZiBF
TkFCTEUoQ29uZGl0aW9uMSkKLXZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBz
ZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkVmFsdWUpOwotICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwotICAgIGlmIChVTkxJ
S0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2Jq
UHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKQotICAgICAgICAgICAgcmVw
b3J0RGVwcmVjYXRlZFNldHRlckVycm9yKCpleGVjLCAiVGVzdE9iaiIsICJjb25kaXRpb25hbEF0
dHI0Iik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpl
eGVjLCAiVGVzdE9iaiIsICJjb25kaXRpb25hbEF0dHI0Iik7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9CisgICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlz
VmFsdWUpOworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPihi
YXNlT2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3RvcgogICAg
IGNhc3RlZFRoaXMtPnB1dERpcmVjdChleGVjLT52bSgpLCBJZGVudGlmaWVyKGV4ZWMsICJjb25k
aXRpb25hbEF0dHI0IiksIHZhbHVlKTsKIH0KQEAgLTI4MDEsMTcgKzI3ODksMTIgQEAgdm9pZCBz
ZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCogLyogYmFzZU8KICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVO
QUJMRShDb25kaXRpb24yKQotdm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNl
dEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRWYWx1ZSk7Ci0gICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7Ci0gICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICBpZiAoanNEeW5hbWljQ2FzdDxKU1Rlc3RPYmpQ
cm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpCi0gICAgICAgICAgICByZXBv
cnREZXByZWNhdGVkU2V0dGVyRXJyb3IoKmV4ZWMsICJUZXN0T2JqIiwgImNvbmRpdGlvbmFsQXR0
cjUiKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKmV4
ZWMsICJUZXN0T2JqIiwgImNvbmRpdGlvbmFsQXR0cjUiKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KKyAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNW
YWx1ZSk7CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KGJh
c2VPYmplY3QpOwogICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yCiAgICAg
Y2FzdGVkVGhpcy0+cHV0RGlyZWN0KGV4ZWMtPnZtKCksIElkZW50aWZpZXIoZXhlYywgImNvbmRp
dGlvbmFsQXR0cjUiKSwgdmFsdWUpOwogfQpAQCAtMjgxOSwyNiArMjgwMiwyMiBAQCB2b2lkIHNl
dEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiAvKiBiYXNlTwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5B
QkxFKENvbmRpdGlvbjIpCi12b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0
SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZFZhbHVlKTsKLSAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKLSAgICBpZiAoVU5MSUtF
TFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTVGVzdE9ialBy
b3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkKLSAgICAgICAgICAgIHJlcG9y
dERlcHJlY2F0ZWRTZXR0ZXJFcnJvcigqZXhlYywgIlRlc3RPYmoiLCAiY29uZGl0aW9uYWxBdHRy
NiIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqZXhl
YywgIlRlc3RPYmoiLCAiY29uZGl0aW9uYWxBdHRyNiIpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQorICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4oYmFz
ZU9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IKICAgICBj
YXN0ZWRUaGlzLT5wdXREaXJlY3QoZXhlYy0+dm0oKSwgSWRlbnRpZmllcihleGVjLCAiY29uZGl0
aW9uYWxBdHRyNiIpLCB2YWx1ZSk7CiB9CiAKICNlbmRpZgogCi12b2lkIHNldEpTVGVzdE9iakFu
eUF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3Zv
aWQgc2V0SlNUZXN0T2JqQW55QXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJh
c2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZh
bHVlKTsKKyAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICBpZiAoanNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSkpCkBAIC0yODU1LDkgKzI4MzQsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUo
RXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2QKIH0KIAog
Ci12b2lkIHNldEpTVGVzdE9iak11dGFibGVQb2ludChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqTXV0YWJsZVBvaW50KEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKKyAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7
CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlz
KSkgewogICAgICAgICBpZiAoanNEeW5hbWljQ2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpCkBAIC0yODc0LDkgKzI4NTQsMTAgQEAgdm9pZCBzZXRK
U1Rlc3RPYmpNdXRhYmxlUG9pbnQoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9i
amVjdCAqLywgRW5jb2QKIH0KIAogCi12b2lkIHNldEpTVGVzdE9iakltbXV0YWJsZVBvaW50KEV4
ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RP
YmpJbW11dGFibGVQb2ludChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CisgICAg
VU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKQpAQCAtMjg5
Myw5ICsyODc0LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqSW1tdXRhYmxlUG9pbnQoRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jCiB9CiAKIAotdm9pZCBzZXRK
U1Rlc3RPYmpTdHJhd2JlcnJ5KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmpl
Y3QgKi8sIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQordm9pZCBzZXRKU1Rlc3RPYmpTdHJhd2JlcnJ5KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmpl
Y3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFZhbHVlKTsKKyAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICBp
ZiAoanNEeW5hbWljQ2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSkpCkBAIC0yOTEyLDkgKzI4OTQsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpTdHJhd2Jl
cnJ5KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29kZWQK
IH0KIAogCi12b2lkIHNldEpTVGVzdE9ialN0cmljdEZsb2F0KEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpTdHJpY3RGbG9hdChFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VPYmpl
Y3QpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2Jq
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpIHsKICAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqUHJvdG90eXBlKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKQpAQCAtMjkzMSw5ICsyOTE0LDEwIEBAIHZvaWQg
c2V0SlNUZXN0T2JqU3RyaWN0RmxvYXQoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFz
ZU9iamVjdCAqLywgRW5jb2RlCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpJZChFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqSWQoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShiYXNlT2Jq
ZWN0KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7CiAgICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTVGVzdE9ialByb3RvdHlwZSo+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkKQEAgLTI5NTAsOSArMjkzNCwxMCBAQCB2b2lk
IHNldEpTVGVzdE9iaklkKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3Qg
Ki8sIEVuY29kZWRKU1ZhbHVlCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpSZXBsYWNlYWJsZUF0
dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQg
c2V0SlNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkVmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKICAgICBKU1Rlc3RPYmoq
IGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIGlm
IChqc0R5bmFtaWNDYXN0PEpTVGVzdE9ialByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKSkKQEAgLTI5NjYsOSArMjk1MSwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialJlcGxhY2Vh
YmxlQXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKgog
fQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9i
ak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZFZhbHVlKTsKKyAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICBpZiAo
anNEeW5hbWljQ2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSkpCkBAIC0yOTg1LDkgKzI5NzEsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpOdWxsYWJsZUxv
bmdTZXR0YWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXMKIH0K
IAogCi12b2lkIHNldEpTVGVzdE9iak51bGxhYmxlU3RyaW5nVmFsdWUoRXhlY1N0YXRlKiBleGVj
LCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9iak51bGxhYmxlU3Ry
aW5nVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNW
YWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIFVOVVNFRF9Q
QVJBTShiYXNlT2JqZWN0KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
alByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkKQEAgLTMwMDQsOSArMjk5
MSwxMCBAQCB2b2lkIHNldEpTVGVzdE9iak51bGxhYmxlU3RyaW5nVmFsdWUoRXhlY1N0YXRlKiBl
eGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLwogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2Jq
QXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
LyogYmFzZU9iamVjdCAqLywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVu
dW1UeXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFs
dWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKKyAgICBVTlVTRURfUEFS
QU0oYmFzZU9iamVjdCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICBpZiAoanNEeW5hbWljQ2FzdDxKU1Rlc3RPYmpQ
cm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IDY5Zjgx
ZTJmYWI0YzRlMzI5MGQzZThlN2RhYjcyOWQ3NDk2MmI5MDMuLjI2ZTM0YjljYjdjMGMwYTRjNTcx
ZWNkN2ZlZjlhNmQ2ZmZhZjRjMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC0yMzEsOSArMjMxLDEwIEBAIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9y
KEV4ZWNTdGF0ZSogZXhlYywKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6Z2V0Q29uc3RydWN0b3IoZXhlYy0+dm0oKSwgZG9t
T2JqZWN0LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi12b2lkIHNldEpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJh
c2VPYmplY3QgKi8sIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VW
YWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVl
IHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CisgICAgVU5VU0VEX1BBUkFN
KGJhc2VPYmplY3QpOwogICAgIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSgh
Y2FzdGVkVGhpcykpIHsKICAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpKQpAQCAtMjUwLDkgKzI1MSwxMCBAQCB2b2lkIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZVZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qCiB9CiAKIAot
dm9pZCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUoRXhlY1N0YXRlKiBleGVj
LCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkVmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKICAgICBK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSo+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAg
ICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZVByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMu
Y3BwCmluZGV4IGE0N2I3ZTZhOTQxNGFhOGZhMTBkMTdlNzUzZjZjMDAzMDlkZGIzMzAuLjcwZjMz
YTZmMzhlNWZjNjQyZWFlODViM2JkNjlhNjZjMjFlYWI2NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNw
cApAQCAtMjgwLDEyICsyODAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0ltbXV0
YWJsZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTTwogCiBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yVGVzdFN1Yk9iaihFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7Ci0gICAgSlNUZXN0VHlwZWRlZnMqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdFR5cGVkZWZzKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwotICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0
VHlwZWRlZnNQcm90b3R5cGUqPihzbG90QmFzZSkpCi0gICAgICAgICAgICByZXR1cm4gcmVwb3J0
RGVwcmVjYXRlZEdldHRlckVycm9yKCpleGVjLCAiVGVzdFR5cGVkZWZzIiwgIlRlc3RTdWJPYmoi
KTsKLSAgICAgICAgcmV0dXJuIHRocm93R2V0dGVyVHlwZUVycm9yKCpleGVjLCAiVGVzdFR5cGVk
ZWZzIiwgIlRlc3RTdWJPYmoiKTsKLSAgICB9CisgICAgSlNUZXN0VHlwZWRlZnMqIGNhc3RlZFRo
aXMgPSBqc0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPihzbG90QmFzZSk7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShKU1Rlc3RTdWJPYmo6OmdldENvbnN0cnVjdG9yKGV4ZWMtPnZtKCksIGNhc3Rl
ZFRoaXMtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKQEAgLTM1OCw5ICszNTMsMTAgQEAgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2Jq
ZWN0KiBiYXNlVmFsdWUsIEUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFR5cGVk
ZWZzOjpnZXRDb25zdHJ1Y3RvcihleGVjLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgp
KSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0cihFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0VHlw
ZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNl
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1
ZSk7CisgICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOwogICAgIEpTVGVzdFR5cGVkZWZzKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAg
IGlmIChqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpKQpAQCAtMzc3LDkgKzM3MywxMCBAQCB2b2lkIHNldEpTVGVzdFR5cGVk
ZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFz
ZU9iagogfQogCiAKLXZvaWQgc2V0SlNUZXN0VHlwZWRlZnNJbW11dGFibGVTZXJpYWxpemVkU2Ny
aXB0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lk
IHNldEpTVGVzdFR5cGVkZWZzSW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlKEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKKyAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7
CiAgICAgSlNUZXN0VHlwZWRlZnMqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5
cGVkZWZzKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSgh
Y2FzdGVkVGhpcykpIHsKICAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnNQ
cm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpCkBAIC0zOTYsOSArMzkzLDEw
IEBAIHZvaWQgc2V0SlNUZXN0VHlwZWRlZnNJbW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFsdWUo
RXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCoKIH0KIAogCi12b2lkIHNldEpTVGVzdFR5cGVkZWZz
QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFz
ZU9iamVjdCAqLywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdFR5cGVkZWZzQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24o
RXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShiYXNl
T2JqZWN0KTsKICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0VHlwZWRlZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICBpZiAoanNEeW5hbWljQ2FzdDxKU1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkKQEAgLTQxNSw5
ICs0MTMsMTAgQEAgdm9pZCBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2UKIH0KIAogCi12b2lkIHNldEpTVGVz
dFR5cGVkZWZzQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdFR5cGVkZWZzQXR0cldpdGhTZXR0ZXJF
eGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNW
YWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIFVOVVNFRF9Q
QVJBTShiYXNlT2JqZWN0KTsKICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICBpZiAoanNEeW5hbWljQ2Fz
dDxKU1Rlc3RUeXBlZGVmc1Byb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkK
QEAgLTQzNiw5ICs0MzUsMTAgQEAgdm9pZCBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJXaXRoU2V0dGVy
RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2UKIH0KIAogCi12b2lk
IHNldEpTVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdFR5cGVkZWZz
U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
YmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
VmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKICAgICBKU1Rlc3RUeXBlZGVm
cyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAg
ICAgICBpZiAoanNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmc1Byb3RvdHlwZSo+KEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKSkKQEAgLTQ1NSw5ICs0NTUsMTAgQEAgdm9pZCBzZXRKU1Rlc3RU
eXBlZGVmc1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIC8KIH0KIAogCi12b2lkIHNldEpTVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhTZXR0
ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2
b2lkIHNldEpTVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0
KTsKICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
VHlwZWRlZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFjYXN0ZWRUaGlzKSkgewogICAgICAgICBpZiAoanNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVm
c1Byb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKSkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxODM2NDNi
NDAwMmIzODVlYzY4ZTI0MWJlMzBmYTQ0NTJlNDNiODc4Li4xYmMyMzNlNmVjOGFhMzg5NmNkYTgz
Nzc4N2QxZDcyNWMxMjdjOGM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTQtMDUtMjggIE9s
aXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIERPTSBwcm9wZXJ0
aWVzIGV4cG9zZWQgYXMgaW5zdGFuY2UgcHJvcGVydGllcyB1c2UgdGhlIGJhc2Ugb2JqZWN0IGlu
c3RlYWQgb2YgfHRoaXN8CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzMzNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVcGRhdGUgdGVzdHMgdG8gY292ZXIgY2hhbmdlIGluIGV4cGVjdGVkIGJlaGF2aW91
ci4KKworICAgICAgICAqIGpzL2RvbS9kb20tYXMtcHJvdG90eXBlLWFzc2lnbm1lbnQtZXhjZXB0
aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9kb20vZG9tLWF0dHJpYnV0ZXMtb24tbWlz
bWF0Y2gtdHlwZS1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvZG9tL2RvbS1hdHRyaWJ1dGVz
LW9uLW1pc21hdGNoLXR5cGUuaHRtbDoKKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL2Rv
bS1hcy1wcm90b3R5cGUtYXNzaWdubWVudC1leGNlcHRpb24uanM6CisKIDIwMTQtMDUtMjggIFJh
ZHUgU3RhdmlsYSAgPHN0YXZpbGFAYWRvYmUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIx
NjgwNDYpOiBJbnZhbGlkIGxheW91dCBpbiBtdWx0aWNvbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvZG9tL2RvbS1hcy1wcm90b3R5cGUtYXNzaWdubWVudC1leGNlcHRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL2RvbS1hcy1wcm90b3R5cGUtYXNzaWdubWVudC1leGNl
cHRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDgwZDdhYTRjMmJkYThiYzY2ZTkzOGQxZjg5ZjM2NDU3
NDBkZTA4NWMuLjczYjlmYTk2MWM2NjJlYTI5MzYxZmRiZjgwNzhiMjM0ZWI2MDU1NmIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2pzL2RvbS9kb20tYXMtcHJvdG90eXBlLWFzc2lnbm1lbnQtZXhj
ZXB0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vZG9tLWFzLXByb3Rv
dHlwZS1hc3NpZ25tZW50LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKQEAgLTcsNyArNyw3IEBAIE9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIFBBU1MgdGVzdE9iamVjdC5pZCBpcyB1bmRlZmluZWQu
CiBQQVNTIHRlc3RPYmplY3QuaWQ9ImZvbyIgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVGhl
IEVsZW1lbnQuaWQgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIEVsZW1l
bnQuCi1QQVNTIHRlc3RPYmplY3QubGVuZ3RoIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFRo
ZSBOb2RlTGlzdC5sZW5ndGggZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9m
IE5vZGVMaXN0LgorUEFTUyB0ZXN0T2JqZWN0Lmxlbmd0aCBpcyAxCiBQQVNTIGRpdi5pZCBpcyAn
dGVzdCcKIFBBU1MgZGl2Lmhhc093blByb3BlcnR5KCdpZCcpIGlzIGZhbHNlCiBQQVNTIGRpdi5f
X3Byb3RvX18uaWQgaXMgdW5kZWZpbmVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9t
L2RvbS1hdHRyaWJ1dGVzLW9uLW1pc21hdGNoLXR5cGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvanMvZG9tL2RvbS1hdHRyaWJ1dGVzLW9uLW1pc21hdGNoLXR5cGUtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDQ2ZmMwOWMxNzk3OTBkMDc4NDJjMjhlODk3YjE5YmViMTE5MDc5M2EuLmZiYTAxMWQ1Yjc4
ZmNjYzQ2Y2RiYjJkODE5YmZkNThiY2ExMmMzMTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pz
L2RvbS9kb20tYXR0cmlidXRlcy1vbi1taXNtYXRjaC10eXBlLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vZG9tLWF0dHJpYnV0ZXMtb24tbWlzbWF0Y2gtdHlwZS1leHBlY3Rl
ZC50eHQKQEAgLTUsNyArNSw3IEBAIE1ha2Ugc3VyZSBET00gYXR0cmlidXRlcyBoYW5kbGUgZGlm
ZmVyZW50IHR5cGVzIG9mIHx0aGlzfCBwcm9wZXJseQogT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgogCiAKLVBBU1Mgb2JqZWN0V2l0aERvY3VtZW50QXNQcm90b3R5cGUuYWxsIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFRoZSBIVE1MRG9jdW1lbnQuYWxsIGdldHRlciBjYW4gb25seSBiZSB1
c2VkIG9uIGluc3RhbmNlcyBvZiBIVE1MRG9jdW1lbnQuCitQQVNTIG9iamVjdFdpdGhEb2N1bWVu
dEFzUHJvdG90eXBlLmFsbCBpcyB1bmRlZmluZWQuCiBTZWUgd2hhdCBoYXBwZW5zIGlmIHdlIHB1
dCB0aGUgYW5jaG9yIHByb3RvdHlwZSBvbiBhIGRpdgogUEFTUyB0ZXN0RGl2IGluc3RhbmNlb2Yg
SFRNTEFuY2hvckVsZW1lbnQgaXMgdHJ1ZQogUEFTUyB0ZXN0RGl2LmhyZWYgaXMgdW5kZWZpbmVk
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL2RvbS1hdHRyaWJ1dGVzLW9uLW1pc21h
dGNoLXR5cGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9kb20tYXR0cmlidXRlcy1vbi1taXNt
YXRjaC10eXBlLmh0bWwKaW5kZXggNmUyOTJiNGM1MDA1Mjg1N2ViZDEwN2M1MjRhZDQ5ZmMyOWUy
YzEyMy4uMmIxOWY3NzhkZGNlYzdmOGE5NGQ4YjFiZDcyOWFiYTk1YzdkZDdkYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvanMvZG9tL2RvbS1hdHRyaWJ1dGVzLW9uLW1pc21hdGNoLXR5cGUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vZG9tLWF0dHJpYnV0ZXMtb24tbWlzbWF0Y2gtdHlw
ZS5odG1sCkBAIC0xMiw3ICsxMiw3IEBACiAgICAgICAgIHZhciB0ZXN0RGl2ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRlc3REaXYiKTsKICAgICAgICAgdmFyIHRlc3RBbmNob3IgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdEFuY2hvciIpOwogICAgICAgICB2YXIgb2JqZWN0V2l0
aERvY3VtZW50QXNQcm90b3R5cGUgPSB7IF9fcHJvdG9fXzogZG9jdW1lbnQgfTsKLSAgICAgICAg
c2hvdWxkVGhyb3coIm9iamVjdFdpdGhEb2N1bWVudEFzUHJvdG90eXBlLmFsbCIpOworICAgICAg
ICBzaG91bGRCZVVuZGVmaW5lZCgib2JqZWN0V2l0aERvY3VtZW50QXNQcm90b3R5cGUuYWxsIik7
CiAgICAgICAgIGRlYnVnKCJTZWUgd2hhdCBoYXBwZW5zIGlmIHdlIHB1dCB0aGUgYW5jaG9yIHBy
b3RvdHlwZSBvbiBhIGRpdiIpOwogICAgICAgICB0ZXN0RGl2Ll9fcHJvdG9fXyA9IHRlc3RBbmNo
b3IuX19wcm90b19fOwogICAgICAgICBzaG91bGRCZVRydWUoInRlc3REaXYgaW5zdGFuY2VvZiBI
VE1MQW5jaG9yRWxlbWVudCIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0
LXRlc3RzL2RvbS1hcy1wcm90b3R5cGUtYXNzaWdubWVudC1leGNlcHRpb24uanMgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2RvbS1hcy1wcm90b3R5cGUtYXNzaWdubWVudC1leGNl
cHRpb24uanMKaW5kZXggZDlkYTFlNWRmMmU2M2M4NmYxMzdmN2ZkZDQ5NDk4ZmMwNDg3OTk5Mi4u
ZDczOTIxOTZjOTI3ZTNkY2M2Njc5YzkzMWM5Nzg0YTU2ZGUxOGFjZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9kb20tYXMtcHJvdG90eXBlLWFzc2lnbm1lbnQt
ZXhjZXB0aW9uLmpzCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvZG9tLWFz
LXByb3RvdHlwZS1hc3NpZ25tZW50LWV4Y2VwdGlvbi5qcwpAQCAtMTEsNyArMTEsNyBAQCBzaG91
bGRCZVVuZGVmaW5lZCgndGVzdE9iamVjdC5pZCcpCiBzaG91bGRUaHJvdygndGVzdE9iamVjdC5p
ZD0iZm9vIicpCiAKIHRlc3RPYmplY3QgPSB7X19wcm90b19fOiBkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgiZGl2Iil9Ci1zaG91bGRUaHJvdygidGVzdE9iamVjdC5sZW5ndGgiKQorc2hv
dWxkQmUoInRlc3RPYmplY3QubGVuZ3RoIiwgJzEnKQogCiBzaG91bGRCZSgiZGl2LmlkIiwgIid0
ZXN0JyIpCiBzaG91bGRCZUZhbHNlKCJkaXYuaGFzT3duUHJvcGVydHkoJ2lkJykiKQo=
</data>
<flag name="review"
          id="256701"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>