<?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>82576</bug_id>
          
          <creation_ts>2012-03-29 00:05:32 -0700</creation_ts>
          <short_desc>REGRESSION(r112500): assertion failed on fast/events/tab-test-not-visible-imagemap.html on gtk/qt (Requested by hayato on #webkit).</short_desc>
          <delta_ts>2012-03-29 00:18:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>78588</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>hayato</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>590894</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-29 00:05:32 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/112500 broke the build:
assertion failed on fast/events/tab-test-not-visible-imagemap.html on gtk/qt (Requested by hayato on #webkit).

This is an automatic bug report generated by the sheriff-bot. 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 case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590895</commentid>
    <comment_count>1</comment_count>
      <attachid>134513</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-29 00:06:11 -0700</bug_when>
    <thetext>Created attachment 134513
ROLLOUT of r112500

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>590897</commentid>
    <comment_count>2</comment_count>
      <attachid>134513</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-29 00:18:27 -0700</bug_when>
    <thetext>Comment on attachment 134513
ROLLOUT of r112500

Clearing flags on attachment: 134513

Committed r112505: &lt;http://trac.webkit.org/changeset/112505&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590898</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-29 00:18:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134513</attachid>
            <date>2012-03-29 00:06:11 -0700</date>
            <delta_ts>2012-03-29 00:18:27 -0700</delta_ts>
            <desc>ROLLOUT of r112500</desc>
            <filename>bug-82576-20120329070902.patch</filename>
            <type>text/plain</type>
            <size>55364</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmMzNTZhZGUyYTI2Mjdm
Y2Q3Yjk2YzQzYjA4N2VkZDRlZDdhODdlOC4uY2YwNjMzYTU3MzFlYjVkNGU2ZmE0YmE0ZWVmNWNl
NzU3ZmMzN2NkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAzLTI5ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTEyNTAwLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMTI1MDAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgyNTc2CisKKyAgICAgICAgYXNzZXJ0aW9uIGZhaWxlZCBvbiBmYXN0L2V2ZW50
cy90YWItdGVzdC1ub3QtdmlzaWJsZS0KKyAgICAgICAgaW1hZ2VtYXAuaHRtbCBvbiBndGsvcXQg
KFJlcXVlc3RlZCBieSBoYXlhdG8gb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBkb20vRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpmb2N1cyk6CisgICAgICAgICogcGFn
ZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpzaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OmlzVHJlZVNjb3BlT3duZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjp0cmFuc2ZlckZvY3VzVG9FbGVtZW50
SW5TaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6Omhhc0N1c3RvbUZvY3VzTG9naWMpOgor
ICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpmaW5kRm9jdXNhYmxlTm9kZURlY2Vu
ZGluZ0Rvd25JbnRvRnJhbWVEb2N1bWVudE9yU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3Jl
OjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcik6CisgICAgICAg
IChXZWJDb3JlOjpvd25lck9mVHJlZVNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29u
dHJvbGxlcjo6ZmluZEZvY3VzYWJsZU5vZGVBY3Jvc3NUcmVlU2NvcGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9jdXNDb250cm9sbGVyOjpmaW5kRm9jdXNhYmxlTm9kZSk6CisgICAgICAgIChXZWJD
b3JlOjpuZXh0Tm9kZVdpdGhFeGFjdFRhYkluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OnByZXZp
b3VzTm9kZVdpdGhFeGFjdFRhYkluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6Om5leHROb2RlV2l0
aEdyZWF0ZXJUYWJJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpwcmV2aW91c05vZGVXaXRoTG93
ZXJUYWJJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6Om5leHRGb2N1
c2FibGVOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6cHJldmlvdXNG
b2N1c2FibGVOb2RlKToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChGb2N1c0NvbnRyb2xsZXIpOgorCiAyMDEyLTAzLTI4ICBL
ZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgVGV4dEZpZWxk
RGVjb3JhdGlvbkVsZW1lbnQ6OmRlY29yYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA5
NTMyNzA4MDM1NTc2N2RlYTgyNmYzNjlkYmYyZDE1MGVlMWU2MGYyLi5iMjliZmI0YTVlMjMwNWM1
YTFjNmU4ZWIxZDI0YTliZGI4ZGRjYTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xNTQ4
LDYgKzE1NDgsOCBAQCB2b2lkIEVsZW1lbnQ6OmZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2Vs
ZWN0aW9uKQogICAgICAgICAvLyBJZiBhIGZvY3VzIGV2ZW50IGhhbmRsZXIgY2hhbmdlcyB0aGUg
Zm9jdXMgdG8gYSBkaWZmZXJlbnQgbm9kZSBpdAogICAgICAgICAvLyBkb2VzIG5vdCBtYWtlIHNl
bnNlIHRvIGNvbnRpbnVlIGFuZCB1cGRhdGUgYXBwZWFyZW5jZS4KICAgICAgICAgcHJvdGVjdCA9
IHRoaXM7CisgICAgICAgIGlmIChoYXNTaGFkb3dSb290KCkgJiYgcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCktPnRyYW5zZmVyRm9jdXNUb0VsZW1lbnRJblNoYWRvd1Jvb3QodGhpcywgcmVzdG9yZVBy
ZXZpb3VzU2VsZWN0aW9uKSkKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKCFwYWdl
LT5mb2N1c0NvbnRyb2xsZXIoKS0+c2V0Rm9jdXNlZE5vZGUodGhpcywgZG9jLT5mcmFtZSgpKSkK
ICAgICAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5jcHAKaW5kZXggNTA0ZTRiZWEzY2NhOWM0ZGQ1N2M5YmYxZTFiMzY5ODk5YWVlODRhNS4u
ZmIxNmRmMDIxYjZiNDY3MjYwOTk5YWFkZDlhZjFlMjA1ZjBkYTQzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApAQCAtNDgsNyArNDgsNiBAQAogI2luY2x1ZGUgIktl
eWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKLSNp
bmNsdWRlICJSZWlmaWVkVHJlZVRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgi
CiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCkBA
IC02Niw1NCArNjUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotc3RhdGljIGlubGluZSBib29sIGlzU2hh
ZG93SG9zdChjb25zdCBOb2RlKiBub2RlKQotewotICAgIHJldHVybiBub2RlICYmIG5vZGUtPmlz
RWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKTsKLX0KLQot
Rm9jdXNTY29wZTo6Rm9jdXNTY29wZShUcmVlU2NvcGUqIHRyZWVTY29wZSkKLSAgICA6IG1fcm9v
dFRyZWVTY29wZSh0cmVlU2NvcGUpCi17Ci0gICAgQVNTRVJUKHRyZWVTY29wZSk7Ci0gICAgQVNT
RVJUKCF0cmVlU2NvcGUtPnJvb3ROb2RlKCktPmlzU2hhZG93Um9vdCgpIHx8IHRvU2hhZG93Um9v
dCh0cmVlU2NvcGUtPnJvb3ROb2RlKCkpLT5pc1lvdW5nZXN0KCkpOwotfQotCi1Ob2RlKiBGb2N1
c1Njb3BlOjpyb290Tm9kZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcm9vdFRyZWVTY29wZS0+
cm9vdE5vZGUoKTsKLX0KLQotRWxlbWVudCogRm9jdXNTY29wZTo6b3duZXIoKSBjb25zdAotewot
ICAgIE5vZGUqIHJvb3QgPSByb290Tm9kZSgpOwotICAgIGlmIChyb290LT5pc1NoYWRvd1Jvb3Qo
KSkKLSAgICAgICAgcmV0dXJuIHJvb3QtPnNoYWRvd0hvc3QoKTsKLSAgICBpZiAoRnJhbWUqIGZy
YW1lID0gcm9vdC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSkKLSAgICAgICAgcmV0dXJuIGZyYW1lLT5v
d25lckVsZW1lbnQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotRm9jdXNTY29wZSBGb2N1c1Njb3Bl
Ojpmb2N1c1Njb3BlT2YoTm9kZSogbm9kZSkKLXsKLSAgICBBU1NFUlQobm9kZSk7Ci0gICAgVHJl
ZVNjb3BlKiBzY29wZSA9IG5vZGUtPnRyZWVTY29wZSgpOwotICAgIGlmIChzY29wZS0+cm9vdE5v
ZGUoKS0+aXNTaGFkb3dSb290KCkpCi0gICAgICAgIHJldHVybiBGb2N1c1Njb3BlKHRvU2hhZG93
Um9vdChzY29wZS0+cm9vdE5vZGUoKSktPnRyZWUoKS0+eW91bmdlc3RTaGFkb3dSb290KCkpOwot
ICAgIHJldHVybiBGb2N1c1Njb3BlKHNjb3BlKTsKLX0KLQotRm9jdXNTY29wZSBGb2N1c1Njb3Bl
Ojpmb2N1c1Njb3BlT3duZWRCeVNoYWRvd0hvc3QoTm9kZSogbm9kZSkKLXsKLSAgICBBU1NFUlQo
aXNTaGFkb3dIb3N0KG5vZGUpKTsKLSAgICByZXR1cm4gRm9jdXNTY29wZSh0b0VsZW1lbnQobm9k
ZSktPnNoYWRvd1RyZWUoKS0+eW91bmdlc3RTaGFkb3dSb290KCkpOwotfQotCi1Gb2N1c1Njb3Bl
IEZvY3VzU2NvcGU6OmZvY3VzU2NvcGVPd25lZEJ5SUZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVu
dCogZnJhbWUpCi17Ci0gICAgQVNTRVJUKGZyYW1lICYmIGZyYW1lLT5jb250ZW50RnJhbWUoKSk7
Ci0gICAgcmV0dXJuIEZvY3VzU2NvcGUoZnJhbWUtPmNvbnRlbnRGcmFtZSgpLT5kb2N1bWVudCgp
KTsKLX0KLQogc3RhdGljIGlubGluZSB2b2lkIGRpc3BhdGNoRXZlbnRzT25XaW5kb3dBbmRGb2N1
c2VkTm9kZShEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgZm9jdXNlZCkKIHsKICAgICAvLyBJZiB3
ZSBoYXZlIGEgZm9jdXNlZCBub2RlIHdlIHNob3VsZCBkaXNwYXRjaCBibHVyIG9uIGl0IGJlZm9y
ZSB3ZSBibHVyIHRoZSB3aW5kb3cuCkBAIC0xMzMsMzUgKzg0LDYgQEAgc3RhdGljIGlubGluZSB2
b2lkIGRpc3BhdGNoRXZlbnRzT25XaW5kb3dBbmRGb2N1c2VkTm9kZShEb2N1bWVudCogZG9jdW1l
bnQsIGJvb2wKICAgICAgICAgZG9jdW1lbnQtPmZvY3VzZWROb2RlKCktPmRpc3BhdGNoRm9jdXNF
dmVudCgwKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGhhc0N1c3RvbUZvY3VzTG9naWMoTm9k
ZSogbm9kZSkKLXsKLSAgICByZXR1cm4gbm9kZS0+aGFzVGFnTmFtZShpbnB1dFRhZykgfHwgbm9k
ZS0+aGFzVGFnTmFtZSh0ZXh0YXJlYVRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZSh2aWRlb1RhZykg
fHwgbm9kZS0+aGFzVGFnTmFtZShhdWRpb1RhZyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBp
c05vbkZvY3VzYWJsZVNoYWRvd0hvc3QoTm9kZSogbm9kZSwgS2V5Ym9hcmRFdmVudCogZXZlbnQp
Ci17Ci0gICAgQVNTRVJUKG5vZGUpOwotICAgIHJldHVybiAhbm9kZS0+aXNLZXlib2FyZEZvY3Vz
YWJsZShldmVudCkgJiYgaXNTaGFkb3dIb3N0KG5vZGUpICYmICFoYXNDdXN0b21Gb2N1c0xvZ2lj
KG5vZGUpOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNGb2N1c2FibGVTaGFkb3dIb3N0KE5v
ZGUqIG5vZGUsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQotewotICAgIEFTU0VSVChub2RlKTsKLSAg
ICByZXR1cm4gbm9kZS0+aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCkgJiYgaXNTaGFkb3dIb3N0
KG5vZGUpICYmICFoYXNDdXN0b21Gb2N1c0xvZ2ljKG5vZGUpOwotfQotCi1zdGF0aWMgaW5saW5l
IGludCBhZGp1c3RlZFRhYkluZGV4KE5vZGUqIG5vZGUsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQot
ewotICAgIEFTU0VSVChub2RlKTsKLSAgICByZXR1cm4gaXNOb25Gb2N1c2FibGVTaGFkb3dIb3N0
KG5vZGUsIGV2ZW50KSA/IDAgOiBub2RlLT50YWJJbmRleCgpOwotfQotCi1zdGF0aWMgaW5saW5l
IGJvb2wgc2hvdWxkVmlzaXQoTm9kZSogbm9kZSwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCi17Ci0g
ICAgQVNTRVJUKG5vZGUpOwotICAgIHJldHVybiBub2RlLT5pc0tleWJvYXJkRm9jdXNhYmxlKGV2
ZW50KSB8fCBpc05vbkZvY3VzYWJsZVNoYWRvd0hvc3Qobm9kZSwgZXZlbnQpOwotfQotCiBGb2N1
c0NvbnRyb2xsZXI6OkZvY3VzQ29udHJvbGxlcihQYWdlKiBwYWdlKQogICAgIDogbV9wYWdlKHBh
Z2UpCiAgICAgLCBtX2lzQWN0aXZlKGZhbHNlKQpAQCAtMjMxLDE2ICsxNTMsNTIgQEAgdm9pZCBG
b2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWQoYm9vbCBmb2N1c2VkKQogICAgIH0KIH0KIAotTm9k
ZSogRm9jdXNDb250cm9sbGVyOjpmaW5kRm9jdXNhYmxlTm9kZURlY2VuZGluZ0Rvd25JbnRvRnJh
bWVEb2N1bWVudChGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIE5vZGUqIG5vZGUsIEtleWJvYXJk
RXZlbnQqIGV2ZW50KQorc3RhdGljIGlubGluZSBTaGFkb3dSb290KiBzaGFkb3dSb290KE5vZGUq
IG5vZGUpCiB7Ci0gICAgLy8gVGhlIG5vZGUgd2UgZm91bmQgbWlnaHQgYmUgYSBIVE1MRnJhbWVP
d25lckVsZW1lbnQsIHNvIGRlc2NlbmQgZG93biB0aGUgdHJlZSB1bnRpbCB3ZSBmaW5kIGVpdGhl
cjoKKyAgICByZXR1cm4gbm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+
aGFzU2hhZG93Um9vdCgpID8gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dUcmVlKCktPnlvdW5nZXN0
U2hhZG93Um9vdCgpIDogMDsKK30KKworc3RhdGljIGlubGluZSBib29sIGlzVHJlZVNjb3BlT3du
ZXIoTm9kZSogbm9kZSkKK3sKKyAgICByZXR1cm4gbm9kZSAmJiAobm9kZS0+aXNGcmFtZU93bmVy
RWxlbWVudCgpIHx8IHNoYWRvd1Jvb3Qobm9kZSkpOworfQorCitib29sIEZvY3VzQ29udHJvbGxl
cjo6dHJhbnNmZXJGb2N1c1RvRWxlbWVudEluU2hhZG93Um9vdChFbGVtZW50KiBzaGFkb3dIb3N0
LCBib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbikKK3sKKyAgICBBU1NFUlQoc2hhZG93Um9v
dChzaGFkb3dIb3N0KSk7CisgICAgTm9kZSogbm9kZSA9IGZpbmRGb2N1c2FibGVOb2RlRGVjZW5k
aW5nRG93bkludG9GcmFtZURvY3VtZW50T3JTaGFkb3dSb290KEZvY3VzRGlyZWN0aW9uRm9yd2Fy
ZCwgc2hhZG93SG9zdCwgMCk7CisgICAgaWYgKHNoYWRvd0hvc3QgPT0gbm9kZSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHRvRWxlbWVudChub2RlKS0+Zm9jdXMocmVzdG9yZVByZXZpb3Vz
U2VsZWN0aW9uKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGlubGluZSBib29sIGhh
c0N1c3RvbUZvY3VzTG9naWMoTm9kZSogbm9kZSkKK3sKKyAgICByZXR1cm4gbm9kZS0+aGFzVGFn
TmFtZShpbnB1dFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZSh0ZXh0YXJlYVRhZykgfHwgbm9kZS0+
aGFzVGFnTmFtZSh2aWRlb1RhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShhdWRpb1RhZyk7Cit9CisK
K05vZGUqIEZvY3VzQ29udHJvbGxlcjo6ZmluZEZvY3VzYWJsZU5vZGVEZWNlbmRpbmdEb3duSW50
b0ZyYW1lRG9jdW1lbnRPclNoYWRvd1Jvb3QoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBOb2Rl
KiBub2RlLCBLZXlib2FyZEV2ZW50KiBldmVudCkKK3sKKyAgICAvLyBUaGUgbm9kZSB3ZSBmb3Vu
ZCBtaWdodCBiZSBhIEhUTUxGcmFtZU93bmVyRWxlbWVudCBvciBhIHNoYWRvdyBob3N0LCBzbyBk
ZXNjZW5kIGRvd24gdGhlIHRyZWUgdW50aWwgd2UgZmluZCBlaXRoZXI6CiAgICAgLy8gMSkgYSBm
b2N1c2FibGUgbm9kZSwgb3IKLSAgICAvLyAyKSB0aGUgZGVlcGVzdC1uZXN0ZWQgSFRNTEZyYW1l
T3duZXJFbGVtZW50LgotICAgIHdoaWxlIChub2RlICYmIG5vZGUtPmlzRnJhbWVPd25lckVsZW1l
bnQoKSkgewotICAgICAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyID0gc3RhdGljX2Nh
c3Q8SFRNTEZyYW1lT3duZXJFbGVtZW50Kj4obm9kZSk7Ci0gICAgICAgIGlmICghb3duZXItPmNv
bnRlbnRGcmFtZSgpKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIE5vZGUqIGZvdW5kTm9k
ZSA9IGZpbmRGb2N1c2FibGVOb2RlKGRpcmVjdGlvbiwgRm9jdXNTY29wZTo6Zm9jdXNTY29wZU93
bmVkQnlJRnJhbWUob3duZXIpLCAwLCBldmVudCk7CisgICAgLy8gMikgdGhlIGRlZXBlc3QtbmVz
dGVkIEhUTUxGcmFtZU93bmVyRWxlbWVudCBvciBzaGFkb3cgaG9zdC4KKyAgICB3aGlsZSAoaXNU
cmVlU2NvcGVPd25lcihub2RlKSkgeworICAgICAgICBOb2RlKiBmb3VuZE5vZGU7CisgICAgICAg
IGlmIChub2RlLT5pc0ZyYW1lT3duZXJFbGVtZW50KCkpIHsKKyAgICAgICAgICAgIEhUTUxGcmFt
ZU93bmVyRWxlbWVudCogb3duZXIgPSBzdGF0aWNfY2FzdDxIVE1MRnJhbWVPd25lckVsZW1lbnQq
Pihub2RlKTsKKyAgICAgICAgICAgIGlmICghb3duZXItPmNvbnRlbnRGcmFtZSgpKQorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gb3duZXIt
PmNvbnRlbnRGcmFtZSgpLT5kb2N1bWVudCgpOworICAgICAgICAgICAgZm91bmROb2RlID0gZmlu
ZEZvY3VzYWJsZU5vZGUoZGlyZWN0aW9uLCBkb2N1bWVudCwgMCwgZXZlbnQpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgLy8gRklYTUU6IFVudGlsIGEgZm9jdXMgcmUtdGFyZ2V0aW5n
IChidWcgNjE0MjEpIGlzIGltcGxlbWVudGVkLAorICAgICAgICAgICAgLy8gc2tpcHBpbmcgdGhl
c2UgZWxlbWVudHMgaXMgdGhlIHNhZmVzdCB3YXkgdG8ga2VlcCBhIGNvbXBhdGliaWxpdHkuCisg
ICAgICAgICAgICBpZiAoaGFzQ3VzdG9tRm9jdXNMb2dpYyhub2RlKSkKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIEFTU0VSVChzaGFkb3dSb290KG5vZGUpKTsKKyAgICAgICAg
ICAgIGZvdW5kTm9kZSA9IGZpbmRGb2N1c2FibGVOb2RlKGRpcmVjdGlvbiwgc2hhZG93Um9vdChu
b2RlKSwgMCwgZXZlbnQpOworICAgICAgICB9CiAgICAgICAgIGlmICghZm91bmROb2RlKQogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIEFTU0VSVChub2RlICE9IGZvdW5kTm9kZSk7CkBAIC0y
OTUsNyArMjUzLDcgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1l
bnRPcmRlcihGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWIKIAogICAgIGRvY3VtZW50LT51
cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAotICAgIFJlZlB0cjxOb2Rl
PiBub2RlID0gZmluZEZvY3VzYWJsZU5vZGVBY3Jvc3NGb2N1c1Njb3BlKGRpcmVjdGlvbiwgRm9j
dXNTY29wZTo6Zm9jdXNTY29wZU9mKGN1cnJlbnROb2RlID8gY3VycmVudE5vZGUgOiBkb2N1bWVu
dCksIGN1cnJlbnROb2RlLCBldmVudCk7CisgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBmaW5kRm9j
dXNhYmxlTm9kZUFjcm9zc1RyZWVTY29wZShkaXJlY3Rpb24sIGN1cnJlbnROb2RlID8gY3VycmVu
dE5vZGUtPnRyZWVTY29wZSgpIDogZG9jdW1lbnQsIGN1cnJlbnROb2RlLCBldmVudCk7CiAKICAg
ICBpZiAoIW5vZGUpIHsKICAgICAgICAgLy8gV2UgZGlkbid0IGZpbmQgYSBub2RlIHRvIGZvY3Vz
LCBzbyB3ZSBzaG91bGQgdHJ5IHRvIHBhc3MgZm9jdXMgdG8gQ2hyb21lLgpAQCAtMzA3LDggKzI2
NSw4IEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIo
Rm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXliCiAgICAgICAgIH0KIAogICAgICAgICAvLyBD
aHJvbWUgZG9lc24ndCB3YW50IGZvY3VzLCBzbyB3ZSBzaG91bGQgd3JhcCBmb2N1cy4KLSAgICAg
ICAgbm9kZSA9IGZpbmRGb2N1c2FibGVOb2RlUmVjdXJzaXZlbHkoZGlyZWN0aW9uLCBGb2N1c1Nj
b3BlOjpmb2N1c1Njb3BlT2YobV9wYWdlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKSksIDAsIGV2
ZW50KTsKLSAgICAgICAgbm9kZSA9IGZpbmRGb2N1c2FibGVOb2RlRGVjZW5kaW5nRG93bkludG9G
cmFtZURvY3VtZW50KGRpcmVjdGlvbiwgbm9kZS5nZXQoKSwgZXZlbnQpOworICAgICAgICBub2Rl
ID0gZmluZEZvY3VzYWJsZU5vZGUoZGlyZWN0aW9uLCBtX3BhZ2UtPm1haW5GcmFtZSgpLT5kb2N1
bWVudCgpLCAwLCBldmVudCk7CisgICAgICAgIG5vZGUgPSBmaW5kRm9jdXNhYmxlTm9kZURlY2Vu
ZGluZ0Rvd25JbnRvRnJhbWVEb2N1bWVudE9yU2hhZG93Um9vdChkaXJlY3Rpb24sIG5vZGUuZ2V0
KCksIGV2ZW50KTsKIAogICAgICAgICBpZiAoIW5vZGUpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC0zNjAsNzAgKzMxOCw1NiBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZv
Y3VzSW5Eb2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5YgogICAgIHJl
dHVybiB0cnVlOwogfQogCi1Ob2RlKiBGb2N1c0NvbnRyb2xsZXI6OmZpbmRGb2N1c2FibGVOb2Rl
QWNyb3NzRm9jdXNTY29wZShGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEZvY3VzU2NvcGUgc2Nv
cGUsIE5vZGUqIGN1cnJlbnROb2RlLCBLZXlib2FyZEV2ZW50KiBldmVudCkKK3N0YXRpYyBpbmxp
bmUgTm9kZSogb3duZXJPZlRyZWVTY29wZShUcmVlU2NvcGUqIHNjb3BlKQogewotICAgIEFTU0VS
VCghY3VycmVudE5vZGUgfHwgIWlzTm9uRm9jdXNhYmxlU2hhZG93SG9zdChjdXJyZW50Tm9kZSwg
ZXZlbnQpKTsKLSAgICBOb2RlKiBmb3VuZDsKLSAgICBpZiAoY3VycmVudE5vZGUgJiYgZGlyZWN0
aW9uID09IEZvY3VzRGlyZWN0aW9uRm9yd2FyZCAmJiBpc0ZvY3VzYWJsZVNoYWRvd0hvc3QoY3Vy
cmVudE5vZGUsIGV2ZW50KSkgewotICAgICAgICBOb2RlKiBmb3VuZEluSW5uZXJGb2N1c1Njb3Bl
ID0gZmluZEZvY3VzYWJsZU5vZGVSZWN1cnNpdmVseShkaXJlY3Rpb24sIEZvY3VzU2NvcGU6OmZv
Y3VzU2NvcGVPd25lZEJ5U2hhZG93SG9zdChjdXJyZW50Tm9kZSksIDAsIGV2ZW50KTsKLSAgICAg
ICAgZm91bmQgPSBmb3VuZEluSW5uZXJGb2N1c1Njb3BlID8gZm91bmRJbklubmVyRm9jdXNTY29w
ZSA6IGZpbmRGb2N1c2FibGVOb2RlUmVjdXJzaXZlbHkoZGlyZWN0aW9uLCBzY29wZSwgY3VycmVu
dE5vZGUsIGV2ZW50KTsKLSAgICB9IGVsc2UKLSAgICAgICAgZm91bmQgPSBmaW5kRm9jdXNhYmxl
Tm9kZVJlY3Vyc2l2ZWx5KGRpcmVjdGlvbiwgc2NvcGUsIGN1cnJlbnROb2RlLCBldmVudCk7Cisg
ICAgQVNTRVJUKHNjb3BlKTsKKyAgICBpZiAoc2NvcGUtPnJvb3ROb2RlKCktPmlzU2hhZG93Um9v
dCgpKQorICAgICAgICByZXR1cm4gc2NvcGUtPnJvb3ROb2RlKCktPnNoYWRvd0hvc3QoKTsKKyAg
ICBpZiAoc2NvcGUtPnJvb3ROb2RlKCktPmRvY3VtZW50KCktPmZyYW1lKCkpCisgICAgICAgIHJl
dHVybiBzY29wZS0+cm9vdE5vZGUoKS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKS0+b3duZXJFbGVtZW50
KCk7CisgICAgcmV0dXJuIDA7Cit9CiAKLSAgICAvLyBJZiB0aGVyZSdzIG5vIGZvY3VzYWJsZSBu
b2RlIHRvIGFkdmFuY2UgdG8sIG1vdmUgdXAgdGhlIGZvY3VzIHNjb3BlcyB1bnRpbCB3ZSBmaW5k
IG9uZS4KLSAgICB3aGlsZSAoIWZvdW5kKSB7Ci0gICAgICAgIE5vZGUqIG93bmVyID0gc2NvcGUu
b3duZXIoKTsKK05vZGUqIEZvY3VzQ29udHJvbGxlcjo6ZmluZEZvY3VzYWJsZU5vZGVBY3Jvc3NU
cmVlU2NvcGUoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBUcmVlU2NvcGUqIHNjb3BlLCBOb2Rl
KiBjdXJyZW50Tm9kZSwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgTm9kZSogbm9kZSA9
IGZpbmRGb2N1c2FibGVOb2RlKGRpcmVjdGlvbiwgc2NvcGUsIGN1cnJlbnROb2RlLCBldmVudCk7
CisgICAgLy8gSWYgdGhlcmUncyBubyBmb2N1c2FibGUgbm9kZSB0byBhZHZhbmNlIHRvLCBtb3Zl
IHVwIHRoZSB0cmVlIHNjb3BlcyB1bnRpbCB3ZSBmaW5kIG9uZS4KKyAgICB3aGlsZSAoIW5vZGUg
JiYgc2NvcGUpIHsKKyAgICAgICAgTm9kZSogb3duZXIgPSBvd25lck9mVHJlZVNjb3BlKHNjb3Bl
KTsKICAgICAgICAgaWYgKCFvd25lcikKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBzY29w
ZSA9IEZvY3VzU2NvcGU6OmZvY3VzU2NvcGVPZihvd25lcik7Ci0gICAgICAgIGlmIChkaXJlY3Rp
b24gPT0gRm9jdXNEaXJlY3Rpb25CYWNrd2FyZCAmJiBpc0ZvY3VzYWJsZVNoYWRvd0hvc3Qob3du
ZXIsIGV2ZW50KSkgewotICAgICAgICAgICAgZm91bmQgPSBvd25lcjsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9Ci0gICAgICAgIGZvdW5kID0gZmluZEZvY3VzYWJsZU5vZGVSZWN1cnNp
dmVseShkaXJlY3Rpb24sIHNjb3BlLCBvd25lciwgZXZlbnQpOworICAgICAgICBub2RlID0gZmlu
ZEZvY3VzYWJsZU5vZGUoZGlyZWN0aW9uLCBvd25lci0+dHJlZVNjb3BlKCksIG93bmVyLCBldmVu
dCk7CisgICAgICAgIHNjb3BlID0gb3duZXItPnRyZWVTY29wZSgpOwogICAgIH0KLSAgICBmb3Vu
ZCA9IGZpbmRGb2N1c2FibGVOb2RlRGVjZW5kaW5nRG93bkludG9GcmFtZURvY3VtZW50KGRpcmVj
dGlvbiwgZm91bmQsIGV2ZW50KTsKLSAgICByZXR1cm4gZm91bmQ7CisgICAgbm9kZSA9IGZpbmRG
b2N1c2FibGVOb2RlRGVjZW5kaW5nRG93bkludG9GcmFtZURvY3VtZW50T3JTaGFkb3dSb290KGRp
cmVjdGlvbiwgbm9kZSwgZXZlbnQpOworICAgIHJldHVybiBub2RlOwogfQogCi1Ob2RlKiBGb2N1
c0NvbnRyb2xsZXI6OmZpbmRGb2N1c2FibGVOb2RlUmVjdXJzaXZlbHkoRm9jdXNEaXJlY3Rpb24g
ZGlyZWN0aW9uLCBGb2N1c1Njb3BlIHNjb3BlLCBOb2RlKiBzdGFydCwgS2V5Ym9hcmRFdmVudCog
ZXZlbnQpCi17Ci0gICAgLy8gU3RhcnRpbmcgbm9kZSBpcyBleGNsdXNpdmUuCi0gICAgTm9kZSog
Zm91bmQgPSBmaW5kRm9jdXNhYmxlTm9kZShkaXJlY3Rpb24sIHNjb3BlLCBzdGFydCwgZXZlbnQp
OwotICAgIGlmICghZm91bmQpCi0gICAgICAgIHJldHVybiAwOwotICAgIGlmIChkaXJlY3Rpb24g
PT0gRm9jdXNEaXJlY3Rpb25Gb3J3YXJkKSB7Ci0gICAgICAgIGlmICghaXNOb25Gb2N1c2FibGVT
aGFkb3dIb3N0KGZvdW5kLCBldmVudCkpCi0gICAgICAgICAgICByZXR1cm4gZm91bmQ7Ci0gICAg
ICAgIE5vZGUqIGZvdW5kSW5Jbm5lckZvY3VzU2NvcGUgPSBmaW5kRm9jdXNhYmxlTm9kZVJlY3Vy
c2l2ZWx5KGRpcmVjdGlvbiwgRm9jdXNTY29wZTo6Zm9jdXNTY29wZU93bmVkQnlTaGFkb3dIb3N0
KGZvdW5kKSwgMCwgZXZlbnQpOwotICAgICAgICByZXR1cm4gZm91bmRJbklubmVyRm9jdXNTY29w
ZSA/IGZvdW5kSW5Jbm5lckZvY3VzU2NvcGUgOiBmaW5kRm9jdXNhYmxlTm9kZVJlY3Vyc2l2ZWx5
KGRpcmVjdGlvbiwgc2NvcGUsIGZvdW5kLCBldmVudCk7Ci0gICAgfQotICAgIEFTU0VSVChkaXJl
Y3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25CYWNrd2FyZCk7Ci0gICAgaWYgKGlzRm9jdXNhYmxlU2hh
ZG93SG9zdChmb3VuZCwgZXZlbnQpKSB7Ci0gICAgICAgIE5vZGUqIGZvdW5kSW5Jbm5lckZvY3Vz
U2NvcGUgPSBmaW5kRm9jdXNhYmxlTm9kZVJlY3Vyc2l2ZWx5KGRpcmVjdGlvbiwgRm9jdXNTY29w
ZTo6Zm9jdXNTY29wZU93bmVkQnlTaGFkb3dIb3N0KGZvdW5kKSwgMCwgZXZlbnQpOwotICAgICAg
ICByZXR1cm4gZm91bmRJbklubmVyRm9jdXNTY29wZSA/IGZvdW5kSW5Jbm5lckZvY3VzU2NvcGUg
OiBmb3VuZDsKLSAgICB9Ci0gICAgaWYgKGlzTm9uRm9jdXNhYmxlU2hhZG93SG9zdChmb3VuZCwg
ZXZlbnQpKSB7Ci0gICAgICAgIE5vZGUqIGZvdW5kSW5Jbm5lckZvY3VzU2NvcGUgPSBmaW5kRm9j
dXNhYmxlTm9kZVJlY3Vyc2l2ZWx5KGRpcmVjdGlvbiwgRm9jdXNTY29wZTo6Zm9jdXNTY29wZU93
bmVkQnlTaGFkb3dIb3N0KGZvdW5kKSwgMCwgZXZlbnQpOwotICAgICAgICByZXR1cm4gZm91bmRJ
bklubmVyRm9jdXNTY29wZSA/IGZvdW5kSW5Jbm5lckZvY3VzU2NvcGUgOmZpbmRGb2N1c2FibGVO
b2RlUmVjdXJzaXZlbHkoZGlyZWN0aW9uLCBzY29wZSwgZm91bmQsIGV2ZW50KTsKLSAgICB9Ci0g
ICAgcmV0dXJuIGZvdW5kOwotfQogCi1Ob2RlKiBGb2N1c0NvbnRyb2xsZXI6OmZpbmRGb2N1c2Fi
bGVOb2RlKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgRm9jdXNTY29wZSBzY29wZSwgTm9kZSog
bm9kZSwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCitOb2RlKiBGb2N1c0NvbnRyb2xsZXI6OmZpbmRG
b2N1c2FibGVOb2RlKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgVHJlZVNjb3BlKiBzY29wZSwg
Tm9kZSogbm9kZSwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CiAgICAgcmV0dXJuIChkaXJlY3Rp
b24gPT0gRm9jdXNEaXJlY3Rpb25Gb3J3YXJkKQogICAgICAgICA/IG5leHRGb2N1c2FibGVOb2Rl
KHNjb3BlLCBub2RlLCBldmVudCkKICAgICAgICAgOiBwcmV2aW91c0ZvY3VzYWJsZU5vZGUoc2Nv
cGUsIG5vZGUsIGV2ZW50KTsKIH0KIAotTm9kZSogRm9jdXNDb250cm9sbGVyOjpmaW5kTm9kZVdp
dGhFeGFjdFRhYkluZGV4KE5vZGUqIHN0YXJ0LCBpbnQgdGFiSW5kZXgsIEtleWJvYXJkRXZlbnQq
IGV2ZW50LCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCitzdGF0aWMgTm9kZSogbmV4dE5vZGVX
aXRoRXhhY3RUYWJJbmRleChOb2RlKiBzdGFydCwgaW50IHRhYkluZGV4LCBLZXlib2FyZEV2ZW50
KiBldmVudCkKIHsKICAgICAvLyBTZWFyY2ggaXMgaW5jbHVzaXZlIG9mIHN0YXJ0Ci0gICAgZm9y
IChOb2RlKiBub2RlID0gc3RhcnQ7IG5vZGU7IG5vZGUgPSAoZGlyZWN0aW9uID09IEZvY3VzRGly
ZWN0aW9uRm9yd2FyZCA/IFJlaWZpZWRUcmVlVHJhdmVyc2FsOjp0cmF2ZXJzZU5leHROb2RlV2l0
aG91dENyb3NzaW5nVXBwZXJCb3VuZGFyeShub2RlKTogUmVpZmllZFRyZWVUcmF2ZXJzYWw6OnRy
YXZlcnNlUHJldmlvdXNOb2RlV2l0aG91dENyb3NzaW5nVXBwZXJCb3VuZGFyeShub2RlKSkpIHsK
LSAgICAgICAgaWYgKHNob3VsZFZpc2l0KG5vZGUsIGV2ZW50KSAmJiBhZGp1c3RlZFRhYkluZGV4
KG5vZGUsIGV2ZW50KSA9PSB0YWJJbmRleCkKKyAgICBmb3IgKE5vZGUqIG5vZGUgPSBzdGFydDsg
bm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUoKSkKKyAgICAgICAgaWYgKG5vZGUt
PmlzS2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpICYmIG5vZGUtPnRhYkluZGV4KCkgPT0gdGFiSW5k
ZXgpCiAgICAgICAgICAgICByZXR1cm4gbm9kZTsKLSAgICB9CisKKyAgICByZXR1cm4gMDsKK30K
Kworc3RhdGljIE5vZGUqIHByZXZpb3VzTm9kZVdpdGhFeGFjdFRhYkluZGV4KE5vZGUqIHN0YXJ0
LCBpbnQgdGFiSW5kZXgsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIC8vIFNlYXJjaCBp
cyBpbmNsdXNpdmUgb2Ygc3RhcnQKKyAgICBmb3IgKE5vZGUqIG4gPSBzdGFydDsgbjsgbiA9IG4t
PnRyYXZlcnNlUHJldmlvdXNOb2RlKCkpCisgICAgICAgIGlmIChuLT5pc0tleWJvYXJkRm9jdXNh
YmxlKGV2ZW50KSAmJiBuLT50YWJJbmRleCgpID09IHRhYkluZGV4KQorICAgICAgICAgICAgcmV0
dXJuIG47CisKICAgICByZXR1cm4gMDsKIH0KIApAQCAtNDMyLDggKzM3Niw4IEBAIHN0YXRpYyBO
b2RlKiBuZXh0Tm9kZVdpdGhHcmVhdGVyVGFiSW5kZXgoTm9kZSogc3RhcnQsIGludCB0YWJJbmRl
eCwgS2V5Ym9hcmRFdmVuCiAgICAgLy8gU2VhcmNoIGlzIGluY2x1c2l2ZSBvZiBzdGFydAogICAg
IGludCB3aW5uaW5nVGFiSW5kZXggPSBzdGQ6Om51bWVyaWNfbGltaXRzPHNob3J0Pjo6bWF4KCkg
KyAxOwogICAgIE5vZGUqIHdpbm5lciA9IDA7Ci0gICAgZm9yIChOb2RlKiBuID0gc3RhcnQ7IG47
IG4gPSBSZWlmaWVkVHJlZVRyYXZlcnNhbDo6dHJhdmVyc2VOZXh0Tm9kZVdpdGhvdXRDcm9zc2lu
Z1VwcGVyQm91bmRhcnkobikpCi0gICAgICAgIGlmIChzaG91bGRWaXNpdChuLCBldmVudCkgJiYg
bi0+dGFiSW5kZXgoKSA+IHRhYkluZGV4ICYmIG4tPnRhYkluZGV4KCkgPCB3aW5uaW5nVGFiSW5k
ZXgpIHsKKyAgICBmb3IgKE5vZGUqIG4gPSBzdGFydDsgbjsgbiA9IG4tPnRyYXZlcnNlTmV4dE5v
ZGUoKSkKKyAgICAgICAgaWYgKG4tPmlzS2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpICYmIG4tPnRh
YkluZGV4KCkgPiB0YWJJbmRleCAmJiBuLT50YWJJbmRleCgpIDwgd2lubmluZ1RhYkluZGV4KSB7
CiAgICAgICAgICAgICB3aW5uZXIgPSBuOwogICAgICAgICAgICAgd2lubmluZ1RhYkluZGV4ID0g
bi0+dGFiSW5kZXgoKTsKICAgICAgICAgfQpAQCAtNDQ2LDMzICszOTAsMzAgQEAgc3RhdGljIE5v
ZGUqIHByZXZpb3VzTm9kZVdpdGhMb3dlclRhYkluZGV4KE5vZGUqIHN0YXJ0LCBpbnQgdGFiSW5k
ZXgsIEtleWJvYXJkRXYKICAgICAvLyBTZWFyY2ggaXMgaW5jbHVzaXZlIG9mIHN0YXJ0CiAgICAg
aW50IHdpbm5pbmdUYWJJbmRleCA9IDA7CiAgICAgTm9kZSogd2lubmVyID0gMDsKLSAgICBmb3Ig
KE5vZGUqIG4gPSBzdGFydDsgbjsgbiA9IFJlaWZpZWRUcmVlVHJhdmVyc2FsOjp0cmF2ZXJzZVBy
ZXZpb3VzTm9kZVdpdGhvdXRDcm9zc2luZ1VwcGVyQm91bmRhcnkobikpIHsKLSAgICAgICAgaW50
IGN1cnJlbnRUYWJJbmRleCA9IGFkanVzdGVkVGFiSW5kZXgobiwgZXZlbnQpOwotICAgICAgICBp
ZiAoKHNob3VsZFZpc2l0KG4sIGV2ZW50KSB8fCBpc05vbkZvY3VzYWJsZVNoYWRvd0hvc3Qobiwg
ZXZlbnQpKSAmJiBjdXJyZW50VGFiSW5kZXggPCB0YWJJbmRleCAmJiBjdXJyZW50VGFiSW5kZXgg
PiB3aW5uaW5nVGFiSW5kZXgpIHsKKyAgICBmb3IgKE5vZGUqIG4gPSBzdGFydDsgbjsgbiA9IG4t
PnRyYXZlcnNlUHJldmlvdXNOb2RlKCkpCisgICAgICAgIGlmIChuLT5pc0tleWJvYXJkRm9jdXNh
YmxlKGV2ZW50KSAmJiBuLT50YWJJbmRleCgpIDwgdGFiSW5kZXggJiYgbi0+dGFiSW5kZXgoKSA+
IHdpbm5pbmdUYWJJbmRleCkgewogICAgICAgICAgICAgd2lubmVyID0gbjsKLSAgICAgICAgICAg
IHdpbm5pbmdUYWJJbmRleCA9IGN1cnJlbnRUYWJJbmRleDsKKyAgICAgICAgICAgIHdpbm5pbmdU
YWJJbmRleCA9IG4tPnRhYkluZGV4KCk7CiAgICAgICAgIH0KLSAgICB9CisKICAgICByZXR1cm4g
d2lubmVyOwogfQogCi1Ob2RlKiBGb2N1c0NvbnRyb2xsZXI6Om5leHRGb2N1c2FibGVOb2RlKEZv
Y3VzU2NvcGUgc2NvcGUsIE5vZGUqIHN0YXJ0LCBLZXlib2FyZEV2ZW50KiBldmVudCkKK05vZGUq
IEZvY3VzQ29udHJvbGxlcjo6bmV4dEZvY3VzYWJsZU5vZGUoVHJlZVNjb3BlKiBzY29wZSwgTm9k
ZSogc3RhcnQsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewogICAgIGlmIChzdGFydCkgewotICAg
ICAgICBpbnQgdGFiSW5kZXggPSBhZGp1c3RlZFRhYkluZGV4KHN0YXJ0LCBldmVudCk7CiAgICAg
ICAgIC8vIElmIGEgbm9kZSBpcyBleGNsdWRlZCBmcm9tIHRoZSBub3JtYWwgdGFiYmluZyBjeWNs
ZSwgdGhlIG5leHQgZm9jdXNhYmxlIG5vZGUgaXMgZGV0ZXJtaW5lZCBieSB0cmVlIG9yZGVyCi0g
ICAgICAgIGlmICh0YWJJbmRleCA8IDApIHsKLSAgICAgICAgICAgIGZvciAoTm9kZSogbiA9IFJl
aWZpZWRUcmVlVHJhdmVyc2FsOjp0cmF2ZXJzZU5leHROb2RlV2l0aG91dENyb3NzaW5nVXBwZXJC
b3VuZGFyeShzdGFydCk7IG47IG4gPSBSZWlmaWVkVHJlZVRyYXZlcnNhbDo6dHJhdmVyc2VOZXh0
Tm9kZVdpdGhvdXRDcm9zc2luZ1VwcGVyQm91bmRhcnkobikpIHsKLSAgICAgICAgICAgICAgICBp
ZiAoc2hvdWxkVmlzaXQobiwgZXZlbnQpICYmIGFkanVzdGVkVGFiSW5kZXgobiwgZXZlbnQpID49
IDApCisgICAgICAgIGlmIChzdGFydC0+dGFiSW5kZXgoKSA8IDApIHsKKyAgICAgICAgICAgIGZv
ciAoTm9kZSogbiA9IHN0YXJ0LT50cmF2ZXJzZU5leHROb2RlKCk7IG47IG4gPSBuLT50cmF2ZXJz
ZU5leHROb2RlKCkpCisgICAgICAgICAgICAgICAgaWYgKG4tPmlzS2V5Ym9hcmRGb2N1c2FibGUo
ZXZlbnQpICYmIG4tPnRhYkluZGV4KCkgPj0gMCkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IG47Ci0gICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICAvLyBGaXJzdCB0cnkgdG8g
ZmluZCBhIG5vZGUgd2l0aCB0aGUgc2FtZSB0YWJpbmRleCBhcyBzdGFydCB0aGF0IGNvbWVzIGFm
dGVyIHN0YXJ0IGluIHRoZSBzY29wZS4KLSAgICAgICAgaWYgKE5vZGUqIHdpbm5lciA9IGZpbmRO
b2RlV2l0aEV4YWN0VGFiSW5kZXgoUmVpZmllZFRyZWVUcmF2ZXJzYWw6OnRyYXZlcnNlTmV4dE5v
ZGVXaXRob3V0Q3Jvc3NpbmdVcHBlckJvdW5kYXJ5KHN0YXJ0KSwgdGFiSW5kZXgsIGV2ZW50LCBG
b2N1c0RpcmVjdGlvbkZvcndhcmQpKQorICAgICAgICBpZiAoTm9kZSogd2lubmVyID0gbmV4dE5v
ZGVXaXRoRXhhY3RUYWJJbmRleChzdGFydC0+dHJhdmVyc2VOZXh0Tm9kZSgpLCBzdGFydC0+dGFi
SW5kZXgoKSwgZXZlbnQpKQogICAgICAgICAgICAgcmV0dXJuIHdpbm5lcjsKIAotICAgICAgICBp
ZiAoIXRhYkluZGV4KQorICAgICAgICBpZiAoIXN0YXJ0LT50YWJJbmRleCgpKQogICAgICAgICAg
ICAgLy8gV2UndmUgcmVhY2hlZCB0aGUgbGFzdCBub2RlIGluIHRoZSBkb2N1bWVudCB3aXRoIGEg
dGFiaW5kZXggb2YgMC4gVGhpcyBpcyB0aGUgZW5kIG9mIHRoZSB0YWJiaW5nIG9yZGVyLgogICAg
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtNDgwLDI2ICs0MjEsMjYgQEAgTm9kZSogRm9j
dXNDb250cm9sbGVyOjpuZXh0Rm9jdXNhYmxlTm9kZShGb2N1c1Njb3BlIHNjb3BlLCBOb2RlKiBz
dGFydCwgS2V5Ym9hcmQKICAgICAvLyBMb29rIGZvciB0aGUgZmlyc3Qgbm9kZSBpbiB0aGUgc2Nv
cGUgdGhhdDoKICAgICAvLyAxKSBoYXMgdGhlIGxvd2VzdCB0YWJpbmRleCB0aGF0IGlzIGhpZ2hl
ciB0aGFuIHN0YXJ0J3MgdGFiaW5kZXggKG9yIDAsIGlmIHN0YXJ0IGlzIG51bGwpLCBhbmQKICAg
ICAvLyAyKSBjb21lcyBmaXJzdCBpbiB0aGUgc2NvcGUsIGlmIHRoZXJlJ3MgYSB0aWUuCi0gICAg
aWYgKE5vZGUqIHdpbm5lciA9IG5leHROb2RlV2l0aEdyZWF0ZXJUYWJJbmRleChzY29wZS5yb290
Tm9kZSgpLCBzdGFydCA/IGFkanVzdGVkVGFiSW5kZXgoc3RhcnQsIGV2ZW50KSA6IDAsIGV2ZW50
KSkKKyAgICBpZiAoTm9kZSogd2lubmVyID0gbmV4dE5vZGVXaXRoR3JlYXRlclRhYkluZGV4KHNj
b3BlLT5yb290Tm9kZSgpLCBzdGFydCA/IHN0YXJ0LT50YWJJbmRleCgpIDogMCwgZXZlbnQpKQog
ICAgICAgICByZXR1cm4gd2lubmVyOwogCiAgICAgLy8gVGhlcmUgYXJlIG5vIG5vZGVzIHdpdGgg
YSB0YWJpbmRleCBncmVhdGVyIHRoYW4gc3RhcnQncyB0YWJpbmRleCwKICAgICAvLyBzbyBmaW5k
IHRoZSBmaXJzdCBub2RlIHdpdGggYSB0YWJpbmRleCBvZiAwLgotICAgIHJldHVybiBmaW5kTm9k
ZVdpdGhFeGFjdFRhYkluZGV4KHNjb3BlLnJvb3ROb2RlKCksIDAsIGV2ZW50LCBGb2N1c0RpcmVj
dGlvbkZvcndhcmQpOworICAgIHJldHVybiBuZXh0Tm9kZVdpdGhFeGFjdFRhYkluZGV4KHNjb3Bl
LT5yb290Tm9kZSgpLCAwLCBldmVudCk7CiB9CiAKLU5vZGUqIEZvY3VzQ29udHJvbGxlcjo6cHJl
dmlvdXNGb2N1c2FibGVOb2RlKEZvY3VzU2NvcGUgc2NvcGUsIE5vZGUqIHN0YXJ0LCBLZXlib2Fy
ZEV2ZW50KiBldmVudCkKK05vZGUqIEZvY3VzQ29udHJvbGxlcjo6cHJldmlvdXNGb2N1c2FibGVO
b2RlKFRyZWVTY29wZSogc2NvcGUsIE5vZGUqIHN0YXJ0LCBLZXlib2FyZEV2ZW50KiBldmVudCkK
IHsKICAgICBOb2RlKiBsYXN0OwotICAgIGZvciAobGFzdCA9IHNjb3BlLnJvb3ROb2RlKCk7IFJl
aWZpZWRUcmVlVHJhdmVyc2FsOjpsYXN0Q2hpbGRXaXRob3V0Q3Jvc3NpbmdVcHBlckJvdW5kYXJ5
KGxhc3QpOyBsYXN0ID0gUmVpZmllZFRyZWVUcmF2ZXJzYWw6Omxhc3RDaGlsZFdpdGhvdXRDcm9z
c2luZ1VwcGVyQm91bmRhcnkobGFzdCkpIHsgfQorICAgIGZvciAobGFzdCA9IHNjb3BlLT5yb290
Tm9kZSgpOyBsYXN0LT5sYXN0Q2hpbGQoKTsgbGFzdCA9IGxhc3QtPmxhc3RDaGlsZCgpKSB7IH0K
IAogICAgIC8vIEZpcnN0IHRyeSB0byBmaW5kIHRoZSBsYXN0IG5vZGUgaW4gdGhlIHNjb3BlIHRo
YXQgY29tZXMgYmVmb3JlIHN0YXJ0IGFuZCBoYXMgdGhlIHNhbWUgdGFiaW5kZXggYXMgc3RhcnQu
CiAgICAgLy8gSWYgc3RhcnQgaXMgbnVsbCwgZmluZCB0aGUgbGFzdCBub2RlIGluIHRoZSBzY29w
ZSB3aXRoIGEgdGFiaW5kZXggb2YgMC4KICAgICBOb2RlKiBzdGFydGluZ05vZGU7CiAgICAgaW50
IHN0YXJ0aW5nVGFiSW5kZXg7CiAgICAgaWYgKHN0YXJ0KSB7Ci0gICAgICAgIHN0YXJ0aW5nTm9k
ZSA9IFJlaWZpZWRUcmVlVHJhdmVyc2FsOjp0cmF2ZXJzZVByZXZpb3VzTm9kZVdpdGhvdXRDcm9z
c2luZ1VwcGVyQm91bmRhcnkoc3RhcnQpOwotICAgICAgICBzdGFydGluZ1RhYkluZGV4ID0gYWRq
dXN0ZWRUYWJJbmRleChzdGFydCwgZXZlbnQpOworICAgICAgICBzdGFydGluZ05vZGUgPSBzdGFy
dC0+dHJhdmVyc2VQcmV2aW91c05vZGUoKTsKKyAgICAgICAgc3RhcnRpbmdUYWJJbmRleCA9IHN0
YXJ0LT50YWJJbmRleCgpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHN0YXJ0aW5nTm9kZSA9IGxh
c3Q7CiAgICAgICAgIHN0YXJ0aW5nVGFiSW5kZXggPSAwOwpAQCAtNTA3LDE5ICs0NDgsMTggQEAg
Tm9kZSogRm9jdXNDb250cm9sbGVyOjpwcmV2aW91c0ZvY3VzYWJsZU5vZGUoRm9jdXNTY29wZSBz
Y29wZSwgTm9kZSogc3RhcnQsIEtleWIKIAogICAgIC8vIEhvd2V2ZXIsIGlmIGEgbm9kZSBpcyBl
eGNsdWRlZCBmcm9tIHRoZSBub3JtYWwgdGFiYmluZyBjeWNsZSwgdGhlIHByZXZpb3VzIGZvY3Vz
YWJsZSBub2RlIGlzIGRldGVybWluZWQgYnkgdHJlZSBvcmRlcgogICAgIGlmIChzdGFydGluZ1Rh
YkluZGV4IDwgMCkgewotICAgICAgICBmb3IgKE5vZGUqIG4gPSBzdGFydGluZ05vZGU7IG47IG4g
PSBSZWlmaWVkVHJlZVRyYXZlcnNhbDo6dHJhdmVyc2VQcmV2aW91c05vZGVXaXRob3V0Q3Jvc3Np
bmdVcHBlckJvdW5kYXJ5KG4pKSB7Ci0gICAgICAgICAgICBpZiAoc2hvdWxkVmlzaXQobiwgZXZl
bnQpICYmIGFkanVzdGVkVGFiSW5kZXgobiwgZXZlbnQpID49IDApCisgICAgICAgIGZvciAoTm9k
ZSogbiA9IHN0YXJ0aW5nTm9kZTsgbjsgbiA9IG4tPnRyYXZlcnNlUHJldmlvdXNOb2RlKCkpCisg
ICAgICAgICAgICBpZiAobi0+aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCkgJiYgbi0+dGFiSW5k
ZXgoKSA+PSAwKQogICAgICAgICAgICAgICAgIHJldHVybiBuOwotICAgICAgICB9CiAgICAgfQog
Ci0gICAgaWYgKE5vZGUqIHdpbm5lciA9IGZpbmROb2RlV2l0aEV4YWN0VGFiSW5kZXgoc3RhcnRp
bmdOb2RlLCBzdGFydGluZ1RhYkluZGV4LCBldmVudCwgRm9jdXNEaXJlY3Rpb25CYWNrd2FyZCkp
CisgICAgaWYgKE5vZGUqIHdpbm5lciA9IHByZXZpb3VzTm9kZVdpdGhFeGFjdFRhYkluZGV4KHN0
YXJ0aW5nTm9kZSwgc3RhcnRpbmdUYWJJbmRleCwgZXZlbnQpKQogICAgICAgICByZXR1cm4gd2lu
bmVyOwogCiAgICAgLy8gVGhlcmUgYXJlIG5vIG5vZGVzIGJlZm9yZSBzdGFydCB3aXRoIHRoZSBz
YW1lIHRhYmluZGV4IGFzIHN0YXJ0LCBzbyBsb29rIGZvciBhIG5vZGUgdGhhdDoKICAgICAvLyAx
KSBoYXMgdGhlIGhpZ2hlc3Qgbm9uLXplcm8gdGFiaW5kZXggKHRoYXQgaXMgbGVzcyB0aGFuIHN0
YXJ0J3MgdGFiaW5kZXgpLCBhbmQKICAgICAvLyAyKSBjb21lcyBsYXN0IGluIHRoZSBzY29wZSwg
aWYgdGhlcmUncyBhIHRpZS4KLSAgICBzdGFydGluZ1RhYkluZGV4ID0gKHN0YXJ0ICYmIHN0YXJ0
aW5nVGFiSW5kZXgpID8gc3RhcnRpbmdUYWJJbmRleCA6IHN0ZDo6bnVtZXJpY19saW1pdHM8c2hv
cnQ+OjptYXgoKTsKKyAgICBzdGFydGluZ1RhYkluZGV4ID0gKHN0YXJ0ICYmIHN0YXJ0LT50YWJJ
bmRleCgpKSA/IHN0YXJ0LT50YWJJbmRleCgpIDogc3RkOjpudW1lcmljX2xpbWl0czxzaG9ydD46
Om1heCgpOwogICAgIHJldHVybiBwcmV2aW91c05vZGVXaXRoTG93ZXJUYWJJbmRleChsYXN0LCBz
dGFydGluZ1RhYkluZGV4LCBldmVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRm9jdXNDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5oCmluZGV4IDg5MDg5ZTcxMDdiNjVmY2YzOWQ0ZGQyZmI5MDAxYzA1MGVkMDlkNTUuLjNi
NTYzNzdiZDQzMTNjNjU5YzVhZDY1ZjEwYjg0ZmRlNmNmZTVlMzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9Gb2N1c0NvbnRyb2xsZXIuaApAQCAtMzUsMjkgKzM1LDE0IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHN0cnVjdCBGb2N1c0NhbmRpZGF0ZTsKLWNsYXNzIERvY3VtZW50OwogY2xhc3MgRWxl
bWVudDsKIGNsYXNzIEZyYW1lOwotY2xhc3MgSFRNTEZyYW1lT3duZXJFbGVtZW50OwogY2xhc3Mg
SW50UmVjdDsKIGNsYXNzIEtleWJvYXJkRXZlbnQ7CiBjbGFzcyBOb2RlOwogY2xhc3MgUGFnZTsK
IGNsYXNzIFRyZWVTY29wZTsKIAotY2xhc3MgRm9jdXNTY29wZSB7Ci1wdWJsaWM6Ci0gICAgTm9k
ZSogcm9vdE5vZGUoKSBjb25zdDsKLSAgICBFbGVtZW50KiBvd25lcigpIGNvbnN0OwotICAgIHN0
YXRpYyBGb2N1c1Njb3BlIGZvY3VzU2NvcGVPZihOb2RlKik7Ci0gICAgc3RhdGljIEZvY3VzU2Nv
cGUgZm9jdXNTY29wZU93bmVkQnlTaGFkb3dIb3N0KE5vZGUqKTsKLSAgICBzdGF0aWMgRm9jdXNT
Y29wZSBmb2N1c1Njb3BlT3duZWRCeUlGcmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQqKTsKLQot
cHJpdmF0ZToKLSAgICBleHBsaWNpdCBGb2N1c1Njb3BlKFRyZWVTY29wZSopOwotICAgIFRyZWVT
Y29wZSogbV9yb290VHJlZVNjb3BlOwotfTsKLQogY2xhc3MgRm9jdXNDb250cm9sbGVyIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShGb2N1c0NvbnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKQEAgLTgxLDE1ICs2NiwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRDb250YWluaW5nV2luZG93SXNWaXNpYmxlKGJvb2wpOwogICAgIGJvb2wgY29udGFpbmluZ1dp
bmRvd0lzVmlzaWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGFpbmluZ1dpbmRvd0lzVmlzaWJs
ZTsgfQogCisgICAgYm9vbCB0cmFuc2ZlckZvY3VzVG9FbGVtZW50SW5TaGFkb3dSb290KEVsZW1l
bnQqIHNoYWRvd0hvc3QsIGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKTsKKwogcHJpdmF0
ZToKICAgICBGb2N1c0NvbnRyb2xsZXIoUGFnZSopOwogCiAgICAgYm9vbCBhZHZhbmNlRm9jdXNE
aXJlY3Rpb25hbGx5KEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50Kik7CiAgICAgYm9vbCBh
ZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIoRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQq
LCBib29sIGluaXRpYWxGb2N1cyk7CiAKLSAgICBOb2RlKiBmaW5kRm9jdXNhYmxlTm9kZUFjcm9z
c0ZvY3VzU2NvcGUoRm9jdXNEaXJlY3Rpb24sIEZvY3VzU2NvcGUgc3RhcnRTY29wZSwgTm9kZSog
c3RhcnQsIEtleWJvYXJkRXZlbnQqKTsKLSAgICBOb2RlKiBmaW5kRm9jdXNhYmxlTm9kZVJlY3Vy
c2l2ZWx5KEZvY3VzRGlyZWN0aW9uLCBGb2N1c1Njb3BlLCBOb2RlKiBzdGFydCwgS2V5Ym9hcmRF
dmVudCopOwotICAgIE5vZGUqIGZpbmRGb2N1c2FibGVOb2RlRGVjZW5kaW5nRG93bkludG9GcmFt
ZURvY3VtZW50KEZvY3VzRGlyZWN0aW9uLCBOb2RlKiwgS2V5Ym9hcmRFdmVudCopOworICAgIE5v
ZGUqIGZpbmRGb2N1c2FibGVOb2RlQWNyb3NzVHJlZVNjb3BlKEZvY3VzRGlyZWN0aW9uLCBUcmVl
U2NvcGUqIHN0YXJ0U2NvcGUsIE5vZGUqIHN0YXJ0LCBLZXlib2FyZEV2ZW50Kik7CisgICAgTm9k
ZSogZmluZEZvY3VzYWJsZU5vZGVEZWNlbmRpbmdEb3duSW50b0ZyYW1lRG9jdW1lbnRPclNoYWRv
d1Jvb3QoRm9jdXNEaXJlY3Rpb24sIE5vZGUqLCBLZXlib2FyZEV2ZW50Kik7CiAKICAgICAvLyBT
ZWFyY2hlcyB0aHJvdWdoIHRoZSBnaXZlbiB0cmVlIHNjb3BlLCBzdGFydGluZyBmcm9tIHN0YXJ0
IG5vZGUsIGZvciB0aGUgbmV4dC9wcmV2aW91cyBzZWxlY3RhYmxlIGVsZW1lbnQgdGhhdCBjb21l
cyBhZnRlci9iZWZvcmUgc3RhcnQgbm9kZS4KICAgICAvLyBUaGUgb3JkZXIgZm9sbG93ZWQgaXMg
YXMgc3BlY2lmaWVkIGluIHNlY3Rpb24gMTcuMTEuMSBvZiB0aGUgSFRNTDQgc3BlYywgd2hpY2gg
aXMgZWxlbWVudHMgd2l0aCB0YWIgaW5kZXhlcwpAQCAtMTAwLDEyICs4NiwxMCBAQCBwcml2YXRl
OgogICAgIC8vIEByZXR1cm4gVGhlIGZvY3VzIG5vZGUgdGhhdCBjb21lcyBhZnRlci9iZWZvcmUg
c3RhcnQgbm9kZS4KICAgICAvLwogICAgIC8vIFNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1s
NC9pbnRlcmFjdC9mb3Jtcy5odG1sI2gtMTcuMTEuMQotICAgIGlubGluZSBOb2RlKiBmaW5kRm9j
dXNhYmxlTm9kZShGb2N1c0RpcmVjdGlvbiwgRm9jdXNTY29wZSwgTm9kZSogc3RhcnQsIEtleWJv
YXJkRXZlbnQqKTsKLQotICAgIE5vZGUqIG5leHRGb2N1c2FibGVOb2RlKEZvY3VzU2NvcGUsIE5v
ZGUqIHN0YXJ0LCBLZXlib2FyZEV2ZW50Kik7Ci0gICAgTm9kZSogcHJldmlvdXNGb2N1c2FibGVO
b2RlKEZvY3VzU2NvcGUsIE5vZGUqIHN0YXJ0LCBLZXlib2FyZEV2ZW50Kik7CisgICAgaW5saW5l
IE5vZGUqIGZpbmRGb2N1c2FibGVOb2RlKEZvY3VzRGlyZWN0aW9uLCBUcmVlU2NvcGUqLCBOb2Rl
KiBzdGFydCwgS2V5Ym9hcmRFdmVudCopOwogCi0gICAgTm9kZSogZmluZE5vZGVXaXRoRXhhY3RU
YWJJbmRleChOb2RlKiBzdGFydCwgaW50IHRhYkluZGV4LCBLZXlib2FyZEV2ZW50KiwgRm9jdXNE
aXJlY3Rpb24pOworICAgIE5vZGUqIG5leHRGb2N1c2FibGVOb2RlKFRyZWVTY29wZSosIE5vZGUq
IHN0YXJ0LCBLZXlib2FyZEV2ZW50Kik7CisgICAgTm9kZSogcHJldmlvdXNGb2N1c2FibGVOb2Rl
KFRyZWVTY29wZSosIE5vZGUqIHN0YXJ0LCBLZXlib2FyZEV2ZW50Kik7CiAKICAgICBib29sIGFk
dmFuY2VGb2N1c0RpcmVjdGlvbmFsbHlJbkNvbnRhaW5lcihOb2RlKiBjb250YWluZXIsIGNvbnN0
IExheW91dFJlY3QmIHN0YXJ0aW5nUmVjdCwgRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQq
KTsKICAgICB2b2lkIGZpbmRGb2N1c0NhbmRpZGF0ZUluQ29udGFpbmVyKE5vZGUqIGNvbnRhaW5l
ciwgY29uc3QgTGF5b3V0UmVjdCYgc3RhcnRpbmdSZWN0LCBGb2N1c0RpcmVjdGlvbiwgS2V5Ym9h
cmRFdmVudCosIEZvY3VzQ2FuZGlkYXRlJiBjbG9zZXN0KTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyZDEyMTFiYzNhZTIy
MmVlMzZmZmM4NGNkNWYxMmZkNjY4MjhiNTViLi41NjE0Yjg0Zjg3ODk4OTM1N2Q5NTliNWJkODQ5
MDkyYzJmNWE3NDFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMDMtMjkgIFNoZXJpZmYg
Qm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIxMTI1MDAuCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hh
bmdlc2V0LzExMjUwMAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODI1NzYKKworICAgICAgICBhc3NlcnRpb24gZmFpbGVkIG9uIGZhc3QvZXZlbnRzL3Rh
Yi10ZXN0LW5vdC12aXNpYmxlLQorICAgICAgICBpbWFnZW1hcC5odG1sIG9uIGd0ay9xdCAoUmVx
dWVzdGVkIGJ5IGhheWF0byBvbiAjd2Via2l0KS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRv
dy9mb2N1cy1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9zaGFkb3cvZm9jdXMtbmF2aWdhdGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZh
c3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvc2hhZG93LWRvbS5qczoKKyAgICAgICAgKGdldE5vZGVJ
blNoYWRvd1RyZWVTdGFjayk6CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ob3N0
LXRyYW5zZmVyLWZvY3VzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1ob3N0LXRyYW5zZmVyLWZvY3VzLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL3NoYWRvdy90YWItb3JkZXItaWZyYW1lLWFuZC1zaGFkb3ctZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy90YWItb3JkZXItaWZyYW1lLWFuZC1zaGFkb3cu
aHRtbDoKKwogMjAxMi0wMy0yOCAgSGF5YXRvIEl0byAgPGhheWF0b0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgTWFrZSBmb2N1cyBuYXZpZ2F0aW9uIGJlIGNvbXBsaWFudCB3aXRoIFNoYWRvdyBE
T00gc3BlYy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9mb2N1cy1u
YXZpZ2F0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9mb2N1
cy1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDE5NThkZTM2ZTk1MDk0ZWNiMzBmMDFiM2ZhNGNmMjhiNmRhNGMwZC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvZm9jdXMtbmF2aWdhdGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMDYg
KzAsMCBAQAotVGhpcyB0ZXN0cyB0aGF0IHByZXNzaW5nIFRhYiBrZXkgc2hvdWxkIHRyYXZlcnNl
IGludG8gc2hhZG93IERPTSBzdWJ0cmVlcywgYW5kIHByZXNzaW5nIFNoaWZ0LVRhYiBzaG91bGQg
cmV2ZXJzZSB0aGUgb3JkZXIuCi0KLVNob3VsZCBtb3ZlIGZyb20gaW5wdXQtQS0xIHRvIGlucHV0
LUItMSBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LUItMSB0byBpbnB1
dC1DLTEgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBpbnB1dC1DLTEgdG8gaG9z
dC1CIGluIGZvcndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaG9zdC1CIHRvIGhvc3QtQi8v
eW91bmdlci1pbnB1dC1BLTEgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0
LUIvL3lvdW5nZXItaW5wdXQtQS0xIHRvIGhvc3QtQi9vbGRlci1pbnB1dC1BLTEgaW4gZm9yd2Fy
ZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LUIvb2xkZXItaW5wdXQtQS0xIHRvIGxpZ2h0
LWNoaWxkLXNlbGVjdGVkLTEgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBsaWdo
dC1jaGlsZC1zZWxlY3RlZC0xIHRvIGhvc3QtQi9vbGRlci1pbnB1dC1CLTEgaW4gZm9yd2FyZAot
UEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LUIvb2xkZXItaW5wdXQtQi0xIHRvIGhvc3QtQi8v
eW91bmdlci1pbnB1dC1CLTEgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0
LUIvL3lvdW5nZXItaW5wdXQtQi0xIHRvIGhvc3QtQi8veW91bmdlci1pbnB1dC1BLTAgaW4gZm9y
d2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LUIvL3lvdW5nZXItaW5wdXQtQS0wIHRv
IGhvc3QtQi9vbGRlci1pbnB1dC1BLTAgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJv
bSBob3N0LUIvb2xkZXItaW5wdXQtQS0wIHRvIGxpZ2h0LWNoaWxkLXNlbGVjdGVkLTAgaW4gZm9y
d2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBsaWdodC1jaGlsZC1zZWxlY3RlZC0wIHRvIGhv
c3QtQi9vbGRlci1pbnB1dC1CLTAgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBo
b3N0LUIvb2xkZXItaW5wdXQtQi0wIHRvIGhvc3QtQi8veW91bmdlci1pbnB1dC1CLTAgaW4gZm9y
d2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LUIvL3lvdW5nZXItaW5wdXQtQi0wIHRv
IGlucHV0LUQtMSBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LUQtMSB0
byBpbnB1dC1BLTAgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBpbnB1dC1BLTAg
dG8gaG9zdC1BL2lucHV0LTEgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0
LUEvaW5wdXQtMSB0byBob3N0LUEvaW5wdXQtMjAgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1v
dmUgZnJvbSBob3N0LUEvaW5wdXQtMjAgdG8gaG9zdC1BL25lc3RlZC1ob3N0IGluIGZvcndhcmQK
LVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaG9zdC1BL25lc3RlZC1ob3N0IHRvIGhvc3QtQS9uZXN0
ZWQtaG9zdC9pbnB1dC0xNSBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3Qt
QS9uZXN0ZWQtaG9zdC9pbnB1dC0xNSB0byBob3N0LUEvbmVzdGVkLWhvc3QvaW5wdXQtMjUgaW4g
Zm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LUEvbmVzdGVkLWhvc3QvaW5wdXQt
MjUgdG8gaW5wdXQtQi0wIGluIGZvcndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaW5wdXQt
Qi0wIHRvIGlucHV0LUMtMCBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0
LUMtMCB0byBpbnB1dC1ELTAgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBpbnB1
dC1ELTAgdG8gaW5wdXQtQS0xIGluIGZvcndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaW5w
dXQtQS0xIHRvIGlucHV0LUQtMCBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBp
bnB1dC1ELTAgdG8gaW5wdXQtQy0wIGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9t
IGlucHV0LUMtMCB0byBpbnB1dC1CLTAgaW4gYmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZy
b20gaW5wdXQtQi0wIHRvIGhvc3QtQS9uZXN0ZWQtaG9zdC9pbnB1dC0yNSBpbiBiYWNrd2FyZAot
UEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LUEvbmVzdGVkLWhvc3QvaW5wdXQtMjUgdG8gaG9z
dC1BL25lc3RlZC1ob3N0L2lucHV0LTE1IGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBm
cm9tIGhvc3QtQS9uZXN0ZWQtaG9zdC9pbnB1dC0xNSB0byBob3N0LUEvbmVzdGVkLWhvc3QgaW4g
YmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaG9zdC1BL25lc3RlZC1ob3N0IHRvIGhv
c3QtQS9pbnB1dC0yMCBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LUEv
aW5wdXQtMjAgdG8gaG9zdC1BL2lucHV0LTEgaW4gYmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3Zl
IGZyb20gaG9zdC1BL2lucHV0LTEgdG8gaW5wdXQtQS0wIGluIGJhY2t3YXJkCi1QQVNTCi1TaG91
bGQgbW92ZSBmcm9tIGlucHV0LUEtMCB0byBpbnB1dC1ELTEgaW4gYmFja3dhcmQKLVBBU1MKLVNo
b3VsZCBtb3ZlIGZyb20gaW5wdXQtRC0xIHRvIGhvc3QtQi8veW91bmdlci1pbnB1dC1CLTAgaW4g
YmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaG9zdC1CLy95b3VuZ2VyLWlucHV0LUIt
MCB0byBob3N0LUIvb2xkZXItaW5wdXQtQi0wIGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92
ZSBmcm9tIGhvc3QtQi9vbGRlci1pbnB1dC1CLTAgdG8gbGlnaHQtY2hpbGQtc2VsZWN0ZWQtMCBp
biBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBsaWdodC1jaGlsZC1zZWxlY3RlZC0w
IHRvIGhvc3QtQi9vbGRlci1pbnB1dC1BLTAgaW4gYmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3Zl
IGZyb20gaG9zdC1CL29sZGVyLWlucHV0LUEtMCB0byBob3N0LUIvL3lvdW5nZXItaW5wdXQtQS0w
IGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3QtQi8veW91bmdlci1pbnB1
dC1BLTAgdG8gaG9zdC1CLy95b3VuZ2VyLWlucHV0LUItMSBpbiBiYWNrd2FyZAotUEFTUwotU2hv
dWxkIG1vdmUgZnJvbSBob3N0LUIvL3lvdW5nZXItaW5wdXQtQi0xIHRvIGhvc3QtQi9vbGRlci1p
bnB1dC1CLTEgaW4gYmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaG9zdC1CL29sZGVy
LWlucHV0LUItMSB0byBsaWdodC1jaGlsZC1zZWxlY3RlZC0xIGluIGJhY2t3YXJkCi1QQVNTCi1T
aG91bGQgbW92ZSBmcm9tIGxpZ2h0LWNoaWxkLXNlbGVjdGVkLTEgdG8gaG9zdC1CL29sZGVyLWlu
cHV0LUEtMSBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LUIvb2xkZXIt
aW5wdXQtQS0xIHRvIGhvc3QtQi8veW91bmdlci1pbnB1dC1BLTEgaW4gYmFja3dhcmQKLVBBU1MK
LVNob3VsZCBtb3ZlIGZyb20gaG9zdC1CLy95b3VuZ2VyLWlucHV0LUEtMSB0byBob3N0LUIgaW4g
YmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaG9zdC1CIHRvIGlucHV0LUMtMSBpbiBi
YWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBpbnB1dC1DLTEgdG8gaW5wdXQtQi0xIGlu
IGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LUItMSB0byBpbnB1dC1BLTEg
aW4gYmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaW5wdXQtQS0xIHRvIGlucHV0LUQt
MCBpbiBiYWNrd2FyZAotUEFTUwotVGVzdCBmaW5pc2hlZC4KLQotCi0KLQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZm9jdXMtbmF2aWdhdGlvbi5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2ZvY3VzLW5hdmlnYXRpb24uaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggN2U3MDk1NzBkZWJlYzMyZDY5OGFhNjRmMWEyNmQyN2U2ZGZi
Zjg3Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZm9jdXMtbmF2aWdhdGlvbi5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMTc5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotPHA+VGhpcyB0ZXN0cyB0aGF0IHByZXNzaW5nIFRhYiBrZXkgc2hvdWxkIHRyYXZl
cnNlIGludG8gc2hhZG93IERPTSBzdWJ0cmVlcywgYW5kIHByZXNzaW5nIFNoaWZ0LVRhYiBzaG91
bGQgcmV2ZXJzZSB0aGUgb3JkZXIuPC9wPgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci08c2Ny
aXB0PgotCi1mdW5jdGlvbiBwcmVwYXJlRE9NVHJlZShwYXJlbnQpCi17Ci0gICAgcGFyZW50LmFw
cGVuZENoaWxkKAotICAgICAgICAvLyBGSVhNRTogVXNlIG1vcmUgZGVzY3JpcHRpdmUgaWRzIGZv
ciBlYWNoIGVsZW1lbnRzLgotICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAndG9wLWRp
did9LAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXQt
QS0xJywgJ3RhYmluZGV4JzogMX0pLAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1
dCcsIHsnaWQnOiAnaW5wdXQtQi0xJywgJ3RhYmluZGV4JzogMX0pLAotICAgICAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdkaXYnKSwgIC8vIFNob3VsZCBub3QgYmUgc2VsZWN0ZWQuCi0gICAgICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdpbnB1dC1BLTAnLCAndGFiaW5k
ZXgnOiAwfSksCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaG9z
dC1BJywgJ3RhYmluZGV4JzogLTF9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgn
aW5wdXQnLCB7J2lkJzogJ2lucHV0LTEnLCAndGFiaW5kZXgnOiAxfSksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICduZXN0ZWQtaG9zdCcs
ICd0YWJpbmRleCc6IDMwfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsndGFiaW5kZXgnOiAtMX0pLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQn
LCB7J2lkJzogJ2lucHV0LTE1JywgJ3RhYmluZGV4JzogMTV9KSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdp
bnB1dC0yNScsICd0YWJpbmRleCc6IDI1fSkpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXQtMjAnLCAndGFiaW5kZXgnOiAy
MH0pKSksCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdpbnB1
dC1DLTEnLCAndGFiaW5kZXgnOiAxfSksCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2lu
cHV0JywgeydpZCc6ICdpbnB1dC1CLTAnLCAndGFiaW5kZXgnOiAwfSksCi0gICAgICAgICAgICAg
ICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaG9zdC1CJywgJ3RhYmluZGV4JzogMX0sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnb2xkZXItaW5w
dXQtQS0wJywgJ3RhYmluZGV4JzogMH0pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdvbGRlci1pbnB1dC1BLTEnLCAndGFiaW5kZXgn
OiAxfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVu
dCcsIHsnc2VsZWN0JzogJyNsaWdodC1jaGlsZC1zZWxlY3RlZC0wLCAjbGlnaHQtY2hpbGQtc2Vs
ZWN0ZWQtMSd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdp
bnB1dCcsIHsnaWQnOiAnb2xkZXItaW5wdXQtQi0wJywgJ3RhYmluZGV4JzogMH0pLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdvbGRl
ci1pbnB1dC1CLTEnLCAndGFiaW5kZXgnOiAxfSkpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzogJ3lvdW5nZXItaW5wdXQtQS0wJywgJ3RhYmluZGV4Jzog
MH0pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2lucHV0Jywg
eydpZCc6ICd5b3VuZ2VyLWlucHV0LUEtMScsICd0YWJpbmRleCc6IDF9KSwgIC8vIFRoZSBmaXJz
dCBub2RlIGluIHRoZSBmb2N1c1Njb3BlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnc2hhZG93JyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzogJ3lvdW5nZXItaW5wdXQtQi0wJywgJ3RhYmluZGV4Jzog
MH0pLCAgLy8gVGhlIGxhc3Qgbm9kZSBpbiB0aGUgZm9jdXNTY29wZQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICd5b3VuZ2VyLWlucHV0
LUItMScsICd0YWJpbmRleCc6IDF9KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jl
YXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnbGlnaHQtY2hpbGQtc2VsZWN0ZWQtMCcsICd0YWJpbmRl
eCc6IDB9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2lucHV0Jywg
eydpZCc6ICdsaWdodC1jaGlsZC1zZWxlY3RlZC0xJywgJ3RhYmluZGV4JzogMX0pLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzogJ2xpZ2h0LWNo
aWxkLW5vbi1zZWxlY3RlZC0xJywgJ3RhYmluZGV4JzogMX0pKSwKLSAgICAgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzogJ2lucHV0LUQtMScsICd0YWJpbmRleCc6IDF9KSwK
LSAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzogJ2lucHV0LUMtMCcs
ICd0YWJpbmRleCc6IDB9KSwKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywgeydp
ZCc6ICdob3N0LUMnLCAndGFiaW5kZXgnOiAtMX0sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3JlYXRlU2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jl
YXRlRE9NKCdpbnB1dCcsIHsndGFiaW5kZXgnOiAtMX0pKSksCi0gICAgICAgICAgICAgICAgICBj
cmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdpbnB1dC1ELTAnLCAndGFiaW5kZXgnOiAwfSkpKTsK
LQotICAgIHBhcmVudC5vZmZzZXRMZWZ0OwotfQotCi1mdW5jdGlvbiB0ZXN0KCkgewotICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLQotICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAg
ICAgIHRlc3RGYWlsZWQoJycpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgcHJlcGFy
ZURPTVRyZWUoZG9jdW1lbnQuYm9keSk7Ci0KLSAgICAvLyBGSVhNRTogT3V0cHV0IGluc2VydGVk
IGNvbW1lbnRzIGluIHRoaXMgYXJyYXkgdG8gZXhwZWN0ZWQudHh0IGZvciByZWFkYWJpbGl0eSBv
ZiB0aGUgcmVzdWx0LgotICAgIGVsZW1lbnRzTmF2aWdhdGVkSW5Gb3J3YXJkID0gWwotICAgICAg
ICAnaW5wdXQtQS0xJywgJ2lucHV0LUItMScsCi0gICAgICAgIC8vIFRyYXZlcnNlIGVsZW1lbnRz
IHdoaWNoIGhhdmUgdGFiaW5kZXg9MS4KLSAgICAgICAgLy8gU2hvdWxkIHNraXAgZXZlcnkgZWxl
bWVudHMsIGV2ZW4gdGhvdWdoIHRoZXkgaGF2ZSB0aGUgc2FtZSB0YWJpbmRleCwgaW4gbm9uLWZv
Y3VzYWJsZSBzaGFkb3cgaG9zdCAoaWQ9aG9zdC1BKSAKLSAgICAgICAgLy8gc2luY2Ugbm9uLWZv
Y3VzYWJsZSBzaGFkb3cgaG9zdCBhY3RlZCBhcyBpZiB0aGV5IHdlcmUgYXNzaW5nZWQgdG8gdGFi
aW5kZXg9MCBzbyBpdCB3YXMgc2tpcHBlZCBpbiB0aGlzIHR1cm4uCi0gICAgICAgICdpbnB1dC1D
LTEnLAotCi0gICAgICAgIC8vIFRyYXZlcnNlIGEgZm9jdXNhYmxlIHNoYWRvdyBob3N0LgotICAg
ICAgICAnaG9zdC1CJywKLQotICAgICAgICAvLyBFbnRlciBhIGZvY3VzIHNjb3BlIG9mIHRoZSBz
aGFkb3cgaG9zdCBhbmQgdHJhdmVzZSB0aGUgZmlyc3QgZm9jdXNhYmxlIG5vZGUgaW4gc2hhZG93
IERPTSBuYXZpZ2F0aW9uLgotICAgICAgICAnaG9zdC1CLy95b3VuZ2VyLWlucHV0LUEtMScsCi0K
LSAgICAgICAgLy8gQSA8c2hhZG93PiBlbGVtZW50IHNob3VsZCBiZSByZXNvbHZlZC4KLSAgICAg
ICAgJ2hvc3QtQi9vbGRlci1pbnB1dC1BLTEnLAotCi0gICAgICAgIC8vIEEgPGNvbnRlbnQ+IGVs
ZW1lbnQgc2hvdWxkIGJlIHJlc29sdmVkLgotICAgICAgICAnbGlnaHQtY2hpbGQtc2VsZWN0ZWQt
MScsCi0gICAgICAgICdob3N0LUIvb2xkZXItaW5wdXQtQi0xJywKLSAgICAgICAgJ2hvc3QtQi8v
eW91bmdlci1pbnB1dC1CLTEnLAotCi0gICAgICAgIC8vIEFsbCBlbGVtZW50cyB3aXRoIHRhYmlu
ZGV4PTEgaGFkIGJlZW4gdHJhdmVyc2VkLiBTbyBlbGVtZW50cyB3aXRoIHRhYmluZGV4PTAgc2hv
b3VkIGZvbGxvdy4KLSAgICAgICAgJ2hvc3QtQi8veW91bmdlci1pbnB1dC1BLTAnLAotICAgICAg
ICAnaG9zdC1CL29sZGVyLWlucHV0LUEtMCcsCi0gICAgICAgICdsaWdodC1jaGlsZC1zZWxlY3Rl
ZC0wJywKLSAgICAgICAgJ2hvc3QtQi9vbGRlci1pbnB1dC1CLTAnLAotICAgICAgICAnaG9zdC1C
Ly95b3VuZ2VyLWlucHV0LUItMCcsCi0KLSAgICAgICAgLy8gRXhpdCBhIGZvY3VzIHNjb3BlIG9m
IHRoZSBzaGFkb3cgaG9zdCAoaWQ9aG9zdC1CKSBhbmQgdHJhdmVyc2UgdGhlIG5leHQuCi0gICAg
ICAgICdpbnB1dC1ELTEnLAotCi0gICAgICAgIC8vIEFsbCBlbGVtZW50cyB3aXRoIHRhYmluZGV4
PTEgaGFkIGJlZW4gdHJhdmVyc2VkIGluIHRoZSBvdXRlcm1vc3Qgc2NvcGUuCi0gICAgICAgIC8v
IFNvIHRyYXZlcnNlIGVsZW1lbnRzIHdpdGggdGFiaW5kZXg9MCBpbiBuZXh0LgotICAgICAgICAn
aW5wdXQtQS0wJywKLQotICAgICAgICAvLyBBIG5vbi1mb2N1c2FibGUgc2hhZG93IGhvc3QgKGlk
PWhvc3QtQSkgd2lsbCBiZSAicmVwbGFjZWQiIHdpdGggaXRzIHNoYWRvdyBET00gbmF2aWdhdGlv
bi4KLSAgICAgICAgJ2hvc3QtQS9pbnB1dC0xJywKLSAgICAgICAgJ2hvc3QtQS9pbnB1dC0yMCcs
Ci0gICAgICAgICdob3N0LUEvbmVzdGVkLWhvc3QnLAotCi0gICAgICAgIC8vIEVudGVyIGEgbmVz
dGVkIGZvY3VzIHNjb3BlIGluc2lkZSBvZiBhIHNoYWRvdyBob3N0IChpZD1uZXN0ZWQtaG9zdCku
Ci0gICAgICAgICdob3N0LUEvbmVzdGVkLWhvc3QvaW5wdXQtMTUnLAotICAgICAgICAnaG9zdC1B
L25lc3RlZC1ob3N0L2lucHV0LTI1JywKLQotICAgICAgICAvLyBFeGl0IGEgbmVzdGVkIHNoYWRv
dyBob3N0LgotICAgICAgICAnaW5wdXQtQi0wJywKLSAgICAgICAgJ2lucHV0LUMtMCcsCi0KLSAg
ICAgICAgLy8gQSBub24tZm9jdXNhYmxlIHNoYWRvdyBob3N0IChpZD1ob3N0LUMpLCB3aGljaCBk
b2VzIG5vdCBoYXZlIGZvY3VzYWJsZSBlbGVtZW50cywgc2hvdWxkIGJlIHNraXBwZWQgZW50aXJl
bHkuCi0gICAgICAgICdpbnB1dC1ELTAnLAotCi0gICAgICAgIC8vIFdyYXBzIHRvIHRoZSBmaXJz
dCBlbGVtZW50IGluIHRoZSBvdXRlcm1vc3QgZm9jdXMgc2NvcGUuCi0gICAgICAgICdpbnB1dC1B
LTEnLAotICAgIF07Ci0KLQotICAgIGVsZW1lbnRzTmF2aWdhdGVkSW5CYWNrd2FyZCA9IFsKLSAg
ICAgICAgJ2lucHV0LUEtMScsCi0gICAgICAgICdpbnB1dC1ELTAnLAotICAgICAgICAnaW5wdXQt
Qy0wJywKLSAgICAgICAgJ2lucHV0LUItMCcsCi0KLSAgICAgICAgLy8gVHJpY2t5IG5hdmlnYXRp
b24uIFRyYXZhcnNlIHRoZSBkZWVwbHkgbGFzdCBlbGVtZW50IGluIG5lc3RlZCBzaGFkb3cgRE9N
IG5hdmlnYXRpb24uCi0gICAgICAgICdob3N0LUEvbmVzdGVkLWhvc3QvaW5wdXQtMjUnLAotICAg
ICAgICAnaG9zdC1BL25lc3RlZC1ob3N0L2lucHV0LTE1JywKLSAgICAgICAgJ2hvc3QtQS9uZXN0
ZWQtaG9zdCcsCi0gICAgICAgICdob3N0LUEvaW5wdXQtMjAnLAotICAgICAgICAnaG9zdC1BL2lu
cHV0LTEnLAotCi0gICAgICAgIC8vIEV4aXQgYSBzaGFkbyBob3N0LgotICAgICAgICAnaW5wdXQt
QS0wJywKLQotICAgICAgICAvLyBBbGwgZWxlbWVudHMgd2l0aCB0YWJpbmRleD0wIGhhZCBiZWVu
IHRyYXZlcnNlZC4gU28gdHJhdmVyc2UgZWxlbWVudHMgd2l0aCB0YWJpbmRleD0xIGluIHJldmVy
c2Ugb3JkZXIuCi0gICAgICAgICdpbnB1dC1ELTEnLAotCi0gICAgICAgIC8vIFlldCBhbm90aGVy
IHRyaWNreSBuYXZpZ2F0aW9uLiBTaG91bGQgdHJhdmVyc2UgdGhlIGxhc3QgZWxlbWVudCBpbiB0
aGUgc2hhZG93IERPTSBuYXZpZ2F0aW9uLgotICAgICAgICAnaG9zdC1CLy95b3VuZ2VyLWlucHV0
LUItMCcsCi0gICAgICAgICdob3N0LUIvb2xkZXItaW5wdXQtQi0wJywKLSAgICAgICAgJ2xpZ2h0
LWNoaWxkLXNlbGVjdGVkLTAnLAotICAgICAgICAnaG9zdC1CL29sZGVyLWlucHV0LUEtMCcsCi0g
ICAgICAgICdob3N0LUIvL3lvdW5nZXItaW5wdXQtQS0wJywKLQotICAgICAgICAnaG9zdC1CLy95
b3VuZ2VyLWlucHV0LUItMScsCi0gICAgICAgICdob3N0LUIvb2xkZXItaW5wdXQtQi0xJywKLSAg
ICAgICAgJ2xpZ2h0LWNoaWxkLXNlbGVjdGVkLTEnLAotICAgICAgICAnaG9zdC1CL29sZGVyLWlu
cHV0LUEtMScsCi0gICAgICAgICdob3N0LUIvL3lvdW5nZXItaW5wdXQtQS0xJywKLQotICAgICAg
ICAvLyBBIHNoYWRvdyBob3N0IHNob3VsZCBiZSBzZWxlY3RlZCBqdXN0IGFmdGVyIHRoZSBmaXJz
dCBlbGVtZW50IGluIGl0cyBzaGFkb3cgRE9NIG5hdmlnYXRpb24uCi0gICAgICAgIC8vIE5vdGUg
dGhhdCBhICdmb2N1cycgZXZlbnQgaXMgbm90IGNhbGxlZCBoZXJlIHNpbmNlIGEgZm9jdXMgbW92
ZXMgd2l0aGluIHRoZSBzYW1lIHNoYWRvdyBob3N0LgotICAgICAgICAnaG9zdC1CJywKLSAgICAg
ICAgJ2lucHV0LUMtMScsCi0gICAgICAgICdpbnB1dC1CLTEnLAotICAgICAgICAnaW5wdXQtQS0x
JywKLQotICAgICAgICAvLyBXcmFwcyB0byB0aGUgbGFzdCBlbGVtZW50IGluIHRoZSBvdXRlcm1v
c3QgZm9jdXMgc2NvcGUuCi0gICAgICAgICdpbnB1dC1ELTAnLAotICAgIF07Ci0KLSAgICB0ZXN0
Rm9jdXNOYXZpZ2F0aW9uRm93cmFkKGVsZW1lbnRzTmF2aWdhdGVkSW5Gb3J3YXJkKTsKLSAgICB0
ZXN0Rm9jdXNOYXZpZ2F0aW9uQmFja3dhcmQoZWxlbWVudHNOYXZpZ2F0ZWRJbkJhY2t3YXJkKTsK
LQotICAgIGRlYnVnKCdUZXN0IGZpbmlzaGVkLicpOwotfQotCi10ZXN0KCk7Ci0KLTwvc2NyaXB0
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3Jlc291cmNlcy9zaGFkb3ctZG9tLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3Jlc291cmNlcy9zaGFkb3ctZG9tLmpzCmluZGV4IGMzYmU4YTcxYTZlZGFiMWVlN2QxOWRjNzRk
NmQ4ZmI4MDdhNjhlNDkuLjE1NTc2MDIxMjk5ZTEzZjM5MGQ0MzEzNDMxMGU1NWIzYWExMzQwM2Ug
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvc2hhZG93
LWRvbS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL3NoYWRv
dy1kb20uanMKQEAgLTM0LDIyICszNCwxMiBAQCBmdW5jdGlvbiBjcmVhdGVET00odGFnTmFtZSwg
YXR0cmlidXRlcykKICAgICByZXR1cm4gZWxlbWVudDsKIH0KIAotZnVuY3Rpb24gaXNTaGFkb3dI
b3N0KG5vZGUpCi17Ci0gICAgcmV0dXJuIHdpbmRvdy5pbnRlcm5hbHMub2xkZXN0U2hhZG93Um9v
dChub2RlKTsKLX0KLQogZnVuY3Rpb24gaXNTaGFkb3dSb290KG5vZGUpCiB7CiAgICAgLy8gRklY
TUU6IHdpbmRvdy5pbnRlcm5hbHMgc2hvdWxkIGhhdmUgaW50ZXJuYWxzLmlzU2hhZG93Um9vdChu
b2RlKS4KICAgICByZXR1cm4gbm9kZS5ub2RlTmFtZSA9PSAiI3NoYWRvdy1yb290IiB8fCBub2Rl
Lmhvc3Q7CiB9CiAKLWZ1bmN0aW9uIGlzSWZyYW1lRWxlbWVudChlbGVtZW50KQotewotICAgIHJl
dHVybiBlbGVtZW50ICYmIGVsZW1lbnQubm9kZU5hbWUgPT0gJ0lGUkFNRSc7Ci19Ci0KIC8vIFlv
dSBjYW4gc3BlZmlmeSB5b3VuZ2VyU2hhZG93Um9vdCBieSBjb25zZWN1dGl2ZSBzbGFzaGVzLgog
Ly8gU2VlIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nZXQtZWxlbWVudC1ieS1pZC1pbi1z
aGFkb3ctcm9vdC5odG1sIGZvciBhY3R1YWwgdXNhZ2VzLgogZnVuY3Rpb24gZ2V0Tm9kZUluU2hh
ZG93VHJlZVN0YWNrKHBhdGgpCkBAIC01NywxMDEgKzQ3LDEzIEBAIGZ1bmN0aW9uIGdldE5vZGVJ
blNoYWRvd1RyZWVTdGFjayhwYXRoKQogICAgIHZhciBpZHMgPSBwYXRoLnNwbGl0KCcvJyk7CiAg
ICAgdmFyIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZHNbMF0pOwogICAgIGZvciAo
dmFyIGkgPSAxOyBub2RlICE9IG51bGwgJiYgaSA8IGlkcy5sZW5ndGg7ICsraSkgewotICAgICAg
ICBpZiAoaXNJZnJhbWVFbGVtZW50KG5vZGUpKSB7Ci0gICAgICAgICAgICBub2RlID0gbm9kZS5j
b250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWRzW2ldKTsKLSAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICB9CiAgICAgICAgIGlmIChpc1NoYWRvd1Jvb3Qobm9kZSkpCiAgICAgICAg
ICAgICBub2RlID0gaW50ZXJuYWxzLnlvdW5nZXJTaGFkb3dSb290KG5vZGUpOwotICAgICAgICBl
bHNlIGlmIChpbnRlcm5hbHMub2xkZXN0U2hhZG93Um9vdChub2RlKSkKLSAgICAgICAgICAgIG5v
ZGUgPSBpbnRlcm5hbHMub2xkZXN0U2hhZG93Um9vdChub2RlKTsKICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICBub2RlID0gaW50ZXJuYWxzLm9sZGVz
dFNoYWRvd1Jvb3Qobm9kZSk7CiAgICAgICAgIGlmIChpZHNbaV0gIT0gJycpCiAgICAgICAgICAg
ICBub2RlID0gaW50ZXJuYWxzLmdldEVsZW1lbnRCeUlkSW5TaGFkb3dSb290KG5vZGUsIGlkc1tp
XSk7CiAgICAgfQogICAgIHJldHVybiBub2RlOwogfQogCi1mdW5jdGlvbiBkdW1wTm9kZShub2Rl
KQotewotICAgIGlmICghbm9kZSkKLSAgICAgIHJldHVybiAnbnVsbCc7Ci0gICAgdmFyIG91dHB1
dCA9ICcnICsgbm9kZTsKLSAgICBpZiAobm9kZS5pZCkKLSAgICAgICAgb3V0cHV0ICs9ICcgaWQ9
JyArIG5vZGUuaWQ7Ci0gICAgcmV0dXJuIG91dHB1dDsKLX0KLQotZnVuY3Rpb24gaW5uZXJtb3N0
QWN0aXZlRWxlbWVudChlbGVtZW50KQotewotICAgIGVsZW1lbnQgPSBlbGVtZW50IHx8IGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQ7Ci0gICAgaWYgKGlzSWZyYW1lRWxlbWVudChlbGVtZW50KSkgewot
ICAgICAgICBpZiAoZWxlbWVudC5jb250ZW50RG9jdW1lbnQuYWN0aXZlRWxlbWVudCkKLSAgICAg
ICAgICAgIHJldHVybiBpbm5lcm1vc3RBY3RpdmVFbGVtZW50KGVsZW1lbnQuY29udGVudERvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQpOwotICAgICAgICByZXR1cm4gZWxlbWVudDsKLSAgICB9Ci0gICAg
aWYgKGlzU2hhZG93SG9zdChlbGVtZW50KSkgewotICAgICAgICB2YXIgc2hhZG93Um9vdCA9IHdp
bmRvdy5pbnRlcm5hbHMub2xkZXN0U2hhZG93Um9vdChlbGVtZW50KTsKLSAgICAgICAgd2hpbGUg
KHNoYWRvd1Jvb3QpIHsKLSAgICAgICAgICAgIGlmIChzaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGlubmVybW9zdEFjdGl2ZUVsZW1lbnQoc2hhZG93Um9v
dC5hY3RpdmVFbGVtZW50KTsKLSAgICAgICAgICAgIHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJu
YWxzLnlvdW5nZXJTaGFkb3dSb290KHNoYWRvd1Jvb3QpOwotICAgICAgICB9Ci0gICAgfQotICAg
IHJldHVybiBlbGVtZW50OwotfQotCi1mdW5jdGlvbiBpc0lubmVybW9zdEFjdGl2ZUVsZW1lbnQo
aWQpCi17Ci0gICAgdmFyIGVsZW1lbnQgPSBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soaWQpOwot
ICAgIGlmICghZWxlbWVudCkgewotICAgICAgICBkZWJ1ZygnRkFJTDogVGhlcmUgaXMgbm8gc3Vj
aCBlbGVtZW50IHdpdGggaWQ6ICcrIGZyb20pOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
fQotICAgIGlmIChlbGVtZW50ID09IGlubmVybW9zdEFjdGl2ZUVsZW1lbnQoKSkKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgZGVidWcoJ0V4cGVjdGVkIGlubmVybW9zdCBhY3RpdmVFbGVtZW50
IGlzICcgKyBpZCArICcsIGJ1dCBhY3R1YWwgaW5uZXJtb3N0IGFjdGl2ZUVsZW1lbnQgaXMgJyAr
IGR1bXBOb2RlKGlubmVybW9zdEFjdGl2ZUVsZW1lbnQoKSkpOwotICAgIHJldHVybiBmYWxzZTsK
LX0KLQotZnVuY3Rpb24gc2hvdWxkTmF2aWdhdGVGb2N1cyhmcm9tLCB0bywgZGlyZWN0aW9uKQot
ewotICAgIGRlYnVnKCdTaG91bGQgbW92ZSBmcm9tICcgKyBmcm9tICsgJyB0byAnICsgdG8gKyAn
IGluICcgKyBkaXJlY3Rpb24pOwotICAgIHZhciBmcm9tRWxlbWVudCA9IGdldE5vZGVJblNoYWRv
d1RyZWVTdGFjayhmcm9tKTsKLSAgICBpZiAoIWZyb21FbGVtZW50KSB7Ci0gICAgICBkZWJ1Zygn
RkFJTDogVGhlcmUgaXMgbm8gc3VjaCBlbGVtZW50IHdpdGggaWQ6ICcrIGZyb20pOwotICAgICAg
cmV0dXJuOwotICAgIH0KLSAgICBmcm9tRWxlbWVudC5mb2N1cygpOwotICAgIGlmIChkaXJlY3Rp
b24gPT0gJ2ZvcndhcmQnKQotICAgICAgICBuYXZpZ2F0ZUZvY3VzRm9yd2FyZCgpOwotICAgIGVs
c2UKLSAgICAgICAgbmF2aWdhdGVGb2N1c0JhY2t3YXJkKCk7Ci0gICAgaWYgKGlzSW5uZXJtb3N0
QWN0aXZlRWxlbWVudCh0bykpCi0gICAgICAgIGRlYnVnKCdQQVNTJyk7Ci0gICAgZWxzZQotICAg
ICAgICBkZWJ1ZygnRkFJTCcpOwotfQotCi1mdW5jdGlvbiBuYXZpZ2F0ZUZvY3VzRm9yd2FyZCgp
Ci17Ci0gICAgZXZlbnRTZW5kZXIua2V5RG93bignXHQnKTsKLX0KLQotZnVuY3Rpb24gbmF2aWdh
dGVGb2N1c0JhY2t3YXJkKCkKLXsKLSAgICBldmVudFNlbmRlci5rZXlEb3duKCdcdCcsIFsnc2hp
ZnRLZXknXSk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RGb2N1c05hdmlnYXRpb25Gb3dyYWQoZWxlbWVu
dHMpCi17Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgKyAxIDwgZWxlbWVudHMubGVuZ3RoOyArK2kp
Ci0gICAgICAgIHNob3VsZE5hdmlnYXRlRm9jdXMoZWxlbWVudHNbaV0sIGVsZW1lbnRzW2kgKyAx
XSwgJ2ZvcndhcmQnKTsKLX0KLQotZnVuY3Rpb24gdGVzdEZvY3VzTmF2aWdhdGlvbkJhY2t3YXJk
KGVsZW1lbnRzKQotewotICAgIGZvciAodmFyIGkgPSAwOyBpICsgMSA8IGVsZW1lbnRzLmxlbmd0
aDsgKytpKQotICAgICAgICBzaG91bGROYXZpZ2F0ZUZvY3VzKGVsZW1lbnRzW2ldLCBlbGVtZW50
c1tpICsgMV0sICdiYWNrd2FyZCcpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1ob3N0LXRyYW5zZmVyLWZvY3VzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctaG9zdC10cmFuc2Zlci1mb2N1cy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjY4MWIwOWE1YjJjYTE5NjY1NjE4MjIxMmJmNzgyYTdiN2VlYjg1
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
aG9zdC10cmFuc2Zlci1mb2N1cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorV2hlbiBh
IHNoYWRvdyBob3N0IGlzIGZvY3VzZWQsIHRoZSBzaGFkb3cgaG9zdCBzaG91bGQgdHJhbnNmZXIg
Zm9jdXMgdG8gdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50IGluIHRoZSBzaGFkb3cgcm9vdCBp
ZiB0aGVyZSBpcyBhbiBzdWNoIGFuIGVsZW1lbnQuCisKK0ZvY3VzaW5nOiBzaGFkb3cwCitQQVNT
IGVsZW1lbnRXYXNGb2N1c2VkKGlucHV0MCkgaXMgZmFsc2UKK1BBU1MgZWxlbWVudFdhc0ZvY3Vz
ZWQoaW5wdXQxKSBpcyB0cnVlCitQQVNTIGVsZW1lbnRXYXNGb2N1c2VkKGlucHV0MikgaXMgZmFs
c2UKK1BBU1MgaW5wdXQwLnZhbHVlIGlzICIiCitQQVNTIGlucHV0MS52YWx1ZSBpcyAiIgorUEFT
UyBpbnB1dDIudmFsdWUgaXMgIiIKK1ByZXNzaW5nOiAiYSIKK1BBU1MgaW5wdXQwLnZhbHVlIGlz
ICIiCitQQVNTIGlucHV0MS52YWx1ZSBpcyAiYSIKK1BBU1MgaW5wdXQyLnZhbHVlIGlzICIiCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ob3N0LXRyYW5zZmVyLWZv
Y3VzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWhvc3QtdHJhbnNm
ZXItZm9jdXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmI2ZGE3NGM3OTE0NmFmZGZiNTEyNmJiOTE2MGM3
ZGYxMWNlOTdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1ob3N0LXRyYW5zZmVyLWZvY3VzLmh0bWwKQEAgLTAsMCArMSw5MyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPgorV2hlbiBh
IHNoYWRvdyBob3N0IGlzIGZvY3VzZWQsIHRoZSBzaGFkb3cgaG9zdCBzaG91bGQgdHJhbnNmZXIg
Zm9jdXMgdG8gdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50IGluIHRoZSBzaGFkb3cgcm9vdCBp
ZiB0aGVyZSBpcyBhbiBzdWNoIGFuIGVsZW1lbnQuCis8L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykgeworICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgZnVuY3Rpb24gc2hhZG93Um9vdChzaGFkb3dIb3N0
KSB7CisgICAgcmV0dXJuIGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHNoYWRvd0hvc3QpOwor
ICB9CisKKyAgZnVuY3Rpb24gYXBwZW5kQ2hpbGRUb1NoYWRvdyhzaGFkb3dIb3N0LCBjaGlsZCkg
eworICAgIHJldHVybiBzaGFkb3dSb290KHNoYWRvd0hvc3QpLmFwcGVuZENoaWxkKGNoaWxkKQor
ICB9CisKKyAgZnVuY3Rpb24gYXBwZW5kU2hhZG93SG9zdChkb2MsIHBhcmVudCkgeworICAgIHZh
ciBzaGFkb3dIb3N0ID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ3AnKTsKKyAgICBzaGFkb3dIb3N0LnRh
YkluZGV4ID0gMTsgIC8vIE1ha2VzIHN1cmUgdGhhdCB0aGUgc2hhZG93IGhvc3QgaXMgZm9jdXNh
YmxlLgorICAgIHBhcmVudCA9IHBhcmVudCB8fCBkb2MuYm9keTsKKyAgICByZXR1cm4gcGFyZW50
LmFwcGVuZENoaWxkKHNoYWRvd0hvc3QpOworICB9CisKKyAgdmFyIGZvY3VzZWRFbGVtZW1lbnRz
ID0gW107CisKKyAgZnVuY3Rpb24gZm9jdXNlZChlbGVtKSB7CisgICAgZm9jdXNlZEVsZW1lbnRz
LnB1c2goZWxlbSkKKyAgfQorCisgIGZ1bmN0aW9uIGRvRm9jdXMoZWxlbSkgeworICAgIGZvY3Vz
ZWRFbGVtZW50cyA9IFtdCisgICAgZWxlbS5mb2N1cygpCisgIH0KKworICBmdW5jdGlvbiBlbGVt
ZW50V2FzRm9jdXNlZChlbGVtKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb2N1c2VkRWxl
bWVudHMubGVuZ3RoOyArK2kpIHsKKyAgICAgIGlmIChmb2N1c2VkRWxlbWVudHNbaV0gPT0gZWxl
bSkgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGZh
bHNlOworICB9CisKKyAgLy8gRm9yIHJlYWRhYmlsaXR5LCBJIG5vdGVkIHRoZSBET00gdHJlZSB1
bmRlciB0aGUgdGVzdCBoZXJlLgorICAvLworICAvLyAtIGRvY3VtZW50CisgIC8vICAgLSBzaGFk
b3cwICh0YWJpbmRleD0xKQorICAvLyAgICAgLSBpbnB1dDAgKHRhYmluZGV4PS0xKQorICAvLyAg
ICAgLSBpbnB1dDEKKyAgLy8gICAgIC0gaW5wdXQyCisgIHZhciBzaGFkb3cwID0gYXBwZW5kU2hh
ZG93SG9zdChkb2N1bWVudCk7CisgIHZhciBpbnB1dDAgPSBhcHBlbmRDaGlsZFRvU2hhZG93KHNo
YWRvdzAsIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0JykpOworICBpbnB1dDAudGFiSW5k
ZXggPSAtMQorICB2YXIgaW5wdXQxID0gYXBwZW5kQ2hpbGRUb1NoYWRvdyhzaGFkb3cwLCBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpKTsKKyAgdmFyIGlucHV0MiA9IGFwcGVuZENoaWxk
VG9TaGFkb3coc2hhZG93MCwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSk7CisKKyAg
dmFyIGVsZW1lbnRJZHMgPSBbJ3NoYWRvdzAnLCAnaW5wdXQwJywgJ2lucHV0MScsICdpbnB1dDIn
XQorICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRJZHMubGVuZ3RoOyBpKyspIHsKKyAgICB2
YXIgaWQgPSBlbGVtZW50SWRzW2ldOworICAgIHZhciBlbGVtZW50ID0gd2luZG93W2lkXTsKKyAg
ICBlbGVtZW50LmlkID0gaWQ7CisgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycs
IGZ1bmN0aW9uKCkge2ZvY3VzZWQodGhpcyk7fSwgZmFsc2UpOworICB9CisKKyAgZGVidWcoJ0Zv
Y3VzaW5nOiBzaGFkb3cwJyk7CisgIGRvRm9jdXMoc2hhZG93MCk7CisgIC8vIENvbW1lbnRlZCBv
dXQgZHVlIHRvIGJ1ZyA2MTQyMS4KKyAgLy8gc2hvdWxkQmVUcnVlKCdlbGVtZW50V2FzRm9jdXNl
ZChzaGFkb3cwKScpOworICBzaG91bGRCZUZhbHNlKCdlbGVtZW50V2FzRm9jdXNlZChpbnB1dDAp
Jyk7CisgIHNob3VsZEJlVHJ1ZSgnZWxlbWVudFdhc0ZvY3VzZWQoaW5wdXQxKScpOworICBzaG91
bGRCZUZhbHNlKCdlbGVtZW50V2FzRm9jdXNlZChpbnB1dDIpJyk7CisgIGlmICh3aW5kb3cuZXZl
bnRTZW5kZXIpIHsKKyAgICAvLyBNYWtlcyBzdXJlIHRoYXQgd2UgY2FuIGNoYW5nZSAnaW5wdXQx
JyBlbGVtZW50J3MgdmFsdWUgYnkgcHJlc3NpbmcgYSBrZXkuCisgICAgc2hvdWxkQmUoJ2lucHV0
MC52YWx1ZScsICciIicpOworICAgIHNob3VsZEJlKCdpbnB1dDEudmFsdWUnLCAnIiInKTsKKyAg
ICBzaG91bGRCZSgnaW5wdXQyLnZhbHVlJywgJyIiJyk7CisgICAgZGVidWcoJ1ByZXNzaW5nOiAi
YSInKQorICAgIGV2ZW50U2VuZGVyLmtleURvd24oJ2EnKTsKKyAgICBzaG91bGRCZSgnaW5wdXQw
LnZhbHVlJywgJyIiJyk7CisgICAgc2hvdWxkQmUoJ2lucHV0MS52YWx1ZScsICciYSInKTsKKyAg
ICBzaG91bGRCZSgnaW5wdXQyLnZhbHVlJywgJyIiJyk7CisgIH0KK30KKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3RhYi1vcmRlci1pZnJhbWUtYW5kLXNoYWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvdGFiLW9yZGVyLWlmcmFtZS1hbmQtc2hhZG93LWV4cGVjdGVkLnR4dApp
bmRleCBmODZhM2EwNmY3ZDQ5YzUxNmQwODJiYWNjYzEyNWU1ZmZiNDU4Mzg4Li45M2E1ZThjODc1
NjY5YmRiZTM1YjI4YmJhYzQyODEwZGYzODA0MmRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvdGFiLW9yZGVyLWlmcmFtZS1hbmQtc2hhZG93LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGFiLW9yZGVyLWlmcmFtZS1hbmQtc2hh
ZG93LWV4cGVjdGVkLnR4dApAQCAtMSw1NyArMSwzNCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDEwNDogVW5jYXVnaHQgUmVmZXJlbmNlRXJyb3I6IGxvZyBpcyBub3QgZGVmaW5lZAotVGhpcyB0
ZXN0cyB0aGF0IHByZXNzaW5nIFRhYiBrZXkgc2hvdWxkIHRyYXZlcnNlIGludG8gaWZyYW1lIGFu
ZCBzaGFkb3cgdHJlZSwgYW5kIHByZXNzaW5nIFNoaWZ0LVRhYiBzaG91bGQgcmV2ZXJzZSB0aGUg
b3JkZXIuCitUaGlzIHRlc3RzIHRoYXQgcHJlc3NpbmcgVGFiIGtleSBzaG91bGQgdHJhdmVyc2Ug
aW50byBpZnJhbWUgYW5kIHNoYWRvdyB0cmVlLCBhbmQgcHJlc3NpbmcgU2hpZnQtVGFiIHNob3Vs
ZCByZXZlcnNlIHRoZSBvcmRlci4gTWFrZXMgc3VyZSB0aGF0IGEgc2hhZG93IGhvc3QgZWxlbWVu
dCBzaG91bGQgYWN0IGxpa2UgYSBpZnJhbWUgZWxlbWVudC4KIAotU2hvdWxkIG1vdmUgZnJvbSBp
bnB1dC0wMSB0byBpbnB1dC0xMyBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlu
cHV0LTEzIHRvIGlucHV0LTE1IGluIGZvcndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaW5w
dXQtMTUgdG8gaW5wdXQtMDIgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBpbnB1
dC0wMiB0byBob3N0LTAxL2lucHV0LTAzIGluIGZvcndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZy
b20gaG9zdC0wMS9pbnB1dC0wMyB0byBpbnB1dC0wNCBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQg
bW92ZSBmcm9tIGlucHV0LTA0IHRvIGlmcmFtZS9pbnB1dC0wNiBpbiBmb3J3YXJkCi1QQVNTCi1T
aG91bGQgbW92ZSBmcm9tIGlmcmFtZS9pbnB1dC0wNiB0byBpZnJhbWUvaG9zdC0wMiBpbiBmb3J3
YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlmcmFtZS9ob3N0LTAyIHRvIGlmcmFtZS9ob3N0
LTAyL2lucHV0LTA5IGluIGZvcndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaWZyYW1lL2hv
c3QtMDIvaW5wdXQtMDkgdG8gaWZyYW1lL2hvc3QtMDIvaW5wdXQtMDggaW4gZm9yd2FyZAotUEFT
UwotU2hvdWxkIG1vdmUgZnJvbSBpZnJhbWUvaG9zdC0wMi9pbnB1dC0wOCB0byBpZnJhbWUvaW5w
dXQtMTIgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBpZnJhbWUvaW5wdXQtMTIg
dG8gaWZyYW1lL2lucHV0LTExIGluIGZvcndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaWZy
YW1lL2lucHV0LTExIHRvIGlmcmFtZS9pbnB1dC0wNSBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQg
bW92ZSBmcm9tIGlmcmFtZS9pbnB1dC0wNSB0byBpbnB1dC0xNCBpbiBmb3J3YXJkCi1QQVNTCi1T
aG91bGQgbW92ZSBmcm9tIGlucHV0LTE0IHRvIGlmcmFtZS9pbnB1dC0wNSBpbiBiYWNrd2FyZAot
UEFTUwotU2hvdWxkIG1vdmUgZnJvbSBpZnJhbWUvaW5wdXQtMDUgdG8gaWZyYW1lL2lucHV0LTEx
IGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlmcmFtZS9pbnB1dC0xMSB0byBp
ZnJhbWUvaW5wdXQtMTIgaW4gYmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaWZyYW1l
L2lucHV0LTEyIHRvIGlmcmFtZS9ob3N0LTAyL2lucHV0LTA4IGluIGJhY2t3YXJkCi1QQVNTCi1T
aG91bGQgbW92ZSBmcm9tIGlmcmFtZS9ob3N0LTAyL2lucHV0LTA4IHRvIGlmcmFtZS9ob3N0LTAy
L2lucHV0LTA5IGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlmcmFtZS9ob3N0
LTAyL2lucHV0LTA5IHRvIGlmcmFtZS9ob3N0LTAyIGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQg
bW92ZSBmcm9tIGlmcmFtZS9ob3N0LTAyIHRvIGlmcmFtZS9pbnB1dC0wNiBpbiBiYWNrd2FyZAot
UEFTUwotU2hvdWxkIG1vdmUgZnJvbSBpZnJhbWUvaW5wdXQtMDYgdG8gaW5wdXQtMDQgaW4gYmFj
a3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaW5wdXQtMDQgdG8gaG9zdC0wMS9pbnB1dC0w
MyBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LTAxL2lucHV0LTAzIHRv
IGlucHV0LTAyIGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LTAyIHRv
IGlucHV0LTE1IGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LTE1IHRv
IGlucHV0LTEzIGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LTEzIHRv
IGlucHV0LTAxIGluIGJhY2t3YXJkCi1QQVNTCitGb2N1cyBpbnB1dC0wMS4KK2lkOmlucHV0LTAx
KHRhYkluZGV4PTEpIGlzIGZvY3VzZWQuCisKK1ByZXNzIFRhYiAxMSB0aW1lcy4KK2lkOmlucHV0
LTEzKHRhYkluZGV4PTEpIGlzIGZvY3VzZWQuCitpZDppbnB1dC0xNSh0YWJJbmRleD0yKSBpcyBm
b2N1c2VkLgoraWQ6aW5wdXQtMDIodGFiSW5kZXg9MCkgaXMgZm9jdXNlZC4KK2lkOmlucHV0LTA0
KHRhYkluZGV4PTApIGlzIGZvY3VzZWQuCitpZDppZnJhbWUtaW5wdXQtMDYodGFiSW5kZXg9MSkg
aXMgZm9jdXNlZC4KK2lkOmlmcmFtZS1zaGFkb3ctaW5wdXQtMDkodGFiSW5kZXg9MSkgaXMgZm9j
dXNlZC4KK2lkOmlmcmFtZS1zaGFkb3ctaW5wdXQtMDgodGFiSW5kZXg9MCkgaXMgZm9jdXNlZC4K
K2lkOmlmcmFtZS1pbnB1dC0xMih0YWJJbmRleD0xKSBpcyBmb2N1c2VkLgoraWQ6aWZyYW1lLWlu
cHV0LTExKHRhYkluZGV4PTIpIGlzIGZvY3VzZWQuCitpZDppZnJhbWUtaW5wdXQtMDUodGFiSW5k
ZXg9MCkgaXMgZm9jdXNlZC4KK2lkOmlucHV0LTE0KHRhYkluZGV4PTApIGlzIGZvY3VzZWQuCisK
K1ByZXNzIFNoaWZ0LVRhYiAxMSB0aW1lcy4KK2lkOmlmcmFtZS1pbnB1dC0wNSh0YWJJbmRleD0w
KSBpcyBmb2N1c2VkLgoraWQ6aWZyYW1lLWlucHV0LTExKHRhYkluZGV4PTIpIGlzIGZvY3VzZWQu
CitpZDppZnJhbWUtaW5wdXQtMTIodGFiSW5kZXg9MSkgaXMgZm9jdXNlZC4KK2lkOmlmcmFtZS1z
aGFkb3ctaW5wdXQtMDgodGFiSW5kZXg9MCkgaXMgZm9jdXNlZC4KK2lkOmlmcmFtZS1zaGFkb3ct
aW5wdXQtMDkodGFiSW5kZXg9MSkgaXMgZm9jdXNlZC4KK2lkOmlmcmFtZS1pbnB1dC0wNih0YWJJ
bmRleD0xKSBpcyBmb2N1c2VkLgoraWQ6aW5wdXQtMDQodGFiSW5kZXg9MCkgaXMgZm9jdXNlZC4K
K2lkOmlucHV0LTAyKHRhYkluZGV4PTApIGlzIGZvY3VzZWQuCitpZDppbnB1dC0xNSh0YWJJbmRl
eD0yKSBpcyBmb2N1c2VkLgoraWQ6aW5wdXQtMTModGFiSW5kZXg9MSkgaXMgZm9jdXNlZC4KK2lk
OmlucHV0LTAxKHRhYkluZGV4PTEpIGlzIGZvY3VzZWQuCisKK1Rlc3QgZmluaXNoZWQuCiAKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RhYi1vcmRlci1pZnJhbWUt
YW5kLXNoYWRvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RhYi1vcmRlci1p
ZnJhbWUtYW5kLXNoYWRvdy5odG1sCmluZGV4IDU4YmJhOGEwODU2MGZkOWI0NThmYTZlNTEyNzI2
YzFmNTE1YjcxZGUuLjEwZTkxNjJlNGM0OGMyOTA4YjU1NzViYTkwZTY0ZmU5MjAxMjUxY2QgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90YWItb3JkZXItaWZyYW1lLWFu
ZC1zaGFkb3cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGFiLW9yZGVy
LWlmcmFtZS1hbmQtc2hhZG93Lmh0bWwKQEAgLTEsMTggKzEsMzcgQEAKIDwhRE9DVFlQRSBodG1s
PgogPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpz
Ij48L3NjcmlwdD4KLTwvaGVhZD4KIDxib2R5PgotPHA+VGhpcyB0ZXN0cyB0aGF0IHByZXNzaW5n
IFRhYiBrZXkgc2hvdWxkIHRyYXZlcnNlIGludG8gaWZyYW1lIGFuZCBzaGFkb3cgdHJlZSwgYW5k
IHByZXNzaW5nIFNoaWZ0LVRhYiBzaG91bGQgcmV2ZXJzZSB0aGUgb3JkZXIuPC9wPgorPHA+VGhp
cyB0ZXN0cyB0aGF0IHByZXNzaW5nIFRhYiBrZXkgc2hvdWxkIHRyYXZlcnNlIGludG8gaWZyYW1l
IGFuZCBzaGFkb3cgdHJlZSwgYW5kIHByZXNzaW5nIFNoaWZ0LVRhYiBzaG91bGQgcmV2ZXJzZSB0
aGUgb3JkZXIuCisgTWFrZXMgc3VyZSB0aGF0IGEgc2hhZG93IGhvc3QgZWxlbWVudCBzaG91bGQg
YWN0IGxpa2UgYSBpZnJhbWUgZWxlbWVudC48L3A+CiA8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4K
IDxzY3JpcHQ+CitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cignI2NvbnNvbGUnKS50ZXh0Q29udGVudCArPSAobXNnICsgJ1xuJyk7Cit9CisKK2Z1bmN0aW9u
IGRlc2NyaXB0aW9uKGVsZW1lbnQpIHsKKyAgIHZhciBtc2cgPSAnJzsKKyAgICBpZiAoZWxlbWVu
dC5pZCkgeworICAgICAgbXNnICs9ICdpZDonICsgZWxlbWVudC5pZDsKKyAgICB9CisgICAgbXNn
ICs9ICcodGFiSW5kZXg9JyArIGVsZW1lbnQudGFiSW5kZXggKyAnKSc7CisgICAgcmV0dXJuIG1z
ZzsKK30KKworZnVuY3Rpb24gb25Gb2N1cyhldmVudCkgeworICAgIGxvZyhkZXNjcmlwdGlvbihl
dmVudC50YXJnZXQpICsgJyBpcyBmb2N1c2VkLicpOworfQorCitmdW5jdGlvbiBhZGRGb2N1c0V2
ZW50TGlzdGVuZXIoZWxlbWVudCkgeworICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9j
dXMnLCBvbkZvY3VzLCBmYWxzZSk7Cit9CisKIGZ1bmN0aW9uIGNyZWF0ZVRleHRJbnB1dEVsZW1l
bnQoZG9jLCBpZCwgdGFiSW5kZXgpIHsKICAgICB2YXIgaW5wdXQgPSBkb2MuY3JlYXRlRWxlbWVu
dCgnaW5wdXQnKTsKICAgICBpbnB1dC50eXBlID0gJ3RleHQnOwogICAgIGlucHV0LmlkID0gaWQ7
CiAgICAgaW5wdXQudGFiSW5kZXggPSB0YWJJbmRleDsKKyAgICBhZGRGb2N1c0V2ZW50TGlzdGVu
ZXIoaW5wdXQpOwogICAgIHJldHVybiBpbnB1dDsKIH0KIApAQCAtMjUsMTEgKzQ0LDEwIEBAIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKIAogICAgIGZ1bmN0aW9uIGFkZFNoYWRv
d0hvc3QoZG9jKSB7CiAgICAgICAgIHZhciBzaGFkb3dIb3N0ID0gZG9jLmNyZWF0ZUVsZW1lbnQo
J3AnKTsKLSAgICAgICAgc2hhZG93SG9zdC5pZCA9ICdob3N0LTAxJzsKLSAgICAgICAgc2hhZG93
SG9zdC50YWJJbmRleCA9IC0xOworICAgICAgICBzaGFkb3dIb3N0LnRhYkluZGV4ID0gLTE7ICAv
LyBUaGlzIHNoYWRvdyBob3N0IChhbmQgYSBzaGFkb3cgdHJlZSBpbiB0aGF0KSBzaG91bGQgYmUg
c2tpcHBlZC4KICAgICAgICAgdmFyIHNoYWRvdyA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290
KHNoYWRvd0hvc3QpOwogICAgICAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChzaGFkb3dIb3N0KTsK
LSAgICAgICAgc2hhZG93LmFwcGVuZENoaWxkKGNyZWF0ZVRleHRJbnB1dEVsZW1lbnQoZG9jLCAn
aW5wdXQtMDMnLCAwKSk7CisgICAgICAgIHNoYWRvdy5hcHBlbmRDaGlsZChjcmVhdGVUZXh0SW5w
dXRFbGVtZW50KGRvYywgJ3NoYWRvdy1pbnB1dC0wMycsIDApKTsKICAgICB9CiAgICAgYWRkU2hh
ZG93SG9zdChkb2MpOwogCkBAIC0zNywyOSArNTUsMjcgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgewogCiAgICAgZnVuY3Rpb24gYWRkSWZyYW1lKGRvYykgewogICAgICAgICB2
YXIgaWZyYW1lID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwotICAgICAgICBpZnJhbWUu
aWQgPSAnaWZyYW1lJzsKICAgICAgICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKICAg
ICAgICAgZG9jID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudDsKIAotICAgICAgICBkb2MuYm9keS5h
cHBlbmRDaGlsZChjcmVhdGVUZXh0SW5wdXRFbGVtZW50KGRvYywgJ2lucHV0LTA1JywgMCkpOwot
ICAgICAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChjcmVhdGVUZXh0SW5wdXRFbGVtZW50KGRvYywg
J2lucHV0LTA2JywgMSkpOwotICAgICAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChjcmVhdGVUZXh0
SW5wdXRFbGVtZW50KGRvYywgJ2lucHV0LTA3JywgLTEpKTsKKyAgICAgICAgZG9jLmJvZHkuYXBw
ZW5kQ2hpbGQoY3JlYXRlVGV4dElucHV0RWxlbWVudChkb2MsICdpZnJhbWUtaW5wdXQtMDUnLCAw
KSk7CisgICAgICAgIGRvYy5ib2R5LmFwcGVuZENoaWxkKGNyZWF0ZVRleHRJbnB1dEVsZW1lbnQo
ZG9jLCAnaWZyYW1lLWlucHV0LTA2JywgMSkpOworICAgICAgICBkb2MuYm9keS5hcHBlbmRDaGls
ZChjcmVhdGVUZXh0SW5wdXRFbGVtZW50KGRvYywgJ2lmcmFtZS1pbnB1dC0wNycsIC0xKSk7CiAK
ICAgICAgICAgZnVuY3Rpb24gYWRkU2hhZG93SG9zdChkb2MpIHsKICAgICAgICAgICAgIHZhciBz
aGFkb3dIb3N0ID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ3AnKTsKLSAgICAgICAgICAgIHNoYWRvd0hv
c3QuaWQgPSAnaG9zdC0wMic7CiAgICAgICAgICAgICBzaGFkb3dIb3N0LnRhYkluZGV4ID0gMTsK
ICAgICAgICAgICAgIHZhciBzaGFkb3cgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChzaGFk
b3dIb3N0KTsKICAgICAgICAgICAgIGRvYy5ib2R5LmFwcGVuZENoaWxkKHNoYWRvd0hvc3QpOwog
Ci0gICAgICAgICAgICBzaGFkb3cuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4dElucHV0RWxlbWVudChk
b2MsICdpbnB1dC0wOCcsIDApKTsKLSAgICAgICAgICAgIHNoYWRvdy5hcHBlbmRDaGlsZChjcmVh
dGVUZXh0SW5wdXRFbGVtZW50KGRvYywgJ2lucHV0LTA5JywgMSkpOwotICAgICAgICAgICAgc2hh
ZG93LmFwcGVuZENoaWxkKGNyZWF0ZVRleHRJbnB1dEVsZW1lbnQoZG9jLCAnaW5wdXQtMTAnLCAt
MSkpOworICAgICAgICAgICAgc2hhZG93LmFwcGVuZENoaWxkKGNyZWF0ZVRleHRJbnB1dEVsZW1l
bnQoZG9jLCAnaWZyYW1lLXNoYWRvdy1pbnB1dC0wOCcsIDApKTsKKyAgICAgICAgICAgIHNoYWRv
dy5hcHBlbmRDaGlsZChjcmVhdGVUZXh0SW5wdXRFbGVtZW50KGRvYywgJ2lmcmFtZS1zaGFkb3ct
aW5wdXQtMDknLCAxKSk7CisgICAgICAgICAgICBzaGFkb3cuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4
dElucHV0RWxlbWVudChkb2MsICdpZnJhbWUtc2hhZG93LWlucHV0LTEwJywgLTEpKTsKICAgICAg
ICAgfQogICAgICAgICBhZGRTaGFkb3dIb3N0KGRvYyk7CiAKLSAgICAgICAgZG9jLmJvZHkuYXBw
ZW5kQ2hpbGQoY3JlYXRlVGV4dElucHV0RWxlbWVudChkb2MsICdpbnB1dC0xMScsIDIpKTsKLSAg
ICAgICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4dElucHV0RWxlbWVudChkb2MsICdp
bnB1dC0xMicsIDEpKTsKKyAgICAgICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4dElu
cHV0RWxlbWVudChkb2MsICdpZnJhbWUtaW5wdXQtMTEnLCAyKSk7CisgICAgICAgIGRvYy5ib2R5
LmFwcGVuZENoaWxkKGNyZWF0ZVRleHRJbnB1dEVsZW1lbnQoZG9jLCAnaWZyYW1lLWlucHV0LTEy
JywgMSkpOwogICAgIH0KICAgICBhZGRJZnJhbWUoZG9jKTsKIApAQCAtNjcsNDAgKzgzLDIwIEBA
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICBkb2MuYm9keS5hcHBlbmRD
aGlsZChjcmVhdGVUZXh0SW5wdXRFbGVtZW50KGRvYywgJ2lucHV0LTE0JywgMCkpOwogICAgIGRv
Yy5ib2R5LmFwcGVuZENoaWxkKGNyZWF0ZVRleHRJbnB1dEVsZW1lbnQoZG9jLCAnaW5wdXQtMTUn
LCAyKSk7CiAKLSAgICB0ZXN0Rm9jdXNOYXZpZ2F0aW9uRm93cmFkKFsKLSAgICAgICAgJ2lucHV0
LTAxJywKLSAgICAgICAgJ2lucHV0LTEzJywKLSAgICAgICAgJ2lucHV0LTE1JywKLSAgICAgICAg
J2lucHV0LTAyJywKLSAgICAgICAgJ2hvc3QtMDEvaW5wdXQtMDMnLAotICAgICAgICAnaW5wdXQt
MDQnLAotICAgICAgICAnaWZyYW1lL2lucHV0LTA2JywKLSAgICAgICAgJ2lmcmFtZS9ob3N0LTAy
JywKLSAgICAgICAgJ2lmcmFtZS9ob3N0LTAyL2lucHV0LTA5JywKLSAgICAgICAgJ2lmcmFtZS9o
b3N0LTAyL2lucHV0LTA4JywKLSAgICAgICAgJ2lmcmFtZS9pbnB1dC0xMicsCi0gICAgICAgICdp
ZnJhbWUvaW5wdXQtMTEnLAotICAgICAgICAnaWZyYW1lL2lucHV0LTA1JywKLSAgICAgICAgJ2lu
cHV0LTE0JywKLSAgICBdKTsKLQotICAgIHRlc3RGb2N1c05hdmlnYXRpb25CYWNrd2FyZChbCi0g
ICAgICAgICdpbnB1dC0xNCcsCi0gICAgICAgICdpZnJhbWUvaW5wdXQtMDUnLAotICAgICAgICAn
aWZyYW1lL2lucHV0LTExJywKLSAgICAgICAgJ2lmcmFtZS9pbnB1dC0xMicsCi0gICAgICAgICdp
ZnJhbWUvaG9zdC0wMi9pbnB1dC0wOCcsCi0gICAgICAgICdpZnJhbWUvaG9zdC0wMi9pbnB1dC0w
OScsCi0gICAgICAgICdpZnJhbWUvaG9zdC0wMicsCi0gICAgICAgICdpZnJhbWUvaW5wdXQtMDYn
LAotICAgICAgICAnaW5wdXQtMDQnLAotICAgICAgICAnaG9zdC0wMS9pbnB1dC0wMycsCi0gICAg
ICAgICdpbnB1dC0wMicsCi0gICAgICAgICdpbnB1dC0xNScsCi0gICAgICAgICdpbnB1dC0xMycs
Ci0gICAgICAgICdpbnB1dC0wMScsCi0gICAgXSk7CisgICAgbG9nKCdGb2N1cyBpbnB1dC0wMS4n
KTsKKyAgICBkb2MuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTAxJykuZm9jdXMoKTsKIAorICAgIGlm
ICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgdmFyIHByZXNzZWQgPSAxMTsKKyAgICAg
ICAgbG9nKCdcblByZXNzIFRhYiAnICsgcHJlc3NlZCArICcgdGltZXMuJyk7CisgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgcHJlc3NlZDsgKytpKSB7CisgICAgICAgICAgICBldmVudFNlbmRl
ci5rZXlEb3duKCdcdCcpOworICAgICAgICB9CisgICAgICAgIGxvZygnXG5QcmVzcyBTaGlmdC1U
YWIgJyArIHByZXNzZWQgKyAnIHRpbWVzLicpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHByZXNzZWQ7ICsraSkgeworICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bignXHQnLCBb
J3NoaWZ0S2V5J10pOworICAgICAgICB9CisgICB9CiAgICBsb2coJ1xuVGVzdCBmaW5pc2hlZC4n
KTsKIH0KIDwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>