<?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>123587</bug_id>
          
          <creation_ts>2013-10-31 13:18:08 -0700</creation_ts>
          <short_desc>Enable WebCrypto on Mac</short_desc>
          <delta_ts>2013-10-31 14:48:16 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>122679</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>syoichi</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>945650</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-10-31 13:18:08 -0700</bug_when>
    <thetext>There is only one algorithm yet, but it builds and it has tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945654</commentid>
    <comment_count>1</comment_count>
      <attachid>215670</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-10-31 13:24:31 -0700</bug_when>
    <thetext>Created attachment 215670
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945687</commentid>
    <comment_count>2</comment_count>
      <attachid>215670</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-31 14:12:03 -0700</bug_when>
    <thetext>Comment on attachment 215670
proposed patch

Rejecting attachment 215670 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=release&apos;, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
ringEPNS_9ExecStateERKN3WTF6StringE in JSCryptoAlgorithmBuilder.o
  &quot;__ZNK3JSC7JSValue6asCellEv&quot;, referenced from:
      __ZN3JSC8jsStringEPNS_9ExecStateERKN3WTF6StringE in JSCryptoAlgorithmBuilder.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)


** BUILD FAILED **


The following build commands failed:
	Ld /Volumes/Data/EWS/WebKit/WebKitBuild/Release/WebCore.framework/Versions/A/WebCore normal x86_64
(1 failure)

Full output: http://webkit-queues.appspot.com/results/18788045</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945694</commentid>
    <comment_count>3</comment_count>
      <attachid>215677</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-10-31 14:17:18 -0700</bug_when>
    <thetext>Created attachment 215677
patch for landing

With a release build fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945702</commentid>
    <comment_count>4</comment_count>
      <attachid>215677</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-31 14:48:14 -0700</bug_when>
    <thetext>Comment on attachment 215677
patch for landing

Clearing flags on attachment: 215677

Committed r158396: &lt;http://trac.webkit.org/changeset/158396&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945703</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-31 14:48:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215670</attachid>
            <date>2013-10-31 13:24:31 -0700</date>
            <delta_ts>2013-10-31 14:17:18 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>EnableSubtleCrypto.txt</filename>
            <type>text/plain</type>
            <size>73765</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU4MzkwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBA
CisyMDEzLTEwLTMxICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAg
ICAgIEVuYWJsZSBXZWJDcnlwdG8gb24gTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM1ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnOiBEbyBpdC4KKwogMjAxMy0xMC0zMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJlYWxseSByZW1vdmUgQ2FjaGVkVHJhbnNjZW5kZW50
YWxGdW5jdGlvbi5oLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gMTU4
Mzg3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsNyArMTU1LDcgQEAgRU5BQkxFX1NQ
RUVDSF9TWU5USEVTSVMgPSAkKEVOQUJMRV9TUEVFQwogRU5BQkxFX1NQRUVDSF9TWU5USEVTSVNf
bWFjb3N4ID0gRU5BQkxFX1NQRUVDSF9TWU5USEVTSVM7CiBFTkFCTEVfU1FMX0RBVEFCQVNFID0g
RU5BQkxFX1NRTF9EQVRBQkFTRTsKIEVOQUJMRV9TVUJQSVhFTF9MQVlPVVQgPSA7Ci1FTkFCTEVf
U1VCVExFX0NSWVBUTyA9IDsKK0VOQUJMRV9TVUJUTEVfQ1JZUFRPID0gRU5BQkxFX1NVQlRMRV9D
UllQVE87CiBFTkFCTEVfU1ZHID0gRU5BQkxFX1NWRzsKIEVOQUJMRV9TVkdfRk9OVFMgPSBFTkFC
TEVfU1ZHX0ZPTlRTOwogRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQgPSA7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNTgzOTApCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxMy0xMC0zMSAgQWxleGV5IFByb3NrdXJ5YWtvdiAg
PGFwQGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgV2ViQ3J5cHRvIG9uIE1hYworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNTg3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzogRW5hYmxlIGl0LgorCisgICAgICAgICogYmluZGlu
Z3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcDogQnVpbGQgZml4LgorCisgICAg
ICAgICogY3J5cHRvL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcDogKFdlYkNvcmU6OkNyeXB0
b0FsZ29yaXRobVJlZ2lzdHJ5OjpnZXRJZGVudGlmaWVyRm9yTmFtZSk6CisgICAgICAgIFNwZWNp
YWwgY2FzZSBlbXB0eSBrZXlzIHRvIGF2b2lkIHVwc2V0dGluZyBIYXNoTWFwLgorCisgICAgICAg
ICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5jcHA6IChXZWJDb3JlOjpD
cnlwdG9BbGdvcml0aG1TSEExOjpjcmVhdGUpOgorICAgICAgICBCdWlsZCBmaXguIENhbid0IHVz
ZSBtYWtlX3VuaXF1ZSwgYmVjYXVzZSBjb25zdHJ1Y3RvciBpcyBwcml2YXRlLgorCiAyMDEzLTEw
LTMxICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCB0eXBvIGZpeCBhZnRlciAxNTgzODYuIChidWlsZGZpeCBhZnRlciByMTU4MzY1KQpJ
bmRleDogU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcJKHJldmlzaW9uIDE1ODM4NykKKysrIFNvdXJjZS9XZWJDb3JlL0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUs
NyArMTU1LDcgQEAgRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMgPSAkKEVOQUJMRV9TUEVFQwogRU5B
QkxFX1NQRUVDSF9TWU5USEVTSVNfbWFjb3N4ID0gRU5BQkxFX1NQRUVDSF9TWU5USEVTSVM7CiBF
TkFCTEVfU1FMX0RBVEFCQVNFID0gRU5BQkxFX1NRTF9EQVRBQkFTRTsKIEVOQUJMRV9TVUJQSVhF
TF9MQVlPVVQgPSA7Ci1FTkFCTEVfU1VCVExFX0NSWVBUTyA9IDsKK0VOQUJMRV9TVUJUTEVfQ1JZ
UFRPID0gRU5BQkxFX1NVQlRMRV9DUllQVE87CiBFTkFCTEVfU1ZHID0gRU5BQkxFX1NWRzsKIEVO
QUJMRV9TVkdfRk9OVFMgPSBFTkFCTEVfU1ZHX0ZPTlRTOwogRU5BQkxFX1RFTVBMQVRFX0VMRU1F
TlQgPSA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRo
bURpY3Rpb25hcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAJKHJldmlzaW9uIDE1ODM4NykKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZ
UFRPKQogCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSE1BQy5oIgogI2luY2x1ZGUgIkNyeXB0
b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1IbWFj
UGFyYW1zLmgiCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCIKQEAgLTE0OSw3
ICsxNDgsNyBAQCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhCiAgICAg
cmV0dXJuIHN0ZDo6bW92ZShyZXN1bHQpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJh
bWV0ZXJzRm9yRW5jcnlwdChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllciwgSlNDOjpKU1ZhbHVlKQorc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0Zv
ckVuY3J5cHQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
YWxnb3JpdGhtLCBKU0M6OkpTVmFsdWUpCiB7CiAgICAgc3dpdGNoIChhbGdvcml0aG0pIHsKICAg
ICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU6CkBAIC0x
NzgsNyArMTc3LDcgQEAgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcgog
ICAgIH0KIH0KIAotc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpT
Q3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRlY3J5cHQoSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1
ZSkKK3N0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0Fs
Z29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZWNyeXB0KEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNDOjpKU1Zh
bHVlKQogewogICAgIHN3aXRjaCAoYWxnb3JpdGhtKSB7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81OgpAQCAtMzAzLDcgKzMwMiw3IEBAIHN0ZDo6
dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXIKICAgICB9CiB9CiAKLXN0ZDo6dW5p
cXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rp
b25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JHZW5lcmF0ZUtleShKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVlKQorc3RkOjp1bmlxdWVf
cHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFy
eTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckdlbmVyYXRlS2V5KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNDOjpKU1ZhbHVlKQogewogICAg
IHN3aXRjaCAoYWxnb3JpdGhtKSB7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpSU0FFU19QS0NTMV92MV81OgpAQCAtMzMyLDcgKzMzMSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXIKICAgICB9CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0
ZVBhcmFtZXRlcnNGb3JEZXJpdmVLZXkoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSkKK3N0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFt
ZXRlcnNGb3JEZXJpdmVLZXkoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXIgYWxnb3JpdGhtLCBKU0M6OkpTVmFsdWUpCiB7CiAgICAgc3dpdGNoIChhbGdvcml0
aG0pIHsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3Yx
XzU6CkBAIC0zNjEsNyArMzYwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcgogICAgIH0KIH0KIAotc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRl
cml2ZUJpdHMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIs
IEpTQzo6SlNWYWx1ZSkKK3N0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
PiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZXJpdmVC
aXRzKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29y
aXRobSwgSlNDOjpKU1ZhbHVlKQogewogICAgIHN3aXRjaCAoYWxnb3JpdGhtKSB7CiAgICAgY2Fz
ZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81OgpAQCAtNDIyLDcg
KzQyMSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXIKICAgICB9
CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0
b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JFeHBvcnRLZXkoSlNDOjpF
eGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSkK
K3N0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29y
aXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JFeHBvcnRLZXkoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU0M6OkpTVmFs
dWUpCiB7CiAgICAgc3dpdGNoIChhbGdvcml0aG0pIHsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU6CkBAIC00NTEsNyArNDUwLDcgQEAgc3RkOjp1
bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcgogICAgIH0KIH0KIAotc3RkOjp1bmlx
dWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlv
bmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvcldyYXBLZXkoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSkKK3N0ZDo6dW5pcXVlX3B0cjxD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNy
ZWF0ZVBhcmFtZXRlcnNGb3JXcmFwS2V5KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNDOjpKU1ZhbHVlKQogewogICAgIHN3aXRjaCAo
YWxnb3JpdGhtKSB7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19Q
S0NTMV92MV81OgpAQCAtNDgwLDcgKzQ3OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXIKICAgICB9CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRl
cnNGb3JVbndyYXBLZXkoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIsIEpTQzo6SlNWYWx1ZSkKK3N0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JV
bndyYXBLZXkoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
YWxnb3JpdGhtLCBKU0M6OkpTVmFsdWUpCiB7CiAgICAgc3dpdGNoIChhbGdvcml0aG0pIHsKICAg
ICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU6CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5j
cHAJKHJldmlzaW9uIDE1ODM4NykKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdv
cml0aG1SZWdpc3RyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDkgQEAgQ3J5cHRv
QWxnb3JpdGhtUmVnaXN0cnk6OkNyeXB0b0FsZ29yaXRobQogCiBib29sIENyeXB0b0FsZ29yaXRo
bVJlZ2lzdHJ5OjpnZXRJZGVudGlmaWVyRm9yTmFtZShjb25zdCBTdHJpbmcmIG5hbWUsIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXImIHJlc3VsdCkKIHsKKyAgICBpZiAobmFtZS5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGF1dG8gaXRlciA9IG1fbmFtZVRvSWRlbnRp
Zmllck1hcC5maW5kKG5hbWUubG93ZXIoKSk7CiAgICAgaWYgKGl0ZXIgPT0gbV9uYW1lVG9JZGVu
dGlmaWVyTWFwLmVuZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEx
LmNwcAkocmV2aXNpb24gMTU4Mzg3KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcg
QEAgQ3J5cHRvQWxnb3JpdGhtU0hBMTo6fkNyeXB0b0FsZ29yaXRobVNIQQogCiBzdGQ6OnVuaXF1
ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtPiBDcnlwdG9BbGdvcml0aG1TSEExOjpjcmVhdGUoKQogewot
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENyeXB0b0FsZ29yaXRobVNIQTE+KCk7CisgICAg
cmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG0+KG5ldyBDcnlwdG9BbGdvcml0
aG1TSEExKTsKIH0KIAogQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBDcnlwdG9BbGdvcml0aG1T
SEExOjppZGVudGlmaWVyKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1ODM5MCkK
KysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEy
IEBACisyMDEzLTEwLTMxICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisg
ICAgICAgIEVuYWJsZSBXZWJDcnlwdG8gb24gTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM1ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnOiBEbyBpdC4KKwogMjAxMy0xMC0zMSAgU2VyZ2lvIENvcnJlaWEgIDxzZXJnaW8uY29y
cmVpYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtXSzJdIENvbnZlcnQgU2VjY29tcEZpbHRl
cnMgdG8gdXNpbmcgdW5pcXVlX3B0ciBpbnN0ZWFkIG9mIE93blB0ci9QYXNzT3duUHRyCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZwkocmV2aXNpb24gMTU4Mzg3KQorKysgU291cmNlL1dlYktpdDIvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTE1NSw3ICsx
NTUsNyBAQCBFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUyA9ICQoRU5BQkxFX1NQRUVDCiBFTkFCTEVf
U1BFRUNIX1NZTlRIRVNJU19tYWNvc3ggPSBFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUzsKIEVOQUJM
RV9TUUxfREFUQUJBU0UgPSBFTkFCTEVfU1FMX0RBVEFCQVNFOwogRU5BQkxFX1NVQlBJWEVMX0xB
WU9VVCA9IDsKLUVOQUJMRV9TVUJUTEVfQ1JZUFRPID0gOworRU5BQkxFX1NVQlRMRV9DUllQVE8g
PSBFTkFCTEVfU1VCVExFX0NSWVBUTzsKIEVOQUJMRV9TVkcgPSBFTkFCTEVfU1ZHOwogRU5BQkxF
X1NWR19GT05UUyA9IEVOQUJMRV9TVkdfRk9OVFM7CiBFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCA9
IDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1ODM5MCkKKysrIFNvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEzLTEw
LTMxICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJs
ZSBXZWJDcnlwdG8gb24gTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjM1ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOiBEbyBp
dC4KKwogMjAxMy0xMC0zMCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZW1vdmUgY29kZSBmb3IgTWFjIExpb24KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZp
c2lvbiAxNTgzODcpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMTU1LDcgKzE1NSw3IEBAIEVOQUJM
RV9TUEVFQ0hfU1lOVEhFU0lTID0gJChFTkFCTEVfU1BFRUMKIEVOQUJMRV9TUEVFQ0hfU1lOVEhF
U0lTX21hY29zeCA9IEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTOwogRU5BQkxFX1NRTF9EQVRBQkFT
RSA9IEVOQUJMRV9TUUxfREFUQUJBU0U7CiBFTkFCTEVfU1VCUElYRUxfTEFZT1VUID0gOwotRU5B
QkxFX1NVQlRMRV9DUllQVE8gPSA7CitFTkFCTEVfU1VCVExFX0NSWVBUTyA9IEVOQUJMRV9TVUJU
TEVfQ1JZUFRPOwogRU5BQkxFX1NWRyA9IEVOQUJMRV9TVkc7CiBFTkFCTEVfU1ZHX0ZPTlRTID0g
RU5BQkxFX1NWR19GT05UUzsKIEVOQUJMRV9URU1QTEFURV9FTEVNRU5UID0gOwpJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gMTU4MzkwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsNjAgQEAKKzIwMTMtMTAtMzEgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBh
cHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIFdlYkNyeXB0byBvbiBNYWMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzU4NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoK
KyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25z
OgorICAgICAgICBPbmx5IHNraXBwaW5nIG9uIHNwZWNpZmljIHBsYXRmb3JtcyBub3cuCisKKyAg
ICAgICAgKiBjcnlwdG86IEFkZGVkLgorICAgICAgICAqIGNyeXB0by9jcnlwdG8tZ2MtZXhwZWN0
ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tZ2MtZXhwZWN0
ZWQudHh0LgorICAgICAgICAqIGNyeXB0by9jcnlwdG8tZ2MuaHRtbDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLWdjLmh0bWwuCisgICAgICAgICogY3J5cHRvL2NyeXB0
by1yYW5kb20tdmFsdWVzLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvc2Vj
dXJpdHkvY3J5cHRvLXJhbmRvbS12YWx1ZXMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0
by9jcnlwdG8tcmFuZG9tLXZhbHVlcy1saW1pdHMtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBM
YXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tcmFuZG9tLXZhbHVlcy1saW1pdHMtZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIGNyeXB0by9jcnlwdG8tcmFuZG9tLXZhbHVlcy1saW1pdHMuaHRtbDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXJhbmRvbS12YWx1ZXMtbGlt
aXRzLmh0bWwuCisgICAgICAgICogY3J5cHRvL2NyeXB0by1yYW5kb20tdmFsdWVzLXR5cGVzLWV4
cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXJhbmRv
bS12YWx1ZXMtdHlwZXMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by9jcnlwdG8tcmFu
ZG9tLXZhbHVlcy10eXBlcy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9j
cnlwdG8tcmFuZG9tLXZhbHVlcy10eXBlcy5odG1sLgorICAgICAgICAqIGNyeXB0by9jcnlwdG8t
cmFuZG9tLXZhbHVlcy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlw
dG8tcmFuZG9tLXZhbHVlcy5odG1sLgorICAgICAgICAqIGNyeXB0by9zdWJ0bGU6IEFkZGVkLgor
ICAgICAgICAqIGNyeXB0by9zdWJ0bGUvYXJndW1lbnQtY29udmVyc2lvbi1leHBlY3RlZC50eHQ6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtYXJndW1lbnRz
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL2FyZ3VtZW50LWNvbnZlcnNp
b24uaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1h
cmd1bWVudHMuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL2djLTItZXhwZWN0ZWQudHh0
OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tc3VidGxlLWdjLTItZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by9zdWJ0bGUvZ2MtMi5odG1sOiBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tc3VidGxlLWdjLTIuaHRtbC4KKyAgICAgICAg
KiBjcnlwdG8vc3VidGxlL2djLTMtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0
cy9zZWN1cml0eS9jcnlwdG8tc3VidGxlLWdjLTMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNy
eXB0by9zdWJ0bGUvZ2MtMy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9j
cnlwdG8tc3VidGxlLWdjLTMuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL2djLWV4cGVj
dGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1n
Yy1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL3N1YnRsZS9nYy5odG1sOiBDb3BpZWQg
ZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tc3VidGxlLWdjLmh0bWwuCisgICAgICAg
ICogY3J5cHRvL3N1YnRsZS9yZXNvdXJjZXM6IEFkZGVkLgorICAgICAgICAqIGNyeXB0by9zdWJ0
bGUvcmVzb3VyY2VzL2NvbW1vbi5qczogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkv
cmVzb3VyY2VzL2NvbW1vbi5qcy4KKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL3NoYS0xLWV4cGVj
dGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1z
aGExLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL3NoYS0xLmh0bWw6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtc2hhMS5odG1sLgor
ICAgICAgICAqIHNlY3VyaXR5L2NyeXB0by1nYy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogc2VjdXJpdHkvY3J5cHRvLWdjLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogc2VjdXJp
dHkvY3J5cHRvLXJhbmRvbS12YWx1ZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IHNlY3VyaXR5L2NyeXB0by1yYW5kb20tdmFsdWVzLWxpbWl0cy1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogc2VjdXJpdHkvY3J5cHRvLXJhbmRvbS12YWx1ZXMtbGltaXRzLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogc2VjdXJpdHkvY3J5cHRvLXJhbmRvbS12YWx1ZXMtdHlwZXMt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHNlY3VyaXR5L2NyeXB0by1yYW5kb20t
dmFsdWVzLXR5cGVzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogc2VjdXJpdHkvY3J5cHRvLXJh
bmRvbS12YWx1ZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBzZWN1cml0eS9jcnlwdG8tc3Vi
dGxlLWFyZ3VtZW50cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogc2VjdXJpdHkv
Y3J5cHRvLXN1YnRsZS1hcmd1bWVudHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBzZWN1cml0
eS9jcnlwdG8tc3VidGxlLWdjLTItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHNl
Y3VyaXR5L2NyeXB0by1zdWJ0bGUtZ2MtMi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHNlY3Vy
aXR5L2NyeXB0by1zdWJ0bGUtZ2MtMy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
c2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1nYy0zLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogc2Vj
dXJpdHkvY3J5cHRvLXN1YnRsZS1nYy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
c2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1nYy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHNlY3Vy
aXR5L2NyeXB0by1zdWJ0bGUtc2hhMS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
c2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1zaGExLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogc2Vj
dXJpdHkvcmVzb3VyY2VzL2NvbW1vbi5qczogUmVtb3ZlZC4KKyAgICAgICAgTW92ZWQgdGVzdHMg
ZnJvbSBzZWN1cml0eS8gdG8gY3J5cHRvLy4KKwogMjAxMy0xMC0zMSAgTXlsZXMgQy4gTWF4Zmll
bGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgQ1NTMyB0ZXh0IGRlY29y
YXRpb24gaW1wbGVtZW50YXRpb24gYmVoaW5kIEVOQUJMRShDU1MzX1RFWFRfREVDT1JBVElPTikK
SW5kZXg6IExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTU4Mzg3KQorKysgTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtNzEsMTIgKzcxLDUgQEAgZmFzdC9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1jbG9uZS5odG1sIAogIyBTa2lwcGluZyBpdCBmb3Igbm93
LCB0aGVuIHB1dCBpdCBhZ2FpbiB3aGVuIHRoZSBzcGVjIGRlY2lkZXMgaXQKIGZhc3QvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW0tb25lbmRlZC5odG1sIFsgU2tpcCBdCiAKLSMgY3J5cHRvLnN1YnRs
ZSBpcyBub3QgeWV0IGVuYWJsZWQgb24gYW55IHBvcnRzCi13ZWJraXQub3JnL2IvMTIyNjc5IHNl
Y3VyaXR5L2NyeXB0by1zdWJ0bGUtZ2MuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzEyMjY3
OSBzZWN1cml0eS9jcnlwdG8tc3VidGxlLWdjLTIuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9i
LzEyMjY3OSBzZWN1cml0eS9jcnlwdG8tc3VidGxlLWdjLTMuaHRtbCBbIFNraXAgXQotd2Via2l0
Lm9yZy9iLzEyMjY3OSBzZWN1cml0eS9jcnlwdG8tc3VidGxlLXNoYTEuaHRtbCBbIFNraXAgXQot
d2Via2l0Lm9yZy9iLzEyMjY3OSBzZWN1cml0eS9jcnlwdG8tc3VidGxlLWFyZ3VtZW50cy5odG1s
IFsgU2tpcCBdCi0KIHdlYmtpdC5vcmcvYi8xMjM1NTUgWyBEZWJ1ZyBdIG1lZGlhL21lZGlhLWZy
YWdtZW50cy9UQzAwNTQuaHRtbCBbIENyYXNoIF0KIHdlYmtpdC5vcmcvYi8xMjM1NTUgWyBEZWJ1
ZyBdIG1lZGlhL21lZGlhLWZyYWdtZW50cy9UQzAwNjEuaHRtbCBbIENyYXNoIF0KSW5kZXg6IExh
eW91dFRlc3RzL2NyeXB0by9jcnlwdG8tZ2MtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2NyeXB0by9jcnlwdG8tZ2MtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNTgzNzUp
CShmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1nYy1leHBlY3RlZC50eHQ6MTU4Mzc1
KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL2NyeXB0by1nYy1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxMCBAQAorVGVzdCB0aGF0IHdpbmRvdy5jcnlwdG8gd3JhcHBlciBw
cmVzZXJ2ZXMgY3VzdG9tIHByb3BlcnRpZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHdpbmRvdy5jcnlwdG8uZm9vIGlzICJiYXIiCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRv
L2NyeXB0by1nYy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by9jcnlwdG8t
Z2MuaHRtbAkocmV2aXNpb24gMTU4Mzc1KQkoZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlw
dG8tZ2MuaHRtbDoxNTgzNzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vY3J5cHRvLWdjLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisK
K2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgd2luZG93LmNyeXB0byB3cmFwcGVyIHByZXNlcnZlcyBj
dXN0b20gcHJvcGVydGllcy4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiBz
dGFydFRlc3QoKQoreworICAgIHdpbmRvdy5jcnlwdG8uZm9vID0gImJhciI7CisgICAgZ2MoKTsK
KyAgICBzZXRUaW1lb3V0KGNvbnRpbnVlVGVzdCwgMTApOworfQorCitmdW5jdGlvbiBjb250aW51
ZVRlc3QoKQoreworICAgIGdjKCk7CisgICAgc2V0VGltZW91dChmaW5pc2hUZXN0LCAxMCk7Cit9
CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKQoreworICAgIGdjKCk7CisgICAgc2hvdWxkQmUoJ3dp
bmRvdy5jcnlwdG8uZm9vJywgJyJiYXIiJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3dp
bmRvdy5vbmxvYWQgPSBzdGFydFRlc3Q7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvY3J5cHRvL2NyeXB0by1yYW5kb20tdmFsdWVzLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vY3J5cHRvLXJhbmRvbS12YWx1ZXMtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAxNTgzNzUpCShmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2Ny
eXB0by1yYW5kb20tdmFsdWVzLWV4cGVjdGVkLnR4dDoxNTgzNzUpCisrKyBMYXlvdXRUZXN0cy9j
cnlwdG8vY3J5cHRvLXJhbmRvbS12YWx1ZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTIgQEAKK1Rlc3RzIGNyeXB0by5yYW5kb21WYWx1ZXMuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTICdjcnlwdG8nIGluIHdpbmRvdyBpcyB0cnVlCitQQVNT
ICdnZXRSYW5kb21WYWx1ZXMnIGluIHdpbmRvdy5jcnlwdG8gaXMgdHJ1ZQorUEFTUyBtYXRjaGlu
Z0J5dGVzIDwgMTAwIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vY3J5cHRvLXJhbmRvbS12
YWx1ZXMtbGltaXRzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlw
dG8vY3J5cHRvLXJhbmRvbS12YWx1ZXMtbGltaXRzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTU4
Mzc1KQkoZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tcmFuZG9tLXZhbHVlcy1saW1p
dHMtZXhwZWN0ZWQudHh0OjE1ODM3NSkKKysrIExheW91dFRlc3RzL2NyeXB0by9jcnlwdG8tcmFu
ZG9tLXZhbHVlcy1saW1pdHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTMgQEAKK1Rlc3RzIHRoZSBsaW1pdHMgb2YgY3J5cHRvLnJhbmRvbVZhbHVlcy4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgJ2NyeXB0bycgaW4gd2luZG93IGlzIHRydWUK
K1BBU1MgJ2dldFJhbmRvbVZhbHVlcycgaW4gd2luZG93LmNyeXB0byBpcyB0cnVlCitQQVNTIGNy
eXB0by5nZXRSYW5kb21WYWx1ZXMoYWxtb3N0VG9vTGFyZ2VBcnJheSkgZGlkIG5vdCB0aHJvdyBl
eGNlcHRpb24uCitQQVNTIGNyeXB0by5nZXRSYW5kb21WYWx1ZXModG9vTGFyZ2VBcnJheSkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBRdW90YUV4Y2VlZGVkRXJyb3I6IERPTSBFeGNlcHRpb24gMjIu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRl
eDogTGF5b3V0VGVzdHMvY3J5cHRvL2NyeXB0by1yYW5kb20tdmFsdWVzLWxpbWl0cy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by9jcnlwdG8tcmFuZG9tLXZhbHVlcy1saW1p
dHMuaHRtbAkocmV2aXNpb24gMTU4Mzc1KQkoZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlw
dG8tcmFuZG9tLXZhbHVlcy1saW1pdHMuaHRtbDoxNTgzNzUpCisrKyBMYXlvdXRUZXN0cy9jcnlw
dG8vY3J5cHRvLXJhbmRvbS12YWx1ZXMtbGltaXRzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlRlc3RzIHRoZSBsaW1pdHMgb2YgY3J5cHRvLnJhbmRvbVZhbHVlcy4iKTsKKwor
aWYgKCF3aW5kb3cuQXJyYXlCdWZmZXIpCisgICAgZGVidWcoIlRoaXMgdGVzdCByZXF1cmVzIEFy
cmF5QnVmZmVycyB0byBydW4hIik7CisKK3Nob3VsZEJlKCInY3J5cHRvJyBpbiB3aW5kb3ciLCAi
dHJ1ZSIpOworc2hvdWxkQmUoIidnZXRSYW5kb21WYWx1ZXMnIGluIHdpbmRvdy5jcnlwdG8iLCAi
dHJ1ZSIpOworCit0cnkgeworICAgIHZhciBhbG1vc3RUb29MYXJnZUFycmF5ID0gbmV3IFVpbnQ4
QXJyYXkoNjU1MzYpOworICAgIHZhciB0b29MYXJnZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoNjU1
MzcpOworCisgICAgc2hvdWxkTm90VGhyb3coImNyeXB0by5nZXRSYW5kb21WYWx1ZXMoYWxtb3N0
VG9vTGFyZ2VBcnJheSkiKTsKKyAgICBzaG91bGRUaHJvdygiY3J5cHRvLmdldFJhbmRvbVZhbHVl
cyh0b29MYXJnZUFycmF5KSIpOworfSBjYXRjaChleCkgeworICAgIGRlYnVnKGV4KTsKK30KKwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKKwpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL2Ny
eXB0by1yYW5kb20tdmFsdWVzLXR5cGVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9jcnlwdG8vY3J5cHRvLXJhbmRvbS12YWx1ZXMtdHlwZXMtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAxNTgzNzUpCShmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1yYW5kb20t
dmFsdWVzLXR5cGVzLWV4cGVjdGVkLnR4dDoxNTgzNzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8v
Y3J5cHRvLXJhbmRvbS12YWx1ZXMtdHlwZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNTIgQEAKK1Rlc3RzIHdoaWNoIHR5cGVzIGFyZSB2YWxpZCBmb3IgY3J5cHRvLnJh
bmRvbVZhbHVlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgJ2NyeXB0
bycgaW4gd2luZG93IGlzIHRydWUKK1BBU1MgJ2dldFJhbmRvbVZhbHVlcycgaW4gd2luZG93LmNy
eXB0byBpcyB0cnVlCitQQVNTIHJhbmRvbSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVp
bnQ4QXJyYXkoMykpIGlzIGRlZmluZWQuCitQQVNTIHJhbmRvbSBpcyBhbiBpbnN0YW5jZSBvZiBV
aW50OEFycmF5CitQQVNTIHZpZXcgPSBuZXcgVWludDhBcnJheSgzKSBpcyBkZWZpbmVkLgorUEFT
UyByYW5kb20gPSBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHZpZXcpIGlzIGRlZmluZWQuCitQQVNT
IHJhbmRvbSBpcyB2aWV3CitQQVNTIHJhbmRvbSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3
IEludDhBcnJheSgzKSkgaXMgZGVmaW5lZC4KK1BBU1MgcmFuZG9tIGlzIGFuIGluc3RhbmNlIG9m
IEludDhBcnJheQorUEFTUyB2aWV3ID0gbmV3IEludDhBcnJheSgzKSBpcyBkZWZpbmVkLgorUEFT
UyByYW5kb20gPSBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHZpZXcpIGlzIGRlZmluZWQuCitQQVNT
IHJhbmRvbSBpcyB2aWV3CitQQVNTIHJhbmRvbSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3
IFVpbnQ4Q2xhbXBlZEFycmF5KDMpKSBpcyBkZWZpbmVkLgorUEFTUyByYW5kb20gaXMgYW4gaW5z
dGFuY2Ugb2YgVWludDhDbGFtcGVkQXJyYXkKK1BBU1MgdmlldyA9IG5ldyBVaW50OENsYW1wZWRB
cnJheSgzKSBpcyBkZWZpbmVkLgorUEFTUyByYW5kb20gPSBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVz
KHZpZXcpIGlzIGRlZmluZWQuCitQQVNTIHJhbmRvbSBpcyB2aWV3CitQQVNTIHJhbmRvbSA9IGNy
eXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQxNkFycmF5KDMpKSBpcyBkZWZpbmVkLgorUEFT
UyByYW5kb20gaXMgYW4gaW5zdGFuY2Ugb2YgVWludDE2QXJyYXkKK1BBU1MgdmlldyA9IG5ldyBV
aW50MTZBcnJheSgzKSBpcyBkZWZpbmVkLgorUEFTUyByYW5kb20gPSBjcnlwdG8uZ2V0UmFuZG9t
VmFsdWVzKHZpZXcpIGlzIGRlZmluZWQuCitQQVNTIHJhbmRvbSBpcyB2aWV3CitQQVNTIHJhbmRv
bSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IEludDE2QXJyYXkoMykpIGlzIGRlZmluZWQu
CitQQVNTIHJhbmRvbSBpcyBhbiBpbnN0YW5jZSBvZiBJbnQxNkFycmF5CitQQVNTIHZpZXcgPSBu
ZXcgSW50MTZBcnJheSgzKSBpcyBkZWZpbmVkLgorUEFTUyByYW5kb20gPSBjcnlwdG8uZ2V0UmFu
ZG9tVmFsdWVzKHZpZXcpIGlzIGRlZmluZWQuCitQQVNTIHJhbmRvbSBpcyB2aWV3CitQQVNTIHJh
bmRvbSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KDMpKSBpcyBkZWZp
bmVkLgorUEFTUyByYW5kb20gaXMgYW4gaW5zdGFuY2Ugb2YgVWludDMyQXJyYXkKK1BBU1Mgdmll
dyA9IG5ldyBVaW50MzJBcnJheSgzKSBpcyBkZWZpbmVkLgorUEFTUyByYW5kb20gPSBjcnlwdG8u
Z2V0UmFuZG9tVmFsdWVzKHZpZXcpIGlzIGRlZmluZWQuCitQQVNTIHJhbmRvbSBpcyB2aWV3CitQ
QVNTIHJhbmRvbSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IEludDMyQXJyYXkoMykpIGlz
IGRlZmluZWQuCitQQVNTIHJhbmRvbSBpcyBhbiBpbnN0YW5jZSBvZiBJbnQzMkFycmF5CitQQVNT
IHZpZXcgPSBuZXcgSW50MzJBcnJheSgzKSBpcyBkZWZpbmVkLgorUEFTUyByYW5kb20gPSBjcnlw
dG8uZ2V0UmFuZG9tVmFsdWVzKHZpZXcpIGlzIGRlZmluZWQuCitQQVNTIHJhbmRvbSBpcyB2aWV3
CitQQVNTIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IEZsb2F0MzJBcnJheSgzKSkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBUeXBlTWlzbWF0Y2hFcnJvcjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BB
U1MgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgRmxvYXQ2NEFycmF5KDMpKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IFR5cGVNaXNtYXRjaEVycm9yOiBET00gRXhjZXB0aW9uIDE3LgorUEFTUyBi
dWZmZXIgPSBuZXcgVWludDhBcnJheSgzMikgaXMgZGVmaW5lZC4KK1BBU1MgYnVmZmVyLmJ1ZmZl
ciBpcyBkZWZpbmVkLgorUEFTUyB2aWV3ID0gbmV3IERhdGFWaWV3KGJ1ZmZlci5idWZmZXIpIGlz
IGRlZmluZWQuCitQQVNTIGNyeXB0by5nZXRSYW5kb21WYWx1ZXModmlldykgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBUeXBlTWlzbWF0Y2hFcnJvcjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9jcnlwdG8vY3J5cHRvLXJhbmRvbS12YWx1ZXMtdHlwZXMuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9jcnlwdG8vY3J5cHRvLXJhbmRvbS12YWx1ZXMtdHlwZXMuaHRtbAkocmV2
aXNpb24gMTU4Mzc1KQkoZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tcmFuZG9tLXZh
bHVlcy10eXBlcy5odG1sOjE1ODM3NSkKKysrIExheW91dFRlc3RzL2NyeXB0by9jcnlwdG8tcmFu
ZG9tLXZhbHVlcy10eXBlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTcgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsaXRp
ZXMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0
cyB3aGljaCB0eXBlcyBhcmUgdmFsaWQgZm9yIGNyeXB0by5yYW5kb21WYWx1ZXMuIik7CisKK2lm
ICghd2luZG93LkFycmF5QnVmZmVyKQorICAgIGRlYnVnKCJUaGlzIHRlc3QgcmVxdXJlcyBBcnJh
eUJ1ZmZlcnMgdG8gcnVuISIpOworCitzaG91bGRCZSgiJ2NyeXB0bycgaW4gd2luZG93IiwgInRy
dWUiKTsKK3Nob3VsZEJlKCInZ2V0UmFuZG9tVmFsdWVzJyBpbiB3aW5kb3cuY3J5cHRvIiwgInRy
dWUiKTsKKworZnVuY3Rpb24gY2hlY2tJbnRlZ2VyVHlwZXMoKSB7CisgICAgdmFyIGludGVnZXJU
eXBlcyA9IFsKKyAgICAgICAgIlVpbnQ4QXJyYXkiLCAiSW50OEFycmF5IiwgIlVpbnQ4Q2xhbXBl
ZEFycmF5IiwKKyAgICAgICAgIlVpbnQxNkFycmF5IiwgIkludDE2QXJyYXkiLAorICAgICAgICAi
VWludDMyQXJyYXkiLCAiSW50MzJBcnJheSIsCisgICAgXTsKKyAgICBpbnRlZ2VyVHlwZXMuZm9y
RWFjaChmdW5jdGlvbihhcnJheVR5cGUpIHsKKyAgICAgICAgc2hvdWxkQmVEZWZpbmVkKCJyYW5k
b20gPSBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyAiK2FycmF5VHlwZSsiKDMpKSIpOworICAg
ICAgICBzaG91bGRCZVR5cGUoInJhbmRvbSIsIGFycmF5VHlwZSk7CisKKyAgICAgICAgc2hvdWxk
QmVEZWZpbmVkKCJ2aWV3ID0gbmV3ICIrYXJyYXlUeXBlKyIoMykiKTsKKyAgICAgICAgc2hvdWxk
QmVEZWZpbmVkKCJyYW5kb20gPSBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHZpZXcpIik7CisgICAg
ICAgIHNob3VsZEJlKCJyYW5kb20iLCAidmlldyIpOworICAgIH0pOworfQorCitmdW5jdGlvbiBj
aGVja05vbkludGVnZXJUeXBlcygpIHsKKyAgICB2YXIgZmxvYXRUeXBlcyA9IFsKKyAgICAgICAg
IkZsb2F0MzJBcnJheSIsICJGbG9hdDY0QXJyYXkiLAorICAgIF07CisgICAgZmxvYXRUeXBlcy5m
b3JFYWNoKGZ1bmN0aW9uKGFycmF5VHlwZSkgeworICAgICAgICBzaG91bGRUaHJvdygiY3J5cHRv
LmdldFJhbmRvbVZhbHVlcyhuZXcgIithcnJheVR5cGUrIigzKSkiKTsKKyAgICB9KTsKKworICAg
IHNob3VsZEJlRGVmaW5lZCgiYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoMzIpIik7CisgICAgc2hv
dWxkQmVEZWZpbmVkKCJidWZmZXIuYnVmZmVyIik7CisgICAgc2hvdWxkQmVEZWZpbmVkKCJ2aWV3
ID0gbmV3IERhdGFWaWV3KGJ1ZmZlci5idWZmZXIpIik7CisgICAgc2hvdWxkVGhyb3coImNyeXB0
by5nZXRSYW5kb21WYWx1ZXModmlldykiKTsKK30KKworY2hlY2tJbnRlZ2VyVHlwZXMoKTsKK2No
ZWNrTm9uSW50ZWdlclR5cGVzKCk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCisKSW5k
ZXg6IExheW91dFRlc3RzL2NyeXB0by9jcnlwdG8tcmFuZG9tLXZhbHVlcy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by9jcnlwdG8tcmFuZG9tLXZhbHVlcy5odG1sCShyZXZp
c2lvbiAxNTgzNzUpCShmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1yYW5kb20tdmFs
dWVzLmh0bWw6MTU4Mzc1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL2NyeXB0by1yYW5kb20tdmFs
dWVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWxpdGllcy5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIGNyeXB0by5yYW5k
b21WYWx1ZXMuIik7CisKK2lmICghd2luZG93LkFycmF5QnVmZmVyKQorICAgIGRlYnVnKCJUaGlz
IHRlc3QgcmVxdXJlcyBBcnJheUJ1ZmZlcnMgdG8gcnVuISIpOworCitzaG91bGRCZSgiJ2NyeXB0
bycgaW4gd2luZG93IiwgInRydWUiKTsKK3Nob3VsZEJlKCInZ2V0UmFuZG9tVmFsdWVzJyBpbiB3
aW5kb3cuY3J5cHRvIiwgInRydWUiKTsKKwordHJ5IHsKKyAgICAvLyBGSVhNRTogVGhpcyB0ZXN0
IGlzIGZsYWt5LiAgSWYgd2UgcmFuIHRoaXMgdGVzdCBldmVyeSBzZWNvbmQgc2luY2UgdGhlCisg
ICAgLy8gICAgICAgIGJlZ2lubmluZyBvZiB0aGUgdW5pdmVyc2UsIG9uIGF2ZXJhZ2UsIGl0IHdv
dWxkIGhhdmUgZmFpbGVkCisgICAgLy8gICAgICAgIDJeey03NDh9IHRpbWVzLgorCisgICAgdmFy
IHJlZmVyZW5jZSA9IG5ldyBVaW50OEFycmF5KDEwMCk7CisgICAgdmFyIHNhbXBsZSA9IG5ldyBV
aW50OEFycmF5KDEwMCk7CisKKyAgICBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHJlZmVyZW5jZSk7
CisgICAgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhzYW1wbGUpOworCisgICAgdmFyIG1hdGNoaW5n
Qnl0ZXMgPSAwOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWZlcmVuY2UubGVuZ3RoOyBp
KyspIHsKKyAgICAgICAgaWYgKHJlZmVyZW5jZVtpXSA9PSBzYW1wbGVbaV0pCisgICAgICAgICAg
ICBtYXRjaGluZ0J5dGVzKys7CisgICAgfQorCisgICAgc2hvdWxkQmUoIm1hdGNoaW5nQnl0ZXMg
PCAxMDAiLCAidHJ1ZSIpOworfSBjYXRjaChleCkgeworICAgIGRlYnVnKGV4KTsKK30KKworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKKwpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9hcmd1bWVudC1jb252ZXJzaW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2FyZ3VtZW50LWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAxNTgzODcpCShmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtYXJn
dW1lbnRzLWV4cGVjdGVkLnR4dDoxNTgzODcpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L2FyZ3VtZW50LWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNDAgQEAKK1Rlc3QgY3J5cHRvLnN1YnRsZSBhcmd1bWVudCBjb252ZXJzaW9uCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTSEExIG9mIG5ldyBVaW50OEFycmF5KFtdKSkKKyAg
ICA9IFtkYSAzOSBhMyBlZSA1ZSA2YiA0YiAwZCAzMiA1NSBiZiBlZiA5NSA2MCAxOCA5MCBhZiBk
OCAwNyAwOV0KKworUGFzc2luZyBhbGdvcml0aG0gbmFtZSBhcyBhIHN0cmluZyBvYmplY3QuLi4K
K1BBU1MgLi4uc3VjY2VlZGVkCisKK1Bhc3NpbmcgYWxnb3JpdGhtIG5hbWUgYXMgYSBzdHJpbmcg
b2JqZWN0IGluIGEgZGljdGlvbmFyeS4uLgorUEFTUyAuLi5zdWNjZWVkZWQKKworUGFzc2luZyBh
bGdvcml0aG0gbmFtZSBhcyBhbiBvYmplY3Qgd2l0aCB0b1N0cmluZworUEFTUyAuLi5zdWNjZWVk
ZWQKKworUGFzc2luZyBpbnZhbGlkIGRhdGEgdG8gZGlnZXN0KCkKK1BBU1MgY3J5cHRvLnN1YnRs
ZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3Qg
ZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEt
MSd9LCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBj
cnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIDEwKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTog
J3NoYS0xJ30sIFsxMF0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE9ubHkgQXJyYXlCdWZm
ZXIgYW5kIEFycmF5QnVmZmVyVmlldyBvYmplY3RzIGNhbiBiZSBwYXJ0IG9mIENyeXB0b09wZXJh
dGlvbkRhdGEgc2VxdWVuY2UuCitQQVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hh
LTEnfSwgbmV3IFVpbnQ4QXJyYXkoWzBdKSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogT25s
eSBBcnJheUJ1ZmZlciBhbmQgQXJyYXlCdWZmZXJWaWV3IG9iamVjdHMgY2FuIGJlIHBhcnQgb2Yg
Q3J5cHRvT3BlcmF0aW9uRGF0YSBzZXF1ZW5jZS4KKworUGFzc2luZyBpbnZhbGlkIGFsZ29yaXRo
bUlkZW50aWZpZXJzIHRvIGRpZ2VzdCgpCitQQVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHsgdG9T
dHJpbmc6ZnVuY3Rpb24oKSB7IHJldHVybiAnc2hhLTEnIH0gfSwgW2RhdGFdKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IE5vdFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9uIDkuCitQQVNTIGNy
eXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAnJ30sIFtkYXRhXSkgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgorUEFTUyBjcnlwdG8uc3Vi
dGxlLmRpZ2VzdCh7bmFtZTogbnVsbH0sIFtkYXRhXSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBO
b3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgorUEFTUyBjcnlwdG8uc3VidGxlLmRp
Z2VzdCh7bmFtZTogdW5kZWZpbmVkfSwgW2RhdGFdKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5v
dFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9uIDkuCitQQVNTIGNyeXB0by5zdWJ0bGUuZGln
ZXN0KHtuYW1lOiAnc2hhJ30sIFtkYXRhXSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBw
b3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgorUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7
bmFtZTogMX0sIFtkYXRhXSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBwb3J0ZWRFcnJv
cjogRE9NIEV4Y2VwdGlvbiA5LgorUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnJywgW2RhdGFd
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9u
IDkuCitQQVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KG51bGwsIFtkYXRhXSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgorUEFTUyBjcnlw
dG8uc3VidGxlLmRpZ2VzdCh1bmRlZmluZWQsIFtkYXRhXSkgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgorUEFTUyBjcnlwdG8uc3VidGxl
LmRpZ2VzdCgxLCBbZGF0YV0pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90U3VwcG9ydGVkRXJy
b3I6IERPTSBFeGNlcHRpb24gOS4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe30sIFtkYXRh
XSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlv
biA5LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYXJndW1lbnQtY29udmVyc2lvbi5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYXJndW1lbnQtY29udmVy
c2lvbi5odG1sCShyZXZpc2lvbiAxNTgzODcpCShmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2Ny
eXB0by1zdWJ0bGUtYXJndW1lbnRzLmh0bWw6MTU4Mzg3KQorKysgTGF5b3V0VGVzdHMvY3J5cHRv
L3N1YnRsZS9hcmd1bWVudC1jb252ZXJzaW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbigiVGVzdCBjcnlwdG8uc3VidGxlIGFyZ3VtZW50IGNvbnZlcnNpb24iKTsKKworanNUZXN0
SXNBc3luYyA9IHRydWU7CisKK2lmICghd2luZG93LnN1YnRsZSkKKyAgICB3aW5kb3cuY3J5cHRv
LnN1YnRsZSA9IHdpbmRvdy5jcnlwdG8ud2Via2l0U3VidGxlOworCitQcm9taXNlLmZ1bGZpbGwo
bnVsbCkudGhlbihmdW5jdGlvbigpIHsKKyAgICAvLyBUaGlzIGxvb2tzIGxpa2UgaW52YWxpZCBp
bnB1dCwgYnV0IGl0IGFjdHVhbGx5IGlzbid0IC0gVWludDhBcnJheSBpcyBhIHNlcXVlbmNlIHRv
bywKKyAgICAvLyBzbyBpdCdzIGp1c3QgYW4gZW1wdHkgc2VxdWVuY2UsIHNhbWUgYXMgcGFzc2lu
ZyBbXS4KKyAgICBkZWJ1ZygiU0hBMSBvZiBuZXcgVWludDhBcnJheShbXSkpIik7CisgICAgcmV0
dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KCdzaGEtMScsIG5ldyBVaW50OEFycmF5KFtdKSk7Cit9
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHByaW50QWNjZXB0ZWRSZXN1bHQocmVzdWx0
KTsKKyAgICBkZWJ1ZygiXG5QYXNzaW5nIGFsZ29yaXRobSBuYW1lIGFzIGEgc3RyaW5nIG9iamVj
dC4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdChuZXcgU3RyaW5nKCdzaGEt
MScpLCBbXSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHRlc3RQYXNzZWQoIi4u
LnN1Y2NlZWRlZCIpOworICAgIGRlYnVnKCJcblBhc3NpbmcgYWxnb3JpdGhtIG5hbWUgYXMgYSBz
dHJpbmcgb2JqZWN0IGluIGEgZGljdGlvbmFyeS4uLiIpOworICAgIHJldHVybiBjcnlwdG8uc3Vi
dGxlLmRpZ2VzdCh7bmFtZTogbmV3IFN0cmluZygnc2hhLTEnKX0sIFtdKTsKK30pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7CisgICAgdGVzdFBhc3NlZCgiLi4uc3VjY2VlZGVkIik7CisgICAgZGVi
dWcoIlxuUGFzc2luZyBhbGdvcml0aG0gbmFtZSBhcyBhbiBvYmplY3Qgd2l0aCB0b1N0cmluZyIp
OworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogeyB0b1N0cmluZzpmdW5j
dGlvbigpIHsgcmV0dXJuICdzaGEtMScgfSB9IH0sIFtdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7CisgICAgdGVzdFBhc3NlZCgiLi4uc3VjY2VlZGVkIik7CisKKyAgICBkZWJ1ZygiXG5Q
YXNzaW5nIGludmFsaWQgZGF0YSB0byBkaWdlc3QoKSIpOworICAgIHNob3VsZFRocm93KCJjcnlw
dG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30pIik7CisgICAgc2hvdWxkVGhyb3coImNy
eXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSwgbnVsbCkiKTsKKyAgICBzaG91bGRU
aHJvdygiY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCAxMCkiKTsKKyAgICBz
aG91bGRUaHJvdygiY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCBbMTBdKSIp
OworICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30s
IG5ldyBVaW50OEFycmF5KFswXSkpIik7CisKKyAgICBkZWJ1ZygiXG5QYXNzaW5nIGludmFsaWQg
YWxnb3JpdGhtSWRlbnRpZmllcnMgdG8gZGlnZXN0KCkiKTsKKyAgICBkYXRhID0gbmV3IFVpbnQ4
QXJyYXkoWzBdKTsKKyAgICBzaG91bGRUaHJvdygiY3J5cHRvLnN1YnRsZS5kaWdlc3QoeyB0b1N0
cmluZzpmdW5jdGlvbigpIHsgcmV0dXJuICdzaGEtMScgfSB9LCBbZGF0YV0pIik7IC8vIEFsZ29y
aXRobSBub3JtYWxpemF0aW9uIGRvZXNuJ3QgYXR0ZW1wdCB0byBjYWxsIHRvU3RyaW5nLgorICAg
IHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJyd9LCBbZGF0YV0pIik7
CisgICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiBudWxsfSwgW2Rh
dGFdKSIpOworICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogdW5k
ZWZpbmVkfSwgW2RhdGFdKSIpOworICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2Vz
dCh7bmFtZTogJ3NoYSd9LCBbZGF0YV0pIik7CisgICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0
bGUuZGlnZXN0KHtuYW1lOiAxfSwgW2RhdGFdKSIpOworICAgIHNob3VsZFRocm93KCJjcnlwdG8u
c3VidGxlLmRpZ2VzdCgnJywgW2RhdGFdKSIpOworICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3Vi
dGxlLmRpZ2VzdChudWxsLCBbZGF0YV0pIik7CisgICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0
bGUuZGlnZXN0KHVuZGVmaW5lZCwgW2RhdGFdKSIpOworICAgIHNob3VsZFRocm93KCJjcnlwdG8u
c3VidGxlLmRpZ2VzdCgxLCBbZGF0YV0pIik7CisgICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0
bGUuZGlnZXN0KHt9LCBbZGF0YV0pIik7Cit9KS50aGVuKGZpbmlzaEpTVGVzdCk7CisKKzwvc2Ny
aXB0PgorCis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Fy
Z3VtZW50LWNvbnZlcnNpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL2FyZ3VtZW50LWNvbnZlcnNpb24uaHRtbAkod29ya2luZyBjb3B5KQorKysgTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9hcmd1bWVudC1jb252ZXJzaW9uLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNyArMSw3IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CkBAIC02
MCw2ICs2MCw2IEBAIFByb21pc2UuZnVsZmlsbChudWxsKS50aGVuKGZ1bmN0aW9uKCkgewogCiA8
L3NjcmlwdD4KIAotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9nYy0yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL2djLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNTgzNzUpCShmcm9tIExheW91dFRlc3Rz
L3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtZ2MtMi1leHBlY3RlZC50eHQ6MTU4Mzc1KQorKysgTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy0yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDEyIEBACitUZXN0IHRoYXQgd2luZG93LmNyeXB0by5zdWJ0bGUgd3JhcHBlciBw
cmVzZXJ2ZXMgY3VzdG9tIHByb3BlcnRpZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIFtvYmplY3QgQ3J5cHRvXSBpcyBkZWZpbmVkLgorUEFTUyBbb2JqZWN0IFdlYktp
dFN1YnRsZUNyeXB0b10gaXMgZGVmaW5lZC4KK1BBU1MgYW5vdGhlcldpbmRvd0NyeXB0by53ZWJr
aXRTdWJ0bGUuZm9vIGlzICJiYXIiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy0yLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy0yLmh0bWwJKHJl
dmlzaW9uIDE1ODM3NSkJKGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1n
Yy0yLmh0bWw6MTU4Mzc1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy0yLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisK
K2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgd2luZG93LmNyeXB0by5zdWJ0bGUgd3JhcHBlciBwcmVz
ZXJ2ZXMgY3VzdG9tIHByb3BlcnRpZXMuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFy
IGFub3RoZXJXaW5kb3dDcnlwdG87CisKK2Z1bmN0aW9uIHN0YXJ0VGVzdCgpCit7CisgICAgYW5v
dGhlcldpbmRvd0NyeXB0byA9IGZyYW1lc1swXS5jcnlwdG87CisgICAgc2hvdWxkQmVEZWZpbmVk
KGFub3RoZXJXaW5kb3dDcnlwdG8pOworICAgIHNob3VsZEJlRGVmaW5lZChhbm90aGVyV2luZG93
Q3J5cHRvLndlYmtpdFN1YnRsZSk7CisKKyAgICBhbm90aGVyV2luZG93Q3J5cHRvLndlYmtpdFN1
YnRsZS5mb28gPSAiYmFyIjsKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKVswXSk7CisgICAgZ2MoKTsKKyAgICBzZXRU
aW1lb3V0KGNvbnRpbnVlVGVzdCwgMTApOworfQorCitmdW5jdGlvbiBjb250aW51ZVRlc3QoKQor
eworICAgIGdjKCk7CisgICAgc2V0VGltZW91dChmaW5pc2hUZXN0LCAxMCk7Cit9CisKK2Z1bmN0
aW9uIGZpbmlzaFRlc3QoKQoreworICAgIGdjKCk7CisgICAgc2hvdWxkQmUoJ2Fub3RoZXJXaW5k
b3dDcnlwdG8ud2Via2l0U3VidGxlLmZvbycsICciYmFyIicpOworICAgIGZpbmlzaEpTVGVzdCgp
OworfQorCit3aW5kb3cub25sb2FkID0gc3RhcnRUZXN0OworCis8L3NjcmlwdD4KKzxpZnJhbWUg
c3JjPSJhYm91dDpibGFuayI+PC9pZnJhbWU+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2djLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL2djLTIuaHRtbAkod29ya2luZyBjb3B5KQorKysgTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9nYy0yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBACiA8aHRt
bD4KIDxoZWFkPgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPHNjcmlwdD4K
QEAgLTQxLDYgKzQxLDYgQEAgd2luZG93Lm9ubG9hZCA9IHN0YXJ0VGVzdDsKIAogPC9zY3JpcHQ+
CiA8aWZyYW1lIHNyYz0iYWJvdXQ6YmxhbmsiPjwvaWZyYW1lPgotPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy0zLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLTMtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxNTgzNzUpCShmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtZ2MtMy1l
eHBlY3RlZC50eHQ6MTU4Mzc1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy0zLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitUZXN0IHRoYXQgd2lu
ZG93LmNyeXB0byB3cmFwcGVyIHByb3RlY3RzIGFsbCBkZXBlbmRlbmNpZXMsIHNvIGl0IGNhbiBh
bHdheXMgYmUgdXNlZCB0byBjcmVhdGUgY3J5cHRvLnN1YnRsZS4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgW29iamVjdCBDcnlwdG9dIGlzIGRlZmluZWQuCitQQVNTIFtv
YmplY3QgV2ViS2l0U3VidGxlQ3J5cHRvXSBpcyBkZWZpbmVkLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvZ2MtMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvZ2MtMy5odG1sCShyZXZpc2lvbiAxNTgzNzUpCShmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5
L2NyeXB0by1zdWJ0bGUtZ2MtMy5odG1sOjE1ODM3NSkKKysrIExheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvZ2MtMy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IHdpbmRvdy5jcnlwdG8gd3Jh
cHBlciBwcm90ZWN0cyBhbGwgZGVwZW5kZW5jaWVzLCBzbyBpdCBjYW4gYWx3YXlzIGJlIHVzZWQg
dG8gY3JlYXRlIGNyeXB0by5zdWJ0bGUuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFy
IGFub3RoZXJXaW5kb3dDcnlwdG87CisKK2Z1bmN0aW9uIHN0YXJ0VGVzdCgpCit7CisgICAgYW5v
dGhlcldpbmRvd0NyeXB0byA9IGZyYW1lc1swXS5jcnlwdG87CisgICAgc2hvdWxkQmVEZWZpbmVk
KGFub3RoZXJXaW5kb3dDcnlwdG8pOworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpWzBdKTsKKyAgICBnYygpOworICAg
IHNldFRpbWVvdXQoY29udGludWVUZXN0LCAxMCk7Cit9CisKK2Z1bmN0aW9uIGNvbnRpbnVlVGVz
dCgpCit7CisgICAgZ2MoKTsKKyAgICBzZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDEwKTsKK30KKwor
ZnVuY3Rpb24gZmluaXNoVGVzdCgpCit7CisgICAgZ2MoKTsKKyAgICBzaG91bGRCZURlZmluZWQo
YW5vdGhlcldpbmRvd0NyeXB0by53ZWJraXRTdWJ0bGUpOworICAgIGZpbmlzaEpTVGVzdCgpOwor
fQorCit3aW5kb3cub25sb2FkID0gc3RhcnRUZXN0OworCis8L3NjcmlwdD4KKzxpZnJhbWUgc3Jj
PSJhYm91dDpibGFuayI+PC9pZnJhbWU+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL2djLTMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL2djLTMuaHRtbAkod29ya2luZyBjb3B5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRv
L3N1YnRsZS9nYy0zLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4K
IDxoZWFkPgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPHNjcmlwdD4KQEAg
LTM4LDYgKzM4LDYgQEAgd2luZG93Lm9ubG9hZCA9IHN0YXJ0VGVzdDsKIAogPC9zY3JpcHQ+CiA8
aWZyYW1lIHNyYz0iYWJvdXQ6YmxhbmsiPjwvaWZyYW1lPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE1ODM3
NSkJKGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1nYy1leHBlY3RlZC50
eHQ6MTU4Mzc1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorVGVzdCB0aGF0IHdpbmRvdy5jcnlwdG8u
c3VidGxlIHdyYXBwZXIgcHJlc2VydmVzIGN1c3RvbSBwcm9wZXJ0aWVzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyB3aW5kb3cuY3J5cHRvLndlYmtpdFN1YnRsZS5mb28g
aXMgImJhciIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy5odG1sCShyZXZpc2lvbiAxNTgzNzUpCShm
cm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtZ2MuaHRtbDoxNTgzNzUpCisr
KyBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRo
YXQgd2luZG93LmNyeXB0by5zdWJ0bGUgd3JhcHBlciBwcmVzZXJ2ZXMgY3VzdG9tIHByb3BlcnRp
ZXMuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gc3RhcnRUZXN0KCkKK3sK
KyAgICB3aW5kb3cuY3J5cHRvLndlYmtpdFN1YnRsZS5mb28gPSAiYmFyIjsKKyAgICBnYygpOwor
ICAgIHNldFRpbWVvdXQoY29udGludWVUZXN0LCAxMCk7Cit9CisKK2Z1bmN0aW9uIGNvbnRpbnVl
VGVzdCgpCit7CisgICAgZ2MoKTsKKyAgICBzZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDEwKTsKK30K
KworZnVuY3Rpb24gZmluaXNoVGVzdCgpCit7CisgICAgZ2MoKTsKKyAgICBzaG91bGRCZSgnd2lu
ZG93LmNyeXB0by53ZWJraXRTdWJ0bGUuZm9vJywgJyJiYXIiJyk7CisgICAgZmluaXNoSlNUZXN0
KCk7Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBzdGFydFRlc3Q7CisKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MuaHRtbAkod29ya2luZyBjb3B5KQor
KysgTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0y
LDcgKzIsNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8
Ym9keT4KIDxzY3JpcHQ+CkBAIC0zMyw2ICszMyw2IEBAIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKQog
d2luZG93Lm9ubG9hZCA9IHN0YXJ0VGVzdDsKIAogPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3NoYS0xLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3NoYS0xLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMTU4Mzg3KQkoZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tc3VidGxlLXNo
YTEtZXhwZWN0ZWQudHh0OjE1ODM4NykKKysrIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hh
LTEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTggQEAKK1Rlc3QgY3J5
cHRvLnN1YnRsZS5kaWdlc3QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTSEEx
IG9mIFtdCisgICAgPSBbZGEgMzkgYTMgZWUgNWUgNmIgNGIgMGQgMzIgNTUgYmYgZWYgOTUgNjAg
MTggOTAgYWYgZDggMDcgMDldCitTSEExIG9mIFsweDBdCisgICAgPSBbNWIgYTkgM2MgOWQgYjAg
Y2YgZjkgM2YgNTIgYjUgMjEgZDcgNDIgMGUgNDMgZjYgZWQgYTIgNzggNGZdCitTSEExIG9mIFsw
LCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0KKyAgICA9IFsyYyA3ZSA3YyAzOCA0ZiA3
OCAyOSA2OSA0MiA4MiBiMSBlMyBhNiAyMSA2ZCBlZiA4MCA4MiBkMCA1NV0KK1NIQTEgb2YgW25l
dyBVaW50OEFycmF5KFswLCAxLCAyLCAzLCA0XSksIG5ldyBVaW50OEFycmF5KDUsIDYsIDcsIDgs
IDksIDEwXSldCisgICAgPSBbMmMgN2UgN2MgMzggNGYgNzggMjkgNjkgNDIgODIgYjEgZTMgYTYg
MjEgNmQgZWYgODAgODIgZDAgNTVdCitQQVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoJ3No
YS0xJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhIGZ1bmN0
aW9uIChldmFsdWF0aW5nICdjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KCdzaGEtMScpJykuCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDog
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9zaGEtMS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hhLTEuaHRtbAkocmV2aXNpb24gMTU4Mzg3KQkoZnJvbSBM
YXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tc3VidGxlLXNoYTEuaHRtbDoxNTgzODcpCisrKyBM
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3NoYS0xLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVGVzdCBjcnlwdG8uc3VidGxlLmRpZ2VzdC4iKTsKKworanNUZXN0SXNBc3luYyA9
IHRydWU7CisKK2lmICghd2luZG93LnN1YnRsZSkKKyAgICB3aW5kb3cuY3J5cHRvLnN1YnRsZSA9
IHdpbmRvdy5jcnlwdG8ud2Via2l0U3VidGxlOworCitQcm9taXNlLmZ1bGZpbGwobnVsbCkudGhl
bihmdW5jdGlvbigpIHsKKyAgICBkZWJ1ZygiU0hBMSBvZiBbXSIpOworICAgIHJldHVybiBjcnlw
dG8uc3VidGxlLmRpZ2VzdCgnc2hhLTEnLCBbbmV3IFVpbnQ4QXJyYXkoW10pXSk7Cit9KS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHByaW50QWNjZXB0ZWRSZXN1bHQocmVzdWx0KTsKKwor
ICAgIGRlYnVnKCJTSEExIG9mIFsweDBdIikKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdl
c3Qoe25hbWU6ICdzaGEtMSd9LCBbbmV3IFVpbnQ4QXJyYXkoWzBdKV0pOworfSkudGhlbihmdW5j
dGlvbihyZXN1bHQpIHsKKyAgICBwcmludEFjY2VwdGVkUmVzdWx0KHJlc3VsdCk7CisKKyAgICBk
ZWJ1ZygiU0hBMSBvZiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdIik7CisgICAg
dmFyIGRhdGEgPSBuZXcgVWludDhBcnJheShbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwg
MTBdKTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCBb
ZGF0YV0pOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBwcmludEFjY2VwdGVkUmVz
dWx0KHJlc3VsdCk7CisKKyAgICBkZWJ1ZygiU0hBMSBvZiBbbmV3IFVpbnQ4QXJyYXkoWzAsIDEs
IDIsIDMsIDRdKSwgbmV3IFVpbnQ4QXJyYXkoNSwgNiwgNywgOCwgOSwgMTBdKV0iKTsKKyAgICBy
ZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCBbbmV3IFVpbnQ4QXJy
YXkoWzAsIDEsIDIsIDMsIDRdKSwgbmV3IFVpbnQ4QXJyYXkoWzUsIDYsIDcsIDgsIDksIDEwXSld
KTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHJpbnRBY2NlcHRlZFJlc3VsdChy
ZXN1bHQpOworICAgIC8vIEFsbCBTSEEtMSBjYW4gZG8gaXMgZGlnZXN0LgorICAgIHNob3VsZFRo
cm93KCJjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KCdzaGEtMScpIik7CisgICAgZmluaXNoSlNU
ZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL3NoYS0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9zaGEtMS5odG1sCSh3b3JraW5nIGNvcHkpCisrKyBMYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL3NoYS0xLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMi
Pjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CkBAIC00Myw2ICs0Myw2IEBAIFByb21pc2UuZnVs
ZmlsbChudWxsKS50aGVuKGZ1bmN0aW9uKCkgewogfSk7CiA8L3NjcmlwdD4KIAotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yZXNvdXJjZXMvY29tbW9uLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcmVzb3VyY2VzL2NvbW1v
bi5qcwkocmV2aXNpb24gMTU4Mzg3KQkoZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9yZXNvdXJj
ZXMvY29tbW9uLmpzOjE1ODM4NykKKysrIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcmVzb3Vy
Y2VzL2NvbW1vbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYzIEBACitmdW5jdGlvbiBp
bXBvcnRUZXN0S2V5cygpCit7CisgICAgdmFyIGtleUZvcm1hdCA9ICJzcGtpIjsKKyAgICB2YXIg
ZGF0YSA9IG5ldyBVaW50OEFycmF5KFtdKTsKKyAgICB2YXIgZXh0cmFjdGFibGUgPSBmYWxzZTsK
KyAgICB2YXIga2V5VXNhZ2VzID0gWydlbmNyeXB0JywgJ2RlY3J5cHQnLCAnc2lnbicsICd2ZXJp
ZnknXTsKKworICAgIHZhciBobWFjUHJvbWlzZSA9IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KGtl
eUZvcm1hdCwgZGF0YSwge25hbWU6ICdobWFjJywgaGFzaDoge25hbWU6ICdzaGEtMSd9fSwgZXh0
cmFjdGFibGUsIGtleVVzYWdlcyk7CisgICAgdmFyIHJzYVNzYVByb21pc2UgPSBjcnlwdG8uc3Vi
dGxlLmltcG9ydEtleShrZXlGb3JtYXQsIGRhdGEsIHtuYW1lOiAnUlNBU1NBLVBLQ1MxLXYxXzUn
LCBoYXNoOiB7bmFtZTogJ3NoYS0xJ319LCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzKTsKKyAgICB2
YXIgYWVzQ2JjUHJvbWlzZSA9IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KGtleUZvcm1hdCwgZGF0
YSwge25hbWU6ICdBRVMtQ0JDJ30sIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXMpOworICAgIHZhciBh
ZXNDYmNKdXN0RGVjcnlwdCA9IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KGtleUZvcm1hdCwgZGF0
YSwge25hbWU6ICdBRVMtQ0JDJ30sIGV4dHJhY3RhYmxlLCBbJ2RlY3J5cHQnXSk7CisKKyAgICBy
ZXR1cm4gUHJvbWlzZS5ldmVyeShobWFjUHJvbWlzZSwgcnNhU3NhUHJvbWlzZSwgYWVzQ2JjUHJv
bWlzZSwgYWVzQ2JjSnVzdERlY3J5cHQpLnRoZW4oZnVuY3Rpb24ocmVzdWx0cykgeworICAgICAg
ICByZXR1cm4geworICAgICAgICAgICAgaG1hY1NoYTE6IHJlc3VsdHNbMF0sCisgICAgICAgICAg
ICByc2FTc2FTaGExOiByZXN1bHRzWzFdLAorICAgICAgICAgICAgYWVzQ2JjOiByZXN1bHRzWzJd
LAorICAgICAgICAgICAgYWVzQ2JjSnVzdERlY3J5cHQ6IHJlc3VsdHNbM10sCisgICAgICAgIH07
CisgICAgfSk7Cit9CisKKy8vIEJ1aWxkcyBhIGhleCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2Yg
YW55IGFycmF5LWxpa2UgaW5wdXQgKGFycmF5IG9yCisvLyBBcnJheUJ1ZmZlclZpZXcpLiBUaGUg
b3V0cHV0IGxvb2tzIGxpa2UgdGhpczoKKy8vICAgIFthYiAwMyA0YyA5OV0KK2Z1bmN0aW9uIGJ5
dGVBcnJheVRvSGV4U3RyaW5nKGJ5dGVzKQoreworICAgIHZhciBoZXhCeXRlcyA9IFtdOworCisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIg
Ynl0ZVN0cmluZyA9IGJ5dGVzW2ldLnRvU3RyaW5nKDE2KTsKKyAgICAgICAgaWYgKGJ5dGVTdHJp
bmcubGVuZ3RoIDwgMikKKyAgICAgICAgICAgIGJ5dGVTdHJpbmcgPSAiMCIgKyBieXRlU3RyaW5n
OworICAgICAgICBoZXhCeXRlcy5wdXNoKGJ5dGVTdHJpbmcpOworICAgIH0KKworICAgIHJldHVy
biAiWyIgKyBoZXhCeXRlcy5qb2luKCIgIikgKyAiXSI7Cit9CisKK2Z1bmN0aW9uIGFzY2lpVG9B
cnJheUJ1ZmZlcihzdHIpCit7CisgICAgdmFyIGNoYXJzID0gW107CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBzdHIubGVuZ3RoOyArK2kpCisgICAgICAgIGNoYXJzLnB1c2goc3RyLmNoYXJDb2Rl
QXQoaSkpOworICAgIHJldHVybiBuZXcgVWludDhBcnJheShjaGFycyk7Cit9CisKK2Z1bmN0aW9u
IHByaW50UmVqZWN0ZWRSZXN1bHQodmFsdWUpCit7CisgICAgZGVidWcoIiAgICByZWplY3RlZCB3
aXRoIHZhbHVlIG9mICIgKyB2YWx1ZSk7Cit9CisKK2Z1bmN0aW9uIHByaW50QWNjZXB0ZWRSZXN1
bHQocmVzdWx0KQoreworICAgIGRlYnVnKCIgICAgPSAiICsgYnl0ZUFycmF5VG9IZXhTdHJpbmco
bmV3IFVpbnQ4QXJyYXkocmVzdWx0KSkpOworfQorCitmdW5jdGlvbiBmYWlsQW5kRmluaXNoSlNU
ZXN0KGVycm9yKQoreworICAgIGlmIChlcnJvcikKKyAgICAgICBkZWJ1ZyhlcnJvcik7CisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4
cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4
cGVjdGF0aW9ucwkocmV2aXNpb24gMTU4Mzg3KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZs
L1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTE1ODgsMyArMTU4OCw2IEBAIHdl
YmtpdC5vcmcvYi8xMjM1NjEgcHJpbnRpbmcvc2V0UHJpbnRpbmcKIHdlYmtpdC5vcmcvYi8xMjM1
NjEgcHJpbnRpbmcvc2ltdWx0YW5lb3VzLXBvc2l0aW9uLWZsb2F0LWNoYW5nZS5odG1sIFsgTWlz
c2luZyBdCiB3ZWJraXQub3JnL2IvMTIzNTYxIHByaW50aW5nL3NpbmdsZS1saW5lLW11c3Qtbm90
LWJlLXNwbGl0LWludG8tdHdvLXBhZ2VzLmh0bWwgWyBNaXNzaW5nIF0KIHdlYmtpdC5vcmcvYi8x
MjM1NjEgcHJpbnRpbmcvd2lkdGgtb3ZlcmZsb3cuaHRtbCBbIE1pc3NpbmcgXQorCisjIGNyeXB0
by5zdWJ0bGUgaXMgbm90IHlldCBlbmFibGVkCitjcnlwdG8vc3VidGxlIFsgU2tpcCBdCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTU4
Mzg3KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtp
bmcgY29weSkKQEAgLTQ1Niw2ICs0NTYsOSBAQCB3ZWJraXQub3JnL2IvMTA3MTk0IGh0dHAvdGVz
dHMvc2VjdXJpdHkvCiAjIE5lZWRzIHRvIHVwZGF0ZSB0aGUgZ3RrIGRhdGFiYXNlUXVvdGFFeGNl
ZWRlZCgpIHRlc3QgZnVuY3Rpb24gdG8gaGFuZGxlIHF1b3RhIGV4cGFuc2lvbiByZXF1ZXN0cy4K
IHN0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJhc2UtZXhwYW5kLXF1b3RhLmh0bWwgWyBGYWlsdXJl
IF0KIAorIyBjcnlwdG8uc3VidGxlIGlzIG5vdCB5ZXQgZW5hYmxlZAorY3J5cHRvL3N1YnRsZSBb
IFNraXAgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyBFbmQgb2YgRXhw
ZWN0ZWQgZmFpbHVyZXMKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTU4Mzg3
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcg
Y29weSkKQEAgLTI4NzUsNCArMjg3NSw1IEBAIHByaW50aW5nL3ByaW50LWNsb3NlLWNyYXNoLmh0
bWwKICMgVGVzdCBpbnRyb2R1Y2VkIGluIHIxNTcxMzMgZmFpbHMuIFN0YXRlIG9mIGNvbG9yc3Bh
Y2UgbWFuYWdlbWVudCBvbiBXaW5kb3dzIGlzIHVuY2xlYXIuCiBtZWRpYS92aWRlby1jYW52YXMt
ZHJhd2luZy1vdXRwdXQuaHRtbAogCi0KKyMgY3J5cHRvLnN1YnRsZSBpcyBub3QgeWV0IGVuYWJs
ZWQKK2NyeXB0by9zdWJ0bGUgWyBTa2lwIF0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dp
bmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTU4Mzg3KQorKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpA
QCAtMjg1MCwzICsyODUwLDYgQEAgd2Via2l0Lm9yZy9iLz8/Pz8/PyBodHRwL3Rlc3RzL2xvYWRp
bmcvcAogCiAjIE5vIGNvbmNlcHQgb2Ygc2VjdXJlIHRleHQgaW5wdXQKIGVkaXRpbmcvc2VjdXJl
LWlucHV0IFsgRmFpbHVyZSBdCisKKyMgY3J5cHRvLnN1YnRsZSBpcyBub3QgeWV0IGVuYWJsZWQK
K2NyeXB0by9zdWJ0bGUgWyBTa2lwIF0KSW5kZXg6IExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0
by1nYy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5
cHRvLWdjLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTU4Mzg3KQorKysgTGF5b3V0VGVzdHMvc2Vj
dXJpdHkvY3J5cHRvLWdjLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMCww
IEBACi1UZXN0IHRoYXQgd2luZG93LmNyeXB0byB3cmFwcGVyIHByZXNlcnZlcyBjdXN0b20gcHJv
cGVydGllcy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgd2luZG93LmNy
eXB0by5mb28gaXMgImJhciIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tZ2MuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tZ2MuaHRtbAkocmV2aXNp
b24gMTU4Mzg3KQorKysgTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLWdjLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsMzggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci0KLWRlc2Ny
aXB0aW9uKCJUZXN0IHRoYXQgd2luZG93LmNyeXB0byB3cmFwcGVyIHByZXNlcnZlcyBjdXN0b20g
cHJvcGVydGllcy4iKTsKLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1mdW5jdGlvbiBzdGFydFRl
c3QoKQotewotICAgIHdpbmRvdy5jcnlwdG8uZm9vID0gImJhciI7Ci0gICAgZ2MoKTsKLSAgICBz
ZXRUaW1lb3V0KGNvbnRpbnVlVGVzdCwgMTApOwotfQotCi1mdW5jdGlvbiBjb250aW51ZVRlc3Qo
KQotewotICAgIGdjKCk7Ci0gICAgc2V0VGltZW91dChmaW5pc2hUZXN0LCAxMCk7Ci19Ci0KLWZ1
bmN0aW9uIGZpbmlzaFRlc3QoKQotewotICAgIGdjKCk7Ci0gICAgc2hvdWxkQmUoJ3dpbmRvdy5j
cnlwdG8uZm9vJywgJyJiYXIiJyk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19Ci0KLXdpbmRvdy5v
bmxvYWQgPSBzdGFydFRlc3Q7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXJhbmRvbS12YWx1ZXMtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1yYW5kb20tdmFsdWVzLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMTU4Mzg3KQorKysgTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRv
LXJhbmRvbS12YWx1ZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyICswLDAg
QEAKLVRlc3RzIGNyeXB0by5yYW5kb21WYWx1ZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi1QQVNTICdjcnlwdG8nIGluIHdpbmRvdyBpcyB0cnVlCi1QQVNTICdnZXRSYW5kb21W
YWx1ZXMnIGluIHdpbmRvdy5jcnlwdG8gaXMgdHJ1ZQotUEFTUyBtYXRjaGluZ0J5dGVzIDwgMTAw
IGlzIHRydWUKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCkluZGV4OiBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tcmFuZG9tLXZhbHVlcy1saW1p
dHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0
by1yYW5kb20tdmFsdWVzLWxpbWl0cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE1ODM4NykKKysr
IExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1yYW5kb20tdmFsdWVzLWxpbWl0cy1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTMgKzAsMCBAQAotVGVzdHMgdGhlIGxpbWl0cyBv
ZiBjcnlwdG8ucmFuZG9tVmFsdWVzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQot
UEFTUyAnY3J5cHRvJyBpbiB3aW5kb3cgaXMgdHJ1ZQotUEFTUyAnZ2V0UmFuZG9tVmFsdWVzJyBp
biB3aW5kb3cuY3J5cHRvIGlzIHRydWUKLVBBU1MgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhhbG1v
c3RUb29MYXJnZUFycmF5KSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KLVBBU1MgY3J5cHRvLmdl
dFJhbmRvbVZhbHVlcyh0b29MYXJnZUFycmF5KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFF1b3Rh
RXhjZWVkZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiAyMi4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9zZWN1cml0eS9j
cnlwdG8tcmFuZG9tLXZhbHVlcy1saW1pdHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zZWN1cml0eS9jcnlwdG8tcmFuZG9tLXZhbHVlcy1saW1pdHMuaHRtbAkocmV2aXNpb24gMTU4
Mzg3KQorKysgTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXJhbmRvbS12YWx1ZXMtbGltaXRz
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBsaW1pdHMgb2Yg
Y3J5cHRvLnJhbmRvbVZhbHVlcy4iKTsKLQotaWYgKCF3aW5kb3cuQXJyYXlCdWZmZXIpCi0gICAg
ZGVidWcoIlRoaXMgdGVzdCByZXF1cmVzIEFycmF5QnVmZmVycyB0byBydW4hIik7Ci0KLXNob3Vs
ZEJlKCInY3J5cHRvJyBpbiB3aW5kb3ciLCAidHJ1ZSIpOwotc2hvdWxkQmUoIidnZXRSYW5kb21W
YWx1ZXMnIGluIHdpbmRvdy5jcnlwdG8iLCAidHJ1ZSIpOwotCi10cnkgewotICAgIHZhciBhbG1v
c3RUb29MYXJnZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoNjU1MzYpOwotICAgIHZhciB0b29MYXJn
ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoNjU1MzcpOwotCi0gICAgc2hvdWxkTm90VGhyb3coImNy
eXB0by5nZXRSYW5kb21WYWx1ZXMoYWxtb3N0VG9vTGFyZ2VBcnJheSkiKTsKLSAgICBzaG91bGRU
aHJvdygiY3J5cHRvLmdldFJhbmRvbVZhbHVlcyh0b29MYXJnZUFycmF5KSIpOwotfSBjYXRjaChl
eCkgewotICAgIGRlYnVnKGV4KTsKLX0KLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KLQpJ
bmRleDogTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXJhbmRvbS12YWx1ZXMtdHlwZXMtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1yYW5k
b20tdmFsdWVzLXR5cGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTU4Mzg3KQorKysgTGF5b3V0
VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXJhbmRvbS12YWx1ZXMtdHlwZXMtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUyICswLDAgQEAKLVRlc3RzIHdoaWNoIHR5cGVzIGFyZSB2YWxp
ZCBmb3IgY3J5cHRvLnJhbmRvbVZhbHVlcy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgot
Ci0KLVBBU1MgJ2NyeXB0bycgaW4gd2luZG93IGlzIHRydWUKLVBBU1MgJ2dldFJhbmRvbVZhbHVl
cycgaW4gd2luZG93LmNyeXB0byBpcyB0cnVlCi1QQVNTIHJhbmRvbSA9IGNyeXB0by5nZXRSYW5k
b21WYWx1ZXMobmV3IFVpbnQ4QXJyYXkoMykpIGlzIGRlZmluZWQuCi1QQVNTIHJhbmRvbSBpcyBh
biBpbnN0YW5jZSBvZiBVaW50OEFycmF5Ci1QQVNTIHZpZXcgPSBuZXcgVWludDhBcnJheSgzKSBp
cyBkZWZpbmVkLgotUEFTUyByYW5kb20gPSBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHZpZXcpIGlz
IGRlZmluZWQuCi1QQVNTIHJhbmRvbSBpcyB2aWV3Ci1QQVNTIHJhbmRvbSA9IGNyeXB0by5nZXRS
YW5kb21WYWx1ZXMobmV3IEludDhBcnJheSgzKSkgaXMgZGVmaW5lZC4KLVBBU1MgcmFuZG9tIGlz
IGFuIGluc3RhbmNlIG9mIEludDhBcnJheQotUEFTUyB2aWV3ID0gbmV3IEludDhBcnJheSgzKSBp
cyBkZWZpbmVkLgotUEFTUyByYW5kb20gPSBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHZpZXcpIGlz
IGRlZmluZWQuCi1QQVNTIHJhbmRvbSBpcyB2aWV3Ci1QQVNTIHJhbmRvbSA9IGNyeXB0by5nZXRS
YW5kb21WYWx1ZXMobmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMpKSBpcyBkZWZpbmVkLgotUEFTUyBy
YW5kb20gaXMgYW4gaW5zdGFuY2Ugb2YgVWludDhDbGFtcGVkQXJyYXkKLVBBU1MgdmlldyA9IG5l
dyBVaW50OENsYW1wZWRBcnJheSgzKSBpcyBkZWZpbmVkLgotUEFTUyByYW5kb20gPSBjcnlwdG8u
Z2V0UmFuZG9tVmFsdWVzKHZpZXcpIGlzIGRlZmluZWQuCi1QQVNTIHJhbmRvbSBpcyB2aWV3Ci1Q
QVNTIHJhbmRvbSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQxNkFycmF5KDMpKSBp
cyBkZWZpbmVkLgotUEFTUyByYW5kb20gaXMgYW4gaW5zdGFuY2Ugb2YgVWludDE2QXJyYXkKLVBB
U1MgdmlldyA9IG5ldyBVaW50MTZBcnJheSgzKSBpcyBkZWZpbmVkLgotUEFTUyByYW5kb20gPSBj
cnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHZpZXcpIGlzIGRlZmluZWQuCi1QQVNTIHJhbmRvbSBpcyB2
aWV3Ci1QQVNTIHJhbmRvbSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IEludDE2QXJyYXko
MykpIGlzIGRlZmluZWQuCi1QQVNTIHJhbmRvbSBpcyBhbiBpbnN0YW5jZSBvZiBJbnQxNkFycmF5
Ci1QQVNTIHZpZXcgPSBuZXcgSW50MTZBcnJheSgzKSBpcyBkZWZpbmVkLgotUEFTUyByYW5kb20g
PSBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHZpZXcpIGlzIGRlZmluZWQuCi1QQVNTIHJhbmRvbSBp
cyB2aWV3Ci1QQVNTIHJhbmRvbSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFy
cmF5KDMpKSBpcyBkZWZpbmVkLgotUEFTUyByYW5kb20gaXMgYW4gaW5zdGFuY2Ugb2YgVWludDMy
QXJyYXkKLVBBU1MgdmlldyA9IG5ldyBVaW50MzJBcnJheSgzKSBpcyBkZWZpbmVkLgotUEFTUyBy
YW5kb20gPSBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHZpZXcpIGlzIGRlZmluZWQuCi1QQVNTIHJh
bmRvbSBpcyB2aWV3Ci1QQVNTIHJhbmRvbSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IElu
dDMyQXJyYXkoMykpIGlzIGRlZmluZWQuCi1QQVNTIHJhbmRvbSBpcyBhbiBpbnN0YW5jZSBvZiBJ
bnQzMkFycmF5Ci1QQVNTIHZpZXcgPSBuZXcgSW50MzJBcnJheSgzKSBpcyBkZWZpbmVkLgotUEFT
UyByYW5kb20gPSBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHZpZXcpIGlzIGRlZmluZWQuCi1QQVNT
IHJhbmRvbSBpcyB2aWV3Ci1QQVNTIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IEZsb2F0MzJB
cnJheSgzKSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUeXBlTWlzbWF0Y2hFcnJvcjogRE9NIEV4
Y2VwdGlvbiAxNy4KLVBBU1MgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgRmxvYXQ2NEFycmF5
KDMpKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFR5cGVNaXNtYXRjaEVycm9yOiBET00gRXhjZXB0
aW9uIDE3LgotUEFTUyBidWZmZXIgPSBuZXcgVWludDhBcnJheSgzMikgaXMgZGVmaW5lZC4KLVBB
U1MgYnVmZmVyLmJ1ZmZlciBpcyBkZWZpbmVkLgotUEFTUyB2aWV3ID0gbmV3IERhdGFWaWV3KGJ1
ZmZlci5idWZmZXIpIGlzIGRlZmluZWQuCi1QQVNTIGNyeXB0by5nZXRSYW5kb21WYWx1ZXModmll
dykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUeXBlTWlzbWF0Y2hFcnJvcjogRE9NIEV4Y2VwdGlv
biAxNy4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
CkluZGV4OiBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tcmFuZG9tLXZhbHVlcy10eXBlcy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1yYW5kb20tdmFs
dWVzLXR5cGVzLmh0bWwJKHJldmlzaW9uIDE1ODM4NykKKysrIExheW91dFRlc3RzL3NlY3VyaXR5
L2NyeXB0by1yYW5kb20tdmFsdWVzLXR5cGVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNTcg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotZGVzY3Jp
cHRpb24oIlRlc3RzIHdoaWNoIHR5cGVzIGFyZSB2YWxpZCBmb3IgY3J5cHRvLnJhbmRvbVZhbHVl
cy4iKTsKLQotaWYgKCF3aW5kb3cuQXJyYXlCdWZmZXIpCi0gICAgZGVidWcoIlRoaXMgdGVzdCBy
ZXF1cmVzIEFycmF5QnVmZmVycyB0byBydW4hIik7Ci0KLXNob3VsZEJlKCInY3J5cHRvJyBpbiB3
aW5kb3ciLCAidHJ1ZSIpOwotc2hvdWxkQmUoIidnZXRSYW5kb21WYWx1ZXMnIGluIHdpbmRvdy5j
cnlwdG8iLCAidHJ1ZSIpOwotCi1mdW5jdGlvbiBjaGVja0ludGVnZXJUeXBlcygpIHsKLSAgICB2
YXIgaW50ZWdlclR5cGVzID0gWwotICAgICAgICAiVWludDhBcnJheSIsICJJbnQ4QXJyYXkiLCAi
VWludDhDbGFtcGVkQXJyYXkiLAotICAgICAgICAiVWludDE2QXJyYXkiLCAiSW50MTZBcnJheSIs
Ci0gICAgICAgICJVaW50MzJBcnJheSIsICJJbnQzMkFycmF5IiwKLSAgICBdOwotICAgIGludGVn
ZXJUeXBlcy5mb3JFYWNoKGZ1bmN0aW9uKGFycmF5VHlwZSkgewotICAgICAgICBzaG91bGRCZURl
ZmluZWQoInJhbmRvbSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3ICIrYXJyYXlUeXBlKyIo
MykpIik7Ci0gICAgICAgIHNob3VsZEJlVHlwZSgicmFuZG9tIiwgYXJyYXlUeXBlKTsKLQotICAg
ICAgICBzaG91bGRCZURlZmluZWQoInZpZXcgPSBuZXcgIithcnJheVR5cGUrIigzKSIpOwotICAg
ICAgICBzaG91bGRCZURlZmluZWQoInJhbmRvbSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXModmll
dykiKTsKLSAgICAgICAgc2hvdWxkQmUoInJhbmRvbSIsICJ2aWV3Iik7Ci0gICAgfSk7Ci19Ci0K
LWZ1bmN0aW9uIGNoZWNrTm9uSW50ZWdlclR5cGVzKCkgewotICAgIHZhciBmbG9hdFR5cGVzID0g
WwotICAgICAgICAiRmxvYXQzMkFycmF5IiwgIkZsb2F0NjRBcnJheSIsCi0gICAgXTsKLSAgICBm
bG9hdFR5cGVzLmZvckVhY2goZnVuY3Rpb24oYXJyYXlUeXBlKSB7Ci0gICAgICAgIHNob3VsZFRo
cm93KCJjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyAiK2FycmF5VHlwZSsiKDMpKSIpOwotICAg
IH0pOwotCi0gICAgc2hvdWxkQmVEZWZpbmVkKCJidWZmZXIgPSBuZXcgVWludDhBcnJheSgzMiki
KTsKLSAgICBzaG91bGRCZURlZmluZWQoImJ1ZmZlci5idWZmZXIiKTsKLSAgICBzaG91bGRCZURl
ZmluZWQoInZpZXcgPSBuZXcgRGF0YVZpZXcoYnVmZmVyLmJ1ZmZlcikiKTsKLSAgICBzaG91bGRU
aHJvdygiY3J5cHRvLmdldFJhbmRvbVZhbHVlcyh2aWV3KSIpOwotfQotCi1jaGVja0ludGVnZXJU
eXBlcygpOwotY2hlY2tOb25JbnRlZ2VyVHlwZXMoKTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0
bWw+Ci0KLQpJbmRleDogTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXJhbmRvbS12YWx1ZXMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tcmFuZG9tLXZh
bHVlcy5odG1sCShyZXZpc2lvbiAxNTgzODcpCisrKyBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlw
dG8tcmFuZG9tLXZhbHVlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ3ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsaXRp
ZXMuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0
cyBjcnlwdG8ucmFuZG9tVmFsdWVzLiIpOwotCi1pZiAoIXdpbmRvdy5BcnJheUJ1ZmZlcikKLSAg
ICBkZWJ1ZygiVGhpcyB0ZXN0IHJlcXVyZXMgQXJyYXlCdWZmZXJzIHRvIHJ1biEiKTsKLQotc2hv
dWxkQmUoIidjcnlwdG8nIGluIHdpbmRvdyIsICJ0cnVlIik7Ci1zaG91bGRCZSgiJ2dldFJhbmRv
bVZhbHVlcycgaW4gd2luZG93LmNyeXB0byIsICJ0cnVlIik7Ci0KLXRyeSB7Ci0gICAgLy8gRklY
TUU6IFRoaXMgdGVzdCBpcyBmbGFreS4gIElmIHdlIHJhbiB0aGlzIHRlc3QgZXZlcnkgc2Vjb25k
IHNpbmNlIHRoZQotICAgIC8vICAgICAgICBiZWdpbm5pbmcgb2YgdGhlIHVuaXZlcnNlLCBvbiBh
dmVyYWdlLCBpdCB3b3VsZCBoYXZlIGZhaWxlZAotICAgIC8vICAgICAgICAyXnstNzQ4fSB0aW1l
cy4KLQotICAgIHZhciByZWZlcmVuY2UgPSBuZXcgVWludDhBcnJheSgxMDApOwotICAgIHZhciBz
YW1wbGUgPSBuZXcgVWludDhBcnJheSgxMDApOwotCi0gICAgY3J5cHRvLmdldFJhbmRvbVZhbHVl
cyhyZWZlcmVuY2UpOwotICAgIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMoc2FtcGxlKTsKLQotICAg
IHZhciBtYXRjaGluZ0J5dGVzID0gMDsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVmZXJl
bmNlLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmIChyZWZlcmVuY2VbaV0gPT0gc2FtcGxlW2ld
KQotICAgICAgICAgICAgbWF0Y2hpbmdCeXRlcysrOwotICAgIH0KLQotICAgIHNob3VsZEJlKCJt
YXRjaGluZ0J5dGVzIDwgMTAwIiwgInRydWUiKTsKLX0gY2F0Y2goZXgpIHsKLSAgICBkZWJ1Zyhl
eCk7Ci19Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCi0KSW5kZXg6IExheW91dFRlc3Rz
L3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtYXJndW1lbnRzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tc3VidGxlLWFyZ3VtZW50cy1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDE1ODM4NykKKysrIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1z
dWJ0bGUtYXJndW1lbnRzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0MCArMCww
IEBACi1UZXN0IGNyeXB0by5zdWJ0bGUgYXJndW1lbnQgY29udmVyc2lvbgotCi1PbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCi0KLQotU0hBMSBvZiBuZXcgVWludDhBcnJheShbXSkpCi0gICAgPSBb
ZGEgMzkgYTMgZWUgNWUgNmIgNGIgMGQgMzIgNTUgYmYgZWYgOTUgNjAgMTggOTAgYWYgZDggMDcg
MDldCi0KLVBhc3NpbmcgYWxnb3JpdGhtIG5hbWUgYXMgYSBzdHJpbmcgb2JqZWN0Li4uCi1QQVNT
IC4uLnN1Y2NlZWRlZAotCi1QYXNzaW5nIGFsZ29yaXRobSBuYW1lIGFzIGEgc3RyaW5nIG9iamVj
dCBpbiBhIGRpY3Rpb25hcnkuLi4KLVBBU1MgLi4uc3VjY2VlZGVkCi0KLVBhc3NpbmcgYWxnb3Jp
dGhtIG5hbWUgYXMgYW4gb2JqZWN0IHdpdGggdG9TdHJpbmcKLVBBU1MgLi4uc3VjY2VlZGVkCi0K
LVBhc3NpbmcgaW52YWxpZCBkYXRhIHRvIGRpZ2VzdCgpCi1QQVNTIGNyeXB0by5zdWJ0bGUuZGln
ZXN0KHtuYW1lOiAnc2hhLTEnfSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3Vn
aCBhcmd1bWVudHMuCi1QQVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSwg
bnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY3J5cHRv
LnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCAxMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEt
MSd9LCBbMTBdKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBPbmx5IEFycmF5QnVmZmVyIGFu
ZCBBcnJheUJ1ZmZlclZpZXcgb2JqZWN0cyBjYW4gYmUgcGFydCBvZiBDcnlwdG9PcGVyYXRpb25E
YXRhIHNlcXVlbmNlLgotUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30s
IG5ldyBVaW50OEFycmF5KFswXSkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE9ubHkgQXJy
YXlCdWZmZXIgYW5kIEFycmF5QnVmZmVyVmlldyBvYmplY3RzIGNhbiBiZSBwYXJ0IG9mIENyeXB0
b09wZXJhdGlvbkRhdGEgc2VxdWVuY2UuCi0KLVBhc3NpbmcgaW52YWxpZCBhbGdvcml0aG1JZGVu
dGlmaWVycyB0byBkaWdlc3QoKQotUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7IHRvU3RyaW5n
OmZ1bmN0aW9uKCkgeyByZXR1cm4gJ3NoYS0xJyB9IH0sIFtkYXRhXSkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgotUEFTUyBjcnlwdG8u
c3VidGxlLmRpZ2VzdCh7bmFtZTogJyd9LCBbZGF0YV0pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
Tm90U3VwcG9ydGVkRXJyb3I6IERPTSBFeGNlcHRpb24gOS4KLVBBU1MgY3J5cHRvLnN1YnRsZS5k
aWdlc3Qoe25hbWU6IG51bGx9LCBbZGF0YV0pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90U3Vw
cG9ydGVkRXJyb3I6IERPTSBFeGNlcHRpb24gOS4KLVBBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3Qo
e25hbWU6IHVuZGVmaW5lZH0sIFtkYXRhXSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBw
b3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgotUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7
bmFtZTogJ3NoYSd9LCBbZGF0YV0pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90U3VwcG9ydGVk
RXJyb3I6IERPTSBFeGNlcHRpb24gOS4KLVBBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6
IDF9LCBbZGF0YV0pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90U3VwcG9ydGVkRXJyb3I6IERP
TSBFeGNlcHRpb24gOS4KLVBBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3QoJycsIFtkYXRhXSkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5Lgot
UEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdChudWxsLCBbZGF0YV0pIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogTm90U3VwcG9ydGVkRXJyb3I6IERPTSBFeGNlcHRpb24gOS4KLVBBU1MgY3J5cHRvLnN1
YnRsZS5kaWdlc3QodW5kZWZpbmVkLCBbZGF0YV0pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90
U3VwcG9ydGVkRXJyb3I6IERPTSBFeGNlcHRpb24gOS4KLVBBU1MgY3J5cHRvLnN1YnRsZS5kaWdl
c3QoMSwgW2RhdGFdKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdFN1cHBvcnRlZEVycm9yOiBE
T00gRXhjZXB0aW9uIDkuCi1QQVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHt9LCBbZGF0YV0pIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90U3VwcG9ydGVkRXJyb3I6IERPTSBFeGNlcHRpb24gOS4K
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4
OiBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tc3VidGxlLWFyZ3VtZW50cy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtYXJndW1lbnRzLmh0
bWwJKHJldmlzaW9uIDE1ODM4NykKKysrIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0
bGUtYXJndW1lbnRzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNjUgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBjcnlw
dG8uc3VidGxlIGFyZ3VtZW50IGNvbnZlcnNpb24iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7
Ci0KLWlmICghd2luZG93LnN1YnRsZSkKLSAgICB3aW5kb3cuY3J5cHRvLnN1YnRsZSA9IHdpbmRv
dy5jcnlwdG8ud2Via2l0U3VidGxlOwotCi1Qcm9taXNlLmZ1bGZpbGwobnVsbCkudGhlbihmdW5j
dGlvbigpIHsKLSAgICAvLyBUaGlzIGxvb2tzIGxpa2UgaW52YWxpZCBpbnB1dCwgYnV0IGl0IGFj
dHVhbGx5IGlzbid0IC0gVWludDhBcnJheSBpcyBhIHNlcXVlbmNlIHRvbywKLSAgICAvLyBzbyBp
dCdzIGp1c3QgYW4gZW1wdHkgc2VxdWVuY2UsIHNhbWUgYXMgcGFzc2luZyBbXS4KLSAgICBkZWJ1
ZygiU0hBMSBvZiBuZXcgVWludDhBcnJheShbXSkpIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0
bGUuZGlnZXN0KCdzaGEtMScsIG5ldyBVaW50OEFycmF5KFtdKSk7Ci19KS50aGVuKGZ1bmN0aW9u
KHJlc3VsdCkgewotICAgIHByaW50QWNjZXB0ZWRSZXN1bHQocmVzdWx0KTsKLSAgICBkZWJ1Zygi
XG5QYXNzaW5nIGFsZ29yaXRobSBuYW1lIGFzIGEgc3RyaW5nIG9iamVjdC4uLiIpOwotICAgIHJl
dHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdChuZXcgU3RyaW5nKCdzaGEtMScpLCBbXSk7Ci19KS50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHRlc3RQYXNzZWQoIi4uLnN1Y2NlZWRlZCIpOwot
ICAgIGRlYnVnKCJcblBhc3NpbmcgYWxnb3JpdGhtIG5hbWUgYXMgYSBzdHJpbmcgb2JqZWN0IGlu
IGEgZGljdGlvbmFyeS4uLiIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFt
ZTogbmV3IFN0cmluZygnc2hhLTEnKX0sIFtdKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7
Ci0gICAgdGVzdFBhc3NlZCgiLi4uc3VjY2VlZGVkIik7Ci0gICAgZGVidWcoIlxuUGFzc2luZyBh
bGdvcml0aG0gbmFtZSBhcyBhbiBvYmplY3Qgd2l0aCB0b1N0cmluZyIpOwotICAgIHJldHVybiBj
cnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogeyB0b1N0cmluZzpmdW5jdGlvbigpIHsgcmV0dXJu
ICdzaGEtMScgfSB9IH0sIFtdKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdGVz
dFBhc3NlZCgiLi4uc3VjY2VlZGVkIik7Ci0KLSAgICBkZWJ1ZygiXG5QYXNzaW5nIGludmFsaWQg
ZGF0YSB0byBkaWdlc3QoKSIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2Vz
dCh7bmFtZTogJ3NoYS0xJ30pIik7Ci0gICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGln
ZXN0KHtuYW1lOiAnc2hhLTEnfSwgbnVsbCkiKTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLnN1
YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCAxMCkiKTsKLSAgICBzaG91bGRUaHJvdygiY3J5
cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCBbMTBdKSIpOwotICAgIHNob3VsZFRo
cm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIG5ldyBVaW50OEFycmF5
KFswXSkpIik7Ci0KLSAgICBkZWJ1ZygiXG5QYXNzaW5nIGludmFsaWQgYWxnb3JpdGhtSWRlbnRp
ZmllcnMgdG8gZGlnZXN0KCkiKTsKLSAgICBkYXRhID0gbmV3IFVpbnQ4QXJyYXkoWzBdKTsKLSAg
ICBzaG91bGRUaHJvdygiY3J5cHRvLnN1YnRsZS5kaWdlc3QoeyB0b1N0cmluZzpmdW5jdGlvbigp
IHsgcmV0dXJuICdzaGEtMScgfSB9LCBbZGF0YV0pIik7IC8vIEFsZ29yaXRobSBub3JtYWxpemF0
aW9uIGRvZXNuJ3QgYXR0ZW1wdCB0byBjYWxsIHRvU3RyaW5nLgotICAgIHNob3VsZFRocm93KCJj
cnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJyd9LCBbZGF0YV0pIik7Ci0gICAgc2hvdWxkVGhy
b3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiBudWxsfSwgW2RhdGFdKSIpOwotICAgIHNo
b3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogdW5kZWZpbmVkfSwgW2RhdGFd
KSIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYSd9
LCBbZGF0YV0pIik7Ci0gICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1l
OiAxfSwgW2RhdGFdKSIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCgn
JywgW2RhdGFdKSIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdChudWxs
LCBbZGF0YV0pIik7Ci0gICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KHVuZGVm
aW5lZCwgW2RhdGFdKSIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCgx
LCBbZGF0YV0pIik7Ci0gICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KHt9LCBb
ZGF0YV0pIik7Ci19KS50aGVuKGZpbmlzaEpTVGVzdCk7Ci0KLTwvc2NyaXB0PgotCi08c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tc3VidGxlLWdjLTItZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0
bGUtZ2MtMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE1ODM4NykKKysrIExheW91dFRlc3RzL3Nl
Y3VyaXR5L2NyeXB0by1zdWJ0bGUtZ2MtMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTIgKzAsMCBAQAotVGVzdCB0aGF0IHdpbmRvdy5jcnlwdG8uc3VidGxlIHdyYXBwZXIgcHJl
c2VydmVzIGN1c3RvbSBwcm9wZXJ0aWVzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0K
LQotUEFTUyBbb2JqZWN0IENyeXB0b10gaXMgZGVmaW5lZC4KLVBBU1MgW29iamVjdCBXZWJLaXRT
dWJ0bGVDcnlwdG9dIGlzIGRlZmluZWQuCi1QQVNTIGFub3RoZXJXaW5kb3dDcnlwdG8ud2Via2l0
U3VidGxlLmZvbyBpcyAiYmFyIgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUt
Z2MtMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0
bGUtZ2MtMi5odG1sCShyZXZpc2lvbiAxNTgzODcpCisrKyBMYXlvdXRUZXN0cy9zZWN1cml0eS9j
cnlwdG8tc3VidGxlLWdjLTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0NiArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPHNjcmlwdD4KLQotZGVzY3JpcHRpb24oIlRlc3QgdGhhdCB3aW5kb3cuY3J5
cHRvLnN1YnRsZSB3cmFwcGVyIHByZXNlcnZlcyBjdXN0b20gcHJvcGVydGllcy4iKTsKLWpzVGVz
dElzQXN5bmMgPSB0cnVlOwotCi12YXIgYW5vdGhlcldpbmRvd0NyeXB0bzsKLQotZnVuY3Rpb24g
c3RhcnRUZXN0KCkKLXsKLSAgICBhbm90aGVyV2luZG93Q3J5cHRvID0gZnJhbWVzWzBdLmNyeXB0
bzsKLSAgICBzaG91bGRCZURlZmluZWQoYW5vdGhlcldpbmRvd0NyeXB0byk7Ci0gICAgc2hvdWxk
QmVEZWZpbmVkKGFub3RoZXJXaW5kb3dDcnlwdG8ud2Via2l0U3VidGxlKTsKLQotICAgIGFub3Ro
ZXJXaW5kb3dDcnlwdG8ud2Via2l0U3VidGxlLmZvbyA9ICJiYXIiOwotICAgIGRvY3VtZW50LmJv
ZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpWzBd
KTsKLSAgICBnYygpOwotICAgIHNldFRpbWVvdXQoY29udGludWVUZXN0LCAxMCk7Ci19Ci0KLWZ1
bmN0aW9uIGNvbnRpbnVlVGVzdCgpCi17Ci0gICAgZ2MoKTsKLSAgICBzZXRUaW1lb3V0KGZpbmlz
aFRlc3QsIDEwKTsKLX0KLQotZnVuY3Rpb24gZmluaXNoVGVzdCgpCi17Ci0gICAgZ2MoKTsKLSAg
ICBzaG91bGRCZSgnYW5vdGhlcldpbmRvd0NyeXB0by53ZWJraXRTdWJ0bGUuZm9vJywgJyJiYXIi
Jyk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19Ci0KLXdpbmRvdy5vbmxvYWQgPSBzdGFydFRlc3Q7
Ci0KLTwvc2NyaXB0PgotPGlmcmFtZSBzcmM9ImFib3V0OmJsYW5rIj48L2lmcmFtZT4KLTxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtZ2MtMy1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1
YnRsZS1nYy0zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTU4Mzg3KQorKysgTGF5b3V0VGVzdHMv
c2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1nYy0zLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMSwxMSArMCwwIEBACi1UZXN0IHRoYXQgd2luZG93LmNyeXB0byB3cmFwcGVyIHByb3RlY3Rz
IGFsbCBkZXBlbmRlbmNpZXMsIHNvIGl0IGNhbiBhbHdheXMgYmUgdXNlZCB0byBjcmVhdGUgY3J5
cHRvLnN1YnRsZS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgW29iamVj
dCBDcnlwdG9dIGlzIGRlZmluZWQuCi1QQVNTIFtvYmplY3QgV2ViS2l0U3VidGxlQ3J5cHRvXSBp
cyBkZWZpbmVkLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KSW5kZXg6IExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtZ2MtMy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtZ2MtMy5o
dG1sCShyZXZpc2lvbiAxNTgzODcpCisrKyBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tc3Vi
dGxlLWdjLTMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0MyArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotPHNjcmlwdD4KLQotZGVzY3JpcHRpb24oIlRlc3QgdGhhdCB3aW5kb3cuY3J5cHRvIHdyYXBw
ZXIgcHJvdGVjdHMgYWxsIGRlcGVuZGVuY2llcywgc28gaXQgY2FuIGFsd2F5cyBiZSB1c2VkIHRv
IGNyZWF0ZSBjcnlwdG8uc3VidGxlLiIpOwotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBh
bm90aGVyV2luZG93Q3J5cHRvOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGFub3Ro
ZXJXaW5kb3dDcnlwdG8gPSBmcmFtZXNbMF0uY3J5cHRvOwotICAgIHNob3VsZEJlRGVmaW5lZChh
bm90aGVyV2luZG93Q3J5cHRvKTsKLSAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKVswXSk7Ci0gICAgZ2MoKTsKLSAgICBz
ZXRUaW1lb3V0KGNvbnRpbnVlVGVzdCwgMTApOwotfQotCi1mdW5jdGlvbiBjb250aW51ZVRlc3Qo
KQotewotICAgIGdjKCk7Ci0gICAgc2V0VGltZW91dChmaW5pc2hUZXN0LCAxMCk7Ci19Ci0KLWZ1
bmN0aW9uIGZpbmlzaFRlc3QoKQotewotICAgIGdjKCk7Ci0gICAgc2hvdWxkQmVEZWZpbmVkKGFu
b3RoZXJXaW5kb3dDcnlwdG8ud2Via2l0U3VidGxlKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0K
LQotd2luZG93Lm9ubG9hZCA9IHN0YXJ0VGVzdDsKLQotPC9zY3JpcHQ+Ci08aWZyYW1lIHNyYz0i
YWJvdXQ6YmxhbmsiPjwvaWZyYW1lPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
c2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1nYy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1nYy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDE1ODM4NykKKysrIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtZ2MtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICswLDAgQEAKLVRlc3QgdGhhdCB3aW5kb3cu
Y3J5cHRvLnN1YnRsZSB3cmFwcGVyIHByZXNlcnZlcyBjdXN0b20gcHJvcGVydGllcy4KLQotT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgd2luZG93LmNyeXB0by53ZWJraXRTdWJ0
bGUuZm9vIGlzICJiYXIiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1Qg
Q09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1nYy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtZ2Mu
aHRtbAkocmV2aXNpb24gMTU4Mzg3KQorKysgTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1
YnRsZS1nYy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM4ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci08c2NyaXB0PgotCi1kZXNjcmlwdGlvbigiVGVzdCB0aGF0IHdpbmRvdy5jcnlwdG8uc3VidGxl
IHdyYXBwZXIgcHJlc2VydmVzIGN1c3RvbSBwcm9wZXJ0aWVzLiIpOwotanNUZXN0SXNBc3luYyA9
IHRydWU7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgd2luZG93LmNyeXB0by53ZWJr
aXRTdWJ0bGUuZm9vID0gImJhciI7Ci0gICAgZ2MoKTsKLSAgICBzZXRUaW1lb3V0KGNvbnRpbnVl
VGVzdCwgMTApOwotfQotCi1mdW5jdGlvbiBjb250aW51ZVRlc3QoKQotewotICAgIGdjKCk7Ci0g
ICAgc2V0VGltZW91dChmaW5pc2hUZXN0LCAxMCk7Ci19Ci0KLWZ1bmN0aW9uIGZpbmlzaFRlc3Qo
KQotewotICAgIGdjKCk7Ci0gICAgc2hvdWxkQmUoJ3dpbmRvdy5jcnlwdG8ud2Via2l0U3VidGxl
LmZvbycsICciYmFyIicpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfQotCi13aW5kb3cub25sb2Fk
ID0gc3RhcnRUZXN0OwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtc2hhMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1zaGExLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMTU4Mzg3KQorKysgTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1z
aGExLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxOCArMCwwIEBACi1UZXN0IGNy
eXB0by5zdWJ0bGUuZGlnZXN0LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotU0hB
MSBvZiBbXQotICAgID0gW2RhIDM5IGEzIGVlIDVlIDZiIDRiIDBkIDMyIDU1IGJmIGVmIDk1IDYw
IDE4IDkwIGFmIGQ4IDA3IDA5XQotU0hBMSBvZiBbMHgwXQotICAgID0gWzViIGE5IDNjIDlkIGIw
IGNmIGY5IDNmIDUyIGI1IDIxIGQ3IDQyIDBlIDQzIGY2IGVkIGEyIDc4IDRmXQotU0hBMSBvZiBb
MCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdCi0gICAgPSBbMmMgN2UgN2MgMzggNGYg
NzggMjkgNjkgNDIgODIgYjEgZTMgYTYgMjEgNmQgZWYgODAgODIgZDAgNTVdCi1TSEExIG9mIFtu
ZXcgVWludDhBcnJheShbMCwgMSwgMiwgMywgNF0pLCBuZXcgVWludDhBcnJheSg1LCA2LCA3LCA4
LCA5LCAxMF0pXQotICAgID0gWzJjIDdlIDdjIDM4IDRmIDc4IDI5IDY5IDQyIDgyIGIxIGUzIGE2
IDIxIDZkIGVmIDgwIDgyIGQwIDU1XQotUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KCdz
aGEtMScpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYSBmdW5j
dGlvbiAoZXZhbHVhdGluZyAnY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSgnc2hhLTEnKScpLgot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6
IExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtc2hhMS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtc2hhMS5odG1sCShyZXZpc2lv
biAxNTgzODcpCisrKyBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tc3VidGxlLXNoYTEuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSw0OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGNyeXB0by5zdWJ0bGUuZGlnZXN0
LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotaWYgKCF3aW5kb3cuc3VidGxlKQotICAg
IHdpbmRvdy5jcnlwdG8uc3VidGxlID0gd2luZG93LmNyeXB0by53ZWJraXRTdWJ0bGU7Ci0KLVBy
b21pc2UuZnVsZmlsbChudWxsKS50aGVuKGZ1bmN0aW9uKCkgewotICAgIGRlYnVnKCJTSEExIG9m
IFtdIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KCdzaGEtMScsIFtuZXcgVWlu
dDhBcnJheShbXSldKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgcHJpbnRBY2Nl
cHRlZFJlc3VsdChyZXN1bHQpOwotCi0gICAgZGVidWcoIlNIQTEgb2YgWzB4MF0iKQotICAgIHJl
dHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIFtuZXcgVWludDhBcnJh
eShbMF0pXSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHByaW50QWNjZXB0ZWRS
ZXN1bHQocmVzdWx0KTsKLQotICAgIGRlYnVnKCJTSEExIG9mIFswLCAxLCAyLCAzLCA0LCA1LCA2
LCA3LCA4LCA5LCAxMF0iKTsKLSAgICB2YXIgZGF0YSA9IG5ldyBVaW50OEFycmF5KFswLCAxLCAy
LCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0pOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRp
Z2VzdCh7bmFtZTogJ3NoYS0xJ30sIFtkYXRhXSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
ewotICAgIHByaW50QWNjZXB0ZWRSZXN1bHQocmVzdWx0KTsKLQotICAgIGRlYnVnKCJTSEExIG9m
IFtuZXcgVWludDhBcnJheShbMCwgMSwgMiwgMywgNF0pLCBuZXcgVWludDhBcnJheSg1LCA2LCA3
LCA4LCA5LCAxMF0pXSIpOwotICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTog
J3NoYS0xJ30sIFtuZXcgVWludDhBcnJheShbMCwgMSwgMiwgMywgNF0pLCBuZXcgVWludDhBcnJh
eShbNSwgNiwgNywgOCwgOSwgMTBdKV0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAg
ICBwcmludEFjY2VwdGVkUmVzdWx0KHJlc3VsdCk7Ci0gICAgLy8gQWxsIFNIQS0xIGNhbiBkbyBp
cyBkaWdlc3QuCi0gICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoJ3No
YS0xJykiKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jb21tb24uanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2NvbW1vbi5qcwkocmV2
aXNpb24gMTU4Mzg3KQorKysgTGF5b3V0VGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2NvbW1vbi5q
cwkod29ya2luZyBjb3B5KQpAQCAtMSw2MyArMCwwIEBACi1mdW5jdGlvbiBpbXBvcnRUZXN0S2V5
cygpCi17Ci0gICAgdmFyIGtleUZvcm1hdCA9ICJzcGtpIjsKLSAgICB2YXIgZGF0YSA9IG5ldyBV
aW50OEFycmF5KFtdKTsKLSAgICB2YXIgZXh0cmFjdGFibGUgPSBmYWxzZTsKLSAgICB2YXIga2V5
VXNhZ2VzID0gWydlbmNyeXB0JywgJ2RlY3J5cHQnLCAnc2lnbicsICd2ZXJpZnknXTsKLQotICAg
IHZhciBobWFjUHJvbWlzZSA9IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KGtleUZvcm1hdCwgZGF0
YSwge25hbWU6ICdobWFjJywgaGFzaDoge25hbWU6ICdzaGEtMSd9fSwgZXh0cmFjdGFibGUsIGtl
eVVzYWdlcyk7Ci0gICAgdmFyIHJzYVNzYVByb21pc2UgPSBjcnlwdG8uc3VidGxlLmltcG9ydEtl
eShrZXlGb3JtYXQsIGRhdGEsIHtuYW1lOiAnUlNBU1NBLVBLQ1MxLXYxXzUnLCBoYXNoOiB7bmFt
ZTogJ3NoYS0xJ319LCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzKTsKLSAgICB2YXIgYWVzQ2JjUHJv
bWlzZSA9IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KGtleUZvcm1hdCwgZGF0YSwge25hbWU6ICdB
RVMtQ0JDJ30sIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXMpOwotICAgIHZhciBhZXNDYmNKdXN0RGVj
cnlwdCA9IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KGtleUZvcm1hdCwgZGF0YSwge25hbWU6ICdB
RVMtQ0JDJ30sIGV4dHJhY3RhYmxlLCBbJ2RlY3J5cHQnXSk7Ci0KLSAgICByZXR1cm4gUHJvbWlz
ZS5ldmVyeShobWFjUHJvbWlzZSwgcnNhU3NhUHJvbWlzZSwgYWVzQ2JjUHJvbWlzZSwgYWVzQ2Jj
SnVzdERlY3J5cHQpLnRoZW4oZnVuY3Rpb24ocmVzdWx0cykgewotICAgICAgICByZXR1cm4gewot
ICAgICAgICAgICAgaG1hY1NoYTE6IHJlc3VsdHNbMF0sCi0gICAgICAgICAgICByc2FTc2FTaGEx
OiByZXN1bHRzWzFdLAotICAgICAgICAgICAgYWVzQ2JjOiByZXN1bHRzWzJdLAotICAgICAgICAg
ICAgYWVzQ2JjSnVzdERlY3J5cHQ6IHJlc3VsdHNbM10sCi0gICAgICAgIH07Ci0gICAgfSk7Ci19
Ci0KLS8vIEJ1aWxkcyBhIGhleCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW55IGFycmF5LWxp
a2UgaW5wdXQgKGFycmF5IG9yCi0vLyBBcnJheUJ1ZmZlclZpZXcpLiBUaGUgb3V0cHV0IGxvb2tz
IGxpa2UgdGhpczoKLS8vICAgIFthYiAwMyA0YyA5OV0KLWZ1bmN0aW9uIGJ5dGVBcnJheVRvSGV4
U3RyaW5nKGJ5dGVzKQotewotICAgIHZhciBoZXhCeXRlcyA9IFtdOwotCi0gICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgYnl0ZVN0cmluZyA9
IGJ5dGVzW2ldLnRvU3RyaW5nKDE2KTsKLSAgICAgICAgaWYgKGJ5dGVTdHJpbmcubGVuZ3RoIDwg
MikKLSAgICAgICAgICAgIGJ5dGVTdHJpbmcgPSAiMCIgKyBieXRlU3RyaW5nOwotICAgICAgICBo
ZXhCeXRlcy5wdXNoKGJ5dGVTdHJpbmcpOwotICAgIH0KLQotICAgIHJldHVybiAiWyIgKyBoZXhC
eXRlcy5qb2luKCIgIikgKyAiXSI7Ci19Ci0KLWZ1bmN0aW9uIGFzY2lpVG9BcnJheUJ1ZmZlcihz
dHIpCi17Ci0gICAgdmFyIGNoYXJzID0gW107Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIu
bGVuZ3RoOyArK2kpCi0gICAgICAgIGNoYXJzLnB1c2goc3RyLmNoYXJDb2RlQXQoaSkpOwotICAg
IHJldHVybiBuZXcgVWludDhBcnJheShjaGFycyk7Ci19Ci0KLWZ1bmN0aW9uIHByaW50UmVqZWN0
ZWRSZXN1bHQodmFsdWUpCi17Ci0gICAgZGVidWcoIiAgICByZWplY3RlZCB3aXRoIHZhbHVlIG9m
ICIgKyB2YWx1ZSk7Ci19Ci0KLWZ1bmN0aW9uIHByaW50QWNjZXB0ZWRSZXN1bHQocmVzdWx0KQot
ewotICAgIGRlYnVnKCIgICAgPSAiICsgYnl0ZUFycmF5VG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJy
YXkocmVzdWx0KSkpOwotfQotCi1mdW5jdGlvbiBmYWlsQW5kRmluaXNoSlNUZXN0KGVycm9yKQot
ewotICAgIGlmIChlcnJvcikKLSAgICAgICBkZWJ1ZyhlcnJvcik7Ci0gICAgZmluaXNoSlNUZXN0
KCk7Ci19Cg==
</data>
<flag name="review"
          id="238456"
          type_id="1"
          status="+"
          setter="andersca"
    />
    <flag name="commit-queue"
          id="238457"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215677</attachid>
            <date>2013-10-31 14:17:18 -0700</date>
            <delta_ts>2013-10-31 14:48:14 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>EnableSubtleCrypto.txt</filename>
            <type>text/plain</type>
            <size>74200</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU4MzkwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBA
CisyMDEzLTEwLTMxICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAg
ICAgIEVuYWJsZSBXZWJDcnlwdG8gb24gTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM1ODcKKworICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMg
Q2FybHNzb24uCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZzogRG8gaXQuCisKIDIwMTMtMTAtMzEgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByZWFsbHkgcmVtb3ZlIENhY2hlZFRyYW5zY2VuZGVu
dGFsRnVuY3Rpb24uaC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHJldmlzaW9uIDE1
ODM4NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMTU1LDcgKzE1NSw3IEBAIEVOQUJMRV9T
UEVFQ0hfU1lOVEhFU0lTID0gJChFTkFCTEVfU1BFRUMKIEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lT
X21hY29zeCA9IEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTOwogRU5BQkxFX1NRTF9EQVRBQkFTRSA9
IEVOQUJMRV9TUUxfREFUQUJBU0U7CiBFTkFCTEVfU1VCUElYRUxfTEFZT1VUID0gOwotRU5BQkxF
X1NVQlRMRV9DUllQVE8gPSA7CitFTkFCTEVfU1VCVExFX0NSWVBUTyA9IEVOQUJMRV9TVUJUTEVf
Q1JZUFRPOwogRU5BQkxFX1NWRyA9IEVOQUJMRV9TVkc7CiBFTkFCTEVfU1ZHX0ZPTlRTID0gRU5B
QkxFX1NWR19GT05UUzsKIEVOQUJMRV9URU1QTEFURV9FTEVNRU5UID0gOwpJbmRleDogU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTU4MzkwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTMtMTAtMzEgIEFsZXhleSBQcm9za3VyeWFrb3Yg
IDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIFdlYkNyeXB0byBvbiBNYWMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzU4NworCisgICAg
ICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KKworICAgICAgICAqIENvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOiBFbmFibGUgaXQuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwOiBCdWlsZCBmaXguCisKKyAg
ICAgICAgKiBjcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwOiAoV2ViQ29yZTo6Q3J5
cHRvQWxnb3JpdGhtUmVnaXN0cnk6OmdldElkZW50aWZpZXJGb3JOYW1lKToKKyAgICAgICAgU3Bl
Y2lhbCBjYXNlIGVtcHR5IGtleXMgdG8gYXZvaWQgdXBzZXR0aW5nIEhhc2hNYXAuCisKKyAgICAg
ICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmNwcDogKFdlYkNvcmU6
OkNyeXB0b0FsZ29yaXRobVNIQTE6OmNyZWF0ZSk6CisgICAgICAgIEJ1aWxkIGZpeC4gQ2FuJ3Qg
dXNlIG1ha2VfdW5pcXVlLCBiZWNhdXNlIGNvbnN0cnVjdG9yIGlzIHByaXZhdGUuCisKIDIwMTMt
MTAtMzEgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkIHR5cG8gZml4IGFmdGVyIDE1ODM4Ni4gKGJ1aWxkZml4IGFmdGVyIHIxNTgzNjUp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gMTU4Mzg3KQorKysgU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTE1
NSw3ICsxNTUsNyBAQCBFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUyA9ICQoRU5BQkxFX1NQRUVDCiBF
TkFCTEVfU1BFRUNIX1NZTlRIRVNJU19tYWNvc3ggPSBFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUzsK
IEVOQUJMRV9TUUxfREFUQUJBU0UgPSBFTkFCTEVfU1FMX0RBVEFCQVNFOwogRU5BQkxFX1NVQlBJ
WEVMX0xBWU9VVCA9IDsKLUVOQUJMRV9TVUJUTEVfQ1JZUFRPID0gOworRU5BQkxFX1NVQlRMRV9D
UllQVE8gPSBFTkFCTEVfU1VCVExFX0NSWVBUTzsKIEVOQUJMRV9TVkcgPSBFTkFCTEVfU1ZHOwog
RU5BQkxFX1NWR19GT05UUyA9IEVOQUJMRV9TVkdfRk9OVFM7CiBFTkFCTEVfVEVNUExBVEVfRUxF
TUVOVCA9IDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3Jp
dGhtRGljdGlvbmFyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcAkocmV2aXNpb24gMTU4Mzg3KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNiBAQAogCiAjaWYgRU5BQkxFKFNVQlRMRV9D
UllQVE8pCiAKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1ITUFDLmgiCiAjaW5jbHVkZSAiQ3J5
cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcy5oIgogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUht
YWNQYXJhbXMuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oIgpAQCAtMTQ5
LDcgKzE0OCw3IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGEKICAg
ICByZXR1cm4gc3RkOjptb3ZlKHJlc3VsdCk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBh
cmFtZXRlcnNGb3JFbmNyeXB0KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpCitzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJz
Rm9yRW5jcnlwdChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
ciBhbGdvcml0aG0sIEpTQzo6SlNWYWx1ZSkKIHsKICAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewog
ICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNToKQEAg
LTE3OCw3ICsxNzcsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
CiAgICAgfQogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4g
SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRGVjcnlwdChK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpKU1Zh
bHVlKQorc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRv
QWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRlY3J5cHQoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU0M6OkpT
VmFsdWUpCiB7CiAgICAgc3dpdGNoIChhbGdvcml0aG0pIHsKICAgICBjYXNlIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU6CkBAIC0zMDMsNyArMzAyLDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcgogICAgIH0KIH0KIAotc3RkOjp1
bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGlj
dGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckdlbmVyYXRlS2V5KEpTQzo6RXhlY1N0YXRlKiBl
eGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpCitzdGQ6OnVuaXF1
ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9u
YXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yR2VuZXJhdGVLZXkoSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU0M6OkpTVmFsdWUpCiB7CiAg
ICAgc3dpdGNoIChhbGdvcml0aG0pIHsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OlJTQUVTX1BLQ1MxX3YxXzU6CkBAIC0zMzIsNyArMzMxLDcgQEAgc3RkOjp1bmlxdWVfcHRy
PENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcgogICAgIH0KIH0KIAotc3RkOjp1bmlxdWVfcHRyPENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3Jl
YXRlUGFyYW1ldGVyc0ZvckRlcml2ZUtleShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVlKQorc3RkOjp1bmlxdWVfcHRyPENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFy
YW1ldGVyc0ZvckRlcml2ZUtleShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciBhbGdvcml0aG0sIEpTQzo6SlNWYWx1ZSkKIHsKICAgICBzd2l0Y2ggKGFsZ29y
aXRobSkgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFf
djFfNToKQEAgLTM2MSw3ICszNjAsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyCiAgICAgfQogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9y
RGVyaXZlQml0cyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
ciwgSlNDOjpKU1ZhbHVlKQorc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRlcml2
ZUJpdHMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxn
b3JpdGhtLCBKU0M6OkpTVmFsdWUpCiB7CiAgICAgc3dpdGNoIChhbGdvcml0aG0pIHsKICAgICBj
YXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU6CkBAIC00MjIs
NyArNDIxLDcgQEAgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcgogICAg
IH0KIH0KIAotc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5
cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckV4cG9ydEtleShKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVl
KQorc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxn
b3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckV4cG9ydEtleShKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTQzo6SlNW
YWx1ZSkKIHsKICAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewogICAgIGNhc2UgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNToKQEAgLTQ1MSw3ICs0NTAsNyBAQCBzdGQ6
OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyCiAgICAgfQogfQogCi1zdGQ6OnVu
aXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0
aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yV3JhcEtleShKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVlKQorc3RkOjp1bmlxdWVfcHRy
PENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6
Y3JlYXRlUGFyYW1ldGVyc0ZvcldyYXBLZXkoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU0M6OkpTVmFsdWUpCiB7CiAgICAgc3dpdGNo
IChhbGdvcml0aG0pIHsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVT
X1BLQ1MxX3YxXzU6CkBAIC00ODAsNyArNDc5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcgogICAgIH0KIH0KIAotc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1l
dGVyc0ZvclVud3JhcEtleShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllciwgSlNDOjpKU1ZhbHVlKQorc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0Zv
clVud3JhcEtleShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
ciBhbGdvcml0aG0sIEpTQzo6SlNWYWx1ZSkKIHsKICAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewog
ICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNToKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5
LmNwcAkocmV2aXNpb24gMTU4Mzg3KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0Fs
Z29yaXRobVJlZ2lzdHJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsOSBAQCBDcnlw
dG9BbGdvcml0aG1SZWdpc3RyeTo6Q3J5cHRvQWxnb3JpdGhtCiAKIGJvb2wgQ3J5cHRvQWxnb3Jp
dGhtUmVnaXN0cnk6OmdldElkZW50aWZpZXJGb3JOYW1lKGNvbnN0IFN0cmluZyYgbmFtZSwgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllciYgcmVzdWx0KQogeworICAgIGlmIChuYW1lLmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgYXV0byBpdGVyID0gbV9uYW1lVG9JZGVu
dGlmaWVyTWFwLmZpbmQobmFtZS5sb3dlcigpKTsKICAgICBpZiAoaXRlciA9PSBtX25hbWVUb0lk
ZW50aWZpZXJNYXAuZW5kKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNI
QTEuY3BwCShyZXZpc2lvbiAxNTgzODcpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIs
NyBAQCBDcnlwdG9BbGdvcml0aG1TSEExOjp+Q3J5cHRvQWxnb3JpdGhtU0hBCiAKIHN0ZDo6dW5p
cXVlX3B0cjxDcnlwdG9BbGdvcml0aG0+IENyeXB0b0FsZ29yaXRobVNIQTE6OmNyZWF0ZSgpCiB7
Ci0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q3J5cHRvQWxnb3JpdGhtU0hBMT4oKTsKKyAg
ICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobT4obmV3IENyeXB0b0FsZ29y
aXRobVNIQTEpOwogfQogCiBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIENyeXB0b0FsZ29yaXRo
bVNIQTE6OmlkZW50aWZpZXIoKSBjb25zdApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTU4Mzkw
KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTMtMTAtMzEgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisK
KyAgICAgICAgRW5hYmxlIFdlYkNyeXB0byBvbiBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzU4NworCisgICAgICAgIFJldmlld2VkIGJ5IEFu
ZGVycyBDYXJsc3Nvbi4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnOiBEbyBpdC4KKwogMjAxMy0xMC0zMSAgU2VyZ2lvIENvcnJlaWEgIDxzZXJnaW8u
Y29ycmVpYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtXSzJdIENvbnZlcnQgU2VjY29tcEZp
bHRlcnMgdG8gdXNpbmcgdW5pcXVlX3B0ciBpbnN0ZWFkIG9mIE93blB0ci9QYXNzT3duUHRyCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZwkocmV2aXNpb24gMTU4Mzg3KQorKysgU291cmNlL1dlYktpdDIvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTE1NSw3
ICsxNTUsNyBAQCBFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUyA9ICQoRU5BQkxFX1NQRUVDCiBFTkFC
TEVfU1BFRUNIX1NZTlRIRVNJU19tYWNvc3ggPSBFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUzsKIEVO
QUJMRV9TUUxfREFUQUJBU0UgPSBFTkFCTEVfU1FMX0RBVEFCQVNFOwogRU5BQkxFX1NVQlBJWEVM
X0xBWU9VVCA9IDsKLUVOQUJMRV9TVUJUTEVfQ1JZUFRPID0gOworRU5BQkxFX1NVQlRMRV9DUllQ
VE8gPSBFTkFCTEVfU1VCVExFX0NSWVBUTzsKIEVOQUJMRV9TVkcgPSBFTkFCTEVfU1ZHOwogRU5B
QkxFX1NWR19GT05UUyA9IEVOQUJMRV9TVkdfRk9OVFM7CiBFTkFCTEVfVEVNUExBVEVfRUxFTUVO
VCA9IDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1ODM5MCkKKysrIFNvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEz
LTEwLTMxICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIEVu
YWJsZSBXZWJDcnlwdG8gb24gTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjM1ODcKKworICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNz
b24uCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzog
RG8gaXQuCisKIDIwMTMtMTAtMzAgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmVtb3ZlIGNvZGUgZm9yIE1hYyBMaW9uCkluZGV4OiBTb3VyY2UvV2ViS2l0L21h
Yy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwko
cmV2aXNpb24gMTU4Mzg3KQorKysgU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTE1NSw3ICsxNTUsNyBAQCBF
TkFCTEVfU1BFRUNIX1NZTlRIRVNJUyA9ICQoRU5BQkxFX1NQRUVDCiBFTkFCTEVfU1BFRUNIX1NZ
TlRIRVNJU19tYWNvc3ggPSBFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUzsKIEVOQUJMRV9TUUxfREFU
QUJBU0UgPSBFTkFCTEVfU1FMX0RBVEFCQVNFOwogRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCA9IDsK
LUVOQUJMRV9TVUJUTEVfQ1JZUFRPID0gOworRU5BQkxFX1NVQlRMRV9DUllQVE8gPSBFTkFCTEVf
U1VCVExFX0NSWVBUTzsKIEVOQUJMRV9TVkcgPSBFTkFCTEVfU1ZHOwogRU5BQkxFX1NWR19GT05U
UyA9IEVOQUJMRV9TVkdfRk9OVFM7CiBFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCA9IDsKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE1ODM5MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDYwIEBACisyMDEzLTEwLTMxICBBbGV4ZXkgUHJvc2t1cnlha292ICA8
YXBAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBXZWJDcnlwdG8gb24gTWFjCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM1ODcKKworICAgICAg
ICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3Rh
dGlvbnM6CisgICAgICAgIE9ubHkgc2tpcHBpbmcgb24gc3BlY2lmaWMgcGxhdGZvcm1zIG5vdy4K
KworICAgICAgICAqIGNyeXB0bzogQWRkZWQuCisgICAgICAgICogY3J5cHRvL2NyeXB0by1nYy1l
eHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1nYy1l
eHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL2NyeXB0by1nYy5odG1sOiBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tZ2MuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8v
Y3J5cHRvLXJhbmRvbS12YWx1ZXMtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0
cy9zZWN1cml0eS9jcnlwdG8tcmFuZG9tLXZhbHVlcy1leHBlY3RlZC50eHQuCisgICAgICAgICog
Y3J5cHRvL2NyeXB0by1yYW5kb20tdmFsdWVzLWxpbWl0cy1leHBlY3RlZC50eHQ6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1yYW5kb20tdmFsdWVzLWxpbWl0cy1leHBl
Y3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL2NyeXB0by1yYW5kb20tdmFsdWVzLWxpbWl0cy5o
dG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tcmFuZG9tLXZhbHVl
cy1saW1pdHMuaHRtbC4KKyAgICAgICAgKiBjcnlwdG8vY3J5cHRvLXJhbmRvbS12YWx1ZXMtdHlw
ZXMtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8t
cmFuZG9tLXZhbHVlcy10eXBlcy1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL2NyeXB0
by1yYW5kb20tdmFsdWVzLXR5cGVzLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3NlY3Vy
aXR5L2NyeXB0by1yYW5kb20tdmFsdWVzLXR5cGVzLmh0bWwuCisgICAgICAgICogY3J5cHRvL2Ny
eXB0by1yYW5kb20tdmFsdWVzLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5
L2NyeXB0by1yYW5kb20tdmFsdWVzLmh0bWwuCisgICAgICAgICogY3J5cHRvL3N1YnRsZTogQWRk
ZWQuCisgICAgICAgICogY3J5cHRvL3N1YnRsZS9hcmd1bWVudC1jb252ZXJzaW9uLWV4cGVjdGVk
LnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1hcmd1
bWVudHMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by9zdWJ0bGUvYXJndW1lbnQtY29u
dmVyc2lvbi5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tc3Vi
dGxlLWFyZ3VtZW50cy5odG1sLgorICAgICAgICAqIGNyeXB0by9zdWJ0bGUvZ2MtMi1leHBlY3Rl
ZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtZ2Mt
Mi1leHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL3N1YnRsZS9nYy0yLmh0bWw6IENvcGll
ZCBmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtZ2MtMi5odG1sLgorICAg
ICAgICAqIGNyeXB0by9zdWJ0bGUvZ2MtMy1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91
dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtZ2MtMy1leHBlY3RlZC50eHQuCisgICAgICAg
ICogY3J5cHRvL3N1YnRsZS9nYy0zLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3NlY3Vy
aXR5L2NyeXB0by1zdWJ0bGUtZ2MtMy5odG1sLgorICAgICAgICAqIGNyeXB0by9zdWJ0bGUvZ2Mt
ZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tc3Vi
dGxlLWdjLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL2djLmh0bWw6IENv
cGllZCBmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtZ2MuaHRtbC4KKyAg
ICAgICAgKiBjcnlwdG8vc3VidGxlL3Jlc291cmNlczogQWRkZWQuCisgICAgICAgICogY3J5cHRv
L3N1YnRsZS9yZXNvdXJjZXMvY29tbW9uLmpzOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9zZWN1
cml0eS9yZXNvdXJjZXMvY29tbW9uLmpzLgorICAgICAgICAqIGNyeXB0by9zdWJ0bGUvc2hhLTEt
ZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tc3Vi
dGxlLXNoYTEtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by9zdWJ0bGUvc2hhLTEuaHRt
bDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1zaGExLmh0
bWwuCisgICAgICAgICogc2VjdXJpdHkvY3J5cHRvLWdjLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBzZWN1cml0eS9jcnlwdG8tZ2MuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBz
ZWN1cml0eS9jcnlwdG8tcmFuZG9tLXZhbHVlcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogc2VjdXJpdHkvY3J5cHRvLXJhbmRvbS12YWx1ZXMtbGltaXRzLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBzZWN1cml0eS9jcnlwdG8tcmFuZG9tLXZhbHVlcy1saW1pdHMu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBzZWN1cml0eS9jcnlwdG8tcmFuZG9tLXZhbHVlcy10
eXBlcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogc2VjdXJpdHkvY3J5cHRvLXJh
bmRvbS12YWx1ZXMtdHlwZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBzZWN1cml0eS9jcnlw
dG8tcmFuZG9tLXZhbHVlcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHNlY3VyaXR5L2NyeXB0
by1zdWJ0bGUtYXJndW1lbnRzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBzZWN1
cml0eS9jcnlwdG8tc3VidGxlLWFyZ3VtZW50cy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHNl
Y3VyaXR5L2NyeXB0by1zdWJ0bGUtZ2MtMi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1nYy0yLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
c2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1nYy0zLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBzZWN1cml0eS9jcnlwdG8tc3VidGxlLWdjLTMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBzZWN1cml0eS9jcnlwdG8tc3VidGxlLWdjLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBzZWN1cml0eS9jcnlwdG8tc3VidGxlLWdjLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
c2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1zaGExLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBzZWN1cml0eS9jcnlwdG8tc3VidGxlLXNoYTEuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBzZWN1cml0eS9yZXNvdXJjZXMvY29tbW9uLmpzOiBSZW1vdmVkLgorICAgICAgICBNb3ZlZCB0
ZXN0cyBmcm9tIHNlY3VyaXR5LyB0byBjcnlwdG8vLgorCiAyMDEzLTEwLTMxICBNeWxlcyBDLiBN
YXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBDU1MzIHRleHQg
ZGVjb3JhdGlvbiBpbXBsZW1lbnRhdGlvbiBiZWhpbmQgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFU
SU9OKQpJbmRleDogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxNTgzODcpCisrKyBMYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC03MSwxMiArNzEsNSBAQCBm
YXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWNsb25lLmh0bWwgCiAjIFNraXBwaW5nIGl0IGZv
ciBub3csIHRoZW4gcHV0IGl0IGFnYWluIHdoZW4gdGhlIHNwZWMgZGVjaWRlcyBpdAogZmFzdC9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1vbmVuZGVkLmh0bWwgWyBTa2lwIF0KIAotIyBjcnlwdG8u
c3VidGxlIGlzIG5vdCB5ZXQgZW5hYmxlZCBvbiBhbnkgcG9ydHMKLXdlYmtpdC5vcmcvYi8xMjI2
Nzkgc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1nYy5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2Iv
MTIyNjc5IHNlY3VyaXR5L2NyeXB0by1zdWJ0bGUtZ2MtMi5odG1sIFsgU2tpcCBdCi13ZWJraXQu
b3JnL2IvMTIyNjc5IHNlY3VyaXR5L2NyeXB0by1zdWJ0bGUtZ2MtMy5odG1sIFsgU2tpcCBdCi13
ZWJraXQub3JnL2IvMTIyNjc5IHNlY3VyaXR5L2NyeXB0by1zdWJ0bGUtc2hhMS5odG1sIFsgU2tp
cCBdCi13ZWJraXQub3JnL2IvMTIyNjc5IHNlY3VyaXR5L2NyeXB0by1zdWJ0bGUtYXJndW1lbnRz
Lmh0bWwgWyBTa2lwIF0KLQogd2Via2l0Lm9yZy9iLzEyMzU1NSBbIERlYnVnIF0gbWVkaWEvbWVk
aWEtZnJhZ21lbnRzL1RDMDA1NC5odG1sIFsgQ3Jhc2ggXQogd2Via2l0Lm9yZy9iLzEyMzU1NSBb
IERlYnVnIF0gbWVkaWEvbWVkaWEtZnJhZ21lbnRzL1RDMDA2MS5odG1sIFsgQ3Jhc2ggXQpJbmRl
eDogTGF5b3V0VGVzdHMvY3J5cHRvL2NyeXB0by1nYy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvY3J5cHRvL2NyeXB0by1nYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE1
ODM3NSkJKGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLWdjLWV4cGVjdGVkLnR4dDox
NTgzNzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vY3J5cHRvLWdjLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitUZXN0IHRoYXQgd2luZG93LmNyeXB0byB3cmFw
cGVyIHByZXNlcnZlcyBjdXN0b20gcHJvcGVydGllcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1Mgd2luZG93LmNyeXB0by5mb28gaXMgImJhciIKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9j
cnlwdG8vY3J5cHRvLWdjLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL2Ny
eXB0by1nYy5odG1sCShyZXZpc2lvbiAxNTgzNzUpCShmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5
L2NyeXB0by1nYy5odG1sOjE1ODM3NSkKKysrIExheW91dFRlc3RzL2NyeXB0by9jcnlwdG8tZ2Mu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KKworZGVzY3JpcHRpb24oIlRlc3QgdGhhdCB3aW5kb3cuY3J5cHRvIHdyYXBwZXIgcHJlc2Vy
dmVzIGN1c3RvbSBwcm9wZXJ0aWVzLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Z1bmN0
aW9uIHN0YXJ0VGVzdCgpCit7CisgICAgd2luZG93LmNyeXB0by5mb28gPSAiYmFyIjsKKyAgICBn
YygpOworICAgIHNldFRpbWVvdXQoY29udGludWVUZXN0LCAxMCk7Cit9CisKK2Z1bmN0aW9uIGNv
bnRpbnVlVGVzdCgpCit7CisgICAgZ2MoKTsKKyAgICBzZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDEw
KTsKK30KKworZnVuY3Rpb24gZmluaXNoVGVzdCgpCit7CisgICAgZ2MoKTsKKyAgICBzaG91bGRC
ZSgnd2luZG93LmNyeXB0by5mb28nLCAnImJhciInKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30K
Kword2luZG93Lm9ubG9hZCA9IHN0YXJ0VGVzdDsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vY3J5cHRvLXJhbmRvbS12YWx1ZXMtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by9jcnlwdG8tcmFuZG9tLXZhbHVl
cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE1ODM3NSkJKGZyb20gTGF5b3V0VGVzdHMvc2VjdXJp
dHkvY3J5cHRvLXJhbmRvbS12YWx1ZXMtZXhwZWN0ZWQudHh0OjE1ODM3NSkKKysrIExheW91dFRl
c3RzL2NyeXB0by9jcnlwdG8tcmFuZG9tLXZhbHVlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgY3J5cHRvLnJhbmRvbVZhbHVlcy4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgJ2NyeXB0bycgaW4gd2luZG93IGlzIHRydWUK
K1BBU1MgJ2dldFJhbmRvbVZhbHVlcycgaW4gd2luZG93LmNyeXB0byBpcyB0cnVlCitQQVNTIG1h
dGNoaW5nQnl0ZXMgPCAxMDAgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by9jcnlwdG8tcmFu
ZG9tLXZhbHVlcy1saW1pdHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2NyeXB0by9jcnlwdG8tcmFuZG9tLXZhbHVlcy1saW1pdHMtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxNTgzNzUpCShmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1yYW5kb20tdmFsdWVz
LWxpbWl0cy1leHBlY3RlZC50eHQ6MTU4Mzc1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL2NyeXB0
by1yYW5kb20tdmFsdWVzLWxpbWl0cy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMyBAQAorVGVzdHMgdGhlIGxpbWl0cyBvZiBjcnlwdG8ucmFuZG9tVmFsdWVzLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyAnY3J5cHRvJyBpbiB3aW5kb3cgaXMg
dHJ1ZQorUEFTUyAnZ2V0UmFuZG9tVmFsdWVzJyBpbiB3aW5kb3cuY3J5cHRvIGlzIHRydWUKK1BB
U1MgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhhbG1vc3RUb29MYXJnZUFycmF5KSBkaWQgbm90IHRo
cm93IGV4Y2VwdGlvbi4KK1BBU1MgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyh0b29MYXJnZUFycmF5
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFF1b3RhRXhjZWVkZWRFcnJvcjogRE9NIEV4Y2VwdGlv
biAyMi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vY3J5cHRvLXJhbmRvbS12YWx1ZXMtbGltaXRzLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL2NyeXB0by1yYW5kb20tdmFsdWVz
LWxpbWl0cy5odG1sCShyZXZpc2lvbiAxNTgzNzUpCShmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5
L2NyeXB0by1yYW5kb20tdmFsdWVzLWxpbWl0cy5odG1sOjE1ODM3NSkKKysrIExheW91dFRlc3Rz
L2NyeXB0by9jcnlwdG8tcmFuZG9tLXZhbHVlcy1saW1pdHMuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGxpbWl0cyBvZiBjcnlwdG8ucmFuZG9tVmFsdWVzLiIp
OworCitpZiAoIXdpbmRvdy5BcnJheUJ1ZmZlcikKKyAgICBkZWJ1ZygiVGhpcyB0ZXN0IHJlcXVy
ZXMgQXJyYXlCdWZmZXJzIHRvIHJ1biEiKTsKKworc2hvdWxkQmUoIidjcnlwdG8nIGluIHdpbmRv
dyIsICJ0cnVlIik7CitzaG91bGRCZSgiJ2dldFJhbmRvbVZhbHVlcycgaW4gd2luZG93LmNyeXB0
byIsICJ0cnVlIik7CisKK3RyeSB7CisgICAgdmFyIGFsbW9zdFRvb0xhcmdlQXJyYXkgPSBuZXcg
VWludDhBcnJheSg2NTUzNik7CisgICAgdmFyIHRvb0xhcmdlQXJyYXkgPSBuZXcgVWludDhBcnJh
eSg2NTUzNyk7CisKKyAgICBzaG91bGROb3RUaHJvdygiY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhh
bG1vc3RUb29MYXJnZUFycmF5KSIpOworICAgIHNob3VsZFRocm93KCJjcnlwdG8uZ2V0UmFuZG9t
VmFsdWVzKHRvb0xhcmdlQXJyYXkpIik7Cit9IGNhdGNoKGV4KSB7CisgICAgZGVidWcoZXgpOwor
fQorCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKworCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlw
dG8vY3J5cHRvLXJhbmRvbS12YWx1ZXMtdHlwZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2NyeXB0by9jcnlwdG8tcmFuZG9tLXZhbHVlcy10eXBlcy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDE1ODM3NSkJKGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXJh
bmRvbS12YWx1ZXMtdHlwZXMtZXhwZWN0ZWQudHh0OjE1ODM3NSkKKysrIExheW91dFRlc3RzL2Ny
eXB0by9jcnlwdG8tcmFuZG9tLXZhbHVlcy10eXBlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw1MiBAQAorVGVzdHMgd2hpY2ggdHlwZXMgYXJlIHZhbGlkIGZvciBjcnlw
dG8ucmFuZG9tVmFsdWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyAn
Y3J5cHRvJyBpbiB3aW5kb3cgaXMgdHJ1ZQorUEFTUyAnZ2V0UmFuZG9tVmFsdWVzJyBpbiB3aW5k
b3cuY3J5cHRvIGlzIHRydWUKK1BBU1MgcmFuZG9tID0gY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhu
ZXcgVWludDhBcnJheSgzKSkgaXMgZGVmaW5lZC4KK1BBU1MgcmFuZG9tIGlzIGFuIGluc3RhbmNl
IG9mIFVpbnQ4QXJyYXkKK1BBU1MgdmlldyA9IG5ldyBVaW50OEFycmF5KDMpIGlzIGRlZmluZWQu
CitQQVNTIHJhbmRvbSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXModmlldykgaXMgZGVmaW5lZC4K
K1BBU1MgcmFuZG9tIGlzIHZpZXcKK1BBU1MgcmFuZG9tID0gY3J5cHRvLmdldFJhbmRvbVZhbHVl
cyhuZXcgSW50OEFycmF5KDMpKSBpcyBkZWZpbmVkLgorUEFTUyByYW5kb20gaXMgYW4gaW5zdGFu
Y2Ugb2YgSW50OEFycmF5CitQQVNTIHZpZXcgPSBuZXcgSW50OEFycmF5KDMpIGlzIGRlZmluZWQu
CitQQVNTIHJhbmRvbSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXModmlldykgaXMgZGVmaW5lZC4K
K1BBU1MgcmFuZG9tIGlzIHZpZXcKK1BBU1MgcmFuZG9tID0gY3J5cHRvLmdldFJhbmRvbVZhbHVl
cyhuZXcgVWludDhDbGFtcGVkQXJyYXkoMykpIGlzIGRlZmluZWQuCitQQVNTIHJhbmRvbSBpcyBh
biBpbnN0YW5jZSBvZiBVaW50OENsYW1wZWRBcnJheQorUEFTUyB2aWV3ID0gbmV3IFVpbnQ4Q2xh
bXBlZEFycmF5KDMpIGlzIGRlZmluZWQuCitQQVNTIHJhbmRvbSA9IGNyeXB0by5nZXRSYW5kb21W
YWx1ZXModmlldykgaXMgZGVmaW5lZC4KK1BBU1MgcmFuZG9tIGlzIHZpZXcKK1BBU1MgcmFuZG9t
ID0gY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDE2QXJyYXkoMykpIGlzIGRlZmluZWQu
CitQQVNTIHJhbmRvbSBpcyBhbiBpbnN0YW5jZSBvZiBVaW50MTZBcnJheQorUEFTUyB2aWV3ID0g
bmV3IFVpbnQxNkFycmF5KDMpIGlzIGRlZmluZWQuCitQQVNTIHJhbmRvbSA9IGNyeXB0by5nZXRS
YW5kb21WYWx1ZXModmlldykgaXMgZGVmaW5lZC4KK1BBU1MgcmFuZG9tIGlzIHZpZXcKK1BBU1Mg
cmFuZG9tID0gY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgSW50MTZBcnJheSgzKSkgaXMgZGVm
aW5lZC4KK1BBU1MgcmFuZG9tIGlzIGFuIGluc3RhbmNlIG9mIEludDE2QXJyYXkKK1BBU1Mgdmll
dyA9IG5ldyBJbnQxNkFycmF5KDMpIGlzIGRlZmluZWQuCitQQVNTIHJhbmRvbSA9IGNyeXB0by5n
ZXRSYW5kb21WYWx1ZXModmlldykgaXMgZGVmaW5lZC4KK1BBU1MgcmFuZG9tIGlzIHZpZXcKK1BB
U1MgcmFuZG9tID0gY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDMyQXJyYXkoMykpIGlz
IGRlZmluZWQuCitQQVNTIHJhbmRvbSBpcyBhbiBpbnN0YW5jZSBvZiBVaW50MzJBcnJheQorUEFT
UyB2aWV3ID0gbmV3IFVpbnQzMkFycmF5KDMpIGlzIGRlZmluZWQuCitQQVNTIHJhbmRvbSA9IGNy
eXB0by5nZXRSYW5kb21WYWx1ZXModmlldykgaXMgZGVmaW5lZC4KK1BBU1MgcmFuZG9tIGlzIHZp
ZXcKK1BBU1MgcmFuZG9tID0gY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgSW50MzJBcnJheSgz
KSkgaXMgZGVmaW5lZC4KK1BBU1MgcmFuZG9tIGlzIGFuIGluc3RhbmNlIG9mIEludDMyQXJyYXkK
K1BBU1MgdmlldyA9IG5ldyBJbnQzMkFycmF5KDMpIGlzIGRlZmluZWQuCitQQVNTIHJhbmRvbSA9
IGNyeXB0by5nZXRSYW5kb21WYWx1ZXModmlldykgaXMgZGVmaW5lZC4KK1BBU1MgcmFuZG9tIGlz
IHZpZXcKK1BBU1MgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgRmxvYXQzMkFycmF5KDMpKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IFR5cGVNaXNtYXRjaEVycm9yOiBET00gRXhjZXB0aW9uIDE3
LgorUEFTUyBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBGbG9hdDY0QXJyYXkoMykpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogVHlwZU1pc21hdGNoRXJyb3I6IERPTSBFeGNlcHRpb24gMTcuCitQ
QVNTIGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KDMyKSBpcyBkZWZpbmVkLgorUEFTUyBidWZmZXIu
YnVmZmVyIGlzIGRlZmluZWQuCitQQVNTIHZpZXcgPSBuZXcgRGF0YVZpZXcoYnVmZmVyLmJ1ZmZl
cikgaXMgZGVmaW5lZC4KK1BBU1MgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyh2aWV3KSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IFR5cGVNaXNtYXRjaEVycm9yOiBET00gRXhjZXB0aW9uIDE3LgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExh
eW91dFRlc3RzL2NyeXB0by9jcnlwdG8tcmFuZG9tLXZhbHVlcy10eXBlcy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by9jcnlwdG8tcmFuZG9tLXZhbHVlcy10eXBlcy5odG1s
CShyZXZpc2lvbiAxNTgzNzUpCShmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1yYW5k
b20tdmFsdWVzLXR5cGVzLmh0bWw6MTU4Mzc1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL2NyeXB0
by1yYW5kb20tdmFsdWVzLXR5cGVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NyBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0
aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IlRlc3RzIHdoaWNoIHR5cGVzIGFyZSB2YWxpZCBmb3IgY3J5cHRvLnJhbmRvbVZhbHVlcy4iKTsK
KworaWYgKCF3aW5kb3cuQXJyYXlCdWZmZXIpCisgICAgZGVidWcoIlRoaXMgdGVzdCByZXF1cmVz
IEFycmF5QnVmZmVycyB0byBydW4hIik7CisKK3Nob3VsZEJlKCInY3J5cHRvJyBpbiB3aW5kb3ci
LCAidHJ1ZSIpOworc2hvdWxkQmUoIidnZXRSYW5kb21WYWx1ZXMnIGluIHdpbmRvdy5jcnlwdG8i
LCAidHJ1ZSIpOworCitmdW5jdGlvbiBjaGVja0ludGVnZXJUeXBlcygpIHsKKyAgICB2YXIgaW50
ZWdlclR5cGVzID0gWworICAgICAgICAiVWludDhBcnJheSIsICJJbnQ4QXJyYXkiLCAiVWludDhD
bGFtcGVkQXJyYXkiLAorICAgICAgICAiVWludDE2QXJyYXkiLCAiSW50MTZBcnJheSIsCisgICAg
ICAgICJVaW50MzJBcnJheSIsICJJbnQzMkFycmF5IiwKKyAgICBdOworICAgIGludGVnZXJUeXBl
cy5mb3JFYWNoKGZ1bmN0aW9uKGFycmF5VHlwZSkgeworICAgICAgICBzaG91bGRCZURlZmluZWQo
InJhbmRvbSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3ICIrYXJyYXlUeXBlKyIoMykpIik7
CisgICAgICAgIHNob3VsZEJlVHlwZSgicmFuZG9tIiwgYXJyYXlUeXBlKTsKKworICAgICAgICBz
aG91bGRCZURlZmluZWQoInZpZXcgPSBuZXcgIithcnJheVR5cGUrIigzKSIpOworICAgICAgICBz
aG91bGRCZURlZmluZWQoInJhbmRvbSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXModmlldykiKTsK
KyAgICAgICAgc2hvdWxkQmUoInJhbmRvbSIsICJ2aWV3Iik7CisgICAgfSk7Cit9CisKK2Z1bmN0
aW9uIGNoZWNrTm9uSW50ZWdlclR5cGVzKCkgeworICAgIHZhciBmbG9hdFR5cGVzID0gWworICAg
ICAgICAiRmxvYXQzMkFycmF5IiwgIkZsb2F0NjRBcnJheSIsCisgICAgXTsKKyAgICBmbG9hdFR5
cGVzLmZvckVhY2goZnVuY3Rpb24oYXJyYXlUeXBlKSB7CisgICAgICAgIHNob3VsZFRocm93KCJj
cnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyAiK2FycmF5VHlwZSsiKDMpKSIpOworICAgIH0pOwor
CisgICAgc2hvdWxkQmVEZWZpbmVkKCJidWZmZXIgPSBuZXcgVWludDhBcnJheSgzMikiKTsKKyAg
ICBzaG91bGRCZURlZmluZWQoImJ1ZmZlci5idWZmZXIiKTsKKyAgICBzaG91bGRCZURlZmluZWQo
InZpZXcgPSBuZXcgRGF0YVZpZXcoYnVmZmVyLmJ1ZmZlcikiKTsKKyAgICBzaG91bGRUaHJvdygi
Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyh2aWV3KSIpOworfQorCitjaGVja0ludGVnZXJUeXBlcygp
OworY2hlY2tOb25JbnRlZ2VyVHlwZXMoKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisK
KwpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL2NyeXB0by1yYW5kb20tdmFsdWVzLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL2NyeXB0by1yYW5kb20tdmFsdWVzLmh0bWwJ
KHJldmlzaW9uIDE1ODM3NSkJKGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXJhbmRv
bS12YWx1ZXMuaHRtbDoxNTgzNzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vY3J5cHRvLXJhbmRv
bS12YWx1ZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbGl0aWVzLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgY3J5cHRv
LnJhbmRvbVZhbHVlcy4iKTsKKworaWYgKCF3aW5kb3cuQXJyYXlCdWZmZXIpCisgICAgZGVidWco
IlRoaXMgdGVzdCByZXF1cmVzIEFycmF5QnVmZmVycyB0byBydW4hIik7CisKK3Nob3VsZEJlKCIn
Y3J5cHRvJyBpbiB3aW5kb3ciLCAidHJ1ZSIpOworc2hvdWxkQmUoIidnZXRSYW5kb21WYWx1ZXMn
IGluIHdpbmRvdy5jcnlwdG8iLCAidHJ1ZSIpOworCit0cnkgeworICAgIC8vIEZJWE1FOiBUaGlz
IHRlc3QgaXMgZmxha3kuICBJZiB3ZSByYW4gdGhpcyB0ZXN0IGV2ZXJ5IHNlY29uZCBzaW5jZSB0
aGUKKyAgICAvLyAgICAgICAgYmVnaW5uaW5nIG9mIHRoZSB1bml2ZXJzZSwgb24gYXZlcmFnZSwg
aXQgd291bGQgaGF2ZSBmYWlsZWQKKyAgICAvLyAgICAgICAgMl57LTc0OH0gdGltZXMuCisKKyAg
ICB2YXIgcmVmZXJlbmNlID0gbmV3IFVpbnQ4QXJyYXkoMTAwKTsKKyAgICB2YXIgc2FtcGxlID0g
bmV3IFVpbnQ4QXJyYXkoMTAwKTsKKworICAgIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMocmVmZXJl
bmNlKTsKKyAgICBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHNhbXBsZSk7CisKKyAgICB2YXIgbWF0
Y2hpbmdCeXRlcyA9IDA7CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlZmVyZW5jZS5sZW5n
dGg7IGkrKykgeworICAgICAgICBpZiAocmVmZXJlbmNlW2ldID09IHNhbXBsZVtpXSkKKyAgICAg
ICAgICAgIG1hdGNoaW5nQnl0ZXMrKzsKKyAgICB9CisKKyAgICBzaG91bGRCZSgibWF0Y2hpbmdC
eXRlcyA8IDEwMCIsICJ0cnVlIik7Cit9IGNhdGNoKGV4KSB7CisgICAgZGVidWcoZXgpOworfQor
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKworCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL2FyZ3VtZW50LWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvYXJndW1lbnQtY29udmVyc2lvbi1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDE1ODM4NykJKGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRs
ZS1hcmd1bWVudHMtZXhwZWN0ZWQudHh0OjE1ODM4NykKKysrIExheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvYXJndW1lbnQtY29udmVyc2lvbi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw0MCBAQAorVGVzdCBjcnlwdG8uc3VidGxlIGFyZ3VtZW50IGNvbnZlcnNpb24KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1NIQTEgb2YgbmV3IFVpbnQ4QXJyYXkoW10p
KQorICAgID0gW2RhIDM5IGEzIGVlIDVlIDZiIDRiIDBkIDMyIDU1IGJmIGVmIDk1IDYwIDE4IDkw
IGFmIGQ4IDA3IDA5XQorCitQYXNzaW5nIGFsZ29yaXRobSBuYW1lIGFzIGEgc3RyaW5nIG9iamVj
dC4uLgorUEFTUyAuLi5zdWNjZWVkZWQKKworUGFzc2luZyBhbGdvcml0aG0gbmFtZSBhcyBhIHN0
cmluZyBvYmplY3QgaW4gYSBkaWN0aW9uYXJ5Li4uCitQQVNTIC4uLnN1Y2NlZWRlZAorCitQYXNz
aW5nIGFsZ29yaXRobSBuYW1lIGFzIGFuIG9iamVjdCB3aXRoIHRvU3RyaW5nCitQQVNTIC4uLnN1
Y2NlZWRlZAorCitQYXNzaW5nIGludmFsaWQgZGF0YSB0byBkaWdlc3QoKQorUEFTUyBjcnlwdG8u
c3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTog
J3NoYS0xJ30sIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQ
QVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSwgMTApIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtu
YW1lOiAnc2hhLTEnfSwgWzEwXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogT25seSBBcnJh
eUJ1ZmZlciBhbmQgQXJyYXlCdWZmZXJWaWV3IG9iamVjdHMgY2FuIGJlIHBhcnQgb2YgQ3J5cHRv
T3BlcmF0aW9uRGF0YSBzZXF1ZW5jZS4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6
ICdzaGEtMSd9LCBuZXcgVWludDhBcnJheShbMF0pKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBPbmx5IEFycmF5QnVmZmVyIGFuZCBBcnJheUJ1ZmZlclZpZXcgb2JqZWN0cyBjYW4gYmUgcGFy
dCBvZiBDcnlwdG9PcGVyYXRpb25EYXRhIHNlcXVlbmNlLgorCitQYXNzaW5nIGludmFsaWQgYWxn
b3JpdGhtSWRlbnRpZmllcnMgdG8gZGlnZXN0KCkKK1BBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3Qo
eyB0b1N0cmluZzpmdW5jdGlvbigpIHsgcmV0dXJuICdzaGEtMScgfSB9LCBbZGF0YV0pIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogTm90U3VwcG9ydGVkRXJyb3I6IERPTSBFeGNlcHRpb24gOS4KK1BB
U1MgY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICcnfSwgW2RhdGFdKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IE5vdFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9uIDkuCitQQVNTIGNyeXB0
by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiBudWxsfSwgW2RhdGFdKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IE5vdFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9uIDkuCitQQVNTIGNyeXB0by5zdWJ0
bGUuZGlnZXN0KHtuYW1lOiB1bmRlZmluZWR9LCBbZGF0YV0pIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogTm90U3VwcG9ydGVkRXJyb3I6IERPTSBFeGNlcHRpb24gOS4KK1BBU1MgY3J5cHRvLnN1YnRs
ZS5kaWdlc3Qoe25hbWU6ICdzaGEnfSwgW2RhdGFdKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5v
dFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9uIDkuCitQQVNTIGNyeXB0by5zdWJ0bGUuZGln
ZXN0KHtuYW1lOiAxfSwgW2RhdGFdKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdFN1cHBvcnRl
ZEVycm9yOiBET00gRXhjZXB0aW9uIDkuCitQQVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KCcnLCBb
ZGF0YV0pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90U3VwcG9ydGVkRXJyb3I6IERPTSBFeGNl
cHRpb24gOS4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3QobnVsbCwgW2RhdGFdKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IE5vdFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9uIDkuCitQQVNT
IGNyeXB0by5zdWJ0bGUuZGlnZXN0KHVuZGVmaW5lZCwgW2RhdGFdKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IE5vdFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9uIDkuCitQQVNTIGNyeXB0by5z
dWJ0bGUuZGlnZXN0KDEsIFtkYXRhXSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBwb3J0
ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgorUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7fSwg
W2RhdGFdKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdFN1cHBvcnRlZEVycm9yOiBET00gRXhj
ZXB0aW9uIDkuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hcmd1bWVudC1jb252ZXJzaW9u
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hcmd1bWVudC1j
b252ZXJzaW9uLmh0bWwJKHJldmlzaW9uIDE1ODM4NykJKGZyb20gTGF5b3V0VGVzdHMvc2VjdXJp
dHkvY3J5cHRvLXN1YnRsZS1hcmd1bWVudHMuaHRtbDoxNTgzODcpCisrKyBMYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL2FyZ3VtZW50LWNvbnZlcnNpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJUZXN0IGNyeXB0by5zdWJ0bGUgYXJndW1lbnQgY29udmVyc2lvbiIpOworCitq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYgKCF3aW5kb3cuc3VidGxlKQorICAgIHdpbmRvdy5j
cnlwdG8uc3VidGxlID0gd2luZG93LmNyeXB0by53ZWJraXRTdWJ0bGU7CisKK1Byb21pc2UuZnVs
ZmlsbChudWxsKS50aGVuKGZ1bmN0aW9uKCkgeworICAgIC8vIFRoaXMgbG9va3MgbGlrZSBpbnZh
bGlkIGlucHV0LCBidXQgaXQgYWN0dWFsbHkgaXNuJ3QgLSBVaW50OEFycmF5IGlzIGEgc2VxdWVu
Y2UgdG9vLAorICAgIC8vIHNvIGl0J3MganVzdCBhbiBlbXB0eSBzZXF1ZW5jZSwgc2FtZSBhcyBw
YXNzaW5nIFtdLgorICAgIGRlYnVnKCJTSEExIG9mIG5ldyBVaW50OEFycmF5KFtdKSkiKTsKKyAg
ICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3QoJ3NoYS0xJywgbmV3IFVpbnQ4QXJyYXkoW10p
KTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHJpbnRBY2NlcHRlZFJlc3VsdChy
ZXN1bHQpOworICAgIGRlYnVnKCJcblBhc3NpbmcgYWxnb3JpdGhtIG5hbWUgYXMgYSBzdHJpbmcg
b2JqZWN0Li4uIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KG5ldyBTdHJpbmco
J3NoYS0xJyksIFtdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgdGVzdFBhc3Nl
ZCgiLi4uc3VjY2VlZGVkIik7CisgICAgZGVidWcoIlxuUGFzc2luZyBhbGdvcml0aG0gbmFtZSBh
cyBhIHN0cmluZyBvYmplY3QgaW4gYSBkaWN0aW9uYXJ5Li4uIik7CisgICAgcmV0dXJuIGNyeXB0
by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiBuZXcgU3RyaW5nKCdzaGEtMScpfSwgW10pOworfSkudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICB0ZXN0UGFzc2VkKCIuLi5zdWNjZWVkZWQiKTsKKyAg
ICBkZWJ1ZygiXG5QYXNzaW5nIGFsZ29yaXRobSBuYW1lIGFzIGFuIG9iamVjdCB3aXRoIHRvU3Ry
aW5nIik7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiB7IHRvU3RyaW5n
OmZ1bmN0aW9uKCkgeyByZXR1cm4gJ3NoYS0xJyB9IH0gfSwgW10pOworfSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKKyAgICB0ZXN0UGFzc2VkKCIuLi5zdWNjZWVkZWQiKTsKKworICAgIGRlYnVn
KCJcblBhc3NpbmcgaW52YWxpZCBkYXRhIHRvIGRpZ2VzdCgpIik7CisgICAgc2hvdWxkVGhyb3co
ImNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSkiKTsKKyAgICBzaG91bGRUaHJv
dygiY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCBudWxsKSIpOworICAgIHNo
b3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIDEwKSIpOwor
ICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIFsx
MF0pIik7CisgICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hh
LTEnfSwgbmV3IFVpbnQ4QXJyYXkoWzBdKSkiKTsKKworICAgIGRlYnVnKCJcblBhc3NpbmcgaW52
YWxpZCBhbGdvcml0aG1JZGVudGlmaWVycyB0byBkaWdlc3QoKSIpOworICAgIGRhdGEgPSBuZXcg
VWludDhBcnJheShbMF0pOworICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7
IHRvU3RyaW5nOmZ1bmN0aW9uKCkgeyByZXR1cm4gJ3NoYS0xJyB9IH0sIFtkYXRhXSkiKTsgLy8g
QWxnb3JpdGhtIG5vcm1hbGl6YXRpb24gZG9lc24ndCBhdHRlbXB0IHRvIGNhbGwgdG9TdHJpbmcu
CisgICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAnJ30sIFtkYXRh
XSkiKTsKKyAgICBzaG91bGRUaHJvdygiY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6IG51bGx9
LCBbZGF0YV0pIik7CisgICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1l
OiB1bmRlZmluZWR9LCBbZGF0YV0pIik7CisgICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUu
ZGlnZXN0KHtuYW1lOiAnc2hhJ30sIFtkYXRhXSkiKTsKKyAgICBzaG91bGRUaHJvdygiY3J5cHRv
LnN1YnRsZS5kaWdlc3Qoe25hbWU6IDF9LCBbZGF0YV0pIik7CisgICAgc2hvdWxkVGhyb3coImNy
eXB0by5zdWJ0bGUuZGlnZXN0KCcnLCBbZGF0YV0pIik7CisgICAgc2hvdWxkVGhyb3coImNyeXB0
by5zdWJ0bGUuZGlnZXN0KG51bGwsIFtkYXRhXSkiKTsKKyAgICBzaG91bGRUaHJvdygiY3J5cHRv
LnN1YnRsZS5kaWdlc3QodW5kZWZpbmVkLCBbZGF0YV0pIik7CisgICAgc2hvdWxkVGhyb3coImNy
eXB0by5zdWJ0bGUuZGlnZXN0KDEsIFtkYXRhXSkiKTsKKyAgICBzaG91bGRUaHJvdygiY3J5cHRv
LnN1YnRsZS5kaWdlc3Qoe30sIFtkYXRhXSkiKTsKK30pLnRoZW4oZmluaXNoSlNUZXN0KTsKKwor
PC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by9zdWJ0
bGUvYXJndW1lbnQtY29udmVyc2lvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvYXJndW1lbnQtY29udmVyc2lvbi5odG1sCSh3b3JraW5nIGNvcHkpCisrKyBM
YXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2FyZ3VtZW50LWNvbnZlcnNpb24uaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4K
QEAgLTYwLDYgKzYwLDYgQEAgUHJvbWlzZS5mdWxmaWxsKG51bGwpLnRoZW4oZnVuY3Rpb24oKSB7
CiAKIDwvc2NyaXB0PgogCi08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL2djLTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0
by9zdWJ0bGUvZ2MtMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE1ODM3NSkJKGZyb20gTGF5b3V0
VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1nYy0yLWV4cGVjdGVkLnR4dDoxNTgzNzUpCisr
KyBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLTItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3QgdGhhdCB3aW5kb3cuY3J5cHRvLnN1YnRsZSB3cmFw
cGVyIHByZXNlcnZlcyBjdXN0b20gcHJvcGVydGllcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgW29iamVjdCBDcnlwdG9dIGlzIGRlZmluZWQuCitQQVNTIFtvYmplY3Qg
V2ViS2l0U3VidGxlQ3J5cHRvXSBpcyBkZWZpbmVkLgorUEFTUyBhbm90aGVyV2luZG93Q3J5cHRv
LndlYmtpdFN1YnRsZS5mb28gaXMgImJhciIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2dj
LTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLTIuaHRt
bAkocmV2aXNpb24gMTU4Mzc1KQkoZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tc3Vi
dGxlLWdjLTIuaHRtbDoxNTgzNzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLTIu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KKworZGVzY3JpcHRpb24oIlRlc3QgdGhhdCB3aW5kb3cuY3J5cHRvLnN1YnRsZSB3cmFwcGVy
IHByZXNlcnZlcyBjdXN0b20gcHJvcGVydGllcy4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOwor
Cit2YXIgYW5vdGhlcldpbmRvd0NyeXB0bzsKKworZnVuY3Rpb24gc3RhcnRUZXN0KCkKK3sKKyAg
ICBhbm90aGVyV2luZG93Q3J5cHRvID0gZnJhbWVzWzBdLmNyeXB0bzsKKyAgICBzaG91bGRCZURl
ZmluZWQoYW5vdGhlcldpbmRvd0NyeXB0byk7CisgICAgc2hvdWxkQmVEZWZpbmVkKGFub3RoZXJX
aW5kb3dDcnlwdG8ud2Via2l0U3VidGxlKTsKKworICAgIGFub3RoZXJXaW5kb3dDcnlwdG8ud2Vi
a2l0U3VidGxlLmZvbyA9ICJiYXIiOworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpWzBdKTsKKyAgICBnYygpOworICAg
IHNldFRpbWVvdXQoY29udGludWVUZXN0LCAxMCk7Cit9CisKK2Z1bmN0aW9uIGNvbnRpbnVlVGVz
dCgpCit7CisgICAgZ2MoKTsKKyAgICBzZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDEwKTsKK30KKwor
ZnVuY3Rpb24gZmluaXNoVGVzdCgpCit7CisgICAgZ2MoKTsKKyAgICBzaG91bGRCZSgnYW5vdGhl
cldpbmRvd0NyeXB0by53ZWJraXRTdWJ0bGUuZm9vJywgJyJiYXIiJyk7CisgICAgZmluaXNoSlNU
ZXN0KCk7Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBzdGFydFRlc3Q7CisKKzwvc2NyaXB0PgorPGlm
cmFtZSBzcmM9ImFib3V0OmJsYW5rIj48L2lmcmFtZT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MtMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvZ2MtMi5odG1sCSh3b3JraW5nIGNvcHkpCisrKyBMYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL2djLTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw3ICsyLDcgQEAK
IDxodG1sPgogPGhlYWQ+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CiA8c2Ny
aXB0PgpAQCAtNDEsNiArNDEsNiBAQCB3aW5kb3cub25sb2FkID0gc3RhcnRUZXN0OwogCiA8L3Nj
cmlwdD4KIDxpZnJhbWUgc3JjPSJhYm91dDpibGFuayI+PC9pZnJhbWU+Ci08c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLTMtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MtMy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDE1ODM3NSkJKGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1n
Yy0zLWV4cGVjdGVkLnR4dDoxNTgzNzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2dj
LTMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhh
dCB3aW5kb3cuY3J5cHRvIHdyYXBwZXIgcHJvdGVjdHMgYWxsIGRlcGVuZGVuY2llcywgc28gaXQg
Y2FuIGFsd2F5cyBiZSB1c2VkIHRvIGNyZWF0ZSBjcnlwdG8uc3VidGxlLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBbb2JqZWN0IENyeXB0b10gaXMgZGVmaW5lZC4KK1BB
U1MgW29iamVjdCBXZWJLaXRTdWJ0bGVDcnlwdG9dIGlzIGRlZmluZWQuCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9nYy0zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRv
L3N1YnRsZS9nYy0zLmh0bWwJKHJldmlzaW9uIDE1ODM3NSkJKGZyb20gTGF5b3V0VGVzdHMvc2Vj
dXJpdHkvY3J5cHRvLXN1YnRsZS1nYy0zLmh0bWw6MTU4Mzc1KQorKysgTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9nYy0zLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgd2luZG93LmNyeXB0
byB3cmFwcGVyIHByb3RlY3RzIGFsbCBkZXBlbmRlbmNpZXMsIHNvIGl0IGNhbiBhbHdheXMgYmUg
dXNlZCB0byBjcmVhdGUgY3J5cHRvLnN1YnRsZS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOwor
Cit2YXIgYW5vdGhlcldpbmRvd0NyeXB0bzsKKworZnVuY3Rpb24gc3RhcnRUZXN0KCkKK3sKKyAg
ICBhbm90aGVyV2luZG93Q3J5cHRvID0gZnJhbWVzWzBdLmNyeXB0bzsKKyAgICBzaG91bGRCZURl
ZmluZWQoYW5vdGhlcldpbmRvd0NyeXB0byk7CisgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGls
ZChkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF0pOworICAgIGdjKCk7
CisgICAgc2V0VGltZW91dChjb250aW51ZVRlc3QsIDEwKTsKK30KKworZnVuY3Rpb24gY29udGlu
dWVUZXN0KCkKK3sKKyAgICBnYygpOworICAgIHNldFRpbWVvdXQoZmluaXNoVGVzdCwgMTApOwor
fQorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkKK3sKKyAgICBnYygpOworICAgIHNob3VsZEJlRGVm
aW5lZChhbm90aGVyV2luZG93Q3J5cHRvLndlYmtpdFN1YnRsZSk7CisgICAgZmluaXNoSlNUZXN0
KCk7Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBzdGFydFRlc3Q7CisKKzwvc2NyaXB0PgorPGlmcmFt
ZSBzcmM9ImFib3V0OmJsYW5rIj48L2lmcmFtZT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MtMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvZ2MtMy5odG1sCSh3b3JraW5nIGNvcHkpCisrKyBMYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL2djLTMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw3ICsyLDcgQEAKIDxo
dG1sPgogPGhlYWQ+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CiA8c2NyaXB0
PgpAQCAtMzgsNiArMzgsNiBAQCB3aW5kb3cub25sb2FkID0gc3RhcnRUZXN0OwogCiA8L3Njcmlw
dD4KIDxpZnJhbWUgc3JjPSJhYm91dDpibGFuayI+PC9pZnJhbWU+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MTU4Mzc1KQkoZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tc3VidGxlLWdjLWV4cGVj
dGVkLnR4dDoxNTgzNzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitUZXN0IHRoYXQgd2luZG93LmNy
eXB0by5zdWJ0bGUgd3JhcHBlciBwcmVzZXJ2ZXMgY3VzdG9tIHByb3BlcnRpZXMuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHdpbmRvdy5jcnlwdG8ud2Via2l0U3VidGxl
LmZvbyBpcyAiYmFyIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLmh0bWwJKHJldmlzaW9uIDE1ODM3
NSkJKGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1nYy5odG1sOjE1ODM3
NSkKKysrIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZ2MuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRl
c3QgdGhhdCB3aW5kb3cuY3J5cHRvLnN1YnRsZSB3cmFwcGVyIHByZXNlcnZlcyBjdXN0b20gcHJv
cGVydGllcy4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiBzdGFydFRlc3Qo
KQoreworICAgIHdpbmRvdy5jcnlwdG8ud2Via2l0U3VidGxlLmZvbyA9ICJiYXIiOworICAgIGdj
KCk7CisgICAgc2V0VGltZW91dChjb250aW51ZVRlc3QsIDEwKTsKK30KKworZnVuY3Rpb24gY29u
dGludWVUZXN0KCkKK3sKKyAgICBnYygpOworICAgIHNldFRpbWVvdXQoZmluaXNoVGVzdCwgMTAp
OworfQorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkKK3sKKyAgICBnYygpOworICAgIHNob3VsZEJl
KCd3aW5kb3cuY3J5cHRvLndlYmtpdFN1YnRsZS5mb28nLCAnImJhciInKTsKKyAgICBmaW5pc2hK
U1Rlc3QoKTsKK30KKword2luZG93Lm9ubG9hZCA9IHN0YXJ0VGVzdDsKKworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9nYy5odG1sCSh3b3JraW5nIGNv
cHkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2djLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDxoZWFkPgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgot
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVh
ZD4KIDxib2R5PgogPHNjcmlwdD4KQEAgLTMzLDYgKzMzLDYgQEAgZnVuY3Rpb24gZmluaXNoVGVz
dCgpCiB3aW5kb3cub25sb2FkID0gc3RhcnRUZXN0OwogCiA8L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hhLTEtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hhLTEtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxNTgzODcpCShmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0
bGUtc2hhMS1leHBlY3RlZC50eHQ6MTU4Mzg3KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9zaGEtMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOCBAQAorVGVz
dCBjcnlwdG8uc3VidGxlLmRpZ2VzdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1NIQTEgb2YgW10KKyAgICA9IFtkYSAzOSBhMyBlZSA1ZSA2YiA0YiAwZCAzMiA1NSBiZiBlZiA5
NSA2MCAxOCA5MCBhZiBkOCAwNyAwOV0KK1NIQTEgb2YgWzB4MF0KKyAgICA9IFs1YiBhOSAzYyA5
ZCBiMCBjZiBmOSAzZiA1MiBiNSAyMSBkNyA0MiAwZSA0MyBmNiBlZCBhMiA3OCA0Zl0KK1NIQTEg
b2YgWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXQorICAgID0gWzJjIDdlIDdjIDM4
IDRmIDc4IDI5IDY5IDQyIDgyIGIxIGUzIGE2IDIxIDZkIGVmIDgwIDgyIGQwIDU1XQorU0hBMSBv
ZiBbbmV3IFVpbnQ4QXJyYXkoWzAsIDEsIDIsIDMsIDRdKSwgbmV3IFVpbnQ4QXJyYXkoNSwgNiwg
NywgOCwgOSwgMTBdKV0KKyAgICA9IFsyYyA3ZSA3YyAzOCA0ZiA3OCAyOSA2OSA0MiA4MiBiMSBl
MyBhNiAyMSA2ZCBlZiA4MCA4MiBkMCA1NV0KK1BBU1MgY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtl
eSgnc2hhLTEnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGEg
ZnVuY3Rpb24gKGV2YWx1YXRpbmcgJ2NyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoJ3NoYS0xJykn
KS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCklu
ZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3NoYS0xLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9zaGEtMS5odG1sCShyZXZpc2lvbiAxNTgzODcpCShm
cm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtc2hhMS5odG1sOjE1ODM4NykK
KysrIExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hhLTEuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCJUZXN0IGNyeXB0by5zdWJ0bGUuZGlnZXN0LiIpOworCitqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworaWYgKCF3aW5kb3cuc3VidGxlKQorICAgIHdpbmRvdy5jcnlwdG8uc3Vi
dGxlID0gd2luZG93LmNyeXB0by53ZWJraXRTdWJ0bGU7CisKK1Byb21pc2UuZnVsZmlsbChudWxs
KS50aGVuKGZ1bmN0aW9uKCkgeworICAgIGRlYnVnKCJTSEExIG9mIFtdIik7CisgICAgcmV0dXJu
IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCdzaGEtMScsIFtuZXcgVWludDhBcnJheShbXSldKTsKK30p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHJpbnRBY2NlcHRlZFJlc3VsdChyZXN1bHQp
OworCisgICAgZGVidWcoIlNIQTEgb2YgWzB4MF0iKQorICAgIHJldHVybiBjcnlwdG8uc3VidGxl
LmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIFtuZXcgVWludDhBcnJheShbMF0pXSk7Cit9KS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHByaW50QWNjZXB0ZWRSZXN1bHQocmVzdWx0KTsKKwor
ICAgIGRlYnVnKCJTSEExIG9mIFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0iKTsK
KyAgICB2YXIgZGF0YSA9IG5ldyBVaW50OEFycmF5KFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4
LCA5LCAxMF0pOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0x
J30sIFtkYXRhXSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHByaW50QWNjZXB0
ZWRSZXN1bHQocmVzdWx0KTsKKworICAgIGRlYnVnKCJTSEExIG9mIFtuZXcgVWludDhBcnJheShb
MCwgMSwgMiwgMywgNF0pLCBuZXcgVWludDhBcnJheSg1LCA2LCA3LCA4LCA5LCAxMF0pXSIpOwor
ICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIFtuZXcgVWlu
dDhBcnJheShbMCwgMSwgMiwgMywgNF0pLCBuZXcgVWludDhBcnJheShbNSwgNiwgNywgOCwgOSwg
MTBdKV0pOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBwcmludEFjY2VwdGVkUmVz
dWx0KHJlc3VsdCk7CisgICAgLy8gQWxsIFNIQS0xIGNhbiBkbyBpcyBkaWdlc3QuCisgICAgc2hv
dWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoJ3NoYS0xJykiKTsKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvc2hhLTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL3NoYS0xLmh0bWwJKHdvcmtpbmcgY29weSkKKysrIExheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvc2hhLTEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAK
IDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbW1v
bi5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KQEAgLTQzLDYgKzQzLDYgQEAgUHJvbWlz
ZS5mdWxmaWxsKG51bGwpLnRoZW4oZnVuY3Rpb24oKSB7CiB9KTsKIDwvc2NyaXB0PgogCi08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Jlc291cmNlcy9jb21t
b24uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yZXNvdXJjZXMv
Y29tbW9uLmpzCShyZXZpc2lvbiAxNTgzODcpCShmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L3Jl
c291cmNlcy9jb21tb24uanM6MTU4Mzg3KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9y
ZXNvdXJjZXMvY29tbW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjMgQEAKK2Z1bmN0
aW9uIGltcG9ydFRlc3RLZXlzKCkKK3sKKyAgICB2YXIga2V5Rm9ybWF0ID0gInNwa2kiOworICAg
IHZhciBkYXRhID0gbmV3IFVpbnQ4QXJyYXkoW10pOworICAgIHZhciBleHRyYWN0YWJsZSA9IGZh
bHNlOworICAgIHZhciBrZXlVc2FnZXMgPSBbJ2VuY3J5cHQnLCAnZGVjcnlwdCcsICdzaWduJywg
J3ZlcmlmeSddOworCisgICAgdmFyIGhtYWNQcm9taXNlID0gY3J5cHRvLnN1YnRsZS5pbXBvcnRL
ZXkoa2V5Rm9ybWF0LCBkYXRhLCB7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0xJ319
LCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzKTsKKyAgICB2YXIgcnNhU3NhUHJvbWlzZSA9IGNyeXB0
by5zdWJ0bGUuaW1wb3J0S2V5KGtleUZvcm1hdCwgZGF0YSwge25hbWU6ICdSU0FTU0EtUEtDUzEt
djFfNScsIGhhc2g6IHtuYW1lOiAnc2hhLTEnfX0sIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXMpOwor
ICAgIHZhciBhZXNDYmNQcm9taXNlID0gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoa2V5Rm9ybWF0
LCBkYXRhLCB7bmFtZTogJ0FFUy1DQkMnfSwgZXh0cmFjdGFibGUsIGtleVVzYWdlcyk7CisgICAg
dmFyIGFlc0NiY0p1c3REZWNyeXB0ID0gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoa2V5Rm9ybWF0
LCBkYXRhLCB7bmFtZTogJ0FFUy1DQkMnfSwgZXh0cmFjdGFibGUsIFsnZGVjcnlwdCddKTsKKwor
ICAgIHJldHVybiBQcm9taXNlLmV2ZXJ5KGhtYWNQcm9taXNlLCByc2FTc2FQcm9taXNlLCBhZXND
YmNQcm9taXNlLCBhZXNDYmNKdXN0RGVjcnlwdCkudGhlbihmdW5jdGlvbihyZXN1bHRzKSB7Cisg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBobWFjU2hhMTogcmVzdWx0c1swXSwKKyAgICAg
ICAgICAgIHJzYVNzYVNoYTE6IHJlc3VsdHNbMV0sCisgICAgICAgICAgICBhZXNDYmM6IHJlc3Vs
dHNbMl0sCisgICAgICAgICAgICBhZXNDYmNKdXN0RGVjcnlwdDogcmVzdWx0c1szXSwKKyAgICAg
ICAgfTsKKyAgICB9KTsKK30KKworLy8gQnVpbGRzIGEgaGV4IHN0cmluZyByZXByZXNlbnRhdGlv
biBvZiBhbnkgYXJyYXktbGlrZSBpbnB1dCAoYXJyYXkgb3IKKy8vIEFycmF5QnVmZmVyVmlldyku
IFRoZSBvdXRwdXQgbG9va3MgbGlrZSB0aGlzOgorLy8gICAgW2FiIDAzIDRjIDk5XQorZnVuY3Rp
b24gYnl0ZUFycmF5VG9IZXhTdHJpbmcoYnl0ZXMpCit7CisgICAgdmFyIGhleEJ5dGVzID0gW107
CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAg
IHZhciBieXRlU3RyaW5nID0gYnl0ZXNbaV0udG9TdHJpbmcoMTYpOworICAgICAgICBpZiAoYnl0
ZVN0cmluZy5sZW5ndGggPCAyKQorICAgICAgICAgICAgYnl0ZVN0cmluZyA9ICIwIiArIGJ5dGVT
dHJpbmc7CisgICAgICAgIGhleEJ5dGVzLnB1c2goYnl0ZVN0cmluZyk7CisgICAgfQorCisgICAg
cmV0dXJuICJbIiArIGhleEJ5dGVzLmpvaW4oIiAiKSArICJdIjsKK30KKworZnVuY3Rpb24gYXNj
aWlUb0FycmF5QnVmZmVyKHN0cikKK3sKKyAgICB2YXIgY2hhcnMgPSBbXTsKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7ICsraSkKKyAgICAgICAgY2hhcnMucHVzaChzdHIuY2hh
ckNvZGVBdChpKSk7CisgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGNoYXJzKTsKK30KKworZnVu
Y3Rpb24gcHJpbnRSZWplY3RlZFJlc3VsdCh2YWx1ZSkKK3sKKyAgICBkZWJ1ZygiICAgIHJlamVj
dGVkIHdpdGggdmFsdWUgb2YgIiArIHZhbHVlKTsKK30KKworZnVuY3Rpb24gcHJpbnRBY2NlcHRl
ZFJlc3VsdChyZXN1bHQpCit7CisgICAgZGVidWcoIiAgICA9ICIgKyBieXRlQXJyYXlUb0hleFN0
cmluZyhuZXcgVWludDhBcnJheShyZXN1bHQpKSk7Cit9CisKK2Z1bmN0aW9uIGZhaWxBbmRGaW5p
c2hKU1Rlc3QoZXJyb3IpCit7CisgICAgaWYgKGVycm9yKQorICAgICAgIGRlYnVnKGVycm9yKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9U
ZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9U
ZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxNTgzODcpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9lZmwvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTU4OCwzICsxNTg4LDYg
QEAgd2Via2l0Lm9yZy9iLzEyMzU2MSBwcmludGluZy9zZXRQcmludGluZwogd2Via2l0Lm9yZy9i
LzEyMzU2MSBwcmludGluZy9zaW11bHRhbmVvdXMtcG9zaXRpb24tZmxvYXQtY2hhbmdlLmh0bWwg
WyBNaXNzaW5nIF0KIHdlYmtpdC5vcmcvYi8xMjM1NjEgcHJpbnRpbmcvc2luZ2xlLWxpbmUtbXVz
dC1ub3QtYmUtc3BsaXQtaW50by10d28tcGFnZXMuaHRtbCBbIE1pc3NpbmcgXQogd2Via2l0Lm9y
Zy9iLzEyMzU2MSBwcmludGluZy93aWR0aC1vdmVyZmxvdy5odG1sIFsgTWlzc2luZyBdCisKKyMg
Y3J5cHRvLnN1YnRsZSBpcyBub3QgeWV0IGVuYWJsZWQKK2NyeXB0by9zdWJ0bGUgWyBTa2lwIF0K
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lv
biAxNTgzODcpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwko
d29ya2luZyBjb3B5KQpAQCAtNDU2LDYgKzQ1Niw5IEBAIHdlYmtpdC5vcmcvYi8xMDcxOTQgaHR0
cC90ZXN0cy9zZWN1cml0eS8KICMgTmVlZHMgdG8gdXBkYXRlIHRoZSBndGsgZGF0YWJhc2VRdW90
YUV4Y2VlZGVkKCkgdGVzdCBmdW5jdGlvbiB0byBoYW5kbGUgcXVvdGEgZXhwYW5zaW9uIHJlcXVl
c3RzLgogc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS1leHBhbmQtcXVvdGEuaHRtbCBbIEZh
aWx1cmUgXQogCisjIGNyeXB0by5zdWJ0bGUgaXMgbm90IHlldCBlbmFibGVkCitjcnlwdG8vc3Vi
dGxlIFsgU2tpcCBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBv
ZiBFeHBlY3RlZCBmYWlsdXJlcwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAx
NTgzODcpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwkod29y
a2luZyBjb3B5KQpAQCAtMjg3NSw0ICsyODc1LDUgQEAgcHJpbnRpbmcvcHJpbnQtY2xvc2UtY3Jh
c2guaHRtbAogIyBUZXN0IGludHJvZHVjZWQgaW4gcjE1NzEzMyBmYWlscy4gU3RhdGUgb2YgY29s
b3JzcGFjZSBtYW5hZ2VtZW50IG9uIFdpbmRvd3MgaXMgdW5jbGVhci4KIG1lZGlhL3ZpZGVvLWNh
bnZhcy1kcmF3aW5nLW91dHB1dC5odG1sCiAKLQorIyBjcnlwdG8uc3VidGxlIGlzIG5vdCB5ZXQg
ZW5hYmxlZAorY3J5cHRvL3N1YnRsZSBbIFNraXAgXQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxNTgzODcpCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNv
cHkpCkBAIC0yODUwLDMgKzI4NTAsNiBAQCB3ZWJraXQub3JnL2IvPz8/Pz8/IGh0dHAvdGVzdHMv
bG9hZGluZy9wCiAKICMgTm8gY29uY2VwdCBvZiBzZWN1cmUgdGV4dCBpbnB1dAogZWRpdGluZy9z
ZWN1cmUtaW5wdXQgWyBGYWlsdXJlIF0KKworIyBjcnlwdG8uc3VidGxlIGlzIG5vdCB5ZXQgZW5h
YmxlZAorY3J5cHRvL3N1YnRsZSBbIFNraXAgXQpJbmRleDogTGF5b3V0VGVzdHMvc2VjdXJpdHkv
Y3J5cHRvLWdjLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zZWN1cml0
eS9jcnlwdG8tZ2MtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNTgzODcpCisrKyBMYXlvdXRUZXN0
cy9zZWN1cml0eS9jcnlwdG8tZ2MtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEw
ICswLDAgQEAKLVRlc3QgdGhhdCB3aW5kb3cuY3J5cHRvIHdyYXBwZXIgcHJlc2VydmVzIGN1c3Rv
bSBwcm9wZXJ0aWVzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyB3aW5k
b3cuY3J5cHRvLmZvbyBpcyAiYmFyIgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1nYy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1nYy5odG1sCShy
ZXZpc2lvbiAxNTgzODcpCisrKyBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tZ2MuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSwzOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4KLQot
ZGVzY3JpcHRpb24oIlRlc3QgdGhhdCB3aW5kb3cuY3J5cHRvIHdyYXBwZXIgcHJlc2VydmVzIGN1
c3RvbSBwcm9wZXJ0aWVzLiIpOwotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWZ1bmN0aW9uIHN0
YXJ0VGVzdCgpCi17Ci0gICAgd2luZG93LmNyeXB0by5mb28gPSAiYmFyIjsKLSAgICBnYygpOwot
ICAgIHNldFRpbWVvdXQoY29udGludWVUZXN0LCAxMCk7Ci19Ci0KLWZ1bmN0aW9uIGNvbnRpbnVl
VGVzdCgpCi17Ci0gICAgZ2MoKTsKLSAgICBzZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDEwKTsKLX0K
LQotZnVuY3Rpb24gZmluaXNoVGVzdCgpCi17Ci0gICAgZ2MoKTsKLSAgICBzaG91bGRCZSgnd2lu
ZG93LmNyeXB0by5mb28nLCAnImJhciInKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotd2lu
ZG93Lm9ubG9hZCA9IHN0YXJ0VGVzdDsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tcmFuZG9tLXZhbHVlcy1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXJhbmRvbS12YWx1ZXMt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNTgzODcpCisrKyBMYXlvdXRUZXN0cy9zZWN1cml0eS9j
cnlwdG8tcmFuZG9tLXZhbHVlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIg
KzAsMCBAQAotVGVzdHMgY3J5cHRvLnJhbmRvbVZhbHVlcy4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLVBBU1MgJ2NyeXB0bycgaW4gd2luZG93IGlzIHRydWUKLVBBU1MgJ2dldFJh
bmRvbVZhbHVlcycgaW4gd2luZG93LmNyeXB0byBpcyB0cnVlCi1QQVNTIG1hdGNoaW5nQnl0ZXMg
PCAxMDAgaXMgdHJ1ZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENP
TVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1yYW5kb20tdmFsdWVz
LWxpbWl0cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkv
Y3J5cHRvLXJhbmRvbS12YWx1ZXMtbGltaXRzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTU4Mzg3
KQorKysgTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXJhbmRvbS12YWx1ZXMtbGltaXRzLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMyArMCwwIEBACi1UZXN0cyB0aGUgbGlt
aXRzIG9mIGNyeXB0by5yYW5kb21WYWx1ZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
LQotCi1QQVNTICdjcnlwdG8nIGluIHdpbmRvdyBpcyB0cnVlCi1QQVNTICdnZXRSYW5kb21WYWx1
ZXMnIGluIHdpbmRvdy5jcnlwdG8gaXMgdHJ1ZQotUEFTUyBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVz
KGFsbW9zdFRvb0xhcmdlQXJyYXkpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBjcnlw
dG8uZ2V0UmFuZG9tVmFsdWVzKHRvb0xhcmdlQXJyYXkpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
UXVvdGFFeGNlZWRlZEVycm9yOiBET00gRXhjZXB0aW9uIDIyLgotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL3NlY3Vy
aXR5L2NyeXB0by1yYW5kb20tdmFsdWVzLWxpbWl0cy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1yYW5kb20tdmFsdWVzLWxpbWl0cy5odG1sCShyZXZpc2lv
biAxNTgzODcpCisrKyBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tcmFuZG9tLXZhbHVlcy1s
aW1pdHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzNCArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbGl0aWVzLmpzIj48L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgdGhlIGxpbWl0
cyBvZiBjcnlwdG8ucmFuZG9tVmFsdWVzLiIpOwotCi1pZiAoIXdpbmRvdy5BcnJheUJ1ZmZlcikK
LSAgICBkZWJ1ZygiVGhpcyB0ZXN0IHJlcXVyZXMgQXJyYXlCdWZmZXJzIHRvIHJ1biEiKTsKLQot
c2hvdWxkQmUoIidjcnlwdG8nIGluIHdpbmRvdyIsICJ0cnVlIik7Ci1zaG91bGRCZSgiJ2dldFJh
bmRvbVZhbHVlcycgaW4gd2luZG93LmNyeXB0byIsICJ0cnVlIik7Ci0KLXRyeSB7Ci0gICAgdmFy
IGFsbW9zdFRvb0xhcmdlQXJyYXkgPSBuZXcgVWludDhBcnJheSg2NTUzNik7Ci0gICAgdmFyIHRv
b0xhcmdlQXJyYXkgPSBuZXcgVWludDhBcnJheSg2NTUzNyk7Ci0KLSAgICBzaG91bGROb3RUaHJv
dygiY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhhbG1vc3RUb29MYXJnZUFycmF5KSIpOwotICAgIHNo
b3VsZFRocm93KCJjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHRvb0xhcmdlQXJyYXkpIik7Ci19IGNh
dGNoKGV4KSB7Ci0gICAgZGVidWcoZXgpOwotfQotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
LQotCkluZGV4OiBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tcmFuZG9tLXZhbHVlcy10eXBl
cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRv
LXJhbmRvbS12YWx1ZXMtdHlwZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNTgzODcpCisrKyBM
YXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tcmFuZG9tLXZhbHVlcy10eXBlcy1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNTIgKzAsMCBAQAotVGVzdHMgd2hpY2ggdHlwZXMgYXJl
IHZhbGlkIGZvciBjcnlwdG8ucmFuZG9tVmFsdWVzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCi0KLQotUEFTUyAnY3J5cHRvJyBpbiB3aW5kb3cgaXMgdHJ1ZQotUEFTUyAnZ2V0UmFuZG9t
VmFsdWVzJyBpbiB3aW5kb3cuY3J5cHRvIGlzIHRydWUKLVBBU1MgcmFuZG9tID0gY3J5cHRvLmdl
dFJhbmRvbVZhbHVlcyhuZXcgVWludDhBcnJheSgzKSkgaXMgZGVmaW5lZC4KLVBBU1MgcmFuZG9t
IGlzIGFuIGluc3RhbmNlIG9mIFVpbnQ4QXJyYXkKLVBBU1MgdmlldyA9IG5ldyBVaW50OEFycmF5
KDMpIGlzIGRlZmluZWQuCi1QQVNTIHJhbmRvbSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXModmll
dykgaXMgZGVmaW5lZC4KLVBBU1MgcmFuZG9tIGlzIHZpZXcKLVBBU1MgcmFuZG9tID0gY3J5cHRv
LmdldFJhbmRvbVZhbHVlcyhuZXcgSW50OEFycmF5KDMpKSBpcyBkZWZpbmVkLgotUEFTUyByYW5k
b20gaXMgYW4gaW5zdGFuY2Ugb2YgSW50OEFycmF5Ci1QQVNTIHZpZXcgPSBuZXcgSW50OEFycmF5
KDMpIGlzIGRlZmluZWQuCi1QQVNTIHJhbmRvbSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXModmll
dykgaXMgZGVmaW5lZC4KLVBBU1MgcmFuZG9tIGlzIHZpZXcKLVBBU1MgcmFuZG9tID0gY3J5cHRv
LmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDhDbGFtcGVkQXJyYXkoMykpIGlzIGRlZmluZWQuCi1Q
QVNTIHJhbmRvbSBpcyBhbiBpbnN0YW5jZSBvZiBVaW50OENsYW1wZWRBcnJheQotUEFTUyB2aWV3
ID0gbmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMpIGlzIGRlZmluZWQuCi1QQVNTIHJhbmRvbSA9IGNy
eXB0by5nZXRSYW5kb21WYWx1ZXModmlldykgaXMgZGVmaW5lZC4KLVBBU1MgcmFuZG9tIGlzIHZp
ZXcKLVBBU1MgcmFuZG9tID0gY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDE2QXJyYXko
MykpIGlzIGRlZmluZWQuCi1QQVNTIHJhbmRvbSBpcyBhbiBpbnN0YW5jZSBvZiBVaW50MTZBcnJh
eQotUEFTUyB2aWV3ID0gbmV3IFVpbnQxNkFycmF5KDMpIGlzIGRlZmluZWQuCi1QQVNTIHJhbmRv
bSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXModmlldykgaXMgZGVmaW5lZC4KLVBBU1MgcmFuZG9t
IGlzIHZpZXcKLVBBU1MgcmFuZG9tID0gY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgSW50MTZB
cnJheSgzKSkgaXMgZGVmaW5lZC4KLVBBU1MgcmFuZG9tIGlzIGFuIGluc3RhbmNlIG9mIEludDE2
QXJyYXkKLVBBU1MgdmlldyA9IG5ldyBJbnQxNkFycmF5KDMpIGlzIGRlZmluZWQuCi1QQVNTIHJh
bmRvbSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXModmlldykgaXMgZGVmaW5lZC4KLVBBU1MgcmFu
ZG9tIGlzIHZpZXcKLVBBU1MgcmFuZG9tID0gY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWlu
dDMyQXJyYXkoMykpIGlzIGRlZmluZWQuCi1QQVNTIHJhbmRvbSBpcyBhbiBpbnN0YW5jZSBvZiBV
aW50MzJBcnJheQotUEFTUyB2aWV3ID0gbmV3IFVpbnQzMkFycmF5KDMpIGlzIGRlZmluZWQuCi1Q
QVNTIHJhbmRvbSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXModmlldykgaXMgZGVmaW5lZC4KLVBB
U1MgcmFuZG9tIGlzIHZpZXcKLVBBU1MgcmFuZG9tID0gY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhu
ZXcgSW50MzJBcnJheSgzKSkgaXMgZGVmaW5lZC4KLVBBU1MgcmFuZG9tIGlzIGFuIGluc3RhbmNl
IG9mIEludDMyQXJyYXkKLVBBU1MgdmlldyA9IG5ldyBJbnQzMkFycmF5KDMpIGlzIGRlZmluZWQu
Ci1QQVNTIHJhbmRvbSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXModmlldykgaXMgZGVmaW5lZC4K
LVBBU1MgcmFuZG9tIGlzIHZpZXcKLVBBU1MgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgRmxv
YXQzMkFycmF5KDMpKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFR5cGVNaXNtYXRjaEVycm9yOiBE
T00gRXhjZXB0aW9uIDE3LgotUEFTUyBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBGbG9hdDY0
QXJyYXkoMykpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVHlwZU1pc21hdGNoRXJyb3I6IERPTSBF
eGNlcHRpb24gMTcuCi1QQVNTIGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KDMyKSBpcyBkZWZpbmVk
LgotUEFTUyBidWZmZXIuYnVmZmVyIGlzIGRlZmluZWQuCi1QQVNTIHZpZXcgPSBuZXcgRGF0YVZp
ZXcoYnVmZmVyLmJ1ZmZlcikgaXMgZGVmaW5lZC4KLVBBU1MgY3J5cHRvLmdldFJhbmRvbVZhbHVl
cyh2aWV3KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFR5cGVNaXNtYXRjaEVycm9yOiBET00gRXhj
ZXB0aW9uIDE3LgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KSW5kZXg6IExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1yYW5kb20tdmFsdWVzLXR5
cGVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXJhbmRv
bS12YWx1ZXMtdHlwZXMuaHRtbAkocmV2aXNpb24gMTU4Mzg3KQorKysgTGF5b3V0VGVzdHMvc2Vj
dXJpdHkvY3J5cHRvLXJhbmRvbS12YWx1ZXMtdHlwZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSw1NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci1k
ZXNjcmlwdGlvbigiVGVzdHMgd2hpY2ggdHlwZXMgYXJlIHZhbGlkIGZvciBjcnlwdG8ucmFuZG9t
VmFsdWVzLiIpOwotCi1pZiAoIXdpbmRvdy5BcnJheUJ1ZmZlcikKLSAgICBkZWJ1ZygiVGhpcyB0
ZXN0IHJlcXVyZXMgQXJyYXlCdWZmZXJzIHRvIHJ1biEiKTsKLQotc2hvdWxkQmUoIidjcnlwdG8n
IGluIHdpbmRvdyIsICJ0cnVlIik7Ci1zaG91bGRCZSgiJ2dldFJhbmRvbVZhbHVlcycgaW4gd2lu
ZG93LmNyeXB0byIsICJ0cnVlIik7Ci0KLWZ1bmN0aW9uIGNoZWNrSW50ZWdlclR5cGVzKCkgewot
ICAgIHZhciBpbnRlZ2VyVHlwZXMgPSBbCi0gICAgICAgICJVaW50OEFycmF5IiwgIkludDhBcnJh
eSIsICJVaW50OENsYW1wZWRBcnJheSIsCi0gICAgICAgICJVaW50MTZBcnJheSIsICJJbnQxNkFy
cmF5IiwKLSAgICAgICAgIlVpbnQzMkFycmF5IiwgIkludDMyQXJyYXkiLAotICAgIF07Ci0gICAg
aW50ZWdlclR5cGVzLmZvckVhY2goZnVuY3Rpb24oYXJyYXlUeXBlKSB7Ci0gICAgICAgIHNob3Vs
ZEJlRGVmaW5lZCgicmFuZG9tID0gY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgIithcnJheVR5
cGUrIigzKSkiKTsKLSAgICAgICAgc2hvdWxkQmVUeXBlKCJyYW5kb20iLCBhcnJheVR5cGUpOwot
Ci0gICAgICAgIHNob3VsZEJlRGVmaW5lZCgidmlldyA9IG5ldyAiK2FycmF5VHlwZSsiKDMpIik7
Ci0gICAgICAgIHNob3VsZEJlRGVmaW5lZCgicmFuZG9tID0gY3J5cHRvLmdldFJhbmRvbVZhbHVl
cyh2aWV3KSIpOwotICAgICAgICBzaG91bGRCZSgicmFuZG9tIiwgInZpZXciKTsKLSAgICB9KTsK
LX0KLQotZnVuY3Rpb24gY2hlY2tOb25JbnRlZ2VyVHlwZXMoKSB7Ci0gICAgdmFyIGZsb2F0VHlw
ZXMgPSBbCi0gICAgICAgICJGbG9hdDMyQXJyYXkiLCAiRmxvYXQ2NEFycmF5IiwKLSAgICBdOwot
ICAgIGZsb2F0VHlwZXMuZm9yRWFjaChmdW5jdGlvbihhcnJheVR5cGUpIHsKLSAgICAgICAgc2hv
dWxkVGhyb3coImNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3ICIrYXJyYXlUeXBlKyIoMykpIik7
Ci0gICAgfSk7Ci0KLSAgICBzaG91bGRCZURlZmluZWQoImJ1ZmZlciA9IG5ldyBVaW50OEFycmF5
KDMyKSIpOwotICAgIHNob3VsZEJlRGVmaW5lZCgiYnVmZmVyLmJ1ZmZlciIpOwotICAgIHNob3Vs
ZEJlRGVmaW5lZCgidmlldyA9IG5ldyBEYXRhVmlldyhidWZmZXIuYnVmZmVyKSIpOwotICAgIHNo
b3VsZFRocm93KCJjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHZpZXcpIik7Ci19Ci0KLWNoZWNrSW50
ZWdlclR5cGVzKCk7Ci1jaGVja05vbkludGVnZXJUeXBlcygpOwotCi08L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KLQotCkluZGV4OiBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tcmFuZG9tLXZh
bHVlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1yYW5k
b20tdmFsdWVzLmh0bWwJKHJldmlzaW9uIDE1ODM4NykKKysrIExheW91dFRlc3RzL3NlY3VyaXR5
L2NyeXB0by1yYW5kb20tdmFsdWVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDcgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0
aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24o
IlRlc3RzIGNyeXB0by5yYW5kb21WYWx1ZXMuIik7Ci0KLWlmICghd2luZG93LkFycmF5QnVmZmVy
KQotICAgIGRlYnVnKCJUaGlzIHRlc3QgcmVxdXJlcyBBcnJheUJ1ZmZlcnMgdG8gcnVuISIpOwot
Ci1zaG91bGRCZSgiJ2NyeXB0bycgaW4gd2luZG93IiwgInRydWUiKTsKLXNob3VsZEJlKCInZ2V0
UmFuZG9tVmFsdWVzJyBpbiB3aW5kb3cuY3J5cHRvIiwgInRydWUiKTsKLQotdHJ5IHsKLSAgICAv
LyBGSVhNRTogVGhpcyB0ZXN0IGlzIGZsYWt5LiAgSWYgd2UgcmFuIHRoaXMgdGVzdCBldmVyeSBz
ZWNvbmQgc2luY2UgdGhlCi0gICAgLy8gICAgICAgIGJlZ2lubmluZyBvZiB0aGUgdW5pdmVyc2Us
IG9uIGF2ZXJhZ2UsIGl0IHdvdWxkIGhhdmUgZmFpbGVkCi0gICAgLy8gICAgICAgIDJeey03NDh9
IHRpbWVzLgotCi0gICAgdmFyIHJlZmVyZW5jZSA9IG5ldyBVaW50OEFycmF5KDEwMCk7Ci0gICAg
dmFyIHNhbXBsZSA9IG5ldyBVaW50OEFycmF5KDEwMCk7Ci0KLSAgICBjcnlwdG8uZ2V0UmFuZG9t
VmFsdWVzKHJlZmVyZW5jZSk7Ci0gICAgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhzYW1wbGUpOwot
Ci0gICAgdmFyIG1hdGNoaW5nQnl0ZXMgPSAwOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBy
ZWZlcmVuY2UubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgaWYgKHJlZmVyZW5jZVtpXSA9PSBzYW1w
bGVbaV0pCi0gICAgICAgICAgICBtYXRjaGluZ0J5dGVzKys7Ci0gICAgfQotCi0gICAgc2hvdWxk
QmUoIm1hdGNoaW5nQnl0ZXMgPCAxMDAiLCAidHJ1ZSIpOwotfSBjYXRjaChleCkgewotICAgIGRl
YnVnKGV4KTsKLX0KLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KLQpJbmRleDogTGF5b3V0
VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1hcmd1bWVudHMtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtYXJndW1lbnRzLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMTU4Mzg3KQorKysgTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5
cHRvLXN1YnRsZS1hcmd1bWVudHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQw
ICswLDAgQEAKLVRlc3QgY3J5cHRvLnN1YnRsZSBhcmd1bWVudCBjb252ZXJzaW9uCi0KLU9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1TSEExIG9mIG5ldyBVaW50OEFycmF5KFtdKSkKLSAg
ICA9IFtkYSAzOSBhMyBlZSA1ZSA2YiA0YiAwZCAzMiA1NSBiZiBlZiA5NSA2MCAxOCA5MCBhZiBk
OCAwNyAwOV0KLQotUGFzc2luZyBhbGdvcml0aG0gbmFtZSBhcyBhIHN0cmluZyBvYmplY3QuLi4K
LVBBU1MgLi4uc3VjY2VlZGVkCi0KLVBhc3NpbmcgYWxnb3JpdGhtIG5hbWUgYXMgYSBzdHJpbmcg
b2JqZWN0IGluIGEgZGljdGlvbmFyeS4uLgotUEFTUyAuLi5zdWNjZWVkZWQKLQotUGFzc2luZyBh
bGdvcml0aG0gbmFtZSBhcyBhbiBvYmplY3Qgd2l0aCB0b1N0cmluZwotUEFTUyAuLi5zdWNjZWVk
ZWQKLQotUGFzc2luZyBpbnZhbGlkIGRhdGEgdG8gZGlnZXN0KCkKLVBBU1MgY3J5cHRvLnN1YnRs
ZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3Qg
ZW5vdWdoIGFyZ3VtZW50cy4KLVBBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEt
MSd9LCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBj
cnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIDEwKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTog
J3NoYS0xJ30sIFsxMF0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE9ubHkgQXJyYXlCdWZm
ZXIgYW5kIEFycmF5QnVmZmVyVmlldyBvYmplY3RzIGNhbiBiZSBwYXJ0IG9mIENyeXB0b09wZXJh
dGlvbkRhdGEgc2VxdWVuY2UuCi1QQVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hh
LTEnfSwgbmV3IFVpbnQ4QXJyYXkoWzBdKSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogT25s
eSBBcnJheUJ1ZmZlciBhbmQgQXJyYXlCdWZmZXJWaWV3IG9iamVjdHMgY2FuIGJlIHBhcnQgb2Yg
Q3J5cHRvT3BlcmF0aW9uRGF0YSBzZXF1ZW5jZS4KLQotUGFzc2luZyBpbnZhbGlkIGFsZ29yaXRo
bUlkZW50aWZpZXJzIHRvIGRpZ2VzdCgpCi1QQVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHsgdG9T
dHJpbmc6ZnVuY3Rpb24oKSB7IHJldHVybiAnc2hhLTEnIH0gfSwgW2RhdGFdKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IE5vdFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9uIDkuCi1QQVNTIGNy
eXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAnJ30sIFtkYXRhXSkgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgotUEFTUyBjcnlwdG8uc3Vi
dGxlLmRpZ2VzdCh7bmFtZTogbnVsbH0sIFtkYXRhXSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBO
b3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgotUEFTUyBjcnlwdG8uc3VidGxlLmRp
Z2VzdCh7bmFtZTogdW5kZWZpbmVkfSwgW2RhdGFdKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5v
dFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9uIDkuCi1QQVNTIGNyeXB0by5zdWJ0bGUuZGln
ZXN0KHtuYW1lOiAnc2hhJ30sIFtkYXRhXSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBw
b3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgotUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCh7
bmFtZTogMX0sIFtkYXRhXSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBwb3J0ZWRFcnJv
cjogRE9NIEV4Y2VwdGlvbiA5LgotUEFTUyBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnJywgW2RhdGFd
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9u
IDkuCi1QQVNTIGNyeXB0by5zdWJ0bGUuZGlnZXN0KG51bGwsIFtkYXRhXSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgotUEFTUyBjcnlw
dG8uc3VidGxlLmRpZ2VzdCh1bmRlZmluZWQsIFtkYXRhXSkgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5LgotUEFTUyBjcnlwdG8uc3VidGxl
LmRpZ2VzdCgxLCBbZGF0YV0pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90U3VwcG9ydGVkRXJy
b3I6IERPTSBFeGNlcHRpb24gOS4KLVBBU1MgY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe30sIFtkYXRh
XSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlv
biA5LgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
SW5kZXg6IExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtYXJndW1lbnRzLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1hcmd1bWVu
dHMuaHRtbAkocmV2aXNpb24gMTU4Mzg3KQorKysgTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRv
LXN1YnRsZS1hcmd1bWVudHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw2NSArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tbW9u
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0
IGNyeXB0by5zdWJ0bGUgYXJndW1lbnQgY29udmVyc2lvbiIpOwotCi1qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKLQotaWYgKCF3aW5kb3cuc3VidGxlKQotICAgIHdpbmRvdy5jcnlwdG8uc3VidGxlID0g
d2luZG93LmNyeXB0by53ZWJraXRTdWJ0bGU7Ci0KLVByb21pc2UuZnVsZmlsbChudWxsKS50aGVu
KGZ1bmN0aW9uKCkgewotICAgIC8vIFRoaXMgbG9va3MgbGlrZSBpbnZhbGlkIGlucHV0LCBidXQg
aXQgYWN0dWFsbHkgaXNuJ3QgLSBVaW50OEFycmF5IGlzIGEgc2VxdWVuY2UgdG9vLAotICAgIC8v
IHNvIGl0J3MganVzdCBhbiBlbXB0eSBzZXF1ZW5jZSwgc2FtZSBhcyBwYXNzaW5nIFtdLgotICAg
IGRlYnVnKCJTSEExIG9mIG5ldyBVaW50OEFycmF5KFtdKSkiKTsKLSAgICByZXR1cm4gY3J5cHRv
LnN1YnRsZS5kaWdlc3QoJ3NoYS0xJywgbmV3IFVpbnQ4QXJyYXkoW10pKTsKLX0pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7Ci0gICAgcHJpbnRBY2NlcHRlZFJlc3VsdChyZXN1bHQpOwotICAgIGRl
YnVnKCJcblBhc3NpbmcgYWxnb3JpdGhtIG5hbWUgYXMgYSBzdHJpbmcgb2JqZWN0Li4uIik7Ci0g
ICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KG5ldyBTdHJpbmcoJ3NoYS0xJyksIFtdKTsK
LX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdGVzdFBhc3NlZCgiLi4uc3VjY2VlZGVk
Iik7Ci0gICAgZGVidWcoIlxuUGFzc2luZyBhbGdvcml0aG0gbmFtZSBhcyBhIHN0cmluZyBvYmpl
Y3QgaW4gYSBkaWN0aW9uYXJ5Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0
KHtuYW1lOiBuZXcgU3RyaW5nKCdzaGEtMScpfSwgW10pOwotfSkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKLSAgICB0ZXN0UGFzc2VkKCIuLi5zdWNjZWVkZWQiKTsKLSAgICBkZWJ1ZygiXG5QYXNz
aW5nIGFsZ29yaXRobSBuYW1lIGFzIGFuIG9iamVjdCB3aXRoIHRvU3RyaW5nIik7Ci0gICAgcmV0
dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiB7IHRvU3RyaW5nOmZ1bmN0aW9uKCkgeyBy
ZXR1cm4gJ3NoYS0xJyB9IH0gfSwgW10pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAg
ICB0ZXN0UGFzc2VkKCIuLi5zdWNjZWVkZWQiKTsKLQotICAgIGRlYnVnKCJcblBhc3NpbmcgaW52
YWxpZCBkYXRhIHRvIGRpZ2VzdCgpIik7Ci0gICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUu
ZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSkiKTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLnN1YnRs
ZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCBudWxsKSIpOwotICAgIHNob3VsZFRocm93KCJjcnlw
dG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIDEwKSIpOwotICAgIHNob3VsZFRocm93
KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIFsxMF0pIik7Ci0gICAgc2hv
dWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSwgbmV3IFVpbnQ4
QXJyYXkoWzBdKSkiKTsKLQotICAgIGRlYnVnKCJcblBhc3NpbmcgaW52YWxpZCBhbGdvcml0aG1J
ZGVudGlmaWVycyB0byBkaWdlc3QoKSIpOwotICAgIGRhdGEgPSBuZXcgVWludDhBcnJheShbMF0p
OwotICAgIHNob3VsZFRocm93KCJjcnlwdG8uc3VidGxlLmRpZ2VzdCh7IHRvU3RyaW5nOmZ1bmN0
aW9uKCkgeyByZXR1cm4gJ3NoYS0xJyB9IH0sIFtkYXRhXSkiKTsgLy8gQWxnb3JpdGhtIG5vcm1h
bGl6YXRpb24gZG9lc24ndCBhdHRlbXB0IHRvIGNhbGwgdG9TdHJpbmcuCi0gICAgc2hvdWxkVGhy
b3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAnJ30sIFtkYXRhXSkiKTsKLSAgICBzaG91
bGRUaHJvdygiY3J5cHRvLnN1YnRsZS5kaWdlc3Qoe25hbWU6IG51bGx9LCBbZGF0YV0pIik7Ci0g
ICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiB1bmRlZmluZWR9LCBb
ZGF0YV0pIik7Ci0gICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAn
c2hhJ30sIFtkYXRhXSkiKTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLnN1YnRsZS5kaWdlc3Qo
e25hbWU6IDF9LCBbZGF0YV0pIik7Ci0gICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGln
ZXN0KCcnLCBbZGF0YV0pIik7Ci0gICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGlnZXN0
KG51bGwsIFtkYXRhXSkiKTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLnN1YnRsZS5kaWdlc3Qo
dW5kZWZpbmVkLCBbZGF0YV0pIik7Ci0gICAgc2hvdWxkVGhyb3coImNyeXB0by5zdWJ0bGUuZGln
ZXN0KDEsIFtkYXRhXSkiKTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLnN1YnRsZS5kaWdlc3Qo
e30sIFtkYXRhXSkiKTsKLX0pLnRoZW4oZmluaXNoSlNUZXN0KTsKLQotPC9zY3JpcHQ+Ci0KLTxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtZ2Mt
Mi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRv
LXN1YnRsZS1nYy0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTU4Mzg3KQorKysgTGF5b3V0VGVz
dHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1nYy0yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMSwxMiArMCwwIEBACi1UZXN0IHRoYXQgd2luZG93LmNyeXB0by5zdWJ0bGUgd3JhcHBl
ciBwcmVzZXJ2ZXMgY3VzdG9tIHByb3BlcnRpZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi1QQVNTIFtvYmplY3QgQ3J5cHRvXSBpcyBkZWZpbmVkLgotUEFTUyBbb2JqZWN0IFdl
YktpdFN1YnRsZUNyeXB0b10gaXMgZGVmaW5lZC4KLVBBU1MgYW5vdGhlcldpbmRvd0NyeXB0by53
ZWJraXRTdWJ0bGUuZm9vIGlzICJiYXIiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
Ci0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1
YnRsZS1nYy0yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRv
LXN1YnRsZS1nYy0yLmh0bWwJKHJldmlzaW9uIDE1ODM4NykKKysrIExheW91dFRlc3RzL3NlY3Vy
aXR5L2NyeXB0by1zdWJ0bGUtZ2MtMi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ2ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotCi1kZXNjcmlwdGlvbigiVGVzdCB0aGF0IHdpbmRv
dy5jcnlwdG8uc3VidGxlIHdyYXBwZXIgcHJlc2VydmVzIGN1c3RvbSBwcm9wZXJ0aWVzLiIpOwot
anNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBhbm90aGVyV2luZG93Q3J5cHRvOwotCi1mdW5j
dGlvbiBzdGFydFRlc3QoKQotewotICAgIGFub3RoZXJXaW5kb3dDcnlwdG8gPSBmcmFtZXNbMF0u
Y3J5cHRvOwotICAgIHNob3VsZEJlRGVmaW5lZChhbm90aGVyV2luZG93Q3J5cHRvKTsKLSAgICBz
aG91bGRCZURlZmluZWQoYW5vdGhlcldpbmRvd0NyeXB0by53ZWJraXRTdWJ0bGUpOwotCi0gICAg
YW5vdGhlcldpbmRvd0NyeXB0by53ZWJraXRTdWJ0bGUuZm9vID0gImJhciI7Ci0gICAgZG9jdW1l
bnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1l
IilbMF0pOwotICAgIGdjKCk7Ci0gICAgc2V0VGltZW91dChjb250aW51ZVRlc3QsIDEwKTsKLX0K
LQotZnVuY3Rpb24gY29udGludWVUZXN0KCkKLXsKLSAgICBnYygpOwotICAgIHNldFRpbWVvdXQo
ZmluaXNoVGVzdCwgMTApOwotfQotCi1mdW5jdGlvbiBmaW5pc2hUZXN0KCkKLXsKLSAgICBnYygp
OwotICAgIHNob3VsZEJlKCdhbm90aGVyV2luZG93Q3J5cHRvLndlYmtpdFN1YnRsZS5mb28nLCAn
ImJhciInKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotd2luZG93Lm9ubG9hZCA9IHN0YXJ0
VGVzdDsKLQotPC9zY3JpcHQ+Ci08aWZyYW1lIHNyYz0iYWJvdXQ6YmxhbmsiPjwvaWZyYW1lPgot
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1n
Yy0zLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlw
dG8tc3VidGxlLWdjLTMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNTgzODcpCisrKyBMYXlvdXRU
ZXN0cy9zZWN1cml0eS9jcnlwdG8tc3VidGxlLWdjLTMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xLDExICswLDAgQEAKLVRlc3QgdGhhdCB3aW5kb3cuY3J5cHRvIHdyYXBwZXIgcHJv
dGVjdHMgYWxsIGRlcGVuZGVuY2llcywgc28gaXQgY2FuIGFsd2F5cyBiZSB1c2VkIHRvIGNyZWF0
ZSBjcnlwdG8uc3VidGxlLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBb
b2JqZWN0IENyeXB0b10gaXMgZGVmaW5lZC4KLVBBU1MgW29iamVjdCBXZWJLaXRTdWJ0bGVDcnlw
dG9dIGlzIGRlZmluZWQuCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1Qg
Q09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1nYy0z
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1n
Yy0zLmh0bWwJKHJldmlzaW9uIDE1ODM4NykKKysrIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0
by1zdWJ0bGUtZ2MtMy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQzICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci08c2NyaXB0PgotCi1kZXNjcmlwdGlvbigiVGVzdCB0aGF0IHdpbmRvdy5jcnlwdG8g
d3JhcHBlciBwcm90ZWN0cyBhbGwgZGVwZW5kZW5jaWVzLCBzbyBpdCBjYW4gYWx3YXlzIGJlIHVz
ZWQgdG8gY3JlYXRlIGNyeXB0by5zdWJ0bGUuIik7Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQot
dmFyIGFub3RoZXJXaW5kb3dDcnlwdG87Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAg
YW5vdGhlcldpbmRvd0NyeXB0byA9IGZyYW1lc1swXS5jcnlwdG87Ci0gICAgc2hvdWxkQmVEZWZp
bmVkKGFub3RoZXJXaW5kb3dDcnlwdG8pOwotICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpWzBdKTsKLSAgICBnYygpOwot
ICAgIHNldFRpbWVvdXQoY29udGludWVUZXN0LCAxMCk7Ci19Ci0KLWZ1bmN0aW9uIGNvbnRpbnVl
VGVzdCgpCi17Ci0gICAgZ2MoKTsKLSAgICBzZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDEwKTsKLX0K
LQotZnVuY3Rpb24gZmluaXNoVGVzdCgpCi17Ci0gICAgZ2MoKTsKLSAgICBzaG91bGRCZURlZmlu
ZWQoYW5vdGhlcldpbmRvd0NyeXB0by53ZWJraXRTdWJ0bGUpOwotICAgIGZpbmlzaEpTVGVzdCgp
OwotfQotCi13aW5kb3cub25sb2FkID0gc3RhcnRUZXN0OwotCi08L3NjcmlwdD4KLTxpZnJhbWUg
c3JjPSJhYm91dDpibGFuayI+PC9pZnJhbWU+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9zZWN1cml0eS9jcnlwdG8tc3VidGxlLWdjLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tc3VidGxlLWdjLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMTU4Mzg3KQorKysgTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1nYy1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzAsMCBAQAotVGVzdCB0aGF0IHdp
bmRvdy5jcnlwdG8uc3VidGxlIHdyYXBwZXIgcHJlc2VydmVzIGN1c3RvbSBwcm9wZXJ0aWVzLgot
Ci1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyB3aW5kb3cuY3J5cHRvLndlYmtp
dFN1YnRsZS5mb28gaXMgImJhciIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQot
VEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tc3VidGxl
LWdjLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRs
ZS1nYy5odG1sCShyZXZpc2lvbiAxNTgzODcpCisrKyBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlw
dG8tc3VidGxlLWdjLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzggKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxzY3JpcHQ+Ci0KLWRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgd2luZG93LmNyeXB0by5z
dWJ0bGUgd3JhcHBlciBwcmVzZXJ2ZXMgY3VzdG9tIHByb3BlcnRpZXMuIik7Ci1qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICB3aW5kb3cuY3J5cHRv
LndlYmtpdFN1YnRsZS5mb28gPSAiYmFyIjsKLSAgICBnYygpOwotICAgIHNldFRpbWVvdXQoY29u
dGludWVUZXN0LCAxMCk7Ci19Ci0KLWZ1bmN0aW9uIGNvbnRpbnVlVGVzdCgpCi17Ci0gICAgZ2Mo
KTsKLSAgICBzZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDEwKTsKLX0KLQotZnVuY3Rpb24gZmluaXNo
VGVzdCgpCi17Ci0gICAgZ2MoKTsKLSAgICBzaG91bGRCZSgnd2luZG93LmNyeXB0by53ZWJraXRT
dWJ0bGUuZm9vJywgJyJiYXIiJyk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19Ci0KLXdpbmRvdy5v
bmxvYWQgPSBzdGFydFRlc3Q7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1zaGExLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tc3VidGxlLXNoYTEtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAxNTgzODcpCisrKyBMYXlvdXRUZXN0cy9zZWN1cml0eS9jcnlwdG8tc3Vi
dGxlLXNoYTEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDE4ICswLDAgQEAKLVRl
c3QgY3J5cHRvLnN1YnRsZS5kaWdlc3QuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci1TSEExIG9mIFtdCi0gICAgPSBbZGEgMzkgYTMgZWUgNWUgNmIgNGIgMGQgMzIgNTUgYmYgZWYg
OTUgNjAgMTggOTAgYWYgZDggMDcgMDldCi1TSEExIG9mIFsweDBdCi0gICAgPSBbNWIgYTkgM2Mg
OWQgYjAgY2YgZjkgM2YgNTIgYjUgMjEgZDcgNDIgMGUgNDMgZjYgZWQgYTIgNzggNGZdCi1TSEEx
IG9mIFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0KLSAgICA9IFsyYyA3ZSA3YyAz
OCA0ZiA3OCAyOSA2OSA0MiA4MiBiMSBlMyBhNiAyMSA2ZCBlZiA4MCA4MiBkMCA1NV0KLVNIQTEg
b2YgW25ldyBVaW50OEFycmF5KFswLCAxLCAyLCAzLCA0XSksIG5ldyBVaW50OEFycmF5KDUsIDYs
IDcsIDgsIDksIDEwXSldCi0gICAgPSBbMmMgN2UgN2MgMzggNGYgNzggMjkgNjkgNDIgODIgYjEg
ZTMgYTYgMjEgNmQgZWYgODAgODIgZDAgNTVdCi1QQVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVL
ZXkoJ3NoYS0xJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBh
IGZ1bmN0aW9uIChldmFsdWF0aW5nICdjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KCdzaGEtMScp
JykuCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJ
bmRleDogTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1zaGExLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY3J5cHRvLXN1YnRsZS1zaGExLmh0bWwJKHJl
dmlzaW9uIDE1ODM4NykKKysrIExheW91dFRlc3RzL3NlY3VyaXR5L2NyeXB0by1zdWJ0bGUtc2hh
MS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgY3J5cHRvLnN1YnRsZS5k
aWdlc3QuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1pZiAoIXdpbmRvdy5zdWJ0bGUp
Ci0gICAgd2luZG93LmNyeXB0by5zdWJ0bGUgPSB3aW5kb3cuY3J5cHRvLndlYmtpdFN1YnRsZTsK
LQotUHJvbWlzZS5mdWxmaWxsKG51bGwpLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgZGVidWcoIlNI
QTEgb2YgW10iKTsKLSAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3QoJ3NoYS0xJywgW25l
dyBVaW50OEFycmF5KFtdKV0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBwcmlu
dEFjY2VwdGVkUmVzdWx0KHJlc3VsdCk7Ci0KLSAgICBkZWJ1ZygiU0hBMSBvZiBbMHgwXSIpCi0g
ICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSwgW25ldyBVaW50
OEFycmF5KFswXSldKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgcHJpbnRBY2Nl
cHRlZFJlc3VsdChyZXN1bHQpOwotCi0gICAgZGVidWcoIlNIQTEgb2YgWzAsIDEsIDIsIDMsIDQs
IDUsIDYsIDcsIDgsIDksIDEwXSIpOwotICAgIHZhciBkYXRhID0gbmV3IFVpbnQ4QXJyYXkoWzAs
IDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXSk7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0
bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSwgW2RhdGFdKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7Ci0gICAgcHJpbnRBY2NlcHRlZFJlc3VsdChyZXN1bHQpOwotCi0gICAgZGVidWcoIlNI
QTEgb2YgW25ldyBVaW50OEFycmF5KFswLCAxLCAyLCAzLCA0XSksIG5ldyBVaW50OEFycmF5KDUs
IDYsIDcsIDgsIDksIDEwXSldIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KHtu
YW1lOiAnc2hhLTEnfSwgW25ldyBVaW50OEFycmF5KFswLCAxLCAyLCAzLCA0XSksIG5ldyBVaW50
OEFycmF5KFs1LCA2LCA3LCA4LCA5LCAxMF0pXSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
ewotICAgIHByaW50QWNjZXB0ZWRSZXN1bHQocmVzdWx0KTsKLSAgICAvLyBBbGwgU0hBLTEgY2Fu
IGRvIGlzIGRpZ2VzdC4KLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtl
eSgnc2hhLTEnKSIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2NvbW1vbi5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY29tbW9uLmpz
CShyZXZpc2lvbiAxNTgzODcpCisrKyBMYXlvdXRUZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY29t
bW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYzICswLDAgQEAKLWZ1bmN0aW9uIGltcG9ydFRl
c3RLZXlzKCkKLXsKLSAgICB2YXIga2V5Rm9ybWF0ID0gInNwa2kiOwotICAgIHZhciBkYXRhID0g
bmV3IFVpbnQ4QXJyYXkoW10pOwotICAgIHZhciBleHRyYWN0YWJsZSA9IGZhbHNlOwotICAgIHZh
ciBrZXlVc2FnZXMgPSBbJ2VuY3J5cHQnLCAnZGVjcnlwdCcsICdzaWduJywgJ3ZlcmlmeSddOwot
Ci0gICAgdmFyIGhtYWNQcm9taXNlID0gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoa2V5Rm9ybWF0
LCBkYXRhLCB7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0xJ319LCBleHRyYWN0YWJs
ZSwga2V5VXNhZ2VzKTsKLSAgICB2YXIgcnNhU3NhUHJvbWlzZSA9IGNyeXB0by5zdWJ0bGUuaW1w
b3J0S2V5KGtleUZvcm1hdCwgZGF0YSwge25hbWU6ICdSU0FTU0EtUEtDUzEtdjFfNScsIGhhc2g6
IHtuYW1lOiAnc2hhLTEnfX0sIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXMpOwotICAgIHZhciBhZXND
YmNQcm9taXNlID0gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoa2V5Rm9ybWF0LCBkYXRhLCB7bmFt
ZTogJ0FFUy1DQkMnfSwgZXh0cmFjdGFibGUsIGtleVVzYWdlcyk7Ci0gICAgdmFyIGFlc0NiY0p1
c3REZWNyeXB0ID0gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoa2V5Rm9ybWF0LCBkYXRhLCB7bmFt
ZTogJ0FFUy1DQkMnfSwgZXh0cmFjdGFibGUsIFsnZGVjcnlwdCddKTsKLQotICAgIHJldHVybiBQ
cm9taXNlLmV2ZXJ5KGhtYWNQcm9taXNlLCByc2FTc2FQcm9taXNlLCBhZXNDYmNQcm9taXNlLCBh
ZXNDYmNKdXN0RGVjcnlwdCkudGhlbihmdW5jdGlvbihyZXN1bHRzKSB7Ci0gICAgICAgIHJldHVy
biB7Ci0gICAgICAgICAgICBobWFjU2hhMTogcmVzdWx0c1swXSwKLSAgICAgICAgICAgIHJzYVNz
YVNoYTE6IHJlc3VsdHNbMV0sCi0gICAgICAgICAgICBhZXNDYmM6IHJlc3VsdHNbMl0sCi0gICAg
ICAgICAgICBhZXNDYmNKdXN0RGVjcnlwdDogcmVzdWx0c1szXSwKLSAgICAgICAgfTsKLSAgICB9
KTsKLX0KLQotLy8gQnVpbGRzIGEgaGV4IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbnkgYXJy
YXktbGlrZSBpbnB1dCAoYXJyYXkgb3IKLS8vIEFycmF5QnVmZmVyVmlldykuIFRoZSBvdXRwdXQg
bG9va3MgbGlrZSB0aGlzOgotLy8gICAgW2FiIDAzIDRjIDk5XQotZnVuY3Rpb24gYnl0ZUFycmF5
VG9IZXhTdHJpbmcoYnl0ZXMpCi17Ci0gICAgdmFyIGhleEJ5dGVzID0gW107Ci0KLSAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBieXRlU3Ry
aW5nID0gYnl0ZXNbaV0udG9TdHJpbmcoMTYpOwotICAgICAgICBpZiAoYnl0ZVN0cmluZy5sZW5n
dGggPCAyKQotICAgICAgICAgICAgYnl0ZVN0cmluZyA9ICIwIiArIGJ5dGVTdHJpbmc7Ci0gICAg
ICAgIGhleEJ5dGVzLnB1c2goYnl0ZVN0cmluZyk7Ci0gICAgfQotCi0gICAgcmV0dXJuICJbIiAr
IGhleEJ5dGVzLmpvaW4oIiAiKSArICJdIjsKLX0KLQotZnVuY3Rpb24gYXNjaWlUb0FycmF5QnVm
ZmVyKHN0cikKLXsKLSAgICB2YXIgY2hhcnMgPSBbXTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHN0ci5sZW5ndGg7ICsraSkKLSAgICAgICAgY2hhcnMucHVzaChzdHIuY2hhckNvZGVBdChpKSk7
Ci0gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGNoYXJzKTsKLX0KLQotZnVuY3Rpb24gcHJpbnRS
ZWplY3RlZFJlc3VsdCh2YWx1ZSkKLXsKLSAgICBkZWJ1ZygiICAgIHJlamVjdGVkIHdpdGggdmFs
dWUgb2YgIiArIHZhbHVlKTsKLX0KLQotZnVuY3Rpb24gcHJpbnRBY2NlcHRlZFJlc3VsdChyZXN1
bHQpCi17Ci0gICAgZGVidWcoIiAgICA9ICIgKyBieXRlQXJyYXlUb0hleFN0cmluZyhuZXcgVWlu
dDhBcnJheShyZXN1bHQpKSk7Ci19Ci0KLWZ1bmN0aW9uIGZhaWxBbmRGaW5pc2hKU1Rlc3QoZXJy
b3IpCi17Ci0gICAgaWYgKGVycm9yKQotICAgICAgIGRlYnVnKGVycm9yKTsKLSAgICBmaW5pc2hK
U1Rlc3QoKTsKLX0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxn
b3JpdGhtQnVpbGRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNDcnlwdG9BbGdvcml0aG1CdWlsZGVyLmNwcAkocmV2aXNpb24gMTU4Mzg3KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1CdWlsZGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQog
CiAjaW5jbHVkZSA8cnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oPgorI2luY2x1ZGUgPHJ1bnRp
bWUvT3BlcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>