<?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>197989</bug_id>
          
          <creation_ts>2019-05-17 10:19:33 -0700</creation_ts>
          <short_desc>REGRESSION(r245418): New API test causing crashes on Mojave testers (Requested by ShawnRoberts on #webkit).</short_desc>
          <delta_ts>2019-05-17 10:32:49 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=197988</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>197800</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>achristensen</cc>
    
    <cc>sroberts</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1537145</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-17 10:19:33 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/245418 broke the build:
New API test causing crashes on Mojave testers (Requested by ShawnRoberts on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537147</commentid>
    <comment_count>1</comment_count>
      <attachid>370125</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-17 10:19:40 -0700</bug_when>
    <thetext>Created attachment 370125
ROLLOUT of r245418

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537148</commentid>
    <comment_count>2</comment_count>
      <attachid>370125</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-17 10:22:46 -0700</bug_when>
    <thetext>Comment on attachment 370125
ROLLOUT of r245418

Clearing flags on attachment: 370125

Committed r245468: &lt;https://trac.webkit.org/changeset/245468&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537149</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-17 10:22:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537150</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-17 10:24:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/50897051&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370125</attachid>
            <date>2019-05-17 10:19:40 -0700</date>
            <delta_ts>2019-05-17 10:22:46 -0700</delta_ts>
            <desc>ROLLOUT of r245418</desc>
            <filename>bug-197989-20190517101939.patch</filename>
            <type>text/plain</type>
            <size>43358</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1NDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDMzYjBkYjE3ZTc0N2UwNjA1NjllZjgz
MjhmM2JiYzU0ZDk1OGYwZWUuLjQ5MmQ3YjA4ZmY1OWZjMDFkOWE4YWE3ODA5Y2I2MDZkZWFlNzFl
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDUtMTcgIENvbW1pdCBRdWV1ZSAgPGNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIy
NDU0MTguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTc5ODkKKworICAgICAgICBOZXcgQVBJIHRlc3QgY2F1c2luZyBjcmFzaGVzIG9uIE1vamF2ZSB0
ZXN0ZXJzIChSZXF1ZXN0ZWQgYnkKKyAgICAgICAgU2hhd25Sb2JlcnRzIG9uICN3ZWJraXQpLgor
CisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiQWRkIGEgdW5pdCB0ZXN0
IGZvciBjbGllbnQgY2VydGlmaWNhdGUgYXV0aGVudGljYXRpb24iCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc4MDAKKyAgICAgICAgaHR0cHM6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI0NTQxOAorCiAyMDE5LTA1LTE2ICBLZWl0aCBNaWxs
ZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFdhc20gc2hvdWxkIGNhZ2Ug
dGhlIG1lbW9yeSBiYXNlIHBvaW50ZXJzIGluIHN0cnVjdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMmQwMGRmOGMw
OTZkYWY2OTg1YjI2MjhkMGQ3YzQwNzVhZDg5MWQ3OS4uNGZjODIwZDYyYjJjN2Y5YWI2MTY3NTFi
ZDQ1MmViN2QyYjY5NzZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0wNS0xNyAg
Q29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjI0NTQxOC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5Nzk4OQorCisgICAgICAgIE5ldyBBUEkgdGVzdCBjYXVzaW5n
IGNyYXNoZXMgb24gTW9qYXZlIHRlc3RlcnMgKFJlcXVlc3RlZCBieQorICAgICAgICBTaGF3blJv
YmVydHMgb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAg
ICAgICJBZGQgYSB1bml0IHRlc3QgZm9yIGNsaWVudCBjZXJ0aWZpY2F0ZSBhdXRoZW50aWNhdGlv
biIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Nzgw
MAorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjQ1NDE4CisKIDIw
MTktMDUtMTcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtp
T1NdIFJlc3BlY3Qgc2Nyb2xsaW5nPSJubyIgb24gY29tcG9zaXRlZCBmcmFtZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9TZWN1cml0eVNQSS5oIGIvU291cmNlL1dURi93
dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJLmgKaW5kZXggOTM1N2QwYzhiZWY5MTc3YTc1YzVjZDY4
ZTkwNTUyNGNiMmY3M2U4Yy4uOTZlMzBhN2M3ZDI5NGY0NTVjMDNiMGRlMzdiZTBhNGQxMjEzNWU0
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJLmgKKysr
IGIvU291cmNlL1dURi93dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJLmgKQEAgLTI3LDEwICsyNyw3
IEBACiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCi0jaW5jbHVkZSA8U2VjdXJpdHkv
U2VjQWNjZXNzQ29udHJvbFByaXYuaD4KICNpbmNsdWRlIDxTZWN1cml0eS9TZWNDZXJ0aWZpY2F0
ZVByaXYuaD4KLSNpbmNsdWRlIDxTZWN1cml0eS9TZWNJZGVudGl0eVByaXYuaD4KLSNpbmNsdWRl
IDxTZWN1cml0eS9TZWNLZXlQcml2Lmg+CiAjaW5jbHVkZSA8U2VjdXJpdHkvU2VjVGFzay5oPgog
I2luY2x1ZGUgPFNlY3VyaXR5L1NlY1RydXN0UHJpdi5oPgogCkBAIC03MCwxMSArNjcsNyBAQCBX
VEZfRVhURVJOX0NfQkVHSU4KIAogU2VjVGFza1JlZiBTZWNUYXNrQ3JlYXRlV2l0aEF1ZGl0VG9r
ZW4oQ0ZBbGxvY2F0b3JSZWYsIGF1ZGl0X3Rva2VuX3QpOwogU2VjVGFza1JlZiBTZWNUYXNrQ3Jl
YXRlRnJvbVNlbGYoQ0ZBbGxvY2F0b3JSZWYpOwotQ0ZUeXBlUmVmIFNlY1Rhc2tDb3B5VmFsdWVG
b3JFbnRpdGxlbWVudChTZWNUYXNrUmVmLCBDRlN0cmluZ1JlZiBlbnRpdGxlbWVudCwgQ0ZFcnJv
clJlZiopOwotU2VjSWRlbnRpdHlSZWYgU2VjSWRlbnRpdHlDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYs
IFNlY0NlcnRpZmljYXRlUmVmLCBTZWNLZXlSZWYpOwotT1NTdGF0dXMgU2VjS2V5RmluZFdpdGhQ
ZXJzaXN0ZW50UmVmKENGRGF0YVJlZiBwZXJzaXN0ZW50UmVmLCBTZWNLZXlSZWYqIGxvb2tlZFVw
RGF0YSk7Ci1TZWNBY2Nlc3NDb250cm9sUmVmIFNlY0FjY2Vzc0NvbnRyb2xDcmVhdGVGcm9tRGF0
YShDRkFsbG9jYXRvclJlZiwgQ0ZEYXRhUmVmLCBDRkVycm9yUmVmKik7Ci1DRkRhdGFSZWYgU2Vj
QWNjZXNzQ29udHJvbENvcHlEYXRhKFNlY0FjY2Vzc0NvbnRyb2xSZWYpOworQ0ZUeXBlUmVmIFNl
Y1Rhc2tDb3B5VmFsdWVGb3JFbnRpdGxlbWVudChTZWNUYXNrUmVmLCBDRlN0cmluZ1JlZiBlbnRp
dGxlbWVudCwgQ0ZFcnJvclJlZiAqKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlIDxT
ZWN1cml0eS9TZWNBc24xVHlwZXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1l
bnRDb2RlcnNDRi5jcHAKaW5kZXggZDM1OTI1YjkzOTRkYTU4MTcxNzEzOThiODM0YWQ4MzdiMzI2
NWE4OC4uZmRiOGU4ODU3NGQzYWQ1M2EyZWFmMzJkOGFiYTBiMzNlMDk4ZTc0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAKQEAgLTQxLDYgKzQxLDI5
IEBACiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNlbmRpZgogCisjaWYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRlIDxTZWN1cml0eS9TZWNJZGVudGl0eVByaXYu
aD4KKyNlbmRpZgorCitleHRlcm4gIkMiIFNlY0lkZW50aXR5UmVmIFNlY0lkZW50aXR5Q3JlYXRl
KENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgU2VjQ2VydGlmaWNhdGVSZWYgY2VydGlmaWNhdGUs
IFNlY0tleVJlZiBwcml2YXRlS2V5KTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRlIDxTZWN1cml0eS9TZWNLZXlQcml2Lmg+
CisjZW5kaWYKKworZXh0ZXJuICJDIiBPU1N0YXR1cyBTZWNLZXlGaW5kV2l0aFBlcnNpc3RlbnRS
ZWYoQ0ZEYXRhUmVmIHBlcnNpc3RlbnRSZWYsIFNlY0tleVJlZiogbG9va2VkVXBEYXRhKTsKKyNl
bmRpZgorCisjaWYgSEFWRShTRUNfQUNDRVNTX0NPTlRST0wpCisjaWYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKKyNpbmNsdWRlIDxTZWN1cml0eS9TZWNBY2Nlc3NDb250cm9sUHJpdi5oPgorI2Vu
ZGlmCisKK2V4dGVybiAiQyIgU2VjQWNjZXNzQ29udHJvbFJlZiBTZWNBY2Nlc3NDb250cm9sQ3Jl
YXRlRnJvbURhdGEoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRkRhdGFSZWYgZGF0YSwgQ0ZF
cnJvclJlZiAqZXJyb3IpOworZXh0ZXJuICJDIiBDRkRhdGFSZWYgU2VjQWNjZXNzQ29udHJvbENv
cHlEYXRhKFNlY0FjY2Vzc0NvbnRyb2xSZWYgYWNjZXNzX2NvbnRyb2wpOworI2VuZGlmCisKIG5h
bWVzcGFjZSBJUEMgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzYWU5ZWY0MTM3ZTRiMDhmZDcy
YTljOTdiYWViYzhlNTE5YjE1ZWIxLi5kZmE5YTNhNThmZGZiNjRmOGZkMjEzMTRmNjhjMTRjODAw
YjI3ZjdkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDUtMTcgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1
ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDU0MTgu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc5ODkK
KworICAgICAgICBOZXcgQVBJIHRlc3QgY2F1c2luZyBjcmFzaGVzIG9uIE1vamF2ZSB0ZXN0ZXJz
IChSZXF1ZXN0ZWQgYnkKKyAgICAgICAgU2hhd25Sb2JlcnRzIG9uICN3ZWJraXQpLgorCisgICAg
ICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiQWRkIGEgdW5pdCB0ZXN0IGZvciBj
bGllbnQgY2VydGlmaWNhdGUgYXV0aGVudGljYXRpb24iCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc4MDAKKyAgICAgICAgaHR0cHM6Ly90cmFjLndl
YmtpdC5vcmcvY2hhbmdlc2V0LzI0NTQxOAorCiAyMDE5LTA1LTE3ICBBYWthc2ggSmFpbiAgPGFh
a2FzaF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbZXdzLWJ1aWxkXSBBZGQgYnVpbGQgc3Rl
cCB0byBUcmFuc2ZlciBhcmNoaXZlIHRvIFMzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1RDUFNlcnZlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1RDUFNlcnZlci5jcHAKaW5k
ZXggMmJhN2E2MzQxNDcyMWU4NDlhNDI2ZGRkMWNlMmEzMTY4ODY0NTkxNC4uMzFiMTQ3MDEyNjY4
NjA2YTFlNDFlZTFkNWExMDJmYTEwNzUzM2Q3MiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UQ1BTZXJ2ZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVENQU2VydmVyLmNw
cApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgPHRocmVhZD4KICNpbmNsdWRlIDx1bmlzdGQu
aD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9CYXNlNjQu
aD4KIAogZXh0ZXJuICJDIiB7CiAKQEAgLTM5LDEwICszOCw2IEBAIHN0cnVjdCBYNTA5Owogc3Ry
dWN0IFNTTF9DVFg7CiBzdHJ1Y3QgRVZQX1BLRVk7CiBzdHJ1Y3QgU1NMX01FVEhPRDsKLXN0cnVj
dCBYNTA5X1NUT1JFX0NUWCB7Ci0gICAgdm9pZCogdW51c2VkOwotICAgIFg1MDkqIGNlcnQ7Ci19
Owogc3RydWN0IHBlbV9wYXNzd29yZF9jYjsKIGludCBCSU9fZnJlZShCSU8qKTsKIGludCBTU0xf
ZnJlZShTU0wqKTsKQEAgLTYxLDE1ICs1Niw2IEBAIGludCBTU0xfQ1RYX3VzZV9Qcml2YXRlS2V5
KFNTTF9DVFgqLCBFVlBfUEtFWSopOwogU1NMKiBTU0xfbmV3KFNTTF9DVFgqKTsKIGludCBTU0xf
YWNjZXB0KFNTTCopOwogaW50IFNTTF9zZXRfZmQoU1NMKiwgaW50KTsKLXZvaWQgU1NMX0NUWF9z
ZXRfdmVyaWZ5KFNTTF9DVFgqLCBpbnQsIGludCAoKikoaW50LCBYNTA5X1NUT1JFX0NUWCopKTsK
LXZvaWQgU1NMX0NUWF9zZXRfY2VydF92ZXJpZnlfY2FsbGJhY2soU1NMX0NUWCosIGludCAoKiko
WDUwOV9TVE9SRV9DVFgqLCB2b2lkKiksIHZvaWQqKTsKLWludCBTU0xfZ2V0X2Vycm9yKGNvbnN0
IFNTTCosIGludCk7Ci1pbnQgU1NMX3JlYWQoU1NMKiwgdm9pZCosIGludCk7Ci1pbnQgU1NMX3dy
aXRlKFNTTCosIGNvbnN0IHZvaWQqLCBpbnQpOwotaW50IGkyZF9YNTA5KFg1MDkqLCB1bnNpZ25l
ZCBjaGFyKiopOwotdm9pZCBPUEVOU1NMX2ZyZWUodm9pZCopOwotI2RlZmluZSBTU0xfVkVSSUZZ
X1BFRVIgMHgwMQotI2RlZmluZSBTU0xfVkVSSUZZX0ZBSUxfSUZfTk9fUEVFUl9DRVJUIDB4MDIK
IAogfSAvLyBleHRlcm4gIkMiCiAKQEAgLTEwNiwxMiArOTIsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBkZWxldGVyPEVWUF9QS0VZPiB7CiAgICAgICAgIEVWUF9QS0VZX2ZyZWUoa2V5KTsKICAgICB9
CiB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgZGVsZXRlcjx1aW50OF90W10+IHsKLSAgICB2b2lkIG9w
ZXJhdG9yKCkodWludDhfdCogYnVmZmVyKQotICAgIHsKLSAgICAgICAgT1BFTlNTTF9mcmVlKGJ1
ZmZlcik7Ci0gICAgfQotfTsKIAogVENQU2VydmVyOjpUQ1BTZXJ2ZXIoRnVuY3Rpb248dm9pZChT
b2NrZXQpPiYmIGNvbm5lY3Rpb25IYW5kbGVyLCBzaXplX3QgY29ubmVjdGlvbnMpCiAgICAgOiBt
X2Nvbm5lY3Rpb25IYW5kbGVyKFdURk1vdmUoY29ubmVjdGlvbkhhbmRsZXIpKQpAQCAtMTIxLDcg
KzEwMSw3IEBAIFRDUFNlcnZlcjo6VENQU2VydmVyKEZ1bmN0aW9uPHZvaWQoU29ja2V0KT4mJiBj
b25uZWN0aW9uSGFuZGxlciwgc2l6ZV90IGNvbm5lY3RpCiAKIFRDUFNlcnZlcjo6VENQU2VydmVy
KFByb3RvY29sIHByb3RvY29sLCBGdW5jdGlvbjx2b2lkKFNTTCopPiYmIHNlY3VyZUNvbm5lY3Rp
b25IYW5kbGVyKQogewotICAgIGF1dG8gc3RhcnRTZWN1cmVDb25uZWN0aW9uID0gW3NlY3VyZUNv
bm5lY3Rpb25IYW5kbGVyID0gV1RGTW92ZShzZWN1cmVDb25uZWN0aW9uSGFuZGxlciksIHByb3Rv
Y29sXSAoU29ja2V0IHNvY2tldCkgeworICAgIGF1dG8gc3RhcnRTZWN1cmVDb25uZWN0aW9uID0g
W3NlY3VyZUNvbm5lY3Rpb25IYW5kbGVyID0gV1RGTW92ZShzZWN1cmVDb25uZWN0aW9uSGFuZGxl
cildIChTb2NrZXQgc29ja2V0KSB7CiAgICAgICAgIFNTTF9saWJyYXJ5X2luaXQoKTsKIAogICAg
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8U1NMX0NUWCwgZGVsZXRlcjxTU0xfQ1RYPj4gY3R4KFNTTF9D
VFhfbmV3KFNTTHYyM19zZXJ2ZXJfbWV0aG9kKCkpKTsKQEAgLTE0OSwyMCArMTI5LDYgQEAgVENQ
U2VydmVyOjpUQ1BTZXJ2ZXIoUHJvdG9jb2wgcHJvdG9jb2wsIEZ1bmN0aW9uPHZvaWQoU1NMKik+
JiYgc2VjdXJlQ29ubmVjdGlvbkgKICAgICAgICAgQVNTRVJUKGNlcnRYNTA5KTsKICAgICAgICAg
U1NMX0NUWF91c2VfY2VydGlmaWNhdGUoY3R4LmdldCgpLCBjZXJ0WDUwOS5nZXQoKSk7CiAKLSAg
ICAgICAgaWYgKHByb3RvY29sID09IFByb3RvY29sOjpIVFRQU1dpdGhDbGllbnRDZXJ0aWZpY2F0
ZVJlcXVlc3QpIHsKLSAgICAgICAgICAgIFNTTF9DVFhfc2V0X3ZlcmlmeShjdHguZ2V0KCksIFNT
TF9WRVJJRllfUEVFUiB8IFNTTF9WRVJJRllfRkFJTF9JRl9OT19QRUVSX0NFUlQsIG51bGxwdHIp
OwotICAgICAgICAgICAgU1NMX0NUWF9zZXRfY2VydF92ZXJpZnlfY2FsbGJhY2soY3R4LmdldCgp
LCBbXSAoWDUwOV9TVE9SRV9DVFgqIHN0b3JlX2N0eCwgdm9pZCopIC0+IGludCB7Ci0gICAgICAg
ICAgICAgICAgdWludDhfdCogYnVmZmVyUG9pbnRlciA9IG51bGxwdHI7Ci0gICAgICAgICAgICAg
ICAgYXV0byBsZW5ndGggPSBpMmRfWDUwOShzdG9yZV9jdHgtPmNlcnQsICZidWZmZXJQb2ludGVy
KTsKLSAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8dWludDhfdFtdLCBkZWxldGVyPHVp
bnQ4X3RbXT4+IGJ1ZmZlcihidWZmZXJQb2ludGVyKTsKLSAgICAgICAgICAgICAgICBhdXRvIGV4
cGVjdGVkQ2VydCA9IHRlc3RDZXJ0aWZpY2F0ZSgpOwotICAgICAgICAgICAgICAgIEVYUEVDVF9F
UShzdGF0aWNfY2FzdDxpbnQ+KGV4cGVjdGVkQ2VydC5zaXplKCkpLCBsZW5ndGgpOwotICAgICAg
ICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAg
ICAgICAgIEVYUEVDVF9FUShidWZmZXIuZ2V0KClbaV0sIGV4cGVjdGVkQ2VydFtpXSk7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgICAgICB9LCBudWxscHRyKTsKLSAgICAgICAg
fQotCiAgICAgICAgIC8vIFRoaXMgaXMgYSB0ZXN0IGtleSBmcm9tIEJvcmluZ1NTTC4KICAgICAg
ICAgY2hhciBrS2V5UEVNW10gPQogICAgICAgICAiLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVkt
LS0tLVxuIgpAQCAtMTk4LDcgKzE2NCw2IEBAIFRDUFNlcnZlcjo6VENQU2VydmVyKFByb3RvY29s
IHByb3RvY29sLCBGdW5jdGlvbjx2b2lkKFNTTCopPiYmIHNlY3VyZUNvbm5lY3Rpb25ICiAKICAg
ICBzd2l0Y2ggKHByb3RvY29sKSB7CiAgICAgY2FzZSBQcm90b2NvbDo6SFRUUFM6Ci0gICAgY2Fz
ZSBQcm90b2NvbDo6SFRUUFNXaXRoQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0OgogICAgICAgICBt
X2Nvbm5lY3Rpb25IYW5kbGVyID0gV1RGTW92ZShzdGFydFNlY3VyZUNvbm5lY3Rpb24pOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFByb3RvY29sOjpIVFRQU1Byb3h5OgpAQCAtMjc0LDE4MiAr
MjM5LDQgQEAgYXV0byBUQ1BTZXJ2ZXI6OnNvY2tldEJpbmRMaXN0ZW4oc2l6ZV90IGNvbm5lY3Rp
b25zKSAtPiBPcHRpb25hbDxTb2NrZXQ+CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAot
dGVtcGxhdGU8PiBWZWN0b3I8dWludDhfdD4gVENQU2VydmVyOjpyZWFkKFNvY2tldCBzb2NrZXQp
Ci17Ci0gICAgdWludDhfdCBidWZmZXJbMTAwMF07Ci0gICAgYXV0byBieXRlc1JlYWQgPSA6OnJl
YWQoc29ja2V0LCBidWZmZXIsIHNpemVvZihidWZmZXIpKTsKLSAgICBBU1NFUlRfVU5VU0VEKGJ5
dGVzUmVhZCwgYnl0ZXNSZWFkID4gMCk7Ci0gICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4o
Ynl0ZXNSZWFkKSA8IHNpemVvZihidWZmZXIpKTsKLQotICAgIFZlY3Rvcjx1aW50OF90PiB2ZWN0
b3I7Ci0gICAgdmVjdG9yLmFwcGVuZChidWZmZXIsIGJ5dGVzUmVhZCk7Ci0gICAgcmV0dXJuIHZl
Y3RvcjsKLX0KLQotdGVtcGxhdGU8PiB2b2lkIFRDUFNlcnZlcjo6d3JpdGUoU29ja2V0IHNvY2tl
dCwgY29uc3Qgdm9pZCogcmVzcG9uc2UsIHNpemVfdCBsZW5ndGgpCi17Ci0gICAgYXV0byBieXRl
c1dyaXR0ZW4gPSA6OndyaXRlKHNvY2tldCwgcmVzcG9uc2UsIGxlbmd0aCk7Ci0gICAgRVhQRUNU
X0VRKHN0YXRpY19jYXN0PHNpemVfdD4oYnl0ZXNXcml0dGVuKSwgbGVuZ3RoKTsKLX0KLQotdGVt
cGxhdGU8PiBWZWN0b3I8dWludDhfdD4gVENQU2VydmVyOjpyZWFkKFNTTCogc3NsKQotewotICAg
IHVpbnQ4X3QgYnVmZmVyWzEwMDBdOwotICAgIGF1dG8gYnl0ZXNSZWFkID0gU1NMX3JlYWQoc3Ns
LCBidWZmZXIsIHNpemVvZihidWZmZXIpKTsKLSAgICBBU1NFUlRfVU5VU0VEKGJ5dGVzUmVhZCwg
Ynl0ZXNSZWFkID4gMCk7Ci0gICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oYnl0ZXNSZWFk
KSA8IHNpemVvZihidWZmZXIpKTsKLQotICAgIFZlY3Rvcjx1aW50OF90PiB2ZWN0b3I7Ci0gICAg
dmVjdG9yLmFwcGVuZChidWZmZXIsIGJ5dGVzUmVhZCk7Ci0gICAgcmV0dXJuIHZlY3RvcjsKLX0K
LQotdGVtcGxhdGU8PiB2b2lkIFRDUFNlcnZlcjo6d3JpdGUoU1NMKiBzc2wsIGNvbnN0IHZvaWQq
IHJlc3BvbnNlLCBzaXplX3QgbGVuZ3RoKQotewotICAgIGF1dG8gYnl0ZXNXcml0dGVuID0gU1NM
X3dyaXRlKHNzbCwgcmVzcG9uc2UsIGxlbmd0aCk7Ci0gICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0
PHNpemVfdD4oYnl0ZXNXcml0dGVuKSwgbGVuZ3RoKTsKLX0KLQotdm9pZCBUQ1BTZXJ2ZXI6OnJl
c3BvbmRXaXRoQ2hhbGxlbmdlVGhlbk9LKFNvY2tldCBzb2NrZXQpCi17Ci0gICAgcmVhZChzb2Nr
ZXQpOwotICAgIAotICAgIGNvbnN0IGNoYXIqIGNoYWxsZW5nZUhlYWRlciA9Ci0gICAgIkhUVFAv
MS4xIDQwMSBVbmF1dGhvcml6ZWRcclxuIgotICAgICJEYXRlOiBTYXQsIDIzIE1hciAyMDE5IDA2
OjI5OjAxIEdNVFxyXG4iCi0gICAgIkNvbnRlbnQtTGVuZ3RoOiAwXHJcbiIKLSAgICAiV1dXLUF1
dGhlbnRpY2F0ZTogQmFzaWMgcmVhbG09XCJ0ZXN0cmVhbG1cIlxyXG5cclxuIjsKLSAgICB3cml0
ZShzb2NrZXQsIGNoYWxsZW5nZUhlYWRlciwgc3RybGVuKGNoYWxsZW5nZUhlYWRlcikpOwotICAg
IAotICAgIHJlYWQoc29ja2V0KTsKLSAgICAKLSAgICBjb25zdCBjaGFyKiByZXNwb25zZUhlYWRl
ciA9Ci0gICAgIkhUVFAvMS4xIDIwMCBPS1xyXG4iCi0gICAgIkNvbnRlbnQtTGVuZ3RoOiAxM1xy
XG5cclxuIgotICAgICJIZWxsbywgV29ybGQhIjsKLSAgICB3cml0ZShzb2NrZXQsIHJlc3BvbnNl
SGVhZGVyLCBzdHJsZW4ocmVzcG9uc2VIZWFkZXIpKTsKLX0KLQotdm9pZCBUQ1BTZXJ2ZXI6OnJl
c3BvbmRXaXRoT0soU1NMKiBzc2wpCi17Ci0gICAgcmVhZChzc2wpOwotICAgIAotICAgIGNvbnN0
IGNoYXIqIHJlcGx5ID0gIiIKLSAgICAiSFRUUC8xLjEgMjAwIE9LXHJcbiIKLSAgICAiQ29udGVu
dC1MZW5ndGg6IDM0XHJcblxyXG4iCi0gICAgIjxzY3JpcHQ+YWxlcnQoJ3N1Y2Nlc3MhJyk8L3Nj
cmlwdD4iOwotICAgIHdyaXRlKHNzbCwgcmVwbHksIHN0cmxlbihyZXBseSkpOwotfQotCi1WZWN0
b3I8dWludDhfdD4gVENQU2VydmVyOjp0ZXN0Q2VydGlmaWNhdGUoKQotewotICAgIC8vIENlcnRp
ZmljYXRlIGFuZCBwcml2YXRlIGtleSB3ZXJlIGdlbmVyYXRlZCBieSBydW5uaW5nIHRoaXMgY29t
bWFuZDoKLSAgICAvLyBvcGVuc3NsIHJlcSAteDUwOSAtbmV3a2V5IHJzYTo0MDk2IC1rZXlvdXQg
a2V5LnBlbSAtb3V0IGNlcnQucGVtIC1kYXlzIDM2NSAtbm9kZXMKLSAgICAvLyBhbmQgZW50ZXJp
bmcgdGhpcyBpbmZvcm1hdGlvbjoKLSAgICAvKgotICAgICBDb3VudHJ5IE5hbWUgKDIgbGV0dGVy
IGNvZGUpIFtdOlVTCi0gICAgIFN0YXRlIG9yIFByb3ZpbmNlIE5hbWUgKGZ1bGwgbmFtZSkgW106
TmV3IE1leGljbwotICAgICBMb2NhbGl0eSBOYW1lIChlZywgY2l0eSkgW106U2FudGEgRmUKLSAg
ICAgT3JnYW5pemF0aW9uIE5hbWUgKGVnLCBjb21wYW55KSBbXTpTZWxmCi0gICAgIE9yZ2FuaXph
dGlvbmFsIFVuaXQgTmFtZSAoZWcsIHNlY3Rpb24pIFtdOk15c2VsZgotICAgICBDb21tb24gTmFt
ZSAoZWcsIGZ1bGx5IHF1YWxpZmllZCBob3N0IG5hbWUpIFtdOk1lCi0gICAgIEVtYWlsIEFkZHJl
c3MgW106bWVAZXhhbXBsZS5jb20KLSAgICAgKi8KLSAgICAKLSAgICBTdHJpbmcgcGVtRW5jb2Rl
ZENlcnRpZmljYXRlKCIiCi0gICAgIk1JSUZnRENDQTJnQ0NRQ0tIaVBSVTVNUXVEQU5CZ2txaGtp
Rzl3MEJBUXNGQURDQmdURUxNQWtHQTFVRUJoTUMiCi0gICAgIlZWTXhFekFSQmdOVkJBZ01DazVs
ZHlCTlpYaHBZMjh4RVRBUEJnTlZCQWNNQ0ZOaGJuUmhJRVpsTVEwd0N3WUQiCi0gICAgIlZRUUtE
QVJUWld4bU1ROHdEUVlEVlFRTERBWk5lWE5sYkdZeEN6QUpCZ05WQkFNTUFrMWxNUjB3R3dZSktv
WkkiCi0gICAgImh2Y05BUWtCRmc1dFpVQmxlR0Z0Y0d4bExtTnZiVEFlRncweE9UQXpNak13TlRV
d01UUmFGdzB5TURBek1qSXciCi0gICAgIk5UVXdNVFJhTUlHQk1Rc3dDUVlEVlFRR0V3SlZVekVU
TUJFR0ExVUVDQXdLVG1WM0lFMWxlR2xqYnpFUk1BOEciCi0gICAgIkExVUVCd3dJVTJGdWRHRWdS
bVV4RFRBTEJnTlZCQW9NQkZObGJHWXhEekFOQmdOVkJBc01CazE1YzJWc1pqRUwiCi0gICAgIk1B
a0dBMVVFQXd3Q1RXVXhIVEFiQmdrcWhraUc5dzBCQ1FFV0RtMWxRR1Y0WVcxd2JHVXVZMjl0TUlJ
Q0lqQU4iCi0gICAgIkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTNyaE40U1Bn
OFZZL1B0R0ROS1kzVDlKSVNnYnkiCi0gICAgIjhZR01KeDB2TytZWkZabTNHM2ZzVFVzeXZEeUVI
d3FwNWFiQ1pSQi9CeTFQd1drTnJmeG4vWFA4UDAzNEpQbEUiCi0gICAgIjZpclZpdUFZUXJxVWg2
azdaUjhDcE9NNUdFY1JaZ0FVSkdHUXdObE9rRXdhSG5NR2M4U3NIdXJnRFBoNVhCcGciCi0gICAg
ImJEeXRkN0JKdUIxTm9JL0tKbWhjYWprQXVWM3ZhclMrdVBMb2ZQSE5xZStjTDhoTm5qWlF3SFdh
clA0NWtzNGUiCi0gICAgIkJjT0Q3dHdxeHVIblZtL0ZXRXJwWThXczVzMU1yUFRoVWREYWhqRU1m
K1lmREo5S0w4eTMwNHlTOEo4ZmVDeFkiCi0gICAgImZjSDRCdmdMdEptQk5ISmdqM2VORC9FTVpq
Smd6MkZzQmpySms4a0tEMzFjdys0V3A4VUY0c2tXWENmNDYrbU4iCi0gICAgIk9IcDEzUGVTQ1pM
eUY0WkFIYXpVVmtuRFBjYzJZTnJXVlYxaTZuM1QxNWtJMFQ1Wjdic3RkbUFMdVNrRTJjdUoiCi0g
ICAgIlNWTk82Z1IrWnNWUlRuZXVReHdXVFUwTU5FaEFQRk9YMkJoR1A1ZWlzZ0VVemtueE1KZGRG
RG45V3hrbHUxSmgiCi0gICAgImdrekFTQS8rM0FtbHJGWk1QaE9oakV1bDB6amdOUjVSQmwxRzhI
ejkyTEF4NVVFREJ0ZExnNzFJK0k4QXpRT2giCi0gICAgImQ2THRCZWtFQ3hBMTZwU2FwcGc1dmNX
OVovOE42WmxzSG5aMkZ6dEEwbkNPZmxrb085aWVqT3BjdUZONEVWWUQiCi0gICAgInhJdHdjdEt3
MUxDZU5EL3M0a21vUlJuWGJYN2s5TzZjSTFVVVdNNTk1R3N1NXRQYTMzTTVBWkZDYXYyZ09WdVki
Ci0gICAgImRqcHBTMEhPZm81aHY2Y0NBd0VBQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQVk4
RVdhQUZFZnc3T1Yrb0QiCi0gICAgIlhVWlNJWVhxM0VIMkU1cDNxMzhBaElPTFJqQnVCK3V0eXU3
UTZyeE1NSHV3MlR0c04remJBUjd5cmpmc3NlQTMiCi0gICAgIjRUTTF4ZTROazdOVk5IUm9aUStD
MElxZjlmdmNpb012VDF0VHJtYTBNaEtTakZRcHgrUHZ5TFZiRDdZZFA4NkwiCi0gICAgIm1lZWhL
cVU3aDFwTEdBaUd3am9hWjlZYmg2S3VxL01UQUh5M0Q4K3drN0IzNlZCeEY2ZGlWbFVQWkpaUVdL
SnkiCi0gICAgIk1LeTlHM3N6ZTFaR3Q5V2VFMEFNdmtOMkhJZWYwSFRLQ1VaM2VCdmVjT01panhM
MFdoV281UXlmNWs2eWxDYVUiCi0gICAgIjJmeCtNOERmRGN3Rm83dFNnTHhTSzNHQ0ZweFBmaUR0
NlFrOGM5dFFuNVMxZ1kzdDZMSnV3VkNGd1VJWGxOa0IiCi0gICAgIkpENytjWjFaL3RDckVoemoz
WUNrMHVVVThDaWZvVSs0RkcrSEdGUCtTUHp0c1lFMDU1bVNqMytFc2grb3lvVkIiCi0gICAgImdC
SDkwc0UyVDFpMGVOSThmNjFvU2d3WUZlSHNmN2ZDNzFYRVhMRlIrR3dOZG13cWxtd2xEWkVwVHU3
Qm9OTisiCi0gICAgInE3K1RmazFNUmtKbEwxUEg2WXUvSVBoWmlOaDR0eUlxRE90bFlmenA1NzdB
K09VVStxNVBQUkZSSXNxaGVPeHQiCi0gICAgIm1ObEh4NFV6ZDRVM0lUZm1vZ0phempxd1lPMnZp
QlpZNGpVUW15WnM3NWVIL2ppVUZIV1JzaGEzQWRuVzVMV2EiCi0gICAgIkczUEZuWWJXOHVySDBO
U0pHL1crLzlEQStZN0FhMGNzNFRQcHVCR1owTlUxVzk0T29DTW80bGtPNkgveTZMZXUiCi0gICAg
IjN2alpEM3k5a1prN21yZTlYSHdrSThNZEs1cz0iKTsKLSAgICAKLSAgICBWZWN0b3I8dWludDhf
dD4gdmVjdG9yOwotICAgIGJhc2U2NERlY29kZShwZW1FbmNvZGVkQ2VydGlmaWNhdGUsIHZlY3Rv
ciwgV1RGOjpCYXNlNjREZWNvZGVPcHRpb25zOjpCYXNlNjREZWZhdWx0KTsKLSAgICByZXR1cm4g
dmVjdG9yOwotfQotCi1WZWN0b3I8dWludDhfdD4gVENQU2VydmVyOjp0ZXN0UHJpdmF0ZUtleSgp
Ci17Ci0gICAgU3RyaW5nIHBlbUVuY29kZWRQcml2YXRlS2V5KCIiCi0gICAgIk1JSUpRZ0lCQURB
TkJna3Foa2lHOXcwQkFRRUZBQVNDQ1N3d2dna29BZ0VBQW9JQ0FRRGV1RTNoSStEeFZqOCsiCi0g
ICAgIjBZTTBwamRQMGtoS0J2THhnWXduSFM4NzVoa1ZtYmNiZCt4TlN6SzhQSVFmQ3FubHBzSmxF
SDhITFUvQmFRMnQiCi0gICAgIi9HZjljL3cvVGZnaytVVHFLdFdLNEJoQ3VwU0hxVHRsSHdLazR6
a1lSeEZtQUJRa1laREEyVTZRVEJvZWN3WnoiCi0gICAgInhLd2U2dUFNK0hsY0dtQnNQSzEzc0Vt
NEhVMmdqOG9tYUZ4cU9RQzVYZTlxdEw2NDh1aDg4YzJwNzV3dnlFMmUiCi0gICAgIk5sREFkWnFz
L2ptU3poNEZ3NFB1M0NyRzRlZFdiOFZZU3Vsanhhem16VXlzOU9GUjBOcUdNUXgvNWg4TW4wb3Yi
Ci0gICAgInpMZlRqSkx3bng5NExGaDl3ZmdHK0F1MG1ZRTBjbUNQZDQwUDhReG1NbURQWVd3R09z
bVR5UW9QZlZ6RDdoYW4iCi0gICAgInhRWGl5UlpjSi9qcjZZMDRlblhjOTVJSmt2SVhoa0Fkck5S
V1NjTTl4elpnMnRaVlhXTHFmZFBYbVFqUlBsbnQiCi0gICAgInV5MTJZQXU1S1FUWnk0bEpVMDdx
Qkg1bXhWRk9kNjVESEJaTlRRdzBTRUE4VTVmWUdFWS9sNkt5QVJUT1NmRXciCi0gICAgImwxMFVP
ZjFiR1NXN1VtR0NUTUJJRC83Y0NhV3NWa3crRTZHTVM2WFRPT0ExSGxFR1hVYndmUDNZc0RIbFFR
TUciCi0gICAgIjEwdUR2VWo0andETkE2RjNvdTBGNlFRTEVEWHFsSnFtbURtOXhiMW4vdzNwbVd3
ZWRuWVhPMERTY0k1K1dTZzciCi0gICAgIjJKNk02bHk0VTNnUlZnUEVpM0J5MHJEVXNKNDBQK3pp
U2FoRkdkZHRmdVQwN3B3alZSUll6bjNrYXk3bTA5cmYiCi0gICAgImN6a0JrVUpxL2FBNVc1aDJP
bWxMUWM1K2ptRy9wd0lEQVFBQkFvSUNBR3JhL0NwL2YwWHF2azlTVCtQcnQyL3AiCi0gICAgImtO
dExlRFhjbExTVGNQMEpDWkh1ZlFhRncrN1ZuRkxwcWU0R3ZMcTlCbGxjejhWT3ZRd3JiZS9Dd05X
K1Z4QzgiCi0gICAgIlJNamdlMnJxQUNnd0doT3gxdDg3bDQ2TmtVUXc3RXkwbENsZThrcitNR2dH
R29acXJNRmRLSVJVb012NG5tUTYiCi0gICAgInRtYzFGSHY1cExSZTlRK0xwNW5ZUXdHb1ltWm9V
T3Vlb09hT0wwOG00OXBHWFFraU44cEpETXhTZk8zSnZ0c3UiCi0gICAgIjRjcUliNmtPUS9kTzFJ
czFDVHZVUmxkMUlZTEg3WXVTaGk0WkV4MmcyYWMyVXl2dDZZbXh4dk1tQWpCU0twR2QiCi0gICAg
ImxvaWVwaG8zL05yREdVS2R2M3E5UVl5enJBOHc5R1QzMkxER3FnQlhKaTFzY0JJOGNFeGtwNlA0
aURsbGh2N3MiCi0gICAgInZac3Nwdm9iUkphM08xems4NjNMSFhhMjRKQ255dXppbXFleloyT2xo
N2w0b2xIb1lENlVGQzlqZmQ0S2NIUmciCi0gICAgIjFjNHN5cXQvbjhBSy8xczFlQmZTOWR6YjVD
Zmp0OU10S1lzbHh2THpxMVd3T0lOd3o4cklZdVJpMFBjTG05aHMiCi0gICAgImwrVTB1L3pCMzdl
TWd2Nitpd0RYazFmU2pidVlzRS9iRVRXWWtuS0dORkZMNUpTaUtWN1dDcG1nTlRUcnJFNEsiCi0g
ICAgIlM4RTZoUjl1UE9BYW93N3ZQQ0N0NHhMWC80OGwyRUk2WmVxNnFPcHExbEoycWN5OHI0dHl1
UWdOUkxRTWtaZzEiCi0gICAgIkF4UWw2dm5ROEN1NGl1K05JaGVmMHk5Wjdxa2ZOdlplQ2o1R2xG
QjljMllqVjhZMm1kV2ZKQjRxV0szWi8rTUoiCi0gICAgIlFPVENLUno3L0x4TE5CVWVwUmpKQW9J
QkFRRDNac1Y1dFdVOVpTS2NWSjlEQzdUWmswUCtsaGNpc1pyMG5MMHQiCi0gICAgIlBRdVFPK3BI
dlBJMU1xUm5Oc2tISmh5UG5xVkNpK2RwODl0Sy9JdDU5MFVMbDhvczZVQzFGaHl0QlBvVDFZUGQi
Ci0gICAgIldHV2VwMnBPYzdiVnBpNGlwMzF5K0ltZmdlWnlKdE1BVGRtZTNrQlBBT2U1TkdFOUdp
Zy9sNW5xTHliMDJzZDEiCi0gICAgIlFXN08wR2RxTHgzRHBMdzRTTGxoTWY2YUUwdUdSUzhzZkIw
ODVlNERHbjU0TzJ3RVZ1U1pxWmw1Tk5FZjM1UnoiCi0gICAgIlhnaW0zaCtSV0YxWkZTUXpqQi9z
bU4wWmgrdjNJejd2RUoxaDB5d1Y2bytHenZIa1A5SEU2Z0xJaHR5VjhPRXciCi0gICAgInZseVlr
MUdhN3BVVkdSaDhvOE9NZTZSUjlEUWk3SnFDNGVJN0dja21CemFxekpjREFvSUJBUURtZGU2QVRl
dzMiCi0gICAgIkg5YlFLNnhuYk1JbmN6L0NPcElJU2RsY0ZiMjNBSEdFYjRiNFZoSkZCTnd4ck5M
NnRIS1NGTGVZWkZMaFRkaHgiCi0gICAgIlBmWHlVTEhOZjVvemRFa2wwV3JsZXJvRGRvZ2JDeVdn
NXVKcDkvUTY4c2J3YkdyOENBbE83WkhZVHJqdVFmMUsiCi0gICAgIkFTOXBDbTc3S1AzazJkM1Vs
RytwZWxEalhMb0J6aVhxME5qeEpwTXo0NXZySXg4clNXekZOak1HalhUM2ZYYVMiCi0gICAgIjk2
MmsvMEFYZWk1L2JmdWhCeGxtN1BuaTBiUUpJV0ZrZWFVdUdsck9hSERSeFVpWDFyOUlaUzl3djVs
azFQdGciCi0gICAgImlkcGJjV3l3MThjRkdUdmpkS2hSYlpIOEVzYm16bU5Oc0NHZGdDTXFGa0tZ
c1cxNlFLb0NqL05Bb3ZJM24wcW4iCi0gICAgIjZWb1JhMHNHbVRHTkFvSUJBQ2wvbXFaRXNCdXhT
REh5MjlnU01aN0JYZ2xwUWE0M0htZmpsclBzNW5DbUxERW0iCi0gICAgIlYzWm03VDdHNk1lRE5B
MC9MamRRWWx2YVpMRmFWVWI3SENES3NFWUNSakZaNlN0NGh6NG1kWHorWStWTjdiNEYiCi0gICAg
IkdPa1RlKytpS3AvTFlzSlh0c0QxRkRXYjJXSVZvN0hjMUFHejhJK2dRSm9TSXVZdVRKbUx6U00w
KzVKRFVPVjEiCi0gICAgInk4ZFNiYVAvUnVFdjBxWWprR3FRVms1ZTcwU1V5T3pLVitaeENUaGRI
dkZMaW92VE9UVGdldlV6RTc1eHlkZkciCi0gICAgImU3b0NtdFR1cnpndmwvNjlWdTVZZ2lqMW40
Q1dQSEhjcTRDUVcvRE9aN0JoRkdCd2hyVzc5dm9ISkY4UGJ3UE8iCi0gICAgIiswRFR1ZERHWTNu
QUQ1c1RuRjh6VXVPYllpaEp0ZnpqL3Q1OWZPTUNnZ0VCQUlZdXVCVUFTYjYyelE0YnY1L2ciCi0g
ICAgIlZSTS9LU3BmaTlORG5FamZaN3g3aDV6Q2l1Vmd4L1pqcEFsUVJPOHZ6VjE4cm9FT09LdHg5
Y25KZDhBRWQrSGMiCi0gICAgIm45M0JvUzFoeDBtaHNWaCsxVFJad3lqeUJYWUpwcXdEMnd6MU16
MVhPSVE2RXFiTS95UEtURDJnZndnN3lPNTMiCi0gICAgInFZeHJ4WnNXYWdWVmNHOVErQVJCRVJh
dFR3THBvTitmY0pMeHVoNHIvQ2EvTGVwc3htT3JLelRhL01HSzFMaFciCi0gICAgInJXZ0lrMi9v
Z0VQTFNwdGoyZDFQRURPK0dBekZ6NFZLamhXMU5sVWg5ZkdpNklKUExITG5CdzNvZGJpMFM4S1Qi
Ci0gICAgImdBOVo1K0xCYzVjbG90QVA1cnRRQThXaC9aQ0VvUFRLVFRBMmJqVzJITWF0SmNiR21S
MEZwQ1FyM0FNMFkxU08iCi0gICAgIk1ha0NnZ0VBTHJ1NlFaNllVd0pKRzQ1SDFlcS9yUGREWTh0
cXFqSlZWaUtvQlZ2ektqL1hmSlpZRVZRaUl3NXAiCi0gICAgInVvR2hEb3lGdUZVZUloL2QxSmMy
SXJ1eTJXam9Pa2lRWXRJdWdESEh4UnJrTGRRY2pQaGxDVENFL21teVNKdCsiCi0gICAgImJrVWJp
SEliUThkSjV5ajhTS3IwYkh6cUV0T3k5L0plUmprWUdIQzZiVldwcTVGQTJNQmhmNGROako0VURs
blQiCi0gICAgInZ1ZVBjVGpyN25uZlkxc3p0dmZWbDlEOGRtZ1QrVEJuT09WNnlXajFnbTViUzFE
eFFTTGdObXRLeEo4dEFoMnUiCi0gICAgImRFT2J2Y3BTaFAyMkl0T1ZqU2FtcFJ1QXVSRzI2WmVt
RWJHQ0kzSjZNcXgzeTZtKzZId3VsdHNndGR6RGdyRmUiCi0gICAgInFKZlU4YmJkYnUycGk0N1k0
RmRKSzBITGZmbDVSdz09Iik7Ci0KLSAgICBWZWN0b3I8dWludDhfdD4gdmVjdG9yOwotICAgIGJh
c2U2NERlY29kZShwZW1FbmNvZGVkUHJpdmF0ZUtleSwgdmVjdG9yLCBXVEY6OkJhc2U2NERlY29k
ZU9wdGlvbnM6OkJhc2U2NERlZmF1bHQpOwotICAgIHJldHVybiB2ZWN0b3I7Ci19Ci0gICAgCiB9
IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1RDUFNlcnZlci5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UQ1BTZXJ2ZXIuaAppbmRleCA2
NjY4YzczNWM5ZjQ4NmFmODU5ZDAzZmIwNzM3ZTg5Y2FiOGY4MWFmLi5mYmU4MWEyOGVkNGY0YWNm
MTBlMzdjNTllOGQ2MjhjZDU2YzZlOGI3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1RDUFNlcnZlci5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVENQU2VydmVyLmgKQEAgLTI5
LDcgKzI5LDExIEBACiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCitleHRlcm4gIkMiIHsKIHN0cnVjdCBTU0w7CitpbnQgU1NMX3JlYWQoU1NMKiwg
dm9pZCosIGludCk7CitpbnQgU1NMX3dyaXRlKFNTTCosIGNvbnN0IHZvaWQqLCBpbnQpOworfQog
CiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKQEAgLTQwLDI1ICs0NCwxNCBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBQb3J0IEludmFsaWRQb3J0ID0gMDsKICAgICAKICAgICBU
Q1BTZXJ2ZXIoRnVuY3Rpb248dm9pZChTb2NrZXQpPiYmLCBzaXplX3QgY29ubmVjdGlvbnMgPSAx
KTsKLSAgICBlbnVtIGNsYXNzIFByb3RvY29sIDogdWludDhfdCB7Ci0gICAgICAgIEhUVFBTLAot
ICAgICAgICBIVFRQU1Byb3h5LAotICAgICAgICBIVFRQU1dpdGhDbGllbnRDZXJ0aWZpY2F0ZVJl
cXVlc3QsCisgICAgZW51bSBjbGFzcyBQcm90b2NvbCA6IGJvb2wgeworICAgICAgICBIVFRQUywg
SFRUUFNQcm94eQogICAgIH07CiAgICAgVENQU2VydmVyKFByb3RvY29sLCBGdW5jdGlvbjx2b2lk
KFNTTCopPiYmKTsKICAgICB+VENQU2VydmVyKCk7CiAgICAgCiAgICAgUG9ydCBwb3J0KCkgY29u
c3QgeyByZXR1cm4gbV9wb3J0OyB9CiAgICAgCi0gICAgc3RhdGljIHZvaWQgcmVzcG9uZFdpdGhP
SyhTU0wqKTsKLSAgICBzdGF0aWMgdm9pZCByZXNwb25kV2l0aENoYWxsZW5nZVRoZW5PSyhTb2Nr
ZXQpOwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIFZlY3Rvcjx1aW50OF90PiBy
ZWFkKFQpOwotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyB2b2lkIHdyaXRlKFQsIGNv
bnN0IHZvaWQqLCBzaXplX3QpOwotCi0gICAgc3RhdGljIFZlY3Rvcjx1aW50OF90PiB0ZXN0UHJp
dmF0ZUtleSgpOwotICAgIHN0YXRpYyBWZWN0b3I8dWludDhfdD4gdGVzdENlcnRpZmljYXRlKCk7
Ci0gICAgCiBwcml2YXRlOgogICAgIE9wdGlvbmFsPFNvY2tldD4gc29ja2V0QmluZExpc3Rlbihz
aXplX3QgY29ubmVjdGlvbnMpOwogICAgIHZvaWQgbGlzdGVuRm9yQ29ubmVjdGlvbnMoc2l6ZV90
IGNvbm5lY3Rpb25zKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvQ2hhbGxlbmdlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9DaGFsbGVuZ2UubW0KaW5kZXggYTM0ZTY5ZTQ5NTY4Mzc0YjhiZjUxMThjMTFjZjBhZTQ2
ZmZkZTJhYi4uODE2YWZiNTY1NTUyYjY3NGEzMzRkM2NlNzE3N2IxOWE0ODZjMmJlNyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0K
QEAgLTMzLDE3ICszMywxNDEgQEAKICNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0
ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFSZWNvcmRQcml2YXRlLmg+CiAjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+Ci0jaW1wb3J0IDx3dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJ
Lmg+CiAKIHN0YXRpYyBib29sIG5hdmlnYXRpb25GaW5pc2hlZDsKIAotc3RhdGljIFJldGFpblB0
cjxOU1VSTENyZWRlbnRpYWw+IGNyZWRlbnRpYWxXaXRoSWRlbnRpdHkoKQorc3RhdGljIHZvaWQg
cmVzcG9uZFdpdGhDaGFsbGVuZ2VUaGVuT0soaW50IHNvY2tldCkKIHsKLSAgICBhdXRvIGNlcnRp
ZmljYXRlQnl0ZXMgPSBUZXN0V2ViS2l0QVBJOjpUQ1BTZXJ2ZXI6OnRlc3RDZXJ0aWZpY2F0ZSgp
OwotICAgIGF1dG8gY2VydGlmaWNhdGUgPSBhZG9wdENGKFNlY0NlcnRpZmljYXRlQ3JlYXRlV2l0
aERhdGEobnVsbHB0ciwgKF9fYnJpZGdlIENGRGF0YVJlZilbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6
Y2VydGlmaWNhdGVCeXRlcy5kYXRhKCkgbGVuZ3RoOmNlcnRpZmljYXRlQnl0ZXMuc2l6ZSgpXSkp
OworICAgIGNoYXIgcmVhZEJ1ZmZlclsxMDAwXTsKKyAgICBhdXRvIGJ5dGVzUmVhZCA9IDo6cmVh
ZChzb2NrZXQsIHJlYWRCdWZmZXIsIHNpemVvZihyZWFkQnVmZmVyKSk7CisgICAgRVhQRUNUX0dU
KGJ5dGVzUmVhZCwgMCk7CisgICAgRVhQRUNUX1RSVUUoc3RhdGljX2Nhc3Q8c2l6ZV90PihieXRl
c1JlYWQpIDwgc2l6ZW9mKHJlYWRCdWZmZXIpKTsKICAgICAKLSAgICBhdXRvIHByaXZhdGVLZXlC
eXRlcyA9IFRlc3RXZWJLaXRBUEk6OlRDUFNlcnZlcjo6dGVzdFByaXZhdGVLZXkoKTsKLSAgICBO
U0RhdGEgKmRlckVuY29kZWRQcml2YXRlS2V5ID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOnByaXZh
dGVLZXlCeXRlcy5kYXRhKCkgbGVuZ3RoOnByaXZhdGVLZXlCeXRlcy5zaXplKCldOworICAgIGNv
bnN0IGNoYXIqIGNoYWxsZW5nZUhlYWRlciA9CisgICAgIkhUVFAvMS4xIDQwMSBVbmF1dGhvcml6
ZWRcclxuIgorICAgICJEYXRlOiBTYXQsIDIzIE1hciAyMDE5IDA2OjI5OjAxIEdNVFxyXG4iCisg
ICAgIkNvbnRlbnQtTGVuZ3RoOiAwXHJcbiIKKyAgICAiV1dXLUF1dGhlbnRpY2F0ZTogQmFzaWMg
cmVhbG09XCJ0ZXN0cmVhbG1cIlxyXG5cclxuIjsKKyAgICBhdXRvIGJ5dGVzV3JpdHRlbiA9IDo6
d3JpdGUoc29ja2V0LCBjaGFsbGVuZ2VIZWFkZXIsIHN0cmxlbihjaGFsbGVuZ2VIZWFkZXIpKTsK
KyAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90PihieXRlc1dyaXR0ZW4pLCBzdHJsZW4o
Y2hhbGxlbmdlSGVhZGVyKSk7CisgICAgCisgICAgYnl0ZXNSZWFkID0gOjpyZWFkKHNvY2tldCwg
cmVhZEJ1ZmZlciwgc2l6ZW9mKHJlYWRCdWZmZXIpKTsKKyAgICBFWFBFQ1RfR1QoYnl0ZXNSZWFk
LCAwKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVzUmVhZCkgPCBz
aXplb2YocmVhZEJ1ZmZlcikpOworICAgIAorICAgIGNvbnN0IGNoYXIqIHJlc3BvbnNlSGVhZGVy
ID0KKyAgICAiSFRUUC8xLjEgMjAwIE9LXHJcbiIKKyAgICAiQ29udGVudC1MZW5ndGg6IDEzXHJc
blxyXG4iCisgICAgIkhlbGxvLCBXb3JsZCEiOworICAgIGJ5dGVzV3JpdHRlbiA9IDo6d3JpdGUo
c29ja2V0LCByZXNwb25zZUhlYWRlciwgc3RybGVuKHJlc3BvbnNlSGVhZGVyKSk7CisgICAgRVhQ
RUNUX0VRKHN0YXRpY19jYXN0PHNpemVfdD4oYnl0ZXNXcml0dGVuKSwgc3RybGVuKHJlc3BvbnNl
SGVhZGVyKSk7Cit9CisKKyNpZiBQTEFURk9STShNQUMpCisKK3N0YXRpYyBzdGQ6OnBhaXI8UmV0
YWluUHRyPE5TVVJMQ3JlZGVudGlhbD4sIFJldGFpblB0cjxOU1N0cmluZz4+IGNyZWRlbnRpYWxX
aXRoSWRlbnRpdHlBbmRLZXljaGFpblBhdGgoKQoreworICAgIC8vIENlcnRpZmljYXRlIGFuZCBw
cml2YXRlIGtleSB3ZXJlIGdlbmVyYXRlZCBieSBydW5uaW5nIHRoaXMgY29tbWFuZDoKKyAgICAv
LyBvcGVuc3NsIHJlcSAteDUwOSAtbmV3a2V5IHJzYTo0MDk2IC1rZXlvdXQga2V5LnBlbSAtb3V0
IGNlcnQucGVtIC1kYXlzIDM2NSAtbm9kZXMKKyAgICAvLyBhbmQgZW50ZXJpbmcgdGhpcyBpbmZv
cm1hdGlvbjoKKyAgICAvKgorICAgICBDb3VudHJ5IE5hbWUgKDIgbGV0dGVyIGNvZGUpIFtdOlVT
CisgICAgIFN0YXRlIG9yIFByb3ZpbmNlIE5hbWUgKGZ1bGwgbmFtZSkgW106TmV3IE1leGljbwor
ICAgICBMb2NhbGl0eSBOYW1lIChlZywgY2l0eSkgW106U2FudGEgRmUKKyAgICAgT3JnYW5pemF0
aW9uIE5hbWUgKGVnLCBjb21wYW55KSBbXTpTZWxmCisgICAgIE9yZ2FuaXphdGlvbmFsIFVuaXQg
TmFtZSAoZWcsIHNlY3Rpb24pIFtdOk15c2VsZgorICAgICBDb21tb24gTmFtZSAoZWcsIGZ1bGx5
IHF1YWxpZmllZCBob3N0IG5hbWUpIFtdOk1lCisgICAgIEVtYWlsIEFkZHJlc3MgW106bWVAZXhh
bXBsZS5jb20KKyAgICAgKi8KKyAgICAKKyAgICBOU1N0cmluZyAqcGVtRW5jb2RlZENlcnRpZmlj
YXRlID0gQCIiCisgICAgIk1JSUZnRENDQTJnQ0NRQ0tIaVBSVTVNUXVEQU5CZ2txaGtpRzl3MEJB
UXNGQURDQmdURUxNQWtHQTFVRUJoTUMiCisgICAgIlZWTXhFekFSQmdOVkJBZ01DazVsZHlCTlpY
aHBZMjh4RVRBUEJnTlZCQWNNQ0ZOaGJuUmhJRVpsTVEwd0N3WUQiCisgICAgIlZRUUtEQVJUWld4
bU1ROHdEUVlEVlFRTERBWk5lWE5sYkdZeEN6QUpCZ05WQkFNTUFrMWxNUjB3R3dZSktvWkkiCisg
ICAgImh2Y05BUWtCRmc1dFpVQmxlR0Z0Y0d4bExtTnZiVEFlRncweE9UQXpNak13TlRVd01UUmFG
dzB5TURBek1qSXciCisgICAgIk5UVXdNVFJhTUlHQk1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0Ex
VUVDQXdLVG1WM0lFMWxlR2xqYnpFUk1BOEciCisgICAgIkExVUVCd3dJVTJGdWRHRWdSbVV4RFRB
TEJnTlZCQW9NQkZObGJHWXhEekFOQmdOVkJBc01CazE1YzJWc1pqRUwiCisgICAgIk1Ba0dBMVVF
QXd3Q1RXVXhIVEFiQmdrcWhraUc5dzBCQ1FFV0RtMWxRR1Y0WVcxd2JHVXVZMjl0TUlJQ0lqQU4i
CisgICAgIkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTNyaE40U1BnOFZZL1B0
R0ROS1kzVDlKSVNnYnkiCisgICAgIjhZR01KeDB2TytZWkZabTNHM2ZzVFVzeXZEeUVId3FwNWFi
Q1pSQi9CeTFQd1drTnJmeG4vWFA4UDAzNEpQbEUiCisgICAgIjZpclZpdUFZUXJxVWg2azdaUjhD
cE9NNUdFY1JaZ0FVSkdHUXdObE9rRXdhSG5NR2M4U3NIdXJnRFBoNVhCcGciCisgICAgImJEeXRk
N0JKdUIxTm9JL0tKbWhjYWprQXVWM3ZhclMrdVBMb2ZQSE5xZStjTDhoTm5qWlF3SFdhclA0NWtz
NGUiCisgICAgIkJjT0Q3dHdxeHVIblZtL0ZXRXJwWThXczVzMU1yUFRoVWREYWhqRU1mK1lmREo5
S0w4eTMwNHlTOEo4ZmVDeFkiCisgICAgImZjSDRCdmdMdEptQk5ISmdqM2VORC9FTVpqSmd6MkZz
QmpySms4a0tEMzFjdys0V3A4VUY0c2tXWENmNDYrbU4iCisgICAgIk9IcDEzUGVTQ1pMeUY0WkFI
YXpVVmtuRFBjYzJZTnJXVlYxaTZuM1QxNWtJMFQ1Wjdic3RkbUFMdVNrRTJjdUoiCisgICAgIlNW
Tk82Z1IrWnNWUlRuZXVReHdXVFUwTU5FaEFQRk9YMkJoR1A1ZWlzZ0VVemtueE1KZGRGRG45V3hr
bHUxSmgiCisgICAgImdrekFTQS8rM0FtbHJGWk1QaE9oakV1bDB6amdOUjVSQmwxRzhIejkyTEF4
NVVFREJ0ZExnNzFJK0k4QXpRT2giCisgICAgImQ2THRCZWtFQ3hBMTZwU2FwcGc1dmNXOVovOE42
WmxzSG5aMkZ6dEEwbkNPZmxrb085aWVqT3BjdUZONEVWWUQiCisgICAgInhJdHdjdEt3MUxDZU5E
L3M0a21vUlJuWGJYN2s5TzZjSTFVVVdNNTk1R3N1NXRQYTMzTTVBWkZDYXYyZ09WdVkiCisgICAg
ImRqcHBTMEhPZm81aHY2Y0NBd0VBQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQVk4RVdhQUZF
Znc3T1Yrb0QiCisgICAgIlhVWlNJWVhxM0VIMkU1cDNxMzhBaElPTFJqQnVCK3V0eXU3UTZyeE1N
SHV3MlR0c04remJBUjd5cmpmc3NlQTMiCisgICAgIjRUTTF4ZTROazdOVk5IUm9aUStDMElxZjlm
dmNpb012VDF0VHJtYTBNaEtTakZRcHgrUHZ5TFZiRDdZZFA4NkwiCisgICAgIm1lZWhLcVU3aDFw
TEdBaUd3am9hWjlZYmg2S3VxL01UQUh5M0Q4K3drN0IzNlZCeEY2ZGlWbFVQWkpaUVdLSnkiCisg
ICAgIk1LeTlHM3N6ZTFaR3Q5V2VFMEFNdmtOMkhJZWYwSFRLQ1VaM2VCdmVjT01panhMMFdoV281
UXlmNWs2eWxDYVUiCisgICAgIjJmeCtNOERmRGN3Rm83dFNnTHhTSzNHQ0ZweFBmaUR0NlFrOGM5
dFFuNVMxZ1kzdDZMSnV3VkNGd1VJWGxOa0IiCisgICAgIkpENytjWjFaL3RDckVoemozWUNrMHVV
VThDaWZvVSs0RkcrSEdGUCtTUHp0c1lFMDU1bVNqMytFc2grb3lvVkIiCisgICAgImdCSDkwc0Uy
VDFpMGVOSThmNjFvU2d3WUZlSHNmN2ZDNzFYRVhMRlIrR3dOZG13cWxtd2xEWkVwVHU3Qm9OTisi
CisgICAgInE3K1RmazFNUmtKbEwxUEg2WXUvSVBoWmlOaDR0eUlxRE90bFlmenA1NzdBK09VVStx
NVBQUkZSSXNxaGVPeHQiCisgICAgIm1ObEh4NFV6ZDRVM0lUZm1vZ0phempxd1lPMnZpQlpZNGpV
UW15WnM3NWVIL2ppVUZIV1JzaGEzQWRuVzVMV2EiCisgICAgIkczUEZuWWJXOHVySDBOU0pHL1cr
LzlEQStZN0FhMGNzNFRQcHVCR1owTlUxVzk0T29DTW80bGtPNkgveTZMZXUiCisgICAgIjN2alpE
M3k5a1prN21yZTlYSHdrSThNZEs1cz0iOworICAgIAorICAgIE5TU3RyaW5nICpwZW1FbmNvZGVk
UHJpdmF0ZUtleSA9IEAiIgorICAgICJNSUlKUWdJQkFEQU5CZ2txaGtpRzl3MEJBUUVGQUFTQ0NT
d3dnZ2tvQWdFQUFvSUNBUURldUUzaEkrRHhWajgrIgorICAgICIwWU0wcGpkUDBraEtCdkx4Z1l3
bkhTODc1aGtWbWJjYmQreE5Teks4UElRZkNxbmxwc0psRUg4SExVL0JhUTJ0IgorICAgICIvR2Y5
Yy93L1RmZ2srVVRxS3RXSzRCaEN1cFNIcVR0bEh3S2s0emtZUnhGbUFCUWtZWkRBMlU2UVRCb2Vj
d1p6IgorICAgICJ4S3dlNnVBTStIbGNHbUJzUEsxM3NFbTRIVTJnajhvbWFGeHFPUUM1WGU5cXRM
NjQ4dWg4OGMycDc1d3Z5RTJlIgorICAgICJObERBZFpxcy9qbVN6aDRGdzRQdTNDckc0ZWRXYjhW
WVN1bGp4YXptelV5czlPRlIwTnFHTVF4LzVoOE1uMG92IgorICAgICJ6TGZUakpMd254OTRMRmg5
d2ZnRytBdTBtWUUwY21DUGQ0MFA4UXhtTW1EUFlXd0dPc21UeVFvUGZWekQ3aGFuIgorICAgICJ4
UVhpeVJaY0ovanI2WTA0ZW5YYzk1SUprdklYaGtBZHJOUldTY005eHpaZzJ0WlZYV0xxZmRQWG1R
alJQbG50IgorICAgICJ1eTEyWUF1NUtRVFp5NGxKVTA3cUJINW14VkZPZDY1REhCWk5UUXcwU0VB
OFU1ZllHRVkvbDZLeUFSVE9TZkV3IgorICAgICJsMTBVT2YxYkdTVzdVbUdDVE1CSUQvN2NDYVdz
Vmt3K0U2R01TNlhUT09BMUhsRUdYVWJ3ZlAzWXNESGxRUU1HIgorICAgICIxMHVEdlVqNGp3RE5B
NkYzb3UwRjZRUUxFRFhxbEpxbW1EbTl4YjFuL3czcG1Xd2VkbllYTzBEU2NJNStXU2c3IgorICAg
ICIySjZNNmx5NFUzZ1JWZ1BFaTNCeTByRFVzSjQwUCt6aVNhaEZHZGR0ZnVUMDdwd2pWUlJZem4z
a2F5N20wOXJmIgorICAgICJjemtCa1VKcS9hQTVXNWgyT21sTFFjNStqbUcvcHdJREFRQUJBb0lD
QUdyYS9DcC9mMFhxdms5U1QrUHJ0Mi9wIgorICAgICJrTnRMZURYY2xMU1RjUDBKQ1pIdWZRYUZ3
KzdWbkZMcHFlNEd2THE5QmxsY3o4Vk92UXdyYmUvQ3dOVytWeEM4IgorICAgICJSTWpnZTJycUFD
Z3dHaE94MXQ4N2w0Nk5rVVF3N0V5MGxDbGU4a3IrTUdnR0dvWnFyTUZkS0lSVW9NdjRubVE2Igor
ICAgICJ0bWMxRkh2NXBMUmU5UStMcDVuWVF3R29ZbVpvVU91ZW9PYU9MMDhtNDlwR1hRa2lOOHBK
RE14U2ZPM0p2dHN1IgorICAgICI0Y3FJYjZrT1EvZE8xSXMxQ1R2VVJsZDFJWUxIN1l1U2hpNFpF
eDJnMmFjMlV5dnQ2WW14eHZNbUFqQlNLcEdkIgorICAgICJsb2llcGhvMy9OckRHVUtkdjNxOVFZ
eXpyQTh3OUdUMzJMREdxZ0JYSmkxc2NCSThjRXhrcDZQNGlEbGxodjdzIgorICAgICJ2WnNzcHZv
YlJKYTNPMXprODYzTEhYYTI0SkNueXV6aW1xZXpaMk9saDdsNG9sSG9ZRDZVRkM5amZkNEtjSFJn
IgorICAgICIxYzRzeXF0L244QUsvMXMxZUJmUzlkemI1Q2ZqdDlNdEtZc2x4dkx6cTFXd09JTnd6
OHJJWXVSaTBQY0xtOWhzIgorICAgICJsK1UwdS96QjM3ZU1ndjYraXdEWGsxZlNqYnVZc0UvYkVU
V1lrbktHTkZGTDVKU2lLVjdXQ3BtZ05UVHJyRTRLIgorICAgICJTOEU2aFI5dVBPQWFvdzd2UEND
dDR4TFgvNDhsMkVJNlplcTZxT3BxMWxKMnFjeThyNHR5dVFnTlJMUU1rWmcxIgorICAgICJBeFFs
NnZuUThDdTRpdStOSWhlZjB5OVo3cWtmTnZaZUNqNUdsRkI5YzJZalY4WTJtZFdmSkI0cVdLM1ov
K01KIgorICAgICJRT1RDS1J6Ny9MeExOQlVlcFJqSkFvSUJBUUQzWnNWNXRXVTlaU0tjVko5REM3
VFprMFArbGhjaXNacjBuTDB0IgorICAgICJQUXVRTytwSHZQSTFNcVJuTnNrSEpoeVBucVZDaStk
cDg5dEsvSXQ1OTBVTGw4b3M2VUMxRmh5dEJQb1QxWVBkIgorICAgICJXR1dlcDJwT2M3YlZwaTRp
cDMxeStJbWZnZVp5SnRNQVRkbWUza0JQQU9lNU5HRTlHaWcvbDVucUx5YjAyc2QxIgorICAgICJR
VzdPMEdkcUx4M0RwTHc0U0xsaE1mNmFFMHVHUlM4c2ZCMDg1ZTRER241NE8yd0VWdVNacVpsNU5O
RWYzNVJ6IgorICAgICJYZ2ltM2grUldGMVpGU1F6akIvc21OMFpoK3YzSXo3dkVKMWgweXdWNm8r
R3p2SGtQOUhFNmdMSWh0eVY4T0V3IgorICAgICJ2bHlZazFHYTdwVVZHUmg4bzhPTWU2UlI5RFFp
N0pxQzRlSTdHY2ttQnphcXpKY0RBb0lCQVFEbWRlNkFUZXczIgorICAgICJIOWJRSzZ4bmJNSW5j
ei9DT3BJSVNkbGNGYjIzQUhHRWI0YjRWaEpGQk53eHJOTDZ0SEtTRkxlWVpGTGhUZGh4IgorICAg
ICJQZlh5VUxITmY1b3pkRWtsMFdybGVyb0Rkb2diQ3lXZzV1SnA5L1E2OHNid2JHcjhDQWxPN1pI
WVRyanVRZjFLIgorICAgICJBUzlwQ203N0tQM2syZDNVbEcrcGVsRGpYTG9CemlYcTBOanhKcE16
NDV2ckl4OHJTV3pGTmpNR2pYVDNmWGFTIgorICAgICI5NjJrLzBBWGVpNS9iZnVoQnhsbTdQbmkw
YlFKSVdGa2VhVXVHbHJPYUhEUnhVaVgxcjlJWlM5d3Y1bGsxUHRnIgorICAgICJpZHBiY1d5dzE4
Y0ZHVHZqZEtoUmJaSDhFc2Jtem1OTnNDR2RnQ01xRmtLWXNXMTZRS29Dai9OQW92STNuMHFuIgor
ICAgICI2Vm9SYTBzR21UR05Bb0lCQUNsL21xWkVzQnV4U0RIeTI5Z1NNWjdCWGdscFFhNDNIbWZq
bHJQczVuQ21MREVtIgorICAgICJWM1ptN1Q3RzZNZUROQTAvTGpkUVlsdmFaTEZhVlViN0hDREtz
RVlDUmpGWjZTdDRoejRtZFh6K1krVk43YjRGIgorICAgICJHT2tUZSsraUtwL0xZc0pYdHNEMUZE
V2IyV0lWbzdIYzFBR3o4SStnUUpvU0l1WXVUSm1MelNNMCs1SkRVT1YxIgorICAgICJ5OGRTYmFQ
L1J1RXYwcVlqa0dxUVZrNWU3MFNVeU96S1YrWnhDVGhkSHZGTGlvdlRPVFRnZXZVekU3NXh5ZGZH
IgorICAgICJlN29DbXRUdXJ6Z3ZsLzY5VnU1WWdpajFuNENXUEhIY3E0Q1FXL0RPWjdCaEZHQndo
clc3OXZvSEpGOFBid1BPIgorICAgICIrMERUdWRER1kzbkFENXNUbkY4elV1T2JZaWhKdGZ6ai90
NTlmT01DZ2dFQkFJWXV1QlVBU2I2MnpRNGJ2NS9nIgorICAgICJWUk0vS1NwZmk5TkRuRWpmWjd4
N2g1ekNpdVZneC9aanBBbFFSTzh2elYxOHJvRU9PS3R4OWNuSmQ4QUVkK0hjIgorICAgICJuOTNC
b1MxaHgwbWhzVmgrMVRSWnd5anlCWFlKcHF3RDJ3ejFNejFYT0lRNkVxYk0veVBLVEQyZ2Z3Zzd5
TzUzIgorICAgICJxWXhyeFpzV2FnVlZjRzlRK0FSQkVSYXRUd0xwb04rZmNKTHh1aDRyL0NhL0xl
cHN4bU9yS3pUYS9NR0sxTGhXIgorICAgICJyV2dJazIvb2dFUExTcHRqMmQxUEVETytHQXpGejRW
S2poVzFObFVoOWZHaTZJSlBMSExuQnczb2RiaTBTOEtUIgorICAgICJnQTlaNStMQmM1Y2xvdEFQ
NXJ0UUE4V2gvWkNFb1BUS1RUQTJialcySE1hdEpjYkdtUjBGcENRcjNBTTBZMVNPIgorICAgICJN
YWtDZ2dFQUxydTZRWjZZVXdKSkc0NUgxZXEvclBkRFk4dHFxakpWVmlLb0JWdnpLai9YZkpaWUVW
UWlJdzVwIgorICAgICJ1b0doRG95RnVGVWVJaC9kMUpjMklydXkyV2pvT2tpUVl0SXVnREhIeFJy
a0xkUWNqUGhsQ1RDRS9tbXlTSnQrIgorICAgICJia1ViaUhJYlE4ZEo1eWo4U0tyMGJIenFFdE95
OS9KZVJqa1lHSEM2YlZXcHE1RkEyTUJoZjRkTmpKNFVEbG5UIgorICAgICJ2dWVQY1RqcjdubmZZ
MXN6dHZmVmw5RDhkbWdUK1RCbk9PVjZ5V2oxZ201YlMxRHhRU0xnTm10S3hKOHRBaDJ1IgorICAg
ICJkRU9idmNwU2hQMjJJdE9WalNhbXBSdUF1UkcyNlplbUViR0NJM0o2TXF4M3k2bSs2SHd1bHRz
Z3RkekRnckZlIgorICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSI7CisgICAg
CisgICAgTlNEYXRhICpkZXJFbmNvZGVkQ2VydGlmaWNhdGUgPSBbW1tOU0RhdGEgYWxsb2NdIGlu
aXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzpwZW1FbmNvZGVkQ2VydGlmaWNhdGUgb3B0aW9uczow
XSBhdXRvcmVsZWFzZV07CisgICAgUmV0YWluUHRyPFNlY0NlcnRpZmljYXRlUmVmPiBjZXJ0aWZp
Y2F0ZSA9IGFkb3B0Q0YoU2VjQ2VydGlmaWNhdGVDcmVhdGVXaXRoRGF0YShudWxscHRyLCAoX19i
cmlkZ2UgQ0ZEYXRhUmVmKWRlckVuY29kZWRDZXJ0aWZpY2F0ZSkpOworICAgIAorICAgIE5TRGF0
YSAqZGVyRW5jb2RlZFByaXZhdGVLZXkgPSBbW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQmFzZTY0
RW5jb2RlZFN0cmluZzpwZW1FbmNvZGVkUHJpdmF0ZUtleSBvcHRpb25zOjBdIGF1dG9yZWxlYXNl
XTsKICAgICBOU0RpY3Rpb25hcnkqIG9wdGlvbnMgPSBAewogICAgICAgICAoaWQpa1NlY0F0dHJL
ZXlUeXBlOiAoaWQpa1NlY0F0dHJLZXlUeXBlUlNBLAogICAgICAgICAoaWQpa1NlY0F0dHJLZXlD
bGFzczogKGlkKWtTZWNBdHRyS2V5Q2xhc3NQcml2YXRlLApAQCAtNTEsMTYgKzE3NSwzNiBAQCBz
dGF0aWMgUmV0YWluUHRyPE5TVVJMQ3JlZGVudGlhbD4gY3JlZGVudGlhbFdpdGhJZGVudGl0eSgp
CiAgICAgfTsKICAgICBjb25zdCBOU1VJbnRlZ2VyIHBlbUVuY29kZWRQcml2YXRlS2V5SGVhZGVy
TGVuZ3RoID0gMjY7CiAgICAgQ0ZFcnJvclJlZiBlcnJvciA9IG51bGxwdHI7Ci0gICAgYXV0byBw
cml2YXRlS2V5ID0gYWRvcHRDRihTZWNLZXlDcmVhdGVXaXRoRGF0YSgoX19icmlkZ2UgQ0ZEYXRh
UmVmKVtkZXJFbmNvZGVkUHJpdmF0ZUtleSBzdWJkYXRhV2l0aFJhbmdlOk5TTWFrZVJhbmdlKHBl
bUVuY29kZWRQcml2YXRlS2V5SGVhZGVyTGVuZ3RoLCBkZXJFbmNvZGVkUHJpdmF0ZUtleS5sZW5n
dGggLSBwZW1FbmNvZGVkUHJpdmF0ZUtleUhlYWRlckxlbmd0aCldLCAoX19icmlkZ2UgQ0ZEaWN0
aW9uYXJ5UmVmKW9wdGlvbnMsICZlcnJvcikpOworICAgIFJldGFpblB0cjxTZWNLZXlSZWY+IHBy
aXZhdGVLZXkgPSBhZG9wdENGKFNlY0tleUNyZWF0ZVdpdGhEYXRhKChfX2JyaWRnZSBDRkRhdGFS
ZWYpW2RlckVuY29kZWRQcml2YXRlS2V5IHN1YmRhdGFXaXRoUmFuZ2U6TlNNYWtlUmFuZ2UocGVt
RW5jb2RlZFByaXZhdGVLZXlIZWFkZXJMZW5ndGgsIGRlckVuY29kZWRQcml2YXRlS2V5Lmxlbmd0
aCAtIHBlbUVuY29kZWRQcml2YXRlS2V5SGVhZGVyTGVuZ3RoKV0sIChfX2JyaWRnZSBDRkRpY3Rp
b25hcnlSZWYpb3B0aW9ucywgJmVycm9yKSk7CiAgICAgRVhQRUNUX05VTEwoZXJyb3IpOwogICAg
IEVYUEVDVF9OT1RfTlVMTChwcml2YXRlS2V5LmdldCgpKTsKIAotICAgIGF1dG8gaWRlbnRpdHkg
PSBhZG9wdENGKFNlY0lkZW50aXR5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGNlcnRpZmlj
YXRlLmdldCgpLCBwcml2YXRlS2V5LmdldCgpKSk7Ci0gICAgRVhQRUNUX05PVF9OVUxMKGlkZW50
aXR5KTsKKyAgICBTZWNLZXljaGFpblJlZiBrZXljaGFpblJlZiA9IG51bGxwdHI7CisgICAgY29u
c3QgY2hhcioga2V5Y2hhaW5QYXNzd29yZCA9ICJ0ZXN0cGFzc3dvcmQiOworICAgIE5TU3RyaW5n
ICprZXljaGFpblBhdGggPSBbTlNUZW1wb3JhcnlEaXJlY3RvcnkoKSBzdHJpbmdCeUFwcGVuZGlu
Z1BhdGhDb21wb25lbnQ6QCJUZXN0S2V5Y2hhaW4iXTsKKyAgICBPU1N0YXR1cyBzdGF0dXMgPSBT
ZWNLZXljaGFpbkNyZWF0ZShba2V5Y2hhaW5QYXRoIFVURjhTdHJpbmddLCBzdHJsZW4oa2V5Y2hh
aW5QYXNzd29yZCksIGtleWNoYWluUGFzc3dvcmQsIE5PLCBudWxscHRyLCAma2V5Y2hhaW5SZWYp
OworICAgIEVYUEVDVF9UUlVFKHN0YXR1cyA9PSBlcnJTZWNTdWNjZXNzKTsKKyAgICBSZXRhaW5Q
dHI8U2VjS2V5Y2hhaW5SZWY+IGtleWNoYWluID0gYWRvcHRDRihrZXljaGFpblJlZik7CisgICAg
RVhQRUNUX05PVF9OVUxMKGtleWNoYWluKTsKKworICAgIFNlY0V4dGVybmFsSXRlbVR5cGUgdHlw
ZSA9IGtTZWNJdGVtVHlwZVByaXZhdGVLZXk7CisgICAgc3RhdHVzID0gU2VjSXRlbUltcG9ydCgo
X19icmlkZ2UgQ0ZEYXRhUmVmKWRlckVuY29kZWRQcml2YXRlS2V5LCBudWxscHRyLCBudWxscHRy
LCAmdHlwZSwgMCwgbnVsbHB0ciwga2V5Y2hhaW4uZ2V0KCksIG51bGxwdHIpOworICAgIEVYUEVD
VF9UUlVFKHN0YXR1cyA9PSBlcnJTZWNTdWNjZXNzKTsKKworICAgIFNlY0lkZW50aXR5UmVmIGlk
ZW50aXR5UmVmID0gbnVsbHB0cjsKKyAgICBzdGF0dXMgPSBTZWNJZGVudGl0eUNyZWF0ZVdpdGhD
ZXJ0aWZpY2F0ZShrZXljaGFpbi5nZXQoKSwgY2VydGlmaWNhdGUuZ2V0KCksICZpZGVudGl0eVJl
Zik7CisgICAgRVhQRUNUX05PVF9OVUxMKGlkZW50aXR5UmVmKTsKKyAgICBFWFBFQ1RfVFJVRShz
dGF0dXMgPT0gZXJyU2VjU3VjY2Vzcyk7CisgICAgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiBp
ZGVudGl0eSA9IGFkb3B0Q0YoaWRlbnRpdHlSZWYpOwogICAgIAotICAgIHJldHVybiBbTlNVUkxD
cmVkZW50aWFsIGNyZWRlbnRpYWxXaXRoSWRlbnRpdHk6aWRlbnRpdHkuZ2V0KCkgY2VydGlmaWNh
dGVzOkBbKGlkKWNlcnRpZmljYXRlLmdldCgpXSBwZXJzaXN0ZW5jZTpOU1VSTENyZWRlbnRpYWxQ
ZXJzaXN0ZW5jZU5vbmVdOworICAgIHJldHVybiB7CisgICAgICAgIFtOU1VSTENyZWRlbnRpYWwg
Y3JlZGVudGlhbFdpdGhJZGVudGl0eTppZGVudGl0eS5nZXQoKSBjZXJ0aWZpY2F0ZXM6QFsoaWQp
Y2VydGlmaWNhdGUuZ2V0KCldIHBlcnNpc3RlbmNlOk5TVVJMQ3JlZGVudGlhbFBlcnNpc3RlbmNl
Tm9uZV0sCisgICAgICAgIGtleWNoYWluUGF0aAorICAgIH07CiB9CiAKK3N0YXRpYyBSZXRhaW5Q
dHI8TlNTdHJpbmc+IGtleWNoYWluUGF0aDsKKwogQGludGVyZmFjZSBDaGFsbGVuZ2VEZWxlZ2F0
ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4KIEBlbmQKIApAQCAtODUsMTUgKzIy
OSwxOCBAQCBzdGF0aWMgUmV0YWluUHRyPE5TVVJMQ3JlZGVudGlhbD4gY3JlZGVudGlhbFdpdGhJ
ZGVudGl0eSgpCiAgICAgRVhQRUNUX1RSVUUoW3Byb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlv
bk1ldGhvZCBpc0VxdWFsVG9TdHJpbmc6TlNVUkxBdXRoZW50aWNhdGlvbk1ldGhvZEhUVFBCYXNp
Y10pOwogICAgIEVYUEVDVF9FUShbKE5TSFRUUFVSTFJlc3BvbnNlICopY2hhbGxlbmdlLmZhaWx1
cmVSZXNwb25zZSBzdGF0dXNDb2RlXSwgNDAxKTsKIAotICAgIGNvbXBsZXRpb25IYW5kbGVyKE5T
VVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsLCBjcmVkZW50aWFsV2l0aElkZW50
aXR5KCkuZ2V0KCkpOworICAgIGF1dG8gcGFpciA9IGNyZWRlbnRpYWxXaXRoSWRlbnRpdHlBbmRL
ZXljaGFpblBhdGgoKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hh
bGxlbmdlVXNlQ3JlZGVudGlhbCwgcGFpci5maXJzdC5nZXQoKSk7CisgICAga2V5Y2hhaW5QYXRo
ID0gV1RGTW92ZShwYWlyLnNlY29uZCk7CiB9CiAKIEBlbmQKIAorbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgeworCiBURVNUKENoYWxsZW5nZSwgU2VjSWRlbnRpdHkpCiB7Ci0gICAgdXNpbmcgbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEk7Ci0gICAgVENQU2VydmVyIHNlcnZlcihUQ1BTZXJ2ZXI6OnJl
c3BvbmRXaXRoQ2hhbGxlbmdlVGhlbk9LKTsKKyAgICBUQ1BTZXJ2ZXIgc2VydmVyKHJlc3BvbmRX
aXRoQ2hhbGxlbmdlVGhlbk9LKTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1dLV2Vi
VmlldyBuZXddKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbQ2hhbGxlbmdlRGVsZWdh
dGUgbmV3XSk7CkBAIC0xMDEsNTYgKzI0OCwxNSBAQCBURVNUKENoYWxsZW5nZSwgU2VjSWRlbnRp
dHkpCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbTlNVUkwgVVJMV2l0aFN0cmluZzpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAImh0dHA6
Ly8xMjcuMC4wLjE6JWQvIiwgc2VydmVyLnBvcnQoKV1dXV07CiAKICAgICBVdGlsOjpydW4oJm5h
dmlnYXRpb25GaW5pc2hlZCk7Ci19Ci0KLUBpbnRlcmZhY2UgQ2xpZW50Q2VydGlmaWNhdGVEZWxl
Z2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4gewotICAgIFZlY3RvcjxSZXRh
aW5QdHI8TlNTdHJpbmc+PiBfYXV0aGVudGljYXRpb25NZXRob2RzOwotfQotLSAoY29uc3QgVmVj
dG9yPFJldGFpblB0cjxOU1N0cmluZz4+JilhdXRoZW50aWNhdGlvbk1ldGhvZHM7Ci1AZW5kCi0K
LUBpbXBsZW1lbnRhdGlvbiBDbGllbnRDZXJ0aWZpY2F0ZURlbGVnYXRlCi0KLS0gKHZvaWQpd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRGaW5pc2hOYXZpZ2F0aW9uOihudWxsX3Vuc3Bl
Y2lmaWVkIFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24KLXsKLSAgICBuYXZpZ2F0aW9uRmluaXNo
ZWQgPSB0cnVlOwotfQotCi0tICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlICopY2hhbGxlbmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VSTFNlc3Npb25B
dXRoQ2hhbGxlbmdlRGlzcG9zaXRpb24sIE5TVVJMQ3JlZGVudGlhbCAqKSljb21wbGV0aW9uSGFu
ZGxlcgotewotICAgIF9hdXRoZW50aWNhdGlvbk1ldGhvZHMuYXBwZW5kKGNoYWxsZW5nZS5wcm90
ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25NZXRob2QpOwotCi0gICAgaWYgKFtjaGFsbGVuZ2Uu
cHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0aW9uTWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VS
TEF1dGhlbnRpY2F0aW9uTWV0aG9kU2VydmVyVHJ1c3RdKQotICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZVVzZUNyZWRlbnRpYWwsIFtOU1VS
TENyZWRlbnRpYWwgY3JlZGVudGlhbEZvclRydXN0OmNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2Uu
c2VydmVyVHJ1c3RdKTsKICAgICAKLSAgICBFWFBFQ1RfVFJVRShbY2hhbGxlbmdlLnByb3RlY3Rp
b25TcGFjZS5hdXRoZW50aWNhdGlvbk1ldGhvZCBpc0VxdWFsVG9TdHJpbmc6TlNVUkxBdXRoZW50
aWNhdGlvbk1ldGhvZENsaWVudENlcnRpZmljYXRlXSk7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIo
TlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZVVzZUNyZWRlbnRpYWwsIGNyZWRlbnRpYWxXaXRoSWRl
bnRpdHkoKS5nZXQoKSk7Ci19Ci0KLS0gKGNvbnN0IFZlY3RvcjxSZXRhaW5QdHI8TlNTdHJpbmc+
PiYpYXV0aGVudGljYXRpb25NZXRob2RzCi17Ci0gICAgcmV0dXJuIF9hdXRoZW50aWNhdGlvbk1l
dGhvZHM7CisgICAgRVhQRUNUX05PVF9OVUxMKGtleWNoYWluUGF0aC5nZXQoKSk7CisgICAgTlNF
cnJvciAqZXJyb3IgPSBuaWw7CisgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBy
ZW1vdmVJdGVtQXRQYXRoOmtleWNoYWluUGF0aC5nZXQoKSBlcnJvcjomZXJyb3JdOworICAgIEVY
UEVDVF9OVUxMKGVycm9yKTsKIH0KIAotQGVuZAotCi0jaWYgSEFWRShTRUNfS0VZX1BST1hZKSAm
JiBQTEFURk9STShNQUMpIC8vIEZJWE1FOiBJbnZlc3RpZ2F0ZSB3aHkgdGhpcyBkb2Vzbid0IHdv
cmsgb24gaU9TLgotVEVTVChDaGFsbGVuZ2UsIENsaWVudENlcnRpZmljYXRlKQotewotICAgIHVz
aW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwotICAgIFRDUFNlcnZlciBzZXJ2ZXIoVENQU2Vy
dmVyOjpQcm90b2NvbDo6SFRUUFNXaXRoQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0LCBUQ1BTZXJ2
ZXI6OnJlc3BvbmRXaXRoT0spOworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQogCi0gICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOwotICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtDbGllbnRDZXJ0aWZpY2F0ZURlbGVnYXRlIG5ld10pOwotICAgIFt3ZWJW
aWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07Ci0gICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAImh0dHBzOi8vMTI3LjAuMC4xOiVkLyIs
IHNlcnZlci5wb3J0KCldXV1dOwotICAgIAotICAgIFV0aWw6OnJ1bigmbmF2aWdhdGlvbkZpbmlz
aGVkKTsKLSAgICBhdXRvJiBtZXRob2RzID0gW2RlbGVnYXRlIGF1dGhlbnRpY2F0aW9uTWV0aG9k
c107Ci0gICAgRVhQRUNUX0VRKG1ldGhvZHMuc2l6ZSgpLCAydWxsKTsKLSAgICBFWFBFQ1RfVFJV
RShbbWV0aG9kc1swXSBpc0VxdWFsVG9TdHJpbmc6TlNVUkxBdXRoZW50aWNhdGlvbk1ldGhvZFNl
cnZlclRydXN0XSk7Ci0gICAgRVhQRUNUX1RSVUUoW21ldGhvZHNbMl0gaXNFcXVhbFRvU3RyaW5n
Ok5TVVJMQXV0aGVudGljYXRpb25NZXRob2RDbGllbnRDZXJ0aWZpY2F0ZV0pOwotfQogI2VuZGlm
CiAKIHN0YXRpYyBib29sIHJlY2VpdmVkU2Vjb25kQ2hhbGxlbmdlOwpAQCAtMTg0LDcgKzI5MCw3
IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNVUkxDcmVkZW50aWFsPiBwZXJzaXN0ZW50Q3JlZGVudGlh
bDsKIFRFU1QoQ2hhbGxlbmdlLCBCYXNpY1Byb3Bvc2VkQ3JlZGVudGlhbCkKIHsKICAgICB1c2lu
ZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKLSAgICBUQ1BTZXJ2ZXIgc2VydmVyKFRDUFNlcnZl
cjo6cmVzcG9uZFdpdGhDaGFsbGVuZ2VUaGVuT0ssIDIpOworICAgIFRDUFNlcnZlciBzZXJ2ZXIo
cmVzcG9uZFdpdGhDaGFsbGVuZ2VUaGVuT0ssIDIpOwogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9
IHJldGFpblB0cihbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0
aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJCYXNpY1Byb3Bvc2VkQ3JlZGVudGlhbFBsdWdJbiJdKTsK
ICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOkNHUmVjdFplcm8gY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAg
YXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1Byb3Bvc2VkQ3JlZGVudGlhbERlbGVnYXRlIG5ld10p
OwpAQCAtMzAwLDEzICs0MDYsMTYgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogVEVTVChX
ZWJLaXQsIFNlcnZlclRydXN0KQogewogICAgIFRDUFNlcnZlciBzZXJ2ZXIoVENQU2VydmVyOjpQ
cm90b2NvbDo6SFRUUFMsIFtdIChTU0wqIHNzbCkgewotICAgICAgICBUQ1BTZXJ2ZXI6OnJlYWQo
c3NsKTsKKyAgICAgICAgY2hhciByZXF1ZXN0QnVmZmVyWzEwMDBdOworICAgICAgICBhdXRvIHJl
YWRSZXN1bHQgPSBTU0xfcmVhZChzc2wsIHJlcXVlc3RCdWZmZXIsIHNpemVvZihyZXF1ZXN0QnVm
ZmVyKSk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQocmVhZFJlc3VsdCwgcmVhZFJlc3VsdCA+IDAp
OwogCiAgICAgICAgIGNvbnN0IGNoYXIqIHJlcGx5ID0gIiIKICAgICAgICAgIkhUVFAvMS4xIDIw
MCBPS1xyXG4iCiAgICAgICAgICJDb250ZW50LUxlbmd0aDogMTNcclxuXHJcbiIKICAgICAgICAg
IkhlbGxvLCBXb3JsZCEiOwotICAgICAgICBUQ1BTZXJ2ZXI6OndyaXRlKHNzbCwgcmVwbHksIHN0
cmxlbihyZXBseSkpOworICAgICAgICBhdXRvIHdyaXRlUmVzdWx0ID0gU1NMX3dyaXRlKHNzbCwg
cmVwbHksIHN0cmxlbihyZXBseSkpOworICAgICAgICBBU1NFUlRfVU5VU0VEKHdyaXRlUmVzdWx0
LCB3cml0ZVJlc3VsdCA9PSBzdGF0aWNfY2FzdDxpbnQ+KHN0cmxlbihyZXBseSkpKTsKICAgICB9
KTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1dLV2ViVmlldyBuZXddKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUERGTGlua1JlZmVy
cmVyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QREZMaW5rUmVm
ZXJyZXIubW0KaW5kZXggZWZiNzRjNjczYzU4NTczYWIxZGU3OTk0ODhjNzc5NjM3ZGFjMjEyYy4u
NzE3YTY5NTYwOWQxOTYzOGY0MDI4NTE4YjU1ZTQ3NTk5OWEzNDQ4OCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QREZMaW5rUmVmZXJyZXIubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QREZMaW5rUmVmZXJyZXIu
bW0KQEAgLTcyLDI0ICs3MiwyNiBAQCBzdGF0aWMgUmV0YWluUHRyPE5TRGF0YT4gY3JlYXRlUERG
V2l0aExpbmtUb1VSTChOU1VSTCAqdXJsKQogCiBURVNUKFdlYktpdCwgUERGTGlua1JlZmVycmVy
KQogewotICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwotICAgIFRDUFNlcnZlciBz
ZXJ2ZXIoW10gKGludCBzb2NrZXQpIHsKKyAgICBUZXN0V2ViS2l0QVBJOjpUQ1BTZXJ2ZXIgc2Vy
dmVyKFtdIChpbnQgc29ja2V0KSB7CisgICAgICAgIGNoYXIgcmVhZEJ1ZmZlclsxMDAwXTsKKyAg
ICAgICAgbWVtc2V0KHJlYWRCdWZmZXIsIDAsIDEwMDApOworCiAgICAgICAgIC8vIFRoaXMgYXNz
dW1lcyBhbGwgdGhlIGRhdGEgZnJvbSB0aGUgSFRUUCByZXF1ZXN0IGlzIGF2YWlsYWJsZSB0byBi
ZSByZWFkIGF0IG9uY2UsCiAgICAgICAgIC8vIHdoaWNoIGlzIHByb2JhYmx5IGFuIG9rYXkgYXNz
dW1wdGlvbi4KLSAgICAgICAgYXV0byByZXF1ZXN0Qnl0ZXMgPSBUQ1BTZXJ2ZXI6OnJlYWQoc29j
a2V0KTsKKyAgICAgICAgOjpyZWFkKHNvY2tldCwgcmVhZEJ1ZmZlciwgOTk5KTsKIAogICAgICAg
ICAvLyBMb29rIGZvciBhIHJlZmVyZXIgaGVhZGVyLgotICAgICAgICBjb25zdCBhdXRvKiBjdXJy
ZW50TGluZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHJlcXVlc3RCeXRlcy5kYXRh
KCkpOworICAgICAgICBjaGFyKiBjdXJyZW50TGluZSA9IHJlYWRCdWZmZXI7CiAgICAgICAgIHdo
aWxlIChjdXJyZW50TGluZSkgewogICAgICAgICAgICAgRVhQRUNUX05FKHN0cm5jYXNlY21wKGN1
cnJlbnRMaW5lLCAicmVmZXJlcjoiLCA4KSwgMCk7Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiBu
ZXh0TGluZSA9IHN0cmNocihjdXJyZW50TGluZSwgJ1xuJyk7CisgICAgICAgICAgICBjaGFyKiBu
ZXh0TGluZSA9IHN0cmNocihjdXJyZW50TGluZSwgJ1xuJyk7CiAgICAgICAgICAgICBjdXJyZW50
TGluZSA9IG5leHRMaW5lID8gbmV4dExpbmUgKyAxIDogMDsKICAgICAgICAgfQogCiAgICAgICAg
IGNvbnN0IGNoYXIqIHJlc3BvbnNlSGVhZGVyID0KICAgICAgICAgIkhUVFAvMS4xIDIwMCBPS1xy
XG4iCiAgICAgICAgICJDb250ZW50LUxlbmd0aDogMFxyXG5cclxuIjsKLSAgICAgICAgVENQU2Vy
dmVyOjp3cml0ZShzb2NrZXQsIHJlc3BvbnNlSGVhZGVyLCBzdHJsZW4ocmVzcG9uc2VIZWFkZXIp
KTsKKyAgICAgICAgOjp3cml0ZShzb2NrZXQsIHJlc3BvbnNlSGVhZGVyLCBzdHJsZW4ocmVzcG9u
c2VIZWFkZXIpKTsKICAgICB9KTsKIAogICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvUHJveHkubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1Byb3h5Lm1tCmluZGV4IDFhM2M1M2MwOTY3NTlhMmZiYjE0Mjk5NDRlYzUxMjg0
OTVhMGE3NDYuLjU2YmY5ZmQwMjU2NDc4MmZjYzhkY2EwNDEyNTY2YTc4ZDIyNjgxYTMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJveHkubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm94eS5tbQpAQCAtNTcs
NyArNTcsMTggQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFdlYktpdCwgSFRU
UFNQcm94eSkKIHsKLSAgICBUQ1BTZXJ2ZXIgc2VydmVyKFRDUFNlcnZlcjo6UHJvdG9jb2w6OkhU
VFBTUHJveHksIFRDUFNlcnZlcjo6cmVzcG9uZFdpdGhPSyk7CisgICAgVENQU2VydmVyIHNlcnZl
cihUQ1BTZXJ2ZXI6OlByb3RvY29sOjpIVFRQU1Byb3h5LCBbXSAoU1NMKiBzc2wpIHsKKyAgICAg
ICAgY2hhciByZXF1ZXN0QnVmZmVyWzEwMDBdOworICAgICAgICBhdXRvIHJlYWRSZXN1bHQgPSBT
U0xfcmVhZChzc2wsIHJlcXVlc3RCdWZmZXIsIHNpemVvZihyZXF1ZXN0QnVmZmVyKSk7CisgICAg
ICAgIEFTU0VSVF9VTlVTRUQocmVhZFJlc3VsdCwgcmVhZFJlc3VsdCA+IDApOworCisgICAgICAg
IGNvbnN0IGNoYXIqIHJlcGx5ID0gIiIKKyAgICAgICAgIkhUVFAvMS4xIDIwMCBPS1xyXG4iCisg
ICAgICAgICJDb250ZW50LUxlbmd0aDogMzRcclxuXHJcbiIKKyAgICAgICAgIjxzY3JpcHQ+YWxl
cnQoJ3N1Y2Nlc3MhJyk8L3NjcmlwdD4iOworICAgICAgICBhdXRvIHdyaXRlUmVzdWx0ID0gU1NM
X3dyaXRlKHNzbCwgcmVwbHksIHN0cmxlbihyZXBseSkpOworICAgICAgICBBU1NFUlRfVU5VU0VE
KHdyaXRlUmVzdWx0LCB3cml0ZVJlc3VsdCA9PSBzdGF0aWNfY2FzdDxpbnQ+KHN0cmxlbihyZXBs
eSkpKTsKKyAgICB9KTsKIAogICAgIGF1dG8gc3RvcmVDb25maWd1cmF0aW9uID0gYWRvcHROUyhb
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gbmV3XSk7CiAgICAgW3N0b3JlQ29uZmln
dXJhdGlvbiBzZXRIVFRQU1Byb3h5OltOU1VSTCBVUkxXaXRoU3RyaW5nOltOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OkAiaHR0cHM6Ly8xMjcuMC4wLjE6JWQvIiwgc2VydmVyLnBvcnQoKV1dXTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tOYXZp
Z2F0aW9uUmVzcG9uc2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dLTmF2aWdhdGlvblJlc3BvbnNlLm1tCmluZGV4IGY2NDUwMDAyYzBmNWFiMTNmYTA5MjNjMGI2
ZDg0M2M4OTkzYzNjMmEuLmZiMmYxYWM0M2Q3ZjZmNzhhMzlkNDlmODkyMTI0ZjY1NGJhNjRiNDMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tOYXZp
Z2F0aW9uUmVzcG9uc2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS05hdmlnYXRpb25SZXNwb25zZS5tbQpAQCAtMTk1LDI4ICsxOTUsNDEgQEAgVEVTVChX
ZWJLaXQsIFdLTmF2aWdhdGlvblJlc3BvbnNlUERGVHlwZSkKIAogQGVuZAogCitzdGF0aWMgdm9p
ZCByZWFkUmVxdWVzdChpbnQgc29ja2V0KQoreworICAgIGNoYXIgcmVhZEJ1ZmZlclsxMDAwXTsK
KyAgICBhdXRvIGJ5dGVzUmVhZCA9IDo6cmVhZChzb2NrZXQsIHJlYWRCdWZmZXIsIHNpemVvZihy
ZWFkQnVmZmVyKSk7CisgICAgRVhQRUNUX0dUKGJ5dGVzUmVhZCwgMCk7CisgICAgRVhQRUNUX1RS
VUUoc3RhdGljX2Nhc3Q8c2l6ZV90PihieXRlc1JlYWQpIDwgc2l6ZW9mKHJlYWRCdWZmZXIpKTsK
K30KKworc3RhdGljIHZvaWQgd3JpdGVSZXNwb25zZShpbnQgc29ja2V0LCBOU1N0cmluZyAqcmVz
cG9uc2UpCit7CisgICAgY29uc3QgY2hhciogYnl0ZXMgPSByZXNwb25zZS5VVEY4U3RyaW5nOwor
ICAgIGF1dG8gYnl0ZXNXcml0dGVuID0gOjp3cml0ZShzb2NrZXQsIGJ5dGVzLCBzdHJsZW4oYnl0
ZXMpKTsKKyAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90PihieXRlc1dyaXR0ZW4pLCBz
dHJsZW4oYnl0ZXMpKTsKK30KKwogVEVTVChXZWJLaXQsIFdLTmF2aWdhdGlvblJlc3BvbnNlRG93
bmxvYWRBdHRyaWJ1dGUpCiB7CiAgICAgYXV0byBnZXREb3dubG9hZFJlc3BvbnNlID0gW10gKFJl
dGFpblB0cjxOU1N0cmluZz4gYm9keSkgLT4gUmV0YWluUHRyPFdLTmF2aWdhdGlvblJlc3BvbnNl
PiB7Ci0gICAgICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwotICAgICAgICBUQ1BT
ZXJ2ZXIgc2VydmVyKFtib2R5XShpbnQgc29ja2V0KSB7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6
OlRDUFNlcnZlciBzZXJ2ZXIoW2JvZHldKGludCBzb2NrZXQpIHsKKyAgICAgICAgICAgIHJlYWRS
ZXF1ZXN0KHNvY2tldCk7CiAgICAgICAgICAgICB1bnNpZ25lZCBib2R5TGVuZ3RoID0gW2JvZHkg
bGVuZ3RoXTsKLSAgICAgICAgICAgIE5TU3RyaW5nICpmaXJzdFJlc3BvbnNlID0gW05TU3RyaW5n
IHN0cmluZ1dpdGhGb3JtYXQ6CisgICAgICAgICAgICB3cml0ZVJlc3BvbnNlKHNvY2tldCwgW05T
U3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6CiAgICAgICAgICAgICAgICAgQCJIVFRQLzEuMSAyMDAg
T0tcclxuIgogICAgICAgICAgICAgICAgICJDb250ZW50LUxlbmd0aDogJWRcclxuXHJcbiIKICAg
ICAgICAgICAgICAgICAiJUAiLAogICAgICAgICAgICAgICAgIGJvZHlMZW5ndGgsCiAgICAgICAg
ICAgICAgICAgYm9keS5nZXQoKQotICAgICAgICAgICAgXTsKLSAgICAgICAgICAgIE5TU3RyaW5n
ICpzZWNvbmRSZXNwb25zZSA9IEAiSFRUUC8xLjEgMjAwIE9LXHJcbiIKKyAgICAgICAgICAgIF0p
OworICAgICAgICAgICAgcmVhZFJlcXVlc3Qoc29ja2V0KTsKKyAgICAgICAgICAgIHdyaXRlUmVz
cG9uc2Uoc29ja2V0LAorICAgICAgICAgICAgICAgIEAiSFRUUC8xLjEgMjAwIE9LXHJcbiIKICAg
ICAgICAgICAgICAgICAiQ29udGVudC1MZW5ndGg6IDZcclxuIgogICAgICAgICAgICAgICAgICJD
b250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1mcm9tSGVhZGVyLnR4dDtc
clxuXHJcbiIKLSAgICAgICAgICAgICAgICAiSGVsbG8hIjsKLQotICAgICAgICAgICAgVENQU2Vy
dmVyOjpyZWFkKHNvY2tldCk7Ci0gICAgICAgICAgICBUQ1BTZXJ2ZXI6OndyaXRlKHNvY2tldCwg
Zmlyc3RSZXNwb25zZS5VVEY4U3RyaW5nLCBmaXJzdFJlc3BvbnNlLmxlbmd0aCk7Ci0gICAgICAg
ICAgICBUQ1BTZXJ2ZXI6OnJlYWQoc29ja2V0KTsKLSAgICAgICAgICAgIFRDUFNlcnZlcjo6d3Jp
dGUoc29ja2V0LCBzZWNvbmRSZXNwb25zZS5VVEY4U3RyaW5nLCBzZWNvbmRSZXNwb25zZS5sZW5n
dGgpOworICAgICAgICAgICAgICAgICJIZWxsbyEiCisgICAgICAgICAgICApOwogICAgICAgICB9
KTsKICAgICAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW05hdmlnYXRpb25SZXNwb25zZVRl
c3REZWxlZ2F0ZSBuZXddKTsKICAgICAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJW
aWV3IG5ld10pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS1dlYnNpdGVEYXRhc3RvcmUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbQppbmRleCAzMWQxYjU1NDQ5NjhiNmMyNzA1
YjFkOTYwNDllOGI4OGU0ODljZDBiLi4zZjk1M2E3MDc1MThmZTM4MjA2NzNlYTEwMzIzNDYwY2I5
Mjk0ZDQ2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dLV2Vic2l0ZURhdGFzdG9yZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbQpAQCAtMTEwLDkgKzExMCwzNiBAQCBURVNU
KFdLV2Vic2l0ZURhdGFTdG9yZSwgUmVtb3ZlRXBoZW1lcmFsRGF0YSkKICAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogfQogCitzdGF0aWMgdm9pZCByZXNwb25kV2l0aENoYWxs
ZW5nZVRoZW5PSyhpbnQgc29ja2V0KQoreworICAgIGNoYXIgcmVhZEJ1ZmZlclsxMDAwXTsKKyAg
ICBhdXRvIGJ5dGVzUmVhZCA9IDo6cmVhZChzb2NrZXQsIHJlYWRCdWZmZXIsIHNpemVvZihyZWFk
QnVmZmVyKSk7CisgICAgRVhQRUNUX0dUKGJ5dGVzUmVhZCwgMCk7CisgICAgRVhQRUNUX1RSVUUo
c3RhdGljX2Nhc3Q8c2l6ZV90PihieXRlc1JlYWQpIDwgc2l6ZW9mKHJlYWRCdWZmZXIpKTsKKyAg
ICAKKyAgICBjb25zdCBjaGFyKiBjaGFsbGVuZ2VIZWFkZXIgPQorICAgICJIVFRQLzEuMSA0MDEg
VW5hdXRob3JpemVkXHJcbiIKKyAgICAiRGF0ZTogU2F0LCAyMyBNYXIgMjAxOSAwNjoyOTowMSBH
TVRcclxuIgorICAgICJDb250ZW50LUxlbmd0aDogMFxyXG4iCisgICAgIldXVy1BdXRoZW50aWNh
dGU6IEJhc2ljIHJlYWxtPVwidGVzdHJlYWxtXCJcclxuXHJcbiI7CisgICAgYXV0byBieXRlc1dy
aXR0ZW4gPSA6OndyaXRlKHNvY2tldCwgY2hhbGxlbmdlSGVhZGVyLCBzdHJsZW4oY2hhbGxlbmdl
SGVhZGVyKSk7CisgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHNpemVfdD4oYnl0ZXNXcml0dGVu
KSwgc3RybGVuKGNoYWxsZW5nZUhlYWRlcikpOworICAgIAorICAgIGJ5dGVzUmVhZCA9IDo6cmVh
ZChzb2NrZXQsIHJlYWRCdWZmZXIsIHNpemVvZihyZWFkQnVmZmVyKSk7CisgICAgRVhQRUNUX0dU
KGJ5dGVzUmVhZCwgMCk7CisgICAgRVhQRUNUX1RSVUUoc3RhdGljX2Nhc3Q8c2l6ZV90PihieXRl
c1JlYWQpIDwgc2l6ZW9mKHJlYWRCdWZmZXIpKTsKKyAgICAKKyAgICBjb25zdCBjaGFyKiByZXNw
b25zZUhlYWRlciA9CisgICAgIkhUVFAvMS4xIDIwMCBPS1xyXG4iCisgICAgIkNvbnRlbnQtTGVu
Z3RoOiAxM1xyXG5cclxuIgorICAgICJIZWxsbywgV29ybGQhIjsKKyAgICBieXRlc1dyaXR0ZW4g
PSA6OndyaXRlKHNvY2tldCwgcmVzcG9uc2VIZWFkZXIsIHN0cmxlbihyZXNwb25zZUhlYWRlcikp
OworICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVzV3JpdHRlbiksIHN0cmxl
bihyZXNwb25zZUhlYWRlcikpOworfQorICAgIAogVEVTVChXS1dlYnNpdGVEYXRhU3RvcmUsIEZl
dGNoTm9uUGVyc2lzdGVudENyZWRlbnRpYWxzKQogewotICAgIFRDUFNlcnZlciBzZXJ2ZXIoVENQ
U2VydmVyOjpyZXNwb25kV2l0aENoYWxsZW5nZVRoZW5PSyk7CisgICAgVENQU2VydmVyIHNlcnZl
cihyZXNwb25kV2l0aENoYWxsZW5nZVRoZW5PSyk7CiAgICAgCiAgICAgdXNlUGVyc2lzdGVudENy
ZWRlbnRpYWxTdG9yYWdlID0gZmFsc2U7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKQEAgLTEzNyw3ICsxNjQsNyBAQCBURVNU
KFdLV2Vic2l0ZURhdGFTdG9yZSwgRmV0Y2hOb25QZXJzaXN0ZW50Q3JlZGVudGlhbHMpCiAKIFRF
U1QoV0tXZWJzaXRlRGF0YVN0b3JlLCBGZXRjaFBlcnNpc3RlbnRDcmVkZW50aWFscykKIHsKLSAg
ICBUQ1BTZXJ2ZXIgc2VydmVyKFRDUFNlcnZlcjo6cmVzcG9uZFdpdGhDaGFsbGVuZ2VUaGVuT0sp
OworICAgIFRDUFNlcnZlciBzZXJ2ZXIocmVzcG9uZFdpdGhDaGFsbGVuZ2VUaGVuT0spOwogICAg
IAogICAgIHVzZVBlcnNpc3RlbnRDcmVkZW50aWFsU3RvcmFnZSA9IHRydWU7CiAgICAgYXV0byB3
ZWJzaXRlRGF0YVN0b3JlID0gW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXTsK
QEAgLTE3NSw3ICsyMDIsNyBAQCBURVNUKFdLV2Vic2l0ZURhdGFTdG9yZSwgRmV0Y2hQZXJzaXN0
ZW50Q3JlZGVudGlhbHMpCiAKIFRFU1QoV0tXZWJzaXRlRGF0YVN0b3JlLCBSZW1vdmVQZXJzaXN0
ZW50Q3JlZGVudGlhbHMpCiB7Ci0gICAgVENQU2VydmVyIHNlcnZlcihUQ1BTZXJ2ZXI6OnJlc3Bv
bmRXaXRoQ2hhbGxlbmdlVGhlbk9LKTsKKyAgICBUQ1BTZXJ2ZXIgc2VydmVyKHJlc3BvbmRXaXRo
Q2hhbGxlbmdlVGhlbk9LKTsKIAogICAgIHVzZVBlcnNpc3RlbnRDcmVkZW50aWFsU3RvcmFnZSA9
IHRydWU7CiAgICAgYXV0byB3ZWJzaXRlRGF0YVN0b3JlID0gW1dLV2Vic2l0ZURhdGFTdG9yZSBk
ZWZhdWx0RGF0YVN0b3JlXTsKQEAgLTIyNiw3ICsyNTMsNyBAQCBURVNUKFdLV2Vic2l0ZURhdGFT
dG9yZSwgUmVtb3ZlUGVyc2lzdGVudENyZWRlbnRpYWxzKQogCiBURVNUKFdLV2Vic2l0ZURhdGFT
dG9yZSwgUmVtb3ZlTm9uUGVyc2lzdGVudENyZWRlbnRpYWxzKQogewotICAgIFRDUFNlcnZlciBz
ZXJ2ZXIoVENQU2VydmVyOjpyZXNwb25kV2l0aENoYWxsZW5nZVRoZW5PSyk7CisgICAgVENQU2Vy
dmVyIHNlcnZlcihyZXNwb25kV2l0aENoYWxsZW5nZVRoZW5PSyk7CiAKICAgICB1c2VQZXJzaXN0
ZW50Q3JlZGVudGlhbFN0b3JhZ2UgPSBmYWxzZTsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBh
ZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>