<?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>149694</bug_id>
          
          <creation_ts>2015-09-30 21:12:01 -0700</creation_ts>
          <short_desc>REGRESSION(r190367): Windows build broken (Requested by smfr on #webkit).</short_desc>
          <delta_ts>2015-09-30 22:39:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>148035</blocked>
    
    <blocked>149697</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1129811</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-30 21:12:01 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/190367 broke the build:
Windows build broken (Requested by smfr on #webkit).

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

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>1129814</commentid>
    <comment_count>2</comment_count>
      <attachid>262228</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-30 21:17:08 -0700</bug_when>
    <thetext>Comment on attachment 262228
ROLLOUT of r190367

Clearing flags on attachment: 262228

Committed r190385: &lt;http://trac.webkit.org/changeset/190385&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129815</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-30 21:17:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262228</attachid>
            <date>2015-09-30 21:12:37 -0700</date>
            <delta_ts>2015-09-30 21:17:08 -0700</delta_ts>
            <desc>ROLLOUT of r190367</desc>
            <filename>bug-149694-20150930211212.patch</filename>
            <type>text/plain</type>
            <size>133957</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMzg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MDI1MjE1YTdiYjIzMTQxNGFlOGQ5ZDQ2YjYxOTA5MWQ0ZDczN2YwLi4xYmRkYTgzNjQxY2Q4MmUy
MThhMjBlNWY2ZjVkOGIyYzJmNTY1YmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxNS0wOS0zMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE5MDM2NyBhbmQgcjE5
MDM3My4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
OTY5NAorCisgICAgICAgIFdpbmRvd3MgYnVpbGQgYnJva2VuIChSZXF1ZXN0ZWQgYnkgc21mciBv
biAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXRzOgorCisgICAgICAgICJb
RVM2XSBBZGQgVHlwZWRBcnJheS5wcm90b3R5cGUgZnVuY3Rpb25hbGl0eS4iCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgwMzUKKyAgICAgICAgaHR0
cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTkwMzY3CisKKyAgICAgICAgIlVucmV2aWV3
ZWQgV2luZG93cyBidWlsZGZpeC4iCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hh
bmdlc2V0LzE5MDM3MworCiAyMDE1LTA5LTMwICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgV2luZG93cyBidWlsZGZpeC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkNjcxZTUwNzZiODE5MmNkZmM3ZWE3ZjJi
NjJlNjllZTQ3OTU5MmJiLi40MmE1NGFhMzZkNTY2OGFjMTBhMWVhYWU3ODllZGZhNWM1ZDVlMjI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01NzQsNyArNTc0LDYgQEAg
c2V0KEphdmFTY3JpcHRDb3JlX1JVTlRJTUVfU09VUkNFUwogICAgIHJ1bnRpbWUvSlNUZW1wbGF0
ZVJlZ2lzdHJ5S2V5LmNwcAogICAgIHJ1bnRpbWUvSlNUeXBlZEFycmF5Q29uc3RydWN0b3JzLmNw
cAogICAgIHJ1bnRpbWUvSlNUeXBlZEFycmF5UHJvdG90eXBlcy5jcHAKLSAgICBydW50aW1lL0pT
VHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCiAgICAgcnVudGltZS9KU1R5cGVkQXJyYXlzLmNw
cAogICAgIHJ1bnRpbWUvSlNXZWFrTWFwLmNwcAogICAgIHJ1bnRpbWUvSlNXZWFrU2V0LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKaW5kZXggY2YzMGY4Y2FiMzYyODYx
ZGZjZDM3NzQzOTYwYTEyNTM0OTQ2MjhiZi4uY2M4MzA2ZWMyNzMzMzA0YTEzNzczODMxMTNiMTk5
YWUyZmI2Njc0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCkBAIC04
MjQsNyArODI0LDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNUeXBl
ZEFycmF5Q29uc3RydWN0b3JzLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1
bnRpbWVcSlNUeXBlZEFycmF5UHJvdG90eXBlcy5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxydW50aW1lXEpTVHlwZWRBcnJheXMuY3BwIiAvPgotICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccnVudGltZVxKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNFbnZpcm9ubWVudFJlY29yZC5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTV2Vha01hcC5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTV2Vha1NldC5jcHAiIC8+CkBAIC0x
NjUyLDcgKzE2NTEsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU0dl
bmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNHZW5lcmljVHlwZWRBcnJh
eVZpZXdQcm90b3R5cGUuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVc
SlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5
cGVJbmxpbmVzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTR2xv
YmFsT2JqZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTR2xv
YmFsT2JqZWN0RnVuY3Rpb25zLmgiIC8+CkBAIC0xNjk3LDcgKzE2OTUsNiBAQAogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNUeXBlZEFycmF5UHJvdG90eXBl
cy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU1R5cGVkQXJyYXlz
LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTVHlwZWRBcnJheVZp
ZXdQcm90b3R5cGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNV
aW50MTZBcnJheS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU1Vp
bnQzMkFycmF5LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTVWlu
dDhBcnJheS5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJv
ai5maWx0ZXJzCmluZGV4IDk0NjlmODlmZjNjMDAxNmY3MzlkNzU3NmUxYzU3YzIwNTM1ZTViZjUu
LmFiZWYzMjBhZTNiYWNlMDZhYzdlOTNlNTQxZWFjNjkwMTFjYzliZWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTEwODMsOSArMTA4
Myw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTVHlwZWRBcnJheXMu
Y3BwIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgot
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU1R5cGVkQXJyYXlWaWV3UHJvdG90
eXBlLmNwcCI+Ci0gICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGls
ZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRGF0YVZpZXcuY3BwIj4KICAg
ICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMzM4MSw5
ICszMzc4LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCI+CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRl
cj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVc
SlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCI+Ci0gICAgICA8Rmls
dGVyPnJ1bnRpbWU8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHJ1bnRpbWVcSlNJbnRlcm5hbFByb21pc2UuaCI+CiAgICAgICA8RmlsdGVyPnJ1
bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTM0NTksOSArMzQ1Myw2IEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTVHlwZWRBcnJheXMuaCI+CiAgICAg
ICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oIj4KLSAg
ICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU1VpbnQxNkFycmF5LmgiPgogICAgICAgPEZpbHRl
cj5ydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGE3Y2M4ZjIzY2M4ZDhlMjc4ZGEwYzY4ZDUzNWVhYzJkMzc1NmQyYTUuLmMy
NWI4NGI4NjNiNWNlNDA0ODQ1MTM0Y2MyZjdhOWZiZmM0NjhjMGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC05NzEsNyArOTcxLDYgQEAKIAkJNTJDMDYxMUYxQUE1MUUxQzAwQjRB
REJBIC8qIFJ1bnRpbWVUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MkMwNjExRDFBQTUxRTFCMDBCNEFEQkEgLyogUnVudGltZVR5cGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkM5NTJCNzE5
QTI4OTg1MDA2OUIzODYgLyogVHlwZVByb2ZpbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkM5NTJCNjE5QTI4OTg1MDA2OUIzODYgLyogVHlwZVBy
b2ZpbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNTJDOTUyQjkxOUEyOEExQzAwNjlCMzg2IC8qIFR5cGVQcm9maWxlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkM5NTJCODE5QTI4QTFDMDA2
OUIzODYgLyogVHlwZVByb2ZpbGVyLmNwcCAqLzsgfTsKLQkJNTM5MTdFN0IxQjc5MDZGQTAwMEVC
RDMzIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzkxN0U3QTFCNzkwNkU0
MDAwRUJEMzMgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCAq
LzsgfTsKIAkJNUQ1MzcyNkYwRTFDNTQ4ODAwMjFFNTQ5IC8qIFRyYWNpbmcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVENTM3MjZFMEUxQzU0ODgwMDIx
RTU0OSAvKiBUcmFjaW5nLmggKi87IH07CiAJCTVENUQ4QUQxMEUwRDBFQkUwMEY5QzY5MiAvKiBs
aWJlZGl0LmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNUQ1RDhBRDAwRTBEMEVCRTAwRjlDNjkyIC8qIGxpYmVkaXQuZHlsaWIgKi87IH07CiAJ
CTVEQkIxNTFCMTMxRDBCMzEwMDU2QUQzNiAvKiB0ZXN0YXBpLmpzIGluIENvcHkgU3VwcG9ydCBT
Y3JpcHQgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTREODU3NzQwQTQ2OTZD
ODAwMzIxNDZDIC8qIHRlc3RhcGkuanMgKi87IH07CkBAIC0xNzE3LDggKzE3MTYsNiBAQAogCQlD
NEY0QjZGNTFBMDVDOTg0MDA1Q0FCNzYgLyogZ2VuZXJhdGVfb2JqY19wcm90b2NvbF90eXBlc19p
bXBsZW1lbnRhdGlvbi5weSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEM0RjRCNkQ3MUEwNUM3NkYwMDVDQUI3NiAvKiBnZW5lcmF0ZV9vYmpjX3Byb3RvY29s
X3R5cGVzX2ltcGxlbWVudGF0aW9uLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUM0RjRCNkY2MUEwNUM5ODQwMDVDQUI3NiAvKiBvYmpjX2dlbmVy
YXRvcl90ZW1wbGF0ZXMucHkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDNEY0QjZEODFBMDVDNzZGMDA1Q0FCNzYgLyogb2JqY19nZW5lcmF0b3JfdGVtcGxh
dGVzLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CURDMDAwMzkzMTlEOEJFNkYwMDAyM0VCMCAvKiBERkdQcmVjaXNlTG9jYWxDbG9iYmVyaXplLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzAwMDM5MDE5
RDhCRTZGMDAwMjNFQjAgLyogREZHUHJlY2lzZUxvY2FsQ2xvYmJlcml6ZS5oICovOyB9OwotCQlE
RUE3RTI0NDFCQkM2NzcyMDBENzg0NDAgLyogSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1M0YyNTZFMTFC
ODdFMjgwMDBCNEI3NjggLyogSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAgKi87IH07Ci0J
CURFQTdFMjQ1MUJCQzY3N0YwMEQ3ODQ0MCAvKiBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzkxN0U3QzFC
NzkxMTA2MDAwRUJEMzMgLyogSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUxMjRBOEY3MEU1NTU3NzUw
MDMwOTFGMSAvKiBPcGFxdWVKU1N0cmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTEyNEE4RjUwRTU1NTc3NTAwMzA5MUYxIC8qIE9wYXF1ZUpTU3Ry
aW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTEyNEE4RjgwRTU1NTc3NTAwMzA5MUYxIC8qIE9wYXF1ZUpTU3RyaW5nLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjRBOEY2MEU1NTU3NzUwMDMw
OTFGMSAvKiBPcGFxdWVKU1N0cmluZy5jcHAgKi87IH07CiAJCUUxOEUzQTU5MERGOTI3OEMwMEQ5
MEIzNCAvKiBWTS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMThFM0E1NzBERjkyNzhDMDBEOTBCMzQgLyogVk0uY3BwICovOyB9OwpAQCAtMjc5MCwx
MCArMjc4Nyw2IEBACiAJCTUyQzA2MTFEMUFBNTFFMUIwMEI0QURCQSAvKiBSdW50aW1lVHlwZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSdW50aW1lVHlwZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MkM5NTJCNjE5QTI4OTg1MDA2OUIzODYgLyogVHlwZVBy
b2ZpbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGVQcm9maWxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MkM5NTJCODE5QTI4QTFDMDA2OUIzODYgLyogVHlwZVByb2ZpbGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGVQcm9maWxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTUzOTE3RTdBMUI3OTA2RTQwMDBFQkQzMyAvKiBKU0dlbmVyaWNUeXBlZEFy
cmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk1MzkxN0U3QzFCNzkxMTA2MDAwRUJEMzMgLyogSlNUeXBl
ZEFycmF5Vmlld1Byb3RvdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTUzOTE3RTgzMUI3OTFDQjgwMDBFQkQzMyAvKiBUeXBlZEFycmF5LnByb3RvdHlwZS5qcyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFR5cGVkQXJyYXkucHJvdG90eXBl
LmpzOyBwYXRoID0gYnVpbHRpbnMvVHlwZWRBcnJheS5wcm90b3R5cGUuanM7IHNvdXJjZVRyZWUg
PSBTT1VSQ0VfUk9PVDsgfTsKLQkJNTNGMjU2RTExQjg3RTI4MDAwQjRCNzY4IC8qIEpTVHlwZWRB
cnJheVZpZXdQcm90b3R5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU1NDA3NTg0MThGNEEzNzUwMDYwMkE1RCAvKiBDb21waWxlUnVudGltZVRvTExWTUlS
LnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IENvbXBpbGVSdW50aW1l
VG9MTFZNSVIueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5M0Q0M0ND
QTBCQkUwNkQ4OUM1OTcwNyAvKiBNYXBEYXRhSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNYXBEYXRhSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1RDUzNzI2RDBFMUM1NDZCMDAyMUU1NDkgLyogVHJhY2luZy5kICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFRyYWNpbmcuZDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4MTks
NyArNDgxMiw2IEBACiAJCQkJMEYyQjY2QzUxN0I2QjVBQjAwQTdBRTNGIC8qIEpTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmggKi8sCiAJCQkJMEYyQjY2QzYxN0I2QjVB
QjAwQTdBRTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oICovLAogCQkJCTBG
MkI2NkM3MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlw
ZS5oICovLAotCQkJCTUzOTE3RTdBMUI3OTA2RTQwMDBFQkQzMyAvKiBKU0dlbmVyaWNUeXBlZEFy
cmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oICovLAogCQkJCTBGMkI2NkM4MTdCNkI1QUIwMEE3
QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUlubGluZXMuaCAqLywKIAkJ
CQk3OTdFMDdBNzFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQu
Y3BwICovLAogCQkJCTc5N0UwN0E4MUI4RkNGQjkwMDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxF
bnZpcm9ubWVudC5oICovLApAQCAtNDkwNCw4ICs0ODk2LDYgQEAKIAkJCQkwRjJCNjZDRjE3QjZC
NUFCMDBBN0FFM0YgLyogSlNUeXBlZEFycmF5UHJvdG90eXBlcy5oICovLAogCQkJCTBGMkI2NkQw
MTdCNkI1QUIwMEE3QUUzRiAvKiBKU1R5cGVkQXJyYXlzLmNwcCAqLywKIAkJCQkwRjJCNjZEMTE3
QjZCNUFCMDBBN0FFM0YgLyogSlNUeXBlZEFycmF5cy5oICovLAotCQkJCTUzRjI1NkUxMUI4N0Uy
ODAwMEI0Qjc2OCAvKiBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcCAqLywKLQkJCQk1Mzkx
N0U3QzFCNzkxMTA2MDAwRUJEMzMgLyogSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oICovLAog
CQkJCTY1MDdEMjk3MEU4NzFFNEEwMEQ3RDg5NiAvKiBKU1R5cGVJbmZvLmggKi8sCiAJCQkJMEYy
QjY2RDQxN0I2QjVBQjAwQTdBRTNGIC8qIEpTVWludDE2QXJyYXkuaCAqLywKIAkJCQkwRjJCNjZE
NTE3QjZCNUFCMDBBN0FFM0YgLyogSlNVaW50MzJBcnJheS5oICovLApAQCAtNTkwMSw3ICs1ODkx
LDYgQEAKIAkJCQk3Q0Y5QkM1RjFCNjVEOUIxMDA5REIxRUYgLyogUmVmbGVjdE9iamVjdC5qcyAq
LywKIAkJCQk3Q0Y5QkM2MDFCNjVEOUIxMDA5REIxRUYgLyogU3RyaW5nQ29uc3RydWN0b3IuanMg
Ki8sCiAJCQkJN0NGOUJDNjExQjY1RDlCMTAwOURCMUVGIC8qIFN0cmluZ0l0ZXJhdG9yLnByb3Rv
dHlwZS5qcyAqLywKLQkJCQk1MzkxN0U4MzFCNzkxQ0I4MDAwRUJEMzMgLyogVHlwZWRBcnJheS5w
cm90b3R5cGUuanMgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGJ1aWx0aW5zOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTYyMzgsNyArNjIyNyw2IEBACiAJCQkJMEZCMTc2NjMxOTZCOEY5
RTAwOTEwNTJBIC8qIERGR1B1cmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzQTFCRkEx
QTlFQ0I3RDAwMERFMDFBIC8qIERGR1B1dFN0YWNrU2lua2luZ1BoYXNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NkVDOUREMTEzMjhERjgyMDAyQjJBRDcgLyogREZHUmVnaXN0ZXJCYW5rLmggaW4g
SGVhZGVycyAqLywKLQkJCQlERUE3RTI0NTFCQkM2NzdGMDBENzg0NDAgLyogSlNUeXBlZEFycmF5
Vmlld1Byb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyRkNDRkMxOEE2MDA3MDAwMUEy
N0Y4IC8qIERGR1NhZmVwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc3QTQyNDMxN0EwQkJG
RDAwQThEQjgxIC8qIERGR1NhZmVUb0V4ZWN1dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NDEw
MTdGMTc5REFGODAwMDJFQjhCQSAvKiBERkdTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVy
YXRvci5oIGluIEhlYWRlcnMgKi8sCkBAIC02Mzc5LDYgKzYzNjcsNyBAQAogCQkJCTJBQUJDREU3
MThFRjI5NDIwMDAwMjA5NiAvKiBHQ0xvZ2dpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NEU4
RUIwMThCRkZCQkIwMDU1NkQyOCAvKiBHQ1NlZ21lbnRlZEFycmF5LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNTRFOEVCMTE4QkZGQkJFMDA1NTZEMjggLyogR0NTZWdtZW50ZWRBcnJheUlubGluZXMu
aCBpbiBIZWFkZXJzICovLAorCQkJCUMyMjM5RDFCMTYyNjJCREQwMDVBQzVGRCAvKiBHQ1RocmVh
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUzMjQzOTQxODU2OTcwOTAwMkVENjkyIC8qIGdlbmVy
YXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJQzQ3MDND
QzAxOTI4NDQ5NjAwMTNGQkVBIC8qIGdlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5n
cy5weSBpbiBIZWFkZXJzICovLAogCQkJCTJERkI4QUZFMUJCMzIzQkQwMDkzRDIzNyAvKiBnZW5l
cmF0ZS1qcy1idWlsdGlucyBpbiBIZWFkZXJzICovLApAQCAtNjU2MSw3ICs2NTUwLDYgQEAKIAkJ
CQk4NkUzQzYxNDE2N0JBQkQ3MDA2RDc2MEEgLyogSlNFeHBvcnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE3QjRBQ0FGMTQ4NEM5Q0UwMEIzOEEzNiAvKiBKU0V4cG9ydE1hY3Jvcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYyQjY2RUYxN0I2QjVBQjAwQTdBRTNGIC8qIEpTRmxvYXQzMkFycmF5Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQk1MzkxN0U3QjFCNzkwNkZBMDAwRUJEMzMgLyogSlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MkI2NkYwMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0Zsb2F0NjRBcnJheS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMxOEM0MUYwRTE2RjVDRDAwQjM0NDYwIC8qIEpTRnVuY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE3MjAyOEJBMTc5NzYwM0QwMDk4MDI4QyAvKiBKU0Z1bmN0aW9uSW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCkBAIC03NzM3LDYgKzc3MjUsNyBAQAogCQkJCTJBQUNFNjNDMThDQTVB
MDMwMEVEMDE5MSAvKiBHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEY3NjZEMkYxNUE4RENFMDAwOEYzNjNFIC8qIEdDQXdhcmVKSVRTdHViUm91dGluZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyQURGQTI2MzE4RUYzNTQwMDA0RjlGQ0MgLyogR0NMb2dnaW5nLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUMyMjM5RDFBMTYyNjJCREQwMDVBQzVGRCAvKiBHQ1RocmVh
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjkzMzI5RjE0Q0E3RENBMDA4NUYzQzYgLyogR2V0
QnlJZFN0YXR1cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjAzMzJDMzE4QjAxNzYzMDA1Rjk3
OUEgLyogR2V0QnlJZFZhcmlhbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQyODA4NTUxMDdF
QzBFNzAwMTNFN0IyIC8qIEdldHRlclNldHRlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTc5NzIs
NyArNzk2MSw2IEBACiAJCQkJMEY5ODIwNjAxNkJGRTM4MTAwMjQwRDAyIC8qIFByZWNpc2VKdW1w
VGFyZ2V0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NTc0MkY2NTBERDExRjVBMDAwOTE3RkIg
LyogUHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NUNENDU3NjBFMUM0RkREMDA4NTM1
OEUgLyogUHJvZmlsZUdlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlERUE3RTI0NDFC
QkM2NzcyMDBENzg0NDAgLyogSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5NUFCODM1NjBEQTQzQzMwMDBCQzgzRjMgLyogUHJvZmlsZU5vZGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZGNzI5QUQxNjZBRDM1QzAwMEY1QkEzIC8qIFByb2ZpbGVyQnl0
ZWNvZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNzI5QUUxNjZBRDM1QzAwMEY1QkEzIC8q
IFByb2ZpbGVyQnl0ZWNvZGVzLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1R5cGVkQXJyYXkucHJvdG90eXBlLmpzIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1R5cGVkQXJyYXkucHJvdG90eXBlLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MjgzNDIwNDYzMzQ5YmE2ZmYzZmQyMmIwOWZjY2JhYzM4
ZjQ5NTU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9UeXBlZEFycmF5LnByb3RvdHlwZS5qcworKysg
L2Rldi9udWxsCkBAIC0xLDI4NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotLy8gTm90ZSB0aGF0IHRoZSBpbnRyaXNpYyBAdHlwZWRBcnJheUxl
bmd0aCBjaGVja3MgdGhlIHRoYXQgdGhlIGFyZ3VtZW50IHBhc3NlZCBpcyBhIHR5cGVkIGFycmF5
Ci0vLyBhbmQgdGhyb3dzIGlmIGl0IGlzIG5vdC4KLQotZnVuY3Rpb24gZXZlcnkoY2FsbGJhY2sg
LyosIHRoaXNBcmcgKi8pCi17Ci0gICAgInVzZSBzdHJpY3QiOwotICAgIHZhciBsZW5ndGggPSBA
dHlwZWRBcnJheUxlbmd0aCh0aGlzKTsKLSAgICB2YXIgdGhpc0FyZyA9IGFyZ3VtZW50cy5sZW5n
dGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkOwotCi0gICAgaWYgKHR5cGVvZiBjYWxs
YmFjayAhPT0gImZ1bmN0aW9uIikKLSAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlR5cGVk
QXJyYXkucHJvdG90eXBlLmV2ZXJ5IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiIpOwotCi0g
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAgICBpZiAoIWNhbGxi
YWNrLkBjYWxsKHRoaXNBcmcsIHRoaXNbaV0sIGksIHRoaXMpKQotICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIH0KLQotICAgIHJldHVybiB0cnVlOwotfQotCi1mdW5jdGlvbiBmaW5kKGNh
bGxiYWNrIC8qIFssIHRoaXNBcmddICovKQotewotICAgICJ1c2Ugc3RyaWN0IjsKLSAgICB2YXIg
bGVuZ3RoID0gQHR5cGVkQXJyYXlMZW5ndGgodGhpcyk7Ci0gICAgdmFyIHRoaXNBcmcgPSBhcmd1
bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDsKLQotICAgIGlmICh0
eXBlb2YgY2FsbGJhY2sgIT09ICJmdW5jdGlvbiIpCi0gICAgICAgIHRocm93IG5ldyBAVHlwZUVy
cm9yKCJUeXBlZEFycmF5LnByb3RvdHlwZS5maW5kIGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlv
biIpOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAgICBs
ZXQgZWxlbSA9IHRoaXNbaV07Ci0gICAgICAgIGlmIChjYWxsYmFjay5AY2FsbCh0aGlzQXJnLCBl
bGVtLCBpLCB0aGlzKSkKLSAgICAgICAgICAgIHJldHVybiBlbGVtOwotICAgIH0KLSAgICByZXR1
cm4gdW5kZWZpbmVkOwotfQotCi1mdW5jdGlvbiBmaW5kSW5kZXgoY2FsbGJhY2sgLyogWywgdGhp
c0FyZ10gKi8pCi17Ci0gICAgInVzZSBzdHJpY3QiOwotICAgIHZhciBsZW5ndGggPSBAdHlwZWRB
cnJheUxlbmd0aCh0aGlzKTsKLSAgICB2YXIgdGhpc0FyZyA9IGFyZ3VtZW50cy5sZW5ndGggPiAx
ID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkOwotCi0gICAgaWYgKHR5cGVvZiBjYWxsYmFjayAh
PT0gImZ1bmN0aW9uIikKLSAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlR5cGVkQXJyYXku
cHJvdG90eXBlLmZpbmRJbmRleCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24iKTsKLQotICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAgICAgICAgaWYgKGNhbGxiYWNr
LkBjYWxsKHRoaXNBcmcsIHRoaXNbaV0sIGksIHRoaXMpKQotICAgICAgICAgICAgcmV0dXJuIGk7
Ci0gICAgfQotICAgIHJldHVybiAtMTsKLX0KLQotZnVuY3Rpb24gZm9yRWFjaChjYWxsYmFjayAv
KiBbLCB0aGlzQXJnXSAqLykKLXsKLSAgICAidXNlIHN0cmljdCI7Ci0gICAgdmFyIGxlbmd0aCA9
IEB0eXBlZEFycmF5TGVuZ3RoKHRoaXMpOwotICAgIHZhciB0aGlzQXJnID0gYXJndW1lbnRzLmxl
bmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7Ci0KLSAgICBpZiAodHlwZW9mIGNh
bGxiYWNrICE9PSAiZnVuY3Rpb24iKQotICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiVHlw
ZWRBcnJheS5wcm90b3R5cGUuZmluZEluZGV4IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiIp
OwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykKLSAgICAgICAgY2FsbGJh
Y2suQGNhbGwodGhpc0FyZywgdGhpc1tpXSwgaSwgdGhpcyk7Ci19Ci0KLWZ1bmN0aW9uIHNvbWUo
Y2FsbGJhY2sgLyogWywgdGhpc0FyZ10gKi8pCi17Ci0gICAgLy8gMjIuMi4zLjI0Ci0gICAgInVz
ZSBzdHJpY3QiOwotICAgIHZhciBsZW5ndGggPSBAdHlwZWRBcnJheUxlbmd0aCh0aGlzKTsKLSAg
ICB2YXIgdGhpc0FyZyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5k
ZWZpbmVkOwotCi0gICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gImZ1bmN0aW9uIikKLSAgICAg
ICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlR5cGVkQXJyYXkucHJvdG90eXBlLnNvbWUgY2FsbGJh
Y2sgbXVzdCBiZSBhIGZ1bmN0aW9uIik7Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0
aDsgaSsrKSB7Ci0gICAgICAgIGlmIChjYWxsYmFjay5AY2FsbCh0aGlzQXJnLCB0aGlzW2ldLCBp
LCB0aGlzKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHJldHVybiBm
YWxzZTsKLX0KLQotZnVuY3Rpb24gc29ydChjb21wYXJhdG9yKQotewotICAgIC8vIDIyLjIuMy4y
NQotICAgICJ1c2Ugc3RyaWN0IjsKLQotICAgIGZ1bmN0aW9uIG1pbihhLCBiKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGEgPCBiID8gYSA6IGI7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbWVyZ2Uo
ZHN0LCBzcmMsIHNyY0luZGV4LCBzcmNFbmQsIHdpZHRoLCBjb21wYXJhdG9yKQotICAgIHsKLSAg
ICAgICAgdmFyIGxlZnQgPSBzcmNJbmRleDsKLSAgICAgICAgdmFyIGxlZnRFbmQgPSBtaW4obGVm
dCArIHdpZHRoLCBzcmNFbmQpOwotICAgICAgICB2YXIgcmlnaHQgPSBsZWZ0RW5kOwotICAgICAg
ICB2YXIgcmlnaHRFbmQgPSBtaW4ocmlnaHQgKyB3aWR0aCwgc3JjRW5kKTsKLQotICAgICAgICBm
b3IgKHZhciBkc3RJbmRleCA9IGxlZnQ7IGRzdEluZGV4IDwgcmlnaHRFbmQ7ICsrZHN0SW5kZXgp
IHsKLSAgICAgICAgICAgIGlmIChyaWdodCA8IHJpZ2h0RW5kKSB7Ci0gICAgICAgICAgICAgICAg
aWYgKGxlZnQgPj0gbGVmdEVuZCB8fCBjb21wYXJhdG9yKHNyY1tyaWdodF0sIHNyY1tsZWZ0XSkg
PCAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRzdFtkc3RJbmRleF0gPSBzcmNbcmlnaHQrK107
Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgZHN0W2RzdEluZGV4XSA9IHNyY1tsZWZ0KytdOwotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbWVyZ2VTb3J0KGFycmF5LCB2YWx1ZUNvdW50
LCBjb21wYXJhdG9yKQotICAgIHsKLSAgICAgICAgdmFyIGJ1ZmZlciA9IFsgXTsKLSAgICAgICAg
YnVmZmVyLmxlbmd0aCA9IHZhbHVlQ291bnQ7Ci0KLSAgICAgICAgdmFyIGRzdCA9IGJ1ZmZlcjsK
LSAgICAgICAgdmFyIHNyYyA9IGFycmF5OwotCi0gICAgICAgIGZvciAodmFyIHdpZHRoID0gMTsg
d2lkdGggPCB2YWx1ZUNvdW50OyB3aWR0aCAqPSAyKSB7Ci0gICAgICAgICAgICBmb3IgKHZhciBz
cmNJbmRleCA9IDA7IHNyY0luZGV4IDwgdmFsdWVDb3VudDsgc3JjSW5kZXggKz0gMiAqIHdpZHRo
KQotICAgICAgICAgICAgICAgIG1lcmdlKGRzdCwgc3JjLCBzcmNJbmRleCwgdmFsdWVDb3VudCwg
d2lkdGgsIGNvbXBhcmF0b3IpOwotCi0gICAgICAgICAgICB2YXIgdG1wID0gc3JjOwotICAgICAg
ICAgICAgc3JjID0gZHN0OwotICAgICAgICAgICAgZHN0ID0gdG1wOwotICAgICAgICB9Ci0KLSAg
ICAgICAgaWYgKHNyYyAhPSBhcnJheSkgewotICAgICAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8
IHZhbHVlQ291bnQ7IGkrKykKLSAgICAgICAgICAgICAgICBhcnJheVtpXSA9IHNyY1tpXTsKLSAg
ICAgICAgfQotICAgIH0KLQotICAgIHZhciBsZW5ndGggPSBAdHlwZWRBcnJheUxlbmd0aCh0aGlz
KTsKLQotICAgIGlmIChsZW5ndGggPCAyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAodHlw
ZW9mIGNvbXBhcmF0b3IgPT0gImZ1bmN0aW9uIikKLSAgICAgICAgbWVyZ2VTb3J0KHRoaXMsIGxl
bmd0aCwgY29tcGFyYXRvcik7Ci0gICAgZWxzZQotICAgICAgICBAdHlwZWRBcnJheVNvcnQodGhp
cyk7Ci0gICAgCi0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KLWZ1bmN0aW9uIHJlZHVjZShjYWxsYmFj
ayAvKiBbLCBpbml0aWFsVmFsdWVdICovKQotewotICAgIC8vIDIyLjIuMy4xOQotICAgICJ1c2Ug
c3RyaWN0IjsKLQotICAgIHZhciBsZW5ndGggPSBAdHlwZWRBcnJheUxlbmd0aCh0aGlzKTsKLQot
ICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICJmdW5jdGlvbiIpCi0gICAgICAgIHRocm93IG5l
dyBAVHlwZUVycm9yKCJUeXBlZEFycmF5LnByb3RvdHlwZS5yZWR1Y2UgY2FsbGJhY2sgbXVzdCBi
ZSBhIGZ1bmN0aW9uIik7Ci0KLSAgICBpZiAobGVuZ3RoID09PSAwICYmIGFyZ3VtZW50cy5sZW5n
dGggPCAyKQotICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiVHlwZWRBcnJheS5wcm90b3R5
cGUucmVkdWNlIG9mIGVtcHR5IGFycmF5IHdpdGggbm8gaW5pdGlhbCB2YWx1ZSIpOwotCi0gICAg
dmFyIGFjY3VtdWxhdG9yLCBrID0gMDsKLSAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpCi0g
ICAgICAgIGFjY3VtdWxhdG9yID0gYXJndW1lbnRzWzFdOwotICAgIGVsc2UKLSAgICAgICAgYWNj
dW11bGF0b3IgPSB0aGlzW2srK107Ci0KLSAgICBmb3IgKDsgayA8IGxlbmd0aDsgaysrKQotICAg
ICAgICBhY2N1bXVsYXRvciA9IGNhbGxiYWNrLkBjYWxsKHVuZGVmaW5lZCwgYWNjdW11bGF0b3Is
IHRoaXNba10sIGssIHRoaXMpOwotCi0gICAgcmV0dXJuIGFjY3VtdWxhdG9yOwotfQotCi1mdW5j
dGlvbiByZWR1Y2VSaWdodChjYWxsYmFjayAvKiBbLCBpbml0aWFsVmFsdWVdICovKQotewotICAg
IC8vIDIyLjIuMy4yMAotICAgICJ1c2Ugc3RyaWN0IjsKLQotICAgIHZhciBsZW5ndGggPSBAdHlw
ZWRBcnJheUxlbmd0aCh0aGlzKTsKLQotICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICJmdW5j
dGlvbiIpCi0gICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJUeXBlZEFycmF5LnByb3RvdHlw
ZS5yZWR1Y2VSaWdodCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24iKTsKLQotICAgIGlmIChs
ZW5ndGggPT09IDAgJiYgYXJndW1lbnRzLmxlbmd0aCA8IDIpCi0gICAgICAgIHRocm93IG5ldyBA
VHlwZUVycm9yKCJUeXBlZEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCBvZiBlbXB0eSBhcnJh
eSB3aXRoIG5vIGluaXRpYWwgdmFsdWUiKTsKLQotICAgIHZhciBhY2N1bXVsYXRvciwgayA9IGxl
bmd0aCAtIDE7Ci0gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKQotICAgICAgICBhY2N1bXVs
YXRvciA9IGFyZ3VtZW50c1sxXTsKLSAgICBlbHNlCi0gICAgICAgIGFjY3VtdWxhdG9yID0gdGhp
c1trLS1dOwotCi0gICAgZm9yICg7IGsgPj0gMDsgay0tKQotICAgICAgICBhY2N1bXVsYXRvciA9
IGNhbGxiYWNrLkBjYWxsKHVuZGVmaW5lZCwgYWNjdW11bGF0b3IsIHRoaXNba10sIGssIHRoaXMp
OwotCi0gICAgcmV0dXJuIGFjY3VtdWxhdG9yOwotfQotCi1mdW5jdGlvbiBtYXAoY2FsbGJhY2sg
LyosIHRoaXNBcmcgKi8pCi17Ci0gICAgLy8gMjIuMi4zLjE4Ci0gICAgInVzZSBzdHJpY3QiOwot
Ci0gICAgdmFyIGxlbmd0aCA9IEB0eXBlZEFycmF5TGVuZ3RoKHRoaXMpOwotCi0gICAgaWYgKHR5
cGVvZiBjYWxsYmFjayAhPT0gImZ1bmN0aW9uIikKLSAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJy
b3IoIlR5cGVkQXJyYXkucHJvdG90eXBlLm1hcCBjYWxsYmFjayBtdXN0IGJlIGEgZnVuY3Rpb24i
KTsKLQotICAgIHZhciB0aGlzQXJnID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNb
MV0gOiB1bmRlZmluZWQ7Ci0gICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGEgc3BlY2llcyBj
b25zdHJ1Y3Rvci4KLSAgICB2YXIgcmVzdWx0ID0gbmV3IHRoaXMuY29uc3RydWN0b3IobGVuZ3Ro
KTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciBt
YXBwZWRWYWx1ZSA9IGNhbGxiYWNrLkBjYWxsKHRoaXNBcmcsIHRoaXNbaV0sIGksIHRoaXMpOwot
ICAgICAgICByZXN1bHRbaV0gPSBtYXBwZWRWYWx1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlc3Vs
dDsKLX0KLQotZnVuY3Rpb24gZmlsdGVyKGNhbGxiYWNrIC8qLCB0aGlzQXJnICovKQotewotICAg
ICJ1c2Ugc3RyaWN0IjsKLQotICAgIHZhciBsZW5ndGggPSBAdHlwZWRBcnJheUxlbmd0aCh0aGlz
KTsKLQotICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICJmdW5jdGlvbiIpCi0gICAgICAgIHRo
cm93IG5ldyBAVHlwZUVycm9yKCJBcnJheS5wcm90b3R5cGUubWFwIGNhbGxiYWNrIG11c3QgYmUg
YSBmdW5jdGlvbiIpOwotCi0gICAgdmFyIHRoaXNBcmcgPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/
IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDsKLQotICAgIHZhciBrZXB0ID0gW107Ci0KLSAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHZhciB2YWx1ZSA9IHRo
aXNbaV07Ci0gICAgICAgIGlmIChjYWxsYmFjay5AY2FsbCh0aGlzQXJnLCB2YWx1ZSwgaSwgdGhp
cykpCi0gICAgICAgICAgICBrZXB0LnB1c2godmFsdWUpOwotICAgIH0KLQotICAgIC8vIEZJWE1F
OiBUaGlzIHNob3VsZCBiZSBhIHNwZWNpZXMgY29uc3RydWN0b3IuCi0gICAgdmFyIHJlc3VsdCA9
IG5ldyB0aGlzLmNvbnN0cnVjdG9yKGtlcHQubGVuZ3RoKTsKLQotICAgIGZvciAodmFyIGkgPSAw
OyBpIDwga2VwdC5sZW5ndGg7IGkrKykKLSAgICAgICAgcmVzdWx0W2ldID0ga2VwdFtpXTsKLQot
ICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWZ1bmN0aW9uIHRvTG9jYWxlU3RyaW5nKCkKLXsKLSAg
ICAidXNlIHN0cmludCI7Ci0KLSAgICB2YXIgbGVuZ3RoID0gQHR5cGVkQXJyYXlMZW5ndGgodGhp
cyk7Ci0KLSAgICBpZiAobGVuZ3RoID09IDApCi0gICAgICAgIHJldHVybiAiIjsKLQotICAgIHZh
ciBzdHJpbmcgPSB0aGlzWzBdLnRvTG9jYWxlU3RyaW5nKCk7Ci0gICAgZm9yICh2YXIgaSA9IDE7
IGkgPCBsZW5ndGg7IGkrKykKLSAgICAgICAgc3RyaW5nICs9ICIsIiArIHRoaXNbaV0udG9Mb2Nh
bGVTdHJpbmcoKTsKLQotICAgIHJldHVybiBzdHJpbmc7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXggMmRiMjU5MjZkMTkwYWJl
OTY4YzdmYTI0MTNkZmFmMTczZjg0YjBhYy4uM2NjMzUxYjMxZDdhZjEzZTFjNWI4OGRjNDVlZDI0
NjQ4MDRhYjMyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
UHJvdG90eXBlLmNwcApAQCAtNDYsNiArNDYsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0
ZSopOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1RvTG9jYWxl
U3RyaW5nKEV4ZWNTdGF0ZSopOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVBy
b3RvRnVuY0NvbmNhdChFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
YXJyYXlQcm90b0Z1bmNKb2luKEV4ZWNTdGF0ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKaW5kZXggMmQ5MzNiZDZjNzEyOGU3YTRhYjI4ODBi
MWIzN2VkZjE1OWVhN2Q5My4uMzk0MTJjMjIwNWJkYzdhZTIzZDNkMjJlNGE1ZDllODQyOTI1MGMy
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5
cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5o
CkBAIC00Niw3ICs0Niw2IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZN
JiwgSlNHbG9iYWxPYmplY3QqKTsKIH07CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
YXJyYXlQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNWYWx1ZXMoRXhlY1N0YXRlKik7CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9u
SWRlbnRpZmllcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50
aWZpZXJzLmgKaW5kZXggZmEwMDAyMmU4YTM4MmM1NmRlMWQzYzhkNzE5YjY3NjVhYTlhMzQyMi4u
YzUxYjQ2ZDcxNmEyNTk5N2ExNzMxNjgzYmZmNzhjYTM0MWM0MWZjNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC0yOTIsOCAr
MjkyLDYgQEAKICAgICBtYWNybyhnZXRQcm90b3R5cGVPZikgXAogICAgIG1hY3JvKGdldE93blBy
b3BlcnR5TmFtZXMpIFwKICAgICBtYWNybyhUeXBlRXJyb3IpIFwKLSAgICBtYWNybyh0eXBlZEFy
cmF5TGVuZ3RoKSBcCi0gICAgbWFjcm8odHlwZWRBcnJheVNvcnQpIFwKICAgICBtYWNybyh1bmRl
ZmluZWQpIFwKICAgICBtYWNybyhCdWlsdGluTG9nKSBcCiAgICAgbWFjcm8oaG9tZU9iamVjdCkg
XApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3LmgKaW5kZXggNmU1NWEzMTc5MjlhZmM5Zjc1YWRjMmMzNTA1NDU4NTc1MzQz
ZTdiOC4uYTNhNzU2Y2Y1NTMyMWY2ODhiNzVkNzIzYTAxNzgzZjUwZTdlYzMyZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXcu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5
Vmlldy5oCkBAIC04Nyw4ICs4Nyw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEFkYXB0b3I+CiBjbGFz
cyBKU0dlbmVyaWNUeXBlZEFycmF5VmlldyA6IHB1YmxpYyBKU0FycmF5QnVmZmVyVmlldyB7CiBw
dWJsaWM6CiAgICAgdHlwZWRlZiBKU0FycmF5QnVmZmVyVmlldyBCYXNlOwotICAgIHR5cGVkZWYg
dHlwZW5hbWUgQWRhcHRvcjo6VHlwZSBFbGVtZW50VHlwZTsKLQogICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVz
R2V0UHJvcGVydHlOYW1lcyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEludGVyY2Vw
dHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm87CiAKICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZWxlbWVudFNpemUgPSBzaXplb2YodHlwZW5hbWUgQWRh
cHRvcjo6VHlwZSk7CkBAIC0xNzAsNDggKzE2OCw3IEBAIHB1YmxpYzoKICAgICAgICAgc2V0SW5k
ZXhRdWlja2x5VG9OYXRpdmVWYWx1ZShpLCB2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KLQotICAgIHN0YXRpYyBPcHRpb25hbDx0eXBlbmFtZSBBZGFwdG9yOjpUeXBlPiB0b0Fk
YXB0b3JOYXRpdmVGcm9tVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGpzVmFsdWUpCi0g
ICAgewotICAgICAgICB0eXBlbmFtZSBBZGFwdG9yOjpUeXBlIHZhbHVlID0gdG9OYXRpdmVGcm9t
VmFsdWU8QWRhcHRvcj4oZXhlYywganNWYWx1ZSk7Ci0gICAgICAgIGlmIChleGVjLT5oYWRFeGNl
cHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiBOdWxsb3B0OwotICAgICAgICByZXR1cm4gdmFs
dWU7Ci0gICAgfQotCi0gICAgYm9vbCBzZXRSYW5nZVRvVmFsdWUoRXhlY1N0YXRlKiBleGVjLCB1
bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBKU1ZhbHVlIGpzVmFsdWUpCi0gICAgewotICAg
ICAgICBBU1NFUlQoMCA8PSBzdGFydCAmJiBzdGFydCA8PSBlbmQgJiYgZW5kIDw9IG1fbGVuZ3Ro
KTsKLQotICAgICAgICB0eXBlbmFtZSBBZGFwdG9yOjpUeXBlIHZhbHVlID0gdG9OYXRpdmVGcm9t
VmFsdWU8QWRhcHRvcj4oZXhlYywganNWYWx1ZSk7Ci0gICAgICAgIGlmIChleGVjLT5oYWRFeGNl
cHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICAvLyBXZSBtaWdo
dCB3YW50IHRvIGRvIHNvbWV0aGluZyBmYXN0ZXIgaGVyZSAoZS5nLiBTSU1EKSBpZiB0aGlzIGlz
IHRvbyBzbG93LgotICAgICAgICB0eXBlbmFtZSBBZGFwdG9yOjpUeXBlKiBhcnJheSA9IHR5cGVk
VmVjdG9yKCk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kp
Ci0gICAgICAgICAgICBhcnJheVtpXSA9IHZhbHVlOwotCi0gICAgICAgIHJldHVybiB0cnVlOwot
ICAgIH0KLQotICAgIHZvaWQgc29ydCgpCi0gICAgewotICAgICAgICBzd2l0Y2ggKEFkYXB0b3I6
OnR5cGVWYWx1ZSkgewotICAgICAgICBjYXNlIFR5cGVGbG9hdDMyOgotICAgICAgICAgICAgc29y
dEZsb2F0PGludDMyX3Q+KCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUeXBl
RmxvYXQ2NDoKLSAgICAgICAgICAgIHNvcnRGbG9hdDxpbnQ2NF90PigpOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6IHsKLSAgICAgICAgICAgIEVsZW1lbnRUeXBlKiBhcnJh
eSA9IHR5cGVkVmVjdG9yKCk7Ci0gICAgICAgICAgICBzdGQ6OnNvcnQoYXJyYXksIGFycmF5ICsg
bV9sZW5ndGgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgfQotICAg
IH0KLQorICAgIAogICAgIGJvb2wgY2FuQWNjZXNzUmFuZ2VRdWlja2x5KHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgbGVuZ3RoKQogICAgIHsKICAgICAgICAgcmV0dXJuIG9mZnNldCA8PSBtX2xl
bmd0aApAQCAtMzAwLDY0ICsyNTcsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgc2V0V2l0aFNwZWNp
ZmljVHlwZSgKICAgICAgICAgRXhlY1N0YXRlKiwgSlNHZW5lcmljVHlwZWRBcnJheVZpZXc8T3Ro
ZXJBZGFwdG9yPiosCiAgICAgICAgIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsK
LQotICAgIC8vIFRoZSBFQ01BIDYgc3BlYyBzdGF0ZXMgdGhhdCBmbG9hdGluZyBwb2ludCBUeXBl
ZCBBcnJheXMgc2hvdWxkIGhhdmUgdGhlIGZvbGxvd2luZyBvcmRlcmluZzoKLSAgICAvLwotICAg
IC8vIC1JbmlmaW5pdHkgPCBuZWdhdGl2ZSBmaW5pdGUgbnVtYmVycyA8IC0wLjAgPCAwLjAgPCBw
b3NpdGl2ZSBmaW5pdGUgbnVtYmVycyA8IEluZmluaXR5IDwgTmFOCi0gICAgLy8gTm90ZTogcmVn
YXJkbGVzcyBvZiB0aGUgc2lnbiBvciBleGFjdCByZXByZXNlbnRhdGlvbiBvZiBhIE5hTiBpdCBp
cyBncmVhdGVyIHRoYW4gYWxsIG90aGVyIHZhbHVlcy4KLSAgICAvLwotICAgIC8vIEFuIGludGVy
ZXN0aW5nIGZhY3QgYWJvdXQgSUVFRSA3NTQgZmxvYXRpbmcgcG9pbnQgbnVtYmVycyBpcyB0aGF0
IGhhdmUgYW4gYWRqYWNlbnQgcmVwcmVzZW50YXRpb24KLSAgICAvLyBpLmUuIGZvciBhbnkgZmlu
aXRlIGZsb2F0aW5nIHBvaW50IHggdGhlcmUgZG9lcyBub3QgZXhpc3QgYSBmaW5pdGUgZmxvYXRp
bmcgcG9pbnQgeSBzdWNoIHRoYXQKLSAgICAvLyAoKGZsb2F0KSAoKGludCkgeCArIDEpKSA+IHkg
PiB4ICh3aGVyZSBpbnQgcmVwcmVzZW50cyBhIHNpZ25lZCBiaXQgaW50ZWdlciB3aXRoIHRoZSBz
YW1lIG51bWJlcgotICAgIC8vIG9mIGJpdHMgYXMgZmxvYXQpLiBUaHVzLCBpZiB3ZSBoYXZlIGFu
IGFycmF5IG9mIGZsb2F0aW5nIHBvaW50cyBpZiB3ZSB2aWV3IGl0IGFzIGFuCi0gICAgLy8gYXJy
YXkgb2Ygc2lnbmVkIGJpdCBpbnRlZ2VycyBpdCB3aWxsIHNvcnQgaW4gdGhlIGZvcm1hdCB3ZSBk
ZXNpcmUuIE5vdGUsIGRlbm9ybWFsCi0gICAgLy8gbnVtYmVycyBmaXQgdGhpcyBwcm9wZXJ0eSBh
cyB0aGV5IGFyZSBmbG9hdGluZyBwb2ludCBudW1iZXJzIHdpdGggYSBleHBvbmVudCBmaWVsZCBv
ZiBhbGwKLSAgICAvLyB6ZXJvcyBzbyB0aGV5IHdpbGwgYmUgY2xvc2VyIHRvIHRoZSBzaWduZWQg
emVyb3MgdGhhbiBhbnkgbm9ybWFsaXplZCBudW1iZXIuCi0gICAgLy8KLSAgICAvLyBBbGwgdGhl
IHByb2Nlc3NvcnMgd2Ugc3VwcG9ydCwgaG93ZXZlciwgdXNlIHR3b3MgY29tcGxlbWVudC4gRm9y
dHVuYXRlbHksIGlmIHlvdSBjb21wYXJlIGEgc2lnbmVkCi0gICAgLy8gYml0IG51bWJlciBhcyBp
ZiBpdCB3ZXJlIHR3b3MgY29tcGxlbWVudCB0aGUgcmVzdWx0IHdpbGwgYmUgY29ycmVjdCBhc3N1
bWluZyBib3RoIG51bWJlcnMgYXJlIG5vdAotICAgIC8vIG5lZ2F0aXZlLiBlLmcuCi0gICAgLy8K
LSAgICAvLyAgICAtIDw9PiAtID0gcmV2ZXJzZWQgKC0zMCA+IC0yMCA9IHRydWUpCi0gICAgLy8g
ICAgKyA8PT4gKyA9IG9yZGVyZWQgKDMwID4gMjAgPSB0cnVlKQotICAgIC8vICAgIC0gPD0+ICsg
PSBvcmRlcmVkICgtMzAgPiAyMCA9IGZhbHNlKQotICAgIC8vICAgICsgPD0+IC0gPSBvcmRlcmVk
ICgzMCA+IC0yMCA9IHRydWUpCi0gICAgLy8KLSAgICAvLyBGb3IgTmFOLCB3ZSBub3JtYWxpemUg
dGhlIE5hTiB0byBhIHBldGljdWxhciByZXByZXNlbnRhdGlvbjsgdGhlIHNpZ24gYml0IGlzIDAs
IGFsbCBleHBvbmVudGlhbCBiaXRzCi0gICAgLy8gYXJlIDEgYW5kIG9ubHkgdGhlIE1TQiBvZiB0
aGUgbWFudGlzc2EgaXMgMS4gU28sIE5hTiBpcyByZWNvZ25pemVkIGFzIHRoZSBsYXJnZXN0IGlu
dGVncmFsIG51bWJlcnMuCi0KLSAgICB2b2lkIHB1cmlmeUFycmF5KCkKLSAgICB7Ci0gICAgICAg
IEVsZW1lbnRUeXBlKiBhcnJheSA9IHR5cGVkVmVjdG9yKCk7Ci0gICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBtX2xlbmd0aDsgaSsrKQotICAgICAgICAgICAgYXJyYXlbaV0gPSBwdXJp
ZnlOYU4oYXJyYXlbaV0pOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEludGVncmFs
VHlwZT4KLSAgICBzdGF0aWMgYm9vbCBBTFdBWVNfSU5MSU5FIHNvcnRDb21wYXJpc29uKEludGVn
cmFsVHlwZSBhLCBJbnRlZ3JhbFR5cGUgYikKLSAgICB7Ci0gICAgICAgIGlmIChhID49IDAgfHwg
YiA+PSAwKQotICAgICAgICAgICAgcmV0dXJuIGEgPCBiOwotICAgICAgICByZXR1cm4gYSA+IGI7
Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgSW50ZWdyYWxUeXBlPgotICAgIHZvaWQg
c29ydEZsb2F0KCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChzaXplb2YoSW50ZWdyYWxUeXBlKSA9
PSBzaXplb2YoRWxlbWVudFR5cGUpKTsKLQotICAgICAgICAvLyBTaW5jZSB0aGVyZSBtaWdodCBi
ZSBhbm90aGVyIHZpZXcgdGhhdCBzZXRzIHRoZSBiaXRzIG9mCi0gICAgICAgIC8vIG91ciBmbG9h
dHMgdG8gTmFOcyB3aXRoIG5lZ2F0aXZlIHNpZ24gYml0cyB3ZSBuZWVkIHRvCi0gICAgICAgIC8v
IHB1cmlmeSB0aGUgYXJyYXkuCi0gICAgICAgIC8vIFdlIHVzZSBhIHNlcGFyYXRlIGZ1bmN0aW9u
IGhlcmUgdG8gYXZvaWQgdGhlIHN0cmljdCBhbGlhc2luZyBydWxlLgotICAgICAgICAvLyBXZSBj
b3VsZCB1c2UgYSB1bmlvbiBidXQgQVNBTiBzZWVtcyB0byBmcm93biB1cG9uIHRoYXQuCi0gICAg
ICAgIHB1cmlmeUFycmF5KCk7Ci0KLSAgICAgICAgSW50ZWdyYWxUeXBlKiBhcnJheSA9IHJlaW50
ZXJwcmV0X2Nhc3Q8SW50ZWdyYWxUeXBlKj4odHlwZWRWZWN0b3IoKSk7Ci0gICAgICAgIHN0ZDo6
c29ydChhcnJheSwgYXJyYXkgKyBtX2xlbmd0aCwgc29ydENvbXBhcmlzb248SW50ZWdyYWxUeXBl
Pik7Ci0KLSAgICB9Ci0KIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEFkYXB0b3I+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmll
d0lubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVk
QXJyYXlWaWV3SW5saW5lcy5oCmluZGV4IDJiZTRmNDQyNjQ2OGE1ZjRmZmYwMTIwYWNiYWU2ZjQ4
YzIwNDU0ZGUuLmU5ZWQxZTk5OGFhOWE1MDhkMWFlZjA1M2ZhZTg4MmY0MjYzZGM5ZDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlW
aWV3SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiRGVm
ZXJHQy5oIgogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5o
IgotI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXIuaCIKICNpbmNsdWRlICJKU0dlbmVyaWNUeXBlZEFy
cmF5Vmlldy5oIgogI2luY2x1ZGUgIlJlamVjdC5oIgogI2luY2x1ZGUgIlR5cGVkQXJyYXlzLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBl
ZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWU1YmRlYTg3MGU0NWJkMTA3MWRmOGMwZGE2MTNhYjRk
OTQ0NmIwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3Rv
dHlwZUZ1bmN0aW9ucy5oCisrKyAvZGV2L251bGwKQEAgLTEsMzk5ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEpTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zX2gKLSNkZWZpbmUgSlNHZW5lcmljVHlwZWRB
cnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnNfaAotCi0jaW5jbHVkZSAiQXJyYXlQcm90b3R5cGUu
aCIKLSNpbmNsdWRlICJFcnJvci5oIgotI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKLSNp
bmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0lubGluZXMuaCIKLSNpbmNsdWRlICJKU0FycmF5SXRl
cmF0b3IuaCIKLSNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgotI2luY2x1ZGUgIkpTQ0pTVmFsdWVJ
bmxpbmVzLmgiCi0jaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgotI2luY2x1ZGUgIkpTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3SW5saW5lcy5oIgotI2luY2x1ZGUgIkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
UHJvdG90eXBlSW5saW5lcy5oIgotI2luY2x1ZGUgIkpTU3RyaW5nSm9pbmVyLmgiCi0jaW5jbHVk
ZSAiU3RydWN0dXJlSW5saW5lcy5oIgotI2luY2x1ZGUgIlR5cGVkQXJyYXlBZGFwdG9ycy5oIgot
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWlubGlu
ZSB1bnNpZ25lZCBhcmd1bWVudENsYW1wZWRJbmRleEZyb21TdGFydE9yRW5kKEV4ZWNTdGF0ZSog
ZXhlYywgaW50IGFyZ3VtZW50LCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkIHVuZGVmaW5lZFZh
bHVlID0gMCkKLXsKLSAgICBKU1ZhbHVlIHZhbHVlID0gZXhlYy0+YXJndW1lbnQoYXJndW1lbnQp
OwotICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5lZCgpKQotICAgICAgICByZXR1cm4gdW5kZWZpbmVk
VmFsdWU7Ci0KLSAgICBkb3VibGUgaW5kZXhEb3VibGUgPSB2YWx1ZS50b0ludGVnZXIoZXhlYyk7
Ci0gICAgaWYgKGluZGV4RG91YmxlIDwgMCkgewotICAgICAgICBpbmRleERvdWJsZSArPSBsZW5n
dGg7Ci0gICAgICAgIHJldHVybiBpbmRleERvdWJsZSA8IDAgPyAwIDogc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGluZGV4RG91YmxlKTsKLSAgICB9Ci0gICAgcmV0dXJuIGluZGV4RG91YmxlID4gbGVu
Z3RoID8gbGVuZ3RoIDogc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGluZGV4RG91YmxlKTsKLX0KLQot
dGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTZXQoRXhlY1N0YXRlKiBleGVjKQotewot
ICAgIC8vIDIyLjIuMy4yMgotICAgIFZpZXdDbGFzcyogdGhpc09iamVjdCA9IGpzQ2FzdDxWaWV3
Q2xhc3MqPihleGVjLT50aGlzVmFsdWUoKSk7Ci0KLSAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50Q291
bnQoKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3Io
ZXhlYywgIkV4cGVjdGVkIGF0IGxlYXN0IG9uZSBhcmd1bWVudCIpKTsKLQotICAgIEpTT2JqZWN0
KiBzb3VyY2VBcnJheSA9IGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPihleGVjLT51bmNoZWNrZWRB
cmd1bWVudCgwKSk7Ci0gICAgaWYgKCFzb3VyY2VBcnJheSkKLSAgICAgICAgcmV0dXJuIHRocm93
Vk1FcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIkZpcnN0IGFyZ3VtZW50IHNob3Vs
ZCBiZSBhbiBvYmplY3QiKSk7Ci0KLSAgICB1bnNpZ25lZCBvZmZzZXQ7Ci0gICAgaWYgKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSA+PSAyKSB7Ci0gICAgICAgIG9mZnNldCA9IGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KDEpLnRvVUludDMyKGV4ZWMpOwotICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwotICAgIH0gZWxzZQotICAgICAgICBvZmZzZXQgPSAwOwotCi0gICAgdW5zaWduZWQgbGVuZ3Ro
ID0gc291cmNlQXJyYXktPmdldChleGVjLCBleGVjLT52bSgpLnByb3BlcnR5TmFtZXMtPmxlbmd0
aCkudG9VSW50MzIoZXhlYyk7Ci0gICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotCi0gICAgdGhpc09iamVj
dC0+c2V0KGV4ZWMsIHNvdXJjZUFycmF5LCBvZmZzZXQsIGxlbmd0aCk7Ci0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVmll
d0NsYXNzPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZp
ZXdQcm90b0Z1bmNFbnRyaWVzKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICAvLyAyMi4yLjMuNgot
ICAgIFZpZXdDbGFzcyogdGhpc09iamVjdCA9IGpzQ2FzdDxWaWV3Q2xhc3MqPihleGVjLT50aGlz
VmFsdWUoKSk7Ci0KLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQXJyYXlJdGVyYXRvcjo6
Y3JlYXRlKGV4ZWMsIGV4ZWMtPmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKS0+YXJyYXlJdGVyYXRv
clN0cnVjdHVyZSgpLCBBcnJheUl0ZXJhdGVLZXlWYWx1ZSwgdGhpc09iamVjdCkpOwotfQotCi10
ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0NvcHlXaXRoaW4oRXhlY1N0YXRlKiBleGVj
KQotewotICAgIC8vIDIyLjIuMy41Ci0gICAgVmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganNDYXN0
PFZpZXdDbGFzcyo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKLQotICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgPCAyKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5
cGVFcnJvcihleGVjLCAiRXhwZWN0ZWQgYXQgbGVhc3QgdHdvIGFyZ3VtZW50cyIpKTsKLQotICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKLQotICAgIGxvbmcgbGVuZ3RoID0gdGhpc09iamVjdC0+bGVuZ3Ro
KCk7Ci0gICAgbG9uZyB0byA9IGFyZ3VtZW50Q2xhbXBlZEluZGV4RnJvbVN0YXJ0T3JFbmQoZXhl
YywgMCwgbGVuZ3RoKTsKLSAgICBsb25nIGZyb20gPSBhcmd1bWVudENsYW1wZWRJbmRleEZyb21T
dGFydE9yRW5kKGV4ZWMsIDEsIGxlbmd0aCk7Ci0gICAgbG9uZyBmaW5hbCA9IGFyZ3VtZW50Q2xh
bXBlZEluZGV4RnJvbVN0YXJ0T3JFbmQoZXhlYywgMiwgbGVuZ3RoLCBsZW5ndGgpOwotCi0gICAg
aWYgKGZpbmFsIDwgZnJvbSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShleGVjLT50
aGlzVmFsdWUoKSk7Ci0KLSAgICBsb25nIGNvdW50ID0gc3RkOjptaW4obGVuZ3RoIC0gc3RkOjpt
YXgodG8sIGZyb20pLCBmaW5hbCAtIGZyb20pOwotCi0gICAgdHlwZW5hbWUgVmlld0NsYXNzOjpF
bGVtZW50VHlwZSogYXJyYXkgPSB0aGlzT2JqZWN0LT50eXBlZFZlY3RvcigpOwotICAgIG1lbW1v
dmUoYXJyYXkgKyB0bywgYXJyYXkgKyBmcm9tLCBjb3VudCAqIHRoaXNPYmplY3QtPmVsZW1lbnRT
aXplKTsKLQotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZXhlYy0+dGhpc1ZhbHVlKCkpOwot
fQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0ZpbGwoRXhlY1N0YXRlKiBleGVj
KQotewotICAgIC8vIDIyLjIuMy44Ci0gICAgVmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganNDYXN0
PFZpZXdDbGFzcyo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKLQotICAgIEpTVmFsdWUgdmFsdWVUb0lu
c2VydCA9IGV4ZWMtPmFyZ3VtZW50KDApOwotICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkK
LSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLQotICAgIHVu
c2lnbmVkIGxlbmd0aCA9IHRoaXNPYmplY3QtPmxlbmd0aCgpOwotICAgIHVuc2lnbmVkIGJlZ2lu
ID0gYXJndW1lbnRDbGFtcGVkSW5kZXhGcm9tU3RhcnRPckVuZChleGVjLCAxLCBsZW5ndGgpOwot
ICAgIHVuc2lnbmVkIGVuZCA9IGFyZ3VtZW50Q2xhbXBlZEluZGV4RnJvbVN0YXJ0T3JFbmQoZXhl
YywgMiwgbGVuZ3RoLCBsZW5ndGgpOwotCi0gICAgaWYgKGVuZCA8IGJlZ2luKQotICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGV4ZWMtPnRoaXNWYWx1ZSgpKTsKLQotICAgIGlmICghdGhp
c09iamVjdC0+c2V0UmFuZ2VUb1ZhbHVlKGV4ZWMsIGJlZ2luLCBlbmQsIHZhbHVlVG9JbnNlcnQp
KQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotCi0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShleGVjLT50aGlzVmFsdWUoKSk7Ci19Ci0KLXRlbXBsYXRl
PHR5cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJp
Y1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSW5kZXhPZihFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAg
Ly8gMjIuMi4zLjEzCi0gICAgVmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganNDYXN0PFZpZXdDbGFz
cyo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKLQotICAgIGlmICghZXhlYy0+YXJndW1lbnRDb3VudCgp
KQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVj
LCAiRXhwZWN0ZWQgYXQgbGVhc3Qgb25lIGFyZ3VtZW50IikpOwotCi0gICAgdW5zaWduZWQgbGVu
Z3RoID0gdGhpc09iamVjdC0+bGVuZ3RoKCk7Ci0KLSAgICBKU1ZhbHVlIHZhbHVlVG9GaW5kID0g
ZXhlYy0+YXJndW1lbnQoMCk7Ci0gICAgdW5zaWduZWQgaW5kZXggPSBhcmd1bWVudENsYW1wZWRJ
bmRleEZyb21TdGFydE9yRW5kKGV4ZWMsIDEsIGxlbmd0aCk7Ci0KLSAgICBhdXRvIHRhcmdldE9w
dCA9IFZpZXdDbGFzczo6dG9BZGFwdG9yTmF0aXZlRnJvbVZhbHVlKGV4ZWMsIHZhbHVlVG9GaW5k
KTsKLSAgICBpZiAoIXRhcmdldE9wdCkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKLQotICAgIHR5cGVuYW1lIFZpZXdDbGFzczo6RWxlbWVudFR5cGUgdGFy
Z2V0ID0gdGFyZ2V0T3B0LnZhbHVlKCk7Ci0gICAgdHlwZW5hbWUgVmlld0NsYXNzOjpFbGVtZW50
VHlwZSogYXJyYXkgPSB0aGlzT2JqZWN0LT50eXBlZFZlY3RvcigpOwotCi0gICAgZm9yICg7IGlu
ZGV4IDwgbGVuZ3RoOyArK2luZGV4KSB7Ci0gICAgICAgIGlmIChhcnJheVtpbmRleF0gPT0gdGFy
Z2V0KQotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihpbmRleCkp
OwotICAgIH0KLQotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLTEpKTsKLX0K
LQotdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNKb2luKEV4ZWNTdGF0ZSogZXhlYykK
LXsKLSAgICAvLyAyMi4yLjMuMTQKLSAgICBWaWV3Q2xhc3MqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
Vmlld0NsYXNzKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwotCi0gICAgdW5zaWduZWQgbGVuZ3RoID0g
dGhpc09iamVjdC0+bGVuZ3RoKCk7Ci0KLSAgICBKU1ZhbHVlIHNlcGFyYXRvclZhbHVlID0gZXhl
Yy0+YXJndW1lbnQoMCk7Ci0gICAgSlNTdHJpbmcqIHNlcGFyYXRvclN0cmluZzsKLSAgICBTdHJp
bmdWaWV3IHNlcGFyYXRvcjsKLQotICAgIGlmIChzZXBhcmF0b3JWYWx1ZS5pc1VuZGVmaW5lZCgp
KSB7Ci0gICAgICAgIGNvbnN0IExDaGFyKiBjb21tYSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigiLCIpOwotICAgICAgICBzZXBhcmF0b3IgPSB7IGNvbW1hLCAxIH07Ci0gICAgfSBl
bHNlIHsKLSAgICAgICAgc2VwYXJhdG9yU3RyaW5nID0gc2VwYXJhdG9yVmFsdWUudG9TdHJpbmco
ZXhlYyk7Ci0gICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgICAgIHNlcGFyYXRvciA9
IHNlcGFyYXRvclN0cmluZy0+dmlldyhleGVjKTsKLSAgICB9Ci0KLSAgICBKU1N0cmluZ0pvaW5l
ciBqb2luZXIoKmV4ZWMsIHNlcGFyYXRvciwgbGVuZ3RoKTsKLSAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAgICAgICAg
am9pbmVyLmFwcGVuZCgqZXhlYywgdGhpc09iamVjdC0+Z2V0SW5kZXhRdWlja2x5KGkpKTsKLSAg
ICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpvaW5lci5qb2luKCpleGVjKSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZpZXdD
bGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3
UHJvdG9GdW5jS2V5cyhFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgLy8gMjIuMi4zLjE1Ci0gICAg
Vmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganNDYXN0PFZpZXdDbGFzcyo+KGV4ZWMtPnRoaXNWYWx1
ZSgpKTsKLQotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNBcnJheUl0ZXJhdG9yOjpjcmVh
dGUoZXhlYywgZXhlYy0+Y2FsbGVlKCktPmdsb2JhbE9iamVjdCgpLT5hcnJheUl0ZXJhdG9yU3Ry
dWN0dXJlKCksIEFycmF5SXRlcmF0ZUtleSwgdGhpc09iamVjdCkpOwotfQotCi10ZW1wbGF0ZTx0
eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNU
eXBlZEFycmF5Vmlld1Byb3RvRnVuY0xhc3RJbmRleE9mKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAg
ICAvLyAyMi4yLjMuMTYKLSAgICBWaWV3Q2xhc3MqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8Vmlld0Ns
YXNzKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwotCi0gICAgaWYgKCFleGVjLT5hcmd1bWVudENvdW50
KCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4
ZWMsICJFeHBlY3RlZCBhdCBsZWFzdCBvbmUgYXJndW1lbnQiKSk7Ci0KLSAgICB1bnNpZ25lZCBs
ZW5ndGggPSB0aGlzT2JqZWN0LT5sZW5ndGgoKTsKLQotICAgIEpTVmFsdWUgdmFsdWVUb0ZpbmQg
PSBleGVjLT5hcmd1bWVudCgwKTsKLQotICAgIGludCBpbmRleCA9IGxlbmd0aCAtIDE7Ci0gICAg
aWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+PSAyKSB7Ci0gICAgICAgIEpTVmFsdWUgZnJvbVZh
bHVlID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSk7Ci0gICAgICAgIGRvdWJsZSBmcm9tRG91
YmxlID0gZnJvbVZhbHVlLnRvSW50ZWdlcihleGVjKTsKLSAgICAgICAgaWYgKGZyb21Eb3VibGUg
PCAwKSB7Ci0gICAgICAgICAgICBmcm9tRG91YmxlICs9IGxlbmd0aDsKLSAgICAgICAgICAgIGlm
IChmcm9tRG91YmxlIDwgMCkKLSAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTnVtYmVyKC0xKSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGZyb21Eb3VibGUgPCBsZW5n
dGgpCi0gICAgICAgICAgICBpbmRleCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihmcm9tRG91Ymxl
KTsKLSAgICB9Ci0KLSAgICBhdXRvIHRhcmdldE9wdCA9IFZpZXdDbGFzczo6dG9BZGFwdG9yTmF0
aXZlRnJvbVZhbHVlKGV4ZWMsIHZhbHVlVG9GaW5kKTsKLSAgICBpZiAoIXRhcmdldE9wdCkKLSAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLQotICAgIHR5cGVu
YW1lIFZpZXdDbGFzczo6RWxlbWVudFR5cGUgdGFyZ2V0ID0gdGFyZ2V0T3B0LnZhbHVlKCk7Ci0g
ICAgdHlwZW5hbWUgVmlld0NsYXNzOjpFbGVtZW50VHlwZSogYXJyYXkgPSB0aGlzT2JqZWN0LT50
eXBlZFZlY3RvcigpOwotCi0KLSAgICBmb3IgKDsgaW5kZXggPj0gMDsgLS1pbmRleCkgewotICAg
ICAgICBpZiAoYXJyYXlbaW5kZXhdID09IHRhcmdldCkKLSAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNOdW1iZXIoaW5kZXgpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKC0xKSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFz
cz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJv
dG9HZXR0ZXJGdW5jTGVuZ3RoKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICAvLyAyMi4yLjMuMTcK
LSAgICBWaWV3Q2xhc3MqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8Vmlld0NsYXNzKj4oZXhlYy0+dGhp
c1ZhbHVlKCkpOwotCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2Jq
ZWN0LT5sZW5ndGgoKSkpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0dGVy
RnVuY0J5dGVMZW5ndGgoRXhlY1N0YXRlKiBleGVjKQotewotICAgIC8vIDIyLjIuMy4yCi0gICAg
Vmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganNDYXN0PFZpZXdDbGFzcyo+KGV4ZWMtPnRoaXNWYWx1
ZSgpKTsKLQotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodGhpc09iamVjdC0+
Ynl0ZUxlbmd0aCgpKSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJG
dW5jQnl0ZU9mZnNldChFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgLy8gMjIuMi4zLjMKLSAgICBW
aWV3Q2xhc3MqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8Vmlld0NsYXNzKj4oZXhlYy0+dGhpc1ZhbHVl
KCkpOwotCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2JqZWN0LT5i
eXRlT2Zmc2V0KCkpKTsKLX0KLQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY1Jl
dmVyc2UoRXhlY1N0YXRlKiBleGVjKQotewotICAgIC8vIDIyLjIuMy4yMQotICAgIFZpZXdDbGFz
cyogdGhpc09iamVjdCA9IGpzQ2FzdDxWaWV3Q2xhc3MqPihleGVjLT50aGlzVmFsdWUoKSk7Ci0K
LSAgICB0eXBlbmFtZSBWaWV3Q2xhc3M6OkVsZW1lbnRUeXBlKiBhcnJheSA9IHRoaXNPYmplY3Qt
PnR5cGVkVmVjdG9yKCk7Ci0gICAgc3RkOjpyZXZlcnNlKGFycmF5LCBhcnJheSArIHRoaXNPYmpl
Y3QtPmxlbmd0aCgpKTsKLQotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhpc09iamVjdCk7
Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0KEV4ZWNTdGF0ZSog
ZXhlYykKLXsKLSAgICAvLyAyMi4yLjMuMjUKLSAgICBWaWV3Q2xhc3MqIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8Vmlld0NsYXNzKj4oZXhlYy0+YXJndW1lbnQoMCkpOwotCi0gICAgdGhpc09iamVjdC0+
c29ydCgpOwotCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzT2JqZWN0KTsKLX0KLQot
dGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTbGljZShFeGVjU3RhdGUqIGV4ZWMpCi17
Ci0gICAgLy8gMjIuMi4zLjI2Ci0gICAgSlNGdW5jdGlvbiogY2FsbGVlID0ganNDYXN0PEpTRnVu
Y3Rpb24qPihleGVjLT5jYWxsZWUoKSk7Ci0KLSAgICBWaWV3Q2xhc3MqIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8Vmlld0NsYXNzKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwotCi0gICAgaWYgKCFleGVjLT5h
cmd1bWVudENvdW50KCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRl
VHlwZUVycm9yKGV4ZWMsICJFeHBlY3RlZCBhdCBsZWFzdCBvbmUgYXJndW1lbnQiKSk7Ci0KLSAg
ICB1bnNpZ25lZCB0aGlzTGVuZ3RoID0gdGhpc09iamVjdC0+bGVuZ3RoKCk7Ci0KLSAgICB1bnNp
Z25lZCBiZWdpbiA9IGFyZ3VtZW50Q2xhbXBlZEluZGV4RnJvbVN0YXJ0T3JFbmQoZXhlYywgMCwg
dGhpc0xlbmd0aCk7Ci0gICAgdW5zaWduZWQgZW5kID0gYXJndW1lbnRDbGFtcGVkSW5kZXhGcm9t
U3RhcnRPckVuZChleGVjLCAxLCB0aGlzTGVuZ3RoLCB0aGlzTGVuZ3RoKTsKLQotICAgIC8vIENs
YW1wIGVuZCB0byBiZWdpbi4KLSAgICBlbmQgPSBzdGQ6Om1heChiZWdpbiwgZW5kKTsKLQotICAg
IEFTU0VSVChlbmQgPj0gYmVnaW4pOwotICAgIHVuc2lnbmVkIGxlbmd0aCA9IGVuZCAtIGJlZ2lu
OwotCi0gICAgdHlwZW5hbWUgVmlld0NsYXNzOjpFbGVtZW50VHlwZSogYXJyYXkgPSB0aGlzT2Jq
ZWN0LT50eXBlZFZlY3RvcigpOwotCi0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPQotICAgIGNh
bGxlZS0+Z2xvYmFsT2JqZWN0KCktPnR5cGVkQXJyYXlTdHJ1Y3R1cmUoVmlld0NsYXNzOjpUeXBl
ZEFycmF5U3RvcmFnZVR5cGUpOwotCi0gICAgVmlld0NsYXNzKiByZXN1bHQgPSBWaWV3Q2xhc3M6
OmNyZWF0ZVVuaW5pdGlhbGl6ZWQoZXhlYywgc3RydWN0dXJlLCBsZW5ndGgpOwotCi0gICAgLy8g
V2UgY2FuIHVzZSBtZW1jcHkgc2luY2Ugd2Uga25vdyB0aGlzIGEgbmV3IGJ1ZmZlcgotICAgIG1l
bWNweShzdGF0aWNfY2FzdDx2b2lkKj4ocmVzdWx0LT50eXBlZFZlY3RvcigpKSwgc3RhdGljX2Nh
c3Q8dm9pZCo+KGFycmF5ICsgYmVnaW4pLCBsZW5ndGggKiB0aGlzT2JqZWN0LT5lbGVtZW50U2l6
ZSk7Ci0KLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Ci19Ci0KLXRlbXBsYXRl
PHR5cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJp
Y1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU3ViYXJyYXkoRXhlY1N0YXRlKiBleGVjKQotewotICAg
IC8vIDIyLjIuMy4yMwotICAgIEpTRnVuY3Rpb24qIGNhbGxlZSA9IGpzQ2FzdDxKU0Z1bmN0aW9u
Kj4oZXhlYy0+Y2FsbGVlKCkpOwotCi0gICAgVmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganNDYXN0
PFZpZXdDbGFzcyo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKLQotICAgIGlmICghZXhlYy0+YXJndW1l
bnRDb3VudCgpKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVF
cnJvcihleGVjLCAiRXhwZWN0ZWQgYXQgbGVhc3Qgb25lIGFyZ3VtZW50IikpOwotCi0gICAgLy8g
R2V0IHRoZSBsZW5ndGggaGVyZTsgbGF0ZXIgYXNzZXJ0IHRoYXQgdGhlIGxlbmd0aCBkaWRuJ3Qg
Y2hhbmdlLgotICAgIHVuc2lnbmVkIHRoaXNMZW5ndGggPSB0aGlzT2JqZWN0LT5sZW5ndGgoKTsK
LQotICAgIHVuc2lnbmVkIGJlZ2luID0gYXJndW1lbnRDbGFtcGVkSW5kZXhGcm9tU3RhcnRPckVu
ZChleGVjLCAwLCB0aGlzTGVuZ3RoKTsKLSAgICB1bnNpZ25lZCBlbmQgPSBhcmd1bWVudENsYW1w
ZWRJbmRleEZyb21TdGFydE9yRW5kKGV4ZWMsIDEsIHRoaXNMZW5ndGgsIHRoaXNMZW5ndGgpOwot
Ci0gICAgLy8gQ2xhbXAgZW5kIHRvIGJlZ2luLgotICAgIGVuZCA9IHN0ZDo6bWF4KGJlZ2luLCBl
bmQpOwotCi0gICAgQVNTRVJUKGVuZCA+PSBiZWdpbik7Ci0gICAgdW5zaWduZWQgb2Zmc2V0ID0g
YmVnaW47Ci0gICAgdW5zaWduZWQgbGVuZ3RoID0gZW5kIC0gYmVnaW47Ci0KLSAgICBSZWZQdHI8
QXJyYXlCdWZmZXI+IGFycmF5QnVmZmVyID0gdGhpc09iamVjdC0+YnVmZmVyKCk7Ci0gICAgUkVM
RUFTRV9BU1NFUlQodGhpc0xlbmd0aCA9PSB0aGlzT2JqZWN0LT5sZW5ndGgoKSk7Ci0KLSAgICBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSA9Ci0gICAgY2FsbGVlLT5nbG9iYWxPYmplY3QoKS0+dHlwZWRB
cnJheVN0cnVjdHVyZShWaWV3Q2xhc3M6OlR5cGVkQXJyYXlTdG9yYWdlVHlwZSk7Ci0KLSAgICBW
aWV3Q2xhc3MqIHJlc3VsdCA9IFZpZXdDbGFzczo6Y3JlYXRlKAotICAgICAgICBleGVjLCBzdHJ1
Y3R1cmUsIGFycmF5QnVmZmVyLAotICAgICAgICB0aGlzT2JqZWN0LT5ieXRlT2Zmc2V0KCkgKyBv
ZmZzZXQgKiBWaWV3Q2xhc3M6OmVsZW1lbnRTaXplLAotICAgICAgICBsZW5ndGgpOwotCi0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBW
aWV3Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJv
dG9GdW5jVmFsdWVzKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICAvLyAyMi4yLjMuMjkKLSAgICBW
aWV3Q2xhc3MqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8Vmlld0NsYXNzKj4oZXhlYy0+dGhpc1ZhbHVl
KCkpOwotCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0FycmF5SXRlcmF0b3I6OmNyZWF0
ZShleGVjLCBleGVjLT5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCktPmFycmF5SXRlcmF0b3JTdHJ1
Y3R1cmUoKSwgQXJyYXlJdGVyYXRlVmFsdWUsIHRoaXNPYmplY3QpKTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgSlNDCi0KLSNlbmRpZiAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1
bmN0aW9uc19oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlSW5saW5lcy5o
CmluZGV4IGRhYjU1YmNkMDgyNTQzZmFlMjgzODk3NjQ4NmI4MjhmZjA0N2U1M2MuLjQ1OTk5N2E0
NjRiOTExOTQ3N2IxYmU4NGUzNmM0ZTI5NjZhY2VmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlSW5saW5l
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3UHJvdG90eXBlSW5saW5lcy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMy0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDEwICsyNiwxMDQgQEAKICNpZm5kZWYgSlNHZW5l
cmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVJbmxpbmVzX2gKICNkZWZpbmUgSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXdQcm90b3R5cGVJbmxpbmVzX2gKIAorI2luY2x1ZGUgIkVycm9yLmgiCisjaW5j
bHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgorI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNs
dWRlICJKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oIgorI2luY2x1ZGUgPHd0Zi9T
dGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFZp
ZXdDbGFzcz4KK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlW
aWV3UHJvdG9GdW5jU2V0KEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBWaWV3Q2xhc3MqIHRoaXNP
YmplY3QgPSBqc0R5bmFtaWNDYXN0PFZpZXdDbGFzcyo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKKyAg
ICBpZiAoIXRoaXNPYmplY3QpCisgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3Jl
YXRlVHlwZUVycm9yKGV4ZWMsICJSZWNlaXZlciBzaG91bGQgYmUgYSB0eXBlZCBhcnJheSB2aWV3
IikpOworICAgIAorICAgIGlmICghZXhlYy0+YXJndW1lbnRDb3VudCgpKQorICAgICAgICByZXR1
cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiRXhwZWN0ZWQgYXQg
bGVhc3Qgb25lIGFyZ3VtZW50IikpOwogICAgIAorICAgIEpTT2JqZWN0KiBzb3VyY2VBcnJheSA9
IGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7Cisg
ICAgaWYgKCFzb3VyY2VBcnJheSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBj
cmVhdGVUeXBlRXJyb3IoZXhlYywgIkZpcnN0IGFyZ3VtZW50IHNob3VsZCBiZSBhbiBvYmplY3Qi
KSk7CisgICAgCisgICAgdW5zaWduZWQgb2Zmc2V0OworICAgIGlmIChleGVjLT5hcmd1bWVudENv
dW50KCkgPj0gMikgeworICAgICAgICBvZmZzZXQgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgx
KS50b1VJbnQzMihleGVjKTsKKyAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAg
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgb2Zmc2V0ID0gMDsKKyAgICAKKyAgICB1bnNpZ25lZCBsZW5ndGggPSBzb3Vy
Y2VBcnJheS0+Z2V0KGV4ZWMsIGV4ZWMtPnZtKCkucHJvcGVydHlOYW1lcy0+bGVuZ3RoKS50b1VJ
bnQzMihleGVjKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgCisgICAgdGhpc09iamVjdC0+
c2V0KGV4ZWMsIHNvdXJjZUFycmF5LCBvZmZzZXQsIGxlbmd0aCk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVmlld0Ns
YXNzPgorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQ
cm90b0Z1bmNTdWJhcnJheShFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgSlNGdW5jdGlvbiogY2Fs
bGVlID0ganNDYXN0PEpTRnVuY3Rpb24qPihleGVjLT5jYWxsZWUoKSk7CisgICAgCisgICAgVmll
d0NsYXNzKiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxWaWV3Q2xhc3MqPihleGVjLT50aGlz
VmFsdWUoKSk7CisgICAgaWYgKCF0aGlzT2JqZWN0KQorICAgICAgICByZXR1cm4gdGhyb3dWTUVy
cm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiUmVjZWl2ZXIgc2hvdWxkIGJlIGEgdHlw
ZWQgYXJyYXkgdmlldyIpKTsKKyAgICAKKyAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50Q291bnQoKSkK
KyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywg
IkV4cGVjdGVkIGF0IGxlYXN0IG9uZSBhcmd1bWVudCIpKTsKKyAgICAKKyAgICBpbnQzMl90IGJl
Z2luID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkudG9JbnQzMihleGVjKTsKKyAgICBpZiAo
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CisgICAgCisgICAgaW50MzJfdCBlbmQ7CisgICAgaWYgKGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSA+PSAyKSB7CisgICAgICAgIGVuZCA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50
KDEpLnRvSW50MzIoZXhlYyk7CisgICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAg
ICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSBl
bHNlCisgICAgICAgIGVuZCA9IHRoaXNPYmplY3QtPmxlbmd0aCgpOworICAgIAorICAgIC8vIEdl
dCB0aGUgbGVuZ3RoIGhlcmU7IGxhdGVyIGFzc2VydCB0aGF0IHRoZSBsZW5ndGggZGlkbid0IGNo
YW5nZS4KKyAgICB1bnNpZ25lZCB0aGlzTGVuZ3RoID0gdGhpc09iamVjdC0+bGVuZ3RoKCk7Cisg
ICAgCisgICAgLy8gSGFuZGxlIG5lZ2F0aXZlIGluZGljZXM6IC14ID0+IGxlbmd0aCAtIHgKKyAg
ICBpZiAoYmVnaW4gPCAwKQorICAgICAgICBiZWdpbiA9IHN0ZDo6bWF4KHN0YXRpY19jYXN0PGlu
dD4odGhpc0xlbmd0aCArIGJlZ2luKSwgMCk7CisgICAgaWYgKGVuZCA8IDApCisgICAgICAgIGVu
ZCA9IHN0ZDo6bWF4KHN0YXRpY19jYXN0PGludD4odGhpc0xlbmd0aCArIGVuZCksIDApOworICAg
IAorICAgIC8vIENsYW1wIHRoZSBpbmRpY2VzIHRvIHRoZSBib3VuZHMgb2YgdGhlIGFycmF5Lgor
ICAgIEFTU0VSVChiZWdpbiA+PSAwKTsKKyAgICBBU1NFUlQoZW5kID49IDApOworICAgIGJlZ2lu
ID0gc3RkOjptaW4oYmVnaW4sIHN0YXRpY19jYXN0PGludDMyX3Q+KHRoaXNMZW5ndGgpKTsKKyAg
ICBlbmQgPSBzdGQ6Om1pbihlbmQsIHN0YXRpY19jYXN0PGludDMyX3Q+KHRoaXNMZW5ndGgpKTsK
KyAgICAKKyAgICAvLyBDbGFtcCBlbmQgdG8gYmVnaW4uCisgICAgZW5kID0gc3RkOjptYXgoYmVn
aW4sIGVuZCk7CisgICAgCisgICAgQVNTRVJUKGVuZCA+PSBiZWdpbik7CisgICAgdW5zaWduZWQg
b2Zmc2V0ID0gYmVnaW47CisgICAgdW5zaWduZWQgbGVuZ3RoID0gZW5kIC0gYmVnaW47CisgICAg
CisgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBhcnJheUJ1ZmZlciA9IHRoaXNPYmplY3QtPmJ1ZmZl
cigpOworICAgIFJFTEVBU0VfQVNTRVJUKHRoaXNMZW5ndGggPT0gdGhpc09iamVjdC0+bGVuZ3Ro
KCkpOworICAgIAorICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0KKyAgICAgICAgY2FsbGVlLT5n
bG9iYWxPYmplY3QoKS0+dHlwZWRBcnJheVN0cnVjdHVyZShWaWV3Q2xhc3M6OlR5cGVkQXJyYXlT
dG9yYWdlVHlwZSk7CisgICAgCisgICAgVmlld0NsYXNzKiByZXN1bHQgPSBWaWV3Q2xhc3M6OmNy
ZWF0ZSgKKyAgICAgICAgZXhlYywgc3RydWN0dXJlLCBhcnJheUJ1ZmZlciwKKyAgICAgICAgdGhp
c09iamVjdC0+Ynl0ZU9mZnNldCgpICsgb2Zmc2V0ICogVmlld0NsYXNzOjplbGVtZW50U2l6ZSwK
KyAgICAgICAgbGVuZ3RoKTsKKyAgICAKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3Vs
dCk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KIEpTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3UHJvdG90eXBlPFZpZXdDbGFzcz46OkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90
eXBlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1
cmUpCkBAIC0zOCwxNCArMTMyLDE1IEBAIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBl
PFZpZXdDbGFzcz46OkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlKFZNCiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KIHZvaWQgSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90
b3R5cGU8Vmlld0NsYXNzPjo6ZmluaXNoQ3JlYXRpb24oCi0gICAgVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCopCisgICAgVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAg
IEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICAKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5m
bygpKSk7Ci0KKyAgICAKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMt
PnNldCwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2V0PFZpZXdDbGFzcz4sIERvbnRF
bnVtLCAyKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMtPnN1YmFy
cmF5LCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTdWJhcnJheTxWaWV3Q2xhc3M+LCBE
b250RW51bSwgMik7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5CWVRFU19Q
RVJfRUxFTUVOVCwganNOdW1iZXIoVmlld0NsYXNzOjplbGVtZW50U2l6ZSksIERvbnRFbnVtIHwg
UmVhZE9ubHkgfCBEb250RGVsZXRlKTsKLQogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xh
c3M+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5j
cHAKaW5kZXggNTI3MjY3OGUxZDk3NWI2MWI5YWQ3N2Y4ZmRkZTdkZDc1N2RiNzEwZS4uYzllYzlk
OTA0NWQ3NDY5YjI3ZmZjYTgwMjdlMmYzZmJmNTFkNzA3OSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtOTksNyArOTksNiBAQAog
I2luY2x1ZGUgIkpTVGVtcGxhdGVSZWdpc3RyeUtleS5oIgogI2luY2x1ZGUgIkpTVHlwZWRBcnJh
eUNvbnN0cnVjdG9ycy5oIgogI2luY2x1ZGUgIkpTVHlwZWRBcnJheVByb3RvdHlwZXMuaCIKLSNp
bmNsdWRlICJKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNUeXBlZEFy
cmF5cy5oIgogI2luY2x1ZGUgIkpTV0FTTU1vZHVsZS5oIgogI2luY2x1ZGUgIkpTV2Vha01hcC5o
IgpAQCAtMjk1LDE4ICsyOTQsMTYgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6aW5pdChWTSYgdm0p
CiAgICAgcHJvdG9BY2Nlc3Nvci0+c2V0U2V0dGVyKHZtLCB0aGlzLCBKU0Z1bmN0aW9uOjpjcmVh
dGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCBnbG9iYWxGdW5jUHJvdG9TZXR0ZXIpKTsKICAgICBt
X29iamVjdFByb3RvdHlwZS0+cHV0RGlyZWN0Tm9uSW5kZXhBY2Nlc3Nvcih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+dW5kZXJzY29yZVByb3RvLCBwcm90b0FjY2Vzc29yLCBBY2Nlc3NvciB8IERvbnRF
bnVtKTsKICAgICBtX2Z1bmN0aW9uUHJvdG90eXBlLT5zdHJ1Y3R1cmUoKS0+c2V0UHJvdG90eXBl
V2l0aG91dFRyYW5zaXRpb24odm0sIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKTsKLQotICAgIEpT
VHlwZWRBcnJheVZpZXdQcm90b3R5cGUqIHR5cGVkQXJyYXlQcm90byA9IEpTVHlwZWRBcnJheVZp
ZXdQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZTo6
Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpOwotCi0g
ICAgbV90eXBlZEFycmF5c1t0b0luZGV4KFR5cGVJbnQ4KV0ucHJvdG90eXBlLnNldCh2bSwgdGhp
cywgSlNJbnQ4QXJyYXlQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgSlNJbnQ4QXJyYXlQcm90
b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgdHlwZWRBcnJheVByb3RvKSkpOwotICAg
IG1fdHlwZWRBcnJheXNbdG9JbmRleChUeXBlSW50MTYpXS5wcm90b3R5cGUuc2V0KHZtLCB0aGlz
LCBKU0ludDE2QXJyYXlQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgSlNJbnQxNkFycmF5UHJv
dG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIHR5cGVkQXJyYXlQcm90bykpKTsKLSAg
ICBtX3R5cGVkQXJyYXlzW3RvSW5kZXgoVHlwZUludDMyKV0ucHJvdG90eXBlLnNldCh2bSwgdGhp
cywgSlNJbnQzMkFycmF5UHJvdG90eXBlOjpjcmVhdGUodm0sIHRoaXMsIEpTSW50MzJBcnJheVBy
b3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCB0eXBlZEFycmF5UHJvdG8pKSk7Ci0g
ICAgbV90eXBlZEFycmF5c1t0b0luZGV4KFR5cGVVaW50OCldLnByb3RvdHlwZS5zZXQodm0sIHRo
aXMsIEpTVWludDhBcnJheVByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBKU1VpbnQ4QXJyYXlQ
cm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgdHlwZWRBcnJheVByb3RvKSkpOwot
ICAgIG1fdHlwZWRBcnJheXNbdG9JbmRleChUeXBlVWludDhDbGFtcGVkKV0ucHJvdG90eXBlLnNl
dCh2bSwgdGhpcywgSlNVaW50OENsYW1wZWRBcnJheVByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlz
LCBKU1VpbnQ4Q2xhbXBlZEFycmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMs
IHR5cGVkQXJyYXlQcm90bykpKTsKLSAgICBtX3R5cGVkQXJyYXlzW3RvSW5kZXgoVHlwZVVpbnQx
NildLnByb3RvdHlwZS5zZXQodm0sIHRoaXMsIEpTVWludDE2QXJyYXlQcm90b3R5cGU6OmNyZWF0
ZSh2bSwgdGhpcywgSlNVaW50MTZBcnJheVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0
aGlzLCB0eXBlZEFycmF5UHJvdG8pKSk7Ci0gICAgbV90eXBlZEFycmF5c1t0b0luZGV4KFR5cGVV
aW50MzIpXS5wcm90b3R5cGUuc2V0KHZtLCB0aGlzLCBKU1VpbnQzMkFycmF5UHJvdG90eXBlOjpj
cmVhdGUodm0sIHRoaXMsIEpTVWludDMyQXJyYXlQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2
bSwgdGhpcywgdHlwZWRBcnJheVByb3RvKSkpOwotICAgIG1fdHlwZWRBcnJheXNbdG9JbmRleChU
eXBlRmxvYXQzMildLnByb3RvdHlwZS5zZXQodm0sIHRoaXMsIEpTRmxvYXQzMkFycmF5UHJvdG90
eXBlOjpjcmVhdGUodm0sIHRoaXMsIEpTRmxvYXQzMkFycmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1
Y3R1cmUodm0sIHRoaXMsIHR5cGVkQXJyYXlQcm90bykpKTsKLSAgICBtX3R5cGVkQXJyYXlzW3Rv
SW5kZXgoVHlwZUZsb2F0NjQpXS5wcm90b3R5cGUuc2V0KHZtLCB0aGlzLCBKU0Zsb2F0NjRBcnJh
eVByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBKU0Zsb2F0NjRBcnJheVByb3RvdHlwZTo6Y3Jl
YXRlU3RydWN0dXJlKHZtLCB0aGlzLCB0eXBlZEFycmF5UHJvdG8pKSk7CisgICAgCisgICAgbV90
eXBlZEFycmF5c1t0b0luZGV4KFR5cGVJbnQ4KV0ucHJvdG90eXBlLnNldCh2bSwgdGhpcywgSlNJ
bnQ4QXJyYXlQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgSlNJbnQ4QXJyYXlQcm90b3R5cGU6
OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSk7Cisg
ICAgbV90eXBlZEFycmF5c1t0b0luZGV4KFR5cGVJbnQxNildLnByb3RvdHlwZS5zZXQodm0sIHRo
aXMsIEpTSW50MTZBcnJheVByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBKU0ludDE2QXJyYXlQ
cm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0
KCkpKSk7CisgICAgbV90eXBlZEFycmF5c1t0b0luZGV4KFR5cGVJbnQzMildLnByb3RvdHlwZS5z
ZXQodm0sIHRoaXMsIEpTSW50MzJBcnJheVByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBKU0lu
dDMyQXJyYXlQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9vYmplY3RQcm90
b3R5cGUuZ2V0KCkpKSk7CisgICAgbV90eXBlZEFycmF5c1t0b0luZGV4KFR5cGVVaW50OCldLnBy
b3RvdHlwZS5zZXQodm0sIHRoaXMsIEpTVWludDhBcnJheVByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0
aGlzLCBKU1VpbnQ4QXJyYXlQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9v
YmplY3RQcm90b3R5cGUuZ2V0KCkpKSk7CisgICAgbV90eXBlZEFycmF5c1t0b0luZGV4KFR5cGVV
aW50OENsYW1wZWQpXS5wcm90b3R5cGUuc2V0KHZtLCB0aGlzLCBKU1VpbnQ4Q2xhbXBlZEFycmF5
UHJvdG90eXBlOjpjcmVhdGUodm0sIHRoaXMsIEpTVWludDhDbGFtcGVkQXJyYXlQcm90b3R5cGU6
OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSk7Cisg
ICAgbV90eXBlZEFycmF5c1t0b0luZGV4KFR5cGVVaW50MTYpXS5wcm90b3R5cGUuc2V0KHZtLCB0
aGlzLCBKU1VpbnQxNkFycmF5UHJvdG90eXBlOjpjcmVhdGUodm0sIHRoaXMsIEpTVWludDE2QXJy
YXlQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUu
Z2V0KCkpKSk7CisgICAgbV90eXBlZEFycmF5c1t0b0luZGV4KFR5cGVVaW50MzIpXS5wcm90b3R5
cGUuc2V0KHZtLCB0aGlzLCBKU1VpbnQzMkFycmF5UHJvdG90eXBlOjpjcmVhdGUodm0sIHRoaXMs
IEpTVWludDMyQXJyYXlQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9vYmpl
Y3RQcm90b3R5cGUuZ2V0KCkpKSk7CisgICAgbV90eXBlZEFycmF5c1t0b0luZGV4KFR5cGVGbG9h
dDMyKV0ucHJvdG90eXBlLnNldCh2bSwgdGhpcywgSlNGbG9hdDMyQXJyYXlQcm90b3R5cGU6OmNy
ZWF0ZSh2bSwgdGhpcywgSlNGbG9hdDMyQXJyYXlQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2
bSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSk7CisgICAgbV90eXBlZEFycmF5c1t0
b0luZGV4KFR5cGVGbG9hdDY0KV0ucHJvdG90eXBlLnNldCh2bSwgdGhpcywgSlNGbG9hdDY0QXJy
YXlQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgSlNGbG9hdDY0QXJyYXlQcm90b3R5cGU6OmNy
ZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSk7CiAgICAg
bV90eXBlZEFycmF5c1t0b0luZGV4KFR5cGVEYXRhVmlldyldLnByb3RvdHlwZS5zZXQodm0sIHRo
aXMsIEpTRGF0YVZpZXdQcm90b3R5cGU6OmNyZWF0ZSh2bSwgSlNEYXRhVmlld1Byb3RvdHlwZTo6
Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpKTsKICAg
ICAKICAgICBtX3R5cGVkQXJyYXlzW3RvSW5kZXgoVHlwZUludDgpXS5zdHJ1Y3R1cmUuc2V0KHZt
LCB0aGlzLCBKU0ludDhBcnJheTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX3R5cGVkQXJy
YXlzW3RvSW5kZXgoVHlwZUludDgpXS5wcm90b3R5cGUuZ2V0KCkpKTsKQEAgLTQ5MCw4ICs0ODcs
NiBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpz
TmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5j
R2V0VGVtcGxhdGVPYmplY3QgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmlu
ZygpLCBnZXRUZW1wbGF0ZU9iamVjdCk7CiAgICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNUb0xl
bmd0aCA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0
VG9MZW5ndGhDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyk7CiAgICAgSlNGdW5jdGlvbiogcHJpdmF0
ZUZ1bmNUb0ludGVnZXIgPSBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGds
b2JhbE9iamVjdFRvSW50ZWdlckNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKTsKLSAgICBKU0Z1bmN0
aW9uKiBwcml2YXRlRnVuY1R5cGVkQXJyYXlMZW5ndGggPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0s
IHRoaXMsIDAsIFN0cmluZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jTGVuZ3RoKTsKLSAg
ICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY1R5cGVkQXJyYXlTb3J0ID0gSlNGdW5jdGlvbjo6Y3Jl
YXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1NvcnQp
OwogCiAgICAgR2xvYmFsUHJvcGVydHlJbmZvIHN0YXRpY0dsb2JhbHNbXSA9IHsKICAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPk5hTiwganNOYU4oKSwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLApAQCAtNTAzLDggKzQ5OCw2IEBAIHB1dERpcmVj
dFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT4ganNOYW1lLCBsb3dlck5h
bWUgIyMgQ29uc3RydWN0CiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5nZXRUZW1wbGF0ZU9iamVjdFByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0dldFRlbXBsYXRl
T2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5lbnF1ZXVlSm9iUHJpdmF0ZU5hbWUsIEpT
RnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIGVucXVldWVKb2IpLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5UeXBlRXJyb3JQcml2YXRlTmFtZSwgbV90eXBlRXJyb3JDb25z
dHJ1Y3Rvci5nZXQoKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+dHlwZWRBcnJheUxlbmd0aFBy
aXZhdGVOYW1lLCBwcml2YXRlRnVuY1R5cGVkQXJyYXlMZW5ndGgsIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPnR5cGVkQXJyYXlTb3J0UHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jVHlwZWRBcnJheVNv
cnQsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPkJ1aWx0aW5Mb2dQcml2YXRlTmFtZSwgYnVpbHRp
bkxvZywgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+QXJyYXlQcml2YXRlTmFtZSwgYXJyYXlDb25z
dHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+TnVtYmVyUHJpdmF0ZU5hbWUsIG51bWJl
ckNvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCA2MWJiMTUwZGJhYTg2NTQ4YWMx
OGVkMTIzZDgwOWFkNzJhMmJhYTIzLi4xM2FkODYzMTI3NGU0ODUwZjFlYTM1YzE5N2YwNzZjMTM2
NDJhNzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTE0
NzUsMTYgKzE0NzUsNiBAQCBBTFdBWVNfSU5MSU5FIElkZW50aWZpZXIgbWFrZUlkZW50aWZpZXIo
Vk0mLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQogICAgIHB1dERpcmVjdEJ1aWx0aW5GdW5jdGlv
bihcCiAgICAgICAgIHZtLCBnbG9iYWxPYmplY3QsIG1ha2VJZGVudGlmaWVyKHZtLCAoanNOYW1l
KSksIChnZW5lcmF0b3JOYW1lKSh2bSksIChhdHRyaWJ1dGVzKSkKIAotLy8gSGVscGVyIGZvciBk
ZWZpbmluZyBuYXRpdmUgZ2V0dGVycyBvbiBwcm9wZXJ0aWVzLgotI2RlZmluZSBKU0NfTkFUSVZF
X0dFVFRFUihqc05hbWUsIGNwcE5hbWUsIGF0dHJpYnV0ZXMsIGxlbmd0aCkgZG8geyBcCi0gICAg
ICAgIElkZW50aWZpZXIgaWRlbnQgPSBtYWtlSWRlbnRpZmllcih2bSwgKGpzTmFtZSkpOyBcCi0g
ICAgICAgIEdldHRlclNldHRlciogYWNjZXNzb3IgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0KTsgXAotICAgICAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvbiA9IEpTRnVuY3Rp
b246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCAobGVuZ3RoKSwgaWRlbnQuc3RyaW5nKCksIChj
cHBOYW1lKSk7IFwKLSAgICAgICAgYWNjZXNzb3ItPnNldEdldHRlcih2bSwgZ2xvYmFsT2JqZWN0
LCBmdW5jdGlvbik7IFwKLSAgICAgICAgcHV0RGlyZWN0Tm9uSW5kZXhBY2Nlc3Nvcih2bSwgaWRl
bnQsIGFjY2Vzc29yLCAoYXR0cmlidXRlcykgfCBBY2Nlc3Nvcik7IFwKLSAgICB9IHdoaWxlIChm
YWxzZSkKLQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEpTT2JqZWN0X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVByb3Rv
dHlwZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5UHJv
dG90eXBlcy5jcHAKaW5kZXggZDkyODJlYWQzOGRjMmUwNzE2NGViZjMyMTE4NWRmNTFlMjA4ZTE0
Zi4uYzAxZDhmODg5MThiOThiN2ViNDczZDdjZjAwZDAzMmZiYjc1ZTM1MiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5UHJvdG90eXBlcy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5UHJvdG90eXBl
cy5jcHAKQEAgLTMxLDkgKzMxLDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNvbnN0IENsYXNz
SW5mbyBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlOjpzX2luZm8gPSB7IlByb3RvdHlwZSIsICZK
U1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlOjpCYXNlOjpzX2luZm8sIDAsCi0gICAgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlKX07Ci0KICNkZWZpbmUgTUFLRV9T
X0lORk8odHlwZSkgXAogICAgIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTIyN0eXBlIyNQ
cm90b3R5cGU6OnNfaW5mbyA9IHsjdHlwZSAiUHJvdG90eXBlIiwgJkpTIyN0eXBlIyNQcm90b3R5
cGU6OkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKUyMjdHlwZSMjUHJvdG90
eXBlKX0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBl
ZEFycmF5UHJvdG90eXBlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBl
ZEFycmF5UHJvdG90eXBlcy5oCmluZGV4IDhlZGU4NjBlNTU0MDBlMmIyMzgxYTZmMDc2MTlkMjc0
ZjAwM2Y4YmYuLmIwZjFjMTE0NzM3ZDcwMzgxZjU1MjI1Y2RiZGRiNmRkZjlmZDM0NjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVByb3RvdHlw
ZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlQcm90
b3R5cGVzLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgSlNUeXBlZEFycmF5UHJvdG90eXBl
c19oCiAKICNpbmNsdWRlICJKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oIgotI2lu
Y2x1ZGUgIkpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU1R5cGVkQXJy
YXlzLmgiCiAKIG5hbWVzcGFjZSBKU0MgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYTYxZjIwNGY1NzQ1ZTJhZWE0NzU3YTg3OGY3MjFlMmY0Yjdj
MTVlOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDI2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTVHlw
ZWRBcnJheVZpZXdQcm90b3R5cGUuaCIKLQotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2luY2x1
ZGUgIkdldHRlclNldHRlci5oIgotI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKLSNpbmNsdWRl
ICJKU0Z1bmN0aW9uLmgiCi0jaW5jbHVkZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5
cGVGdW5jdGlvbnMuaCIKLSNpbmNsdWRlICJUeXBlZEFycmF5QWRhcHRvcnMuaCIKLQotbmFtZXNw
YWNlIEpTQyB7Ci0KLSNkZWZpbmUgQ0FMTF9HRU5FUklDX1RZUEVEQVJSQVlfUFJPVE9UWVBFX0ZV
TkNUSU9OKGZ1bmN0aW9uTmFtZSkgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBzd2l0Y2ggKHRoaXNWYWx1ZS5nZXRPYmplY3QoKS0+Y2xhc3NJbmZvKCktPnR5cGVkQXJyYXlT
dG9yYWdlVHlwZSkgeyAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBjYXNlIFR5cGVVaW50
OENsYW1wZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uTmFtZTxKU1Vp
bnQ4Q2xhbXBlZEFycmF5PihleGVjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICBjYXNlIFR5cGVJbnQzMjogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAg
ICAgcmV0dXJuIGZ1bmN0aW9uTmFtZTxKU0ludDMyQXJyYXk+KGV4ZWMpOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBjYXNlIFR5cGVVaW50MzI6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uTmFtZTxKU1VpbnQz
MkFycmF5PihleGVjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBjYXNlIFR5cGVGbG9hdDY0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAg
cmV0dXJuIGZ1bmN0aW9uTmFtZTxKU0Zsb2F0NjRBcnJheT4oZXhlYyk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBjYXNlIFR5cGVGbG9hdDMyOiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uTmFtZTxKU0Zsb2F0MzJB
cnJheT4oZXhlYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBjYXNlIFR5cGVJbnQ4OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgcmV0
dXJuIGZ1bmN0aW9uTmFtZTxKU0ludDhBcnJheT4oZXhlYyk7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBjYXNlIFR5cGVVaW50ODogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uTmFtZTxKU1VpbnQ4QXJyYXk+
KGV4ZWMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBjYXNlIFR5cGVJbnQxNjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgcmV0dXJu
IGZ1bmN0aW9uTmFtZTxKU0ludDE2QXJyYXk+KGV4ZWMpOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBjYXNlIFR5cGVVaW50MTY6ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uTmFtZTxKU1VpbnQxNkFycmF5Pihl
eGVjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBjYXNlIE5vdFR5cGVkQXJyYXk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBjYXNlIFR5cGVEYXRh
VmlldzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVj
LCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICAgICAgICAgICJSZWNlaXZlciBzaG91bGQgYmUgYSB0eXBlZCBhcnJheSB2
aWV3IikpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB9
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLX0gd2hpbGUgKGZhbHNlKQotCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNMZW5ndGgoRXhlY1N0YXRlKiBl
eGVjKQotewotICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2Fz
dDxKU0FycmF5QnVmZmVyVmlldyo+KGV4ZWMtPmFyZ3VtZW50KDApKTsKLSAgICBpZiAoIXRoaXNP
YmplY3QpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9y
KGV4ZWMsICJSZWNlaXZlciBzaG91bGQgYmUgYSB0eXBlZCBhcnJheSB2aWV3IikpOwotCi0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2JqZWN0LT5sZW5ndGgoKSkpOwot
fQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1
bmNTb3J0KEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
PmFyZ3VtZW50KDApOwotICAgIGlmICghdGhpc1ZhbHVlLmlzT2JqZWN0KCkpCi0gICAgICAgIHJl
dHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJSZWNlaXZlciBz
aG91bGQgYmUgYSB0eXBlZCBhcnJheSB2aWV3IGJ1dCB3YXMgbm90IGFuIG9iamVjdCIpKTsKLSAg
ICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZUEVfRlVOQ1RJT04oZ2VuZXJpY1R5cGVk
QXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0KTsKLX0KLQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTZXQoRXhlY1N0YXRlKiBleGVjKQot
ewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0
aGlzVmFsdWUuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBj
cmVhdGVUeXBlRXJyb3IoZXhlYywgIlJlY2VpdmVyIHNob3VsZCBiZSBhIHR5cGVkIGFycmF5IHZp
ZXcgYnV0IHdhcyBub3QgYW4gb2JqZWN0IikpOwotICAgIENBTExfR0VORVJJQ19UWVBFREFSUkFZ
X1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTZXQpOwot
fQotCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1By
b3RvRnVuY0VudHJpZXMoRXhlY1N0YXRlKiBleGVjKQotewotICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaXNPYmplY3QoKSkKLSAg
ICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIlJl
Y2VpdmVyIHNob3VsZCBiZSBhIHR5cGVkIGFycmF5IHZpZXcgYnV0IHdhcyBub3QgYW4gb2JqZWN0
IikpOwotICAgIENBTExfR0VORVJJQ19UWVBFREFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihnZW5l
cmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNFbnRyaWVzKTsKLX0KLQotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNDb3B5V2l0aGluKEV4
ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1
ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiB0aHJv
d1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJSZWNlaXZlciBzaG91bGQgYmUg
YSB0eXBlZCBhcnJheSB2aWV3IGJ1dCB3YXMgbm90IGFuIG9iamVjdCIpKTsKLSAgICBDQUxMX0dF
TkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZUEVfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3
UHJvdG9GdW5jQ29weVdpdGhpbik7Ci19Ci0KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jRmlsbChFeGVjU3RhdGUqIGV4ZWMpCi17Ci0g
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNW
YWx1ZS5pc09iamVjdCgpKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0
ZVR5cGVFcnJvcihleGVjLCAiUmVjZWl2ZXIgc2hvdWxkIGJlIGEgdHlwZWQgYXJyYXkgdmlldyBi
dXQgd2FzIG5vdCBhbiBvYmplY3QiKSk7Ci0gICAgQ0FMTF9HRU5FUklDX1RZUEVEQVJSQVlfUFJP
VE9UWVBFX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0ZpbGwpOwotfQot
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3Rv
RnVuY0xhc3RJbmRleE9mKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmlzT2JqZWN0KCkpCi0g
ICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJS
ZWNlaXZlciBzaG91bGQgYmUgYSB0eXBlZCBhcnJheSB2aWV3IGJ1dCB3YXMgbm90IGFuIG9iamVj
dCIpKTsKLSAgICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZUEVfRlVOQ1RJT04oZ2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jTGFzdEluZGV4T2YpOwotfQotCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0luZGV4T2Yo
RXhlY1N0YXRlKiBleGVjKQotewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1Zh
bHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIHRo
cm93Vk1FcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIlJlY2VpdmVyIHNob3VsZCBi
ZSBhIHR5cGVkIGFycmF5IHZpZXcgYnV0IHdhcyBub3QgYW4gb2JqZWN0IikpOwotICAgIENBTExf
R0VORVJJQ19UWVBFREFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZp
ZXdQcm90b0Z1bmNJbmRleE9mKTsKLX0KLQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNKb2luKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1Zh
bHVlLmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRl
VHlwZUVycm9yKGV4ZWMsICJSZWNlaXZlciBzaG91bGQgYmUgYSB0eXBlZCBhcnJheSB2aWV3IGJ1
dCB3YXMgbm90IGFuIG9iamVjdCIpKTsKLSAgICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9U
T1RZUEVfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSm9pbik7Ci19Ci0K
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9G
dW5jS2V5cyhFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pc09iamVjdCgpKQotICAgICAgICBy
ZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiUmVjZWl2ZXIg
c2hvdWxkIGJlIGEgdHlwZWQgYXJyYXkgdmlldyBidXQgd2FzIG5vdCBhbiBvYmplY3QiKSk7Ci0g
ICAgQ0FMTF9HRU5FUklDX1RZUEVEQVJSQVlfUFJPVE9UWVBFX0ZVTkNUSU9OKGdlbmVyaWNUeXBl
ZEFycmF5Vmlld1Byb3RvRnVuY0tleXMpOwotfQotCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0xlbmd0aChFeGVjU3RhdGUq
IGV4ZWMpCi17Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAg
ICBpZiAoIXRoaXNWYWx1ZS5pc09iamVjdCgpKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9y
KGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiUmVjZWl2ZXIgc2hvdWxkIGJlIGEgdHlwZWQg
YXJyYXkgdmlldyBidXQgd2FzIG5vdCBhbiBvYmplY3QiKSk7Ci0gICAgQ0FMTF9HRU5FUklDX1RZ
UEVEQVJSQVlfUFJPVE9UWVBFX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0
dGVyRnVuY0xlbmd0aCk7Ci19Ci0KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aChFeGVjU3RhdGUqIGV4ZWMp
Ci17Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAo
IXRoaXNWYWx1ZS5pc09iamVjdCgpKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMs
IGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiUmVjZWl2ZXIgc2hvdWxkIGJlIGEgdHlwZWQgYXJyYXkg
dmlldyBidXQgd2FzIG5vdCBhbiBvYmplY3QiKSk7Ci0gICAgQ0FMTF9HRU5FUklDX1RZUEVEQVJS
QVlfUFJPVE9UWVBFX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVu
Y0J5dGVMZW5ndGgpOwotfQotCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0
eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J5dGVPZmZzZXQoRXhlY1N0YXRlKiBleGVjKQot
ewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0
aGlzVmFsdWUuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBj
cmVhdGVUeXBlRXJyb3IoZXhlYywgIlJlY2VpdmVyIHNob3VsZCBiZSBhIHR5cGVkIGFycmF5IHZp
ZXcgYnV0IHdhcyBub3QgYW4gb2JqZWN0IikpOwotICAgIENBTExfR0VORVJJQ19UWVBFREFSUkFZ
X1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNC
eXRlT2Zmc2V0KTsKLX0KLQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlw
ZWRBcnJheVZpZXdQcm90b0Z1bmNSZXZlcnNlKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmlz
T2JqZWN0KCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlwZUVy
cm9yKGV4ZWMsICJSZWNlaXZlciBzaG91bGQgYmUgYSB0eXBlZCBhcnJheSB2aWV3IGJ1dCB3YXMg
bm90IGFuIG9iamVjdCIpKTsKLSAgICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZUEVf
RlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jUmV2ZXJzZSk7Ci19Ci0KLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5j
U3ViYXJyYXkoRXhlY1N0YXRlKiBleGVjKQotewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaXNPYmplY3QoKSkKLSAgICAgICAg
cmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIlJlY2VpdmVy
IHNob3VsZCBiZSBhIHR5cGVkIGFycmF5IHZpZXcgYnV0IHdhcyBub3QgYW4gb2JqZWN0IikpOwot
ICAgIENBTExfR0VORVJJQ19UWVBFREFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlw
ZWRBcnJheVZpZXdQcm90b0Z1bmNTdWJhcnJheSk7Ci19Ci0KLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2xpY2UoRXhlY1N0YXRlKiBl
eGVjKQotewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAg
aWYgKCF0aGlzVmFsdWUuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihl
eGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIlJlY2VpdmVyIHNob3VsZCBiZSBhIHR5cGVkIGFy
cmF5IHZpZXcgYnV0IHdhcyBub3QgYW4gb2JqZWN0IikpOwotICAgIENBTExfR0VORVJJQ19UWVBF
REFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNT
bGljZSk7Ci19Ci0KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJy
YXlWaWV3UHJvdG9GdW5jVmFsdWVzKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmlzT2JqZWN0
KCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4
ZWMsICJSZWNlaXZlciBzaG91bGQgYmUgYSB0eXBlZCBhcnJheSB2aWV3IGJ1dCB3YXMgbm90IGFu
IG9iamVjdCIpKTsKLSAgICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZUEVfRlVOQ1RJ
T04odHlwZWRBcnJheVZpZXdQcm90b0Z1bmNWYWx1ZXMpOwotfQotCi0jdW5kZWYgQ0FMTF9HRU5F
UklDX1RZUEVEQVJSQVlfUFJPVE9UWVBFX0ZVTkNUSU9OCi0KLUpTVHlwZWRBcnJheVZpZXdQcm90
b3R5cGU6OkpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKLXsKLX0KLQotdm9pZCBKU1R5cGVkQXJy
YXlWaWV3UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCi17Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotCi0gICAgQVNT
RVJUKGluaGVyaXRzKGluZm8oKSkpOwotCi0gICAgSlNDX05BVElWRV9HRVRURVIodm0ucHJvcGVy
dHlOYW1lcy0+Ynl0ZUxlbmd0aCwgdHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlTGVu
Z3RoLCBEb250RW51bSB8IFJlYWRPbmx5IHwgRG9udERlbGV0ZSwgMCk7Ci0gICAgSlNDX05BVElW
RV9HRVRURVIodm0ucHJvcGVydHlOYW1lcy0+Ynl0ZU9mZnNldCwgdHlwZWRBcnJheVZpZXdQcm90
b0dldHRlckZ1bmNCeXRlT2Zmc2V0LCBEb250RW51bSB8IFJlYWRPbmx5IHwgRG9udERlbGV0ZSwg
MCk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTigiY29weVdpdGhpbiIsIHR5cGVkQXJyYXlWaWV3
UHJvdG9GdW5jQ29weVdpdGhpbiwgRG9udEVudW0sIDIpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNU
SU9OKCJldmVyeSIsIHR5cGVkQXJyYXlQcm90b3R5cGVFdmVyeUNvZGVHZW5lcmF0b3IsIERvbnRF
bnVtKTsKLSAgICBKU0NfQlVJTFRJTl9GVU5DVElPTigiZmlsdGVyIiwgdHlwZWRBcnJheVByb3Rv
dHlwZUZpbHRlckNvZGVHZW5lcmF0b3IsIERvbnRFbnVtKTsKLSAgICBKU0NfQlVJTFRJTl9GVU5D
VElPTigic29ydCIsIHR5cGVkQXJyYXlQcm90b3R5cGVTb3J0Q29kZUdlbmVyYXRvciwgRG9udEVu
dW0pOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT04odm0ucHJvcGVydHlOYW1lcy0+ZW50cmllcywg
dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNFbnRyaWVzLCBEb250RW51bSwgMCk7Ci0gICAgSlNDX05B
VElWRV9GVU5DVElPTigiZmlsbCIsIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jRmlsbCwgRG9udEVu
dW0sIDEpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OKCJmaW5kIiwgdHlwZWRBcnJheVByb3Rv
dHlwZUZpbmRDb2RlR2VuZXJhdG9yLCBEb250RW51bSk7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJ
T04oImZpbmRJbmRleCIsIHR5cGVkQXJyYXlQcm90b3R5cGVGaW5kSW5kZXhDb2RlR2VuZXJhdG9y
LCBEb250RW51bSk7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT04odm0ucHJvcGVydHlOYW1lcy0+
Zm9yRWFjaCwgdHlwZWRBcnJheVByb3RvdHlwZUZvckVhY2hDb2RlR2VuZXJhdG9yLCBEb250RW51
bSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTigiaW5kZXhPZiIsIHR5cGVkQXJyYXlWaWV3UHJv
dG9GdW5jSW5kZXhPZiwgRG9udEVudW0sIDEpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT04odm0u
cHJvcGVydHlOYW1lcy0+am9pbiwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNKb2luLCBEb250RW51
bSwgMSk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5rZXlzLCB0
eXBlZEFycmF5Vmlld1Byb3RvRnVuY0tleXMsIERvbnRFbnVtLCAwKTsKLSAgICBKU0NfTkFUSVZF
X0ZVTkNUSU9OKCJsYXN0SW5kZXhPZiIsIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jTGFzdEluZGV4
T2YsIERvbnRFbnVtLCAxKTsKLSAgICBKU0NfTkFUSVZFX0dFVFRFUih2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgsIHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jTGVuZ3RoLCBEb250RW51bSB8
IFJlYWRPbmx5IHwgRG9udERlbGV0ZSwgMCk7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT04oIm1h
cCIsIHR5cGVkQXJyYXlQcm90b3R5cGVNYXBDb2RlR2VuZXJhdG9yLCBEb250RW51bSk7Ci0gICAg
SlNDX0JVSUxUSU5fRlVOQ1RJT04oInJlZHVjZSIsIHR5cGVkQXJyYXlQcm90b3R5cGVSZWR1Y2VD
b2RlR2VuZXJhdG9yLCBEb250RW51bSk7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT04oInJlZHVj
ZVJpZ2h0IiwgdHlwZWRBcnJheVByb3RvdHlwZVJlZHVjZVJpZ2h0Q29kZUdlbmVyYXRvciwgRG9u
dEVudW0pOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT04oInJldmVyc2UiLCB0eXBlZEFycmF5Vmll
d1Byb3RvRnVuY1JldmVyc2UsIERvbnRFbnVtLCAwKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9O
KHZtLnByb3BlcnR5TmFtZXMtPnNldCwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTZXQsIERvbnRF
bnVtLCAxKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMtPnNsaWNl
LCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY1NsaWNlLCBEb250RW51bSwgMik7Ci0gICAgSlNDX0JV
SUxUSU5fRlVOQ1RJT04oInNvbWUiLCB0eXBlZEFycmF5UHJvdG90eXBlU29tZUNvZGVHZW5lcmF0
b3IsIERvbnRFbnVtKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMt
PnN1YmFycmF5LCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY1N1YmFycmF5LCBEb250RW51bSwgMik7
Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT04odm0ucHJvcGVydHlOYW1lcy0+dG9Mb2NhbGVTdHJp
bmcsIHR5cGVkQXJyYXlQcm90b3R5cGVUb0xvY2FsZVN0cmluZ0NvZGVHZW5lcmF0b3IsIERvbnRF
bnVtKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5n
LCBhcnJheVByb3RvRnVuY1RvU3RyaW5nLCBEb250RW51bSwgMCk7Ci0KLSAgICBKU0Z1bmN0aW9u
KiB2YWx1ZXNGdW5jdGlvbiA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCAw
LCB2bS5wcm9wZXJ0eU5hbWVzLT52YWx1ZXMuc3RyaW5nKCksIHR5cGVkQXJyYXlWaWV3UHJvdG9G
dW5jVmFsdWVzKTsKLQotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT52YWx1ZXMsIHZhbHVlc0Z1bmN0aW9uLCBEb250RW51bSk7Ci0gICAgcHV0RGly
ZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9s
LCB2YWx1ZXNGdW5jdGlvbiwgRG9udEVudW0pOwotCi19Ci0KLUpTVHlwZWRBcnJheVZpZXdQcm90
b3R5cGUqIEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGU6OmNyZWF0ZSgKLSAgICBWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQotewotICAg
IEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUqIHByb3RvdHlwZSA9Ci0gICAgbmV3IChOb3ROdWxs
LCBhbGxvY2F0ZUNlbGw8SlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZT4odm0uaGVhcCkpCi0gICAg
SlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZSh2bSwgc3RydWN0dXJlKTsKLSAgICBwcm90b3R5cGUt
PmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QpOwotICAgIHJldHVybiBwcm90b3R5cGU7
Ci19Ci0KLVN0cnVjdHVyZSogSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZTo6Y3JlYXRlU3RydWN0
dXJlKAotICAgIFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBw
cm90b3R5cGUpCi17Ci0gICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZv
KCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYWQ5ZGY2MDFjYTkzYzNjOTlmN2VlMzU1YWZjYjYxNjhhMmE1
NTAzOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlX2gKLSNk
ZWZpbmUgSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZV9oCi0KLSNpbmNsdWRlICJKU09iamVjdC5o
IgotCi1uYW1lc3BhY2UgSlNDIHsKLQotY2xhc3MgSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZSA6
IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKLXB1YmxpYzoKLSAgICB0eXBlZGVmIEpTTm9uRmlu
YWxPYmplY3QgQmFzZTsKLQotcHJvdGVjdGVkOgotICAgIEpTVHlwZWRBcnJheVZpZXdQcm90b3R5
cGUoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9i
YWxPYmplY3QqKTsKLQotcHVibGljOgotICAgIHN0YXRpYyBKU1R5cGVkQXJyYXlWaWV3UHJvdG90
eXBlKiBjcmVhdGUoVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwotCi0gICAgREVD
TEFSRV9JTkZPOwotCi0gICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwg
SlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSk7Ci19OwotCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0KEV4ZWNTdGF0ZSop
OwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5j
TGVuZ3RoKEV4ZWNTdGF0ZSopOwotCi0gICAgCi19IC8vIG5hbWVzcGFjZSBKU0MKLQotI2VuZGlm
IC8qIEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGVfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi55YW1sIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi55YW1sCmluZGV4IDUyZjBkN2I4Mzk4MTYyMDA0MDM3NzYwODQ5OTE3NTMzYTI3NDYyOGUu
LmNjZTAxNjQ4NzJhNzQwZDY2NGQwOTY2N2Q3MGZmZTNiNmViMzIwNzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYueWFtbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2LnlhbWwKQEAgLTExMTksNDcgKzExMTksNDcgQEAKIC0gcGF0aDogZXM2
L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUub2YuanMKICAgY21kOiBydW5FUzYgOmZhaWwKIC0g
cGF0aDogZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLmNvcHlXaXRoaW4u
anMKLSAgY21kOiBydW5FUzYgOm5vcm1hbAorICBjbWQ6IHJ1bkVTNiA6ZmFpbAogLSBwYXRoOiBl
czYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5wcm90b3R5cGUuZW50cmllcy5qcwotICBjbWQ6
IHJ1bkVTNiA6bm9ybWFsCisgIGNtZDogcnVuRVM2IDpmYWlsCiAtIHBhdGg6IGVzNi90eXBlZF9h
cnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5ldmVyeS5qcwotICBjbWQ6IHJ1bkVTNiA6bm9y
bWFsCisgIGNtZDogcnVuRVM2IDpmYWlsCiAtIHBhdGg6IGVzNi90eXBlZF9hcnJheXNfJVR5cGVk
QXJyYXklLnByb3RvdHlwZS5maWxsLmpzCi0gIGNtZDogcnVuRVM2IDpub3JtYWwKKyAgY21kOiBy
dW5FUzYgOmZhaWwKIC0gcGF0aDogZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90
eXBlLmZpbHRlci5qcwotICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCisgIGNtZDogcnVuRVM2IDpmYWls
CiAtIHBhdGg6IGVzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5maW5kLmpz
Ci0gIGNtZDogcnVuRVM2IDpub3JtYWwKKyAgY21kOiBydW5FUzYgOmZhaWwKIC0gcGF0aDogZXM2
L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLmZpbmRJbmRleC5qcwotICBjbWQ6
IHJ1bkVTNiA6bm9ybWFsCisgIGNtZDogcnVuRVM2IDpmYWlsCiAtIHBhdGg6IGVzNi90eXBlZF9h
cnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5mb3JFYWNoLmpzCi0gIGNtZDogcnVuRVM2IDpu
b3JtYWwKKyAgY21kOiBydW5FUzYgOmZhaWwKIC0gcGF0aDogZXM2L3R5cGVkX2FycmF5c18lVHlw
ZWRBcnJheSUucHJvdG90eXBlLmluZGV4T2YuanMKLSAgY21kOiBydW5FUzYgOm5vcm1hbAorICBj
bWQ6IHJ1bkVTNiA6ZmFpbAogLSBwYXRoOiBlczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5w
cm90b3R5cGUuam9pbi5qcwotICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCisgIGNtZDogcnVuRVM2IDpm
YWlsCiAtIHBhdGg6IGVzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5rZXlz
LmpzCi0gIGNtZDogcnVuRVM2IDpub3JtYWwKKyAgY21kOiBydW5FUzYgOmZhaWwKIC0gcGF0aDog
ZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLmxhc3RJbmRleE9mLmpzCi0g
IGNtZDogcnVuRVM2IDpub3JtYWwKKyAgY21kOiBydW5FUzYgOmZhaWwKIC0gcGF0aDogZXM2L3R5
cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLm1hcC5qcwotICBjbWQ6IHJ1bkVTNiA6
bm9ybWFsCisgIGNtZDogcnVuRVM2IDpmYWlsCiAtIHBhdGg6IGVzNi90eXBlZF9hcnJheXNfJVR5
cGVkQXJyYXklLnByb3RvdHlwZS5yZWR1Y2UuanMKLSAgY21kOiBydW5FUzYgOm5vcm1hbAorICBj
bWQ6IHJ1bkVTNiA6ZmFpbAogLSBwYXRoOiBlczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5w
cm90b3R5cGUucmVkdWNlUmlnaHQuanMKLSAgY21kOiBydW5FUzYgOm5vcm1hbAorICBjbWQ6IHJ1
bkVTNiA6ZmFpbAogLSBwYXRoOiBlczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5wcm90b3R5
cGUucmV2ZXJzZS5qcwotICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCisgIGNtZDogcnVuRVM2IDpmYWls
CiAtIHBhdGg6IGVzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5zbGljZS5q
cwotICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCisgIGNtZDogcnVuRVM2IDpmYWlsCiAtIHBhdGg6IGVz
Ni90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5zb21lLmpzCi0gIGNtZDogcnVu
RVM2IDpub3JtYWwKKyAgY21kOiBydW5FUzYgOmZhaWwKIC0gcGF0aDogZXM2L3R5cGVkX2FycmF5
c18lVHlwZWRBcnJheSUucHJvdG90eXBlLnNvcnQuanMKLSAgY21kOiBydW5FUzYgOm5vcm1hbAor
ICBjbWQ6IHJ1bkVTNiA6ZmFpbAogLSBwYXRoOiBlczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5
JS5wcm90b3R5cGUudmFsdWVzLmpzCi0gIGNtZDogcnVuRVM2IDpub3JtYWwKKyAgY21kOiBydW5F
UzYgOmZhaWwKIC0gcGF0aDogZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBl
W1N5bWJvbC5pdGVyYXRvcl0uanMKLSAgY21kOiBydW5FUzYgOm5vcm1hbAorICBjbWQ6IHJ1bkVT
NiA6ZmFpbAogLSBwYXRoOiBlczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JVtTeW1ib2wuc3Bl
Y2llc10uanMKICAgY21kOiBydW5FUzYgOmZhaWwKIC0gcGF0aDogZXM2L3R5cGVkX2FycmF5c19B
cnJheUJ1ZmZlcltTeW1ib2wuc3BlY2llc10uanMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVzb3VyY2VzL3N0YW5kYWxvbmUtcHJlLmpzIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMvc3RhbmRhbG9uZS1wcmUuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5ZGYzNzkyMDM2OWYwZTliZmFkYTAwODEy
MDk0NjA5MmQwNDkzZTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMvc3RhbmRh
bG9uZS1wcmUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzMzIgKzAsMCBAQAotdmFyIGVycm9yTWVz
c2FnZTsKLXZhciBzZWxmID0gdGhpczsKLQotc2VsZi50ZXN0UnVubmVyID0gewotICAgIG5ldmVy
SW5saW5lRnVuY3Rpb246IG5ldmVySW5saW5lRnVuY3Rpb24sCi0gICAgbnVtYmVyT2ZERkdDb21w
aWxlczogbnVtYmVyT2ZERkdDb21waWxlcwotfTsKLQotdmFyIHNpbGVudE1vZGUgPSB0cnVlOwot
dmFyIHNpbGVudFRlc3RQYXNzLCBkaWRQYXNzU29tZVRlc3RzU2lsZW50bHksIGRpZEZhaWxTb21l
VGVzdHMsIHN1Y2Nlc3NmdWxseVBhcnNlZDsKLXNpbGVudFRlc3RQYXNzID0gZmFsc2U7Ci1kaWRQ
YXNzU29tZVRlc3RzU2lsZW50eSA9IGZhbHNlOwotZGlkRmFpbGVTb21lVGVzdHMgPSBmYWxzZTsK
LQotZnVuY3Rpb24gZGVzY3JpcHRpb24obXNnKQotewotICAgIGlmIChzaWxlbnRNb2RlKQotICAg
ICAgICByZXR1cm47Ci0gICAgcHJpbnQobXNnKTsKLSAgICBwcmludCgiXG5PbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgXCJQQVNTXCIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5IFwi
VEVTVCBDT01QTEVURVwiLlxuIik7Ci0gICAgcHJpbnQoKTsKLX0KLQotZnVuY3Rpb24gZGVidWco
bXNnKQotewotICAgIGlmIChzaWxlbnRNb2RlKQotICAgICAgICByZXR1cm47Ci0gICAgcHJpbnQo
bXNnKTsKLX0KLQotZnVuY3Rpb24gZXNjYXBlU3RyaW5nKHRleHQpCi17Ci0gICAgcmV0dXJuIHRl
eHQucmVwbGFjZSgvXDAvZywgIiIpOwotfQotCi1mdW5jdGlvbiB0ZXN0UGFzc2VkKG1zZykKLXsK
LSAgICBpZiAoc2lsZW50VGVzdFBhc3MpCi0gICAgICAgIGRpZFBhc3NTb21lVGVzdHNTaWxlbnRs
eSA9IHRydWU7Ci0gICAgZWxzZSBpZiAoc2lsZW50TW9kZSkKLSAgICAgICAgcmV0dXJuOwotICAg
IGVsc2UKLSAgICAgICAgcHJpbnQoIlBBU1MiLCBlc2NhcGVTdHJpbmcobXNnKSk7Ci19Ci0KLWZ1
bmN0aW9uIHRlc3RGYWlsZWQobXNnKQotewotICAgIGRpZEZhaWxTb21lVGVzdHMgPSB0cnVlOwot
ICAgIGlmIChzaWxlbnRNb2RlKQotICAgICAgICByZXR1cm47Ci0gICAgcHJpbnQoIkZBSUwiLCBl
c2NhcGVTdHJpbmcobXNnKSk7Ci19Ci0KLWZ1bmN0aW9uIGFyZU51bWJlcnNFcXVhbChfYWN0dWFs
LCBfZXhwZWN0ZWQpCi17Ci0gICAgaWYgKF9leHBlY3RlZCA9PT0gMCkKLSAgICAgICAgcmV0dXJu
IF9hY3R1YWwgPT09IF9leHBlY3RlZCAmJiAoMS9fYWN0dWFsKSA9PT0gKDEvX2V4cGVjdGVkKTsK
LSAgICBpZiAoX2FjdHVhbCA9PT0gX2V4cGVjdGVkKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICBpZiAodHlwZW9mKF9leHBlY3RlZCkgPT0gIm51bWJlciIgJiYgaXNOYU4oX2V4cGVjdGVkKSkK
LSAgICAgICAgcmV0dXJuIHR5cGVvZihfYWN0dWFsKSA9PSAibnVtYmVyIiAmJiBpc05hTihfYWN0
dWFsKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWZ1bmN0aW9uIGFyZUFycmF5c0VxdWFsKF9h
LCBfYikKLXsKLSAgICB0cnkgewotICAgICAgICBpZiAoX2EubGVuZ3RoICE9PSBfYi5sZW5ndGgp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
X2EubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBpZiAoIWFyZU51bWJlcnNFcXVhbChfYVtpXSwg
X2JbaV0pKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9IGNhdGNoIChleCkg
ewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi1m
dW5jdGlvbiBpc01pbnVzWmVybyhuKQotewotICAgIC8vIHRoZSBvbmx5IHdheSB0byB0ZWxsIDAg
ZnJvbSAtMCBpbiBKUyBpcyB0aGUgZmFjdCB0aGF0IDEvLTAgaXMKLSAgICAvLyAtSW5maW5pdHkg
aW5zdGVhZCBvZiBJbmZpbml0eQotICAgIHJldHVybiBuID09PSAwICYmIDEvbiA8IDA7Ci19Ci0K
LWZ1bmN0aW9uIGlzVHlwZWRBcnJheShhcnJheSkKLXsKLSAgICByZXR1cm4gYXJyYXkgaW5zdGFu
Y2VvZiBJbnQ4QXJyYXkKLSAgICAgICAgfHwgYXJyYXkgaW5zdGFuY2VvZiBJbnQxNkFycmF5Ci0g
ICAgICAgIHx8IGFycmF5IGluc3RhbmNlb2YgSW50MzJBcnJheQotICAgICAgICB8fCBhcnJheSBp
bnN0YW5jZW9mIFVpbnQ4QXJyYXkKLSAgICAgICAgfHwgYXJyYXkgaW5zdGFuY2VvZiBVaW50OENs
YW1wZWRBcnJheQotICAgICAgICB8fCBhcnJheSBpbnN0YW5jZW9mIFVpbnQxNkFycmF5Ci0gICAg
ICAgIHx8IGFycmF5IGluc3RhbmNlb2YgVWludDMyQXJyYXkKLSAgICAgICAgfHwgYXJyYXkgaW5z
dGFuY2VvZiBGbG9hdDMyQXJyYXkKLSAgICAgICAgfHwgYXJyYXkgaW5zdGFuY2VvZiBGbG9hdDY0
QXJyYXk7Ci19Ci0KLWZ1bmN0aW9uIGlzUmVzdWx0Q29ycmVjdChfYWN0dWFsLCBfZXhwZWN0ZWQp
Ci17Ci0gICAgaWYgKGFyZU51bWJlcnNFcXVhbChfYWN0dWFsLCBfZXhwZWN0ZWQpKQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAoX2V4cGVjdGVkCi0gICAgICAgICYmIChPYmplY3QucHJv
dG90eXBlLnRvU3RyaW5nLmNhbGwoX2V4cGVjdGVkKSA9PQotICAgICAgICAgICAgT2JqZWN0LnBy
b3RvdHlwZS50b1N0cmluZy5jYWxsKFtdKQotICAgICAgICAgICAgfHwgaXNUeXBlZEFycmF5KF9l
eHBlY3RlZCkpKQotICAgICAgICByZXR1cm4gYXJlQXJyYXlzRXF1YWwoX2FjdHVhbCwgX2V4cGVj
dGVkKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWZ1bmN0aW9uIHN0cmluZ2lmeSh2KQotewot
ICAgIGlmICh2ID09PSAwICYmIDEvdiA8IDApCi0gICAgICAgIHJldHVybiAiLTAiOwotICAgIGVs
c2UgaWYgKGlzVHlwZWRBcnJheSh2KSkKLSAgICAgICAgcmV0dXJuIHYuX19wcm90b19fLmNvbnN0
cnVjdG9yLm5hbWUgKyAiOlsiICsgQXJyYXkucHJvdG90eXBlLmpvaW4uY2FsbCh2LCAiLCIpICsg
Il0iOwotICAgIGVsc2UKLSAgICAgICAgcmV0dXJuICIiICsgdjsKLX0KLQotZnVuY3Rpb24gc2hv
dWxkQmUoX2EsIF9iKQotewotICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciIHx8IHR5cGVvZiBf
YiAhPSAic3RyaW5nIikKLSAgICBkZWJ1ZygiV0FSTjogc2hvdWxkQmUoKSBleHBlY3RzIHN0cmlu
ZyBhcmd1bWVudHMiKTsKLSAgdmFyIGV4Y2VwdGlvbjsKLSAgdmFyIF9hdjsKLSAgdHJ5IHsKLSAg
ICAgX2F2ID0gZXZhbChfYSk7Ci0gIH0gY2F0Y2ggKGUpIHsKLSAgICAgZXhjZXB0aW9uID0gZTsK
LSAgfQotICB2YXIgX2J2ID0gZXZhbChfYik7Ci0KLSAgaWYgKGV4Y2VwdGlvbikKLSAgICB0ZXN0
RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIHN0cmluZ2lmeShfYnYpICsgIi4gVGhyZXcgZXhj
ZXB0aW9uICIgKyBleGNlcHRpb24pOwotICBlbHNlIGlmIChpc1Jlc3VsdENvcnJlY3QoX2F2LCBf
YnYpKQotICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzICIgKyBfYik7Ci0gIGVsc2UgaWYgKHR5cGVv
ZihfYXYpID09IHR5cGVvZihfYnYpKQotICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSAi
ICsgc3RyaW5naWZ5KF9idikgKyAiLiBXYXMgIiArIHN0cmluZ2lmeShfYXYpICsgIi4iKTsKLSAg
ZWxzZQotICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSAiICsgc3RyaW5naWZ5KF9idikg
KyAiIChvZiB0eXBlICIgKyB0eXBlb2YgX2J2ICsgIikuIFdhcyAiICsgX2F2ICsgIiAob2YgdHlw
ZSAiICsgdHlwZW9mIF9hdiArICIpLiIpOwotfQotCi1mdW5jdGlvbiBkZmdTaG91bGRCZSh0aGVG
dW5jdGlvbiwgX2EsIF9iKQotewotICBpZiAodHlwZW9mIHRoZUZ1bmN0aW9uICE9ICJmdW5jdGlv
biIgfHwgdHlwZW9mIF9hICE9ICJzdHJpbmciIHx8IHR5cGVvZiBfYiAhPSAic3RyaW5nIikKLSAg
ICBkZWJ1ZygiV0FSTjogZGZnU2hvdWxkQmUoKSBleHBlY3RzIGEgZnVuY3Rpb24gYW5kIHR3byBz
dHJpbmdzIik7Ci0gIG5vSW5saW5lKHRoZUZ1bmN0aW9uKTsKLSAgdmFyIGV4Y2VwdGlvbjsKLSAg
dmFyIHZhbHVlcyA9IFtdOwotCi0gIC8vIERlZmVuZCBhZ2FpbnN0IHRlc3RzIHRoYXQgbXVjayB3
aXRoIG51bWVyaWMgcHJvcGVydGllcyBvbiBhcnJheS5wcm90b3R5cGUuCi0gIHZhbHVlcy5fX3By
b3RvX18gPSBudWxsOwotICB2YWx1ZXMucHVzaCA9IEFycmF5LnByb3RvdHlwZS5wdXNoOwotICAK
LSAgdHJ5IHsKLSAgICB3aGlsZSAoIWRmZ0NvbXBpbGVkKHtmOnRoZUZ1bmN0aW9ufSkpCi0gICAg
ICB2YWx1ZXMucHVzaChldmFsKF9hKSk7Ci0gICAgdmFsdWVzLnB1c2goZXZhbChfYSkpOwotICB9
IGNhdGNoIChlKSB7Ci0gICAgZXhjZXB0aW9uID0gZTsKLSAgfQotCi0gIHZhciBfYnYgPSBldmFs
KF9iKTsKLSAgaWYgKGV4Y2VwdGlvbikKLSAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUg
IiArIHN0cmluZ2lmeShfYnYpICsgIi4gT24gaXRlcmF0aW9uICIgKyAodmFsdWVzLmxlbmd0aCAr
IDEpICsgIiwgdGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOwotICBlbHNlIHsKLSAgICB2
YXIgYWxsUGFzc2VkID0gdHJ1ZTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5n
dGg7ICsraSkgewotICAgICAgdmFyIF9hdiA9IHZhbHVlc1tpXTsKLSAgICAgIGlmIChpc1Jlc3Vs
dENvcnJlY3QoX2F2LCBfYnYpKQotICAgICAgICBjb250aW51ZTsKLSAgICAgIGlmICh0eXBlb2Yo
X2F2KSA9PSB0eXBlb2YoX2J2KSkKLSAgICAgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJl
ICIgKyBzdHJpbmdpZnkoX2J2KSArICIuIE9uIGl0ZXJhdGlvbiAiICsgKGkgKyAxKSArICIsIHdh
cyAiICsgc3RyaW5naWZ5KF9hdikgKyAiLiIpOwotICAgICAgZWxzZQotICAgICAgICB0ZXN0RmFp
bGVkKF9hICsgIiBzaG91bGQgYmUgIiArIHN0cmluZ2lmeShfYnYpICsgIiAob2YgdHlwZSAiICsg
dHlwZW9mIF9idiArICIpLiBPbiBpdGVyYXRpb24gIiArIChpICsgMSkgKyAiLCB3YXMgIiArIF9h
diArICIgKG9mIHR5cGUgIiArIHR5cGVvZiBfYXYgKyAiKS4iKTsKLSAgICAgIGFsbFBhc3NlZCA9
IGZhbHNlOwotICAgIH0KLSAgICBpZiAoYWxsUGFzc2VkKQotICAgICAgdGVzdFBhc3NlZChfYSAr
ICIgaXMgIiArIF9iICsgIiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRp
ZXItdXAuIik7Ci0gIH0KLSAgCi0gIHJldHVybiB2YWx1ZXMubGVuZ3RoOwotfQotCi1mdW5jdGlv
biBzaG91bGRCZVR5cGUoX2EsIF90eXBlKSB7Ci0gIHZhciBleGNlcHRpb247Ci0gIHZhciBfYXY7
Ci0gIHRyeSB7Ci0gICAgX2F2ID0gZXZhbChfYSk7Ci0gIH0gY2F0Y2ggKGUpIHsKLSAgICBleGNl
cHRpb24gPSBlOwotICB9Ci0KLSAgdmFyIF90eXBldiA9IGV2YWwoX3R5cGUpOwotICBpZiAoX2F2
IGluc3RhbmNlb2YgX3R5cGV2KSB7Ci0gICAgdGVzdFBhc3NlZChfYSArICIgaXMgYW4gaW5zdGFu
Y2Ugb2YgIiArIF90eXBlKTsKLSAgfSBlbHNlIHsKLSAgICB0ZXN0RmFpbGVkKF9hICsgIiBpcyBu
b3QgYW4gaW5zdGFuY2Ugb2YgIiArIF90eXBlKTsKLSAgfQotfQotCi1mdW5jdGlvbiBzaG91bGRC
ZVRydWUoX2EpIHsgc2hvdWxkQmUoX2EsICJ0cnVlIik7IH0KLWZ1bmN0aW9uIHNob3VsZEJlRmFs
c2UoX2EpIHsgc2hvdWxkQmUoX2EsICJmYWxzZSIpOyB9Ci1mdW5jdGlvbiBzaG91bGRCZU5hTihf
YSkgeyBzaG91bGRCZShfYSwgIk5hTiIpOyB9Ci1mdW5jdGlvbiBzaG91bGRCZU51bGwoX2EpIHsg
c2hvdWxkQmUoX2EsICJudWxsIik7IH0KLQotZnVuY3Rpb24gc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KGEsIGIpCi17Ci0gIGlmICh0eXBlb2YgYSAhPT0gInN0cmluZyIgfHwgdHlwZW9mIGIgIT09ICJz
dHJpbmciKQotICAgIGRlYnVnKCJXQVJOOiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoKSBleHBlY3Rz
IHN0cmluZyBhcmd1bWVudHMiKTsKLSAgdmFyIHVuZXZhbGVkU3RyaW5nID0gSlNPTi5zdHJpbmdp
ZnkoYik7Ci0gIHNob3VsZEJlKGEsIHVuZXZhbGVkU3RyaW5nKTsKLX0KLQotZnVuY3Rpb24gc2hv
dWxkQmVVbmRlZmluZWQoX2EpCi17Ci0gIHZhciBleGNlcHRpb247Ci0gIHZhciBfYXY7Ci0gIHRy
eSB7Ci0gICAgIF9hdiA9IGV2YWwoX2EpOwotICB9IGNhdGNoIChlKSB7Ci0gICAgIGV4Y2VwdGlv
biA9IGU7Ci0gIH0KLQotICBpZiAoZXhjZXB0aW9uKQotICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNo
b3VsZCBiZSB1bmRlZmluZWQuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKLSAgZWxz
ZSBpZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIikKLSAgICB0ZXN0UGFzc2VkKF9hICsgIiBp
cyB1bmRlZmluZWQuIik7Ci0gIGVsc2UKLSAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUg
dW5kZWZpbmVkLiBXYXMgIiArIF9hdik7Ci19Ci0KLWZ1bmN0aW9uIHNob3VsZE5vdFRocm93KF9h
KSB7Ci0gICAgdHJ5IHsKLSAgICAgICAgZXZhbChfYSk7Ci0gICAgICAgIHRlc3RQYXNzZWQoX2Eg
KyAiIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLiIpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAg
ICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIG5vdCB0aHJvdyBleGNlcHRpb24uIFRocmV3IGV4
Y2VwdGlvbiAiICsgZSArICIuIik7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBzaG91bGRUaHJvdyhf
YSwgX2UpCi17Ci0gIHZhciBleGNlcHRpb247Ci0gIHZhciBfYXY7Ci0gIHRyeSB7Ci0gICAgIF9h
diA9IGV2YWwoX2EpOwotICB9IGNhdGNoIChlKSB7Ci0gICAgIGV4Y2VwdGlvbiA9IGU7Ci0gIH0K
LQotICB2YXIgX2V2OwotICBpZiAoX2UpCi0gICAgICBfZXYgPSAgZXZhbChfZSk7Ci0KLSAgaWYg
KGV4Y2VwdGlvbikgewotICAgIGlmICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgfHwgZXhjZXB0
aW9uID09IF9ldikKLSAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIHRocmV3IGV4Y2VwdGlvbiAiICsg
ZXhjZXB0aW9uICsgIi4iKTsKLSAgICBlbHNlCi0gICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91
bGQgdGhyb3cgIiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6
IF9ldikgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbiArICIuIik7Ci0gIH0gZWxz
ZSBpZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIikKLSAgICB0ZXN0RmFpbGVkKF9hICsgIiBz
aG91bGQgdGhyb3cgIiArICh0eXBlb2YgX2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9u
IiA6IF9ldikgKyAiLiBXYXMgdW5kZWZpbmVkLiIpOwotICBlbHNlCi0gICAgdGVzdEZhaWxlZChf
YSArICIgc2hvdWxkIHRocm93ICIgKyAodHlwZW9mIF9lID09ICJ1bmRlZmluZWQiID8gImFuIGV4
Y2VwdGlvbiIgOiBfZXYpICsgIi4gV2FzICIgKyBfYXYgKyAiLiIpOwotfQotCi1mdW5jdGlvbiBp
c1N1Y2Nlc3NmdWxseVBhcnNlZCgpCi17Ci0gICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGFuZCBv
bmx5IHJlcG9ydCB1bmV4cGVjdGVkIHN5bnRheCBlcnJvcnMuCi0gICAgaWYgKCFlcnJvck1lc3Nh
Z2UpCi0gICAgICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci0gICAgc2hvdWxkQmVUcnVl
KCJzdWNjZXNzZnVsbHlQYXJzZWQiKTsKLSAgICBpZiAoc2lsZW50VGVzdFBhc3MgJiYgZGlkUGFz
c1NvbWVUZXN0c1NpbGVudGx5KQotICAgICAgICBkZWJ1ZygiUGFzc2VkIHNvbWUgdGVzdHMgc2ls
ZW50bHkuIik7Ci0gICAgaWYgKHNpbGVudFRlc3RQYXNzICYmIGRpZEZhaWxTb21lVGVzdHMpCi0g
ICAgICAgIGRlYnVnKCJTb21lIHRlc3RzIGZhaWxlZC4iKTsKLSAgICBkZWJ1ZygiXG5URVNUIENP
TVBMRVRFXG4iKTsKLX0KLQotCi1mdW5jdGlvbiBkZmdDb21waWxlZChhcmd1bWVudCkKLXsKLSAg
ICB2YXIgbnVtYmVyT2ZDb21waWxlcyA9ICJjb21waWxlcyIgaW4gYXJndW1lbnQgPyBhcmd1bWVu
dC5jb21waWxlcyA6IDE7Ci0gICAgCi0gICAgaWYgKCEoImYiIGluIGFyZ3VtZW50KSkKLSAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJkZmdDb21waWxlZCBjYWxsZWQgd2l0aCBpbnZhbGlkIGFyZ3Vt
ZW50LiIpOwotICAgIAotICAgIGlmIChhcmd1bWVudC5mIGluc3RhbmNlb2YgQXJyYXkpIHsKLSAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudC5mLmxlbmd0aDsgKytpKSB7Ci0gICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci5udW1iZXJPZkRGR0NvbXBpbGVzKGFyZ3VtZW50LmZbaV0p
IDwgbnVtYmVyT2ZDb21waWxlcykKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBpZiAodGVzdFJ1bm5lci5udW1iZXJPZkRGR0Nv
bXBpbGVzKGFyZ3VtZW50LmYpIDwgbnVtYmVyT2ZDb21waWxlcykKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICB9Ci0gICAgCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWZ1bmN0aW9uIGRm
Z0luY3JlbWVudChhcmd1bWVudCkKLXsKLSAgICBpZiAoIXNlbGYudGVzdFJ1bm5lcikKLSAgICAg
ICAgcmV0dXJuIGFyZ3VtZW50Lmk7Ci0gICAgCi0gICAgaWYgKGFyZ3VtZW50LmkgPCBhcmd1bWVu
dC5uKQotICAgICAgICByZXR1cm4gYXJndW1lbnQuaTsKLSAgICAKLSAgICBpZiAoZGlkRmFpbFNv
bWVUZXN0cykKLSAgICAgICAgcmV0dXJuIGFyZ3VtZW50Lmk7Ci0gICAgCi0gICAgaWYgKCFkZmdD
b21waWxlZChhcmd1bWVudCkpCi0gICAgICAgIHJldHVybiAic3RhcnQiIGluIGFyZ3VtZW50ID8g
YXJndW1lbnQuc3RhcnQgOiAwOwotICAgIAotICAgIHJldHVybiBhcmd1bWVudC5pOwotfQotCi1m
dW5jdGlvbiBub0lubGluZSh0aGVGdW5jdGlvbikKLXsKLSAgICBpZiAoIXNlbGYudGVzdFJ1bm5l
cikKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIHRlc3RSdW5uZXIubmV2ZXJJbmxpbmVGdW5j
dGlvbih0aGVGdW5jdGlvbik7Ci19Ci0KLWZ1bmN0aW9uIGZpbmlzaEpTVGVzdCgpCi17Ci0gICAg
aXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKLSAgICBpZiAoZGlkRmFpbFNvbWVUZXN0cykKLSAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJTb21lIFRlc3RzIEZhaWxlZCIpOwotfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMvdHlwZWRhcnJheS10
ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2NkMTc0YjA3MjA0ZmMzMTI0YzZlOGVkMjFiY2ZmNjJj
ZDIwMjVhZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Jlc291cmNlcy90eXBlZGFycmF5LXRl
c3QtaGVscGVyLWZ1bmN0aW9ucy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEwMyArMCwwIEBACi1s
b2FkKCIuL3Jlc291cmNlcy9zdGFuZGFsb25lLXByZS5qcyIpOwotCi12YXIgdHlwZWRBcnJheXMg
PSBbSW50OEFycmF5LCBVaW50OEFycmF5LCBVaW50OENsYW1wZWRBcnJheSwgSW50MTZBcnJheSwg
VWludDE2QXJyYXksIEludDMyQXJyYXksIFVpbnQzMkFycmF5LCBGbG9hdDMyQXJyYXksIEZsb2F0
NjRBcnJheV07Ci0KLXZhciBzaWduZWRBcnJheXMgPSBbSW50OEFycmF5LCBJbnQxNkFycmF5LCBJ
bnQzMkFycmF5LCBGbG9hdDMyQXJyYXksIEZsb2F0NjRBcnJheV07Ci0KLXZhciBmbG9hdEFycmF5
cyA9IFtGbG9hdDMyQXJyYXksIEZsb2F0NjRBcnJheV07Ci0KLWZ1bmN0aW9uIGZvckVhY2hUeXBl
ZEFycmF5KGNvbnN0cnVjdG9ycywgdGVzdEZ1bmN0aW9uIC8qICwgaW5pdGlhbFZhbHVlcyAqLyAp
IHsKLSAgICBsZXQgaW5pdGlhbFZhbHVlcyA9IGFyZ3VtZW50c1syXTsKLSAgICBmb3IgKGxldCBp
ID0gMDsgaSA8IGNvbnN0cnVjdG9ycy5sZW5ndGg7ICsraSkgewotICAgICAgICBsZXQgdHlwZWRB
cnJheSA9IGNvbnN0cnVjdG9yc1tpXTsKLQotICAgICAgICBsZXQgYXJyYXk7Ci0gICAgICAgIGlm
IChpbml0aWFsVmFsdWVzKSB7Ci0gICAgICAgICAgICBhcnJheSA9IG5ldyB0eXBlZEFycmF5KGlu
aXRpYWxWYWx1ZXMpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGFycmF5ID0gbmV3IHR5
cGVkQXJyYXkoKTsKLQotICAgICAgICBsZXQgdGVzdFJlc3VsdCA9IHRlc3RGdW5jdGlvbihhcnJh
eSwgdHlwZWRBcnJheSkKLSAgICAgICAgaWYgKHRlc3RSZXN1bHQgIT09IHRydWUpCi0gICAgICAg
ICAgICByZXR1cm4gdGVzdFJlc3VsdDsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQot
ZnVuY3Rpb24gaXNTYW1lRnVuY3Rpb25Gb3JFYWNoVHlwZWRBcnJheVByb3RvdHlwZShuYW1lKSB7
Ci0gICAgZnVuY3Rpb24gZXEoYXJyYXkpIHsgcmV0dXJuIGFycmF5W25hbWVdID09PSBJbnQzMkFy
cmF5LnByb3RvdHlwZVtuYW1lXTsgfQotICAgIHJldHVybiBmb3JFYWNoVHlwZWRBcnJheSh0eXBl
ZEFycmF5cywgZXEpOwotfQotCi1mdW5jdGlvbiBoYXNTYW1lVmFsdWVzKG1zZywgYXJyYXkxLCBh
cnJheTIpIHsKLSAgICBpZiAoYXJyYXkxLmxlbmd0aCAhPT0gYXJyYXkyLmxlbmd0aCkgewotICAg
ICAgICBkZWJ1Zyhtc2cgKyAgIiBmaXJzdCBhcnJheTogIiArIGFycmF5MSArICIgc2Vjb25kIGFy
cmF5OiAiICsgYXJyYXkyKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIGxl
dCBhbGxTYW1lID0gdHJ1ZTsKLSAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5MS5sZW5ndGg7
ICsraSkgewotICAgICAgICBhbGxTYW1lID0gYWxsU2FtZSAmJiBPYmplY3QuaXMoYXJyYXkxW2ld
LCBhcnJheTJbaV0pOwotICAgIH0KLQotICAgIGlmICghYWxsU2FtZSkKLSAgICAgICAgZGVidWco
bXNnICsgICIgZmlyc3QgYXJyYXk6ICIgKyBhcnJheTEgKyAiIHNlY29uZCBhcnJheTogIiArIGFy
cmF5Mik7Ci0gICAgcmV0dXJuIGFsbFNhbWU7Ci0KLX0KLQotZnVuY3Rpb24gdGVzdFByb3RvdHlw
ZUZ1bmN0aW9uSGVscGVyKGNvbnN0cnVjdG9ycywgbmFtZSwgYXJncywgaW5pdCwgcmVzdWx0LCBl
eHBlY3RlZEFycmF5KSB7Ci0KLSAgICBmdW5jdGlvbiBmb28oYXJyYXksIGNvbnN0cnVjdG9yKSB7
Ci0gICAgICAgIGxldCByZXMgPSBldmFsKCJhcnJheS4iICsgbmFtZSArIGFyZ3MpOwotCi0gICAg
ICAgIGlmIChleHBlY3RlZEFycmF5KSB7Ci0gICAgICAgICAgICBpZiAoIWhhc1NhbWVWYWx1ZXMo
ImFycmF5IGRpZCBub3QgY2hhbmdlIGNvcnJlY3RseSBvbiAiICsgY29uc3RydWN0b3IgKyAiLCIs
IGFycmF5LCBleHBlY3RlZEFycmF5KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgIH0KLQotICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gIm9iamVjdCIpCi0gICAg
ICAgICAgICByZXR1cm4gaGFzU2FtZVZhbHVlcyhuYW1lICsgIiByZXR1cm5lZCB0aGUgd3Jvbmcg
cmVzdWx0IG9uICIgKyBjb25zdHJ1Y3RvciArICIsIiwgcmVzLCByZXN1bHQpOwotICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIGlmIChyZXMgIT09IHJlc3VsdCkgewotICAgICAgICAgICAgICAg
IGRlYnVnKG5hbWUgKyAiIHJldHVybmVkIHRoZSB3cm9uZyByZXN1bHQgb24gIiArIGNvbnN0cnVj
dG9yICsgIiwgcmV0dXJuZWQ6ICIgKyByZXMgKyAiIGJ1dCBleHBlY3RlZDogIiArIHJlc3VsdCk7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gZm9yRWFjaFR5
cGVkQXJyYXkoY29uc3RydWN0b3JzLCBmb28sIGluaXQpOwotfQotCi1mdW5jdGlvbiB0ZXN0UHJv
dG90eXBlRnVuY3Rpb25PblNpZ25lZChuYW1lLCBhcmdzLCBpbml0LCByZXN1bHQgLyogZXhwZWN0
ZWRBcnJheSAqLykgewotICAgIHJldHVybiB0ZXN0UHJvdG90eXBlRnVuY3Rpb25IZWxwZXIoc2ln
bmVkQXJyYXlzLCBuYW1lLCBhcmdzLCBpbml0LCByZXN1bHQsIGFyZ3VtZW50c1s0XSk7Ci19Ci0K
LWZ1bmN0aW9uIHRlc3RQcm90b3R5cGVGdW5jdGlvbk9uRmxvYXQobmFtZSwgYXJncywgaW5pdCwg
cmVzdWx0IC8qIGV4cGVjdGVkQXJyYXkgKi8pIHsKLSAgICByZXR1cm4gdGVzdFByb3RvdHlwZUZ1
bmN0aW9uSGVscGVyKGZsb2F0QXJyYXlzLCBuYW1lLCBhcmdzLCBpbml0LCByZXN1bHQsIGFyZ3Vt
ZW50c1s0XSk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RQcm90b3R5cGVGdW5jdGlvbihuYW1lLCBhcmdz
LCBpbml0LCByZXN1bHQgLyogZXhwZWN0ZWRBcnJheSAqLykgewotICAgIHJldHVybiB0ZXN0UHJv
dG90eXBlRnVuY3Rpb25IZWxwZXIodHlwZWRBcnJheXMsIG5hbWUsIGFyZ3MsIGluaXQsIHJlc3Vs
dCwgYXJndW1lbnRzWzRdKTsKLX0KLQotZnVuY3Rpb24gdGVzdFByb3RvdHlwZVJlY2VpdmVzQXJy
YXkobmFtZSwgdGhpc1ZhbHVlcykgewotICAgIGZ1bmN0aW9uIHRlc3RlciAoYXJyYXksIGNvbnN0
cnVjdG9yKSB7Ci0gICAgICAgIHZhciBwYXNzZWQgPSB0cnVlOwotICAgICAgICBmb3IgKHZhciB0
aGlzVmFsdWUgb2YgdGhpc1ZhbHVlcykgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAg
ICAgICBldmFsKCJhcnJheS4iICsgbmFtZSkuY2FsbCh0aGlzVmFsdWUpOwotICAgICAgICAgICAg
ICAgIHBhc3NlZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGRlYnVnKCJkaWQgbm90IHRocm93
IGFuIGVycm9yIHdoZW4gZ2l2ZW4gYW4gaW52YWxpZCB8dGhpc3wgb24gIiArIGNvbnN0cnVjdG9y
KTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge30KLQotICAgICAgICB9Ci0KLSAgICAgICAg
cmV0dXJuIHBhc3NlZDsKLSAgICB9Ci0KLSAgICByZXR1cm4gZm9yRWFjaFR5cGVkQXJyYXkodHlw
ZWRBcnJheXMsIHRlc3Rlcik7Ci19Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1jb3B5V2l0aGluLmpzIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWNvcHlXaXRoaW4uanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGU1ZTc5YWEwZTYwOTYxYjBhYTRlNTUwMDI3NjQ3ZGVkMmFhYWRk
ODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWNvcHlXaXRoaW4uanMKKysr
IC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5
LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOwotZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVj
a3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluIGZ1
bmN0aW9uIik7Ci0KLQotc2hvdWxkQmUoIkludDMyQXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4u
bGVuZ3RoIiwgIjIiKTsKLXNob3VsZEJlKCJJbnQzMkFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGlu
Lm5hbWUiLCAiJ2NvcHlXaXRoaW4nIik7Ci0KLXNob3VsZEJlVHJ1ZSgiaXNTYW1lRnVuY3Rpb25G
b3JFYWNoVHlwZWRBcnJheVByb3RvdHlwZSgnY29weVdpdGhpbicpIik7Ci1zaG91bGRCZVRydWUo
InRlc3RQcm90b3R5cGVSZWNlaXZlc0FycmF5KCdjb3B5V2l0aGluJywgW3VuZGVmaW5lZCwgdGhp
cywgeyB9LCBbIF0sIHRydWUsICcnXSkiKTsKLQotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBl
RnVuY3Rpb24oJ2NvcHlXaXRoaW4nLCAnKDAsIDMpJywgWzEsIDIsIDMsIDQsIDVdLCBbNCwgNSwg
MywgNCwgNV0pIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignY29weVdp
dGhpbicsICcoMCwgMywgNCknLCBbMSwgMiwgMywgNCwgNV0sIFs0LCAyLCAzLCA0LCA1XSkiKTsK
LXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdjb3B5V2l0aGluJywgJygwLCAt
MiwgLTEpJywgWzEsIDIsIDMsIDQsIDVdLCBbNCwgMiwgMywgNCwgNV0pIik7Ci1zaG91bGRCZVRy
dWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignY29weVdpdGhpbicsICcoNSwgLTUsIDUpJywgWzEs
IDIsIDMsIDQsIDVdLCBbMSwgMiwgMywgNCwgNV0pIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90
b3R5cGVGdW5jdGlvbignY29weVdpdGhpbicsICcoMSwgLTUsIDUpJywgWzEsIDIsIDMsIDQsIDVd
LCBbMSwgMSwgMiwgMywgNF0pIik7Ci1maW5pc2hKU1Rlc3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1ldmVyeS5qcyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1ldmVyeS5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjdiZjU4ZDNmOTk3Y2RhMWEzNDcyYjUyZjU4YjY3YTI1
ZThiYmY2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZXZlcnkuanMKKysr
IC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5
LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOwotZGVzY3JpcHRpb24oCi0iVGhpcyB0ZXN0IGNo
ZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLmV2ZXJ5IGZ1bmN0
aW9uIgotKTsKLQotc2hvdWxkQmUoIkludDMyQXJyYXkucHJvdG90eXBlLmV2ZXJ5Lmxlbmd0aCIs
ICIxIik7Ci1zaG91bGRCZSgiSW50MzJBcnJheS5wcm90b3R5cGUuZXZlcnkubmFtZSIsICInZXZl
cnknIik7Ci1zaG91bGRCZVRydWUoImlzU2FtZUZ1bmN0aW9uRm9yRWFjaFR5cGVkQXJyYXlQcm90
b3R5cGUoJ2V2ZXJ5JykiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZVJlY2VpdmVzQXJy
YXkoJ2V2ZXJ5JywgW3VuZGVmaW5lZCwgdGhpcywgeyB9LCBbIF0sIHRydWUsICcnXSkiKTsKLWRl
YnVnKCIiKTsKLQotZGVidWcoInRlc3RQcm90b3R5cGVGdW5jdGlvbiBoYXMgdGhlIGZvbGxvd2lu
ZyBhcmcgbGlzdCAobmFtZSwgYXJncywgaW5pdCwgcmVzdWx0IFsgLCBleHBlY3RlZEFycmF5IF0p
Iik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCIxLjAgU2luZ2xlIEFyZ3VtZW50IFRlc3RpbmciKTsK
LWZ1bmN0aW9uIGlzQmlnRW5vdWdoKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgewotICAgIGlmICh0
aGlzLnZhbHVlKQotICAgICAgICByZXR1cm4gZWxlbWVudCA+PSB0aGlzLnZhbHVlOwotICAgIHJl
dHVybiBlbGVtZW50ID49IDEwOwotfQotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rp
b24oJ2V2ZXJ5JywgJyhpc0JpZ0Vub3VnaCknLCBbMTIsIDUsIDgsIDEzLCA0NF0sIGZhbHNlKSIp
Owotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2V2ZXJ5JywgJyhpc0JpZ0Vu
b3VnaCknLCBbMTIsIDU0LCAxOCwgMTMsIDQ0XSwgdHJ1ZSkiKTsKLWRlYnVnKCIiKTsKLQotZGVi
dWcoIjIuMCBUd28gQXJndW1lbnQgVGVzdGluZyIpOwotdmFyIHRoaXNWYWx1ZSA9IHsgdmFsdWU6
IDExIH07Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZXZlcnknLCAnKGlz
QmlnRW5vdWdoLCB0aGlzVmFsdWUpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIpOwot
c2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2V2ZXJ5JywgJyhpc0JpZ0Vub3Vn
aCwgdGhpc1ZhbHVlKScsIFsxMiwgNTQsIDgyLCAxMywgNDRdLCB0cnVlKSIpOwotZGVidWcoIiIp
OwotCi1kZWJ1ZygiMy4wIEFycmF5IEVsZW1lbnQgQ2hhbmdpbmciKTsKLWZ1bmN0aW9uIGlzQmln
RW5vdWdoQW5kQ2hhbmdlKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgewotICAgIGFycmF5W2FycmF5
Lmxlbmd0aCAtIDEgLSBpbmRleF0gPSA1OwotICAgIHJldHVybiAoZWxlbWVudCA+PSAxMCk7Ci19
Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZXZlcnknLCAnKGlzQmlnRW5v
dWdoQW5kQ2hhbmdlKScsIFsxMiwgMTUsIDEsIDEzLCA0NF0sIGZhbHNlLCBbMTIsIDE1LCA1LCA1
LCA1XSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdldmVyeScsICco
aXNCaWdFbm91Z2hBbmRDaGFuZ2UpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlLCBbMTIs
IDUsIDUsIDUsIDVdKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiNC4wIEV4Y2VwdGlvbiBUZXN0
Iik7Ci1mdW5jdGlvbiBpc0JpZ0Vub3VnaEFuZEV4Y2VwdGlvbihlbGVtZW50LCBpbmRleCwgYXJy
YXkpIHsKLSAgICBpZihpbmRleD09MSkgdGhyb3cgImV4Y2VwdGlvbiBmcm9tIGZ1bmN0aW9uIjsK
LSAgICByZXR1cm4gKGVsZW1lbnQgPj0gMTApOwotfQotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5
cGVGdW5jdGlvbignZXZlcnknLCAnKGlzQmlnRW5vdWdoQW5kRXhjZXB0aW9uKScsIFsxMiwgMTUs
IDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjUuMCBXcm9uZyBU
eXBlIGZvciBDYWxsYmFjayBUZXN0Iik7Ci1zaG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0
aW9uKCdldmVyeScsICcoOCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1zaG91
bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdldmVyeScsICcoXCJ3cm9uZ1wiKScsIFsx
MiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLXNob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBl
RnVuY3Rpb24oJ2V2ZXJ5JywgJyhuZXcgT2JqZWN0KCkpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0s
IGZhbHNlKSIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZXZlcnknLCAn
KG51bGwpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIpOwotc2hvdWxkVGhyb3coInRl
c3RQcm90b3R5cGVGdW5jdGlvbignZXZlcnknLCAnKCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwg
ZmFsc2UpIik7Ci1kZWJ1ZygiIik7Ci0KLWZpbmlzaEpTVGVzdCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbGwuanMgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmlsbC5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzJjNWQwODViZTJiNzU2N2NhZmE4ZTdkMjZkNWFkNDEw
OWNjYzc3MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmlsbC5qcworKysg
L2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXkt
dGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Ci1kZXNjcmlwdGlvbigKLSJUaGlzIHRlc3QgY2hl
Y2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuZmlsbCBmdW5jdGlv
biIKLSk7Ci0KLXNob3VsZEJlKCJJbnQzMkFycmF5LnByb3RvdHlwZS5maWxsLmxlbmd0aCIsICIx
Iik7Ci1zaG91bGRCZSgiSW50MzJBcnJheS5wcm90b3R5cGUuZmlsbC5uYW1lIiwgIidmaWxsJyIp
Owotc2hvdWxkQmVUcnVlKCJpc1NhbWVGdW5jdGlvbkZvckVhY2hUeXBlZEFycmF5UHJvdG90eXBl
KCdmaWxsJykiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZVJlY2VpdmVzQXJyYXkoJ2Zp
bGwnLCBbdW5kZWZpbmVkLCB0aGlzLCB7IH0sIFsgXSwgdHJ1ZSwgJyddKSIpOwotZGVidWcoIiIp
OwotCi1kZWJ1ZygidGVzdFByb3RvdHlwZUZ1bmN0aW9uIGhhcyB0aGUgZm9sbG93aW5nIGFyZyBs
aXN0IChuYW1lLCBhcmdzLCBpbml0LCByZXN1bHQgWyAsIGV4cGVjdGVkQXJyYXkgXSkiKTsKLWRl
YnVnKCIiKTsKLQotZGVidWcoIjEuMCBTaW5nbGUgQXJndW1lbnQgVGVzdGluZyIpOwotc2hvdWxk
QmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbGwnLCAnKDEyKScsIFsxNSwgNSwgOCwg
MTMsIDQ0XSwgWzEyLDEyLDEyLDEyLDEyXSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlw
ZUZ1bmN0aW9uKCdmaWxsJywgJyh0cnVlKScsIFsxMiwgNTQsIDE4LCAxMywgNDRdLCBbMSwxLDEs
MSwxXSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjIuMCBUd28gQXJndW1lbnQgVGVzdGluZyIp
Owotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbGwnLCAnKDEyLCAyKScs
IFsxNCwgMTUsIDEwLCAxMywgNDRdLCBbMTQsIDE1LCAxMiwgMTIsIDEyXSkiKTsKLXNob3VsZEJl
VHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaWxsJywgJyg0LCBOYU4pJywgWzE0LCAxNSwg
MTAsIDEzLCA0NF0sIFs0LCA0LCA0LCA0LCA0XSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3Rv
dHlwZUZ1bmN0aW9uKCdmaWxsJywgJyg0LCAtNSknLCBbMTQsIDE1LCAxMCwgMTMsIDQ0XSwgWzQs
IDQsIDQsIDQsIDRdKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2Zp
bGwnLCAnKDQsIC0xKScsIFsxNCwgMTUsIDEwLCAxMywgNDRdLCBbMTQsIDE1LCAxMCwgMTMsIDRd
KSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiMy4wIFRocmVlIEFyZ3VtZW50IFRlc3RpbmciKTsK
LXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaWxsJywgJyg0LCAtMSwgMCkn
LCBbMTQsIDE1LCAxMCwgMTMsIDQ0XSwgWzE0LCAxNSwgMTAsIDEzLCA0NF0pIik7Ci1zaG91bGRC
ZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmlsbCcsICcoNCwgMSwgMSknLCBbMTQsIDE1
LCAxMCwgMTMsIDQ0XSwgWzE0LCAxNSwgMTAsIDEzLCA0NF0pIik7Ci1zaG91bGRCZVRydWUoInRl
c3RQcm90b3R5cGVGdW5jdGlvbignZmlsbCcsICcoNCwgMSwgTmFOKScsIFsxNCwgMTUsIDEwLCAx
MywgNDRdLCBbMTQsIDE1LCAxMCwgMTMsIDQ0XSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3Rv
dHlwZUZ1bmN0aW9uKCdmaWxsJywgJyg0LCBOYU4sIE5hTiknLCBbMTQsIDE1LCAxMCwgMTMsIDQ0
XSwgWzE0LCAxNSwgMTAsIDEzLCA0NF0pIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVG
dW5jdGlvbignZmlsbCcsICcoNCwgTmFOLCA1KScsIFsxNCwgMTUsIDEwLCAxMywgNDRdLCBbNCwg
NCwgNCwgNCwgNF0pIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmls
bCcsICcoNCwgLTMsIC0yKScsIFsxNCwgMTUsIDEwLCAxMywgNDRdLCBbMTQsIDE1LCA0LCAxMywg
NDRdKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbGwnLCAnKDQs
IDUsIDUpJywgWzE0LCAxNSwgMTAsIDEzLCA0NF0sIFsxNCwgMTUsIDEwLCAxMywgNDRdKSIpOwot
ZmluaXNoSlNUZXN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3R5cGVkYXJyYXktZmlsdGVyLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy90eXBlZGFycmF5LWZpbHRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZGE5ZWRhOTgxNzliZDcwMTMxN2Y2ZDQ0MDA0MWVkNTc2MzQ2ZmFjOS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmlsdGVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNTEg
KzAsMCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlv
bnMuanMiKTsKLWRlc2NyaXB0aW9uKAotIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9m
IHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5maWx0ZXIgZnVuY3Rpb24iCi0pOwotCi1zaG91bGRC
ZSgiSW50MzJBcnJheS5wcm90b3R5cGUuZmlsdGVyLmxlbmd0aCIsICIxIik7Ci1zaG91bGRCZSgi
SW50MzJBcnJheS5wcm90b3R5cGUuZmlsdGVyLm5hbWUiLCAiJ2ZpbHRlciciKTsKLXNob3VsZEJl
VHJ1ZSgiaXNTYW1lRnVuY3Rpb25Gb3JFYWNoVHlwZWRBcnJheVByb3RvdHlwZSgnZmlsdGVyJyki
KTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZVJlY2VpdmVzQXJyYXkoJ2ZpbHRlcicsIFt1
bmRlZmluZWQsIHRoaXMsIHsgfSwgWyBdLCB0cnVlLCAnJ10pIik7Ci1kZWJ1ZygiIik7Ci0KLWRl
YnVnKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24gaGFzIHRoZSBmb2xsb3dpbmcgYXJnIGxpc3QgKG5h
bWUsIGFyZ3MsIGluaXQsIHJlc3VsdCBbICwgZXhwZWN0ZWRBcnJheSBdKSIpOwotZGVidWcoIiIp
OwotCi1kZWJ1ZygiMS4wIFNpbmdsZSBBcmd1bWVudCBUZXN0aW5nIik7Ci1mdW5jdGlvbiBrZWVw
RXZlbihlLCBpKSB7Ci0gICAgcmV0dXJuICEoZSAmIDEpIHx8ICh0aGlzLmtlZXAgPyB0aGlzLmtl
ZXAuaW5kZXhPZihpKSA+PSAwIDogZmFsc2UpOwotfQotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90
eXBlRnVuY3Rpb24oJ2ZpbHRlcicsICcoa2VlcEV2ZW4pJywgWzEyLCA1LCA4LCAxMywgNDRdLCBb
MTIsIDgsIDQ0XSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaWx0
ZXInLCAnKGtlZXBFdmVuKScsIFsxMSwgNTQsIDE4LCAxMywgMV0sIFs1NCwgMThdKSIpOwotZGVi
dWcoIiIpOwotCi1kZWJ1ZygiMi4wIFR3byBBcmd1bWVudCBUZXN0aW5nIik7Ci12YXIgdGhpc1Zh
bHVlID0geyBrZWVwOiBbMSwgM10gfTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0
aW9uKCdmaWx0ZXInLCAnKGtlZXBFdmVuLCB0aGlzVmFsdWUpJywgWzEyLCAyMywgMTEsIDEsIDQ1
XSwgWzEyLCAyMywgMV0pIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCIzLjAgQXJyYXkgRWxlbWVu
dCBDaGFuZ2luZyIpOwotZnVuY3Rpb24ga2VlcEV2ZW5BbmRDaGFuZ2UoZSwgaSwgYSkgewotICAg
IGFbYS5sZW5ndGggLSAxIC0gaV0gPSA1OwotICAgIHJldHVybiAhKGUgJiAxKTsKLX0KLXNob3Vs
ZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaWx0ZXInLCAnKGtlZXBFdmVuQW5kQ2hh
bmdlKScsIFsxMiwgMTUsIDIsIDEzLCA0NF0sIFsxMiwgMl0sIFs1LCA1LCA1LCA1LCA1XSkiKTsK
LWRlYnVnKCIiKTsKLQotZGVidWcoIjQuMCBFeGNlcHRpb24gVGVzdCIpOwotZnVuY3Rpb24gaXNC
aWdFbm91Z2hBbmRFeGNlcHRpb24oZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7Ci0gICAgaWYoaW5k
ZXg9PTEpIHRocm93ICJleGNlcHRpb24gZnJvbSBmdW5jdGlvbiI7Ci0gICAgcmV0dXJuIChlbGVt
ZW50ID49IDEwKTsKLX0KLXNob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbHRl
cicsICcoaXNCaWdFbm91Z2hBbmRFeGNlcHRpb24pJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZh
bHNlKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiNS4wIFdyb25nIFR5cGUgZm9yIENhbGxiYWNr
IFRlc3QiKTsKLXNob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbHRlcicsICco
OCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1zaG91bGRUaHJvdygidGVzdFBy
b3RvdHlwZUZ1bmN0aW9uKCdmaWx0ZXInLCAnKFwid3JvbmdcIiknLCBbMTIsIDE1LCAxMCwgMTMs
IDQ0XSwgZmFsc2UpIik7Ci1zaG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaWx0
ZXInLCAnKG5ldyBPYmplY3QoKSknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1z
aG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaWx0ZXInLCAnKG51bGwpJywgWzEy
LCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVG
dW5jdGlvbignZmlsdGVyJywgJygpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIpOwot
ZGVidWcoIiIpOwotZmluaXNoSlNUZXN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmluZC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maW5kLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjOTBkMmZkODU4ZjM5YjY1Yjk3NWQ3Y2FmNDA1MDBkMmE0ZDRiOWUzLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maW5kLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsNTMgKzAsMCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1m
dW5jdGlvbnMuanMiKTsKLWRlc2NyaXB0aW9uKAotIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2
aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5maW5kIGZ1bmN0aW9uIgotKTsKLQotc2hv
dWxkQmUoIkludDMyQXJyYXkucHJvdG90eXBlLmZpbmQubGVuZ3RoIiwgIjEiKTsKLXNob3VsZEJl
KCJJbnQzMkFycmF5LnByb3RvdHlwZS5maW5kLm5hbWUiLCAiJ2ZpbmQnIik7Ci1zaG91bGRCZVRy
dWUoImlzU2FtZUZ1bmN0aW9uRm9yRWFjaFR5cGVkQXJyYXlQcm90b3R5cGUoJ2ZpbmQnKSIpOwot
c2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlUmVjZWl2ZXNBcnJheSgnZmluZCcsIFt1bmRlZmlu
ZWQsIHRoaXMsIHsgfSwgWyBdLCB0cnVlLCAnJ10pIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCJ0
ZXN0UHJvdG90eXBlRnVuY3Rpb24gaGFzIHRoZSBmb2xsb3dpbmcgYXJnIGxpc3QgKG5hbWUsIGFy
Z3MsIGluaXQsIHJlc3VsdCBbICwgZXhwZWN0ZWRBcnJheSBdKSIpOwotZGVidWcoIiIpOwotCi1k
ZWJ1ZygiMS4wIFNpbmdsZSBBcmd1bWVudCBUZXN0aW5nIik7Ci1mdW5jdGlvbiBrZWVwRXZlbihl
LCBpKSB7Ci0gICAgcmV0dXJuICEoZSAmIDEpIHx8ICh0aGlzLmtlZXAgPyB0aGlzLmtlZXAgPT09
IGkgOiBmYWxzZSk7Ci19Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmlu
ZCcsICcoa2VlcEV2ZW4pJywgWzEyLCA1LCA4LCAxMywgNDRdLCAxMikiKTsKLXNob3VsZEJlVHJ1
ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kJywgJyhrZWVwRXZlbiknLCBbMTEsIDEzLCAx
NywgMTMsIDIyXSwgMjIpIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbign
ZmluZCcsICcoa2VlcEV2ZW4pJywgWzExLCAxMywgMTcsIDEzLCAxMV0sIHVuZGVmaW5lZCkiKTsK
LWRlYnVnKCIiKTsKLQotZGVidWcoIjIuMCBUd28gQXJndW1lbnQgVGVzdGluZyIpOwotdmFyIHRo
aXNWYWx1ZSA9IHsga2VlcDogMyB9Owotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rp
b24oJ2ZpbmQnLCAnKGtlZXBFdmVuLCB0aGlzVmFsdWUpJywgWzExLCAyMywgMTEsIDEsIDQ0XSwg
MSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjMuMCBBcnJheSBFbGVtZW50IENoYW5naW5nIik7
Ci1mdW5jdGlvbiBrZWVwRXZlbkFuZENoYW5nZShlLCBpLCBhKSB7Ci0gICAgYVthLmxlbmd0aCAt
IDEgLSBpXSA9IDU7Ci0gICAgcmV0dXJuICEoZSAmIDEpOwotfQotc2hvdWxkQmVUcnVlKCJ0ZXN0
UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmQnLCAnKGtlZXBFdmVuQW5kQ2hhbmdlKScsIFsxMSwgMTUs
IDMsIDEyLCA0NF0sIHVuZGVmaW5lZCwgWzUsIDUsIDUsIDUsIDVdKSIpOwotZGVidWcoIiIpOwot
Ci1kZWJ1ZygiNC4wIEV4Y2VwdGlvbiBUZXN0Iik7Ci1mdW5jdGlvbiBpc0JpZ0Vub3VnaEFuZEV4
Y2VwdGlvbihlbGVtZW50LCBpbmRleCwgYXJyYXkpIHsKLSAgICBpZihpbmRleD09MSkgdGhyb3cg
ImV4Y2VwdGlvbiBmcm9tIGZ1bmN0aW9uIjsKLSAgICByZXR1cm4gKGVsZW1lbnQgPj0gMTApOwot
fQotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmQnLCAnKGlzQmlnRW5v
dWdoQW5kRXhjZXB0aW9uKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCAxMikiKTsKLXNob3VsZFRo
cm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmQnLCAnKGlzQmlnRW5vdWdoQW5kRXhjZXB0
aW9uKScsIFs5LCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1
ZygiNS4wIFdyb25nIFR5cGUgZm9yIENhbGxiYWNrIFRlc3QiKTsKLXNob3VsZFRocm93KCJ0ZXN0
UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmQnLCAnKDgpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZh
bHNlKSIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZCcsICcoXCJ3
cm9uZ1wiKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLXNob3VsZFRocm93KCJ0
ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmQnLCAnKG5ldyBPYmplY3QoKSknLCBbMTIsIDE1LCAx
MCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1zaG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9u
KCdmaW5kJywgJyhudWxsKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLXNob3Vs
ZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmQnLCAnKCknLCBbMTIsIDE1LCAxMCwg
MTMsIDQ0XSwgZmFsc2UpIik7Ci1kZWJ1ZygiIik7Ci1maW5pc2hKU1Rlc3QoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maW5kSW5k
ZXguanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmlu
ZEluZGV4LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NDVkM2MzYjM3N2JhN2Yy
MTY4NmE2NzJhOTAzNDdkMjcwMTZiMDI4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1maW5kSW5kZXguanMKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi1sb2FkKCIu
L3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOwotZGVzY3Jp
cHRpb24oCi0iVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXku
cHJvdG90eXBlLmZpbmRJbmRleCBmdW5jdGlvbiIKLSk7Ci0KLXNob3VsZEJlKCJJbnQzMkFycmF5
LnByb3RvdHlwZS5maW5kSW5kZXgubGVuZ3RoIiwgIjEiKTsKLXNob3VsZEJlKCJJbnQzMkFycmF5
LnByb3RvdHlwZS5maW5kSW5kZXgubmFtZSIsICInZmluZEluZGV4JyIpOwotc2hvdWxkQmVUcnVl
KCJpc1NhbWVGdW5jdGlvbkZvckVhY2hUeXBlZEFycmF5UHJvdG90eXBlKCdmaW5kSW5kZXgnKSIp
Owotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlUmVjZWl2ZXNBcnJheSgnZmluZEluZGV4Jywg
W3VuZGVmaW5lZCwgdGhpcywgeyB9LCBbIF0sIHRydWUsICcnXSkiKTsKLWRlYnVnKCIiKTsKLQot
ZGVidWcoInRlc3RQcm90b3R5cGVGdW5jdGlvbiBoYXMgdGhlIGZvbGxvd2luZyBhcmcgbGlzdCAo
bmFtZSwgYXJncywgaW5pdCwgcmVzdWx0IFsgLCBleHBlY3RlZEFycmF5IF0pIik7Ci1kZWJ1Zygi
Iik7Ci0KLWRlYnVnKCIxLjAgU2luZ2xlIEFyZ3VtZW50IFRlc3RpbmciKTsKLWZ1bmN0aW9uIGtl
ZXBFdmVuKGUsIGkpIHsKLSAgICByZXR1cm4gIShlICYgMSkgfHwgKHRoaXMua2VlcCA/IHRoaXMu
a2VlcCA9PT0gaSA6IGZhbHNlKTsKLX0KLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0
aW9uKCdmaW5kSW5kZXgnLCAnKGtlZXBFdmVuKScsIFsxMiwgNSwgOCwgMTMsIDQ0XSwgMCkiKTsK
LXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kSW5kZXgnLCAnKGtlZXBF
dmVuKScsIFsxMSwgMTMsIDE3LCAxMywgMjJdLCA0KSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJv
dG90eXBlRnVuY3Rpb24oJ2ZpbmRJbmRleCcsICcoa2VlcEV2ZW4pJywgWzExLCAxMywgMTcsIDEz
LCAxMV0sIC0xKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiMi4wIFR3byBBcmd1bWVudCBUZXN0
aW5nIik7Ci12YXIgdGhpc1ZhbHVlID0geyBrZWVwOiAzIH07Ci1zaG91bGRCZVRydWUoInRlc3RQ
cm90b3R5cGVGdW5jdGlvbignZmluZEluZGV4JywgJyhrZWVwRXZlbiwgdGhpc1ZhbHVlKScsIFsx
MSwgMjMsIDExLCAxLCA0NF0sIDMpIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCIzLjAgQXJyYXkg
RWxlbWVudCBDaGFuZ2luZyIpOwotZnVuY3Rpb24ga2VlcEV2ZW5BbmRDaGFuZ2UoZSwgaSwgYSkg
ewotICAgIGFbYS5sZW5ndGggLSAxIC0gaV0gPSA1OwotICAgIHJldHVybiAhKGUgJiAxKTsKLX0K
LXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kSW5kZXgnLCAnKGtlZXBF
dmVuQW5kQ2hhbmdlKScsIFsxMSwgMTUsIDMsIDEyLCA0NF0sIC0xLCBbNSwgNSwgNSwgNSwgNV0p
Iik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCI0LjAgRXhjZXB0aW9uIFRlc3QiKTsKLWZ1bmN0aW9u
IGlzQmlnRW5vdWdoQW5kRXhjZXB0aW9uKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgewotICAgIGlm
KGluZGV4PT0xKSB0aHJvdyAiZXhjZXB0aW9uIGZyb20gZnVuY3Rpb24iOwotICAgIHJldHVybiAo
ZWxlbWVudCA+PSAxMCk7Ci19Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbign
ZmluZEluZGV4JywgJyhpc0JpZ0Vub3VnaEFuZEV4Y2VwdGlvbiknLCBbMTIsIDE1LCAxMCwgMTMs
IDQ0XSwgMCkiKTsKLXNob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRJbmRl
eCcsICcoaXNCaWdFbm91Z2hBbmRFeGNlcHRpb24pJywgWzksIDE1LCAxMCwgMTMsIDQ0XSwgZmFs
c2UpIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCI1LjAgV3JvbmcgVHlwZSBmb3IgQ2FsbGJhY2sg
VGVzdCIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZmluZEluZGV4Jywg
Jyg4KScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLXNob3VsZFRocm93KCJ0ZXN0
UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRJbmRleCcsICcoXCJ3cm9uZ1wiKScsIFsxMiwgMTUsIDEw
LCAxMywgNDRdLCBmYWxzZSkiKTsKLXNob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24o
J2ZpbmRJbmRleCcsICcobmV3IE9iamVjdCgpKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxz
ZSkiKTsKLXNob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZpbmRJbmRleCcsICco
bnVsbCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1zaG91bGRUaHJvdygidGVz
dFByb3RvdHlwZUZ1bmN0aW9uKCdmaW5kSW5kZXgnLCAnKCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0
XSwgZmFsc2UpIik7Ci1kZWJ1ZygiIik7Ci1maW5pc2hKU1Rlc3QoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1mb3JFYWNoLmpzIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZvckVhY2guanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzMzJjM2YwYjk4MDIzOTE1MjU0ZmFlYTJm
ODg4N2FkNjA0ZTM5MjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZvckVh
Y2guanMKKysrIC9kZXYvbnVsbApAQCAtMSw5MSArMCwwIEBACi1sb2FkKCIuL3Jlc291cmNlcy90
eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOwotZGVzY3JpcHRpb24oCi0iVGhp
cyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLmZv
ckVhY2ggZnVuY3Rpb24iCi0pOwotCi1zaG91bGRCZSgiSW50MzJBcnJheS5wcm90b3R5cGUuZm9y
RWFjaC5sZW5ndGgiLCAiMSIpOwotc2hvdWxkQmUoIkludDMyQXJyYXkucHJvdG90eXBlLmZvckVh
Y2gubmFtZSIsICInZm9yRWFjaCciKTsKLXNob3VsZEJlVHJ1ZSgiaXNTYW1lRnVuY3Rpb25Gb3JF
YWNoVHlwZWRBcnJheVByb3RvdHlwZSgnZm9yRWFjaCcpIik7Ci1zaG91bGRCZVRydWUoInRlc3RQ
cm90b3R5cGVSZWNlaXZlc0FycmF5KCdmb3JFYWNoJywgW3VuZGVmaW5lZCwgdGhpcywgeyB9LCBb
IF0sIHRydWUsICcnXSkiKTsKLWRlYnVnKCIiKTsKLQotdmFyIHBhc3NlZCA9IHRydWU7Ci12YXIg
dGhpc1Bhc3NlZCA9IHRydWU7Ci12YXIgdHlwZWRBcnJheTsKLWZ1bmN0aW9uIGNyZWF0ZUNoZWNr
ZXIoZXhwZWN0ZWQsIGNhbGxiYWNrLCB0aGlzVmFsdWUpIHsKLSAgICBmdW5jdGlvbiBjaGVja0Nv
cnJlY3QoYXJyYXkpIHsKLSAgICAgICAgbGV0IGxpc3QgPSBbXQotICAgICAgICBmdW5jdGlvbiBh
Y2N1bXVsYXRlKGUsIGksIGEpIHsKLSAgICAgICAgICAgIGxpc3QucHVzaChjYWxsYmFjay5jYWxs
KHRoaXMsIGUsIGksIGEpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHR5cGVkQXJyYXkgPSBhcnJh
eTsKLSAgICAgICAgYXJyYXkuZm9yRWFjaChhY2N1bXVsYXRlLCB0aGlzVmFsdWUpOwotCi0gICAg
ICAgIGlmIChsaXN0Lmxlbmd0aCAhPT0gZXhwZWN0ZWQubGVuZ3RoKSB7Ci0gICAgICAgICAgICBk
ZWJ1ZygiZm9yRWFjaCBkaWQgbm90IHdvcmsgY29ycmVjdGx5LCBjb21wdXRlZCBhcnJheTogIiAr
IGxpc3QgKyAiIGV4cGVjdGVkIGFycmF5OiAiICsgZXhwZWN0ZWQpOwotICAgICAgICAgICAgcGFz
c2VkID0gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxp
c3QubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBpZiAobGlzdFtpXSAhPT0gZXhwZWN0ZWRbaV0p
IHsKLSAgICAgICAgICAgICAgICBkZWJ1ZygiZm9yRWFjaCBkaWQgbm90IHdvcmsgY29ycmVjdGx5
LCBjb21wdXRlZCBhcnJheTogIiArIGxpc3QgKyAiIGV4cGVjdGVkIGFycmF5OiAiICsgZXhwZWN0
ZWQpOwotICAgICAgICAgICAgICAgIHBhc3NlZCA9IGZhbHNlOwotICAgICAgICAgICAgfQotICAg
IH0KLQotICAgIHJldHVybiBjaGVja0NvcnJlY3Q7Ci19Ci0KLWZ1bmN0aW9uIGZvbyhlLCBpKSB7
Ci0gICAgaWYgKHRoaXMudmFsdWUgIT09IDMpCi0gICAgICAgIHRoaXNQYXNzZWQgPSBmYWxzZTsK
LSAgICByZXR1cm4gZTsKLX0KLQotCi1kZWJ1ZygiMS4wIFNpbmdsZSBBcmd1bWVudCBUZXN0aW5n
Iik7Ci0KLWZvckVhY2hUeXBlZEFycmF5KHR5cGVkQXJyYXlzLCBjcmVhdGVDaGVja2VyKFsxLCAy
LCAzLCA0LCA1XSwgZm9vLCB1bmRlZmluZWQpLCBbMSwgMiwgMywgNCwgNV0pOwotc2hvdWxkQmVU
cnVlKCJwYXNzZWQiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjIuMCBUd28gQXJndW1lbnQgVGVz
dGluZyIpOwotcGFzc2VkID0gdHJ1ZTsKLXRoaXNQYXNzZWQgPSB0cnVlOwotCi1mb3JFYWNoVHlw
ZWRBcnJheSh0eXBlZEFycmF5cywgY3JlYXRlQ2hlY2tlcihbMSwgMiwgMywgNCwgNV0sIGZvbywg
eyB2YWx1ZTogMyB9KSwgWzEsIDIsIDMsIDQsIDVdKTsKLXNob3VsZEJlVHJ1ZSgicGFzc2VkICYm
IHRoaXNQYXNzZWQiKTsKLQotcGFzc2VkID0gdHJ1ZTsKLXRoaXNQYXNzZWQgPSB0cnVlOwotZm9y
RWFjaFR5cGVkQXJyYXkodHlwZWRBcnJheXMsIGNyZWF0ZUNoZWNrZXIoWzEsIDIsIDMsIDQsIDVd
LCBmb28sIHsgdmFsdWU6IDIgfSksIFsxLCAyLCAzLCA0LCA1XSk7Ci1zaG91bGRCZVRydWUoInBh
c3NlZCAmJiAhdGhpc1Bhc3NlZCIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiMy4wIEFycmF5IEVs
ZW1lbnQgQ2hhbmdpbmciKTsKLWZ1bmN0aW9uIGNoYW5nZUFycmF5KGUsIGksIGEpIHsKLSAgICBh
W2EubGVuZ3RoIC0gMSAtIGldID0gNTsKLSAgICByZXR1cm4gZTsKLX0KLQotZm9yRWFjaFR5cGVk
QXJyYXkodHlwZWRBcnJheXMsIGNyZWF0ZUNoZWNrZXIoWzExLCAxMiwgMTMsIDUsIDVdLCBjaGFu
Z2VBcnJheSksIFsxMSwgMTIsIDEzLCAxNCwgMTVdKTsKLXNob3VsZEJlVHJ1ZSgicGFzc2VkICYm
IGhhc1NhbWVWYWx1ZXMoJ2FycmF5IGRpZCBub3QgbXV0YXRlIGNvcnJlY3RseScsIHR5cGVkQXJy
YXksIFs1LCA1LCA1LCA1LCA1XSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjQuMCBFeGNlcHRp
b24gVGVzdCIpOwotZnVuY3Rpb24gaXNCaWdFbm91Z2hBbmRFeGNlcHRpb24oZWxlbWVudCwgaW5k
ZXgsIGFycmF5KSB7Ci0gICAgaWYoaW5kZXg9PTEpIHRocm93ICJleGNlcHRpb24gZnJvbSBmdW5j
dGlvbiI7Ci0gICAgcmV0dXJuIChlbGVtZW50KTsKLX0KLXNob3VsZFRocm93KCJ0ZXN0UHJvdG90
eXBlRnVuY3Rpb24oJ2ZvckVhY2gnLCAnKGlzQmlnRW5vdWdoQW5kRXhjZXB0aW9uKScsIFs5LCAx
NSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiNS4wIFdyb25n
IFR5cGUgZm9yIENhbGxiYWNrIFRlc3QiKTsKLXNob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVu
Y3Rpb24oJ2ZvckVhY2gnLCAnKDgpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIpOwot
c2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignZm9yRWFjaCcsICcoXCJ3cm9uZ1wi
KScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLXNob3VsZFRocm93KCJ0ZXN0UHJv
dG90eXBlRnVuY3Rpb24oJ2ZvckVhY2gnLCAnKG5ldyBPYmplY3QoKSknLCBbMTIsIDE1LCAxMCwg
MTMsIDQ0XSwgZmFsc2UpIik7Ci1zaG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdm
b3JFYWNoJywgJyhudWxsKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLXNob3Vs
ZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2ZvckVhY2gnLCAnKCknLCBbMTIsIDE1LCAx
MCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1kZWJ1ZygiIik7Ci1maW5pc2hKU1Rlc3QoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1pbmRl
eE9mLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWlu
ZGV4T2YuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5MjczYzg1ZDdlN2Q5ZmYw
ZWQzZTljNmRkYmU1OGE2YzI1MzI1NjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90eXBlZGFy
cmF5LWluZGV4T2YuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1sb2FkKCIuL3Jl
c291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOwotZGVzY3JpcHRp
b24oCi0iVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJv
dG90eXBlLmluZGV4T2YgZnVuY3Rpb24iCi0pOwotCi1zaG91bGRCZSgiSW50MzJBcnJheS5wcm90
b3R5cGUuaW5kZXhPZi5sZW5ndGgiLCAiMSIpOwotc2hvdWxkQmUoIkludDMyQXJyYXkucHJvdG90
eXBlLmluZGV4T2YubmFtZSIsICInaW5kZXhPZiciKTsKLXNob3VsZEJlVHJ1ZSgiaXNTYW1lRnVu
Y3Rpb25Gb3JFYWNoVHlwZWRBcnJheVByb3RvdHlwZSgnaW5kZXhPZicpIik7Ci1zaG91bGRCZVRy
dWUoInRlc3RQcm90b3R5cGVSZWNlaXZlc0FycmF5KCdpbmRleE9mJywgW3VuZGVmaW5lZCwgdGhp
cywgeyB9LCBbIF0sIHRydWUsICcnXSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoInRlc3RQcm90
b3R5cGVGdW5jdGlvbiBoYXMgdGhlIGZvbGxvd2luZyBhcmcgbGlzdCAobmFtZSwgYXJncywgaW5p
dCwgcmVzdWx0IFsgLCBleHBlY3RlZEFycmF5IF0pIik7Ci1kZWJ1ZygiIik7Ci0KLWZ1bmN0aW9u
IGtlZXBFdmVuKGUsIGkpIHsKLSAgICByZXR1cm4gIShlICYgMSkgfHwgKHRoaXMua2VlcCA/IHRo
aXMua2VlcCA9PT0gaSA6IGZhbHNlKTsKLX0KLQotdmFyIGFycmF5ID0gWzIsIDUsIDksIDJdCi0K
LXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdpbmRleE9mJywgJygyLCAtNTAw
KScsIGFycmF5LCAwKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2lu
ZGV4T2YnLCAnKDksIDUwMCknLCBhcnJheSwgLTEpIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90
b3R5cGVGdW5jdGlvbignaW5kZXhPZicsICcoMiknLCBhcnJheSwgMCkiKTsKLXNob3VsZEJlVHJ1
ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdpbmRleE9mJywgJyg3KScsIGFycmF5LCAtMSkiKTsK
LXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdpbmRleE9mJywgJygyLCAzKScs
IGFycmF5LCAzKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ2luZGV4
T2YnLCAnKDIsIDIpJywgYXJyYXksIDMpIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVG
dW5jdGlvbignaW5kZXhPZicsICcoMiwgMCknLCBhcnJheSwgMCkiKTsKLXNob3VsZEJlVHJ1ZSgi
dGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdpbmRleE9mJywgJygyLCAtMSknLCBhcnJheSwgMykiKTsK
LXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdpbmRleE9mJywgJygyLCAtMikn
LCBhcnJheSwgMykiKTsKLWRlYnVnKCIiKTsKLWZpbmlzaEpTVGVzdCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWxhc3RJbmRleE9m
LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWxhc3RJ
bmRleE9mLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMzg2ZTQ1YTUyNjRjMDc4
ZmFhYzJjZjcxNjA4ZWFmMjY3NmNiOGViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1sYXN0SW5kZXhPZi5qcworKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLWxvYWQo
Ii4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Ci1kZXNj
cmlwdGlvbigKLSJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJh
eS5wcm90b3R5cGUubGFzdEluZGV4T2YgZnVuY3Rpb24iCi0pOwotCi1zaG91bGRCZSgiSW50MzJB
cnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YubGVuZ3RoIiwgIjEiKTsKLXNob3VsZEJlKCJJbnQz
MkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5uYW1lIiwgIidsYXN0SW5kZXhPZiciKTsKLXNo
b3VsZEJlVHJ1ZSgiaXNTYW1lRnVuY3Rpb25Gb3JFYWNoVHlwZWRBcnJheVByb3RvdHlwZSgnbGFz
dEluZGV4T2YnKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlUmVjZWl2ZXNBcnJheSgn
bGFzdEluZGV4T2YnLCBbdW5kZWZpbmVkLCB0aGlzLCB7IH0sIFsgXSwgdHJ1ZSwgJyddKSIpOwot
ZGVidWcoIiIpOwotCi1kZWJ1ZygidGVzdFByb3RvdHlwZUZ1bmN0aW9uIGhhcyB0aGUgZm9sbG93
aW5nIGFyZyBsaXN0IChuYW1lLCBhcmdzLCBpbml0LCByZXN1bHQgWyAsIGV4cGVjdGVkQXJyYXkg
XSkiKTsKLWRlYnVnKCIiKTsKLQotdmFyIGFycmF5ID0gWzIsIDUsIDksIDJdCi0KLXNob3VsZEJl
VHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdsYXN0SW5kZXhPZicsICcoMiwgLTUwMCknLCBh
cnJheSwgLTEpIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignbGFzdElu
ZGV4T2YnLCAnKDksIDUwMCknLCBhcnJheSwgMikiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3Rv
dHlwZUZ1bmN0aW9uKCdsYXN0SW5kZXhPZicsICcoMiknLCBhcnJheSwgMykiKTsKLXNob3VsZEJl
VHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdsYXN0SW5kZXhPZicsICcoNSknLCBhcnJheSwg
MSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdsYXN0SW5kZXhPZics
ICcoNyknLCBhcnJheSwgLTEpIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlv
bignbGFzdEluZGV4T2YnLCAnKDIsIDMpJywgYXJyYXksIDMpIik7Ci1zaG91bGRCZVRydWUoInRl
c3RQcm90b3R5cGVGdW5jdGlvbignbGFzdEluZGV4T2YnLCAnKDIsIDIpJywgYXJyYXksIDApIik7
Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignbGFzdEluZGV4T2YnLCAnKDIs
IDApJywgYXJyYXksIDApIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbign
bGFzdEluZGV4T2YnLCAnKDIsIC0xKScsIGFycmF5LCAzKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0
UHJvdG90eXBlRnVuY3Rpb24oJ2xhc3RJbmRleE9mJywgJygyLCAtMiknLCBhcnJheSwgMCkiKTsK
LWRlYnVnKCIiKTsKLWZpbmlzaEpTVGVzdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LW1hcC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1tYXAuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGJjZTczZjU0ZmU5YzkxM2VkNDQwMjk4NmEzMGU2OTIyZDlmODMyZDkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LW1hcC5qcworKysgL2Rldi9udWxsCkBAIC0x
LDUxICswLDAgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVu
Y3Rpb25zLmpzIik7Ci1kZXNjcmlwdGlvbigKLSJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlv
ciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUubWFwIGZ1bmN0aW9uIgotKTsKLQotc2hvdWxk
QmUoIkludDMyQXJyYXkucHJvdG90eXBlLm1hcC5sZW5ndGgiLCAiMSIpOwotc2hvdWxkQmUoIklu
dDMyQXJyYXkucHJvdG90eXBlLm1hcC5uYW1lIiwgIidtYXAnIik7Ci1zaG91bGRCZVRydWUoImlz
U2FtZUZ1bmN0aW9uRm9yRWFjaFR5cGVkQXJyYXlQcm90b3R5cGUoJ21hcCcpIik7Ci1zaG91bGRC
ZVRydWUoInRlc3RQcm90b3R5cGVSZWNlaXZlc0FycmF5KCdtYXAnLCBbdW5kZWZpbmVkLCB0aGlz
LCB7IH0sIFsgXSwgdHJ1ZSwgJyddKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygidGVzdFByb3Rv
dHlwZUZ1bmN0aW9uIGhhcyB0aGUgZm9sbG93aW5nIGFyZyBsaXN0IChuYW1lLCBhcmdzLCBpbml0
LCByZXN1bHQgWyAsIGV4cGVjdGVkQXJyYXkgXSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjEu
MCBTaW5nbGUgQXJndW1lbnQgVGVzdGluZyIpOwotZnVuY3Rpb24gZXZlbihlLCBpKSB7Ci0gICAg
cmV0dXJuICEoZSAmIDEpIHx8ICh0aGlzLmNoYW5nZSA/IHRoaXMuY2hhbmdlLmluZGV4T2YoaSkg
Pj0gMCA6IGZhbHNlKTsKLX0KLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdt
YXAnLCAnKGV2ZW4pJywgWzEyLCA1LCA4LCAxMywgNDRdLCBbMSwgMCwgMSwgMCwgMV0sIFsxMiwg
NSwgOCwgMTMsIDQ0XSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdt
YXAnLCAnKGV2ZW4pJywgWzExLCA1NCwgMTgsIDEzLCAxXSwgWzAsIDEsIDEsIDAsIDBdKSIpOwot
ZGVidWcoIiIpOwotCi1kZWJ1ZygiMi4wIFR3byBBcmd1bWVudCBUZXN0aW5nIik7Ci12YXIgdGhp
c1ZhbHVlID0geyBjaGFuZ2U6IFsxLCAzXSB9Owotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBl
RnVuY3Rpb24oJ21hcCcsICcoZXZlbiwgdGhpc1ZhbHVlKScsIFsxMiwgMjMsIDExLCAxLCA0NV0s
IFsxLCAxLCAwLCAxLCAwXSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjMuMCBBcnJheSBFbGVt
ZW50IENoYW5naW5nIik7Ci1mdW5jdGlvbiBldmVuQW5kQ2hhbmdlKGUsIGksIGEpIHsKLSAgICBh
W2EubGVuZ3RoIC0gMSAtIGldID0gNTsKLSAgICByZXR1cm4gIShlICYgMSk7Ci19Ci1zaG91bGRC
ZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignbWFwJywgJyhldmVuQW5kQ2hhbmdlKScsIFsx
MiwgMTUsIDIsIDEzLCA0NF0sIFsxLCAwLCAxLCAwLCAwXSwgWzUsIDUsIDUsIDUsIDVdKSIpOwot
ZGVidWcoIiIpOwotCi1kZWJ1ZygiNC4wIEV4Y2VwdGlvbiBUZXN0Iik7Ci1mdW5jdGlvbiBpc0Jp
Z0Vub3VnaEFuZEV4Y2VwdGlvbihlbGVtZW50LCBpbmRleCwgYXJyYXkpIHsKLSAgICBpZihpbmRl
eD09MSkgdGhyb3cgImV4Y2VwdGlvbiBmcm9tIGZ1bmN0aW9uIjsKLSAgICByZXR1cm4gKGVsZW1l
bnQgPj0gMTApOwotfQotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignbWFwJywg
Jyhpc0JpZ0Vub3VnaEFuZEV4Y2VwdGlvbiknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2Up
Iik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCI1LjAgV3JvbmcgVHlwZSBmb3IgQ2FsbGJhY2sgVGVz
dCIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbignbWFwJywgJyg4KScsIFsx
MiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLXNob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBl
RnVuY3Rpb24oJ21hcCcsICcoXCJ3cm9uZ1wiKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxz
ZSkiKTsKLXNob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ21hcCcsICcobmV3IE9i
amVjdCgpKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLXNob3VsZFRocm93KCJ0
ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ21hcCcsICcobnVsbCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0
XSwgZmFsc2UpIik7Ci1zaG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdtYXAnLCAn
KCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1kZWJ1ZygiIik7Ci1maW5pc2hK
U1Rlc3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
dHlwZWRhcnJheS1yZWR1Y2UuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktcmVkdWNlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZWUy
ZGNiODhhZjFkMWEzNzczODRlYWMzZjc2ZTk4ZTUwMmY3MDM4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvdHlwZWRhcnJheS1yZWR1Y2UuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBA
Ci1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIp
OwotZGVzY3JpcHRpb24oCi0iVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5
cGVkQXJyYXkucHJvdG90eXBlLnJlZHVjZSBmdW5jdGlvbiIKLSk7Ci0KLXNob3VsZEJlKCJJbnQz
MkFycmF5LnByb3RvdHlwZS5yZWR1Y2UubGVuZ3RoIiwgIjEiKTsKLXNob3VsZEJlKCJJbnQzMkFy
cmF5LnByb3RvdHlwZS5yZWR1Y2UubmFtZSIsICIncmVkdWNlJyIpOwotc2hvdWxkQmVUcnVlKCJp
c1NhbWVGdW5jdGlvbkZvckVhY2hUeXBlZEFycmF5UHJvdG90eXBlKCdyZWR1Y2UnKSIpOwotc2hv
dWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlUmVjZWl2ZXNBcnJheSgncmVkdWNlJywgW3VuZGVmaW5l
ZCwgdGhpcywgeyB9LCBbIF0sIHRydWUsICcnXSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoInRl
c3RQcm90b3R5cGVGdW5jdGlvbiBoYXMgdGhlIGZvbGxvd2luZyBhcmcgbGlzdCAobmFtZSwgYXJn
cywgaW5pdCwgcmVzdWx0IFsgLCBleHBlY3RlZEFycmF5IF0pIik7Ci1kZWJ1ZygiIik7Ci0KLWRl
YnVnKCIxLjAgU2luZ2xlIEFyZ3VtZW50IFRlc3RpbmciKTsKLWZ1bmN0aW9uIGNyZWF0ZUFycmF5
KGFjYywgZSwgaSwgYSkgewotICAgIGlmICh0eXBlb2YgYWNjICE9PSAib2JqZWN0IikKLSAgICAg
ICAgYWNjID0gW2FjY107Ci0gICAgYWNjLnB1c2goZSk7Ci0gICAgcmV0dXJuIGFjYzsKLX0KLQot
ZnVuY3Rpb24gc3VtKGFjYywgZSwgaSwgYSkgeyByZXR1cm4gYWNjICsgZTsgfQotCi1zaG91bGRC
ZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbigncmVkdWNlJywgJyhjcmVhdGVBcnJheSknLCBb
MTIsIDUsIDgsIDEzLCA0NF0sIFsxMiwgNSwgOCwgMTMsIDQ0XSwgWzEyLCA1LCA4LCAxMywgNDRd
KSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3JlZHVjZScsICcoc3Vt
KScsIFsxLCAyLCAzLCA0LCA1XSwgMTUpIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCIyLjAgVHdv
IEFyZ3VtZW50IFRlc3RpbmciKTsKLQotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rp
b24oJ3JlZHVjZScsICcoY3JlYXRlQXJyYXksIFsxXSknLCBbMTIsIDIzLCAxMSwgMSwgNDVdLCBb
MSwgMTIsIDIzLCAxMSwgMSwgNDVdLCBbMTIsIDIzLCAxMSwgMSwgNDVdKSIpOwotZGVidWcoIiIp
OwotCi1kZWJ1ZygiMy4wIEFycmF5IEVsZW1lbnQgQ2hhbmdpbmciKTsKLWZ1bmN0aW9uIGNyZWF0
ZUFycmF5QW5kQ2hhbmdlKGFjYywgZSwgaSwgYSkgewotICAgIGFbYS5sZW5ndGggLSAxIC0gaV0g
PSA1OwotICAgIGFjYy5wdXNoKGUpOwotICAgIHJldHVybiBhY2M7Ci19Ci1zaG91bGRCZVRydWUo
InRlc3RQcm90b3R5cGVGdW5jdGlvbigncmVkdWNlJywgJyhjcmVhdGVBcnJheUFuZENoYW5nZSwg
W10pJywgWzEyLCAxNSwgMiwgMTMsIDQ0XSwgWzEyLCAxNSwgMiwgNSwgNV0sIFs1LCA1LCA1LCA1
LCA1XSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjQuMCBFeGNlcHRpb24gVGVzdCIpOwotZnVu
Y3Rpb24gaXNCaWdFbm91Z2hBbmRFeGNlcHRpb24oYWNjLCBlbGVtZW50LCBpbmRleCwgYXJyYXkp
IHsKLSAgICBpZihpbmRleD09MSkgdGhyb3cgImV4Y2VwdGlvbiBmcm9tIGZ1bmN0aW9uIjsKLSAg
ICByZXR1cm4gKGVsZW1lbnQgPj0gMTApOwotfQotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVG
dW5jdGlvbigncmVkdWNlJywgJyhpc0JpZ0Vub3VnaEFuZEV4Y2VwdGlvbiknLCBbMTIsIDE1LCAx
MCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCI1LjAgV3JvbmcgVHlw
ZSBmb3IgQ2FsbGJhY2sgVGVzdCIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlv
bigncmVkdWNlJywgJyg4KScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLXNob3Vs
ZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3JlZHVjZScsICcoXCJ3cm9uZ1wiKScsIFsx
MiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLXNob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBl
RnVuY3Rpb24oJ3JlZHVjZScsICcobmV3IE9iamVjdCgpKScsIFsxMiwgMTUsIDEwLCAxMywgNDRd
LCBmYWxzZSkiKTsKLXNob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3JlZHVjZScs
ICcobnVsbCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1zaG91bGRUaHJvdygi
dGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdyZWR1Y2UnLCAnKCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0
XSwgZmFsc2UpIik7Ci1kZWJ1ZygiIik7Ci1maW5pc2hKU1Rlc3QoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1yZWR1Y2VSaWdodC5q
cyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1yZWR1Y2VS
aWdodC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTg1MzNlZjRlODlhNzE0MmNk
OGViYjlmZWRiZWJmNzkxYzNjYmM1NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3R5cGVkYXJy
YXktcmVkdWNlUmlnaHQuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi1sb2FkKCIu
L3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOwotZGVzY3Jp
cHRpb24oCi0iVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXku
cHJvdG90eXBlLnJlZHVjZVJpZ2h0IGZ1bmN0aW9uIgotKTsKLQotc2hvdWxkQmUoIkludDMyQXJy
YXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0Lmxlbmd0aCIsICIxIik7Ci1zaG91bGRCZSgiSW50MzJB
cnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQubmFtZSIsICIncmVkdWNlUmlnaHQnIik7Ci1zaG91
bGRCZVRydWUoImlzU2FtZUZ1bmN0aW9uRm9yRWFjaFR5cGVkQXJyYXlQcm90b3R5cGUoJ3JlZHVj
ZVJpZ2h0JykiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZVJlY2VpdmVzQXJyYXkoJ3Jl
ZHVjZVJpZ2h0JywgW3VuZGVmaW5lZCwgdGhpcywgeyB9LCBbIF0sIHRydWUsICcnXSkiKTsKLWRl
YnVnKCIiKTsKLQotZGVidWcoInRlc3RQcm90b3R5cGVGdW5jdGlvbiBoYXMgdGhlIGZvbGxvd2lu
ZyBhcmcgbGlzdCAobmFtZSwgYXJncywgaW5pdCwgcmVzdWx0IFsgLCBleHBlY3RlZEFycmF5IF0p
Iik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCIxLjAgU2luZ2xlIEFyZ3VtZW50IFRlc3RpbmciKTsK
LWZ1bmN0aW9uIGNyZWF0ZUFycmF5KGFjYywgZSwgaSwgYSkgewotICAgIGlmICh0eXBlb2YgYWNj
ICE9PSAib2JqZWN0IikKLSAgICAgICAgYWNjID0gW2FjY107Ci0gICAgYWNjLnB1c2goZSk7Ci0g
ICAgcmV0dXJuIGFjYzsKLX0KLQotZnVuY3Rpb24gc3VtKGFjYywgZSwgaSwgYSkgeyByZXR1cm4g
YWNjICsgZTsgfQotCi1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbigncmVkdWNl
UmlnaHQnLCAnKGNyZWF0ZUFycmF5KScsIFsxMiwgNSwgOCwgMTMsIDQ0XSwgWzEyLCA1LCA4LCAx
MywgNDRdLnJldmVyc2UoKSwgWzEyLCA1LCA4LCAxMywgNDRdKSIpOwotc2hvdWxkQmVUcnVlKCJ0
ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3JlZHVjZVJpZ2h0JywgJyhzdW0pJywgWzEsIDIsIDMsIDQs
IDVdLCAxNSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjIuMCBUd28gQXJndW1lbnQgVGVzdGlu
ZyIpOwotCi1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbigncmVkdWNlUmlnaHQn
LCAnKGNyZWF0ZUFycmF5LCBbMV0pJywgWzEyLCAyMywgMTEsIDEsIDQ1XSwgWzEsIDQ1LCAxLCAx
MSwgMjMsIDEyXSwgWzEyLCAyMywgMTEsIDEsIDQ1XSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWco
IjMuMCBBcnJheSBFbGVtZW50IENoYW5naW5nIik7Ci1mdW5jdGlvbiBjcmVhdGVBcnJheUFuZENo
YW5nZShhY2MsIGUsIGksIGEpIHsKLSAgICBhW2EubGVuZ3RoIC0gMSAtIGldID0gNTsKLSAgICBh
Y2MucHVzaChlKTsKLSAgICByZXR1cm4gYWNjOwotfQotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90
eXBlRnVuY3Rpb24oJ3JlZHVjZVJpZ2h0JywgJyhjcmVhdGVBcnJheUFuZENoYW5nZSwgW10pJywg
WzEyLCAxNSwgMiwgMTMsIDQ0XSwgWzQ0LCAxMywgMiwgNSwgNV0sIFs1LCA1LCA1LCA1LCA1XSki
KTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjQuMCBFeGNlcHRpb24gVGVzdCIpOwotZnVuY3Rpb24g
aXNCaWdFbm91Z2hBbmRFeGNlcHRpb24oYWNjLCBlbGVtZW50LCBpbmRleCwgYXJyYXkpIHsKLSAg
ICBpZihpbmRleD09MSkgdGhyb3cgImV4Y2VwdGlvbiBmcm9tIGZ1bmN0aW9uIjsKLSAgICByZXR1
cm4gKGVsZW1lbnQgPj0gMTApOwotfQotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlv
bigncmVkdWNlUmlnaHQnLCAnKGlzQmlnRW5vdWdoQW5kRXhjZXB0aW9uKScsIFsxMiwgMTUsIDEw
LCAxMywgNDRdLCBmYWxzZSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjUuMCBXcm9uZyBUeXBl
IGZvciBDYWxsYmFjayBUZXN0Iik7Ci1zaG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9u
KCdyZWR1Y2VSaWdodCcsICcoOCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1z
aG91bGRUaHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdyZWR1Y2VSaWdodCcsICcoXCJ3cm9u
Z1wiKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSkiKTsKLXNob3VsZFRocm93KCJ0ZXN0
UHJvdG90eXBlRnVuY3Rpb24oJ3JlZHVjZVJpZ2h0JywgJyhuZXcgT2JqZWN0KCkpJywgWzEyLCAx
NSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5j
dGlvbigncmVkdWNlUmlnaHQnLCAnKG51bGwpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNl
KSIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlvbigncmVkdWNlUmlnaHQnLCAn
KCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1kZWJ1ZygiIik7Ci1maW5pc2hK
U1Rlc3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
dHlwZWRhcnJheS1zbGljZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
dHlwZWRhcnJheS1zbGljZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjc0Yzkz
YWIxNDAxODllM2VkYTBkODY0NGE3ODllNDdiMzdiNTc0Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktc2xpY2UuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi1s
b2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOwot
ZGVzY3JpcHRpb24oCi0iVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVk
QXJyYXkucHJvdG90eXBlLnNsaWNlIGZ1bmN0aW9uIgotKTsKLQotc2hvdWxkQmUoIkludDMyQXJy
YXkucHJvdG90eXBlLnNsaWNlLmxlbmd0aCIsICIyIik7Ci1zaG91bGRCZSgiSW50MzJBcnJheS5w
cm90b3R5cGUuc2xpY2UubmFtZSIsICInc2xpY2UnIik7Ci1zaG91bGRCZVRydWUoImlzU2FtZUZ1
bmN0aW9uRm9yRWFjaFR5cGVkQXJyYXlQcm90b3R5cGUoJ3NsaWNlJykiKTsKLXNob3VsZEJlVHJ1
ZSgidGVzdFByb3RvdHlwZVJlY2VpdmVzQXJyYXkoJ3NsaWNlJywgW3VuZGVmaW5lZCwgdGhpcywg
eyB9LCBbIF0sIHRydWUsICcnXSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoInRlc3RQcm90b3R5
cGVGdW5jdGlvbiBoYXMgdGhlIGZvbGxvd2luZyBhcmcgbGlzdCAobmFtZSwgYXJncywgaW5pdCwg
cmVzdWx0IFsgLCBleHBlY3RlZEFycmF5IF0pIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCIxLjAg
VGVzdCBCYXNpYyBGdW5jdGlvbmFsaXR5Iik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVG
dW5jdGlvbignc2xpY2UnLCAnKDIsIDMpJywgWzEyLCA1LCA4LCAxMywgNDRdLCBbOF0sIFsxMiwg
NSwgOCwgMTMsIDQ0XSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdz
bGljZScsICcoNSwgNSknLCBbMTIsIDUsIDgsIDEzLCA0NF0sIFtdKSIpOwotc2hvdWxkQmVUcnVl
KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3NsaWNlJywgJygwLCA1KScsIFsxMiwgNSwgOCwgMTMs
IDQ0XSwgWzEyLCA1LCA4LCAxMywgNDRdKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBl
RnVuY3Rpb24oJ3NsaWNlJywgJygwLCAtNSknLCBbMTIsIDUsIDgsIDEzLCA0NF0sIFtdKSIpOwot
c2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3NsaWNlJywgJygtMywgLTIpJywg
WzEyLCA1LCA4LCAxMywgNDRdLCBbOF0pIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVG
dW5jdGlvbignc2xpY2UnLCAnKDQsIDIpJywgWzEyLCA1LCA4LCAxMywgNDRdLCBbXSkiKTsKLXNo
b3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdzbGljZScsICcoLTUwLCA1MCknLCBb
MTIsIDUsIDgsIDEzLCA0NF0sIFsxMiwgNSwgOCwgMTMsIDQ0XSkiKTsKLWRlYnVnKCIiKTsKLQot
ZGVidWcoIjIuMCBQcmVzZXJ2ZSBVbmRlcmx5aW5nIGJpdHMiKTsKLQotdmFyIGludFZpZXcgPSBu
ZXcgSW50MzJBcnJheSg1KTsKLWludFZpZXdbMF0gPSAtMTsKLXZhciBmbG9hdFZpZXcgPSBuZXcg
RmxvYXQzMkFycmF5KGludFZpZXcuYnVmZmVyKTsKLWZsb2F0VmlldyA9IGZsb2F0Vmlldy5zbGlj
ZSgwLDEpOwotaW50VmlldyA9IG5ldyBJbnQzMkFycmF5KGZsb2F0Vmlldy5idWZmZXIpOwotCi1z
aG91bGRCZSgiaW50Vmlld1swXSIsICItMSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiMy4wIENy
ZWF0ZXMgTmV3IEJ1ZmZlciIpOwotCi12YXIgaW50VmlldyA9IG5ldyBJbnQzMkFycmF5KDEpCi12
YXIgbmV3VmlldyA9IGludFZpZXcuc2xpY2UoMCwxKTsKLW5ld1ZpZXdbMF0gPSAxOwotCi1zaG91
bGRCZSgiaW50Vmlld1swXSIsICIwIik7Ci1kZWJ1ZygiIik7Ci1maW5pc2hKU1Rlc3QoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1z
b21lLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNv
bWUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViYmVlNjBjMzg2NzZhMjljZTAx
ODgxNjY0NWE2NWUxYjE1MjRjMWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90eXBlZGFycmF5
LXNvbWUuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi1sb2FkKCIuL3Jlc291cmNl
cy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOwotZGVzY3JpcHRpb24oCi0i
VGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBl
LnNvbWUgZnVuY3Rpb24iCi0pOwotCi1zaG91bGRCZSgiSW50MzJBcnJheS5wcm90b3R5cGUuc29t
ZS5sZW5ndGgiLCAiMSIpOwotc2hvdWxkQmUoIkludDMyQXJyYXkucHJvdG90eXBlLnNvbWUubmFt
ZSIsICInc29tZSciKTsKLXNob3VsZEJlVHJ1ZSgiaXNTYW1lRnVuY3Rpb25Gb3JFYWNoVHlwZWRB
cnJheVByb3RvdHlwZSgnc29tZScpIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVSZWNl
aXZlc0FycmF5KCdzb21lJywgW3VuZGVmaW5lZCwgdGhpcywgeyB9LCBbIF0sIHRydWUsICcnXSki
KTsKLWRlYnVnKCIiKTsKLQotZGVidWcoInRlc3RQcm90b3R5cGVGdW5jdGlvbiBoYXMgdGhlIGZv
bGxvd2luZyBhcmcgbGlzdCAobmFtZSwgYXJncywgaW5pdCwgcmVzdWx0IFsgLCBleHBlY3RlZEFy
cmF5IF0pIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCIxLjAgU2luZ2xlIEFyZ3VtZW50IFRlc3Rp
bmciKTsKLWZ1bmN0aW9uIGlzQmlnRW5vdWdoKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgewotICAg
IGlmICh0aGlzLnZhbHVlKQotICAgICAgICByZXR1cm4gZWxlbWVudCA+PSB0aGlzLnZhbHVlOwot
ICAgIHJldHVybiBlbGVtZW50ID49IDEwOwotfQotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBl
RnVuY3Rpb24oJ3NvbWUnLCAnKGlzQmlnRW5vdWdoKScsIFsxMiwgNSwgOCwgMTMsIDQ0XSwgdHJ1
ZSwgWzEyLCA1LCA4LCAxMywgNDRdKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVu
Y3Rpb24oJ3NvbWUnLCAnKGlzQmlnRW5vdWdoKScsIFsyLCA0LCA4LCAzLCA0XSwgZmFsc2UpIik7
Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCIyLjAgVHdvIEFyZ3VtZW50IFRlc3RpbmciKTsKLXZhciB0
aGlzVmFsdWUgPSB7IHZhbHVlOiAxMSB9Owotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVu
Y3Rpb24oJ3NvbWUnLCAnKGlzQmlnRW5vdWdoLCB0aGlzVmFsdWUpJywgWzIsIDUsIDEwLCAzLCA0
XSwgZmFsc2UpIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignc29tZScs
ICcoaXNCaWdFbm91Z2gsIHRoaXNWYWx1ZSknLCBbMTIsIDU0LCA4MiwgMTMsIDQ0XSwgdHJ1ZSki
KTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjMuMCBBcnJheSBFbGVtZW50IENoYW5naW5nIik7Ci1m
dW5jdGlvbiBpc0JpZ0Vub3VnaEFuZENoYW5nZShlbGVtZW50LCBpbmRleCwgYXJyYXkpIHsKLSAg
ICBhcnJheVthcnJheS5sZW5ndGggLSAxIC0gaW5kZXhdID0gNTsKLSAgICByZXR1cm4gKGVsZW1l
bnQgPj0gMTApOwotfQotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3NvbWUn
LCAnKGlzQmlnRW5vdWdoQW5kQ2hhbmdlKScsIFsyLCA1LCAxLCAxMywgNDRdLCBmYWxzZSwgWzUs
IDUsIDUsIDUsIDVdKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3Nv
bWUnLCAnKGlzQmlnRW5vdWdoQW5kQ2hhbmdlKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCB0cnVl
LCBbMTIsIDE1LCAxMCwgMTMsIDVdKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiNC4wIEV4Y2Vw
dGlvbiBUZXN0Iik7Ci1mdW5jdGlvbiBpc0JpZ0Vub3VnaEFuZEV4Y2VwdGlvbihlbGVtZW50LCBp
bmRleCwgYXJyYXkpIHsKLSAgICBpZihpbmRleD09MSkgdGhyb3cgImV4Y2VwdGlvbiBmcm9tIGZ1
bmN0aW9uIjsKLSAgICByZXR1cm4gKGVsZW1lbnQgPj0gMTApOwotfQotc2hvdWxkQmVUcnVlKCJ0
ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3NvbWUnLCAnKGlzQmlnRW5vdWdoQW5kRXhjZXB0aW9uKScs
IFsxMiwgMTUsIDEwLCAxMywgNDRdLCB0cnVlKSIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5
cGVGdW5jdGlvbignc29tZScsICcoaXNCaWdFbm91Z2hBbmRFeGNlcHRpb24pJywgWzEsIDE1LCAx
MCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1kZWJ1ZygiIik7Ci0KLWRlYnVnKCI1LjAgV3JvbmcgVHlw
ZSBmb3IgQ2FsbGJhY2sgVGVzdCIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5jdGlv
bignc29tZScsICcoOCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgZmFsc2UpIik7Ci1zaG91bGRU
aHJvdygidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdzb21lJywgJyhcIndyb25nXCIpJywgWzEyLCAx
NSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90b3R5cGVGdW5j
dGlvbignc29tZScsICcobmV3IE9iamVjdCgpKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxz
ZSkiKTsKLXNob3VsZFRocm93KCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3NvbWUnLCAnKG51bGwp
JywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIGZhbHNlKSIpOwotc2hvdWxkVGhyb3coInRlc3RQcm90
b3R5cGVGdW5jdGlvbignc29tZScsICcoKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBmYWxzZSki
KTsKLWRlYnVnKCIiKTsKLWZpbmlzaEpTVGVzdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNvcnQuanMgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc29ydC5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNjk0MWUwYWQyOWU0MGZjN2Q1OTczMTFiZjNkMTkwYTQ3YWFkYjQ0ZS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc29ydC5qcworKysgL2Rldi9udWxs
CkBAIC0xLDU3ICswLDAgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxw
ZXItZnVuY3Rpb25zLmpzIik7Ci1kZXNjcmlwdGlvbigKLSJUaGlzIHRlc3QgY2hlY2tzIHRoZSBi
ZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuc29ydCBmdW5jdGlvbiIKLSk7Ci0K
LXNob3VsZEJlKCJJbnQzMkFycmF5LnByb3RvdHlwZS5zb3J0Lmxlbmd0aCIsICIxIik7Ci1zaG91
bGRCZSgiSW50MzJBcnJheS5wcm90b3R5cGUuc29ydC5uYW1lIiwgIidzb3J0JyIpOwotc2hvdWxk
QmVUcnVlKCJpc1NhbWVGdW5jdGlvbkZvckVhY2hUeXBlZEFycmF5UHJvdG90eXBlKCdzb3J0Jyki
KTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZVJlY2VpdmVzQXJyYXkoJ3NvcnQnLCBbdW5k
ZWZpbmVkLCB0aGlzLCB7IH0sIFsgXSwgdHJ1ZSwgJyddKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1
ZygidGVzdFByb3RvdHlwZUZ1bmN0aW9uIGhhcyB0aGUgZm9sbG93aW5nIGFyZyBsaXN0IChuYW1l
LCBhcmdzLCBpbml0LCByZXN1bHQgWyAsIGV4cGVjdGVkQXJyYXkgXSkiKTsKLWRlYnVnKCIiKTsK
LQotZGVidWcoIjEuMCBObyBBcmd1bWVudCBUZXN0aW5nIik7Ci1zaG91bGRCZVRydWUoInRlc3RQ
cm90b3R5cGVGdW5jdGlvbignc29ydCcsICcoKScsIFsxMiwgNSwgOCwgMTMsIDQ0XSwgWzUsIDgs
IDEyLCAxMywgNDRdLCBbNSwgOCwgMTIsIDEzLCA0NF0pIik7Ci1zaG91bGRCZVRydWUoInRlc3RQ
cm90b3R5cGVGdW5jdGlvbignc29ydCcsICcoKScsIFsyLCA0LCA4LCAzLCA0XSwgWzIsIDMsIDQs
IDQsIDhdKSIpOwotZGVidWcoIiIpOwotCi1kZWJ1ZygiMS4xIFNpZ25lZCBOdW1iZXJzIik7Ci1z
aG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbk9uU2lnbmVkKCdzb3J0JywgJygpJywg
WzEyLCAtNSwgOCwgLTEzLCA0NF0sIFstMTMsIC01LCA4LCAxMiwgNDRdKSIpOwotZGVidWcoIiIp
OwotCi1kZWJ1ZygiMS4yIEZsb2F0IE51bWJlcnMiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3Rv
dHlwZUZ1bmN0aW9uT25GbG9hdCgnc29ydCcsICcoKScsIFsxMiwgLTUsIDAsIC0wLCAtMTMsIDQ0
XSwgWy0xMywgLTUsIC0wLCAwLCAxMiwgNDRdKSIpOwotCi1kZWJ1ZygiMS4zIE5lZ2F0aXZlIE5h
TnMiKTsKLXZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoOCk7Ci12YXIgaW50VmlldyA9IG5l
dyBJbnQzMkFycmF5KGJ1ZmZlcik7Ci12YXIgZmxvYXRWaWV3ID0gbmV3IEZsb2F0MzJBcnJheShi
dWZmZXIpOwotaW50Vmlld1swXSA9IC0xOwotCi1mbG9hdFZpZXcuc29ydCgpOwotc2hvdWxkQmVU
cnVlKCJPYmplY3QuaXMoZmxvYXRWaWV3WzBdLDApICYmIE9iamVjdC5pcyhmbG9hdFZpZXdbMV0s
IE5hTikiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjIuMCBDdXN0b20gRnVuY3Rpb24gVGVzdGlu
ZyIpOwotZnVuY3Rpb24gc29ydEJhY2t3YXJkcyhhLCBiKSB7IHJldHVybiBiIC0gYTsgfQotc2hv
dWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3NvcnQnLCAnKHNvcnRCYWNrd2FyZHMp
JywgWzIsIDUsIDEwLCAzLCA0XSwgWzEwLCA1LCA0LCAzLCAyXSkiKTsKLWRlYnVnKCIiKTsKLQot
ZGVidWcoIjMuMCBFeGNlcHRpb24gVGVzdCIpOwotdmFyIGNvdW50ID0gMDsKLWZ1bmN0aW9uIGNv
bXBhcmVFeGNlcHRpb24oYSwgYikgewotICAgIGlmKGNvdW50KysgPT09IDQpIHRocm93ICJleGNl
cHRpb24gZnJvbSBmdW5jdGlvbiI7Ci0gICAgcmV0dXJuIGEgPCBiOwotfQotc2hvdWxkVGhyb3co
InRlc3RQcm90b3R5cGVGdW5jdGlvbignc29ydCcsICcoY29tcGFyZUV4Y2VwdGlvbiknLCBbMTIs
IDE1LCAxMCwgMTMsIDQ0XSwgdHJ1ZSkiKTsKLWRlYnVnKCIiKTsKLQotZGVidWcoIjQuMCBXcm9u
ZyBUeXBlIGZvciBDYWxsYmFjayBUZXN0Iik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVG
dW5jdGlvbignc29ydCcsICcoOCknLCBbMTIsIDE1LCAxMCwgMTMsIDQ0XSwgWzEwLCAxMiwgMTMs
IDE1LCA0NF0pIik7Ci1zaG91bGRCZVRydWUoInRlc3RQcm90b3R5cGVGdW5jdGlvbignc29ydCcs
ICcoXCJ3cm9uZ1wiKScsIFsxMiwgMTUsIDEwLCAxMywgNDRdLCBbMTAsIDEyLCAxMywgMTUsIDQ0
XSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdFByb3RvdHlwZUZ1bmN0aW9uKCdzb3J0JywgJyhuZXcg
T2JqZWN0KCkpJywgWzEyLCAxNSwgMTAsIDEzLCA0NF0sIFsxMCwgMTIsIDEzLCAxNSwgNDRdKSIp
Owotc2hvdWxkQmVUcnVlKCJ0ZXN0UHJvdG90eXBlRnVuY3Rpb24oJ3NvcnQnLCAnKG51bGwpJywg
WzEyLCAxNSwgMTAsIDEzLCA0NF0sIFsxMCwgMTIsIDEzLCAxNSwgNDRdKSIpOwotZGVidWcoIiIp
OwotZmluaXNoSlNUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWNjNjNkYjE0OTM0MjIzOGZjMGQ2ZGJkZmE4MWE0
MDQzNGZhMTc4Yy4uNzgxN2FhMjdiZjM0Y2VhNTFiOTY4MzMzZTllMjlkMWZhMThhYWNjMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTA5LTMwICBDb21taXQgUXVldWUgIDxjb21taXQtcXVl
dWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTkwMzY3
IGFuZCByMTkwMzczLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ5Njk0CisKKyAgICAgICAgV2luZG93cyBidWlsZCBicm9rZW4gKFJlcXVlc3RlZCBi
eSBzbWZyIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAg
ICAgICAgIltFUzZdIEFkZCBUeXBlZEFycmF5LnByb3RvdHlwZSBmdW5jdGlvbmFsaXR5LiIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODAzNQorICAg
ICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xOTAzNjcKKworICAgICAgICAi
VW5yZXZpZXdlZCBXaW5kb3dzIGJ1aWxkZml4LiIKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMTkwMzczCisKIDIwMTUtMDktMzAgIEthdGx5biBHcmFmZiAgPGtncmFm
ZkBhcHBsZS5jb20+CiAKICAgICAgICAgVGVzdHMgc3VwcG9ydCBmb3IgaW1hZ2VTbW9vdGhpbmdR
dWFsaXR5IGF0dHJpYnV0ZSBvZiBDYW52YXMgZWxlbWVudC4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL3R5cGUtY29udmVyc2lvbi10ZXN0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3R5cGUtY29udmVyc2lvbi10ZXN0LWV4cGVj
dGVkLnR4dAppbmRleCBlOGJmYWI3MGYxZWYwNjVjZjQzZGI5ZTg1YWUyMTc3NzAwNWIyZGNhLi5i
Yzc1OTI2OWI5MTU3OTI5OWQyMWU5MGRiNmZlN2Q1MTA4YmQ0NjRiIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC90eXBlLWNvbnZlcnNpb24tdGVzdC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdHlwZS1jb252ZXJzaW9uLXRl
c3QtZXhwZWN0ZWQudHh0CkBAIC03NjUsNyArNzY1LDcgQEAgUEFTUyBjb250ZXh0LnVuaWZvcm00
Zihsb2MsIDAsIGFyZ3VtZW50LCAwLCAwKSBpcyB1bmRlZmluZWQuCiBQQVNTIGNvbnRleHQudW5p
Zm9ybTRmKGxvYywgMCwgMCwgYXJndW1lbnQsIDApIGlzIHVuZGVmaW5lZC4KIFBBU1MgY29udGV4
dC51bmlmb3JtNGYobG9jLCAwLCAwLCAwLCBhcmd1bWVudCkgaXMgdW5kZWZpbmVkLgogCi10ZXN0
aW5nIHR5cGUgb2YgVHlwZWRBcnJheSA6IHZhbHVlID0gMAordGVzdGluZyB0eXBlIG9mIFR5cGVk
QXJyYXkgOiB2YWx1ZSA9IFtvYmplY3QgRmxvYXQzMkFycmF5XQogUEFTUyBjb250ZXh0LmJpbmRB
dHRyaWJMb2NhdGlvbihwcm9ncmFtLCBhcmd1bWVudCwgJ2ZvbycpIGlzIHVuZGVmaW5lZC4KIFBB
U1MgY29udGV4dC5ibGVuZENvbG9yKGFyZ3VtZW50LCBhcmd1bWVudCwgYXJndW1lbnQsIGFyZ3Vt
ZW50KSBpcyB1bmRlZmluZWQuCiBQQVNTIGNvbnRleHQuYnVmZmVyRGF0YShjb250ZXh0LkFSUkFZ
X0JVRkZFUiwgYXJndW1lbnQsIGNvbnRleHQuU1RBVElDX0RSQVcpIGlzIHVuZGVmaW5lZC4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2Ut
Y2xvbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
b3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQKaW5kZXggMGNlOWMzZGI2NmNiNjc3NGYwMzg1
MmZhN2QyMTU5NzEzZThjMTFhYy4uYWFhOTZiZTk3MGQwYjNjNDk0OWIwNDU4OWQ4OWZjMTViNGUy
YTYwNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0
bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQKQEAgLTQ2LDkgKzQ2LDkg
QEAgTE9HOiBbb2JqZWN0IE9iamVjdF0gPT4gZW50cnkKIExPRzogW29iamVjdCBTZXRdID0+IHRy
dWUKIExPRzogW29iamVjdCBNYXBdID0+IFtvYmplY3QgT2JqZWN0XQogUEFTUzogZXZlbnREYXRh
IGlzIFtvYmplY3QgSW1hZ2VEYXRhXSBvZiB0eXBlIG9iamVjdAotUEFTUzogZXZlbnREYXRhIGlz
IDAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTksMjAsMjEs
MjIsMjMsMjQsMjUsMjYsMjcsMjgsMjksMzAsMzEsMzIsMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAs
NDEsNDIsNDMsNDQsNDUsNDYsNDcsNDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsNTgsNTks
NjAsNjEsNjIsNjMsNjQsNjUsNjYsNjcsNjgsNjksNzAsNzEsNzIsNzMsNzQsNzUsNzYsNzcsNzgs
NzksODAsODEsODIsODMsODQsODUsODYsODcsODgsODksOTAsOTEsOTIsOTMsOTQsOTUsOTYsOTcs
OTgsOTksMTAwLDEwMSwxMDIsMTAzLDEwNCwxMDUsMTA2LDEwNywxMDgsMTA5LDExMCwxMTEsMTEy
LDExMywxMTQsMTE1LDExNiwxMTcsMTE4LDExOSwxMjAsMTIxLDEyMiwxMjMsMTI0LDEyNSwxMjYs
MTI3LDEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwx
NDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1
NSwxNTYsMTU3LDE1OCwxNTksMTYwLDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5
LDE3MCwxNzEsMTcyLDE3MywxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMs
MTg0LDE4NSwxODYsMTg3LDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5Nywx
OTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjA4LDIwOSwyMTAsMjExLDIx
MiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDIyMSwyMjIsMjIzLDIyNCwyMjUsMjI2
LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAs
MjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwyNDksMjUwLDI1MSwyNTIsMjUzLDI1NCwy
NTUsMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOSwyMCwy
MSwyMiwyMywyNCwyNSwyNiwyNywyOCwyOSwzMCwzMSwzMiwzMywzNCwzNSwzNiwzNywzOCwzOSw0
MCw0MSw0Miw0Myw0NCw0NSw0Niw0Nyw0OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw1
OSw2MCw2MSw2Miw2Myw2NCw2NSw2Niw2Nyw2OCw2OSw3MCw3MSw3Miw3Myw3NCw3NSw3Niw3Nyw3
OCw3OSw4MCw4MSw4Miw4Myw4NCw4NSw4Niw4Nyw4OCw4OSw5MCw5MSw5Miw5Myw5NCw5NSw5Niw5
Nyw5OCw5OSwxMDAsMTAxLDEwMiwxMDMsMTA0LDEwNSwxMDYsMTA3LDEwOCwxMDksMTEwLDExMSwx
MTIsMTEzLDExNCwxMTUsMTE2LDExNywxMTgsMTE5LDEyMCwxMjEsMTIyLDEyMywxMjQsMTI1LDEy
NiwxMjcsMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQw
LDE0MSwxNDIsMTQzIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMgW29iamVjdCBV
aW50OENsYW1wZWRBcnJheV0gb2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyBbb2Jq
ZWN0IEltYWdlRGF0YV0gb2YgdHlwZSBvYmplY3QKLVBBU1M6IGV2ZW50RGF0YSBpcyAwLDEsMiwz
LDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0
LDI1LDI2LDI3LDI4LDI5LDMwLDMxLDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQz
LDQ0LDQ1LDQ2LDQ3LDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDU4LDU5LDYwLDYxLDYy
LDYzLDY0LDY1LDY2LDY3LDY4LDY5LDcwLDcxLDcyLDczLDc0LDc1LDc2LDc3LDc4LDc5LDgwLDgx
LDgyLDgzLDg0LDg1LDg2LDg3LDg4LDg5LDkwLDkxLDkyLDkzLDk0LDk1LDk2LDk3LDk4LDk5LDEw
MCwxMDEsMTAyLDEwMywxMDQsMTA1LDEwNiwxMDcsMTA4LDEwOSwxMTAsMTExLDExMiwxMTMsMTE0
LDExNSwxMTYsMTE3LDExOCwxMTksMTIwLDEyMSwxMjIsMTIzLDEyNCwxMjUsMTI2LDEyNywxMjgs
MTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0Miwx
NDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1
NywxNTgsMTU5LDE2MCwxNjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcx
LDE3MiwxNzMsMTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUs
MTg2LDE4NywxODgsMTg5LDE5MCwxOTEsMTkyLDE5MywxOTQsMTk1LDE5NiwxOTcsMTk4LDE5OSwy
MDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LDIwOCwyMDksMjEwLDIxMSwyMTIsMjEzLDIx
NCwyMTUsMjE2LDIxNywyMTgsMjE5LDIyMCwyMjEsMjIyLDIyMywyMjQsMjI1LDIyNiwyMjcsMjI4
LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3LDIzOCwyMzksMjQwLDI0MSwyNDIs
MjQzLDI0NCwyNDUsMjQ2LDI0NywyNDgsMjQ5LDI1MCwyNTEsMjUyLDI1MywyNTQsMjU1LDAsMSwy
LDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTksMjAsMjEsMjIsMjMs
MjQsMjUsMjYsMjcsMjgsMjksMzAsMzEsMzIsMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIs
NDMsNDQsNDUsNDYsNDcsNDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsNTgsNTksNjAsNjEs
NjIsNjMsNjQsNjUsNjYsNjcsNjgsNjksNzAsNzEsNzIsNzMsNzQsNzUsNzYsNzcsNzgsNzksODAs
ODEsODIsODMsODQsODUsODYsODcsODgsODksOTAsOTEsOTIsOTMsOTQsOTUsOTYsOTcsOTgsOTks
MTAwLDEwMSwxMDIsMTAzLDEwNCwxMDUsMTA2LDEwNywxMDgsMTA5LDExMCwxMTEsMTEyLDExMywx
MTQsMTE1LDExNiwxMTcsMTE4LDExOSwxMjAsMTIxLDEyMiwxMjMsMTI0LDEyNSwxMjYsMTI3LDEy
OCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQy
LDE0MyBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIFtvYmplY3QgVWludDhDbGFt
cGVkQXJyYXldIG9mIHR5cGUgb2JqZWN0CiBQQVNTOiBldmVudERhdGEgaXMgNDIgb2YgdHlwZSBu
dW1iZXIKIFBBU1M6IGV2ZW50RGF0YSBpcyA0MiBvZiB0eXBlIG51bWJlcgogUEFTUzogZXZhbFRo
dW5rIE9LCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>