<?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>79219</bug_id>
          
          <creation_ts>2012-02-22 03:16:21 -0800</creation_ts>
          <short_desc>REGRESSION(r108468): Broke Chromium Win release build (Requested by bashi on #webkit).</short_desc>
          <delta_ts>2012-02-22 03:20:18 -0800</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>77522</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>bashi</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>561806</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-22 03:16:21 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/108468 broke the build:
Broke Chromium Win release build (Requested by bashi 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>561807</commentid>
    <comment_count>1</comment_count>
      <attachid>128169</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-22 03:16:57 -0800</bug_when>
    <thetext>Created attachment 128169
ROLLOUT of r108468

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>561808</commentid>
    <comment_count>2</comment_count>
      <attachid>128169</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-02-22 03:20:12 -0800</bug_when>
    <thetext>Comment on attachment 128169
ROLLOUT of r108468

Clearing flags on attachment: 128169

Committed r108476: &lt;http://trac.webkit.org/changeset/108476&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561809</commentid>
    <comment_count>3</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-02-22 03:20:18 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128169</attachid>
            <date>2012-02-22 03:16:57 -0800</date>
            <delta_ts>2012-02-22 03:20:12 -0800</delta_ts>
            <desc>ROLLOUT of r108468</desc>
            <filename>bug-79219-20120222111853.patch</filename>
            <type>text/plain</type>
            <size>52784</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
Yzc2YWE2ZTMzMmZkZjc3MGZiOTI1NDUxZWYxZTI2NDI1ZmNlNTZkLi4xZTNlNmEwZDdkYTk0NDE2
Y2Y0N2RjOGRlNGI2NGU1ODk1ZDgxYjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxMi0wMi0yMiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwODQ2OC4KKyAg
ICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTA4NDY4CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTIxOQorCisgICAgICAgIEJy
b2tlIENocm9taXVtIFdpbiByZWxlYXNlIGJ1aWxkIChSZXF1ZXN0ZWQgYnkgYmFzaGkgb24KKyAg
ICAgICAgI3dlYmtpdCkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxMi0wMi0y
MiAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRk
aW5nIFdlYlNvY2tldCBwZXItZnJhbWUgREVGTEFURSBleHRlbnNpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBm
OWI0YTUwMjE5YTEwZGUyMzA3NGEyOWQzMmYyYTQxNzc0MmJiNzNkLi42MzBlNmEzM2NmMzY3MTZj
NjdiNzFkZWQzMGUyNTgwZjAyYWFjMmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIw
MTItMDItMjIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMDg0NjguCisgICAgICAgIGh0dHA6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEwODQ2OAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkyMTkKKworICAgICAgICBCcm9rZSBDaHJvbWl1bSBX
aW4gcmVsZWFzZSBidWlsZCAoUmVxdWVzdGVkIGJ5IGJhc2hpIG9uCisgICAgICAgICN3ZWJraXQp
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2Nr
ZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpkaWRDb25uZWN0KToKKyAgICAg
ICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0Q2hhbm5lbDo6Y29ubmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRD
aGFubmVsOjpmYWlsKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OnByb2Nl
c3NGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpzZW5kRnJhbWUp
OgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAqIHdl
YnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHA6IFJlbW92ZWQuCisgICAgICAgICog
d2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmg6IFJlbW92ZWQuCisKIDIwMTItMDIt
MjAgIFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgPHN0eWxlIHNjb3BlZD46IEFkZCBydW50aW1lLWZsYWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
UGxhdGZvcm0uaAppbmRleCBiNDk4OTBiNmMzMjk0OWFiNzkzMGIyNmM4NmY3YWE0OTYzMGE4YmZh
Li5iZjZhZDZlZGZhNWU0OGMxODg5MjU5MjA3MTNkYTE5MWM2OGVkN2FkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTkzLDggKzExOTMsNCBAQAogI2RlZmluZSBXVEZf
VVNFX1dURlVSTCAwCiAjZW5kaWYKIAotI2lmICFQTEFURk9STShRVCkgJiYgIVBMQVRGT1JNKEVG
TCkKLSNkZWZpbmUgV1RGX1VTRV9aTElCIDEKLSNlbmRpZgotCiAjZW5kaWYgLyogV1RGX1BsYXRm
b3JtX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOWMyMDc2MTRiMDg1YmJhZDc4MjQxZTc2
YzAwZTc5NDYxMmI5Y2M4OC4uNGY4M2M2M2QyY2ZhOGMwYzMwOTE2ZTU2ZDllM2MzNGRhODM1MTQ5
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIwNTYsNyArMjA1Niw2IEBAIElGIChFTkFCTEVf
V0VCX1NPQ0tFVFMpCiAgICAgICAgIHdlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWxDbGllbnRXcmFwcGVyLmNwcAogICAgICAgICB3ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKICAg
ICAgICAgd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAotICAgICAgICB3ZWJzb2NrZXRz
L1dlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwCiAgICAgICAgIHdlYnNvY2tldHMvV2ViU29ja2V0
RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAKICAgICAgICAgd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5k
c2hha2UuY3BwCiAgICAgICAgIHdlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdC5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGIzMzUzNjM4OGQ0M2I0Yzg0YWM2
M2UxMjFiZjFjMDk1ODIzZmEyYTEuLjYzOWYxYjRiMjgxZTExN2VkZWQ0ODk1OWUwZjE0NWQ3M2Mz
ODEyMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDMzOSw4ICs0MzM5LDYg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNv
Y2tldENoYW5uZWwuaCBcCiAJU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5oIFwKLQlTb3VyY2UvV2Vi
Q29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwIFwKLQlTb3VyY2UvV2Vi
Q29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVGcmFtZXIuaCBcCiAJU291cmNlL1dlYkNv
cmUvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3dl
YnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvd2Vic29ja2V0
cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBmYzFl
NGEzNGRhNWQ5NWVhMDU0MzE0MWJlYjE2NDAzY2ViYzI1MDAyLi5iODFlYzZmYzk4MjM4OWNhYmVj
MjgzZTYwNDQxNzJlOGQ5ODg4YTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTM2NjYsNyArMzY2Niw2IEBA
IGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XRUJfU09DS0VUUz0xKSB7CiAgICAgICAgIHdlYnNv
Y2tldHMvV2ViU29ja2V0LmggXAogICAgICAgICB3ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwu
aCBcCiAgICAgICAgIHdlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oIFwKLSAgICAg
ICAgd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmggXAogICAgICAgICB3ZWJzb2Nr
ZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuaCBcCiAgICAgICAgIHdlYnNvY2tldHMv
V2ViU29ja2V0RXh0ZW5zaW9uUHJvY2Vzc29yLmggXAogICAgICAgICB3ZWJzb2NrZXRzL1dlYlNv
Y2tldEZyYW1lLmggXApAQCAtMzY3OCw3ICszNjc3LDYgQEAgY29udGFpbnMoREVGSU5FUywgRU5B
QkxFX1dFQl9TT0NLRVRTPTEpIHsKICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAgd2Vic29ja2V0
cy9XZWJTb2NrZXQuY3BwIFwKICAgICAgICAgd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNw
cCBcCi0gICAgICAgIHdlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAgXAogICAg
ICAgICB3ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwIFwKICAgICAg
ICAgd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwIFwKICAgICAgICAgd2Vic29ja2V0
cy9XZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNzEw
MmE0MDU5NmQxNjg5YzJmZDg0NjM0MGY5OThiOTYzNmI4YzZjMy4uNzFlOTYzNjMyMTc5NWNlMTU1
MmQ5NGM3MWQ2ZTkwNmM5NmMwODcyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNDgxNyw4ICs0ODE3
LDYgQEAKICAgICAgICAgICAgICd3ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwJywKICAg
ICAgICAgICAgICd3ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaCcsCiAgICAgICAgICAgICAn
d2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsQ2xpZW50LmgnLAotICAgICAgICAgICAgJ3dlYnNv
Y2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAnLAotICAgICAgICAgICAgJ3dlYnNvY2tl
dHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5oJywKICAgICAgICAgICAgICd3ZWJzb2NrZXRzL1dl
YlNvY2tldERlZmxhdGVyLmNwcCcsCiAgICAgICAgICAgICAnd2Vic29ja2V0cy9XZWJTb2NrZXRE
ZWZsYXRlci5oJywKICAgICAgICAgICAgICd3ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRp
c3BhdGNoZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggMTM1ZGUyNTA3ZDRjNTcyOWQxNjBiM2Y3MjA5NjZjYTcwMGU2MzE1MC4uMDYx
YzQzZjExNjQxMWQwYzU3Y2FiZGM4NmY2NTkxOGU4Yzc2NDBlYiAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTczNDYyLDE0ICs3MzQ2Miw2IEBA
CiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHdlYnNv
Y2tldHNcV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJ
PEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHdlYnNvY2tldHNcV2ViU29ja2V0RGVmbGF0ZUZy
YW1lci5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIu
Llx3ZWJzb2NrZXRzXFdlYlNvY2tldERlZmxhdGVyLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMTE0ZTJkMzBkM2EyYmMzODMxNzg1ZDFiYzQ2ZWJhZDk5YTc5NzhmZi4uMmI3ZDc2Nzk0ZTMw
YmU2NThhNmNmMjE3N2Y4ZGZlNDA2NGJmNGYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM2Nyw4ICsxMzY3LDYgQEAKIAkJ
NEExRTcxOTYxNEUxMDFGOTAwNjI2RjlEIC8qIEpTSFRNTFNoYWRvd0VsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBMUU3MTk0MTRFMTAxRjkw
MDYyNkY5RCAvKiBKU0hUTUxTaGFkb3dFbGVtZW50LmggKi87IH07CiAJCTRBMUU3MUE1MTRFMTA2
QUMwMDYyNkY5RCAvKiBKU1NoYWRvd1Jvb3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNEExRTcxQTMxNEUxMDZBQzAwNjI2RjlEIC8qIEpTU2hhZG93
Um9vdC5jcHAgKi87IH07CiAJCTRBMUU3MUE2MTRFMTA2QUMwMDYyNkY5RCAvKiBKU1NoYWRvd1Jv
b3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBMUU3
MUE0MTRFMTA2QUMwMDYyNkY5RCAvKiBKU1NoYWRvd1Jvb3QuaCAqLzsgfTsKLQkJNEEyOTIyMkIx
NEY0NjhCQTAwMjFGNzdFIC8qIFdlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEEyOTIyMjkxNEY0NjhCQTAwMjFG
NzdFIC8qIFdlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwICovOyB9OwotCQk0QTI5MjIyQzE0RjQ2
OEJBMDAyMUY3N0UgLyogV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEEyOTIyMkExNEY0NjhCQTAwMjFGNzdFIC8q
IFdlYlNvY2tldERlZmxhdGVGcmFtZXIuaCAqLzsgfTsKIAkJNEE0QTIzNDYxNEYxRTE0NDAwNDZG
QkYxIC8qIFdlYlNvY2tldEZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0QTRBMjM0NTE0RjFFMTQ0MDA0NkZCRjEgLyogV2ViU29ja2V0RnJhbWUu
aCAqLzsgfTsKIAkJNEE2RTlGQzMxM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE2RTlG
QzExM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuY3BwICovOyB9OwogCQk0QTZF
OUZDNDEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE2RTlGQzIxM0MxN0QxRDAwNDZBN0Y4
IC8qIEZvbnRGZWF0dXJlVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtODIzMyw4ICs4MjMxLDYgQEAKIAkJNEExRTcxOTQxNEUxMDFGOTAw
NjI2RjlEIC8qIEpTSFRNTFNoYWRvd0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNIVE1MU2hhZG93RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0QTFFNzFBMzE0RTEwNkFDMDA2MjZGOUQgLyogSlNTaGFkb3dSb290LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2hhZG93Um9vdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBMUU3MUE0MTRFMTA2QUMwMDYyNkY5RCAvKiBKU1NoYWRv
d1Jvb3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTaGFkb3dSb290Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTRBMjkyMjI5MTRGNDY4QkEwMDIxRjc3RSAv
KiBXZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk0QTI5MjIyQTE0RjQ2OEJBMDAyMUY3N0UgLyogV2ViU29ja2V0RGVmbGF0ZUZy
YW1lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTb2NrZXREZWZsYXRl
RnJhbWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBNEEyMzQ1MTRGMUUxNDQw
MDQ2RkJGMSAvKiBXZWJTb2NrZXRGcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJTb2NrZXRGcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QTZF
OUZDMTEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb250RmVhdHVyZVZhbHVlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEE2RTlGQzIxM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0
dXJlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udEZlYXR1cmVW
YWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ4NTgsOCArMTQ4NTQsNiBA
QAogCQkJCTUxMEQ0QTQ3MTAzMTc3QTIwMDQ5RUE1NCAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCAq
LywKIAkJCQk1MTBENEE0ODEwMzE3N0EyMDA0OUVBNTQgLyogV2ViU29ja2V0Q2hhbm5lbC5oICov
LAogCQkJCTUxMEQ0QTQ5MTAzMTc3QTIwMDQ5RUE1NCAvKiBXZWJTb2NrZXRDaGFubmVsQ2xpZW50
LmggKi8sCi0JCQkJNEEyOTIyMjkxNEY0NjhCQTAwMjFGNzdFIC8qIFdlYlNvY2tldERlZmxhdGVG
cmFtZXIuY3BwICovLAotCQkJCTRBMjkyMjJBMTRGNDY4QkEwMDIxRjc3RSAvKiBXZWJTb2NrZXRE
ZWZsYXRlRnJhbWVyLmggKi8sCiAJCQkJNEFFMDJBQkIxNEU4QTlEMjAwQkMzQkE3IC8qIFdlYlNv
Y2tldERlZmxhdGVyLmNwcCAqLywKIAkJCQk0QUUwMkFCQzE0RThBOUQyMDBCQzNCQTcgLyogV2Vi
U29ja2V0RGVmbGF0ZXIuaCAqLywKIAkJCQk0QTk1N0YwMzE0RTI0MTEwMDA0OURCRkIgLyogV2Vi
U29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAgKi8sCkBAIC0yNDI1MCw3ICsyNDI0NCw2IEBA
CiAJCQkJNTE4QTM0QzIxMDI2QzgzMTAwMUI2ODk2IC8qIFdlYlNvY2tldC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTEwRDRBNEYxMDMxNzdBMjAwNDlFQTU0IC8qIFdlYlNvY2tldENoYW5uZWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxMEQ0QTUwMTAzMTc3QTIwMDQ5RUE1NCAvKiBXZWJTb2NrZXRD
aGFubmVsQ2xpZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk0QTI5MjIyQzE0RjQ2OEJBMDAyMUY3
N0UgLyogV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEFFMDJB
QkUxNEU4QTlEMjAwQkMzQkE3IC8qIFdlYlNvY2tldERlZmxhdGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0QTk1N0YwNzE0RTI0MTMwMDA0OURCRkIgLyogV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0
Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEFERTI1RkExNEUzQkI0QzAwNEMyMjEzIC8qIFdl
YlNvY2tldEV4dGVuc2lvblByb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzIxMCw3ICsy
NzIwMyw2IEBACiAJCQkJMUNBRjM0ODIwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVj
dC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxOEEzNEMxMTAyNkM4MzEwMDFCNjg5NiAvKiBXZWJT
b2NrZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEwRDRBNEUxMDMxNzdBMjAwNDlFQTU0IC8q
IFdlYlNvY2tldENoYW5uZWwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNEEyOTIyMkIxNEY0NjhC
QTAwMjFGNzdFIC8qIFdlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNEFFMDJBQkQxNEU4QTlEMjAwQkMzQkE3IC8qIFdlYlNvY2tldERlZmxhdGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTRBOTU3RjA2MTRFMjQxMkEwMDQ5REJGQiAvKiBXZWJTb2NrZXRFeHRl
bnNpb25EaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQUJBRTQ0MTA0M0FCNEEw
MDhDNTI2MCAvKiBXZWJTb2NrZXRIYW5kc2hha2UuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggN2RkODU0ZWQxNTJhMzIxZjA0OTIx
MTJjZTU1YTdmMTA5ZTg5MzNlNy4uMzZkYmI2ZjMyYzI0OTgzYzIwZjg1OGUwZGFjNzc2MWZiNjli
MTJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtNDc4LDcg
KzQ3OCw2IEBAIHZvaWQgV2ViU29ja2V0OjpkaWRDb25uZWN0KCkKICAgICBBU1NFUlQoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICBtX3N0YXRlID0gT1BFTjsKICAgICBtX3N1YnByb3Rv
Y29sID0gbV9jaGFubmVsLT5zdWJwcm90b2NvbCgpOwotICAgIG1fZXh0ZW5zaW9ucyA9IG1fY2hh
bm5lbC0+ZXh0ZW5zaW9ucygpOwogICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkub3BlbkV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggYzQwYjA5ODU3ZTZhZDcw
NDhhZTFkNTBjYzkyYzY1MTcyNGM3NGU2Ny4uZWMwNzA2ZGI0Zjg0OGY1NzU1MWM5ODdmMjdiYzQ0
ZTJkYzgwNDI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENo
YW5uZWwuY3BwCkBAIC0xMjcsOCArMTI3LDYgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpjb25u
ZWN0KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCkKICAgICBBU1NFUlQo
IW1fc3VzcGVuZGVkKTsKICAgICBtX2hhbmRzaGFrZSA9IGFkb3B0UHRyKG5ldyBXZWJTb2NrZXRI
YW5kc2hha2UodXJsLCBwcm90b2NvbCwgbV9kb2N1bWVudCwgbV91c2VIaXhpZTc2UHJvdG9jb2wp
KTsKICAgICBtX2hhbmRzaGFrZS0+cmVzZXQoKTsKLSAgICBpZiAoIW1fdXNlSGl4aWU3NlByb3Rv
Y29sICYmIG1fZGVmbGF0ZUZyYW1lci5jYW5EZWZsYXRlKCkpCi0gICAgICAgIG1faGFuZHNoYWtl
LT5hZGRFeHRlbnNpb25Qcm9jZXNzb3IobV9kZWZsYXRlRnJhbWVyLmNyZWF0ZUV4dGVuc2lvblBy
b2Nlc3NvcigpKTsKICAgICBpZiAobV9pZGVudGlmaWVyKQogICAgICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYlNvY2tldChtX2RvY3VtZW50LCBtX2lkZW50aWZpZXIs
IHVybCwgbV9kb2N1bWVudC0+dXJsKCkpOwogICAgIHJlZigpOwpAQCAtMjMwLDcgKzIyOCw2IEBA
IHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbikKICAgICAg
ICAgbV9zaG91bGREaXNjYXJkUmVjZWl2ZWREYXRhID0gdHJ1ZTsKICAgICAgICAgaWYgKG1fYnVm
ZmVyKQogICAgICAgICAgICAgc2tpcEJ1ZmZlcihtX2J1ZmZlclNpemUpOyAvLyBTYXZlIG1lbW9y
eS4KLSAgICAgICAgbV9kZWZsYXRlRnJhbWVyLmRpZEZhaWwoKTsKICAgICAgICAgbV9oYXNDb250
aW51b3VzRnJhbWUgPSBmYWxzZTsKICAgICAgICAgbV9jb250aW51b3VzRnJhbWVEYXRhLmNsZWFy
KCk7CiAgICAgfQpAQCAtNjIxLDEyICs2MTgsNiBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6OnBy
b2Nlc3NGcmFtZSgpCiAgICAgQVNTRVJUKG1fYnVmZmVyIDwgZnJhbWVFbmQpOwogICAgIEFTU0VS
VChmcmFtZUVuZCA8PSBtX2J1ZmZlciArIG1fYnVmZmVyU2l6ZSk7CiAKLSAgICBJbmZsYXRlUmVz
dWx0SG9sZGVyIGluZmxhdGVSZXN1bHQgPSBtX2RlZmxhdGVGcmFtZXIuaW5mbGF0ZShmcmFtZSk7
Ci0gICAgaWYgKCFpbmZsYXRlUmVzdWx0LnN1Y2NlZWRlZCgpKSB7Ci0gICAgICAgIGZhaWwoaW5m
bGF0ZVJlc3VsdC5mYWlsdXJlUmVhc29uKCkpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
fQotCiAgICAgLy8gVmFsaWRhdGUgdGhlIGZyYW1lIGRhdGEuCiAgICAgaWYgKFdlYlNvY2tldEZy
YW1lOjppc1Jlc2VydmVkT3BDb2RlKGZyYW1lLm9wQ29kZSkpIHsKICAgICAgICAgZmFpbCgiVW5y
ZWNvZ25pemVkIGZyYW1lIG9wY29kZTogIiArIFN0cmluZzo6bnVtYmVyKGZyYW1lLm9wQ29kZSkp
OwpAQCAtMTAyMCwxMyArMTAxMSw2IEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6c2VuZEZyYW1l
KFdlYlNvY2tldEZyYW1lOjpPcENvZGUgb3BDb2RlLCBjb25zdCBjaGFyKiBkYXRhCiAKICAgICBB
U1NFUlQoIShvcENvZGUgJiB+b3BDb2RlTWFzaykpOyAvLyBDaGVja3Mgd2hldGhlciAib3BDb2Rl
IiBmaXRzIGluIHRoZSByYW5nZSBvZiBvcENvZGVzLgogICAgIFdlYlNvY2tldEZyYW1lIGZyYW1l
KG9wQ29kZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIGRhdGEsIGRhdGFMZW5ndGgpOwotCi0gICAgRGVm
bGF0ZVJlc3VsdEhvbGRlciBkZWZsYXRlUmVzdWx0ID0gbV9kZWZsYXRlRnJhbWVyLmRlZmxhdGUo
ZnJhbWUpOwotICAgIGlmICghZGVmbGF0ZVJlc3VsdC5zdWNjZWVkZWQoKSkgewotICAgICAgICBm
YWlsKGRlZmxhdGVSZXN1bHQuZmFpbHVyZVJlYXNvbigpKTsKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0KLQogICAgIFZlY3RvcjxjaGFyPiBmcmFtZURhdGE7CiAgICAgbWFrZUZyYW1lRGF0
YShmcmFtZSwgZnJhbWVEYXRhKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29j
a2V0cy9XZWJTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNv
Y2tldENoYW5uZWwuaAppbmRleCA2ZDFmZWJiY2EwNmUxZWQ3ZDVjZWUxNTBkODc2MGFmNzgwNDYy
MTY2Li40YmIyOGM5ZjJiMDVhZjM0OTk3YmUwN2E2MmYxMmJjNGU5ODM1ODE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaApAQCAtMzcsNyArMzcsNiBA
QAogI2luY2x1ZGUgIlNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIlRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlICJX
ZWJTb2NrZXREZWZsYXRlRnJhbWVyLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0RnJhbWUuaCIKICNp
bmNsdWRlICJXZWJTb2NrZXRIYW5kc2hha2UuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KQEAg
LTIzMiw4ICsyMzEsNiBAQCBwcml2YXRlOgogICAgIE93blB0cjxGaWxlUmVhZGVyTG9hZGVyPiBt
X2Jsb2JMb2FkZXI7CiAgICAgQmxvYkxvYWRlclN0YXR1cyBtX2Jsb2JMb2FkZXJTdGF0dXM7CiAj
ZW5kaWYKLQotICAgIFdlYlNvY2tldERlZmxhdGVGcmFtZXIgbV9kZWZsYXRlRnJhbWVyOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vi
c29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNv
Y2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDBjOWQzNTM2YmFiM2ViOTA4Y2NhYzczZjQ4YmNhODM3Zjc1YzVlYTYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vi
c29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI2
MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0
OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShXRUJfU09DS0VUUykK
LQotI2luY2x1ZGUgIldlYlNvY2tldERlZmxhdGVGcmFtZXIuaCIKLQotI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgotI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFdlYlNv
Y2tldEV4dGVuc2lvbkRlZmxhdGVGcmFtZSA6IHB1YmxpYyBXZWJTb2NrZXRFeHRlbnNpb25Qcm9j
ZXNzb3IgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYlNvY2tldEV4dGVuc2lv
bkRlZmxhdGVGcmFtZT4gY3JlYXRlKFdlYlNvY2tldERlZmxhdGVGcmFtZXIqIGZyYW1lcikKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0
ZUZyYW1lKGZyYW1lcikpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5XZWJTb2NrZXRFeHRlbnNpb25E
ZWZsYXRlRnJhbWUoKSB7IH0KLQotICAgIHZpcnR1YWwgU3RyaW5nIGhhbmRzaGFrZVN0cmluZygp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBwcm9jZXNzUmVzcG9uc2UoY29uc3QgSGFzaE1h
cDxTdHJpbmcsIFN0cmluZz4mKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBmYWlsdXJl
UmVhc29uKCkgT1ZFUlJJREUgeyByZXR1cm4gbV9mYWlsdXJlUmVhc29uOyB9Ci0KLXByaXZhdGU6
Ci0gICAgV2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lKFdlYlNvY2tldERlZmxhdGVGcmFt
ZXIqKTsKLQotICAgIFdlYlNvY2tldERlZmxhdGVGcmFtZXIqIG1fZnJhbWVyOwotICAgIGJvb2wg
bV9yZXNwb25zZVByb2Nlc3NlZDsKLSAgICBTdHJpbmcgbV9mYWlsdXJlUmVhc29uOwotfTsKLQot
Ly8gRlhJTUU6IFJlbW92ZSB2ZW5kb3IgcHJlZml4IGFmdGVyIHRoZSBzcGVjaWZpY2F0aW9uIG1h
dHVyZWQuCi1XZWJTb2NrZXRFeHRlbnNpb25EZWZsYXRlRnJhbWU6OldlYlNvY2tldEV4dGVuc2lv
bkRlZmxhdGVGcmFtZShXZWJTb2NrZXREZWZsYXRlRnJhbWVyKiBmcmFtZXIpCi0gICAgOiBXZWJT
b2NrZXRFeHRlbnNpb25Qcm9jZXNzb3IoIngtd2Via2l0LWRlZmxhdGUtZnJhbWUiKQotICAgICwg
bV9mcmFtZXIoZnJhbWVyKQotICAgICwgbV9yZXNwb25zZVByb2Nlc3NlZChmYWxzZSkKLXsKLSAg
ICBBU1NFUlQobV9mcmFtZXIpOwotfQotCi1TdHJpbmcgV2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0
ZUZyYW1lOjpoYW5kc2hha2VTdHJpbmcoKQotewotICAgIHJldHVybiBleHRlbnNpb25Ub2tlbigp
OyAvLyBObyBwYXJhbWV0ZXIKLX0KLQotYm9vbCBXZWJTb2NrZXRFeHRlbnNpb25EZWZsYXRlRnJh
bWU6OnByb2Nlc3NSZXNwb25zZShjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgc2VydmVy
UGFyYW1ldGVycykKLXsKLSNpZiBVU0UoWkxJQikKLSAgICBpZiAobV9yZXNwb25zZVByb2Nlc3Nl
ZCkgewotICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiUmVjZWl2ZWQgZHVwbGljYXRlIGRlZmxh
dGUtZnJhbWUgcmVzcG9uc2UiOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIG1f
cmVzcG9uc2VQcm9jZXNzZWQgPSB0cnVlOwotCi0gICAgaW50IGV4cGVjdGVkTnVtUGFyYW1ldGVy
cyA9IDA7Ci0gICAgaW50IHdpbmRvd0JpdHMgPSAxNTsKLSAgICBIYXNoTWFwPFN0cmluZywgU3Ry
aW5nPjo6Y29uc3RfaXRlcmF0b3IgcGFyYW1ldGVyID0gc2VydmVyUGFyYW1ldGVycy5maW5kKCJt
YXhfd2luZG93X2JpdHMiKTsKLSAgICBpZiAocGFyYW1ldGVyICE9IHNlcnZlclBhcmFtZXRlcnMu
ZW5kKCkpIHsKLSAgICAgICAgd2luZG93Qml0cyA9IHBhcmFtZXRlci0+c2Vjb25kLnRvSW50KCk7
Ci0gICAgICAgIGlmICh3aW5kb3dCaXRzIDwgOCB8fCB3aW5kb3dCaXRzID4gMTUpIHsKLSAgICAg
ICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9ICJSZWNlaXZlZCBpbnZhbGlkIG1heF93aW5kb3dfYml0
cyBwYXJhbWV0ZXIiOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAg
ICAgIGV4cGVjdGVkTnVtUGFyYW1ldGVycysrOwotICAgIH0KLQotICAgIFdlYlNvY2tldERlZmxh
dGVyOjpDb250ZXh0VGFrZU92ZXJNb2RlIG1vZGUgPSBXZWJTb2NrZXREZWZsYXRlcjo6VGFrZU92
ZXJDb250ZXh0OwotICAgIHBhcmFtZXRlciA9IHNlcnZlclBhcmFtZXRlcnMuZmluZCgibm9fY29u
dGV4dF90YWtlb3ZlciIpOwotICAgIGlmIChwYXJhbWV0ZXIgIT0gc2VydmVyUGFyYW1ldGVycy5l
bmQoKSkgewotICAgICAgICBpZiAoIXBhcmFtZXRlci0+c2Vjb25kLmlzTnVsbCgpKSB7Ci0gICAg
ICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiUmVjZWl2ZWQgaW52YWxpZCBub19jb250ZXh0X3Rh
a2VvdmVyIHBhcmFtZXRlciI7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0K
LSAgICAgICAgbW9kZSA9IFdlYlNvY2tldERlZmxhdGVyOjpEb05vdFRha2VPdmVyQ29udGV4dDsK
LSAgICAgICAgZXhwZWN0ZWROdW1QYXJhbWV0ZXJzKys7Ci0gICAgfQotCi0gICAgaWYgKGV4cGVj
dGVkTnVtUGFyYW1ldGVycyAhPSBzZXJ2ZXJQYXJhbWV0ZXJzLnNpemUoKSkgewotICAgICAgICBt
X2ZhaWx1cmVSZWFzb24gPSAiUmVjZWl2ZWQgdW5leHBlY3RlZCBkZWZsYXRlLWZyYW1lIHBhcmFt
ZXRlciI7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBtX2ZyYW1lci0+ZW5h
YmxlRGVmbGF0ZSh3aW5kb3dCaXRzLCBtb2RlKTsKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbHNlCi0g
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi19Ci0K
LURlZmxhdGVSZXN1bHRIb2xkZXI6OkRlZmxhdGVSZXN1bHRIb2xkZXIoV2ViU29ja2V0RGVmbGF0
ZUZyYW1lciogZnJhbWVyKQotICAgIDogbV9mcmFtZXIoZnJhbWVyKQotICAgICwgbV9zdWNjZWVk
ZWQodHJ1ZSkKLXsKLSAgICBBU1NFUlQobV9mcmFtZXIpOwotfQotCi1EZWZsYXRlUmVzdWx0SG9s
ZGVyOjp+RGVmbGF0ZVJlc3VsdEhvbGRlcigpCi17Ci0gICAgbV9mcmFtZXItPnJlc2V0RGVmbGF0
ZUNvbnRleHQoKTsKLX0KLQotdm9pZCBEZWZsYXRlUmVzdWx0SG9sZGVyOjpmYWlsKGNvbnN0IFN0
cmluZyYgZmFpbHVyZVJlYXNvbikKLXsKLSAgICBtX3N1Y2NlZWRlZCA9IGZhbHNlOwotICAgIG1f
ZmFpbHVyZVJlYXNvbiA9IGZhaWx1cmVSZWFzb247Ci19Ci0KLUluZmxhdGVSZXN1bHRIb2xkZXI6
OkluZmxhdGVSZXN1bHRIb2xkZXIoV2ViU29ja2V0RGVmbGF0ZUZyYW1lciogZnJhbWVyKQotICAg
IDogbV9mcmFtZXIoZnJhbWVyKQotICAgICwgbV9zdWNjZWVkZWQodHJ1ZSkKLXsKLSAgICBBU1NF
UlQobV9mcmFtZXIpOwotfQotCi1JbmZsYXRlUmVzdWx0SG9sZGVyOjp+SW5mbGF0ZVJlc3VsdEhv
bGRlcigpCi17Ci0gICAgbV9mcmFtZXItPnJlc2V0SW5mbGF0ZUNvbnRleHQoKTsKLX0KLQotdm9p
ZCBJbmZsYXRlUmVzdWx0SG9sZGVyOjpmYWlsKGNvbnN0IFN0cmluZyYgZmFpbHVyZVJlYXNvbikK
LXsKLSAgICBtX3N1Y2NlZWRlZCA9IGZhbHNlOwotICAgIG1fZmFpbHVyZVJlYXNvbiA9IGZhaWx1
cmVSZWFzb247Ci19Ci0KLVdlYlNvY2tldERlZmxhdGVGcmFtZXI6OldlYlNvY2tldERlZmxhdGVG
cmFtZXIoKQotICAgIDogbV9lbmFibGVkKGZhbHNlKQotewotfQotCi1QYXNzT3duUHRyPFdlYlNv
Y2tldEV4dGVuc2lvblByb2Nlc3Nvcj4gV2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6Y3JlYXRlRXh0
ZW5zaW9uUHJvY2Vzc29yKCkKLXsKLSAgICByZXR1cm4gV2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0
ZUZyYW1lOjpjcmVhdGUodGhpcyk7Ci19Ci0KLWJvb2wgV2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6
Y2FuRGVmbGF0ZSgpIGNvbnN0Ci17Ci0jaWYgVVNFKFpMSUIpCi0gICAgcmV0dXJuIHRydWU7Ci0j
ZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCi0jaWYgVVNFKFpMSUIpCi12b2lk
IFdlYlNvY2tldERlZmxhdGVGcmFtZXI6OmVuYWJsZURlZmxhdGUoaW50IHdpbmRvd0JpdHMsIFdl
YlNvY2tldERlZmxhdGVyOjpDb250ZXh0VGFrZU92ZXJNb2RlIG1vZGUpCi17Ci0gICAgbV9kZWZs
YXRlciA9IFdlYlNvY2tldERlZmxhdGVyOjpjcmVhdGUod2luZG93Qml0cywgbW9kZSk7Ci0gICAg
bV9pbmZsYXRlciA9IFdlYlNvY2tldEluZmxhdGVyOjpjcmVhdGUoKTsKLSAgICBpZiAoIW1fZGVm
bGF0ZXIgfHwgIW1faW5mbGF0ZXIpIHsKLSAgICAgICAgbV9kZWZsYXRlci5jbGVhcigpOwotICAg
ICAgICBtX2luZmxhdGVyLmNsZWFyKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYg
KCFtX2RlZmxhdGVyLT5pbml0aWFsaXplKCkgfHwgIW1faW5mbGF0ZXItPmluaXRpYWxpemUoKSkg
ewotICAgICAgICBtX2RlZmxhdGVyLmNsZWFyKCk7Ci0gICAgICAgIG1faW5mbGF0ZXIuY2xlYXIo
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBtX2VuYWJsZWQgPSB0cnVlOwotfQotI2Vu
ZGlmCi0KLURlZmxhdGVSZXN1bHRIb2xkZXIgV2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6ZGVmbGF0
ZShXZWJTb2NrZXRGcmFtZSYgZnJhbWUpCi17Ci0jaWYgVVNFKFpMSUIpCi0gICAgRGVmbGF0ZVJl
c3VsdEhvbGRlciByZXN1bHQodGhpcyk7Ci0gICAgaWYgKCFlbmFibGVkKCkgfHwgIVdlYlNvY2tl
dEZyYW1lOjppc05vbkNvbnRyb2xPcENvZGUoZnJhbWUub3BDb2RlKSB8fCAhZnJhbWUucGF5bG9h
ZExlbmd0aCkKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICBpZiAoIW1fZGVmbGF0ZXItPmFk
ZEJ5dGVzKGZyYW1lLnBheWxvYWQsIGZyYW1lLnBheWxvYWRMZW5ndGgpIHx8ICFtX2RlZmxhdGVy
LT5maW5pc2goKSkgewotICAgICAgICByZXN1bHQuZmFpbCgiRmFpbGVkIHRvIGNvbXByZXNzIGZy
YW1lIik7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIGZyYW1lLmNvbXByZXNz
ID0gdHJ1ZTsKLSAgICBmcmFtZS5wYXlsb2FkID0gbV9kZWZsYXRlci0+ZGF0YSgpOwotICAgIGZy
YW1lLnBheWxvYWRMZW5ndGggPSBtX2RlZmxhdGVyLT5zaXplKCk7Ci0gICAgcmV0dXJuIHJlc3Vs
dDsKLSNlbHNlCi0gICAgcmV0dXJuIERlZmxhdGVSZXN1bHRIb2xkZXIodGhpcyk7Ci0jZW5kaWYK
LX0KLQotdm9pZCBXZWJTb2NrZXREZWZsYXRlRnJhbWVyOjpyZXNldERlZmxhdGVDb250ZXh0KCkK
LXsKLSNpZiBVU0UoWkxJQikKLSAgICBpZiAobV9kZWZsYXRlcikKLSAgICAgICAgbV9kZWZsYXRl
ci0+cmVzZXQoKTsKLSNlbmRpZgotfQotCi1JbmZsYXRlUmVzdWx0SG9sZGVyIFdlYlNvY2tldERl
ZmxhdGVGcmFtZXI6OmluZmxhdGUoV2ViU29ja2V0RnJhbWUmIGZyYW1lKQotewotI2lmIFVTRSha
TElCKQotICAgIEluZmxhdGVSZXN1bHRIb2xkZXIgcmVzdWx0KHRoaXMpOwotICAgIGlmICghZnJh
bWUuY29tcHJlc3MpCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgaWYgKCFlbmFibGVkKCkg
fHwgIVdlYlNvY2tldEZyYW1lOjppc05vbkNvbnRyb2xPcENvZGUoZnJhbWUub3BDb2RlKSkgewot
ICAgICAgICByZXN1bHQuZmFpbCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBjb21wcmVzc2VkIGZyYW1l
Iik7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIGlmICghbV9pbmZsYXRlci0+
YWRkQnl0ZXMoZnJhbWUucGF5bG9hZCwgZnJhbWUucGF5bG9hZExlbmd0aCkgfHwgIW1faW5mbGF0
ZXItPmZpbmlzaCgpKSB7Ci0gICAgICAgIHJlc3VsdC5mYWlsKCJGYWlsZWQgdG8gZGVjb21wcmVz
cyBmcmFtZSIpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICBmcmFtZS5jb21w
cmVzcyA9IGZhbHNlOwotICAgIGZyYW1lLnBheWxvYWQgPSBtX2luZmxhdGVyLT5kYXRhKCk7Ci0g
ICAgZnJhbWUucGF5bG9hZExlbmd0aCA9IG1faW5mbGF0ZXItPnNpemUoKTsKLSAgICByZXR1cm4g
cmVzdWx0OwotI2Vsc2UKLSAgICByZXR1cm4gSW5mbGF0ZVJlc3VsdEhvbGRlcih0aGlzKTsKLSNl
bmRpZgotfQotCi12b2lkIFdlYlNvY2tldERlZmxhdGVGcmFtZXI6OnJlc2V0SW5mbGF0ZUNvbnRl
eHQoKQotewotI2lmIFVTRShaTElCKQotICAgIGlmIChtX2luZmxhdGVyKQotICAgICAgICBtX2lu
ZmxhdGVyLT5yZXNldCgpOwotI2VuZGlmCi19Ci0KLXZvaWQgV2ViU29ja2V0RGVmbGF0ZUZyYW1l
cjo6ZGlkRmFpbCgpCi17Ci0gICAgcmVzZXREZWZsYXRlQ29udGV4dCgpOwotICAgIHJlc2V0SW5m
bGF0ZUNvbnRleHQoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8g
RU5BQkxFKFdFQl9TT0NLRVRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0
cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dl
YlNvY2tldERlZmxhdGVGcmFtZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGU4
YmE4MzkwM2Y1YTJiNmRlMDc4MDcyYzNmZDU3MjdmNzJlN2JlNi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dl
YlNvY2tldERlZmxhdGVGcmFtZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDExMiArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0g
KiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
Zm5kZWYgV2ViU29ja2V0RGVmbGF0ZUZyYW1lcl9oCi0jZGVmaW5lIFdlYlNvY2tldERlZmxhdGVG
cmFtZXJfaAotCi0jaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQotCi0jaWYgVVNFKFpMSUIpCi0jaW5j
bHVkZSAiV2ViU29ja2V0RGVmbGF0ZXIuaCIKLSNlbmRpZgotI2luY2x1ZGUgIldlYlNvY2tldEV4
dGVuc2lvblByb2Nlc3Nvci5oIgotI2luY2x1ZGUgIldlYlNvY2tldEZyYW1lLmgiCi0jaW5jbHVk
ZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotY2xhc3MgV2ViU29ja2V0RGVmbGF0ZUZyYW1lcjsKLQotY2xhc3MgRGVm
bGF0ZVJlc3VsdEhvbGRlciB7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgRGVmbGF0ZVJlc3VsdEhv
bGRlcihXZWJTb2NrZXREZWZsYXRlRnJhbWVyKik7Ci0gICAgfkRlZmxhdGVSZXN1bHRIb2xkZXIo
KTsKLQotICAgIGJvb2wgc3VjY2VlZGVkKCkgY29uc3QgeyByZXR1cm4gbV9zdWNjZWVkZWQ7IH0K
LSAgICBTdHJpbmcgZmFpbHVyZVJlYXNvbigpIGNvbnN0IHsgcmV0dXJuIG1fZmFpbHVyZVJlYXNv
bjsgfQotCi0gICAgdm9pZCBmYWlsKGNvbnN0IFN0cmluZyYgZmFpbHVyZVJlYXNvbik7Ci0KLXBy
aXZhdGU6Ci0gICAgV2ViU29ja2V0RGVmbGF0ZUZyYW1lciogbV9mcmFtZXI7Ci0gICAgYm9vbCBt
X3N1Y2NlZWRlZDsKLSAgICBTdHJpbmcgbV9mYWlsdXJlUmVhc29uOwotfTsKLQotY2xhc3MgSW5m
bGF0ZVJlc3VsdEhvbGRlciB7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgSW5mbGF0ZVJlc3VsdEhv
bGRlcihXZWJTb2NrZXREZWZsYXRlRnJhbWVyKik7Ci0gICAgfkluZmxhdGVSZXN1bHRIb2xkZXIo
KTsKLQotICAgIGJvb2wgc3VjY2VlZGVkKCkgY29uc3QgeyByZXR1cm4gbV9zdWNjZWVkZWQ7IH0K
LSAgICBTdHJpbmcgZmFpbHVyZVJlYXNvbigpIGNvbnN0IHsgcmV0dXJuIG1fZmFpbHVyZVJlYXNv
bjsgfQotCi0gICAgdm9pZCBmYWlsKGNvbnN0IFN0cmluZyYgZmFpbHVyZVJlYXNvbik7Ci0KLXBy
aXZhdGU6Ci0gICAgV2ViU29ja2V0RGVmbGF0ZUZyYW1lciogbV9mcmFtZXI7Ci0gICAgYm9vbCBt
X3N1Y2NlZWRlZDsKLSAgICBTdHJpbmcgbV9mYWlsdXJlUmVhc29uOwotfTsKLQotY2xhc3MgV2Vi
U29ja2V0RGVmbGF0ZUZyYW1lciB7Ci1wdWJsaWM6Ci0gICAgV2ViU29ja2V0RGVmbGF0ZUZyYW1l
cigpOwotCi0gICAgUGFzc093blB0cjxXZWJTb2NrZXRFeHRlbnNpb25Qcm9jZXNzb3I+IGNyZWF0
ZUV4dGVuc2lvblByb2Nlc3NvcigpOwotCi0gICAgYm9vbCBjYW5EZWZsYXRlKCkgY29uc3Q7Ci0g
ICAgYm9vbCBlbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9lbmFibGVkOyB9Ci0KLSAgICBEZWZs
YXRlUmVzdWx0SG9sZGVyIGRlZmxhdGUoV2ViU29ja2V0RnJhbWUmKTsKLSAgICB2b2lkIHJlc2V0
RGVmbGF0ZUNvbnRleHQoKTsKLSAgICBJbmZsYXRlUmVzdWx0SG9sZGVyIGluZmxhdGUoV2ViU29j
a2V0RnJhbWUmKTsKLSAgICB2b2lkIHJlc2V0SW5mbGF0ZUNvbnRleHQoKTsKLQotICAgIHZvaWQg
ZGlkRmFpbCgpOwotCi0jaWYgVVNFKFpMSUIpCi0gICAgdm9pZCBlbmFibGVEZWZsYXRlKGludCB3
aW5kb3dCaXRzLCBXZWJTb2NrZXREZWZsYXRlcjo6Q29udGV4dFRha2VPdmVyTW9kZSk7Ci0jZW5k
aWYKLQotcHJpdmF0ZToKLSAgICBib29sIG1fZW5hYmxlZDsKLSNpZiBVU0UoWkxJQikKLSAgICBP
d25QdHI8V2ViU29ja2V0RGVmbGF0ZXI+IG1fZGVmbGF0ZXI7Ci0gICAgT3duUHRyPFdlYlNvY2tl
dEluZmxhdGVyPiBtX2luZmxhdGVyOwotI2VuZGlmCi19OwotCi19Ci0KLSNlbmRpZiAvLyBFTkFC
TEUoV0VCX1NPQ0tFVFMpCi0KLSNlbmRpZiAvLyBXZWJTb2NrZXREZWZsYXRlRnJhbWVyX2gKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA2YmU2YzExYjllZTU1MDk4MzkxYTU3MDVhNWNmYjUxNzE2MDliZGE3Li43OWE4MDgyNzkw
N2M0Y2E3ZWViYTY5ZjU3YWYxNDJkOTZkZDg5ZTBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIw
MTItMDItMjIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMDg0NjguCisgICAgICAgIGh0dHA6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEwODQ2OAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkyMTkKKworICAgICAgICBCcm9rZSBDaHJvbWl1bSBX
aW4gcmVsZWFzZSBidWlsZCAoUmVxdWVzdGVkIGJ5IGJhc2hpIG9uCisgICAgICAgICN3ZWJraXQp
LgorCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9jb21wcmVzc2Vk
LWNvbnRyb2wtZnJhbWUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY29tcHJlc3NlZC1jb250cm9sLWZyYW1lLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9jb21wcmVz
c2VkLWNvbnRyb2wtZnJhbWVfd3NoLnB5OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvZGVmbGF0ZS1mcmFtZS1jb21wLWJpdC1vbm9mZi1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9kZWZsYXRlLWZyYW1lLWNvbXAtYml0LW9ub2ZmLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9kZWZsYXRlLWZyYW1lLWludmFsaWQtcGFy
YW1ldGVyLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL2RlZmxhdGUtZnJhbWUtaW52YWxpZC1wYXJhbWV0ZXIuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2RlZmxhdGUt
ZnJhbWUtaW52YWxpZC1wYXJhbWV0ZXJfd3NoLnB5OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZGVmbGF0ZS1mcmFtZS1wYXJhbWV0ZXItZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
YmkvZGVmbGF0ZS1mcmFtZS1wYXJhbWV0ZXIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2RlZmxhdGUtZnJhbWVfd3NoLnB5OiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZh
aWwtYnktZXh0ZW5zaW9ucy1oZWFkZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1maWxlLWJsb2Jfd3NoLnB5OgorICAgICAgICAo
d2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKToKKwogMjAxMi0wMi0yMiAgUGhpbGlwcGUgTm9ybWFu
ZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgR1RLIGdhcmRl
bmluZywgdW5za2lwIDIgdGVzdHMgdGhhdCBzaG91bGQgcGFzcyBub3cuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2NvbXByZXNzZWQtY29u
dHJvbC1mcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL2NvbXByZXNzZWQtY29udHJvbC1mcmFtZS1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0MWVjNDczZDZiZTIxYzFjMDYwMTAyOWZmYzVmYTM5
Y2NiZjM4MjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9jb21wcmVzc2VkLWNv
bnRyb2wtZnJhbWUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAot
Q09OU09MRSBNRVNTQUdFOiBSZWNlaXZlZCB1bmV4cGVjdGVkIGNvbXByZXNzZWQgZnJhbWUKLVRl
c3Qgd2hldGhlciBhIGNvbXByZXNzZWQgY29udHJvbCBmcmFtZSBpcyByZWplY3RlZAotCi1PbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLW9ub3BlbigpIHdhcyBjYWxsZWQuCi1vbmNsb3NlKCkg
d2FzIGNhbGxlZC4KLVBBU1MgY2xvc2VFdmVudC53YXNDbGVhbiBpcyBmYWxzZQotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY29tcHJlc3NlZC1jb250
cm9sLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2NvbXByZXNzZWQtY29udHJvbC1mcmFtZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiMjA4OGM3OTliZTQxMWMxMjI4MTJhNTA5NDJmYTgzOTgzODAwOWE0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY29tcHJlc3NlZC1jb250cm9sLWZyYW1lLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08IURPQ1RZUEUgSFRNTD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJkZXNjcmlwdGlv
biI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KLWRlc2NyaXB0aW9uKCJUZXN0IHdoZXRoZXIgYSBjb21wcmVzc2VkIGNvbnRy
b2wgZnJhbWUgaXMgcmVqZWN0ZWQiKTsKLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwot
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJs
ZWQiLCAwKTsKLQotdmFyIHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC93
ZWJzb2NrZXQvdGVzdHMvaHliaS9jb21wcmVzc2VkLWNvbnRyb2wtZnJhbWUiKTsKLXZhciBjbG9z
ZUV2ZW50OwotCi13cy5vbm9wZW4gPSBmdW5jdGlvbigpCi17Ci0gICAgZGVidWcoIm9ub3Blbigp
IHdhcyBjYWxsZWQuIik7Ci19OwotCi13cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkKLXsK
LSAgICB2YXIgbWVzc2FnZSA9IGV2ZW50LmRhdGE7Ci0gICAgdGVzdEZhaWxlZCgib25tZXNzYWdl
KCkgd2FzIGNhbGxlZC4gKG1lc3NhZ2UgPSBcIiIgKyBtZXNzYWdlICsgIlwiKSIpOwotfTsKLQot
d3Mub25jbG9zZSA9IGZ1bmN0aW9uKGV2ZW50KQotewotICAgIGRlYnVnKCJvbmNsb3NlKCkgd2Fz
IGNhbGxlZC4iKTsKLSAgICBjbG9zZUV2ZW50ID0gZXZlbnQ7Ci0gICAgc2hvdWxkQmVGYWxzZSgi
Y2xvc2VFdmVudC53YXNDbGVhbiIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfTsKLQotPC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY29tcHJlc3NlZC1jb250cm9sLWZy
YW1lX3dzaC5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
Y29tcHJlc3NlZC1jb250cm9sLWZyYW1lX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOGUxMmU5YzQ1MjJiMzE4NTg3ODQ2ZmIxNjAxNjE5NzlhOGIzYjJhYy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2NvbXByZXNzZWQtY29udHJvbC1mcmFtZV93c2gucHkK
KysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwot
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0
IHN0cmVhbQotaW1wb3J0IHpsaWIKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hh
a2UocmVxdWVzdCk6Ci0gICAgcGFzcwotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEo
cmVxdWVzdCk6Ci0gICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICB6bGli
LlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQot
ICAgIGNvbXByZXNzZWRfbWVzc2FnZSA9IGNvbXByZXNzLmNvbXByZXNzKCdjbG9zZSBtZXNzYWdl
JykKLSAgICBjb21wcmVzc2VkX21lc3NhZ2UgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNf
RkxVU0gpCi0gICAgY29tcHJlc3NlZF9tZXNzYWdlID0gY29tcHJlc3NlZF9tZXNzYWdlWzotNF0K
LSAgICBoZWFkZXIgPSBzdHJlYW0uY3JlYXRlX2hlYWRlcigKLSAgICAgICAgb3Bjb2RlPWNvbW1v
bi5PUENPREVfQ0xPU0UsIHBheWxvYWRfbGVuZ3RoPWxlbihjb21wcmVzc2VkX21lc3NhZ2UpLAot
ICAgICAgICBmaW49MSwgcnN2MT0xLCByc3YyPTAsIHJzdjM9MCwgbWFzaz1GYWxzZSkKLSAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUoaGVhZGVyICsgY29tcHJlc3NlZF9tZXNzYWdlKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9kZWZs
YXRlLWZyYW1lLWNvbXAtYml0LW9ub2ZmLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZGVmbGF0ZS1mcmFtZS1jb21wLWJpdC1vbm9mZi1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2MmZlZjNkZTZmMGZl
NDA4MGVhMmQzNTIzZjI5NWI0Mzg2MjNmMzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS9kZWZsYXRlLWZyYW1lLWNvbXAtYml0LW9ub2ZmLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDIwICswLDAgQEAKLVRlc3QgY29tcHJlc3Npb24gZW5hYmxlZC9kaXNhYmxlZCBm
cmFtZSByZWNlaXZpbmcuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotU2VuZGluZyBt
ZXNzYWdlOiAiSGVsbG8iCi1QQVNTIGV2ZW50LmRhdGEgaXMgJ0hlbGxvJwotU2VuZGluZyBtZXNz
YWdlOiAiRGlzYWJsZUNvbXByZXNzaW9uIgotUEFTUyBldmVudC5kYXRhIGlzICdEaXNhYmxlQ29t
cHJlc3Npb24nCi1TZW5kaW5nIG1lc3NhZ2U6ICJXb3JsZCIKLVBBU1MgZXZlbnQuZGF0YSBpcyAn
V29ybGQnCi1TZW5kaW5nIG1lc3NhZ2U6ICJFbmFibGVDb21wcmVzc2lvbiIKLVBBU1MgZXZlbnQu
ZGF0YSBpcyAnRW5hYmxlQ29tcHJlc3Npb24nCi1TZW5kaW5nIG1lc3NhZ2U6ICJHb29kYnllIgot
UEFTUyBldmVudC5kYXRhIGlzICdHb29kYnllJwotb25jbG9zZSgpIHdhcyBjYWxsZWQuCi1QQVNT
IGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMgdHJ1ZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZGVmbGF0ZS1mcmFtZS1jb21wLWJpdC1vbm9mZi5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9kZWZsYXRlLWZy
YW1lLWNvbXAtYml0LW9ub2ZmLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUz
MmFjNTdiYjhmOGJiOTA2ZmFhNDJiNDMzNGJmMmZjMjc4YTY3NjkuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9kZWZsYXRlLWZyYW1lLWNvbXAtYml0LW9ub2ZmLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi08IURPQ1RZUEUgSFRNTD4KLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9k
aXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVz
dCBjb21wcmVzc2lvbiBlbmFibGVkL2Rpc2FibGVkIGZyYW1lIHJlY2VpdmluZy4iKTsKLQotd2lu
ZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhp
eGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAwKTsKLQotdmFyIGNsb3NlRXZlbnQ7Ci12
YXIgd3M7Ci12YXIgbWVzc2FnZUluZGV4OwotCi12YXIgbWVzc2FnZXMgPSBbCi0gICAgIkhlbGxv
IiwKLSAgICAiRGlzYWJsZUNvbXByZXNzaW9uIiwgLy8gVGhpcyBkaXNhYmxlcyBjb21wcmVzc2lv
bgotICAgICJXb3JsZCIsCi0gICAgIkVuYWJsZUNvbXByZXNzaW9uIiwgLy8gVGhpcyBlbmFibGVz
IGNvbXByZXNzaW9uCi0gICAgIkdvb2RieWUiCi1dOwotCi13cyA9IG5ldyBXZWJTb2NrZXQoIndz
Oi8vbG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZGVmbGF0ZS1mcmFtZSIpOwot
Ci13cy5vbm9wZW4gPSBmdW5jdGlvbihldmVudCkKLXsKLSAgICBtZXNzYWdlSW5kZXggPSAwOwot
ICAgIGRlYnVnKCJTZW5kaW5nIG1lc3NhZ2U6IFwiIiArIG1lc3NhZ2VzW21lc3NhZ2VJbmRleF0g
KyAiXCIiKTsKLSAgICB3cy5zZW5kKG1lc3NhZ2VzW21lc3NhZ2VJbmRleF0pOwotfTsKLQotd3Mu
b25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpCi17Ci0gICAgc2hvdWxkQmUoImV2ZW50LmRhdGEi
LCAiJyIgKyBtZXNzYWdlc1ttZXNzYWdlSW5kZXhdICsgIiciKTsKLSAgICBpZiAobWVzc2FnZUlu
ZGV4ID09PSBtZXNzYWdlcy5sZW5ndGggLSAxKQotICAgICAgICB3cy5jbG9zZSgpOwotICAgIGVs
c2UgewotICAgICAgICBtZXNzYWdlSW5kZXggKz0gMTsKLSAgICAgICAgZGVidWcoIlNlbmRpbmcg
bWVzc2FnZTogXCIiICsgbWVzc2FnZXNbbWVzc2FnZUluZGV4XSArICJcIiIpOwotICAgICAgICB3
cy5zZW5kKG1lc3NhZ2VzW21lc3NhZ2VJbmRleF0pOwotICAgIH0KLX07Ci0KLXdzLm9uY2xvc2Ug
PSBmdW5jdGlvbihldmVudCkKLXsKLSAgICBkZWJ1Zygib25jbG9zZSgpIHdhcyBjYWxsZWQuIik7
Ci0gICAgY2xvc2VFdmVudCA9IGV2ZW50OwotICAgIHNob3VsZEJlVHJ1ZSgiY2xvc2VFdmVudC53
YXNDbGVhbiIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZGVmbGF0ZS1mcmFtZS1pbnZhbGlkLXBhcmFtZXRlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L2RlZmxhdGUtZnJhbWUtaW52YWxpZC1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4M2EyNGQyOGNjMjMzYjdhNWY2MzQ5M2I5NWQwZjgxYmE3ZjM0
ZGIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZGVmbGF0ZS1mcmFtZS1pbnZh
bGlkLXBhcmFtZXRlci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBA
Ci1DT05TT0xFIE1FU1NBR0U6IFJlY2VpdmVkIHVuZXhwZWN0ZWQgZGVmbGF0ZS1mcmFtZSBwYXJh
bWV0ZXIKLUNPTlNPTEUgTUVTU0FHRTogUmVjZWl2ZWQgaW52YWxpZCBtYXhfd2luZG93X2JpdHMg
cGFyYW1ldGVyCi1DT05TT0xFIE1FU1NBR0U6IFJlY2VpdmVkIGludmFsaWQgbWF4X3dpbmRvd19i
aXRzIHBhcmFtZXRlcgotQ09OU09MRSBNRVNTQUdFOiBSZWNlaXZlZCBpbnZhbGlkIG5vX2NvbnRl
eHRfdGFrZW92ZXIgcGFyYW1ldGVyCi1DT05TT0xFIE1FU1NBR0U6IFJlY2VpdmVkIHVuZXhwZWN0
ZWQgZGVmbGF0ZS1mcmFtZSBwYXJhbWV0ZXIKLVRlc3Qgd2hldGhlciBXZWJTb2NrZXQgcmVqZWN0
cyBpbnZhbGlkIGRlZmxhdGUtZnJhbWUgcGFyYW1ldGVycy4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi1UZXN0aW5nIHBhcmFtZXRlcjogIngtZm9vIgotb25jbG9zZSgpIHdhcyBjYWxs
ZWQuCi1QQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMgZmFsc2UKLVRlc3RpbmcgcGFyYW1ldGVy
OiAibWF4X3dpbmRvd19iaXRzPTciCi1vbmNsb3NlKCkgd2FzIGNhbGxlZC4KLVBBU1MgY2xvc2VF
dmVudC53YXNDbGVhbiBpcyBmYWxzZQotVGVzdGluZyBwYXJhbWV0ZXI6ICJtYXhfd2luZG93X2Jp
dHM9MTYiCi1vbmNsb3NlKCkgd2FzIGNhbGxlZC4KLVBBU1MgY2xvc2VFdmVudC53YXNDbGVhbiBp
cyBmYWxzZQotVGVzdGluZyBwYXJhbWV0ZXI6ICJub19jb250ZXh0X3Rha2VvdmVyPWZvbyIKLW9u
Y2xvc2UoKSB3YXMgY2FsbGVkLgotUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFuIGlzIGZhbHNlCi1U
ZXN0aW5nIHBhcmFtZXRlcjogIm1heF93aW5kb3dfYml0cz04OyBub19jb250ZXh0X3Rha2VvdmVy
OyB4LWZvbyIKLW9uY2xvc2UoKSB3YXMgY2FsbGVkLgotUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFu
IGlzIGZhbHNlCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS9kZWZsYXRlLWZyYW1lLWludmFsaWQtcGFyYW1ldGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2RlZmxhdGUtZnJhbWUtaW52YWxpZC1wYXJh
bWV0ZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWE1ZmJkMDZkMjAyYTNl
Y2M4MDJhZTI0YTc3OWVmNjRiOTM5YTljMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2RlZmxhdGUtZnJhbWUtaW52YWxpZC1wYXJhbWV0ZXIuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDU3ICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IHdoZXRoZXIg
V2ViU29ja2V0IHJlamVjdHMgaW52YWxpZCBkZWZsYXRlLWZyYW1lIHBhcmFtZXRlcnMuIik7Ci0K
LXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJL
aXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMCk7Ci0KLXZhciBjbG9zZUV2ZW50
OwotCi12YXIgdGVzdENhc2UgPSBbCi0gICAgIngtZm9vIiwKLSAgICAibWF4X3dpbmRvd19iaXRz
PTciLAotICAgICJtYXhfd2luZG93X2JpdHM9MTYiLAotICAgICJub19jb250ZXh0X3Rha2VvdmVy
PWZvbyIsCi0gICAgIm1heF93aW5kb3dfYml0cz04OyBub19jb250ZXh0X3Rha2VvdmVyOyB4LWZv
byIKLV07Ci0KLWZ1bmN0aW9uIGRvVGVzdChpbmRleCkKLXsKLSAgICB2YXIgcGFyYW1ldGVyID0g
dGVzdENhc2VbaW5kZXhdOwotICAgIHZhciB1cmwgPSAid3M6Ly9sb2NhbGhvc3Q6ODg4MC93ZWJz
b2NrZXQvdGVzdHMvaHliaS9kZWZsYXRlLWZyYW1lLWludmFsaWQtcGFyYW1ldGVyPyIgKyBlbmNv
ZGVVUkkocGFyYW1ldGVyKTsKLSAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7Ci0KLSAg
ICBkZWJ1ZygiVGVzdGluZyBwYXJhbWV0ZXI6IFwiIiArIHBhcmFtZXRlciArICJcIiIpOwotCi0g
ICAgd3Mub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAgICAgICB2YXIgbWVz
c2FnZSA9IGV2ZW50LmRhdGE7Ci0gICAgICAgIHRlc3RGYWlsZWQoIm9ubWVzc2FnZSgpIHdhcyBj
YWxsZWQuIChtZXNzYWdlID0gXCIiICsgbWVzc2FnZSArICJcIikiKTsKLSAgICB9OwotCi0gICAg
d3Mub25jbG9zZSA9IGZ1bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgZGVidWcoIm9uY2xv
c2UoKSB3YXMgY2FsbGVkLiIpOwotICAgICAgICBjbG9zZUV2ZW50ID0gZXZlbnQ7Ci0gICAgICAg
IHNob3VsZEJlRmFsc2UoImNsb3NlRXZlbnQud2FzQ2xlYW4iKTsKLSAgICAgICAgaWYgKGluZGV4
ID09PSB0ZXN0Q2FzZS5sZW5ndGggLSAxKQotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIGRvVGVzdChpbmRleCArIDEpOwotICAgIH07Ci19Ci0K
LWRvVGVzdCgwKTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
ZGVmbGF0ZS1mcmFtZS1pbnZhbGlkLXBhcmFtZXRlcl93c2gucHkgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2RlZmxhdGUtZnJhbWUtaW52YWxpZC1wYXJhbWV0
ZXJfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOGNjMjVjOGQ3Y2NjMWE2
NzZhZDFlZjY4NGQ2MzA5OTEyOGZmMDA0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
YmkvZGVmbGF0ZS1mcmFtZS1pbnZhbGlkLXBhcmFtZXRlcl93c2gucHkKKysrIC9kZXYvbnVsbApA
QCAtMSw1NiArMCwwIEBACi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwot
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0j
IGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0j
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotaW1wb3J0IHVybGxpYgotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGhhbmRzaGFrZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFu
ZHNoYWtlLmh5YmkgaW1wb3J0IGNvbXB1dGVfYWNjZXB0Ci0KLQotZGVmIHdlYl9zb2NrZXRfZG9f
ZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHJlc291cmNlcyA9IHJlcXVlc3Qud3NfcmVz
b3VyY2Uuc3BsaXQoJz8nLCAxKQotICAgIHBhcmFtZXRlcnMgPSBOb25lCi0gICAgaWYgbGVuKHJl
c291cmNlcykgPT0gMjoKLSAgICAgICAgcGFyYW1ldGVycyA9IHVybGxpYi51bnF1b3RlKHJlc291
cmNlc1sxXSkKLQotICAgIG1lc3NhZ2UgPSAnSFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90b2Nv
bHNcclxuJwotICAgIG1lc3NhZ2UgKz0gJ1VwZ3JhZGU6IHdlYnNvY2tldFxyXG4nCi0gICAgbWVz
c2FnZSArPSAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgbWVzc2FnZSArPSAnU2VjLVdl
YlNvY2tldC1BY2NlcHQ6ICVzXHJcbicgJSBjb21wdXRlX2FjY2VwdChyZXF1ZXN0LmhlYWRlcnNf
aW5bJ1NlYy1XZWJTb2NrZXQtS2V5J10pWzBdCi0gICAgbWVzc2FnZSArPSAnU2VjLVdlYlNvY2tl
dC1FeHRlbnNpb25zOiB4LXdlYmtpdC1kZWZsYXRlLWZyYW1lJwotICAgIGlmIHBhcmFtZXRlcnM6
Ci0gICAgICAgIG1lc3NhZ2UgKz0gJzsgJXNcclxuJyAlIHBhcmFtZXRlcnMKLSAgICBlbHNlOgot
ICAgICAgICBtZXNzYWdlICs9ICdcclxuJwotICAgIG1lc3NhZ2UgKz0gJ1xyXG4nCi0gICAgcmVx
dWVzdC5jb25uZWN0aW9uLndyaXRlKG1lc3NhZ2UpCi0gICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0
ZWRCeVVzZXJFeGNlcHRpb24oJ0Fib3J0IHRoZSBjb25uZWN0aW9uJykgIyBQcmV2ZW50cyBweXdl
YnNvY2tldCBmcm9tIHNlbmRpbmcgaXRzIG93biBoYW5kc2hha2UgbWVzc2FnZS4KLQotCi1kZWYg
d2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHBhc3MKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZGVmbGF0ZS1mcmFt
ZS1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9kZWZsYXRlLWZyYW1lLXBhcmFtZXRlci1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyNjNmZTM5NGE0NjI0YTE4NGMzZGIyZjQ3Mjg5NDQ0
OWQwZDQwNGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9kZWZsYXRlLWZyYW1l
LXBhcmFtZXRlci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1U
ZXN0IFdlYlNvY2tldCBkZWZsYXRlLWZyYW1lIGV4dGVuc2lvbi4KLQotT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgotCi1UZXN0aW5nIHF1ZXJ5OiAibWF4X3dpbmRvd19iaXRzPTgiCi1QQVNTIHdz
LmV4dGVuc2lvbnMuc2VhcmNoKCd4LXdlYmtpdC1kZWZsYXRlLWZyYW1lJykgIT0gLTEgaXMgdHJ1
ZQotUEFTUyB3cy5leHRlbnNpb25zLnNlYXJjaCgnbWF4X3dpbmRvd19iaXRzPTgnKSAhPSAtMSBp
cyB0cnVlCi1QQVNTIGV2ZW50LmRhdGEgaXMgZmlyc3RNZXNzYWdlCi1QQVNTIGV2ZW50LmRhdGEg
aXMgc2Vjb25kTWVzc2FnZQotb25jbG9zZSgpIHdhcyBjYWxsZWQuCi1QQVNTIGNsb3NlRXZlbnQu
d2FzQ2xlYW4gaXMgdHJ1ZQotVGVzdGluZyBxdWVyeTogIm5vX2NvbnRleHRfdGFrZW92ZXIiCi1Q
QVNTIHdzLmV4dGVuc2lvbnMuc2VhcmNoKCd4LXdlYmtpdC1kZWZsYXRlLWZyYW1lJykgIT0gLTEg
aXMgdHJ1ZQotUEFTUyB3cy5leHRlbnNpb25zLnNlYXJjaCgnbm9fY29udGV4dF90YWtlb3Zlcicp
ICE9IC0xIGlzIHRydWUKLVBBU1MgZXZlbnQuZGF0YSBpcyBmaXJzdE1lc3NhZ2UKLVBBU1MgZXZl
bnQuZGF0YSBpcyBzZWNvbmRNZXNzYWdlCi1vbmNsb3NlKCkgd2FzIGNhbGxlZC4KLVBBU1MgY2xv
c2VFdmVudC53YXNDbGVhbiBpcyB0cnVlCi1UZXN0aW5nIHF1ZXJ5OiAibWF4X3dpbmRvd19iaXRz
PTgmbm9fY29udGV4dF90YWtlb3ZlciIKLVBBU1Mgd3MuZXh0ZW5zaW9ucy5zZWFyY2goJ3gtd2Vi
a2l0LWRlZmxhdGUtZnJhbWUnKSAhPSAtMSBpcyB0cnVlCi1QQVNTIHdzLmV4dGVuc2lvbnMuc2Vh
cmNoKCdtYXhfd2luZG93X2JpdHM9OCcpICE9IC0xIGlzIHRydWUKLVBBU1Mgd3MuZXh0ZW5zaW9u
cy5zZWFyY2goJ25vX2NvbnRleHRfdGFrZW92ZXInKSAhPSAtMSBpcyB0cnVlCi1QQVNTIGV2ZW50
LmRhdGEgaXMgZmlyc3RNZXNzYWdlCi1QQVNTIGV2ZW50LmRhdGEgaXMgc2Vjb25kTWVzc2FnZQot
b25jbG9zZSgpIHdhcyBjYWxsZWQuCi1QQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMgdHJ1ZQot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZGVmbGF0
ZS1mcmFtZS1wYXJhbWV0ZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5YmkvZGVmbGF0ZS1mcmFtZS1wYXJhbWV0ZXIuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNGI3N2U0NzE4MTdlMjM0N2NmYjgzNmZkOWUzYWFhM2VmYjg1YzZmMS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2RlZmxhdGUtZnJhbWUtcGFyYW1ldGVy
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5MCArMCwwIEBACi08IURPQ1RZUEUgSFRNTD4KLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNj
cmlwdGlvbigiVGVzdCBXZWJTb2NrZXQgZGVmbGF0ZS1mcmFtZSBleHRlbnNpb24uIik7Ci0KLXdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRI
aXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMCk7Ci0KLXZhciBjbG9zZUV2ZW50Owot
dmFyIHdzOwotdmFyIG1lc3NhZ2VJbmRleDsKLQotdmFyIHF1ZXJpZXMgPSBbCi0gICAgIm1heF93
aW5kb3dfYml0cz04IiwKLSAgICAibm9fY29udGV4dF90YWtlb3ZlciIsCi0gICAgIm1heF93aW5k
b3dfYml0cz04Jm5vX2NvbnRleHRfdGFrZW92ZXIiCi1dOwotCi0vLyBUaGUgZmlyc3QgbWVzc2Fn
ZSBjb25zaXN0cyBvZiBhIGxvdCBvZiAnYicgYW5kIGEgZmV3ICdhJyBhdCB0aGUgaGVhZCBhbmQK
LS8vIHRoZSB0YWlsLCB3aGlsZSB0aGUgc2Vjb25kIG9uZSBjb25zaXN0cyBvZiAnYScuCi12YXIg
Zmlyc3RNZXNzYWdlID0gJyc7Ci12YXIgc2Vjb25kTWVzc2FnZSA9ICcnOwotZm9yICh2YXIgaSA9
IDA7IGkgPCAxNjsgKytpKSB7Ci0gICAgZmlyc3RNZXNzYWdlICs9ICdhJzsKLSAgICBzZWNvbmRN
ZXNzYWdlICs9ICdhJzsKLX0KLWZvciAodmFyIGkgPSAwOyBpIDwgMTAyNDsgKytpKSB7Ci0gICAg
Zmlyc3RNZXNzYWdlICs9ICdiJzsKLSAgICBzZWNvbmRNZXNzYWdlICs9ICdhJzsKLX0KLWZvciAo
dmFyIGkgPSAwOyBpIDwgMTY7ICsraSkgewotICAgIGZpcnN0TWVzc2FnZSArPSAnYSc7Ci0gICAg
c2Vjb25kTWVzc2FnZSArPSAnYSc7Ci19Ci0KLWZ1bmN0aW9uIGRvVGVzdChxdWVyeUluZGV4KQot
ewotICAgIHZhciBxdWVyeSA9IHF1ZXJpZXNbcXVlcnlJbmRleF07Ci0gICAgZGVidWcoIlRlc3Rp
bmcgcXVlcnk6IFwiIiArIHF1ZXJ5ICsgIlwiIik7Ci0KLSAgICB2YXIgdXJsID0gIndzOi8vbG9j
YWxob3N0Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZGVmbGF0ZS1mcmFtZT8iICsgcXVlcnk7
Ci0gICAgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7Ci0gICAgbWVzc2FnZUluZGV4ID0gMDsKLQot
ICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgc2hvdWxkQmVU
cnVlKCJ3cy5leHRlbnNpb25zLnNlYXJjaCgneC13ZWJraXQtZGVmbGF0ZS1mcmFtZScpICE9IC0x
Iik7Ci0gICAgICAgIHBhcmFtZXRlcnMgPSBxdWVyeS5zcGxpdCgnJicpOwotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHBhcmFtZXRlcnMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBzaG91
bGRCZVRydWUoIndzLmV4dGVuc2lvbnMuc2VhcmNoKCciICsgcGFyYW1ldGVyc1tpXSArICInKSAh
PSAtMSIpOwotICAgICAgICB3cy5zZW5kKGZpcnN0TWVzc2FnZSk7Ci0gICAgfTsKLQotICAgIHdz
Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKG1lc3NhZ2VJ
bmRleCA9PT0gMCkgewotICAgICAgICAgICAgc2hvdWxkQmUoImV2ZW50LmRhdGEiLCAiZmlyc3RN
ZXNzYWdlIik7Ci0gICAgICAgICAgICBtZXNzYWdlSW5kZXggKz0gMQotICAgICAgICAgICAgd3Mu
c2VuZChzZWNvbmRNZXNzYWdlKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNob3Vs
ZEJlKCJldmVudC5kYXRhIiwgInNlY29uZE1lc3NhZ2UiKTsKLSAgICAgICAgICAgIHdzLmNsb3Nl
KCk7Ci0gICAgICAgIH0KLSAgICB9OwotCi0gICAgd3Mub25jbG9zZSA9IGZ1bmN0aW9uKGV2ZW50
KQotICAgIHsKLSAgICAgICAgZGVidWcoIm9uY2xvc2UoKSB3YXMgY2FsbGVkLiIpOwotICAgICAg
ICBjbG9zZUV2ZW50ID0gZXZlbnQ7Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgiY2xvc2VFdmVudC53
YXNDbGVhbiIpOwotICAgICAgICBpZiAocXVlcnlJbmRleCA9PT0gcXVlcmllcy5sZW5ndGggLSAx
KQotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IGRvVGVzdChxdWVyeUluZGV4ICsgMSk7Ci0gICAgfTsKLX0KLQotZG9UZXN0KDApOwotCi08L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9kZWZsYXRlLWZyYW1lX3dzaC5w
eSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZGVmbGF0ZS1m
cmFtZV93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgzYjc4Mzg1NTA0Mjc0
ODNhOTMyNmNlOGZhNjBjMTc5ODFhZGJkNTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS9kZWZsYXRlLWZyYW1lX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAgQEAK
LSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwot
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgot
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotCi1pbXBvcnQgdXJscGFyc2UKLWZyb20gbW9kX3B5d2Vic29ja2V0
LmV4dGVuc2lvbnMgaW1wb3J0IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcgotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQgRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJm
YWNlCi1mcm9tIG1vZF9weXdlYnNvY2tldC5jb21tb24gaW1wb3J0IEV4dGVuc2lvblBhcmFtZXRl
cgotCi0KLV9HT09EQllFX01FU1NBR0UgPSB1J0dvb2RieWUnCi1fRU5BQkxFX01FU1NBR0UgPSB1
J0VuYWJsZUNvbXByZXNzaW9uJwotX0RJU0FCTEVfTUVTU0FHRSA9IHUnRGlzYWJsZUNvbXByZXNz
aW9uJwotCi0KLWRlZiBfZ2V0X2RlZmxhdGVfZnJhbWVfZXh0ZW5zaW9uX3Byb2Nlc3NvcihyZXF1
ZXN0KToKLSAgICBmb3IgZXh0ZW5zaW9uX3Byb2Nlc3NvciBpbiByZXF1ZXN0LndzX2V4dGVuc2lv
bl9wcm9jZXNzb3JzOgotICAgICAgICBpZiBpc2luc3RhbmNlKGV4dGVuc2lvbl9wcm9jZXNzb3Is
IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3Nvcik6Ci0gICAgICAgICAgICByZXR1cm4gZXh0
ZW5zaW9uX3Byb2Nlc3NvcgotICAgIHJldHVybiBOb25lCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9f
ZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHByb2Nlc3NvciA9IF9nZXRfZGVmbGF0ZV9m
cmFtZV9leHRlbnNpb25fcHJvY2Vzc29yKHJlcXVlc3QpCi0gICAgaWYgbm90IHByb2Nlc3NvcjoK
LSAgICAgICAgcmV0dXJuCi0gICAgciA9IHJlcXVlc3Qud3NfcmVzb3VyY2Uuc3BsaXQoJz8nLCAx
KQotICAgIGlmIGxlbihyKSA9PSAxOgotICAgICAgICByZXR1cm4KLSAgICBwYXJhbWV0ZXJzID0g
dXJscGFyc2UucGFyc2VfcXMoclsxXSwga2VlcF9ibGFua192YWx1ZXM9VHJ1ZSkKLSAgICBpZiAn
bWF4X3dpbmRvd19iaXRzJyBpbiBwYXJhbWV0ZXJzOgotICAgICAgICB3aW5kb3dfYml0cyA9IGlu
dChwYXJhbWV0ZXJzWydtYXhfd2luZG93X2JpdHMnXVswXSkKLSAgICAgICAgcHJvY2Vzc29yLnNl
dF9yZXNwb25zZV93aW5kb3dfYml0cyh3aW5kb3dfYml0cykKLSAgICBpZiAnbm9fY29udGV4dF90
YWtlb3ZlcicgaW4gcGFyYW1ldGVyczoKLSAgICAgICAgcHJvY2Vzc29yLnNldF9yZXNwb25zZV9u
b19jb250ZXh0X3Rha2VvdmVyKFRydWUpCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0
YShyZXF1ZXN0KToKLSAgICBwcm9jZXNzb3IgPSBfZ2V0X2RlZmxhdGVfZnJhbWVfZXh0ZW5zaW9u
X3Byb2Nlc3NvcihyZXF1ZXN0KQotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGxpbmUgPSByZXF1
ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICBpZiBsaW5lIGlzIE5vbmU6
Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgaWYgaXNpbnN0YW5jZShsaW5lLCB1bmljb2Rl
KToKLSAgICAgICAgICAgIGlmIHByb2Nlc3NvcjoKLSAgICAgICAgICAgICAgICBpZiBsaW5lID09
IF9FTkFCTEVfTUVTU0FHRToKLSAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29yLmVuYWJsZV9v
dXRnb2luZ19jb21wcmVzc2lvbigpCi0gICAgICAgICAgICAgICAgZWxpZiBsaW5lID09IF9ESVNB
QkxFX01FU1NBR0U6Ci0gICAgICAgICAgICAgICAgICAgIHByb2Nlc3Nvci5kaXNhYmxlX291dGdv
aW5nX2NvbXByZXNzaW9uKCkKLSAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVz
c2FnZShsaW5lLCBiaW5hcnk9RmFsc2UpCi0gICAgICAgICAgICBpZiBsaW5lID09IF9HT09EQllF
X01FU1NBR0U6Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobGluZSwgYmluYXJ5PVRydWUpCi0K
LQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LWV4dGVuc2lvbnMtaGVhZGVy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
YmkvaGFuZHNoYWtlLWZhaWwtYnktZXh0ZW5zaW9ucy1oZWFkZXItZXhwZWN0ZWQudHh0CmluZGV4
IGNjOTlhZjBkZDE2NWQ1M2Y0MDY3MGM1YzU4NmFlYzk5ZWZiNjgzY2EuLmFkZjA2YjY1MWQ2YjQ3
MTViNGExYjk3Yzg3Yzk2MDIzM2FhZTFmYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktZXh0ZW5zaW9ucy1o
ZWFkZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktZXh0ZW5zaW9ucy1oZWFkZXItZXhwZWN0ZWQu
dHh0CkBAIC0xLDQgKzEsNCBAQAotQ09OU09MRSBNRVNTQUdFOiBSZWNlaXZlZCB1bmV4cGVjdGVk
IGV4dGVuc2lvbjogeC1mb28KK0NPTlNPTEUgTUVTU0FHRTogUmVjZWl2ZWQgdW5leHBlY3RlZCBT
ZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyCiBUZXN0IHdoZXRoZXIgV2ViU29ja2V0IGhh
bmRzaGFrZSBmYWlscyBpZiB0aGUgc2VydmVyIHNlbmRzIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9u
cyBoZWFkZXIuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1maWxlLWJsb2Jfd3No
LnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLWZp
bGUtYmxvYl93c2gucHkKaW5kZXggNzkyMDM0Y2ZlM2I3MGUwNDgzYjVkZTk1ZTRlMTcwMWQ5Nzc4
MmNhMy4uZGFhNDQwNDcxYWY4M2FiMjYyODY3NTFjM2UxODg4MmY0ODRkYjc4YyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLWZpbGUt
YmxvYl93c2gucHkKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS9zZW5kLWZpbGUtYmxvYl93c2gucHkKQEAgLTIsMTQgKzIsNiBAQCBmcm9tIG1vZF9weXdl
YnNvY2tldCBpbXBvcnQgY29tbW9uCiBmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgbXNndXRp
bAogCiAKLWRlZiBfcmV0cmlldmVfZnJhbWUoc3RyZWFtKToKLSAgICAjIEZJWE1FOiBVc2UgYmV0
dGVyIEFQSS4KLSAgICBmcmFtZSA9IHN0cmVhbS5fcmVjZWl2ZV9mcmFtZV9hc19mcmFtZV9vYmpl
Y3QoKQotICAgIGZvciBmcmFtZV9maWx0ZXIgaW4gc3RyZWFtLl9vcHRpb25zLmluY29taW5nX2Zy
YW1lX2ZpbHRlcnM6Ci0gICAgICAgIGZyYW1lX2ZpbHRlci5maWx0ZXIoZnJhbWUpCi0gICAgcmV0
dXJuIGZyYW1lCi0KLQogZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3Qp
OgogICAgIHBhc3MgIyBBbHdheXMgYWNjZXB0LgogCkBAIC0xOCwxMSArMTAsMTIgQEAgZGVmIHdl
Yl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKICAgICBleHBlY3RlZF9tZXNzYWdlcyA9
IFsnSGVsbG8sIHdvcmxkISddCiAKICAgICBmb3IgdGVzdF9udW1iZXIsIGV4cGVjdGVkX21lc3Nh
Z2UgaW4gZW51bWVyYXRlKGV4cGVjdGVkX21lc3NhZ2VzKToKLSAgICAgICAgZnJhbWUgPSBfcmV0
cmlldmVfZnJhbWUocmVxdWVzdC53c19zdHJlYW0pCi0gICAgICAgIGlmIGZyYW1lLm9wY29kZSA9
PSBjb21tb24uT1BDT0RFX0JJTkFSWSBhbmQgZnJhbWUucGF5bG9hZCA9PSBleHBlY3RlZF9tZXNz
YWdlIGFuZCBmcmFtZS5maW46CisgICAgICAgICMgRklYTUU6IFVzZSBiZXR0ZXIgQVBJLgorICAg
ICAgICBvcGNvZGUsIHBheWxvYWQsIGZpbmFsLCB1bnVzZWRfcmVzZXJ2ZWQxLCB1bnVzZWRfcmVz
ZXJ2ZWQyLCB1bnVzZWRfcmVzZXJ2ZWQzID0gcmVxdWVzdC53c19zdHJlYW0uX3JlY2VpdmVfZnJh
bWUoKQorICAgICAgICBpZiBvcGNvZGUgPT0gY29tbW9uLk9QQ09ERV9CSU5BUlkgYW5kIHBheWxv
YWQgPT0gZXhwZWN0ZWRfbWVzc2FnZSBhbmQgZmluYWw6CiAgICAgICAgICAgICBtc2d1dGlsLnNl
bmRfbWVzc2FnZShyZXF1ZXN0LCAnUEFTUzogTWVzc2FnZSAjJWQuJyAlIHRlc3RfbnVtYmVyKQog
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwg
J0ZBSUw6IE1lc3NhZ2UgIyVkOiBSZWNlaXZlZCB1bmV4cGVjdGVkIGZyYW1lOiBvcGNvZGUgPSAl
ciwgcGF5bG9hZCA9ICVyLCBmaW5hbCA9ICVyJyAlICh0ZXN0X251bWJlciwgZnJhbWUub3Bjb2Rl
LCBmcmFtZS5wYXlsb2FkLCBmcmFtZS5maW4pKQorICAgICAgICAgICAgbXNndXRpbC5zZW5kX21l
c3NhZ2UocmVxdWVzdCwgJ0ZBSUw6IE1lc3NhZ2UgIyVkOiBSZWNlaXZlZCB1bmV4cGVjdGVkIGZy
YW1lOiBvcGNvZGUgPSAlciwgcGF5bG9hZCA9ICVyLCBmaW5hbCA9ICVyJyAlICh0ZXN0X251bWJl
ciwgb3Bjb2RlLCBwYXlsb2FkLCBmaW5hbCkpCiAKIAogZGVmIGFsbF9kaXN0aW5jdF9ieXRlcygp
Ogo=
</data>

          </attachment>
      

    </bug>

</bugzilla>